Как зашифровать текстовый файл: age, GPG и VeraCrypt
Текстовый файл удобен, но если в нём есть пароли, клиентские данные или чувствительные заметки, одного HTTPS и облака недостаточно. Ниже — три практических способа шифрования: age, GPG и VeraCrypt.
Сначала определите задачу
Шифрование бывает разным. Полнодисковое шифрование (FileVault, BitLocker, LUKS) защищает устройство целиком, если ноутбук потерян или украден. Шифрование отдельного файла защищает содержимое при хранении в облаке, отправке или на общем диске. VeraCrypt может работать как контейнер для папки или как шифрование диска.
Полезно сразу ответить на три вопроса: от кого защищаемся, где будет лежать шифротекст и что произойдёт при потере ключа. Шифрование не спасает от вредоносного ПО на разблокированном устройстве, скриншотов, слабых паролей и ошибок в правах доступа. Оно также не скрывает имя файла, его размер и время изменения — это метаданные, а не содержимое.
Базовый минимум: полнодисковое шифрование, сложный пароль, двухфакторная аутентификация у облака и резервная копия. Шифрование отдельного файла добавляет второй слой, но не заменяет эти меры.
age: минимализм для одного файла
age — современный инструмент файлового шифрования с простым CLI и небольшим числом настроек. Он использует X25519 для ключей и хорошо подходит для одного файла, который нужно зашифровать паролем или публичным ключом.
Установка: brew install age на macOS, apt install age на Debian/Ubuntu, готовые бинарники — на странице релизов проекта. На Windows удобнее WSL или пакетный менеджер.
age -p -o everything.txt.age everything.txt
age -d -o everything.txt everything.txt.age
Первая команда запросит парольную фразу и создаст everything.txt.age. Вторая расшифрует файл. Для пары ключей:
age-keygen -o age-key.txt
# команда выведет публичный ключ вида age1...
age -r age1... -o everything.txt.age everything.txt
age -d -i age-key.txt -o everything.txt everything.txt.age
Приватный ключ age-key.txt нельзя хранить рядом с шифротекстом. Его стоит положить в менеджер паролей или на офлайн-носитель, а публичный ключ можно передавать другим людям.
Плюсы age: простые команды, современные алгоритмы, мало шансов ошибиться в настройках. Минусы: меньше интеграций, чем у GPG, и вся ответственность за ключи лежит на пользователе.
GPG: совместимость и ключи
GNU Privacy Guard (GPG) — реализация OpenPGP. Он распространён в почте, подписях и корпоративных процессах, умеет симметричное и асимметричное шифрование. Если нужно обмениваться файлами с людьми, у которых уже есть PGP-ключи, GPG остаётся практичным выбором.
Симметричное шифрование с парольной фразой:
gpg --symmetric --cipher-algo AES256 everything.txt
gpg --decrypt everything.txt.gpg > everything.txt
Для текстового представления, которое можно отправить в письме, добавьте --armor. Для шифрования публичным ключом получателя:
gpg --full-generate-key
gpg --encrypt --recipient you@example.com everything.txt
gpg --decrypt everything.txt.gpg > everything.txt
Ключи и их резервные копии — главная сложность. Сохраните приватный ключ и revocation-сертификат, запомните парольную фразу, проверьте восстановление на чистой машине. Экспорт публичного ключа: gpg --export --armor; импорт: gpg --import.
Плюсы GPG: широкая совместимость, подписи, привычная модель публичных ключей. Минусы: сложный интерфейс, риск потерять ключ или пароль, больше настроек. Для нового личного файла age обычно проще; для PGP-экосистемы — GPG.
VeraCrypt: контейнер для папки или диска
VeraCrypt создаёт зашифрованный контейнер или шифрует диск. Внутри контейнера может лежать не один файл, а целая папка: заметки, вложения, архивы. Поддерживаются AES, Serpent и Twofish, ключевые файлы, PIM и скрытые тома.
Базовый сценарий в GUI:
- Create Volume → Create an encrypted file container.
- Выберите обычный или скрытый том.
- Укажите путь и размер контейнера.
- Выберите алгоритм шифрования (AES с аппаратным ускорением — практичный выбор по умолчанию).
- Задайте пароль и, при необходимости, ключевой файл.
- Отформатируйте контейнер, смонтируйте его, скопируйте
everything.txtвнутрь и размонтируйте.
В командной строке основные операции выглядят так (проверьте veracrypt --help для вашей версии):
veracrypt -t -c /path/container.hc
veracrypt -t /path/container.hc /mnt/vc
veracrypt -t -d /mnt/vc
Для синхронизации кладите в облако только закрытый контейнер. Не синхронизируйте смонтированный том: облачный клиент увидит отдельные файлы и может повредить контейнер при конфликте. Порядок такой: смонтировать локально → изменить файл → размонтировать → дождаться синхронизации контейнера.
Сделайте резервную копию заголовка тома через GUI (Tools → Backup Volume Header) и храните её отдельно. Без заголовка восстановить контейнер значительно сложнее. Если используете скрытый том, включайте защиту скрытого тома при монтировании внешнего, иначе внешние записи могут его повредить.
Плюсы VeraCrypt: сильное шифрование целой папки, скрытые тома, кроссплатформенность. Минусы: контейнер тяжелее файла, размер фиксирован, официальных мобильных клиентов нет, а синхронизация смонтированного тома опасна.
Сравнение
| Критерий | age | GPG | VeraCrypt |
|---|---|---|---|
| Что шифрует | Один файл | Один файл | Контейнер, папку или диск |
| Сложность | Низкая | Средняя или высокая | Средняя |
| Ключи | Пароль или X25519 | PGP-ключи или пароль | Пароль, ключевой файл, PIM |
| Совместная работа | Через публичный ключ | Через PGP-ключи | Через общий контейнер |
| Мобильные | Ограниченно | Есть PGP-приложения | Официальных клиентов нет |
| Синхронизация | Шифротекст | Шифротекст | Только закрытый контейнер |
| Лучше всего для | Личного файла | PGP-экосистемы и подписей | Папки, архива, диска |
Практические сценарии
- Один файл и пароль. age: одна команда на шифрование, одна на расшифровку.
- Обмен с PGP-пользователем. GPG: зашифруйте публичным ключом получателя, подпишите при необходимости.
- Папка с заметками и вложениями. VeraCrypt: контейнер фиксированного размера, внутри — вся структура.
- Облачная синхронизация. Шифруйте до загрузки. Расшифровывайте во временную папку вне синхронизации, а не рядом с шифротекстом.
- Мобильный доступ. Для age и GPG есть ограниченные CLI/приложения; VeraCrypt официально не поддерживает мобильные ОС. Если мобильный доступ обязателен, оцените file-level vault вроде Cryptomator или шифрование на уровне ОС.
- Резервные копии. Храните зашифрованную копию, резервную копию ключа и проверяйте восстановление на отдельном устройстве.
Частые ошибки
- Расшифровывать файл в синхронизируемую папку — plaintext снова уходит в облако.
- Синхронизировать смонтированный VeraCrypt-контейнер.
- Хранить приватный ключ или пароль рядом с шифротекстом.
- Использовать один слабый пароль для облака, диска и архива.
- Не делать резервную копию заголовка VeraCrypt.
- Считать, что шифрование скрывает имя, размер и время изменения файла.
- Забывать про полнодисковое шифрование и двухфакторную аутентификацию.
Чек-лист
- Определён сценарий: защита от кражи, облака, общего доступа или потери устройства.
- Включено полнодисковое шифрование и 2FA у облака.
- Выбран метод: age, GPG или VeraCrypt.
- Парольная фраза и ключи сохранены в менеджере паролей или офлайн.
- Plaintext не попадает в синхронизируемую папку.
- Восстановление из зашифрованной копии проверено.
- VeraCrypt размонтирован, заголовок тома сохранён.
Если файл синхронизируется между устройствами, сначала настройте безопасную синхронизацию: как синхронизировать один текстовый файл. Если ещё выбираете инструмент для заметок, начните со сравнения OBTF, Notion и Obsidian.
Начните с готового файла. В шаблоне уже есть дата, маркеры и примеры записей.