| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > безопасность паролей? |
| Автор: gcc 6.7.2008, 01:16 |
| какой лучший метод зашифрование паролей? я нашел хэширование но в гугле нашел, что его можно перебрать как-то... ну и еще нашел в cpan что можно безопастно захэшировать методом добавление символов к самому хэшу и еще используя кодировку utf8-16 к хэшу или к паролю поможет в данном случае использовать зашифрованное соединение https ? но если получиться вынуть этот хэш из бд, то как сделать чтобы не узнали пароль, возможно каким-то сертификатом? и еще как сделать чтобы можно было восстановить пароль, если пользоватль забудет его, отправить его на анонимный email можно, метод хэш тут не получиться? можно сделать "секретный вопрос", но ответ на него можно забыть, тоже или вынуть из таблицы скажите кто какой метод использует? хэш md5 лучше всего или нет? |
| Автор: Nab 6.7.2008, 02:12 |
| Столько вопросов, и все об одном и том же.... Немножко правил хорошего тона, при работе с паролями. 1. Никогда не хранить паролей пользователей. НИКОГДА. 2. Хранить нужно хеш, чем длиннее, ем лучше. Стандартный crypt подойдет запросто, MD5 или SHA1 не столь важно. 3. Если чел забыл пароль, генерировать новый и отправлять на мыло. В базе временно сохранить новый пароль и ждать подтверждения от клиента. 4 В идеале даже не генерировать пароль и не отсылать на мыло. А на мыло отсылать временный урл, сложный и длинный. Пройдя по которому чел сам сможет изменить себе пароль. При этом ему еще и капчу желательно показать. 5. Не хранить пароли или хеши в куках. Использовать механизм сессий. 6. HTTPS хорошо и правильно. Рекомендуеться к использованию. Добавлено через 3 минуты и 50 секунд Ну про правила самих паролей я ниче не сказал. Пароль из хеша можно получить в обозримом времени или случайно, или по словарю. Методом тупого перебора не так просто. Так что нужно или самомуу генерировать неудобочитаемые пароли. Или заставлять пользователей генерировать их с соблюдением разных правил и условий, на длину, на набор символов, и т.д. |
| Автор: gcc 6.7.2008, 02:59 |
| спасибо за ответ! в гугле достаточно написать "расшифровка md5" писали что рашифровывает на мощных машинах от 12 часов до недели, тогда лучше в открытом виде держать MD5 inside - для расшифровки, На AMD AthlonXP 1700+ (1466 МГц) скорость перебора - ~3,6 миллиона паролей/cек.. http://forum.vingrad.ru/forum/topic-107432/anchor-entry819794/0.html http://forum.xakep.ru/m_1024319/tm.htm http://passcracking.ru/index.php а можно зашифровать сертификатом ssl или другим... защитить его веб сервером и системой (запретить просмотр/копирование скрипта в котором этот сертифкат буде и потсавить раздел в read only) или "забить" и использовать md5 128bit ? |
| Автор: tolkien 6.7.2008, 06:06 |
| 1. ненадо использовать чистое MD5. Лучше сделать связку симметричный алгоритм + MD5. Или еще лучше симметричный алгоритм + сжатие + MD5. Еще лучше симметричный алгоритм + сжатие + MD5 + cжатие + МD5 + симметричный алгоритм + MD5. )) никто никогда не расшифрует. 2. Перебрать пароли легко на дексторпе. Но их еще надо проверять. А вот твой дестоп может за 1 сек выполнить 3 мииллионов запросов к серваку? |
| Автор: Nab 6.7.2008, 15:28 | ||
16 символов это стандартный хеш, пароль может быть от 1 до бесконечности символов. Его MD5 хеш всегда будет 16 символов. В том то и прикол. А насчет пароля то да. Ведь проверяеться то хеш а не пароль. Поэтому если хеш случайным образом совпал на совсем другом пароле, то он и сработает Тут может обезопасить и многократно усложнить задачу двойное хеширование одного и тогоже пароля. Тогда вероятность совпадения результирующего хеша для двух разных пароолей будет числом с таким количеством нулей, что огого |
| Автор: KSURi 6.7.2008, 18:40 |
| Raw хэш будет 16 байт длиной, однако чаще всего используется его hex представление, которое всегда равно 32 байтам ([a-f0-9]) по длине (потому что в raw виде там могут присутствовать непечатные символы). Однако то, что хэш всегда будет 16 или 32 байта не значит, что сложность пароля от этого уменьшится. |
| Автор: gcc 8.7.2008, 00:44 | ||
достаточно написать такой запрос чтобы, не было инъекции?? было написано где-то в статье что достаточно! + https и тогда пароли не узнать? дело в том что многие програмыы пароли зашифровывают по разному... potfix, proftp... а могут mysql ломануть? чтобы в таблицу зайти? а может поставить в xen или jail? еще хотел посмотреть в сторону openldap, но времени много займет есть веб интрфейс который записывает в таблицу данные из формы, формирует все в ней, дальше запускаеться скрипт каждые 30 мин, который смотрит изменния или новые аккануты и заносит данные в программы... нужен пароль не зашифрованый, чтобы его потом зашифровать, тот я придумал записывать в другую таблицу потом удалять еще хотел спросить, никто не видел статью, как безопсано элетронные деньги передвать и хранить? |
| Автор: Nab 8.7.2008, 03:03 |
| Мде, такая каша в голове.... :( Вам же предложили рабочие варианты, а вы снова на своей волне... Или чукча не читатель, чукча писатель? Вы бы постарались нормально сформулировать свою мысль, и изложить ее доходчиво. Авось ктото и ткнул бы носом конкретнее. А то бардак в голове и в словах :( |
| Автор: gcc 8.7.2008, 03:33 | ||||||||||||||
| сори, но если узнают хэш или пароль, то значит что не правильный код или не правильно настронно программное обеспечение! а вот этого достаточно чтобы не было инъекции + https?
я могу разшифровать свой пароль!! хотя я поставил больше сиволов, ну я так понял что он теперь за год расшифрует? или я что-то не понял?
зашифровывал так:
я не правильно зашифровывал? вот еще варинты шифрование
а что такое Raw хэш ? |
| Автор: biophreak 8.7.2008, 09:25 |
| Raw-хеш - это хеш строки, в "сыром" виде, т.е., как сказал KSURi - содержит еще и непечатаемые символы, а то что привыкли видеть мы - это тот же хеш, только в 16-ричном виде |