ペッパー
ペッパー とは何ですか?
ペッパーハッシュ計算前に各パスワードへ加算するサーバー側秘密で、データベースとは別の場所に保管し、ハッシュ流出後のオフライン解析を抑制する。
ペッパー(pepper)は、ハッシュ関数や KDF にパスワードを渡す前に、ユーザーごとのソルトに加えて適用されるアプリケーション共通の長い秘密(通常 32 バイト以上)です。ソルトと異なり、ペッパーは認証情報データベースの外側(設定ファイル、環境変数、HSM など)に保管されるため、ハッシュテーブルだけを入手した攻撃者がオフラインで容易に解析できないようにします。一般的な実装では、まずアプリ側で HMAC(pepper, password) を計算し、その結果を Argon2id に渡す方式や、KDF の入力に秘密素材としてペッパーを混ぜる方式が採られます。あくまで多層防御であり、強力な KDF、ソルト、レート制限の代替にはなりませんが、データベースのみが漏えいした際の解析コストを大きく引き上げます。
● 例
- 01
アプリ側で HMAC-SHA-256(pepper, password) を計算し、その値を Argon2id でハッシュする。
- 02
ペッパーを HSM に保管し、アプリが直接持ち出せないようにする。
● よくある質問
ペッパー とは何ですか?
ハッシュ計算前に各パスワードへ加算するサーバー側秘密で、データベースとは別の場所に保管し、ハッシュ流出後のオフライン解析を抑制する。 サイバーセキュリティの 暗号 カテゴリに属します。
ペッパー とはどういう意味ですか?
ハッシュ計算前に各パスワードへ加算するサーバー側秘密で、データベースとは別の場所に保管し、ハッシュ流出後のオフライン解析を抑制する。
ペッパー からどのように防御しますか?
ペッパー に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
ペッパー の別名は何ですか?
一般的な別名: サーバーサイド鍵, ペッパーシークレット。