web-dev-qa-db-ja.com

GnuPGはkeyserver.ubuntu.comをどのように信頼できますか?

OpenPGP証明書の有効性は、信頼のWeb内の信頼できる当事者によって検証されている証明書に基づいていることを理解しています。

ただし、毎日GnuPGを使用しないほとんどの人は、keyserver.ubuntu.comからキーを1回取得するだけで、正確であることを信頼します。例えば。次の場合 buntu.comの「検証方法」ガイド

gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys "8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092" "C598 6B4F 1257 FFA8 6632 CBA7 4618 1433 FBB7 5451"

この通信は行われますが プレーンな暗号化されていないHTTP経由 ですが、キーサーバーから返される証明書はキーサーバー自体によって署名されるため、キーサーバーの信頼できる証明書を知っている限り、応答を信頼します。

しかし、GnuPGがtrustdbファイルをまだ作成していないと思うので、このコマンドを1回実行するだけで、キーサーバーを信頼できますか? GnuPGには、keyserver.ubuntu.comの証明書を含む、信頼する証明書の組み込みリストがありますか?もしそうなら、どのようにしてこのリストを見つけて、これが事実であるかを確認できますか?

この信頼できるリストが存在しない場合、すべての通信が同じ中間者(MITM)によって傍受される可能性はありません。この中間者は、keyserver.ubuntu.com偽造された署名済みパッケージ(オペレーティングシステムISOなど)を提供すると同時に?

5
Robin Winslow

キーを受信するためのパラメーターは、2つのキーの完全なフィンガープリントです。

  • 8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092
  • C598 6B4F 1257 FFA8 6632 CBA7 4618 1433 FBB7 5451

フィンガープリントは公開鍵から計算されます(I スーパーユーザーでOpenPGP鍵IDについて説明しました 、参照が必要な場合)。 GnuPGは、受信したキーの計算されたフィンガープリントが要求されたフィンガープリントと一致しない場合、間違ったキーが返されたことを認識します。つまり、キーサーバー(ランダムな個人によって運用されているため、悪意のある目的を持っている可能性があります)を信頼することはできませんが、キーサーバーから受信したすべての情報を検証する必要があります。可能な指紋の範囲は非常に非常に大きく、たとえばNSAのような機関のような膨大な計算能力を持っている場合でも、衝突(別のキーと同じ指紋)を見つけることはできません。 )。 ただし、短いキーIDは信頼しないでください。

同じ理由で、メールアドレスまたはユーザーIDを検索するとき、キーサーバーの結果を信頼できない場合があります。キーサーバーオペレーターは悪意のある情報を返すだけでなく、キーサーバーもまったく検証しません(誰でも任意のメールアドレスのキーをアップロードできます)。 常に自分でキーを検証する必要があります。 GnuPGにはデフォルトで信頼されるキーのようなものはなく、GnuPGメンテナーのキーさえもありません。 Ubuntuキーのフィンガープリントをリストするソースを信頼する場合、それらに署名して、GnuPGにそれらのキーを確認したことを認識させることができます。

HKPS(HTTPを介したHKP)もありますが、キーサーバー情報の検証が欠落していることを考慮しても何も変わりません。 HKPSは導入されただけなので、中央の人間はキーサーバーから取得したキーを記録できません。

4
Jens Erat