Säkerhetsbeskrivning 1 Syfte Syftet med det här dokumentet är att översiktligt beskriva säkerhetsfunktionerna i The Secure Channel för att på så vis öka den offentliga förståelsen för hur systemet fungerar. Dokumentets målgrupp är personer som har en viss teknisk kunskapsnivå. 2 Sammanfattning The Secure Channel kan användas på samma vis som vanlig e-post, fast är ett säkrare alternativ där varje användare av systemet har en egen privat krypteringsnyckel och all information som skickas krypteras till mottagarens privata krypteringsnyckel. All information som skickas signeras också med kraftfulla digitala signaturer. 3 Klassificering Dokumentet har klassificerats som offentligt dokument. Det finns därför inte restriktioner för hur det får distribueras eller hanteras. 4 Innehåll 1 Syfte...1 2 Sammanfattning...1 3 Klassificering...1 4 Innehåll...1 5 Inledning...2 6 Kryptografisk översikt...2 7 Transportkryptering...3 8 Serverns PKI-funktion och adresser...3 9 Digital signering...4 10 Säkerhet och algoritmer...4 10.1 Meddelandekryptering och signering...4 10.2 Transportkryptering...5 11 Ytterligare säkerhetsfunktioner...5 Dokument: Säkerhetsbeskrivning 1
5 Inledning Programvaran används på samma vis som vanlig e-post. Under installationen av programmet (eller första gången programmet används) startar en guide där man kan skapa ett konto på servern, dvs på ungefär samma vis som en vanlig e-post klient fungerar. I samband med att kontot skapas så tilldelas du en adress och en inkorg för meddelanden på servern. Du kan sedan distribuera adressen till de du vill ska kunna skicka meddelanden till dig. När du uppdaterar klientens inkorg laddas meddelanden som lagras i din inkorg på servern ned och raderas sedan från servern. Skillnaden mot vanlig e-post är att all information som skickas via klienten krypteras med stark asymmetrisk kryptering, i princip används samma teknik som används i PGP/GnuPG, fast skillnaden är användarvänligheten och att krypteringen sker i bakgrunden transparent mot användaren. Dessutom finns en del fler säkerhetsfunktioner som inte finns i PGP/GnuPG. 6 Kryptografisk översikt Programvaran använder asymmetriskt krypto. Det betyder att nyckelpar används vid kryptering, nyckelparen består av en publik och en privat krypteringsnyckel. Information krypteras med den publika nyckeln och kan sedan dekrypteras med den privata nyckeln i paret. I samband med guiden för att skapa ett konto på servern skapas ett asymmetriskt nyckelpar. Den publika nyckeln laddas upp på servern så andra användare kan ladda ned den, den privata nyckeln lagras krypterat på användarens dator i klientens databas. Krypteringen av den privata nyckeln görs med en lösenfras. Detta garanterar att det bara är mottagaren som kan läsa meddelanden eftersom informationen enbart kan dekrypteras av någon som har tillgång till mottagarens datorsystem och lösenfras. För att kunna skicka ett meddelande till en användare måste du först ladda ned användarens publika krypteringsnyckel från servern. Denna laddar du ned genom att lägga till mottagaren i klientens adressbok. Mottagarens publika nyckel lagras sedan skyddat med kryptering i klientens databas. När nyckeln har laddats ned kan du både kryptera meddelanden till den här mottagare samt verifiera den digitala signaturen i meddelanden skickade från den här användaren. Krypteringen av meddelanden kan göras med flera olika publika nycklar samtidigt vilket möjliggör fler mottagare av samma meddelande. Den asymmetriska krypteringen är så säker att inte ens du själv kan dekryptera ett meddelande som du nyss krypterat. Enbart mottagarna med de privata krypteringsnycklarna som tillhör den eller de publika nycklarna som meddelandet krypterades med kan dekryptera informationen. Om du vill se hur meddelandet ser ut efter kryptering kan du klicka på knappen "Krypteringsinformation" som visas efter att meddelandet har sänts. Hur meddelandet transporteras till mottagaren spelar egentligen ingen roll för säkerheten eftersom det bara är de mottagare som valts vid sändning som fysiskt kan dekryptera meddelandet. Dokument: Säkerhetsbeskrivning 2
7 Transportkryptering För att förstärka säkerheten används ytterligare ett lager av kryptering när meddelanden skickas mellan klient och server. Detta skapar en extra redundans i säkerheten. En utomstående person som avlyssnar trafiken mellan klient och server kan därför inte ens få tillgång till de krypterade meddelanden. Detta förstärker säkerheten ytterligare på följande vis: 1. Sändare och mottagare döljs för utomstående som avlyssnar trafiken. 2. Om krypteringen visar sig ha svagheter och inte är så stark som förväntat är informationen ändå skyddad av transportkrypteringen, vilket skapar en dubbel säkerhet. 3. Om en användares privata krypteringsnyckel av misstag läcker ut så kommer ingen ha tillgång till de tidigare meddelanden som är krypterade med den, varpå nyckeln inte kan användas för att dekryptera tidigare meddelanden som skickats. Detta är säkerhetsfördelar som inte finns i PGP/GnuPG. 8 Serverns PKI-funktion och adresser När man använder asymmetriskt kryptering är det viktigt att kunna säkerställa att man använder rätt publik krypteringsnyckel. Om någon kan byta ut en publik krypteringsnyckel mot en annan nyckel kan meddelanden krypteras till fel person. För att undvika detta använder man vanligtvis ett PKI (Publik Key Infrastructure). Servern har en PKI-funktion där den lagrar alla kontons publika krypteringsnycklar och erbjuder dem för nedladdning för alla andra användare. Förutsättningen är bara att man har tillgång till mottagarens adress. På så vis kan alla användare vara säkra på att det är rätt krypteringsnycklar som används. För att garantera att nycklarna är korrekta och inte byts ut vid nedladdning signerar servern samtliga publika nycklar med en digital signatur och certifierar på det viset att nycklarna är korrekta och är de som är registrerade på servern för den användaren. Detta gör att det omöjligt att byta ut nycklarna vid nedladdning. När ett nytt konto skapas så svarar servern även då med en digital signatur för att verifiera att den uppladdade nyckeln har registrerats för den nya adressen, därmed kan nyckeln inte heller bytas ut vid uppladdning. PGP/GnuPG har inte någon PKI-funktion och det är därför problematisk att överföra publika krypteringsnycklar på ett säkert vis. Det vanligaste är att använda något som kallas för fingerprint för att kontrollera att ingen har bytt ut krypteringsnycklar. Om man vill kan man välja att inte lita på serverns PKI-funktion och kontrollera fingerprint själv på samma vis som man brukar göra med PGP/GnuPG. Nedladdning av nycklar skyddas även den av extra transportkryptering med autentisering mellan klient och server. Detta är dels för att dölja vilka nycklar som laddas ned och på så vis hålla Dokument: Säkerhetsbeskrivning 3
mottagare hemliga, men också för att ytterligare omöjliggöra manipulering av informationen när den överförs mellan klient och server. För att byta ut krypteringsnycklar + signaturer under överföringen måste man därför först ta sig runt transportkrypteringen, vilket naturligtvis ska vara omöjligt. Det finns därför en resundans i säkerheten även här. 9 Digital signering Alla meddelanden som skickas med klienten skyddas med kraftfulla digitala signaturer som garanterar att informationen inte har ändrats under sändning, samt att meddelandet verkligen kommer från den påstådda sändaren och ingen annan. Klienten visar bara meddelande som har en korrekt digital signatur. Ett meddelande där signaturen inte kan verifieras gulmarkeras och visas inte inte för användaren. Om signaturen är felaktig markeras den med röd färg och visas då inte heller. För att ett meddelande ska kunna verifieras av programvaran måste den publika verifieringsnyckeln finnas tillgänglig, dvs sändaren måste vara tillagd i adressboken. Om ett meddelande är gulmarkerad kan man alltså lägga till mottagaren i adressboken och på så vis verifiera signaturen och om den är korrekt även läsa meddelandet. 10 Säkerhet och algoritmer De algoritmer som används vid kryptering och signering är valda för att ge maximal säkerhet. 10.1 Meddelandekryptering och signering Krypteringen är hybrid, dvs de asymmetriska algoritmerna används alltid tillsammans med vanlig symmetrisk kryptering för att öka säkerheten. Kryptering: 256bit Serpent CBC, blockchifferalgoritm med 256bit krypteringsnyckel. Chiffret är antagligen världens säkraste krypteringsalgoritm. Asymmetrisk kryptering: 3072bit modulus RSA. Blockformat RSA-KEM (så kallad ISO-standard formatering). Two-prime modulus. Meddelandesignering: 2048bit modulus RSA, blockgenerering med SHA-256 (FIPS 180-2) och 256bit Serpent CTR. Dokument: Säkerhetsbeskrivning 4
10.2 Transportkryptering Transortkrypteringen görs med asymmetrisk kryptering där den privata nyckeln lagras på servern och den publika nyckeln distribueras tillsammans med klientprogramvaran. När klientens version inte längre används destrueras krypteringsnyckeln. Kryptering: AES-256 CBC (FIPS 197), blockchifferalgoritm med 256bit krypteringsnyckel. Asymmetrisk kryptering: 2048bit modulus RSA. Blockformat RSA-KEM (så kallad ISO-standard formatering). Two-prime modulus. Autentisering: HMAC-SHA256 (FIPS 198, RFC 2104), autentiseringskod. Samma symmetriska kryptering och autentisering används även för kryptering/autentisering av klientens databas. AES har valts i det yttre lagret för att möjliggöra snabb och säker hårdvaruaccelerering i servrarna med intels AES-NI. 11 Ytterligare säkerhetsfunktioner Klientens och serverns programvara har flertalet ytterligare säkerhetsfunktioner som inte är beskrivna i detta dokumentet. Några fler säkerhetsfunktioner: Nyckelrevokering: Om en privat nyckel läcker ut kan man revokera kontot (och därmed krypteringsnyckeln) med hjälp av klienten. Den privata nyckeln blir då oanvändbar eftersom inga meddelanden längre accepteras av servern till mottagaren. Denna funktion finns inte i PGP/GnuPG. Meddelanden, adressboken och kontoinformationen (inkl. den privata nyckeln) krypteras och autentiseras när den lagras i klientens databas så informationen inte kan avlyssnas eller ändras om någon obehörig får tillgång till datorns filsystem. Information som raderas ut klientens databas raderas säkert med överskrivning. Det finns därför ingen risk att rester av krypterade meddelanden, mottagare eller privata krypteringsnycklar blir kvar som rester i datorns filsystem efter radering. Säkerhetsfunktionerna i klient och server är väl genomtänkta och samtliga dessa säkerhetsfunktioner är naturligtvis testade för att säkerställa att funktionerna är på plats och verkligen fungerar. Dokument: Säkerhetsbeskrivning 5