f80beaae6621b99586b0450d427e67d9f028a7fb
Andrew Lewman first cut of the new, shiny...

Andrew Lewman authored 13 years ago

1) ## translation metadata
Roger Dingledine looks like we never set the...

Roger Dingledine authored 13 years ago

2) # Revision: $Revision$
Andrew Lewman first cut of the new, shiny...

Andrew Lewman authored 13 years ago

3) # Translation-Priority: 2-medium
4) 
5) #include "head.wmi" TITLE="Tor Project: Verifying Signatures" CHARSET="UTF-8"
6) <div id="content" class="clearfix">
7)   <div id="breadcrumbs">
Andrew Lewman change all of the breadcrum...

Andrew Lewman authored 13 years ago

8)     <a href="<page index>">Home &raquo; </a>
Andrew Lewman first cut of the new, shiny...

Andrew Lewman authored 13 years ago

9)     <a href="<page docs/verifying-signatures>">Verifying Signatures</a>
10)   </div>
Roger Dingledine clear trailing whitespaces;...

Roger Dingledine authored 13 years ago

11)   <div id="maincol">
traumschule verification: add TOC

traumschule authored 5 years ago

12) 
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

13) <section class="accordion">
14) <!--
15)   This section uses a CSS accordion to hide and show topics.
16)   Styles are defined at the bottom of layout.css.
17) -->
18)  <div>
19)    <input id="ac-0" name="accordion-0" type="checkbox" checked />
20)    <label for="ac-0">
traumschule verification: split by OS (...

traumschule authored 5 years ago

21)     <h1><a name="TOC">How to verify signatures of packages</a></h1>
traumschule verification: fix formatting

traumschule authored 5 years ago

22)     <hr>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

23)    </label>
24)    <article class="ac-small">
25) <!-- TOC -->
26)     <div class="nav img-shadow">
27)     <div class="sidenav-sub">
28)     <ul>
29)       <li><a href="#Why-verify-signature">Always verify downloads</a></li>
traumschule verification: split by OS (...

traumschule authored 5 years ago

30)       <li><a href="#ImportKey">Import Tor's signing key</a></li>
31)       <li><a href="#VerifySignature">Verify OpenPGP signatures</a></li>
32)       <li><a href="#ChecksumVerification">Verify checksums</a></li>
33)       <li><a href="#MARVerification">MAR verification</a></li>
34)       <li><a href="#Troubleshooting">Troubleshooting</a></li>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

35)       <li><a href="#Scripts">Scripts</a></li>
36)     </ul>
37)     </div>
38)     </div>
traumschule verification: fix formatting

traumschule authored 5 years ago

39) 
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

40) <!-- Intro -->
traumschule verification: fix formatting

traumschule authored 5 years ago

41)     <p>Digital signature is a process ensuring that a certain package was
42)     generated by its developers and has not been tampered with. Below we explain
43)     why it is important and how to verify that the Tor program you download is
44)     the one we have created and has not been modified by some attacker.</p>
45) 
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

46)     <p>If you want to learn more about how it works see<br/>
traumschule verification: fix formatting

traumschule authored 5 years ago

47)     <a href="https://en.wikipedia.org/wiki/Digital_signature">
48)     https://en.wikipedia.org/wiki/Digital_signature</a>.</p>
49) 
traumschule WIP verification: improve w...

traumschule authored 5 years ago

50)     <p class="hint">(Click on each headline to show or hide the section.)</p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

51)   </article>
52)  </div>
hiromipaw Started updating verify sig...

hiromipaw authored 6 years ago

53) 
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

54) <!-- Motivation -->
55)  <div>
56)    <input id="ac-1" name="accordion-1" type="checkbox" />
57)    <label for="ac-1">
58)     <a class="nav" title="link here" href="#Why-verify-signature">&#9668;</a>
traumschule WIP verification: improve w...

traumschule authored 5 years ago

59)     <h3><a name="Why-verify-signature">Always verify the signature of
60)         downloaded files</a></h3>
Roger Dingledine add some introduction parag...

Roger Dingledine authored 12 years ago

61)     <hr>
traumschule verification: fix formatting

traumschule authored 5 years ago

62)     <p>
63)     How do you know that the Tor program you have is really the one we made?
traumschule WIP verification: improve w...

traumschule authored 5 years ago

64)     Digital signatures ensure that the package you are downloading was created
65)     by our <a href="<>page about/corepeople>">developers</a>. It uses a
66)     cryptographic mechanism to ensure that the software package that you have
67)     just downloaded is authentic.
68)     <span class="hint">(click to toggle)</span></p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

69)    </label>
70)    <article class="ac-small">
71) 
traumschule verification: fix formatting

traumschule authored 5 years ago

72)     <p>
traumschule WIP verification: improve w...

traumschule authored 5 years ago

73)     For many Tor users it is important to verify that the Tor software is
74)     authentic as they have very real adversaries who might try to give them a
75)     fake version of Tor.
traumschule verification: fix formatting

traumschule authored 5 years ago

76)     </p>
Roger Dingledine add some introduction parag...

Roger Dingledine authored 12 years ago

77) 
traumschule verification: fix formatting

traumschule authored 5 years ago

78)     <p>
traumschule WIP verification: improve w...

traumschule authored 5 years ago

79)     If the Tor package has been modified by some attacker it is not safe to use
80)     it. It doesn't matter how secure and anonymous Tor is if you're not running
81)     the real Tor.
traumschule verification: fix formatting

