Hur säkert är egentligen OpenPGP?
Kryptering av e-post har varit på tapeten ända sedan början av 90-talet när internet började användas i större utsträckning. Det första försöket var PEM (Privacy Enhanced Mail), standarden sattes samman under 1993 men fick aldrig någon riktigt stor spridning. Därför gjorde man ett nytt försök med S/MIME som det numera finns stöd för i många e-post klienter. Inte heller den här standarden har fått någon vidare större spridning och är i princip utdöd den också. Orsaken är att det är väldigt många inställningar som måste göras vilket kräver avancerade datoranvändare. Istället för att använda S/MIME använde de få som krypterade e-post på den tiden ett program som heter PGP, på den tiden var programmet gratis mjukvara. Det senaste försöket att skapa en krypteringsstandard heter OpenPGP och bygger på principerna i PGP. Idag finns dels originalprogrammet PGP som idag har blivit ett betalprogram, samt en open source implementation enligt OpenPGP-standarden som går under namnet GnuPG eller GPG. Sedan finns det flertalet program som i sin tur använder GnuPG. Det finns även plug-ins för de flesta e-post klienter som lägger till stöd för OpenPGP. Ska man kryptera e-post idag är det OpenPGP som är den mest använda standarden. Trotts detta är har OpenPGP inte nått så stor användning utan de flesta e-post idag skickas okrypterat i klartext.
Det finns fortfarande en del problem med OpenPGP som gör att jag inte tycker att det är någon bra standard, detta är bakgrunden till varför jag utvecklat programmet The Secure Channel. The Secure Channel krypterar inte e-post utan använder en helt egen standard för kryptering av meddelanden. Det här menar jag att är en av styrkorna med The Secure Channel.
Det finns tre stora säkerhetsproblem med OpenPGP:
(1) Titeln i e-post krypteras inte. Använder man ett plug-in till en e-post klient eller liknande får man se upp så att man inte sammanfattar innehållet okrypterat i titeln. Detta förstör lite poängen med att kryptera.
(2) Det finns inget egentligen bra sätt att undvika MITM attacker. MITM (Man-In-The-Middle) attacker går ut på att kapa någon annans krypteringsnyckel och byta ut den. På så vis kan man själv ta emot e-post, dekryptera informationen, ändra informationen, och sedan skicka informationen vidare till mottagaren krypterat med den rätta krypteringsnyckeln. Problemet med MITM attacker är att oftast märker vare sig sändare eller mottagare att de blivit attackerade och attacken kan fortgå under lång tid. Hur man sätter upp en MITM attack med OpenPGP och hur man kan skydda sig skulle kunna bli en helt egen artikel. För att skydda sig mot MITM attacker använder OpenPGP ett PKI av typen Web-Of-Trust, men i praktiken är det så svårt att använda detta PKI att det inte fungerar. Många nyckelhanterare för OpenPGP har dåligt eller inget stöd alls för Web-Of-Trust. I princip samtliga implementationer av OpenPGP är därför känsliga för MITM attacker och det behöver inte vara så mycket mycket svårare att sätta upp en MITM attack om man ändå avlyssnar e-post trafik på en anslutning. Många gånger förutsätter avlyssning av e-post att man redan satt upp en MITM attack i nätverket (exempelvis via ARP-spoofing), och då är steget till att sätta upp en MITM attack även mot OpenPGP dessvärre inte så långt.
(3) Det tredje problemet är att det inte finns någon tydlig separation mellan vad som är krypterat/okrypterat, eller signerat/osignerat. I praktiken kan du skicka en krypterad text till en användare och sedan få tillbaka texten i ett okrypterat svar under svarstexten. Vad var då poängen med att skicka krypterat? Det är också vanligt att plug-in inte krypterar bilagor och det är då lätt att råka skicka bilagor okrypterade med ett krypterat e-post. Signeringen i OpenPGP misslyckas på samma vis, lite beroende på plug-in så kanske du inte ens märker att texten du tar emot inte längre är signerad. Eller så tar du för givet att sändare valde att inte signera detta e-post. Om en signatur kan tas bort och det inte händer något vidare mycket, så är signaturerna i princip värdelösa. Någon som vill ändra ett brev tar då bara bort signaturen. Det går också att lägga till osignerade bilagor till ett signerat e-post vilket kan få mottagaren att felaktigt lita på bilagor. Man får också tänka på att bara för att det är krypterat till dig och sändare har ett namn i e-posten, så kan sändaren vara vem som helst. Krypteringen i sig är ingen signering eftersom man bara behöver mottagarens (din) publika nyckel för att kryptera ett meddelande. Det går alltså sammanfattningsvis att lägga till krypterade bilagor som inte är signerade till ett signerat och krypterat e-post, vilket de flesta inte reagerar på. Eller byta ut existerande bilagor.
Med det sagt så är det tydligt att OpenPGP inte är perfekt. Många av bristerna kommer ur kompromisser som behövs göras för att meddelandet fortfarande ska följa standarden för e-post. Det man bör göra, enligt min åsikt, är att frångå e-post och kommunicera med en helt annan standard. Detta är hur The Secure Channel har konstruerats. The Secure Channel påtvingar alltid kryptering/signering och visar inte osignerade meddelanden, krypteringsnycklar verifieras med ett strikt och rent PKI samt sändare och mottagare krypteras eftersom meddelanden inte är formade enligt e-post/MIME. Dessutom har konceptet krypteringsnyckel i princip tagits bort från programmets användarmodell och all kryptering sker centralt i programvaran och inte som ett plug-in. Krypterngen sker därför i bakgrunden utan att användaren behöver bry sig om detta.
Allt du behöver för att komma igång under windows hittar du på www.gpg4win.org. Vill du använda betalprogrammet PGP så marknadsförs det numera av Symantec. Betalprogrammet är snyggare och mer användarvänligt men det kan ibland bli kompatibilitetsproblem med GnuPG/OpenPGP.
Det enklaste är att använda en vanlig e-post klient och ett plug-in. Det går också bra att kryptera text med en enklare text-editor som följer med, sedan kryptera texten och klistra in i ett vanligt e-post meddelande. Hur du använder OpenPGP får tyvärr inte plats här men det finns bra guider på internet.