Как выбрать значение соли для ValidateAntiForgeryToken

Символ анти-подделки принимает значение соли. Существуют ли какие-либо проблемы безопасности при выборе соли, например

  • требования минимальной длины
  • криптографически сильный
  • сочетание буквенно-цифровых и других символов (например, паролей)

Кроме того, является ли ценность солей клиентом? Рассматривая исходный код, он, кажется, добавляет значение соли в файл cookie.

Ответ 1

Символ анти-XSRF уже содержит встроенную информацию, которая может однозначно идентифицировать ее для определенной (пользовательской, прикладной) пары. Параметр "Соль" предназначен для того, чтобы различать, для какого действия предназначен конкретный токен анти-XSRF. Это не значит быть тайным. Не стесняйтесь делиться ими с миром. Хотелось бы, чтобы мы выбрали для него другое название, поскольку термин соль вводит в заблуждение. Подумайте об этом скорее как дополнительные данные.:)

Мы уже используем правильную криптографическую соль под крышками. Для получения дополнительной информации см. Мой ответ в загрузке значения ценности ValidateAntiForgeryToken Salt.

tl; dr: Не беспокойтесь о свойстве Salt. В любом случае мы планируем удалить его из будущей версии.

Ответ 2

Общие сведения. Ваша соль должна быть безопасным случайным уникальным значением, превышающим 128 бит (например,/dev/urandom). Это должно быть сохранено в виде простого текста в отдельной таблице, чтобы его можно было использовать при проверке хэша. Он не должен быть доступен клиенту.

Общая идея заключается в том, что вы хэш-пароль пользователей и соль вместе, и сохраните это значение. Например:

SHA512(password || salt)

где password - пароль пользователя, salt - это случайное генерируемое уникальное значение, а || - конкатенация.

Затем, когда пользователь возвращает, вы повторяете процесс с предоставленным паролем и сравниваете это с сохраненным хешем, чтобы проверить идентификатор пользователя. Если вы выполните быстрый поиск в Google, вы найдете больше информации о солях и их целях.

Изменить: Это неверно в отношении токена анти-подделки MVC (см. ответ levi) и прочитать это blog. Притворная соль - это уникальное имя формы или идентификатор формы (и чтобы она не была помечена или названа солью)