Пропустить до основного содержимого


Слушайте, я тут такую странную вещь вдруг узнал. Вот 2025 год на носу, четверть века прошла.
И человек пишет про то, что пароли, которые мы вводим на сайтах при авторизации, посылаются почти всегда в открытом виде, как есть. Я как сущий дилетант почему-то думал, что любая страничка авторизации, в которую я копипастю пароль из менеджера, первым делом его хеширует по хитрой схеме, и посылает всегда и только хеш! И при регистрации - хеш, и при логинах, тем более, хеш, а тут...
Скажите, это что, неужто правда?
Скрин на англ. но для вас это не проблема, перевод на всякий случай от deepL.
Эта запись была отредактирована (1 мес. назад)

ru поделился этим.

в ответ на far5

Всё так и есть. В этом нет никакого секрета. В этом легко убедиться, открыв в браузере консоль разработчика (F12), перейти на вкладку "Сеть", жмакнуть отправку формы с паролем и посмотреть как оно уходит на сервер.
в ответ на ХаББыватель

@hubbitant
я в шоке - это ещё слабо сказано.
Тут хочется возопить: но почему? это же жесть какая-то, с такими мощностями даже на слабых смартах - и не хешировать пароли прямо в браузере.
в ответ на far5

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

@hubbitant А как сервер по полученному от клиента хешу проверит правильность пароля? Из хеша ведь нельзя восстановить пароль.
в ответ на Sasha

Можно захешировать на стороне сервера зная приватный ключ и сравнить хеши.
в ответ на ХаББыватель

p.s. но опять же эта так себе идея т.к. перехват хеша = перехват пароля т.е. бессмысленная накрутка логики
в ответ на ХаББыватель

@hubbitant @sasha
Если утечет хэш -- пароль останется.
Достаточно его немного изменить, чтобы получился совершенно новый хэш (каскадный эффект)
в ответ на fa11_1eaf

@fa11_1eaf @hubbitant @sasha Хэши используются с солью чтобы по утекшей базе нельзя было быстро через rainbow table поперебирать все пароли там. В исходном посте ещё говорится что пароли идут по сети в плейнтексте, что не совсем правда, потому что HTTPS сейчас почти везде.
в ответ на Lyyn ☮️

@lyyn @fa11_1eaf @hubbitant @sasha
https учитывается. Но вот, например, рекламорезка, работающая в слоте vpn, ставит в систему (андроид) свой сертификат. Получается, она работает как mitm? Прогоняет через себя дешифрованный https траффик?
в ответ на Sasha

@sasha @hubbitant
А зачем серверу знать пароль?
Он может просто сохранить у себя хэш и сверяться в дальнейшем с ним.
в ответ на fa11_1eaf

@fa11_1eaf @hubbitant Конечно серверу не нужно знать пароль. Он хранит только хэш. А когда нужно проверить полученный от юзера пароль - сервер делает его хэш и сверяет с сохраненным
в ответ на far5

Нафейхоа?
Весь трафик идет через https, то есть зашифрован.
в ответ на far5

потому что хеширование используется для разделения хеша из базы и получаемого сервером пароля на случай, если хеши из базы утекли
Потому что когда сервер изначально принимает хеши, то утечка данных по сути содержит пароли, ведь их можно сразу в API использовать
Если же сервер принимает сами пароли, а хранит их хеши (соленые, кстати), то в случае утечки злоумышленник не сможет аутентифицироваться через API
в ответ на Philainel

@philainel допустим. А почему, например, сервер не может в форме для ввода пароля использовать асимметричное шифрование, переслать для этого открытый ключ в браузер? Просто как дополнительный слой защиты?
в ответ на far5

так SSL буквально уже это делает, но только для всего трафика
Эта запись была отредактирована (4 нед. назад)
в ответ на far5

да пересылаются на сервер без хеширования. Но вся информация скрыта за ssl.

Поэтому все браузеры сейчас ругаются на формы логина без https

в ответ на far5

обычно передаётся голым текстом, если люди не заморочились, но эти заморочки всё равно клиентские шифры обратимые, иначе как сервер поймёт, какой пароль ввёл юзер, а обратимое значит ненадёжное.

что в целом, при наличии https, небольшая проблема, так как канал шифрованный

Источник неизвестен

far5
@john3volt @Nostre
дело в том, что государство тоже может выступать в роли mitm. Гуглим, например, "национальный сертификат безопасности Казахстан".
Источник неизвестен

john3volt
@Nostre Https шифрует трафик между клиентом и сервером от возможных перехватчиков.
И для клиента и для сервера все видно как есть.
Так в чем вопрос?
Источник неизвестен

john3volt
@Nostre сервер просто видит пароль как есть, хеширует и сравнивает с хешем в базе.
Голый http считай нигде не используется.
в ответ на far5

@Nostre Ставить такие сертификаты - ССЗБ.
Так же для этого случае есть 2ФА авторизация. Желательно не через смс.
А вообще политические и социальные проблемы, в общем случае, не решаются технически.
в ответ на john3volt

@john3volt @Nostre а pin 2fa в каком виде посылается? Я не знаю эту тонкость.
А такие сертификаты лет через -адцать могут стать обязаловкой.
в ответ на far5

@Nostre шлется как есть. Но это скорее защита от анализа трафика после. Если за вами смотрят в реалтайме то не спасет. И в таком случае это не то что бы техническая задача.
А вопрос как до такого дошло государство и что делать.
в ответ на far5

@far5 @ХаББыватель Страницы регистрации, логина и прочие подобные загружаются по протоколу https, и отправка пароля происходит по этому же протоколу. Весь трафик между сервером и клиентом при этом зашифрован.

При использовании TLS 1.3, что сейчас принято в приличном обществе, ключи для шифрации используются одноразовые, нигде не сохраняющиеся. Так что даже перехватив весь трафик и имея серитификат сервера, расшифровать этот пароль будет практически невозможно.

Поэтому вполне нормально передавать его из браузера "открытым текстом".