Et par hurtige svar om hvad SSL/TLS-certifikater er
Hvorfor bruger man SSL-certifikater?
SSL/TLS-certifikater tilføjer to vigtige funktioner til online kommunikation:
1. Identitet på afsender
Hvis certifikatet indeholder det navn, du kommunikerer med, og din enhed stoler på udstederen, kan du være sikker på, at du taler med den rigtige server. Data signeres også med certifikatet, så det ikke kan manipuleres undervejs.
2. Datahemmelighed
To parter, der aldrig har mødt hinanden før, kan oprette en sikker kanal over en usikker forbindelse (som internettet), uden at nogen kan aflytte den sikre kommunikation.
Det er teknisk muligt at kryptere uden et TLS-certifikat, men kun certifikatet sikrer, at du taler med den rigtige server.
Hvorfor vil internettet ikke virke uden SSL/TLS?
Uden SSL/TLS ville eneste mulighed være symmetrisk kryptering, hvor begge parter på forhånd skal have udvekslet en hemmelig kode – fysisk eller via en sikker kanal.
Det ville betyde, at du skulle møde fysisk op hos:
Banken
Webshoppen
Din arbejdsplads ...for at aftale en kode, før du kunne kommunikere sikkert.
Uden SSL/TLS:
Ville alle kunne aflytte din kommunikation
Ville alle kunne udgive sig for at være andre (man-in-the-middle)
Ville du ikke kunne oprette konti, handle online eller bruge tjenester som Facebook, Amazon, eBay osv.
Hvad indeholder et SSL/TLS-certifikat?
Et certifikat består altid af:
En privat nøgle (hemmelig, kun for ejeren)
En offentlig nøgle (tilgængelig for alle)
Derudover kan det indeholde:
Hvem certifikatet tilhører (f.eks. FairSSL ApS)
Hvem der må bruge det (f.eks. www.fairssl.dk)
Hvem der har udstedt det (f.eks. GlobalSign med SHA256-signatur)
Hvor man kan hente udstederens certifikat (URL eller filsti)
Hvor man kan tjekke om certifikatet er trukket tilbage (CRL/OCSP)
Hvad certifikatet må bruges til (e-mail, signering, server, klient, CA)
Gyldighedsperiode (fra og til)
Hvorfor har SSL-certifikater en udløbsdato?
Reducerer tiden en hacker har til at bryde nøglen
Tvinger til udskiftning af certifikater med potentielle fejl
Begrænser misbrug af stjålne certifikater (teoretisk – misbrug kan ske hurtigt)
Forskellen på betroet CA, intern CA og selvudstedt certifikat
Betroet offentlig CA
Udstedt af en CA som Comodo, GlobalSign, DigiCert
Signeret af et rod-certifikat, der er forudinstalleret i browsere og systemer
Skal overholde strenge krav fra CAB Forum
Intern CA
Udstedt af virksomhedens egen CA
Kræver installation af rod-certifikatet på alle klienter
Selvudstedt (self-signed)
Ikke tillid til certifikatet medmindre det manuelt installeres på hver klient
Relationen mellem HTTP, HTTPS og certifikater
HTTP: Protokol for kommunikation mellem browser og webserver
HTTPS: HTTP med SSL/TLS-lag ovenpå
Browseren sikrer:
At certifikatet er signeret af en gyldig kæde
At det ikke er udløbet eller trukket tilbage
At domænenavnet matcher certifikatet (SAN)
At en hemmelig nøgle kan udveksles sikkert
Hvordan bruges certifikatet til kryptering?
SSL/TLS bruger asymmetrisk kryptering til at udveksle en hemmelig nøgle:
Browseren bruger serverens offentlige nøgle til at kryptere en hemmelighed
Serveren dekrypterer med sin private nøgle
Nu har begge parter den samme hemmelighed
De skifter til symmetrisk kryptering for resten af sessionen
Certifikatet bruges kun til at etablere forbindelsen – ikke til selve datakrypteringen (undtagen ved f.eks. e-mail).
Hvorfor kaldes det stadig SSL, når det er TLS der bruges?
Selvom det i dag er TLS (en videreudvikling af SSL 3.0), der anvendes, bruges betegnelsen SSL stadig ofte, fordi det var den første udbredte standard for online kryptering.