web-dev-qa-db-ja.com

GnuPGの多くの識別子の違いは何ですか?

GnuPGには(サブ)キー(ペア)を参照するさまざまな方法があるようです:

  • キーID
  • 指紋
  • キーグリップ

さらに、gpg --list-sigsは、署名などの16進数の識別子も表示するようです。時々そのようなIDは省略されます。

これらすべてはかなり混乱します、そして私は誰かがこれにいくつかの光を当てることができることを望みます。

GnuPGはどのような種類と形式の識別子(鍵ID、署名ID、指紋、キーグリップなど)を使用しますか?その形式と目的は何ですか?どれを省略形で使用できますか?あるタイプまたはフォームの使用を別のタイプまたはフォームよりも好む(セキュリティ)理由はありますか?

3
jotik

キーフィンガープリント/キーIDの計算に関する情報は、RFC4880(およびRFC4880bis)で入手できます。 RSAのみのv3キー(現在は非推奨)の場合、キーIDは8バイトのRSAモジュラスで、フィンガープリントはキー固有のデータのMD5ハッシュでした。

V4キーの場合、キーIDはフィンガープリントの右端の8バイトです。これは、それ自体がいくつかのキー固有のデータ+キーマテリアルのSHA1ハッシュです。 v5キーの場合、フィンガープリントはSHA256ハッシュを使用します。

キーグリップはGnuPGの内部で使用されます。これは、いくつかの追加の書式が設定された、OpenPGP固有のデータを含まないキーマテリアルのSHA1ハッシュです。 Gripは、GnuPGキーリングで秘密鍵のファイル名を作成するために使用されます。おそらく、それがそれに関する唯一の使用可能な情報です:)

1

私は同じトピックを勉強していて、次のことがわかりました。

1)キーIDは、使用するキーIDのバージョン(短いまたは長い)に応じて、指紋の最後の8文字または16文字です。 〜/ .gnupgディレクトリにgpg.confを作成し、次の文字列で実験的に確認できます。

keyid-format 0xlong

または

keyid-format 0xshort

コマンド「gpg --list-key --with-fingerprint」を入力して確認します。

2)フィンガープリントとキーグリップはハッシュ和(?)です。主な違いは、キーグリップ計算のアルゴリズムがプロトコルに依存しないことです。これは、さまざまなスタンダートで一般的です。 OpenPGP X.509( https://lists.gnupg.org/pipermail/gnupg-users/2014-November/051769.html )。したがって、キーグリップを使用して、さまざまな標準を使用する暗号化システム全体でキーを識別することができます。

それがあなたを助けることを願っています)

0
ShatalovAF