В далеком 2015 мы уже проводили тестирование парольных политик крупнейших веб-сервисов, результаты которого были представлены здесь. И вот, спустя 4 года, мы решили обновить и расширить это исследование. В исследовании 2019 года мы проверили 157 сервисов, разделенных на 14 категорий в зависимости от их назначения. Если вам интересно как к парольным политикам подходят такие крупные ресурсы, как Gmail, Facebook, eBay, PayPal, Steam, coinbase, DropBox, GitHub и многие другие, добро пожаловать под кат!


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


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


Методология исследования


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



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


Конечно, хуже всего, если правил создания паролей нет вовсе, и малое количество баллов тут не требует пояснений. Однако подход, при котором сервис требует создавать комбинацию не длиннее 20 символов или запрещает использовать специальные символы, также «ослабляет» пароли. Поэтому и в данном случае вычитание баллов вполне оправдано.


Помимо перечисленных правил 0.5 балла добавляло наличие двухфакторной аутентификации у сервиса.



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



Атака по словарю значительно ускоряет взлом пароля и повышает шансы успешности атаки методом перебора. Для тестирования возможности установки простых паролей были выбраны пароли из нескольких известных словарей:


  • Топ-100 самых плохих паролей
  • Топ-10000 самых плохих паролей
  • Словарь RockYou – один из самых популярных словарей для атаки методом перебора. Он включает в себя пароли, украденные со взломанного сайта компании RockYou – разработчика приложений для соцсетей.

Для наглядности мы добавили ряд «достижений» за недостатки парольной политики.


Тестирование парольных политик веб-сервисов


В результате тестирования было проанализировано 157 ресурсов различного назначения. Список выбранных категорий расширился, к старым добавились:


  • Хостинг
  • Парольные менеджеры
  • Новостные сервисы
  • Развлекательные ресурсы
  • Блоги и форумы
  • Интернет-банкинг

Полное исследование можно прочитать по ссылке.


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



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


Социальные сети


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




Итоговые результаты в данной группе сервисов.



Большинство исследуемых сервисов предъявляет минимум требований к паролю. В основном, ограничения накладываются лишь на минимальную длину. По сравнению с прошлым исследованием на этот раз пароли «подросли», минимум 6-8 символов. Однако до сих пор отсутствует проверка словарных паролей. Соцсетям по-прежнему все равно, какой пароль вы будете использовать. Таким образом, мы оценили все 14 групп сервисов. Что же изменилось за последние пару лет?


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


Почтовые сервисы


Как и 4 года назад, в аутсайдерах среди почтовых сервисов оказался ресурс Pobox. К нему присоединился почтовый сервис ProtonMail, который не использует никакие парольные политики и перекладывает всю ответственность за надежность пароля на плечи пользователя.



Криптовалютные сервисы


В группе криптовалютных сервисов отстающие ранее в плане безопасности сервисы CEX.IO и BitPay усилили свои политики и теперь заняли средние позиции.


Интернет-банкинг


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


Платежные сервисы


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



Игровые сервисы


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



Облачные файловые хранилища


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



Хостинги


Дела в части парольных политик хостингов обстоят, к сожалению, совсем не радужно. Из всех исследованных сервисов только два предъявляли требования к паролю пользователя. Помимо этого, только DigitalOcean и Vscale фильтруют словарные пароли.


Развлекательные ресурсы


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



Блоги и форумы


Не далеко ушли блоги и форумы – они предъявляли неоправданно мало требований к паролям пользователей и не проверяли их. Такое положение дел у исследуемых сервисов можно оправдать желанием не отпугнуть пользователей большим сводом правил. В погоне за популярностью безопасность отодвигается на второй план. И Хабр мы не обошли стороной – честно проверили его парольные политики, результаты совсем не впечатлили: нет проверки на совпадение паролей с логином или словарными паролями, никаких рекомендаций по используемым символам.


Выводы


