company_banner

А давайте заставим пользователя использовать безопасный пароль


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

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

    Если у вас есть пользователи и они авторизуются по паролю, я предлагаю еще раз посмотреть на свежие рекомендации от таких организаций как National Institute of Standards and Technologies и National Cyber Security Centre.

    В частности, требовать ротации паролей уже не модно. И требовать определенных символов в лучших традициях анекдота про «1ГРЕБАНАЯрозоваяроза» тоже. Давайте пробежимся по основным тезисам и попробуем сделать пользователям удобнее и безопаснее.

    Аутентификация не бинарна


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

    Идеально доверенный пользователь сумел верно ввести пароль и заходит с авторизованного устройства. Чуть меньше доверия пользователю, который зашел с доверенного устройства, но ошибся при вводе пароля. И совсем плохо, если пользователь верно ввел пароль, но устройство недоверенное, второй фактор не подтвержден и IP принадлежит выходной ноде Тора. Вот в третьем случае пора дергать рубильник с надписью «Аларма! Волк украл зайчат!».

    Наша задача, как людей предоставляющих сервис, сделать людям удобно, безопасно и не очень больно, если они ошибаются. Поэтому стоит расставить определенные признаки аномальной активности по порядку, чтобы включать те или иные дополнительные меры защиты аккаунта. Например, после 3-5 неверного ввода пароля предложить пользователю пройти CAPTCHA. Да, ее все ненавидят, но большинство пользователей с ней не столкнется. А те, кто понизил свой рейтинг доверия просто немного замедлятся перед очередным вводом пароля. Зато мы отсечем автоматические атаки на перебор пароля.

    Не надо ограничивать максимальную длину пароля



    Длинные пароли безопаснее. Дайте пользователям их использовать.

    Ну не то, чтобы совсем не надо. Жирные пароли длиной в несколько мегабайт могут потенциально аукнуться переполнением в неожиданном месте или другими странными эффектами. Но условная максимальная длина в 300 символов гарантированно устроит любого типичного пользователя. Более того, этих же рекомендаций придерживается NIST:
    Аутентифицирующая сторона должна разрешать пользователю использование запоминаемых паролей длиной не менее 64 символов.

    А еще для особо одаренных сервисов NIST также дает еще одну важную рекомендацию:
    Усечение пользовательского пароля недопустимо.

    Да, есть крайне странные сервисы, которые считают, что и 12 символов хватит, а значит остальные 28 можно спокойно отрезать и проверять хеш только первого фрагмента. Не знаю, что за пораженный разум до такого додумался, но подобным нередко страдают те же банковские организации. Не делайте так. Если пользователь хочет использовать кусок из Иллиады пополам с фрагментами текстов группы Кровосток — пусть использует.

    Убедитесь, что любые ASCII символы допустимы


    Есть определенные проблемы со спецсимволами. Например, использование "{}/\" или других подобных символов может быть потенциально недопустимым в некоторых ситуациях. Скажем, фигурные скобки могут ломать валидный JSON и вызывать падение обработки пароля. Или символ апострофа, который может использоваться в SQL-инъекциях. Да, форма ввода пароля тоже может быть входными воротами для атаки.

    В теории вы могли бы просто запретить использование подобных символов, чтобы сделать себе проще. Но тем самым вы снизите энтропию пароля пользователя и сделаете ему неудобно, если пароль генерируется автоматически. Придется подбирать определенные паттерны для исключений. Опять же обратимся к Марксу NIST:
    Все печатаемые символы ASCII [RFC 20], включая пробел, должны быть допустимыми для ввода в качестве пароля. Символы Unicode [ISO/ISC 10646] также должны быть допустимыми.

    Да. Все верно. Это ваша головная боль и дополнительное тестирование. Но если пользователь хочет использовать ਬਹੁਤ ਮੁਸ਼ਕਲ ਪਾਸਵਰਡ или මෙයද ඉතා දුෂ්කර මුරපදයකි — дайте ему это сделать. Или добавить символ буррито в пароль для криптостойкости. Имеет право.

    А еще отстаньте от пользователя с требованиями использования специальных символов. Да, вот просто не трогайте его. Пусть использует, что хочет. Исследования массовых утечек говорят о том, что люди все равно используют дурацкие замены со спецсимволами, что совершенно не улучшает ситуацию. В частности Microsoft пишет:
    Большинство людей использует однотипные паттерны, например, заглавная буква в качестве первого символа, спецсимволы и цифры на последних двух позициях. Киберпреступники знают об этом и настраивают свои атаки с перебором по словарю с учетом типичных замен, таких как «s» на "$", «a» на "@" и «i» на «l».

    Да-да, тот самый Microsoft из-за которого миллионы людей каждый месяц придумывают новый пароль, не совпадающий с предыдущими, содержащие спецсимволы и буквы в разном регистре. Именно они в своих гайдлайнах теперь пишут «Eliminate character-composition requirements».

    Ведь в итоге, типичные утилиты вроде cain and abel, hashcat, john the ripper могут подобрать пароль в течение нескольких часов или даже минут на типичной видеокарте, если использовалось стандартное словарное слово и типичный паттерн замены.

    Не используйте подсказки для паролей


    Забытый пароль гораздо безопаснее похоронить навсегда, чем хранить в БД подсказку для пользователя в открытом виде.

    В 2013 году у Adobe утекла база с паролями. Зашифрована она была криво, но самое неприятное, что она содержала подсказки для восстановления, над чем и не преминул поиздеваться Рэндал Манро в xkcd.
    Того же мнения придерживается NIST, не рекомендующий хранение подсказок в любом виде. Забыл — восстанавливай через почту со всеми дополнительными проверками.

    Снизьте нагрузку на мозг пользователя


    National Cyber Security Centre выпустил крутую инфографику. Позволю себе процитировать небольшой фрагмент:

    Обратите внимание, что основная проблема с паролями связана с тем, что хороший пароль случаен и его почти нереально запомнить. Если сервисов много, то пользователь почти неизбежно будет использовать один и тот же пароль везде, где можно. Особо продвинутые сделают что-то вроде «myp@ssword_habr.com». Естественно, что компрометация пароля в одном месте автоматически ставит под удар аккаунты во всех остальных сервисах.
    Поэтому, дайте пользователю использовать менеджеры паролей. Да, это как специальный кошелек для банковских карт, который позволяет потерять их одновременно. Но тут надо понимать, что компрометация оффлайн хранилища паролей — довольно редкая ситуация, в отличие от компрометации одинаковых паролей на разных ресурсах. Менеджеру паролей не нужно быть идеальным. Ему нужно быть лучше, чем однотипные пароли везде. Не будьте как некоторые нехорошие сервисы, которые блокируют возможность вставки пароля в поле из буфера обмена. Это явно заставляет пользователя отказаться от менеджера паролей и использовать слабый вариант.

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

    Выводы


    1. Будьте добрее к пользователю. Не надо заставлять его придумывать типовые паттерны и делать глупости. Стандартные привычные требования прям подталкивают его к этому. Просто соблюдайте несколько пунктов:
    2. Используйте аутентификацию по ключу вместо паролей там, где это применимо.
    3. Не давайте пользователю использовать пароль, если он есть в словарных базах. Неважно, он их туда слил или кто-то еще.
    4. Сообщайте пользователю, если его пароль появился в словарных базах. Поднимайте тревогу и требуйте второй фактор при следующем входе. Скомпрометированные пароли будут применены почти сразу.
    5. Требуйте определенной длины паролей и не препятствуйте, если пользователь хочет действительно длинный пароль.
    6. Убедитесь, что вы допускаете любые символы в качестве пароля.





    RUVDS.com
    VDS/VPS-хостинг. Скидка 10% по коду HABR

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

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

      На КДПВ злая бабушка, надо полагать.
        +11
        В её лучшие годы
          0
          Пишу сюда для заметности.
          Почему в статье нет ни слова про UTF-8 и кириллицу?
          Это многократно увеличивает сложность подбора даже трудно запоминаемого пароля, описанного в статье!
            0
            Все печатаемые символы ASCII [RFC 20], включая пробел, должны быть допустимыми для ввода в качестве пароля. Символы Unicode [ISO/ISC 10646] также должны быть допустимыми.

            На жёлтом фоне
          +2
          … но что пытается рассмотреть товарищ в шкафу со стороны шгутов, да ещё с такого расстояния?:)
            +1
            Бэкдор в Нарнию ищет?

            Запрет словарных паролей выглядит странно. Я считаю, что сервис вообще не должен требовать ничего от пользователя, если пользователь клиент разумеется. Хоть по IP пусть авторизируется. Но с другой стороны, дать возможность настройки безопасности, предупредив какие могут быть уязвимости. Так, к примеру, многие считают СМС канал очень защищенным.
              0
              почему то сразу подумал что он прислушивается, слева от себя, но разве в этих машинах были реле?
                +1

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

                  +1
                  а мне кажется, что их как будто внезапно побеспокоили, но у дамы кольцо если что:)
                0

                Дебажит

              +31
              И совсем плохо, если пользователь верно ввел пароль, но устройство недоверенное, второй фактор не подтвержден и IP принадлежит выходной ноде Тора. Вот в третьем случае пора дергать рубильник с надписью «Аларма! Волк украл зайчат!».

              А вот за это бить ногами хочется. Когда в гостях пытаешся показать фото, а гугл кричит «недоверенное устройство».
                +4
                Да гугл временами вообще охреневает. Меня иногда дома с домашнего компьютера не пускает. «Недоверенное устройство». Вводишь код с только что присланной гуглом же смски, все равно не пускает. Приходите позже, говорит. Скотина!
                  +3
                  К сожалению не только гугл. Всяческие майлры и яндексы от него не отстают.
                    +1

                    Ой, не надо про майлру))
                    Несколько дней назад заходил через браузер в почту, ввожу логин-пароль — выкидывает капчу. Капчу я не разгадываю, страница обновляется и я… оказываюсь в своём ящике, где меня ждут письма "подозрительная попытка входа" и "вход с нового устройства".
                    Вот до сих пор как вспомню, так O_oфигеваю.

                    0
                    А сам светит почту аккаунта на всех своих сервисах, типа ютуба. А если почта была создана ещё до появления ютуба и имеет вид имя.фамилияКод_региона@gmail.com? И поменять её не даёт.
                    +2
                    А вы, батенька, гуманииист…
                    За это надо руки в мясорубке проворачивать по самую задницу!
                      0

                      Гугл правильно предупреждает. У хозяев в компе вполне может оказаться сборщик паролей, о котором они не подозревают.


                      Для показа фото в гостях давно придумали расшаривание и приватные ссылки.

                        +1
                        Поубывав бы! (с)
                        Почти все почты практически похерили возможность выйти через Тор, что очень напрягает, когда порты закрыты. Более того, периодически начинают подозревать в плохом, когда выходишь с обычного мобильного инета. А гугель и яндекс при поиске из режима приватности прямо заявляют, что ты бот. Им, видите ли, настоящие куки подавай. Скотины.
                        +1
                        Гораздо лучше поднять тревогу, если пароль всплывет в одном из многочисленных словарей утечек.

                        А как сервис об этом узнает?

                          +2

                          Можно мониторить крупные базы утекших паролей, как это Firefox и Google делает. Мне кажется, это разумная мера. Понятно, что у нормального сервиса есть только хеши, но это не мешает свериться с хешами в БД.

                            +1
                            Не думаю, что алгоритм нахождения хэша пароля в разных базах будет одинаковым, а значит и такие проверки в принципе ничего не дают.
                            Хотя, никто не мешает проверять пароль в момент входа пользователя (при достаточном быстродействии) и сообщать ему об этом. Но здесь также должен использоваться принцип разумности.
                              +4
                              Вы же знаете как вы хешируете пароли у себя. Берите базу утекших паролей (в ней они в открытом виде), хешируйте каждый своим алгоритмом и сравнивайте с хешем в вашей базе.
                                +4

                                А как же соль? Разве правильная практика — это не генерить случайную соль на каждый пароль, да еще и хешировать каким-нибудь bcrypt или scrypt, которые намного дольше простого SHA-1 считаются? Вам же под каждую соль придется всю базу утекшую паролей заново хешировать.

                                  –1

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

                                    +1
                                    Если вы будете сопоставлять пароли пользователей с базой утечек «неспеша и в беграунде», значит вы будете хранить пароли ваших пользователей в открытом виде, или по крайней мере в таком виде, с котором они будут сопоставимы вами, а значит и злоумышленником, скомпрометировавшим ваш сервер.

                                    Тем самым вы нивелируете саму суть хеширования и соления паролей.
                                      0

                                      Не значит. Это значит, что я буду солить и хешировать пароли из базы утечек и сверять со своими хешами.

                                        +4
                                        В таком случае вам прийдется использовать относительно слабые криптографические функции для хеширования паролей, вроде SHA или BLAKE.

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

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

                                        Просто для справки: сейчас в отрытом доступе находится 573 миллиона утекших паролей. Надежная функция для хешировния паролей должна выполнятся миллисекунды. Допустим, хеширование выполняется за 10ms, что довольно слабо. В таком случае, проверка одного пользовательского пароля будет выполнятся 66 дней. А если у вас их сто тысяч или миллион?
                                          +3
                                          Просто проверяйте пароль пользователя всякий раз в момент регистрации, авторизации и смены пароля. Если используете собственную базу данных – можно, в принципе, сопоставлять даже без хеширования, в открытом виде. Это значительно эфективнее с точки зрения вычислительных ресурсов и не требует снижения мер защищенности хранения паролей у себя.

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

                                      Bcrypt, кстати, уже прошел аудит?

                                        0

                                        Раз уж зашёл разговор, то решил спросить.


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

                                          0
                                          Получается, что в таблице пользователя три колонки: логин, пароль, соль.
                                          Верно. Если совсем придираться то еще одним обязательным полем должно быть время следующей успешной попытки авторизации, для защиты от брут форса.
                                          При регистрации пользователя или смене пароля мы создаём новую соль и затем подставляем её к паролю?
                                          Да, для каждой пары логин+пароль должна быть уникальная соль.
                                          Насколько я понимаю, при новой сессии (логине) соль не генерируется? Или после успешной проверки со старой солью лучше перехешировать пароль (который все ещё хранится где-то в переменной) с новой солью?
                                          В этом нет необходимости. Пароли солятся, чтобы в случае взлома ваших серверов максимально усложнить злоумышленнику восстановление паролей. Для этого достаточно чтобы соль была уникальной, истинно случайной (/dev/random), и достаточно большой (32 байта).

                                          От того, что вы пересолите пароль 10 раз, жизнь хакера точно не усложнится, а возможно даже упростится, ведь теперь он может узнать несколько результатов хеширования для одного и того же пароля (само по себе это не компрометирует пароль, но в сочетании с другими уязвимостями может упростить атаку).
                                            0
                                            Получается, что в таблице пользователя три колонки: логин, пароль, соль.

                                            PHP при использовании встроенных функций хранит пароль с солью в одном поле. Там ещё специальная пометка, какой алгоритм использовался, и поэтому нет никаких проблем поменять его в будущем, не потеряв доступа к старым паролям.
                                      0
                                      На входе пользователя это надо проверять. На входе пароль есть.
                                        0

                                        В момент авторизации можно сырой пароль сверить

                                        0
                                        Одним запросом к API haveibeenpwned.
                                          0

                                          Это если не солёный. Хотя соль у сервиса должна быть.

                                            0
                                            В каком смысле? Сервису известен не соленый и не хешированный пароль в момент выбора пароля пользователем.
                                              0

                                              А если утечка после произошла? Надо хешировать базы паролей и искать аналогичные хеши у себя.

                                                +2
                                                Если вы можете сопоставить пароли, которые уже находятся в вашей базе данных с публичными базами утечек, значит это сможет сделать и злоумышленник, получивший доступ к вашему серверу.

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

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

                                                Здесь вы пытаетесь решить две задачи, которые отчасти противоречат друг другу:

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

                                                2. С другой стороны, защититься от несанкционированного доступа к вам в случае утечки пароля по стороннему каналу.

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

                                                Хорошая новость состоит в том, что вы можете перепроверять пароль в момент каждой авторизации, и тем самым заблокировать потенциальную атаку в случае если пароль подходит И был недавно обнаружен в новых утечках, запросив у пользователя сменить пароль через надежный канал связи (почту), и/или потребовав дополнительный фактор авторизации (мобильный телефон, 2FA и т.п.).
                                        +5
                                        1. "Вот в третьем случае пора дергать рубильник с надписью «Аларма! Волк украл зайчат!»" — этот тезис стоит обосновать.
                                        2. Интересно, как Гугл понимает, что это я куда-то уехал, а не «злые враги» мой пароль украли?
                                        По моему опыту — никак. Поэтому с их почты ушел.
                                        А потом раз — и новую почту в РФ заблокировали. Т.ч. хожу туда теперь через Тор — см. п.1.
                                          +5
                                          Интересно, как Гугл понимает, что это я куда-то уехал, а не «злые враги» мой пароль украли?
                                          Если у вас телефон на Андроиде, то гугл про ваши перемещения знает чуть больше чем все :-)
                                            +4
                                            По моему опыту — никак.

                                            гугл про ваши перемещения знает чуть больше чем все :-)

                                            И при этом в почту не пускает…
                                              0
                                              Аналогичная ситуация с почтой была. У меня Outlook забирает почту с gmail одновременно дома и в офисе. И вдруг в офисном аутлуке гугл перестал пускать — говорит, что подозрительное устройство. На почту прилетело письмо с просьбой подтвердить, что это я. Подтвердил. Но это не помогло. Единственный способ, после которого заработало — это в настройках google акаунта поставить галочку less secure access. Нифига непонятно, что она значит, но заработало с тех пор. Правда, иногда ругается и предлагает включить заново more secure.
                                                0
                                                less secure — по паролю, secure — через OAuth. Но это гугл, там могут быть всякие нюансы ещё.
                                                  0
                                                  хехе, у меня личный аккаунт забирает почту с рабочего, который принадлежит тоже мне и привязан к личному
                                                  так забирать он может, а при попытке отправить говорит «включите недоверенные устройства»
                                                  и делать это надо постоянно, не отследил пока периодичность, но довольно часто, несколько раз в год
                                                    0

                                                    У Гугла для таких сценариев есть специальная штука — application password. Советую для этого аутлука создать отдельный пароль.

                                                    0
                                                    Гугл большой… Правая рука не знает, то, что знает левая. Безопасность!
                                                  0
                                                  Сейчас очень многие сервисы создают «отпечаток» устройства (как пример: ОС + браузер + мак-адрес), с которого производится вход. Поэтому если «отпечаток устройства», с которого обычно входят, не именяется — тревогу, как правило, не поднимают. (вы уехали, а не «злые враги» спионерили пароль).
                                                    0

                                                    Короче, все сводится к скорингу и вероятности злонамеренного доступа.

                                                      +1

                                                      Особенно радует заходить с мозиллы с парой дополнений… Вечные машины/светофоры/пожарные гидранты… И это с одного IP :)

                                                        0
                                                        ОС + браузер + мак-адрес
                                                        Не очень удачный пример. Браузер MAC-адрес не передаёт никуда. А если это приложение вне браузера (которое уже может прочитать MAC-адрес), то браузер тут не при чём.
                                                      +4
                                                      Вот привязка к устройству или адресу в качестве второго фактора — зло. Гугл особенно этим любит страдать: уехал в другой город, и почту уже не прочесть.

                                                      Второй фактор если и делать, то априори восстановимый типа одноразывых кодов.
                                                        +2
                                                        Гугл особенно этим любит страдать: уехал в другой город, и почту уже не прочесть.

                                                        Вероятно, это не у всех (и/или не всегда) так. Я могу совершенно спокойно зайти на почту с адреса в США, при этом мой телефон находится в Германии — никаких вопросов и подозрений от гугла (кроме сообщения о том что "логин с нового устройства").

                                                          +1
                                                          кроме сообщения о том что «логин с нового устройства»
                                                          Ну, обычно там еще приписка, что попытка входа заблокирована в целях безопасности :)
                                                            0

                                                            Не-не, логин успешный, приписка есть о том что "если это не вы, то...", и всё.

                                                              0

                                                              Приходит на почту при заходе в почту :D
                                                              (справедливости ради, приходит еще и на телефон)

                                                        +2
                                                        Да, есть крайне странные сервисы, которые считают, что и 12 символов хватит, а значит остальные 28 можно спокойно отрезать и проверять хеш только первого фрагмента.


                                                        Это обычно выглядит по другому, при регистрации пароль вводится весь, а при логине обрезается. И ты такой сидишь, скопипастив пароль из одного и того же места, и не можешь понять что не так.
                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                            0

                                                            Со шваброй, ага.

                                                            +3
                                                            2020 год. у МТС банка длина пароля 10 символов! максимум!
                                                              0
                                                              Пффф!
                                                              У Сбера 5. ЦИФР. Только 5. Не символов. Цифр.
                                                              Я сам спрашивал:
                                                              image

                                                              3aBulon
                                                                0
                                                                Боюсь, эта ссылка будет работать только для вас. Насчёт цифр — в пароле от сбербанк-онлайна таких ограничений точно нет (например, у меня пароль из 30 символов, не ограничивающийся буквами и цифрами). Возможно, вы говорите о 2-факторной авторизации, но 5 цифр для второго фактора вполне достаточно.
                                                                  +1

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


                                                                  (А на последующий вопрос про то, хешируют ли они пароли, саппорт в твиттере ответил «Нет, надёжный пароль нужно придумать вам самим». Но стоит помнить, что в каждой шутке есть доля шутки :-)

                                                                    +1
                                                                    Однако, в сберонлайне пароли не чувствительны к регистру, так что если пароль полагается на игру с регистром — всё, приехали.

                                                                    Этим многие грешат, да. Например, Blizzard.

                                                                    А на последующий вопрос про то, хешируют ли они пароли, саппорт в твиттере ответил «Нет, надёжный пароль нужно придумать вам самим»
                                                                    Ну там вполне очевидно, что SMM-щик не знает, что такое «хэширование».
                                                                    +2
                                                                    Это пароль от мобильного приложения, на устройстве, которое было авторизованно через привязанный мобильник и почту. И называется оно пин-кодом. Его цель — защитить от несанкционированного доступа к устройству пользователя. Не знаю, передаётся он куда-либо или хранится на устройстве. Но не суть, паролем в данном случае является отпечаток самого устройства. Тут возникают другие потенциальные опасности, но с длинной пин кода они уже не особо связанны, имхо.
                                                                      0
                                                                      del
                                                                      0

                                                                      убрир — 4 цифры, кто меньше? =\

                                                                      +4
                                                                      Случайный пароль сложно запомнить, это да. Зато можно придумать удобный способ генерации почти случайных паролей из чего-то простого. Например:
                                                                      echo "qwerty" | md5sum -
                                                                      и вот мы уже получаем надёжный пароль (a86850deb2742ec3cb41518e26aa2d89), который шиш кто подберёт, но который при этом запоминать не надо — ведь мы знаем, как его можно сгенерировать из простого запоминаемого набора символов.
                                                                      Или так:
                                                                      echo "qwerty" | base64

                                                                      Вывод: cXdlcnR5Cg==
                                                                        +1
                                                                        Без длинной соли — плохой способ. Строка вида a86850deb2742ec3cb41518e26aa2d89 сразу выдаёт в себе md5-хеш, для которых есть радужные таблицы. И qwerty там точно будет.

                                                                        Ну то есть таким образом можно делать кучу паролей для неважных сервисов.
                                                                        Считаем md5 от password_url_salt и подставляем адреса сервисов.
                                                                          0

                                                                          Непонятен бонус относительно истинно случайной генерации

                                                                            0

                                                                            Нужно использовать PBKDF2 от соли и имени сервиса


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

                                                                              +1
                                                                              Вижу пароль в 25 символов — пароль сгенерирован в CryptoPass — username@url известны — можно угадывать/брутфорсить secret. При успехе — восстанавливаются все пароли.
                                                                                +1

                                                                                Ну так secret должен быть не 16 бит, а нормальной длины. Кроме того, PBKDF2 брутфорсить мешает. Для того и придуман, Каждая попытка достаточно медленно вычисляется. Если хочется, можно на Argon2 заменить.

                                                                            +2

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


                                                                            P.S. a86850deb2742ec3cb41518e26aa2d89 — это хэш от qwerty\n. Хэш от qwerty нужно считать как


                                                                            echo -n "qwerty" | md5sum

                                                                            Получится d8578edf8458ce06fbc5bb76a58c5ca4.

                                                                              +4
                                                                              это хэш от qwerty\n.

                                                                              Случайно посолили
                                                                              0
                                                                              Без длинной соли — плохой способ. Строка вида a86850deb2742ec3cb41518e26aa2d89 сразу выдаёт в себе md5-хеш, для которых есть радужные таблицы. И qwerty там точно будет

                                                                              Окей, а если мы возьмём хеш от хеша?
                                                                              echo "qwerty" | md5sum | md5sum

                                                                              Не думаю что в радужной таблице найдется хеш на хеш (а может я просто наивный)
                                                                                0
                                                                                в радужной таблице

                                                                                Говорю же, всё есть в гугле. Первый результат
                                                                                2 нояб. 2015 г. — Decoded hash md5x2: 897c8fde25c5cc5270cda61425eed3c8: qwerty (unhashed, decoded, lookup, decrypted, decoded)

                                                                                Безо всяких радужных таблиц.
                                                                                  0
                                                                                  Безо всяких радужных таблиц.


                                                                                  google проиндексировал радужные таблицы. Теперь радужные таблицы есть в google ;)
                                                                                    +1
                                                                                    Теперь радужные таблицы есть в google ;)

                                                                                    Всё уже украдено до Вас
                                                                                    Сисадмин желал подобрать себе стойкий пароль для централизованной авторизации через radius-сервер. Он обратился за советом к Инь Фу Во.
                                                                                    — Как вы думаете, Учитель, пароль "史達林格勒戰役" стойкий?
                                                                                    — Нет, – ответил мастер Инь, – это словарный пароль.
                                                                                    — Но такого слова нет в словарях…
                                                                                    — «Словарный» означает, что это сочетание символов есть в wordlists, то есть «словарях» для перебора, которые подключаются к программам криптоанализа. Эти словари составляются из всех сочетаний символов, которые когда-либо встречались в Сети.
                                                                                    — А пароль «Pft,bcm» подойдёт?
                                                                                    — Вряд ли. Он тоже словарный.
                                                                                    — Но как же? Это же…
                                                                                    — Введи это сочетание в Гугле – и сам увидишь.
                                                                                    Сисадмин защёлкал клавишами.
                                                                                    — О, да. Вы правы, Учитель.
                                                                                    Через некоторое время Сисадмин воскликнул:
                                                                                    — Учитель, я подобрал хороший пароль, которого не может быть в словарях.
                                                                                    Инь Фу Во кивнул.
                                                                                    — Я ввёл его в Гугле, — продолжал Сисадмин, — и убедился, что в Сети такого сочетания нет.
                                                                                    — Теперь есть.

                                                                                    Суждения об информационной безопасности мудреца и учителя Инь Фу Во, записанные его учениками

                                                                                0
                                                                                Строка вида a86850deb2742ec3cb41518e26aa2d89 сразу выдаёт в себе md5-хеш, для которых есть радужные таблицы. И qwerty там точно будет.

                                                                                А если первый символ убрать? Лучше, конечно, несколько, и поменять на соль, но принцип, думаю, понятен

                                                                                  0
                                                                                  Вы не поняли. Ну и что этот будет *хэш* будет в радужных таблицах и что он соотвествует изначально строке qwerty?

                                                                                  Пользователь на этапе регистрации введёт a86850deb2742ec3cb41518e26aa2d89 в поле «придумайте пароль», и поэтому в базу пойдёт уже либо хэш от a86850deb2742ec3cb41518e26aa2d89, либо хэш от этого + соль.
                                                                                  0
                                                                                  Из минусов, нужно или уметь считать md5 или base64 на листочке, или обязательно иметь доступ к соответствующему калькулятору.
                                                                                  Ну и быть в определенном смысле стоиком чтобы иногда набирать пароли вида a86850deb2742ec3cb41518e26aa2d89 вручную.
                                                                                    0
                                                                                    А если есть доступ к «калькулятору», то на него же можно установить и менеджер паролей как правило.
                                                                                    +1
                                                                                    и вот мы уже получаем надёжный пароль (a86850deb2742ec3cb41518e26aa2d89)

                                                                                    Результатов: примерно 448 (0,49 сек.)

                                                                                    Хеши всех простых строк давно уже в интернете. И даже двойные хеши.
                                                                                      0

                                                                                      А если попробовать сделать не 2 хэша, а 5?


                                                                                      echo -n 'qwerty' | md5sum | md5sum | md5sum | md5sum | md5sum

                                                                                      Результат: 8a46d17ffd17029d460fa1a36c3c98bc


                                                                                      Или миксовать md5 и base64:


                                                                                      echo -n 'qwerty' | md5sum | base64 | md5sum | base64 | md5sum | base64 | md5sum | base64 | md5sum | base64

                                                                                      Результат: N2FkY2UyOGJlZDNiNDczNjkxYjllZGY3ZGI1YzhkN2EgIC0K


                                                                                      Просто нужно запоминать последовательность хэшей (и не только).

                                                                                        0
                                                                                        eprint.iacr.org/2006/105.pdf
                                                                                        Version 2 of this paper contains the appendix with the description of more tunnels. These tunnels further decrease the average time of MD5 collision to 31 seconds. On PC Intel Pentium 4 (3,2 GHz) it is 17 seconds in average.
                                                                                          0
                                                                                          Сгенерировать 2 128-байтных сообщения с коллизией != обращение хеш-функции.
                                                                                            0
                                                                                            Тоже верно. Но там довольно много проблем у функции было помимо коллизий, если я не ошибаюсь.
                                                                                      +1
                                                                                      Если ваш пароль гуглится, значит это плохой пароль.

                                                                                      (пожалуйста, только не гуглите собственные пароли).
                                                                                      +2

                                                                                      Плохо, что нет варианта "Дайте пользователю не использовать пароль".


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

                                                                                        +3
                                                                                        >У каждого в карманах по несколько хардварных токенов авторизации, телефоны которые могли бы таким токеном работать

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

                                                                                          Не смартфон, а просто токен (вроде бы предполагается, что он должен для всех сервисов, что WebAuthn умеют). А смартфон — это для тех, у кого уже старый лишний на полках валяется.

                                                                                            0
                                                                                            А в чем проблема? Смартфоны сейчас есть практически у всех. А у кого нет — пусть по-старинке по паролю заходят. Но остальные смогли бы обойтись вовсе без него, подтверждая, что это реально они с помощью своего смартфона. Это ведь удобно? Что-то похожее уже существует, когда вместо смс-кодов приложения просто просит нажать кнопку во всплывающем на привязанном устройстве окне.
                                                                                              0

                                                                                              Сейчас оно не стандартизировано и каждый сервис (экосистема) свое приложение-аутентификатор хочет. И смарт для работы должен быть онлайн. А WebAuthn стандартизован и оффлайновую работу обещает.

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

                                                                                                А WebAuthn стандартизован...
                                                                                                Так это вроде бы только с одного устройства можно так заходить, а с другого уже не получится — нет разве?
                                                                                                  0
                                                                                                  обычно
                                                                                                  Бывают и необычные ситуации: отсутствие мобильной сети при наличии корпоративной проводной, как пример.
                                                                                                    0

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


                                                                                                    Устройств, правда, лучше бы иметь не одно — для восстановления доступа, если первое потеряешь.

                                                                                                  0
                                                                                                  Потому что если потеряешь телефон, то всё. Столкнулись недавно с подругой, которая потеряла телефон в аэропорту во время пересадки, а у неё на всём стояла двойная аутентификация. Симку из России она получить не могла, в итоге осталась без доступа ко всем своим аккаунтам. Не говоря уже про более банальные случае, если смартфон разрядился, а войти в аккаунт надо вот прямо сейчас.
                                                                                                    +1

                                                                                                    Вообще-то при включении двух-факторной аутентификации даются коды сброса.

                                                                                                      0

                                                                                                      Которые хранятся на [утерянном] телефоне или в облаках (за двухфакторкой). Вы же не ожидаете от среднестатистического пользователя запомнить коды восстановления?

                                                                                                        0
                                                                                                        ну так не надо хранить запасной ключ от машины в машине
                                                                                                        распечатать без опознавательных знаков и положить в бумажник, например
                                                                                                      0

                                                                                                      Устройств-аутентификатаров должно быть несколько. (Тут, кстати, надо бить тех кто реализует 2FA, но этого не понимает). Или должен быть альтернативный вариант входа, не использующий этого телефона.


                                                                                                      Ситуация в точности эквивалентна "забыл пароль или мастер-пароль от менеджера паролей".

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

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

                                                                                                        0
                                                                                                        Храните данные инициализации аутентификатора в надежно шифрованном хранилище паролей.
                                                                                                          0
                                                                                                          Вместе с паролем? А то получается, что оба фактора лежат в одном месте.
                                                                                                    0
                                                                                                    Почему забыли про авторизацию через Гугл/Фейсбук/etc?
                                                                                                      +3

                                                                                                      Из паранойи. Заблокируют гугловую/фейсбучную учетку, а сервис, в котором ты авторизоваться пытаешься, о такой возможности не подумал — и "Ой".

                                                                                                        0
                                                                                                        Если нет способа восстановления аккаунта ты если и пароль забудешь то все
                                                                                                        0
                                                                                                        Потому что это ещё хуже.
                                                                                                        0
                                                                                                        WebAuthn — тоже такое себе… пользуюсь. юзерам оччень нравится (да и мне тоже): ткнул в иконку, приложил палец, работаешь… или в винде: открыл сайт, ввёл пин-код своей же собственной винды, работаешь…
                                                                                                        но! мне актитвно не нравятся несколько моментов:
                                                                                                        а) подключение к проекту — не самая тривиальная штука, даже при уже готовых библиотеках. там и бэк, и фронт, и БД — джун за полчасика побыстрячку не прикрутит, миддла давай что ли, ну это ещё ладно;
                                                                                                        б) производится аутентификация не юзера, а устройства: хорошо если телефона, а можно и десктоп (общий?) так же завести, сервер и не заметит разницы.
                                                                                                        т.е. сервер видит только устройство (телефон), а сколько разных людей авторизуют это устройство своим отпечатком — ему уже иррелевантно;
                                                                                                        в) когда просишь приложить пальчик, ты уже должен знать, какого именно юзера ты пускаешь. хотелось бы что-то типа «сначала палец, а там уже посмотрим кто ты, и куда тебя пускать», но нет — работает только «юзер Ваше Величество… чо, правда? а ну, докажи!»
                                                                                                          0
                                                                                                          ну так ведь:
                                                                                                          а) авторизация — серьезный буизнес, нгоже ее на джунов спихивать;
                                                                                                          б) не пускайте других людей ксвоим устройствам. Десктоп может быть общим, но учетки укаждого дожны ыбть личные.
                                                                                                          в) ээээ, а в чем проблема-то?
                                                                                                        +5
                                                                                                        Поубивать бы всех кто решает какой сложности пароль должен быть, есть места где мне вообще не важно наличие пароля. И в такие места я всё равно запихаю «часто используемый» пароль.
                                                                                                          0
                                                                                                          Да уж, вынужденно генерить пароль с цифрами, древнекитайскими иероглифами, парой слов на квенья и клингонской пословицей на сайте по доставке шавермы из ближайшей подворотни — это прекрасный способ выбесить даже тибетского монаха
                                                                                                          +2

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

                                                                                                            +1

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


                                                                                                            (И да, хозяин сервиса должен солить пароль).

                                                                                                              +1

                                                                                                              Для этого не обязательно иметь свой сервер Gmail поддерживает алиасы формата username+alias@gmail.com, ещё вариант GMail, Outlook бизнес аккаунт со своим доменом и ловить всю почту на any@domain, цена вопроса 4-6 usd в месяц на одного юзера (больше и не потребуется) со всякими доп. плюшками.

                                                                                                                +2

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

                                                                                                                  0
                                                                                                                  А вот это уже всё от того, что правильная регулярка позволяющая отсеять ненужное именно на все случаи жизни для почты имеет вид типа:
                                                                                                                  регулярка почты
                                                                                                                  (?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
                                                                                                                  )+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
                                                                                                                  \r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(
                                                                                                                  ?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[
                                                                                                                  \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0
                                                                                                                  31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\
                                                                                                                  ](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+
                                                                                                                  (?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
                                                                                                                  (?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
                                                                                                                  |(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)
                                                                                                                  ?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\
                                                                                                                  r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
                                                                                                                  \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)
                                                                                                                  ?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t]
                                                                                                                  )*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
                                                                                                                  \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
                                                                                                                  )(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
                                                                                                                  )+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)
                                                                                                                  *:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
                                                                                                                  |\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r
                                                                                                                  \n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
                                                                                                                  \r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t
                                                                                                                  ]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031
                                                                                                                  ]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](
                                                                                                                  ?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?
                                                                                                                  :(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?
                                                                                                                  :\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?
                                                                                                                  :(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?
                                                                                                                  [ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\]
                                                                                                                  \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|
                                                                                                                  \\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>
                                                                                                                  @,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"
                                                                                                                  (?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t]
                                                                                                                  )*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
                                                                                                                  ".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?
                                                                                                                  :[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[
                                                                                                                  \]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-
                                                                                                                  \031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(
                                                                                                                  ?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;
                                                                                                                  :\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([
                                                                                                                  ^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\"
                                                                                                                  .\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\
                                                                                                                  ]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\
                                                                                                                  [\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\
                                                                                                                  r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\]
                                                                                                                  \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]
                                                                                                                  |\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \0
                                                                                                                  00-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\
                                                                                                                  .|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,
                                                                                                                  ;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?
                                                                                                                  :[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*
                                                                                                                  (?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
                                                                                                                  \[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[
                                                                                                                  ^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]
                                                                                                                  ]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s*(
                                                                                                                  ?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
                                                                                                                  ".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(
                                                                                                                  ?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[
                                                                                                                  \["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t
                                                                                                                  ])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t
                                                                                                                  ])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?
                                                                                                                  :\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|
                                                                                                                  \Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:
                                                                                                                  [^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\
                                                                                                                  ]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)
                                                                                                                  ?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["
                                                                                                                  ()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)
                                                                                                                  ?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>
                                                                                                                  @,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[
                                                                                                                  \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,
                                                                                                                  ;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t]
                                                                                                                  )*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
                                                                                                                  ".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?
                                                                                                                  (?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
                                                                                                                  \[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:
                                                                                                                  \r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\[
                                                                                                                  "()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])
                                                                                                                  *))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])
                                                                                                                  +|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\
                                                                                                                  .(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
                                                                                                                  |(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(
                                                                                                                  ?:\r\n)?[ \t])*))*)?;\s*)

                                                                                                                  Да, это самая длинная версия для perl\ruby, но общий смысл вы поняли, думаю. Многие ограничиваются чем-то типа r'\w+@\w+\.\w+' «И так сойдёт!»
                                                                                                                    +1
                                                                                                                    Не сойдет и не подходит. Почта типа info@com валидная, но этими регулярками признается некорректной.
                                                                                                                      0

                                                                                                                      Статью не читай @ комментарий пиши?


                                                                                                                      Вы тестовые примеры из списка "всё это валидные email-адреса" прогнали? Много прошло? (Сам проверять вашей регуляркой боюсь).

                                                                                                                        0
                                                                                                                        upd. Да, ссылку не увидел.
                                                                                                                0
                                                                                                                а еще есть портал госуслугнекоторые откровенно фанатичные уникумы, которые обязывают пользователей использовать спецсимволы в пароле, а потом подменяют эти спецсимволы… Вот уж безопасность на запредельной высоте — даже зная пароль фиг зайдешь
                                                                                                                  0

                                                                                                                  А можете поделиться ссылкой, чтобы не быть голословным?


                                                                                                                  Очень интересно, что они и на что подменяют в паролях. И что при этом ломается.

                                                                                                                    +1
                                                                                                                    Это ещё классно работает, когда эти волшебные разработчики не подозревают о наличии каких-либо языков, кроме английского.
                                                                                                                    Часто бывает, что можно регнуться с символами вроде ñ,ç´´´¨ и т.п., а зайти потом нельзя :)
                                                                                                                    При этом символы могут быть в логине. А логин может быть почтой :) И потом уже никакими способами невозможно зарегаться на эту почту — при создании нового акка говорит, что такой уже есть, а когда заходишь, говорит, что такого нет :)
                                                                                                                    +1
                                                                                                                    Сообщайте пользователю, если его пароль появился в словарных базах.
                                                                                                                    Для некоторых разработчиков ещё следует уточнить, что если и проверяете это, то только в момент авторизации пользователя и не хранить пароль в открытом виде.
                                                                                                                    Скомпрометированные пароли будут применены почти сразу.
                                                                                                                    Замечательно. А как корректно, с точки зрения безопасного хранения пароля, «почти сразу» сообщить пользователю?
                                                                                                                      0
                                                                                                                      Но если пользователь хочет использовать ਬਹੁਤ ਮੁਸ਼ਕਲ ਪਾਸਵਰਡ или මෙයද ඉතා දුෂ්කර මුරපදයකි — дайте ему это сделать. Или добавить символ буррито в пароль для криптостойкости. Имеет право.

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

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

                                                                                                                              0

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


                                                                                                                              Запомнилось багом во времена 10.6, где на первой установке раскладка почему-то оставалась русской, а вот на экране логина работала как и везде. И поля, чтоб набрать и скопировать, там тоже нет. Товарищ отца купил аймак, привёз домой, настроил — и попал, благо сброс пароля делается с загрузочного сидюка.

                                                                                                                                +4
                                                                                                                                Пользователи маков — отдельная категория людей, которая сама выбрала свой путь слёз и страдания.
                                                                                                                                  +1

                                                                                                                                  У маков частенько веселье случается с банальной диакритикой.
                                                                                                                                  Задал простейший пароль, типа "ёжик" — и всё. И даже когда знаешь, в чём дело, не всегда есть возможность отдельно набирать диерезисӹ.

                                                                                                                                  0
                                                                                                                                  Если «строго говоря», то есть управляющие символы ASCII.
                                                                                                                                  Ввести, конечно, формально можно, но вот получится ли использовать в пароле NULL, BACKSPACE или возврат каретки.
                                                                                                                                    0
                                                                                                                                    Если это предусмотрено функционалом движка — получится.
                                                                                                                                    0
                                                                                                                                    Верно. Но попробую донести свою мысль. Есть раскладки которые можно добавить в систему. Вполне штатно, не нужно быть хакером.
                                                                                                                                    Если символа в них нет как быть? Не всегда логинишся со своего устройства, иногда приходится с того что есть. И вот тут экзотика может вылезти боком.
                                                                                                                                    Фокусы с цифровым вводом кодов требует знания кода нужного символа и практической возможности такого действия. Это точно работает где угодно и похожим образом на мак, андроид, линукс и виндовс?
                                                                                                                                      0
                                                                                                                                      Изначально статья про интернет-сервисы. Так что ситуации, когда какого-то символа нет — исключена на андроиде, линуксе, винде и макаке. «Алиса, спроси у гугля, как выглядит символ рубля».
                                                                                                                                        0
                                                                                                                                        И молчание было ему ответом. Напоминаю что «иногда приходится с того что есть».
                                                                                                                                        В базовом функционале как ситуация со всем этим? Охотно допускаю что нормально, но не уверен.
                                                                                                                                          0
                                                                                                                                          Напоминаю, что если «иногда приходится с того что есть» входить на сайт, то у вас точно есть интернет, а вместе с ним гугл, яндекс, дакдакго, байду и прочая-прочая-прочая. Если вы с их помощью за две минуты не найдёте нужный вам символ, то и слава богу — нечего дошкольникам в интернете делать.
                                                                                                                                            0
                                                                                                                                            входить на сайт, то у вас точно есть интернет, а вместе с ним гугл, яндекс, дакдакго, байду и прочая-прочая-прочая

                                                                                                                                            Совершено не факт, в том то и дело. Но в целом я вашу мысль понял.
                                                                                                                                              0
                                                                                                                                              Поисковики могут заблокировать разве что внутри корпоративной сети, но там и шансы встретиться с незнакомым рабочим окружением стремятся к нолю — всё оборудование и настройки ОС соответствуют политике партии.
                                                                                                                                                0
                                                                                                                                                Я мысль понял, хоть и не поддерживаю ее совершено. Но страдать то если что не мне? :)
                                                                                                                                                  0
                                                                                                                                                  Да не будет никаких страданий. Вся эта ситуация «а что если мне сломают все пальцы на руках, а ногами набирать не-ANSI сложно» притянута за уши. Просто вся эта ситуация с кучей разрозненных требований к паролю нереально накаляет меня как пользователя: один требует обязательно спецсимволы в пароле, другой не допускает спецсимволы в пароле, третий требует спецсимволы обязательно, но из его особого перечня — и всё это для сайтов, на которые ты логинишься два раза в год.
                                                                                                                                                    0
                                                                                                                                                    А вы реально используете пароли с эмодзи? И прочим санскритом? Или разговор чисто теоретический?
                                                                                                                                                      0

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

                                                                                                                                          0

                                                                                                                                          del
                                                                                                                                          (привёл пример с эмодзи, но хабр их не отображает)

                                                                                                                                    0

                                                                                                                                    'Приключенческий задел' — это когда ты приезжаешь к американцем и пытаешься ввести этот самый «ЯоЬот», который у себя замечательно вводил.

                                                                                                                                      0

                                                                                                                                      И в чём там проблема? Как-то же я смог ввести на китайской капче слово 黑, хотя на клавиатуре моего компьютера такой кнопки нет.

                                                                                                                                        0

                                                                                                                                        Лишние хлопоты. Удлинение пароля проще в жизни, чем увеличения словаря символов.

                                                                                                                                          0
                                                                                                                                          Уверены, что ввести jopajopa проще, чем жопа? Я вот абсолютно уверен, что первый вариант в словарях встречается чаще, чем второй, но второй вводится быстрее и проще.
                                                                                                                                  –1
                                                                                                                                  Длина пароля 64-300 символов где будут большие, маленькие буквы, цифры, спец символы, и при этом не будет содержать осмысленного текста и еще и менять его раз в месяц — это конечно круто, но вы реально думаете, что пользователи будут запоминать это? Готов поспорить, что они (пользователи) ограничатся бумажкой с паролем прикленной к монитору (ну или под клавиатурой — если админ ругается на стикеры с паролем).

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

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

                                                                                                                                      0
                                                                                                                                      А где грань разумности? Если ему очень хочется пароль 3 символа, разрешать?
                                                                                                                                        0
                                                                                                                                        Нет, разумеется. Энтропия должна быть в районе 80 бит минимум. При условии, что пароль не бьется по базам утечек и словарям.
                                                                                                                                          +1
                                                                                                                                          Представил себе напротив пароля «Энтропия должна быть минимум 80 бит», и бедных пользователей, которые вообще не поняли, о чём это.
                                                                                                                                            0
                                                                                                                                            пользователям обычно говорят «ваш пароль слишком короткий/ненадёжный»
                                                                                                                                            бесить начинает, когда это не форма ввода делает, а нажатие кнопки
                                                                                                                                              0
                                                                                                                                              Веселее, если форма отправляется, страница перезагружается, а там только эта надпись и пустые поля.
                                                                                                                                    +2
                                                                                                                                    У меня недавно (работаю на удаленке) был забавный случай с этими паролями. Пришло письмо от админов, о том что я обязан сменить пароль, иначе секир башка аккаунт будет уничтожен. Все-бы ничего, но я в это время был в отпуске и после него еще была пара выходных, в общем когда я добрался до этого письма, у меня оставалось всего что-то около пятнадцати минут до конца дня на его смену. Указанный в письме адрес для смены не работал, просто недоступен, пока я там бился, часы перешли нулевую отметку и аккаунт мне автоматически грохнули вместе со всеми доступами, удаленными рабочими столами и прочей тряхомудией.
                                                                                                                                    Далее был целый набор веселых квестов: напиши письмо в поддержку, разберись почему тебя послали, выясни кто руководитель этих обезьян уважаемых коллег-админов, напиши ему письмо, пообщайся с наконец-то снизошедшими до твоей проблемы аристократами от системного администрирования, разберись почему уже неделю они не могут сделать такое простое дело как восстановление аккаунта, напиши их начальнику…
                                                                                                                                    В общем восстанавливал я все три недели, а вы про лучшие практики безопасности… тут бы просто блин не мешали людям работать.
                                                                                                                                      +1
                                                                                                                                      Это какая-то дебильная политика — уничтожать учетную запись, если пароль не был сменен.
                                                                                                                                      Ну и я бы не писал начальнику админов, а писал бы своему, а он уже пусть решает — разбираться с начальником админов самостоятельно или поднимать вопрос еще выше.
                                                                                                                                        +2
                                                                                                                                        Автору поста стоило бы опрос прикрутить: сколько из ИБ — вменяемые люди.
                                                                                                                                        Пока у меня мнение такое: это бездельники с синдромом вахтера — запретить, не пущать…
                                                                                                                                        Других я не видел. Хотя допускаю, что где-то вменяемые встречаются.
                                                                                                                                        Вот ситуация была: хотел на работе статью прочитать про комп. вирусы (сейчас уже ссылку не дам — с месяц назад дело было). Касперский ендпоит секьюрити ее блокирует — контент для взрослых! WTF??? Выясняется: там аналогия про беспорядочные незащищенные связи была…

                                                                                                                                        Кстати, может кто не знает. Каспер ставит корневой сертификат и весь ваш трафик читает. Т.ч. о паролях можно уже не беспокоиться.
                                                                                                                                          0
                                                                                                                                          Каспер ставит корневой сертификат и весь ваш трафик читает. Т.ч. о паролях можно уже не беспокоиться.

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

                                                                                                                                            Он ставит свой CA доверенным и выполняет MitM для всех соединений

                                                                                                                                          +1
                                                                                                                                          Это еще что. Касперский — это ерунда. Ну купили продукт, который глючит, это неприятно, но хотя бы объяснимо. А бывает так, что у них работает 2 отдела. 1-й отдел «воспитывает» бдительность к фишингу и рассылает подметные письма типа «приглагашаем принять участие в тестировании нового корпоративного портала», кто пройдет по ссылке и чего-нибудь введет на этом «портале», на того жалуются начальству, что сотрудник режим ИБ не умеет соблюдать. В это время 2-й отдел проводит плановое обучение информационной безопасности силами какой-то левой конторки и рассылает всем по списку приглашение с какого-то левого адреса со ссылкой на сайт этой конторки. А потом жалуется начальству на тех, кто по ссылке из приглашения не прошел, что они саботируют мероприятия по повышению безопасности.
                                                                                                                                          0
                                                                                                                                          Писал и своему (точнее все алармы слал с копией ему), мне то один хрен кроме этой войнушки заняться нечем было, с отключенным аккаунтом я даже проект собрать не мог (репа мавена за впн спрятана).
                                                                                                                                          Политика дебильная — не спорю, даже выразился бы покрепче, да не хочу на бан нарываться.
                                                                                                                                        +3
                                                                                                                                        И совсем плохо, если пользователь верно ввел пароль, но устройство недоверенное, второй фактор не подтвержден и IP принадлежит выходной ноде Тора.

                                                                                                                                        О Боги, как же я это ненавижу. Вся эта показная забота о безопасности на самом деле скрытое вымогательство номера телефона. Вот Гугл не однажды такое выдал при правильном пароле, и поле для ввода телефона. Поле для ввода любого телефона, потому что я ничего не привязывал.
                                                                                                                                        Просто дайте мне войти по моим сраным логину и паролю! Об их безопасности и сохранности я позабочусь сам. Хочу настройку «Я не дурак».
                                                                                                                                          0
                                                                                                                                          Предлагаю добавить заболевание «безопасность головного мозга».
                                                                                                                                          0

                                                                                                                                          Не знаю, правда или нет, но вот что про пароли в сбере рассказывают


                                                                                                                                          Сбер

                                                                                                                                            0
                                                                                                                                            Правда, в части регистронезависимости. А вот в плане безопасности…
                                                                                                                                              0

                                                                                                                                              Я думал это расчет на термопринтеры, у которых нижнего регистра в шрифтах может и не оказаться. Хотя сейчас возможно таких уже и не осталось

                                                                                                                                                0
                                                                                                                                                Печать паролей?
                                                                                                                                                  +1

                                                                                                                                                  Ну вообще в сбербанк-онлайн первый пароль именно что печатался банкоматом. А было еще время — и печатался второй чек с одноразовыми паролями.

                                                                                                                                                    +1
                                                                                                                                                    Да, было дело. Получал свой 1-й пароль к личному кабинету сбербанка в банкомате. Еще, помнится, сменил его сразу, как только появилась «услуга» смены пароля. А потом с удивлением обнаружил, что старый пароль по-прежнему работает. Не удивлюсь, если он и сейчас продолжает работать, просто теперь я его уже настолько основательно забыл, что и проверить не смогу.
                                                                                                                                                      0

                                                                                                                                                      Работает. К моему SBOL подходят все три распечатанных когда-то в мохнатые времена пароля, и два (!) установленных самостоятельно. Это несколько удручает.

                                                                                                                                                        0
                                                                                                                                                        Безопасность уровня сбер.
                                                                                                                                                0
                                                                                                                                                ...использовать безопасный пароль.
                                                                                                                                                Microsoft ещё в 2019 году публично сообщила, что в настоящее время пароль уже не является средством, достаточным для надёжной защиты, каким бы сложным он ни был!

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

                                                                                                                                                И лишь многофакторная аутентификация (multi-factor authentication — MFA) делает почти все эти попытки бесполезными, потому что она защищает от 99,9% всех попыток взлома.

                                                                                                                                                Поэтому пользователь, защищающий свои учётные записи с помощью одного лишь пароля, может с тем же успехом считать, что не защищает их вовсе!
                                                                                                                                                  +2
                                                                                                                                                  Жуткая чушь.
                                                                                                                                                    0
                                                                                                                                                    Жуткая чушь.
                                                                                                                                                    Почему?
                                                                                                                                                      0
                                                                                                                                                      На подбор 20-ти значного пароля уйдут годы, даже если все эти 300 млн попыток входа будут совершены в один аккаунт.
                                                                                                                                                        0
                                                                                                                                                        И даже если подберут, то это мои проблемы, а не Microsoft.

                                                                                                                                                        Я как-то в гуглофоруме на эту тему общался. Там было высказано мнение, что потеря аккаунта это компрометация сервиса. Но вот обоснование такой позиции мне получить не удалось…
                                                                                                                                                          0
                                                                                                                                                          А если эти пароли не рэндом а по списку?
                                                                                                                                                            0
                                                                                                                                                            В смысле? Пароль 00000000000000000000 скорее всего не является безопасным, не нужно его использовать.
                                                                                                                                                              0
                                                                                                                                                              Объясню. Пароль может быть вполне стойким но не уникальным и уже скомпроментированным.
                                                                                                                                                                0
                                                                                                                                                                Это как не уникальным? У меня каждый пароль уникален.
                                                                                                                                                                  0
                                                                                                                                                                  Уверены что не совпадает ни с чьим паролем во всем мире?
                                                                                                                                                                    0
                                                                                                                                                                    Уверен. Нет, коллизии бывают, но блин, их вероятность крайне низка. Вот если генерировать 100000000000 паролей в секунду и подождать примерно 200 миллионов лет… Тогда да, с вероятностью 50% совпадёт.
                                                                                                                                                            0
                                                                                                                                                            Только его не подберут, а украдут.
                                                                                                                                                              0
                                                                                                                                                              От кражи ничего не спасёт.
                                                                                                                                                            0
                                                                                                                                                            Только что сгенерировал новый рандомный пароль своим password manager-ом. Скажите пожалуйса, какая может быть небезопасность у пароля «qd9LyL00WCN1xs8MOcs1#IAi» и сколько его надо брутфорись при наличии соли и криптостойкого хеша при хранении в БД?

                                                                                                                                                            Вот только что посчитал сколько вариантов перебора: допуспим у нас 23x2(буквы в 2х регистрах)+10(цифры)+10(базовые спрецсимволы)=72 знака рандомно используется в пароле. 24 символа в каждом вариант из 72 знаков это 72^24 = 3.7668638e+44. То есть примерно 37668638000000000000000000000000000000000000 вариантов пароля с такими параметрами. Плюс соль и хеш.
                                                                                                                                                              0

                                                                                                                                                              Уже довольно давно нарисовали такую картинку (reddit/imgur)

                                                                                                                                                                +1
                                                                                                                                                                В пароле, который я привел для примера, этропия примерно 150 бит — а в той таблице максимум 120. Вобщем, стойкие пароли существуют, расходимся.