Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> безопасность паролей? 
:(
    Опции темы
gcc
Дата 6.7.2008, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



какой лучший метод зашифрование паролей?
я нашел хэширование
но в гугле нашел, что его можно перебрать как-то...  smile 

ну и еще нашел в cpan что можно безопастно захэшировать методом добавление символов к самому хэшу и еще используя кодировку utf8-16  к хэшу  или к паролю smile 

поможет в данном случае использовать зашифрованное соединение  https ?

но если получиться вынуть этот хэш из бд, то как сделать чтобы не узнали пароль, 
возможно каким-то сертификатом?  smile 

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


скажите кто какой метод использует? хэш md5 лучше всего или нет?  smile  smile 



Это сообщение отредактировал(а) gcc - 6.7.2008, 01:20
PM WWW ICQ Skype GTalk Jabber   Вверх
Nab
Дата 6.7.2008, 02:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Столько вопросов, и все об одном и том же....

Немножко правил хорошего тона, при работе с паролями.

1. Никогда не хранить паролей пользователей. НИКОГДА.
2. Хранить нужно хеш, чем длиннее, ем лучше. Стандартный crypt подойдет запросто, MD5 или SHA1 не столь важно.
3. Если чел забыл пароль, генерировать новый и отправлять на мыло. В базе временно сохранить   новый пароль и ждать подтверждения от клиента.
4 В идеале даже не генерировать пароль и не отсылать на мыло.  А на мыло отсылать временный урл, сложный и длинный. Пройдя по которому чел сам сможет изменить себе пароль. При этом ему еще и капчу желательно показать.
5. Не хранить пароли или хеши в куках. Использовать механизм сессий.
6. HTTPS хорошо и правильно. Рекомендуеться к использованию.

Добавлено через 3 минуты и 50 секунд
Ну про правила самих паролей я ниче не сказал. Пароль из хеша можно получить в обозримом времени или случайно, или по словарю. Методом тупого перебора не так просто. 
Так что нужно или самомуу генерировать неудобочитаемые пароли. Или заставлять пользователей генерировать их с соблюдением разных правил и условий, на длину, на набор символов, и т.д.


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
gcc
Дата 6.7.2008, 02:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



спасибо за ответ! 

в гугле достаточно написать "расшифровка md5"
писали что рашифровывает на мощных машинах  от 12 часов до недели, тогда лучше в открытом виде держать  smile 

MD5 inside - для расшифровки, На AMD AthlonXP 1700+ (1466 МГц) скорость перебора - ~3,6 миллиона паролей/cек.. 
http://forum.vingrad.ru/forum/topic-107432...ry819794/0.html
http://forum.xakep.ru/m_1024319/tm.htm
http://passcracking.ru/index.php

а можно зашифровать сертификатом ssl или другим... защитить его веб сервером и системой (запретить просмотр/копирование скрипта в котором этот сертифкат буде и потсавить раздел в read only)

или "забить" и использовать md5 128bit ?

Это сообщение отредактировал(а) gcc - 6.7.2008, 03:09
PM WWW ICQ Skype GTalk Jabber   Вверх
tolkien
Дата 6.7.2008, 06:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 5.4.2008

Репутация: 4
Всего: 4



1. ненадо использовать чистое MD5. Лучше сделать связку симметричный алгоритм + MD5. Или еще лучше симметричный алгоритм + сжатие + MD5. Еще лучше симметричный алгоритм + сжатие + MD5 + cжатие + МD5 + симметричный алгоритм + MD5. )) никто никогда не расшифрует.

2. Перебрать пароли легко на дексторпе. Но их еще надо проверять. А вот твой дестоп может за 1 сек выполнить 3 мииллионов запросов к серваку? 
PM MAIL   Вверх
KSURi
Дата 6.7.2008, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Ну если есть гарантия, что пароли не являются слабыми (например они выставляются скриптом, а не пользователем), то чистого md5 в принципе хватит имхо. На перебор пароля из 16 символов (буквы разного регистра и спецсимволы) могут уйти годы.

Ну и не стоит забывать про всякие вариации типа
Код

md5_hex(md5_hex($input . $some_constant))


Добавлено через 5 минут и 14 секунд
Цитата(tolkien @  6.7.2008,  06:06 Найти цитируемый пост)
2. Перебрать пароли легко на дексторпе. Но их еще надо проверять. А вот твой дестоп может за 1 сек выполнить 3 мииллионов запросов к серваку?  

Эм... А это зачем? В смысле зачем делать запросы к серверу? Подбор пароля происходит таким образом:
программа берет слово из словаря (или составляет строку сама, если происходит атака перебором) и получает ее хэш, а полученный хэш сравнивается с данным. Так вот если хэши совпадут, то пароль успешно подобран.


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
Nab
Дата 6.7.2008, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Цитата(KSURi @  6.7.2008,  12:17 Найти цитируемый пост)
Ну если есть гарантия, что пароли не являются слабыми (например они выставляются скриптом, а не пользователем), то чистого md5 в принципе хватит имхо. На перебор пароля из 16 символов (буквы разного регистра и спецсимволы) могут уйти годы.

16 символов это стандартный хеш,  пароль может быть от 1 до бесконечности символов. Его MD5 хеш всегда будет 16 символов. В том то и прикол.

А насчет пароля то да. Ведь проверяеться то хеш а не пароль. Поэтому если хеш случайным образом совпал на совсем другом пароле, то он и сработает smile И пофиг что пароли разные.

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


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
KSURi
Дата 6.7.2008, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Raw хэш будет 16 байт длиной, однако чаще всего используется его hex представление, которое всегда равно 32 байтам ([a-f0-9]) по длине (потому что в raw виде там могут присутствовать непечатные символы). Однако то, что хэш всегда будет 16 или 32 байта не значит, что сложность пароля от этого уменьшится.

Это сообщение отредактировал(а) KSURi - 6.7.2008, 18:41


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
gcc
Дата 8.7.2008, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



Код
    $st->execute("$hh"); 


достаточно написать такой запрос чтобы, не было инъекции?? 
было написано где-то в статье что достаточно!

+ https и тогда пароли не узнать?

дело в том что многие програмыы пароли зашифровывают по разному... potfix, proftp... 

а могут mysql ломануть? чтобы в таблицу зайти? 


а может поставить в xen или jail?

еще хотел посмотреть в сторону openldap, но времени много займет

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


еще хотел спросить, никто не видел статью, как безопсано элетронные деньги передвать и хранить?  smile 

Это сообщение отредактировал(а) gcc - 8.7.2008, 01:13
PM WWW ICQ Skype GTalk Jabber   Вверх
Nab
Дата 8.7.2008, 03:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Мде, такая каша в голове.... :(

Вам же предложили рабочие варианты, а вы снова на своей волне... 

Или чукча не читатель, чукча писатель?

Вы бы постарались нормально сформулировать свою мысль, и изложить ее доходчиво. Авось ктото и ткнул бы носом конкретнее. А то бардак в голове и в словах :(


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
gcc
Дата 8.7.2008, 03:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



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

а вот этого достаточно чтобы не было инъекции + https?   smile 
Код

    $st->execute("$hh"); 



я могу разшифровать свой пароль!! хотя я поставил больше сиволов, ну я так понял что он теперь за год расшифрует? или я что-то не понял?

Код

#!/usr/local/bin/perl
                            
    use Digest::MD5::Reverse;
    print "Data is ".reverse_md5("7fa8282ad93047a4d6fe6111c93b308asdf")."\n"; #хэш я изменил, поставьте свой
    # Data is foo




зашифровывал так:
Код

    $user_vars{'pass'} = md5_hex($user_vars{'pass'});

я не правильно зашифровывал?


вот еще варинты шифрование


Код

 use PerlIO::via::MD5;

 PerlIO::via::MD5->method( 'hexdigest' ); # default, return 32 hex digits
 PerlIO::via::MD5->method( 'digest' );    # return 16-byte binary value
 PerlIO::via::MD5->method( 'b64digest' ); # return 22-byte base64 (MIME) value

 open( my $in,'<:via(MD5)','file' )
  or die "Can't open file for digesting: $!\n";
 my $digest = <$in>;


Код



 $method = PerlIO::via::MD5->method;  # obtain current setting
 PerlIO::via::MD5->method( $method ); # set new digest method




Код

  use Digest::MD5;
    javascript: void(0);
    $md5 = Digest::MD5->new;
    $md5->add('foo', 'bar');
    $md5->add('baz');
    $digest = $md5->hexdigest;
    
    print "Digest is $digest\n";


Код

Raw хэш будет 16 байт длиной, однако чаще всего используется его hex представление, которое всегда равно 32 байтам ([a-f0-9]) по длине (потому что в raw виде там могут присутствовать непечатные символы). Однако то, что хэш всегда будет 16 или 32 байта не значит, что сложность пароля от этого уменьшится.


а что такое Raw хэш  ?

Это сообщение отредактировал(а) gcc - 8.7.2008, 04:16
PM WWW ICQ Skype GTalk Jabber   Вверх
biophreak
Дата 8.7.2008, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 13.5.2007

Репутация: нет
Всего: нет



Raw-хеш - это хеш строки, в "сыром" виде, т.е., как сказал KSURi - содержит еще и непечатаемые символы, а то что привыкли видеть мы - это тот же хеш, только в 16-ричном виде smile
PM MAIL ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0628 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.