ソルトとは
ハッシュ化前にパスワードへ付加するランダム値
ソルトとは
ソルト(Salt)は、パスワードをハッシュ化する前に追加するランダムな文字列のことだよ。料理のお塩みたいに「少し加えることで性質を変える」イメージだね。
なぜ必要なの?
ソルトがないと、同じパスワードは常に同じハッシュ値になる。これがレインボーテーブル攻撃に弱い理由だよ。レインボーテーブルは「パスワード → ハッシュ値」の対応表で、事前計算しておくことで高速に元のパスワードを特定できてしまうんだ。
ソルトを加えることで、同じパスワードでも毎回異なるハッシュ値が生成される。攻撃者がレインボーテーブルを使っても無意味になるわけだね。
ソルトの実際の動作
ハッシュ値 = hash(パスワード + ソルト)
ソルトはユーザーごとにランダムに生成され、ハッシュ値と一緒にデータベースに保存される。ログイン確認の際は、保存されたソルトを取り出してパスワードと組み合わせてからハッシュ化するよ。
現代のパスワードハッシュとソルト
bcryptやArgon2はソルトを自動的に生成・管理してくれる。自分でソルトを管理する必要がないので、実装ミスが減ってとても安全なんだ。ソルトはランダムで十分な長さ(16バイト以上推奨)であることが重要だよ。
作ったパスワードは頭で覚えるのではなく、マネージャーに任せると安全です。 編集部がふだん使っているサービスをご紹介します。
洗練されたUI・Watchtower侵害通知・旅行モード搭載。Apple製品ユーザーに特に人気の老舗マネージャー。
オープンソースで透明性が高く、無料プランでも基本機能をフルに使える。セルフホストも可能。
SOC2 Type2認証取得済み。BreachWatch によるダークウェブ監視と法人向け管理コンソールが強力。
NordVPN 系列の老舗。XChaCha20 暗号化・データ漏洩スキャナ・パスワードヘルスを内蔵。日本語UI対応。
スイス拠点・Proton Mail 系列。E2E 暗号化・メールエイリアス・2FA を1つに統合。プライバシー重視派に。