Какой длины должна быть соль, чтобы сделать попытки атак по словарю невозможными?

Я разрабатываю систему аутентификации, которая работает следующим образом:

  1. Пользователь вводит пароль
  2. Создается соль.
  3. Пароль хэшируется с помощью Whirlpool.
  4. Пароль, хэшируемый Whirlpool, объединяется с простой солью.
  5. Объединенная версия хешируется с помощью sha1 и сохраняется в базе данных.
  6. Я проверяю правильность пароля, хэшируя пароль на уровне приложения, а затем делаю это (в MySQL):

MySQL

WHERE `Password` = SHA1(CONCAT('$hashedPassword',`Salt`)) AND [..]

На данный момент моя соль составляет 64 байта. Будет ли этого достаточно, чтобы сделать атаку по словарю невозможной?

Я уверен, что в sha1 есть известные уязвимости, но это единственная функция, доступная в моей версии MySQL (5.1), которую я могу использовать на уровне базы данных, а не выбирать простую соль для соединения между приложением и базой данных. слой.

14
задан Will Morgan 8 March 2012 в 18:07
поделиться