Mandraki Mandraki
Kom igång
Tillbaka till bloggen
kryptering e2ee säkerhet mls sframe

End-to-end-kryptering utan kompromisser

Hur Mandraki implementerar end-to-end-kryptering med MLS-protokollet för meddelanden och SFrame för media, utan att kompromissa med användbarheten.

Mandraki Team ·

End-to-end-kryptering är en av de funktioner som är lätta att lova men svåra att leverera korrekt. Många samarbetsplattformar hävdar att de erbjuder E2EE, men detaljerna i deras implementationer varierar enormt — och detaljerna är där säkerheten lever eller dör.

Den här artikeln förklarar hur Mandraki implementerar end-to-end-kryptering, de protokollval vi gjort och de kompromisser vi är transparenta om.

Vad end-to-end-kryptering egentligen betyder

I ett system med end-to-end-kryptering krypteras meddelanden och media på avsändarens enhet och kan bara dekrypteras på mottagarnas enheter. Servern som vidarebefordrar data ser bara krypterad text. Den kan inte läsa innehållet, även om den tvingas till det av en domstol, av en illvillig anställd eller av ett dataintrång.

Detta skiljer sig i grunden från transportkryptering (TLS), som skyddar data under överföringen mellan en klient och en server men låter servern ha åtkomst till klartexten. Det skiljer sig också från kryptering i vila, som skyddar data på disk men låter programvarulagret ha åtkomst till klartexten under bearbetningen.

Äkta E2EE innebär att servern saknar behörighet redan från grunden. Den är en vidarebefordrare, inte en läsare.

MLS-protokollet för meddelanden

För krypterade meddelanden använder vi protokollet Messaging Layer Security (MLS), standardiserat av IETF som RFC 9420. MLS utformades specifikt för gruppmeddelanden och erbjuder flera fördelar jämfört med äldre metoder.

MLS bygger på en trädstrukturerad nyckelöverenskommelse som kallas TreeKEM och som låter en grupp deltagare etablera en delad hemlighet på ett effektivt sätt. När en medlem går med i eller lämnar en grupp uppdateras nyckelmaterialet genom ett Commit-meddelande som för fram gruppen till en ny epok. Detta ger framåtriktad sekretess — om en medlems nycklar komprometteras vid en given tidpunkt avslöjas inte meddelanden från tidigare epoker — och säkerhet efter kompromettering, det vill säga att gruppen återfår sin säkerhet efter ett intrång så snart den drabbade medlemmens nyckelmaterial roteras.

Varje användarenhet laddar upp MLS-nyckelpaket till servern. Det är kryptografiska engångspaket som låter andra enheter lägga till dem i en grupp utan att enheten behöver vara online just då. När ett nyckelpaket har förbrukats måste enheten ladda upp nya paket. Servern lagrar och distribuerar dessa paket men har aldrig åtkomst till det privata nyckelmaterial de innehåller.

MLS-grupper i Mandraki motsvarar kanaler och direktmeddelandetrådar. När du skickar ett meddelande i en krypterad kanal krypterar din klient det med gruppens aktuella epoknyckel. Servern tar emot den krypterade texten, lagrar den och distribuerar den till gruppmedlemmarna. Deras klienter dekrypterar den lokalt.

SFrame för mediekryptering

Att kryptera realtidsmedia — ljud och video i ett gruppsamtal — innebär andra utmaningar än meddelanden. Latenstoleransen mäts i millisekunder, inte sekunder. Datatakten är flera storleksordningar högre. Och medieströmmen passerar genom en Selective Forwarding Unit (SFU), som måste vidarebefordra paket till rätt deltagare utan att kunna se innehållet.

Vi använder SFrame (RFC 9605) för mediekryptering, via WebRTC Encoded Transform API. Detta API låter JavaScript-kod fånga upp kodade bildrutor efter kodningen men före paketeringen, kryptera dem och skicka den krypterade texten vidare till transportlagret. På mottagarsidan dekrypteras bildrutorna efter återsammansättningen men före avkodningen.

Fördelen med SFrame i en SFU-arkitektur är att SFU fortfarande kan sköta sin vidarebefordran — skicka paket från en deltagare till andra och fatta bandbreddsanpassade beslut om vilka lager som ska vidarebefordras — utan att någonsin ha åtkomst till medieinnehållet i klartext. SFU ser krypterade bildrutor och vidarebefordrar dem som ogenomskinliga blobbar.

De kompromisser vi är ärliga om

End-to-end-kryptering är inte gratis. Den medför verkliga begränsningar som vi tycker är värda att vara öppna med.

Serversideig sökning fungerar inte för E2EE-innehåll. Om meddelanden krypteras med nycklar som servern inte har kan servern inte indexera dem för sökning. Mandraki löser detta genom att hålla ett lokalt krypterat sökindex på klienten med hjälp av IndexedDB. Det ger sökning per enhet, men det stöder inte sökning över enheter i meddelanden som tagits emot innan en enhet lades till i gruppen.

Serverbaserade AI-funktioner och E2EE utesluter varandra. Våra funktioner för AI-transkribering och AI-sammanfattning kräver serverbaserad åtkomst till ljudet i klartext. Ett samtal eller en kanal kan inte ha både E2EE och AI-funktioner aktiverade samtidigt. Detta är inbyggt i arkitekturen, inte bara en policy. Organisationer väljer per samtal eller kanal vilken modell de föredrar.

Nya enheter ser meddelanden först från och med att de ansluter. När du lägger till en ny enhet på ditt konto kan den dekryptera meddelanden från och med den tidpunkt då den ansluter till MLS-gruppen. Tidigare meddelanden som krypterats under äldre epoker är inte tillgängliga på den nya enheten. Detta är en grundläggande egenskap hos framåtriktad sekretess. Vi undersöker säkra mekanismer för säkerhetskopiering som skulle göra det möjligt för användare att exportera krypterad meddelandehistorik till en ny enhet, men det arbetet pågår fortfarande.

Nyckelhantering ökar komplexiteten. Varje enhet måste underhålla nyckelmaterial, ladda upp nya nyckelpaket och bearbeta uppdateringar av gruppens tillstånd. Vi lägger ner stort utvecklingsarbete på att göra detta osynligt för användarna. Målet är att kryptering inte ska vara något du konfigurerar eller tänker på — den ska bara ske.

E2EE och serverbaserad kryptering samexisterar

Mandrakis E2EE-lager och vår serverbaserade kuvertkryptering (den trelagrade nyckelhierarki som beskrivs i vår säkerhetsarkitektur) fyller kompletterande syften. Serverbaserad kryptering skyddar data i vila i vår infrastruktur — om en disk stjäls eller en databassäkerhetskopia komprometteras är data oläsbara utan krypteringsnycklarna. E2EE går längre genom att säkerställa att servern aldrig ser klartexten över huvud taget.

För organisationer som aktiverar E2EE är båda lagren aktiva samtidigt. Data krypteras end-to-end av klienterna och krypteras dessutom i vila på servern. Både hängslen och livrem.

Vi anser att end-to-end-kryptering bör vara standard för känslig kommunikation, inte en premiumfunktion eller en kryssruta som de flesta användare aldrig hittar. Mandraki gör den enkel att aktivera, öppen med sina begränsningar och robust i sin implementation.