Några snabba svar om vad SSL/TLS-certifikat är

Varför använder man SSL-certifikat?

SSL/TLS-certifikat gör det möjligt att lägga till två viktiga funktioner till onlinekommunikation.

  1. Avsändarens identitet
    Om certifikatet innehåller namnet på den du kommunicerar med och din maskin litar på utfärdaren av certifikatet, litar din maskin på att du pratar med rätt webbserver. Dessutom signeras data du tar emot med certifikatet så att den inte kan manipuleras under överföringen.
  2. Datahemlighold
    Två parter som aldrig har träffats kan via en mycket osäker kanal (till exempel internet) upprätta en säker kanal, utan att de som avlyssnar den osäkra linjen kan lyssna på den säkra.

Idag är det möjligt att upprätta kryptering utan TLS-certifikatet, men det är fortfarande det enda vi kan använda för att säkerställa att servern vi kommunicerar med verkligen är den rätta.

Varför skulle internet inte fungera utan SSL/TLS?

Den enda tillgängliga krypteringsformen skulle vara symmetrisk kryptering, vilket innebär att parter som ska kommunicera säkert måste ha en hemlig kod på förhand, som inte kommuniceras över en osäker kanal som internet eller telefon.

Du skulle alltså behöva gå till banken, postkontoret, webbshoppen, din arbetsplats och så vidare och komma överens om en kod med var och en, innan du kommunicerar med dem online.

Alla andra skulle du inte kunna kommunicera säkert med, eftersom alla försök att komma överens om en kod över internet kan avlyssnas. Och även om du utbyter en kod säkert med motparten, kan du inte vara säker på att det verkligen är rätt person du pratar med, eller någon som sitter emellan dig och dem (Man in the middle).

Så slut med att skapa konton på webbplatser, handla på ebay, amazon, facebook eller ange kreditkortsinformation online.

Alla skulle kunna avlyssna, få varandras koder och, ännu viktigare, alla skulle kunna utge sig för att vara varandra.

Vad finns i ett SSL/TLS-certifikat?

Ett SSL/TLS-certifikat består alltid som minimum av en privat nyckel som bara ägaren känner till och en offentlig nyckel som alla har tillgång till.

Dessutom kan certifikatet innehålla information om:

  • Vem certifikatet tillhör, till exempel FairSSL ApS eller Sole Viktor
  • Vem som kan kommunicera med certifikatet, till exempel www.fairssl.se eller info@fairssl.se
  • Vem som har skapat certifikatet och deras signatur, till exempel GlobalSign med en SHA256-signatur
  • Var man kan hämta en kopia av det offentliga certifikatet (public key) som har skapat detta certifikat, vanligtvis en URL eller lokal filsökväg
  • Var man kan kontrollera om certifikatet har blivit återkallat (CRL/OCSP)
  • För vilka ändamål certifikatet får användas, till exempel kryptering av e-postdata, signering av program, serverkommunikation, klientkommunikation eller att skapa nya certifikat
  • När certifikatet är giltigt från och till

Varför har SSL-certifikat ett utgångsdatum?

Certifikat löper ut bland annat för att minska den tid en potentiell hackare har på sig att knäcka nyckeln.

Det tvingar också till ett snabbare byte av certifikat som kanske innehåller brister som upptäcks först senare.

Det minskar potentiellt också tiden som ett förlorat eller stulet certifikat kan användas, men det är mer teoretiskt, eftersom missbruk under bara några timmar i sig kan vara katastrofalt.

Vad är skillnaden mellan ett certifikat utfärdat av en betrodd CA, intern CA eller självutfärdat?

  • Betrodd offentlig CA
    Ett certifikat utfärdat av en betrodd CA, till exempel Comodo, är signerat av ett certifikat som har skapats av ett betrott rotcertifikat som är installerat i klienter från fabrik, av till exempel Nokia, Microsoft, Sony och så vidare. Kravet på den betrodda CA:n är vanligtvis att följa en lång rad strikta regler, såsom de som specificeras av CAB/Forum.
  • Intern CA
    Fungerar på samma sätt: certifikatet är utfärdat av ett annat intermediärt certifikat eller rotcertifikat, men rotcertifikatet måste installeras på varje klientdator eller mobiltelefon det ska fungera med, till exempel av företagets IT-avdelning.
  • Självutfärdat/Self-Signed certifikat
    Det finns bara tillit till certifikatet om en kopia installeras på varje klient.

Vad är relationen mellan HTTP, HTTPS och certifikat?

HTTP är ett protokoll som bestämmer hur en webbläsare och webbserver kommunicerar.

HTTP(S) är tillägg av ett SSL/TLS-lager som lägger sig runt HTTP och säkrar kommunikationen.

Webbläsaren använder SSL/TLS för att säkerställa:

  • Att certifikatet är signerat av en kedja av certifikat som slutar med ett rotcertifikat installerat på klienten
  • Att certifikatet fortfarande är giltigt och inte har återkallats
  • Att certifikatet innehåller ett SAN DNS/IP-namn som matchar servern man kommunicerar med
  • Att en hemlighet kan upprättas mellan webbläsare och webbserver som kan användas för att kryptera kommunikationen

Finns det en koppling mellan certifikat och krypterad dataöverföring?

SSL/TLS-certifikat används för kryptering genom att utbyta en slumpmässig nyckel som sedan ska användas för att kryptera själva datan, krypterad med hjälp av den offentliga nyckeln i certifikatet.

Vid asymmetrisk kryptering använder klienten certifikatets publika nyckel för att kryptera en slumpmässig hemlighet, som bara servern kan dekryptera med sin privata nyckel.

Förenklat sker följande steg i en webbläsare:

  1. Webbläsarklienten använder webbserverns offentliga nyckel (som alla har tillgång till) för att kryptera en hemlighet som den själv har hittat på.
  2. Webbservern dekrypterar sedan hemligheten med hjälp av sin privata nyckel (som bara den har).
  3. Nu har både webbservern och webbläsarklienten samma hemlighet, utan att någon annan har kunnat förstå eller avlyssna den.
  4. De byter nu till en snabbare symmetrisk kryptering, med samma hemlighet för att kryptera och dekryptera informationen.

Asymmetrisk kryptering med SSL/TLS-certifikatet gör det möjligt att leverera en hemlighet till webbservern som bara den kan läsa. Därefter används certifikatet inte för krypteringen (säker e-postkommunikation är undantaget), utan istället en snabbare symmetrisk kryptering.

Varför skrivs onlinekryptering som SSL, TLS eller SSL/TLS?

Det har blivit vanligt att kalla onlinekryptering för SSL (Secure Sockets Layer), eftersom det var det första protokollet som användes brett för onlinekryptering. Det är dock TLS-protokollet (Transport Layer Security), en vidareutveckling av SSL 3.0, som används idag.