Pepper — дополнительный секрет, который участвует в вычислении парольного хеша, но хранится отдельно от базы пользователей. При утечке одной базы атакующему не хватает pepper для быстрой автономной проверки вариантов пароля.
Pepper генерируют как криптографический ключ, помещают в HSM или менеджер секретов и дают доступ только сервису проверки. Архитектура заранее предусматривает ротацию, версионирование и поведение при недоступности хранилища.
Приложение получает активную версию pepper из KMS и использует её вместе с Argon2id-хешем и уникальной солью. При ротации успешный вход пересчитывает запись новой версией без массового знания открытых паролей.
Обычно уникальность обеспечивает соль; pepper управляется как отдельный секрет, иногда с разделением по системе или версии.
Что делать при утечке pepper?Считать защитный слой скомпрометированным, ротировать секрет и оценить необходимость сброса паролей по риску и доступу к базе.
Где хранить pepper?В KMS, HSM или менеджере секретов отдельно от базы и конфигурации приложения, с минимальными правами и аудитом.