it-swarm-eu.dev

Skryje SSL / TLS (https) přístupové adresy URL

Předpokládejme, že to zadám v prohlížeči

https://www.mysite.com/getsecret?username=alice&password=mysecret

a útočník sleduje veškerý provoz ode mě na svého poskytovatele internetových služeb.

Jaké informace jsou chráněny pomocí protokolu HTTPS? Je adresa URL odhalena? Jsou parametry požadavku na získání odhaleny?

Poskytuje HTTPS také integritu adresy URL?

Zkusil jsem se podívat na různé články HTTPS a specifikaci TLS, ale nedokázal jsem na to přijít.

[ÚPRAVA:] Je v pořádku, pokud je odhalen pouze název domény serveru. Žádná část ?username=alice&password=mysecret by mělo být odhaleno.

71
Jus12

Protokol HTTPS je ekvivalentní použití protokolu HTTP přes připojení SSL nebo TLS (přes TCP).

Nejprve se tedy na server otevře TCP spojení (na portu 443). To obvykle stačí k odhalení názvu hostitele serveru (tj. www.mysite.com ve vašem případě) útočníkovi. IP adresa je přímo sledována a:

  1. obvykle jste dříve nešifrovaný dotaz DNS,
  2. mnoho serverů HTTPS obsluhuje pouze jednu doménu na IP adresu,
  3. Certifikát serveru je odeslán prostým způsobem a obsahuje název serveru (možná i mezi více),
  4. v novějších verzích TLS existuje označení názvu serveru, pomocí kterého klient označuje serveru, který název hostitele si přeje, aby server mohl předložit správný certifikát, pokud má více. (Dělá se to proto, abychom mohli odejít od 2.)

Poté probíhá TLS handshake. To zahrnuje vyjednávání sady šifry a poté výměnu klíčů. Za předpokladu, že alespoň jeden z vašeho prohlížeče a server nezahrnul v akceptovaných sadách šifru NONE, je vše následující po výměně klíčů šifrováno.

A za předpokladu, že nedochází k úspěšnému útoku typu „člověk uprostřed“ (tj. Útočník, který zachytí připojení a předloží certifikát kovaného serveru, který váš prohlížeč akceptuje), je výměna klíčů bezpečná a žádný odposlouchávač nemůže dešifrovat cokoli, co je pak odeslané mezi vámi a serverem a žádný útočník také nemůže změnit jakoukoli část obsahu, aniž by si toho všiml. To zahrnuje URL a jakoukoli další část HTTP požadavku, stejně jako odpověď ze serveru.

Samozřejmě, jako D.W. Zmiňuje se o délce požadavku (který obsahuje ne mnohem variabilnější data než adresa URL, možná některé soubory cookie) a odezvy lze vidět ze šifrovaného datového toku. To by mohlo narušit utajení, zejména pokud je na serveru pouze několik různých zdrojů. Také všechny následné požadavky na zdroje.

Vaše heslo v URL (nebo v jakékoli jiné části požadavku) by však mělo být stále bezpečné, ale může být známa jeho délka.

59
Paŭlo Ebermann

Jak vám řekli @ Paŭlo Ebermann a @Jeff Ferland, požadavek GET je šifrován v rámci SSL a je tedy bezpečný. Nicméně, nezapomeňte, že mnoho webových serverů zaznamenává požadavky a parametry GET a jakákoli pověření nebo jiné citlivé informace odeslané prostřednictvím GET by se mohly někde zapsat do protokolu. Z tohoto důvodu byste měli při odesílání citlivých dat použít POST (které bude také šifrováno v rámci SSL)).

To spadá do kategorie „šifrování není magické zabezpečení, které řeší všechny vaše problémy“.

26
gowenfawr

Měli byste předpokládat, že adresa URL není chráněna, tj. Že pasivní odposlouchávač může zjistit, jakou adresu URL navštěvujete.

Uvědomuji si, že je to v rozporu s tím, co tvrdí někteří lidé, takže bych raději vysvětlil.

Je pravda, že vše za jménem domény je zašifrováno. Pokud je například adresa URL https://www.example.com/foo/bar.html, pak www.example.com je viditelný pro útočníka, zatímco HTTP požadavek (GET /foo/bar.html HTTP/1.0) je šifrováno. To zabrání tomu, aby odposlouchávač přímo viděl část adresy URL cesty. Avšak může být délka odezvy na části URL viditelná pro odposlouchávač. Kromě toho mohou být odposlouchávacímu zařízení viditelné i další informace, například délka navštívené stránky. Toto je noha ve dveřích pro útočníka. Došlo k nějaký průzkum, který používá tuto nohu ve dveřích, aby zjistil, jaké adresy URL navštěvujete , pokud útočník může odposlouchávat váš https provoz.

I když neexistuje žádná záruka, že tyto útoky budou úspěšné, navrhuji, že by bylo rozumné předpokládat to nejhorší: předpokládat, že odposlouchávač může zjistit, jaké adresy URL navštěvujete. Proto byste měli nikoli předpokládat, že SSL/TLS se skrývá před odposlouchávačem, které stránky navštěvujete.

Ano, https neposkytuje integritu navštívené adresy URL.

P.S. Jedna další opatrnost: v praxi může být sslstrip a další útoky typu man-in-the-middle úspěšné proti mnoha nebo většině uživatelů, pokud web nepoužívá HSTS . Tyto útoky mohou narušit důvěrnost a integritu adresy URL. Pokud tedy uživatelé navštěvují webové stránky, které nepoužívají HSTS v nezabezpečené síti (např. Otevřený WiFi), měli byste být opatrní, aby se útočník mohl dozvědět, jaké stránky uživatelé navštěvují. Jedním dílčím zmírněním proti hrozbě sslstrip je to, že uživatelé používají HTTPS Everywhere a weby přijímají HSTS.

25
D.W.

Před zahájením relace dojde k úniku následujících věcí:

  • IP adresa serveru
  • Certifikát serveru
    • To bude zahrnovat název domény zveřejněný v certifikátu, i když to nezaručuje, že se bude shodovat s tím, co jste použili.
  • Jste dotazy DNS

Žádná data ani žádosti, které nesouvisejí s vytvořením připojení SSL (GET ...) jsou odeslány na server před zahájením relace SSL. URL je odeslána jako součást požadavku na stránku a chráněna stejně jako veškerý provoz, který je součástí relace.

12
Jeff Ferland

Ano i ne.

Adresa URL je šifrována správně, takže parametry dotazu by nikdy neměly být odhaleny přímo.

Analýza provozu však může často získat délku adresy URL - a znát server a délku adresy URL je často dostačující k odposlechu, na které stránky se přistupuje, zejména pokud se předpokládá, že na odkazy kliknou. Google pro „procházení ssl pro analýzu provozu“ nebo něco podobného, ​​pokud vás téma zajímá.

Ve vašem případě použití je to okrajové. Chytré použití analýzy provozu může odhalit délku uživatelského jména a/nebo délky hesla, v závislosti na tom, zda ostatní načtené adresy URL obsahují také uživatelské jméno. Pokud nastavíte uživatelské jméno/heslo na konstantní délku, můžete se těmto útokům vyhnout, ale nemusí se vyplatit.

11
Nakedible

Zásobníky TLS začínají odesílat označení názvu serveru (SNI, http://en.wikipedia.org/wiki/Server_Name_Indication ; http://www.ietf.org/rfc/rfc3546) .txt ). To se odešle zřetelně, což znamená, že eavesdroppers uvidí název serveru, který zadáte, do adresního řádku.

9
Steve Dispensa