0

Pythonベースのプログラム用にX509ストレージシステムに取り組んでいます。簡単にアクセスできるように、すべての証明書は PostgresSQL データベースに保持されます。サブジェクト (ユーザーまたは CA 機関) ごとに証明書が 1 つしかない場合、すべて正常に機能します。次に、発行者フィールドが次の証明書を一意に識別するため、検証パスを見つけるのは簡単です。

UserCert1(CA_cert_class1) -> CA_cert_class1(CA_cert_root) -> CA_cert_root(CA_cert_root)

問題は、一部の証明書が期限切れまたはその他の理由で更新されたときに発生します。次に、2 つ以上の証明書に同じサブジェクトがあります。その場合、複数の可能な認証パスがあります。

UserCert1(CA_cert_class1) -> CA_cert_class1(CA_cert_root)(old)->....
                          -> CA_cert_class1(CA_cert_root)(new)->....

それぞれの組み合わせを試すことは解決策ではありません。また、古いデジタル署名を検証するために必要なため、期限切れの証明書を削除することは解決策ではありません。

質問: X509 証明書内で発行者証明書を一意に識別する方法。これは X509v3 拡張機能と関係があると思います。使い方がわかりません。

4

2 に答える 2

2

これには X509v3 拡張機能があります。それがAKI(Authority Key Identifier)です。子証明書のこの番号は、親証明書の SKI (Subject Key Identifier) と一致する必要があります。

詳細については、 RFC5280を参照してください。SKI は、公開鍵のハッシュ、または一意の番号を生成するものによって導出できます。

于 2013-05-13T18:04:58.387 に答える
1

証明書の発行者とシリアル番号は、X.509 証明書を一意に識別します (すべての適合証明書について)。証明書が更新されても、そのシリアル番号は異なるはずです。

サブジェクトの一意の識別子などの X509v3 拡張機能が証明書に存在することは保証されていません。

発行者とシリアル番号の組み合わせをお試しください。

于 2013-05-13T06:14:40.623 に答える