Takže se konečně dospívá k pochopení že současná práce s certifikáty je postavená na ničím nepodložené důvěře. Zakládat jistotu že se bavím s protistranou která je ta za kterou se vydává jen na tom, že byl dodán certifikát podepsaný někým kdo se tváří jako jakási autorita která zaručí jeho platnost je v současné situaci úplně mimo. Bylo by asi potřeba se vráti tam kde mají certifikáty smysl a to tak, že certifikát bude dodán svým vydavatelem na cílovou stanici tak, aby koncový uživatel měl jistotu že dostal skutečně platný certifikát od toho od koho ho měl dostat - tedy jinou cestou než prostřednictvím neautorizované internetové komunikace, ať už je to osobním vyzvednutím nebo nějakým zabezpečeným kanálem - bude to tedy self signed certifikát. Tím by se zaručila možnost ověření komunikace v kritickým aplikacích - internetové bankonictví aj. Pro ostatní případy neumožnit použití certifikátu a uživatele důsledně upozornit že se může bavit s podvrženou protistranou.
Koukni na certificate transparency... Zjednodusene - kdyz nejaka autorita vyda certifikat pro foo.com, tak ho musi zverejnit do globalni append-only struktury (merkle tree, coz stoji za nakouknuti samo o sobe). Ty, kdyz jdes na foo.com, tak kouknes i do tohohle seznamu. Kdyz zla nebo hloupa autorita vyda certifikat pro foo.com, tak ho neprida do te struktury (pak to detekujes, kdyz si ho tam kontrolujes), nebo prida do te stuktury - pak to detekuje majitel foo.com, ze tam je najednou certifikat, ktery si nenechal vydavat.
Jasne nekola, proc pouzivat na hrebik kladivo, kdyz se sroubovakem da zatloukat taky ...
Takze nekolovo "bezpeci" ... klient posle dns dotaz (to je prvni, kdo zjisti kam leze), pak bude overovat oscp ... to je druhej v poradi ... a pak bude jeste "u guugla" overovat, jestli vazne ten certifikat je ten jedinej spravnej ... lol.
Misto toho, aby si jednim dotazem rek DNSku o adresu a hash ... parada.
Mno ... to ma proste smulu ...
Mimochodem, vis co udela browser kdyz se mu nepovede overit pripadnou revokaci? Nic, pokracuje dal, to nikomu nevadi. Vis co udela kdyz se mu nepovede pripojit na tuhle kravinu? ...
A pak se bez podivat tak o mesic zpatky, co se stane s Internetem ... kdyz prestane fungovat googli dns. To kdyby nahodou ty browsery chtely natvrdo neco overovat.
Pořád je problém stejný - ten první request pro certifikát. A pořád ten problém spočívá v tom, že někdo musí zaručit pravost nějakého předem poskytnutého certifikátu aby šlo "bezpečně" provést první request - a jestli to zaručuje Petr nebo Pavel je jedno, pokud není důvěryhodný. Takže je jedno jestli jestli CA, DANE or whatever => jediný problém je v důvěryhodnosti autority - je jedno kdo to je - takže je to úkol spíše administrativní než technologický - to znamená je potřeba vyřešit důvěryhodnost autorit - ať už je to kterákoliv - nikoliv vybrat jinou technologii. A jak? Nevím, ale asi by neměly mít samy o sobe možnost jen tak vypouštět certifikáty ale mělo by tam být větší, možná vícefaktorové, ověřování.
2NULL: Tak kdyz si necham vydat cert CAckem a nekomu ho dam ... tak ses na tom uplne stejne.
To ze bezpecnost narusi provozovatel serveru je proste neco co zadnej system naprosto nevyresi a resitelny to vubec neni. Bavime se o eliminaci zbytecnych bezpecnostnich hrozeb, a tim sou v tomhle pripade zcela jednoznacne CA.
Protoze DANE mi samosebou muze (stejne jako ostatni DNS zaznamy) zmenit taky spousta lidi (registrator, spravce tld ...) ale ... mam velice snadnou moznost to zjistit, a tim padem muzu potencielne i informovat svy uzivatele (treba mailem ...), pokud bych s tim v dany situaci nemoh nic delat, coz se stat muze.
Kdezto to, ze nejaka, zcela libovolna CA (vcetne tvy, ale ta tvoje to vubec byt nemusi) vyda dalsi certifikaty na tvoji domenu, zjistit nemuzes vubec nijak. Ty certifikaty se ve skutecnosti vubec nemusi nikde verejne objevit, proste je nekdo vyuzije k utoku na konkretni lidi ... vsak ty prusery ktery se tu propiraj sou vzdycky jen tou spicickou ledovce, realita je radove horsi. Neni totiz v zajmu toho komu se povede takovy certy ziskat, aby se to proflaklo, stejne jako to neni v zajmu toho, kdo je vydal, zejo.
Pokud správce domény už vydaný certifikát omylem dodatečně vydá někomu komu nemá, stejně jako tady ty CA, tak jsi tam kde teď a nevím jak to zjistíš z DNS záznamu, pokud tam správce nepřipíše že někomu něco vydal, takže zase jenom spoléháš na to že správce udělá všechno správně, jenom jiný registr.
@Jose
"Zakládat jistotu že se bavím s protistranou která je ta za kterou se vydává jen na tom, že byl dodán certifikát podepsaný někým kdo se tváří jako jakási autorita která zaručí jeho platnost je v současné situaci úplně mimo."
To ty seš úplně mimo. S certifikačními autoritami a jimi vydávanými certifikáty to je jako se státy a jimi vydávanými průkazy totožnosti. Asi nebudeš věřit pasu vydanému nějakou banánovou republikou.
Stejně tak by se do OS neměl dostat kořenový certifikát pochybné autority. Bohužel z néjakého důvodu jsou zodpovědné osoby nekompetentní kreténi. Nebýt toho, je systém PKI naprosto v pohodě.
"Bylo by asi potřeba se vráti tam kde mají certifikáty smysl"
Certifikáty, respektive šifrování a autentizace mají smysl úplně všude.
"a to tak, že certifikát bude dodán svým vydavatelem na cílovou stanici tak, aby koncový uživatel měl jistotu že dostal skutečně platný certifikát od toho od koho ho měl dostat - tedy jinou cestou než prostřednictvím neautorizované internetové komunikace, ať už je to osobním vyzvednutím nebo nějakým zabezpečeným kanálem - bude to tedy self signed certifikát."
Jasně. Hned zítra zajdi do sídla Facebooku, Googlu, whatever... a chtěj po nich, aby ti dali certifikát/certifikáty.
"Pro ostatní případy neumožnit použití certifikátu"
Ehm... co?
Asi nebudeš věřit pasu vydanému nějakou banánovou republikou.
Nebo nějaké rozvojové země. ;-)
Stejně tak by se do OS neměl dostat kořenový certifikát pochybné autority. Bohužel z néjakého důvodu jsou zodpovědné osoby nekompetentní kreténi.
Tak já vidím problém v tom, že se neměří všem stejným metrem. V případu StartCom se postupovalo tak, že prohlížeče důvěřovaly certifikátům z doby, kdy se prokazatelně děly nepravosti, ale StartSSL se od určitého data (od toho, kdy je na autority výrazně lépe vidět) neuznává. To je nějaké divné ne? Tak staré podezřelé certy necháme v pohodě dojet, ale nové, u kterých je mnohem důslednější kontrola, už neuznáme? Nemělo byt to být spíš tak, že se té autoritě odebere důvěra kompletně?
V případu GoDaddy jsem nějak nezaznamenal, že by se cokoliv dělo.
V případě Symantecu uvidíme.
Ten postup je tedy dost nesystémový. Správné řešení by bylo přestat důvěřovat i těmto CA.
Jenže, ty jsou zřejmě too big to fail ...
Predevsim by bylo treba si prestat hrat na to, ze tu vubec nejaka "duveryhodna" autorita je. Odstranit z browseru(a systemu) je treba vsechny a je treba aby to byl vyhradne uzivatel, kdo rozhoduje o tom, cemu veri a cemu ne.
Jakej je rozdil mezi tim, ze ti browser spokojene vleze na web, kterej podepsala "nejaka" CA, kterou ti "nekdo" natlacil do toho browseru vs vleze (bez kecu)na web se selfsing vs ... vleze bez kecu na http. Je to exaktne totez.
Chces bezpecnou komunikaci se svoji bankou? Byl sis tam osobne vyzvednout aspon fingerprint? No tak to mas smulu ... protoze kdyz (trebas) Symantec vyda dalsi cert pro stejny jmeno domeny ... tak tvuj browser bude v naprostym klidu, a jediny co muzes udelat, je pokazdy overovat rucne ten fingerprint. Neexistuje zadnej zpusob jak bys moh browseru rict "tomuhle klici verim" a ZAROVEN ... "a zadny jiny na tomhle webu nehodlam akceptovat".
Fakt ne? J nečetl, J se šprtal slovník vulgarismů.
https://www.root.cz/clanky/bezpecnejsi-sifrovani-https-s-hlavickami-hsts-a-hpkp/
Vazne ty kokot ... a toto si muzes nastavit jako uzivatel? Fakt? ... jo takto jo ... urcite ... Nemluve o tom, ze je to nebetycna picovina a proc sem psal mimo jiny dost pravdepodobne v diskusi pod tim.
Ale pro ty negramotny ... copak budes jako ten uzasnej provozovatel (nejspis prvni na svete) delat, az ti nekdo revokuje tu ty tvoje uzasny certifikaty ... nebo pro vetsi legraci, vyhodi tvoji uzasnou CA ... No budes v pici zejo ... protoze se k tobe nepripoji uz nikdy vubec nikdo.
A ten fofr az bude browser prohledavat seznamy tisicu nebo desitek tisicu klicu ... no to bude parada. Specilene kdyz je problem poslat jeden DNS dotaz ... to by prej dlouho trvalo ... lol.
Mno a jednoznacna identifikace konkretniho prohlizece ... to uz je jen takova drobnost, kdo nic spatnyho nedela se prej nema ceho bat.
@j
"copak budes jako ten uzasnej provozovatel (nejspis prvni na svete) delat, az ti nekdo revokuje tu ty tvoje uzasny certifikaty ... nebo pro vetsi legraci, vyhodi tvoji uzasnou CA ... No budes v pici zejo ... protoze se k tobe nepripoji uz nikdy vubec nikdo."
Proto se do HPKP hlavičky nedávají otisky certifikátů, ale otisky veřejných klíčů a to minimálně dvou, jednoho aktuálně používaného a minimálně jednoho (ale taky si jich tam můžeš narvat 10) záložního.
"A ten fofr az bude browser prohledavat seznamy tisicu nebo desitek tisicu klicu"
Neprochází klíče, ale porovnává shody hashů a jistě nebudeš mít v databází desítky tisíc HPKP klaviček.
Jenže současná implementace PKI je rozbitá. Já nemám na to, každé dva dny ověřovat, jestli je vydaný správnou CA. A nemám na to, každému programu vybírat jeho sadu CA, kterým věřím. Dokonce nemám ani na to sledovat stav CA a udržovat si povědomí o tom, která je důvěryhodná. Jak vidíme, tak máme v úložištích kořenových autorit spoustu CA s pochybnou důvěrou. Já tomu naštěstí svěřuji pouze firemní mejly (protože to tak dělá i zbytek firmy), ale kdyby mě někdo unesl ve firmě nebo v kavárně DNS, podstrčil mi špatný imap.google.com, i s certifikátem, tak se nic nedozvím, takže přinejmenším mne to nechrání proti MITM útoku. Prostě to vnímám jako reálnou hrozbu a spíš než jestli se ptám kdy.
Neřeším to jen proto, že je velmi nízká pravděpodobnost, že by takový útok byl cílen přímo na mne. Pokud by to postihlo celou firmu, tak bude celkem jedno, že zrovna mne nehackli. Pokud by to postihlo všechny návštěvníky kavárny, tak by pravděpodobně nehledal v mých mejlech jak zaůtočit zrovna na firmu ve které pracuji. Ostatně citlivé informace beztak šifruji.
Ale i tak to vnímám jako problém.
Neřekl bych, že je rozbitá celá implementace PKI, pouze její část – to, že v nejpoužívanějších předinstalovaných sadách „důvěryhodných“ certifikačních autorit je kde co a koncový uživatel se nemůže úplně spolehnout na to, že je tam výběr, kterému lze skutečně důvěřovat. (Na druhou stranu, kdyby se ten výběr nechal na koncových uživatelích, bude to v průměru ještě mnohem horší.)
Jenže řešením není ověřovat každý jednotlivý certifikát, jak tady neustále prosazuje Jéčko a ostatní.Když nemáte na to ověřovat certifikáty CA, už vůbec nemáte na ověřování jednotlivých certifikátů.
Řešením je rozdělit důvěryhodné seznam CA na balíčky důvěryhodných CA tak, aby si každý mohl vybrat, kterým balíčkům bude důvěřovat. A pro ověřování doménových jmen se spolehnout na DNS, stejně v tom musíme věřit registrátorům. Já bych si pak klidně vybral jako důvěryhodný jenom balíček autorit ověřujících podle eIDASu, protože u takových autorit vím, co od nich můžu čekat.
ROFL. https://en.wikipedia.org/wiki/DigiNotar
Na vašem místě bych se tak nesmál, protože máte rozbitý kalendář. DigiNotar zkrachoval v září 2011. eIDAS byl publikován v červenci 2014 a vstoupil v platnost v červenci 2016. DigiNotar tedy evidentně nikdy nemohl fungovat podle eIDASu, protože v té době ještě žádný eIDAS nebyl.
"je treba aby to byl vyhradne uzivatel, kdo rozhoduje o tom, cemu veri a cemu ne."
To je síce pekná teória, ale v praxi 99 % používateľov nemá poňatia nielen o tom, komu by mala veriť, ale ani podľa čoho by mala veriť, ak by už teda mala snahu brať to zodpovedne. Zvyšok sú nejakí prašiví ITčkári, ktorí sledujú dianie, takže majú hrubú predstavu, ktorých pár autorít by mohlo byť OK. Ale potom prídu na nejakú inú webovú stránku, ktorá má certifikát od inej CA, a sú v zadku aj tak, lebo o tej CA nevedia nič určité zistiť.
"selfsing"
Selfsing certifikát? Samozpívající certifikát, to neznám. :-D
"Jakej je rozdil mezi tim, ze ti browser spokojene vleze na web, kterej podepsala "nejaka" CA, kterou ti "nekdo" natlacil do toho browseru vs vleze (bez kecu)na web se selfsing vs ... vleze bez kecu na http."
Rozdíl je v tom, že v případě autority máš alespoň nějakou jistotu, že proběhlo ověření. U nedůvěryhodného certifikátu (což nemusí být nutně pouze selfsigned) a u HTTP nemáš jistotu vůbec žádnou.
Spočítej si počet chybně vydaných certifikátů a celkově vydaných certifikátu. Pak možná přestanež kvůli relativně malému počtu excesů hysterčit.
Rozdíl je v tom, že v případě autority máš alespoň nějakou jistotu, že proběhlo ověření. U nedůvěryhodného certifikátu (což nemusí být nutně pouze selfsigned) a u HTTP nemáš jistotu vůbec žádnou.
Omyl. V případě autority máš šanci, že tam mohlo dojít k řádnému ověření. Ale třeba taky ne.
U self-signed certifikátu máš JISTOTU, že nedošlo k žádnému standardnímu ověření a proto víš, že ho máš kontrolova nějak sám. Za mě jsou self-signed certy v dnešním použití bezpečnější, protože uživatele vyzvou k důvěře.
Až na to, že v tom relativně malém počtu excesů byly podepsané domény jako github.com. Příště tam bude třeba google.com.
Ten příklad se vám moc nepovedl. U těchhle domén se na to velice rychle přijde, certifikáty jdou na blacklist a certifikační autorita jako důvěryhodná končí. Google.com je z tohohle pohledu vůbec ta nejhorší možná doména, kterou si útočník může vybrat.
2ebik: Certifikaty pro guugla uz tu byly ....
2Jirsak: Ne, neprijde se na to, pokud se tim nekdo nepochlubi. Je jasny ze kdyz si nekdo necha vydat certifikaty na M$ nebo guugla, tak se tim de pochlubit, protoze to je taky jedna z variant jak se proslavit. Jenze ten clovek je nechtel pouzit.
Pokud je nekdo pouzit chtit bude, tak je vzivote nikdo verejne neuvidi. Protoze ty certifiakty ve skutecnosti uvidi jen obet utoku. A ta nebude mit zadnou sanci zjistit, ze nejsou pravy. Teda pokud si na papire vedle neeviduje vsechny fingerprinty a rucne je nekontroluje.
Uzivatel samozrejme zjisti prdlajs, protoze zadny hlavicky vzivote neuvidi. Google se dozvi taky leda prdlajs, protoze ke guuglu se uzivatel ani nepripoji ... (repsketive se rozhodne nepripojit k nejaky bonzsluzbe).
Mas jirsak zapnutou kontrolu revokace? Fakt? A copak tvuj browser udela, kdyz ta sluzba neexistuje nebo se k ni nejde pripojit ... hmm???
U těchhle domén se na to velice rychle přijde, certifikáty jdou na blacklist a certifikační autorita jako důvěryhodná končí. Google.com je z tohohle pohledu vůbec ta nejhorší možná doména, kterou si útočník může vybrat.
A co když není cílem dlouhotrvající útok ale krátké nasbírání dat o které zrovna útočníkovy jde? Myslíte, že google zvládne do 24 hodin účinně zablokovat vadný certifikát? Já tomu moc nevěřím.
A co když není cílem dlouhotrvající útok ale krátké nasbírání dat o které zrovna útočníkovy jde? Myslíte, že google zvládne do 24 hodin účinně zablokovat vadný certifikát? Já tomu moc nevěřím.
Bavíme se o certifikačních autoritách. To, aby Google zjistil, která certifikační autorita certifikát vydala a podnikl proti ní patřičné kroky, není omezeno tím limitem 24 hodin.
A jinak v Chrome ten certifikát nejspíš do 24 hodin zablokovat dokážou, a pokud ta autorita nebude moc natvrdlá, dokáže ten certifikát do 24 hodin dostat na CRL.
Bavíme se o reálné hrozbě vydání špatného certifikátu a jeho účinné revokaci. Po 24 hodinách už můžou být škody obrovské. I 10% uživatelů kteří nepoužívají chrome je velké číslo. A nemáme tu jenom prohlížeče ale například poštovní klienty, nebo server to server komunikaci. V případě prohlížečů dokonce ani nemusí být vidět v adresním řádku prohlížeče, že nejde o EV certifikát, pokud cílem útoku budou třeba google fonty (jako prostředek jak využít nějakou zranitelnost prohlížeče v chybném renderování fontů).
Nikoli, bavíme se tu o certifikačních autoritách. Nejpravděpodobnější případ, jak dojde k vydání špatného certifikátu, je chyba na straně žadatele o certifikát (unikne mu privátní klíč, ověří certifikát pro privátní klíč, který nevlastní, apod.). S tím toho certifikační autorita mnoho udělat nemůže. Řeč pak byla konkrétně o útoku na certifikát pro doménu google.com – s touto doménou asi mnoho poštovních klientů nekomunikuje, a mnoho serverů také ne. Že by na této adrese byly hostované fonty, o tom také nic nevím (fonts.google.com je něco jiného, než google.com).
Pokud chci zneužít nějakou zranitelnost prohlížeče v chybném renderování fontů, nepotřebuju mít font umístěný na doméně google.com s EV certifikátem, ale ten font nahraju prostě na stejnou adresu, na které běží web, přes který tu zranitelnost budu chtít zneužít.
Příkladem google.com jsem neměl namysli zrovna pouze vyhledavač (jako google), ale právě některou z poddomén, třeba formou hvězdičkového certifikátu na *.google.com. Jde o to, že toho google poskytuje hodně.
Co se týče těch fontů, tak musím uživatele přesvědčit, aby na ten web s tím fontem přišel. Když uloupím fonts.google.com, mám tam hned uživatelů miliony. Závisí na cíli útoku co bude lepší. Fonts.google.com bylo první co mne napadlo, ale google toho poskytuje mraky.
Já bych byl rád kdyby protokol důvěry zbytečně nesnižoval důvěru ve spojení s firmou kterou jsem si zvolil. Zrovna google jistě má odborníky a vnitřní předpisy na manipulaci s certifikáty, takže se bojím, že tady implementace protokolu důvěry snižuje důvěryhodnost spojení s googlem možná i o několik řádů (pravděpodobnost problému je o několik řádů vyšší). Proto argument, že největší pravděpodobnost, že za to může žadatel neberu. (Chtěl bych aby zodpovědní žadatelé měli možnost použít řešení, které zbytečně nesnižuje důvěru ve spojení s nimi a tedy i v jejich produkty.)
Jistě, google má spoustu obezliček jak omezení současné implementace PKI obejít, (třeba tím, že hodně lidí používá jeho vlastní prohlížeč), ale to není systémové řešení. To je rovnák na vohejbák, který vznikl právě proto, že google je tak velký cíl, že to řešit musí.
Zrovna google jistě má odborníky a vnitřní předpisy na manipulaci s certifikáty
Vzhledem k tomu, že dnešním CA stačí pro ověření držení domény vystavení souboru na webu nebo přístup ke správné e-mailové schránce, tu chybu může udělat někdo, kdo s certifikáty vůbec nepřichází do styku – stačí, když má právo nahrát na web vhodně pojmenovaný soubor.
Jistě, google má spoustu obezliček jak omezení současné implementace PKI obejít, (třeba tím, že hodně lidí používá jeho vlastní prohlížeč), ale to není systémové řešení. To je rovnák na vohejbák, který vznikl právě proto, že google je tak velký cíl, že to řešit musí.
S tím naprosto souhlasím. Původně jsem chtěl jenom poukázat na to, že právě proto je Google špatný příklad, protože snad nikdo jiný nemá tolik možností bránit se útokům na certifikáty jako právě Google.