ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #21  
Старый 29.08.2007, 02:39
hidden
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме:
5887054

Репутация: 1292


По умолчанию

Была одна книжка по криптографии, правда я от туда всего пару статеек прочёл, ИМХО(чтение книг вредно сказывается на глазах, читать надо только то, что действительно информативно и поможет в будущем)

Цитата:
Сообщение от DWORD  
Хотя, ведь можно дальше шифровать трафик настоящим паролем, который теперь знает только клиент и сервер? Вообщем супер. А ты сам придумал?
Ага, как-то задумывался над способом авторизации, кстати, паролем ничего, ни в коем случае, нельзя шифровать, тем более html !!!, его можно будет вычислить статистически после первой же страницы
Имеется ввиду пакеты длиной больше длины пароля, можно рассматривать способ разбиения страницы на пакеты, перемешивания их и добавления в каждый предыдущий пакет, пароль к следующему. В этом случае о XOR-шифровании не может быть и речь, лучше обмен байта по коду символа пароля. Хотя тоже не очень надёжно и очень не экономично.
Если надо защищать не пароль а страницы, то уж лучше ssl использовать.

Последний раз редактировалось hidden; 29.08.2007 в 02:54..
 
Ответить с цитированием

  #22  
Старый 29.08.2007, 10:51
madnet
Умиротворенн
Регистрация: 09.12.2004
Сообщений: 996
Провел на форуме:
2386719

Репутация: 1384


Отправить сообщение для madnet с помощью ICQ
По умолчанию

Цитата:
Сообщение от hidden  
На самом деле madnet прав, пароль не должен передаваться на сайт в открытом виде, хотя предложенные способы авторизации тоже могут не прокатить
js - Злоумышленнику не нужен пароль, у него и так есть то, что просит у него сервер, это хэш
ssl - Может защитить только если злоумышленник начнёт снифать трафик, после того как браузер принял сертификат, иначе у него и браузера одинаковые шансы получить всю передаваемую информацию.

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

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

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

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

2)Что нам мешает перехватить результативный хэш, отправленый клиентом и находящийся в сессии у сервера и обратится с ним к серверу? Только ограничение по IP, но можно предположить, что имея доступ к трафику злоумышним может и подделать IP.
__________________

http://madnet.name - madnet - blog | homepage (Мысли, релизы, скрипты, софт)

http://antichat.ru - Лучший сайт по безопасности
irc.antichat.ru:7771 #antichat - общение online
ГАРАНТ ФОРУМА

Последний раз редактировалось madnet; 29.08.2007 в 10:56..
 
Ответить с цитированием

  #23  
Старый 29.08.2007, 12:18
hidden
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме:
5887054

Репутация: 1292


По умолчанию

Цитата:
Сообщение от madnet  
Да так будет погиморойнее.
Сам пароль будет скрыт от хакера, но впринципе при снифании ничего не мешает:

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

2)Что нам мешает перехватить результативный хэш, отправленый клиентом и находящийся в сессии у сервера и обратится с ним к серверу? Только ограничение по IP, но можно предположить, что имея доступ к трафику злоумышним может и подделать IP.
Мешает:
1) Время, это не 6ти и даже не 16ти-байтовую хэш брутить.
2) Этот способ защищает только от смены пароля и от повторной авторизации и обеспечивает сохранность пароля.

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

Кстати, насчёт шифрования данных паролем, только-что придумал; можно на зашифрованный паролем блок данных(тот что использовался при авторизации) наложить несколько заранее известных масок и вычислить от каждой из них хэши(также очень желательно, чтоб длины шэший зависели от самих данных, например усекать их по контрольной сумме данных, а-то снова статистика ), затем этими известными только клиенту и серверу хэшами шифровать получаемые и передаваемые данные.

ЗЫ Ладно, для маленького партальчика защита пойдёт

Последний раз редактировалось hidden; 29.08.2007 в 12:20..
 
Ответить с цитированием

  #24  
Старый 03.09.2007, 06:25
GHostly_FOX
Участник форума
Регистрация: 04.01.2007
Сообщений: 112
Провел на форуме:
179531

Репутация: 48
По умолчанию

я прочитал про технологию создания сертификатов SSL, там при создании сертификата можно использовать 3 рандомных текстовых файла сжатых gzip тут уж точно невозможно никак угадать какие именно данные были в этих файлах а значит нельзя подделать сертификат.

А если авторизация будет проходить как к примеру на хостинге агава: Доступ по SSL и авторизация на уровне HTTP-аутентификации.

Можно ли при такой авторизации злоумышленику получить коды доступа или авторизоватся?!
 
Ответить с цитированием

  #25  
Старый 03.09.2007, 08:20
GHostly_FOX
Участник форума
Регистрация: 04.01.2007
Сообщений: 112
Провел на форуме:
179531

Репутация: 48
По умолчанию

Вот последние мысли по данной теме:
При входе пользователя на страницу с формой авторизации создается сессия и рандомом генерируется код Captcha, в базу записываются данные Ip, Session_id, Captcha код, дата, время...
Пользователь вводить Логин и пароль нажимает вход.
Логин и пароль передаются обработчику уже в формате Md5.
Обработчик сравнивает данные, Логина, пароля, скрипта от которого был подан запрос и сравнивает Captcha код который он берет из базы по Session_id.
Если хоть один момент не верен то блок по Ip на минуту...

Какие будут замечания по данному предложению?!
 
Ответить с цитированием

  #26  
Старый 03.09.2007, 08:51
hidden
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме:
5887054

Репутация: 1292


По умолчанию

Цитата:
Сообщение от GHostly_FOX  
...
Какие будут замечания по данному предложению?!
А чего ты пытался добиться этим способом?
 
Ответить с цитированием

  #27  
