2008-06-08

GPG skyddar din epost mot FRA!

En kort beskrivning av GPG, GNU Privacy Guard, ett system för att kryptera och verifiera kommunikation från ändpunkt till ändpunkt. Det är främst använt för epost, men har fler möjligheter.

Det är en viktig sak med kryptering att den går från ändpunkt till ändpunkt, annars finns alltid en risk att någon på vägen avlyssnar meddelandet i någon skarv i systemet. Kryptering för varje länk i kommunikationen är bra, men kan aldrig ersätta ändpunkt till ändpunkt kryptering. GPG, som är en fri implementation av OpenPGP standarden, är en bra lösning på det problemet. Det finns färdiga lättanvända lösningar för populära epostprogram och operativsystem. Det är ganska lätt att komma igång med och bloggosfären hjälper så gärna till:

  • Projo om hur man får igång det för epost i windows.
  • Blogge Om hur man får igång GPG på Mac
  • I Linux ingår det oftast i standardinstallationen, eller är i vart fall färdigpaketerat för installation med några musklick.

Nedan följer det minimala man bör veta för att kunna använda det vettigt.

Hur funkar det

Den enklaste formen av kryptering är symetrisk kryptering, man använder en kodnyckel för att kryptera data, sedan samma kodnyckel för att avkryptera datat så det blir läsbart igen. Det används faktiskt även av GPG, men det stora problemet när olika människor ska prata krypterat med varandra är hur man säkert utbyter en bra kodnyckel med varandra. Det problemt löser GPG med asymetrisk krytering.

Privata och nycklar och certifikat

Man skapar en privat hemlig nyckel och en matchande publik nyckel som man offentliggör. Om någon sedan vill sända något så använder de den publika offentliga nyckeln till att kryptera, sedan kan bara den som har den privata hemliga nyckeln avkryptera och läsa meddelandet.

Det är inte hela lösningen. Om någon lyckas lura den som sänder att mottagaren har hans publika nyckel, så kan denna 'man i mitten' kapa meddelandet, läsa det, och sen kryptera om det och sända det vidare för att inte märkas. Det löser GPG med signering, att lägga till en signatur, lite data som är beräknat dels av det data som signeras, dels av den som signerars privata nyckel. Sedan kan alla andra med den publika nyckeln till hjälp avgöra att bara den som har den privata nyckeln kan ha skapat signaturen, och att datat som hör till inte har ändrats efter att det signerades (för annars skulle inte signaturen stämma längre).

Med det till hjälp bakar man ihop den publika nyckeln med lite identitetsinformation (namn, epostadress) och signerar hela rasket med den privata nyckeln. Då vet alla att det är den som har den privata nyckeln som berättar om sin identitet, något som kallas certifikat. Det räcker för att vi ska kunna veta att vi pratar med samma person som förra veckan, men vi vill ibland även veta att de verkligen är den de säger.

Nytt från ASA, en ruffigt grovrastrerad poster att skriva ut och sätta upp.

Nät av förtroende (web of trust)

Vi kan själv signera andras certifikat när vi träffat dom eller på annat sätt blivit säker på vilka de är. Vi kan titta vilka som har signerat ett certifikat för att bedömma hur säkert de är, med GPG kan vi till och med själv bestämma vilka vi litar på då det gäller att signera certifikat och på det sättet bygga ett nät av förtroende.

Vi kan sprida våra certifikat person till person, lägga ut dom på vår hemsida (vilket också visar att det är den som kontrollerar hemsidan som påstår att de är hans certifikat). Det finns också speciella nyckelservrar där man kan ladda upp och söka efter certifikat (där epostadress är den viktigaste söktermen). Användarvänliga lösningar kan ofta prata med nyckelservrar automatiskt.

Svagheter

GPG löser problemet med att inehållet i det vi sänder kan avlyssnas, det gör det också möjligt att försvåra förfalskningar av meddelanden. Vi 'vet' vilka vi får informationen från. Det finns dock några svagheter.

Sårbarhet både framåt och bakåt

Om någon kommer över vår privata nyckel så kan de läsa alla gamla meddelanden som är krypterade till den nyckeln (förutsatt att de har de krypterade medelandena). De kan också läsa alla framtida meddelanden som krypteras till den nyckeln (om de som sänder inte vet att nyckeln är 'korrupt' och fortsätter sända till den nyckeln). Den som kommer över den privata nyckeln kan också sända förfalskade medelande i nykelägarens namn. Det är alltså av avgörande vikt att lyckas hålla den privata nyckeln hemlig. Den behöver inte delas med någon så det är drägligt möjligt, men den behövs för att kunna läsa krypterade meddelanden så det är väldigt bökigt att aldrig ha den på en nätansluten dator.

