まず、背景について少し説明します。実際の質問は一番下にあります。
私は現在、ユーザーが自分の顧客にフォームを送信できるようにする Web ベースのアプリ (一種の SaaS) に取り組んでいます。
これらのフォームは、顧客が「承知しました。これを行います。ここに私の確認があります」と言う小さな仕事のためのシンプルで小さな契約書です。
「署名」されている種類のものは、完全修飾デジタル署名を必要とせず、電子署名で十分です。
この場合、「はい、これを行います」という単純なチェックボックスで法的に十分ですが、署名パッドで実装したいと考えています。正直なところ、それは一見より拘束力があり、「きちんと」しているように見えるためです。
現在のワークフローは次のようになります。
- ユーザーの顧客が Web フォームを開きます (署名を求められている当事者は、直接リンクを知っている世界で唯一の人です)。
- いくつかのボックスにチェックを入れてテキストを入力します
- [署名] をクリックすると、HTML5 署名パッド (モバイル) または簡単な入力 (PC) が開き、名前を入力できます
- 「同意する」をクリック
- ダウンロード用に PDF が生成され、サーバーに保存されます (タイムスタンプ、IP、およびその他のいくつかの情報と共に)
ご覧のように、契約書全体は単純な電子署名で構成されています。追加機能がなくてもです。
やりたいこと
単純な電子署名と同様に、文書が改ざんされた可能性があることは誰にとっても簡単です。
だから私がしたことは、仕様に従って(tcpdfを使用して)PDFに適切に署名することです。これには、最初にPDFを生成し、次に署名を辞書に追加し/Sig
、次にすべてのバイト範囲(署名を除く)でダイジェストを生成し、それをリンクする必要がありました.crt
ファイルと出来上がり: ドキュメントは署名されており、1 バイトでも変更されると署名が無効になるという素晴らしい利点があります。
質問に移ります:
- 証明書を使用せずに「改ざん検証」を利用することは可能ですか? 私が言うように、これらはデジタル署名ではなく、単純な電子署名であるべきです。それでも、署名後の変更が強調表示されていることから利益を得たい.
- または、署名プロセスに適切な証明書を使用することもできます。しかし、この証明書は私のユーザーやユーザーの顧客のものではなく、私のものです。その意味で、それは良いことよりも害を及ぼすでしょうか?つまり、証明書が間違った当事者に属しているため、無意味になります。署名者が保証するのではなく、私が保証します。「私が署名した後に文書が変更され、再署名されました」; 等