Hlupákův hloupý a polopatický dotaz k tématu všeobecně. Příklad. Z bookmarku rozkliknu nebo do adresního řádku zadám
https://cs.wikipedia.org/wiki/Linux#Historie
Předpokládejme, že vše funguje, jak fungovat má. Žádný exploit, žádný downgrade šifrování a co všechno je ještě možné. Prostě žádné prolamování zašifrované komunikace se v našem ideálním případě dít nebude. Co potom vidí můj poskytovatel připojení? Co vidí každý další, přes koho datový proud prochází? Kromě serveru wikipedia.org, na ten se už neptám. Nejspíš chybně jsem se dosud domníval, že celá URL je i při použití šifrování čitelná pro ISP a všechny další cestou.
Kdo vidí, že přistupuji na wikipedia.org? (předpokládám všichni)
Kdo vidí doménu třetího řádu?
Kdo vidí, že si na wikipedii čtu o Linuxu?
Kdo vidí, že si na wikipedii v článku o Linuxu čtu kapitolu Historie?
A obecněji.
https://www.example.com/search.php?searchterm=Linux&mode=advanced&author=JohnDoe
Všechny uzly na cestě požadavku vidí (předpokládám), že jdu na example.com. Kdo kromě vlastního example.com vidí, že jsem hledal Linux, použil pokročilé vyhledávání a jako parametr autor zadal JohnDoe?
1) ze lezes na wiki videj vsichni cestou
2) na jakou konkretni domenu videj taky vsichni cestou - teda pokud si to nevypnes, coz prozmenu povede k tomu, ze se na 80% webu nepodivas (a kdyby kazda domena mela svoji IP, tak ses v bodu 1)
3) 4) jedno i druhy vidi vsichni kteri maji pristup k infrastrukture wiki, pripadne k ty tvoji.
Muzes do cesty zaradit trebas tor, cimz (pokud vse funguje jak ma) pretrhnes retezec => tvuj ISP vidi ze komunikujes s nejakym tor nodem, ale nevi ze na wiki, enpoint vidi ze nekdo leze na wiki, ale nevi kdo.
Ale pokud mam zaroven pristup k wiki a zaroven ke tvy siti, tak sem schopnej tor eliminovat (a to i kdyz vse funguje).
Pokial viem tak cez https by malo byt viditelne iba to ze lezes na https://cs.wikipedia.org
a ostatne sa posle az po handshake teda uz zasifrovane.
TL;DR
http://robertheaton.com/2014/03/27/how-does-https-actually-work/
Poskytovatel připojení vidí, že překládáte DNS název cs.wikipedia.org
(ale pak si ten přeložený název bude váš počítač držet nějakou dobu v cache). Může to také vidět někdo jiný, podle toho, jaké DNS servery používáte.
Dál už se komunikuje jen s IP adresou, kterou váš počítač získal tím překladem (ale zrovna na IP adrese Wikipedii asi žádná jiná služba neběží). Tu IP adresu zase vidí váš ISP a všichni ISP po cestě až k serverům Wikipedie.
Pokud váš prohlížeč podporuje SNI (podporují to všechny moderní prohlížeče), je pak to doménové jméno cs.wikipedia.org
vidět i při navazování šifrované komunikace (prohlížeč tím říká serveru, jaký mu má poslat serverový certifikát – pro případ, že na serveru běží víc webů a je nutné vybrat odpovídající certifikát). Tohle opět může vidět váš ISP a všichni po cestě.
Část za lomítkem už se pak posílá v šifrované části komunikace, takže tu už se dozví jen cílový server. Část za křížkem #
prohlížeč vůbec nikam neposílá, ta zůstává jen v prohlížeči.
Takže že přistupujete na cs.wikipedia.org vědí „všichni“, že čtete o Linuxu nebo hledáte Linux v pokročilém vyhledávání ví jen provozovatel serveru, a že čtete kapitolu Historie ví jenom váš prohlížeč.
Jinak webové prohlížeče ještě předávají adresu zdrojové stránky i cílové stránce při kliknutí na odkaz, a také při stahování všech stylů, skriptů a obrázků patřících ke stránce (pokud to nemáte vypnuté, a pokud zdrojová stránka není na HTTPS a cílová na HTTP). Takže pokud to v prohlížeči nezakážete a kliknete na té stránce na Wikipedii na nějaký odkaz, provozovatel cílového serveru se dozví, že jste přišel právě z české Wikipedie ze stránky o Linuxu (o kapitole Historie se nedozví). Ale to už nesouvisí se šifrováním nýbrž s dohodou o tom, jak se bude používat protokol HTTP.
To už je ale něco jiného. Aplikace v prohlížeči se vás může zeptat na jméno, heslo, číslo platební karty, může zjistit celou aktuální webovou adresu, když jí dáte oprávnění, může vás vyfotit – a to všechno pak může poslat přes HTTP na úplně jiný server. Ale to už je vlastnost té konkrétní webové aplikace, ne vlastnost samotného webového prohlížeče.
Ano, webový prohlížeč umožňuje prohlížeč web – to je vskutku nečekané. Na co by se prohlížeč měl uživatele ptát? Na to, jestli smí webová aplikace pracovat s daty, která jí uživatel zadal? „Napsal jste písmeno 'a'. Opravdu mám zadat písmeno 'a' do formulářového pole?“ „Pohnul jste myší. Opravdu chcete pohnout kurzorem myši?“ „Klikl jste na odkaz. Opravdu chcete navštívit odkazovanou stránku?“ Nebuďte troškař, dotáhněte to dál. Uživatel by měl písemně potvrdit každou instrukci procesoru před tím, než se provede.
Odeslání referreru je ale standardní akce, kterou dělá sám prohlížeč na všech stránkách (pokud není prohlížeč speciálně upraven). Odeslání kotvy přes AJAX je to samé, jako odeslání čísla karty – uživatel musí jít na stránku, která danou věc dělá (odesílá formulář nebo kotvu), a musí provést nějakou akci, kterou zadá ty údaje (napíše číslo karty do formulářového políčka, klikne na odkaz s kotvou).
Původní dotaz byl na to, co dělá obecně webový prohlížeč, třeba na Wikipedii. Máte pravdu v tom, že z hlediska bezpečnosti je často podstatnější to, co prohlížeč umožňuje dělat webovým stránkám, než to, co dělá samotný prohlížeč. Uživatel by měl ale počítat s tím, že cokoli zadá do webové aplikace, s tím si ta aplikace může dělat, co chce – ať to zadá jako text do formulářového pole, nebo to zadá jako kotvu kliknutím na odkaz, nebo to „zadá“ implicitně tím, že nad stránkou rejdí myší.
Asi se shodneme – z hlediska bezpečnosti není až tak podstatný defaultní stav (posílá se referer*, neposílá se location hash), jako spíš to, kdo to může ovlivnit (odesílání refereru může ovlivnit stránka, která stejně zná svoji URL; odeslání location.hash může ovlivnit server, který k tomu sám o sobě nemusí mít přístup). Plus je samozřejmě podstatné riziko opomenutí, ale to jsme někde jinde.
Nepovažuju to za zásadní problém, jen v kontextu vysvětlování toho, kdo má k čemu přístup, mi to přišlo trošku zavádějící.
*) Pro úplnost: ani toto neplatí úplně vždy, typicky při HTTPS –> HTTP
Nerozumím tomu, jaký je podle vás rozdíl mezi „serverem“ a „stránkou“. Referrer posílá prohlížeč automaticky, pokud tomu chce nějaký web zabránit, musí všechny externí odkazy přesměrovat přes server, který je anonymizuje. Hash naopak prohlížeč nikam neposílá, a pokud jej chce webová aplikace využít, musí ho naopak pomocí JavaScriptu aktivně přečíst.
Jako příklad byla v úvodním dotazu uvedena Wikipedie, a tam žádný skript odesílající hash není. Pokud se budeme bavit o tom, co mohou udělat skripty, tak skript má přístup k celé adrese ak celému obsahu stránky. Takže se někam můžu připojit přes HTTPS bez SNI, ISP uvidí jen DNS překlad a pak šifrovanou komunikaci s IP adresou, ale neuvidí ani doménový název v té komunikaci, ani adresu, ani obsah stránky. A pak se na té stránce spustí skript, který celou adresu i obsah stránky někam pošle po HTTP. A ISP uvidí vše, co před ním předtím bylo díky HTTPS skryté. Možné to samozřejmě je, ale myslím, že je to něco jiného, než na co se ptal ten původní dotaz. Takže pořád nevím, v čem vidíte ten rozdíl, zda skript spuštěný na stránce má přístup k hashi v URL, nebo zda má stránka přístup k vyplněnému formuláři, cookies, rozměrům stránky, událostem klávesnice a myši a spoustě dalších věcí…
> Nerozumím tomu, jaký je podle vás rozdíl mezi „serverem“ a „stránkou“.
Server posílá prohlížeči stránku.
> Referrer posílá prohlížeč automaticky, pokud tomu chce nějaký web zabránit, musí všechny externí odkazy přesměrovat přes server, který je anonymizuje.
Ano (a lze to i skrze nějaký meta tag), podstatné je, že tady o tom rozhoduje držitel citlivé informace – server, který URL tak jako tak zná. Cílovému serveru pak referer nemusí být vůbec dostupný a ani nemusí mít možnost se k němu dostat.
> Hash naopak prohlížeč nikam neposílá, a pokud jej chce webová aplikace využít, musí ho naopak pomocí JavaScriptu aktivně přečíst.
Z hlediska bezpečnosti není moc podstatné, že se tak nestane defaultně. Podstatné je, že server má možnost location.hash zjistit a standardně (se zapnutým JS atd.) tomu nezabráníme.
> neuvidí ani doménový název v té komunikaci
Uvidí minimálně certifikát (i kdyby neviděl DNS), a z něj lze doménové jméno obvykle vyčíst nebo odhadnout. Ano, wildcard a multidomain certifikáty to kompolikují.
> A pak se na té stránce spustí skript, který celou adresu i obsah stránky někam pošle po HTTP.
To už je trošku jiný druh hrozby – někdo, komu jsem tu komunikaci vědomě (přímo či nepřímo) svěřil, ji nepohlídal dostatečně. Do toho spadá i leaknutý serverový klíč.
Pokud ale budeme předpokládat, že location.hash se na server neposílá, může nás překvapit, že se k tomu může server dostat. Tzn. někdo, komu jsme informaci svěřit nechtěli, se ji dozví přímo od nás.
O posílání referreru ale nerozhoduje server, posílá ho prohlížeč. Úplně stejně, jako může prohlížeč někam odeslat kotvu, může odeslat i zbytek URL (tedy referrer).Server sám o sobě nemá možnost kotvu zjistit. Server má možnost poslat v rámci webové stránky do prohlížeče skript, který může zjistit spoustu informací, a může je poslat zpět serveru, nebo kamkoli jinam – to už ale není vlastností komunikace nebo prohlížeče, ale toho webu, který uživatel prohlíží. Server takhle dokonce může poslat spustitelný kód, který po spuštění uživatelem zformátuje disk nebo zašifruje jeho soubory. Ale to nijak nesouvisí s tím, co je vidět v rámci HTTPS komunikace prohlížeče se serverem.
Pokud ale budeme předpokládat, že location.hash se na server neposílá, může nás překvapit, že se k tomu může server dostat. Tzn. někdo, komu jsme informaci svěřit nechtěli, se ji dozví přímo od nás.
To je ale chybný předpoklad, že můžu poskytnout webové stránce nějaké informace, aniž by měl možnost získat je server. Ne, webový server má nad stránkou plnou kontrolu, a co té webové stránce svěřím, to může znát i server. Což je třeba důvod, proč správná implementace přihlašování na webu by byla taková, že heslo by se zadávalo do prohlížeče (ne webové stránky) a už prohlížeč by z něj spočítal jednorázový hash, který by teprve předal webové stránce. Jakmile dnes zadám heslo v otevřeném tvaru do webové stránky, musím počítat s tím, že to heslo v otevřeném tvaru zná i server.
Na úrovni protokolu HTTP(S) není snad ani kotva definovaná (snad jen v URI scheme), takže zde to IMHO nemá smysl řešit.
Na úrovni prohlížeče naopak dává smysl řešit, co umějí skripty.
> To je ale chybný předpoklad, že můžu poskytnout webové stránce nějaké informace, aniž by měl možnost získat je server.
Běžně ano, ve speciálních případech je to OK: Mohu vypnout JS nebo vyřešit všechny potenciální odchozí kanály (síť, CPU cache, zvuk, …).
Co se týče hesel, celkem souhlas.
"Přechod Wikipedie na HTTPS pomohl v boji s cenzurou"
Supr. Boj s cenz§rou je určitě záslužný. Možná ale lehčí a "záslužnější" než boj s kvalitou obsahu. Tím nechci řict že je Wikipedie nějaká hrůza, ale že co do opravdového "zdroje" má díkky způsobu přidávání a (ne)ověřování informací ještě daleko.
Jasně, to víš Ty, ví to moje maličkost, sousta jiných lidí, ale velká spousta to netuší.
Klasický problém který tam potkávám, a trochu jsem na to narážel, je tzv. "psaní dnešní historie", kdy wikipedie obsahuje spustu materiálů o aktuálních událostech a osobnostech, kdy neuzavřené věci a kauzy "uzavírají" svými texty. To není dobré a wikipedie je toho plná . . . .
Ve vší slušnosti, je ti jasné jakou má váhu to, že to zrovna tebe nenapadne, že?
Ovšem nemusíš ani hledat "aktuální události", stačí se zajímat třeba o zeměpis a najít si např. Krym, víme všichni o co se jedná . . . a šup, je to tam . . . nejhorší na tom je, že s tím pak takto nenápadně pracují děti třeba ve škole a je jim to tak nějak podsouváno pod "Historie", ale pokud vím tak na hodnocení historie má být 50 let . . .
Demagog jste vy, když tvrdíte, že když obyvatelé vítají vojska, nemůže jít o okupaci, ale o osvobození. Samozřejmě, že se v šedesátém osmém našli pomatenci, kteří vítali okupační vojska. Stejně jako před tím jiní pomatenci vítali vojska německá. A dneska by se zase našli tací, kteří by vítali ruská vojska.
Zval https://legacy.blisty.cz/art/48002.html
Už v době našeho vstupu do NATO byl Havel proti referendu.
Zval je sem v roce 2009. ".... napsali Obamovi dopis, v němž mimojiné vyjadřují přesvědčení, že USA by se pod nátlakem Moskvy neměly vzdávat výstavby protiraketového štítu v Polsku a České republice."
Členství v NATO značně omezuje naší suverenitu. Okupační vojska na naše území vstupují často.
Neskutečné jsou vaše komentáře a interpretace. Nedokážete rozlišit, že je rozdíl, jestli pozvete přítele, se kterým budete společně na něčem pracovat, že u vás může bydlet, nebo jestli k vám vtrhne parta ožralů, zmlátí vás, okrade a pak se u vás usadí „na věčné časy“ a dovolí vám, že když je budete poslouchat, můžete zůstat.
Dalo by se také napsat, že Bilak a Indra zvali přítele, se kterým chtěli společně pracovat na obraně proti americkému imperialismu a domácím fašistům, kteří se chystali svrhnout Dubčeka.
Základny USA jsou téměř všude proti vůli většiny místního obyvatelstva. Pozvali je maximálně zkorumpovaní kolaborující politici nebo jedná se o setrvávající okupaci jako v Japonsku a Německu nebo vtrhli bez pozvání jako do Iráku. U nás si také většina obyvatel americkou základnu nepřála, přesto je sem kolaborantské, nikým nevolené děvky jako Havel zvali.
Jen bych poznamenal, že HTTPS ještě neznamená, že nelze odhadovat, co si člověk prohlíží. Lze sledovat objemy přenesených dat, ideálně v obou směrech, a hledat v tom vzory. Stránka má nějakou (veřejně známou) velikost, může obsahovat nějaké obrázky (na které se ale prohlížeč teprve bude doptávat, takže to lze použít do jisté míry oddělit – zvlášť pokud pozdržíte ten request) atd.
Jasně, takové útoky mají svoje limity:
* Není to něco, co bych zvládl za dvě hodiny, zvlášť ne na webu o rozsahu Wikipedie. Na druhou stranu, vláda na to asi bude mít prostředky.
* Může se stát, že zakázanou stránku budu schopen zablokovat až ve chvíli, kdy už nezabráním jejímu načtení.
* Určitá míra false positives a false negatives.
* Cache a HTTP/2 to zkomplikují.
I tak ale vláda může být schopna zjistit, v jaké oblasti se o jaká nebezpečná témata lidé zajímají vice nebo rozlišit člověka, který se o taková témata zajímá pravidelně od lidí, kteří si občas něco přečtou. (Ono není prakticky možné nějak výrazněji za návštěvu nepovolených stránek postihovat polovinu obyvatelstva, ale vytipovat si malou část nejproblematičtějších…)
Řešením může být třeba Tor, ten bude leakovat méně metadat – pokud ovšem není citlivá samotná informace, že používáte Tor…
HTTPS má samozřejmě smysl, ale je vhodné si být vědom, jaké ty výhody mají limity.
Docasnej efekt ... cenzori vzdycky reagujou se zpozdenim, a navic neni ani ucelem zablokovat vsem vsechno, staci vetsine.
A fakt by me zajimalo, kolik lidi by se odvazilo jit na wiky, kdybych za to zakonem stanovil 10let basy. Vubec bych neresil nejaky technicky opatreni.
On totiz ten "cinskej firewall" (pro priklad) se da obejit velice snadno, ale hrozej za to (mistnim, cizince nikdo neresi) pomerne slusny palky. A stejne jako jinde to funguje tak, ze kdyz to delas, a drzis hubu, tak te nikdo neresi, ale kdyz to delas a jeste se tim chlubis ...
"On totiz ten "cinskej firewall" (pro priklad) se da obejit velice snadno, ale hrozej za to (mistnim, cizince nikdo neresi) pomerne slusny palky."
Kedze zrovna o tomto dost viem, tak ta musim poopravit:
1. Neda sa to obist velmi jednoducho, teda pokial sa bavime o technickej stranke. GFW je neustale zdokonalovany a tie jednoduche finty, co sa dali pouzit pred par rokmi, uz nefunguju. Z pragmatickeho hladiska sa to sice da obist "pomerne jednoducho" (zaplatim si nejaku komercnu VPN na ktoru mam referencie, ze prave funguje), ale skor ci neskor pride vladny zatah a bum - tato konkretna VPNka zrazu fungovat prestane, mozem si s nimi mailovat, oni sa budu snazit nieco upravit, ale vacsinou je ten zatah taky efektivny, ze riesenie na pockanie nie je mozne a najpragmatickejsie je prepnut na ine VPNko (na ktore zasa musim ziskat nejake referencie ze prave funguje) a tak dokola. No a vzhladom na okolnosti ani tento "pomerne jednoduchy" postup nie je dostupny vacsine Cinanov (cena, platby do zahranicia, jazykova bariera).
2. Miestnym za pouzivanie VPN v Cine nic nehrozi (teda nic extra - totiz v Cine plati paradigma "co nie je povolene, to ti moze byt hocikedy zakazane" takze ked po niekom idu, tak si nanho najdu cokolvek a VPN je vtedy ten najmensi problem). Akurat prednedavnom zaviedli nejaky zakon o poskytovani VPNiek (evidentne kvoli Cinanom, ktori spojazdnili VPNka na zahranicnych virtualoch, cim sa VPNka stali dostupnymi pre cinske masy pretoze padli tie cenove a jazykove bariery popisane v bode 1), ktory ale v konecnom dosledku je pomerne pochopitelny a nie je o moc viac totalitny, ako mnohe predpisy platne v EU. Proti konzumentom VPN (respektive vo vseobecnosti proti obchadzaniu GFW) ale ziaden zakon nie je.
Este by som k tomu dodal, ze cinska vlada sa zda byt dost opatrna, pokial ide o rozne represivne opatrenia, a necieli ich proti masam, ale len proti par vybranym jednotlivcom. Evidentne nechcu zbytocne "zvysovat pretlak v kotli", ktory je uz aj bez toho velky. To brutalne blokovanie netu sa este da nejako uhrat na porno, hazard, proticinske nepriatelske zivly a podobne (a popri tom sa umlcia aj nejaki opravneni kritici vnutrocinskych pomerov), ale zatvarat obycajnych ludi do basy za nejake VPNko by bol predsa len iny level. No a mozno je v tom aj ekonomicka stranka veci, ono je pre vladu omnoho lacnejsie bojovat s par poskytovatelmi VPNiek, nez s masami pouzivatelov VPNiek. Sudruhovia su sice brutalni, ale nie su sprosti - a obzvlast na peniaze Cinania pocuvaju.
Ale proc sa dotkol realnej hrozby. Totiz Cinania nemaju iba Golden Shield Project (oficialny nazov GFW), ale napriklad aj Green Dam. A teraz si objednali specialnu ediciu Windoze 10 a M$ im ju doda. Plus sa mozes pozriet, ake opravnenia pozaduju mobilne aplikacie ako WeChat ci QQ (to su sice sukromne spolocnosti, ale sidlia v Cine, vladu posluchaju na slovo pokial ide o filtrovanie "nevhodnych tem" a nie je dovod mysliet si, ze vlade nevyjdyu v ustrety v comkolvek, pokial sa kolotoc toci dalej a oni zarabaju svoje peniaze)... Tieto snahy kontrolovat koncove zariadenia tam rozhodne su. Nie kvoli odpocuvaniu (netreba kameru, mikrofon), ale kvoli cenzure...
A co sa tyka korenovych certifikatov, staci sa pozriet do lubovolneho browsera, kolko cinskych CA tam je . Pre ne plati to iste co som pisal o WeChat a QQ, tie proti vlade nepojdu. Okrem toho, pokusy o podhodenie falosnych certifikatov a MITM na https pred par rokmi prebiehali na nejakych cinskych univerzitach (a boli zdokumentovane). Kvoli wikipedii to vlade zjavne nestoji za to robit to vo velkej skale, ale keby potrebovali, tak verim ze to vedia zapracovat do GFW a ani by im to dlho netrvalo.
Ze by sa to prevalilo a Mozilla by vyhodila danu CA zo zoznamu takze by browser pindal?
No, mozno ano, ale potom by sa vsetky domeny Mozilla ocitli na blackliste GFW. Okrem toho, co by asi urobil priemerny Cinan, keby nakoniec nejako ten FF ziskal, ale ten by mu v kuse pindal, ze stranka ma nejake pokazene https a nepustil ho na nu, zatialco cinsky browser by stale mal tie CA v zozname a stranku by v pohode nacital. A o tom, co by robil browser v cinskovladnej edicii W10 si uz nerobim vobec ziadne iluzie.
V podstate by to cele bola iba taka variacia na to, co teraz vyvadzaju s DNS.