Обмен ключами

Для общения с кем-либо, вы должны обменяться ключами. Просмотреть список имеющихся открытых ключей, можно используя команду --list-keys.

alice% gpg --list-keys /home/alice/.gnupg/pubring.gpg --------------------------------------- pub 1024R/B115BDB6 2002-05-01 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.2.0 (FreeBSD) mIsEPNAu8wEEALf1zGv9/bkEKL1fTpkr0lvsmtK5Frgymlk7uInWfFdoucjAci9t wyU8HXNdFNCx1utWT5GNDD1aDhiFukc7UrFVuVbAjtOikFrZ939RrLKqOEoVd8XI ZXbgiSjs2ZqG32PpB+9X+3Z4OM64tna0NTvyqYP9LtOPHZpYGHwd5McfAAYptCZB bGljZSAodGVzdCBrZXkpIDxhbGljZUB3b25kZXJsYW5kLnVrPoiyBBMBAgAcBQI8 0C7zAhsDBAsHAwIDFQIDAxYCAQIeAQIXgAAKCRDHOpmHsRW9tvsYBACmRyUoCnj5 Awh/bFTcmsZi687ec4EzCby8OF586FAQSj4HX4LvAUc/u+4NHVbQRkKW2RJVnaHv YHUmjgteywMN3YqKd80/fbWIjyIgKNY+vgSEPMwiNMo6hR1frtfTMBnmwIWADMn0 3I1kxP2GfreSCHgy+FA3k5lrxvFnZwkXcA== =RowZ -----END PGP PUBLIC KEY BLOCK-----

Импорт открытого ключа

Открытый ключ может быть добавлен к связке Ваших открытых ключей при помощи команды --import.

alice% gpg --import blake.asc gpg: key 01A1FE63: public key "Blake (dumb) <blake@anywhere.ru>" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1) alice% gpg --list-keys /home/alice/.gnupg/pubring.gpg --------------------------------------- pub 1024R/B115BDB6 2002-05-01 Alice (test key) <alice@wonderland.uk> pub 1024R/01A1FE63 2002-05-01 Blake (dumb) <blake@anywhere.ru> sub 1024R/526C7F7F 2002-05-01 [expires: 2003-05-01]

Достоверность импортированного ключа должна быть подтверждена. GnuPG использует гибкую и мощную модель проверки подлинности, не требующую, чтобы Вы лично проверяли достоверность каждого импортированного ключа. Тем не менее, достоверность некоторых ключей Вам придется проверить самому. Сначала проверяется отпечаток (fingerprint) ключа, затем ключ заверяется подписью, для подтверждения того, что он достоверен. Отпечаток ключа можно быстро просмотреть командой --fingerprint.

alice% gpg --fingerprint alice@wonderland.uk pub 1024R/B115BDB6 2002-05-01 Alice (test key) <alice@wonderland.uk> Key fingerprint = DE49 CDEF 12A3 8B7B 272B A572 C73A 9987 B115 BDB6 alice% gpg --fingerprint /home/test/.gnupg/pubring.gpg ----------------------------- pub 1024R/B115BDB6 2002-05-01 Alice (test key) <alice@wonderland.uk> Key fingerprint = DE49 CDEF 12A3 8B7B 272B A572 C73A 9987 B115 BDB6 pub 1024R/01A1FE63 2002-05-01 Blake (dumb) <blake@anywhere.ru> Key fingerprint = 80B8 1955 7D68 FE4F D882 DAD1 D85C 124A 01A1 FE63 sub 1024R/526C7F7F 2002-05-01 [expires: 2003-05-01]

Отпечатки ключа проверяются его владельцем. Это может быть сделано при личной встрече, по телефону, или любым другим способом, гарантирующим, что Вы общаетесь с владельцем ключа. Если отпечатки полученные Вами совпадают с указанными владельцем ключа, то можете быть уверены, что обладаете достоверной копией ключа.

После проверки отпечатков Вы можете подписать ключ. Так как проверка ключа слабое звено в криптографии с открытым ключом, то Вы должны быть совершенно уверены в ключе перед тем, как его подписывать, и всегда проверяйте отпечатки.

Для подписи ключа необходимо перейти в режим редактирования ключа при помощи команды --edit-key.

alice% gpg --edit-key blake@anywhere.ru pub 1024R/01A1FE63 created: 2002-05-01 expires: never trust: -/- sub 1024R/526C7F7F created: 2002-05-01 expires: 2003-05-01 (1). Blake (dumb) <blake@anywhere.ru> Command> sign pub 1024R/01A1FE63 created: 2002-05-01 expires: never trust: -/- Primary key fingerprint: 80B8 1955 7D68 FE4F D882 DAD1 D85C 124A 01A1 FE63 Blake (dumb) <blake@anywhere.ru> How carefully have you verified the key you are about to sign actually belongs to the person named above? If you don't know what to answer, enter "0". (0) I will not answer. (default) (1) I have not checked at all. (2) I have done casual checking. (3) I have done very careful checking. Your selection? 3 Are you really sure that you want to sign this key with your key: "Alice (test key) <alice@wonderland.uk>" Really sign? y

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

Command> check uid Blake (dumb) <blake@anywhere.ru> sig!3 01A1FE63 2002-05-01 [self-signature] sig! B115BDB6 2002-05-01 Alice (test key) <alice@wonderland.uk>


[1] Многие, часто используемые, опции командной строки могут быть установлены в файле конфигурации.