Gesaan dan konteks
Nod pinggir CDN adalah banyak dan terdedah, jadi mengedarkan kunci sijil jangka hayat panjang membesarkan impak kompromi keselamatan. Menggunakan RFC 9345, reka bentuk Delegated Credentials (DC): pemegang sijil mengeluarkan kelayakan jangka hayat pendek, pinggir menggunakannya untuk pengesahan TLS, dan ia tidak boleh mengeluarkan DC lain. Rangkumi pengesahan jabat tangan (handshake), tamat tempoh, pemutaran, had pembatalan dan undur balik (fallback).
Perkara yang diuji oleh penemu duga
Isyarat penilaian adalah pemahaman tentang ikatan antara DC dan sijil entiti akhir X.509, sempadan autoriti kunci jangka hayat pendek, perundingan sambungan TLS, tetingkap masa dan impak kompromi. Jawapan yang mantap membezakan antara pengurangan masa pendedahan daripada pembatalan serta-merta dan menerangkan kaedah undur balik yang selamat untuk klien tanpa sokongan DC.
Soalan penjelasan untuk ditanya terlebih dahulu
Trafik dan titik penamatan
Sahkan sama ada TLS ditamatkan pada CDN, get laluan serantau, atau asal (origin), sama ada nod pinggir merentasi domain pentadbiran, dan sama ada DTLS atau QUIC terlibat. Titik penamatan menentukan laluan pengeluaran dan pengedaran.
Matriks keserasian klien
Kenal pasti versi pelayar, mudah alih, IoT dan klien dalaman serta sama ada tindanan TLS mereka boleh dinaik taraf. DC memerlukan perundingan sambungan dan pengesahan baharu, jadi sokongan tidak boleh diandaikan tersedia.
Objektif kompromi
Jelaskan sama ada matlamatnya adalah untuk mengehadkan pendedahan kunci jangka hayat panjang, jangka hayat kunci pinggir, atau kedua-duanya. Semak sama ada pematuhan memerlukan senarai pembatalan berasingan atau penarikan balik secara paksa.
Kerangka jawapan 30 saat
“Pemegang sijil mengeluarkan DC jangka hayat pendek, yang tandatangan, penggunaan dan jangka hayatnya disahkan dengan kunci sijil entiti akhir. Nod pinggir hanya menerima kunci peribadi DC dan tidak boleh mencipta DC lain; klien mengesahkan ikatan semasa aliran sambungan TLS. Gunakan jangka hayat yang pendek, pemutaran bertindih dan pengasingan kunci, sambil melindungi kunci jangka hayat panjang. Klien yang tidak disokong menggunakan laluan sijil biasa yang eksplisit; kegagalan pengesahan tidak sekali-kali diturunkan taraf secara senyap. Tindak balas kompromi bergantung pada tempoh tamat yang pendek, menghentikan pengeluaran dan, apabila perlu, membatalkan sijil induk—bukan dengan mengandaikan pembatalan DC serta-merta.”
Langkah jawapan mendalam
Langkah 1: Tentukan hubungan pengeluaran
Pengeluar yang memegang kunci peribadi jangka hayat panjang yang sepadan dengan sijil entiti akhir mencipta kunci awam DC, jangka hayat, algoritma tandatangan dan maklumat penggunaan TLS/DTLS. Kunci awam entiti akhir mengesahkan tandatangan tersebut. Nod pinggir menerima kunci peribadi DC dan kelayakan awam, tidak sekali-kali menerima kunci peribadi induk.
Langkah 2: Bataskan autoriti dan penggunaan
Kunci peribadi DC terhad kepada peranan pengesahan TLS yang dipersetujui dan tidak boleh mengeluarkan DC lain. Sahkan DelegationUsage, keserasian algoritma dan konteks protokol supaya kelayakan khusus TLS tidak dianggap sebagai kunci menandatangani umum.
Langkah 3: Sahkan semasa jabat tangan
Klien mengesahkan rantaian X.509 tradisional, kemudian tandatangan DC, jangka hayat, ikatan induk dan konteks jabat tangan. Jika perundingan sambungan gagal, gunakan laluan sijil biasa yang eksplisit. Medan keselamatan yang tidak diketahui atau tidak konsisten mesti menggagalkan pengesahan dan bukannya diabaikan.
Langkah 4: Reka bentuk tetingkap pemutaran
Tetapkan pertindihan untuk penyelewengan jam pinggir (clock skew), kelewatan penyebaran dan tempoh maksimum jabat tangan. Muatkan DC baharu sebelum beralih sementara kelayakan lama masih sah; hentikan kelayakan lama hanya selepas pengedaran disahkan. Penyegerakan masa dan pemantauan meliputi sempadan peralihan.
Langkah 5: Kendalikan kompromi dan pembatalan
Penyerang dengan kunci peribadi DC boleh menyamar sebagai pihak tersebut dalam sambungan baharu sehingga DC itu tamat tempoh, tetapi tidak boleh mengeluarkan DC lain. Tindak balas termasuk menghentikan pengeluaran, memendekkan jangka hayat, menarik balik kelayakan pinggir dan, jika perlu, membatalkan induk atau beralih kepada sijil biasa. DC bukan mekanisme pembatalan serta-merta.
Langkah 6: Rancang keserasian dan undur balik
Gunakan matriks klien dan trafik berperingkat untuk mengesahkan sokongan sambungan. Klien yang tidak disokong mengikut laluan penamatan sijil jangka hayat panjang sementara kunci induk kekal diasingkan. Bezakan “rakan tidak mempunyai sokongan” daripada “pengesahan gagal”; jangan sekali-kali menurunkan taraf kegagalan pengesahan kepada teks biasa atau sijil sebarangan.
Langkah 7: Perhati dan lakukan latihan
Catatkan pengeluaran, pengedaran, pemuatan, kegagalan jabat tangan, penyelewengan jam dan kadar undur balik tanpa melog kunci peribadi. Latih senario kompromi pinggir, gangguan pengeluar, pembatalan induk dan undur balik penuh untuk mengesahkan pemulihan dalam jangka hayat yang pendek.
Contoh jawapan berkualiti tinggi
Saya akan menyimpan kunci sijil jangka hayat panjang dalam pengeluar dan menggunakannya untuk menandatangani DC jangka hayat pendek; nod pinggir hanya menerima setiap kunci peribadi DC. Semasa jabat tangan, sahkan rantaian X.509, kemudian ikatan DC, penggunaan, algoritma, jangka hayat dan konteks jabat tangan. Putar dengan pertindihan, pantau jam, laksanakan keserasian secara berperingkat dan sediakan undur balik eksplisit untuk klien lama. Jika DC bocor, hentikan pengeluaran, tarik balik kelayakan pinggir, tunggu sehingga tamat tempoh dan batalkan induk apabila perlu. Pantau kegagalan pengesahan dan kadar undur balik; DC bukan pembatalan serta-merta.
Kesilapan lazim
- Kesilapan: Mengandaikan DC yang bocor boleh dibatalkan serta-merta seperti token OAuth. → Sebab: RFC memberi tumpuan kepada jangka hayat yang pendek dan ikatan induk. → Penambahbaikan: Pendekkan jangka hayat dan sediakan pembatalan serta penarikan balik sijil induk.
- Kesilapan: Membenarkan nod pinggir dengan kunci peribadi DC mengeluarkan lebih banyak DC. → Sebab: Ini meluaskan rantaian perwakilan dan autoriti. → Penambahbaikan: Simpan kunci induk dalam pengeluar yang terkawal.
- Kesilapan: Mengabaikan medan apabila sokongan sambungan tiada. → Sebab: Keserasian perundingan bukan bermakna kejayaan pengesahan. → Penambahbaikan: Asingkan status tidak disokong, kegagalan pengesahan dan undur balik biasa.
- Kesilapan: Memutar hanya berdasarkan cap masa pengeluaran. → Sebab: Penyebaran dan penyelewengan jam boleh menyebabkan nod pinggir menggunakan kelayakan terlalu awal atau terlalu lewat. → Penambahbaikan: Gunakan pertindihan dan pantau penyegerakan masa.
Soalan susulan dan jawapan
Soalan susulan 1: Bagaimanakah DC berbeza daripada sijil X.509 jangka hayat pendek biasa?
DC terikat pada sijil entiti akhir sedia ada dan digunakan dalam jabat tangan TLS, jadi pinggir tidak perlu memegang kunci peribadi induk. Sijil jangka hayat pendek biasa biasanya masih memerlukan CA atau sistem sijil untuk mengeluarkan rantaian lengkap. Sempadan penggunaan dan pengesahan kedua-duanya adalah berbeza.
Soalan susulan 2: Apakah yang boleh dilakukan oleh penyerang dengan kunci peribadi DC?
Mereka boleh menyamar sebagai pihak tersebut dalam sambungan TLS baharu sehingga DC tamat tempoh, tetapi tidak boleh menggunakannya untuk mengeluarkan DC lain. Tetingkap masa bergantung pada jangka hayat, status induk serta kelajuan pengesanan dan tindak balas.
Soalan susulan 3: Mengapakah DelegationUsage diperlukan?
Ia mengehadkan sijil mana yang membenarkan penyertaan DC secara eksplisit, mengurangkan risiko rentas protokol daripada menyalurkan sijil tanpa semantik perwakilan ke dalam pengesahan DC.
Soalan susulan 4: Adakah QUIC atau DTLS memerlukan punca amanah (trust root) yang berasingan?
Tiada punca amanah baharu diperlukan, tetapi konteks protokol dan peraturan sambungan RFC 9345 mesti mengesahkan penggunaan, medan jabat tangan dan algoritma. Penghuraian TLS tidak boleh digunakan semula untuk protokol lain tanpa semakan tersebut.