💾 Archived View for tilde.team › ~rami › redhat_gnupg.gmi captured on 2023-12-28 at 16:13:09. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-01-29)

-=-=-=-=-=-=-

~Rami ₪ MANUALS

רמי

SUBJECT: GNUPG: Создание ключей, подключей, их редактирование и определение личного доверия

AUTHOR: Rami Rosenfeld

DATE: 15/09/22

TIME: 15.00

LANG: ru, en

LICENSE: GNU FDL 1.3

TAGS: gnu, gnome, software, opensource, linux, system, man, manual, bash, privacy, security, rhel, centos, mate, xfce, lxde, spin, de, systemd, systemctl, selinux, firewalld, dnf, rpm, gnupg, pgp

GNUPG: Создание ключей, подключей, их редактирование и определение личного доверия

INTRO

Примечание: Все действия осуществляются от имени текущего пользователя (т.е. НЕ от администратора = root)

Примечание: В старых операционных системах GNU Privacy Guard вызывается командой "gpg" (v.1.+); текущая стабильная версия (v.2.+) в новых ОС - командой "gpg2". В продуктах Red Hat можно использовать обе: команда gpg является алиасом и по умолчанию вызовет gpg2.

Важно! Личная связка ключей GNU Privacy Guard состоит из двух частей: открытого (публичного) и приватного (секретного) ключей:

- ПУБЛИЧНЫЙ КЛЮЧ можно (и нужно!) распространять где угодно - это необходимо, чтобы люди могли вступить с вами в защищенную переписку.

- ПРИВАТНЫЙ КЛЮЧ НЕ ДОЛЖЕН покидать вашего компьютера ни в каком виде!

Важно! После создания личной связки ключей обязательно сделайте резервные копии:

- ~/.gnupg - каталога со связками ключей, таблицей доверия и т.п.;

- открытого и закрытого ключей (см. команды экспорта публичных и секретных ключей);

- ~/.gnupg/openpgp-revocs.d/file_name.rev - сертификата отзыва для них.

Храните резервные копии в защищенном и зашифрованном месте!

NOTE

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

$ gpg2 --list-keys

/home/user/.gnupg/pubring.kbx

pub ed25519 2018-11-30 [SC]

248097092B443209C508DAC0350585C4E9518F26

uid [ неизвестно ] nobody@site.org

sub cv25639 2018-11-30 [E]

В данном случае к связке прикреплен чужой публичный (открытый) ключ, связанный с адресом nobody@site.org. Ваше доверие к нему не определено ("неизвестно").

- тип ключа - RSA;

- длина ключа - 4096 бит (максимальный размер для наилучшей защиты);

- имя ("My Name);

- E-mail ("my@name.com");

- необходимый комментарий ("Official Key");

- без ограничения срока действия.

Вызов полнофункционального диалога создания ключа:

$ gpg2 --full-generate-key

gpg (GnuPG) 2.3.4; Copyright (C) 2021 Free Software Foundation, Inc.

This is free software: you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

Выберите тип ключа:

(1) RSA and RSA

(2) DSA and Elgamal

(3) DSA (sign only)

(4) RSA (sign only)

(9) ECC (sign and encrypt) *default*

(10) ECC (только для подписи)

(14) Existing key from card

Ваш выбор?

1

Важно! Не экспериментируйте с выбором алгоритма шифрования, если не понимаете, что делаете! Ответ "1" ("RSA and RSA": Rivest, Shamir, Adelman) - универсален.

Длина ключей RSA может быть от 1024 до 4096.

Какой размер ключа Вам необходим? (3072)

4096

Запрошенный размер ключа - 4096 бит

Выберите срок действия ключа.

0 = не ограничен

<n> = срок действия ключа - n дней

<n>w = срок действия ключа - n недель

<n>m = срок действия ключа - n месяцев

<n>y = срок действия ключа - n лет

Срок действия ключа?

0

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

Все верно? (y/N)

y

GnuPG должен составить идентификатор пользователя для идентификации ключа.

Ваше полное имя: My Name

Адрес электронной почты: my@name.com

Примечание: Official Key

Вы выбрали следующий идентификатор пользователя:

"My Name (Official Key) <my@name.com>"

Сменить (N)Имя, (C)Примечание, (E)Адрес; (O)Принять/(Q)Выход?

O

[ЗАПРОС ПАРОЛЬНОЙ ФРАЗЫ]

[ПОВТОР ЗАПРОСА ПАРОЛЬНОЙ ФРАЗЫ]

Важно! Для защиты личных ключей необходимо выбрать достаточно стойкий пароль (не менее 16-24 символов, включащих в себя английские буквы в разном регистре, цифры, служебные символы), например: %tDb74Ek*_L15aPf98gSq($+

Сообщение gpg:

"Необходимо получить много случайных чисел. Желательно, чтобы Вы в процессе генерации выполняли какие-то другие действия (печать на клавиатуре, движения мыши, обращения к дискам); это даст генератору случайных чисел больше возможностей получить достаточное количество энтропии".

gpg: создан каталог '/home/user/.gnupg/openpgp-revocs.d'

gpg: сертификат отзыва записан в '/home/user/.gnupg/openpgp-revocs.d/10B2B413C931F13ECC43184C1EDA85ED4726202A.rev'.

Открытый и секретный ключи созданы и подписаны.

pub rsa4096 2022-09-14 [SC]

10B2B413C931F13ECC43184C1EDA85ED4726202A

uid My Name (Official Key) <my@name.com>

sub rsa4096 2022-09-14 [E]

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

Проверка результата создания личной пары ключей

$ gpg2 --list-keys

(данные сокращены)

pub rsa4096 2022-09-14 [SC]

10B2B413C931F13ECC43184C1EDA85ED4726202A

uid [ абсолютно ] My Name (Official Key) <my@name.com>

sub rsa4096 2022-09-14 [E]

$ gpg2 --list-public-keys

(данные сокращены)

pub rsa4096 2022-09-14 [SC]

10B2B413C931F13ECC43184C1EDA85ED4726202A

uid [ абсолютно ] My Name (Official Key) <my@name.com>

sub rsa4096 2022-09-14 [E]

$ gpg2 --list-secret-keys

sec rsa4096 2022-09-14 [SC]

10B2B413C931F13ECC43184C1EDA85ED4726202A

uid [ абсолютно ] My Name (Official Key) <my@name.com>

ssb rsa4096 2022-09-14 [E]

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

$ gpg2 --edit-key my@name.com

gpg> adduid

Ваше полное имя: Jabber Fan

Адрес электронной почты: fan@xmpp.site

Примечание: Key for XMPP Encryption

Вы выбрали следующий идентификатор пользователя:

"Jabber Fan (Key for XMPP Encryption) <fan@xmpp.site>"

Сменить (N)Имя, (C)Примечание, (E)Адрес; (O)Принять/(Q)Выход?

O

[ЗАПРОС ПАРОЛЬНОЙ ФРАЗЫ К ТЕКУЩЕМУ КЛЮЧУ]

sec rsa4096/1EDA85ED4726202A

создан: 2022-09-14 годен до: никогда назначение: SC

доверие: абсолютное достоверность: абсолютное

ssb rsa4096/30E6CD4925B3DACE

создан: 2022-09-14 годен до: никогда назначение: E

[ абсолютно ] (1) My Name (Official Key) <my@name.com>

[ неизвестно ] (2). Jabber Fan (Key for XMPP Encryption) <fan@xmpp.site>

gpg>

Примечание: В данном случае создан UID, предназначенный для шифрования переписки по протоколу Jabber/XMPP. Обратите внимание, что "fan@xmpp.site" - это НЕ почтовый адрес, а JID (Jabber ID).

Примечание: Аналогичным образом создаются и другие UID, предназначаемые для разных целей.

В настоящее время на связке уже имеется один подключ (ssb), который предназначен только для шифрования. Действие по созданию дополнительного подключа необходимо, если вы хотите воспользоваться расширенными возможностями gpg и использовать subkey для разных задач: только для подписи ЭЦП, только для шифрования.

Примечание: Выбирайте алгоритм RSA.

gpg> addkey

Выберите тип ключа:

(3) DSA (sign only)

(4) RSA (sign only)

(5) Elgamal (encrypt only)

(6) RSA (encrypt only)

(10) ECC (только для подписи)

(12) ECC (encrypt only)

(14) Existing key from card

Ваш выбор?

4

длина ключей RSA может быть от 1024 до 4096.

Какой размер ключа Вам необходим? (3072)

4096

Запрошенный размер ключа - 4096 бит

Выберите срок действия ключа.

0 = не ограничен

<n> = срок действия ключа - n дней

<n>w = срок действия ключа - n недель

<n>m = срок действия ключа - n месяцев

<n>y = срок действия ключа - n лет

Срок действия ключа? (0)

0

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

Все верно? (y/N)

y

Действительно создать? (y/N)

y

[ЗАПРОС ПАРОЛЬНОЙ ФРАЗЫ К ТЕКУЩЕМУ КЛЮЧУ]

sec rsa4096/1EDA85ED4726202A

создан: 2022-09-14 годен до: никогда назначение: SC

доверие: абсолютное достоверность: абсолютное

ssb rsa4096/30E6CD4925B3DACE

создан: 2022-09-14 годен до: никогда назначение: E

ssb rsa4096/A9301500B04A4D9B

создан: 2022-09-15 годен до: никогда назначение: S

[ абсолютно ] (1). Jabber Fan (Key for XMPP Encryption) <fan@xmpp.site>

[ абсолютно ] (2) My Name (Official Key) <my@name.com>

Из приведенной выше информации видно, что на связке появился второй подключ (ssb). Назначения у этих подключей - разные: "E" (предназначен для шифрования); "S" (предназначен для подписания).

gpg> addphoto

Выберите изображение для своего фотоидентификатора. Это должен быть файл JPEG. Помните, что изображение будет храниться в Вашем открытом ключе и увеличит его размер! Рекомендуется размер около 240x288.

Введите имя файла JPEG для фотоидентификатора:

(укажите полный путь к файлу)

gpg> showpref

[ абсолютно ] (1) My Name (Official Key) <my@name.com>

Симметричные шифры: AES256, AES192, AES, 3DES

AEAD: OCB, EAX

Хеш: SHA512, SHA384, SHA256, SHA224, SHA1

Алгоритмы сжатия: ZLIB, BZIP2, ZIP, Без сжатия

Характеристики: MDC, AEAD, Не изменять на сервере

[ неизвестно ] (2). Jabber Fan (Key for XMPP Encryption) <fan@xmpp.site>

Симметричные шифры: AES256, AES192, AES, 3DES

AEAD: OCB, EAX

Хеш: SHA512, SHA384, SHA256, SHA224, SHA1

Алгоритмы сжатия: ZLIB, BZIP2, ZIP, Без сжатия

Характеристики: MDC, AEAD, Не изменять на сервере

В настоящее время абсолютное доверие присвоено только ключу, связанному с <my@name.com>. Доверие к подключу <fan@xmpp.site> пока неизвестно:

[ абсолютно ] (1) My Name (Official Key) <my@name.com>

[ неизвестно ] (2). Jabber Fan (Key for XMPP Encryption) <fan@xmpp.site>

Обозначим личное доверие к fan@xmpp.site:

gpg> trust fan@xmpp.site

или (по ID подключа):

gpg> trust 30E6CD4925B3DACE

или (по порядковому номеру)

gpg> trust 2

Сообщение gpg:

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

1 = Не знаю или не буду отвечать

2 = НЕ доверяю

3 = Доверяю ограниченно

4 = Полностью доверяю

5 = Абсолютно доверяю

m = вернуться в главное меню

Ваше решение?

5

Вы действительно хотите сделать этот ключ абсолютно доверенным? (y/N)

y

Примечание: После присвоения доверия информация о степени доверия к ключу "fan@xmpp.site" на экране НЕ изменится. Для внесения изменений надо сохранить результат и выйти из режима субкоманд:

gpg> q

Сохранить изменения? (y/N)

y

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

gpg> save

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

Импорт в текстовый (т.е. пригодный для чтения и распечатки) файл:

gpg2 --export --armor --output ~/all_public_keys

Проверка результата:

~/all_public_keys

-----BEGIN PGP PUBLIC KEY BLOCK-----

mDMEXAHLgxYJKwYBBAHaRw8BAQdAFW (...)

-----END PGP PUBLIC KEY BLOCK-----

Примечание: это безопасная операция.

Импорт в текстовый (т.е. пригодный для чтения и распечатки) файл:

gpg2 --export-secret-keys --armor --output ~/secret_key

Проверка результата:

cat ~/secret_key

-----BEGIN PGP PRIVATE KEY BLOCK-----

lQdGBGMh/UcBEACo20O9vMx69asSFL8 (...)

-----END PGP PRIVATE KEY BLOCK-----

Примечание: Это критичная операция! Храните файл в защищенном и недоступном месте!

gpg2 --export --output ~/public

gpg2 --export-secret-keys --output ~/secret

gpg2 --import ~/some_key

Примечание: Не забудьте установить необходимую степень доверия к импортированному ключу (ключам).

Сертификат отзыва

cat ~/.gnupg/openpgp-revocs.d FILE_NAME.rev

Это сертификат отзыва ключа OpenPGP:

pub rsa4096 2022-09-14 [S]

10B2B413C931F13ECC43184C1EDA85ED4726202A

uid My Name (Official Key) <my@name.com>

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

Пользуйтесь им для отзыва этого ключа в случае раскрытия или потери секретного ключа. Однако если секретный ключ доступен, лучше создать новый сертификат с указанием причины отзыва. Подробности см. в описании команды gpg "--generate-revocation" в руководстве по GnuPG.

Чтобы избежать случайного применения этого файла, перед 5 дефисами вставлено двоеточие. Удалите это двоеточие в текстовом редакторе перед импортированием и публикацией этого сертификата отзыва.

:-----BEGIN PGP PUBLIC KEY BLOCK-----

Comment: This is a revocation certificate

iQI2BCABCAAgFiEEELK0E8kx8T7MQxhMHtqF7 (...)

-----END PGP PUBLIC KEY BLOCK-----

Структура каталога GPG

ls ~/.gnupg/

drwx------. openpgp-revocs.d/

-rw-------. openpgp-revocs.d/xxx6202A.rev

drwx------. private-keys-v1.d/

-rw-------. private-keys-v1.d/xxxD4A74.key

-rw-------. private-keys-v1.d/xxx0D44D.key

-rw-------. private-keys-v1.d/xxxC664D9.key

-rw-------. pubring.kbx

-rw-------. random_seed

-rw-------. tofu.db

-rw-------. trustdb.gpg

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

Подробнее см.:

man gpg2

The GNU Privacy Guard Official

Fedora: Creating GPG Keys

₪ Back to home ₪

🄯 Rami Rosenfeld, 2022. GNU FDL 1.3.