it-swarm-eu.dev

Proč je možné čichat požadavek HTTPS / SSL?

Jsem nová v oblasti požadavků a zabezpečení HTTP a všech těch dobrých věcí, ale z toho, co jsem četl, pokud chcete, aby vaše požadavky a odpovědi byly šifrovány, používejte HTTPS a SSL a budete v pořádku. Někdo v předchozí otázka zveřejnil odkaz na tuto aplikaci http://www.charlesproxy.com/ , což ukazuje, že je skutečně možné čichat požadavky HTTPS a vidět žádost a odpověď v textu PLAIN.

Zkusil jsem to pomocí přihlašovacího jména facebook.com a skutečně jsem viděl své uživatelské jméno a heslo v prostém textu. Bylo to příliš snadné. Co se děje? Myslel jsem, že to byl smysl HTTPS - šifrovat požadavky a odpovědi?

48
bitmoe

To je vysvětleno na jejich stránce SSL proxy , možná ne s dostatečným vysvětlením.

Proxy je podle definice man-in-the-middle : klient se připojuje k proxy a proxy se připojuje k serveru.

SSL provádí dvě věci:

  • Zajišťuje důvěrnost a integritu navázaného připojení.
  • Provede určité ověření, ke kterému se připojujete.

Je to druhá část, která je důležitá a zdánlivě nefunkční: tady sedíte ve svém prohlížeči a překvapilo vás, že se váš prohlížeč připojuje k serveru proxy, zatímco jste očekávali připojení k Facebooku. Z technického hlediska proxy nezatěžuje přenos HTTPS, ale přenáší jej.

Váš prohlížeč ví, že je připojen k Facebooku, protože web má certifikát , který říká: „Jsem opravdu www.facebook.com “. Kryptografie veřejného klíče , tím, že se sem nedostanu, zajišťuje, že pouze držitel soukromého klíče může zahájit platné spojení s tímto certifikátem. To je jen polovina bitvy: máte pouze tvrzení serveru, že to opravdu je www.facebook.com a ne randomhijacker.com. Váš prohlížeč navíc kontroluje, zda byl certifikát ověřen certifikační autorito . Váš prohlížeč nebo operační systém je dodáván se seznamem certifikačních autorit, kterým důvěřuje. Kryptografie veřejného klíče opět zajišťuje, že pouze CA mohou vydávat certifikáty, které váš prohlížeč akceptuje.

Když se připojíte k serveru proxy, váš prohlížeč obdrží certifikát, který říká: „Jsem opravdu www.facebook.com “. Tento certifikát však není podepsán certifikační autoritou, kterou váš prohlížeč ve výchozím nastavení důvěřuje. Tak:

V obou případech jste prohlížeči řekli, aby serveru proxy věřil. Tak tomu tak je. Připojení SSL není bezpečné, pokud začnete důvěřovat náhodným cizincům.

Doporučené čtení pro další informace:

Nemůžete zlomit https , pokud nemáte přístup k relaci symetrický klíč . Stručně řečeno, https relace fungují takto:

  1. Klient a server si vyměňují počáteční informace
  2. Na základě těchto informací je klient schopen autentizovat server a ujistit se, že má důvěru
  3. Klient používá server veřejný klíč , aby mu poslal šifrované tajemství
  4. Server toto tajemství dešifruje pomocí soukromý klíč (to může udělat pouze ověřený server!)
  5. Klient i server používají tajemství k lokálnímu vygenerování symetrického klíče relace
  6. Nyní mohou spolu bezpečně mluvit, protože nikdo jiný nezná symetrický klíč relace

Pokud někdo, jak se po cestě může třetí strana dostat ke sdílenému tajemství, bude také schopen vygenerovat symetrický klíč relace a dešifrovat komunikaci.