IPAddress-Lookup.com

SSL-certifikater og HTTPS forklaret

IPAddress-Lookup.com ·

Hver gang du besøger en hjemmeside og ser et lille hængelås-ikon ved siden af adressen, eller bemærker, at URL’en begynder med https:// i stedet for http://, stoler du på en af de vigtigste teknologier på det moderne internet: SSL/TLS-kryptering og de digitale certifikater, der gør det muligt. Disse certifikater beskytter i al stilhed dine adgangskoder, kreditkortnumre, private beskeder og surfvaner mod alle, der måtte aflytte netværket mellem dig og serveren. Men selvom det er noget så grundlæggende, er mekanikken bag SSL-certifikater og HTTPS stadig et mysterium for de fleste. Denne guide løfter sløret og forklarer i et letforståeligt sprog præcis, hvad SSL/TLS er, hvordan krypteringen fungerer, hvad et certifikat egentlig beviser, og hvordan din browser afgør, om den skal stole på et websted eller ej.

Hvad SSL og TLS egentlig er

SSL står for Secure Sockets Layer, en protokol, der oprindeligt blev udviklet af Netscape i midten af 1990'erne for at sikre kommunikationen mellem webbrowsere og servere. Det problem, den løste, var enkelt at beskrive, men svært at afhjælpe: Det oprindelige web (HTTP) sendte alt som almindelig, læsbar tekst. Enhver, der befandt sig mellem dig og en hjemmeside – et ondsindet Wi-Fi-hotspot, en internetudbyder, en kompromitteret router – kunne læse eller endda ændre de data, der strømmede frem og tilbage. SSL indpakkede denne trafik i et lag af kryptografi, så den blev meningsløs for aflytende parter.

SSL i sig selv er nu forældet. Det viste sig, at SSL 2.0 og SSL 3.0 indeholdt alvorlige sikkerhedsfejl, og de har været udfaset i årevis. Den protokol, der faktisk sikrer internettet i dag, hedder TLS, eller Transport Layer Security. TLS er den direkte efterfølger til SSL, og når folk taler om et »SSL-certifikat«, mener de næsten altid et certifikat, der bruges sammen med TLS. Navnet hængte simpelthen ved, fordi det var velkendt. Udviklingen ser således ud:

  • SSL 1.0 — blev aldrig offentliggjort på grund af sikkerhedsfejl.
  • SSL 2.0 (1995) og SSL 3.0 (1996) — begge er nu forældede og deaktiveret overalt.
  • TLS 1.0 (1999) — den første version under navnet TLS; også udfaset i dag.
  • TLS 1.1 (2006) — udfaset sammen med 1.0.
  • TLS 1.2 (2008) — stadig udbredt og betragtes som sikker, når den er konfigureret korrekt.
  • TLS 1.3 (2018) — den nuværende standard, der er hurtigere og uden de gamle, svage algoritmer.

TLS 1.3 var en gennemgribende omlægning. Den fjernede snesevis af forældede krypteringsmuligheder, der havde forårsaget sårbarheder, og den strømlinede oprettelsen af forbindelsen, så sikre sessioner etableres hurtigere. Moderne browsere forhandler sig frem til den højeste version, som begge parter understøtter, hvilket i praksis betyder TLS 1.2 eller 1.3.

Hvad et SSL-certifikat egentlig gør

Et SSL/TLS-certifikat udfører to forskellige opgaver, og det er vigtigt at forstå, at de er adskilte. Den første er kryptering – at forvrænge dataene, så de ikke kan læses under overførslen. Den anden er autentificering eller identitetsverifikation – at bevise, at den server, du kommunikerer med, virkelig tilhører det domæne, der vises i adresselinjen, og ikke en bedrager, der har aflyttet din forbindelse.

Kryptering uden autentificering ville være farligt. Du kunne have en perfekt krypteret forbindelse til en angriber, der blot videresender din trafik, mens vedkommende læser alt. Certifikatet løser dette ved at knytte en kryptografisk nøgle til en verificeret identitet. Når din browser accepterer et certifikat, bekræfter den både, at forbindelsen vil være privat, og at den anden ende er den, den giver sig ud for at være. Tilsammen er det disse to garantier, der gør netbank, nethandel og login sikkert.

