CyberGlossary

Криптография

Пеппер

Также известно как: Серверный ключ, Секрет-пеппер

Определение

Серверный секрет, добавляемый к каждому паролю перед хешированием и хранящийся отдельно от базы, чтобы затруднить офлайн-перебор после утечки хешей.

Пеппер (pepper) — это длинный (обычно от 32 байт) общеприложенческий секрет, добавляемый к каждому паролю перед его обработкой хеш-функцией или KDF в дополнение к индивидуальной соли. В отличие от соли пеппер хранится вне базы учётных данных — в файле конфигурации, переменной окружения или в HSM — поэтому атакующий, получивший лишь таблицу хешей, не сможет легко перебирать пароли офлайн. Часто реализации сначала вычисляют HMAC(pepper, password) в приложении, а затем подают результат в Argon2id; либо пеппер используется как часть секретного материала на входе KDF. Это мера эшелонированной защиты: она не заменяет стойкие KDF, соли и ограничение частоты запросов, но существенно повышает стоимость атаки при утечке только базы.

Примеры

  • В приложении вычисляется HMAC-SHA-256(pepper, password), а затем результат хешируется Argon2id.
  • Пеппер хранится в HSM, чтобы приложение не могло вынести его наружу.

Связанные термины