CA e nënshkruar në mënyrë të kryqëzuar: çelësi përputhet, lidhja AKI jo
Një gjethe mund të fiksojë lëshuesin e saj përmes identifikuesit të çelësit bashkë me lëshuesin dhe numrin serial. Kontrolloni atë lidhje përpara se ta trajtoni një zinxhir të nënshkruar në mënyrë të kryqëzuar si të këmbyeshëm.
Dy certifikata CA mund të mbajnë të njëjtin çelës publik dhe të njëjtin subject dhe prapëseprapë të mos jenë të këmbyeshëm. Njëri është i nënshkruar nga vetja, tjetri është nënshkruar në mënyrë të kryqëzuar nga rrënja e vjetër, dhe emrat e lëshuesit, numrat serialë dhe nënshkrimet e tyre ndryshojnë. Një gjethe mund të lidhet në mënyrë specifike me njërin prej tyre përmes Authority Key Identifier të saj. Kjo lidhje mbetet e padukshme derisa një klient zgjedh zinxhirin e gabuar dhe handshake dështon pa një arsye të dukshme.
Kryeni këto pesë kontrolle me radhë: secili përjashton një dështim të ndryshëm.
Kontrolli 1: vizatoni të dy zinxhirët përpara se të prekni shabllonin
Shkruani shtigjet. Popullsia e vjetër i beson Rrënjës së vjetër A, e cila lëshoi CA B, e cila lëshoi gjethen e serverit. Popullsia e re i beson drejtpërdrejt CA B të nënshkruar nga vetja. Të dy certifikatat B mbajnë të njëjtin çelës dhe subject, dhe pikërisht për këtë një person që lexon një rresht subject sheh një CA aty ku klienti sheh dy.
Kopja e nënshkruar në mënyrë të kryqëzuar duhet të jetë gjithashtu një certifikatë CA e vërtetë, me basic constraints dhe key usage që lejojnë nënshkrimin.
Kontrolli 2: krahasoni fushat AKI, jo vetëm çelësin
Emri i lëshuesit të gjethes duhet të përputhet me subject-in e B, dhe kjo pjesë zakonisht qëndron. Authority Key Identifier është vendi ku dy kopjet ndryshojnë, sepse mund të mbajë një identifikues çelësi, lëshues certifikate dhe një numër serial. Identifikuesi i çelësit përputhet me të dyja kopjet, pasi çelësi është identik. Fushat lëshues dhe serial përputhen saktësisht me një, dhe për këtë një zinxhir i ndërtuar kundër kopjes së nënshkruar nga vetja mund të dështojë kundër asaj të nënshkruar në mënyrë të kryqëzuar.
Inspektoni gjethen në vend që të hamendësoni: openssl x509 -in server.pem -noout -ext authorityKeyIdentifier.
Më pas krahasoni të dy kandidatët me openssl x509 -in b-cross.pem -noout -text | grep -A2 "Authority Key Identifier", dhe të njëjtin komandë kundër kopjes së nënshkruar nga vetja.
Nëse gjetheja mban lëshuesin dhe numrin serial, vetëm certifikata që përshkruajnë ato vlera e plotëson zinxhirin, cilado kopje që klienti ka ngarkuar.
Kontrolli 3: ndryshoni politikën e lëshimit, kurrë bajtët e nënshkruar
Zgjerimet jetojnë brenda nënshkrimit. Shtimi, heqja ose redaktimi i njërës në një gjethe ekzistuese nuk është riparim, është certifikatë tjetër dhe kërkon rilëshim. Ndryshimi i përket politikës së lëshimit: authorityKeyIdentifier = keyid,issuer:always bën që gjethet e reja të mbajnë lidhjen specifike të certifikatës, ndërsa keyid vetëm ruan formën më të lirshme që i përshtatet një tranzicioni të qëllimshëm të nënshkrimit të kryqëzuar. Vendosni cilën dëshiron PKI-ja juaj përpara se të nënshkruhet grupi i radhës.
Redaktimi i një shablloni të përbashkët ndryshon gjithashtu çdo certifikatë të ardhshme, jo vetëm serverin përpara jush.
Kontrolli 4: verifikoni secilën popullsi besimi veçmas
Testoni shtegun e vjetër dhe shtegun e ri si ekzekutime të veçanta. openssl verify -purpose sslserver -verify_hostname vpn.example -CAfile old-root.pem -untrusted b-cross-signed.pem server.pem ushtron rrugën e nënshkruar në mënyrë të kryqëzuar, dhe e njëjta komandë me rrënjën e re dhe pa skedar untrusted ushtron rrugën e nënshkruar nga vetja. Përzierja e të dyja rrënjëve në një paketë fsheh cili zinxhir u zgjodh. Përsëriteni më pas me klientë të vërtetë, sepse një backend VPN mund të preferojë një zinxhir ose të fiksojë një certifikatë në mënyra që openssl nuk i bën.
Dorëzoni certifikatën e ndërmjetme përmes konfigurimit të shërbimit që klienti lexon vërtet, jo përmes një faqe wiki.
Kontrolli 5: mbani shtegun e vjetër në një orë tërheqjeje
Nënshkrimi i kryqëzuar mban gjallë një shteg besimi të vjetër sipas dizajnit, që është njëkohësisht qëllimi dhe rreziku. Ai nuk e rregullon një rrënjë të vjetër të komprometuar dhe nuk e heq atë rrënjë nga asnjë klient. Shkruani kur shtegu i vjetër ndalon së dhëni besim, dhe konfirmoni se ai ditë vjen vërtet.
Nëse çdo klient mund ta pranojë rrënjën e re përpara se gjethet të lëvizin, një vendosje e thjeshtë me besim të dyfishtë është më e thjeshtë se nënshkrimi i kryqëzuar, dhe lë një gjë më pak për t'u tërhequr.