Et par hurtige svar om hvad SSL/TLS certifikater er
Hvorfor bruger man SSL certifikater?
SSL/TLS certifikater gør det muligt at tilføje to vigtige funktioner, til online kommunikation.
- Identitet på afsender
Hvis certifikatet indeholder det navn du snakker med og din maskine stoler på udstederen af certifikatet, stoler din maskine på at du snakker med den rigtige webserver, derudover signeres data du modtager med certifikatet så den ikke kan manipuleres under transit. - Data hemmelighed
To parter der aldrig har mødtes før, kan via en meget usikker kanal (fx internettet), oprette en sikker kanal, uden at dem der lytter med på den usikre linje kan lytte i den sikre.
Der er i dag muligt at oprette en kryptering uden TLS certifikatet, men det er stadig det eneste vi kan bruge til at sikre os at den server vi snakker med er den rigtige.
Hvorfor vil internettet ikke virke uden SSL/TLS?
Den eneste form for kryptering tilgængelig ville være symmetrisk kryptering, det betyder at parter der skal snakke sikkert sammen, skal på forhånd have en hemmelig kode, der ikke kommunikeres over usikker kanal som fx internettet/telefon.
Du ville så skulle gå ned i banken, posthuset, webshoppen, din arbejdsplads, osv. og aftale en kode med dem hver, inden du snakker med dem på nettet.
Alle andre ville du ikke kunne kommunikere med sikkert, da ethvert forsøg på at aftale en kode over internettet, vil kunne aflyttes. Og du selv hvis du udveksler en kode sikkert med den anden part, er du ikke sikker på om det er de rigtige du snakker med eller nogen der sidder imellem dig og dem (Man in the middle).
Så slut med at oprette kontoer på websites, handle fra ebay, amazon, facebook eller indtaste kreditkort information på nettet.
Alle ville kunne lytte med, få hinandens koder og endnu vigtigere alle vil kunne udgive sig for at være hinanden.
Hvad er i et SSL/TLS certifikat?
- Hvem tilhører certifikatet, fx FairSSL ApS eller Sole Viktor
- Hvem kan kommunikere som certifikatet, fx www.fairssl.dk eller info@fairssl.dk
- Hvem har lavet certifikatet og deres signatur, fx GlobalSign med en SHA256 signatur
- Hvor kan man hente en kopi af det offentlige certifikat(public key) der har lavet dette certifikat, typisk en URL eller lokal fil sti.
- Hvor kan man tjekke om certifikatet er blevet trukket tilbage. (CRL/OCSP)
- Til hvilke formål må certifikatet anvendes, fx kryptering af email data, signering af programmer, server kommunikation, klient kommunikation eller lave nye certifikater
- Hvornår er certifikatet gyldigt fra og til
Hvorfor er der udløbsdato på et SSL certifikat?
Certifikater udløber blandt andet for at nedsætte tiden, en potentiel hacker har til at bryde nøglen.
Hvad er forskellen på et certifikat udstedt af en betroet CA, intern CA eller selvudstedt?
- Betroet offentlig CA
Et certifikat der er udstedt af en betroet CA, fx Comodo, vil være signeret af et certifikat, der er lavet af et betroet rod-certifikat, som er installeret i klienter fra fødslen, af fx Nokia, Microsoft, Sony, osv. Kravet til den betroede CA, vil typisk være at overholde en lang række skrappe regler så som specificeret af CAB/Forum. - Intern CA
Fungerer på samme måde, det er udstedt af et andet intermediate eller rod-certifikat, men rod-certifikatet skal installeres på hver klient pc/mobiltelefon det skal virke sammen med, fx a virksomhedens IT afdeling. - Selvudstedt/Self-Signed certifikat
Der vil kun være tillid til certifikatet, hvis en kopi installeres på hver klient.
Hvad er relationen mellem HTTP, HTTPS og Certifikat?
HTTP en protokol der bestemmer hvordan en browser og webserver snakker sammen.
- At certifikatet er signeret af en kæde af certifikater, der ender med et rod-certifikat, der er installeret på klienten
- At certifikatet stadig er gyldigt og ikke er trukket tilbage
- At certifikatet indeholder et SAN DNS/IP navn, der matcher den server der kommunikeres med
- At der kan oprettes en hemmelighed imellem browser og webserver, der kan bruges til at kryptere kommunikationen.
Er der nogen relation mellem certifikat og afsending af krypteret data?
SSL/TLS certifikater bruges til kryptering ved at udveksle en tilfældig nøgle der skal bruges efterfølgende til at kryptere selve dataen, krypteret ved hjælp af den offentlige nøgle i certifikatet.
- Browser klienten bruger webserverens offentlige nøgle (som alle har adgang til), til at kryptere en hemmelighed den selv har fundet på.
- Webserveren dekrypterer herefter hemmeligheden, ved hjælp af dens private nøgle (som kun den har).
- Nu har både webserver og browser klienten samme hemmelighed, uden at nogen anden har kunnet forstå/aflytte den.
- De skifter nu til en hurtigere symmetrisk kryptering, med samme hemmelighed til at kryptere og dekryptere informationen med.
Det kan virke lidt forvirrende, men pointen er at den asymetriske kryptering med SSL/TLS certifikatet, gør det muligt at aflevere en hemmelighed til webseveren, som kun den kan forstå. Herefter anvendes certifikatet ikke til krypteringen (sikker e-mail kommunikation er undtagelsen), men i stedet en symmetrisk hurtigere kryptering.
Hvorfor skrives online kryptering som SSL, TLS eller SSL/TLS?
Det er blevet normalt at kalde online kryptering for SSL (Secure Sockets Layer), da det var den første protokol der blev bredt anvendt til online kryptering. Det er dog TLS (Transport Layer Security) protokollen en videreudvikling af SSL 3.0, som anvendes i dag.