Данная статья по шагам описывает процесс интеграции проверок пароля на безопасность в менеджере паролей KeePass. Проверки используют последнюю базу данных Have I Been Pwned, где хранятся утекшие пароли, и всё это работает локально, поэтому вам не надо беспокоиться о возможности утечек хэшей паролей в интернет.

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

Have I Been Pwned – онлайн-сервис для проверки того, не скомпрометирован ли один из ваших онлайн-аккаунтов во время какой-либо утечки паролей.

Некоторые менеджеры паролей, например, 1Password, предлагают возможность проверки пароля в этой базе данных.

Настройка




Пользователи KeePass могут сделать то же самое, только локально. Вот, что для этого нужно:
  • Установить KeePass.
  • Скачать последнюю версию плагина HIPB Offline Check. KeePass поддерживает кучу плагинов, способных улучшать безопасность и предоставлять другие возможности.
  • Скачать последнюю базу данных с паролями с сайта Have I Been Pwned (сортированную по хэшам).


Поместите плагин в каталог для плагинов KeePass. У него открытый код, и вы могли бы сделать его с нуля, если бы у вас были нужные навыки. По умолчанию KeePass установлен в C:\Program Files (x86)\KeePass.

Распакуйте базу с паролями в какой-либо каталог. В текстовом виде она занимает 23 Гб, а в сжатом для скачивания – 9 Гб.

Запустите KeePass и выберите меню Tools > HIBP Offline Check. Нажмите Browse и выберите файл с паролями, распакованный ранее.

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

Наконец, выберите View > Configure Columns и активируйте столбец Have I Been Pwned, чтобы видеть результаты находок в базе.

Проверка паролей KeePass в базе Have I Been Pwned




Проверить пароли на нахождение в базе можно несколькими способами.
  1. Двойной клик на поле с любым паролем.
  2. Можно выбрать несколько пунктов, нажать правую клавишу и Selected Entries > Have I Been Pwned database.


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

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

Что можно сделать с утекшими паролями


Можно рекомендовать сменить пароли, обнаруженные в базе Have I Been Pwned. Просто зайдите на сайт или выберите нужный сервис, и меняйте на нём пароль вручную.

KeePass можно использовать для генерации безопасных паролей; они автоматически проверяются на наличие в базе Have I Been Pwned, так что на этот счёт тоже можно не беспокоиться.

Итоги


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

А каким менеджером паролей пользуетесь вы?

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


  1. Akuma
    22.01.2019 16:18

    А какой в этом смысл вообще?
    Ну т.е. перебрать 23 Гб паролей задачка непростая и практически равносильная брутфорсу. Причем, даже если ваш пароль есть в этой базе и он сложнее 12345678, он с таким же успехом может быть подобран простым перебором, ну пусть чуточку дольше.

    В том же KeePass можно поставить огромное число итераций «Key transformation» и перебор будет длиться ну очень долго. Например, у меня это занимает почти 2 секунды на моем i-5.


    1. Tortortor
      22.01.2019 16:21

      база отсортирована
      отвечаю на вопрос ниже: вы просто не поняли о чём статья


      1. Akuma
        22.01.2019 16:24

        Т.е. это гораздо быстрее?

        А как же это:
        image


        1. Grey4ip
          23.01.2019 12:45

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


          1. Akuma
            23.01.2019 12:48

            Вообще не факт. Подскажите логин от пароля 12345678?

            Я не говорю, что эта база с паролями бесполезна. Возможно, статья не слишком понятная.


            1. avost
              24.01.2019 16:48

              Вообще не факт.

              Не факт, но это мало что меняет.


              Подскажите логин от пароля 12345678?

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


              1. Akuma
                24.01.2019 17:05

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


    1. Protos
      22.01.2019 18:17
      -1

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


  1. amarao
    22.01.2019 17:30

    Ох, а что ж так много-то? Вообще, я считаю, что это реальный cs-challenge — найти наиболее оптимальную структуру хранения тыреных паролей.

    Всё осложняется разными алгоритмами и солью.

    Я чувствую запах бинарных деревьев…


  1. tandzan
    22.01.2019 20:39

    Мой менеджер паролей — бумажный блокнот и гелевая ручка. Генерирую пароли самописанным генератором, берущим рандом из виндового CrypoAPI. Можно начинать смеяться.
    Если кто не хочет копаться в хешах утекших паролей, я скачал ту саму многогигабайтную БД, отсортировал и убрал дубли. Можно скачать:
    https://drive.google.com/open?id=1nhMUEISwJAlNzwOIngyZaq8wwmVCdSi-
    707 мб 7z архив, plain text, только пароли.


  1. tijs
    22.01.2019 22:57

    Благодарен за статью, пользуюсь keepass уже лет 10 на разных ОС (windows, macos, ios), но об этом плагине не знал


  1. POS_troi
    22.01.2019 23:23
    -1

    «Поздравляем, до этого момента, вашего пароля небыло в базах данных» ;)


  1. uzverkms
    23.01.2019 01:59

    Я не очень понял, как это должно работать


    1. shaggyone
      23.01.2019 07:28

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


  1. shadovv76
    23.01.2019 10:02

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


  1. Tangeman
    23.01.2019 16:39

    Честно говоря, смысла в такой проверке очень мало, разве что найти «слабые» пароли.

    Мне кажется, гораздо проще изначально использовать рандомные пароли (от 16 символов и больше), либо же длинные мнемонические модифицированные («Асъ Пукшин долетался?») если не хочется заучивать рандомные для часто используемых сервисов. Вероятность взлома таких паролей перебором хешей стремится к нулю, разве что их хранят в открытом виде.

    Что гораздо более ценно в HIBP — это мониторинг email, на который можно подписаться — как для отдельных адресов, так и на целые домены, но оффлайн, по понятным причинам, это не очень практично делать. Даже если этот email утечет с самого HIBP, это ничего не даст — без знания собственно сервисов где он используется и пароля (если он очень непрост).

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

    Уникальные email полезны ещё и тем что позволяют шустренько выяснить нет ли утечки задолго до того как её обнаружат — по начавшемуся спаму или фишингу.


  1. valery1707
    23.01.2019 19:35

    А чем вариант со скачиванием БД лучше чем вариант без скачивания?
    Вот есть плагин для KeePass который использует базу Have I Been Pwned безопасным способом: https://github.com/andrew-schofield/keepass2-haveibeenpwned
    В результате не нужно ничего качать, а значит мотивация провести проверку не убивается тем, что нужно качать огромный архив, и ещё и распаковывать его.