Multitek

Hva er HTTPS, og hvorfor er det viktig?

Hva er HTTPS, og hvorfor er det viktig?

HTTPS er en viktig bidragsyter når det gjelder å holde deg trygg på nett, men bortsett fra en eventuell hengelås i adresselinja er denne teknologien relativt usynlig. Så hva er egentlig HTTPS, og hvorfor er den så essensiell på dagens internett?

Hva er det?

HTTP (altså uten S), eller Hypertext Transfer Protocol, er en protokoll (dvs. et sett med regler om hvordan kommunikasjon mellom datamaskiner skal foregå) som brukes til å overføre HTML-dokumenter og filer på internett, det vi oppfatter som nettsider. HTTPS er en utvidelse av HTTP, som benytter seg av kryptering for å sikre at ingen andre enn sender og mottaker ser innholdet som sendes, og for å sikre at innholdet mottakeren mottar faktisk er det samme avsenderen sendte. Som vi skal se på senere, er dette temmelig viktige egenskaper ved en sikker tilkobling, og som også er grunnen til at S-en i HTTPS står for Secure.

Litt HTTPS-historie


I nettleseren kan du se om tilkoblingen er sikret med HTTPS.
FOTO: Patrick Sletvold.

Både HTTP og HTTPS har en lang historie. Mens utviklingen av HTTP ble startet hos CERN i 1989, kom HTTPS først som en del av Netscape Navigator i 1994. Senere ble HTTP/1.1 standardisert i 1997, og HTTPS i 2000. Etter det har bruken vært stadig økende, og de siste årene har andelen av internettrafikk som bruker HTTPS rett og slett eksplodert, som følge av en stor innsats av flere store aktører som Mozilla og Google.

Selve HTTPS-standarden er temmelig kort og enkel (den er på 1400 ord, om man kun regner med innholdet), og har følgelig ikke forandret seg mye over tid. Og det er det en enkel grunn til: den overlater mye av jobben til en annen protokoll, TLS. HTTPS er akkurat som HTTP, bare at den bruker en kryptert TLS-tilkobling i stedet for å bruke TCP direkte. TCP er altså en veldig vanlig måte å sende data over internett på, men er i utgangspunktet ukryptert. TLS (Transport Layer Security), kan kryptere dataene for trygg sending over en ukryptert TCP-tilkobling.

Den kryptografiske protokollen TLS er en videreutvikling av SSL (Secure Sockets Layer), og betegnelsen SSL brukes derfor fortsatt en del i tilknytning til HTTPS. Dette til tross for at TLS ble introdusert for over 20 år siden. TLS har siden den første spesifikasjonen i 1999 blitt oppdatert flere ganger, og TLS 1.3 fra 2018 er den hittil nyeste. Hver oppdatering bringer en kombinasjon av sikrere og mer effektiv kryptering.

Litt om sertifikater

Som nevnt bidrar HTTPS både til sikring av innholdet og identifisering av motparten. TLS bruker såkalt asymmetrisk kryptering, som fungerer ved bruk av digitale sertifikater som består av både en offentlig og en privat del. Disse sertifikatene må nettsteder anskaffe fra en tredjepart (en Trusted Third Party) kalt en Certificate Authority (eller en CA) etter å ha bevist identiteten sin. Nettleseren din har en liste over ulike CA-er den stoler på, og det er kun sertifikater fra disse som vil bli godkjent.


Nettlesere lar deg se detaljer om et sertifikat, her demonstrert med Windows 10.
FOTO: Patrick Sletvold.

Et sertifikat til google.com fra en anerkjent CA, vil for eksempel bekrefte for nettleseren din at serveren den kommuniserer med har fått lov av eierne av domenet google.com til å servere dette nettstedet. Hvis innholdet som sendes kan dekrypteres ved hjelp av sertifikatet, kan nettleseren dermed garantere at det er blitt sendt av den virkelige google.com (dvs. at det ble kryptert av den private nøkkelen tilhørende det offentlige sertifikatet)

Asymmetrisk kryptering betyr kort forklart at hver av partene har en privat nøkkel og en offentlig nøkkel. For serveren er disse de ulike delene av sertifikatet. Serveren bruker klientens offentlige nøkkel og sin egen private til å kryptere, mens klienten kan bruke sin egen private nøkkel og serverens offentlige til å dekryptere. Hvis innholdet er endret etter kryptering, eller kryptert med feil nøkkel, vil klienten oppdage dette.

