Cryptology Academy · Урок

GPG для асимметричного шифрования файлов

Используйте GPG для шифрования файлов для определенных получателей, подписывайте содержимое и управляйте связкой ключей GPG.

Урок 1 из 413 шагов

«GPG для асимметричного шифрования файлов» — бесплатный урок Cryptology Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cryptology Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cryptology Academy содержит 4 уроков всего.

Обзор GPG и его назначение

GNU Privacy Guard (GPG) реализует стандарт OpenPGP (RFC 4880) для асимметричного шифрования файлов и создания цифровых подписей. Он поддерживает две основные операции: шифрование файла, чтобы расшифровать его мог только предназначенный получатель, и подписание файла, чтобы другие могли проверить его подлинность и целостность. GPG является стандартным инструментом для безопасной передачи файлов и подписывания выпусков программного обеспечения.

Генерация ключей GPG

Генерация ключей GPG выполняется в интерактивном режиме с помощью gpg --gen-key или в сценариях с помощью gpg --quick-gen-key. В современных версиях GPG по умолчанию используются ed25519 для подписывания и cv25519 (Curve25519) для шифрования; создаются основной ключ для подписывания и подключ для шифрования. Параметр --full-gen-key предоставляет полный контроль над типом и размером ключа, а также датой истечения срока действия для пользователей, которым нужны нестандартные настройки.

Сравнение типов ключей GPG

Ключи GPG RSA размером 4096 бит совместимы со всеми реализациями OpenPGP и обеспечивают высокий уровень безопасности. ECDSA с Curve25519 (Ed25519 для подписывания и Cv25519 для шифрования) позволяет использовать ключи меньшего размера и выполнять операции быстрее, сохраняя сопоставимый уровень безопасности. Устаревшие ключи DSA в старых реализациях ограничены дайджестами SHA-1, поэтому их не следует использовать. Для новых ключей следует выбирать типы на основе Curve25519.

Экспорт и передача открытых ключей

После создания пары ключей экспортируйте открытый ключ для распространения: команда gpg --armor --export your@email.com выводит блок открытого ключа в формате ASCII. Передайте этот файл всем, кто должен шифровать файлы для Вас или проверять Ваши подписи. Получатели импортируют Ваш открытый ключ с помощью gpg --import publickey.asc, после чего смогут шифровать файлы или проверять подписи.

Шифрование файлов для получателей

Чтобы зашифровать файл для конкретного получателя, выполните команду gpg --encrypt --recipient recipient@email.com --output secret.gpg plaintext.txt. GPG использует открытый ключ получателя для шифрования сеансового ключа файла, а сам файл шифрует с помощью AES-256 (или согласованного шифра). Только получатель, у которого имеется соответствующий закрытый ключ, может расшифровать сеансовый ключ файла и восстановить открытый текст.

Создание отсоединённых подписей

Отсоединённая подпись (gpg --detach-sign --armor file.tar.gz) создаёт отдельный файл .asc, содержащий подпись. Исходный файл не изменяется. Получатели проверяют подпись с помощью gpg --verify file.tar.gz.asc file.tar.gz. Отсоединённые подписи являются стандартом для выпусков программного обеспечения: они позволяют проверить подпись, не расшифровывая и не изменяя распространяемый файл.

Проверка подписей

Проверка подписи подтверждает, что файл подписан заявленным ключом и не изменялся после подписывания. Команда gpg --verify signature.asc file выводит отпечаток ключа, идентификатор пользователя и сведения о том, является ли подпись действительной или недействительной. Безопасность зависит от правильного установления доверия к открытому ключу подписавшего: действительная подпись от недоверенного или непроверенного ключа обеспечивает мало гарантий.

Закрытые ключи, защищённые парольной фразой

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

Работа с серверами ключей GPG

Серверы ключей GPG хранят открытые ключи, чтобы их можно было находить. Команда gpg --send-keys KEYID --keyserver hkps://keys.openpgp.org загружает Ваш открытый ключ. Другие пользователи могут найти и импортировать его с помощью gpg --recv-keys KEYID. Серверы ключей синхронизируются друг с другом, обеспечивая глобальную доступность. Современные серверы ключей, такие как keys.openpgp.org, требуют подтверждения адреса электронной почты перед публикацией, что предотвращает атаки с засорением сервера ключами.

Истечение срока действия и отзыв ключей

Установка срока действия для ключа обеспечивает автоматическую защиту в случае утраты контроля над ним, не требуя создания сертификата отзыва. Когда срок действия ключа истекает, GPG предупреждает пользователей, которые шифруют данные для этого ключа. Если Ваш ключ скомпрометирован, немедленно опубликуйте сертификат отзыва (созданный во время генерации ключа) на серверах ключей с помощью команд gpg --import revocation.cert и gpg --send-keys. Это предотвращает дальнейшее шифрование для скомпрометированного ключа.

GPG в автоматизированных рабочих процессах

GPG может работать без взаимодействия с пользователем в сценариях: для этого используются флаги --batch и --yes, а парольные фразы передаются с помощью --passphrase-fd для чтения из файлового дескриптора. Агент GPG (gpg-agent) кэширует парольную фразу в течение настраиваемого периода, позволяя автоматически использовать её повторно. В рабочих процессах CI/CD материалы ключей следует хранить в системах управления секретами, а не в исходном коде или переменных окружения.

Команда GPG для шифрования

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

Итоги шифрования файлов с помощью GPG

Итоги работы с GPG: создавайте пары ключей (предпочтительно на основе Curve25519), экспортируйте и передавайте открытые ключи, шифруйте с помощью открытого ключа получателя (--encrypt --recipient), отдельно подписывайте файлы отсоединёнными подписями (--detach-sign), проверяйте подписи с помощью --verify, защищайте закрытые ключи парольными фразами, устанавливайте сроки действия и заранее создавайте сертификаты отзыва, а также используйте серверы ключей для поиска и распространения открытых ключей.

Можно начать бесплатно

Изучай Cryptology Academy с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
67
Уроки
261

Часто задаваемые вопросы

Урок «GPG для асимметричного шифрования файлов» бесплатный?

Да — полный текст урока «GPG для асимметричного шифрования файлов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cryptology Academy, подпишись на CoddyKit PRO. Курс Cryptology Academy содержит 4 уроков всего.

Чему я научусь в уроке «GPG для асимметричного шифрования файлов»?

Используйте GPG для шифрования файлов для определенных получателей, подписывайте содержимое и управляйте связкой ключей GPG. Ты практикуешь Cryptology Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cryptology Academy?

Предыдущий опыт не требуется. Cryptology Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «GPG для асимметричного шифрования файлов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cryptology Academy?

Да. Каждый урок Cryptology Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. GPG для асимметричного шифрования файлов
  2. Инструмент шифрования age: современная альтернатива GPG
  3. Зашифрованные контейнеры с VeraCrypt
  4. Безопасное удаление и уничтожение ключей
← Назад к Cryptology Academy