ed7ddbc7b699fed1a67d5c0bf3e6a63c694fab5d
[gnupg-doc.git] / web / faq / subkey-cross-certify.org
1 #+TITLE: Signing Subkey Cross-Certification --- GnuPG.org
2
3 * Signing Subkey Cross-Certification
4
5    or, what does the warning "signing subkey is not cross-certified"
6    mean?
7
8 * Short Answer:
9
10      - If you receive this warning when verifying a signature from
11        someone else, please point them to this page. The signature that
12        you verified has not been tampered with, but might not have been
13        issued by the person who sent it to you.
14      - If you have been pointed to this page by someone who received a
15        warning when verifying one of your signatures, your key does not
16        contain a subkey cross-certification. You can easily add this
17        cross-certification using GnuPG 1.4.3 or later. To do this, simply
18        run
19         : gpg --edit-key (yourkey)
20        and then enter “cross-certify”.  You’ll need to type your
21        passphrase, and GnuPG will add the necessary
22        cross-certification. Once this is done, you should distribute
23        your key however you like (send it to a keyserver, post on a
24        web page, etc). If you have already done this and people are
25        still receiving the warning, make sure they have updated their
26        copy of your key from the keyserver or web page.
27
28
29 * Full Explanation:
30
31    An OpenPGP key is made up of several keys: a primary key, which is
32    used to digitally sign things, and optionally, subkeys that can be
33    used to sign or encrypt things. To prove that the subkeys "belong" to
34    the key and were not inserted by an attacker, they are digitally
35    signed by the primary key.
36
37    Most users use their primary key for signing, and a subkey for
38    encryption, and this is the default key style in both GnuPG and PGP.
39    Some, generally more advanced users use two subkeys: one for
40    encryption, and another one for signing. This allows the user more
41    flexibility in managing their keys, as the primary key can then be
42    kept off of their computer altogether.
43
44    There is a subtle weakness in the OpenPGP design for signing subkeys.
45    Recall that subkeys are signed by the primary key to show they belong
46    to the primary key. However, the signing subkey does not sign the
47    primary to show that it is owned by the primary. This allows an
48    attacker to take a signing subkey and attach it to their own key.
49
50    This does not mean that an attacker can issue signatures pretending to
51    be someone else: the attacker cannot issue any signatures from that
52    subkey, as all they have is the public half. The only thing this
53    allows an attacker to do is to take an existing signature issued by a
54    signing subkey, and claim that it was issued by the attacker's own
55    key. The end result is that the signature can be verified by both the
56    actual signer's key and the attacker's key. In practice, this can be
57    detected by asking the attacker to issue a new signature for you on
58    data that you supply (a "challenge"). The attacker, as they cannot
59    issue signatures from the key, will not be able to do so.
60
61    The OpenPGP Working Group has defined a fix so this problem is stopped
62    immediately, before the attacker can even try and claim a signature as
63    their own.
64
65    Subkey cross-certification (sometimes called "back signing") involves
66    the subkey issuing a signature on the primary key, just like the
67    primary key signature on the subkey. Since only the true owner of the
68    subkey can issue such a signature, the attacker's key cannot be
69    cross-certified.
70
71    GnuPG has code for adding this cross-certification to signing subkeys
72    that were issued before this change to the OpenPGP design. Just run
73    "gpg --edit-key (yourkey)" and then enter "cross-certify". You'll need
74    to type your passphrase, and GnuPG will add the cross-certification.
75
76
77
78
79 #   Copyright (C) 2002-2004 Free Software Foundation, Inc.
80 #
81 #   Written by Werner Koch (2006-03-22 11:55:44).