Перейти к основному содержимому

GPG

Здесь написано о GnuPG, как им пользоваться и при этом понимать, что делаешь.

В статье идёт речь исключительно о консольном клиенте gpg, удобнее всего с ним работать в терминале на linux/macos машине.

Официальный сайт GnuPG здесь, огрызки смыслов в виде официального руководства здесь, статья в ру-википедии здесь.

А эта статья адресована техноманьякам, поскольку нормальные люди GnuPG (как и PGP) использовать не будут.

Шифровка / расшифровка

Зашифровать файл

gpg -e -a -r keyname@key.key filename.txt
ключОписание
-eEncrypt зашифровать файл
-aASCII режим, полезно для техствых файлов
-rrecipient name ключ пробел файл

Расшифровка

ключОписание
-dDecrypt режим расшифровки
-ooutput выходной файл пробел зашифрованный файл

Для расшифровки текстовых ASCII сообщений удобно все сообщение вставить файл. С расширением asc. И просто перевести его используя ключ -d.

gpg -d input.asc

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

Расшифровать файл

gpg -d -o (выходной файл) (файл расшифровуемый)

Имя ключа подставлять не нужно, если он есть, прогармма найдет его сама.

Короткая выжимка основных операций. Подробности в разделах ниже.

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

КлючКомандаОписание
-k--list-keysсписок всех публичных ключей
-K--list-secret-keysпросмотра приватных ключей

Команда --list-keys или -k печатает список всех публичных ключей.
Для просмотра приватных ключей есть --list-secret-keys или -K (большая)

gpg -k

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

Для проверки подписи используется опция --verify

Если цифровая подпись интегрирована в файл, то достаточно указать опцию --verify, а затем проверяемый файл.

Если файл подписи находится в том же каталоге, указываем названия подписи. обычно *.asc

# подпись встроена в файл
gpg --verify test.php.gpg

# файл подписи в этом же каталоге вроверяемый файл.
gpg --verify test.php.asc

Если цифровая подпись отделена от файла, то после опции --verify нужно указать два аргумента: вначале идёт файл с подписью, а затем подписанные данные:

gpg --verify (файл с сигнатурой) (проверяемый файл)

Если есть файл ключ, то можно добавить его --keyring (путь к ключу)

gpg --verify --keyring (путь к ключу) (файл с сигнатурой) (проверяемый файл)

Импорт / экспорт

КомандаОписание
--exportэкспорт публичных ключей > в файл
--export-secret-keyэспорт приватных ключей > файл

Пример экспорта публичного ключа -a в ASCII формате.

gpg --export -a key@mail.com > public.gpg

Пример экспорта приватного ключа -a в ASCII формате.

gpg --export-secret-key -a key@mail.com > secret.gpg

В результате будет создан файл public.gpg / secret.gpg

For import use --import

# import public key
gpg --import public.gpg

# import secret key
gpg --import secret.gpg

Редактирование / настройка ключей

Редактирование ключей выполняет команда --edit-key

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

Выполняется через команду --edit-key, далее выбирается ключ, который требует продления.
Пример:

gpg --edit-key 0x12345678
gpg > expire
...
gpg > save

Config

echo "keyid-format 0xlong
throw-keyids
no-emit-version
no-comments" > ~/.gnupg/gpg.conf

Полезное дополнительное чтиво

Как проверить цифровую подпись Tor Browser?