it-swarm-eu.dev

Kde probíhá šifrování SSL?

Pomocí Firebug jsem zkontroloval přenos dat z webové stránky HTTPS (gmail.com). Ale nevidím žádné šifrování mých odeslaných dat (uživatelské jméno a heslo). Kde probíhá šifrování SSL?

34
open source guy

Protokol SSL je implementován jako průhledný obal kolem protokolu HTTP. Pokud jde o OSI model , je to trochu šedá oblast. Obvykle je implementována v aplikační vrstvě, ale striktně řečeno ve vrstvě relace.

Přemýšlejte o tom takto:

  1. Fyzická vrstva (síťový kabel/wifi)
  2. Vrstva datového spojení (ethernet)
  3. Síťová vrstva (IPv4)
  4. Transportní vrstva (TCP)
  5. relační vrstva (SSL)
  6. Prezentační vrstva (v tomto případě žádná)
  7. Aplikační vrstva (HTTP)

Všimněte si, že SSL leží mezi HTTP a TCP.

Pokud to chcete vidět v akci, uchopte Wireshark a procházejte web přes HTTP, pak další přes HTTPS. Uvidíte, že si můžete přečíst požadavky a odpovědi na verzi HTTP jako prostý text, ale ne ty HTTPS. Uvidíte také vrstvy, na které je paket rozdělen, od vrstvy datového spojení nahoru.

Aktualizace : Bylo zdůrazněno (viz komentáře), že model OSI je příliš generalizovaný a zde se velmi dobře nehodí. To je pravda. Použití tohoto modelu však ukazuje, že SSL leží „někde“ mezi TCP a HTTP.) Není to přesně přesné a je to vágní abstrakce reality.

51
Polynomial

U protokolu HTTPS dochází k šifrování mezi webovým prohlížečem a webovým serverem. Firebug běží na samotném prohlížeči, takže vidí data čistého textu; šifrování probíhá, když opouští prohlížeč .

Sledujte šifrovaný provoz pomocí nástroje pro monitorování sítě (například Microsoft Network Monitor nebo Wireshark ). Použijte Man-in-the-Middle útok produkt jako Fiddler a získejte chuť, co může útočník udělat (konkrétně: zastavení spojení a obnovení dat je možné, pokud je možné) uživatel může být přesvědčen, aby "ignoroval friggin 'varování prohlížeče" o nedůvěryhodných certifikátech - takže neignorujte varování!).

22
Thomas Pornin

HTTPS je HTTP over TLS (nebo přes SSL, což je název předchozí verze TLS ).

SSL/TLS, pokud je správně nakonfigurován, poskytuje soukromí a integritu dat mezi dvěma komunikačními aplikacemi (viz specifikace TLS ), přes spolehlivý přenos, obvykle TCP.

I když TCP sokety nejsou uvedeny ve specifikaci TLS, SSL a TLS byly navrženy s cílem poskytnout model, který by mohl být použit téměř jako obyčejný TCP sokety) aplikačních programátorů. Kromě několika případů Edge (například pro zavírací sokety nebo pokud chcete, aby vaše aplikace, kterou aplikace zná, byla opětovně vyjednávána), je tomu tak většinou. hromádky často poskytují obaly, díky nimž jsou sokety SSL/TLS programovatelné stejným způsobem jako obyčejné TCP sokety (jakmile jsou nakonfigurovány)), například Java SSLSocket rozšiřuje Socket.

Většina aplikací spoléhá na existující knihovny při používání SSL/TLS (například JSSE v Javě, SChannel, OpenSSL, Mozillaova NSS knihovna, CFNetwork OSX, ...). S malými úpravami kódu plain TCP (obvykle vše kolem správy certifikátů a důvěry a nastavení šifrovacích/šifrovacích sad v případě potřeby), soketů SSL/TCP (nebo streamů, v závislosti na typu API) slouží k výměně prostého textu, pokud jde o aplikaci. Jedná se o základní knihovnu, která má tendenci transparentně provádět šifrování.

Když se podíváte na provoz v nástrojích pro vývojáře prohlížeče, vymění se to na těch knihovnách, které vidíte. Chcete-li zobrazit šifrovaný provoz, musíte se podívat na skutečný provoz (např. Pomocí Wireshark).

5
Bruno

Přestože jsou všechny síťové modely nedokonalé, na tuto otázku lze odpovědět pouze tak, že se podíváme na to, co SSL (opravdu TLS) dělá. (1) Kromě spolehlivého síťového proudu (TCP ve vrstvě OSI 4) poskytuje šifrovaný obousměrný tok a (téměř vždy) zaručuje identitu serveru a (volitelně) klienta. Autentifikačním klientem může být proces, uživatel nebo jiná entita, která může správně odpovědět na požadované autentizační výzvy.

TLS znamená Transport Layer Security. Protože však implementuje identitu relace, integritu, spuštění, roztržení a správu, patří do relační vrstvy. Stránka Wikipedia uvádí, že to patří do prezentační vrstvy OSI. To je pravděpodobně špatně. Prezentační vrstva se více zabývá zařazováním dat do formátů nezávislých na síti a jejich interpretací na straně hostitele pomocí příslušné aplikace.

Šifrování v klidu (řekněme v databázovém poli nebo e-mailové zprávě) může být kandidátem na prezentační vrstvu, ale navrhl bych, že je to blíže k formě zabezpečení OS nebo aplikace.

Ve skutečnosti je tedy TLS většinou vrstva relací, protože poskytuje přenos relace point-to-point pro transport (TCP). Jinými způsoby poskytuje autentizační funkce, které jsou jasně aplikační vrstvou (OS, utility nebo uživatelská aplikace).

Takže je to hodně vrstva 5 a trochu vrstva 7.

Hodně štěstí.

3
eris0xff

I když je možné číst/zapisovat data na kanály SSL/TLS jako u soketů Vanilla TCP/IP, v Java nebo C nebo cokoli jiného) vám SSL nabízí koncept relace SSL, která může udržovat přes několik připojení TCP/IP. Díky IMHO je tedy protokol SSL protokolem relační vrstvy (zajímalo by mě, proč někdo přišel s názvem TLS ...).

1
André Zúquete

SSL pracuje na prezentační vrstvě v modelu OSI (Layer6). Viz reference Průvodce TCP/IP, M. Kozierok, strana 111. „Protokoly v této vrstvě se starají o manipulační úkoly, které transformují data z jedné reprezentace do druhé, jako je překlad, komprese a šifrování. Jeden z nejpopulárnějších šifrovacích schémat obvykle s prezentační vrstvou je spojen protokol SSL (Secure Socket Layer). “ HTTPS je protokol aplikační vrstvy používající ssl ve vrstvě 6 pro účely šifrování.

1
Kruger

Je to vrstva nad transportní vrstvou, obvykle TCP.

Můžete vidět, jak zašifrovaná data přicházejí a odcházejí pomocí wireshark.

0
Kovags