Гид по технологиям

Как отправлять зашифрованные письма в Linux с помощью GnuPG

7 min read Шифрование Обновлено 29 Dec 2025
PGP в Linux: шифрование писем с GnuPG
PGP в Linux: шифрование писем с GnuPG

Отправка зашифрованного письма в Linux с помощью GnuPG

Что вы узнаете

  • Как установить GnuPG на Linux.
  • Как сгенерировать PGP-ключи, экспортировать и импортировать публичные ключи.
  • Как шифровать текстовые сообщения и бинарные файлы.
  • Как расшифровать полученные сообщения.
  • Практические рекомендации по безопасности, проверки и контрольные списки.

Введение

PGP (Pretty Good Privacy) — это набор принципов и инструментов для асимметричного шифрования и цифровых подписей. Однострочное определение: публичный ключ шифрует, приватный ключ расшифровывает. GnuPG (gpg) — свободная реализация OpenPGP, которая широко используется в Linux.

Важно: PGP защищает содержимое сообщения от просмотра в пути, но не скрывает метаданные (кому и когда отправлено письмо) и не защищает если приватный ключ скомпрометирован.

Установка gnupg

Проверьте, установлен ли gnupg и его версия. В терминале выполните:

gnupg --version

Если команда выводит версию (рекомендуется v2+), переходите далее. Если нет, установите пакет через менеджер пакетов дистрибутива. На Debian/Ubuntu:

sudo apt-get update
sudo apt-get install gnupg2

Проверьте установку повторно:

gnupg --version

Примечание: в некоторых системах утилита доступна как gpg (ссылка на gnupg). В командах ниже мы используем gpg, это обычный интерфейс.

Генерация PGP-ключа

Сгенерируйте асимметричную пару ключей (публичный + приватный):

gpg --generate-key

Процесс запросит ваше имя и адрес электронной почты. Это могут быть реальные данные или идентификатор, удобный вашим контактам. Затем подтвердите ввод (обычно нажатием O или Enter), и задайте парольную фразу (passphrase). Парольная фраза защищает ваш приватный ключ — не забывайте её.

Генерация может занять несколько минут: GnuPG собирает энтропию (случайность) из действий системы. Подождите до сообщения об успешном создании ключа.

Краткое пояснение терминов:

  • Публичный ключ: распространяйте его, чтобы другие могли шифровать вам сообщения.
  • Приватный ключ: храните в безопасности; он расшифровывает сообщения.

Экспорт публичного ключа

Чтобы дать кому‑то возможность шифровать вам данные, экспортируйте публичный ключ в ASCII-кодированном виде (файл .asc):

gpg -a --export 'myname@domain.com' > mykey.asc

Замените myname@domain.com на адрес, который вы указали при генерации ключа. Файл mykey.asc можно безопасно отправлять по почте или выкладывать на сайт.

Важно: экспортируемый файл содержит только публичный ключ. Приватный ключ при этом остаётся локально.

Импорт публичных ключей

Когда вам присылают публичный ключ (файл, например key.asc), импортируйте его в локальное хранилище GnuPG:

gpg --import key.asc

Просмотреть список доступных ключей:

gpg --list-keys

Вы увидите записи с типом ключа, идентификатором и uid (имя и email). Для шифрования вам обычно нужна только электронная почта получателя или идентификатор ключа.

Пример вывода (объяснение):

pub rsa3072 2020-01-30 [SC] [expires: 2022-01-29]
    8978168C4E79A08553E5789CD42A4A4EC1468CFE
uid [ unknown] Matt Dizak 
  • pub — публичный ключ и его параметры.
  • длинный шестнадцатеричный код — это идентификатор ключа (fingerprint).
  • uid — пользовательский идентификатор (имя и email).

Шифрование текстовых сообщений

Предположим, вы хотите отправить защищённый текст дизайнеру designer@domain.com и у вас уже есть его публичный ключ. Напишите сообщение и сохраните в message.txt. В каталоге с файлом выполните:

gpg -e -a -r 'designer@domain.com' message.txt

Пояснение опций:

  • -e — шифрование (encrypt).
  • -a — выход в ASCII-формате (armored), удобно для вставки в тело письма.
  • -r — recipient (получатель), указывается email или ID ключа.

