web-dev-qa-db-ja.com

OpenPGP秘密鍵のパスフレーズはどのようにしてセキュリティを向上させますか?

私はOpenPGPの初心者ユーザーです。 OS XでGPGToolsを使用しています。いくつかの関連する質問がありますが、インターネットで直接回答を見つけるのは困難です。

  1. 鍵ペアを作成するときに入力するパスワードは、自分のマシンでのみ秘密鍵を暗号化するパスフレーズであり、暗号化されたメッセージを復号化するために必要なパスフレーズではありませんよね?
  2. 上記の記述が正しい場合、それはメッセージの復号化に使用するパスワードが実際には秘密鍵をロック解除するパスフレーズにすぎないことを意味していますか?パスコードを公開しても、特定のファイルのロックを解除するためだけに使用されるため、何もできませんか?
  3. ブルートフォース技術は、OpenPGPで暗号化されたテキストを、秘密鍵(通常は非常に長い)を介してのみ破壊します。その結果、秘密のPGP鍵を解読するために使用されるブルートフォーステクニックは、「ストレージ目的」で鍵が作成されたときに、パスフレーズ(鍵の所有者に知られている)を介して行われます。あれは正しいですか?

たくさんの質問で申し訳ありませんが、これらは私がどこにも答えを見つけることができなかった1つの質問を表していると思います。

ありがとうございました。

4
stackex-change

暗号化された秘密鍵がある場合、これは、秘密鍵が乱数から生成され、パスフレーズを使用して対称的に暗号化されたことを意味します。つまり、秘密鍵はパスフレーズによって生成されるのではなく、パスフレーズによってのみ保護されます。

鍵ペアを作成するときに入力するパスワードは、自分のマシンでのみ秘密鍵を暗号化するパスフレーズであり、暗号化されたメッセージを復号化するために必要なパスフレーズではありませんよね?

秘密鍵はパスフレーズを使用して暗号化されます。ただし、これは、メッセージ(暗号化されていない秘密鍵が必要です)を復号化する場合、パスフレーズを入力して復号化する必要があることも意味します。

上記の記述が正しい場合、それはメッセージの復号化に使用するパスワードが実際には秘密鍵をロック解除するパスフレーズにすぎないことを意味していますか?パスコードを公開しても、特定のファイルのロックを解除するためだけに使用されるため、何もできませんか?

繰り返しになりますが、もちろんパスフレーズだけではメッセージを解読するのに十分ではないため、「海に落とされた」というメタファーが機能します。パスフレーズは、暗号化された秘密鍵なしでは役に立ちません。

ブルートフォース技術は、OpenPGPで暗号化されたテキストを、秘密鍵(通常は非常に長い)を介してのみ破壊します。その結果、秘密のPGP鍵を解読するために使用されるブルートフォーステクニックは、「ストレージ目的」で鍵が作成されたときに、パスフレーズ(鍵の所有者に知られている)を介して行われます。あれは正しいですか?

もちろん、暗号化された秘密鍵は、パスフレーズをブルートフォースすることで明らかになる可能性があります(ただし、GnuPGの適切な/デフォルト設定と適切な複雑なパスフレーズを使用すると、使用されるアルゴリズムが安全でないことが証明されない限り、これは実際的な攻撃対象にはなりません)。しかし同時に、攻撃者はもちろん、秘密鍵の(暗号化されていない)コピーを推測/ブルートフォースしようとする可能性もあります。膨大で十分な計算リソースがあれば、それらのすべてをブルートフォースで攻撃できます。パスフレーズを総当りで強制する方が低コストである可能性が高いですが、暗号化された秘密鍵の知識が必要です。

5
Jens Erat