powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Зачем нужно хэширование паролей?
25 сообщений из 34, страница 1 из 2
Зачем нужно хэширование паролей?
    #38058295
Гость_20121129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,

Имеется сервер с базой логинов и паролей, имеется сервер приложений, который авторизует пользователей.
Пользователь вводит логин и пароль, они отправляются на сервер приложений и если совпадают с тем, что есть, то доступ предоставляется, иначе отказ.
Начитался про hash-функции и их применение в хранении паролей. Допустим, пользователь при входе в систему сохраняет хэш его пароля в ини-файле. Далее этот хэш отправляется на проверку серверу, где этот хэш и привязан к логину.
Не понимаю только как это помогает НЕ предоставить доступ, если например пароль или его хэш перехватили на пути к серверу приложений?
В чем смысл вообще одностороннего преобразования в данном случае? Зачем нужно хэширование паролей?

Заранее благодарен за любые комментарии.
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058331
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость_20121129В чем смысл вообще одностороннего преобразования в данном случае? Зачем нужно хэширование паролей?как минимум для операции смены пароля, где требуется ввести старый пароль. Злоумышленник, имея на руках только хэш, не сможет этого сделать.
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058339
Гость_20121129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яростный Меч, спасибо. Обоснуйте, пожалуйста.
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058343
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость_20121129,

Хеш у клиента не должен сохраняется, по крайней в Вашей схеме. Пользователь вводит имя и пароль, далее это всё хешируется и передаётся серверу, который сравнивает полученный хеш с хешем у себя сохранённым.
1) Пароль на сервере не хранится и не передаётся по сети
2) Если с сервера утянут БД с учётками, то пароль не светится у взломщика.

плюсом ещё будет хранить "соль" для усиления хеширования. Почитайте, гуглите об этом всё расписано во многих статьях
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058346
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость_20121129Не понимаю только как это помогает НЕ предоставить доступ, если например пароль или его хэш перехватили на пути к серверу приложений?
Если существует "человек посередине" (это вид атаки) то хеш в данном случае не спасёт. Другое дело если человек выполняет некие команды и подписывает это всё хешем. То злоумышленнику тяжелее будет подделать команду, так как заново вычислить хеш надо ( а алгоритм он не знает, по крайней мере не должен знать)
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058350
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость_20121129,

Хеширование паролей необходимо, чтобы пароли не хранились в базе в открытом виде.
В случае компрометации БД реальное значение паролей уплывет на сторону.
Если уплывут хеши, то для получения реальных паролей эти хеши нужно еще взломать.

для укрепления защиты хеша нужно выбирать более стойкий к взлому алгоритм (SHA2 в место SHA1 или MD5)
и дабовлять к паролю так называемую соль "salt" http://en.wikipedia.org/wiki/Salt_(cryptography)

Если хеш пароля передается по сети (как в вашем случае), то хеш нужно передавать по защищонному каналу SSL(HTTPS)
или отдельно шифровать саму отправку. Уход хеша в чужие руки, хоть он и не дает прямой возможности узнать реальный пароль, тоже плохо.
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058352
Гость_20121129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VSVLAD, спасибо.
Во-первых, возможно случайно вы сами себе противоречите:
"который сравнивает полученный хеш с хешем у себя (!!!!) сохранённым (!!!!)" и "1) Пароль на сервере не хранится"

Во-вторых, что мешает злоумышленнику, перехватить этот самый хеш, который пользователь отправляет серверу и использовать его в дальнейшем?
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058354
Гость_20121129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VSVLAD, прошу прощения, ошибся про противоречие, все верно Вы написали.
Остальное все равно остается.
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058365
Гость_20121129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
рубист, спасибо.
Верно, конечно же используется защищенное соединение. В моем случае реализовано на базе AES.
Однако вопрос остается. Зачем же это хэширование нужно?
Многие хранят этот хэш в файле, как настройки, а потом входят в систему без пароля, но ведь это одно и то же, что и просто хранить пароль в файле. Разницы по сути нет. И то и другое - очень плохо.
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058369
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLAD1) Пароль на сервере не хранится и не передаётся по сетину это где как.
на веб-страницах, например, при авторизации зачастую просто сабмиттится форма, и пароль уходит "как есть"
Гость_20121129Яростный Меч, спасибо. Обоснуйте, пожалуйста.я думал, это очевидно. для замены пароля нужно ввести старый пароль, но его невозможно получить из хеша.
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058383
Гость_20121129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яростный Меч, то есть старый пароль отправляется в открытом виде?
Если да, то это дыра, а если нет, то опять же имеем дело с ненужностью хэша.
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058438
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость_20121129рубист, спасибо.
.......
Однако вопрос остается. Зачем же это хэширование нужно?
Многие хранят этот хэш в файле, как настройки, а потом входят в систему без пароля, но ведь это одно и то же, что и просто хранить пароль в файле. Разницы по сути нет. И то и другое - очень плохо.

Я же написал

авторХеширование паролей необходимо, чтобы пароли не хранились в базе в открытом виде.
В случае компрометации БД реальное значение паролей уплывет на сторону.
Если уплывут хеши, то для получения реальных паролей эти хеши нужно еще взломать.

Наличие у злоумышленника хеша не даст ему в руки реальный пароль.
А ввод хеша как пароля ему не поможет, так как сервер тогда будет проверять хеш от хеша и войти он не сможет.
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058452
Гость_20121129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
рубист, таким образом, получается, что использование хэш ограничивается тем, что в базе данных не хранится пароль, но при этом сам пароль должен быть отправлен в открытом виде и при этом хранится где-то в настройках пользователя он не может.
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058461
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость_20121129Яростный Меч, то есть старый пароль отправляется в открытом виде?
Если да, то это дыра, а если нет, то опять же имеем дело с ненужностью хэша.проблемы передачи данных решаются в SSL(HTTPS). Тут в любом случае можно что-то перехватить, это отдельная тема.

а ведь есть ещё и хранение авторизации на компе юзера, например, в куках. Вот тут однозначно лучше хэш.
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058467
Гость_20121129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яростный Меч, ок, в целом, понятно, что и зачем.
Спасибо большое всем откликнувшимся!
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058494
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость_20121129рубист, таким образом, получается, что использование хэш ограничивается тем, что в базе данных не хранится пароль, но при этом сам пароль должен быть отправлен в открытом виде и при этом хранится где-то в настройках пользователя он не может.

Если говорить о Web и отправки из броузера формы логина с паролем по HTTP то да, пароль будет отправлен в открытом виде.
Именно по этому порядочные сайты для работы в место HTTP используют HTTPS т.е. SSL шифрованный HTTP протокол.

В настройках пользователя можно тоже хронить хеш (так же как и в БД), просто проверять пароль тагда надо по данным конфиг файла.
В Unix операционке хеши паролей системных пользователей так и хранятся - в текстовом файле,
который естественно доступен для чтения только администратору.
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058516
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
рубистГость_20121129,

Хеширование паролей необходимо, чтобы пароли не хранились в базе в открытом виде.
В случае компрометации БД реальное значение паролей уплывет на сторону.
Если уплывут хеши, то для получения реальных паролей эти хеши нужно еще взломать.

для укрепления защиты хеша нужно выбирать более стойкий к взлому алгоритм (SHA2 в место SHA1 или MD5)
и дабовлять к паролю так называемую соль "salt" http://en.wikipedia.org/wiki/Salt_(cryptography)

Если хеш пароля передается по сети (как в вашем случае), то хеш нужно передавать по защищонному каналу SSL(HTTPS)
или отдельно шифровать саму отправку. Уход хеша в чужие руки, хоть он и не дает прямой возможности узнать реальный пароль, тоже плохо.Не передавайте по сети "хэш пароля" - передавайте по сети хэш от "хэш пароля" плюс "соль", полученную с сервера перед авторизацией.
Даже перехваченый взломщиками такой "одноразовый хэш" никакой практической пользы не принесет и вполне безопасен при применении на открытых каналах общего пользования.
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058557
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mv,

Соль тоже сначало надо передать, безопасно клиенту. Самый безопасный способ это с ассиметричными ключами. В контексте веба - HTTPS (SSL). В настольных приложениях - есть куча имплементов RSA под различные платформы.
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058752
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLADsphinx_mv,

Соль тоже сначало надо передать, безопасно клиенту. Вас же не смущает, что при "рукопожатии" SSL использует совершенно незащищенные каналы: это ни много, ни мало, но процесс согласования сеансового ключа шифрования - и проблем с безопасностью не особо наблюдается.
VSVLADСамый безопасный способ это с ассиметричными ключами. В контексте веба - HTTPS (SSL).Не для всяких систем целесообразно (и даже возможно) использовать SSL...
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058811
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного оффтоп, но довольно увлекательная статья про криптографию.
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058872
Seegile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость_20121129в базе данных не хранится пароль, но при этом сам пароль должен быть отправлен в открытом виде и при этом хранится где-то в настройках пользователя он не может.
В БД пароль хранится, но видоизменённый и не подлежит расшифровке.
Пароль не обязательно должен быть отправлен в открытом виде.

рубистЕсли говорить о Web и отправки из броузера формы логина с паролем по HTTP то да, пароль будет отправлен в открытом виде.

Именно по этому порядочные сайты для работы в место HTTP используют HTTPS т.е. SSL шифрованный HTTP протокол.
Данные можно хешировать до отправки запроса! А HTTPS - прожорливое.

sphinx_mvДаже перехваченый взломщиками такой "одноразовый хэш" никакой практической пользы не принесет и вполне безопасен при применении на открытых каналах общего пользования.
А про сессию забыли?
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058930
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvVSVLADsphinx_mv,
Соль тоже сначало надо передать, безопасно клиенту. Вас же не смущает, что при "рукопожатии" SSL использует совершенно незащищенные каналы: это ни много, ни мало, но процесс согласования сеансового ключа шифрования - и проблем с безопасностью не особо наблюдается.

Да, но SSL использует алгоритмы с открытым ключем и по незащещенной сети передается открытый ключь,
а секретный никогда и некуда не передается.
Здесь возникает вопрос, а как проверить достоверность открытого ключа на принимающей стороне?
А очень просто. Ключь передается не сам по себе, а в документе называемом "сертификатом", где кроме самого
ключа есть данные о том как его проверить.

Почитайте на эту тему о PKI (Public Key Infrostracture), цифровых сертификатах и шифрование с открытым ключем.

Так что в SSL передача ключа по открытой сети безопасна, если конечно руки от куда надо :-)
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38058934
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость_20121129Яростный Меч, то есть старый пароль отправляется в открытом виде?
Если да, то это дыра, а если нет, то опять же имеем дело с ненужностью хэша.

Если "да", то это -- дыра, но это не проблема БД, в которой пароли хранятся в виде хэшей, т.е. как положено,
а проблема кого-то ещё.

Начитался про hash-функции и их применение в хранении паролей. Допустим, пользователь при входе в систему сохраняет хэш его пароля в ини-файле. Далее этот хэш отправляется на проверку серверу, где этот хэш и привязан к логину.
Не понимаю только как это помогает НЕ предоставить доступ, если например пароль или его хэш перехватили на пути к серверу приложений?


Нет, не так. Пароль отправляется серверу в виде пароля. Возможно, зашифрованного например открытым ключём (это когда зашифровать ключём можно, а расшифровать-- нет). Пароль на серверной стороне шифруется и получается хэш.
По хэшу нельзя получить исходный пароль (ну или достаточно сложно), но можно проверить, применив ещё раз алгоритм ширфования, что исходный пароль соответствует данному хэшу.

В итоге если БД взломана и пользователь получает хэш, он не знает пароль исходный.
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38059044
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
рубистsphinx_mvпропущено...
Вас же не смущает, что при "рукопожатии" SSL использует совершенно незащищенные каналы: это ни много, ни мало, но процесс согласования сеансового ключа шифрования - и проблем с безопасностью не особо наблюдается.

Да, но SSL использует алгоритмы с открытым ключем и по незащещенной сети передается открытый ключь,
а секретный никогда и некуда не передается.
Здесь возникает вопрос, а как проверить достоверность открытого ключа на принимающей стороне?
А очень просто. Ключь передается не сам по себе, а в документе называемом "сертификатом", где кроме самого
ключа есть данные о том как его проверить.

Почитайте на эту тему о PKI (Public Key Infrostracture), цифровых сертификатах и шифрование с открытым ключем.

Так что в SSL передача ключа по открытой сети безопасна, если конечно руки от куда надо :-)
Извините, но не так давно - всего лишь год назад был весьма неслабый скандал, касающийся проблем с безопасностью непосредственно в протоколах SSL и иже с ним... 30 минут на взлом любого из нескольких миллионов сайтов, использующих SSL с длиной ключа до 2К символов - это, ну, ОЧЕНЬ безопасно... ага...
Тут еще: меньше 2-х минут на взлом PayPal - тоже не слабО...

А если еще вспомнить о шухере ( тут или тут ), связаном со взломом сертифицирующего центра, приведшем к компрометации сертификатов безопасности - жить становится еще "интереснее"...

Не настолько ЭТО безопасно, как представляется: ошибки в ПО, ошибки в организационных процедурах третьих лиц (и тем более - CA) - и ни о какой безопасной передаче данных разговор можно даже не поднимать... То есть - вообще... Ну, разве что сугубо для собственного успокоения или успокоения непосредственного начальника...

Отрубаем все кабеля, сбрасываем сервер в предварительно вырытый экскаватором котлован, заливаем все бетоном...
Но даже это не гарантирует защиту от взлома...
...
Рейтинг: 0 / 0
Зачем нужно хэширование паролей?
    #38059123
рубист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mv
Извините, но не так давно - всего лишь год назад был весьма неслабый скандал, касающийся проблем с безопасностью непосредственно в протоколах SSL и иже с ним... 30 минут на взлом любого из нескольких миллионов сайтов, использующих SSL с длиной ключа до 2К символов - это, ну, ОЧЕНЬ безопасно... ага...
Тут еще: меньше 2-х минут на взлом PayPal - тоже не слабО...

А если еще вспомнить о шухере ( тут или тут ), связаном со взломом сертифицирующего центра, приведшем к компрометации сертификатов безопасности - жить становится еще "интереснее"...

Не настолько ЭТО безопасно, как представляется: ошибки в ПО, ошибки в организационных процедурах третьих лиц (и тем более - CA) - и ни о какой безопасной передаче данных разговор можно даже не поднимать... То есть - вообще... Ну, разве что сугубо для собственного успокоения или успокоения непосредственного начальника...

Отрубаем все кабеля, сбрасываем сервер в предварительно вырытый экскаватором котлован, заливаем все бетоном...
Но даже это не гарантирует защиту от взлома...

Ох, не наступайте на мазоль :-)
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Зачем нужно хэширование паролей?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]