Jan 162012
 

Sedan ett år tillbaka kräver alla certifikatutfärdare att du har nycklar med minst 2048 bitars längd. Det är ett sätt att höja säkerheten på nätet i takt med att datorerna blir mer och mer kraftfulla. Det som var säkert för tio år sedan är inte säkert nu, när en standard-PC har flera CPU-kärnor med en massiv kapacitet.

När används Certifikat-nycklarna?

Nycklarna i certifikaten används för att kontrollera en servers (och kanske också en klients) identitet vid start av en TLS eller SSL-session. Med stöd av dessa starka nycklar skapas en kortare krypteringsnyckel som används för att kryptera dataströmmen. Den används bara för sessionen och kastas därefter. Att kryptera hela dataströmmen med nycklar på 2048 bitar skulle ta alldeles för mycket kapacitet. Genom att använda dessa för att skydda identitetskontroll och utbyte av nycklar för kryptering av sessionen får man en hög säkerhet.

Vad innebär det här för mig?

Om du har ett gammalt certifikat du ska förnya, så måste du skapa nya nycklar och skapa en ny CSR – oavsett vilken webbserver du använder. Att byta nycklar med några års mellanrum är förmodligen en bra idé ändå. Om du söker ett nytt certifikat, så ska du ange minst 2048 bitar när du startar processen med att skapa en CSR och därmed generera nycklarna.

Om programvaran inte stödjer mer än 1024 bitar?

Om din programvara är så gammal att den inte stödjer större nyckellängd än 1024 bitar så har du inget val annat än att uppgradera programmet. Certifikatutfärdarna gör inte några undantag som innebär en lägre säkerhet i certifikatkedjan.

 

Nyckelparet – en hemlig och en publik nyckel

 

Kortkurs om SSL och TLSGrunden i asymmetrisk kryptering är att det inte går att kryptera och dekryptera med samma nyckel. I stället används två nycklar. Det som krypteras med den ena kan bara dekrypteras med den andra. Det som krypteras med den andra kan bara dekrypteras med den första. De två nycklarna utgör ett par som hör ihop.

Dölj den ena, sprid den andra

Nycklarna skapas tillsammans med hjälp av en slumptalsgenerator. Ett slumptal skapas, som används av ett program för att med hjälp av formeln få fram nycklarna. Man väljer sedan en nyckel och håller den hemlig, den kallas “hemlig nyckel” eller “privat nyckel” (slarvigt översatt engelskans “private key”). Den andra nyckeln kan man lugnt publicera och distribuera till vem som helst. Den kallas “öppen nyckel” eller  “publik nyckel”, en dålig direktöversättning av “public key”, den engelska termen..

Exempel: Identifikation

Om man vill identifiera sig själv kan man kryptera en text med sin privata nyckel. Den kan av den som vill kolla identiteten dekrypteras med den öppna nyckeln, som alla har tillgång till. Om värdet som kommer fram överensstämmer med det värde som från början krypterades kan mottagaren vara säker på att avsändaren verkligen är korrekt avsändare, eftersom ett värde som korrekt kan dekrypteras med den offentliga nyckeln bara kan ha krypterats med rätt privata nyckel.

Rätt information till rätt mottagare

Om man har en persons öppna nyckel kan man använda den för kryptering. Den enda som kan dekryptera informationen efter en sådan kryptering är den som har den privata nyckeln. På det sättet kan man vara säker på att endast avsedd mottagare kan få tillgång till informationen.

Vad är en avsändare och en mottagare?

När du läst texten kanske du har tänkt på kommunikation mellan personer. Det kan lika gärna vara mellan juridiska personer, som företag, myndigheter eller organisationer. Företaget har sin egen privata nyckel och kan med hjälp av den sköta affärskorrespondens, som order, fakturering och annat.

Det kan också vara en dator. Datorn ska kommunicera med en annan dator över Internet eller företagets interna nätverk. För att säkerställa kommunikationen vill systemen vara säkra på att rätt datorsystem tar emot informationen och att andra system inte kan tillgodogöra sig information som inte är avsedd för dessa.

Programvaror kan ha sina egna nycklar så att man kan avgöra att det är rätt programvara på rätt dator man kommunicerar med.

Tekniken med nyckelpar är alltså användbar på många olika nivåer, mellan personer, datorer, programvaror och andra saker.

Nyckelkvalitet är viktigt

Nycklar räknas fram genom att en programvara tar fram ett slumptal, som sedan matas in i en matematisk formel som räknar fram två nycklar. Den vanligaste formeln i dessa sammanhang är RSA. Slumptal är bland det svåraste som en dator kan jobba med. Ska man skapa många nycklar krävs datorer med mycket bra slumptalsgeneratorer. Inga nycklar får likna varandra så man kan se ett mönster.

En annan faktor vad gäller kvalitet är nyckelns längd. Ju längre nyckellängd, desto starkare kryptering. För nycklar i digitala signaturer använder man  1024-bitars nycklar eller större.

Olika nycklar för olika användningsområden

En användare kommer att ha flera olika nyckelpar för olika användningsområden. Bowlingklubben kan ge medlemmarna nycklar för access till den interna banbokningen. Banken kan använda ett eget system för Internet-tjänster. Staten kan använda ett annat för deklarationer.

Det är klart att den privata nyckeln för bowlingklubben inte har samma värde som en nyckel som ger access till privata banktjänster. Risken för ägaren är större om en sådan försvinner.

Privata nycklar är privata och får aldrig spridas. De ska inte heller lagras på datorsystem som andra kan använda. Det bästa sättet att förvara sådana nycklar som ger access till banken och liknande värden är ett aktiva kort, en enhet som man likt ett id-kort förvarar i sin plånbok och bär med sig.

Privata nycklar för datorsystem, sådana som används för access till nätverket, kanske inte är så bra att ha på aktiva kort. Nycklarna används hela tiden och byts ut ganska ofta. Ett kort kan lätt avlägsnas från datorn, vilket inte är så bra. Det är troligen bättre om nyckeln skyddas av operativsystemet på en väl avspärrad del av hårddisken. Den typen av servrar bör också ha ett ordentligt fysiskt skydd.

Ju oftare en nyckel används, desto oftare behöver den bytas ut. Ingen nyckel får användas under längre tid om den ska ha något värde.