Hvad HTTPS og TLS er

Når du besøger en hjemmeside, sendes data frem og tilbage mellem din enhed og en server et sted på nettet. Undervejs passerer de mange mellemstationer: dit trådløse netværk, din internetudbyder og en lang række routere. Uden beskyttelse kan enhver, der har adgang til et af disse led, læse med og i værste fald ændre indholdet. HTTPS og TLS findes for at lukke den mulighed.

HTTPS er den sikre udgave af den protokol, browsere bruger til at hente hjemmesider. Det ekstra S står for sikker, og sikkerheden kommer fra et lag kaldet TLS, Transport Layer Security. TLS er den teknik, der krypterer forbindelsen, så indholdet er ulæseligt for udenforstående, og som samtidig sikrer, at du faktisk taler med den rigtige server. Når du ser hængelåsen i browserens adresselinje, betyder det, at siden blev hentet over en TLS-beskyttet forbindelse.

Hvad TLS faktisk beskytter

Det er nyttigt at være præcis om, hvad en TLS-forbindelse giver dig. Den leverer grundlæggende tre ting på én gang.

Fortrolighed betyder, at indholdet er krypteret. En person, der lytter med på netværket, ser kun en strøm af krypteret data, ikke de kodeord, beskeder eller kortnumre, du sender. Det er denne egenskab, der gør det forsvarligt at logge ind via et offentligt trådløst netværk på en café, så længe forbindelsen til selve tjenesten er krypteret.

Integritet betyder, at data ikke kan ændres undervejs uden at det opdages. TLS forsyner det sendte med en form for kontrolværdi, så modtageren kan se, om noget er blevet pillet ved på vejen. En angriber kan derfor ikke uset indsætte eller ændre indhold i en krypteret forbindelse.

Autenticitet betyder, at du kan stole på, hvem du taler med. TLS bruger certifikater til at bevise, at serveren faktisk er den, den udgiver sig for. Uden dette led ville kryptering alene ikke hjælpe, for så kunne du have en perfekt krypteret samtale med den forkerte part.

De tre egenskaber hænger sammen. Kryptering uden autenticitet beskytter mod aflytning, men ikke mod at blive narret til at tale med en bedrager. Det er derfor, certifikater er en så central del af systemet.

Sådan etableres en sikker forbindelse

Når din browser åbner en HTTPS-forbindelse, foregår der først et såkaldt håndtryk, før noget egentligt indhold sendes. Uden at gå i de matematiske detaljer kan forløbet beskrives i nogle få trin.

Først præsenterer serveren sit certifikat, som indeholder dens offentlige nøgle og oplysninger om, hvem den er. Browseren kontrollerer, at certifikatet er gyldigt og udstedt til netop det domæne, du forsøger at besøge. Dernæst bruger de to parter asymmetrisk kryptografi til i fællesskab at blive enige om en hemmelig nøgle, som kun de to kender, uden at nøglen nogensinde sendes åbent over forbindelsen. Endelig skifter forbindelsen over til at bruge denne fælles nøgle med hurtig symmetrisk kryptering til al videre kommunikation.

Pointen i denne todeling er både sikkerhed og hastighed. Den indledende, langsommere asymmetriske del bruges kun til at etablere den fælles hemmelighed. Resten af samtalen, som kan være stor, krypteres med en hurtigere metode. Resultatet er en forbindelse, der både er praktisk at bruge og svær at bryde.

Certifikater og certifikatmyndigheder

Et certifikat er i bund og grund en elektronisk attest på, at en bestemt offentlig nøgle hører til et bestemt domæne. Men en attest er kun værd at stole på, hvis den er udstedt af en, du har tillid til. Her kommer certifikatmyndighederne ind.

