ERP
サーバーに保存されている Web ブラウザー ドキュメントを介してデジタル署名を行うためのプロセスを実装したいと考えています。プロセスは次のとおりです。
- ユーザーログイン
- ユーザーは、デジタル署名が必要なサーバーに保存されている PDF ファイルを確認します。
- ユーザーはデジタル署名する PDF ファイルを選択します
- ドキュメントはデジタル署名されます
デジタル署名は、スマートカードまたはサーバー側の署名システムで行うことができます。どのように実装できるか考えていますか?
ERP
サーバーに保存されている Web ブラウザー ドキュメントを介してデジタル署名を行うためのプロセスを実装したいと考えています。プロセスは次のとおりです。
デジタル署名は、スマートカードまたはサーバー側の署名システムで行うことができます。どのように実装できるか考えていますか?
この本の第 4 章をお読みください: http://itextpdf.com/book/digitalsignatures
あなたの主な問題は、署名には秘密鍵が必要なことです。この秘密鍵はスマート カードに保存され、明らかな理由から (インターネット経由での送信はおろか) そのカードから抽出することはできません。
おそらくご存じのとおり、実際の署名はスマート カードのチップ上で行われます。クライアントのコンピュータではなく、サーバー上ではなおさらです! これは、PKCS#11 を使用して署名を作成するクライアント側のソフトウェアが必要になることを意味します。(代わりに MS-CAPI を使用することもできますが、これは Windows でのみ機能します。)
さまざまなオプションがあります。サーバーで署名する必要がある PDF のハッシュを作成し、そのハッシュをクライアント アプリケーションに送信して署名を取得できます。または、PDF をクライアントに送信し、クライアントで完全な署名を行うことができます。
デジタル署名に関する私の本は、すでに少し古くなっていることに注意してください。いわゆる「遅延署名」を実装するためのより良い方法を作成しました。
それにもかかわらず、クライアント側に物理的に存在するスマート カードを含むサーバー側の署名が必要であると言うのは矛盾しているという事実は変わりません。そのニーズを満たすソリューションは、すべてのセキュリティ上の懸念に違反します。
スマート カードが物理的にクライアント側にある場合は、サーバー コンポーネントの有無に関係なく、クライアント コンピューターで何かを実行する必要があります。これは、スマートカード自体で署名が計算され、スマートカードが接続されているコンピューターのみがスマートカードと通信できるため、クライアントで何かを実行する必要があるためです。
2 つのオプションは次のとおりです。
PDF の読み取り、必要なコンテンツのスマートカードへのフィード、スマートカードからの応答署名の受信、PDF への署名の挿入など、署名プロセス全体をクライアント ソフトウェアに処理させる。
クライアント ソフトウェアをサーバーと連携させて、サーバーから PDF ハッシュを受信し、それをスマートカードにフィードし、応答署名を受信してサーバーに送り返すと、サーバーは署名を PDF に挿入できます (このスキームは可能です)。
いずれの場合も、署名の作成はクライアント側のスマートカード デバイスで行う必要があります。