Подтвердите шифрование, если потребуется (нажмите Y). В результате появится файл message.txt.asc с содержимым вида:

-----BEGIN PGP MESSAGE-----
...
-----END PGP MESSAGE-----

Этот файл можно прикрепить или вставить содержимое в тело письма. Только владелец соответствующего приватного ключа сможет расшифровать его.

Шифрование бинарных файлов

Для бинарных файлов (архивы, изображения, документы) опция -a обычно не нужна. Пример шифрования архива images.zip:

gpg -e -r 'designer@domain.com' images.zip

В результате появится images.zip.gpg — зашифрованная версия архива, которую можно отправить как вложение.

Расшифровка сообщений и файлов

Когда вы получили зашифрованный блок текста или файл, сохраните его локально и выполните:

Для ASCII-armored сообщения:

gpg -d message.asc > message.txt

Для зашифрованного файла:

gpg -d images.zip.gpg > images.zip

Команда запросит парольную фразу от вашего приватного ключа. После успешного ввода появится дешифрованный файл в текущем каталоге.

Подпись сообщений (кратко)

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

Подпись файла:

gpg --sign --armor message.txt

Создастся message.txt.asc с цифровой подписью. Получатель может проверять подпись вашей публичным ключом.

Практическая безопасность и hardening

Важно не только шифровать, но и правильно хранить ключи и управлять ими.

Рекомендации:

  • Используйте сложную парольную фразу и храните её в менеджере паролей.
  • Храните приватный ключ на зашифрованном диске (LUKS, VeraCrypt) или аппаратном носителе (смарт-карта, YubiKey).
  • Создайте резервную копию приватного ключа и храните её в офлайн-хранилище.
  • Регулярно проверяйте ключи по fingerprint перед добавлением в доверенный набор.
  • Используйте субключи (subkeys) для повседневного шифрования/подписывания, а основной ключ держите в офлайне.
  • Установите срок действия (expiry) для ключей и обновляйте их при необходимости.

Короткий пример создания и использования субключей и expiry — это тема отдельного руководства, но принцип: ограничивайте воздействие компрометации ключа.

Когда PGP не защищает: ограничения и сценарии отказа

  • Если приватный ключ или парольная фраза скомпрометированы, вся защита теряет смысл.
  • PGP не скрывает метаданные (кому и когда отправлено письмо). Для защиты метаданных используйте дополнительные средства (например, анонимные прокси или защищённые мессенджеры).
  • Ошибочная отправка зашифрованного файла на неправильный адрес по-прежнему делает данные доступными получателю.
  • Сложность управления ключами в корпоративной среде: требуется политика доверия и публикации ключей (keyservers, WKD).

Альтернативы и совместимость

  • S/MIME: использует X.509 сертификаты и часто интегрируется в корпоративную почту (Outlook). Хорош для централизованного управления, но зависит от инфраструктуры CA.
  • Современные защищённые мессенджеры (Signal, Wire, Matrix) шифруют сообщения end-to-end и удобнее для интерактивной коммуникации.
  • PGP остаётся хорошим выбором для защищённой пересылки файлов и совместимой с множеством почтовых клиентов (Thunderbird+Enigmail, Evolution).

Роль‑ориентированные контрольные списки

Для отправителя:

  • Проверьте, импортирован ли публичный ключ получателя и совпадает ли fingerprint.
  • Сохраните сообщение в файл и зашифруйте командой gpg.
  • Прикрепите .asc или .gpg файл к письму.
  • Укажите в письме инструкции получателю, если это важно (например, формат файла и команда расшифровки).

Для получателя:

  • Убедитесь, что ваш приватный ключ доступен и защищён паролем.
  • Перед расшифровкой проверьте источник сообщения и формат.
  • Выполните gpg -d и введите пароль.
  • Если сообщение подписано, проверьте подпись публичным ключом отправителя.

Проверки и критерии приёмки

Минимальные тесты перед отправкой критичных данных:

  • Импорт публичного ключа и проверка fingerprint.
  • Шифрование тестового файла и успешная расшифровка на стороне получателя.
  • Проверка подписи: отправитель подписал, получатель подтвердил валидность подписи.

Пример SOP (короткий порядок действий) для отправки паролей

  1. Сгенерируйте временный текстовый файл password.txt с паролем.
  2. Убедитесь, что у вас есть актуальный публичный ключ получателя.
  3. Выполните: gpg -e -a -r ‘recipient@domain.com’ password.txt
  4. Удалите локальную копию password.txt после проверки: shred или secure delete.
  5. Отправьте password.txt.asc по электронной почте.
  6. Попросите получателя подтвердить приём и затем уничтожить полученный файл при необходимости.

Важное: никогда не отправляйте приватные ключи или пароли в незашифрованном виде.

Тестовые сценарии / приёмочные критерии

  • Тест 1: Защищённое письмо. У отправителя и получателя разные ключи. Отправитель шифрует файл, получатель расшифровывает — получатель видит исходный текст.
  • Тест 2: Подпись. Отправитель подписывает файл; получатель проверяет подпись и fingerprint отправителя.
  • Тест 3: Неправильный ключ. Попытка расшифровки файлом, не принадлежащим приватному ключу — операция должна завершиться ошибкой.

Простые шаблоны команд (cheat sheet)

  • Просмотреть ключи:
    gpg --list-keys
  • Экспорт публичного ключа:
    gpg -a --export 'you@example.com' > mykey.asc
  • Импорт ключа:
    gpg --import someonekey.asc
  • Шифрование (ASCII):
    gpg -e -a -r 'recipient@example.com' file.txt
  • Шифрование (бинар):
    gpg -e -r 'recipient@example.com' archive.zip
  • Расшифровка:
    gpg -d file.asc > file.txt
  • Подпись:
    gpg --sign --armor file.txt

Советы по совместимости и миграции

  • При переходе на новый компьютер экспортируйте и импортируйте приватный ключ безопасно. Экспорт приватного ключа выполняется командой gpg –export-secret-keys, но делайте это только в защищённой среде.
  • Для публикации публичных ключей используйте WKD (Web Key Directory) или доверенные keyservers, но учитывайте приватность.

Заключение

GnuPG — мощный инструмент для защиты электронной переписки и файлов. Он даёт надёжное шифрование при условии корректного управления ключами и паролями. Следуйте простым правилам: храните приватный ключ в безопасности, проверяйте fingerprint перед шифрованием, используйте субключи и резервные копии. Это обеспечит высокий уровень защиты ваших коммуникаций.

Важно: шифрование — лишь часть общей безопасности. Комбинируйте его с управлением доступом, резервным копированием и политиками безопасности в организации.

Краткое резюме действий:

  1. Установите GnuPG.
  2. Сгенерируйте ключи.
  3. Экспортируйте публичный ключ и поделитесь им.
  4. Импортируйте публичные ключи контактов.
  5. Шифруйте сообщения и файлы командой gpg.
  6. Держите приватный ключ и пароль в безопасности.

Примечание: если вам нужно распространить политику использования PGP в команде или организации, подготовьте централизованный процесс публикации ключей и инструкцию по ротации ключей.

Спасибо за внимание. Удачного шифрования!

Важно

  • Всегда проверяйте fingerprint публичного ключа перед отправкой чувствительной информации.
  • Храните приватный ключ в зашифрованном виде и делайте офлайн-резервные копии.

Контактный чек-лист для быстрой проверки перед отправкой

  • Импортирован ключ получателя
  • Fingerprint проверен
  • Сообщение зашифровано и тестово расшифровано
  • Приватный ключ защищён
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Вставить слайды PowerPoint в Word
Microsoft Office

Вставить слайды PowerPoint в Word

Блокировка рекламы в Chrome, Opera и Internet Explorer
Браузеры

Блокировка рекламы в Chrome, Opera и Internet Explorer

Chrome Journeys: как это работает и когда доступно
браузер

Chrome Journeys: как это работает и когда доступно

Настройки видео для DSLR и беззеркальных камер
Видео

Настройки видео для DSLR и беззеркальных камер

Доступ к редактору групповой политики в Windows Home
Windows

Доступ к редактору групповой политики в Windows Home

YPOPs и Thunderbird: как читать Yahoo Mail офлайн
Почта

YPOPs и Thunderbird: как читать Yahoo Mail офлайн