it-swarm-id.com

Apa gunanya sertifikat penandatanganan silang di X.509?

Dalam arsitektur X.509 apa kegunaan sertifikat penandatanganan silang dari hierarki lain?

Apakah itu hanya memperluas kepercayaan?


Jadi dari jawaban saya mengasumsikan bahwa jika CA3 ditandatangani oleh CA2 (dari hierarki lain) dan CA1 (induk dalam hierarki sendiri) yang kunci privatnya digunakan untuk mengenkripsi hash otentikasi dalam sertifikat CA3?

24
zcqwevb

Ini tentang memperluas kepercayaan, ya. Jika Anda mempercayai CA1 dan CA2, dan sertifikat ditandatangani oleh keduanya, Anda memiliki tingkat kepercayaan yang sangat tinggi karena dua entitas seaparate yang Anda percayai telah memverifikasi sertifikat tersebut.

Ini memiliki bonus tambahan untuk meningkatkan kemudahan verifikasi kepercayaan, seperti situasi di mana Anda memiliki klien yang mempercayai CA1 atau CA2 (tetapi tidak keduanya). Dalam kasus seperti itu, Anda dapat menandatangani lintas sertifikat untuk dipercaya oleh keduanya. Ini memungkinkan lebih banyak klien untuk memverifikasi kepercayaan tanpa harus mendistribusikan sertifikat terpisah untuk CA yang berbeda.

Bonus lainnya adalah dalam situasi di mana kunci pribadi CA bocor. Misalkan kebocoran kunci CA1 dan sertifikat Anda ditandatangani oleh CA1 dan CA2. Setelah kebocoran, CA1 mengeluarkan pencabutan kunci publiknya dan Anda tidak dapat lagi mempercayai apa pun yang dikeluarkan oleh CA1. Namun, karena sertifikat Anda juga ditandatangani ke CA2, setiap klien yang mempercayai CA2 masih dapat mempertahankan tingkat kepercayaan pada sertifikat Anda.

29
Polynomial

Spesifikasi X.509 hanya mendukung satu tanda tangan. Dari RFC tentang mereka:

   Certificate  ::=  SEQUENCE  {
        tbsCertificate       TBSCertificate,
        signatureAlgorithm   AlgorithmIdentifier,
        signatureValue       BIT STRING  }

Untuk mendukung beberapa signatureValue, Anda harus melakukan sesuatu seperti "signatureValue SEQUENCE OF BIT STRING" dan membuat beberapa perubahan lain juga.

Jika Anda memiliki sertifikat X.509 yang telah ditandatangani oleh banyak CA, saya ingin melihatnya dan melakukan sedikit asn1parse di atasnya!

9
compcert

Skema Let's Encrypt yang digunakan tidak memerlukan dua tanda tangan dalam satu sertifikat. Sejauh yang saya mengerti, ini terlihat seperti ini:

Root-CA ini

  • Intermediate Cert A (Public Key X, ditandatangani oleh CA Root)

Lainnya-CA Root

  • Intermediate Cert A (Public Key X (sama!), Ditandatangani oleh Other-CA Root)

Dalam hal ini ada dua contoh dari Sertifikat Menengah A yang sama: satu ditandatangani oleh CA Root Anda sendiri, yang lain ditandatangani oleh Other-CA. Mereka memiliki Kunci RSA yang sama dan semua bidang sama, kecuali untuk tanda tangan (satu tanda tangan untuk setiap instance CA Menengah). Klien (seperti peramban) disajikan dengan rantai sertifikat yang hanya memiliki satu contoh sertifikat Menengah, bukan keduanya, dan mengarah ke salah satu dari dua akar. Ini mungkin satu-satunya cara yang kompatibel untuk "tanda silang".

1
Myke B