Back to: 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
Практическое задание
- Сгенерируйте ключ:
gpg --gen-key - Просмотрите ключи:
gpg --list-keys - Создайте файл:
echo "Secret message" > test.txt - Зашифруйте симметрично:
gpg -c test.txt - Расшифруйте:
gpg -d test.txt.gpg - Зашифруйте своим ключом:
gpg -e -r your@email test.txt - Подпишите файл:
gpg --sign test.txt - Проверьте подпись:
gpg --verify test.txt.gpg - Экспортируйте открытый ключ:
gpg --armor --export your@email > pubkey.asc


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