分離したGPG署名を確認するときに何が起こるのかを理解しようとしています。
以下はgnupgの例です。手動:
blake% gpg --verify doc.sig doc
gpg: Signature made Fri Jun 4 12:38:46 1999 CDT using DSA key ID BB7576AC
gpg: Good signature from "Alice (Judge) <[email protected]>"
gpgは署名が良いかどうかはどうすればわかりますか?署名に署名されたファイルのハッシュが含まれていますか?それでは、署名自体からそのハッシュをどのように抽出できますか?
試してみましたgpg --list-packets <signature>
が、完全な情報が表示されないようです。
ベストアンサー1
この--list-packets
オプションを使用してgpgファイルの内容をダンプできます。ファイル形式の説明は次のとおりです。RFC 4880(OpenPGP規格)。
署名にはハッシュ値は直接含まれません。これには、ハッシュと送信者を確認するための情報が含まれています。署名検証アルゴリズム、ハッシュ値と公開鍵を入力として返します。はいまたはいいえ;アルゴリズムを返すはい与えられた公開鍵に対応する秘密鍵で署名が行われたかどうかを返します (与えられた秘密鍵を含むメッセージから)。いいえ他のすべての場合(異なるハッシュを持つ署名、別のキーで生成された署名、またはまったく署名になることができないバイトの束)。下にDSAアルゴリズム、秘密鍵がなければ、署名からハッシュを抽出することは不可能だと思います。
署名ファイルには、署名者の識別情報と署名値が含まれます。署名を確認するために、gpg はキーリングから署名者の公開鍵を読み取り、データのハッシュを計算し、署名検証アルゴリズムを適用します。