Vim шифрование: как его сломать? - PullRequest
31 голосов
/ 23 февраля 2009

Недавно я решил зашифровать свой инженерный журнал с помощью vim's: X функция шифрования. Я записал пароль, но, видимо, я что-то неправильно написало или что-то напутало, потому что расшифровка файла просто дает тарабарщина. Что еще хуже, все мои резервные копии как-то поврежден (не спрашивайте, я тоже не уверен, как).

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

Вот что я пробовал:

  1. Используйте vimzipper, чтобы обернуть зашифрованный файл в zip, чтобы он мог быть взломанные стандартными взломщиками почтового индекса как fcrackzip, zipcracker, pkcrack, Advanced Zip Password Recovery и т. д. К сожалению это не сработало. Я восстановил строку открытого текста из файла используя оставшуюся информацию из регистров в моем VIMINFO, но я нет смещения в файле для восстановленного открытого текста. Несмотря на это, взлом почтового индекса не работал, даже для простого тестовый файл с трехсимвольным паролем vim.

    (см. http://zeus.phys.uconn.edu/refs/crackers/vimzipper.c)

  2. Восстановление файла подкачки не работает. Когда я снова открыл зашифрованный файл с плохим паролем, vim перезаписал "хороший" файл подкачки.

  3. Запустите unixcrypt-breaker с большой базой данных открытого текста (~ 30 книги от Project Gutenberg) в качестве справочных данных. Это приводит к бред, даже если я только семя Unixcrypt-Breaker с восстановленный текст. Кроме того, я не могу сломать даже простой тестовый файл, зашифрованный с помощью vim с использованием этого метода. (К вашему сведению, я зачистка VimCrypt ~ 01! волшебный заголовок, прежде чем запустить дешифрование и я удаляю его с помощью vim в режиме вставки, поэтому я не в противном случае измените содержимое файла).

  4. Отчаянно угадывайте все пароли и ошибки, которые я могу себе представить. я потратил по крайней мере шесть часов, догадываясь, что я мог бы иметь написано неправильно. :)

Чтобы быстро попробовать пароли из программы, я попытался скомпилировать старая UNIX-копия crypt / makekey, но результатом этого не является такой же, как тот же файл, который был зашифрован с использованием шифрования vim -x и тот же пароль.

Если кто-нибудь может помочь, я буду очень признателен. Если нет, спасибо за чтение. :)

Ответы [ 5 ]

23 голосов
/ 23 февраля 2009

Из документации VIM :

  • Используемый алгоритм является хрупким. Ключ из 4 символов примерно за час, символьная клавиша за один день (на ПК Pentium 133). Это требует, чтобы вы знали некоторый текст, который должен появиться в файле. Эксперт может сломать его для любого ключа. Когда текст расшифрован, это также означает, что ключ может быть раскрыты, и другие файлы, зашифрованные с тем же ключом, могут быть расшифрованы.

Если бы это было возможно на Pentium 133, я думаю, у вас очень хорошие шансы. :)

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

10 голосов
/ 23 февраля 2009

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

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

7 голосов
/ 23 февраля 2009

Не уверен, что это может помочь:

Объясняет, как взломать файл, зашифрованный с помощью «crypt», может дать вам отправную точку (по крайней мере, в более старых версиях vi шифрование основывалось на crypt).

5 голосов
/ 23 февраля 2009

Этот древний пост группы новостей имел похожую проблему с вашей:

Моя проблема заключалась в том, что я случайно зашифровал скрипт с использованием vi и не смог вспомнить ключ. Большое спасибо всем, кто откликнулся.

Предложения были следующие:

  • используйте vi -x и угадайте ключ (я пытался безуспешно)
  • написать программу, которая делает криптованный вызов и пробует возможные комбинации клавиш. человек, предложивший это, считал, что потребуется около 5 минут, чтобы взломать
  • скачать CWB (рабочий стол крипторазрушителей) из архива, который поможет взломать
  • опубликовать проблему в sci.crypt.newsgroup, включая первые 128 байтов файла после шифрования и эти байты до шифрования (если я могу вспомнить), и кто-то в группе может взломать это для меня
  • повторно введите скрипт

Одна шпаргалка, которая у вас есть, чтобы ее взломать, - вы знаете, каким должен был быть пароль. Таким образом, даже если бы у вас была случайная опечатка, она все равно немного походила бы на ваш предполагаемый пароль. Может быть, вы могли бы начать там, написать программу для генерации всех возможных комбинаций вашего предполагаемого пароля с 1 или 2 символами неправильного написания-дополнения.

В любом случае, какое аккуратное упражнение / отвлечение!

0 голосов
/ 18 декабря 2018

Этот вопрос довольно старый. Вот современное решение:

Используйте hashcat (https://hashcat.net/hashcat/). Hashcat имеет плагины для широкого набора алгоритмов криптографии и позволяет вам указать и заполнить файл словаря (начальная точка грубой силы) подсказками, которые вы до сих пор помните о потерянном пароле. .

...