Asymmetrisk kontra symmetrisk kryptografi

For at forstå, hvordan HTTPS fungerer, skal du kende to begreber fra kryptografi, og de er enklere, end de lyder.

Symmetrisk kryptering bruger en enkelt fælles hemmelig nøgle til både at kryptere og dekryptere data. Den er ekstremt hurtig og effektiv, hvilket gør den ideel til at kryptere de store datamængder i en faktisk browsersession. Ulempen er indlysende: Begge parter skal have den samme nøgle, og hvis du sender den nøgle via et usikkert netværk, kan en aflytter få fat i den.

Asymmetrisk kryptering løser problemet med nøgledeling ved hjælp af et par nøgler, der passer sammen: en offentlig nøgle, som alle kan se, og en privat nøgle, som ejeren holder hemmelig. Data, der er krypteret med den offentlige nøgle, kan kun dekrypteres med den private nøgle, og omvendt. Dette gør det muligt for to fremmede at blive enige om en hemmelighed via en åben kanal. Asymmetrisk kryptering er dog langsom, så den bruges ikke til hele samtalen.

HTTPS kombinerer det bedste fra begge verdener. Den bruger kortvarigt den langsomme asymmetriske kryptografi i starten for sikkert at etablere en fælles hemmelighed og skifter derefter til hurtig symmetrisk kryptering for resten af sessionen. Denne forhandling kaldes TLS-håndtrykket.

Sådan fungerer HTTPS: en gennemgang af TLS-håndtrykket

Når du indtaster en webadresse, omdanner din browser først domænenavnet til en IP-adresse – en proces, der er tæt knyttet til, hvordan DNS fungerer – og åbner derefter en forbindelse til den pågældende server. Inden der udveksles nogen websider, finder TLS-håndtrykket sted. Her er, hvad der sker, trin for trin.

  1. ClientHello. Din browser sender den første besked. Den angiver de TLS-versioner, den understøtter, de krypteringssuiter (kombinationer af krypteringsalgoritmer), den kan bruge, samt en tilfældig værdi, der indgår i nøglegenereringen. Tænk på det som at sige: »Her er, hvem jeg er, og her er, hvad jeg kan sige.«
  2. ServerHello. Serveren svarer ved at vælge den TLS-version og krypteringssæt, den vil bruge, fra browserens liste, og sender sin egen tilfældige værdi. Begge parter er nu enige om reglerne for kommunikationen.
  3. Certifikat. Serveren fremlægger sit SSL/TLS-certifikat, som indeholder dens offentlige nøgle og de identitetsoplysninger, som en certifikatmyndighed har underskrevet. Det er i dette øjeblik, at din browser kontrollerer, om certifikatet er gyldigt, pålideligt og udstedt til det domæne, du besøger.
  4. Nøgleudveksling. Ved hjælp af den offentlige nøgle fra certifikatet (eller en moderne nøgleaftalealgoritme såsom Elliptic Curve Diffie-Hellman) udleder de to parter på sikker vis en fælles hemmelighed. Det afgørende er, at en aflytter, der overvåger hver eneste besked, stadig ikke kan beregne denne hemmelighed, fordi den private nøgle aldrig forlader serveren.
  5. Sessionsnøgler og afslutning. Begge parter bruger det udvekslede materiale og de to tilfældige værdier til at generere det samme sæt symmetriske sessionsnøgler. De sender hver især en »afsluttet«-besked krypteret med disse nøgler for at bekræfte, at håndtrykket lykkedes. Fra dette tidspunkt er hele kommunikationen krypteret symmetrisk – hurtigt, privat og manipulationssikkert.

Alt dette foregår typisk på en brøkdel af et sekund. I TLS 1.3 blev håndtrykket forkortet til en enkelt rundtur, og tilbagevendende besøgende kan undertiden genoptage forbindelsen endnu hurtigere. Slutresultatet er en sikker kanal, hvorigennem dine egentlige HTTPS-anmodninger og -svar sendes.

Certifikatmyndigheder og tillidskæden

Et certifikat er kun så troværdigt som den enhed, der står inde for det. Den rolle tilhører en certifikatmyndighed (CA) – en organisation, som din browser og dit operativsystem på forhånd har valgt at stole på. Når en hjemmesideejer anmoder om et certifikat, verificerer CA'en ejerens kontrol over domænet (og undertiden virksomhedens identitet), inden certifikatet underskrives med CA'ens egen nøgle. Det er denne underskrift, din browser kontrollerer.

Tilliden er organiseret som en kæde med tre led:

  • Rodcertifikat. Toppen af kæden. Rodcertifikater er forudinstalleret i din browser og dit operativsystem i et »tillidslager«. Deres private nøgler opbevares offline under streng sikkerhed, da kompromittering af én nøgle ville underminere hele systemet.
  • Mellemcertifikat. Rodcertifikater underskriver ikke webstedscertifikater direkte. I stedet underskriver de et eller flere mellemcertifikater, som derefter underskriver de egentlige webstedscertifikater. Dette holder den værdifulde rodnøgle isoleret og gør det muligt at tilbagekalde et kompromitteret mellemcertifikat uden at forstyrre rodcertifikatet.
  • Bladcertifikat. Også kaldet slutentitetscertifikatet; dette er det certifikat, der er installeret på selve hjemmesiden. Det er underskrevet af et mellemcertifikat.

Når din browser validerer et websted, gennemgår den denne kæde: bladcertifikatet er underskrevet af et mellemcertifikat, mellemcertifikatet er underskrevet af et andet mellemcertifikat eller en rod, og roden er en, som browseren allerede stoler på. Hvis alle led i kæden er i orden, og rodcertifikatet findes i tillidslageret, accepteres certifikatet. Dette kaldes kædeopbygning, og en almindelig årsag til fejlmeddelelsen »ikke pålidelig« er en server, der glemmer at sende sit mellemcertifikat, hvilket bryder kæden.

Certifikattyper

Ikke alle certifikater er ens. De adskiller sig i, hvor grundligt CA'en verificerer ansøgeren, og i hvor mange domæner de dækker. Tabellen nedenfor opsummerer de vigtigste typer.

Type Valideringsniveau Hvad det beviser Typisk anvendelse
DV (Domain Validated) Grundlæggende — kun kontrol af domænet Ansøgeren kontrollerer domænet Blogs, personlige hjemmesider, de fleste moderne hjemmesider
OV (Organization Validated) Moderat — organisationens identitet er kontrolleret Domænet tilhører en verificeret organisation Erhvervs- og virksomhedswebsteder
EV (udvidet validering) Streng — grundig juridisk kontrol Grundig bekræftelse af den juridiske enhed Banker, store e-handelsvirksomheder, tjenester, der kræver høj tillid
Wildcard Enhver af ovenstående Sikrer et domæne og alle dets underdomæner *.example.com, der dækker butik, blog, e-mail osv.
Flere domæner (SAN/UCC) Et af ovenstående Sikrer flere forskellige domæner i ét certifikat Organisationer, der driver mange separate domæner

Et vigtigt punkt for almindelige brugere: set ud fra et krypteringssynspunkt er DV-, OV- og EV-certifikater identiske. De giver alle den samme stærke beskyttelse af dine data. Forskellen ligger udelukkende i identitetsbekræftelsen. Engang viste EV-certifikater et grønt firmanavn i adresselinjen, men browsere har i vid udstrækning fjernet denne markering, så de fleste websteder bruger i dag billige eller gratis DV-certifikater.

Wildcard- og multidomæne-certifikater

Et wildcard-certifikat bruger en stjerne til at dække alle underdomæner til et basisdomæne — for eksempel beskytter et enkelt certifikat til *.example.com på én gang www.example.com, shop.example.com og login.example.com. Et multidomæne-certifikat, som undertiden kaldes et SAN- eller UCC-certifikat, indeholder flere helt forskellige domænenavne i ét certifikat. Begge typer reducerer antallet af certifikater, som en administrator skal administrere.

Hvad indeholder et certifikat?

