Хранение хеша паролей к БД

123 4
Коля Дубр
На сайте с 02.03.2005
Offline
153
3575

В продолжение дискуссии, начатой в конце ветки "О непорядочных людях". Было высказано предположение, что возможно хранить пароли подключения к серверу баз данных в зашифрованном виде. Поскольку про "непорядочных людей" вроде сказали все, что нужно, а вопрос про пароли действительно интересен - предлагаю продолжить обсуждение в этой ветке.

Разрабатываю общую шину (http://habrahabr.ru/company/floxim/blog/268467/) помаленьку. ...а еще у меня есть бложек (http://www.blogovo.ru/).
mymind
На сайте с 07.09.2004
Offline
188
#1

Для начала вообще надо определится зачем это нужно ? То, что хранят хэши пользователей давно не новость, но вот для подключения к БД ?

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

M
На сайте с 25.10.2003
Offline
100
#2
Коля Дубр:
а вопрос про пароли действительно интересен - предлагаю продолжить обсуждение в этой ветке.

Вопрос про пароли совершенно не интересен, да и при его затрагивании в той теме намешали в кучу кучу всего.

Вопрос использования паролей, это вопрос пары "клиент"-"сервер".

Так вот хранение паролей в виде хэшей на стороне "сервера", смеет свои плюсы и минусы. Это можно обсуждать и делать выводы.

Но хранить на стороне "клиента" пароли в виде хэша просто невозможно.

Потому что тот набор символов который у клиента хранится, и является "паролем". А как этот набор символов получен, это уже вопрос несущественный.

А php-скрипт подключающийся к mysql это как раз и есть "клиент". И посему то что хранится в переменной $пароль то и является паролем, ибо именно эту переменную серверу и предъявляют на сравнение.

motopila.ru (http://motopila.ru/) - цепные пилы, все цепные пилы и ничего кроме цепные пилы. Аминь!
Коля Дубр
На сайте с 02.03.2005
Offline
153
#3

Зачем нужно - дело второе =)

Там шла речь о том, что технически возможно хранить в коннект.пхп


$connect = mysql_pconnect('localhost', 'user', 'password');

вместо "password" некий хеш от "password". При этом с возможностью нормально подключиться.

Нужно, например, на случай, если вдруг неправильно настроили сервер и файл подключения (самая образцево-дурацкая ситуация - это .inc) отдался кому-то в плейнтексте. Если там незашифрованный пароль - наиблее предсказуемое развитие ситуации - находим phpMyadmin, лезем туда и грохаем все нафиг.

Вопрос, собсно, обращаю к тем личностям, которые говорили, что "хранение паролей в зашифрованном виде - это азы", в том числе паролей к БД. Интересует решение для самого обыкновенного никс-хостинга, с PHP, MySQL и более безникому.

Таггу x_x
На сайте с 31.10.2005
Offline
445
#4

Ну насколько мне известно, md5 выдает необратимый хэш. И что, писать под это брутфорсер чтоли? Или шифровать все возможные варианты, а потом сравнивать, или что?

☠️☠️☠️
M
На сайте с 25.10.2003
Offline
100
#5
Коля Дубр:
Зачем нужно - дело второе =)
Там шла речь о том, что технически возможно хранить в коннект.пхп

$connect = mysql_pconnect('localhost', 'user', 'password');

вместо "password" некий хеш от "password". При этом с возможностью нормально подключиться.

Невозможно. Потому что этот хэш и будет паролем, который сообщается серверу.

Хранение паролей тна стороне клиента и на стороне сервера имеют разныю специфику:

- клиент должен помнить пароль что бы его сообщить серверу

- сервер должен убедиться что пароль соответвует логину и ранее введённому паролю

Соответвенно клиент должен хранить именно пароль, или _обратимо_зашифрованый_пароль_ который он будет расшифровывать перед предъявлением серверу.

mymind
На сайте с 07.09.2004
Offline
188
#6

А что мешает злоумышленнику имея хэш, передать его серверу ? Ничего .... все таки и правда смысла нет в этом ...

Таггу x_x
На сайте с 31.10.2005
Offline
445
#7

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

Добавил:

Однако в таком случае ее (функцию) тоже надо зазендить. Ну короче чушь получается :)

dkameleon
На сайте с 09.12.2005
Offline
386
#8
Tarry:
Если кто и считает их, то вряд ли будет париться с расшифровкой никому неизвестного алгоритма

Это уже зависит от ценности данных ;)

Кроме того, в ситуации с щифрованием паролей к БД, приходится таскать с собой алгоритм дешифровки тех же паролей.

Мало что мешает злоумышленнику воспользоваться алгоритмом, который идёт в комплекте :)

Дизайн интерьера (http://balabukha.com/)
V
На сайте с 25.02.2003
Offline
176
#9
Tarry:
Я думаю в этом случае, проще написать свою функцию шифрования, и расшифровывать с помощю нее пароли. Если кто и считает их, то вряд ли будет париться с расшифровкой никому неизвестного алгоритма.
Добавил:
Однако в таком случае ее (функцию) тоже надо зазендить. Ну короче чушь получается :)

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

но если провайдер разрешит коннект к базе только с локального адреса, то это сразу сделает бесполезным знание паролей

разве что знаешь, где у этого провайдера лежит администратор БД

Работа в интернет, реальная оплата, не партнерка (http://www.vjazanie.ru/job.php)
M
На сайте с 25.10.2003
Offline
100
#10
vjazanie:
но если провайдер разрешит коннект к базе только с локального адреса, то это сразу сделает бесполезным знание паролей
разве что знаешь, где у этого провайдера лежит администратор БД

Давным давно.... во времена "трагедии .inc" было очень интересно применять пароли от базы к ftp/ssh

Иногда подходили :)

Опять же, есть мода выдавать клиенту индивидуальный хост к mysql, к которому можно подцепиться не только с узла хостинг-провайдера

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий