GPG — шифрування

GPG — шифрування

Изображение записи по умолчанию
0

GPG — шифрование

GPG (GnuPG) — инструмент для шифрования и подписи данных. Используется для защиты файлов, проверки подлинности ПО и безопасной коммуникации.

Создание ключей

# Генерация нового ключа (интерактивно)
gpg --gen-key

# Полная генерация с выбором типа и размера
gpg --full-gen-key

# Быстрая генерация (RSA 4096)
gpg --quick-generate-key "Alice <alice@example.com>" rsa4096 default 2y

При генерации GPG попросит:

  • Имя и email
  • Тип ключа (RSA по умолчанию)
  • Размер ключа (2048 или 4096)
  • Срок действия
  • Парольную фразу (passphrase)

Просмотр ключей

# Список открытых ключей
gpg --list-keys
gpg -k

# Список закрытых ключей
gpg --list-secret-keys
gpg -K

# С деталями
gpg --list-keys --keyid-format LONG

# С отпечатком (fingerprint)
gpg --fingerprint alice@example.com

Экспорт и импорт ключей

# Экспорт открытого ключа
gpg --export alice@example.com > alice_pubkey.gpg

# Экспорт в ASCII (для email/текста)
gpg --armor --export alice@example.com > alice_pubkey.asc

# Экспорт закрытого ключа (ОСТОРОЖНО!)
gpg --export-secret-keys alice@example.com > alice_privkey.gpg

# Импорт ключа
gpg --import alice_pubkey.asc
gpg --import alice_privkey.gpg

Шифрование файлов

# Зашифровать файл для получателя
gpg --encrypt --recipient alice@example.com secret.txt
# или коротко:
gpg -e -r alice@example.com secret.txt

# Зашифровать в ASCII (для передачи текстом)
gpg -e -r alice@example.com --armor secret.txt

# Зашифровать симметрично (паролем, без ключей)
gpg --symmetric secret.txt
# или:
gpg -c secret.txt

Расшифровка файлов

# Расшифровать
gpg --decrypt secret.txt.gpg
# или:
gpg -d secret.txt.gpg > secret.txt

# Расшифровать симметрично зашифрованный
gpg -d secret.txt.gpg

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

# Подписать файл (отдельная подпись)
gpg --sign document.pdf

# Подписать в ASCII
gpg --clearsign document.txt

# Отделённая подпись
gpg --detach-sign package.tar.gz
# Создаст package.tar.gz.sig

# Проверить подпись
gpg --verify document.txt.gpg
gpg --verify package.tar.gz.sig package.tar.gz

Шифрование + подпись

# Зашифровать и подписать одновременно
gpg -e -r bob@example.com --sign secret.txt

Управление доверием ключей

# Редактировать ключ
gpg --edit-key bob@example.com

# В интерактивном режиме:
> trust     # установить уровень доверия
> sign      # подписать ключ
> expire    # изменить срок
> passwd    # изменить пароль
> quit

Уровни доверия

  • unknown — неизвестно
  • none — нет доверия
  • marginal — частичное доверие
  • full — полное доверие
  • ultimate — абсолютное доверие (свой ключ)

Отправка ключей на сервер

# Отправить открытый ключ на сервер ключей
gpg --send-keys alice@example.com
gpg --keyserver keys.gnupg.net --send-keys A1B2C3D4

# Найти ключ на сервере
gpg --search-keys alice@example.com

# Получить ключ
gpg --recv-keys A1B2C3D4

Практическое задание

  1. Сгенерируйте ключ: gpg --gen-key
  2. Просмотрите ключи: gpg --list-keys
  3. Создайте файл: echo "Secret message" > test.txt
  4. Зашифруйте симметрично: gpg -c test.txt
  5. Расшифруйте: gpg -d test.txt.gpg
  6. Зашифруйте своим ключом: gpg -e -r your@email test.txt
  7. Подпишите файл: gpg --sign test.txt
  8. Проверьте подпись: gpg --verify test.txt.gpg
  9. Экспортируйте открытый ключ: gpg --armor --export your@email > pubkey.asc

Comments

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Related Post