# デジタル署名
OpenPGPは、私有鍵でメッセージの内容にデジタル署名し、ペアになっている公開鍵で文書の内容が改竄されていないことを検証する手順を規定しています。デジタル署名はメッセージと別のデータとして取り扱ったり、受取人の公開鍵も指定することでデジタル署名をすると同時に暗号化することもできます。ここでは、メッセージの内容とデジタル署名を連結したクリアテキスト署名を生成してみます。
# 署名する
メッセージへのデジタル署名には、デジタル署名をする人の私有鍵を指定します。私有鍵にパスフレーズを設定した場合にはパスフレーズも指定してください。
注意
原則的に、実際に利用する私有鍵をブラウザにペーストしないように注意してください。ブラウザが表示しているウェブサイトに私有鍵が漏洩してしまう可能性があります。
ヒント
クリアテキスト署名には、ヘッダに続いてメッセージが、それに続いてデジタル署名が含まれます。
セキュリティキーやスマートカードなどの暗号デバイスは、ホストの計算機からメッセージを受け取り、格納された私有鍵によって生成したデジタル署名をホストの計算機に送り返すので、デバイスの外に私有鍵を提示する必要がありません。デバイスを堅牢にすることで、複製できない私有鍵を利用しやすい状態で保管することができ 、デバイスそのものを複製できない証明書として活用することができます。
# 検証する
次に、デジタル署名を検証してみましょう。検証には、デジタル署名を施した私有鍵とペアになっている公開鍵が必要です。クリアテキスト署名メッセージのメッセージの部分を編集して検証してみると、メッセージが改竄された場合に検証が失敗することも確認できます。
注意
OpenPGPでは署名時刻が改竄されていないことを検証できますが、署名の際に記録された署名時刻が実際の時刻であったことを検証できるわけではありません。
ヒント
検証したクリアテキスト署名の詳細をブラウザコンソールでも確認できます。
このように、メッセージの暗号化や署名付きメッセージの検証には、公開鍵が重要な役割を果たします。手元の公開鍵が、自分がメッセージをやりとりしていると思っている相手のものではなく、悪意の第三者のものだった場合には、メッセージが漏洩してしまったり、メッセージが改竄されてしまっていたり偽物だったりしても気づくことができません。次に、OpenPGPでは公開鍵の正当性をどのように担保しているか考えてみます。
← 暗号化と復号 公開鍵の正当性の確認 →