0

TSA サーバーを RFC 3161 形式で実装するコードがあります。TSAClientBouncyCastle を使用してタイムスタンプ付きの PDF ファイルに署名しようとすると、証明書の詳細が表示されない署名を受け取ります。

ここに画像の説明を入力

誰かがそれを解決する方法を知っていますか?

ここにコードを投稿できますが、どの部分かわかりません。誰かが私を RFC の特定のセクションに案内してくれたらいいのですが、コードの関連部分を投稿して、それについて話し合うことができます。前もって感謝します

サンプル PDF ファイルへのリンク https://drive.google.com/file/d/0B61KdyZ43x-9cEk5YVV6WVd4WUU/view?usp=sharing

4

1 に答える 1

2

特定のタイムスタンプ機関の詳細が表示されない理由は、スクリーンショットの手前にある [高度な署名プロパティ]ダイアログの下にある [署名プロパティ] ダイアログに示されています。

署名にはタイムスタンプが埋め込まれていますが、無効です。

したがって、PDF 署名コードだけでなく、RFC 3161 形式の TSA サーバーを実装するコードまたはそれが使用する証明書も検査する必要があります。

TSA証明書

あなたの TSA 証明書は無効です。

あなたの署名を掘り下げて、最終的に証明書を見ました。結局のところ、署名とタイムスタンプの署名に同じ証明書を使用しているようです。これはうまくいきません!

仕様を参照してください:

TSA は、その目的のために特別に予約されたキーを使用して、各タイムスタンプ メッセージに署名する必要があります。TSA は、異なるポリシー、異なるアルゴリズム、異なる秘密鍵サイズに対応するため、またはパフォーマンスを向上させるために、個別の秘密鍵を持つことができます (MAY)。対応する証明書には、[RFC2459] セクション 4.2.1.13 で定義されているように、KeyPurposeID が値を持つ拡張キー使用法フィールド拡張のインスタンスが 1 つだけ含まれている必要があります。

id-kp-timeStamping.  This extension MUST be critical.

(セクション 2.3.* TSA の識別 * RFC3161 )

特に、ユーザー証明書には、タイムスタンプ証明書としてマークする必要な拡張キーの使用法がありません。

于 2016-01-04T11:07:29.747 に答える