Turvaline veebiliiklus: HTTPS
Miks internetiliiklust saab pealt kuulata ja jälgida
Maailmas on väike arv väga suuri side sõlmpunkte (näiteks merekaablite otspunktid). Riigid, kus asuvad mitmed merekaablite otspunktid saavad seetõttu jälgida ka välisriikide andmesidet, sest suur osa riiki sisenenud andmesidest liigub edasi. Merekaablite asukohti on võimalik näha järnevalt veebilehelt: http://www.submarinecablemap.com/. Antud kaardilt on näha, et Suurbritannia on transatlantilise ühenduse vahelüliks. Näiteks 2013 aastal avalikustati, et Suurbritannia jälgib Euroopa ja USA vahel toimuvat Interneti liiklust: GCHQ taps fibre-optic cables for secret access to world's communications
Internet on üles ehitatud nii, et ei ole võimalik ette määrata kuidas mingi pakett sihtkohta jõuab. Pakett liigub kõige optimaalsemat teed kasutades sihtpunkti. Seetõttu ei saa Internetis vältida paketi liikumist läbi riikide, mis jälgivad ja salvestavad Internetis toimuvat liiklust. Näiteks ei saa me vältida andmeside edastamist läbi Rootsi, sest tänu kiiretele ühendustele liigub suur osa meie riigist väljuvast andmesidest läbi Rootsi. Seda on kirjeldatud järgnevas artiklis: Sweden helps the US spy on the Baltics: report.
Riigid või asutused, kes jälgivad Internetis toimuvat liiklust saavad analüüsida kõiki krüpteerimata pakette ehk suuremat osa veebiliiklusest. Juhul kui paketi sisu on krüpteeritud, siis saab jälgija teada kelle poolt pakett saadeti, kunas see saadeti ja mis on selle sihtpunkt.
Veebilehed, mis pakuvad krüpteeritud ühendust või lubavad andmete krüpteerimist on sõltuvad vastava veebilehe omaniku riigis kehtivatest seadustest. Kui riik nõuab seadustele tuginedes teenusepakkujalt krüpteerimiseks kasutatud võtmeid, siis üldjuhul ei saa teenusepakkuja sellest keelduda. Samuti võib riik seaduslikult nõuda firmadelt nende klientide ja nende teenuste kasutajate kohta käivat infot. Niisugust juriidilist tegevust kirjeldatakse järgnevas Guardiani artiklis: Secrets, lies and Snowden's email: why I was forced to shut down Lavabit.
HTTPS poolt pakutav turvalisus
Aga kuidas aitab HTTPS protokolli kasutamine (tavalise HTTP protokolli asemel) veebilehtede külastamist turvalisemaks muuta?
HTTPS töötab mitmel erineval moel. Esiteks võimaldab korraliku sertifitseerimiskeskuse poolt allkirjastatud sertifikaadi olemasolu kasutajale kinnitada, et tegemist on õige serveriga. See aitab rünnete vastu, kus pahalane teeb sarnase kujundusega veebilehe ja üritab näiteks kasutajate paroole nii endale saada.
Teiseks, kasutades veebiserveri võtmepaari (ja tegelikult ka sümmeetrilist krüpteerimist) krüpteeritakse kogu brauseri ja veebiserveri vaheline andmeside. See hoiab ära veebiliikluse pealtkuulamise, näiteks avalikus WiFi võrgus.
Kolmandaks, tegelikult võib lisaks veebiserverile ka kasutajal olla oma võtmepaar, millega ta ennast veebiserverile tuvastab (nn kahepoolne autentimine). See on oluliselt turvalisem kui parooliga sisselogimine ja lisaks ei ole vaja eraldi kasutajanime ja parooli meeles pidada. Seda kasutatakse näiteks ID-kaardiga internetipanka sisselogimiseks. Sel juhul on kasutaja privaatvõti ID-kaardi kiibil, aga välismaiste veebiserverite puhul võib privaatvõtme näiteks brauserisse salvestada ja parooliga kaitsta.
HTTPS pakub:
- andmete konfidentsiaalsust
- serveri autentimist sertifikaadi abil
- andmete terviklikkust ja andmete autentimist
- (kliendi autentimist)
- (Perfect Forward Secrecy ehk PFS)
HTTPS tehnilised omadused:
- klient näeb aadressiribal https://
- kasutab (tavaliselt) porti 443
- server peab omama võtmepaari
- server peab omama sertifikaati
- protokolliks on kas SSL või TLS
TLS ja SSL
Tegelikult ei ole HTTPS eraldi protokoll, vaid tavaline HTTP protokoll, mis on "mässitud" krüpteeringu sisse. HTTP ümber oleva krüpteeritud kihi moodustab Transport Layer Security (TLS) (või selle eelkäija Secure Socket Layer (SSL)) protokoll. Praktikumi materjalides kasutatav TLS/SSL kasutamise statistika pärineb miljoni populaarsema (Alexa) veebilehe uuringust. Uuring on mitteametlik ja analüüsib kuidas 451470 veebilehte kasutab SSL/TLS. Antud uuriguga saab tutvuda Julien Vehent'i blogis: SSL/TLS analysis of the Internet's top 1,000,000 websites.
Protokolli versioonid ja nende turvalisus:
- SSL 2.0 - protokoll sisaldab mitmeid nõrkusi ja seetõttu ei toetata seda enam uuemates brauserites. Siiski toetab uuringu järgi veel 18.9% populaarsetest veebilehtedest SSL2.0.
- SSL 3.0 - võtme tuletamine kasutab MD5, mis ei ole enam turvaline. Hoolimata sellest toetab uuringu järgi 99.6% populaarsetest veebilehtedest SSL3.0. Seda tehakse selleks, et toetada vanemaid operatsioonisüsteeme, näiteks Windows XP ja Internet Explorer 6 kombinatsioon suudab maksimaalselt kasutada SSL 3.0.
- TLS 1.0 - sisaldab võimalust minna üle protokollile SSL 3.0, mis vähendab turvalisust. 2011 aastal avastati, et TLS 1.0 saab rünnata, seda rünnet nimetatakse: BEAST attack. Kuna antud rünne puudutas blokkšiffri CBC töörežiimi, siis soovitati lahendusena kasutada jadašiffrit RC4. 2013 aastal avastati, et RC4 sisaldab statistilist nõrkust, mis võimaldab taastada osa algtekstist (andmetest, mida krüpteeriti): RC4 attack. Seetõttu praegu pigem ei soovitata kasutada TLS 1.0 koos RC4. Eelpool toodud uuringu järgi toetab TLS 1.0 98.9% tuntud veebilehtedest.
- TLS 1.2 - siiani kõige turvalisem TLS protokoll. Uuringu järgi toetab TLS 1.2 33.2% tuntud veebilehtedest.
Kuna SSL 3.0 on ebaturvaline, siis ei peaks brauserid seda protokolli toetama. SSL 3.0 toe lõpetamine sunniks veebilehtede haldajaid tegutsema ja seega tooks see kaasa üldise turvataseme tõusu. Selle otsuse on teinud juba Google ja Mozilla. Google Chrome alates versioonist 40 ei toeta enam SSL 3.0 (Google to kill off SSL 3.0 in Chrome 40). Samuti ei toeta SSL 3.0 Firefox alates versioonist 34 (The POODLE Attack and the End of SSL 3.0).
Enda brauseri turvalisust saab testida järgmisel veebilehel, mis kontrollib brauseri poolt toetatud SSL / TLS versioone: SSL/TLS Capabilities of Your Browser.
Perfect forward secrecy ehk PFS
Selleks, et vältida serveri salajase võtme lekkimisest tulenevaid probleeme saab kasutada sessioonivõtme kokkuleppimiseks ühekordselt kasutatavat võtmepaari. Seega ei ole ründajal kasu andmete salvestamisest lootuses, et tulevikus on võimalik serveri salajast võtit kasutada, et andmeid dekrüpteerida. Selleks, et kindlaks teha kas veebileht kasutab PFS tuleb vaadata, mis algoritmi kasutatakse sessioonivõtme kokkuleppimiseks. PFS on kasutusel juhul kui kasutatakse algoritme Diffie-Hellman Ephemeral (DHE) või Elliptic Curve Diffie-Hellman Ephemeral (ECDHE).
Võtmevahetuseks kasutatakse tihti Diffie-Hellman võtmevahetuse protokolli. Sellest, kuidas Diffie-Hellman toimib saate ülevaate järgneva video abil.
Harjutus: Leidke veebileht, mis kasutab PFS-i.
Andmete terviklikkus
TLS sisaldab andmete terviklikkuse kontrolli. See tähendab seda, et ründaja ei saa andmepakette modifitseerida ilma, et osapooled sellest teada ei saa. Andmete terviklikkuse tagamiseks kasutatakse sõnumiautentimiskoodi ehk MAC-koodi. MAC algoritm saab sisendiks võtme ja andmed ja annab väljundiks lühikese sõnumiautentimiskoodi. Sõnumiautentimiskoodi loomiseks ja verifitseerimiseks kasutatakse sama võtit ja seega peavad osapooled selle omavahel varem kokku leppima. Seetõttu pakub MAC lisaks terviklikkuse kontollile ka autentsuse kontrolli. Sõnumiautentimiskoodi loomiskes kasutatakse järgmisi algorime: HMAC-MD5, HMAC-SHA1, HMAC-SHA256/384, AEAD. HMAC-MD5 on toetatud protokollide SSL 2.0, SSL 3.0, TLS 1.0 ja TLS 1.2 poolt. HMAC-SHA1 on toetatud SSL 3.0, TLS 1.0 ja TLS 1.2 poolt ja ülejäänud kaks algoritmi on toetatud ainult TLS 1.2 poolt.
Sellest, kuidas TLS puhul krüpteeritud kanal moodustatakse, annab ülevaate järgmine joonis:
HTTPS ja sertifikaadid
Avaliku võtme infrastruktuur on kasutusel ka veebis, et luua turvalisi ühendusi veebiserveritega. Sellist turvalisust pakkuval veebiserveril on võtmepaar ning sertifikaat, mis seob avaliku võtme veebiserveri nimega (aadressiga). Veebiserveri sertifikaat on allkirjastatud mõne sertifitseerimiskeskuse poolt. Tuntumate veebilehtede sertifikaadid on allkirjastatud mõne üldtunnustatud sertifitseerimiskeskuse poolt, kelle enda sertifikaat on brauseris juba vaikimisi usaldatud. Brauserid või operatsioonisüsteemid omavad vaikimisi vähalt 50 suure sertifitseerimiskeskuse juursertifikaati, mida siis vastavalt kas brauser või operatsioonisüsteem usaldab. Nende usaldatud sertifitseerimiskeskuste poolt välja antud sertifikaate usaldab brauser vaikimisi.
Harjutus: Millised juursertifikaadid on sinu brauseris vaikimisi usaldatud?
- Firefox: Preferences -> Advanced -> Certificates -> View Certificates
Harjutus: Vaatame, kuidas tuvastada HTTPS protokolli kasutava veebilehe sertifikaadi väljaandjat ja usaldatavust. Navigeerime veebilehele, mis kasutab HTTPS protokolli, näiteks veebilehele ois.ut.ee
.
Firefox
Firefoxi aadressiriba vasakusse äärde tekib tabaluku kujutis kui veebileht kasutab HTTPS protokolli. Antud tabaluku kujutise peale vajutades kuvatakse informatsiooni vastava sertifikaadi ja sertifitseerimiskeskuse kohta.
Vajutades nupule “More Information” tekib võimalus kuvada detailsemat infot sertifikaadi kohta.
Vajutage nupule “View Certificate” et näha detailsemat infot (sakk General) ja antud sertifikaadi usaldusahelat juursertifitseerimiskeskuseni:
Google Chrome
Google Chrome aadressiriba vasakusse äärde tekib tabaluku kujutis kui veebileht kasutab HTTPS protokolli. Antud tabaluku kujutise peale vajutades kuvatakse informatsiooni vastava sertifikaadi ja sertifitseerimiskeskuse kohta. Järgnev joonis on veebilehe https://courses.cs.ut.ee kohta.
Vajutage nupule “Certificate information”, et vaadata sertifikaadi infot (sarnaselt Firefoxile). Erinevalt eelmistel joonistel olnud veebilehest https://auth.ut.ee on https://courses.cs.ut.ee sertifikaadi hierarhia pikem ning sisaldab erineva taseme sertifitseerimiskeskusi. Vajutage antud hierarhias olevate sertifitseerimiskeskuste peale, et kuvada nende kohta rohkem infot.
Harjutus: Külastage mõne panga kodulehte ja uurige nende poolt kasutatavaid sertifikaate.
Sertifikaatide usaldustasemed
Sertifitseerimiskeskus saab välja anda kolme usaldustasemega sertifikaate.
Domain validation (DV) tüüpi sertifikaatide väljaandmiseks kontrollitakse kas päringu teinud isik reaalselt omab kontrolli vastava domeeni üle, mille jaoks sertifikaati soovitakse. Selleks on enamasti kaks meetodit:
- domeeni omanik peab veebiserverisse laadima kindlat tüüpi dokumendi
- domeeni omanik peab saama kätte valideerimiskoodi, mis on saadetud domeeniga seotud emaili aadressile
Antud protsessi on võimalik automatiseerida ning seetõttu pakuvad osad sertifitseerimiskeskused tasuta DV tüüpi sertifikaate. Seda teevad näiteks StartSSL ja Let's Encrypt.
Organization Validation (OV) tüüpi sertifikaate antakse välja pärast vastava organisatsiooni olemasolu ja volituse kontrollimist. Lisaks kontrollitakse ka domeeni kuuluvust nagu seda tehti DV korral.
Extended Validation (EV) tüüpi sertifikaate antakse välja pärast vastava organistsiooni põhjalikku kontrollimist. EV tüüpi sertifikaatide väljaandmist reguleerib EV juhend. EV tüüpi sertifikaadid pakuvad kõige rohkem usaldust ning seetõttu toovad veebibrauserid niisugust tüüpi sertifikaate esile. Selleks värvitakse osa aadressiribast roheliseks ja lisatakse sinna alasse vastava organisatsiooni nimi. Näiteks:
Probleemid
- Mis ohud kaasnevad aegnud sertifikaatidega?
- Mis ohud kaasnevad self-signed sertifikaatidega?
Nagu näha, siis aegunud või ise signeeritud sertifikaadi tuvastamisel hoiatab veebilehitseja, et antud veebilehe autentsuses ei saa kindel olla. Seda hoiatust tasub võtta täie tõsidusega, aga juhul kui olete teadlik, et antud veebilehel peabki olema näiteks ise signeeritud sertifikaat (sest tegemist on näiteks teie enda serveriga), siis võib seda veebilehte edasi kasutada. Loomulikult peaks enne avaliku võtme räsi kontrollima. Ka sel juhul on teie veebilehitseja ja serveri vaheline liiklus krüpteeritud.
Brauser võib sertifikaadi vigade tõttu kuvada mitmeid erinevaid veateateid. Neid veateateid ja hoiatusi saab vaadata järgnevalt veebilehelt: https://badssl.com/.
Ründed
Kuidas saaks teoreetiliselt PKI arhitektuuri rünnata? Üheks võimaluseks on rünnata sertifitseerimiskeskust.
Niisugust rünnakut on küberkurjategujad paar korda kasutanud.
- https://www.cert.org/advisories/CA-2001-04.html
- http://support.microsoft.com/kb/293818
- http://www.theregister.co.uk/2011/09/06/diginotar_audit_damning_fail/
- http://arstechnica.com/security/2011/03/independent-iranian-hacker-claims-responsibility-for-comodo-hack/
Heartbleed turvaauk
2014 aasta aprillis avastati populaarsest OpenSSL krüptograafia teegist turvaauk, mis võimaldas veebiserveri mälu lugeda. Antud turvaauk võimaldas lugeda veebiserveri mälu ilma, et server oleks rünnet tuvastanud. Vastav rünne on hästi illustreeritud XKCD koomiksis: Heartbleed Explanation.
Siiski, miks oli see turvaauk nii oluline? Oluliseks muutis selle OpenSSL, sest OpenSSL on kõige levinum krüpto teek, mis tähendab seda, et suurem osa HTTPS lehti kasutas OpenSSL. Seega mõjutas antud turvaauk väga suurt osa veebilehtedest.
Heartbleed võimaldas lugeda väikest osa veebiserveri mälust, aga veebiserveri mällu on laetud salajane võti ja muu konfidentsiaalne info, mis ei tohiks kolmandate isikute kätte sattuda. Seega võis ründaja teha tuhandeid päringuid, et saada juurdepääsu suuremale osale serveri mälust. Seetõttu pidid OpenSSL kasutavad veebilehed looma uue võtmepaari ja sertifikaadi, sest varasemalt kasutatud salajane võti võis olla lekkinud. Juhul kui server kasutas PFS-i, siis serveri salajase võtme lekkimisel ei lekkinud varasemalt serverisse saadetud sõnumid. Antud turvaauk näitas miks PFS kasutamine on oluline.
Siiani on väike osa HTTPS lehtedest uuendamata ning avatud Heartbleed-st tulenevatele rünnakutele. Rohem infot leiab Heartbleedi tutvustavalt lehtelt: http://heartbleed.com/.
Kasulikud lingid
- Transport Layer Protection Cheat Sheet
- Hynek Schlawack: The Sorry State of SSL
- Brauseri turvalisuse test - kontrollib brauseri poolt toetatud SSL / TLS versioone.
- Internetiliikluse jälgimine
- Merekaablite kaart http://www.submarinecablemap.com/
- Sweden approves wiretapping law http://news.bbc.co.uk/2/hi/europe/7463333.stm
- https://en.wikipedia.org/wiki/FRA_law
- https://sverigesradio.se/sida/artikel.aspx?programid=2054&artikel=5726836
- http://www.theguardian.com/uk/2013/jun/21/gchq-cables-secret-world-communications-nsa
- PKI vastaste rünnete näited
- https://www.cert.org/advisories/CA-2001-04.html
- http://support.microsoft.com/kb/293818
- http://www.theregister.co.uk/2011/09/06/diginotar_audit_damning_fail/
- http://arstechnica.com/security/2011/03/independent-iranian-hacker-claims-responsibility-for-comodo-hack/
- http://arstechnica.com/security/2013/12/french-agency-caught-minting-ssl-certificates-impersonating-google/
- SHA-1 ja MD5