Et certifikat er et struktureret dokument, og du kan gennemgå hvert felt. De vigtigste er:

  • Emne. Den identitet, som certifikatet er udstedt til, primært domænenavnet (Common Name).
  • Udsteder. Den certifikatmyndighed, der har underskrevet og udstedt certifikatet.
  • Gyldighedsperiode. Datoerne for "ikke før" og "ikke efter", mellem hvilke certifikatet er gyldigt.
  • Subject Alternative Names (SAN). Den fulde liste over domænenavne, som certifikatet dækker. Moderne browsere bruger SAN-feltet, ikke det gamle Common Name, til at matche webstedet.
  • Offentlig nøgle. Den offentlige del af nøgleparret, der bruges under håndtrykket.
  • Signaturalgoritme. Den kryptografiske metode, som CA'en bruger til at underskrive, f.eks. SHA-256 med RSA eller ECDSA.
  • Fingeraftryk. En unik hash af hele certifikatet, der er nyttig til at identificere det præcist.
  • Serienummer. En unik identifikator tildelt af den udstedende CA.

Når din browser validerer et websted, kontrollerer den, at dagens dato ligger inden for gyldighedsperioden, at en af SAN-posterne matcher domænet, at signaturen er intakt, og at kæden fører til en betroet rod.

Certifikatets udløb og hvorfor gyldighedsperioderne er korte

Hvert certifikat har en udløbsdato, og gyldighedsperioderne er blevet markant kortere gennem årene. Certifikater, der engang var gyldige i flere år, er nu begrænset til omkring et år eller mindre, og branchen bevæger sig i retning af endnu kortere gyldighedsperioder målt i uger. Der er gode grunde til denne tendens.

Kortere gyldighedsperioder begrænser skaden, hvis en privat nøgle bliver stjålet – et kompromitteret certifikat udløber simpelthen hurtigere, hvilket reducerer det tidsrum, en angriber kan udnytte. De sikrer også, at forældede kryptografiske algoritmer og tilbagekaldte eller fejlagtigt udstedte certifikater hurtigt forsvinder ud af økosystemet. Ulempen er, at administratorer skal forny langt oftere, hvilket er grunden til, at automatisering er blevet en nødvendighed snarere end en mulighed.

Hvad sker der, når et certifikat er ugyldigt

Hvis nogen del af valideringen mislykkes, afbryder din browser forbindelsen med en advarsel, der fylder hele skærmen, i stedet for et lille ikon. De mest almindelige årsager til fejl er:

  • Udløbet certifikat. Den aktuelle dato ligger efter »ikke efter«-datoen. Dette er den hyppigste årsag og betyder normalt, at nogen har glemt at forny.
  • Selvsigneret certifikat. Certifikatet er signeret med sin egen nøgle i stedet for af en betroet CA, så der findes ingen tillidskæde. Det er fint til intern test, men browsere afviser det for offentlige websteder.
  • Navneuoverensstemmelse. Det domæne, du har besøgt, fremgår ikke af certifikatets SAN-liste — for eksempel et certifikat til et domæne, der serveres på et andet.
  • Ikke-betroet udsteder. Certifikatet fører op til en rod, der ikke findes i din tillidsdatabase, ofte fordi et mellemliggende certifikat mangler, eller fordi CA'en ikke genkendes.
  • Tilbagekaldt certifikat. CA'en har ugyldiggjort certifikatet inden udløbet, typisk på grund af en nøglekompromittering.

I hvert tilfælde viser browseren en advarsel såsom "Din forbindelse er ikke privat" og blokerer siden som standard. Disse advarsler er der for at beskytte dig: et uoverensstemmende eller upålideligt certifikat kan være tegn på et reelt aflytningsangreb, så du bør aldrig blot klikke dem væk på et websted, der håndterer følsomme data.

Gratis certifikater og automatisk fornyelse

En af de vigtigste udviklinger inden for websikkerhed var fremkomsten af gratis, automatiserede certifikater. Let's Encrypt, en non-profit certifikatudsteder, gjorde DV-certifikater tilgængelige uden omkostninger og, lige så vigtigt, fuldt automatiserbare via en protokol kaldet ACME (Automated Certificate Management Environment).

