Modell 2: Asymmetriska nycklar

Nackdelen med den klassiska modellen är att en ny nyckel måste distribueras för varje nytt meddelande, över en kanal som bedöms säker.

Genom att introducera asymmetriska nycklar kan nycklarna distribueras över osäkra kanaler. Det innebär att varje avsändare och mottagare skapar var sitt nyckelpar, där varje nyckelpar består av en privat och en öppen nyckel. Den öppna nyckeln distribueras till alla som mottagaren vill ha krypterade meddelande ifrån.

Grundproblemet är att det är svårt för mottagarna att veta om det är korrekt öppen nyckel de erhållit. Genom att kommunicera över en säker kanal kan den publika nyckeln verifieras genom att göra stickprov på värden i nyckeln, eller genom att jämföra resultatet av kondensat eller så kallade fingeravtryck av den publika nyckeln.

Efter att de publika nycklarna verifierats kan meddelande krypteras och sedan skickas till mottagaren som innehar motsvarande privat nyckel.

GnuPG

För att kunna skicka meddelande till varandra med GnuPG ska fingeravtrycket för nyckeln stämmas av via en säker kanal, så att man vet att rätt nycklar används.

Men asymmetriska system används inte för själva krypteringen – för det ändamålet väljs en symmetrisk meddelandenyckel slumpmässigt. Meddelandet krypteras med den symmetriska nyckeln. Den symmetriska nyckeln krypteras sedan i sin tur med den öppna nyckeln.

Det mest kända programmet som använder det här förfaringssättet är Gnu Privacy Guard, GnuPG. Det är öppen källkod.

GnuPG består av två delar, en nyckelhanterare och en krypterings/ dekrypteringsmotor. När en användare startar programmet för första gången måste ett nyckelpar genereras. En bra längd på en nyckel är 4 096 bitar eller mer.

I det här läget dyker det första problemen med lösningen upp. Många slutanvändare förstår inte konceptet med asymmetriska kryptosystem. När de ska distribuera sina publika nycklar, distribuerar de i stället både den privata och publika nyckeln. Många förstår inte heller att den privata nyckeln måste skyddas med ett komplext lösenord som motsvarar den kryptering som meddelanden skickas med.

De här två felen i kombination eliminerar i princip säkerheten i modellen helt och hållet.

För att kunna skicka meddelanden till andra krävs att man har mottagarens öppna nyckel och att man importerat den i sin nyckelhanterare. Även här gör många fel och krypterar meddelandet med sin egna öppna nyckel, vilket gör det omöjligt för mottagaren att läsa mejlet.

Vidare slarvar de flesta med att validera nycklarna med varandra, vilket gör det möjligt för en angripare att genomföra en man in the middleattack vid nyckeldistributionen.

Kort sagt: GnuPG är långt mycket säkrare än Winzip, men det kräver att användaren vet vad den gör.

I ett företagsperspektiv saknas lösningar i GnuPG för nyckeldeponering, vilket gör att det inte är självklart att den egna organisationen kan läsa de meddelanden som skickades ut. Det kan rent av bli så att inte användaren själv kan läsa det, om hen lagt till sig själv i mottagarlistan.

GnuPG har också en funktion där man kan gå i god för varandras nycklar och på så sätt skapa ett värde av pålitlighet. Det är ett intressant koncept, men det ligger för många mjuka värderingar i huruvida en nyckel är säker eller ej. Tänk dig till exempel scenariot där du upptäcker att NSA har signerat en nyckel och säger att den är pålitlig, samtidigt som det är NSA du vill skydda meddelandet från.