Pepper

Простыми словами

Pepper — дополнительный секрет, который участвует в вычислении парольного хеша, но хранится отдельно от базы пользователей. При утечке одной базы атакующему не хватает pepper для быстрой автономной проверки вариантов пароля.

Как применяется

Pepper генерируют как криптографический ключ, помещают в HSM или менеджер секретов и дают доступ только сервису проверки. Архитектура заранее предусматривает ротацию, версионирование и поведение при недоступности хранилища.

Пример применения

Приложение получает активную версию pepper из KMS и использует её вместе с Argon2id-хешем и уникальной солью. При ротации успешный вход пересчитывает запись новой версией без массового знания открытых паролей.

Не путать с

  • СравнениеСоль уникальна для каждой записи и хранится открыто рядом с хешем; pepper общий или версионируемый секрет вне базы. Pepper не заменяет парольную функцию, соль и защиту самого сервиса.

Как это работает

  1. Создать секретГенерируют ключ достаточной длины и назначают ему версию и область применения.
  2. Изолировать хранениеPepper помещают отдельно от пользовательской базы с узким машинным доступом и аудитом.
  3. Включить в вычислениеСервис сочетает pepper с паролем и солью по документированной криптографической конструкции.
  4. Ротировать безопасноПоддерживают переход версий, обновляют запись при проверке и имеют план компрометации или недоступности.

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

Частые вопросы

Нужно ли отдельное pepper для каждого пользователя?

Обычно уникальность обеспечивает соль; pepper управляется как отдельный секрет, иногда с разделением по системе или версии.

Что делать при утечке pepper?

Считать защитный слой скомпрометированным, ротировать секрет и оценить необходимость сброса паролей по риску и доступу к базе.

Где хранить pepper?

В KMS, HSM или менеджере секретов отдельно от базы и конфигурации приложения, с минимальными правами и аудитом.

Pepper — дополнительный общий секрет, используемый вместе с паролем и хешем и хранимый отдельно от базы данных.