web-dev-qa-db-ja.com

このエンコードされたArgon2ハッシュのどの部分がソルトですか?

私は投稿を読んでいました ハッシュされたパスワードと同じフィールドにソルトを格納することは安全/賢明ですか?

$argon2i$v=19$m=65536,t=3,p=1$YOtX2//7NoD/owm8RZ8llw==$fPn4sPgkFAuBJo3M3UzcGss3dJysxLJdPdvojRF20ZE=

私の理解は、p=はパラメータであり、p=はソルトで、最後の部分はハッシュされたパスワードです。 "

ハイライト部分がわかりません。思った$バリアント、バージョン、パラメータ、ソルト、ハッシュをスライスするため、次のようになります。

  • p(並列処理パラメーター)= 1
  • 塩= YOtX2//7NoD/owm8RZ8llw==
  • ハッシュ= fPn4sPgkFAuBJo3M3UzcGss3dJysxLJdPdvojRF20ZE=

ここでソルトとハッシュを識別するのは正しいですか?

4
Mr.President

$argon2i$v=19$m=65536,t=3,p=1$YOtX2//7NoD/owm8RZ8llw==$fPn4sPgkFAuBJo3M3UzcGss3dJysxLJdPdvojRF20ZE=

  • argon2{i} 3つのタイプi、d、id

    • Argon2dはより高速で、データに依存するメモリアクセスを使用します。データの依存関係により、サイドチャネルがすぐに有効になります。これは、サイドチャネル攻撃の脅威がない暗号通貨とアプリケーションに適しています。

    • Argon2iは、データに依存しないメモリアクセスを使用します。これは、パスワードハッシュおよびパスワードベースのキー導出に適しています。

    • Argon2id最初の反復の前半ではArgon2iとして機能し、残りの部分ではArgon2dとして機能します。これにより、サイドチャネル保護と時間メモリのトレードオフの両方が可能になります。

      また、違いがわからない場合、またはサイドチャネル攻撃を実行可能な脅威と見なす場合は、 Argon2id を使用します。

      より良いアドバイスUse Argon2id unless you know you have a good reason to use any other mode by MechMK1

  • v=19-バージョンの場合はv、ここではバージョンは19です

  • m=65536-mは可変メモリコストを表す整数で、ここでは65536キビバイトです。
  • t-線形反復での可変タイミングコストを表す整数です。ここでは3です。
  • p=1-pは並列化の量を制御するための並列化メカニズムです
  • ソルト-ここにYOtX2//7NoD/owm8RZ8llw==
  • ダイジェスト-ここfPn4sPgkFAuBJo3M3UzcGss3dJysxLJdPdvojRF20ZE=

$記号で分割すると、最後のトークンがダイジェストになり、最後のトークンの前のトークンがソルトになります。

6
kelalaka