Человек, как известно, существо ленивое. А тем более, когда касается вопроса выбора устойчивого пароля.

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

В моей практике был случай, когда в домене Active Directory с включенной парольной политикой люди бухгалтеры самостоятельно дошли до идеи того, что пароль вида «Pas$w0rd1234» отлично прокатывает под требования политики. Следствием стало повсеместной использование данного пароля везде и всюду. Отличался он иногда лишь набором цифр.

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

Компания Microsoft любезно сообщает нам по ссылке, что всякий, кто умеет держать правильно в руках компилятор, IDE и умеет правильно произносить C++, способен сам себе библиотеку нужную скомпилировать и использовать по своему разумению. Ваш покорный слуга на такое не способен, вот и пришлось искать готовое решение.

После длительного часа поиска взору были явлены два варианта решения проблемы. Я, конечно, говорю об OpenSource решении. Ведь платных вариантов — от и до.

Вариант №1. OpenPasswordFilter

Коммитов нет уже как года 2. Родной инсталлятор работает через раз, приходится подправлять руками. Создает свою отдельную службу. При обновлении файла паролей DLL-ка автоматически не подхватывает измененное содержимое, нужно останавливать службу, выжидать таймаут, редактировать файл, запускать службу.

Не айс!

Вариант №2. PassFiltEx

Проект активен, жив и даже не надо пинать хладное тело.

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

Итак.
Дано: домен Active Directory test.local
тестовая рабочая станция Windows 8.1 (для условия задачи — несущественно)
фильтр паролей PassFiltEx

  • Скачиваем по ссылке последний релиз PassFiltEx
  • Копируем PassFiltEx.dll в C:\Windows\System32 (или %SystemRoot%\System32).
    Копируем PassFiltExBlacklist.txt в C:\Windows\System32 (или %SystemRoot%\System32). При необходимости дополняем его своими шаблонами


  • Редактируем ветку реестра: HKLM\SYSTEM\CurrentControlSet\Control\Lsa => Notification Packages
    Добавляем PassFiltEx в конец списка. (Расширение указывать не нужно.) Полный список пакетов используемых для проверки будет выглядеть вот так "rassfm scecli PassFiltEx".


  • Перезагружаем контроллер домена.
  • Повторяем вышеуказанную процедуру для всех контроллеров домена.

Также можно добавить следующие записи реестра, что дает большую гибкость в использовании данного фильтра:

Раздел: HKLM\SOFTWARE\PassFiltEx — создается автоматически.

  • HKLM\SOFTWARE\PassFiltEx\BlacklistFileName, REG_SZ, Default: PassFiltExBlacklist.txt

    BlacklistFileName — позволяет указать кастомный путь к файлу с шаблонами паролей. Если у этой записи реестра пустое значение или она не существует, то используется путь по умолчанию, а именно — %SystemRoot%\System32. Можно указать даже сетевой путь, НО нужно помнить, что у файла шаблонов должны быть выставлены четкие разрешения на чтение, запись, удаление, изменение.
  • HKLM\SOFTWARE\PassFiltEx\TokenPercentageOfPassword, REG_DWORD, Default: 60

    TokenPercentageOfPassword — позволяет указать процентное вхождение маски в новый пароль. По умолчанию значение равно 60%. Например, если указано процентное вхождение 60 и в файле шаблонов есть строка starwars, тогда пароль Starwars1! будет отклонен, в то время, как пароль starwars1!DarthVader88 будет принят, поскольку процентное вхождение строки в пароль менее 60%
  • HKLM\SOFTWARE\PassFiltEx\RequireCharClasses, REG_DWORD, Default: 0

    RequireCharClasses — позволяет расширить требования к паролям по сравнению со стандартными требованиями сложности паролей ActiveDirectory. Встроенные требования сложности требуют 3 из 5 возможных различных видов символов: Верхний регистр, Нижний регистр, Цифра, Специальный и Unicode. При помощи данной записи реестра можно установить свои требования к сложности паролей. Значение, которое можно указать, — это набор битов, каждый из которых — соответствующая степень двойки.

    То есть — 1 = нижний регистр, 2 = верхний регистр, 4 = цифра, 8 = спец символ, and 16 = символ Unicode.

    Таким образом, при значении 7 требования будут “Верхний регистр AND нижний регистра AND цифра ”, а при значении 31 — “Верхний регистр AND нижний регистр AND цифра AND спец символ AND символ Unicode”.

    Можно даже комбинировать — 19 = “Верхний регистр AND нижний регистр AND символ Unicode”.


Ряд правил при составлении файла шаблонов:

  • Шаблоны регистронезависимы. Следовательно, запись в файле starwars и StarWarS будет определяться как одинаковое значение.
  • Файл блеклиста перечитывается каждые 60 секунд, таким образом можно спокойно его редактировать, через минуту новые данные уже будут использоваться фильтром.
  • На данный момент нет поддержки Unicode для проверки по шаблону. То есть, использовать Unicode символы в паролях можно, но фильтр не сработает. Это не есть критично, потому что не видел я пользователей, которые пароли в юникоде используют.
  • Желательно не допускать пустых строк в файле шаблонов. В дебаге потом видно ошибку, когда происходит подгрузка данных из файла. Фильтр работает, но зачем лишние эксепшены?

Для дебага в архиве идут батники, позволяющие создать лог и потом его разобрать при помощи, например, Microsoft Message Analyzer.

Данный фильтр паролей использует Event Tracing for Windows.

ETW провайдер для этого фильтра паролей — 07d83223-7594-4852-babc-784803fdf6c5. Так, например, можно настроить трассировку событий после следующей перезгрузки:

logman create trace autosession\PassFiltEx -o %SystemRoot%\Debug\PassFiltEx.etl -p "{07d83223-7594-4852-babc-784803fdf6c5}" 0xFFFFFFFF -ets

Трассировка будет запущена после следующей перезагрузки системы. Чтобы остановить:
logman stop PassFiltEx -ets && logman delete autosession\PassFiltEx -ets
Все эти команды указаны в скриптах StartTracingAtBoot.cmd и StopTracingAtBoot.cmd.

Для разовой проверки работы фильтра можно использовать StartTracing.cmd и StopTracing.cmd.

Для того, чтобы удобно читать выхлоп дебага данного фильтра в Microsoft Message Analyzer рекомендуется использовать следующие настройки:





При остановке лога и разбора в Microsoft Message Analyzer выглядит все примерно вот таким образом:



Здесь видно, что была попытка установить пароль для пользователя — об этом нам говорит волшебное слово SET в дебаге. И пароль был отклонен ввиду наличия его в файле шаблонов и более чем 30% соответствии в вводимом тексте.

При удачной попытке смены пароля видим следующее:



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



Поэтому будьте готовы к звонкам и крикам: «Я ввела пароль как надо, а оно не работает.»

Итог


Данная библиотека позволяет запретить использование простых или стандартных паролей в домене Active Directory. Скажем «Нет!» паролям вида: «P@ssw0rd»,«Qwerty123», «ADm1n098».
Да, безусловно, пользователи полюбят вас еще больше за такую заботу об их безопасности и необходимости придумывать зубодробительные пароли. И, возможно, количество звонков и просьб помочь с паролем у Вас добавится. Но за безопасность приходится платить.

Ссылки на использованные ресурсы:

