Proč prohlížeč hlásí, že je web CAcert.org konfigurován chybně
Základní situace
Poslední dobou (2018+) se množí stížnosti uživatelů, jejichž podstata je tato:
Jak může být CAcert důvěryhodnou CA, když můj prohlížeč považuje jeho web za nedůvěryhodný až nebezpečný, použiji-li https?
Věřte nebo ne, ale v tomto případě je chyba v prohlížeči... a trochu i v tom, že uživatelé vlivem prohlížečů zpohodlněli.
Zak Doffman, analytik bezpečnosti a ochrany soukromí, říká:
"Pamatujte si, že když je nějaký produkt zdarma, pak vy sami se stáváte produktem."
Webové prohlížeče jsou zdarma... a obsahují kořenové certifikáty desítek autorit, kterým pak bezmezně důvěřujete, aniž to víte.
V CAcert jsme si vědomi skutečnosti, že všechny "mainstreamové" prohlížeče:
- mají předinstalované značné množství kořenových certifikátů jiných CA, ale
nemají předinstalované kořenové certifikáty CAcert.
Uvědomte si prosím, že dávat důvěru CA (včetně CAcert) je akt Vaší vůle. To znamená, že do Vašeho počítače musíte nainstalovat kořenové certifikáty CA (v tomto případě CAcertu), než můžete použít zabezpečené připojení HTTPS. Důvěřujete-li CAcertu, pak věříte, že připojení HTTP (zatím bez S) potřebné ke stažení kořenových certifikátů nepoškodí Váš počítač, a také, že k Vám z webu CA nepřijde žádný škodlivý software.
Měli byste zkontrolovat otisk prstu publikovaný na webu CAcert proti těm, které můžete vidět v kořenových certifikátech CAcert, jež si stáhnete. Pouze tak můžete bezpečně nainstalovat kořeny do systému, prohlížeče, e-mailového klienta atd.
Po dokončení je připojení počítače / prohlížeče s hlavními webovými stránkami CAcert zabezpečeno, pomocí protokolu HTTPS. A pak, i když napíšete "http://www.cacert.org", přepne CAcert Web na "https://www.cacert.org".
Jak postupovat
Předpokládejme, že dosud nejste členem komunity CAcert, ale chcete se přidat a vytvořit si u CAcert účet. Jdete tedy na web www.cacert.org, který se Vám otevře jako http://www.cacert.org, tedy nešifrovaným připojením.
Následně chcete vytvořit svůj účet a jdete tedy na položku menu "Přidejte se" (Join). V tomto okamžiku přecházíte na šifrované spojení https a prohlížeč Vás důrazně varuje:
- Internet Explorer 11:
- Edge (systém Windows 10 ver. 1803):
- Google Chrome (verze 65.0.3325.181):
- Firefox (verze 59.0.2):
- Opera (verze 52.0.2871.40):
- Safari (verze 5.1.7 pro Windows):
[překlad: Safari nemůže ověřit totožnost webu "www.cacert.org".
Certifikát pro tento web je neplatný. Mohli byste být připojeni k webu, který předstírá, že je "www.cacert.org", čímž byste mohli vystavit své důvěrné údaje riziku. Přejete si přesto připojit se k tomuto webu?]
Jaký má toto hlášení důvod ?
Především je třeba říci, že toto hlášení je alespoň v případě Firefoxu, Opery a Safari zavádějící. Není pravda, že má www.cacert.org nesprávnou konfiguraci, není pravda, že jsou přihlašovací údaje poškozené, a není pravda, že certifikát pro tento web je neplatný. K pravdě se přiblížíte (u Firefoxu) po stisknutí "Rozšířené" a čtete: "...neplatný bezpečnostní certifikát". Ano, a proč? Protože "...jeho vydavatel je neznámý"! Není tedy nastavena důvěra k certifikační autoritě CAcert, která vydala webu www.cacert.org jeho certifikát, protože prohlížeč nezná její kořenový certifikát, nebo mu nedůvěřuje.
Dosud totiž nemáte instalovány kořenové certifikáty CAcert. To jest, dosud jste se nerozhodli důvěřovat certifikační autoritě CAcert. Potřebujete na webu CAcert.org jít na položku menu "Kořenový certifikát" (Root Certificate) a odtud instalovat veřejné certifikáty CAcert, tj. "PKI klíč třídy 1" (hlavní kořenový certifikát) a "PKI klíč třídy 3" (zprostředkující certifikát). Jestliže Vás prohlížeč (jako Firefox) požádá o explicitní vyslovení důvěry ke kořenovému certifikátu, nastavte ji.
Poznámka-1: V tomto případě byl certifikát nainstalován, jenom jsem k němu zrušil důvěru.
Poznámka-2: V bezpečnostních záležitostech se, pravda, záměrně dávají nejasná chybová hlášení; ale "nesprávná konfigurace" nebo "poškozené přihlašovací údaje" je už trochu silná káva!
Jiné weby instalaci kořenových certifikátů nepotřebují a přesto se taková chyba nehlásí
To je proto, že kořenové certifikáty některých CA jsou už v prohlížeči resp. operačním systému předem instalovány. Výrobci OS/prohlížeče zde vlastně rozhodli za Vás, že budete bezmezně důvěřovat VŠEM webům používajícím certifikáty těchto "privilegovaných" certifikačních autorit, k nimž však CAcert nepatří. O této záležitosti si můžete přečíst více v článku Jaký smysl to všechno má?
Chcete-li vědět, které CA jsou tyto "privilegované", podívejte se do úložiště důvěryhodných certifikačních autorit. Tuto možnost by Vám měl nabídnout každý prohlížeč, zde si ukážeme jen ty nejpoužívanější.
- Internet Explorer 11:
Nastavení > Možnosti Internetu > Obsah > Certifikáty > Důvěryhodné kořenové certifikační autority
- Edge: nemá vlastní správu certifikátů, je společná s IE11
- Edge, nová verze: edge://settings/privacy, pak v pravém panelu pod "Zabezpečení": "Spravovat certifikáty", v novém okně záložka "Důvěryhodné kořenové certifikáty"
- Google Chrome:
Nastavení > Rozšířené nastavení > Správa certifikátů > Důvěryhodné kořenové certifikační autority
- Firefox:
Nastavení > Možnosti > Soukromí a zabezpečení > Zobrazit certifikáty > Autority
- Opera:
Menu > Nastavení > Soukromí & bezpečnost > HTTPS/SSL > Správce certifikátů > Důvěryhodné kořenové certifikační autority
- Safari pro Windows: nemá vlastní správu certifikátů
Zde můžete s překvapením vidět, kterým CA vlastně důvěřujete, aniž o tom víte.
Kořenové certifikáty jsem si instaloval a přesto má prohlížeč námitky
Může to být chybové hlášení například:
- Hlášení chyby v prohlížeči Firefox: Your connection is not secure (spojení není bezpečné); Podrobnosti: SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED
- V prohlížeči Google Chrome: The site's security certificate is not trusted! (nedůvěryhodný certifikát webu)
Je to tím, že hlavní kořenový certifikát CAcert, který byl do 20190410 publikován na webu, je podepsán (sám sebou) s použitím algoritmu MD-5, který již není považován za bezpečný. Váš systém může dosud mít tento starší certifikát, pořadové číslo 000000. Jestliže důvěřujete autoritě CAcert, důvěřujete jejímu veřejnému klíči v hlavním kořenovém certifikátu, a není vůbec podstatné, jakým způsobem je sám sebou podepsán. Nicméně prohlížeče to berou plošně a vyžadují, aby všechny certifikáty, tedy i hlavní kořenový, byly podepsány s použitím robustnějšího algoritmu, jako je SHA256!
Nahraďte proto kořenové certifikáty třídy 1 a 3 novými, které získáte ze stránky http://www.cacert.org/index.php?id=3, nebo i Wiki Nové a archivní kořenové certifikáty, u označení SHA256. Zde je přesný postup. Zde je podrobnější článek.
Dále vezměte v úvahu, že prohlížeč Firefox má své vlastní úložiště. Lze však nastavit, aby si přečetl certifikáty autorit i ze systémového úložiště Windows. Nastavení najdete na stránce about:config jako security.enterprise_roots.enabled a je třeba nastavit ho na true.
Další vysvětlení ohledně hlavních prohlížečů
Stručná historie problémů, které CAcert měl a má s běžnými prohlížeči:
- MD5 byl prohlášen za nezabezpečený algoritmus. Je to pravda - až na jednu výjimku: hlavní kořen samotné CA, protože důvěřujete soukromému klíči CA a algoritmus zde není důležitý. Navzdory této skutečnosti se prohlížeče rozhodly zbavit se MD5 ve VŠECH certifikátech.
Prohlížeče se také zbavily HTML tagu <keygen>, a proto nemůžete podat novou žádost o certifikaci, obsahující nový pár klíčů, běžnými prohlížeči, jako jsou Firefox, Edge, IE, Chrome, Opera, Maxthon, Avast Secure,... Nyní může nový požadavek (CSR) podat pouze prohlížeč Basilisk, Palemoon či Seamonkey. Můžete však vytvořit CSR jiným programem, jako jsou MMC-Certifikáty ve Windows, OpenSSL v Linuxu a Windows, XCA, Kleopatra...
- Prohlížeče začaly varovat (nebo spíše strašit) uživatele, že všechny CA s výjimkou „privilegovaných výchozích“ jsou nezabezpečené, nebezpečné, špatně nakonfigurované atd. - viz výše. Ale pravdou je, že VY byste se měli svobodně rozhodnout, která CA je pro Vás důvěryhodná, a VY byste tedy měli dát její kořenové certifikáty do prohlížeče nebo systému! Každý uživatel bohužel musí nevědomě akceptovat, že „privilegované výchozí CA“ jsou nejlepší a neomylné. A uživatelé jsou neradi obtěžováni...
Poté, co CAcert vydal nové kořeny, mohu doporučit toto:
- Odstraňte staré kořenové certifikáty (root č. 00, class3 č. 0A418A či 0E) ze všech úložišť, které máte (systém, Firefox, Thunderbird, Palemoon), a (po případné obnově) vymažte také všechny podepsané certifikáty (řetěz certifikátů až ke kořenovým můžete vidět v řetězci certifikátu). Ve Firefoxu je to nezbytné, aby prohlížeč fungoval, protože Firefox nemá rád osiřelé certifikáty (bez kořenových certifikátů a certifikátových řetězců).
- Nainstalujte nové kořeny (root č. 0F, class3 č. 14E228) všude tam, kde jste odstranili ty staré. Zkontrolujte otisky prstů (zveřejněné na stránce kořenů CAcert).
- Platný certifikát lze získat dvěma způsoby:
- Obnovit starý certifikát (dvojice klíčů zůstává, takže musíte mít soukromý klíč),
- Vytvořit nový certifikát (vytvoří se nový pár klíčů - nová dvojice klíčů, tj. privátní klíč a odpovídající veřejný klíč).
- Vytvořte záložní soubor .p12 nebo .pfx a dobře jej uložte. Pokud máte nainstalovány POUZE nové kořenové certifikáty, bude tento soubor obsahovat:
- nové kořenové certifikáty,
- privátní klíč,
- samotný certifikát, obsahující příslušný veřejný klíč.