IPAddress-Lookup.com

SSL-certifikat och HTTPS – en förklaring

IPAddress-Lookup.com ·

Varje gång du besöker en webbplats och ser ett litet hänglås bredvid adressen, eller märker att webbadressen börjar med https:// istället för http://, förlitar du dig på en av de viktigaste tekniska lösningarna på det moderna internet: SSL/TLS-kryptering och de digitala certifikat som möjliggör den. Dessa certifikat skyddar i det tysta dina lösenord, kreditkortsnummer, privata meddelanden och surfvanor från alla som eventuellt lyssnar på nätverket mellan dig och servern. Men trots att det är något så grundläggande förblir mekaniken bakom SSL-certifikat och HTTPS ett mysterium för de flesta. Den här guiden lyfter på slöjan och förklarar, på ett lättförståeligt sätt, exakt vad SSL/TLS är, hur krypteringen fungerar, vad ett certifikat egentligen bevisar och hur din webbläsare avgör om den ska lita på en webbplats eller inte.

Vad SSL och TLS egentligen är

SSL står för Secure Sockets Layer, ett protokoll som ursprungligen utvecklades av Netscape i mitten av 1990-talet för att säkra kommunikationen mellan webbläsare och servrar. Problemet som det löste var enkelt att beskriva men svårt att åtgärda: det ursprungliga webbprotokollet (HTTP) skickade allt som vanlig, läsbar text. Vem som helst som befann sig mellan dig och en webbplats – en osäker Wi-Fi-hotspot, en internetleverantör, en komprometterad router – kunde läsa eller till och med ändra data som flödade fram och tillbaka. SSL förpackade den trafiken i ett kryptografiskt lager så att den blev meningslös för avlyssnare.

SSL i sig är numera föråldrat. Det visade sig att SSL 2.0 och SSL 3.0 innehöll allvarliga säkerhetsbrister och har varit ur bruk i flera år. Det protokoll som faktiskt säkrar webben idag kallas TLS, eller Transport Layer Security. TLS är den direkta efterföljaren till SSL, och när folk säger ”SSL-certifikat” menar de nästan alltid ett certifikat som används med TLS. Namnet har helt enkelt fastnat eftersom det var välbekant. Utvecklingen ser ut så här:

  • SSL 1.0 – släpptes aldrig offentligt på grund av säkerhetsbrister.
  • SSL 2.0 (1995) och SSL 3.0 (1996) – båda är nu föråldrade och inaktiverade överallt.
  • TLS 1.0 (1999) – den första versionen under namnet TLS; även den är idag föråldrad.
  • TLS 1.1 (2006) — togs ur bruk tillsammans med 1.0.
  • TLS 1.2 (2008) – används fortfarande i stor utsträckning och anses säker när den är korrekt konfigurerad.
  • TLS 1.3 (2018) – den nuvarande standarden, snabbare och utan äldre, svaga algoritmer.

TLS 1.3 var en omfattande omarbetning. Den tog bort dussintals föråldrade krypteringsalternativ som hade orsakat sårbarheter och effektiviserade anslutningsupprättandet så att säkra sessioner etableras snabbare. Moderna webbläsare förhandlar fram den högsta versionen som båda sidor stöder, vilket i praktiken innebär TLS 1.2 eller 1.3.

Vad ett SSL-certifikat egentligen gör

Ett SSL/TLS-certifikat utför två olika uppgifter, och det är viktigt att förstå att de är åtskilda. Den första är kryptering – att förvränga data så att de inte kan läsas under överföringen. Den andra är autentisering, eller identitetsverifiering – att bevisa att servern du kommunicerar med verkligen tillhör den domän som visas i adressfältet, och inte någon bedragare som har avlyssnat din anslutning.

Kryptering utan autentisering skulle vara farligt. Du skulle kunna ha en perfekt krypterad anslutning till en angripare som helt enkelt vidarebefordrar din trafik samtidigt som denne läser allt. Certifikatet löser detta genom att koppla en kryptografisk nyckel till en verifierad identitet. När din webbläsare godkänner ett certifikat bekräftar den både att anslutningen kommer att vara privat och att den andra parten är den den utger sig för att vara. Tillsammans är det dessa två garantier som gör internetbanker, nätbutiker och inloggningar säkra.

Asymmetrisk kontra symmetrisk kryptografi

För att förstå hur HTTPS fungerar behöver du två begrepp från kryptografin, och de är enklare än de låter.

Symmetrisk kryptering använder en enda delad hemlig nyckel för att både kryptera och dekryptera data. Den är extremt snabb och effektiv, vilket gör den idealisk för att kryptera de stora datamängderna under en faktisk webbläsarsession. Nackdelen är uppenbar: båda sidor behöver samma nyckel, och om du skickar den nyckeln över ett osäkert nätverk kan en avlyssnare få tag på den.

Asymmetrisk kryptering löser problemet med nyckeldelning genom att använda ett par matchande nycklar: en offentlig nyckel som vem som helst kan se och en privat nyckel som ägaren håller hemlig. Data som krypterats med den offentliga nyckeln kan endast dekrypteras med den privata nyckeln, och vice versa. Detta gör det möjligt för två främlingar att komma överens om en hemlighet via en öppen kanal. Asymmetrisk kryptering är dock långsam, så den används inte under hela kommunikationen.

HTTPS kombinerar det bästa av båda. Det använder långsam asymmetrisk kryptering kortvarigt, i början, för att på ett säkert sätt etablera en delad hemlighet, och byter sedan till snabb symmetrisk kryptering under resten av sessionen. Denna förhandling kallas TLS-handskakningen.

Hur HTTPS fungerar: en genomgång av TLS-handskakningen

När du skriver in en webbadress omvandlar din webbläsare först domännamnet till en IP-adress – en process som är nära kopplad till hur DNS fungerar – och öppnar sedan en anslutning till den servern. Innan någon webbsida utbyts äger TLS-handskakningen rum. Här är vad som händer, steg för steg.

  1. ClientHello. Din webbläsare skickar det första meddelandet. Det innehåller en lista över de TLS-versioner den stöder, de krypteringssviter (kombinationer av krypteringsalgoritmer) den kan använda samt ett slumpmässigt värde som kommer att användas vid nyckelgenereringen. Tänk på det som att säga ”här är vem jag är och här är vad jag kan säga”.
  2. ServerHello. Servern svarar genom att välja den TLS-version och krypteringssvit den ska använda från webbläsarens lista, och skickar sitt eget slumpmässiga värde. Båda sidor är nu överens om reglerna för kommunikationen.
  3. Certifikat. Servern visar upp sitt SSL/TLS-certifikat, som innehåller dess publika nyckel och den identitetsinformation som en certifikatutfärdare har signerat. Det är i detta ögonblick som din webbläsare kontrollerar att certifikatet är giltigt, betrott och utfärdat för den domän du besöker.
  4. Nyckelutbyte. Med hjälp av den publika nyckeln från certifikatet (eller en modern algoritm för nyckelöverenskommelse, såsom Elliptic Curve Diffie-Hellman) härleder de båda parterna på ett säkert sätt en delad hemlig nyckel. Avgörande är att en avlyssnare som övervakar varje meddelande fortfarande inte kan beräkna denna hemliga nyckel, eftersom den privata nyckeln aldrig lämnar servern.
  5. Sessionsnycklar och avslutning. Båda parter använder det utbytta materialet och de två slumpmässiga värdena för att generera samma uppsättning symmetriska sessionsnycklar. De skickar var och en ett ”avslutat”-meddelande krypterat med dessa nycklar för att bekräfta att handskakningen lyckades. Från och med detta ögonblick är hela kommunikationen symmetriskt krypterad – snabb, privat och manipuleringssäker.

Allt detta sker vanligtvis på en bråkdel av en sekund. I TLS 1.3 har handskakningen förkortats till en enda rundtur, och återkommande besökare kan ibland återuppta anslutningen ännu snabbare. Slutresultatet är en säker kanal över vilken dina faktiska HTTPS-förfrågningar och svar skickas.

Certifikatutfärdare och förtroendekedjan

