How to verify signatures for packages
Each file on our download page is accompanied by a file with the same name as the package and the extension ".asc". For example, the current Installation Bundle for Windows: dist/vidalia-bundles/vidalia-bundle-0.2.0.35-0.1.14.exe.asc.
These .asc files are PGP signatures. They allow you to verify the file you've downloaded is exactly the one that we intended you to get.
Of course, you'll need to have our pgp keys in your keyring: if you don't know the pgp key, you can't be sure that it was really us who signed it. The signing keys we use are:
- Roger's (0x28988BF5) typically signs the source code file.
- Nick's (0x165733EA, or its subkey 0x8D29319A)
- Andrew's (0x31B0974B)
- Peter's (0x94C09C7F, or its subkey 0xAFA44BDD)
- Matt's (0x5FA14861)
- Jacob's (0x9D0FACE4)
Step One: Import the keys
You can import keys directly from GnuPG as well:
gpg --keyserver subkeys.pgp.net --recv-keys 0x28988BF5
or search for keys with
gpg --keyserver subkeys.pgp.net --search-keys 0x28988BF5
and when you select one, it will be added to your keyring.
Step Two: Verify the fingerprints
Verify the pgp fingerprints using:
gpg --fingerprint (insert keyid here)The fingerprints for the keys should be:
pub 1024D/28988BF5 2000-02-27 Key fingerprint = B117 2656 DFF9 83C3 042B C699 EB5A 896A 2898 8BF5 uid Roger Dingledine <firstname.lastname@example.org> pub 3072R/165733EA 2004-07-03 Key fingerprint = B35B F85B F194 89D0 4E28 C33C 2119 4EBB 1657 33EA uid Nick Mathewson <email@example.com> uid Nick Mathewson <firstname.lastname@example.org> uid Nick Mathewson <email@example.com> pub 1024D/31B0974B 2003-07-17 Key fingerprint = 0295 9AA7 190A B9E9 027E 0736 3B9D 093F 31B0 974B uid Andrew Lewman (phobos) <firstname.lastname@example.org> uid Andrew Lewman <email@example.com> uid Andrew Lewman <firstname.lastname@example.org> sub 4096g/B77F95F7 2003-07-17 pub 1024D/94C09C7F 1999-11-10 Key fingerprint = 5B00 C96D 5D54 AEE1 206B AF84 DE7A AF6E 94C0 9C7F uid Peter Palfrader uid Peter Palfrader <email@example.com> uid Peter Palfrader <firstname.lastname@example.org> pub 1024D/5FA14861 2005-08-17 Key fingerprint = 9467 294A 9985 3C9C 65CB 141D AF7E 0E43 5FA1 4861 uid Matt Edman <email@example.com> uid Matt Edman <Matt_Edman@baylor.edu> uid Matt Edman <firstname.lastname@example.org> sub 4096g/EA654E59 2005-08-17 pub 1024D/9D0FACE4 2008-03-11 [expires: 2010-03-11] Key fingerprint = 12E4 04FF D3C9 31F9 3405 2D06 B884 1A91 9D0F ACE4 uid Jacob Appelbaum <email@example.com> sub 4096g/D5E87583 2008-03-11 [expires: 2010-03-11]
(Of course if you want to be really certain that those are the real ones then you should check this from more places or even better get into key signing and build a trust path to those keys.)
Step Three: Verify the downloaded package
If you're using GnuPG, then put the .asc and the download in the same directory and type "gpg --verify (whatever).asc (whatever)". It will say something like "Good signature" or "BAD signature" using the following type of command:
gpg --verify tor-0.1.0.17.tar.gz.asc tor-0.1.0.17.tar.gz gpg: Signature made Wed Feb 23 01:33:29 2005 EST using DSA key ID 28988BF5 gpg: Good signature from "Roger Dingledine <firstname.lastname@example.org>" gpg: aka "Roger Dingledine <email@example.com>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: B117 2656 DFF9 83C3 042B C699 EB5A 896A 2898 8BF5
Notice that there is a warning because you haven't assigned a trust index to this user. This means that your program verified the key made that signature. It's up to the user to decide if that key really belongs to the developers. The best method is to meet them in person and exchange gpg fingerprints. Keys can also be signed. If you look up Roger or Nick's keys, other people have essentially said "we have verified this is Roger/Nick". So if you trust that third party, then you have a level of trust for that arma/nick.
All this means is you can ignore the message or assign a trust level.
For your reference, this is an example of a BAD verification. It means that the signature and file contents do not match:
gpg --verify tor-0.1.0.17.tar.gz.asc gpg: Signature made Wed Feb 23 01:33:29 2005 EST using DSA key ID 28988BF5 gpg: BAD signature from "Roger Dingledine <firstname.lastname@example.org>"
If you see a message like the above one, then you should not trust the file contents.
If you are running Tor on Debian you should read the instructions on importing these keys to apt.