End-to-end-kryptering (även end-to-end- kryptering ; engelska end-to-end-kryptering ) är en dataöverföringsmetod där endast användare som deltar i kommunikation har tillgång till meddelanden. Användningen av end-to-end- kryptering tillåter således inte åtkomst till kryptografiska nycklar av tredje part. [ett]
Både symmetriska och asymmetriska algoritmer kan användas för nyckelutbyte . [2] End-to-end-kryptering förutsätter att krypteringsnycklarna endast är kända för de kommunicerande parterna. För att implementera detta villkor kan ett schema med preliminär hemlighetsdelning eller till exempel Diffie-Hellman-protokollet som används i WhatsApp [3] och Telegram [4] [5] snabbmeddelanden användas .
End-to-end-kryptering säkerställer att endast avsändaren och mottagaren har tillgång till originaltexten i meddelandet. [6] Detta innebär att användarinformation blir otillgänglig även för servrar som överför data. [6]
Kryptering och dekryptering sker på användarens slutenheter. Dessutom förblir informationen krypterad tills den levereras till sin destination. Därför kallas end-to-end-kryptering ofta också som "noll åtkomst" eller "kryptering på klientsidan". En skillnad bör dock göras mellan end-to-end-kryptering under dataöverföring och kryptering på klientsidan under datalagring.
En av de första standarderna för asynkron meddelandehantering är SMTP-protokollet [7] . Detta protokoll, som ursprungligen endast användes för överföring av e-post , gav i sin ursprungliga implementering inte konfidentialitet för korrespondens med användning av end-to-end-kryptering [8] . 1991 skapades PGP - paketet för e - postkryptering av Philip Zimmerman . Biblioteket har blivit utbrett över hela världen, så många företag har en önskan att skapa sin egen mjukvara som är kompatibel med PGP [9] . Efter det, 1997, definierade IETF äntligen en uppsättning standarder för end-to-end e-postkryptering, som de kallade OpenPGP [10] . OpenPGP är implementerat i mjukvarusystem med öppen källkod som Enigmail för Thunderbird , såväl som mobilapplikationer som IPGMail för iOS [11] och nyckelhanteringssystemet Openkeychain för Android [12] och andra [13] .
1999 utvecklade Free Software Foundation en implementering av OpenPGP som heter GnuPG . Den överensstämmer med standarderna i OpenPGP-specifikationen och fungerar som den fria mjukvarugrunden för de flesta moderna PGP-aktiverade applikationer [14] .
Till skillnad från e-post, som använder asynkron meddelandehantering, använde snabbmeddelandesystem ursprungligen synkron dataöverföring, men idag tillåter många snabbmeddelanden asynkron meddelandeleverans. Nyligen har sådana system blivit mer populära än e-postklienter, eftersom de också ger stöd för video- , fil- och röstöverföring [15] .
1998 började Jeremy Miller utvecklingen av Jabber-projektet, som senare blev känt som XMPP . XMPP tillhandahåller en teknologi för asynkront utbyte av strukturerad data över ett distribuerat nätverk mellan klienter och servrar som stöder närvaromeddelanden. För att förbättra säkerheten kommer nya protokollspecifikationer att lägga till stöd för end-to-end-kryptering, eftersom XMPP för närvarande inte krypterar som standard, även om det använder inbyggda SASL- och TLS-protokoll [16] . Till en början var det IETF:s öppna XMPP-protokollstandard som användes i de flesta snabbmeddelandesystem som Google Talk . [17] .
OTR - protokollet , som släpptes 2004, är en förlängning av XMPP för att tillhandahålla end-to-end-kryptering. Det ger också användarvarningar, till skillnad från PGP, som senare kan användas som en registrering av anslutningsetablering och deltagaridentifiering. OTR kan betraktas som en säkerhetsuppdatering över PGP på sätt och vis, eftersom den inte lagrar långsiktiga publika nycklar som kan äventyras. Nackdelarna med OTR inkluderar bristen på stöd för gruppchattar och asynkrona meddelanden, eftersom den är designad för synkron meddelanden mellan två personer [18] [19] .
Flera moderna budbärare använder Signal Protocol för kryptering .
End-to-end-kryptering ger att kontroll över korrespondens utförs direkt av användarna. Ett av alternativen för att kringgå end-to-end-kryptering för en angripare är att ta kontroll över kommunikationskanalen mellan endpoints, varefter han kan försöka utge sig för att vara mottagare av meddelandet för att till exempel byta ut den publika nyckeln. För att undvika upptäckt kan angriparen, efter att ha dekrypterat meddelandet, kryptera det med en nyckel som han delar med den faktiska mottagaren, eller med sin publika nyckel (vid asymmetriska system) och skicka meddelandet igen. Attacker av denna typ brukar kallas "man-in-the-middle" -attacker [1] [20] - MITM (Man-In-The-Middle) .
För att förhindra MITM-attacker använder de flesta kryptografiska protokoll autentisering . För detta kan till exempel certifikatutfärdare användas . En alternativ metod är att generera publika nyckelfingeravtryck från användares offentliga nycklar eller delade hemligheter. Innan man startar en konversation jämför parterna sina fingeravtryck av den offentliga nyckeln med hjälp av en extern kommunikationskanal som garanterar kommunikationens integritet och autenticitet, och som inte behöver vara hemlig. Om nyckelutskrifterna stämmer överens utfördes inte man-in-the-middle-attacken [20] [21] .
Ett annat sätt att kringgå end-to-end-kryptering är att attackera direkt på åtkomständpunkter. Varje användares enhet kan hackas för att stjäla den kryptografiska nyckeln (för att skapa en man-in-the-midten-attack) eller helt enkelt läsa dekrypterade användarmeddelanden. [3] För att undvika dessa typer av hackningsförsök är det nödvändigt att tillhandahålla lämpligt skydd för användarenheter med hjälp av programvara eller andra metoder. [22] De främsta försöken att förbättra slutpunktssäkerheten har varit allokeringen av nyckelgenerering, lagring och kryptografi till smartkortet, till exempel i Googles Project Vault [23] . Men eftersom in- och utdata i klartext är synliga på systemet, kan dessa metoder inte skydda mot keyloggers och skadlig kod som kan övervaka konversationer i realtid [24] . Ett mer robust tillvägagångssätt är att fysiskt isolera enheten [25] .
Företag kan också (på egen hand eller under tvång) introducera bakdörrar i sin programvara som hjälper till att bryta nyckelavtal eller kringgå kryptering. Enligt information som avslöjades av Edward Snowden 2013, innehöll Skype en bakdörr som gjorde det möjligt för Microsoft att överföra användarmeddelanden till NSA , trots att dessa meddelanden officiellt var krypterade från början till slut [26] [27] .