Картина осталась прежней: использование надежного пароля до сих пор является частной инициативой. Лишь единицы из самых популярных ресурсов интернета предъявляют серьезные требования к аутентификации. Такое отношение к безопасной аутентификации можно объяснить погоней сервисов за аудиторией. Здесь необходимо выбрать «золотую середину»: слишком сложные правила заставят потратить ощутимо больше времени на регистрацию, что может отпугнуть пользователя. С другой стороны, полное отсутствие политик обязательно повлечет за собой возникновение инцидентов безопасности.


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

Комментарии (53)


  1. Jouretz
    14.02.2019 06:49

    «ДайтеМнеБлинСамомуВыбиратьКакойПарольЯХочуИспользоватьСтойкаЛошадьТринадцать» по стойкости не уступает «j#fnCMAai», а вот пользоваться им удобнее.
    ЗЫ. я умею в менеджеры паролей, но не всегда хочу.


    1. Neuromantix
      14.02.2019 09:16

      Какое счастье, что протонмэйл не указывает мне, как и что делать. Задолбали! Полностью согласен с выше высказавшимся — особенно бесит навязывание спецсимволов, что делает пароли незапоминаемыми.


      1. mr_tron
        14.02.2019 10:36

        Они прекрасны. Вот только они ответственность то перекладывают, но при этом дают советы по придумыванию паролей. Их больно читать.


        1. zt3f
          14.02.2019 13:39

          Лучше уж дать совет (как например это делают Google, MS, FB), поскольку среди всех пользователей, тех кто читали NIST или чего еще — ничтожно мало.


    1. mr_tron
      14.02.2019 10:38

      Люди плохо генерируют рандом. Почему-то все соглашаются, когда речь идёт о паролях, но почему-то про парольные фразы все считают себя гениальными придумывателями случайных фраз. Впрочем часть таких людей уже поплатилась за свою самоувереность когда выбрали такие парольные фразы для brainwallet биткоинов.


      1. Jouretz
        14.02.2019 11:14

        1. генераторы случайных парольных фраз вполне себе существуют.
        2. есть понятие "разумной безопасности", зачем мне защищать профиль хабра каким-нибудь pgp ключем?
        3. не сервиса забота решать насколько он мне дорог и чем мне его паролить.
        4. слабый рандом человека актуален только если у вас есть набор моих паролей или схема их генерации, иначе он не особо отличается от "слабого" рандома который возникает без использования истинного генератора случайных чисел. Типа да, вы можете в точности воспроизвести условия и получить тот же случайный пароль, но стоимость информации должна быть выше стоимости воспроизведения.


        1. mr_tron
          14.02.2019 11:28

          1. ага. в keepassxc встроен, например.
          2. а причем тут профиль хабра? вы приводите пример парольной фразы, где даже на глаз видны проблемы с энтропией и утверждаете, что она надёжнее, чем пароль из 9 символов с разным регистром и спецсимволами.
          3. это верно.
          4. ага. люди почему-то верят что хорошо придумывают уникальные схемы придумывания паролей. в john the ripper из коробки идёт 68 схем мутаций паролей. ещё несколько сотен можно найти в интернете. много ли людей способны придумать это из головы? Попробовать пол сотни схем равносильно перебору ещё одного случайного символа в обычном случайном пароле из pwgen -s с точки зрения вычислительных ресурсов.


          1. Jouretz
            14.02.2019 12:33

            И что?) Если я для конкретного сервиса выбираю придумать пароль самостоятельно, значит настолько он мне дорог. Пример был просто как фраза не попадающая под ограничения по цифрам, спецсимволам и, внезапно, максимальной длинне пароля (привет некоторым российским хостерам), для удобства можете считать что там случайносгенерированная фраза из 5-15 слов.
            image


            1. mr_tron
              14.02.2019 12:53

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


              1. Jouretz
                14.02.2019 12:59

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


                1. mr_tron
                  14.02.2019 13:19

                  Тогда почему вы написали не принципы, а экземпляры (причем судя по вашим дальнейшим комментариям не удовлетворяющие принципам, которые вы хотели сравнить)?


                  1. Jouretz
                    14.02.2019 13:43

                    Потому что мне так захотелось? Потому что рассчитывать энтропию по готовой строке, без информации о способе её получения — это бред?
                    43BA08D9E85B328C5BE4244E0C98D1B22F571E3CA76D90F3205EDFD247FC141D — надёжный пароль?
                    А строка «azazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazazaz» из которой он был получен надёжна?
                    А атом «az» этой строки?

                    Я не особо понимаю как вы на глаз определяете энтропию.


                    1. mr_tron
                      14.02.2019 13:47

                      Энтропию фразы ДайтеМнеБлинСамомуВыбиратьКакойПарольЯХочуИспользоватьСтойкаЛошадьТринадцать я определяю на глаз так же как вы на глаз определите энтропию строки qaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqa (которую конечно мне сгенерировал генератор паролей — докажите обратное)


                      1. Jouretz
                        14.02.2019 14:10

                        Энтропию фразы я определяю на глаз

                        ну ок, это сильный навык.


                        1. mr_tron
                          14.02.2019 14:13

                          А вы лишены навыка на глаз оценить энтропию строки
                          qaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqa?


                          1. Jouretz
                            14.02.2019 14:24

                            Блин, вам холивар ради холивара или что?
                            Да я не буду на глаз определять энтропию любой строки, ибо без привязки к алгоритму генерации оно не имеет смысл.
                            какой-нибудь алгоритм типа «строка длинной 1-100 символов из любых символов юникод» раз в тысячу лет выдаст вам ваше кваква. И что? Как это характеризует алгоритм генерации?


              1. ProFfeSsoRr
                14.02.2019 14:39

                Так чем же ненадежна длинная фраза относительно рандома? В словаре её, как и рандома, нет, так что подбирать перебором.


                1. mr_tron
                  14.02.2019 14:58

                  Любой пароль кроме уже известного надо подбирать перебором. Даже по словарю. И проблема не в том, что длинная фраза не надёжна относительно пароля. Вопрос в том что фраза фразе рознь. Надёжность приведеной фразы под большим сомнением, но утверждается что она надёжнее пароля. Брутфорсеры тоже не дураки и уже знают про парольные фразы и умеют генерировать их не только прямым перебором всех вариантов но и на основе лингвистических моделей. И с развитием популярности парольных фраз их методы будут совершенствоваться.


                  1. Alexeyslav
                    14.02.2019 16:34

                    опечатка в слове, само слово не в тему уже сломают схему подбора и усложнит её кардинально.


                    1. mr_tron
                      14.02.2019 16:40

                      Ага. А если сделать в одном слове сryptography 12 ошибок, то получится прекрасный криптостойкий пароль UA1D4zc54anI. Таким образом парольная фраза может состоять вообще из одного слова — главное нужное количество опечаток допустить.


                  1. ProFfeSsoRr
                    15.02.2019 03:41

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


                    1. Alexeyslav
                      15.02.2019 12:37

                      Но если станет известно, что пароль — это стилистически правильный текст то его подбор сильно упростится. Ведь тут даже не каждую комбинацию из фраз надо подбирать. А если ещё выяснится тема на которую написан текст, так это ещё сильнее сократит пространство вариантов для подбора. Смысл в том что МАССОВЫЕ тенденции по алгоритмам придумывания парольных фраз поддаются прогнозированию. Это не значит что отдельные пароли НЕ могут иметь высокую степень стойкости, это значит что 99% паролей будет подобрать легче чем это кажется на первый взгляд! Иногда очень сильно легче…


  1. Germanjon
    14.02.2019 07:12

    Пароль «123456» не проверяет утверждение «Минимальная длина пароля менее 6 символов»


  1. Electrohedgehog
    14.02.2019 07:56

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


    1. Jouretz
      14.02.2019 09:52

      корявый сисадмин теряет/продаёт базу с хешами ваших паролей и их в спокойной обстановке подбирают на gpu.
      Ограничения подбора на боевом сервисе не избавляют от необходимости хранить пароли в виде непригодном для перебора за разумное время.
      Тем не менее вопрос того, что исспользуемые метрики, в принципе, ничего не говорят о безопасности сервисов остаётся вполне актуальным.


      1. mr_tron
        14.02.2019 10:41

        Условия хранения всё равно важне. При длине пароля в 10 символов если вы обязаюте использовать спецсимволы, но базу сложите в md5 вместо bcrypt то скорость перебора будет выше.


      1. vics001
        14.02.2019 19:18

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


    1. zt3f
      14.02.2019 13:22
      +1

      Может, тогда бы это исследование называлось по- другому?)
      Для подбора рандомых 6 цифр уйдет довольно много времени, а вот для «123456» ровно секунда, если не меньше.


    1. Alexeyslav
      14.02.2019 16:26

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


  1. mr_tron
    14.02.2019 10:35

    Есть такая организация NIST (это которые проводят конкурсы и стандартизируют всякие алгоритмы шифрования, которыми вы пользуетесь). Она по совместительству проводит исследования (а не придумывает из головы) о том какие парольные политики рекомендованы к использованию госорганизации и бизнес в США. Так вот их рекомендации и оценки отличаются от ваших.
    Они говорят что пароль должен быть запоминаемым, а спецсимволы этому мешают по этому заставлять пользователей их использовать — плохо.
    Что второй фактор это очень важно — а у вас всего +0.5 балла.
    Ну и требования по подержке юникода (вплоть до эмодзи) и максимальная длина в минимум 64 символа.


  1. AI4
    14.02.2019 13:51

    Мне кажется, что двухфакторная аутентификация полностью закрывает любые проблемы с недостаточной длиной и сложностью паролей. А без неё любой сервис потенциально «дырявый».
    Только это должна быть по-настоящему двухфакторная аутентификация, а не пародия на нее — двухэтапная, типа SMS.


    1. Protos
      14.02.2019 16:44

      Люблю поспорить на эту тему с коллегами


      1. AI4
        15.02.2019 10:26

        Так спорить-то имеет смысл лишь о том, какой второй фактор является по-настоящему надежным…


  1. Amomum
    14.02.2019 14:15

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


    1. Tachyon
      14.02.2019 14:30

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


    1. Alexeyslav
      14.02.2019 16:29

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


    1. Tangeman
      14.02.2019 19:24

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


      1. Amomum
        15.02.2019 01:27

        Резонно, но максимум в 20 символов, который я достаточно регулярно вижу, это все-таки как-то маловато.


  1. Tachyon
    14.02.2019 14:20

    Интересно среди всяких сборников и словарей паролей есть Лукьяниновский — «Сорок тысяч обезьян в жопу сунули банан», и на сколько он взломостоек?


    1. mr_tron
      14.02.2019 15:07

      Любая фраза в изданной книжке, которая есть в электронных библиотеках не взломостойка.


      1. Alexeyslav
        14.02.2019 16:32

        Ошибки в словах(каждая) затрудняют взлом в N раз.


        1. mr_tron
          14.02.2019 16:36

          Ага. В некий трудно формализуемый N который зависит от множества факторв. Вот во фразе про бабан 7 слов. Надо запомнить фразу + 7 семь мест где именно ты сделал ошибку и на какую. Это почти равносильно по сложности запоминания случайному паролю из 8 символов. У которого заранее известная и предсказуемая криптостойкость.


  1. powerman
    14.02.2019 16:44

    Мы в своём сервисе попытались внедрить нормальную проверку стойкости пароля — через проверку энтропии пароля библиотекой zxcvbn (она есть на гитхабе для разных языков). Суровая правда жизни в том, что при требовании минимальной энтропии на уровне соответствующем 5 месяцам на брутфорс пароля (а это как раз чуть лучше рекомендаций этой статьи 8 случайных символов включая заглавные, цифры и спец.символы) — юзеры уже не в состоянии зарегистрироваться и жалуются в саппорт на "сломанную" регистрацию. Поэтому требования к энтропии пришлось понизить до уровня, на котором юзеры справлялись с установкой "сложного" пароля — а это 5 минут на брутфорс одним компом пароля, который не возьмёт словарная атака… такая "защита паролей" что есть, что её нет, разницы не видно. И это не смотря на то, что для хеширования паролей мы использовали современный Argon2, со скоростью менее 100/сек на одном сервере (ещё сильнее замедлять его нельзя, иначе мы создадим слишком лёгкую цель для DoS-атаки).


    1. Jouretz
      14.02.2019 21:29

      Прошу прощения, но алгоритм вычисления сложности подбора этой либы вызывает некоторые вопросы.
      Беру к примеру 2 пароля:
      AEZAKME#DoNoTPar5eThis#Zi1
      A|9gqNih|KRS|V$Xd{T?@Dwdxs
      По длине они одинаковые, но сложность того что со словарными словами он определяет как
      24.42727 = 10 брутфорс + 1.69897 словарь + 4.95015 словарь + 1.69897 словарь + 4 брутфорс
      а второго как
      26 — брутфорс, тупо по количеству букв.

      Если моя память мне не с кем не изменяет по хешу нельзя определить длину пароля и уж тем более его состав и места в которых начинаются словарные слова. Т.е. условный хакер подбирая этот пароль будет начинать с паролей длиной min, допустим 8 символов, и безыдейно перебирать их до длины max. Допустим для оптимизации мы сначала переберём все словарные пароли, после чего начнём перебор по алгоритму:
      пробуем 1 символ в начале пароля + добиваем до длины словарными -> пробуем 2 символа в начале пароля + добиваем до длины словарными -> .(тут цикл перебирающий все варианты перестановок символов и слов для длины n). -> пробуем все пароли состоящие из спецсимволов -> увеличиваем проверяемую длину на 1 и начинаем сначала.
      Т.е. уменьшение энтропии они получают из предположения что атакующему известен состав пароля? Или я чего-то не понимаю?

      Упс. Написал -> перечитал -> дошло. В первом случае на оптимизированном алгоритме перебор закончится при параметрах (12 символов + 4 словарных слова) что быстрее чем тупой перебор 26 символов.
      Простите, вопросов больше нет. Тяжело быть тупым.


      1. powerman
        14.02.2019 21:39

        Вопрос скорее к авторам алгоритма. На мой взгляд у этой либы лучшее соотношение цена/качество для задачи оценки энтропии пароля — её достаточно просто использовать, и она учитывает достаточно много факторов, включая и словари, и совпадение с username/email, и разные комбинированные техники словарной атаки и брутфорса. Даже если она, на Ваш взгляд, неоправданно занизила энтропию первого пароля из нереалистичных предположений о том, что его брутфорс удачно угадает части для атаки по словарю, это не принципиально. Дело в том, что на пароле такой сложности брутфорс в любом случае невозможен, а вот в случае более коротких паролей сложность угадывания места в пароле где стоит атаковать по словарю намного ниже, и многие утилиты для брутфорса используют такие комбинированные атаки — что делает оценку zxcvbn для таких паролей не такой уж и заниженной, если вообще заниженной.


        1. Jouretz
          14.02.2019 21:44

          Да, спасибо, уже понял. Она не занижает, видимо, это я криво посчитал.


  1. Jogger
    14.02.2019 17:40
    -1

    >Для проведения анализа нами был определен набор правил
    Дальше не читал. Глупые и необоснованные правила, значит оценка полностью отфонарная, в лучшем случае она отображает «насколько неудобно пользоваться сервисом».
    Ну нельзя, нельзя заставить человека сделать безопасный пароль. Если человеку пофигу — он при любом наборе правил создаст пароль, который легко подберётся, да ещё и на стикере запишет, и повесит на монитор. Я это видел много раз. «November$1» — больше 8 символов, большие и маленькие буквы, цифра, символ, не похож на логин, сервис строго придерживается требований, они заданы в явном виде, согласно haveibeenpwned.com/Passwords — не словарный. Итого, на сервисе с оценкой 11,5 по вашей шкале мы ввели пароль, который не просто слабый — он элементарный.


    1. Alexeyslav
      14.02.2019 18:25

      Элементарный, надо сказать, он только если известна схема генерации пароля. Например что там всего одна цифра и один спецсимвол. А если известно только тот факт что они там ЕСТЬ, но неизвестно количество? Любой символ пароля может быть спецсимволом, практически все как и символом так и цифрой. Без дополнительной информации атакующий должен проводить полный перебор по всем наборам символов. Но есть дополнительная информация — большая часть людей используют СЛОВАРНЫЕ пароли, поэтому их пытаются подобрать по словарю и требование использовать спецсимволы даже если кто-то в своём пароле будет использовать один символ сильно затрудняет перебор даже по словарю. Пароли из словарных фраз надо рассматривать как символьные пароли, где каждый символ берётся из алфавита в 2000-5000 букв. Правда их сочетание ограничено практическим смыслом — ведь бесмысленные фразы из несвязанных слов гораздо сложнее запоминать и их редко будут использовать.


      1. Jogger
        15.02.2019 14:03

        Элементарный, надо сказать, он только если известна схема генерации пароля.

        Если в требованиях сайтах сказано «минимум один символ» — то у большинства пользователей он и будет ровно один. И да, обычно люди используют либо цифры + всё что попросил сайт, либо слово + всё что просит сайт. Итого, на данном сайте брутфорс чрезывачайно эффективен, если использовать подобные сочетания. А вот словарная фраза, если она не распространённая (типа «correct horse battery staple»), гораздо более эффективна. Вон выше привели библиотеку для рассчёта энтропии. Возьмём упомянутый «November$1» — согласно этой библиотеке получаем:
        guess times:
        100 / hour: 1 month (throttled online attack)
        10 / second: 2 hours (unthrottled online attack)
        10k / second: 8 seconds (offline attack, slow hash, many cores)
        10B / second: less than a second (offline attack, fast hash, many cores)

        То есть офлайн взлом возможен менее чем за секунду.
        А теперь возьмём ужасный пароль «thisphraseisfromthelamp» — ни символов, ни цифр, ни больших букв — и внезапно
        100 / hour: centuries (throttled online attack)
        10 / second: centuries (unthrottled online attack)
        10k / second: centuries (offline attack, slow hash, many cores)
        10B / second: 1 year (offline attack, fast hash, many cores)

        Даже при быстром оффлайн подборе — займёт около года.
        Вот и выходит, что политика, получившая наивысший балл по критериям в статье не обеспечивает надёжных паролей, но при этом раздражает пользователей (а практика показывает, что зачастую раздражённый пользователь будет использовать как раз небезопасный пароль, лишь бы соответствовал требованиям). ?\_(?)_/?


        1. powerman
          15.02.2019 16:31

          Честно говоря, у меня есть сильное (хотя и ничем кроме интуиции не обоснованное) сомнение в эффективности парольных фраз. На мой взгляд, пока использование фраз не станет достаточно популярным сложно оценить их надёжность. Мне лично кажется, что люди будут выбирать на удивление однообразные фразы, и мы ещё увидим TOP 100 и TOP 10000 парольных фраз, аналогичные текущим топам паролей, которые будут покрывать значительный процент придуманных юзерами фраз. И, скорее всего, увидим и достаточно эффективные алгоритмы для брутфорса парольных фраз, покрывающие ещё больший процент.


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


          Я думаю, что решение проблемы паролей лежит в области улучшения юзабилити и доступности менеджеров паролей. Нужны стандартные протоколы взаимодействия локальных приложений и удалённых сервисов с менеджером паролей юзера, нужны удобные реализации менеджеров паролей (в т.ч. в виде USB-девайса выдающего пароль по нажатию кнопки/отпечатку пальца/etc.) — что-то в таком духе. Текущий прогресс в этой области — YubiKey, FIDO U2F, FIDO2 WebAuthn, etc.


          1. Jogger
            15.02.2019 16:47

            Ну, то что парольные фразы эффективны — довольно очевидно. Их можно взломать либо посимвольным перебором — это долго, потому что они довольно длинные. Либо перебором по словам — это долго, потому что слов много.
            Да, использование распространённых фраз — проблема. Но в этом парольные фразы не лучше и не хуже обычных паролей.
            Что касается того, что их долго набирать — согласен, это проблема. К сожалению, даже несмотря на распространение вычислительной техники во все сферы жизни человека, большинство всё так же очень слабы в быстром наборе. Но возможно это решится если ввести это в школьную программу? Не вместо письма, а параллельно.
            Да, проблема использования одного пароля в разных сервисах — проблема, согласен. Но это вряд ли гвоздь в гроб парольных фраз — потому что, опять же, это не лучше и не хуже ситуации с обычными паролями.
            Ну и конечно же, я согласен что менеджеры паролей — хорошая и нужная вещь. Но ведь у менеджера паролей тоже должен быть пароль, и это возвращает нас к вопросу выбора пароля (а значит к актуальности парольных фраз).
            На счёт универсальности взаимодействия с менеджерами паролей… не уверен что это хорошая идея. Мне кажется, это даёт простор для перехвата паролей. Но возможно я просто параноик.


            1. powerman
              15.02.2019 17:12

              Либо перебором по словам — это долго, потому что слов много.

              Слов не так много, плюс между ними есть зависимости — зная одно-два предыдущих слова обычно можно сильно сократить список возможных следующих слов. По некоторым данным словарный запас среднего обывателя — 10000 слов. Средняя длина слова различается в разных языках, но можно ориентироваться на 5-6 для английского и русского. Даже если не учитывать регистр (хотя это сильно занизит разницу, потому что в паролях обычно используют буквы разного регистра на любой позиции, а в парольных фразах большая буква обычно может быть только в начале слова) то мы получим минимум 11881376 возможных комбинаций 5-ти букв для английского и 1291467969 комбинаций 6-ти букв для русского. Это разница в 3 порядка даже в самых смягчённых условиях (английский, без учёта регистра, без учёта зависимости между словами, без учёта частоты использования слов) между сложностью брутфорса парольной фразы и пароля одной длины. Думаю, в реальных условиях (с учётом всего что стоит учитывать) разница будет значительно больше, я бы предположил что порядков в 5-6. Т.е. подбор фразы на практике будет в миллион раз проще, чем пароля аналогичной длины.


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

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


              Конечно, на сам менеджер паролей вполне можно поставить и фразу, но и в этом нет смысла: один мастер-пароль вполне реально запомнить и случайный, символов на 10, и он будет надёжнее большинства парольных фраз.


              1. Jogger
                16.02.2019 15:21

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

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

                вполне реально запомнить и случайный, символов на 10, и он будет надёжнее большинства парольных фраз.

                А вот нифига. Запомнить сложнее, подобрать — проще. Вот, я специально для вас сгенерировал в менеджере паролей 10-символьный пароль: -!2>Br'cEf (насколько его легко запомнить — оцените сами) и проверил в упомянутом выше сервисе по проверке энтропии, и результат:
                guess times:
                100 / hour: centuries (throttled online attack)
                10 / second: 31 years (unthrottled online attack)
                10k / second: 12 days (offline attack, slow hash, many cores)
                10B / second: 1 second (offline attack, fast hash, many cores)

                Так что ваш прекрасный пароль на пару порядков (а если точнее — на семь) хуже плохонькой парольной фразы. ?\_(?)_/?