EU デジタル署名指令に準拠する必要があるデジタル署名モジュールを構築しています。
私は古いがうまく機能しているJavaモジュールから始めて、CAdES
フォーマットでドキュメントに署名しています。また、アプリケーションは、クライアント (デスクトップ JAR 実行可能ファイル) とサーバー部分によって作成されます。クライアントは、USB リーダーに接続されたスマート カードとやり取りするためだけに開発されており、残りは Web サーバー上で行われます。
現在の署名クライアントは、ファイルに署名してタイムスタンプを付ける 2 つの方法をサポートしています。「署名とタイムスタンプ」機能を使用するか、最初にドキュメントに署名してからタイムスタンプを付けることができます。
法的観点からは、どちらも同じ結果になります。
私の質問は次のとおりです。技術的な観点から、CAdES (RFC 5126、140 ページ、すべてを読み取ることができませんでした) を使用してドキュメントに署名すると、出力ファイルは同じであると述べるのは正しいですか?「サインとタイムスタンプ」機能を組み合わせて使用するか、2 つの機能を順番に使用しますか?
言い換えると、標準によれば、デジタル署名とタイムスタンプの両方を表すエンクロージャを持つことはできないのでしょうか? 標準では、署名された文書にタイムスタンプを付ける必要がありますか? またはその逆ですか?
私が達成したいのは、クライアント側で(スマートカードを使用して)ドキュメントに署名し、サーバーでファイルにタイムスタンプを付け(古いクライアントコードに触れることなく)、クライアントでファイルに署名してタイムスタンプを付けている場合とまったく同じ結果を生成することです。