Att kryptera eller inte kryptera, någon form av guide

På förekommen anledning tänkte jag viga denna bloggposten åt den ädla krypteringskonsten. Anledningarna är flera till att jag gör det, men den huvudsakliga anledningen är faktiskt inte FRA-lagen, och andra liknande lagar.
Den huvudsakliga anledningen är att de flesta jag känner inte krypterar sina e-brev, och som jag skrivit om tidigare så är e-brev lika svårlästa för en utomstående som ett vykort.

Kryptering kan delas upp i två kategorier; symmetrisk och asymmetrisk.

Symmetriska chiffer, eller krypteringsalgoritmer, kallas ibland för secret-key och använder en och samma nyckel för kryptering och dekryptering.
Nackdelen med denna typen av system är att krypteringsnyckeln måste överföras på ett säkert sätt mellan sändaren och mottagaren.
Fördelen med de symmetriska algoritmerna är att de generellt sett är snabba både i mjukvara och hårdvara.

Asymmetriska chiffer kallas ibland för public-key och fungerar på ett sådant sätt att man använder skilda nycklar för att kryptera och dekryptera.
Fördelen med dessa chiffren är att nyckelutbytet kan ske över en osäker kanal, utan att en angripare kommer kunna läsa meddelanden som utväxlas (eftersom nyckeln som överförs bara kommer kryptera data), en annan fördel är att man kan använda dessa systemen för att digitalt signera mejl och filer.
Nackdelen med dessa systemen är att man måste generera långa nycklar för att nå upp till samma säkerhetsnivå som de symmetriska alternativen och de är rejält långsamma jämfört med de symmetriska kryptoalgoritmerna.

Det verkar som att man måste välja mellan snabbhet eller enkel nyckelhantering eftersom inget av alternativen erbjuder båda fördelarna.

Lösningen
Philip Zimmermann funderade över denna problematiken och påbörjade ett arbete som senare skulle bli känt som Pretty Good Privacy, eller PGP. PGP erbjöd snabb kryptering och public-key i ett och samma paket.
Hur lyckades han med detta kan man fråga sig?
PGP fungerar på så sätt att en slumpmässig nyckel, en sk. sessionsnyckel, och för meddelandet unik genereras. Sessionsnyckeln används sedan för att kryptera meddelandet med en snabb symmetrisk algoritm (PGP använde algoritmen IDEA vill jag minnas), nästa steg var sedan att kryptera sessionsnyckeln med en asymmetrisk algoritm (RSA) och bifoga den med meddelandet.
Vid dekryptering användes mottagarens privata nyckel för att dekryptera sessionsnyckeln som sedan användes för att dekryptera resten av meddelandet.
På detta sätt fick man tillgång till de symmetriska chiffrens snabbhet och de asymmetriska chiffrens enkelhet då det gällde nyckelhantering.

För den som vill läsa mer om ämnet kryptering hänvisar jag till Wikipedia och för dom som vill läsa saker i böcker är Simon Singhs ”Kodboken” en bra läsning liksom David Kahn’s ”Codebreakers” och Bruce Schneiers ”Applied Cryptohraphy”.

Guide till GnuPG
För den som själv vill skydda sina e-brev rekommenderar jag GnuPG, dels för att den är open source (vilket inte PGP är, längre) och dels för att den är PGP-kompatibel (eller OpenPGP som standarden heter). Jag tänkte ta upp hur man installerar gnuPG, vad man ska tänka på vid nyckelgenerering och hur man offentliggör sin publika nyckel.
Jag tänkte även ta upp hur man använder gnuPG med Mozilla Thunderbird och ett sätt att använda gnuPG tillsammans med gmail i en senare postning.

Att installera gnuPG är enklare än att knyta sina skor, man glider in på http://gnupg.org/download/ och laddar ned lämplig fil (om man använder windows, dom som kör Linux kan sannolikt ladda ned gnuPG via systemets pakethanterare och Mac-användare kan hitta en portning här) SHA1-summan för installationsfilen bör även laddas ned och kontrolleras.

Program för att kontrollera SHA1 summan finns här. Kontroll av checksumman görs på följande sätt

1. Kontrollera att signaturfilen är i samma katalog som exe-filen (föreslagsvis så läggs sha1sum.exe i samma katalog).

2. Öppna en kommandorad (start->kör->cmd [enter])

3. Gå till katalogen där exe och sigfilerna finns genom kommandot cd mappnamn (föreslagsvis kopieras filerna till en enkel sökväg innan detta, förslagsvis C:\tmp)

4. Kör kommandot sha1sum.exe -c gnupg-w32cli-1.4.9.exe.sig

5. Förhoppningsvis så säger programmet OK. Får man ett felmeddelande så kotrollera först att det är rätt signaturfil till rätt exe-fil (de ska ha samma namn bortsett filändelsen). Om det är rätt fil så skall INTE programmet installeras då det kan vara något lurt med det.

