コンテンツへスキップ
uencoder

Pepper

ペッパー(pepper)はパスワードハッシュ時に追加するサーバ側の秘密である。ソルトと異なり全体で共有され秘密に保たれ、オフライン攻撃の難度を高める。

目的

ソルトに加えてサーバの秘密を上乗せし、データベース漏洩だけではパスワードをオフラインで解読できないようにする。

メカニズム

H(password || salt || pepper)。ペッパーは全体で共有されるが秘密であり(設定ファイルやHSMに保存、データベースには置かない)、データベース漏洩時、ペッパーを持たない攻撃者はオフラインでハッシュ化できない。ソルトはユーザごとに一意のまま。ペッパーが漏洩すると保護はソルトのみの水準に低下する。

ユースケース

  • 強化されたパスワードハッシュ
  • データベース漏洩後の追加保護
  • HSMでのペッパー保管
  • コンプライアンス要件

例

  • 入力
    H(pass + salt + pepper)
    Output
    The pepper is required for verification

    Pepper kept secret

よくあるエラー

Storing the pepper in the database (the same one as the hashes)
Keep the pepper in config/HSM, separate from the database

関連用語

関連ツール

References