Ett certifikat är bara så pålitligt som den enhet som står som garant för det. Den rollen tillhör en certifikatutfärdare (CA) – en organisation som din webbläsare och ditt operativsystem i förväg har beslutat att lita på. När en webbplatsägare begär ett certifikat verifierar CA:n att denne har kontroll över domänen (och ibland även företagets identitet) innan certifikatet signeras med CA:ns egen nyckel. Det är den signaturen som din webbläsare kontrollerar.

Förtroendet är organiserat som en kedja med tre länkar:

  • Rotcertifikat. Kedjans översta länk. Rotcertifikat är förinstallerade i din webbläsare och ditt operativsystem i ett ”förtroendelager”. Deras privata nycklar förvaras offline under sträng säkerhet, eftersom en kompromettering av en sådan nyckel skulle undergräva hela systemet.
  • Mellancertifikat. Rotcertifikat signerar inte webbplatscertifikat direkt. Istället signerar de ett eller flera mellancertifikat, som sedan signerar de faktiska webbplatscertifikaten. Detta håller den värdefulla rotnyckeln isolerad och gör det möjligt att återkalla ett komprometterat mellancertifikat utan att störa roten.
  • Bladcertifikat. Kallas även slutentitetscertifikat och är det certifikat som är installerat på själva webbplatsen. Det är signerat av ett mellanliggande certifikat.

När din webbläsare validerar en webbplats går den igenom denna kedja: bladcertifikatet är signerat av ett mellanliggande certifikat, det mellanliggande certifikatet är signerat av ett annat mellanliggande certifikat eller en rot, och roten är en som den redan litar på. Om varje länk stämmer och rotcertifikatet finns i förtroendelagret accepteras certifikatet. Detta kallas kedjebildning, och en vanlig orsak till felmeddelanden om ”inte betrott” är en server som glömmer att skicka sitt mellanliggande certifikat, vilket bryter kedjan.

Certifikattyper

Alla certifikat är inte likadana. De skiljer sig åt i hur noggrant certifikatutfärdaren verifierar den sökande och i hur många domäner de täcker. Tabellen nedan sammanfattar de viktigaste typerna.

Typ Valideringsnivå Vad det bevisar Typisk användning
DV (Domain Validated) Grundläggande — endast kontroll av domänen Den som ansöker kontrollerar domänen Bloggar, personliga webbplatser, de flesta moderna webbplatser
OV (Organization Validated) Medel — organisationens identitet har kontrollerats Domänen tillhör en verifierad organisation Företags- och organisationssajter
EV (Extended Validation) Strikt — grundlig juridisk granskning Grundlig bekräftelse av den juridiska enheten Banker, stora e-handelsföretag, tjänster som kräver högt förtroende
Wildcard Något av ovanstående Säkrar en domän och alla dess underdomäner *.example.com som omfattar butik, blogg, e-post m.m.
Flera domäner (SAN/UCC) Något av ovanstående Säkrar flera olika domäner i ett certifikat Organisationer som driver många separata domäner

En viktig punkt för vanliga användare: ur krypteringssynpunkt är DV-, OV- och EV-certifikat identiska. De ger alla samma starka skydd för dina data. Skillnaden ligger enbart i identitetsverifieringen. Förr visade EV-certifikat ett grönt företagsnamn i adressfältet, men webbläsarna har i stort sett tagit bort den distinktionen, så de flesta webbplatser använder idag billiga eller kostnadsfria DV-certifikat.

Wildcard- och multidomäncertifikat

Ett wildcard-certifikat använder en asterisk för att täcka alla underdomäner till en basdomän – till exempel skyddar ett enda certifikat för *.example.com samtidigt www.example.com, shop.example.com och login.example.com. Ett certifikat för flera domäner, som ibland kallas ett SAN- eller UCC-certifikat, listar flera helt olika domännamn i ett och samma certifikat. Båda dessa typer minskar antalet certifikat som en administratör behöver hantera.

Vad finns i ett certifikat

Ett certifikat är ett strukturerat dokument, och du kan granska varje fält. De viktigaste är:

  • Ämne. Den identitet som certifikatet utfärdades till, främst domännamnet (Common Name).
  • Utfärdare. Den certifikatutfärdare som undertecknade och utfärdade certifikatet.
  • Giltighetstid. Datum för ”inte före” och ”inte efter” mellan vilka certifikatet är giltigt.
  • Alternativa namn för ämnet (Subject Alternative Names, SAN). Den fullständiga listan över domännamn som certifikatet omfattar. Moderna webbläsare förlitar sig på SAN-fältet, inte det gamla Common Name, för att matcha webbplatsen.
  • Offentlig nyckel. Den offentliga delen av nyckelparet, som används under handskakningen.
  • Signaturalgoritm. Den kryptografiska metod som certifikatutfärdaren använder för att signera, till exempel SHA-256 med RSA eller ECDSA.
  • Fingeravtryck. En unik hash av hela certifikatet, användbar för att identifiera det exakt.
  • Serienummer. En unik identifierare som tilldelas av den utfärdande certifikatutfärdaren.

När din webbläsare validerar en webbplats kontrollerar den att dagens datum ligger inom giltighetsperioden, att en av SAN-posterna matchar domänen, att signaturen är intakt och att kedjan leder till en betrodd rot.

Certifikatets giltighetstid och varför livslängden är kort

Varje certifikat har ett utgångsdatum, och giltighetstiderna har minskat dramatiskt under årens lopp. Certifikat som en gång gällde i flera år har nu en maximal giltighetstid på cirka ett år eller mindre, och branschen går mot ännu kortare giltighetstider som mäts i veckor. Det finns goda skäl till denna trend.

Kortare giltighetstider begränsar skadan om en privat nyckel stjäls – ett komprometterat certifikat löper helt enkelt ut tidigare, vilket minskar det tidsfönster som en angripare kan utnyttja. De säkerställer också att föråldrade kryptografiska algoritmer och återkallade eller felaktigt utfärdade certifikat snabbt försvinner ur ekosystemet. Nackdelen är att administratörer måste förnya certifikaten betydligt oftare, vilket är anledningen till att automatisering har blivit en nödvändighet snarare än ett val.

Vad händer när ett certifikat är ogiltigt

Om någon del av valideringen misslyckas avbryter din webbläsare anslutningen med en helsidesvarning istället för en liten ikon. De vanligaste orsakerna till att valideringen misslyckas är:

  • Utgånget certifikat. Det aktuella datumet har passerat ”giltighetsdatumet”. Detta är den vanligaste orsaken och innebär oftast att någon har glömt att förnya certifikatet.
  • Självsignerat certifikat. Certifikatet har signerats med sin egen nyckel istället för av en betrodd certifikatutfärdare, vilket innebär att det inte finns någon förtroendekedja. Det fungerar bra för interna tester, men webbläsare avvisar det för offentliga webbplatser.
  • Namnkonflikt. Den domän du besökte finns inte med i certifikatets SAN-lista – till exempel ett certifikat för en domän som används på en annan.
  • Icke-betrodd utfärdare. Certifikatet är kopplat till en rot som inte finns i ditt förtroendelager, ofta på grund av att ett mellanliggande certifikat saknas eller att certifikatutfärdaren inte känns igen.
  • Återkallat certifikat. Certifikatutfärdaren har ogiltigförklarat certifikatet innan det har löpt ut, vanligtvis på grund av att en nyckel har komprometterats.

I vart och ett av dessa fall visar webbläsaren en varning som ”Din anslutning är inte privat” och blockerar sidan som standard. Dessa varningar finns till för att skydda dig: ett certifikat som inte stämmer överens eller inte är betrott kan vara ett tecken på en verklig avlyssningsattack, så du bör aldrig klicka bort dem utan vidare på en webbplats som hanterar känslig information.

Gratis certifikat och automatisk förnyelse

En av de viktigaste utvecklingarna inom webbsäkerhet var införandet av kostnadsfria, automatiserade certifikat. Let’s Encrypt, en ideell certifikatutfärdare, gjorde DV-certifikat tillgängliga utan kostnad och, vilket är lika viktigt, fullt automatiserbara via ett protokoll som kallas ACME (Automated Certificate Management Environment).

