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ů.