Update website PO files.
[tails-test.git] / wiki / src / doc / get / trusting_tails_signing_key.mdwn
blob18581713f71742a8bfa87b7166d837bd100874c5
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!
12 [[!toc]]
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
44 OpenPGP Web of Trust.
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
55 interaction.
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
92 key.
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
99 can do:
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
127 something like this:
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
142 key by doing:
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
177 practices.
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 -->