För att minska risken kan den privata nyckeln också krypteras med en lösenfras, ett lösenord man måste mata in för att kunna använda nyckeln. Det är starkt rekommenderat att ha en bra lösenfras på sin privata nyckel. Men t ex spyware (spionprogram) kan både lyckas sno nyckeln och spela in lösenfrasen från tangentbordet. Det är viktigt att försöka hålla datorn säker från virus, intrång och andra attacker.

Det går också att byta nyckel då och då. Men ska gamla meddelande bli säkra måste man förstöra gamla nyckeln (och då kan man inte läsa ev gamla krypterade medelande själv heller). Man blir också tvungen att sprida info om nyckelbytet. Det går att sprida nya certifikat som 'drar tillbaks' en nyckel, det kan vara bra att signera den nya nyckeln med den gamla innan man drar tillbaks den - det gör att alla som litade på den gamla nyckeln i 'nätet av förtroende' automatiskt kommer att lita på den nya nyckeln.

Låg förnekelsebarhet

Har man signerat meddelanden så har man bevisat att det är den som har privata nyckeln som signerat dom. Det blir svårt att förneka ett meddelande i efterskott. Det är delvis en bra sak men det är värt att tänka på. Det blir mer som en underskriven ed inför vittnen än som ett förtroligt privat samtal.

Ett certifikat behöver inte vara knytet till en fysisk person. Det går att skapa en 'anonym' nyckel och sända krypterade och signerade dokument som kan kollas upp till en journalist. När man sedan tar kontakt igen kan journalisten se att det är samma läcka, och journalisten kan sända svar som bara kan läsas av läckan. Det är ofta bra nog. Om någon lyckas avslöja att läckan har den privata nyckeln spricker det, men så länge läckan klarar att hålla den privata nyckeln hemlig kan läckan förbli anonym (läs dock nästa stycke om epost).

Svaghet med epost i sig själv

Den värsta konsekvensen av massiv avlyssning, möjligheten att kartlägga allas kontakter, avhjälps inte alls av GPG, för avsändare och mottagare står i mailheadrarna som inte krypteras av GPG. Det går att avhjälpa med krypterad trafik till, från och mellan mailservrar. Men mailservrarna i sig är sårbara punkter för infiltration och med datalagringsdirektivet är det tämligen kört för epostens del.

Webmail är en möjlighet att sända och läsa epost anonymt, i synnerhet om man ansluter via något anonymiseringsnätverk. Det finns webmail som använder krypterad webförbindelse och har GPG integrerat. Men då ligger den privat nyckeln på webservern så alla som kan infiltrera webservern kan avlyssna kommunikationen. GPG går dock att använda fristående, det går att kryptera en fil från filhanteraren till en utvald mottagare, det går också att skapa en signatur. Dessa kan sedan laddas upp som bilagor (redan färdigkrypterade) till en anonym webmail och på det sättet kan man uppräthålla en ändpunkt till ändpunkt kryptering. Men börjar man ha såna behov bör man inte nöja sig med den här texten utan läsa på grundligt. En bra start är The GNU Privacy Handbook.

Uppdate: En gammal post av Basic personligt berättar att Gmail stödjer GPG-pluginnen för firefox. Så man kan kryptera direkt i webläsaren och få äkta ändpunkt till ändpunkt kryptering. Låter väldigt slick.

För den som bara vill slå lite vakt om privatlivet, inte vill att alla ska läsa breven från revisorn och doktorn, vill hålla affären med chefens fru/man/dotter/pappa whatever för sig själv... Ja, för de flesta normala bruk så är GPG bra nog, lätt att komma igång med och den stora risken är trotts allt lätt att förstå - Låt inte den privata nyckeln falla i händerna på fi (men se till att de i andra änden förstår det också... Annars kan chefen komma över mottagarens nyckel, och kan läsa dina mail, och kan 'bevisa' att dom kommer från dej (om du signerar)... men han kan inte läsa meddelandena till dej).

Intessant!

Läs även andra bloggares åsikter om , , , , ,


För övrigt anser jag alla borde gå med i alfa-testningen av micro peer publishing!

Inga kommentarer:

Skicka en kommentar