En certifikatmyndighed, ofte forkortet CA, er en organisation, hvis opgave er at verificere, at den, der beder om et certifikat til et domæne, faktisk kontrollerer det domæne. Når myndigheden er overbevist, udsteder den et certifikat ved at skrive digitalt under på det. Din browser og dit styresystem leveres med en liste over betroede certifikatmyndigheder. Når et certifikat er underskrevet af en af dem, accepterer browseren det uden videre.

Selve underskriften bygger på digitale signaturer, og de hviler igen på hashfunktioner. Når en certifikatmyndighed underskriver et certifikat, beregnes der et hash af certifikatets indhold, og det er dette hash, der signeres. Browseren kan derefter genberegne hashet og kontrollere underskriften. Det er en del af grunden til, at styrken af de underliggende hashfunktioner er så vigtig: en svag hashfunktion ville kunne udnyttes til at fremstille et falsk, men tilsyneladende gyldigt certifikat. Sammenhængen mellem certifikater, signaturer og hashing uddybes i afsnittet om kryptografi.

Det var netop denne risiko, der gjorde svagheder i ældre hashfunktioner til et reelt problem for certifikater. Da det blev praktisk muligt at fremstille kollisioner i en udbredt ældre hashfunktion, kunne man i princippet konstruere to forskellige certifikater med samme hash, og dermed undergrave tilliden til underskriften. Det er en hovedårsag til, at branchen er gået over til stærkere hashfunktioner i certifikater.

Hængelåsen og dens grænser

Hængelåsen i adresselinjen er et nyttigt signal, men den fortæller mindre, end mange tror. Den bekræfter, at forbindelsen til siden er krypteret, og at sidens certifikat er gyldigt for det domæne, du ser i adresselinjen. Den siger derimod intet om, hvorvidt selve siden er ærlig.

Dette er en vigtig nuance. En svindelside kan sagtens have et gyldigt certifikat og dermed en hængelås, for det er i dag let og gratis for hvem som helst at få et certifikat til et domæne, de kontrollerer. Hængelåsen garanterer altså, at din forbindelse til siden er privat, men ikke at siden bag den er til at stole på. En phishingside, der efterligner din bank, kan udmærket vises med hængelås. Derfor er det afgørende at læse selve domænenavnet i adresselinjen og ikke nøjes med at se, at låsen er der. Mere om dette i artiklen om phishing.

Hvor TLS ikke rækker

TLS løser et veldefineret problem: at beskytte data, mens de er undervejs mellem din enhed og serveren. Men der er meget, det ikke gør, og det er værd at kende grænserne.

TLS beskytter ikke data, når de ligger hos modtageren. Når dine oplysninger er nået frem til en tjeneste, afhænger deres skæbne af, hvordan tjenesten opbevarer dem. En krypteret forbindelse forhindrer ikke et senere datalæk hos virksomheden. Beskyttelsen gælder transporten, ikke opbevaringen.

TLS beskytter heller ikke mod, at du selv frivilligt sender data til den forkerte. Bliver du narret til at indtaste dit kodeord på en falsk side, hjælper kryptering ikke, for forbindelsen til svindleren kan være lige så sikker som til den ægte tjeneste. Her er det din vurdering af, hvem du taler med, der afgør udfaldet, ikke krypteringen.

Endelig beskytter TLS ikke en enhed, der allerede er kompromitteret. Er der skadelig software på din computer, kan den læse dine data, før de overhovedet bliver krypteret. Sikkerheden i forbindelsen forudsætter, at endepunkterne i sig selv er i orden.

Det vigtigste at huske

HTTPS og TLS sikrer, at det, du sender og modtager, forbliver privat og uændret undervejs, og at du faktisk er forbundet til det domæne, der står i adresselinjen. Det er et fundament for næsten alt, hvad vi foretager os online, fra netbank til indkøb. Men beskyttelsen handler om transporten, ikke om afsenderens hæderlighed. Hængelåsen betyder sikker forbindelse, ikke sikker hjemmeside. Læs altid domænenavnet, og husk, at krypteret ikke er det samme som troværdig.