Pull to refresh

Оптимальная длина и состав пароля

Reading time 3 min
Views 23K

Введение.



На фоне многочисленных постов о паролях решил провести небольшое исследование.

В настоящее время парольная защита является самым распространённым и, к сожалению, самым ненадёжным методом защиты. Существует много статей на тему «Как составить стойкий пароль», но мне не встречались статьи, где приводятся реальные данные о надёжности паролей.

В исследовании проводится оценка надёжности паролей противостоять атакам грубой силы. Наиболее эффективный метод грубой силы при переборе паролей для хеш-функций является составление радужных таблиц.

Расчёты проводятся для трёх хеш-функций md5, sha1 и sha2 (модификация sha512). В расчёт не берутся данные о коллизиях в данных хеш-функциях, так как с практической точки зрения в реальном подборе пароля они не помогут, да и достойных реализаций в ПО на настоящий время в открытом доступе нет. В исследовании принимают участия пароли длиной 7, 8, 10 и 12 символов трёх различных алфавитов.

Для наглядности результатов приводятся данные о количестве паролей, объёме дискового пространства для хранения радужных таблиц и ориентировочном времени построения радужных таблиц.

Инструментарий.


  • Компьютер с процессором Pentium 4 2.6 GHz и оперативной памятью 512 МБ;
  • Утилита winrtgen, входящая в состав Cain&Abel;

Промежуточные расчёты.


Количество комбинаций паролей равно (количество символов в алфавите)^(количество символов в пароле)
В исследовании принимают участие 3 алфавита:
  • А1={abcdefghijklmnopqrstuvwxyz0123456789} 36 символов
  • А2={abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+="} 51 символ
  • А3={abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=} 77 символов
  • А4={0123456789} 10 символов

Результаты.


Для алфавита А1
Число символов Хеш алгоритм Дисковое пространство Время подсчёта
1 7 md5 2,98 ГБ 5 дней
2 8 md5 89,4 ГБ 159 дней
3 10 md5 113 249 ГБ 661,5 года
4 12 md5 178 754 329 ГБ 1,19851е+006 лет
5 7 sha1 2,98 ГБ 7 дней
6 8 sha1 89,4 ГБ 230 дней
7 10 sha1 113 249 ГБ 918 лет
8 12 sha1 178 754 329 ГБ 1,58632е+006 лет
9 7 sha512 2,98 ГБ 16 дней
10 8 sha512 89,4 ГБ 1,4 года
11 10 sha512 113 249 ГБ 1905 лет
12 12 sha512 178 754 329 ГБ 3,1438е+006


Для алфавита А2
Число символов Хеш алгоритм Дисковое пространство Время подсчёта
1 7 md5 232,5 ГБ 1 год
2 8 md5 17 881,4 ГБ 90,2 года
3 10 md5 77 486 038,2 ГБ 462539 лет
4 12 md5
5 7 sha1 232,5 ГБ 1,6 года
6 8 sha1 17 881,4 ГБ 129 лет
7 10 sha1 77 486 038,2 ГБ 638089 лет
8 12 sha1
9 7 sha512 232,5 ГБ 3,54 года
10 8 sha512 17 881,4 ГБ 286,5 года
11 10 sha512 77 486 038,2 ГБ 1,33807е+006 года
12 12 sha512

Для алфавита А3
Число символов Хеш алгоритм Дисковое пространство Время подсчёта
1 7 md5 596 ГБ 2,73 года
2 8 md5 41 723 ГБ 206 лет
3 10 md5 238 418 579 ГБ 1,38521е+006 лет
4 12 md5
5 7 sha1 596 ГБ 4 года
6 8 sha1 41 723 ГБ 301 год
7 10 sha1 238 418 579 ГБ 1,91805е+006 лет
8 12 sha1
9 7 sha512 596 ГБ 9 лет
10 8 sha512 41 723 ГБ 654 года
11 10 sha512 238 418 579 ГБ 3,95008е+006 лет
12 12 sha512

Для алфавита А4
Число символов Хеш алгоритм Дисковое пространство Время подсчёта
1 12 md5 59,6 ГБ 133 дня
2 15 md5 59 604,64 ГБ 426 лет
3 17 md5 5 960 464,47 ГБ 47 574 года
4 20 md5 1 665 497 181 ГБ 4,94612е+007 лет
5 12 sha1 59,6 ГБ 175 дней
6 15 sha1 59 604,64 ГБ 563 года
7 17 sha1 5 960 464,47 ГБ 60 505 лет
8 20 sha1 1 665 497 181 ГБ 6,2405е+007 лет
9 12 sha512 59,6 ГБ 359 дней
10 15 sha512 59 604,64 ГБ 1040 лет
11 17 sha512 5 960 464,47 ГБ 110 162 года
12 20 sha512 1 665 497 181 ГБ 1,12256е+008 лет

Прочерк там, где программа решила, что с неё хватит подсчётов.

Выводы.


Длину и состав паролей каждый должен выбрать для себе сам, от себя могу лишь сказать, лучше выбрать пароль до 12 символов и периодически его менять, нежели взять пароль 20 символов и чувствовать себя в полной безопасности.

P.S. Это мой первый пост на хабре, сильно не пинайте, пожалуйста.

UPD Добавлен алфавит А4 и статистика к нему.
Tags:
Hubs:
+61
Comments 121
Comments Comments 121

Articles