HTTPS
HTTPS (Hypertext Transfer Protocol Secure) je v informatice nadstavba síťového protokolu HTTP, která umožňuje zabezpečit spojení mezi webovým prohlížečem a webovým serverem před odposloucháváním, podvržením dat a umožňuje též ověřit identitu protistrany. HTTPS používá protokol HTTP, přičemž přenášená data jsou šifrována pomocí SSL nebo TLS a standardní port na straně serveru je 443.
Základy pro dnešní podobu HTTPS sahají do devadesátých let minulého století. Tehdy společnost Netscape Communications přišla s první verzí protokolu SSL, který vytvořila pro svůj webový prohlížeč. Tento protokol pak umožnil aplikačním protokolům možnost šifrovaného přenosu informací a ověření identity.
Princip funkceČlánky
Protokol HTTPS využívá asymetrické šifrování. Obě strany
si před zahájením komunikace vygenerují pár klíčů (privátní a veřejný). Při
zahájení komunikace si vymění veřejné klíče, které by obě strany měly ověřit
pomocí jiného komunikačního kanálu. Ověření může proběhnout kontrolou výtahu
(otisk, miniatura, hash) veřejného klíče u protistrany například pomocí telefonu
nebo lze použít princip přenosu důvěry, kdy nám protistrana předá veřejný klíč,
který je digitálně podepsaný (nejlépe certifikační autoritou, které důvěřujeme a
jejíž veřejný klíč máme v důvěryhodném úložišti, např. THAWTE, VeriSign,
RapidSSL, GeoTrust, ...). Digitální certifikáty jsou základním kamenem
zabezpečení poskytovaného protokoly SSL/TLS.
Zatímco samotné šifrování ochrání komunikaci před odposloucháváním, bez ověření autenticity veřejných klíčů jsou komunikující strany vystaveny riziku útoku Man in the middle.
Za certifikáty vydané certifikačními autoritami, které mají svůj veřejný klíč v úložišti, které je dodáváno s webovým prohlížečem, je nutné platit. Existuje však možnost vytvoření certifikátu, který si vydavatel sám sobě podepíše (anglicky self-signed certificate), avšak v takovém případě musí protistrana přidat do úložiště veřejný klíč sama (a ověřit ho jinak).
Integrace v prohlížečíchČlánky
Pokud se připojujete do sítě, která má
neplatný certifikát, starší prohlížeče varovaly uživatele pomocí dialogového
okna, a ptaly se uživatele, zda chce dále pokračovat v přechodu do sítě. Novější
prohlížeče zobrazují varovní přes celé okno a zároveň zobrazují informace o
zabezpečení webového serveru pomocí adresního řádku.
Tyto informace se pak
skládají z údajů o názvu certifikátu, certifikační autoritě, jaký se na stránce
využívá zabezpečený protokol a jaká je jeho verze.
Většina prohlížečů,
zde Mozilla Firefox 3.16, používá adresní řádek k tomu, aby informovala
uživatele o zabezpečeném připojení.
Většina prohlížečů, zde Google
Chrome, používá adresní řádek k tomu, aby informovala uživatele o zabezpečeném
připojení.
Screenshot pocházející z Firefox 3.16
ukazující varování při pokusu o vstup na zabezpečenou webovou stránku.
OmezeníČlánky
Mírné zpomalení
Jedním z (menších) limitů je mírné zpomalení
oproti protokolu HTTP. Toto zpomalení je způsobeno právě výše zmíněným
šifrováním daným informací.
Míra bezpečnosti
Míra bezpečnosti závisí
zejména na chování uživatele při přístupu na zabezpečené stránky (při ověřování
klíčů) a na verzi a korektnosti použité implementace šifrovacího algoritmu jak
ve webovém prohlížeči, tak ve webovém serveru.
Možnost oslabení
HTTPS není
vhodné používat pro veřejně dostupný statický obsah, protože webové stránky
mohou být indexovány pomocí internetového vyhledávače a URI šifrovaného obsahu
lze odvodit pouze se znalostmi zachycené velikosti šifrované žádosti a odpovědi.
Tím je útočníkovi poskytnut přístup k šifrovanému i nešifrovanému obsahu, což
oslabuje použitý šifrovací algoritmus.
Virtuální webové servery
Při
navázání spojení pomocí HTTPS je veškerá komunikace ihned od počátku šifrována
pomocí SSL/TLS, není možné včas serveru sdělit, s jakým doménovým jménem (resp.
virtuálním serverem) chceme pracovat (stejně jako s pomocí řádku Host: u
protokolu HTTP). Proto pro HTTPS spojení standardně nelze vytvářet více
virtuálních webových serverů na jediné IP adrese (a portu), které jsou rozlišeny
pouze doménovým jménem. Proto je v RFC-3546 definováno rozšíření Server Name
Indication (SNI), které je implementováno do FireFoxu 2.0, Opery 8, Mozilly 1.8
a Internet Exploreru 7. S pomocí tohoto rozšíření lze vytvářet na jedné IP
adrese (a portu) více virtuálních webových HTTPS serverů, které jsou rozlišeny
doménovým jménem (anglicky name-based virtual host).
Vynucené komerční
certifikáty
Internet Explorer 7 zvýšil úroveň vypisovaných varování, když
nejsou certifikáty registrovány. Původně oznamovalo problém vyskakovací okno,
nyní je přes celou plochu prohlížeče zobrazeno varování, které doporučuje
nepoužívat problematickou internetovou stránku. Do tohoto varování jsou však
zahrnuty i (nekomerční) certifikáty, které nejsou registrovány u certifikačních
autorit, které Microsoftu platí za umístění jejich veřejného klíče v úložišti
prohlížeče. Chování Internet Exploreru tak nutí správce serverů kupovat komerční
certifikáty pro jejich webové servery za cenu 10 až 1200 USD za rok.
Použití
HTTPSČlánky
Zabezpečení pomocí SSL budete potřebovat, když...:
máte e-shop nebo nabízíte či přijímáte online objednávky a kreditní karty
pokud pracujete se systémem s vysokou důležitostí (banky, úřady, státní správa)
nabízíte vstup do vaší vlastní sítě a chcete, aby komunikace probíhala
zabezpečeně
pracujete s citlivými údaji jako jsou adresa, rodné čísla,
licence, musíte dodržovat soukromí, atd.
Projekt SSL LabsČlánky
Jak moc je
webová komunikace skutečně bezpečná, záleží nejen na chování uživatelů, ale i na
nastavení webového serveru. A právě zlepšením stavu nastavení webových serverů
se zabývá projekt www.ssllabs.com.[1] Na svých webových stránkách provozuje
on-line službu pro testování nastavení SSL/TLS webových serverů.