Hlavní navigace

Google blokuje domain fronting, ztížil tím situaci cenzurovaným službám

Petr Krčmář

Google App Engine začal blokovat praktiku známou jako domain fronting. Ta umožňovala skrývat skutečný cíl komunikace aplikacím, které byly například blokovány v některých zemích. Situace se jim tím komplikuje.

Doba čtení: 3 minuty

Blokované aplikace už nebudou moci využít infrastrukturu Google, aby obešly cenzuru v některých zemích. Google App Engine totiž zamezil praktice známé jako domain fronting, která umožňuje skrýt skutečný cíl komunikace a cenzor vidí jen běžnou konverzaci aplikace s univerzální infrastrukturou Google.

Domain fronting funguje na aplikační vrstvě a umožňuje se připojit k cenzurované službě pomocí HTTPS a předstírat přitom, že komunikuje s úplně jiným webem a službou. Princip je jednoduchý: jméno necenzurované domény se použije v úvodním sestavování spojení, které cenzor vidí například v DNS nebo v TLS požadavku a jeho SNI hlavičce. Jméno skutečné služby se pak přenáší uvnitř šifrovaného spojení, kdy se předá pomocí HTTP hlavičky Host. Tohle samozřejmě funguje jen v případě, že jsou obě služby (blokovaná i legitimní) provozovány v jedné infrastruktuře.

Konec domain frontingu

Čerstvá úprava u Google ale způsobila, že tento šikovný trik už nefunguje. Jako první si toho všimli vývojáři sítě Tor, později se blokování projevilo na celé infrastruktuře App Engine. Znemožnilo to obcházet cenzuru například službám jako Tor, Signal nebo Telegram. Nyní už servery aktivně takový pokus zablokují a vrátí stránku, která informuje o rozporu mezi HTTP hlavičkou a TLS certifikátem:

This HTTP request has a Host header that is not covered by the TLS certificate used. Due to an infrastructure change, this request cannot be processed.

Google tvrdí, že jde o dlouho plánovanou změnu. Domain fronting nebyla v Google nikdy podporovanou vlastností, řekl zástupce Google serveru The Verge. Doposud ale fungoval kvůli mezeře v našem software. Své služby ale stále vylepšujeme a v rámci poslední aktualizace přestal domain fronting fungovat. Nemáme v plánu jej nabízet jako službu.

Plán nebo ústupek

Technika domain frontingu umožňovala používat infrastrukturu Google jako proxy a posílat cenzurovaný provoz přes legitimní doménu Google.com. Toho se využívalo především v zemích, kde jsou některé služby zakázané. Komunikace tak pro cenzora vypadala jako legitimní provoz směrem ke Google, protože citlivá data byla zašifrovaná a nebylo je možné analyzovat.

Google sice tvrdí, že jde o plánovanou akci, ale ta přichází v době, kdy se Rusko snaží velmi aktivně blokovat komunikační síť Telegram a neváhá přitom blokovat miliony adres napříč různými cloudovými službami včetně těch od Google a Amazonu. Nabízí se tedy otázka, zda Google částečně neustoupil, zablokoval zneužívání své infrastruktury, aby byl v Rusku opět odblokován a umožnil uživatelům přístup k ostatním službám, které na App Engine běží.

Vrátí se v HTTP/2

Technika domain frontingu byla vždy jen hackem v pravém slova smyslu, tedy využitím nedokonalosti CDN sítí ke skrytí skutečného cíle komunikace. Je ale velmi pravděpodobné, že její principy se vrátí v dalších rozšířeních protokolu HTTP/2 jako jeho standardní součást.

Tento protokol mimo jiné umožňuje multiplexování více nezávislých HTTP spojení do jednoho (šifrovaného) tunelu. První návrh přidává rozšíření Origin frame, kterým server dokáže uvnitř šifrovaného tunelu signalizovat, která další doménová jména dokáže obsloužit, čímž je možné eliminovat DNS dotazy – tedy i dotazy na případná závadná doménová jména.

MIF18_Michálek

Druhý návrh rozšíření Certificate frame umožňuje serveru uvnitř šifrovaného tunelu provést důkaz držení privátního klíče k certifikátu na určité doménové jméno, takže toto doménové jméno nemusí být uvedeno v certifikátu předaném při navazování šifrovaného spojení. O obou těchto rozšířeních nedávno přednášel Nick Sullivan z Cloudflare na konferenci USENIX Enigma.

Našli jste v článku chybu?