助け合いフォーラム
この問題はプレミアムコンテンツです。
signatureの解説について
解説に、「signatureはCAが証明書に署名する際に用いるアルゴリズムです。」
と記載がありますが、CA が自分の秘密鍵で実際に計算した 署名データそのものではないですか?
CAが証明書に署名する際に用いるアルゴリズムはsignatureAlgorithmではないのですか?
CA が自分の秘密鍵で実際に計算した 署名データそのものではないですか?
CAが証明書に署名する際に用いるアルゴリズムはsignatureAlgorithmではないのですか?
tbsCertificate の signature は「署名データそのもの」ではありません.
署名データそのものは signatureValue フィールドに格納されています
signatureAlgorithm と signature は, いずれも証明書に署名するために用いられるアルゴリズム(の識別子)を示すフィールドです.
両者は同じアルゴリズムを含まなくてはいけません
https://tex2e.github.io/rfc-translater/html/rfc5280.html#4-1-2-3--Signature
このフィールドには、シーケンス証明書(セクション4.1.1.2)のsignatureAlgorithmフィールドと同じアルゴリズム識別子を含める必要があります。
つまり, tbsCertificate(署名対象のデータ)の内部(signature)に署名アルゴリズムが記録され,
証明書全体の signatureAlgorithm にも同じアルゴリズムが記録され,
そのアルゴリズムで CA が生成した署名が signatureValue に格納される という構造です.
#アルゴリズムが2つある点については,改ざん検出用とか構造的な理由などかもしれませんが理由や背景まではわかりません
こちらの方がもう少しわかりやすいかもしれません.
https://www.trustss.co.jp/smnDataFormat410.html#Signature
コメント
この投稿に対して返信しませんか?