Med ACME kan en server bevise, at den har kontrol over sit domæne, anmode om et certifikat, installere det og forny det inden udløb – alt sammen uden menneskelig indblanding. Det er netop derfor, at korte certifikatlevetider er praktiske: Et certifikat, der fornyer sig selv hvert par måneder, medfører ingen driftsmæssige problemer. Kombinationen af gratis udstedelse og automatisering er en af de vigtigste årsager til, at HTTPS gik fra at være en nichefunktion til at blive den næsten universelle standard på hele internettet.

Sådan tjekker du et websteds certifikat

Du behøver ikke speciel software for at undersøge et certifikat. I enhver moderne browser kan du klikke på hængelåsikonet i adresselinjen og vælge muligheden for at se certifikatoplysninger, hvor du finder emne, udsteder, gyldighedsperioder, SAN-liste og fingeraftryk. Dette er en hurtig måde at bekræfte, at du befinder dig på den ægte hjemmeside, og at kontrollere, hvornår et certifikat udløber.

For en hurtigere og mere detaljeret oversigt – herunder den fulde certifikatkæde, signaturalgoritmen og hvor mange dage der er tilbage inden udløb – kan du bruge et onlineværktøj. Vores eget SSL-certifikat-tjekværktøj giver dig mulighed for at indtaste et hvilket som helst domæne og straks se, om dets certifikat er gyldigt, korrekt kædet til en betroet rod, og hvor lang tid der er tilbage, før det skal fornyes. Det er en enkel måde at opdage et certifikat, der snart udløber, før det udløser en browseradvarsel for dine besøgende.

Ofte stillede spørgsmål

Er SSL det samme som TLS?

Ikke helt. SSL er den ældre protokol og er nu forældet, mens TLS er dens moderne efterfølger og det, der faktisk sikrer hjemmesider i dag. Udtrykket "SSL-certifikat" har dog hængt ved af gammel vane, så i daglig brug bruges "SSL" og "TLS" ofte om hverandre, selvom den underliggende teknologi er TLS.

Betyder hængelåsikonet, at et websted er sikkert?

Hængelåsen betyder, at din forbindelse til webstedet er krypteret, og at certifikatet er gyldigt for det pågældende domæne. Det garanterer ikke, at selve webstedet er pålideligt eller fri for svindel – selv svigagtige websteder kan få gratis DV-certifikater. Betragt hængelåsen som et tegn på en privat forbindelse, ikke som et stempel på generel troværdighed.

Er gratis SSL-certifikater lige så sikre som betalte?

Ja, hvad angår kryptering. Et gratis DV-certifikat fra en certifikatudsteder som Let's Encrypt giver nøjagtig samme krypteringsstyrke som et dyrt certifikat. Betalte OV- og EV-certifikater tilføjer ekstra identitetsverifikation af organisationen, men de gør ikke den krypterede forbindelse stærkere.

Hvorfor får jeg en certifikatadvarsel på nogle hjemmesider?

Certifikatadvarsler vises, når valideringen mislykkes — oftest fordi certifikatet er udløbet, ikke stemmer overens med domænenavnet, er selvunderskrevet eller er knyttet til en ikke-betroet myndighed. Advarslen er din browsers måde at beskytte dig på, og på et websted, der håndterer adgangskoder eller betalinger, bør du ikke ignorere den uden at forstå, hvorfor den dukkede op.

Hvor længe er SSL-certifikater gyldige?

Moderne offentlige certifikater gælder typisk i omkring et år eller mindre, og branchen bevæger sig støt i retning af meget kortere gyldighedsperioder. Korte gyldighedsperioder mindsker risikoen ved stjålne nøgler og tvinger forældet kryptografi ud af brug. Automatisk fornyelse via protokoller som ACME gør hyppig fornyelse nem.

Kan jeg tjekke et certifikat uden at besøge hjemmesiden i en browser?

Ja. Med onlineværktøjer kan du indtaste et domænenavn og se certifikatoplysningerne, herunder udsteder, gyldighedsperioder, den fulde tillidskæde og antal dage til udløb, uden manuelt at skulle kontrollere hængelåsen. Dette er praktisk til at overvåge dine egne hjemmesider eller verificere et domæne, før du besøger det.