traumschule authored 5 years ago

82)     </p>
hiromipaw Started updating verify sig...

hiromipaw authored 6 years ago

83) 
traumschule verification: fix formatting

traumschule authored 5 years ago

84)     <p>
85)     Before you go ahead and download something, there are a few extra steps you
86)     should take to make sure you have downloaded an authentic version of Tor.
87)     </p>
hiromipaw Small improvements to verif...

hiromipaw authored 6 years ago

88) 
89)     <h4>Always download Tor from torproject.org</h4>
90) 
traumschule verification: fix formatting

traumschule authored 5 years ago

91)     <p>
92)     There are a variety of attacks that can be used to make you download a fake
traumschule WIP verification: improve w...

traumschule authored 5 years ago

93)     version of Tor. For example, an attacker could trick you into thinking some
94)     other website is a great place to download Tor. You should always download
95)     Tor from
96)     <a href="https://www.torproject.org"><b>https</b>://www.torproject.org/</a>.
traumschule verification: fix formatting

traumschule authored 5 years ago

97)     </p>
hiromipaw Started updating verify sig...

hiromipaw authored 6 years ago

98) 
hiromipaw Small improvements to verif...

hiromipaw authored 6 years ago

99)     <h4>Always make sure you are browsing over https</h4>
100) 
traumschule verification: fix formatting

traumschule authored 5 years ago

101)     <p>
traumschule WIP verification: improve w...

traumschule authored 5 years ago

102)     <a href="https://www.torproject.org">https://www.torproject.org/</a> uses
103)     https. Https is the secure version of the http protocol which uses
104)     encryption and authentication between your browser and the website.
105)     This makes it much harder for the attacker to modify your download. But
106)     it's not perfect. Some places in the world block the Tor website, making
107)     users to download Tor <a href="<page docs/faq>#GetTor">somewhere else</a>.
traumschule verification: fix formatting

traumschule authored 5 years ago

108)     </p>
hiromipaw Started updating verify sig...

hiromipaw authored 6 years ago

109) 
traumschule verification: fix formatting

traumschule authored 5 years ago

110)     <p>
111)     Large companies sometimes force employees to use a modified browser,
traumschule WIP verification: improve w...

traumschule authored 5 years ago

112)     so the company can listen in on all their browsing. We've even
113)     <a href="https://blog.torproject.org/blog/diginotar-debacle-and-what-you-should-do-about-it">seen</a>
Roger Dingledine add some introduction parag...

Roger Dingledine authored 12 years ago

114)     attackers who have the ability to trick your browser into thinking
traumschule verification: fix formatting

traumschule authored 5 years ago

115)     you're talking to the Tor website with https when you're not.
116)     </p>
Roger Dingledine add some introduction parag...

Roger Dingledine authored 12 years ago

117) 
hiromipaw Small improvements to verif...

hiromipaw authored 6 years ago

118)     <h4>Always verify signatures of packages you have downloaded</h4>
119) 
traumschule verification: fix formatting

traumschule authored 5 years ago

120)     <p>
121)     Some software sites list
122)     <a href="https://en.wikipedia.org/wiki/Cryptographic_hash_function">sha1
Roger Dingledine add some introduction parag...

Roger Dingledine authored 12 years ago

123)     hashes</a> alongside the software on their website, so users can
124)     verify that they downloaded the file without any errors. These
125)     "checksums" help you answer the question "Did I download this file
126)     correctly from whoever sent it to me?" They do a good job at making
127)     sure you didn't have any random errors in your download, but they
128)     don't help you figure out whether you were downloading it from the
129)     attacker. The better question to answer is: "Is this file that I
traumschule verification: fix formatting

traumschule authored 5 years ago

130)     just downloaded the file that Tor intended me to get?"
131)     </p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

132)     <a class="nav" href="#TOC" title="go up">&uarr;</a>
133)   </article>
134)  </div>
135) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

136) <!-- Import Tor's signing key -->
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

137)  <div>
138)   <input id="ac-2" name="accordion-2" type="checkbox" checked />
139)   <label for="ac-2">
traumschule verification: split by OS (...

traumschule authored 5 years ago

140)     <a class="nav" title="link here" href="#ImportKey">&#9668;</a>
141)     <h3><a name="ImportKey">Step 1: Import Tor's signing key</a></h3>
Roger Dingledine add another heading on veri...

Roger Dingledine authored 12 years ago

142)     <hr>
traumschule verification: fix formatting

traumschule authored 5 years ago

143)     <p>
144)     Each file on <a href="<page download/download>">our download
Roger Dingledine the verifying signatures pa...

Roger Dingledine authored 12 years ago

145)     page</a> is accompanied by a file with the same name as the
146)     package and the extension ".asc". These .asc files are GPG
147)     signatures. They allow you to verify the file you've downloaded
148)     is exactly the one that we intended you to get. For example,
Georg Koppen Bug 13407: Update signature...

Georg Koppen authored 9 years ago

149)     torbrowser-install-<version-torbrowserbundle>_en-US.exe is accompanied by
150)     torbrowser-install-<version-torbrowserbundle>_en-US.exe.asc. For a list
traumschule verification: fix formatting

traumschule authored 5 years ago

151)     of which developer signs which package, see our
152)     <a href="<page docs/signing-keys>">signing keys</a> page.
153)     </p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

154)   </label>
traumschule verification: split by OS (...

traumschule authored 5 years ago

155)   <article class="ac-box">
traumschule WIP verification: improve w...

