26.11.2012

Анализ PIN-кодов(часть 2)

image

Многие люди в качестве PIN-кода используют год своего рождения (или юбилея). Запоминать подобные PIN-коды, конечно же, легче, но и их предсказуемость при этом тоже значительно повышается.

Автор: DataGenetics

Первая часть статьи

Знаменательные даты

Многие из высокочастотных PIN-кодов можно интерпретировать, как года, например, 1967, 1956, 1937… Похоже, что многие люди в качестве PIN-кода используют год своего рождения (или юбилея). Запоминать подобные PIN-коды, конечно же, легче, но и их предсказуемость при этом тоже значительно повышается.

Ниже изображен график, на котором желтым цветом помечены PIN-коды, которые имеют вид 19??:

Если бы все пароли были распределены равномерно, то мы бы не наблюдали никакой разницы между вероятностью, скажем, пароля 1972 и вероятностью любого другого пароля, оканчивающегося на 72 (??72). Но на самом деле все совсем иначе. Пароль 1972 занимает 76 место с вероятностью 0.099363%. Ниже на гистограмме изображена частота появления паролей ??72 относительно пароля 1972:

На графике сильно выделяется пик у 1972 (а также более слабые пики у 7272 и 1472).

Если мы посчитает отношение частоты появления пароля 1972 к средней частоте появления других паролей вида ??72, то получим 22:1.

PIN-коды, начинающиеся с 19??, встречаются гораздо чаще других PIN-кодов. И лидерство принадлежит не только паролю 1972. Ниже на графике изображено соотношение частотности паролей вида ”19??” к частотности паролей вида “не-19??” для всех 100 возможных комбинаций. На оси OХ отложены все возможные значения последних двух цифр (XX) в PIN-коде; для каждого из вариантов было посчитано, насколько чаще встречается пароль 19XX по отношению к паролю ??XX:

Очень похоже на демографический график (судя по красной прерывистой линии)! График также довольно правдоподобно отражает возрастную аудиторию различных веб-сайтов. Хакеры, безусловно, тоже пробуют год рождения, пытаясь подобрать PIN-код. Имея в своем распоряжении вышеуказанный граф, хакеры могут увеличить свое преимущество почти в 40 раз!

Практически для всех случаев пропорция больше 1,0. Но есть и исключения: у паролей ??00 и ??34 пропорция меньше 1,0. Такое расхождение можно объяснить популярностью паролей 1234 и 0000 (по сравнению с которыми вероятность паролей 1934 и 1900 ничтожно мала). Аналогично, пропорция паролей 1933, 1944, 1955, 1966 ниже ожидаемого значения из-за популярности паролей из четырех одинаковых цифр (3333, 4444, 5555, 6666, и.т.п.).

Пики также можно наблюдать у часто используемых PIN-кодов 1919, 1984 и 1999.

Закономерности

Мне нравится красиво визуализировать данные. Картинки заменяют собой тысячи слов.

Карта интенсивности – это еще один неплохой способ визуализировать частоты использования PIN-кодов. На карте интенсивности, изображенной слева, по оси ОХ отложены первые две цифры PIN-кода, а по оси OY – последние две цифры. Нижний правый угол соответствует PIN-коду 0000, а правый верхний угол – PIN-коду 9999.

Цвета отражают частоту использования. Самым часто встречающимся паролям соответствуют цвета от желтого до белого, а самым редким паролям – от красного до черного.

Заметка специально для гиков: применялось логарифмическое масштабирование.

Можно часами любоваться картинкой!

Яркая линия по главной диагонали показывает любимые многими людьми PIN-коды с повторяющимися цифрами: 0000, 0101, 0202, …, 5454, 5555, 5656, …, 9898, 9999.

Каждая одиннадцатая точка на главной диагонали чуть ярче остальных, что свидетельствует о высокой частоте использования паролей из четырех одинаковых цифр, например 4444, 5555, и.т.п. Вот увеличенная версия карты интенсивности:

Интересные наблюдения

Из карты интенсивности можно узнать множество интересных вещей! Вот всего несколько из них.

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

Более светлые участки соответствуют парам, цифры в которых располагаются близко друг к другу. По какой-то причине людям не нравится выбирать цифры, расположенные далеко друг от друга. Комбинации типа 45 и 67 встречаются намного чаще, чем комбинации 29 и 37.



Сейчас слева на рисунке выделена линия с паролями вида 19XX. Высокая частота подобных паролей комментировалась выше. Заметьте, что чем выше линия, тем она светлее.

Еще одно наблюдение: левый нижний квадрант карты заметно светлее. Людям нравится, чтобы их PIN-коды начинались с нуля, а еще больше – с единицы. На графике справа показана относительная частота для первой цифры. Как вы можете видеть, цифра 1 имеет наибольшую относительную частоту (и не только благодаря любви пользователей к PIN-кодам 19??).

Маленькие яркие точки соответствуют PIN-кодам с подряд идущими цифрами (в возрастающем или убывающем порядке), например, 2345, 4321 и 5678. Слева на карте я отметил лишь несколько таких точек. На карте также можно увидеть пароли с цифрами, разница между которыми равна двум (2468).

Часто встречаются повторяющие пары цифр, например XYXY. Сотня паролей с повторяющимися парами цифр составляет целых 17,8% от всей выборки!



Больше четырех

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

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

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

Ниже в таблице приведены 20 самых популярных паролей каждой длины, а также их доля в пространстве всех паролей той же длины.

#

5

6

7

8

9

10

PSWD

%

PSWD

%

PSWD

%

PSWD

%

PSWD

%

PSWD

%

#1

12345

22.802%

123456

11.684%

1234567

3.440%

12345678

11.825%

123456789

35.259%

1234567890

20.431%

#2

11111

4.484%

123123

1.370%

7777777

1.721%

11111111

1.326%

987654321

3.661%

0123456789

2.323%

#3

55555

1.769%

111111

1.296%

1111111

0.637%

88888888

0.959%

123123123

1.587%

987654321

2.271%

#4

00000

1.258%

121212

0.623%

8675309

0.465%

87654321

0.815%

789456123

1.183%

1111111111

2.087%

#5

54321

1.196%

123321

0.591%

1234321

0.220%

00000000

0.675%

999999999

0.825%

1029384756

1.293%

#6

13579

1.112%

666666

0.577%

0000000

0.188%

12341234

0.569%

147258369

0.591%

9876543210

0.971%

#7

77777

0.618%

000000

0.521%

4830033

0.158%

69696969

0.348%

741852963

0.455%

0000000000

0.942%

#8

22222

0.454%

654321

0.506%

7654321

0.154%

12121212

0.320%

111111111

0.425%

1357924680

0.479%

#9

12321

0.412%

696969

0.454%

5201314

0.128%

11223344

0.293%

123454321

0.413%

1122334455

0.441%

#10

99999

0.397%

112233

0.417%

0123456

0.124%

12344321

0.275%

123654789

0.378%

1234512345

0.402%

#11

33333

0.338%

159753

0.283%

2848048

0.124%

77777777

0.262%

147852369

0.356%

1234554321

0.380%

#12

00700

0.261%

292513

0.250%

7005425

0.120%

99999999

0.223%

111222333

0.304%

5555555555

0.259%

#13

90210

0.244%

131313

0.235%

1080413

0.111%

22222222

0.219%

963852741

0.255%

1212121212

0.244%

#14

88888

0.217%

123654

0.228%

7895123

0.107%

55555555

0.205%

321654987

0.253%

9999999999

0.231%

#15

38317

0.216%

222222

0.212%

1869510

0.102%

33333333

0.176%

420420420

0.241%

2222222222

0.219%

#16

09876

0.185%

789456

0.209%

3223326

0.100%

44444444

0.165%

07007007

0.227%

7777777777

0.206%

#17

44444

0.179%

999999

0.194%

1212123

0.096%

66666666

0.160%

135792468

0.164%

3141592654

0.195%

#18

98765

0.169%

101010

0.190%

1478963

0.088%

11112222

0.140%

397029049

0.158%

3333333333

0.186%

#19

01234

0.160%

777777

0.188%

2222222

0.085%

13131313

0.131%

012345678

0.154%

7894561230

0.165%

#20

42069

0.154%

007007

0.186%

5555555

0.082%

10041004

0.127%

123698745

0.152%

1234567891

0.161%

Несколько интересных наблюдений (и немного размышлений)

  • При выборе пятизначных паролей у пользователей с воображением совсем все плохо: 22,8% пользователей выбирают 12345. Среди популярных пятизначных паролей присутствуют все главные подозреваемые, но есть еще новичок на 20 месте – пароль 42069[1].
  • Среди шестизначных паролей, опять же, часто встречается 696969. Стоит отметить также частоту пароля 159753 (знак “X” на цифровой клавиатуре). Очередной привет Джеймсу Бонду: пароль 007007.
  • Что касается семизначных паролей, то хотя 1234567 и встречается относительно редко, он, тем не менее, занимает первое место. Я думаю, низкая частота появления пароля 1234567 обусловлена тем, что многие люди в качестве семизначного пароля используют свой номер телефона (без кода города). Телефонных номеров довольно много, и телефонный номер не нужно специально запоминать, поэтому, когда пользователю нужен семизначный пароль, решение напрашивается само собой! Благодаря широкому использованию телефонных номеров в качестве пароля, не нужно большого воображения, чтобы выдумать себе пароль.
  • А Дженни здесь? На четвертом месте среди семизначных паролей находится 8675309 (популярная песенка из восьмидесятых).
  • Восьмизначные пароли тоже не удивляют своим разнообразием. Множество повторяющихся цифр.
  • С девятизначными паролями пользователи также не придумали ничего нового и просто используют повторяющиеся цифры. Пароль 789456123 представляет собой цифры из среднего, центрального и нижнего ряда цифровой клавиатуры. 147258369 (и различные его вариации) получен из столбцов цифровой клавиатуры. Еще в двадцатке мы видим “укуренный” пароль 420420420. И еще один привет от Бонда: 007007007.
  • Среди десятизначных паролей хочется отметить 1029384756 (цифры чередуются в возрастающем/убывающем порядке) и 1357924680 (нечетные, а затем четные цифры).
  • Ура математике! На 17ой позиции в десятизначных паролях мы видим 3141592654 (первые цифры числа пи ).

Заключение

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

Если же вы пользователь и среди паролей, о которых говорилось в статье, вы увидели свой пароль/PIN-код, то, надеюсь, у вас хватит здравого смысла поменять его на что-нибудь менее предсказуемое. Как вариант, вы можете полениться и ничего не менять, тогда максимум, кто пострадает от вашей лени, так это только вы.

Апдейт

Уже после публикации статьи я заметил, что многие люди в качестве PIN-кодов используют не только знаменательные года, но и даты в формате MMDD (например, месяц и день рождения). Выбор PIN-кода вида MMDD сразу же объясняет, почему область размером 12х31 на карте интенсивности заметно ярче остальных областей. (Благодарю zero79, за то, что он поделился со мной этим наблюдением).


Многим людям интересно, что означает PIN-код 1004. Дело в том, что по-корейски “1004” произносится, как “cheonsa” (cheon – 1000, sa - 4). “Cheonsa” также переводится с корейского, как “Ангел”.


[1] 42069 получено конкатенацией двух чисел: “420” и “69”. 420 или 4.20pm – это время, когда в Северной Америке было популярно курить марихуану, как следствие, число 420 стало условным обозначением для “курения марихуаны”. 69 – условное название сексуальной позы. 42069 – это сленговое обозначение секса под наркотиками. – Прим. перев.

или введите имя

CAPTCHA
abdul
27-11-2012 02:03:30
Наконец, лёгкое и занимательное чтиво. Спасибо.
0 |
гость
28-11-2012 08:57:26
и познавательное
0 |
Serg
28-11-2012 13:10:50
Вместо того, чтобы пост мой удалять, поправили бы все-таки ссылку на сноску, не позорились... file:///C:/Users/Таня/Downloads/PIN (2).doc#_ftn1
0 |