SethP's webbplats - kryptering

PGP-kryptering

GnuPG.jpgPå den här sidan går jag igenom de absoluta grunderna i kryptering med hjälp av GPG i programmet Kleopatra som är en del av Gpg4win. Först dock lite om koncepten som är bra att känna till.

GPG (eller GnuPG) är egentligen bara den öppna källkoden för PGP (Pretty Good Privacy). PGP är dock en kommersiell produkt numera, men det är samma krypteringsprinciper som tillämpas. Gpg4win är den huvudsakliga Windowsversionen för att använda GPG.

PGP i sig utvecklades av Philip R. Zimmermann, och släpptes 1991, för att implementera ett nytt koncept inom kryptering, nämligen det här med nyckelpar. Ett nyckelpar består av en hemlig och en publik nyckel. Den hemliga ska man se till att hålla helt och hållet för sig själv och förvara på en säker plats. Den publika nyckeln däremot är den som man kan sprida i princip hur som helst för att andra ska kunna skicka krypterade meddelanden till en. Tidigare kryptering bestod av att man använde en och samma nyckel för att både kryptera och avkryptera meddelanden. Detta medförde dock att nyckeln (den enda så att säga) lätt kunde falla i orätta händer. PGP däremot gjorde att man inte behövde riskera något sådant i och med att de publika nycklarna aldrig kan användas för att avkoda något.

Hur går då kryptering enligt principen PGP till?
Jo. För att kunna skicka ett krypterat meddelande till någon behöver man dennes publika nyckel. För att istället kunna avkryptera ett hemligt meddelande måste detta först och främst vara krypterat med min publika nyckel (från avsändaren alltså) och därefter låser jag upp det med min hemliga nyckel. Alltså; publika nycklar för att kryptera något till någon och hemliga nycklar för att avkryptera.

 

Varför kryptera?

Tja, detta tål nog att funderas på. I första hand är nog svaret väldigt enkelt: Därför att man vill hålla något hemligt. Och i första hand gäller detta din e-post. Men varför skulle man då vilja hålla något hemligt och för vem?

Tänk så här:
Att skicka okrypterad e-post är precis samma sak som att skicka vykort. Vem som helst som hanterar, processar eller kommer i kontakt med det, alltså både behöriga och obehöriga, kan läsa precis allt som står där. Att kryptera e-post innebär i korthet att man lägger meddelandet i ett kuvert som bara mottagaren får (och kan) öppna.

I dagens läge skickar nog väldigt många alla möjliga olika uppgifter och "brev" via e-post och de allra flesta använder nog främst Gmail (från Google). Problemet är dock att allt man skickar via vanlig e-post distribueras i klartext. Därför är det inte någon bra idé att skicka något som man vill hålla hemligt på det sättet. Moster Agda kanske inte kan läsa din e-post, om hon inte har fått tag på dina inloggningsuppgifter, men i övrigt kan i stort sett vem som helst se dina mail. I synnerhet Google (i det här fallet) kan läsa alla dina (okrypterade) mail. Men om man krypterar så kan man vara säker på att det bara är du och mottagaren som känner till innehållet. Ingen annan.

 

Kryptering (steg för steg)

gpg4win-logo.jpgOkej. Då är det dags att börja tillämpa e-postkryptering och här beskriver jag processen med hjälp av Kleopatra (under Windows) i steg för steg. Jag skulle nog rekommendera att du följer anvisningarna på en större skärm eftersom bilderna blir lite väl plottriga på en mindre, t ex en mobilskärm.

Det första man gör är att ladda ner och installera programsviten Gpg4win, i skrivande stund version 3.1.5. (Om du inte vill betala eller donera så klicka bara i $0.)

Under installationen rekommenderar jag att man avmarkerar alternativen för GPA och GpgOL (bild 01). GPA är en ersättare till Kleopatra, och som jag ser det rätt onödig att installera om man använder Kleopatra. GpgOL är ett tillägg till Outlook (Microsofts e-postprogram), men min erfarenhet är att det strular en hel del och kräver specifika versioner av Outlook. Efter installationen ser det ut som här nedan till vänster när man har kört igång programmet (Kleopatra).

KleopatraNär installationen är färdig ska man skapa ett nyckelpar genom att klicka på knappen "Nytt nyckelpar" (som på bilden till vänster), alternativt skapa ett genom att välja samma i Arkiv-menyn. Då möts du av den här dialogrutan (bild 03) där du fyller i ditt namn och den e-postadress som du vill använda. Obervera att du ska fylla i ditt eget namn och den e-postadress du vill använda för att det ska fungera framöver. Om du klickar på Avancerade inställningar så kan du välja krypteringsalgoritm och om du vill att din nyckel ska användas för signering och när den ska gå ut (bild 04). Min rekommendation är att man använder de förvalda för 2048 bitars RSA-kryptering och att de ska användas för signering. Men om man vill så kan man klicka bort att nyckelparet bara ska vara giltigt en viss tid, vilket jag rekommenderar. Utgångsdatum kan dock vara bra om man ska publicera sin publika nyckel på någon nyckelserver.

