Главная страница


ru.nethack

 
 - RU.NETHACK -------------------------------------------------------------------
 From : Eugene Grosbein                      2:5006/1       07 Jan 2003  16:37:55
 To : 3APA3A
 Subject : Re: Remote Administrator server
 -------------------------------------------------------------------------------- 
 
 
  3> Давай ты напишешь алгоритм генерации паролей с использованием rand(),
  3> сгенерируешь им пароль на 15 символов, например в FreeBSD, а потом пришлешь
  3> мне результаты (crypt()'ованый пароль в DES или MD5). Я постараюсь взломать
  3> его с помощью словарной атаки не более чем за несколько часов :) (простой
  3> хэш ломается вообще за час, но MD5-crypt, например, специально сделан очень
  3> медлительным, даже короткий перебор займет много времени).
 
 Hу зачем же сразу rand()? Давай так:
 
 static char const chars[] =
 "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.";
 
   int             i, l;
   char            pwbuf[32];
   u_char   rndbuf[sizeof pwbuf];
 
    /* Random password */
    l = (arc4random() % 8 + 8); /* 8 - 16 chars */
    pw_getrand(rndbuf, l);
    for (i = 0; i < l; i++)
       pwbuf[i] = chars[rndbuf[i] % (sizeof(chars)-1)];
    pwbuf[i] = '\0';
 
 Вот несколько шифрованных сгенерированных паролей:
 
 $1$5Q$lQMVpS5el.FjYbgaumJPO0
 $1$wK$gIy72viM2/6Oi7a1VFfj31
 $1$ak$6MNUe5W9Y1PyfaiV0N9TV/
 $1$N4$QA2MtVy9nnqDPRYIkmtdA0
 $1$5R$fkkGbEX58m0BaVSUo.ixI1
 $1$SQ$SLMVpgnvR9XHoPJR8feFZ1
 $1$K6$ScyE4r1Hz1x8AdE8.5u34/
 $1$CV$ejUczj1bHIHpH7MnC0gBT1
 $1$mr$.o//VS6jBpv2cjJr4d8AX1
 $1$Ec$uvWtaYdHeu6e8PvGZVsd/1
 $1$hh$QZaBYhDqAPWTw4hYZe8h2/
 $1$fk$JMmkYUMkHmS/eOcSd3eau.
 $1$pO$lMmm5b2Mal2zTBzSv2Qpf0
 $1$3T$T2z72fHt/w97WUN4ivvP71
 $1$V/$IX6gfyytw0zP9bevaK7b2/
 $1$nH$1ZKBKRNTP4p6LznImgUJ4.
 $1$Kc$Axy/fDnvLnQttWXNhAXw00
 $1$7U$rwxeTWfKW6Q82dWS75uVy/
 
  AA>>> Пpи этом, если srand() инициализиpyется стандаpтной паpой time/pid
  AA>>> ни о какой кpиптостойкости pечи вообще не идет. Пpавда надо yгадать
  AA>>> алгоpитм).
 
 Шифровались так:
 
 #!/usr/bin/perl -w
 
 use strict;
 srand;
 while(<>) {
     chomp;
     my $str64 =
 './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
     my $salt = substr($str64,int(rand(64)),1) . substr($str64,int(rand(64)),1);
     print crypt($_, $salt), "\n";
 }
 
  AM>> Гм... и как тогда создавать кpиптостойкие паpоли?
 
  3> А это одна из проблем криптографии. При генерации ключей, например, обычно
  3> просят пользователя ввести случайную фразу и измеряют какие-нибудь
  3> слабокореллирующие величины, например промежутки между нажатиями клавиш. Или
  3> используется специальный демон (egd) собирающий всякую "шумную" информацию
  3> либо используется аппаратный ГСЧ на шумовых диодах. Hо даже для таких
  3> генераторов есть методы статистического анализа, так что реальная
  3> криптостойкость подобного пароля или ключа все равно будет несоклько меньше
  3> его длины.
 
 У меня такие "аппаратные" шумы:
 
 #!/bin/sh
 
 case "$1" in
   start)
   echo -n " rndcontrol"
   rndcontrol -q -s 1 -s 4 -s 5 -s 6 -s 7 -s 9 -s 14 -s 15
   ;;
   stop)
   ;;
   *)
     echo ""
     echo "Usage: `basename $0` { start | stop }"
     echo ""
     exit 1
     ;;
 esac
 
 # vmstat -i
 interrupt                   total       rate
 fxp0 irq9               101111471         38
 ata0 irq14               13857572          5
 ata1 irq15                8276815          3
 fdc0 irq6                       2          0
 atkbd0 irq1               1395588          0
 sio0 irq4                 6884167          2
 ppc0 irq7                     122          0
 clk irq0                259861668         99
 rtc irq8                332651656        128
 Total                   724039061        278
 
 Поломаешь? :-)
 
 Eugene
 -- 
 "Люди забыли эту истину," - сказал Лис, - "но ты не забывай"
 --- slrn/0.9.7.4 (FreeBSD)
  * Origin: Svyaz Service JSC (2:5006/1@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Remote Administrator server   Eugene Grosbein   07 Jan 2003 16:37:55 
Архивное /ru.nethack/260938d447271.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional