HTTPS | |
---|---|
název | HyperText Transfer Protocol Secure |
Úroveň (podle modelu OSI ) | Aplikovaný |
Rodina | TCP/IP |
Vytvořeno v | 2000 |
Port/ID | 443/ TCP |
Účel protokolu | Zabezpečené připojení k serveru |
Specifikace | RFC 2818 |
Hlavní implementace (klienti) | internetové prohlížeče |
Implementace jádra ( servery ) | Apache , nginx , IIS |
Mediální soubory na Wikimedia Commons |
HTTPS (zkr. z angličtiny HyperText Transfer Protocol Secure ) je rozšířením protokolu HTTP pro podporu šifrování za účelem zvýšení bezpečnosti. Data v protokolu HTTPS jsou přenášena prostřednictvím kryptografických protokolů TLS nebo SSL , jejichž podpora byla ukončena v roce 2015 [1] . Na rozdíl od HTTP s TCP portem 80 má HTTPS výchozí port TCP 443 [2] .
Protokol byl vyvinut společností Netscape Communications pro prohlížeč Netscape Navigator v roce 1994 [3] .
HTTPS není samostatný protokol. Jedná se o prostý HTTP běžící přes šifrované transportní mechanismy SSL a TLS [4] . Poskytuje ochranu proti útokům sniffer a útokům typu man-in-the-middle za předpokladu, že jsou použity šifrovací nástroje a certifikát serveru je ověřený a důvěryhodný [5] .
Ve výchozím nastavení HTTPS URL používá TCP port 443 (pro nezabezpečený HTTP - 80) [ 2] . Chcete-li připravit webový server pro zpracování připojení https, musí správce získat a nainstalovat certifikát veřejného a soukromého klíče pro tento webový server v systému. TLS používá jak schéma asymetrického šifrování (pro generování sdíleného tajného klíče), tak schéma symetrického šifrování (pro výměnu dat zašifrovaných sdíleným klíčem). Certifikát veřejného klíče potvrzuje, že daný veřejný klíč patří vlastníkovi webu. Certifikát veřejného klíče a samotný veřejný klíč jsou odeslány klientovi při navázání spojení; soukromý klíč slouží k dešifrování zpráv od klienta [6] .
Takový certifikát je možné vytvořit bez kontaktování certifikační autority . Takové certifikáty jsou podepsány stejným certifikátem a nazývají se self -signed ( self-signed ). Bez ověření certifikátu jiným způsobem (jako je volání vlastníka a kontrola kontrolního součtu certifikátu) je toto použití HTTPS náchylné k útoku typu man-in-the-mid [7] .
Tento systém lze také použít pro autentizaci klientů, aby bylo zajištěno, že k serveru budou mít přístup pouze oprávnění uživatelé . Za tímto účelem správce obvykle vytvoří certifikáty pro každého uživatele a nahraje je do prohlížeče každého uživatele. Budou také akceptovány všechny certifikáty podepsané organizacemi, kterým server důvěřuje. Takový certifikát obvykle obsahuje jméno a e-mailovou adresu oprávněného uživatele, které jsou kontrolovány při každém připojení za účelem ověření identity uživatele bez zadání hesla [8] .
HTTPS používá pro šifrování délku klíče 40, 56, 128 nebo 256 bitů. Některé starší verze prohlížečů používají 40bitovou délku klíče (příkladem jsou verze IE starší než 4.0) kvůli omezením exportu ve Spojených státech. Délka klíče 40 bitů není bezpečná. Mnoho moderních webových stránek vyžaduje použití nových verzí prohlížečů, které podporují 128bitové šifrování, aby byla zajištěna dostatečná úroveň zabezpečení. Šifrování s délkou klíče 128 bitů značně ztěžuje uhodnutí hesel a přístup k osobním informacím [6] .
Tradičně může na jedné IP adrese běžet pouze jeden web HTTPS. Více webů HTTPS s různými certifikáty používá rozšíření TLS s názvem Server Name Indication (SNI) [9] .
K 17. červenci 2017 používá HTTPS ve výchozím nastavení 22,67 % z 1 000 000 nejlepších webů Alexa [10] . HTTPS využívá 4,04 % z celkového počtu registrovaných ruských domén [11] .
Požadavky HTTP/ TLS jsou generovány dereferencováním URI , takže klient zná název hostitele. Na začátku komunikace server odešle klientovi svůj certifikát, aby jej klient identifikoval. Tím se zabrání útoku typu man-in-the-middle. Certifikát určuje URI serveru. Vyjednávání názvu hostitele a údajů uvedených v certifikátu probíhá v souladu s protokolem RFC2459 [12] .
Pokud se název serveru neshoduje s názvem uvedeným v certifikátu, uživatelské programy, jako jsou prohlížeče, to uživateli oznámí. Prohlížeče v zásadě dávají uživateli na výběr, zda bude pokračovat v nezabezpečeném připojení nebo jej ukončit [13] .
Server obvykle nemá dostatečné informace o klientovi, aby jej identifikoval. Pro zvýšení bezpečnosti spojení se však používá tzv. obousměrná autentizace. V tomto případě si server po potvrzení certifikátu klientem vyžádá i certifikát. Schéma autentizace klienta je tedy podobné autentizaci serveru [14] .
Když weby používají smíšené funkce HTTP a HTTPS, může to mít za následek informační hrozbu pro uživatele. Pokud se například hlavní stránky webu načítají pomocí HTTPS a CSS a JavaScript se načítají přes HTTP, pak může útočník v době načítání načíst svůj kód a získat data HTML stránky. Mnoho webů navzdory těmto zranitelnostem stahuje obsah prostřednictvím služeb třetích stran, které nepodporují HTTPS. Mechanismus HSTS takovým zranitelnostem brání tím, že vynucuje použití připojení HTTPS i tam, kde se standardně používá HTTP [15] .
V HTTPS byly objeveny chyby zabezpečení související s analýzou provozu. Útok na sledování provozu je typ útoku, který odvozuje vlastnosti zabezpečených dat kanálu měřením velikosti provozu a času potřebného k odeslání zpráv. Analýza provozu je možná, protože šifrování SSL/TLS mění obsah provozu, ale má minimální dopad na velikost a dobu přenosu provozu. V květnu 2010 výzkumníci z Microsoft Research a Indiana University zjistili, že podrobná a citlivá uživatelská data lze odvodit ze sekundárních dat, jako jsou velikosti paketů. Analyzátor návštěvnosti dokázal získat lékařskou historii uživatele, užívané léky a transakce provedené uživatelem, údaje o rodinných příjmech atd. To vše se podařilo i přes použití HTTPS v několika moderních webových aplikacích v oblasti zdravotnictví, daní a další [16] .
Útok „man-in-the-middle“ využívá toho, že server HTTPS odešle certifikát veřejného klíče do prohlížeče . Pokud tento certifikát není důvěryhodný, bude přenosový kanál zranitelný vůči útoku útočníka. Tento útok nahradí původní certifikát ověřující HTTPS server upraveným certifikátem. Útok je úspěšný, pokud uživatel zanedbá dvojitou kontrolu certifikátu, když prohlížeč odešle varování. To je běžné zejména mezi uživateli, kteří se často setkávají s certifikáty s vlastním podpisem při přístupu na stránky v rámci sítě soukromé organizace [17] .
Na Obr. 1 ukazuje situaci, kdy je útočník bránou mezi klientem provádějícím zabezpečenou transakci a serverem. Veškerý klientský provoz tak prochází přes útočníka a ten jej může přesměrovat dle svého uvážení. Zde jsou provedeny následující kroky:
V důsledku takového útoku si klient a server myslí, že navazují zabezpečené spojení, ale útočník má nyní také soukromý klíč a může dešifrovat jakoukoli zprávu v kanálu [17] .
Slovníky a encyklopedie |
---|
URI | Schémata|
---|---|
Oficiální | |
neoficiální |
protokoly TCP /IP podle vrstev modelu OSI | Základní|
---|---|
Fyzický | |
odvedeny | |
síť | |
Doprava | |
zasedání | |
Zastoupení | |
Aplikovaný | |
Uplatněno jiné | |
Seznam portů TCP a UDP |
http | |
---|---|
Obecné pojmy |
|
Metody | |
Tituly |
|
Stavové kódy |