Lektion 2 av 4 · 9 min
Digitala signaturer, certifikat, och TLS
Hur en webbläsare vet att den verkligen pratar med din bank, varför en hänglåsikon betyder något specifikt, och vad den inte betyder.
Föregående lektion lämnade en fråga öppen: asymmetrisk kryptering låter dig skicka en hemlighet till någon vars publika nyckel du har — men hur vet du att den publika nyckeln faktiskt tillhör dem, och inte en angripare däremellan? Digitala signaturer och certifikat besvarar det, och tillsammans gör de TLS, protokollet bakom varje https://-adress, möjligt.
Digitala signaturer: bevis på ursprung, inte hemlighet
En digital signatur kör asymmetrisk kryptering baklänges. Istället för att kryptera ett meddelande med någons publika nyckel så att bara de kan läsa det, signerar avsändaren ett meddelande med sin egen privata nyckel, och vem som helst kan verifiera det med avsändarens publika nyckel. Om verifieringen lyckas är två saker sanna: meddelandet kom från den som innehar den privata nyckeln, och det ändrades inte efteråt — samma kollisionsresistens-egenskap från föregående lektions diskussion om hashning gör manipulation upptäckbar. En signatur bevisar äkthet och integritet; den håller inte, i sig, meddelandet hemligt.
Certifikat: en signatur som går i god för en publik nyckel
Ett digitalt certifikat löser problemet ”vems publika nyckel är detta egentligen”. Som Cloudflares Learning Center förklarar är ett SSL/TLS-certifikat ”en datafil som finns på en webbplats ursprungsserver” och innehåller domännamnet, den publika nyckeln, ett utgångsdatum, och — avgörande — ”certifikatutfärdarens digitala signatur.” En certifikatutfärdare (CA) är en betrodd tredje part som kontrollerar att en webbplats kontrollerar domänen den begär ett certifikat för, och sedan signerar det certifikatet med sin egen privata nyckel. Din webbläsare levereras med en inbyggd lista över CA:er den litar på, så när den tar emot ett certifikat signerat av en av dem kan den lita på den publika nyckeln inuti utan att någonsin ha träffat webbplatsens operatör. Ett självsignerat certifikat — ett en webbplats signerar själv istället för att få från en CA — har ingen sådan extern bekräftelse, vilket är varför webbläsare som standard behandlar ett sådant som opålitligt.
TLS: att sätta båda i arbete
RFC 8446, specifikationen för TLS 1.3, beskriver en handskakning i faser: nyckelutbyte, där de två sidorna etablerar delat hemligt material; sedan autentisering, där, med RFC:ns egna ord, ”serversidan av kanalen autentiseras alltid; klientsidan autentiseras valfritt” — normalt bevisar bara webbplatsen sin identitet, inte besökaren. Servern bevisar vem den är med sitt certifikat och en signatur bara den kunde producera med sin privata nyckel. När båda sidor litar på anslutningen härleder de snabba symmetriska nycklar (föregående lektions AES, vanligtvis) för själva datan. RFC 8446 anger rakt ut vad detta ger dig: konfidentialitet och integritet för den utbytta datan, och autentisering av servern. Den anger också, lika tydligt, en gräns: ”TLS döljer inte längden på datan den överför”, och metadata som vilken server du anslöt till och när förblir synlig för alla som är positionerade att observera anslutningen.
Vad hänglåsikonen betyder och inte betyder
| Hänglåset / https:// betyder | Det betyder inte |
|---|---|
| Anslutningen till den servern är krypterad och dess integritet är skyddad | Webbplatsen är pålitlig, ärlig, eller säker att använda |
| Du pratar med den som kontrollerar det domännamnet | Att det domännamnet är den du tror det är — en övertygande efterliknande domän får också ett giltigt certifikat |
| Ingen på nätverksvägen kan läsa eller tyst ändra trafiken | Ingen kan se att du besökte webbplatsen, när, eller hur ofta |
En nätfiskesajt byggd på en efterliknande domän kan ha ett fullt giltigt certifikat: TLS autentiserar domänen, inte avsikten hos den som registrerade den. Det är därför den tidigare lektionen om hur attacker utvecklas behandlar en falsk inloggningssida, hänglås och allt, som ett verkligt hot, inte en motsägelse.
Viktigt att minnas
- En digital signatur bevisar vem som skickade ett meddelande och att det inte ändrades — den håller inte, i sig, meddelandet hemligt.
- Ett certifikat är ett signerat uttalande, från en certifikatutfärdare en webbläsare redan litar på, om att en given publik nyckel tillhör en given domän.
- En TLS-handskakning (RFC 8446) autentiserar alltid servern; besökaren autentiseras sällan på samma sätt.
- TLS skyddar konfidentialitet och integritet under överföring, och bekräftar att du nådde den domän du avsåg — den döljer inte att en anslutning skedde, och garanterar inte att webbplatsen bakom är pålitlig.
- En nätfiskesajt på en efterliknande domän kan visa ett fullt giltigt hänglås; certifikatet autentiserar domänen, inte operatörens avsikt.
Testa dig själv
1. Vad bevisar en giltig digital signatur på ett meddelande?
- Att meddelandet är hemligt för alla utom mottagaren
- Att meddelandet kom från innehavaren av en specifik privat nyckel och inte ändrades — Rätt.
- Att meddelandet skickades med TLS
- Att meddelandet är fritt från skadligt innehåll
Signaturer verifierar äkthet och integritet med hjälp av signerarens nyckelpar; de krypterar inte meddelandet för hemlighet.
2. Vilken roll spelar en certifikatutfärdare (CA) i TLS?
- Den lagrar dina lösenord åt dig
- Den går i god, med sin egen signatur, för att en publik nyckel tillhör en given domän — Rätt.
- Den krypterar all trafik på internet
- Den blockerar nätfiskewebbplatser automatiskt
En CA kontrollerar domänkontroll och signerar certifikatet, vilket låter webbläsare som redan litar på CA:n lita på certifikatets publika nyckel utan att kontakta webbplatsoperatören direkt.
3. Enligt RFC 8446, vilken sida av en typisk TLS-anslutning autentiseras alltid?
- Bara klienten (din webbläsare)
- Servern — Rätt.
- Ingendera sidan som standard
- Båda sidor, alltid, utan undantag
RFC 8446 anger att serversidan alltid autentiseras, medan klientautentisering är valfri och mycket mindre vanlig för vanlig webbsurfning.
4. Varför kan en nätfiskewebbplats fortfarande visa en giltig hänglåsikon?
- Hänglåsikoner är kosmetiska och betyder ingenting
- Ett certifikat autentiserar ett domännamn, inte ärligheten hos den som registrerade det — Rätt.
- Webbläsare kontrollerar inte längre certifikat
- Nätfiskewebbplatser kan inte använda HTTPS alls
TLS-certifikat bekräftar att du pratar med den faktiska innehavaren av en given domän; en övertygande efterliknande domän kan skaffa sig ett eget, fullt giltigt certifikat.
Testa det med FireAI
Omsätt den här lektionen i praktiken på din egen Mac.
- Djup granskning, utan att dekryptera något — Få riktiga detaljer om en säker anslutning utan att FireAI någonsin läser vad som finns inuti den.
- Vad som stannar på din Mac, och de enda gångerna FireAI går online själv — Läs hela listan över vad FireAI skickar, istället för att ta en brandväggs ord för det.
Källor
- RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3
- Cloudflare Learning Center: What is an SSL certificate?
Omsätt det på din Mac
Prova alla funktioner gratis i 17 dagar, inget kort behövs.