О взломе паролей

Несмотря на важную роль 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-кодов в каждом из наборов.

293-dcacabde4c7f49e69921aa5432912787.png

Итак, пользователи выбирают 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-кодов

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

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

Алгоритм

Комбинации генерируются в лексикографическом порядке. Алгоритм работает с порядковыми индексами элементов множества. Рассмотрим алгоритм на примере. Для простоты изложения рассмотрим множество из пяти элементов, индексы в котором начинаются с 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. Один умный человек, программист, художник и изобретатель, только что очень верно подсказал правильное решение проблемы, подарив мне несколько минут прекрасного настроения: «решение задачи такое: у неё обсессивно-комп ульсивное расстройство, лечение такое: замуж и окучивать помидоры. меня бы больше на её месте волновал не вопрос «какова вероятность», а вопрос «схуя ли я обращаю внимание на все эти цифры»? В общем-то, даже нечего добавить:)

вдохновленный Написал как-то от нечего делать прогу, которая тупо перебирает все комбинации паролей, для эксперимента ввел слово и 6 символо англ алфавита, через несколько часов ожидания забил и остановил процесс, а до 5 символов включительно почти сразу находит. Кол-во различных комбинация пароля: p= x^1+x^2+…+x^n (x — кол-во символов в алфавите, n — кол-во символов в пароле). Если кол-во символов в пароле известно то немного проще: p=x^n Например пароль из четырех десятичных цифр: p=10^1+10^2+10^3+10^4=11110 комбинаций Если известно, что пароль состоит из 6 символов англ алфавита (строчные+прописные) и цифр: p=62^6=56800235584 комбинаций. Если известно, что пароль состоит из 8 символов англ и русского алфавита (строчные+прописные) и цифр: p=128^8=72057594037927936 комбинаций. Но, к сожалению, обычно заранее длина пароля и используемые символы не известны, так что делайте выводы. Не поленился и нашел ту программу. Засек грубым способом время перебора: пароль из 5 символов англ алфавита и цифр (62 символа). Итог: 931151402 комбинации за 330 секунд. мой процессор простой домашний: intel core i5-3210M 2.50GHz путем простых расчетов вычислил сколько бы происходил поиск пароля из 8 символов моим алгоритмом на моем компьютере: 816 лет (не знаю корректно ли работал мой калькулятор с очень большими числами). если кто хочет поиграться, могу скинуть прогу эксешник, но если вы разумны, не станете его запускать (может я маньяк какой, но я честно не маньяк, могу исходники выложить (паскаль), лига программистов проверит)5

Любой замок – это защитник личного имущества или того, что нужно держать в секрете и тайне. Великое множество замков охраняют наши квартиры и гаражи, дачи и офисы. Магазины и учреждения, шкафы и сейфы, столы и даже чемоданы имеют свои типы различных замков. Одними из таких стражей являются кодовые замки. Вскрыть кодовый замок без знания кода (цифр) довольно проблематично, а иногда совсем не представляется возможным. Комбинации кодов насчитывают до нескольких сотен тысяч различных вариантов и со временем только увеличиваются.

8549.jpgКак открыть кодовый замок, если вы вдруг забыли шифр? Способов открытия и взламывания существует огромное множество. Конечно, если у вас есть болгарка или ножовка, отвёртка или дрель, молоток или другой подручный инструмент, то можно попытаться сломать, спилить и «убить» замок. Но ломать – не строить, а кодовый замок – это не механика, и будет очень жалко, если комбинированное чудо будет зверски уничтожено. Тут, конечно же, решать вам, и все пути хороши для достижения целей. Можно попробовать электротехнику данного направления, это специальные лазеры и рентгены, прослушки и подгонки. А если под рукой нет специальной электронной аппаратуры и других механических приспособлений, а вам просто ну очень необходимо открыть кодовый замок и сию же минуту попасть внутрь ящичка или сейфа? Вот тут придется немного подождать. Для этого нужно будет позвонить в специализированную фирму для экстренного открытия замков любой сложности. И очень скоро прибудет группа специалистов-«медвежатников», которые в течение пяти минут откроют любой тип кодового замка. Ну а чтобы открыть замок самостоятельно, нужны специальные знания, которые в дальнейшем необходимо применять только на законных основаниях и ни в коем случае не злоупотреблять ими в корыстных целях.

