そこの!私はpdfbox 1.8.11を使用してpdf署名を行っています。DSS辞書が埋め込まれたLTV対応の署名を作成できました。問題は、複数の署名がある場合の証明書の検証です。
PDF 2.0 LTV および PAdES LTV 仕様に従って、各署名に VRI を追加することが許可されているため、特定の署名ごとに関連する失効データを検証できます。
署名に VRI 辞書を追加する方法はありますか? VRI のキーは base-16 でエンコードされたハッシュであるため、最初に署名が必要です。私の知る限り(私が間違っていたことを願っています)、署名関連情報を含むPDFが出力ストリームに保存されると、署名が作成されます。( PDDocument.saveIncremental(ins, outs)
)
================================================== ==========
より詳細に:
PAdES LTV および PDF 2.0 LTV 仕様に従って DSS データに対して署名を検証したいときに、この問題に遭遇しました。最初の焦点は、PDF 2.0 LTV 仕様です。
私が正しく理解している場合:
- DSS には、署名済み PDF に含まれるすべての署名の失効データが含まれています。
私が遭遇した状況: 仮定: ユーザー A とユーザー B の 2 人のユーザーがいて、それらの証明書は同じ CA によって発行されています。(よくあることだと思います。)
- ユーザー A が DSS でドキュメントに署名しました (certs/crls/ocps が埋め込まれています)。
- 数日後、ユーザー B はユーザー A の署名付きドキュメントに DSS (certs/crls/ocps) で署名します。注!: crl は発行者 ID によって識別されます。
署名検証フェーズ:
証明書チェーンを再構築したい場合は、crls と ocsps に対して署名証明書を検証します。特に、ドキュメントが署名された時点で crl の有効期限が切れていないことを確認したい場合は、正しいものを使用していることを確認する必要があります。 Crl のバージョン。
私にとっては、署名に正しくマッピングされた certs/crls/ocsps を確認する必要があることを意味します。それ以外の場合、検証はもはや信頼できますが、同様に無意味です。
したがって、最新の PAdES 仕様 103 では VRI の使用は推奨されていません。さすがに、もったいないと思います……。
次に別の問題:
以下にコメントしたように、pdfbox を使用して pdf に署名しています。
事前に DSS データを収集した場合は、後で署名を作成します。(実際には、DSS も署名付きコンテンツの一部です。)
- 良いこと: acrobat リーダーは、私の署名が LTV 対応であることを認識します。
- 悪い点: そのような状況では、そこに VRI を追加することができません。VRI のキーは、署名のハッシュ値です。
最初にドキュメントに署名し、その後 VRI で署名と DSS を取得すると、Acrobat Reader は DSS を認識しなくなります。私の署名は、もはや acrobat リーダーに対して有効な LTV ではありません。それは私が混乱している問題です。LTV検証でアクロバットリーダーが間違っているのか??
私はそれが間違っていると思いますか?私が間違って理解したことがあれば、それを指摘してください。前もって感謝します!