1 [[!meta title="Trusting Tails signing key"]]
3 We will present you three techniques from the easiest to the safest. Again,
4 none of them is a perfect and magic solution. Feel free to explore them
5 according to your possibilities and technical skills.
7 Note that since all Tails releases are signed with the same key, you will not
8 have to verify the key every time and the trust you might progressively build in
9 it will be built once and for all. Still, you will have to check the ISO image
10 every time you download a new one!
14 # Correlates several downloads of Tails signing key
16 A simple technique to increase the trust you can put in Tails signing key would
17 be to download it several times, from several locations, several computers,
18 possibly several countries, etc.
20 For example you could save them every time with a different name in the same
21 directory on a USB stick. Then run the following command from a terminal to
22 check whether all the keys are identical:
24 cd [your download directory]
25 sha256sum tails-signing*.key
27 This command would output something like this:
29 7d4636ed49f6dd09d6e606936b6e686daad4200925875443668843b633ef6df2 tails-signing-desktop.key
30 7d4636ed49f6dd09d6e606936b6e686daad4200925875443668843b633ef6df2 tails-signing-laptop.key
31 7d4636ed49f6dd09d6e606936b6e686daad4200925875443668843b633ef6df2 tails-signing-library.key
32 7d4636ed49f6dd09d6e606936b6e686daad4200925875443668843b633ef6df2 tails-signing-seattle.key
34 You would then need to visually check that all the checksums of the first column
35 are the same, meaning that the keys are identical.
37 You could also use this technique to compare keys downloaded by your friends or
38 other people you trust.
40 # Using the OpenPGP Web of Trust
42 If you want to be extra cautious and really authenticate Tails signing key in a
43 stronger way than what standard HTTPS offers you, you will need to use the
46 One of the inherent problems of standard HTTPS is that the trust we usually put
47 on a website is defined by certificate authorities: a hierarchical and closed
48 set of companies and governmental institutions approved by web browser vendors.
49 This model of trust has long been criticized and proved several times to be
50 vulnerable to attacks [[as explained on our warning
51 page|about/warning#man-in-the-middle]].
53 We believe instead that users should be given the final say when trusting a
54 website, and that designation of trust should be done on the basis of human
57 The OpenPGP [[!wikipedia Web_of_Trust desc="Web of Trust"]] is a decentralized
58 trust model based on OpenPGP keys. Let's see that with an example.
60 *You're a friend of Alice and really trust her way of managing OpenPGP keys.
61 You're trusting Alice's key.*
63 *Furthermore, Alice met Bob, a Tails developer, in a conference, and signed
64 Bob's key. Alice is trusting Bob's key.*
66 *Bob is a Tails developer who directly owns the Tails signing key. Bob fully
67 trusts Tails signing key.*
69 This scenario creates a trust path from you to Tails signing key that could
70 allow you to trust it without having to depend on certificate authorities.
72 This trust model is not perfect either and requires both caution and intelligent
73 supervision by users. The technical details of creating, managing and trusting
74 OpenPGP keys is outside of the scope of this document.
76 We also acknowledge that not everybody might be able to create good trust path
77 to Tails signing key since it based on a network of direct human relationships
78 and the knowledge of quite complex tools such as OpenPGP.
80 # Check Tails signing key against the Debian keyring
82 Following the previous scenario, when Alice met Bob, a Tails developer, she
83 could have made a new signature on Tails signing key with her own key to certify this
84 trust relationship and make it public. Tails signing key would now come along
85 with a signature made by Alice.
87 Tails signing key is actually already signed by the keys of several official
88 developers of Debian, the operating system on which Tails is based. Debian makes
89 an extensive use of OpenPGP and you can download the keys of all Debian
90 developers by installing the <code>debian-keyring</code> package. You can then
91 verify the signatures those developers made with their own key on Tails signing
94 To download the Debian keyring you can do:
96 sudo apt-get install debian-keyring
98 To get a list of the signatures made by other people on Tails signing key you
101 gpg --keyid-format long --list-sigs 1202821CBE2CD9C1
103 You will get something like this:
105 pub 4096R/1202821CBE2CD9C1 2010-10-07 [expires: 2012-10-06]
106 uid Tails developers (signing key) <tails@boum.org>
107 sig 3 1202821CBE2CD9C1 2011-04-16 Tails developers (signing key) <tails@boum.org>
108 sig BACE15D2A57498FF 2011-04-16 [User ID not found]
109 sig CCD2ED94D21739E9 2011-06-12 [User ID not found]
110 uid T(A)ILS developers (signing key) <amnesia@boum.org>
111 sig 3 1202821CBE2CD9C1 2010-10-07 Tails developers (signing key) <tails@boum.org>
112 sig BACE15D2A57498FF 2010-10-07 [User ID not found]
113 sig 8CBF9A322861A790 2010-12-24 [User ID not found]
114 sig 7EF27D76B2177E1F 2010-12-27 [User ID not found]
115 sig CCD2ED94D21739E9 2010-12-29 [User ID not found]
116 sig AC0EC35285821C42 2011-03-22 [User ID not found]
117 sig C2DEE7F336042734 2010-10-24 [User ID not found]
119 The lines ending with '[User ID not found]' are signatures made by keys you
120 still don't have in your keyring. You could try to search for them in the Debian
121 keyring by their key ID: the 16 digit code between the 'sig' tag and the date.
122 You could for example do:
124 gpg --keyring=/usr/share/keyrings/debian-keyring.gpg --list-key CCD2ED94D21739E9
126 If this signature corresponds to a key in the Debian keyring you will get
129 pub 4096R/CCD2ED94D21739E9 2007-06-02 [expires: 2012-05-31]
130 uid Daniel Kahn Gillmor <dkg@fifthhorseman.net>
131 uid Daniel Kahn Gillmor <dkg@openflows.com>
132 uid [jpeg image of size 3515]
133 uid Daniel Kahn Gillmor <dkg@debian.org>
134 sub 4096R/C61BD3EC21484CFF 2007-06-02 [expires: 2012-05-31]
135 sub 2048R/125868EA4BFA08E4 2008-06-19 [expires: 2011-05-31]
137 You can then import it in your own keyring by doing:
139 gpg --keyring=/usr/share/keyrings/debian-keyring.gpg --export CCD2ED94D21739E9 | gpg --import
141 Now you can try to verify the signature made by this new key on Tails signing
144 gpg --keyid-format long --check-sigs 1202821CBE2CD9C1
146 On the output, the status of the verification is indicated by a flag directly
147 following the "sig" tag. A "!" indicates that the signature has been
148 successfully verified, a "-" denotes a bad signature and a "%" is used if an
149 error occurred while checking the signature (e.g. a non supported algorithm).
150 For example, in the following output the signature of Daniel Kahn Gillmor on
151 Tails signing key has been successfully verified:
153 pub 4096R/1202821CBE2CD9C1 2010-10-07 [expires: 2012-10-06]
154 uid Tails developers (signing key) <tails@boum.org>
155 sig!3 1202821CBE2CD9C1 2011-04-16 Tails developers (signing key) <tails@boum.org>
156 sig! CCD2ED94D21739E9 2011-06-12 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
157 uid T(A)ILS developers (signing key) <amnesia@boum.org>
158 sig!3 1202821CBE2CD9C1 2010-10-07 Tails developers (signing key) <tails@boum.org>
159 sig! CCD2ED94D21739E9 2010-12-29 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
161 pub 4096R/1202821CBE2CD9C1 2010-10-07 [expires: 2012-10-06]
162 uid T(A)ILS developers (signing key) <amnesia@boum.org>
163 sig!3 1202821CBE2CD9C1 2010-10-07 T(A)ILS developers (signing key) <amnesia@boum.org>
164 sig! CCD2ED94D21739E9 2010-12-29 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
166 3 signatures not checked due to missing keys
168 # Get into the Web of Trust!
170 Since the Web of Trust is actually based on human relationships and real-life
171 interactions the best would be to start establishing contacts with people
172 knowledgeable about OpenPGP, start using it yourself and build trust
173 relationships in order to find your own trust path to Tails signing key.
175 You could start by contacting a local [[!wikipedia Linux_User_Group desc="%s"]]
176 or other Tails enthusiasts near you and exchange about their OpenPGP
179 # Further reading on OpenPGP
181 - [[!wikipedia GnuPG desc="Wikipedia: %s"]], a free OpenPGP software
182 - [[Apache: How To OpenPGP|http://www.apache.org/dev/openpgp.html]]
183 - [[Debian: Keysigning|http://www.debian.org/events/keysigning]], a
184 tutorial on signing keys of other people
185 - [[rubin.ch: Explanation of the web of trust of PGP|http://www.rubin.ch/pgp/weboftrust.en.html]]
186 - [[Gpg4win: Certificate
187 inspection|http://www.gpg4win.org/doc/en/gpg4win-compendium_16.html]],
188 instructions to manage key trust with Gpg4win
189 - <!-- l10n placeholder for language-specific link -->