8600.jpgРассмотрим простейший пример открытия кодового замка багажной сумки или чемодана. Например, вы едете в поезде, а ваша голова нещадно трещит и не может вспомнить заветный шифр проклятого кодового замка… Вот тут и пригодится инструкция о том, как открыть кодовый замок на чемодане, где бы вы ни находились. Обычно кодовый замок на чемодане является самым лёгким и состоит из трёх колёсиков, на каждом из которых имеются цифры от 0 до 9. Такая комбинация замка имеет всего лишь до 1000 вариантов открытия. Поверьте, это очень мало, и открыть такой замок методом подбора цифр возможно за 15-20 минут.

11496.jpgСтавим все три колёсика в положение 0 и начинаем экзекуцию непослушного замочка. Первые два колёсика слева оставляем на 0, а третье начинаем прокручивать в порядке от 0-1-2… и так далее до 9. При этом если замок внутренний, то натягиваем крышку чемодана так, чтобы чувствовать, как щёлкает каждая цифра при прокрутке колеса. Если замок внешний, то натягиваем дужки самого замка, опять же, чтобы слышать щёлканье и чувствовать прокрутку. Крутим третье колесико, останавливаясь на каждой цифре и держа в натянутом состоянии замок. Если это не дало положительных результатов, то производим следующий маневр. Первое слева колёсико оставляем на цифре 0, среднее, оно же второе, переводим на 1, а третье опять начинаем крутить от 0 до 9 и пытаться подбирать забытый код. Если нет результата, то продолжаем в той же последовательности. Первое колесо на 0, среднее ставим на 2, третьим колёсиком делаем подбор. Когда среднее колёсико пройдёт все девять цифр и замок не откроется, переходим к следующему этапу. Первое колесо ставим на 1 единицу, среднее на 0, третье колесо прокручиваем от 0 до 9, при этом не забывайте натягивать замок и прислушиваться. Варианты далее имеют следующие положения:

  • первое – 1, второе – 0, третье крутим;
  • первое – 1, второе – 1, третье крутим;
  • первое – 1, второе – 2, третье крутим;
  • первое – 1, второе – 3, третье крутим;
  • первое – 1, второе – 4, третье крутим;
  • первое – 1, второе – 5, третье крутим;
  • первое – 1, второе – 6, третье крутим;
  • первое – 1, второе – 7, третье крутим;
  • первое – 1, второе – 8, третье крутим;
  • первое – 1, второе – 9, третье крутим.

Если же замок опять не щёлкнул и не открылся, то продолжаем подбирать:

  • 11500.jpgпервое – 2, второе – 0, третье крутим;
  • первое – 2, второе – 1, третье крутим;
  • первое – 2, второе – 2, третье крутим;
  • первое – 2, второе – 3, третье крутим;
  • первое – 2, второе – 4, третье крутим;
  • первое – 2, второе – 5, третье крутим;
  • первое – 2, второе – 6, третье крутим;
  • первое – 2, второе – 7, третье крутим;
  • первое – 2, второе – 8, третье крутим;
  • первое – 2, второе – 9, третье крутим.

И так далее, пока кодовый замочек, наконец, не осчастливит нас своим долгожданным щелчком. Вы вознаграждены за своё терпение и усердие! Как сказал один великий человек: «Учиться, учиться и учиться». А затейник и комбинатор Остап Бендер добавил к этой мысли: «Скоро только кошки родятся».

Используемые источники:

  • https://droidd.ru/all-10000-combinations-of-4-digits-is-it-hard-to-guess-the-pin.html
  • https://pikabu.ru/story/o_vzlome_paroley_3669858
  • https://fb.ru/article/54671/kodovyiy-zamok-ili-velikiy-kombinator

Ссылка на основную публикацию