ca md too weak: znovu vydat certifikát, nebo snížit úroveň?
Chyba pojmenovává digest podpisu, který klient nyní odmítá, ne slabé heslo. Rozhodněte mezi novým vydáním řetězu, žádostí vydavateli a snížením politiky.
OpenVPN klient, který minulý měsíc fungoval, teď při startu selhává s ca md too weak, a profil na disku je bajt po bajtu ten, který fungoval. Zpráva se týká podpisu na certifikátu certifikační autority, ne šifry dat, auth digestu ani hesla účtu. O opravě rozhodují tři podmínky: zda je to nový identitní materiál, nový řetěz, nebo vědomá změna politiky. Projděte je popořadě a vyhnete se obvyklému výsledku, kdy se tunel vrátí oslabením každého TLS spojení na hostiteli.
Co chyba vlastně pojmenovává
OpenSSL tuto chybu ověření vyhodí při stavbě řetězu, když certifikát vystupující jako CA nese digest podpisu, který úroveň zabezpečení knihovny už nepřijímá. MD5 je odmítnut na výchozí úrovni a SHA-1 je odmítnut, jakmile se úroveň zvýší. Digest na koncovém certifikátu tu hraje menší roli než digest vydavatele, který ho podepisuje. Stejná politika může odmítnout kořen, který byl v den vydání zcela běžný.
Proto úprava auth nebo data-ciphers pro tuto závadu nic nedělá. Ta nastavení řídí, jak jsou pakety chráněny po handshake, zatímco odmítnutý objekt je identitní doklad zkoumaný dřív, než tunel existuje. Certifikát může pohodlně ležet uvnitř své platnosti a přesto nést podpis, který knihovna nepřijme.
Držte kontroly oddělené v hlavě a chyba přestane působit záhadně. Data platnosti, použití klíče a digest podpisu jsou nezávislé testy a právě jeden z nich selhal.
První podmínka: je odmítnutý objekt kořen?
Vypište každý certifikát v profilu a přečtěte pole subject a issuer. Samopodepsaný kořen má v obou stejnou hodnotu a jeho algoritmus podpisu je ten, na kterém stojí celý řetěz. Když tam slabý digest je, každý list pod ním problém dědí. Napište algoritmus vedle subject, aby další srovnání bylo mechanické, ne z paměti.
Sloučené CA soubory často obsahují několik bloků, proto určete blok, který se skutečně načítá, místo abyste předpokládali, že viníkem je první. Příkaz openssl x509 -in ca.pem -noout -subject -issuer -text popisuje jeden certifikát naráz, takže pokud jich svazek obsahuje víc, nejprve ho rozdělte. Porovnejte vypsaný algoritmus podpisu s digestem, který byste čekali z doby vzniku kořene.
List podepsaný SHA-256 pod slabým kořenem stále selhává, protože kontrola řetězu jde až nahoru. Právě toto pořadí dělá následující podmínku důležitou.
Druhá podmínka: ovládáte vydavatele?
Patří-li kořen vaší organizaci, trvalou opravou je nový kořen s moderním digestem plus znovu vydané listy, dodané jako jedna aktualizace profilu. To stojí servisní okno a plán pro zařízení, která aktualizaci nezvládnou ve stejný den.
Vydal-li řetěz třetí strana, opravou je žádost tomu provozovateli a jediná užitečná místní akce je přestat spoléhat na starý materiál. Úprava textu PEM nebo nové uložení souboru nemění nic, co podpis pokrývá.
Jeden mezilehlý případ si zaslouží jméno: interní kořen starší než dnešní výchozí hodnoty, který však stále podepisuje materiál, jemuž důvěřují jiné systémy. Nahradit ho znamená auditovat každého spotřebitele, včetně zařízení, která starý certifikát přišpendlují otiskem. Spočítejte ty spotřebitele, než změnu naplánujete, protože výměna kořene, která jednoho vynechá, vymění chybu startu za výpadek.
Třetí podmínka: co všechno snížení úrovně také přijme
Snížení úrovně zabezpečení nebo volba staršího profilu certifikátů v OpenVPN způsobí, že klient starý digest zase přijme. Zároveň uvolní další kontroly ve stejné knihovně, pro každé spojení, které ten proces otevře.
V laboratoři to může být obhajitelné, nebo jako krátký most, než se připraví náhradní materiál, pokud je výjimka omezena na jeden profil a má datum konce. Jako trvalé nastavení na sdíleném hostiteli tiše rozšiřuje, čemu tam bude každý TLS klient důvěřovat.
Zapište výjimku s vlastníkem a krokem odstranění. Nedokumentovaná změna úrovně je po půl roce k nerozeznání od chyby a další inženýr nebude vědět, že to kdy bylo rozhodnutí.
Rozhodnutí, zapsané jako pravidlo
Vyměňte řetěz, když ovládáte vydavatele a umíte vyjmenovat jeho spotřebitele. Eskalujte k vydavateli, když ne. Snižte úroveň jen jako datovanou, omezenou výjimku s už naplánovanou náhradou. Cokoli jiného nechá stejný certifikát na místě a přesune riziko někam méně viditelně.
Pak profil znovu otestujte z čistého klienta, potvrďte, že handshake doběhne, a pokud stále selhává, uchovejte přesný text odmítnutí. Přesná chybová zpráva je to nejlevnější, co můžete předat tomu, kdo vlastní další vrstvu.