Apache の PDFBox Detached Signature と暗号署名自体の BouncyCastle API を使用して、LTV 対応の PDF 署名を作成しようとしています。
これまでのところ、次の手順に従って、Adobe Reader に「Signature is LTV enabled」というメッセージを表示させることができました。
署名証明書の完全なチェーンとタイムスタンプ機関証明書の完全なチェーン (手順 4 で署名のタイムスタンプを追加するために使用) の失効情報 (CRL と OCSP 応答の両方、もちろんルート証明書を除く) を取得します。
Adobe OID「1.2.840.113583」形式で計算される署名の署名済み属性として、手順 1 で取得した失効情報を含めます。
adbe-revocationInfoArchival OBJECT IDENTIFIER ::= { adbe(1.2.840.113583) acrobat(1) security(1) 8 } RevocationInfoArchival ::= SEQUENCE { crl [0] EXPLICIT SEQUENCE of CRLs OPTIONAL, ocsp [1] EXPLICIT SEQUENCE of OCSP Responses OPTIONAL, otherRevInfo [2] EXPLICIT SEQUENCE of OtherRevInfo OPTIONAL } OtherRevInfo ::= SEQUENCE { Type OBJECT IDENTIFIER ValValue OCTET STRING }
署名を実行する
ステップ 3 で生成された署名に修飾されたタイムスタンプを埋め込む
前のステップの出力により、Adobe Reader で「LTV 有効」ステータスが得られます。
Adobe Reader が証明書チェーンの有効性を検証するために使用したデータを確認すると、「署名に埋め込まれたオンライン証明書ステータス プロトコル (OCSP) 応答を使用して検証済みとして取り消されていないため、選択した証明書は有効と見なされます。 "
ただし、タイムスタンプ機関の証明書チェーンに対して同じチェックを実行すると、「オンラインで取得したオンライン証明書ステータス プロトコル (OCSP) を使用してリアルタイムで検証され、取り消されていないため、選択した証明書は有効であると見なされます。」というメッセージが表示されます。
署名者のチェーンに埋め込まれた CRL/OCSP は正常に使用されますが、埋め込まれた TSA のチェーン CRL/OCSP は使用されません。
これにより、回答が必要ないくつかの質問が生じます。
- TSA 埋め込み CRL/OCSP 埋め込みが使用されないのはなぜですか?
- 他の場所に配置する必要がありますか? もしそうなら、どこですか?
- または、タイムスタンプ トークン内の署名済み属性として CRL および/または OCSP 応答を返すようにタイムスタンプ発行機関に依頼する必要がありますか?