traumschule authored 5 years ago

156) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

157)    <p><span class="hint">Choose your operating system:</span>
158)    <label for="ac-2-1"><a name="KeyWindows">&#9658; Windows</a></label>
159)    <label for="ac-2-2"><a name="KeyMacOS">&#9658; Mac OS X</a></label>
160)    <label for="ac-2-3"><a name="KeyLinux">&#9658; Linux</a></label>
161)    </p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

162) <!-- Windows -->
traumschule verification: split by OS (...

traumschule authored 5 years ago

163)   <div>
164)    <input id="ac-2-1" name="accordion-2" type="radio" checked />
165)    <article class="ac-os">
traumschule rerender css

traumschule authored 5 years ago

166)     <h3>Import OpenPGP key on Windows</h3>
traumschule verification: fix formatting

traumschule authored 5 years ago

167)     <p>
168)     First of all you need to have GnuPG installed before you can verify
169)     signatures.
170)     <br/>
171)     Download it from
172)     <a href="https://gpg4win.org/download.html">https://gpg4win.org/download.html</a>.
173)     </p>
174)     <p>
175)     Once it's installed, use GnuPG to import the key that signed your
hiromipaw Edits instruction on how to...

hiromipaw authored 6 years ago

176)     package. In order to verify the signature you will need to type a few commands
177)     in windows command-line, <i>cmd.exe</i>.
traumschule verification: fix formatting

traumschule authored 5 years ago

178)     </p>
179)     <p>
180)     The Tor Browser team signs Tor Browser releases. Import its key
181)     (0x4E2C6E8793298290) by starting <i>cmd.exe</i> and typing:
182)     </p>
traumschule rerender css

traumschule authored 5 years ago

183)     <pre>
184)     > gpg.exe --keyserver pool.sks-keyservers.net --recv-keys 0x4E2C6E8793298290
185)     </pre>
traumschule verification: fix formatting

traumschule authored 5 years ago

186)     <p>
traumschule verification: split by OS (...

traumschule authored 5 years ago

187)    </article>
188)   </div>
189) <!-- MacOS -->
190)   <div>
191)    <input id="ac-2-2" name="accordion-2" type="radio" />
192)    <article class="ac-os">
traumschule rerender css

traumschule authored 5 years ago

193)     <h3>Import OpenPGP key on Mac OS</h3>
traumschule verification: split by OS (...

traumschule authored 5 years ago

194)     <p>
195)     You need to have GnuPG installed before you can verify
196)     signatures. Install it from
197)     <a href="https://www.gpgtools.org/">https://www.gpgtools.org/</a>.
198)     </p>
199) 
200)     <p>The next step is to use GnuPG to import the key that signed
201)     your package. The Tor Browser team signs Tor Browser releases. Import its
202)     key (0x4E2C6E8793298290) by starting the terminal under "Applications"
203)     and typing:</p>
traumschule rerender css

traumschule authored 5 years ago

204)     <pre>
205)     $ gpg --keyserver pool.sks-keyservers.net --recv-keys 0x4E2C6E8793298290
206)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

207)     <p>
208)    </article>
209)   </div>
210) <!-- Linux -->
211)   <div>
212)    <input id="ac-2-3" name="accordion-2" type="radio" />
213)    <article class="ac-os">
traumschule rerender css

traumschule authored 5 years ago

214)     <h3>Import OpenPGP key on Linux</h3>
traumschule verification: split by OS (...

traumschule authored 5 years ago

215)     <p>
216)     You need to have GnuPG installed before you can verify
217)     signatures. It's probably GnuPG is alreadyy installed on your
218)     system, as most Linux distributions come with it preinstalled.
219)     </p>
220) 
221)     <p>
222)     The next step is to use GnuPG to import the key that signed
223)     your package. The Tor Browser team signs Tor Browser releases. Import its
224)     key (0x4E2C6E8793298290) by starting the terminal and typing:</p>
traumschule rerender css

traumschule authored 5 years ago

225)     <pre>
226)     $ gpg --keyserver pool.sks-keyservers.net --recv-keys 0x4E2C6E8793298290
227)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

228)     <p>
229)    </article>
230)   </div>
231)   <div>
232)     <p>
traumschule verification: fix formatting

traumschule authored 5 years ago

233)     After importing the key, you can verify that the fingerprint
234)     is correct:
235)     </p>
traumschule rerender css

traumschule authored 5 years ago

236)     <pre>
237)     gpg --fingerprint 0x4E2C6E8793298290
238)     </pre>
Roger Dingledine the verifying signatures pa...

Roger Dingledine authored 12 years ago

239)     <p>You should see:</p>
240)     <pre>
traumschule update gpg fingerprint outp...

traumschule authored 5 years ago

241) pub   rsa4096/0x4E2C6E8793298290 2014-12-15 [C] [expires: 2020-08-24]
242)       Key fingerprint = EF6E 286D DA85 EA2A 4BA7  DE68 4E2C 6E87 9329 8290
traumschule verification: fix formatting

traumschule authored 5 years ago

243) uid                   [ unknown] Tor Browser Developers (signing key) &lt;torbrowser@torproject.org&gt;
traumschule update gpg fingerprint outp...

traumschule authored 5 years ago