Nästa steg i guiden är att granska de parametrar man har valt (bild 05) och om det ser korrekt ut klicka på Skapa. Därefter ska du skriva in det lösenord som du vill använda. Kom ihåg att välja ett bra/starkt lösenord (alltså inte typ 1234 eller password, men det är ju upp till dig att avgöra) och att du inte ska glömma bort det valda lösenordet.

Här (bild 06) rekommenderar jag starkt att du tar backup på ditt nyckelpar och förvarar filen på ett säkert ställe. Du väljer plats (och filnamn) genom att klicka på mappen till höger (bild 07). Om du behöver ta backup vid något senare tillfälle så gör du det via Arkivmenyn (bild 08). Kom bara ihåg att först markera din egen nyckel i listan, vilket jag glömde göra när jag skapade bilden. Observera också att menyvalet "Exportera..." är det som används när man ska tillverka, eller exportera, sin publika nyckel, alltså den som kan spridas, och att menyvalet "Exportera hemliga nycklar" är det som används för personlig backup. Härvidlag är du klar så långt att du kan exportera din publika nyckel som du kan skicka till någon annan via e-post t ex, eller lägga upp på en hemsida som jag själv har valt att göra (se nedan). Det är alltså den som andra behöver för att kunna skicka krypterad e-post (eller filer eller meddelanden) till dig.


 

Sådär. Då är du klar för att kunna ta emot och även skicka krypterat.

Säg nu att du ska skicka något (krypterat) till någon. Då behöver du först en fil med dennes publika nyckel. Denna sparar du och väljer sedan att importera i Kleopatra. Du får då en fråga om hur du vill certifiera den (bild 09). Detta innebär att du talar om för programmet att den nyckel du har laddat ner verkligen tillhör den person som säger sig att tillverkat den. Särskilt viktigt är det när man ska kolla signaturer, alltså att meddelandet (eller något annat, ett program t ex) verkligen kommer från den man tror och att det inte har förvanskats någonstans på vägen så att säga. Du certifierar genom att kolla att det så kallade fingeravtrycket stämmer. Om du vet, eller anser dig veta, att det stämmer så glöm inte att markera checkrutan för "Jag har verifierat fingeravtrycket" (bild 10). I nästa steg (bild 11) rekommenderar jag att bara certifiera för dig själv... Just det här med att certifiera kan man så klart göra vid ett senare tillfälle.

Kleopatra med nycklarDu har nu en första uppsättning nycklar i programmet (bilden till vänster). Dina egna och någon annans.

För att skicka ett krypterat meddelande bör du inte börja skriva i ditt e-postprogram eller på Gmail på webben. Risken finns då att du råkar skicka något okrypterat eller att t ex Google kan avläsa det du skriver innan det är krypterat. Istället ska du klicka på knappen Anteckningsblock. Därefter väljer du fliken Mottagare (bild 13) och kryssar för om du vill signera meddelandet och vem du ska skicka det till. Observera att fälten för mottagare (Kryptera för andra) inte är dropdown- eller flervalsmenyer, så man är tvungen att börja skriva och sedan klicka i det rätta valet så att fältet blir komplett ifyllt. (Ibland kan det vara bra att även kryptera det till sig själv så att du senare kan avkryptera det.. själv. I annat fall är det bara mottagaren som kan avkryptera och se innehållet.)

Sedan går du till fliken Anteckningsblock (bild 14) där du skriver själva meddelandet.

När du har skrivit klart så klickar du på knappen "Signera och kryptera anteckningsblock". Alltså inte knappen ovanför som bara heter "Signera och kryptera..." för den använder man istället när man ska kryptera t ex filer (bilder etc). Efter signering ombeds man dessutom att fylla i sitt lösenord för att veta att du som har skickat det är just du. Då omvandlas texten till krypterad sådan (bild 15), och det är denna som kopieras och sedan klistras in i meddelandefältet i ditt e-postprogrammet eller på webben. Observera att all text, alltså från och med "-----BEGIN PGP MESSAGE-----" till och med "-----END PGP MESSAGE-----", ska markeras och kopieras.


 

KrypteratMotsvarande förfarande tillämpas om du får något PGP-krypterat skickat till dig. Då kopierar du den krypterade texten (i dess helhet, som ovan eller som bilden till vänster) och klistrar in den i Anteckningsblocket i Kleopatra. Därefter klickar du på "Avkoda och verifiera anteckningblock" (bild 17) varvid texten som av magi, och efter att du har fyllt i ditt lösenord, blir läsbar igen (bild 18).

 

 

 

