Всем привет, с вами еженедельная рубрика "Секреты Вим"! Сегодня обсудим тайные дела и секреты: шифрование файлов.
Да, Вим умеет шифровать файлы. Без ключа их не прочитать. Я расскажу, как файл зашифровать и как потом открыть, но сначала немного о безопасности для профессионалов тайной войны.
- Текст во вспомогательных файлах также зашифрован. Однако в документации Вим указывается, что в этих файлах обычно отрезки текста --- а это может облегчить взлом. Можно отключить эти файлы:
set noundofile
noswap edit файл. - Текст в памяти не зашифрован. Использование внешних команд, вроде fmt и других фильтров, также рискованно --- они получают, разумеется, расшифрованный текст.
- Файл .viminfo тоже не шифруется, а туда попадают кое-какие регистры. Если вы активно редактируете тайный файл, не забудьте почистить .viminfo или отключить его совсем.
Если запустить Вим с ключом -x ---- будет запрошен пароль. Это нужно для нового файла, потому что уже зашифрованный можно открыть просто так --- пароль будет все равно запрошен.
Если ввести неверный пароль, никаких предупреждений не выводится, чтобы не помогать хакеру --- просто выведется каша. Как на картинке.
Изнутри Вим режим шифрования включается через :X --- при этом будет запрошен пароль, а первая же операция записи зашифрует текст.
Пароль хранится в переменной key. Обычный способ посмотреть значение, set key --- его не покажет, но этим способом его можно установить или сбросить. Так, :set key=my_password задаст пароль, а :set key= отменит шифрование, и первая операция записи запишет файл с или без шифрования, соответственно.
Задавать пароль этим способом небезопасно: он будет виден в истории команд и пока вы его набираете (команда :X вводит пароль без отображения его на экране, даже *** нет).
Важно: если вы открыли во вкладке шифрованный файл (надо ввести пароль), потом закрыли, не выходя из Вим, а потом открыли снова, то пароль не запрашивается!
Поэтому мало просто закрыть вкладку с компрометирующим текстом, чтобы отойти от компьютера. Выходите из Вим, можно создать сессию (mksession), чтобы сохранить все окна и вкладки.
Теперь опять информация для хакеров и тех, кто их остерегается.
В Вим есть три алгоритма шифрования в Вим (см. help). По умолчанию используется zip, он обратно-совместимый, но не особо стойкий. Архиватор pkzip использует этот же алгоритм. На мой взгляд, для личных целей вполне годится.
Метод задается в переменной cryptmethod. Пустое значение не отключает шифрование, а задает метод zip.
blowfish2 намного более стойкий (средняя стойкость), ну это если реально надо. Третий (blowfish) дырявый, как сообщает документация, не используйте его вообще.
Впрочем, сертификации на криптостойкость Вим не проходил. Сообщается, что zip с 4-значным паролем ломается за час, 6-значным --- за сутки, опытный хакер взломает любой пароль.
Взлом текста означает раскрытие пароля и, соответственно, всего, что этим паролем зашифровано.
Отмечается, что Вим родом из Голландии и код шифрования написан там, а не в США.
В общем, дело обстоит так: Вим позволяет шифровать файлы и имеет работать с ними; это не шпионское ПО, так что многого ждать от этого я бы не стал, но скрыть что-то личное вполне по силам!