Старый 03.09.2007, 12:32
GHostly_FOX
Участник форума
Регистрация: 04.01.2007
Сообщений: 112
Провел на форуме:
179531

Репутация: 48
По умолчанию

Я хочу предотвратить кражу хешей паролей и предотвратить любые возможности прослушивания портов...
 
Ответить с цитированием

  #28  
Старый 03.09.2007, 13:36
TANZWUT
Крёстный отец :)
Регистрация: 22.06.2005
Сообщений: 1,330
Провел на форуме:
5302668

Репутация: 2054


Отправить сообщение для TANZWUT с помощью ICQ
По умолчанию

сделай свою ф-ию алгоритма хеширования пароля, к примеру:

PHP код:
............
$pass=null;
        
$abc="abcdefghjkmnpqrstuvwxyz".
             
"ABCDEFGHJKLMNPQRSTUVWXYZ";

        
$arr=explode(chr(32),trim(chunk_split($abc,1,chr(32))));
        
$size=count($arr)-1;

            for(
$i=0;$i<$PasswordSize;$i++)
            
$pass.=$arr[rand(0,$size)]; // Создание пароля
            
            // Финкция "Шифровка пароля"
            
function encrypt($s$key)
{
    for(
$i=0;$i<=strlen($s);$i++)
    
$r.=substr(str_shuffle(md5($key)),($i strlen(md5($key))),1).$s[$i];
    for(
$i=1;$i<=strlen($r);$i++) $s[$i-1]=chr(ord($r[$i-1])+ord(substr(md5($key),($i strlen(md5($key)))-1,1)));
    return 
urlencode(base64_encode($s));

                
            
// --------------------------
                
            
$timed date("YmdHis"); // Время регистрации
            
$timef date("d.m.Y H:i:s"); // Время регистрации для письма
            
            //+++++++++++++++++
            
$key md5($timed); // КЛЮЧ Для Кодирования/Декодирования
                
            
$s $pass;
            
$encrypted encrypt($s$key); // Кодирование пароля с ключом
            
$passmd $encrypted;
            
//-----------------
                
            #$ucode = md5($_POST['email']); // Код для активации
                
            
$umail $_POST['email'];
            
$ulog $_POST['login']; 
........... 
PHP код:
................
// Функция Декодирования
function decrypt($s$key)
{
  
$s=base64_decode(urldecode($s));
  for(
$i=1;$i<=strlen($s);$i++) $s[$i-1]=chr(ord($s[$i-1])-ord(substr(md5($key),($i strlen(md5($key)))-1,1)));
  for(
$i=1;$i<=strlen($s)-2;$i=$i+2$r.=$s[$i];
  return 
$r;
}
    
    
$qe=mysql_query("SELECT pass,hash FROM users WHERE login='".$_POST['login']."' LIMIT 1");
    
$re=mysql_fetch_array($qe);
    
    if(
mysql_num_rows($qe)) {
    
        
$key $re["hash"]; // КЛЮЧ Для Кодирования/Декодирования
        
$encrypted $re["pass"];
        
        
$decrypted decrypt($encrypted$key); // Декодирование пароля с ключом
        
        
$pass $decrypted;
        
        
// ------- decode end ---------
        
        
if ($_POST['pass'] == $pass) {
.................. 
__________________
Лучший способ защиты - это нападение!!!

Последний раз редактировалось TANZWUT; 03.09.2007 в 13:42.. Причина: подправил пост
 
Ответить с цитированием

  #29  
Старый 04.09.2007, 11:33
GHostly_FOX
Участник форума
Регистрация: 04.01.2007
Сообщений: 112
Провел на форуме:
179531

Репутация: 48
По умолчанию

Помогите настроить SSL?!
Я уже с помощью Open_SSL и сертификаты создал...
Поставил WEB сервер (на ОС Windows) Apache + PHP + MySQL + mod_ssl

В Апаче прописал следующее:

httpd.conf:
Код:
LoadModule ssl_module modules/mod_ssl.so

<IfModule mod_ssl.c>
    Include conf/ssl.conf
</IfModule>
ssl.conf
Код:
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
<IfDefine SSL>
Listen 192.168.110.197:443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl
SSLSessionCache         dbm:logs/ssl_scache
SSLSessionCacheTimeout  300
SSLMutex default
<VirtualHost _default_:443>
DocumentRoot "c:/sweb/home/system/www/ssl"
ServerName system.ssl
ServerAdmin admin@mail.ru
ErrorLog logs/error_log_ssl.log
TransferLog logs/access_log_ssl.log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile conf/ssl.crt/server.crt
SSLCertificateKeyFile conf/ssl.key/server.key
<FilesMatch "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</FilesMatch>
<Directory "C:/sweb/home/system/www/ssl">
           SSLOptions +StdEnvVars
           AuthType Basic
           AuthName "By Invitation Only"
           AuthUserFile c:/sweb/usr/local/apache2/conf/passwd.txt
           Require valid-user
</Directory> 
SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>                                  
</IfDefine>
В чем проблемма?!
не идет загрузка =(
 
Ответить с цитированием

  #30  
Старый 04.09.2007, 13:05
bopoh13
Участник форума
Регистрация: 31.10.2006
Сообщений: 212
Провел на форуме:
1073612

Репутация: 50
По умолчанию

[off]Дельная была идея сделать wiki для а-чата, а то я себя после этих сообщений полным ламером чувствую. Будет на что ссылаться...

http://slovari.yandex.ru/dict/informatica/article/info/info-490.htm?text=hash
[/off]
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Способы авторизации в Windows или как проверить верность пароля для определ. юзера begin_end Авторские статьи 1 28.02.2007 08:54
Команда исследователей из США представила новую технологию авторизации пользователей. Mobile Мировые новости 0 11.03.2006 12:33



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