244) sub   rsa4096/0xD1483FA6C3C07136 2016-08-24 [S] [expires: 2018-08-24]
245)       Key fingerprint = A430 0A6B C93C 0877 A445  1486 D148 3FA6 C3C0 7136
246) sub   rsa4096/0xEB774491D9FF06E2 2018-05-26 [S] [expires: 2020-09-12]
247)       Key fingerprint = 1107 75B5 D101 FB36 BC6C  911B EB77 4491 D9FF 06E2
traumschule verification: fix formatting

traumschule authored 5 years ago

248)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

249)     <a class="nav" href="#TOC" title="go up">&uarr;</a>
250)   </div>
251)  </article><!-- END Import -->
252) </div>
253) 
254) <!-- Verifiy with OpenPGP signature -->
255) <div>
256)  <input id="ac-3" name="accordion-3" type="checkbox" />
257)  <label for="ac-3">
258)     <a class="nav" title="link here" href="#VerifySignature">&#9668;</a>
traumschule rerender css

traumschule authored 5 years ago

259)     <h3><a name="VerifySignature">Step 2: Verification with OpenGPG signature</a></h3>
traumschule verification: split by OS (...

traumschule authored 5 years ago

260)     <hr>
261)     <p>This section explains how to verify the downloaded file's digital
262)     signature on different operating systems. Please notice that a signature is
263)     dated the moment the package has been signed. Therefore every time a new
264)     file is uploaded a new signature is generated with a different date. As
265)     long as you have verified the signature you should not worry that the
266)     reported date may vary.
267)     </p>
268)   </label>
269)   <article class="ac-box">
270)    <p><span class="hint">Choose your operating system:</span>
271)    <label for="ac-3-1"><a name="VerifyWindows">&#9658; Windows</a></label>
272)    <label for="ac-3-2"><a name="VerifyMacOS">&#9658; Mac OS X</a></label>
273)    <label for="ac-3-3"><a name="VerifyLinux">&#9658; Linux</a></label>
274)    </p>
275)    <p>
276)    If you haven't already, <a href="<page download/download>">download</a>
277)    the files you are interested in.
278)    </p>
279) <!-- Windows -->
280)   <div>
281)    <input id="ac-3-1" name="accordion-3" type="radio" checked />
282)    <article class="ac-os">
traumschule rerender css

traumschule authored 5 years ago

283)     <h3>Verify with OpenPGP signature on Windows</h3>
traumschule verification: fix formatting

traumschule authored 5 years ago

284)     <p>
285)     To verify the signature of the package you downloaded, you will need
Roger Dingledine the verifying signatures pa...

Roger Dingledine authored 12 years ago

286)     to download the ".asc" file as well. Assuming you downloaded the
traumschule verification: fix formatting

traumschule authored 5 years ago

287)     package and its signature to your Desktop, run:
288)     </p>
traumschule rerender css

traumschule authored 5 years ago

289)     <pre>
290)     > gpg.exe --verify C:\Users\Alice\Desktop\torbrowser-install-<version-torbrowserbundle>_en-US.exe.asc
291)     </pre>
292) 
hiromipaw Small improvements to verif...

hiromipaw authored 6 years ago

293)     <p>Please substitute "Alice" with your own username.</p>
traumschule verification: fix formatting

traumschule authored 5 years ago

294)     <p>The output should say "Good signature":</p>
Roger Dingledine the verifying signatures pa...

Roger Dingledine authored 12 years ago

295)     <pre>
traumschule docs/verifying-signatures:...

traumschule authored 5 years ago

296) gpg: assuming signed data in 'torbrowser-install-<version-torbrowserbundle>_en-US.exe'
297) gpg: Signature made Wed 15 Nov 2017 05:52:38 PM CET
298) gpg:                using RSA key 0xD1483FA6C3C07136
traumschule verification: fix formatting

traumschule authored 5 years ago

299) gpg: Good signature from "Tor Browser Developers (signing key) &lt;torbrowser@torproject.org&gt;" [unknown]
traumschule docs/verifying-signatures:...

traumschule authored 5 years ago

300) gpg: WARNING: This key is not certified with a trusted signature!
301) gpg:          There is no indication that the signature belongs to the owner.
302) Primary key fingerprint: EF6E 286D DA85 EA2A 4BA7  DE68 4E2C 6E87 9329 8290
303)      Subkey fingerprint: A430 0A6B C93C 0877 A445  1486 D148 3FA6 C3C0 7136
traumschule verification: fix formatting

traumschule authored 5 years ago

304)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

305)    </article>
306)   </div>
307) <!-- MacOS -->
308)   <div>
309)    <input id="ac-3-2" name="accordion-3" type="radio" />
310)    <article class="ac-os">
traumschule rerender css

traumschule authored 5 years ago

311)     <h3>Verify with OpenPGP signature on Mac OS</h3>
Roger Dingledine the verifying signatures pa...

Roger Dingledine authored 12 years ago

312)     <p>
traumschule verification: split by OS (...

traumschule authored 5 years ago

313)     To verify the signature of the package you downloaded, you will need
314)     to download the ".asc" file as well. Assuming you downloaded the
315)     package and its signature to your Downloads folder, run:
Roger Dingledine the verifying signatures pa...

Roger Dingledine authored 12 years ago

316)     </p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

317) 
traumschule rerender css

traumschule authored 5 years ago

318)     <pre>
319)     $ gpg --verify ~/Downloads/TorBrowser-<version-torbrowserbundleosx64>_en-US.dmg{.asc*,}
320)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

321) 
322)     <p>The output should say "Good signature":</p>
Roger Dingledine clear trailing whitespaces;...