Jeg skrev litt tidligere at TLS bruker asymmetrisk kryptering, men dette er bare delvis sant. Dette brukes hovedsakelig til et såkalt «handshake», et håndtrykk, mens senere kommunikasjon gjøres med symmetrisk kryptering, siden dette er raskere. Symmetrisk kryptering er kanskje nærmere den klassiske kryptografien mange tenker på når de hører ordet kryptering, nemlig at begge parter bruker et felles passord til både kryptering og dekryptering. Vanligvis har dette den svakheten at begge parter må få vite om passordet, men med TLS og HTTPS brukes asymmetrisk kryptering for å formidle denne informasjonen på en sikker måte.

En relevant ting å nevne, er at sertifikatet i seg selv ikke påvirker krypteringen av selve tilkoblingen, siden denne altså bruker symmetrisk kryptering med et tilfeldig generert passord. Derfor har typen sertifikat lite å si, og teknisk sett er det minimal forskjell på de ulike sertifikatene du får tak i fra ulike CA-er, i hvert fall når det kommer til krypteringen som gjøres med dem. Et sertifikat til flere tusen kroner fra en stor CA vil kunne gi samme sikre kryptering av dataene som et gratis eller billig fra en mindre kjent CA. Den eneste forskjellen vil stort sett være hvordan CA-en bekrefter identiteten til mottakeren av sertifikatet, men det er en helt annen prosess en selve krypteringen og ikke noe jeg går mer inn på.

Svakheten i systemet

Det sier kanskje seg selv at svakheten i systemet er at man må stole på en tredjepart. Og ikke bare én, men en hel haug. En rekke ulike organisasjoner har status som Certificate Authority (avhengig av platform og operativsystem er det et sted mellom 50 og 100), og hvem som helst av dem kan i teorien utstede et sertifikat for et hvilket som helst domene, og dermed et hvilket som helst nettsted. Dette er naturlig nok veldig fleksibelt, man kan selv velge hvilken CA man ønsker å anskaffe sertifikat fra, men det gjør også at det er mye større sjanse for misbruk. Men det har man heldigvis tenkt på.

Tradisjonelt sett har det vært mye penger å tjene på å være en Certificate Authority. Med unntak av de siste 6 årene (siden Let’s Encrypt startet å utstede gratis sertifikater i 2015), har sertifikater gjerne kostet alt fra noen hundre til flere tusen kroner. Dette fungerer naturlig nok som stor motivasjon til å ønske å fortsette som CA, så de fleste har forsøkt så godt de kan å holde seg innenfor reglene satt av organisasjonen kalt CA/Browser Forum (som består av blant annet CA-er, nettleserprodusenter og andre interessenter). Det verste som kan skje er at en CA blir fjernet fra listen over CA-er nettleserne stoler på. Da er det som regel over og ut, noe CA-selskapet Symantec opplevde når flere nettlesere erklærte at de ikke lenger var til å stole på. Det endte med at Symantec solgte hele sertifikat-businessen sin til DigiCert, en annen Certificate Authority.

Spørsmålet som oppstår da er hvordan vi kan være sikre på at alle de ulike CA-organisasjonene ikke utsteder sertifikater på feil grunnlag. Løsningen man har på det er noe som kalles Certificate Transparency (CT). Dette er et sett med protokoller og systemer med det formål å gjøre det mulig å loggføre alle sertifikater som utstedes av alle CA-er, for å lettere kunne identifisere misbruk eller feilutstedelser. Alle CA-er må støtte CT for å kunne utstede sertifikater som skal brukes til HTTPS, og det finnes systemer for å sjekke at dette er tilfelle. For eksempel kan sertifikater inneholde bevis på at de er blitt loggført, uten at jeg skal gå videre inn på det.

Veldig viktig for internett


HTTPS krypterer forespørselen din, så andre enn sender og mottaker bare kan se hvem forespørselen er til (altså IP-adressen).
FOTO: Electronic Frontier Foundation.
CC BY 3.0

Det er flere grunner til hvorfor HTTPS er viktig, men kort oppsummert kan man dele det i tre grunner. For det første kan det garantere at ingen andre ser kommunikasjonen din. For det andre kan det garantere at ingen har fjernet, lagt til eller på andre måter endret innholdet som sendes. Og for det tredje kan det garantere at ingen kan se nøyaktig hvilken nettadresse du kommuniserer med, de må klare seg med å gjette nettsted basert på IP-adressen du kobler til.

Det aller største argumentet for HTTPS er vel at det gjør tjenester som nettbank, nettbutikker og digitale helsetjenester mulig. Hvis ikke kommunikasjonen mellom nettleseren din og nettbanken hadde vært kryptert og sikker, da kunne enhver som tjuvlyttet på linja stukket av med alle pengene dine. Det samme gjelder for nettbutikker, og slike tjenester var derfor blant de første som benyttet seg av HTTPS. Senere har i praksis alle andre tjenester som benytter innlogging av en eller annen art gjort det samme, for her har man også problemet med at noen kan avlytte og plukke opp passordene dine om de ikke er krypterte.

Den andre egenskapen til HTTPS er også nyttig, for det gir en garanti om at siden du ser på ikke er endret på veien til deg. Det kan for eksempel være nyttig på myndighetenes nettsider eller nettaviser, så ikke noen putter inn falske nyheter eller usanne opplysninger på sider du forventer at er troverdige.

Men også på andre typer sider kan det være nyttig. Et eksempel kan være enkelte Wi-Fi-nettverk som plasserer f.eks. reklame på diverse sider du besøker, eller som blokkerer enkelte ressurser, som bilder. Med en kryptert tilkobling vil uvedkommede altså ikke kunne endre på siden uten at det blir oppdaget, og det fører til at de heller ikke kan legge til innhold. I tillegg vil de ikke like lett kunne blokkere bare noen typer innhold, siden det ikke er mulig å inspirere innholdet som sendes over en kryptert tilkobling.

Den tredje viktige siden ved krypterte tilkoblinger, at ingen kan se hvilken nettside du forespør, medfører også at det er et av de mer effektive virkemidlene mot sensur av internett. Når tilkoblingen er kryptert, vil ikke f.eks. myndighetene kunne se om du er inne på en forbudt Wikipedia-artikkel, bare hvilken IP-adresse du kobler til. Basert på dette, kan de konkludere med at du trolig er inne på Wikipedia, men de har ingen anelse om hva du gjør der, eller hva du leser om. Om de skal blokkere, må de derfor blokkere all trafikk til denne adressen. Dette har resultert i at en hel rekke land som har forsøkt å blokkere Wikipedia, har endt opp med å blokkere hele Wikipedia på et gitt språk. Men som oftest gir de opp etter noen dager. Det at store skytjenester som de fra Google, Amazon og Microsoft gjerne bruker flere IP-adresser, og deler disse på tvers av nettsteder, medfører også at slik blokkering blir mindre nøyaktig, og gjerne påvirker en rekke andre nettsteder enn de som egentlig var tiltenkt.

Selvfølgelig vil en del land fortsatt ønske å sensurere internett, og blant annet Kasakhstan har forsøkt å løse problemet HTTPS skaper i denne sammenhengen. De har tidligere tvunget alle i landet som ville bruke internett til å installere en ny myndighetsdrevet CA på enhetene sine, som lar myndighetene utstede sertifikater på vegne av andre nettsteder og dermed også dekryptere og inspisere eller blokkere trafikk. Nettleserprodusentene løste dette ved å rett og slett blokkere nettleserne fra å akseptere sertifikater fra denne CA-en, og Kasakhstan måtte ganske snart gi opp forsøket. Og dette er bare et av eksemplene på hvordan HTTPS har vist seg å være særdeles nyttig for å opprettholde et fritt og åpent internett.

Det var altså et innblikk i hvorfor HTTPS er viktig, og ikke minst hva det er og hvordan det funker. Var noe uklart? En detalj jeg har glemt (eller kanskje bevisst unlatt, men du synes jeg burde hatt med)? Har du tilbakemelding, tips eller ideer? Da kan du legge igjen en kommentar under, bruke kontaktskjemaet eller sosiale medier.

Vil du lære mer om spennende konsepter og teknologier? Kanskje litt om hva annet du bør kjenne til på internett? Da er du kanskje interessert i å lese om hvordan fingerprinting lar nettsider forfølge deg rundt på nettet, helt uten informasjonskapsler. Eller kanskje du vil lese om ransomware, det vi på norsk kaller løsepengevirus, som krypterer filene dine helt til du betaler løsepenger? Ellers har vi jo også den alltid så populære serien med korte tips, der du sikkert finner noe spennende.

Exit mobile version