3

重複の可能性:
ユーザーパスワードソルトの最適な長さは?

以下のようなデータベースがあります。

create table user (id int primary key auto increment,
     username varchar(64),
     password varchar(128), # sha512 hash of password
     password_salt varchar(128) # sha512 hash of a random number used as salt
)

これは、ソルトでパスワードのセキュリティを確保するための良い考えですか? 塩はどのくらいの長さですか?128 ビット (SHA-512) のソルトを使用しても害はないと思いますが、以前は間違っていました。

4

1 に答える 1

1

私はいくつかのコメントがあります:

  • ソルトはユーザーごとにランダムで一意である必要がありますが、ハッシュ ダイジェストである必要はありません。ソルトのアイデアは、ハッシュ ダイジェストをユーザーごとに一意にして、辞書攻撃やレインボー テーブル攻撃に抵抗することです。ソルトの長さに関係なく、ソルトはハッシュ ダイジェスト アルゴリズムの強度を増加させません。

  • DES はソルトに 12 ビットを使用します。更新された UNIX パスワード システムでは、最大 128 ビットまで使用されます。

  • より強力なパスワードが必要な場合は、bcryptまたはPBKDF2の使用を検討してください。

  • FWIW、SHA-512 ハッシュ ダイジェスト (16 進数としてエンコード) は、入力の長さに関係なく、常に正確に 128 文字です。したがって、VARCHAR(128) の代わりに CHAR(128) を使用します。ソルトには BINARY(2) または BINARY(3) を使用します。

于 2011-09-15T22:55:12.600 に答える