Как выбрать значение соли для ValidateAntiForgeryToken - PullRequest
16 голосов
/ 25 февраля 2012

Жетон защиты от подделки принимает солт-значение. Есть ли какие-либо проблемы безопасности при выборе соли, такие как

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

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

Ответы [ 2 ]

40 голосов
/ 26 февраля 2012

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

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

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

0 голосов
/ 25 февраля 2012

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

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

SHA512(password || salt)

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

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

Редактировать: Это неверно в отношении токена MVC для защиты от подделки (см. Ответ Леви),и прочитайте этот блог .Притворяться, что соль - это уникальное имя формы или идентификатор формы (и для начала она не помечена или названа солью)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...