pbkdf2はどのように機能しますか?

pbkdf2はどのように機能しますか?

grubを使用してパスワードで保護しようとしていますが、grub2-mkpasswd-pbkdf2centos 7で動作しますが、これについては理解できません。

このコマンドを使用するたびに、1234などの一意の文字列に対して異なるハッシュパスワードが提供されます。

結果は次のとおりです。

grub.pbkdf2.sha512.10000.5A9xxx
grub.pbkdf2.sha512.10000.E18xxx

私の質問は次のとおりです

これらのハッシュパスワードが10_unixファイルにコピーされ、grubが更新されると、これら2つのハッシュパスワードはどのように機能し、ログインプロセスは私の一般的なパスワードを10_unixファイルのハッシュテキストと比較しますか?

私は、一意の文字列の結果が使用されるたびに同じmd5()とは異なるようです。

ベストアンサー1

PBKDF2塩漬けパスワードハッシュは、パスワードに加えて、ハッシュ関数がパスワードを設定または変更したときにランダムに生成される別の文字列(塩)を入力として使用することを意味します。ここでのアイデアは、ソルトも必要なため、攻撃者が通常のパスワードに対応するハッシュを事前に計算できないことです。また、複数のアカウントに同じパスワードがある場合、ハッシュはランダムなので明確ではありません。ソルトはパスワードハッシュの一部として保存され、プレーンテキストのパスワードとハッシュされたパスワードを比較するためにハッシュで使用される正しいソルトを読み取ります。

MD5やSHA-256などの「元の」暗号化ハッシュ関数と比較して、PBKDF2も繰り返しつまり、基本ハッシュをループで複数回(少なくとも数千回)実行するという意味です。これは単にハッシュを作成するだけですゆっくり計算を実行すると、無差別代入を通じてハッシュに一致するパスワードを推測するコストが増加します。

この場合、grubハッシュ形式は次のようになります。

grub.pbkdf2.sha512.[繰り返し][塩]【ハッシュ時】

システムで使用されるパスワードハッシュ(/etc/shadow、参照土掘りマニュアルページ)も正しいパスワードハッシュのように繰り返してソルトされます。

PBKDF2はCPU集約型であり、多くのメモリを使用しません。これは、GPUでのコンピューティングが比較的安価であることを意味します。 bcrypt(1999)、scrypt(2009)、Argon2(2015)などの最新のアルゴリズムもこれを考慮しており、通常、新しい実装ではArgon2を使用することをお勧めします。

パスワードハッシュの詳細については、次を参照してください。 パスワードを安全にハッシュする方法は?そして 2018年にパスワードの保存に推奨されるハッシュ(bcrypt、scrypt、Argon2)は何ですか?安全について。 SE。

おすすめ記事