När GnuPG är installerat så är det dags att skapa sitt nyckelpar (här väljer jag att köra kommandoradsversionen, jag vet att det finns GUI’n men kommandoraden är likadan i både Win och Linux).

1. Starta en kommandorad, på samma sätt som ovan om du använder Windows. Linux-användare SKA veta hur man får igång en kommandorad så det tänker jag inte säga hur man gör;)

2. Om du använder Windows så är förslaget att byta katalog till katalogen där GnuPG installerades; cd katalog (antagligen cd c:\program\gnupg)

3. Kör kommandot gpg –gen-key [enter]

4. Skriv 1 och tryck enter på första frågan

5. På frågan om nyckelstorlek är standardsvaret 2048, vilket räcker. Är man paranoid skriver man 4096 och har man en långsam dator skriver man 1024 innan man trycker enter.

6. Att byta sin nyckel med jämna mellanrum är en god vana, mina nycklar brukar vara giltiga mellan 6 månader och ett år. Standard är att nyckeln aldrig kommer att bli för gammal, är du nöjd med detta så tryck enter.

7. Svara y på kontrollfrågan.

8. Skriv in ditt namn, enter, email-adress, enter, och en kommentar om du vill.

9. Svara O på kontrollfrågan om du inte vill ändra något av fälten.

10. Skriv en ”passphrase”, denna bör vara lång 10-20 tecken och slumpmässig eller svårgissad. Det finns flera sätt att skapa en bra passphrase på. Personligen så använder jag Password-safe för att skapa och lagra lösenfrasen, Diceware är ett ganska simpelt och säkert system som jag tidigare utnyttjade.

11. Klart!

När man ska publicera sin publika nyckel kan man göra på olika sätt.
Antingen kan man skicka den i ett e-brev till sina vänner och bekanta, eller så kan man ladda upp den till en nyckelserver (dessa funkar sedan som DNS-systemet, så nyckeln sprids mellan servrarna).
Om man vill skicka sin publika nyckel i ett e-brev så måste man först exportera den. För att göra detta skriver man kommandot
gpg –export –armor -o public.asc
Nu finns den publika nyckeln i textfilen public.asc, denna filen kan bifogas med e-mail.
Ska man ladda upp sin nyckel till en nyckelserver så är det, enligt mig, enklaste sättet att surfa in på MIT PGP Key server och klistra in den exporterade nyckeln i det stora fältet och trycka submit. Man kan även göra detta inifrån gnuPG med kommandot gpg –send-keys.

När det gäller nycklarna och nyckelgenerering så ska man komma ihåg följande:
1. Nyckellängden är viktig, men inte allt. 1024 bitar ger sannolikt ett tillräckligt skydd men för att vara på den säkra sidan rekommenderas 2048 bitar.

2. Skapa en bra passphrase! Om den innehåller stora och små bokstäver, siffror och specialtecken samt är slumpmässigt skapad räcker sannolikt en längd på 10-12 tecken. Används ord som återfinns i en ordlista bör man använda minst fem slumpmässigt valda ord, och hela strängen bör åtminstone vara 20 tecken.

3. Skydda den privata nyckeln! Den publika nyckeln är till för att spridas, den privata nyckeln ska hållas privat. Så enkelt är det. Förloras den privata nyckeln kan du inte dekryptera något som har krypterats med den publika motsvarigheten. Hamnar den privata nyckeln i någon annans händer kan hän utge sig för att vara dig med hjälp av signaturer och hän kan dekryptera korrespondensen. Alltså gäller backup av den privata nyckeln och säker lagring av den samma.

4. Var förutseende; skapa ett revocation-certificate till ditt nyckelpar. Om du förlorar din privata nyckel så laddar du upp certifikatet till nyckelservern och skickar det till dem du kommunicerar med. Certificatet ogiltigförklarar nyckeln som det är kopplat till. Skapa med kommandot gpg –gen-revoke [key-id].

5. Lita aldrig på en publik nyckel! Kontrollera med avsändaren att det verkligen är rätt nyckel, dels genom nyckel-id och dels genom fingerprint.

Så, då är det bara att köra igång ordentligt. För att få hjälp av gnupg vid kommandoraden används kommandot gpg –help, kryptering görs med gpg -e -r [mottagarens namn] och dekryptering görs med gpg -d, för att kunna kryptera till någon annan än dig själv krävs personens publica nyckel. Den läggs till nyckelringen med kommandot gpg –import [filnamn].

För mer info, besök Dokumentationssidan!

Hoppas det var intressant, kritik mottages tacksamt.
Inom kort kommer en postning om hur man får Gpg att fungera med Mozilla Thunderbird och Gmail (under vissa förutsättningar).

(Om någon undrar över taggarna, så beror dom på att jag anser att kryptering är en demokratisk rättighet och rätten till stark kryptering är en politisk fråga.)

Annonser

Ett svar to “Att kryptera eller inte kryptera, någon form av guide”

  1. Jonas Says:

    Hej! På < HREF="http://kryptera.se" REL="nofollow">kryptera.se<> så finns information om kryptering

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s


%d bloggare gillar detta: