Jak jsem přišel na to, že „VPN“ v prohlížeči Opera celkem pochopitelně není VPN.
A jak stejný postup můžete použít i vy třeba pro zkoumání extenzí nebo jiných
vnitřností browserů. Slajdy obsahují poznámky, které v původní prezentaci nejsou.
Michal ŠpačekMichal Špaček www.michalspacek.czwww.michalspacek.cz @spazef0rze@spazef0rze
Operu milovalo a používalo hodně webových vývojářů, včetně mě. Od tohoto
původně norského prohlížeče se často inspirovali i výrobci ostatních browserů, z
Opery převzali například „taby“. Počátkem roku 2008 byla v Praze otevřena
vývojová pobočka Opera Software (a o pár let později zase v tichosti zavřena). V
létě 2013 vyšla verze 15 a od té doby je prohlížeč Opera postaven na projektu
Chromium a používá jádro Blink, stejně jako Chrome a další browsery.
V roce 2016 se v Opeře objevil vestavěný „ad-blocker“ a „VPN“. Software pro
tvorbu Virtual private network zpřístupňuje privátní sítě přes Internet. VPN se
také používají pro ochranu připojení v případě používání veřejných Wi-Fi, umí
chránit veškerý provoz z a do zařízení, nehledě na program, který data posílá
nebo přijímá. VPN pracují na 2. (spojové) nebo 3. (síťové) vrstvě OSI modelu.
Ondrej Galbavý mě upozornil, že v Opeře by to tak být nemuselo. Jeho tweet
adresovaný tehdejšímu zástupci CTO Opery říkal, že v Opeře je proxy, ne VPN.
Bruce Lawson ho ovšem ujistil, že to opravdu je VPN. To mě zaujalo a vydal jsem
se nalézt pravdu, Deputy CTO by přece měl vědět, co tam mají. Důvěřuj, ale…
Toto je drobný text pod checkboxem, kterým v nastavení Opery povolujete „VPN“.
PROXY
WEB
HTTPS (TLS 1.2)
HTTP/HTTPS
DNS
„VPN“ v Opeře je opravdu proxy, přesněji secure proxy. Provoz mezi prohlížečem
a proxy serverem je vždy šifrovaný pomocí HTTPS, nehledě na to, na jaký web se
nakonec pošle požadavek. DNS překlad na IP adresu provádí také proxy server.
Přišel jsem na to pomocí prohlížeče samotného, zkoumal jsem co a kam posílá.
V Developer Tools (F12) ale nevidíte všechno, musíte jít trochu hlouběji, do
chrome://net-internals. Požadavky, nejen ty interní, najdete v Events, pro
zobrazení celých POST požadavků musíte v Capture povolit Include the actual
bytes. Seznam speciálních chrome URL pro prohlížeč Chrome najdete na
chrome://chrome-urls/, ale v Opeře všechny nefungují. Firefox má seznam
na about:about a v popisu protokolu about na Mozilla Developer Network.
Když v nastavení poprvé povolíte „VPN“, tak Opera pošle čtyři POST požadavky
na api.surfeasy.com. Nejdříve zaregistruje uživatele (register_subscriber),
poté zařízení (register_device), pak získá seznam zemí (geo_list), ve kterých
jsou proxy servery, a nakonec zjistí IP adresy těch proxy serverů (discover).
Source Type: URL_REQUEST
Rozkliknutím událostí typu URL_REQUEST zjistíte hlavičky těch požadavků. V
současné Opeře verze 44 již obsah podstatných hlaviček výrobce skryl, v
dřívějších verzích („VPN“ je ve vývojářské Opeře od verze 38) byl API klíč vypsán.
Source Type: SOCKET
Když výrobce skryl API klíč v URL_REQUEST, tak se dal ještě najít v události typu
SOCKET, společně s tělem POST požadavku, pokud jste povolili zobrazování
všech bajtů na záložce Capture. Od února 2017 (Opera 43) už je skrytý i tam.
Source Type: HTTP_STREAM_JOB
Jak tedy ověřit, že „VPN“ v Opeře je vlastně proxy? V detailu události typu
HTTP_STREAM_JOB najdete nastavení Proxy auto-config (PAC), určující proxy
servery, z nichž browser vybere jeden, který se pro vybraný požadavek použije.
Source Type: SOCKET
V události SOCKET je pak vidět i připojení na proxy server a poslání žádosti
o otevření spojení na cílový web (zde ifconfig.co) metodou CONNECT. Ta se používá
právě k tunelování HTTP požadavků. Všimněte si i dalších „proxy“ hlaviček.
Registraci uživatele a získání IP adres proxy serverů jsem pro studijní účely
reimplementoval. Vytvořil jsem v Pythonu skript, který vypíše IP adresy proxy
serverů i jméno a heslo potřebné pro připojení k nim. Jmenuje se The Oprah Proxy
a najdete ho na GitHubu. Oprah Winfrey v jedné show rozdávala auta, můj skript
rozdává proxy servery. Název se asi zalíbil i v SurfEasy, VPN divizi Opery :-)
Takto můj skript vypíše jméno a heslo pro proxy servery, které můžete použít třeba
i ve Firefoxu. Na GitHubu naleznete ukázkový soubor pac.js a popis, jak ho využít.
Secure proxy podporuje i curl od verze 7.52.0, která vyšla v prosinci 2016. Asi by
bylo dobré upozornit, že při použití těchto proxy serverů se vygenerované username
posílá s každým požadavkem, a že to celé může kdykoliv přestat fungovat.
Opera tuhle „VPN“ technologii nevytvořila úplně sama, ale v březnu 2015 ji koupila
společně s kanadskou firmou SurfEasy. Ta se stala „VPN divizí Opery“.
Od července 2016 vlastní Operu (prohlížeč a jméno, ne celou firmu) konsorcium
čínských společností. (Transakce byla dokončena v listopadu 2016.) Do prodaného
balíčku patří i divize SurfEasy a její produkty.
Jen si to představte: vaši firmu na VPN a proxy koupí norská společnost. Tu
obratem koupí skupina čínských firem, včetně vás. No a pak v Číně zakážou VPN,
resp. použití VPN musí schválit čínská vláda. To je ale pech, co?
Opera nabízí také VPN aplikace pro iOS i Android. Obojí jsou klasické VPN, ne jen
proxy servery. Asi by bylo dobré dodat, že „secure proxy“ v Opeře na zabezpečení
prohlížení stránek proti hackerům v kavárnách a na konferencích stačí, jen není fér
tomu říkat VPN. Nezapomeňte, že na anonymitu na Internetu VPN nestačí, a že ne
každá VPN aplikace je stejně dobrá a bezpečná.
MichalMichal ŠpačekŠpaček
www.michalspacek.czwww.michalspacek.cz
@spazef0rze@spazef0rze

More Related Content

PDF
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
ODP
Víceúrovňová obrana vysvětlená na Cross-Site Scriptingu
ODP
Lámání a ukládání hesel
ODP
Quality of Life, Multiple Lines of Defense
ODP
Jak zlepšit zabezpečení čtvrtiny celého webu
ODP
Medvědí služba
ODP
Disclosing password hashing policies
ODP
XSS PHP CSP ETC OMG WTF BBQ
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
Víceúrovňová obrana vysvětlená na Cross-Site Scriptingu
Lámání a ukládání hesel
Quality of Life, Multiple Lines of Defense
Jak zlepšit zabezpečení čtvrtiny celého webu
Medvědí služba
Disclosing password hashing policies
XSS PHP CSP ETC OMG WTF BBQ

More from Michal Špaček (20)

ODP
Bezpečnost e-shopů (HTTPS, XSS, CSP)
ODP
Poučte se z cizích chyb
ODP
Minulé století volalo (Cross-Site Scripting + BeEF + CSP demo)
ODP
Password manažeři detailněji – 1Password, LastPass, 2FA, sdílení
ODP
Operations security (OPSEC) in IT
ODP
HTTPS (a šifrování) všude
ODP
HTTP Strict Transport Security (HSTS), English version
ODP
Bezpečnost na mobilních zařízeních
ODP
Základy webové bezpečnosti pro PR a marketing
ODP
I forgot my password – what a secure password reset needs to have and why
ODP
Hlava není na hesla
ODP
HTTP Strict Transport Security (HSTS)
ODP
ODP
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)
ODP
Přechod na HTTPS
ODP
Noční můry webového vývojáře
PPT
The problem with the real world
ODP
Zabezpečení Slevomatu
ODP
Total Cost of Pwnership
ODP
Kolik webových útoků znáš...
Bezpečnost e-shopů (HTTPS, XSS, CSP)
Poučte se z cizích chyb
Minulé století volalo (Cross-Site Scripting + BeEF + CSP demo)
Password manažeři detailněji – 1Password, LastPass, 2FA, sdílení
Operations security (OPSEC) in IT
HTTPS (a šifrování) všude
HTTP Strict Transport Security (HSTS), English version
Bezpečnost na mobilních zařízeních
Základy webové bezpečnosti pro PR a marketing
I forgot my password – what a secure password reset needs to have and why
Hlava není na hesla
HTTP Strict Transport Security (HSTS)
Víte, že nevíte, že já vím, že nevíte? (WebTop100 2014)
Přechod na HTTPS
Noční můry webového vývojáře
The problem with the real world
Zabezpečení Slevomatu
Total Cost of Pwnership
Kolik webových útoků znáš...
Ad

Fantom Opery, "VPN" a Secure Proxy v Opeře

  • 1. Jak jsem přišel na to, že „VPN“ v prohlížeči Opera celkem pochopitelně není VPN. A jak stejný postup můžete použít i vy třeba pro zkoumání extenzí nebo jiných vnitřností browserů. Slajdy obsahují poznámky, které v původní prezentaci nejsou. Michal ŠpačekMichal Špaček www.michalspacek.czwww.michalspacek.cz @spazef0rze@spazef0rze
  • 2. Operu milovalo a používalo hodně webových vývojářů, včetně mě. Od tohoto původně norského prohlížeče se často inspirovali i výrobci ostatních browserů, z Opery převzali například „taby“. Počátkem roku 2008 byla v Praze otevřena vývojová pobočka Opera Software (a o pár let později zase v tichosti zavřena). V létě 2013 vyšla verze 15 a od té doby je prohlížeč Opera postaven na projektu Chromium a používá jádro Blink, stejně jako Chrome a další browsery.
  • 3. V roce 2016 se v Opeře objevil vestavěný „ad-blocker“ a „VPN“. Software pro tvorbu Virtual private network zpřístupňuje privátní sítě přes Internet. VPN se také používají pro ochranu připojení v případě používání veřejných Wi-Fi, umí chránit veškerý provoz z a do zařízení, nehledě na program, který data posílá nebo přijímá. VPN pracují na 2. (spojové) nebo 3. (síťové) vrstvě OSI modelu.
  • 4. Ondrej Galbavý mě upozornil, že v Opeře by to tak být nemuselo. Jeho tweet adresovaný tehdejšímu zástupci CTO Opery říkal, že v Opeře je proxy, ne VPN. Bruce Lawson ho ovšem ujistil, že to opravdu je VPN. To mě zaujalo a vydal jsem se nalézt pravdu, Deputy CTO by přece měl vědět, co tam mají. Důvěřuj, ale…
  • 5. Toto je drobný text pod checkboxem, kterým v nastavení Opery povolujete „VPN“.
  • 6. PROXY WEB HTTPS (TLS 1.2) HTTP/HTTPS DNS „VPN“ v Opeře je opravdu proxy, přesněji secure proxy. Provoz mezi prohlížečem a proxy serverem je vždy šifrovaný pomocí HTTPS, nehledě na to, na jaký web se nakonec pošle požadavek. DNS překlad na IP adresu provádí také proxy server.
  • 7. Přišel jsem na to pomocí prohlížeče samotného, zkoumal jsem co a kam posílá. V Developer Tools (F12) ale nevidíte všechno, musíte jít trochu hlouběji, do chrome://net-internals. Požadavky, nejen ty interní, najdete v Events, pro zobrazení celých POST požadavků musíte v Capture povolit Include the actual bytes. Seznam speciálních chrome URL pro prohlížeč Chrome najdete na chrome://chrome-urls/, ale v Opeře všechny nefungují. Firefox má seznam na about:about a v popisu protokolu about na Mozilla Developer Network.
  • 8. Když v nastavení poprvé povolíte „VPN“, tak Opera pošle čtyři POST požadavky na api.surfeasy.com. Nejdříve zaregistruje uživatele (register_subscriber), poté zařízení (register_device), pak získá seznam zemí (geo_list), ve kterých jsou proxy servery, a nakonec zjistí IP adresy těch proxy serverů (discover).
  • 9. Source Type: URL_REQUEST Rozkliknutím událostí typu URL_REQUEST zjistíte hlavičky těch požadavků. V současné Opeře verze 44 již obsah podstatných hlaviček výrobce skryl, v dřívějších verzích („VPN“ je ve vývojářské Opeře od verze 38) byl API klíč vypsán.
  • 10. Source Type: SOCKET Když výrobce skryl API klíč v URL_REQUEST, tak se dal ještě najít v události typu SOCKET, společně s tělem POST požadavku, pokud jste povolili zobrazování všech bajtů na záložce Capture. Od února 2017 (Opera 43) už je skrytý i tam.
  • 11. Source Type: HTTP_STREAM_JOB Jak tedy ověřit, že „VPN“ v Opeře je vlastně proxy? V detailu události typu HTTP_STREAM_JOB najdete nastavení Proxy auto-config (PAC), určující proxy servery, z nichž browser vybere jeden, který se pro vybraný požadavek použije.
  • 12. Source Type: SOCKET V události SOCKET je pak vidět i připojení na proxy server a poslání žádosti o otevření spojení na cílový web (zde ifconfig.co) metodou CONNECT. Ta se používá právě k tunelování HTTP požadavků. Všimněte si i dalších „proxy“ hlaviček.
  • 13. Registraci uživatele a získání IP adres proxy serverů jsem pro studijní účely reimplementoval. Vytvořil jsem v Pythonu skript, který vypíše IP adresy proxy serverů i jméno a heslo potřebné pro připojení k nim. Jmenuje se The Oprah Proxy a najdete ho na GitHubu. Oprah Winfrey v jedné show rozdávala auta, můj skript rozdává proxy servery. Název se asi zalíbil i v SurfEasy, VPN divizi Opery :-)
  • 14. Takto můj skript vypíše jméno a heslo pro proxy servery, které můžete použít třeba i ve Firefoxu. Na GitHubu naleznete ukázkový soubor pac.js a popis, jak ho využít. Secure proxy podporuje i curl od verze 7.52.0, která vyšla v prosinci 2016. Asi by bylo dobré upozornit, že při použití těchto proxy serverů se vygenerované username posílá s každým požadavkem, a že to celé může kdykoliv přestat fungovat.
  • 15. Opera tuhle „VPN“ technologii nevytvořila úplně sama, ale v březnu 2015 ji koupila společně s kanadskou firmou SurfEasy. Ta se stala „VPN divizí Opery“.
  • 16. Od července 2016 vlastní Operu (prohlížeč a jméno, ne celou firmu) konsorcium čínských společností. (Transakce byla dokončena v listopadu 2016.) Do prodaného balíčku patří i divize SurfEasy a její produkty.
  • 17. Jen si to představte: vaši firmu na VPN a proxy koupí norská společnost. Tu obratem koupí skupina čínských firem, včetně vás. No a pak v Číně zakážou VPN, resp. použití VPN musí schválit čínská vláda. To je ale pech, co?
  • 18. Opera nabízí také VPN aplikace pro iOS i Android. Obojí jsou klasické VPN, ne jen proxy servery. Asi by bylo dobré dodat, že „secure proxy“ v Opeře na zabezpečení prohlížení stránek proti hackerům v kavárnách a na konferencích stačí, jen není fér tomu říkat VPN. Nezapomeňte, že na anonymitu na Internetu VPN nestačí, a že ne každá VPN aplikace je stejně dobrá a bezpečná. MichalMichal ŠpačekŠpaček www.michalspacek.czwww.michalspacek.cz @spazef0rze@spazef0rze