Opera představila VPN, která vlastně není VPN. Takhle funguje

25. 4. 2016
Doba čtení: 6 minut

Sdílet

 Autor: Opera Software
Opera Software ve své tiskové zprávě tvrdí, že jejich “VPN” je lepší, než tradiční VPN. No, jak se to vezme.
  • 25.4. 16:15 – doplněn odkaz na The Oprah Proxy a informace o připojování přes HTTPS

Po několika dlouhých letech jsme se včera opět setkali a dnes jsme spolu strávili noc. Pamatuji si ji jako dívku, kterou bych ani za kus naleštěného chromu nevyměnil, ale dnes ráno jsem měl trochu hořko v ústech. Jmenuje se Opera a její rodiče se snaží dohnat vlak, který jim tak trochu ujel, když svého potomka v roce 2013 přestěhovali do čtvrti, kde vládne famílie Blink, aby s nimi Opera mohla začít nový život.

Opera se tento rok docela rozjela. V únoru Norská firma oznámila, že ji kupuje skupina čínských investorů, v březnu Opera přišla s blokováním reklam přímo zabudovaným do prohlížeče a minulý týden oznámila, že do svého prohlížeče přidala neomezenou „VPN“ zdarma. Ta je zatím jen ve vývojářské verzi Opery pro Windows, Mac a Linux a jedná se o produkt postavený na základech firmy SurfEasy, která nově patří do stále ještě norské rodiny. Uvidíme, s čím Opera přijde v květnu.

VPN (Virtual Private Network) je ta věc, kterou možná používáte v situaci, kdy chcete nebo musíte pracovat, ale máte tělo oslabené natolik, že si sotva dojdete pro nabíječku na laptop. Převážně velké nadnárodní firmy používají VPN, aby zpřístupnily své interní služby i lidem, kteří zrovna pracují z domova. VPN byste také měli používat vždy, když jste připojeni na nějakou veřejnou Wi-Fi, protože nikdy nevíte, komu ta síť patří a jaké má úmysly.

Jenže VPN v Opeře není tak docela VPN, i proto jsem tu zkratku výše dal do uvozovek. Klasická VPN totiž chrání všechna spojení, která jdou z vašeho počítače, včetně všech webových prohlížečů, outlooků a skajpů. VPN v Opeře zabezpečí jen Operu, respektive požadavky odcházející z a odpovědi vracející se do Opery. VPN v Opeře nezabezpečí jiné prohlížeče ani ty skajpy a outlooky. Potud asi v pořádku, ačkoliv to tisková zpráva Opery nezmiňuje. Jen na tohle musíte pamatovat, až si budete chtít ve vaší oblíbené kavárně stáhnout nově došlé e-maily do vašeho poštovního programu.

Sama Opera trochu tápe v tom, jak novou vlastnost nazývat, v nastavení sice najdete “povolení VPN”, ale hned pod tím je poznámka, že “zabezpečenou proxy poskytuje SurfEasy”. Zajímavé je i to, že když VPN zapnete, tak v prohlížeči nemůžete měnit nastavení proxy serverů. To trochu zavání, u klasických VPN takovéto omezení nenajdete.

Nastavení Opery s vyhledáním slova “proxy”

To zaujalo i Ondreje Galbavého a na Twitteru si lehce rýpnul do zástupce technického ředitele (Deputy Chief Technology Officer) Opery Bruce Lawsona, ale ten ho ujistil, že to opravdu je VPN. 

A tady začíná moje část příběhu, to totiž zaujalo i mě a tak jsem si stáhnul vývojářskou Operu, spustil packetový sniffer a ponořil se do tajů prohlížečů postavených na Chromiu, abych zjistil, co to vlastně ta VPN od Opery je a…

Jak to funguje?

Jakmile v nastavení Opery zaškrtnete, že chcete VPN povolit, tak prohlížeč odešle několik požadavků metodou post na https://api.surfeasy.com, aby zjistil, kam a na jakou “VPN” se vlastně má připojit.

První požadavek jde na https://api.surfeasy.com/v2/re­gister_subscriber a z odpovědi serveru browser získá několik cookie, které později posílá pro ověření zpět na SurfEasy API. Jsou to cookie subscriber_credentials, api_session (ta se v průběhu posílání požadavků mění) a _proxy_manager_session31. V požadavku jsou vidět hlavičky SE-Client-Type a SE-Client-API-Key, to jsou pravděpodobně hodnoty uvedené přímo v browseru, alespoň to tak vypadá po prozkoumání rozšíření SurfEasy VPN for Opera, ze kterého nejspíš “VPN” v Opeře vychází.

Api.CLIENT_TYPE_OPERA = 'se0204';
Api.CLIENT_TYPE_CHROME = 'se0205';

Api.CLIENT_API_KEY_OPERA = '184E166877D1AA1AB7BB702E31DE0EE650442D67529CFEE7DA12FE72455EF32D';
Api.CLIENT_API_KEY_CHROME = '37403FC0A1C5C5FCDAAF7A31253A855AC900BEE2CFF2AB3FFF5AEFD83ECB04F9';

api.js z surfeasy-proxy-an-opera-software-company-1.2.3–1.crx

Druhý požadavek browser posílá na https://api.surfeasy.com/v2/re­gister_device, server nazpět pošle device_password a device_id, těmito údaji se poté browser autorizuje proxy serveru (kterému Opera říká VPN server)

  "data" : {
      "device_password" : "C74891C1220057FBC43B1C403D6D10916F609DFB678D04BAB39303646E14CA77",
      "client_type" : "se0304",
      "device_id" : "se0304-30e2096eed63607b34b36af"
  },

Příchozí id a heslo

Požadavkem poslaným na https://api.surfeasy.com/v2/geo_list pak Opera zjišťuje, kde všude po světě jsou dostupné VPN proxy servery.

V odpovědi na poslední, čtvrtý požadavek se Opera konečně dozví, jaké IP adresy jednotlivé proxy servery mají a v jaké zemi se ten který server nachází. Nějakou vnitřní magií si vybere jednu IP adresu, v mém případě to byla adresa 185.108.219.42, ke které prohlížeč přiřadil jméno de0.opera-proxy.net a server s tímto jménem pak používal jako proxy server. Jméno de0.opera-proxy.net jde přeložit na IP pouze a jen v Opeře a jen když je zapnutá “VPN”, Opera pravděpodobně používá nějak upravený resolver.

Kompletní záznam všech požadavků a odpovědí najdete u mě na GitHubu. Vytvořil jsem také jednoduchý skript v Pythonu, který všechny ty požadavky pošle a zpracuje tak, jak to nejspíš dělá i samotná Opera. Nazval jsem ho The Oprah Proxy.

Proxy servery jako např. de0.opera-proxy.net vyžadují jméno a heslo, heslo prohlížeč zná z odpovědi na druhý API požadavek ( device_password), jméno je vypočítané jako sha1(device_id). Když toto jméno a heslo získáte, třeba tak, že si v browseru zachytíte požadavek na proxy server, který jméno a heslo obsahuje v hlavičce Proxy-Authorization, tak se pak na proxy servery Opery můžete připojit i z jiného počítače, na kterém Opera vůbec není nainstalována. Jsou to klasické HTTP(S) proxy servery, které vyžadují ověření, ne VPN servery.

Od těch klasických běžných HTTP proxy serverů se přece jen ve dvou věcech odlišují: za prvé, browser se na ně připojuje vždy pomocí šifrovaného HTTPS, a to i přesto, že se zrovna snaží načíst stránku pomocí nešifrovaného HTTP a za druhé, překlad domény na IP adresu se provádí až na tom proxy serveru, nedělá ho samotný prohlížeč, takže z browseru bokem neutíkají nešifrované dotazy do DNS. Díky tomu si celkem oprávněně zaslouží název “secure proxy”.


Autor: Michal Špaček

Proxy vyžaduje ověření

Je tu ještě několik důležitých drobností. Nastavení “VPN” přežije restart browseru, což znamená, že device_id (a tedy uživatelské jméno pro přihlášení na proxy) zůstává stejné, i když browser vypnete a zase zapnete. Toho by se dalo využít pro sledování chování uživatelů, a reklamní průmysl by jistě věděl, co s takovými daty dělat. Parametr device_id přežije dokonce i reinstalaci browseru, pokud při odinstalaci nevyberete, že chcete smazat i uživatelská data.

“VPN” v Opeře má ještě jeden problém. Může prozradit vaši IP adresu, i když jste připojeni přes tuto “VPN”. K vyzrazení se dá zneužít WebRTC, které adresu leakne. Vyzkoušet si to můžete na https://ipleak.net/. Pokud jste připojení přes opravdovou VPN, tak by k vyzrazení vaší IP adresy docházet nemělo.

Opera Software ve své zprávě tvrdí, že jejich “VPN” je lepší, než tradiční VPN. No, jak se to vezme. Není to VPN, nezabezpečí to všechna spojení tak jako VPN, ale umí to vyzradit vaši IP adresu a má to potenciální sledovací možnosti a je to zdarma a neomezené. Odpovězte si raději sami.

Podobných “VPN” bude jistě víc, ale pokud si chcete vybrat nějakou opravdovou VPN, může vám pomoci třeba tento rozsáhlý přehled porovnávající VPN služby. SurfEasy, tedy služba, kterou Opera používá, tam nemá zrovna nejlepší hodnocení, údajně má zaznamenávat IP adresy klientů používajících službu, ačkoliv v Privacy Policy aktualizované 18. dubna už tvrdí, že to nedělá.

Autor článku

Autor umí vyvíjet webové aplikace a zajímá se o jejich bezpečnost. Nebojí se o tom mluvit veřejně, hledá hranice tak, že je posouvá. Jeho cílem je naučit webové vývojáře stavět bezpečnější a výkonnější weby a aplikace.

Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).