Статья на Microsoft относительно кастомной библиотеки фильтра паролей: Password Filters
PassFiltEx: PassFiltEx
Ссылка на релиз: Latest Release
Списки паролей:
DanielMiessler lists: Link.
Wordlist from weakpass.com: Link.
Wordlist from berzerk0 repo: Link.
Microsoft Message Analyzer: Microsoft Message Analyzer.

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


  1. BugM
    01.04.2019 18:32
    +4

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

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


    1. dizaar Автор
      01.04.2019 18:36
      -1

      Для

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


      1. rzerda
        01.04.2019 18:48
        +1

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


        Всё-таки, почему не 2FA?


        1. dizaar Автор
          01.04.2019 18:56

          2FA — это отдельный пункт для разговора. Безусловно, использование двухфакторной аутентификации всегда плюс, но не всегда реализуемо.


        1. BugM
          01.04.2019 22:13
          +2

          Это же дорого и сложно.

          Дорого — примерно 10 долларов на каждого сотрудника сразу, а ведь они еще и терять эти токены будут регулярно.
          И сложно — под внезапно заболевшим сотрудником войти реально сложно. Сосед просто залогиниться на его машине не сможет. Надо придумывать, внедрять и всех обучать реально работающим сценариям выхода из ситуации «Ключевой человек заболел, а надо срочно прямо сейчас что-то чем он вчера занимался» Это же какая нагрузка на ИТ отдел будет.

          А так поставили некую софтину, организационными мерами всех заставили бумажки с паролями спрятать в безопасное место (спойлер: под клавиатуру) и живут спокойно. Войти любой под любым соседом может, пароли все теперь точно записаны или вообще типовые. И ИТ отделу напрягаться не надо. Они поставили программу гарантирующую безопасные пароли!


          1. eugene_bx
            01.04.2019 22:46

            Можно бесплатно попробовать прикрутить TOTP (типа Google authenticator) и использовать телефон в качестве клиента, в определённых сценариях будет работать.


            1. 2PAE
              02.04.2019 09:49

              Вам на русском попадались варианты внедрения? Что-то в лоб не нашел. :(


              1. dizaar Автор
                02.04.2019 13:21

                Пробовал прикручивать multiotp. Неплохой вариант. Пока в рамках домена не рассматривали.


          1. Tzimie
            02.04.2019 11:13

            Войти пол внезапно заболевшим сотрудником??? Пароли у вас наверное тоже общие??? Вообще то за вход под чужим эккаунтом сразу расстрел от аудиторов


          1. meved
            02.04.2019 13:50

            И сложно — под внезапно заболевшим сотрудником войти реально сложно.
            Так стоп. Войти должно быть не сложно, а невозможно. В этом и есть смысл. Иначе к чему вообще все эти ухищрения? Меня прям горит с вашего комментария. Никто не должен заходить по УЗ «соседа». Общие почтовые ящики. Файловые хранилища. Документация. Адресная книга контрагентов. Есть куча простейших инструментов, которые исключают возможность существования «ключевого человека» в принципе.


            1. BugM
              02.04.2019 14:00

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


              При настоящей необходимости. Мы все живые люди и бывает всякое.


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


            1. DrPass
              02.04.2019 14:06

              Войти должно быть не сложно, а невозможно.

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

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


          1. DolinEA
            02.04.2019 23:05

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


            Заболел человек — есть его коллега с теми же правами/функциями.
            Нет коллеги — есть начальник.


            1. DrPass
              02.04.2019 23:39
              +1

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


              1. DolinEA
                03.04.2019 00:17

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


                1. DrPass
                  03.04.2019 01:30

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


                1. saege5b
                  03.04.2019 11:05

                  «ПроектГотовый»
                  «ПроектГотовыйОт23.14.18»
                  «ПРОЕКТГОТОВЫЙОтГОМЧСОт22.14.18»
                  «ПроектГотовыйОтМО+МЧСОт25.14.18»

                  «ПроектГотовыйГОМЧСМОВар2+Лес+Кос»

                  «Проект5(от27.15)Готовый4Все+Вар+Аренд+Земля»
                  — У всех время сохранения вчера вечером. Нужен последний открытый.
                  Сотрудник в реанимации.
                  Реальный случай, кстати. На моей памяти было так несколько раз.
                  Ещё сотрудник в командировке, в таких далях, что сотовой связи нет вообще. Никакой.


                  1. Deosis
                    03.04.2019 11:53

                    Тогда стоит считать, что проекта нет. Сотрудник может нести материальную ответственность, и адекватный админ не станет играть в русскую рулетку в таком случае.


                    1. saege5b
                      03.04.2019 12:49
                      +1

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

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


                    1. DrPass
                      03.04.2019 13:55

                      Тогда стоит считать, что проекта нет. Сотрудник может нести материальную ответственность, и адекватный админ не станет играть в русскую рулетку в таком случае.

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


                    1. DikSoft
                      03.04.2019 17:01

                      Тогда пишется служебка в ИБ, что тогда-то, такому-то сотруднику временно выданы права входа от другого сотрудника. Дали, под контролем поработал, отобрали.
                      Вернувшийся временно недоступный сотрудник проходит процедуру аутентификации с учётом сброшенной старой. Меняет пароли, перевыпускает ключи или что там ещё было придумано.

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


      1. DrPass
        02.04.2019 00:19
        +1

        Меры-то существуют. Я не претендую на объективность, говорю только про свой личный опыт (7.5 лет в ИТ банка, потом в обычной крупной коммерческой компании, тоже с высокими требованиями к секьюрности, регулярная смена паролей, за стикеры с паролями сразу же расстрел на месте и т.д.): высший уровень безопасности находится где-то посередине между безразличным отношением к политике паролей и полным закручиванием гаек. Главное требование к секьюрному паролю: сам пользователь должен его легко запоминать. Если политика безопасности это не позволяет сделать, то пользователь не придумает, как натренировать свою память. Но он легко придумает, как обмануть политику безопасности. Пароль не будет написан на стикере, но он будет у пользователя в телефоне, в блокноте в кармане, или они методом проб и ошибок найдут способ шаблонизации паролей, который ваш скрипт не обрабатывает. В общем, какой-то путь обойти всё это и проделать дырку в безопасности всегда найдется.


    1. Nikoobraz
      02.04.2019 11:01
      +1

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

      Пример русскоязычного:
      F[?Dtnth1Ytujlzq2Ns4Cgfnm8Vyt!Gjvtifk

      Пример не русскоязычного:
      zg[fgnkf[yq[s0oZwe.

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


      1. BugM
        02.04.2019 13:45

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


        1. Nikoobraz
          02.04.2019 13:58

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


          1. Cerberuser
            02.04.2019 14:07

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

            И много Вы знаете людей, которые действительно могут с лёту вспомнить соответствие раскладок?


            1. Nikoobraz
              02.04.2019 14:18

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


              1. DrPass
                02.04.2019 16:08

                Среди поколений рожденных начиная с 85г. достаточно много.

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


                1. Nikoobraz
                  03.04.2019 08:54

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

                  А то о чем вы говорите, действительно может стать проблемой, но:
                  а) Она возникает только с мобильными устройствами.
                  б) При использовании таких паролей, скилл узнавать соответствие вырастает сам собой и достаточно быстро. Так что эта проблема отваливается сама собой.
                  в) Если уж все совсем плохо с этим, можно ради такого метода и уделить часик изучению раскладки. В любом случае это проще, чем убедить рандомного Федю, что ему нужно запомнить и нигде не на листочках не записывать пароль формата «cL8*hsapMm{», и смириться с тем, что такое чудо ему придется запоминать наизусть раз в полгода.


          1. BugM
            02.04.2019 14:29

            Вы просто попробуйте ввести с телефона те пароли которые вы сами предложили. Желательно в password поле. Чтобы было не просто посмотреть что же там введено.


            2019 год. Мобильные устройства захватили мир. Если у вас их сегодня нет, то завтра они точно будут. Надо все делать с оглядкой на них.


            1. Nikoobraz
              02.04.2019 14:50

              Обычно проблем не возникает, и сейчас специально взял и попробовал. Эти два пароля были выдуманы мной сегодня и никогда мною нигде не использовались, а значит у меня нет механической памяти их набора даже на простой клавиатуре, не говоря уж о мобильной. По итогам проверки оба пароля удалось верно набрать. возникли всего 2 проблемы: 1) при вводе русского, сначала забыл, что слова нужно начинать с больших. Пришлось вводить заново; 2) один раз лажанул с одной буквой («ш» с «щ» перепутал). Все. Со вторым паролем проблем не было вообще, даже несмотря на то, что та раскладка существенно менее мне привычна, чем русская. Для первого использования только что составленных паролей, да еще и поле со «звездочками» считаю, что вышло неплохо. На ввод обоих паролей, ушло минуты две. С появлением механического опыта ввода этих паролей проблемы исчезли бы совсем.

              Надо все делать с оглядкой на них.

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


              1. BugM
                02.04.2019 16:30

                Везет вам. Я тоже попробовал. Ввел с большим трудом и потратил уйму времени. Мышечно на обычной клавиатуре все помню. На телефонной вообще никак. После каждой пары букв надо переключать раскладку и смотреть где там следующие несколько букв.


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


                1. Nikoobraz
                  03.04.2019 09:01

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

                  Все уже или сделали или делают

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


                  1. BugM
                    03.04.2019 22:46

                    Попробовал. Лучше не стало. Я вполне допускаю что к этому можно привыкнуть за время. Но зачем?
                    1 дополнительный бит энтропии это настолько мало что даже говорить о нем не стоит. Ради чего все это?

                    Не только. Уже и до более мелких дошло. Гораздо меньше чем 10 лет. Я бы поставил на пару лет. 10 лет назад это примерно дата выхода «второго» Айфона. Вы сильно недооцениваете скорость развития технологий.


                    1. Nikoobraz
                      04.04.2019 09:55

                      Я вполне допускаю что к этому можно привыкнуть за время.

                      Поправка: достаточно короткий промежуток времени.
                      Но зачем?

                      Как уже писал выше — эффективный компромис между интересами бизнеса и сотрудников.
                      Со стороны бизнеса это надежность пароля, т.к. он гарантированно получается не словарным и достаточно длинным, что гораздо больше, чем «один бит энтропии» относительно «p@ssvv0rd_1». С наскоку такой пароль не сломать, и не с наскоку тоже. Такой пароль можно взломать только либо взломав самого пользователя, либо взломав базу данных с паролями. А это гораздо сложнее, чем перебором по словарю.
                      Со стороны пользователя — легкость в создании и запоминании. Такие пароли даже на листиках писать нет смысла, потому что сам сотрудник прекрасно помнит какие слова скрываются за тем же «zg[fgnkf[yq[s0oZwe.»

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

                      Я не недооцениваю скорость развития технологий, я знаю о скорости распространения технологий в СНГ.


                      1. BugM
                        04.04.2019 11:08

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


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


                        Итого мы получаем один дополнительный бит энтропии и заметное усложнение при вводе пароля. Оно того не стоит.


                        Технологический уровень общий для всех. Энктерпрайз отстаёт от среднего уровня. Но в общем идет в том же направлении. Отставание на 10 лет это настолько плохо для бизнеса, что я даже представить себе такое не могу. Это как сегодня сделать сайт плохо работающий на телефонах. Или нечто работающее только на ИЕ.


                        1. DrPass
                          04.04.2019 11:19

                          Отставание на 10 лет это настолько плохо для бизнеса, что я даже представить себе такое не могу

                          А почему плохо? В крупном бизнесе проверенность решения зачастую важнее новомодности, а снижение риска отказов важнее апгрейдов на последние версии. Для того под энтерпрайз и существуют отдельные ветки софта с опцией Long-term support, где даже Майкрософт, несущийся как паровоз со сменой потребительских версий, обеспечивает десятилетний суппорт без внесения изменений в функциональность.


                        1. Nikoobraz
                          04.04.2019 13:27

                          И тот и другой состоит из словарных слов

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

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

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

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


      1. Neolodor
        02.04.2019 14:58

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


    1. Iwanowsky
      02.04.2019 12:01
      +1

      В своей госбюджетной организации мы боролись с пользователями, наклеивающими стикеры с паролями на мониторы, и все равно не можем это побороть окончательно: обязательно у кого-то где-то проявится (хотя и стало значительно реже). Кто-то иконки со святыми клеит на монитор, а кто-то — стикеры с паролями и также молится на эти листочки — типа как бы не ошибиться при вводе пароля. Хотя бы листочки клали под клавиатуру, а не вешали на самом видном месте! Представьте себе, например, кабинет бухгалтера, каждый день — куча посетителей (своих сотрудников и извне), а на мониторе бухгалтерши висит стикер со всеми паролями (АД, вход в БД, Интернет, почта, банк-онлайн и т.д.) И не мудрено, что периодически какие-нибудь недохакеры (все пароли-то известны) получают нелегальный доступ к БД и пр. авторизованным сервисам, и отследить такие заходы не так просто. Недавно зашел к одному начальнику отдела, настраивал ему компьютер, а когда он вышел, взял листок с паролями сотрудников его отдела и отксерил на его МФУ. Потом разбирался с ними и их начальством; ведь так любой их посетитель может поступить.


      1. EvilBeaver
        03.04.2019 07:45

        Так может беда в том, что пароли как раз сложные для запоминания? Здесь должна быть картинка из xckd про correct battery horse staple


        1. saege5b
          03.04.2019 21:02

          и нельзя повторять пароли последние 50 раз.
          И что бы совсем непохожие были.


  1. eugene_bx
    01.04.2019 18:52

    Один из основателей OWASP научил хорошей практике по паролям.

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

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

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


    1. Charg
      01.04.2019 20:58

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

      Каким образом запрещаем использование и показываем что слабый? Таким же как описано в статье?


      1. eugene_bx
        01.04.2019 21:52

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


    1. ratijas
      03.04.2019 08:55

      Ошибка: «такой пароль уже использует вася; выберите другой пароль.»


  1. Amikko
    01.04.2019 19:05
    +1

    Вы занимаетесь ерундой. Тем единицам, кто и так придумывал хорошие пароли, вы только осложните жизнь своими политиками, а подавляющее большинство будет как и раньше использовать нечто стандартное, чего в заданном админами блеклисте нет, но все рядом сидящие коллеги в курсе. И на бумажке писать ничего не надо, это может быть что-то типа 345dfh#$% (из соседних клавиш на клавиатуре на основе переключений раскладки и зажимания шифта), что легко запомнить, и все это будут юзать. Вы, конечно, потом, через пару месяцев, добавите и это в блеклист, но народ ведь быстро наловчится сочинять новые лёгкие пароли, удовлетворяющие хотелкам админов.


    То же относится к идиотской практике принудительно заставлять менять пароль раз в n месяцев. На какой пароль будут менять? Правильно — например, на тот же самый с приписанной единичкой в конце. С каждой «сменой» пароля цифра инкрементируется. Сам так делаю)


    1. bano-notit
      01.04.2019 22:25
      -2

      С каждой «сменой» пароля цифра инкрементируется. Сам так делаю)

      Значит странный вы безопасник, раз разглашаете алгоритмы генерации своих паролей...


    1. foal
      02.04.2019 13:49

      Раз в 90 дней пароль меняется 6 раз подряд (глубина истории паролей = 5), причем для шестого раза используется исходный пароль. И живём дальше 90 дней со старым :)


      1. Amihailov
        02.04.2019 17:39

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


  1. Barnaby
    01.04.2019 19:09
    +1

    А почему не токены? Какая вообще мотивация у работника постоянно придумывать и запоминать сложные пароли? Если в интернете он уже давно использует менеджер паролей\блокнот или лепит пару паролей на все сервисы.


    Их будут записывать или использовать даты\последовательности. И в чем тогда смысл?


    #habr$ne04tort19 — надежный пароль, да? :)


  1. redpax
    01.04.2019 20:19

    «Чем адаптировать людей под машины, лучше машины адаптировать под людей» © Джейсон Джобс

    Аппаратный сканер отпечатка и вопрос снят, или сразу мышку со встроенным сканером цена вопроса 2300 рублей.


    1. dizaar Автор
      02.04.2019 10:14

      Я дико извиняюсь, а что уже есть интеграции данного решения в Active Directory? Тогда действительно, аппаратный сканер решает.


      1. DrPass
        02.04.2019 11:12

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


      1. navion
        02.04.2019 14:11

        Windows Hello вроде умеет что-то подобное, но при первом входе всё равно нужен пароль (также как биометрия на смартфоне).


        1. dizaar Автор
          02.04.2019 17:01

          Умеет, но, увы, только лишь Windows 10. Не везде еще используется)


    1. FSA
      02.04.2019 16:12

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


      1. DrPass
        02.04.2019 16:44

        Да ничего страшного. В общем случае у вас есть как минимум десять возможностей сменить идентификатор после его компрометации. А то и все двадцать (а если вы мальчик, то даже 21). Этого достаточно. Уже на пятой-шестой попытке взлома вашей учетки с помощью краденых отпечатков пальцев вам надо будет задуматься, а не пора ли вам сменить работу на более безопасную, где за вами не будут бегать толпами шпионы.


  1. dormin
    01.04.2019 20:31
    -1

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


    1. HansHelmut
      01.04.2019 21:46
      +1

      Двойное лишение премии. Подозрительность трафика определяет подозриватель?


      1. dormin
        04.04.2019 20:55

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


    1. Tzimie
      01.04.2019 23:15

      Приклеивать к монитору это палево


  1. maslyaev
    01.04.2019 21:24
    +5

    Все эти парольные политики бесят неимоверно. Они мешают мне иметь хорошие пароли.

    Если меня не насилуют этим идиотизмом, и мне для чего-то нужен действительно мощный пароль, одна из моих стратегий примерно такая:
    1. Иду на what3words.com
    2. «Показать карту»
    3. Нахожу место, с которым связано что-то личное. Какой-нибудь жизненный эпизод. Это место не должно быть туристическим (т.е. макушка Эйфелевой башни не годится) или знаменитым (центр храма Кааба тоже не подойдёт). Например, меня как-то на трассе штрафанули за превышение скорости на 300 рублей в точке «храпящий.инвертировать.плодовитый». Соответственно, сочиняю себе пароль: «храпящий инвертировать плодовитый 300». В блокнотик записываю себе подсказку: «обидно, но могло быть больше».

    Удачи алгоритмам подбора пароля. Она им пригодится. Также удачи тем, кто по подсказке будет пытаться угадать, о чём вообще речь.
    Сразу этот пароль я, конечно, не запомню. Запомню только после того, как десяток раз схожу за ним в what3words.

    Заводишь такой по всем разумным критериям прекрасный пароль, и получаешь в лицо, что, дескать, слабоват, не обеспечивает требований домена. Ну ладно, ну ОК, держите w0rd123Pa$$, плохие злые люди. Подавитесь своей политикой.


    1. dizaar Автор
      02.04.2019 10:13

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


      1. maslyaev
        02.04.2019 15:56
        +1

        Всё так, но если внимательно посмотреть на саму задачу улучшения качества паролей, то можно заметить, что повсеместно практикуемый подход, мягко говоря, дебильный.
        Пароль — это то, что подлинный пользователь знает, а злоумышленник узнать не может. Банальность, конечно, но это полезно вспомнить, чтобы попытаться за это зацепиться. Из этой формулировки сразу следуют две полезные вещи:
        1. Пароль должен быть чем-то таким, что пользователь может помнить, не прибегая к дополнительным костылям. Например, пароль «gX3K$9Lwfj%29E#» выглядит хорошим, но его невозможно запомнить, и поэтому пользователь запишет его на бумажку и подсунет под клавиатуру. Это плохой пароль.
        2. Существуют способы подбора паролей, которые используются для взлома. Они эволюционируют, но не то что бы бурно. Эволюционируют скорее количественно (облачные вычисления, CUDA, ботнеты, ASIC), чем качественно. Чего-то совсем радикально нового по этой части, насколько мне известно, не появлялось уже очень давно. То есть нам известно, от чего нужно защищаться. Если пароль не может быть с разумными затратами подобран известными методами, то его можно и нужно считать стойким.

        Итого имеем два критерия: лёгкость запоминания пользователем и стойкость к известным методам подбора. Где в этих двух простых критериях про регистр букв, цифры и спецсимволы? Да нигде. Повсеместно используемые формальные критерии сложности пароля — попытка загнать большую и сложную проблему в прокрустово ложе некоторого набора правил, составленных без оглядки на те критерии, которые действительно имеют отношение к делу.

        В порядке «критикуешь — предлагай». Основа подбора паролей — пробивка словарей с последующим поиском в ширину по мутациям. В качестве словаря берутся:
        1. Популярные пароли (всякие «123456», «password», «admin» и далее по списку).
        2. Словари слов на разных языках.
        3. Базы сломанных аккаунтов.
        Поиск в ширину от первых двух имеет смысл, от третьего — слишком затратно. По первым двум ищем минимум расстояния Левенштейна, по третьему просто смотрим попадание. Для п.1 расстояние Левенштейна требуем не меньше, например, 5, а по п.2 — не меньше 3. В результате и алгоритмы подбора остаются не у дел, и не парим пользователя дурацкими требованиями про цифры и спецсимволы.


        1. dizaar Автор
          02.04.2019 17:00

          Именно так. По-большому счету, суть вышеприведенного экзерсиса была не в том, чтобы дополнительно усложнить жизнь, требуя разнообразные символы. Это может быть использовано как опция. Я думаю, что Вы неоднократно сталкивались с самыми разнообразными требованиям СБ на тему паролей и прочего. Тут как раз и стояла основная и первоочередная задача — убрать возможность использования в качестве пароля/части пароля сломанных аккаутов/слабых комбинаций.
          П.С. Пошел читать про расстояние Левенштейна)


          1. maslyaev
            02.04.2019 18:24

            Расстояние Левенштейна — это та шняга, через которую обычно составляют список вариантов замены для подчёркнутых красненьким слов. Минимальное количество мутаций (вставок/удалений/замен), через которые можно одну последовательность буковок превратить в другую. Там довольно прикольный быстрый алгоритм.

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


    1. EvilBeaver
      03.04.2019 07:49

      Дада. Умникам-одминам желаю подавиться пивом. Мудацкие политики не помогают ничем. Проверяйте пароль не по регулярке, а по длине. 45 символов не надо проверять на наличие цифр собак и долларов


      1. tvr
        04.04.2019 11:55

        Баянище, странно, что ещё не было.
        Извините, Ваш пароль используется более 30 дней, необходимо выбрать новый!
        — Розы.
        — Извините, слишком мало символов в пароле!
        — Розовые розы.
        — Извините, пароль должен содержать хотя бы одну цифру!
        — 1 розовая роза.
        — Извините, не допускается использование пробелов в пароле!
        — 1розовая роза.
        — Извините, необходимо использовать как минимум 10 различных символов в
        пароле!
        — 1грёбаная розовая роза.
        — Извините, необходимо использовать как минимум одну заглавную букву в пароле!
        — 1ГРЁБАНАЯрозоваяроза.
        — Извините, не допускается использование нескольких заглавных букв, следующих
        подряд!
        — 1ГрёбанаяРозоваяРоза.
        — Извините, пароль должен состоять более чем из 20 символов!
        — 1ГрёбанаяРозоваяРозаБудетТорчатьУтебяИзЗадаЕслиНеДашьДоступПрямоСейчас!
        — Извините, этот пароль уже используется.


  1. navion
    01.04.2019 23:00

    В Lithnet Password Protection можно настроить гранулярную политику паролей через шаблоны GP. Например, для 8-12 символов требовать полный набор, а начиная с двадцати разрешить пароли про лошадей без спецсимволов.

    Также комплектный powershell-модуль позволяет проверить базу NTDS на утёкшие пароли.


    1. maslyaev
      01.04.2019 23:35

      начиная с двадцати разрешить пароли про лошадей без спецсимволов
      Можно. Вот только знают об этом меньше 1% админов. И поэтому по умолчанию требуют спецсимволы :(


      1. navion
        01.04.2019 23:50

        Хороший бесплатный инструмент появился совсем недавно, а раньше такая фича была только в дорогущих IdM.


    1. dizaar Автор
      02.04.2019 10:19

      Спасибо за идею, будем посмотреть. Вариант с haveibeenpwned.com намного интереснее, как мне кажется.


      1. navion
        02.04.2019 13:07

        Сам пока только «провёл аудит» на бекапе КД, выставив галку смены пароля найденным пользователям и сразу прибежал злобный программист со словами «как мне поставить старый пароль, который я везде использую?!»


    1. dizaar Автор
      02.04.2019 10:34

      Да, решение интересное. Единственно, я бы подумал насчет 6-гигового файла паролей.
      Но, повторюсь, получается даже интересней, чем у меня в статье.


  1. Tzimie
    01.04.2019 23:13

    А каково иметь пароли в ДЕСЯТИ доменах (следы поглощений других компаний), каждый со своей длиной, правилами, временем жизни, а потом слушать тренинги, что вам всего навсего надо придумать мнемоническое правило?


    1. lubezniy
      03.04.2019 14:29
      +1

      А нельзя ли тогда настроить доверие между доменами и оставить по одной учётке? Так же намного проще и пользователю, и админу.


      1. Tzimie
        03.04.2019 15:13

        Нет, Security group против) Почему — не говорят.


  1. dizaar Автор
    02.04.2019 10:21

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


  1. Tiasar
    02.04.2019 13:51

    Я свои пароли давно уже делаю по простому принципу, берем осмысленное слово на русском языке и набираем его в латинице, те буквы что не похожи на русские в нижнем регистре пишем в верхнем. Проще показать, к примеру:
    старый баркас — CTapbIu_6apKac
    солнечное затмение — coJIHe4Hoe_3aTMeHue
    цапля в кустах — u,anJIR_B-KycTax
    думаю такий пароли не реально забрутфорсить, и любая проверка на сложность покажет очень высокую степень…


    1. DrPass
      02.04.2019 14:09

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


      1. Tiasar
        03.04.2019 10:24

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


  1. paranoya_prod
    02.04.2019 14:22
    +1

    Пароль меньше 10 символов будет прибавляться единичками и прочими упрощалками. Лучше ограничить минимальную длину в 15 символов и научить пользователей придумывать пароли по схеме: лошадь шоколад ось. То есть, три слова не связанных между собой как — лошадь телега сено. И перестать насиловать их частой сменой пароля — одного раза в год будет достаточно, для особых случаем — раз в полгода.


  1. bestxp
    03.04.2019 11:00

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