Roger Dingledine authored 13 years ago

323) 
Roger Dingledine the verifying signatures pa...

Roger Dingledine authored 12 years ago

324)     <pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

325) gpg: assuming signed data in 'tor-browser-osx64-<version-torbrowserbundleosx64>_en-US.tar.xz'
326) gpg: Signature made Wed 15 Nov 2017 05:52:38 PM CET
327) gpg:                using RSA key 0xD1483FA6C3C07136
328) gpg: Good signature from "Tor Browser Developers (signing key) &lt;torbrowser@torproject.org&gt;" [unknown]
329) gpg: WARNING: This key is not certified with a trusted signature!
330) gpg:          There is no indication that the signature belongs to the owner.
331) Primary key fingerprint: EF6E 286D DA85 EA2A 4BA7  DE68 4E2C 6E87 9329 8290
332)      Subkey fingerprint: A430 0A6B C93C 0877 A445  1486 D148 3FA6 C3C0 7136
traumschule update gpg fingerprint outp...

traumschule authored 5 years ago

333)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

334)    </article>
335)   </div>
336) <!-- Linux -->
337)   <div>
338)    <input id="ac-3-3" name="accordion-3" type="radio" />
339)    <article class="ac-os">
traumschule rerender css

traumschule authored 5 years ago

340)     <h3>Verify with OpenPGP signature on Linux</h3>
traumschule verification: fix formatting

traumschule authored 5 years ago

341)     <p>
342)     To verify the signature of the package you downloaded, you will need
Roger Dingledine the verifying signatures pa...

Roger Dingledine authored 12 years ago

343)     to download the ".asc" file as well. Assuming you downloaded the
traumschule verification: fix formatting

traumschule authored 5 years ago

344)     package and its signature to your Downloads folder, run:
345)     </p>
Roger Dingledine clear trailing whitespaces;...

Roger Dingledine authored 13 years ago

346) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

347)     <p>Change 64 to 32 if you have the 32-bit package:</p>
traumschule verification: fix formatting

traumschule authored 5 years ago

348) 
traumschule rerender css

traumschule authored 5 years ago

349)     <pre>
350)     $ gpg --verify tor-browser-linux64-<version-torbrowserbundlelinux64>_en-US.tar.xz.asc
351)     </pre>
Roger Dingledine clear trailing whitespaces;...

Roger Dingledine authored 13 years ago

352) 
Georg Koppen Bug 15253: Add Tor Browser...

Georg Koppen authored 9 years ago

353)     <p>The output should say "Good signature":</p>
Roger Dingledine clear trailing whitespaces;...

Roger Dingledine authored 13 years ago

354) 
Andrew Lewman first cut of the new, shiny...

Andrew Lewman authored 13 years ago

355)     <pre>
traumschule docs/verifying-signatures:...

traumschule authored 5 years ago

356) gpg: assuming signed data in 'tor-browser-linux64-<version-torbrowserbundlelinux64>_en-US.tar.xz'
357) gpg: Signature made Wed 15 Nov 2017 05:52:38 PM CET
358) gpg:                using RSA key 0xD1483FA6C3C07136
traumschule verification: fix formatting

traumschule authored 5 years ago

359) gpg: Good signature from "Tor Browser Developers (signing key) &lt;torbrowser@torproject.org&gt;" [unknown]
traumschule docs/verifying-signatures:...

traumschule authored 5 years ago

360) gpg: WARNING: This key is not certified with a trusted signature!
361) gpg:          There is no indication that the signature belongs to the owner.
362) Primary key fingerprint: EF6E 286D DA85 EA2A 4BA7  DE68 4E2C 6E87 9329 8290
363)      Subkey fingerprint: A430 0A6B C93C 0877 A445  1486 D148 3FA6 C3C0 7136
364)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

365) 
366)     <p>
367)     On <b>Debian</b> for Tor (not Tor Browser) packages, you should read the
368)     instructions on
369)     <a href="<page docs/debian>#packages">importing these keys to apt</a>.
370)     If you're using the <b>RPMs</b> (for Tor, not Tor Browser), you can
371)     manually verify the signatures on the RPM packages by
372)     <pre>rpm -K filename.rpm</pre>
373)     </p>
374) 
375)   </article>
376)  </div>
377) <!-- END OS specific sections -->
traumschule verification: fix formatting

traumschule authored 5 years ago

378)     <p>
379)     Currently valid subkey fingerprints are:
380)     </p>
Georg Koppen Bug 15253: Add Tor Browser...

Georg Koppen authored 9 years ago

381)     <pre>
382)     5242 013F 02AF C851 B1C7  36B8 7017 ADCE F65C 2036
Georg Koppen Add new subkeys for Tor Bro...

Georg Koppen authored 7 years ago

383)     BA1E E421 BBB4 5263 180E  1FC7 2E1A C68E D408 14E0
traumschule verification: fix formatting

traumschule authored 5 years ago

384)     A430 0A6B C93C 0877 A445  1486 D148 3FA6 C3C0 7136
385)     </pre>
Andrew Lewman first cut of the new, shiny...

Andrew Lewman authored 13 years ago

386)     <p>
387)     Notice that there is a warning because you haven't assigned a trust
388)     index to this person. This means that GnuPG verified that the key made
389)     that signature, but it's up to you to decide if that key really belongs
390)     to the developer. The best method is to meet the developer in person and
391)     exchange key fingerprints.
392)     </p>
Georg Koppen Bug 15253: Add Tor Browser...

