1
<chapter id="management" xreflabel="3">
12
Key tampering is a major security weakness with public-key cryptography.
13
An eavesdropper may tamper with a user's keyrings or forge a
14
user's public key and post it for others to download and use.
15
For example, suppose Chloe wants to monitor the messages that Alice
17
She could mount what is called a <firstterm>man in the
18
middle</firstterm> attack.
19
In this attack, Chloe creates a new public/private keypair.
20
She replaces Alice's copy of Blake's public key with the new public key.
21
She then intercepts the messages that Alice sends to Blake.
22
For each intercept, she decrypts it using the new private key, reencrypts
23
it using Blake's true public key, and forwards the reencrypted
25
All messages sent from Alice to Blake can now be read by Chloe.
29
Good key management is crucial in order to ensure not just the integrity
30
of your keyrings but the integrity of other users' keyrings as well.
31
The core of key management in &gnupg; is the notion of signing keys.
32
Key signing has two main purposes: it permits you to detect tampering
33
on your keyring, and it allows you to certify that a key truly belongs
34
to the person named by a user ID on the key.
35
Key signatures are also used in a scheme known as the <firstterm>web of
36
trust</firstterm> to extend certification to keys not directly signed by you
37
but signed by others you trust.
38
Responsible users who practice good key management can defeat key
39
tampering as a practical attack on secure communication with &gnupg;.
44
Managing your own keypair
48
A keypair has a public key and a private key.
49
A public key consists of
50
the public portion of the master signing key,
51
the public portions of the subordinate signing and encryption subkeys, and
52
a set of user IDs used to associate the public key with a real person.
53
Each piece has data about itself.
54
For a key, this data includes its ID, when it was created, when it
56
For a user ID, this data includes the name of the real person it identifies,
57
an optional comment, and an email address.
58
The structure of the private key is similar, except that it contains only
59
the private portions of the keys, and there is no user ID information.
63
The command-line option
64
<link linkend="edit-key"><option>--edit-key</option></link>
65
may be used to view a keypair.
69
<prompt>chloe%</prompt> <userinput>gpg --edit-key chloe@cyb.org</userinput>
70
Secret key is available.
72
pub 1024D/26B6AAE1 created: 1999-06-15 expires: never trust: -/u
73
sub 2048g/0CF8CB7A created: 1999-06-15 expires: never
74
sub 1792G/08224617 created: 1999-06-15 expires: 2002-06-14
75
sub 960D/B1F423E7 created: 1999-06-15 expires: 2002-06-14
76
(1) Chloe (Jester) <chloe@cyb.org>
77
(2) Chloe (Plebian) <chloe@tel.net>
78
<prompt>Command></prompt>
81
The public key is displayed along with an indication of whether
82
or not the private key is available.
83
Information about each component of the public key is then listed.
84
The first column indicates the type of the key.
85
The keyword <literal>pub</literal> identifies the public master signing key,
86
and the keyword <literal>sub</literal> identifies a public subordinate key.
87
The second column indicates the key's bit length, type, and ID.
88
The type is <literal>D</literal> for a DSA key, <literal>g</literal> for an
90
ElGamal key, and <literal>G</literal> for an ElGamal key that may be used for
91
both encryption and signing.
92
The creation date and expiration date are given in columns three and four.
93
The user IDs are listed following the keys.
97
More information about the key can be obtained with interactive commands.
98
The command <link linkend="toggle"><command>toggle</command></link>
99
switches between the public and private
100
components of a keypair if indeed both components are available.
103
<prompt>Command></prompt> <userinput>toggle</userinput>
105
sec 1024D/26B6AAE1 created: 1999-06-15 expires: never
106
sbb 2048g/0CF8CB7A created: 1999-06-15 expires: never
107
sbb 1792G/08224617 created: 1999-06-15 expires: 2002-06-14
108
sbb 960D/B1F423E7 created: 1999-06-15 expires: 2002-06-14
109
(1) Chloe (Jester) <chloe@cyb.org>
110
(2) Chloe (Plebian) <chloe@tel.net>
113
The information provided is similar to the listing for the public-key
115
The keyword <literal>sec</literal> identifies the private master signing key,
116
and the keyword <literal>sbb</literal> identifies the private subordinates keys.
117
The user IDs from the public key are also listed for convenience.
121
<title id="integrity">
126
When you distribute your public key, you are distributing the public
127
components of your master and subordinate keys as well as the user IDs.
128
Distributing this material alone, however, is a security risk since
129
it is possible for an attacker to tamper with the key.
130
The public key can be modified by adding or substituting keys, or by
131
adding or changing user IDs.
132
By tampering with a user ID, the attacker could change the user ID's email
133
address to have email redirected to himself.
134
By changing one of the encryption keys, the attacker would
135
also be able to decrypt the messages redirected to him.
139
Using digital signatures is a solution to this problem.
140
When data is signed by a private key, the corresponding public key
141
is bound to the signed data.
142
In other words, only the corresponding public key can be used to
143
verify the signature and ensure that the data has not been modified.
144
A public key can be protected from tampering by using its corresponding
145
private master key to sign the public key components and user IDs, thus
146
binding the components to the public master key.
147
Signing public key components with the corresponding private master
148
signing key is called <firstterm>self-signing</firstterm>, and a public key that has
149
self-signed user IDs bound to it is called a <firstterm>certificate</firstterm>.
155
%\caption{This should depict how self-signatures bind information to
156
%a public key.}\label{fig:selfsignedkey}
159
%As an example, Figure~\ref{fig:selfsignedkey} illustrates Chloe's public
160
%key, which has been self-signed to bind the user IDs and public subkeys
161
%to the public master key.
162
%The signatures on the user IDs can be checked with the \texttt{check}
163
%command from the key edit menu.
167
As an example, Chloe has two user IDs and three subkeys.
168
The signatures on the user IDs can be checked with the command
169
<link linkend="check"><command>check</command></link> from the key edit menu.
172
<prompt>chloe%</prompt> <userinput>gpg --edit-key chloe</userinput>
173
Secret key is available.
175
pub 1024D/26B6AAE1 created: 1999-06-15 expires: never trust: -/u
176
sub 2048g/0CF8CB7A created: 1999-06-15 expires: never
177
sub 1792G/08224617 created: 1999-06-15 expires: 2002-06-14
178
sub 960D/B1F423E7 created: 1999-06-15 expires: 2002-06-14
179
(1) Chloe (Jester) <chloe@cyb.org>
180
(2) Chloe (Plebian) <chloe@tel.net>
182
<prompt>Command></prompt> <userinput>check</userinput>
183
uid Chloe (Jester) <chloe@cyb.org>
184
sig! 26B6AAE1 1999-06-15 [self-signature]
185
uid Chloe (Plebian) <chloe@tel.net>
186
sig! 26B6AAE1 1999-06-15 [self-signature]
189
As expected, the signing key for each signature is the master signing
190
key with key ID <literal>0x26B6AAE1</literal>.
191
The self-signatures on the subkeys are present in the public key, but
192
they are not shown by the &gnupg; interface.
198
Adding and deleting key components
202
Both new subkeys and new user IDs may be added to your keypair after
204
A user ID is added using the command
205
<link linkend="adduid"><command>adduid</command></link>.
206
You are prompted for a real name, email address, and comment just
207
as when you create an initial keypair.
208
A subkey is added using the command
209
<link linkend="addkey"><command>addkey</command></link>.
210
The interface is similar to the interface used when creating an initial
212
The subkey may be a DSA signing key, and encrypt-only ElGamal
213
key, or a sign-and-encrypt ElGamal key.
214
When a subkey or user ID is generated it is self-signed using your
215
master signing key, which is why you must supply your passphrase
216
when the key is generated.
220
Additional user IDs are useful when you need multiple identities.
221
For example, you may have an identity for your job and an identity
222
for your work as a political activist.
223
Coworkers will know you by your work user ID.
224
Coactivists will know you by your activist user ID.
225
Since those groups of people may not overlap, though, each group
226
may not trust the other user ID.
227
Both user IDs are therefore necessary.
231
Additional subkeys are also useful.
232
The user IDs associated with your public master key are validated by
233
the people with whom you
234
communicate, and changing the master key therefore requires recertification.
235
This may be difficult and time consuming if you communicate with
237
On the other hand, it is good to periodically change encryption subkeys.
238
If a key is broken, all the data encrypted with that key will be
240
By changing keys, however, only the data encrypted with the one broken
241
key will be revealed.
245
Subkeys and user IDs may also be deleted.
246
To delete a subkey or user ID you must first select it using the
247
<link linkend="key"><command>key</command></link> or
248
<link linkend="uid"><command>uid</command></link> commands respectively.
249
These commands are toggles.
250
For example, the command <command>key <parameter>2</parameter></command>
251
selects the second subkey,
252
and invoking <command>key <parameter>2</parameter></command> again
254
If no extra argument is given, all subkeys or user IDs are deselected.
255
Once the user IDs to be deleted are selected, the command
256
<link linkend="deluid"><command>deluid</command></link>
257
actually deletes the user IDs from your key.
258
Similarly, the command <link linkend="delkey"><command>delkey</command></link>
259
deletes all selected subkeys from both your public and private keys.
263
For local keyring management, deleting key components is a good way
264
to trim other people's public keys of unnecessary material.
265
Deleting user IDs and subkeys on your own key, however, is not always
266
wise since it complicates key distribution.
267
By default, when a user imports your updated public key it will be merged
268
with the old copy of your public key on his ring if it exists.
269
The components from both keys are combined in the merge, and this
270
effectively restores any components you deleted.
271
To properly update the key, the user must first delete the old version
272
of your key and then import the new version.
273
This puts an extra burden on the people with whom you communicate.
274
Furthermore, if you send your key to a keyserver, the merge will
275
happen regardless, and anybody who downloads your key from a keyserver
276
will never see your key with components deleted.
277
Consequently, for updating your own key it is better to revoke key
278
components instead of deleting them.
284
Revoking key components
288
To revoke a subkey it must be selected.
289
Once selected it may be revoked with the
290
<link linkend="revkey"><command>revkey</command></link> command.
291
The key is revoked by adding a revocation self-signature to the key.
292
Unlike the command-line option <option>--gen-revoke</option>, the effect of
293
revoking a subkey is immediate.
297
<prompt>Command></prompt> <userinput>revkey</userinput>
298
Do you really want to revoke this key? y
300
You need a passphrase to unlock the secret key for
301
user: "Chloe (Jester) <chloe@cyb.org>"
302
1024-bit DSA key, ID B87DBA93, created 1999-06-28
305
pub 1024D/B87DBA93 created: 1999-06-28 expires: never trust: -/u
306
sub 2048g/B7934539 created: 1999-06-28 expires: never
307
sub 1792G/4E3160AD created: 1999-06-29 expires: 2000-06-28
308
rev! subkey has been revoked: 1999-06-29
309
sub 960D/E1F56448 created: 1999-06-29 expires: 2000-06-28
310
(1) Chloe (Jester) <chloe@cyb.org>
311
(2) Chloe (Plebian) <chloe@tel.net>
315
A user ID is revoked differently.
316
Normally, a user ID collects signatures that attest that the user ID
317
describes the person who actually owns the associated key.
318
In theory, a user ID describes a person forever, since that person will
320
In practice, though, elements of the user ID such as the email address
321
and comment may change over time, thus invalidating the user ID.
326
<comment>First reference to OpenPGP</comment>
327
specification does not support user ID revocation, but
328
a user ID can effectively be revoked by revoking the self-signature
330
For the security reasons described
331
<link linkend="integrity">previously</link>,
332
correspondents will not trust a user ID with no valid self-signature.
336
A signature is revoked by using the command
337
<link linkend="revsig"><command>revsig</command></link>.
338
Since you may have signed any number of user IDs, the user interface
339
prompts you to decide for each signature whether or not to revoke it.
343
<prompt>Command></prompt> <userinput>revsig</userinput>
344
You have signed these user IDs:
345
Chloe (Jester) <chloe@cyb.org>
346
signed by B87DBA93 at 1999-06-28
347
Chloe (Plebian) <chloe@tel.net>
348
signed by B87DBA93 at 1999-06-28
349
user ID: "Chloe (Jester) <chloe@cyb.org>"
350
signed with your key B87DBA93 at 1999-06-28
351
Create a revocation certificate for this signature? (y/N)n
352
user ID: "Chloe (Plebian) <chloe@tel.net>"
353
signed with your key B87DBA93 at 1999-06-28
354
Create a revocation certificate for this signature? (y/N)y
355
You are about to revoke these signatures:
356
Chloe (Plebian) <chloe@tel.net>
357
signed by B87DBA93 at 1999-06-28
358
Really create the revocation certificates? (y/N)y
360
You need a passphrase to unlock the secret key for
361
user: "Chloe (Jester) <chloe@cyb.org>"
362
1024-bit DSA key, ID B87DBA93, created 1999-06-28
365
pub 1024D/B87DBA93 created: 1999-06-28 expires: never trust: -/u
366
sub 2048g/B7934539 created: 1999-06-28 expires: never
367
sub 1792G/4E3160AD created: 1999-06-29 expires: 2000-06-28
368
rev! subkey has been revoked: 1999-06-29
369
sub 960D/E1F56448 created: 1999-06-29 expires: 2000-06-28
370
(1) Chloe (Jester) <chloe@cyb.org>
371
(2) Chloe (Plebian) <chloe@tel.net>
375
A revoked user ID is indicated by the revocation signature on
376
the ID when the signatures on the key's user IDs are listed.
380
<prompt>Command></prompt> <userinput>check</userinput>
381
uid Chloe (Jester) <chloe@cyb.org>
382
sig! B87DBA93 1999-06-28 [self-signature]
383
uid Chloe (Plebian) <chloe@tel.net>
384
rev! B87DBA93 1999-06-29 [revocation]
385
sig! B87DBA93 1999-06-28 [self-signature]
389
Revoking both subkeys and self-signatures on user IDs adds revocation
390
self-signatures to the key.
391
Since signatures are being added and no material is deleted, a
392
revocation will always be visible to others when your updated public
393
key is distributed and merged with older copies of it.
394
Revocation therefore guarantees that everybody has a consistent
395
copy of your public key.
401
Updating a key's expiration time
405
The expiration time of a key may be updated with the command
406
<link linkend="expire"><command>expire</command></link> from the key edit menu.
407
If no key is selected the expiration time of the primary key
409
Otherwise the expiration time of the selected subordinate key
414
A key's expiration time is associated with the key's self-signature.
415
The expiration time is updated by deleting the old self-signature
416
and adding a new self-signature.
417
Since correspondents will not have deleted the old self-signature, they
418
will see an additional self-signature on the key when they update
419
their copy of your key.
420
The latest self-signature takes precedence, however, so all correspondents
421
will unambiguously know the expiration times of your keys.
428
Validating other keys on your public keyring
432
In Chapter <xref linkend="intro"> a procedure was given to validate your
433
correspondents' public keys: a correspondent's key is validated by
434
personally checking his key's fingerprint and then signing his public
435
key with your private key.
436
By personally checking the fingerprint you can be sure that the
437
key really does belong to him, and since you have signed they key, you
438
can be sure to detect any tampering with it in the future.
439
Unfortunately, this procedure is awkward when either you must validate
440
a large number of keys or communicate with people whom you do not
445
&Gnupg; addresses this problem with a mechanism popularly known
446
as the <firstterm>web of trust</firstterm>.
447
In the web of trust model, responsibility for validating public
448
keys is delegated to people you trust.
450
<itemizedlist spacing="compact">
453
Alice has signed Blake's key, and
458
Blake has signed Chloe's key and Dharma's key.
463
If Alice trusts Blake to properly validate keys that he signs, then
464
Alice can infer that Chloe's and Dharma's keys are valid without
465
having to personally check them.
466
She simply uses her validated copy of Blake's public key to
467
check that Blake's signatures on Chloe's and Dharma's are good.
468
In general, assuming that Alice fully trusts everybody to properly
469
validate keys they sign, then any key signed by a valid key is also
471
The root is Alice's key, which is axiomatically assumed to be valid.
476
Trust in a key's owner
480
In practice trust is subjective.
481
For example, Blake's key is valid to Alice since she signed it, but she
482
may not trust Blake to properly validate keys that he signs.
483
In that case, she would not take Chloe's and Dharma's key as valid
484
based on Blake's signatures alone.
485
The web of trust model accounts for this by associating with each
486
public key on your keyring an indication of how much you trust the
488
There are four trust levels.
497
Nothing is known about the owner's judgement in key signing.
498
Keys on your public keyring that you do not own initially have
509
The owner is known to improperly sign other keys.
519
The owner understands the implications of key signing and
520
properly validates keys before signing them.
530
The owner has an excellent understanding of key signing,
531
and his signature on a key would be as good as your own.
537
A key's trust level is something that you alone assign to the
538
key, and it is considered private information.
539
It is not packaged with the key when it is exported; it is even
540
stored separately from your keyrings in a separate database.
544
The &gnupg; key editor may be used to adjust your trust in a key's owner.
545
The command is <link linkend="trust"><command>trust</command></link>.
546
In this example Alice edits her trust in Blake and then updates
547
the trust database to recompute which keys are valid based on her new
551
<prompt>alice%</prompt> <userinput>gpg --edit-key blake</userinput>
553
pub 1024D/8B927C8A created: 1999-07-02 expires: never trust: q/f
554
sub 1024g/C19EA233 created: 1999-07-02 expires: never
555
(1) Blake (Executioner) <blake@cyb.org>
557
<prompt>Command></prompt> <userinput>trust</userinput>
558
pub 1024D/8B927C8A created: 1999-07-02 expires: never trust: q/f
559
sub 1024g/C19EA233 created: 1999-07-02 expires: never
560
(1) Blake (Executioner) <blake@cyb.org>
562
Please decide how far you trust this user to correctly
563
verify other users' keys (by looking at passports,
564
checking fingerprints from different sources...)?
568
3 = I trust marginally
570
s = please show me more information
571
m = back to the main menu
573
<prompt>Your decision?</prompt> <userinput>3</userinput>
575
pub 1024D/8B927C8A created: 1999-07-02 expires: never trust: m/f
576
sub 1024g/C19EA233 created: 1999-07-02 expires: never
577
(1) Blake (Executioner) <blake@cyb.org>
579
<prompt>Command></prompt> <userinput>quit</userinput>
583
Trust in the key's owner and the key's validity are indicated to the
584
right when the key is displayed.
585
Trust in the owner is displayed first and the key's validity is
586
<!-- HERE, need to fix quotation marks -->
589
&Gnupg; overloads the word "trust" by using it to mean
590
trust in an owner and trust in a key.
591
This can be confusing.
592
Sometimes trust in an owner is referred to as
593
<firstterm>owner-trust</firstterm> to
594
distinguish it from trust in a key.
595
<!-- HERE, need to fix quotation marks -->
596
Throughout this manual, however, "trust" is used to
597
mean trust in a key's
598
<!-- HERE, need to fix quotation marks -->
599
owner, and "validity" is used to mean trust that a key
600
belongs to the human associated with the key ID.
603
The four trust/validity levels are abbreviated: unknown (<literal>q</literal>),
604
none (<literal>n</literal>), marginal (<literal>m</literal>), and
605
full (<literal>f</literal>).
606
In this case, Blake's key is fully valid since Alice signed it herself.
607
She initially has an unknown trust in Blake to properly sign other keys
608
but decides to trust him marginally.
614
Using trust to validate keys
618
The web of trust allows a more elaborate algorithm to be used to
620
Formerly, a key was considered valid only if you signed it personally.
622
A more flexible algorithm can now be used: a key <emphasis>K</emphasis> is considered valid
623
if it meets two conditions:
624
<orderedlist spacing="compact">
627
it is signed by enough valid keys, meaning
628
<itemizedlist spacing="compact">
631
you have signed it personally,
636
it has been signed by one fully trusted key, or
641
it has been signed by three marginally trusted keys; and
650
the path of signed keys leading from <emphasis>K</emphasis> back
651
to your own key is five steps or shorter.
656
The path length, number of marginally trusted keys required, and number
657
of fully trusted keys required may be adjusted.
658
The numbers given above are the default values used by &gnupg;.
662
<xref linkend="wot-examples"> shows a web of trust rooted at Alice.
663
The graph illustrates who has signed who's keys.
664
The table shows which keys Alice considers valid based on her
665
trust in the other members of the web.
666
<comment>Potential bug: <option>--completes-needed</option> on command
667
line seems to be ignored when combined with <option>--update-trustdb</option>.
668
Value is taken correctly if put in options file, however.</comment>
669
This example assumes that two marginally-trusted keys or one
670
fully-trusted key is needed to validate another key.
671
The maximum path length is three.
675
When computing valid keys in the example, Blake and Dharma's are
676
always considered fully valid since they were signed directly
678
The validity of the other keys depends on trust.
679
In the first case, Dharma is trusted fully, which implies
680
that Chloe's and Francis's keys will be considered valid.
681
In the second example, Blake and Dharma are trusted marginally.
682
Since two marginally trusted keys are needed to fully validate a
683
key, Chloe's key will be considered fully valid, but Francis's
684
key will be considered only marginally valid.
685
In the case where Chloe and Dharma are marginally trusted,
686
Chloe's key will be marginally valid since Dharma's key is
688
Francis's key, however, will also be considered marginally
689
valid since only a fully valid key can be used to validate
690
other keys, and Dharma's key is the only fully valid key
691
that has been used to sign Francis's key.
692
When marginal trust in Blake is added, Chloe's key becomes
693
fully valid and can then be used to fully validate Francis's
694
key and marginally validate Elena's key.
695
Lastly, when Blake, Chloe, and Elena are fully trusted, this is
696
still insufficient to validate Geoff's key since the maximum
697
certification path is three, but the path length from Geoff
698
back to Alice is four.
702
The web of trust model is a flexible approach to the problem of safe
704
It permits you to tune &gnupg; to reflect how you use it.
705
At one extreme you may insist on multiple, short paths from your
707
key to another key <emphasis>K</emphasis> in order to trust it.
708
On the other hand, you may be satisfied with longer paths and
710
perhaps as little as one path from your key to the other
711
key <emphasis>K</emphasis>.
713
Requiring multiple, short paths is a strong guarantee
714
that <emphasis>K</emphasis> belongs to whom your think it does.
715
The price, of course, is that it is more difficult to validate keys
716
since you must personally sign more keys than if you accepted fewer
720
<figure id="wot-examples" float=1>
722
A hypothetical web of trust
725
The graph indicates who has signed who's keys.
726
The table, in which names have been abbreviated, shows which keys are
727
valid depending on how Alice trusts other members in the web.
728
Alice considers different keys valid depending on how she trusts
729
the members of the web.
732
<graphic fileref="signatures.jpg"></graphic>
734
<informaltable frame="all">
735
<tgroup cols="4" rowsep="1" colsep="1">
736
<colspec colname="one" colnum="1">
737
<colspec colname="two" colnum="2">
738
<colspec colname="three" colnum="3">
739
<colspec colname="four" colnum="4">
740
<spanspec spanname="lefthalf" namest="one" nameend="two" align="center">
741
<spanspec spanname="righthalf" namest="three" nameend="four" align="center">
746
<entry spanname="lefthalf">trust</entry>
747
<entry spanname="righthalf">validity</entry>
750
<entry align="center">marginal</entry>
751
<entry align="center">full</entry>
752
<entry align="center">marginal</entry>
753
<entry align="center">full</entry>
759
<entry>Dharma</entry>
761
<entry>Blake, Chloe, Dharma, Francis</entry>
765
<entry>Blake, Dharma</entry>
767
<entry>Francis</entry>
768
<entry>Blake, Chloe, Dharma</entry>
772
<entry>Chloe, Dharma</entry>
774
<entry>Chloe, Francis</entry>
775
<entry>Blake, Dharma</entry>
779
<entry>Blake, Chloe, Dharma</entry>
782
<entry>Blake, Chloe, Dharma, Francis</entry>
787
<entry>Blake, Chloe, Elena</entry>
789
<entry>Blake, Chloe, Elena, Francis</entry>
804
Ideally, you distribute your key by personally giving it to your
806
In practice, however, keys are often distributed by email or some
807
other electronic communication medium.
808
Distribution by email is good practice when you have only a few
809
correspondents, and even if you have many correspondents, you can use
810
an alternative means such as posting your public key on your World Wide
812
This is unacceptable, however, if people who need your public key do
813
not know where to find it on the Web.
817
To solve this problem public key servers are used to collect
818
and distribute public keys.
819
A public key received by the server is either added to the server's
820
database or merged with the existing key if already present.
821
When a key request comes to the server, the server consults its
822
database and returns the requested public key if found.
826
A keyserver is also valuable when many people are frequently signing other
828
Without a keyserver, when Blake sign's Alice's key then Blake would send
829
Alice a copy of her public key signed by him so that Alice could
830
add the updated key to her ring as well as distribute it to all of her
832
Going through this effort fulfills Alice's and Blake's responsibility
833
to the community at large in building tight webs of trust and thus
834
improving the security of PGP.
835
It is nevertheless a nuisance if key signing is frequent.
839
Using a keyserver makes the process somewhat easier.
840
When Blake signs Alice's key he sends the signed key to the key server.
841
The key server adds Blake's signature to its copy of Alice's key.
842
Individuals interested in updating their copy of Alice's key then consult
843
the keyserver on their own initiative to retrieve the updated key.
844
Alice need never be involved with distribution and can retrieve signatures
845
on her key simply by querying a keyserver.
846
<comment><option>--keyserver</option> must come before
847
<option>--send-key</option> or <option>--recv-key</option>.
848
This appears to be a bug.</comment>
852
One or more keys may be sent to a keyserver using the command-line
853
option <link linkend="send-keys"><option>--send-keys</option></link>.
854
The option takes one or more key specifiers and sends the specified
855
keys to the key server.
856
The key server to which to send the keys is specified with the
857
command-line option <link linkend="keyserver"><option>--keyserver</option></link>.
858
Similarly, the option
859
<link linkend="recv-keys"><option>--recv-keys</option></link> is used
860
to retrieve keys from a keyserver, but the option <option>--recv-keys</option>
861
requires a key ID be used to specify the key.
862
In the following example Alice sends her public key to the keyserver
863
<parameter>certserver.pgp.com</parameter> and then updates her copy
864
of Blake's key from the same keyserver.
867
<prompt>alice%</prompt> <userinput>gpg --keyserver certserver.pgp.com --recv-key 0xBB7576AC</userinput>
868
gpg: requesting key BB7576AC from certserver.pgp.com ...
869
gpg: key BB7576AC: 1 new signature
871
gpg: Total number processed: 1
872
gpg: new signatures: 1
873
<prompt>alice%</prompt> <userinput>gpg --keyserver certserver.pgp.com --send-key blake@cyb.org</userinput>
874
gpg: success sending to 'certserver.pgp.com' (status=200)
877
There are several popular keyservers in use around the world.
878
The major keyservers synchronize themselves, so it is fine to
879
pick a keyserver close to you on the Internet and then use it
880
regularly for sending and receiving keys.