Siden internettets tidlige dage har SSL-protokollen og dens efterkommer, TLS, leveret den kryptering og sikkerhed, der gør moderne internethandel mulig.
SSL og dets efterkommer, TLS, er protokoller, der krypterer internettrafik, hvilket gør sikker internetkommunikation og e-handel mulig.
Den årtier lange historie med disse protokoller har været præget af løbende opdateringer, der sigter mod at holde trit med stadig mere sofistikerede angribere. Den næste store version af protokollen, TLS 1.3, vil snart blive færdiggjort – og de fleste alle, der driver et websted, vil gerne opgradere, fordi cyberkriminelle er ved at indhente.
Secure Sockets Layer, eller SSL, var det oprindelige navn på protokollen, da den blev udviklet i midten af 1990’erne af Netscape, det firma, der lavede den mest populære webbrowser på det tidspunkt. SSL 1.0 blev aldrig frigivet til offentligheden, og SSL 2.0 havde alvorlige fejl. SSL 3.0, udgivet i 1996, blev fuldstændig moderniseret og satte scenen for det, der fulgte.
TLS vs. SSL
Da den næste version af protokollen blev frigivet i 1999, blev den standardiseret af Internet Engineering Task Force (IETF) og fik et nyt navn: Transport Layer Security eller TLS. Som TLS-specifikationen bemærker, “forskellene denne protokol og SSL 3.0 er ikke dramatiske.” Således er det ikke rigtig et spørgsmål om TLS vs. SSL; snarere udgør de to en løbende opdateret række protokoller og er ofte klumpet sammen som SSL / TLS.
TLS-protokollen krypterer internettrafik af alle typer. Den mest almindelige er webtrafik; At din browser er forbundet via TLS, hvis URL’en i din adresse starter med “https”, og der er en indikator med en hængelås, der fortæller, at forbindelsen er sikker, som i dette skærmbillede fra Chrome:
Men TLS kan også bruges af andre applikationer, herunder e-mail
Sådan fungerer SSL
Kryptering er nødvendig for at kommunikere sikkert over internettet: Hvis dine data ikke er krypteret, kan alle undersøge dine pakker og læse fortrolige oplysninger. Den sikreste krypteringsmetode kaldes asymmetrisk kryptografi; dette kræver to kryptografiske nøgler – stykker information, normalt meget store tal – for at fungere korrekt, en offentlig og en privat. Matematikken her er kompleks, men i det væsentlige kan du bruge den offentlige nøgle til at kryptere dataene, men har brug for den private nøgle til at dekryptere den. De to nøgler er relateret til hinanden ved hjælp af en kompleks matematisk formel, der er vanskelig at reverse-engineer ved brutal kraft. Tænk på den offentlige nøgle som oplysninger om placeringen af en låst postkasse med en plads på forsiden og den private nøgle som nøglen, der låser postkassen op. Enhver, der ved, hvor postkassen er, kan lægge en besked i den; men for at andre kan læse det, har de brug for den private nøgle.
Fordi asymmetrisk kryptografi involverer disse vanskelige matematiske problemer, kræver det mange computerressourcer, så meget, at hvis du brugte det til at kryptere al information i en kommunikationssession, ville din computer og forbindelse gå i stå. TLS omgår dette problem ved kun at bruge asymmetrisk kryptografi i begyndelsen af en kommunikationssession til at kryptere samtalen, som serveren og klienten skal blive enige om en enkelt sessionsnøgle, som de begge vil bruge til at kryptere deres pakker fra det tidspunkt fremad. Kryptering ved hjælp af en delt nøgle kaldes symmetrisk kryptografi, og det er meget mindre beregningsmæssigt intensivt end asymmetrisk kryptografi. Fordi denne sessionsnøgle blev etableret ved hjælp af asymmetrisk kryptografi, er kommunikationssessionen som helhed meget mere sikker, end den ellers ville være.
Processen, hvormed sessionsnøglen er aftalt, kaldes et håndtryk, da det er det øjeblik, hvor de to kommunikerende computere præsenterer sig for hinanden, og det er kernen i TLS-protokollen.
SSL håndtryksproces
Håndtryksprocessen er ret kompleks, og der er en række variationer, der er tilladt af protokollen. Følgende trin giver en bred oversigt, der skal give dig en fornemmelse af, hvordan det fungerer.
Klienten kontakter serveren og anmoder om en sikker forbindelse. Serveren svarer med listen over cipher suiter – algoritmiske værktøjssæt til at skabe krypterede forbindelser – at den ved, hvordan man bruger. Klienten sammenligner dette med sin egen liste over understøttede krypteringspakker, vælger en og lader serveren vide, at de begge vil bruge den.
Serveren leverer derefter sit digitale certifikat, et elektronisk dokument udstedt af en tredjepartsmyndighed, der bekræfter serverens identitet. Vi diskuterer digitale certifikater mere detaljeret om et øjeblik, men for nu er det vigtigste, du har brug for at vide om dem, at de indeholder serverens offentlige kryptografiske nøgle. Når klienten har modtaget certifikatet, bekræfter det certifikatets ægthed.
Ved hjælp af serverens offentlige nøgle opretter klienten og serveren en sessionsnøgle, som begge vil bruge resten af sessionen til at kryptere kommunikation. Der er flere teknikker til at gøre dette. Klienten kan bruge den offentlige nøgle til at kryptere et tilfældigt tal, der derefter sendes til serveren for at dekryptere, og begge parter bruger derefter dette nummer til at etablere sessionsnøglen. Alternativt kan de to parter bruge det, der kaldes en Diffie-Hellman-nøgleudveksling til at etablere sessionsnøglen.
Denne artikel på SSL.com har et godt diagram, der skitserer hvert kommunikationstrin i løbet af TLS-håndtryksprocessen.
Som navnet antyder, er sessionsnøglen kun god i løbet af en enkelt, ubrudt kommunikationssession. Hvis kommunikationen mellem klient og server af en eller anden grund afbrydes – f.eks. på grund af et netværksproblem, eller fordi klienten er inaktiv for længe – kræves der et nyt håndtryk for at etablere en ny sessionsnøgle, når kommunikationen genoprettes.
Hvad er et SSL-certifikat?
Et SSL-certifikat er elektronisk dokument, der bekræfter en servers identitet og muliggør krypteret kommunikation.
Som beskrivelsen i det foregående afsnit gjorde det klart, er disse certifikater kernen i SSL / TLS-protokollen: de giver klienten den offentlige kryptografiske nøgle, der er nødvendig for at starte sikre forbindelser. Men deres formål går ud over blot at levere selve nøglen; de godkender også, at nøglen faktisk er forbundet med organisation, der tilbyder den til klienten.
Hvordan fungerer dette? Certifikater udstedes af certifikatmyndigheder (CA’er), der fungerer som ækvivalent med et paskontor, når det kommer til at bekræfte identiteter. Organisationer, der ønsker at tilbyde tjenester krypteret af TLS, skal købe certifikater fra CA’er, som igen bekræfter, at organisationerne er dem, de hævder at være. For eksempel, hvis du ville købe et certifikat for at sikre et websted på example.com, skulle du tage nogle skridt for at bevise over for CA, at du kontrollerer example.com domæne. På den måde, hvis nogen opretter forbindelse til example.com og får et gyldigt SSL-certifikat udstedt af en betroet CA, kan de være sikre på, at de kommunikerer med den legitime ejer af example.com. Dette kan forhindre mennesket i midten angreb.
Bemærk, at vi brugte udtrykket “betroet CA” i det sidste afsnit. Alle kan oprette sig som certifikatmyndighed; hvordan kan du se, hvilke der udfører den due diligence, der er nødvendig for at godkende deres kunder? Heldigvis er jobbet med at finde ud af det for det meste taget hånd om af softwareproducenter. Mozilla Foundation opretholder en liste over CA’er, som Firefox vil stole på; Apple og Microsoft opretholder også lister, som de implementerer på OS-niveau til Windows, macOS og iOS, som Chrome bruger på disse platforme. Beslutningerne om, hvilke CA’er der skal stole på, har store indsatser, som et opgør i 2017 mellem Google og Symantec om, hvad Google mente var Symantecs slappe standarder, gjorde det klart.
Standarden, der definerer SSL-certifikater, hedder X.509. Denne standard gør det muligt for certifikater at bære en masse oplysninger ud over blot den offentlige nøgle og certifikatejerens bekræftede identitet; DigiCert er en CA, hvis vidensbase har en detaljeret opdeling af standarden.
SSL-afkrydsningsfelter
Næsten al udveksling og bekræftelse af oplysninger, der er beskrevet ovenfor, finder sted bag kulisserne, når du kommunikerer med servere, der tilbyder TLS-krypterede forbindelser. Hvis du vil have lidt mere gennemsigtighed, kan du indtaste URL’en til et SSL / TLS-krypteret websted på et SSL-kontrolwebsted. Kontrollen returnerer en lang række oplysninger om det testede websteds certifikat, herunder servertypen, hvilke webbrowsere der vil og ikke har tillid til certifikatet, udstederen, serienummeret og udløbsdatoen.
De fleste SSL-afkrydsningsfelter er gratis tjenester, der tilbydes af CA’er som marketingværktøjer til deres varer; mange vil for eksempel give dig mulighed for at indstille en advarsel om, hvornår et inspiceret certifikat udløber, forudsat at det er dit certifikat, og du vil være på markedet for et nyt, når denne dato nærmer sig. Hvis du leder efter et noget mindre kommercielt alternativ, så tjek SSL-checkeren fra Qualys SSL Labs, som giver en særlig robust samling af oplysninger om inspicerede websteder.
TLS 1.2 og TLS 1.2 sårbarheder
TLS 1.2 er den nyeste definerede version af protokollen, og det har den været i flere år. Det etablerede en række nye kryptografiske muligheder for kommunikation. Men ligesom nogle tidligere versioner af protokollen tillod det også, at ældre kryptografiske teknikker blev brugt for at understøtte ældre computere. Desværre, det åbnede det op for sårbarheder, da de ældre teknikker er blevet mere sårbare, som tiden er gået, og computerkraft er blevet billigere.
Især TLS 1.2 er blevet mere og mere sårbar over for såkaldte “man-in-the-middle” angreb, hvor en hacker opfanger pakker midt i kommunikationen og sender dem videre efter at have læst eller ændret dem. Det er også åbent for POODLE, SLOTH og DROWN-angreb. Mange af disse problemer er opstået i de sidste to år, hvilket øger følelsen af, at det haster med at opdatere protokollen.
TLS 1.3
Heldigvis er der hjælp på vej. Version 1.3 af TLS-protokollen, der i øjeblikket er i kladdeform, men snart skal færdiggøres, tilslutter mange af disse huller ved at kaste understøttelse af ældre krypteringssystemer. Der er bagudkompatibilitet i den forstand, at forbindelser falder tilbage til TLS 1.2, hvis den ene ende ikke er i stand til at bruge de nyere krypteringssystemer på den godkendte liste 1.3. Men hvis for eksempel et man-in-the-middle-angreb forsøger at tvinge et tilbagefald til 1.2 for at snuppe på pakker, vil det blive opdaget, og forbindelsen droppet.
Der er stadig servere derude, der bruger versioner af TLS endnu ældre end 1.2 – nogle bruger stadig den originale SSL-protokol. Hvis din sever er en af dem, skal du opgradere nu og bare springe fremad og opgradere til udkastet 1.3 spec.
TLS crimeware
En sidste note om TLS og sikkerhed: de gode fyre er ikke de eneste, der bruger det! Mange cyberkriminelle bruger TLS til at kryptere kommando-og-kontrol-trafik mellem deres servere og malware installeret på deres offers computere. Dette ender med at vende den sædvanlige situation og efterlader ofrene for cyberkriminalitet på udkig efter en måde at dekryptere trafik på. Der er en række teknikker til at håndtere denne form for krypteret angreb, herunder brug af netværksmetadata om den krypterede trafik for at få en fornemmelse af, hvad hackere laver uden faktisk at læse noget af det.
Kilde: CSOonline