Min PGP-nyckel

Här kan du hämta min publika PGP-nyckel som kan vara bra att ha om du vill skicka något krypterat (kryptiskt) till mig. Nyckeln ligger här både som en asc-fil och i en txt-fil, alltså mer eller mindre i "klartext".   ;-)

 

"The EFAIL flaw"

Jag har tidigare skrivit lite om den så kallade EFAIL-sårbarheten här. Se t ex techworld.idg.se. Denna sårbarhet gäller dock inte det förfarande vid kryptering och framför allt dekryptering som jag har beskrivit ovan. Vad EFAIL handlar om är istället en sårbarhet i implementeringen, alltså i hur man avkrypterar sina meddelanden och i det här fallet e-postmeddelanden.

Genom en så kallad man-in-the-middle-attack, alltså att en illasinnad hackare först och främst ska ha tillgång till e-posten ifråga, så kan hen ändra i ett e-postmeddelande som avläses i HTML-format och avkrypteras automatiskt så att det, när det avkrypteras och genom den ändrade html-koden, skickas i klartext till hackaren. Detta kräver dock tre saker. 1) Att meddelandet avläses i html-format. 2) Att meddelandet snappas upp på vägen. Och 3) Att man använder ett så kallat plugin i en e-postklient (alltså ett e-postprogram) som har den här specifika sårbarheten... Men i det tillvägagångssätt som jag har beskrivit så sker avkrypteringen istället utanför e-postklienter (eller webbgränssnitt) och följaktligen är det ingen fara på taket. Inte vad det gäller EFAIL i alla fall.

Här låter jag Shannon Morse på ThreatWire förklara det hela lite närmare, och med lite mera teknolingo. Klicka på bilden nedan för att spela upp filmen (från YouTube).

Bild ur YouTube-video

 

Mer information finns bl a på International Consortium of Investigative Journalists (icij.org) där man bl a skriver att "The EFAIL vulnerability isn’t a problem with the PGP protocol itself; instead it concerns the systems that automate the decryption process for users." Alltså; Det är inte något problem med PGP (eller GnuPG) i sig utan i hur implementeringen går till. Och för den som veta mer om just EFAIL rekommenderar jag efail.de för vidare läsning.

Huruvida e-postklienter och plugin-moduler är patchade numera låter jag vara osagt eftersom jag faktiskt inte vet (i skrivande stund) och eftersom förfarandet ovan är säkert från just EFAIL.

 

Lite eftertanke

Ja. Så har jag valt att kalla den här "disclaimern". För det finns ju faktiskt en del saker att ha i åtanke när man väljer att kryptera e-post och meddelanden.

Det första är att ingen så kallad metadata skyddas eller krypteras. Det innebär i korthet att myndigheter och andra lätt kan se vem som kommunicerat med vem, när det hände, förmodligen positionerna utifrån exempelvis IP-adresser och så, viktigast av allt; den så kallade ämnesraden. Den krypteras inte.

Vidare bör man nog kommunicera krypterat med en del smärre förbehåll. Låt oss fundera på hur säker/krypterad kommunikation kan te sig utifrån ett myndighetsperspektiv. Krypterad kommunikation kan ju handla om allt möjligt, från hemliga matlagningsrecept till recept på eller planering inför betydligt mera illasinnade saker. Men hur ska myndigheterna kunna veta vad som är vad? Det är där metadatan kommer in. Därför kan det nog finnas skäl för att inte kommunicera med precis vem som helst, även om informationen bara är av privat natur eller bara handlar om matlagningsrecept. Kommunikationen i sig blir ju rätt intressant om det visar sig att den du kommunicerar med (krypterat alltså) i andra sammanhang brukar kommunicera om riktigt olagliga och "fula" saker. Det handlar då helt enkelt om att du kan (!) komma att hamna på någon myndighets radar, så att säga. Själv är jag av den uppfattningen att så länge jag inte pratar exempelvis knark-eller bombrecept, eller planerar något våldsdåd, så har jag inget att frukta eller skämmas för. Men samtidigt krypterar jag inte helt i onödan och så har jag ju lite förbehåll om vem jag kommunicerar krypterat med, och så klart om vad jag kommunicerar.

De här sakerna kanske kan te sig lite alarmerande? Men samtidigt bör man ju komma ihåg att man ju faktiskt brukar lägga vanliga brev i ett kuvert och till och med försegla det. Samma sak anser jag bör gälla för exempelvis e-post, åtminstone så länge man tycker att det man skickar inte ska vara tillgängligt för vem som helst. Dessutom är det ju så att väldigt mycket av trafiken på Internet redan sker i krypterad form. All kommunikation med webbadresser som har prefixet https skickas krypterad till exempel. Att en del e-post då skickas med PGP-kryptering kanske "försvinner i bruset" så att säga.