Med ACME kan en server bevisa att den kontrollerar sin domän, begära ett certifikat, installera det och förnya det innan det löper ut – allt utan mänsklig inblandning. Det är just därför som korta certifikatlivslängder är praktiska: ett certifikat som förnyas automatiskt varannan månad orsakar inga driftsproblem. Kombinationen av kostnadsfri utfärdning och automatisering är en viktig anledning till att HTTPS gick från att vara en nischfunktion till att bli den nästan universella standarden på hela webben.

Så här kontrollerar du en webbplats certifikat

Du behöver ingen speciell programvara för att granska ett certifikat. I vilken modern webbläsare som helst kan du klicka på hänglåsikonen i adressfältet och välja alternativet för att visa certifikatdetaljer, där du hittar ämne, utfärdare, giltighetsdatum, SAN-lista och fingeravtryck. Detta är ett snabbt sätt att bekräfta att du befinner dig på den äkta webbplatsen och att kontrollera när ett certifikat löper ut.

För en snabbare och mer detaljerad översikt – inklusive hela certifikatkedjan, signaturalgoritmen och hur många dagar som återstår till utgångsdatumet – kan du använda ett onlineverktyg. Med vårt eget verktyg SSL Certificate Checker kan du ange valfri domän och omedelbart se om certifikatet är giltigt, korrekt länkat till en betrodd rot och hur lång tid som återstår innan det måste förnyas. Det är ett enkelt sätt att upptäcka ett certifikat som snart löper ut innan det utlöser en webbläsarvarning för dina besökare.

Vanliga frågor

Är SSL samma sak som TLS?

Inte exakt. SSL är det äldre protokollet och är numera föråldrat, medan TLS är dess moderna efterföljare och det som faktiskt säkrar webbplatser idag. Termen ”SSL-certifikat” har dock fastnat av gammal vana, så i vardagligt tal används ”SSL” och ”TLS” ofta omväxlande även om den underliggande tekniken är TLS.

Betyder hänglåsikonen att en webbplats är säker?

Hänglåset betyder att din anslutning till webbplatsen är krypterad och att certifikatet är giltigt för den domänen. Det garanterar inte att webbplatsen i sig är ärlig eller fri från bedrägerier – även bedrägliga webbplatser kan skaffa gratis DV-certifikat. Betrakta hänglåset som ett tecken på en privat anslutning, inte som en garanti för allmän trovärdighet.

Är gratis SSL-certifikat lika säkra som betalda?

Ja, när det gäller kryptering. Ett gratis DV-certifikat från en certifikatutfärdare som Let's Encrypt ger exakt samma krypteringsstyrka som ett dyrt certifikat. Betalda OV- och EV-certifikat innebär en extra identitetsverifiering av organisationen, men de gör inte den krypterade anslutningen starkare.

Varför får jag en certifikatvarning på vissa webbplatser?

Certifikatvarningar visas när valideringen misslyckas – oftast för att certifikatet har gått ut, inte stämmer överens med domännamnet, är självsignerat eller är kopplat till en icke-betrodd certifikatutfärdare. Varningen är din webbläsares sätt att skydda dig, och på en webbplats som hanterar lösenord eller betalningar bör du inte ignorera den utan att först förstå varför den visades.

Hur länge gäller SSL-certifikat?

Moderna offentliga certifikat gäller vanligtvis i ungefär ett år eller mindre, och branschen går stadigt mot betydligt kortare giltighetstider. Korta giltighetstider minskar risken för stulna nycklar och tvingar ut föråldrad kryptering ur bruk. Automatisk förnyelse via protokoll som ACME gör det enkelt att förnya certifikaten ofta.

Kan jag kontrollera ett certifikat utan att besöka webbplatsen i en webbläsare?

Ja. Med hjälp av onlineverktyg kan du ange ett domännamn och visa certifikatets detaljer, inklusive utfärdare, giltighetsdatum, hela förtroendekedjan och antal dagar kvar till utgångsdatum, utan att manuellt behöva kontrollera hänglåset. Detta är praktiskt för att övervaka dina egna webbplatser eller verifiera en domän innan du besöker den.