@StynuBlizz

Возможно ли будет взломать пароль с динамической солью которая нигде не хранится?

Допустим на клиенте вместе с паролем просить пользователя ввести слово (не менее 6 символов, оно и будет солью, которую знает только пользователь, больше она нигде не фигурирует ) и дальше все делать по такой схеме:
hash(password+hash(слово)) и отправлять этот хэш на сервер.
По прибытии данных на сервер делать так: hash(пришедший хэш + соль из БД для этого пользователя) и сверять это с тем что лежит в БД.
  • Вопрос задан
  • 402 просмотра
Пригласить эксперта
Ответы на вопрос 5
teke_teke
@teke_teke
programador
чем будет отличаться просто пароль от пароля с этой солью на клиенте? пароль с такой солью снова становится просто паролем. взламывается также, как и простой пароль.
Ответ написан
@Fly3110
web developer
Ваш вариант с солью ничем не отличается от простой авторизации с паролем.
Если у пользователя пароль из 10 символов и соль из двух, то взлом ничем концептуально не будет отличаться от взлома пароля из 12 символов. Будет просто добавлен еще множитель 11 для нахождения позиции разбивки строки из 12 символов на "пароль + соль"
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Возможно: ловится хеш (hash(password+hash(слово))) через MiTM и авторизуется кто угодно дальше под этим хешем.
UDP: password+hash(слово) = пароль2, который также подбирается.

Чуть надёжнее, так:
1. На приветствие клиента, сервер генерирует случайную соль и отвечает ею: RSALT
2. Клиент хеширует пароль этой солью, добавив свой случайный параметр RANDOM и свою случайную соль SALT для получения парольного ключа: HKEY=hash(pass+SALT), затем отсылает на сервер 2 параметра:
HASH=hash(RSALT+RANDOM+HKEY), RANDOM
(SALT - также сохраняем на клиенте для последующих авторизаций!)

3. Сервер сохраняет (при установке/смене пароля): HKEY
4. Проверка при авторизации: HASH===hash(RSALT+RANDOM+HKEY)

Таким образом, соль - хранит у нас клиент, а сервер - генерит всегда уникальный запрос.
Ответ написан
riky
@riky
Laravel
конечно возможно взломать, вариант ничем особо не отличается от варианта просто пароль, также все ломается перебором.
и уж точно он гораздо менее безопасен чем вариант пароль + нормальная соль.

ps вы же понимаете что у 99% юзеров: пароль==слово и у большей части к тому же это слова из топ1000 популярных паролей ну максимум даты рождения свои или родственников.

это во первых а во вторых два этих слова браузер не сохранит в хранилище паролей в итоге у ваших юзеров постоянно будут проблемы со входом на сайт.

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

итого для юзеров создается огромный геморой только из-за того что вы поленились одно поле в базу добавить. а безопасности особо нет.
Ответ написан
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Соль нужна для защиты базы данных парольных хешей от группового брутфорса с помощью радужных таблиц, на случай если её украдут. Ни от чего больше она не защищает. Для целевого случая соль не должна быть секретной, но должна быть случайной.

hash(пришедший хэш + соль из БД для этого пользователя)


Тут вы говорите о соли в БД, это ок.

hash(password+hash(слово))


Тут вы говорите о вычислении парольного хеша на клиенте, называя hash(слово) солью. Это неправильное использование термина. Соль должна быть случайной.

Возможно ли будет взломать пароль с динамической солью которая нигде не хранится?


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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы