HTTPS og SSL sertifikater

Innhold

HTTPS vs. HTTP

HTTPS, som er en forkortelse for Hypertext Transfer Protocol Secure, er en sikrere utgave av HTTP (Hypertext Transfer Protocol ). Hypertekstoverføringsprotokollen HTTP er protokollen som frem til nå har blitt benyttet på internett til å utveksle informasjon. Utviklingen av HTTP ble gjort av World Wide Web Consortium (W3C), samt arbeidsgrupper i Internet Engineering Task Force. HTTP skiller seg fra andre TCP-baserte protokoller (f.eks. FTP) på den måten at forbindelser vanligvis terminieres når en forespørsel mellom klient og tjener har blitt fullført. Dette gjør HTTP velegnet for webben, der nettsider lenkes til andre tjenere (lenking av HTML dokumenter). Den sikre varianten av HTTP er HTTPS, der S-en står for secure (sikkerhet). HTTPS bruker krypteringsmetoder som forstås av begge sider av forbindelsen.


HTTPS - Hypertext Transfer Protocol Secure

En HTTPS sesjon blir enten kryptert ved å bruke SSL-protokoll (Secure Socket Layer), eller TLS-protokoll (Transport Layer Security). Dette gjør at sesjonen mellom klient/tjener beskyttes mot avlytting og melomleddsangrep, som at en tredjepart endrer på nettsden. HTTPS er egentlig ikke en egen protokoll, men en kombinasjon av HTTP over en kryptert SSL, eller TLS-kopling. Beskyttelsesgraden avhenger av krypteringsalgoritmen som brukes, og nettleserens implementasjon av HTTPS. URLen til nettsider som bruker HTTPS begynner med https:// i stedet for http://.


Transport Layer Security (TLS) og forgjengeren Secure Sockets Layer (SSL) er kryptografiske protokoller som gir sikker kommunikasjon mellom nettlesere og webservere. Både TLS og SSL blir normalt omtalt som SSL. Begge virker på den måten at klienten (nettleseren) og tjeneren (webserveren) gjør en kommunikasjonssjekk, en såkalt handshake, der forskjellige parametere brukes for å skape en sikker kobling. Når S legges til HTTP, så sjekkes grunnleggende tre ting:

  1. at sertifikatet kommer fra en pålitelig leverandør
  2. at sertifikatet er gyldig
  3. at sertifikatet har et forhold til den nettsiden det kommer fra


Litt om hvordan det virker!

Når klienten kobler seg til en TLS-kapabel tjener presenterer den en liste med støttede chifferkoder og spredefunksjoner (hash functions). Tjeneren velger den sterkeste chifferekoden og spredefunksjonen som den også støtter, og sender tilbake sin ID som et digitalt sertifikat. Sertifikatet inneholder normalt tjenerens navn, den klarerte sertifikat-autoriteten og tjenerens offentlige krypteringsnøkkel. Videre kan klienten kontakte tjeneren som utleverte sertifikatet (den nevnte sertifikats-autoriteten) for å få bekreftet at sertifikatet er autentisk før den fortsetter. Dette avslutter kommunikasjonssjekken (handshake), den sikre koblingen begynner, og krypteres og dekrypteres med de genererte nøklene frem til koblingen lukkes. Hvis noen av disse trinnene mislykkes, mislykkes TLS-kommunikasjonssjekken, og forbindelsen blir dermed ikke opprettet.


Litt historie om SSL-protokollene

Det var Netscape som lagde de originale SSL-protokollene. Versjon 1.0 ble på grunn av alvorlige sikkerhetshull aldri offentliggjort. Versjon 2.0 ble utgitt i februar 1995, men den inneholdt en rekke sikkerhetshull som til slutt førte til utformingen av SSL versjon 3.0. Denne ble lansert i 1996. Nyere versjoner av SSL/TLS er basert på SSL 3.0., men i 2014 ble det avdekket at SSL 3.0 ikke lenger var sikker (Barnes 2014):

"In late September, a team at Google discovered a serious vulnerability in SSL 3.0 that can be exploited to steal certain confidential information, such as cookies. This vulnerability, known as “POODLE”, is similar to the BEAST attack."


Juni 2015 ble SSL 3.0 regnet som foreldet av RFC 7568. Følgende er fra RFC 2246 (Stapleton et al. 2016):

"The differences between this protocol and SSL 3.0 are not dramatic, but they are significant enough that TLS 1.0 and SSL 3.0 do not interoperate (although TLS 1.0 does incorporate a mechanism by which a TLS implementation can back down to SSL 3.0)."


Nå er det TLS-protokollene som brukes, da gjerne TLS versjon 1.2. Her er en grov historisk oversikt over TLS-versjonene:

  • TLS 1.0 er en oppgradering av SSL 3.0 og ble først definert i RFC 2246 i januar 1999.
  • TLS 1.1 ble definert i RFC 4346 i april 2006, og er en oppdatering fra TLS versjon 1.0.
  • TLS 1.2 ble definert i RFC 5246 i august 2008. Den er basert på TLS 1.1, men der MD5-SHA-1 er erstattet med SHA-256.
  • TLS 1.3 foreligger per januar 2016 som et arbeidsutkast.


SSL Sertifikater

En HTTPS-forbindelse krever at administratoren har opprettet et digitalt sertifikat som bekrefter eierskapet til nettstedet, for eksempel en organisasjon eller en person. Det blir laget ved hjelp av asymmetrisk kryptografi og en hash-algoritme. SSL sertifikater har flere formål. Det sikrer kommunikasjonen mellom nettsiden og sluttbruker, og dessuten øker det tilliten til nettstedet ditt. Det finnes mange SSL-sertifikattyper og merker. Noen SSL-sertifikat merker er Comodo, GeoTrust, RapidSSL, og Symantec. Disse merkene har igjen forskjellige priskattegorier tilpasset ulike behov. Et SSL-sertifikat kan koste under 200 kr i året for den enkleste beskyttelsen, til flere tusen kroner, typisk for kommersielle nettsider som krever bedre sikkerhet og som driver med salg.


Kilder