Всі можливі 4 значні коди. Чи складно вгадати PIN-код

Незважаючи на важливу роль PIN-кодів в світовій інфраструктурі, до сих пір не проводилося академічних досліджень про те, як, власне, люди вибирають PIN-коди.

Дослідники з університету Кембриджу Sören Preibusch і Ross Anderson виправили ситуацію, опублікувавши перший в світі кількісний аналіз складності вгадування 4-ціферний банківського PIN-коду.

Використовуючи дані про витік паролів з небанківських джерел і онлайн анкетування, вчені з'ясували, що до вибору PIN-кодів користувачі ставляться набагато серйозніше, ніж до вибору паролів для веб-сайтів: більшість кодів містять практично випадковий набір цифр. Проте, серед вихідних даних присутні і прості комбінації, і дні народження, - тобто, при деякому везінні зловмисник може просто вгадати заповітний код.

Відправною точкою дослідження був набір 4-ціферний послідовностей в паролі з бази RockYou (1.7 млн), і бази з 200 тисяч PIN-кодів від програми блокування екрану iPhone (базу надав розробник програми Daniel Amitay). У графіках, побудованих за цими даними, проступають цікаві закономірності - дати, року, повторювані цифри, і навіть PIN-коди, що закінчуються на 69. На основі цих спостережень вчені побудували лінійну регресійну модель, яка оцінює популярність кожного PIN-коду в залежності від 25 чинників, - наприклад, чи є код датою в форматі ДДММ, чи є він зростаючої послідовністю, і так далі. Цим загальним умовам відповідають 79% і 93% PIN-кодів в кожному з наборів.


Отже, користувачі вибирають 4-ціферние коди на основі всього декількох простих факторів. Якби так вибиралися і банківські PIN-коди, 8-9% з них можна було б вгадати всього за три спроби! Але, звичайно, до банківських кодами люди ставляться набагато уважніше. Зважаючи на відсутність скільки-небудь великого набору справжніх банківських даних, дослідники опитали понад 1300 осіб, щоб оцінити, наскільки реальні PIN-коди відрізняються від вже розглянутих. З огляду на специфіку дослідження, у респондентів запитували, чи не про самих кодах, а тільки про їх відповідність будь-якого з вищеназваних факторів (зростання, формат ДДММ, і т.д.).

Виявилося, що люди дійсно набагато ретельніше вибирають банківські PIN-коди. Приблизно чверть опитаних використовують випадковий PIN, згенерований банком. Більше третини вибирають свій PIN-код, використовуючи старий номер телефону, номер студентського квитка, або інший набір цифр, який виглядає випадковим. Згідно з отриманими результатами, 64% власників карт використовують псевдовипадковий PIN-код, - це набагато більше, ніж 23-27% в попередніх експериментах з не-банківськими кодами. Ще 5% використовують цифровий патерн (наприклад, 4545), а 9% вважають за краще патерн на клавіатурі (наприклад, 2684). В цілому, зловмисник з шістьма спробами (три з банкоматом і три з платіжним терміналом) має менше 2% шансів вгадати PIN-код чужий карти.

фактор приклад RockYou iPhone Опитування
дати
ДДММ 2311 5.26 1.38 3.07
ДМГГ 3876 9.26 6.46 5.54
ММДД 1123 10.00 9.35 3.66
ММГГ 0683 0.67 0.20 0.94
РРРР 1984 33.39 7.12 4.95
Разом 58.57 24.51 22.76
клавіатурний патерн
суміжні 6351 1.52 4.99
квадрат 1425 0.01 0.58
кути 9713 0.19 1.06
хрест 8246 0.17 0.88
діагональна лінія 1590 0.10 1.36
горизонтальна лінія 5987 0.34 1.42
слово 5683 0.70 8.39
вертикальна лінія 8520 0.06 4.28
Разом 3.09 22.97 8.96
цифровий патерн
закінчується на 69 6869 0.35 0.57
тільки цифри 0-3 2000 3.49 2.72
тільки цифри 0-6 5155 4.66 5.96
повторювані пари 2525 2.31 4.11
однакові цифри 6666 0.40 6.67
спадна послідовність 3210 0.13 0.29
зростаюча послідовність 4567 3.83 4.52
Разом 15.16 24.85 4.60
Випадковий набір цифр 23.17 27.67 63.68

Все б добре, але, на жаль, значна частина опитаних (23%) вибирає PIN-код у вигляді дати, - і майже третина з них використовує дату свого народження. Це істотно змінює справу, адже майже всі (99%) респонденти відповіли, що зберігають в гаманці з банківськими картамирізні посвідчення особи, на яких ця дата надрукована. Якщо зловмисник знає день народження власника карти, то при грамотному підході ймовірність вгадування PIN-коду злітає до 9%.

100 найпопулярніших PIN-кодів

0000, 0101-0103, 0110, 0111, 0123, 0202, 0303, 0404, 0505, 0606, 0707, 0808, 0909, 1010, 1101-1103, 1110-1112, 1123, 1201-1203, 1210-1212, 1234, 1956-2015, 2222, 2229, 2580, 3333, 4444, 5252, 5683, 6666, 7465, 7667.

P.S.На практиці, зрозуміло, зловмисникові набагато простіше підглянути ваш PIN-код, ніж вгадувати його. Але і від підглядання можна захиститися - навіть, здавалося б, в безвихідному становищі:

Калькулятор нижче призначений для генерації всіх сполучень з n по m елементів.
Число таких поєднань, як можна розрахувати за допомогою калькулятора Елементи комбінаторики. Перестановки, розміщення, поєднання.

Опис алгоритму генерації під калькулятором.

алгоритм

Комбінації генеруються в лексикографічному порядку. Алгоритм працює з порядковими індексами елементів множини.
Розглянемо алгоритм на прикладі.
Для простоти викладу розглянемо безліч з п'яти елементів, індекси в якому починаються з 1, а саме, 1 2 3 4 5.
Потрібно згенерувати всі комбінації розміру m = 3.
Спочатку Ініціалізація перша комбінація заданого розміру m - індекси в порядку зростання
1 2 3
Далі перевіряється останній елемент, т. Е. I = 3. Якщо його значення менше n - m + i, то він инкрементируется на 1.
1 2 4
Знову перевіряється останній елемент, і знову він инкрементируется.
1 2 5
Тепер значення елемента дорівнює максимально можливому: n - m + i = 5 - 3 + 3 = 5, перевіряється попередній елемент з i = 2.
Якщо його значення менше n - m + i, то він инкрементируется на 1, а для всіх наступних за ним елементів значення прирівнюється до значення попереднього елемента плюс 1.
1 (2+1)3 (3+1)4 = 1 3 4
Далі знову йде перевірка для i = 3.
1 3 5
Потім - перевірка для i = 2.
1 4 5
Потім настає черга i = 1.
(1+1)2 (2+1)3 (3+1)4 = 2 3 4
І далі,
2 3 5
2 4 5
3 4 5 - Останнім поєднання, так як всі його елементи рівні n - m + i.

Друзі! Раз вже є у мене цей мертвий блокнот, використовую-ка я його для того, щоб задати вам завдання, над якою вчора билося три фізика, два економіста, один політеховскій і один гуманітарій. Ми зламали собі весь мозок і у нас постійно виходять різні результати. Може бути, серед вас є програмісти і математичні генії, до того ж, завдання взагалі шкільна і дуже легка, у нас просто не виводиться формула. Тому що ми кинули заняття точними науками і замість цього чомусь пишемо книги і малюємо картини. Вибачте.

Отже, передісторія.

Мені видали нову банківську картку і я, як водиться, граючи вгадала її пін-код. Але не підряд. У сенсі, припустимо, пін-код був 8794, а я назвала 9748. Тобто, я тріумфально вгадала всі цифри, Яке містилися в даному чотиризначному числі. Ну так, не саме число, А просто його складові угадала. Але цифри-то все вірні! ПРИМІТКА - я діяла навмання, тобто, мені не треба було розставити вже відомі числа в потрібному порядку, я просто діяла в дусі: ось тут є невідомі мені чотири цифри, і я вважаю, що серед них можуть бути 9, 7, 4 і 8, а порядок їх не важливий.Ми тут же задалися питанням, скільки у мене взагалі було варіантів(Напевно, щоб зрозуміти, наскільки це круто, що я ось взяла і вгадала). Тобто, зі скількох комбінацій чотирьох цифр мені потрібно було вибирати? І тут, натурально, почалося пекло. У нас весь вечір вибухала голова, і у всіх, в результаті, вийшли абсолютно різні варіанти відповіді! Я навіть почала виписувати всі ці комбінації в блокнот поспіль у міру зростання, але на чотирьох сотнях зрозуміла, що їх більше чотирьох сотень (у всякому разі, це спростувало відповідь фізика треш, який запевняв мене, що комбінацій чотири сотні, але все одно це не зовсім однозначно) - і здалася.

власне, сутність питання.Яка ймовірність вгадування (в будь-якому порядку) чотирьох чисел, що містяться в чотиризначному числі?

Чи ні, формулюємо (я гуманітарій, вибачте, хоча до математики завжди живила величезну слабкість), щоб було ясніше і чіткіше. скільки не повторюютьсякомбінацій цифр міститься в ряду порядкових числівників від 0 до 9999? ( будь ласка, не плутайте це з питанням "скільки комбінацій не повторюютьсяцифр "!!! цифри можуть повторюватися! в сенсі, 2233 і 3322 - це в даному випадку одна і та ж комбінація !!).

Або ще конкретніше. Мені потрібно чотири рази вгадати одну цифру з десяти. Але не підряд.

Ну або ще як-небудь. Загалом, потрібно дізнатися, скільки у мене було варіантів числовий комбінації, з якої складався пін-код картки. Допоможіть, люди добрі! Тільки, будь ласка, допомагаючи, не починайте відразу писати, що варіантів цих 9999(Вчора таке всім приходило в голову спочатку), тому що це ж дурниці - адже в тому ракурсі, який нас хвилює, число 1234, число 3421, число 4312 і так далі є одним і тим же! Ну і так, цифри можуть повторюватися, адже буває пін-код 1111 або там, наприклад, 0007. Можна уявити замість пін-коду номер машини. Припустимо, яка ймовірність вгадати всі однозначні цифри, з яких складається номер машини? Або, щоб взагалі прибрати теорію ймовірності - зі скількох числових комбінацій мені потрібно було вибрати одну?

Будь ласка, підкріпите свої відповіді і міркування якимись точними формулами, тому що ми вчора і так мало не втрачали. Заздалегідь всім велике спасибі!

P.S. Один розумний чоловік, програміст, художник і винахідник, тільки що дуже вірно підказав правильне рішення проблеми, подарувавши мені кілька хвилин прекрасного настрою: " рішення задачі таке: у неї обсесивно-комп ульсівное розлад, лікування таке: заміж і підгортати помідори. мене б більше на її місці хвилювало не питання «наскільки ймовірним є», а питання «схуя я звертаю увагу на всі ці цифри»?В общем-то, навіть нічого додати :)