хранение паролей в текстовом файле

ayrat9

Новичок
хранение паролей в текстовом файле

Сейчас реализуется доступ к части контента сайта через логин/пароль. Выбрал вариант, при котором пароль будет храниться в базе в зашифрованном виде(черех md5()). При такой схеме восстанавление забытого пользователем пароля довольно проблематично реализовать.

Если в момент регистрации пользователя в какой-нибудь текстовый файл (хранимый за пределами корня сайта, или в закрытой админской папке) класть строку:
-------------------------------------------
пароль~~зашифрованный пароль
-------------------------------------------
то является ли такой способ восстановления пароля безопасным (в плане его перехвата посторонними людьми) решением?
 

rotoZOOM

ACM maniac
При такой схеме восстанавление забытого пользователем пароля довольно проблематично реализовать.
но все таки возможно ? :)))))))))

ayrat9 есть лучше решение. Пароль не восстанавливать, а генерировать новый и высылать его пользователю на e-mail. Так же желательна возможность смены пароля пользователем и проблема будет решена.
 

HEm

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

ayrat9

Новичок
Автор оригинала: HEm
Самая лучшая схема, rotoZOOM. (
Чья схема? rotoZOOM'a?

Ну так что? Никто мне не расскажет про недостатки такого способа восстановления старого пароля?
 

rotoZOOM

ACM maniac
HEm это минус не только этой схемы, так же и с восстановлением пароля. Особенно по вопросам, которые пользователи наверняка забыли ..нцать месяцев назад.

ayrat9 Ну во-первых, необходимо будет реализовать блокировку одновременного доступа к файлу по записи. Во-вторых, все равно придется писать алгоритмы поиска по файлу, обновлению информации и т.д.
В-третьих, зачем это нужно ? Файлы БД тоже наверняка лежат за пределами корня сайта :)) и она (БД) с этой задачей справится лучше чем ты.
 

ayrat9

Новичок
Автор оригинала: rotoZOOM
HEm это минус не только этой схемы, так же и с восстановлением пароля. Особенно по вопросам, которые пользователи наверняка забыли ..нцать месяцев назад.

ayrat9 Ну во-первых, необходимо будет реализовать блокировку одновременного доступа к файлу по записи. Во-вторых, все равно придется писать алгоритмы поиска по файлу, обновлению информации и т.д.
В-третьих, зачем это нужно ? Файлы БД тоже наверняка лежат за пределами корня сайта :)) и она (БД) с этой задачей справится лучше чем ты.
первое и второе для меня не проблема - совершенно точно
а насчет третьего: почему же тогда пароли хранят в БД в зашифрованном виде?
 

rotoZOOM

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

ayrat9

Новичок
то есть, если я тебя правильно понял, злоумышленник, вскрывший MySQL сервер, однозначно вскроет и любую мою папку/файл на этом сервере (при условии, что mysql -> localhost)? И хранить незашифррованные пароли где бы то ни было на сервере совершенно бесполезное и опасное занятие?
 

StUV

Rotaredom
если я тебя правильно понял, злоумышленник, вскрывший MySQL сервер, однозначно вскроет и любую мою папку/файл на этом сервере (при условии, что mysql -> localhost)?
неправильно
речь идет о том, что вероятность взлома твоей базы ~ вероятности взлома доступа к твоему файлу
 

ayrat9

Новичок
а как же тогда реализуются системы восстановления пароля (не генерация нового, ни его смена) в современных СMS?
 

Alexandre

PHPПенсионер
на сколько я понял,
если взлоумышленник взломает сервак, то ему одинаково просто иметь доступ как к файлу с паролями, так и к БД, где пароли хранятся.

Опять же возвращаясь к пережеванному топику (http://phpclub.ru/talk/showthread.php?s=&threadid=60402&highlight=md5), что хранение пароля по MD5, не является 100% надежной вещью

Например, имея доступ к БД, взяв и заменив хеш, на свой, ты можешь регится под чужим именем.

что касается, возвращение забытого пароля, то при зашифрованном по MD5, пароль не возвращается пользователю, а генерится новый, т.к. MD5 - это одностороннее шифрование.
а как же тогда реализуются системы восстановления пароля
никак,
генерация нового или востановление из БД (который либо не шифруется, либо шифруется симметричным алгоритмом)

в твоем случае предпалогается, что ключ должен храниться где-то на севере, следовательно злоумышленнику одинаково что легко взять ключь и расшифровать, что взять просто из БД

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

-~{}~ 11.03.05 17:59:

возвращаясь к нашим слонам:
то является ли такой способ восстановления пароля безопасным (в плане его перехвата посторонними людьми) решением
вероятность достать такой файл одинакова вероятности залезть в БД и взять от туда просто незашифрованные пароли.
или доступ к таблице: password ~~ hash
 

ayrat9

Новичок
вообще-то я задумывал хранить в БД только сочетания (в упрощенном виде):
-----------------------------------------
логин | зашифрованный пароль
-----------------------------------------

а в закрытом текстовом файле строку
----------------------------------------
пароль | зашифрованный пароль
----------------------------------------

использоваться он (т.файл) должен был только админом для восстановления забытого пароля по запросу пользователя

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