b0f4cb6c251d8c70d530edd70a77bdd25b651bba
[gnupg-doc.git] / web / download / integrity_check.org
1 #+TITLE: GnuPG - Integrity Check
2 #+STARTUP: showall
3 #+SETUPFILE: "../share/setup.inc"
4 #+GPGWEB-NEED-SWDB
5 #+OPTIONS:  ^:{}
6
7 * Integrity Check
8 #+index: integrity check
9
10   You can check that the version of GnuPG that you want to install is
11   original and unmodified by either verifying the file's signature or
12   comparing the checksum with the one published in the release
13   announcement.
14
15 ** Verifying the File's Signature
16
17   If you already have a trusted version of GnuPG installed, you can
18   check the supplied signature.  For example, to check the signature
19   of the file gnupg-{{{gnupg22_ver}}}.tar.bz2, you can use this command:
20
21   {{{begin_example}}}
22   $ gpg {{{twodashes}}}verify gnupg-{{{gnupg22_ver}}}.tar.bz2.sig gnupg-{{{gnupg22_ver}}}.tar.bz2
23   {{{end_example}}}
24
25   *Note: you should never use a GnuPG version you just downloaded to
26   check the integrity of the source* --- use an existing, trusted GnuPG
27   installation, e.g., the one provided by your distribution.
28
29   If the output of the above command is similar to the following, then
30   either you don't have our distribution keys (our [[../signature_key.org][signing keys are
31   here]]) or the signature was generated by someone else and the file
32   should be treated suspiciously.
33
34   {{{begin_example}}}
35   gpg: Signature made Fri 09 Oct 2015 05:41:55 PM CEST using RSA key ID 4F25E3B6
36   gpg: Can't check signature: No public key
37   gpg: Signature made Tue 13 Oct 2015 10:18:01 AM CEST using RSA key ID 33BD3F06
38   gpg: Can't check signature: No public key
39   {{{end_example}}}
40
41   If you instead see:
42
43   {{{begin_example}}}
44   gpg: Good signature from "Werner Koch (dist sig)" [unknown]
45   gpg: WARNING: This key is not certified with a trusted signature!
46   gpg:          There is no indication that the signature belongs to the owner.
47   Primary key fingerprint: D869 2123 C406 5DEA 5E0F  3AB5 249B 39D2 4F25 E3B6
48   gpg: Signature made Tue 13 Oct 2015 10:18:01 AM CEST using RSA key ID 33BD3F06
49   gpg: Good signature from "NIIBE Yutaka (GnuPG Release Key) <gniibe@fsij.org>" [unknown]
50   gpg: WARNING: This key is not certified with a trusted signature!
51   gpg:          There is no indication that the signature belongs to the owner.
52   Primary key fingerprint: 031E C253 6E58 0D8E A286  A9F2 2071 B08A 33BD 3F06
53   {{{end_example}}}
54
55   then you have a copy of our keys and the signatures are valid, but
56   either you have not marked the keys as trusted or the keys are a
57   forgery.  In this case, at the very least, you should compare the
58   fingerprints that are shown to those on the [[../signature_key.org][signing keys page]].  Even
59   better is to compare the fingerprints with those shown on our
60   business cards, which we handout at events that we attend.
61
62   Ideally, you'll see something like:
63
64   {{{begin_example}}}
65   gpg: Signature made Fri 09 Oct 2015 05:41:55 PM CEST using RSA key ID 4F25E3B6
66   gpg: Good signature from "Werner Koch (dist sig)" [full]
67   gpg: Signature made Tue 13 Oct 2015 10:18:01 AM CEST using RSA key ID 33BD3F06
68   gpg: Good signature from "NIIBE Yutaka (GnuPG Release Key) <gniibe@fsij.org>" [full]
69   {{{end_example}}}
70
71   This means that the signature is valid and that you trust this key
72   (either you signed it or someone you trusted did).
73
74 ** Comparing Checksums
75
76    If you are not able to use an old version of GnuPG, you can still
77    verify the file's SHA-1 checksum.  This is less secure, because if
78    someone modified the files as they were transferred to you, it
79    would not be much more effort to modify the checksums that you see
80    on this webpage.  As such, if you use this method, you should
81    compare the checksums with those in release announcement.  This is
82    sent to the gnupg-announce mailing list (among others), which is
83    widely mirrored.  Don't use the mailing list archive on this
84    website, but find the announcement on several other websites and
85    make sure the checksum is consistent.  This makes it more difficult
86    for an attacker to trick you into installing a modified version of
87    the software.
88
89    Assuming you downloaded the file gnupg-{{{gnupg22_ver}}}.tar.bz2, you
90    can run the =sha1sum= command like this:
91
92    {{{begin_chksum}}}
93    sha1sum gnupg-{{{gnupg22_ver}}}.tar.bz2
94    {{{end_chksum}}}
95
96    and check that the output matches the SHA-1 checksum reported on
97    this site. An example of a =sha1sum= output is:
98
99    {{{begin_chksum}}}
100    {{{gnupg22_sha1}}}  gnupg-{{{gnupg22_ver}}}.tar.bz2
101    {{{end_chksum}}}
102
103 ** List of SHA-1 check-sums
104
105    For your convenience, all SHA-1 check-sums available for software
106    that can be downloaded from [[ftp://ftp.gnupg.org/][our site]], have been gathered below.
107
108    {{{begin_chksum}}}
109    {{{gnupg22_sha1}}}  gnupg-{{{gnupg21_ver}}}.tar.bz2
110    {{{gnupg22_w32_sha1}}}  gnupg-w32-{{{gnupg21_w32_ver}}}.exe
111    {{{libgpg_error_sha1}}}  libgpg-error-{{{libgpg_error_ver}}}.tar.bz2
112    {{{libgcrypt_sha1}}}  libgcrypt-{{{libgcrypt_ver}}}.tar.bz2
113    {{{libksba_sha1}}}  libksba-{{{libksba_ver}}}.tar.bz2
114    {{{libassuan_sha1}}}  libassuan-{{{libassuan_ver}}}.tar.bz2
115    {{{ntbtls_sha1}}}  ntbtls-{{{ntbtls_ver}}}.tar.bz2
116    {{{npth_sha1}}}  npth-{{{npth_ver}}}.tar.bz2
117    {{{pinentry_sha1}}}  pinentry-{{{pinentry_ver}}}.tar.bz2
118    {{{gpgme_sha1}}}  gpgme-{{{gpgme_ver}}}.tar.bz2
119    {{{gpa_sha1}}}  gpa-{{{gpa_ver}}}.tar.bz2
120    {{{dirmngr_sha1}}}  dirmngr-{{{dirmngr_ver}}}.tar.bz2
121    {{{gnupg20_sha1}}}  gnupg-{{{gnupg20_ver}}}.tar.bz2
122    {{{gnupg1_sha1}}}  gnupg-{{{gnupg1_ver}}}.tar.bz2
123    {{{gnupg1_w32cli_sha1}}}  gnupg-w32cli-{{{gnupg1_w32cli_ver}}}.exe
124    {{{end_chksum}}}
125
126
127 # eof #