Лучший способ мягкого перебора вашей собственной парольной фразы GPG / PGP? - PullRequest
22 голосов
/ 13 мая 2009

Я создал красивую длинную фразу-пароль, использовал ее несколько раз, потом забыл ее;) Суть в том, что я знаю общую тему и, вероятно, почти все персонажи. Перфекционист во мне не хочет отзывать ключ или что-то в этом роде (и я думаю, что мне нужна фраза-пароль, чтобы отозвать его в любом случае, верно?). Я чувствую, что должен быть в состоянии хорошо справиться с этим, перебирая возможные раскладки / символы, которые я ошибся / неправильно набрал. Я написал программу на C для создания таких комбинаций. К сожалению, у меня нет кода под рукой (пока я пойду с оправданием «это не актуально»;). Я также натолкнулся на некоторый код в Интернете, используя GPGME, чтобы сделать это как доказательство концепции. У него был комментарий "это легко может быть в 100 раз быстрее". Проблема в том, что профилирование кода показывает, что узким местом является сам вызов GPGME. Ожидается ли это, или это ограничение GPGME, которое может быть решено с использованием полной библиотеки или выделенной реализации?

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

Ответы [ 2 ]

28 голосов
/ 02 ноября 2010

На случай, если кому-то интересно: у меня была такая же проблема, и я решил ее через:

http://www.roguedaemon.net/rephrase/

Так здорово !!

4 голосов
/ 05 декабря 2009

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

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

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

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

...