署名の改ざんテスト
この最終ステップでは、デジタル署名の最も重要な機能である完全性保護を実証します。意図的に署名後の document.txt ファイルを改ざんし、その後、元の署名で検証を試みます。これにより、デジタル署名がいかに不正な変更を防ぐかを示します。
まず、document.txt ファイルにいくつかのテキストを追加します。これは攻撃者がドキュメントを変更する状況をシミュレートします。
echo "This is an unauthorized change." >> document.txt
これで document.txt の内容が変更されました。元の署名 document.sig は、ファイルの以前の内容に基づいて作成されています。
次に、変更された document.txt ファイルを、元の署名 document.sig と公開鍵を使用して検証してみます。
openssl dgst -sha256 -verify public.pem -signature document.sig document.txt
今回、検証は成功しません。代わりに、次のようなエラーメッセージが表示されます。
Verification failure
805BA484597F0000:error:02000068:rsa routines:ossl_rsa_verify:bad signature:../crypto/rsa/rsa_sign.c:430:
805BA484597F0000:error:1C880004:Provider routines:rsa_verify:RSA lib:../providers/implementations/signature/rsa_sig.c:774:
この失敗は予期された結果です。これは、変更された document.txt のハッシュが、document.sig 内に暗号化されていたハッシュと一致しなくなったために発生します。これにより、ファイルが署名されて以来改ざんされたことが即座に証明されます。このメカニズムは、デジタルドキュメントや通信を信頼するための基本となります。