Dalawang CA certificate ang maaaring may parehong public key at parehong subject at hindi pa rin mapagpapalit. Ang isa ay self-signed, ang isa ay cross-signed ng lumang root, at magkaiba ang kanilang emitter names, serial numbers at signatures. Maaaring bumigkis ang isang dahon nang partikular sa isa sa kanila sa pamamagitan ng Authority Key Identifier nito. Nananatiling di-nakikita ang binding na iyon hanggang pumili ang isang client ng maling chain at mabigo ang handshake nang walang malinaw na dahilan.

Gawin ang limang pagsusuring ito ayon sa pagkakasunod-sunod: bawat isa ay nag-aalis ng ibang pagkabigo.

Pagsusuri 1: iguhit ang dalawang chain bago hawakan ang template

Isulat ang mga landas. Ang lumang populasyon ay nagtitiwala sa Lumang Root A, na naglabas ng CA B, na naglabas ng dahon ng server. Ang bagong populasyon ay direktang nagtitiwala sa self-signed na CA B. Pareho ang susi at subject ng dalawang B certificate, at iyon ang dahilan kung bakit ang taong nagbabasa ng subject line ay nakakakita ng isang CA kung saan ang client ay nakakakita ng dalawa.

Ang cross-signed na kopya ay dapat ding tunay na CA certificate, na may basic constraints at key usage na pumapayag sa pagpirma.

Pagsusuri 2: ihambing ang mga AKI field, hindi lang ang susi

Dapat tumugma ang emitter name ng dahon sa subject ng B, at kadalasan ay nananatili ang bahaging iyon. Ang Authority Key Identifier ang lugar kung saan naghihiwalay ang dalawang kopya, dahil maaari itong magdala ng key identifier, emitter certificate at serial number. Tumutugma ang key identifier sa dalawang kopya, dahil magkapareho ang susi. Ang mga field na emitter at serial ay tumutugma sa eksaktong isa, at kaya ang isang chain na itinayo laban sa self-signed na kopya ay maaaring mabigo laban sa cross-signed.

Suriin ang dahon sa halip na manghula: openssl x509 -in server.pem -noout -ext authorityKeyIdentifier.

Pagkatapos ihambing ang dalawang kandidato gamit ang openssl x509 -in b-cross.pem -noout -text | grep -A2 "Authority Key Identifier", at ang parehong utos laban sa self-signed na kopya.

Kung dala ng dahon ang emitter at serial number, tanging ang certificate na inilalarawan ng mga halagang iyon ang nagkukumpleto ng chain, alinmang kopya ang na-load ng client.

Pagsusuri 3: baguhin ang patakaran sa paglabas, hindi kailanman ang mga pirma na byte

Nabubuhay ang mga extension sa loob ng pirma. Ang magdagdag, magtanggal o mag-edit ng isa sa umiiral na dahon ay hindi pag-aayos, ito ay ibang certificate, at nangangailangan ito ng muling paglabas. Ang pagbabago ay nasa patakaran sa paglabas: authorityKeyIdentifier = keyid,issuer:always ay nagpapadala sa mga bagong dahon ng binding na partikular sa certificate, habang ang keyid lamang ay nagpapanatili ng mas maluwag na anyo na bagay sa sadyang paglipat ng cross-signing. Magpasya kung alin ang gusto ng iyong PKI bago pirmahan ang susunod na batch.

Ang pag-edit ng shared template ay nagbabago rin sa bawat certificate sa hinaharap, hindi lang sa server sa harap mo.

Pagsusuri 4: i-verify ang bawat populasyon ng tiwala nang hiwalay

Subukan ang lumang landas at ang bagong landas bilang magkahiwalay na run. Sinasanay ng openssl verify -purpose sslserver -verify_hostname vpn.example -CAfile old-root.pem -untrusted b-cross-signed.pem server.pem ang cross-signed na ruta, at ang parehong utos na may bagong root at walang untrusted file ay nagsasanay sa self-signed na ruta. Ang paghahalo ng dalawang root sa isang bundle ay nagtatago kung aling chain ang napili. Pagkatapos ay ulitin sa totoong mga client, dahil ang isang backend ng VPN ay maaaring mas gusto ang isang chain o i-pin ang isang certificate sa mga paraang hindi ginagawa ng openssl.

Ihatid ang intermediate certificate sa pamamagitan ng service configuration na aktwal na binabasa ng client, hindi sa pamamagitan ng wiki page.

Pagsusuri 5: panatilihin ang lumang landas sa isang retirement clock

Pinananatiling buhay ng cross-signing ang isang lumang landas ng tiwala ayon sa disenyo, na siyang layunin at panganib nang sabay. Hindi nito naaayos ang kompromisadong lumang root, at hindi nito inaalis ang root na iyon sa anumang client. Isulat kung kailan hihinto ang lumang landas sa pagbibigay ng tiwala, at tiyakin na talagang darating ang araw na iyon.

Kung matatanggap ng bawat client ang bagong root bago gumalaw ang mga dahon, ang simpleng paglulunsad na may dobleng tiwala ay mas simple kaysa cross-signing, at nag-iiwan ito ng isang bagay na mas kaunti para iretiro.

Kaugnay na mga artikulo