CA bertandatangan silang: kunci sepadan, ikatan AKI tidak
Daun boleh meminkan penerbitnya melalui pengecam kunci serta penerbit dan nombor siri. Semak ikatan itu sebelum menganggap rantaian bertandatangan silang sebagai boleh ditukar ganti.
Dua sijil CA boleh memegang kunci awam yang sama dan subjek yang sama namun masih tidak boleh ditukar ganti. Satu ditandatangani sendiri, satu lagi ditandatangani silang oleh akar lama, dan nama penerbit, nombor siri serta tandatangan mereka berbeza. Daun boleh terikat secara khusus kepada salah satu daripadanya melalui Authority Key Identifier-nya. Ikatan itu kekal tidak kelihatan sehingga klien memilih rantaian yang salah dan handshake gagal tanpa sebab yang jelas.
Lakukan lima pemeriksaan ini mengikut urutan: setiap satu menyingkirkan kegagalan yang berbeza.
Pemeriksaan 1: lukis kedua-dua rantaian sebelum menyentuh templat
Tuliskan laluannya. Populasi lama mempercayai Akar Lama A, yang mengeluarkan CA B, yang mengeluarkan daun pelayan. Populasi baharu mempercayai CA B bertandatangan sendiri secara langsung. Kedua-dua sijil B membawa kunci dan subjek yang sama, dan itulah sebabnya orang yang membaca baris subjek melihat satu CA di tempat klien melihat dua.
Salinan bertandatangan silang juga mesti sijil CA sebenar, dengan basic constraints dan key usage yang membenarkan penandatanganan.
Pemeriksaan 2: bandingkan medan AKI, bukan hanya kuncinya
Nama penerbit daun mesti sepadan dengan subjek B, dan bahagian itu biasanya bertahan. Authority Key Identifier ialah tempat kedua-dua salinan menyimpang, kerana ia boleh membawa pengecam kunci, penerbit sijil dan nombor siri. Pengecam kunci sepadan dengan kedua-dua salinan, kerana kuncinya sama. Medan penerbit dan nombor siri sepadan tepat dengan satu, dan itulah sebabnya rantaian yang dibina terhadap salinan bertandatangan sendiri boleh gagal terhadap yang bertandatangan silang.
Periksa daun itu daripada meneka: openssl x509 -in server.pem -noout -ext authorityKeyIdentifier.
Kemudian bandingkan kedua-dua calon dengan openssl x509 -in b-cross.pem -noout -text | grep -A2 "Authority Key Identifier", dan perintah yang sama terhadap salinan bertandatangan sendiri.
Jika daun membawa penerbit dan nombor siri, hanya sijil yang diterangkan oleh nilai-nilai itu melengkapkan rantaian, salinan mana pun yang dimuatkan oleh klien.
Pemeriksaan 3: tukar dasar pengeluaran, jangan sekali-kali bait yang ditandatangani
Sambungan hidup di dalam tandatangan. Menambah, membuang atau menyunting satu pada daun sedia ada bukan pembaikan, itu sijil yang berbeza, dan ia memerlukan pengeluaran semula. Perubahan itu terletak pada dasar pengeluaran: authorityKeyIdentifier = keyid,issuer:always menjadikan daun baharu membawa ikatan khusus sijil, manakala keyid sahaja mengekalkan bentuk lebih longgar yang sesuai untuk peralihan penandatanganan silang yang disengajakan. Putuskan mana yang dikehendaki PKI anda sebelum kelompok seterusnya ditandatangani.
Menyunting templat dikongsi juga mengubah setiap sijil masa depan, bukan hanya pelayan di hadapan anda.
Pemeriksaan 4: sahkan setiap populasi kepercayaan secara berasingan
Uji laluan lama dan laluan baharu sebagai larian berasingan. openssl verify -purpose sslserver -verify_hostname vpn.example -CAfile old-root.pem -untrusted b-cross-signed.pem server.pem melatih laluan bertandatangan silang, dan perintah yang sama dengan akar baharu serta tanpa fail untrusted melatih laluan bertandatangan sendiri. Mencampurkan kedua-dua akar dalam satu bundel menyembunyikan rantaian mana yang dipilih. Ulangi dengan klien sebenar selepas itu, kerana backend VPN boleh mengutamakan rantaian atau meminkan sijil dengan cara yang openssl tidak lakukan.
Serahkan sijil perantaraan melalui konfigurasi perkhidmatan yang benar-benar dibaca klien, bukan melalui halaman wiki.
Pemeriksaan 5: kekalkan laluan lama pada jam persaraan
Penandatanganan silang mengekalkan laluan kepercayaan lama hidup secara reka bentuk, yang merupakan tujuan dan risiko sekali gus. Ia tidak memulihkan akar lama yang terjejas, dan ia tidak membuang akar itu daripada mana-mana klien. Tuliskan bila laluan lama berhenti memberikan kepercayaan, dan pastikan hari itu benar-benar tiba.
Jika setiap klien boleh menerima akar baharu sebelum daun berpindah, pelancaran kepercayaan berganda yang mudah lebih ringkas daripada penandatanganan silang, dan ia meninggalkan satu perkara kurang untuk dipersarakan.