Georg Koppen authored 9 years ago

393) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

394)     <p>To learn more about GnuPG see
395)     <a href="https://www.gnupg.org/documentation/">https://www.gnupg.org/documentation/</a>
ilv Combined osx and linux inst...

ilv authored 9 years ago

396)     </p>
Roger Dingledine explain that linux users ar...

Roger Dingledine authored 12 years ago

397) 
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

398)     <a class="nav" href="#TOC" title="go up">&uarr;</a>
399)   </article>
400)  </div>
401) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

402) <!-- Verify checksums -->
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

403)  <div>
traumschule verification: split by OS (...

traumschule authored 5 years ago

404)   <input id="ac-4" name="accordion-4" type="checkbox" />
405)    <label for="ac-4">
406)     <a class="nav" title="link here" href="#ChecksumVerification">&#9668;</a>
traumschule rerender css

traumschule authored 5 years ago

407)     <h3><a id="ChecksumVerification">Step 3: Verify the file integrity by sha256 checksum</a></h3>
Matt Pagan Moved verification instruct...

Matt Pagan authored 9 years ago

408)     <hr>
traumschule verification: split by OS (...

traumschule authored 5 years ago

409)     <p>
410)     Build reproducibility is a
411)     <a href="https://blog.torproject.org/blog/deterministic-builds-part-one-cyberwar-and-global-compromise">
412)     security property</a> of Tor Browser 3.0 and later. Anyone can build
413)     Tor Browser on their own machine and produce a binary that is bit-for-bit
414)     identical to the binary we offer on the download page.
415)     Fortunately, it is not necessary for everyone to build Tor Browser locally
416)     to get this security. Verifying and comparing the signed list of
417)     <a href="https://en.wikipedia.org/wiki/Cryptographic_hash">hashes</a>
418)     will confirm that multiple people have built Tor Browsers identical to the
419)     download.
420)     </p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

421)    </label>
traumschule verification: split by OS (...

traumschule authored 5 years ago

422)   <article>
423)     <p>
424)     Note: This process does not work on OS X yet due to Apple's codesigning requirement.
425)     See <a href="#MARVerification">MAR verification</a> below.
426)     </p>
427)      <ul>
428)       <li>
429)       <a href="<page download/download>">Download</a> the Tor Browser package,
430)       the <tt>sha256sums-unsigned-build.txt</tt> file, and the
431)       <tt>sha256sums-unsigned-build.txt.asc</tt> signature file.
Georg Koppen Update advanced verificatio...

Georg Koppen authored 8 years ago

432)       They can all be found in the same directory under
433)       <a href="https://www.torproject.org/dist/torbrowser/">
hiromipaw Make 64bit instructions def...

hiromipaw authored 7 years ago

434)       https://www.torproject.org/dist/torbrowser/</a>, for example in '<version-torbrowserbundlelinux64>'
traumschule verification: split by OS (...

traumschule authored 5 years ago

435)       for Tor Browser <version-torbrowserbundlelinux64>.
traumschule verification: fix formatting

traumschule authored 5 years ago

436)       </li>
437)       <li>
traumschule rerender css

traumschule authored 5 years ago

438)       Retrieve the signers' GPG key with following ID with the method <a href="#ImportKey">described above</a>:<br/>
439)       (Other developers' key IDs can be found
440)       <a href="<page docs/signing-keys>">here)</a>
441)       </li>
traumschule verification: split by OS (...

traumschule authored 5 years ago

442)      </ul>
traumschule rerender css

traumschule authored 5 years ago

443)      <pre>
444)      0x4E2C6E8793298290
445)      </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

446)   </article>
447)   <article class="ac-box">
448)   
449)    <p><span class="hint">Choose your operating system:</span>
450)    <span>
451) 
452)     <label for="ac-4-1"><a name="ChecksumsWindows">&#9658; Windows</a></label>
453)    </span>
454)    <!--<span>
455)    <input id="ac-4-2" name="accordion-4" type="radio" />
456)    <label for="ac-4-2"><a name="ChecksumMacOS">MacOS</a></label>
457)    </span>-->
458)    <span>
459)     <label for="ac-4-3"><a name="ChecksumsLinux">&#9658; Linux</a></label>
460)    </span>
461)    </p>
462) 
463) <!-- Windows -->
464)   <div>
traumschule rerender css

traumschule authored 5 years ago

465)     <input id="ac-4-1" name="accordion-4" type="radio" checked />
traumschule verification: split by OS (...

traumschule authored 5 years ago

466)    <article class="ac-os">
traumschule rerender css

traumschule authored 5 years ago

467)     <!--<pre id="ttb-key">
468)     > gpg.exe --keyserver pool.sks-keyservers.net --recv-keys 0x4E2C6E8793298290
469)     </pre>-->
traumschule verification: split by OS (...

traumschule authored 5 years ago

470)     <h3>Verififcation with a checksum on Windows</h3>
471)     <h4>Verify the signature of the checksum file</h4>
472)     <p>
473)     Verify the sha256sums-unsigned-build.txt file by executing this command:
474)     </p>
traumschule rerender css

traumschule authored 5 years ago

475)     <pre>
476)     > gpg.exe --verify sha256sums-unsigned-build.txt.asc sha256sums-unsigned-build.txt
traumschule verification: split by OS (...

traumschule authored 5 years ago

477)     </pre>
478) 
479)     <p>
480)     You should see a message like
481)     <pre>"Good signature from &lt;DEVELOPER NAME&gt;"</pre>.
482)     If you don't, there is a problem. Try these steps again.
483)     </p>
traumschule verification: fix formatting

traumschule authored 5 years ago

484) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

485)     <h4>Verify the file integrity of Tor Browser</h4>
traumschule rerender css

traumschule authored 5 years ago

486)     <p>
487)     If you want to verify a Windows Tor Browser package you need to first
488)     strip off the authenticode signature of it.<br/>
489)     Tools that can be used for this purpose are
490)     <a href="http://osslsigncode.sourceforge.net">osslsigncode</a> and
491)     <a href="http://forum.xda-developers.com/showthread.php?t=416175">delcert.exe</a>.
492)     Assuming you have built e.g. <tt>osslsigncode</tt> on a Linux computer you can enter
493)     </p>
494)     <pre>
495)     > C:\path\to\osslsigncode remove-signature &#92;
496)         where\you\saved\\&lt;TOR BROWSER FILE NAME&gt;.exe &lt;TOR BROWSER FILE NAME&gt;.exe
497)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

498) 
traumschule rerender css

traumschule authored 5 years ago

499)     <p>Now use the sha256sum of the Tor Browser package with the
500)     <a href="http://md5deep.sourceforge.net/">hashdeep utility</a> and run
501)     </p>
502)     <pre>
503)     C:\location\of\hashdeep -c sha256sum &lt;TOR BROWSER FILE NAME&gt;.exe
504)     </pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

505)    </article>
506)   </div>
507) <!-- Mac OS --><!--
508)  <div>
509)    <article class="ac-os">
510)      This process does not work on OS X yet due to Apple's codesigning requirement.
511)    </article>
512)  </div>
513) -->
traumschule verification: fix formatting

traumschule authored 5 years ago

514) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

515) <!-- Linux -->
traumschule rerender css

traumschule authored 5 years ago

516)   <div>
517)    <input id="ac-4-3" name="accordion-4" type="radio" />
traumschule verification: split by OS (...

traumschule authored 5 years ago

518)    <article class="ac-os ac-4-3">
traumschule rerender css

traumschule authored 5 years ago

519)     <!--<pre id="ttb-key">
520)     $ gpg --keyserver pool.sks-keyservers.net --recv-keys 0x4E2C6E8793298290
521)     </pre>-->
traumschule verification: split by OS (...

traumschule authored 5 years ago

522)     <h3>Verififcation with a checksum on Linux</h3>
523)     <h4>Verify the signature of the checksum file</h4>
524)     <ul>
525)      <li>Verify the sha256sums-unsigned-build.txt with this command:</li>
traumschule rerender css

traumschule authored 5 years ago

526)      <pre>$ gpg --verify sha256sums-unsigned-build.txt.asc sha256sums-unsigned-build.txt</pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

527) 
traumschule rerender css

traumschule authored 5 years ago

528)      <li><!-- TODO which OSs are meant here? -->
traumschule verification: split by OS (...

traumschule authored 5 years ago

529)      In case your operating system is adding the .txt extension automatically
530)      to the SHA256 sums signature file strip it again by running
traumschule rerender css

traumschule authored 5 years ago

531)      </li>
532)      <pre>$ mv sha256sums-unsigned-build.txt.asc.txt sha256sums-unsigned-build.txt.asc</pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

533) 
traumschule rerender css

traumschule authored 5 years ago

534)      <li>
traumschule verification: split by OS (...

traumschule authored 5 years ago

535)      Verify the sha256sums-unsigned-build.txt file by executing this command:
536)      </li>
traumschule rerender css

traumschule authored 5 years ago

537)      <pre>$ gpg --verify sha256sums-unsigned-build.txt.asc sha256sums-unsigned-build.txt</pre>
traumschule verification: split by OS (...

traumschule authored 5 years ago

538) 
539)      <li>
traumschule rerender css

traumschule authored 5 years ago

540)      If you don't see a message like this, there is a problem
541)      and you should try these steps again:
traumschule verification: split by OS (...

traumschule authored 5 years ago

542)      </li>
traumschule rerender css

traumschule authored 5 years ago

543)      <pre>"Good signature from &lt;DEVELOPER NAME&gt;"</pre>.
traumschule verification: split by OS (...

traumschule authored 5 years ago

544)     </ul>
545) 
546)     <h4>Verify the file integrity of Tor Browser</h4>
547)     <ul>
548)      <li>Calculate the SHA-256 checksum of Tor Browser:</li>
traumschule rerender css

traumschule authored 5 years ago

549)      <pre>$ sha256sum &lt;TOR BROWSER FILE NAME&gt;.tar.gz</pre>
traumschule verification: fix formatting

traumschule authored 5 years ago

550) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

551)      <li>You will see a string of letters and numbers.</li>
traumschule verification: fix formatting

traumschule authored 5 years ago

552) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

553)      <li>Open <tt>sha256sums-unsigned-build.txt</tt> in a text editor.</li>
traumschule verification: fix formatting

traumschule authored 5 years ago

554) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

555)      <li>Locate the name of the Tor Browser file you downloaded.</li>
traumschule verification: fix formatting

traumschule authored 5 years ago

556) 
traumschule verification: split by OS (...

traumschule authored 5 years ago

557)      <li>
558)      Compare the string of letters and numbers to the left of your filename with
559)      the string of letters and numbers that appeared on your command line.
560)      If they match, you've successfully verified the build.
561)      </li>
Matt Pagan Moved verification instruct...

Matt Pagan authored 9 years ago

562)     </ul>
traumschule rerender css

traumschule authored 5 years ago

563)     </article>
564)    </div>
traumschule verification: split by OS (...

traumschule authored 5 years ago

565)    <a class="nav" href="#TOC" title="go up">&uarr;</a>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

566)   </article>
567)  </div>
568) 
569) <!-- MAR verification -->
570)  <div>
traumschule verification: split by OS (...

traumschule authored 5 years ago

571)   <input id="ac-5" name="accordion-5" type="checkbox" />
572)    <label for="ac-5">
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

573)     <a class="nav" title="link here" href="#MARVerification">&#9668;</a>
traumschule verification: split by OS (...

traumschule authored 5 years ago

574)     <h3><a name="MARVerification">MAR verification</a></h3>
Matt Pagan Moved verification instruct...

Matt Pagan authored 9 years ago

575)     <hr>
traumschule verification: split by OS (...

traumschule authored 5 years ago

576)     <p>
577)     Starting with Tor Browser 4.5a4 we sign our MAR files which helps
Georg Koppen Bug 14304: Document strippi...

Georg Koppen authored 9 years ago

578)     securing our update process. The downside of this is the need for additional
579)     instructions to verify that the MAR files we ship are indeed the ones we
traumschule verification: split by OS (...

traumschule authored 5 years ago

580)     produced with our rbm setup.
581)     </p>
582)    </label>
583)    <article class="ac-small">
584)     <p>
585)     Assuming the verification happens on a Linux computer one first needs the
Georg Koppen Bug 14304: Document strippi...

Georg Koppen authored 9 years ago

586)     <tt>mar-tools-linux*.zip</tt> out of the <tt>gitian-builder/inputs</tt>
587)     directory to remove the embedded signature(s). The steps to get the unsigned
588)     MAR file on a 64 bit Linux are</p>
589)     <pre>
traumschule rerender css

traumschule authored 5 years ago

590)     $ cd /path/to/MAR/file
591)     $ unzip /path/to/gitian-builder/inputs/mar-tools-linux64.zip
592)     $ export LD_LIBRARY_PATH=/path/to/MAR/file/mar-tools
593)     $ mar-tools/signmar -r your-signed-mar-file.mar your-unsigned-mar-file.mar</pre>
Georg Koppen Bug 14304: Document strippi...

Georg Koppen authored 9 years ago

594)     <p>Now you can compare the SHA256 sum of <tt>your-unsigned-mar-file.mar</tt>
Georg Koppen Update advanced verificatio...

Georg Koppen authored 8 years ago

595)     with the one provided in the <tt>sha265sums-unsigned-build.txt</tt> or
596)     <tt>sha256sums-unsigned-build.incremental.txt</tt> as outlined in
traumschule verification: split by OS (...

traumschule authored 5 years ago

597)     <a href="#ChekcksumVerification">Checksum verification</a> above.
598)     </p>
599)    </article>
600)  </div>
601) 
602) <!-- Troubleshooting -->
603)  <div>
604)   <input id="ac-6" name="accordion-6" type="checkbox" />
605)    <label for="ac-6">
606)     <a class="nav" title="link here" href="#Troubleshooting">&#9668;</a>
607)     <h3><a id="Troubleshooting">Troubleshooting</a></h3>
608)     <hr>
609)     <p>Does this guide work for you? Is a question missing?
610)     <a href="<page about/contact>#support">Reach out to us</a>!</p>
611)    </label>
612)    <article class="ac-small">
traumschule rerender css

traumschule authored 5 years ago

613)     <p>Send us your question!</p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

614)     <a class="nav" href="#TOC" title="go up">&uarr;</a>
615)   </article>
616)  </div>
617) 
618) <!-- Scripts -->
619)  <div>
620)   <input id="ac-7" name="accordion-7" type="checkbox" checked />
621)    <label for="ac-7">
622)     <a class="nav" title="link here" href="#Scripts">&#9668;</a>
623)     <h3><a id="Scripts">Automate the process with a script</a></h3>
624)     <hr>
625)     <p><a href="https://github.com/isislovecruft/scripts/blob/master/verify-gitian-builder-signatures">Scripts</a>
626)     to <a href="https://tor.stackexchange.com/questions/648/how-to-verify-tor-browser-bundle-tbb-3-x">automate</a>
627)     these steps have been written, but to use them you will need to modify
628)     them yourself with the latest Tor Browser filename.</p>
traumschule verification: split by OS (...

traumschule authored 5 years ago

629)    </label>
630)    <article class="ac-small">
traumschule rerender css

traumschule authored 5 years ago

631)     <p>
632)     This needs to be explained. <a href="<page getinvolved/volunteer>">Help!</a>
633)     </p>
traumschule rebase onto torproject/webw...

traumschule authored 5 years ago

634)     <a class="nav" href="#TOC" title="go up">&uarr;</a>
635)   </article>
636)  </div>
637) </section>
Matt Pagan Moved verification instruct...

Matt Pagan authored 9 years ago

638) 
Andrew Lewman first cut of the new, shiny...

Andrew Lewman authored 13 years ago

639)   </div>
640)   <!-- END MAINCOL -->
641)   <div id = "sidecol">
642) #include "side.wmi"
643) #include "info.wmi"
644)   </div>
645)   <!-- END SIDECOL -->
646) </div>
647) <!-- END CONTENT -->