Z nostalgie som minuly rok oprasil staru Nokiu N95, ocistil alebo vymenil zajdene plasty, kupil novu baterku (na treti pokus funkcnu), ale ako obrovsky problem sa ukazali byt zastarale korenove certifikaty. Ked pozriem do windowsu vidim zoznam 40 korenov ktore pouziva, da sa to cele nejako vyexportovat resp. existuje niekde hotovy balicek beznych korenovych certifikatov co sa da zobrat a naimportovat do stareho zariadenia?
Ve FreeBSD je /etc/ssl/cert.pm:
##
## ca-root-nss.crt -- Bundle of CA Root Certificates
##
## This is a bundle of X.509 certificates of public Certificate
## Authorities (CA). These were automatically extracted from Mozilla's
## root CA list (the file `certdata.txt').
##
## It contains certificates trusted for server authentication.
##
## Extracted from nss-3.69
Takže certifikáty by byly, jak je dostat do starého zařízení je jiná věc. Když jsme měli vlastní certifikační autoritu, tak jsem její certifikát dával do různých Androidů (5, 6) a nebylo to úplně bezproblémové - minimálně se zabezpečení pokaždé vztekalo, že systém může být kompromitovaný.
iOS zase od nějaké verze (12?) takovou důvěryhodnou autoritu nebral úplně 100% a v některých situacích chtěl potvrdit, že je to v pořádku.
Kromě toho bych čekal, že tam budou i problémy s verzemi SSL/TLS. Apple kvůli tomu vydával i update na dávno nepodporované verze (iOS 7, 9, 10), aby i tato stará zařízení nebyla odstřižena od komunikace.
Podle článku na OpenSSL.org to v pořádku nebude. Knihovna si všimne, že jedna z cest expirovala a vyhlásí chybu. Je nutné ten neplatný certifikát odebrat, aby se brala v potaz jen funkční cesta.
Unfortunately this does not apply to OpenSSL 1.0.2 which always prefers the untrusted chain and if that chain contains a path that leads to an expired trusted root certificate (DST Root CA X3), it will be selected for the certificate verification and the expiration will be reported.
Celkem jednoduše si to zkontrolujte třeba https://www.sslshopper.com/ssl-checker.html - zobrazí celý chain, který posílá server, tam by ten X3 certifikát být neměl.
Nebo z shellu:
openssl s_client -connect host:port -showcerts </dev/null|certtool -i|less
Mě k tomu dokopal Nagios, začal si stěžovat na expirující element 4.
Ale tady to není o tom, že většina obětovala třetinu. Ten termín byl jasně daný 21 let. Skoro až nechápu, že tak dlouho, když uvážím, jak rychle se celé IT mění, ale podle článku to tak je.
Když si koupím majonézu se zárukou dva týdny, tak taky nebudu za půlroku nadávat, že se mi v ledničce zkazila. Měla danou životnost a ta prostě skončila. To že tu majonézu použiji do bramborového salátu, nebo od toho certifikátu odvodím jiný certifikát, mi to datum expirace zázračně neprodlouží.
Řešením přechodu z již neplatného mezilehlého X3 na nový R3 je restart Windows serveru s IIS po vypršení X3. Jinak totiž nelze dosáhnout, aby IIS použil pro automatický výběr mezilehlého certifikátu R3 (protože R3 je vydán dříve, je považován Windows za "starší", přestože má delší životnost). Odstranění X3 z cert storu mi nepomohlo (a není nutné) - je tam v mezilehlých i kořenových.
Tímto se obejde problém, že aplikace Bakaláři na Androidu pravděpodobně interně používá staré openssl (místo systémového cert storu Androidu).
No a fakt se dneska v noci spustě lidí na linuxu, zejména ti, co mají ode mně starou SeaMonkey co nemá autoupgrade, rozbila půlka internetu :(
Nevíte prosím někdo o nějaké alternativě k Let's Encryptu, kde to vydrží co nejdýl?
Já dělám eshopy, tak jsem už rovnou varoval největšího klienta a zeptal se, jestli je ochotný event. platit za komerční certifikát...
A ještě něco, dá se detekovat ten problém v loogu Apache?
1. 10. 2021, 03:48 editováno autorem komentáře
To chápu, svým kamarádům SeaMonkey upgraduju, ale v mezičase, než ty neupgradovatelný klienti zmizej, tak se mým zákaníkům, co mají ten let s'encrypt část návštěvíků nedostane na stránky, tak i kdyby to bylo na rok, nevíte, pane Krčmáři, kde bych měl šanci na co nejdelší odklad problému? Vzhledem k tomu, že let s'encrypt má i Seznam, tak Češi asi za pár týdnů upgradujou, ale co cizinci, který mi přijdou se starým mobilem na Obecní dům se poodívat co hrajou? Budou Němci taky pod tlakem upgradovat nebo je tam ten let s'encrypt míň rošířenej a budou si stěžovat, že jim web nechodí? Poznám nějakej error v logu apache, abych viděl, kolik jich bylo?
Pokud to mají pět let neaktualizované, tak mají smůlu a už se jim ta chyba objevuje. Včera původní kořen vypršel. V logu na serveru to vidět není, problém vzniká u klienta a server o něm nemá tušení. Rychlým řešením by samozřejmě bylo přejít na jinou autoritu se starším kořenem, který ještě platí. Ale tím se ten problém opět jen odloží, protože se to časem zopakuje.
Seznam sice má Let's Encrypt, ale používá nový kořenový certifikát ISRG Root X1, který je stále platný a noví (mladší než pět let) klienti ho znají, takže s tím není problém. Problém je skutečně jen s velmi starým a neaktualizovaným softwarem.
V logu web serveru to vidět nebude, to se děje na nižší vrstvě při vyjednávání TLS. Pokud to klient zavře, když tu chybu uvidí, tak se k web serveru žádný požadavek ještě nestihl dostat. To by se muselo logovat na TLS a tam by bylo vidět, že klient neukončil handshake a komunikace se uzavřela po odeslání certifikátu klientovi.
„Každou chvíli“ jednou za dvacet let? Tedy v tomto konkrétním případě za šest, protože delší dobu ta autorita neexistuje. Jak už jsem psal: pokud nebudou aktualizovat, stane se jim to s libovolnou autoritou. Stalo se to už mnohokrát, jen teď se o tom víc mluví, protože je HTTPS rozšířenější a je to víc vidět. Let's Encrypt v tomhle směru ale neudělala nic špatně, je to běžná věc.
Proč je šest let málo a deset let už je dost? Určitě se najde někdo, kdo by chtěl ještě víc. Navíc nezáleží na tom, s čím autorita začala, ale na tom, kdy jste od ní pořídil certifikát. Vy pořizujete službám certifikáty jen od autorit, které mají kořen k dnešnímu dni stále platný více než deset let?
Rada že zákaznící musí aktualizovat, jestli si chtějí něco koupit, je ale poněkud arogantní a nemusí se vyplácet.
Já takovou radu nikde nevidím. Zákazníků, kterým to nebude fungovat, bude minimum. A nebude jim fungovat půlka internetu, takže stejně nebudou řešit nějaký jeden e-shop, ale to, aby si spravili počítač.
Levněji opravdu může vyjít si koupit certifikát od nějaké autority, co lépe plánuje a nepodepisuje s certifikátem co každou chvíli expiruje.
Každou chvíli… Víte, ono to s těmi letitými certifikáty také nemusí být žádná hitparáda. Třeba se někdy tvůrci prohlížečů rozhoupou k tomu, že když už několik let nepovolují serverové certifikáty založené na SHA-1, mohli by to samé pravidlo začít uplatňovat i pro certifikáty autorit. A ty třicetileté certifikáty půjdou tam, kam patří.
Mimochodem, víte kdy expirují certifikáty autority, kterou podepisuje Google? Za 6 roků a 4 měsíce. To je v pořádku a 6 let je málo? Microsoft používá autoritu, jejíž certifikát vyprší za čtyři a půl roku.
Jenže ten sh*t LE to udělal dost blbě. Ta nová "root CA" je podepsána tou starou mrtvou root CA, není opravdu kořenová.
Systémy, které jsou správně přísné, to odhalí, vbědí kam online sáhnout a nelíbí se jim to. LE jsou šumáci a neumí si udělat zcela novou nezávislou "root CA".
A je smutné, že webu typu root či seznam používají certifikáty LE.
Protože certifikát serveru není jen o šifrováí komunikace, ale i o důvěryhodnosti serveru. A LE má důvěruhodnost takřka zápornou... :D
Až na to, že to tak vůbec není. Existují dva různé certifikáty ISRG Root X1. Jeden je klasický kořenový, druhý je speciální křížově podepsaný expirovaným certifikátem DST. Ten první je úplně standardní kořen, jako mají všichni. Ten druhý je specialita jen kvůli starým Androidům a jejich nestandardnímu přístupu ke kořenům.
Takže to LE neudělal blbě, udělal to úplně normálně a navíc udělal jeden volitelný krok, pokud vás trápí staré Androidy. Pro zbytek světa si udělali „zcela novou nezávislou root CA“.