Анализ 170 млн утекших паролей: интересные находки



    Специалист по анализу больших данных и независимый ИБ-исследователь Ата Хакчил (Ata Hakçıl) собрал и проанализировал более миллиарда строк с логинами и паролями, дампы которых разрознено находились в сети и были получены в результате различных утечек. Результаты своей работы Хакчил выложил на GitHub под лицензией MIT.

    Хакчил отфильтровал из этой большой базы данных из более чем миллиарда записей поврежденные данные, а так же убрал тестовые записи или строки в некорректном формате. В итоге он смог из нее выделить 168 919 919 паролей и 393 386 953 логинов. Причем около 7 миллионов строк были с паролем «123456». По словам специалиста, этот «пароль» является самым распространенным у пользователей последние пять лет.

    Дальнейший анализ данных Хакчила показал, что:

    • самый распространенный пароль — «123456», он встречается примерно в 0,722% случаев, далее идут «123456789», «password», «qwerty», «12345678»;
    • 1000 самых распространенных паролей, это примерно 6,607% от всех изученных паролей;
    • 8,83% из общей базы паролей являются уникальными, остальные встречаются два и более раза;
    • средняя длина пароля составляет 9,4822 символа;
    • только 12,04% паролей содержат специальные символы;
    • 8,79% паролей содержат только буквы;
    • 26,16% паролей содержат символы только в нижнем регистре;
    • 13,37% паролей содержат только цифры;
    • 34,41% всех паролей заканчиваются цифрами, но только 4,522% паролей начинаются с цифр (тут, вероятно, имеются в виду смешанные пароли — с буквами и цифрами).

    Вдобавок Хакчил выложил на GitHub четыре выборки с данными о частоте применения типовых паролей, а также и файлы, содержащие сборники (1 тыс., 10 тыс., 100 тыс., 1 млн и 10 млн) самых популярных паролей. Эти данные можно использовать для различных исследований и ускорения подбора паролей, например, при работе с некоторыми инструментами в Kali Linux.

    Также Хакчил опубликовал списки из 150-ти самых слабых паролей среди пользователей, которые говорят на различных языках, например, на русском, украинском и других 27-ми языках.

    Исследователь пообещал, что будет и далее проводить анализ данных из дампов и выкладывать их регулярные обновления на GitHub.

    См. также:

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 32

      +2
      13,37% паролей содержат только цифры;
      но только 4,522% паролей начинаются с цифр.

      Кто-то врет или я что то не понимаю.

        +1
        (тут, вероятно, имеются в виду смешанные пароли — с буквами и цифрами).
          0

          Пароль, который начинается с цифры, может содержать не только цифры

            +3

            Ну да, и все пароли, которые содержат только цифры начинаются с цифрой.


            И поэтому пароли, которые начинаются с цифр должны быть больше паролей которые содержат только цифры. А здесь наоборот и примерно вдвое.

              +1

              Я перепутал, прошу прощения

              +1
              Поэтому паролей, которые начинаются с цифры, должно быть 13,37% (только из цифр) плюс X (пароли, которые начинаются с цифры, но содержат и другие символы). А их почему то не больше, а наоборот — меньше в три раза.
            –1
            Если утекут пароли в организации со строгой парольной политикой, там будет красивая статистика: цифры, буквы, спецсимволы, длина в 100500 и греческий алфавит.
            Очевидно, дело не в том, что пользователи ленивы, а в том, что им позволяют использовать 123456
              +1

              Выбор пароля никак нельзя ограничивать! Потому что каждое ограничение уменьшает безопасность системы. Такой парадокс — то что пользователь может выбрать 123456 само по себе прекрасно. Плохо то, что он ее все-таки выбрал. :D

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

                  Ну не работает это так. Какие бы вы и ограничения на ставили, они всегда только уменьшают энтропию. И хорошо, если это условие только отсутствие пароля в неким конечном списке. Тогда энтропия уменьшится незначительно. Но например ограничения на состав пароля (обязательно цифры, обязательно символы и т.д.) уменьшают энтропию очень сильно.


                  И кстати, обманываются такие ограничения очень легко — ведь потребитель хочет чтобы легко запоминалось. И этим еще больше уменьшают безопасность системы. Вот вам пароль, которой выполняет все ограничения прекрасно но по сути словарный пароль: "HabrRulez!@34"

                    0
                    Давайте так, про уменьшают энтропию я тут согласен, как и упомянул в своем сообщении, но вернемся в реальный мир, если бы у всех юзеров испокон веку каким-то волшебным образом были запрещены сколь-нибудь осмысленные пароли (и заодно ограничили бы их длину снизу (ещё одно ограничение, ага)), больше бы стало взломов или меньше? У взломщиков пропала бы возможность перебора по словарю, но зато сократилась бы база вариантов для посимвольного перебора (на 0,0000N%), помогло бы это им?

                    (Словарные варианты включают и составные и «словарный плюс пара рандомных символов», всё это надо запрещать, только полная энтропия, только хардкор. Т.е. такая энтропия, которую винрар уже ни на байт не сожмет, условно говоря)
                      0

                      Ну не можете вы меня ограничить никак. Какой бы набор ограничении вы не придумали бы, я смогу придумать пароль такой, что будет легкий к запоминанию и по сути словарный. Хотите попробуем?

                        0
                        А давайте. Слова использовать можно, но каждое слово я буду считать за 1 символ при проверке минимальной длины пароля, т.е. можно минимум 10 рандомных символов или 10 слов. Повторы сочетаний символов любой длины не допускаются, *AB*AB* или *Ab1*Ab1* нельзя. 4 любые цифры подряд считаются за 1 «символ». Например привет1976 это 2 «символа», нужно ещё 8. По возрастанию или убыванию больше 3 знаков подряд типа *ABC* или соседних кнопок клавиатуры не допускается. Несколько очевидных способов трансформации вроде записи транслитом или русским в английской раскладке или такой З1а2п3и4с5и тоже учтем.
                          0

                          Что-то несколько сумбурно описано.


                          Например пароль только из букв можно? И вообще-то я понимаю что постарались написать посложнее, (челендж, такой челендж ;) ) Но мне хочется чтобы мог бы проверять свои творения прежде чем выложить.


                          Слова использовать можно, но каждое слово...

                          А как вы будете определять что является словом?


                          Несколько очевидных способов трансформации вроде записи транслитом или русским в английской раскладке или такой З1а2п3и4с5и тоже учтем.

                          Это вообще написано так чтобы можно было придраться абсолютно ко всему.


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

                            0
                            «Слово» из словаря, возьмём русский и английский, длиннее 2 букв, в перспективе все прочие известные человечеству слова на основных языках, внесенные в какие-либо словари, может находиться в любом месте строки пароля, ищем максимально длинное.
                            Пароль только из букв можно, «dhqocnfsuz» например. Или добавим слово в середину (считается за 1 символ) «dhqocatnfsuz».
                            Ок, конкретизирую:
                            1) Не должно быть повторов последовательностей длиной 2 и более символов (*Ab*Ab*).
                            2) Не должно быть возрастания или убывания 3 и более символов подряд по алфавиту, числовому ряду или раскладке клавиатуры ("*abc*, *876*, «asd»).
                            3) Пункт 2 применим для последовательности из всех четных и всех нечетных символов пароля.

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

                              Хорошо. Но 2+3 вообще выкинут большую часть словарей. Потому что слоги в словах вообще-то повторяются. И этим уменьшать энтропию пароля намного.


                              Но пожалуйста: "Любя, съешь щипцы; вздохнёт мэр кайф жгуч." — 10 "символов", энтропией здесь и не пахнет. И помнится просто. :P

                                0
                                энтропией здесь и не пахнет
                                Как по мне, очень даже пахнет, ну в рамках оговоренной длины пароля, не хуже энтропиии 10 рандомных знаков и точно сложнее подобрать по словарю, даже учитывая ограничение на корректное построение фраз.
                                У Вавилонской библиотеки, даже со строгими формальными ограничениями на тексты — орфография, грамматика, осмысленность, количество томов далеко стремится к бесконечности, что сделает невозможным любой перебор, а 10^100 обезьян, даже манипулируя готовыми словами, а не буквами, не напишут войну и мир за разумное время, сравнимое с временем жизни Вселенной.
                                  0

                                  Это словарный пароль. Напишите в google и уверитесь сами.

                                    0
                                    1) Нет, там заменена пара символов, что уже не позволит брутфорснуть его по словарю.
                                    2) Любой рандомный пароль может быть скомпрометирован и попасть в словарь, это не делает его слабым (изначально), а после конечно он будет словарный и небезопасный. Шансы на то, что другой человек придумает себе именно такой пароль и пострадает крайне малы в силу его рандомности.
                                      0

                                      Ну не работает это так. Эта пара символов брутфорсятся просто элементарно. И вообще, это очень слабый пароль, несмотря на то как он выглядит.

                      +1
                      «HabrRulez!@34»

                      Проверил. Подходит ;)
                  +2
                  Зачастую самые упоротые требования к паролям — у всяких помойных одноразовых сервисов где ты регаешься на левое мыло по-быстрому со стандартным паролем для помойных сервисов.
                  Но нет: "должно быть не менее одной цифры, но не более 10 символов!". Што?!

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

                  Я вот люблю длинные парольные фразы без спецсимволов и цифр.
                  И это боль: пробелы у многих сервисов почему-то запрещены, длина в 30 символов считается перебором, ну и отсутствие цифр, конечно тоже (без цифр даже не суйся).
                    +1

                    Поддерживаю.


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

                    Кстати, многие системы, похоже, проверяют повторяемость не пароля, а его хеша. То есть пароли вида <константа>+<текущий месяц>, например QW#Mar20, QW#May20, QW#Jun20 и QW#Jul20 по факту считаются разными и неповторяющимися, и одобряются системой.


                    Ну, и 64-символьные пароли подобного вида: aqMPKqCHPYs4Zomr6FVKeQ8oVDZ2Acjn37Jyiu0JvZJc2G7vzhrtvtSqyuIdc7jX считаются многими сервисами недостаточно защищёнными: в них, видите ли, нет спецсимволов. А вот HabrRulez!@34 комментариями выше – норм...


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

                      0

                      Насколько я знаю нельзя вычислить энтропию пароля, если он известен. Потому что у известного пароля энтропия == 0.


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

                  +5
                  около 7 миллионов строк были с паролем «123456». По словам специалиста, этот «пароль» является самым распространенным у пользователей последние пять лет.

                  Мне так кажется что тут фишка в том что такие пароли применяют только на всяких мусорных сайтах уровня «Что бы скачать файл с нашего файлообменика вам нужно зарегистрироваться», а вся проблема не в том что такой пароль применяют, а в том для всякого мусора нужна регистрация для которого глупо делать сложные пароли
                    0

                    Надо сверять ещё с логином, если почта указана с какого-нибудь 10minutemail, то такие строки надо игнорировать)

                    0

                    Астрологи объявили месяц хакера. Количество взломов WiFi увеличено на 100%. Airslax, Kali и прочее))), можно будет поиграться)

                      0

                      love love love
                      zxcvbnm
                      0987654321
                      день рождения
                      классика

                        0
                        списки из 150-ти самых слабых паролей среди пользователей, которые говорят на различных языках, например, на русском

                        nikita — не самое распространенное имя. Скорее ожидал увидеть misha или sasha. Впрочем Насть и Анастасий аж несколько. Украинский список более логичен и имен там больше.
                        tresd5 — даже в голову прийти не могло такое. Хотя набирать удобно.
                        102030 — как такое в голову придёт нескольким людям сразу?
                        master — неполиткорректно.
                        147258369 — тот случай, когда и сам не запомнишь, а подбирать удобно.
                          0
                          147258369- по порядку снизу/вверх, слева/направо на цифровой клавиатуре.
                            0
                            Да, точно, не заметил.
                            «Пароль» и «цифровая клавиатура» в голове не совместились :)
                          0
                          файлы, содержащие сборники (1 тыс., 10 тыс., 100 тыс., 1 млн и 10 млн) самых популярных паролей

                          замутили бы сервис для проверки паролей по этим базам, например прямо в браузере.

                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                          Самое читаемое