Для общения с кем-либо, вы должны обменяться ключами. Просмотреть список
имеющихся у Вас открытых ключей, можно используя команду
--list-keys
.
alice$
gpg --list-keys
/home/alice/.gnupg/pubring.gpg ------------------------------ pub 2048R/8A9ED75D 2005-10-21 uid Alice (test key) <alice@wonderland.uk>
Перед тем как послать кому-либо открытый ключ, Вы должны его экспортировать.
Для этого используйте команду --export
.
Ей требуется, дополнительно, аргумент идентифицирующий экспортируемый открытый
ключ, как и для --gen-revoke
.
alice$
gpg --output alice.gpg --export alice@wonderland.uk
Ключ экспортируется в двоичном формате, что бывает неудобно. GnuPG имеет
опцию командной строки --armor
,
которая указывает на необходимость вывода в формате ASCII.
Практически любой вывод GnuPG, т.е. ключи, зашифрованные
документы, подписи, может происходить в формате ASCII.[1]
alice$
gpg --armor --export alice@wonderland.uk
-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.2 (FreeBSD) mQELBENZTrwBCADLF5l3gEy1I7LgkXZKYoAE4any7l0TyeltvSWOPAQhNqF8VNJC EFETh8gzncgcI/or3fxSfsWsgfEkSuj8pyusDV6xhNEFR8s1VJ+szWBs4wteMFWm 1AEurNTWQm0drOPoiNhoigg9lsKss9d+35briRWQsy+sdOjEpoYR2WqzvjU4dfNx j5bLdlFeXFEPMjb0f10ID+AR0T+xc5jfqA1qMZWbLezFbgi/ZFN+h4Yt/RMac4q8 fAl6hADYfpVR87FUoKOMvktnyFOgnRiHhD8F/hWOPjIZVXDkOeACouCUk4qpHkCI I+rRGehrmb4fNr8dWEf5JlVfxq7dD0u2vdvLAAYptCZBbGljZSAodGVzdCBrZXkp IDxhbGljZUB3b25kZXJsYW5kLnVrPokBNgQTAQIAIAUCQ1lOvAIbAwYLCQgHAwIE FQIIAwQWAgMBAh4BAheAAAoJEMJ/MmGKntddLtgH/0rZaMYN6a6PBHtsIoGBqS6E KTuqOONGC/9C6glgtpWMurI/diBFJxAseulgypGeXSxgcLR8ZUI28e1JWPDnPgsG PiqMduPcVbtFPrHZ7sXDyDyhlHtF3dLcjpkCtTUwEtJYGcrjGgM/nfxapbddw0tk jT2PiJURjm1dR681xdlErCcUh8WbzFm6Et1hJmhnvTKRD/S+F/d0pr+PEsFKIw+/ x+++l3JTkn14ahOrWa7H+WRTzw1NGNN4SuclMXxCHmc2h7R5UOWfRv17LEBRqo4T N6sSoSlOKjbyX/a7prWcTV6iJ/QJMdsZEno3Ux6Txu2t0kNkSAcDCLlYW5QUVS4= =OmgG -----END PGP PUBLIC KEY BLOCK-----
Открытый ключ может быть добавлен к связке Ваших открытых ключей
при помощи команды --import
.
alice$
gpg --import bob.asc
gpg: key E4E68186: public key "Bob Bobson <bob@example.com>" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)alice$
gpg --list-keys
/home/alice/.gnupg/pubring.gpg ------------------------------ pub 2048R/8A9ED75D 2005-10-21 uid Alice (test key) <alice@wonderland.uk> pub 2048R/E4E68186 2005-10-25 [expires: 2012-10-23] uid Bob Bobson <bob@example.com> sub 2048R/6D8F0E99 2005-10-25 [expires: 2006-10-25]
Достоверность импортированного ключа должна быть подтверждена.
GnuPG использует гибкую и мощную модель проверки подлинности, не требующую,
чтобы Вы лично проверяли достоверность каждого импортированного ключа.
Тем не менее, достоверность некоторых ключей Вам придется проверить самостоятельно. Сначала проверяется отпечаток (fingerprint) ключа,
затем ключ заверяется подписью, для подтверждения того, что он достоверен.
Отпечаток ключа можно быстро просмотреть командой
--fingerprint
.
alice$
gpg --fingerprint alice@wonderland.uk
pub 2048R/8A9ED75D 2005-10-21 Key fingerprint = 8198 6D5B F869 AB12 8180 F515 C27F 3261 8A9E D75D uid Alice (test key) <alice@wonderland.uk>alice$
gpg --fingerprint
/home/test/.gnupg/pubring.gpg ----------------------------- pub 2048R/8A9ED75D 2005-10-21 Key fingerprint = 8198 6D5B F869 AB12 8180 F515 C27F 3261 8A9E D75D uid Alice (test key) <alice@wonderland.uk> pub 2048R/E4E68186 2005-10-25 [expires: 2012-10-23] Key fingerprint = 5605 86EB 26C0 22B1 445C 9DFF 835C 3EFE E4E6 8186 uid Bob Bobson <bob@example.com> sub 2048R/6D8F0E99 2005-10-25 [expires: 2006-10-25]
Отпечаток ключа должен Вам сообщить его владелец. Это может быть сделано при личной встрече, по телефону, или любым другим способом, гарантирующим, что Вы общаетесь с владельцем ключа. Если отпечатки которые выводит GnuPG совпадают с теми, которые Вам сообщил владелец ключа, то можете быть уверены, что обладаете достоверной копией ключа.
После проверки отпечатков Вы можете подписать ключ. Проверка подлинности ключа очень ответственный процесс, от него во многом зависит уровень защиты, обеспечиваемый GnuPG. Вы должны быть совершенно уверены в подлинности ключа перед тем, как его подписать, и до подписи всегда сверяйте отпечатки с владельцем ключа.
Для подписи ключа необходимо перейти в режим редактирования ключа при
помощи команды --edit-key
.
alice$
gpg --edit-key bob@example.com
pub 2048R/E4E68186 created: 2005-10-25 expires: 2012-10-23 usage: CS trust: unknown validity: unknown sub 2048R/6D8F0E99 created: 2005-10-25 expires: 2006-10-25 usage: E [ unknown] (1). Bob Bobson <bob@example.com> Command>sign
pub 2048R/E4E68186 created: 2005-10-25 expires: 2012-10-23 usage: CS trust: unknown validity: unknown Primary key fingerprint: 5605 86EB 26C0 22B1 445C 9DFF 835C 3EFE E4E6 8186 Bob Bobson <bob@example.com> This key is due to expire on 2012-10-23. Are you sure that you want to sign this key with your key "Alice (test key) <alice@wonderland.uk>" (8A9ED75D) Really sign? (y/N)y
GnuPG попросит подтвердить Ваше желание подписать ключ, а затем запросит пароль к Вашему секретному ключу. Подписав ключ, Вы можете просмотреть список подписей на ключе и увидеть там добавленную Вами. Все идентификаторы пользователя ключа подписаны самим ключом и ключом каждого пользователя, заверившего этот ключ.
Command>
check
uid Bob Bobson <bob@example.com> sig!3 E4E68186 2005-10-25 [self-signature] sig! 8A9ED75D 2005-10-25 Alice (test key) <alice@wonderland.uk>
После завершения редактирования ключа следует выполнить команду
save
, чтобы сохранить сделанные изменения или команду
quit
если Вы хотите выйти из режима редактирования без
сохранения изменений.
Если Вы экспортируете подписанный ключ, то вместе с ним будет
экспортирована и Ваша подпись, удостоверяющая, что Вы проверили
подлинность этого ключа. Имеется возможность создать не экспортируемую
подпись, для этого вместо команды sign
следует
использовать команду lsign
.