2026-06-05, 20:35
  #1
Medlem
Hej!

Jag bygger en end-to-end-krypterad meddelandeapp riktad mot aktivister och journalister. Jag använder Signal-protokollet som grund, men Dart-biblioteket saknar en funktion som kallas "sealed sender" — som döljer avsändarens identitet även för servern.
Eftersom det saknades byggde jag en egen implementation från grunden med:

X25519 för nyckelutbyte
HKDF-SHA256 för nyckelderivering
ChaCha20-Poly1305 för kryptering
Ed25519 för certifikatsignering

Servern agerar certifikatutfärdare och signerar avsändarcertifikat. Det betyder att en illvillig serveroperatör tekniskt sett skulle kunna förfalska avsändarens identitet. Försvaret mot detta är säkerhetsnummerverifiering utanför appen — samma modell som Signal använder.

Efter att ha jämfört med Signals egen källkod märkte jag en viktig skillnad: Signal hårdkodar sin CA-nyckel direkt i klientappen, medan min app hämtar och pinnar nyckeln från servern vid första anslutningen (TOFU). Det gör den första anslutningen till en potentiellt sårbar punkt.
Den viktigaste frågan: bör man hårdkoda en trust root i klientappen som Signal gör? Och hur fungerar det när olika operatörer kör sina egna servrar i ett federerat system?

Full teknisk dokumentation av konstruktionen finns här för den som vill gå djupare: https://pastebin.com/TChBVM2X

Tack på förhand! <3
Citera
2026-06-06, 04:47
  #2
Medlem
Kip.Kinkels avatar
Citat:
Ursprungligen postat av artifacten
Hej!

Jag bygger en end-to-end-krypterad meddelandeapp riktad mot aktivister och journalister. Jag använder Signal-protokollet som grund, men Dart-biblioteket saknar en funktion som kallas "sealed sender" — som döljer avsändarens identitet även för servern.
Eftersom det saknades byggde jag en egen implementation från grunden med:

X25519 för nyckelutbyte
HKDF-SHA256 för nyckelderivering
ChaCha20-Poly1305 för kryptering
Ed25519 för certifikatsignering

Servern agerar certifikatutfärdare och signerar avsändarcertifikat. Det betyder att en illvillig serveroperatör tekniskt sett skulle kunna förfalska avsändarens identitet. Försvaret mot detta är säkerhetsnummerverifiering utanför appen — samma modell som Signal använder.

Efter att ha jämfört med Signals egen källkod märkte jag en viktig skillnad: Signal hårdkodar sin CA-nyckel direkt i klientappen, medan min app hämtar och pinnar nyckeln från servern vid första anslutningen (TOFU). Det gör den första anslutningen till en potentiellt sårbar punkt.
Den viktigaste frågan: bör man hårdkoda en trust root i klientappen som Signal gör? Och hur fungerar det när olika operatörer kör sina egna servrar i ett federerat system?

Full teknisk dokumentation av konstruktionen finns här för den som vill gå djupare: https://pastebin.com/TChBVM2X

Tack på förhand! <3

Vad tycker Claude om det här eländet? Finns nog inte nerdar nog på detta forum.

Signal hårdkodar sin CA-nyckel direkt i klientappen

Japp!
__________________
Senast redigerad av Kip.Kinkel 2026-06-06 kl. 04:50.
Citera
2026-06-06, 10:21
  #3
Medlem
Citat:
Ursprungligen postat av Kip.Kinkel
Vad tycker Claude om det här eländet? Finns nog inte nerdar nog på detta forum.

Signal hårdkodar sin CA-nyckel direkt i klientappen

Japp!

Har lagt ut på crytp stackexchange, dev.to hacker news reddit och du är den första som svarar ^^ verkar vara svårt att få tag på kryptografer...

Claude, Gemini och chat-gpt är överens om att det behövs en extern review. Men börjar luta mot att göra som signal eftersom jag vet att man ibland är lat och inte kommer att nummerverfifiering alltid
Citera
2026-06-06, 10:36
  #4
Medlem
Jag har svårt att tro att du kommer få mycket hjälp här. När det kommer till programmering så är nivån på forumet ganska låg, men det lär ju dyka upp någon som låtsas kunna och klistrar in ett AI-svar.
Citera
Igår, 01:04
  #5
Medlem
Citat:
Ursprungligen postat av Techbilly
Jag har svårt att tro att du kommer få mycket hjälp här. När det kommer till programmering så är nivån på forumet ganska låg, men det lär ju dyka upp någon som låtsas kunna och klistrar in ett AI-svar.

Har fått tag på en mail lista över ansvariga kryptografer som utvecklar chromium. Funderar på att dra iväg ett mail men förväntar mig inte särskilt mycket från det.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in