Как узнать пароль из файла pfx

Обновлено: 21.11.2024

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

Подробнее читайте (ссылка для скачивания находится внизу страницы)

Этот инструмент восстановления пароля сертификата выпущен под лицензией с открытым исходным кодом (MIT). Как я уже говорил в предыдущей статье, этот инструмент помог мне восстановить пароль сертификата подписи Blackberry Code. Цель этого инструмента — помочь разработчикам восстановить пароли в ситуациях, когда они забыли или потеряли пароль, но все еще помнят определенные части или характеристики строки пароля.

Утилита не предназначена для незаконных или недобросовестных целей.

Системные требования

Примечания по производительности

Система 1: ноутбук Core i3 (2011 г.)

  • ЦП Core i3-2330M (тактовая частота 2,2 ГГц)
  • 8 ГБ оперативной памяти DDR3 (4 ГБ + 4 ГБ)
    • Двухканальный, 667 МГц.
    • Время 9-9-9-24
    • Соотношение 1:5 (FSB:DRAM)
    • Скорость команд: 1T

    Производительность: от 36 до 41 миллиона попыток ввода пароля в день

    Система 2: настольный компьютер HP (2012 г.)

    • ЦП AMD FX-6100 (тактовая частота 3,3 ГГц)
    • 6 ГБ ОЗУ DDR3 (4 ГБ + 2 ГБ)
      • Двухканальный, 667 МГц.
      • Время 9-9-9-24-33 (33 – время банковского цикла)
      • Соотношение 3:10 (FSB:DRAM)
      • Частота команд: не указано

      Производительность: 44 миллиона попыток ввода пароля в день

      Система 3: Dell Optiplex GX620 (2005 г.)

      • ЦП Intel Pentium 4 521 (тактовая частота 2,8 ГГц)
      • 1 ГБ ОЗУ DDR2 (4 x 256 МБ)
        • Двухканальный, 266 МГц
        • 4-4-4-12-16 (16 – время банковского цикла)
        • Соотношение 3:4 (FSB:DRAM)
        • Частота команд: не указано

        Производительность: 27 миллионов попыток ввода пароля в день

        Утилита является однопоточной. Для максимальной эффективности восстановления пароля я рекомендую:

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

          Примечание. Обязательно учитывайте толстый палец! Вы можете подумать, что у вас есть пароль из 13 символов, но это может быть только 12 символов, а может быть 14 или 15 символов. Чтобы не рисковать, вы можете начать с одного символа короче, чем вы ожидаете.

          1. Если вы ЗНАЕТЕ, что в пароле НЕТ определенных символов, букв или цифр, обязательно удалите их из последовательности символов перебора
          2. Например, я смог сократить свой набор персонажей с 76 до 23. Это улучшило мои способности к взлому настолько, что использование взломщика стало оправданным.
            1. Начинать один экземпляр с префикса
            2. Начать другой экземпляр с суффикса
            3. Если у вас больше ядер, вы можете попробовать поэтапно.

            Как пользоваться утилитой

            1. Откройте EXE-файл, который находится в папке CertificatePasswordRecovery\CertificatePasswordRecovery\bin\Release

              Хотя вариантов много, все они описаны ниже

            1. Максимум сгенерированных символов указывает, сколько символов вы хотите сгенерировать. Это будет от 1 символа до (включительно) указанного здесь максимума
            2. Начальная строка позволяет вам решить, где вы хотите начать сгенерированный пароль. Например: если вы введете aaa в это поле, ваша последовательность будет выглядеть так: aaa, aab, aac и т. д.
            3. Строка префикса полезна в тех случаях, когда вы помните первые несколько символов своего пароля. Не нужно тратить время на «угадывание» тех, которые вы уже знаете. Например, если вы знаете, что ваш пароль начинается с пароля, введите «пароль» в поле префикса.
            4. Строка суффикса полезна, когда вы помните последние несколько символов своего пароля.
            5. В поле «Последовательность символов» вы можете указать разделенный запятыми список символов, которые должны присутствовать при поиске пароля. Его можно заказать произвольно.

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

            1. Выкл. ничего не регистрирует. Будьте осторожны с этой настройкой: это означает, что единственное уведомление, которое вы получите, — это всплывающее диалоговое окно, когда пароль будет найден. На диск ничего не записывается
            2. Только успех зарегистрирует начало процесса, а затем запишет пароль в файл, когда он будет найден. Все недействительные пароли игнорируются
            3. Каждые 10 000 + Успех регистрирует каждый 10 000-й пароль вместе с Успешным паролем. Это полезно, если вы хотите отслеживать процесс подбора пароля.

            Примечания об инструменте восстановления:

            • Он не найдет пробелы в начале или конце пароля, если только он не введен вручную в поля префикса/суффикса
            • Чтобы указать запятую в качестве символа последовательности, необходимо ввести "запятую" (без кавычек). Это потому, что я разделил строку на запятую и мне нужен другой способ представления этого символа
            • Если в поле "начальная строка" введены символы, которых нет в последовательности символов, вы получите предупреждение. Это может негативно повлиять на поиск пароля
            • Пробел — это первый символ в последовательности по умолчанию. Это позволяет взломщику паролей легко обрабатывать пароли максимальной длины, не начиная с максимальной длины.

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

            Скачать

            Старые комментарии:

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

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

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

            Один вопрос: как найти путь к файлу сертификата? У меня есть сертификат в Counsole Root \ Certs, но я не вижу пути к файлу, с которым приложение могло бы работать. Спасибо!

            Привет, The Fixer!
            Существует текстовое поле с надписью "Путь к сертификату", которое можно использовать для перехода к файлу pfx/p12. Нажмите кнопку «Обзор», чтобы выбрать файл.

            Могу ли я настроить его так, чтобы он начинался с определенного количества символов, т. е. пароль — это пароль1, и я знаю, что это 9 символов, поэтому я могу просто начать с него. и не тратить время на получение до 9 символов
            спасибо

            ОТЛИЧНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. Я потерял пароль к файлу pfx, и ваш инструмент спас меня за 2 минуты!
            Спасибо спасибо !! Отличная работа!

            @jesse: Да, вы можете использовать поле «строка префикса» и ввести «пароль». Сгенерированные символы будут добавлены в конце и сгенерируют последовательность, которая выглядит примерно так:

            парольa
            парольb
            парольc
            .
            .
            .
            пароль1
            пароль2
            пароль3

            Вы можете ограничить количество символов в последовательности генерации, отредактировав поле последовательности символов.

            ВАУ, большое спасибо. Вы сэкономили мне много времени. Я не запомнил несколько цифр, и это заняло несколько минут.

            Последнее обновление этой записи состоялось 19 сентября 2021 г.

            Недавно я столкнулся с проблемой, которую определенно создал сам. У меня был сертификат, созданный для аутентификации приложения в Azure AD. Однако ключ шифрования для файла .pfx был утерян.

            Я мог бы просто создать новый сертификат, настроить службу приложений для его использования и заменить старый сертификат… Но это ручная работа, и в чем же здесь удовольствие?

            Я предпочитаю решение, в котором немного больше кода!

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

            Однако это все равно сработало! Исполняемый файл, который я скомпилировал из решения, мог перебирать около 20 000 паролей в минуту. Это немного низко по сравнению с тестами, опубликованными автором (с 2012 года!), но я полагаю, что одноядерная производительность моего ноутбука с неоптимизированным кодом (отладочная сборка) будет довольно плохой.

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

            Процесс модернизации

            Оглавление

            Это формат .csproj, поставляемый с… Visual Studio 2010? Или еще раньше?

            Короче говоря, я решил нет отказаться от этого пути обновления из окна и начать с нового файла проекта.

            Автоматически сгенерированный файл Program.cs содержал одну дополнительную строку по сравнению с кодом, которому более 10 лет :)

            Сам код удивительно прозрачен и довольно прост. И просто сделать его многопоточным заняло около получаса туда-сюда (потому что я буду проклят, если вспомню, как что-то делать, не возясь с этим какое-то время), и я закончил тем, что использовал Tasks (и ThreadPool) для многопоточность — потому что это просто, и мне не нужно беспокоиться о максимальном количестве потоков, объединении в пул или вообще о чем угодно.

            Итак, вот что я добавил (и сделал метод асинхронным):

            Мне пришлось добавить или изменить 5 строк. Или 6, если учесть добавление оператора using для System.Threading… 😅

            Заключение

            С заурядным ноутбуком разработчика взлом пароля должной сложности займет месяцы. И в то время как многие люди будут использовать «aaaa» в качестве пароля для артефактов разработчиков, я больше из тех, кто «правильно работает с конскими батареями» *, а это значит, что я сделаю это быстрее, создав новый сертификат и доставив его в Центр обработки данных Microsoft в Дублине, даже если мне пришлось пробираться через несколько границ пешком.

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

            Код — как оригинальное решение, так и слегка измененная версия, которую я создал — доступны в этом репозитории GitHub:

            В конце концов я создал новый сертификат и продолжил настройку службы приложений, но это был интересный обходной путь на час или два :)

            Ссылки и сноски

            * Мои настоящие пароли сгенерированы машиной, это шутка, не @меня.

            Антти Коскела – гордый кочевой разработчик полного стека из числа миллениалов и аборигенов цифровых технологий (достаточно забавных словечек? Достаточно забавных словечек!). Он работает архитектором облачных решений в инженерной компании Etteplan Oyj, в которой работает около 700 разработчиков. создание и ремонт всего, даже полуцифрового.

            У меня есть файл сертификата PFX на моем компьютере, и я хочу просмотреть подробности перед его импортом. (Утилита импорта на самом деле не сообщает вам, что такое сертификат!).

            Как просмотреть сведения о файле сертификата PFX?

            На дворе 2019 год, и мы до сих пор не можем легко просмотреть сертификат перед его установкой. Мы должны выйти в сеть, чтобы найти ответ. Печальное положение дел для Microsoft.

            4 ответа 4

            Некоторые параметры просмотра сведений о файле PFX:

              Откройте командную строку и введите: certutil -dump

            Первый вариант хорош, но есть ли способ просмотреть более подробную информацию о сертификате, например о SAN, без установки стороннего инструмента?

            отобразит подробный список, включая SAN.

            У меня есть зашифрованный PFX-файл. Есть ли какая-либо информация, которую я могу узнать об этом, не зная пароля?

            @mwfearnley, кроме как восстановить пароль методом полного перебора, боюсь, другого выхода не осталось.

            Вы можете передать информацию утилите openssl x509, а затем экспортировать ее в файл, подобный этому:

            Конечно, вам также будет предложено ввести пароли сертификатов.

            Содержимое файла PFX можно просмотреть в графическом интерфейсе, щелкнув файл PFX правой кнопкой мыши и выбрав "Открыть" (вместо действия по умолчанию "Установить").

            Это откроет mmc и покажет файл pfx в виде папки. Откройте папку pfx и подпапку Certificates, и вы увидите сертификаты, содержащиеся в файле pfx. Сертификат можно открыть для просмотра сведений.

            Кроме того, графический интерфейс можно открыть, запустив mmc certmgr.msc /CERTMGR:FILENAME="C:\path\to\pfx"

            Также можно использовать FileTypesMan, чтобы изменить действие по умолчанию (двойной щелчок) для файлов PFX с "Установить" на "Открыть".

            Экспорт сертификата SSL с сервера Microsoft для импорта на другой сервер Microsoft

            Фон

            Серверы Windows используют файлы .pfx, содержащие файл открытого ключа (файл сертификата SSL) и связанный с ним файл закрытого ключа. DigiCert предоставляет файл сертификата SSL (файл открытого ключа). Вы используете свой сервер для создания связанного файла закрытого ключа как части CSR.

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

            Необходимое условие для экспорта

            Чтобы создать файл .pfx, сертификат SSL и соответствующий ему закрытый ключ должны находиться на одном компьютере/рабочей станции.Вам может потребоваться импортировать сертификат на компьютер, на котором хранится соответствующий закрытый ключ. (например, ноутбук/настольный компьютер, на котором вы создали CSR), прежде чем вы сможете успешно экспортировать его в виде файла .pfx.

            Как экспортировать сертификат SSL с закрытым ключом с помощью утилиты DigiCert Certificate Utility

            Эти инструкции объясняют, как экспортировать установленный сертификат SSL с сервера Microsoft и соответствующий ему закрытый ключ в виде файла .pfx для импорта на другой сервер. Если вам нужен сертификат SSL в формате Apache .key, см. раздел Экспорт сертификата SSL Windows на сервер Apache (формат PEM).

            На сервере Windows загрузите и сохраните исполняемый файл DigiCert® Certificate Utility для Windows (DigiCertUtil.exe).

            Запустите утилиту сертификатов DigiCert® для Windows (дважды щелкните DigiCertUtil).

            В утилите сертификатов DigiCert для Windows© нажмите SSL (золотой замок), выберите сертификат, который хотите экспортировать в виде файла .pfx, и нажмите Экспорт сертификата.

            В мастере экспорта сертификатов выберите Да, экспортируйте закрытый ключ, выберите PFX-файл, затем установите флажок Включить все сертификаты в путь сертификации, если это возможно, и, наконец, нажмите Далее.

            Файл .pfx использует тот же формат, что и файл .p12 или PKCS12.

            Примечание. Если параметр Да, экспортировать закрытый ключ неактивен (использовать его нельзя), соответствующий закрытый ключ сертификата отсутствует на этом компьютере. Это не позволит вам создать файл сертификата .pfx. Чтобы решить эту проблему, вам нужно будет импортировать сертификат на тот же компьютер, где был создан CSR сертификата. См. Требования к экспорту.

            В полях "Пароль" и "Подтверждение пароля" введите и подтвердите свой пароль, а затем нажмите "Далее".

            Примечание. Этот пароль используется при импорте этого SSL-сертификата на другие серверы типа Windows или другие серверы или устройства, которые принимают файл .pfx.

            В поле Имя файла нажмите …, чтобы найти и выбрать место и имя файла, в котором вы хотите сохранить файл .pfx, укажите имя файла (например, mySSLCertificate), нажмите Сохранить, а затем нажмите "Готово".

            После получения сообщения "Ваш сертификат и ключ успешно экспортированы" нажмите кнопку "ОК".

            Импорт сертификата PFX в Microsoft Windows Server и его настройка

            Чтобы импортировать сертификат на сервер с помощью утилиты DigiCert Certificate Utility, необходимо следовать инструкциям для конкретного типа сервера:

            Устранение неполадок

            Если после импорта сертификата на новый сервер вы столкнулись с ошибками сертификата, попробуйте исправить ошибки доверия сертификата с помощью DigiCert® Certificate Utility для Windows. Если это не устранит ошибки, обратитесь в службу поддержки.

            Читайте также: