This is a re-formatted [and typo reduced ;) ] version, re-laid for the blogging software, of a post I made to the main CentOS mailing list earlier today. A test copy to verify of this which will properly verify is here, and may be retrieved with wget.
A few minutes on using detached and clearsigned content.
In light of today's CVE-2007-4752 by the CentOS project's upstream:
I issue this brief piece on using GnuPG
1. View a proposed key to use, at the MIT keyserver
2. Copy and create a local instance
[herrold@centos-5 redhat]$ vi rht-key
[herrold@centos-5 redhat]$ gpg --import rht-key
gpg: key 650D5882: duplicated user ID detected - merged
gpg: key 650D5882: public key "Red Hat, Inc. (Security Response Team)
gpg: Total number processed: 1
gpg: imported: 1
gpg: 3 marginal(s) needed, 1 complete(s) needed, classic trust model
gpg: depth: 0 valid: 2 signed: 5 trust: 0-, 0q, 0n, 0m, 0f, 2u
gpg: depth: 1 valid: 5 signed: 2 trust: 0-, 0q, 0n, 1m, 4f, 0u
gpg: next trustdb check due at 2009-03-14
3. Compute a local fingerprint of the candidate
[herrold@centos-5 redhat]$ gpg --fingerprint 650D5882
pub 1024D/650D5882 2001-11-21
Key fingerprint = 9273 2337 E5AD 3417 5265 64AB 5E54 8083 650D 5882
uid Red Hat, Inc. (Security Response Team)
sub 2048g/7EAB9AFD 2001-11-21
4. Compare and validate the fingerprint of the candidate against the RHT statement of the same fingerprint:
5. You do NOT need to accept a key permanently to check signed content purportedly with it; consider the Red Hat notice at:
6. We can retrieve the checking script
and the (presumptively) signed checksum of that file
This is called a detached signature
7. And then we can validate ('--verify') that the signature and the file were signed by a person in possession of the private key.
Hopefully that private key is itself protected, as behind one way firewalls, and with a 'pass phrase' which matches a known public (which we retrieved and added earlier). This procedural security process is followed by me [one way firewalls, and pass phrases, and other CentOS team members], along with other measures.
[herrold@centos-5 redhat]$ gpg --verify openssh-blacklist-1.0.sh.asc openssh-blacklist-1.0.sh
gpg: Signature made Fri 22 Aug 2008 05:02:29 AM EDT using DSA key ID
gpg: Good signature from "Red Hat, Inc. (Security Response Team)
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the
Primary key fingerprint: 9273 2337 E5AD 3417 5265 64AB 5E54 8083 650D 5882
8. As we have not indicated to gpg that we permanently trust this key, gpg adds the WARNING -- this is expected and correct under this outline. The validation checks out.
9. This file can be clearsigned -- the process we will follow is this:
[herrold@centos-5 .gnupg]$ gpg --clearsign import-key-howto.txt
You need a passphrase to unlock the secret key for
user: "R P Herrold
1024-bit DSA key, ID 9B649644, created 2003-02-09
File `import-key-howto.txt.asc' exists. Overwrite? (y/N) y
10. That is, import-key-howto.txt is clearsigned, and a new file,
import-key-howto.txt.asc, is produced. As I did it twice, to add this text, the warning about Overwriting a file appeared.
11. This is a non-detached (clearsigned, file, and might also be tested by retrieving the indicated key contents, and doing a '--verify'
12. As I have previously certified my own key, I can do it more simply locally:
[herrold@centos-5 .gnupg]$ gpg --verify import-key-howto.txt.asc
gpg: Signature made Fri 22 Aug 2008 12:37:39 PM EDT using DSA key ID
gpg: Good signature from "R P Herrold
Note that the TIME of the signing will vary, as I have to resign the file after adding this content.
13. Previously (prior to 22 Aug 2008), I have included my PGP details in every piece of email I send. Starting today, as to email originate; I will add another line with my GPG details as well. I will send this document to the main centos mailing list.
Date: Thu, 21 Aug 2008 17:43:28 -0400 (EDT)
From: R P Herrold
To: trading-shim general mailing list
Subject: segmentation faults
User-Agent: Alpine 1.999 (LRH 1145 2008-08-19)
X-M: Go Blue
In pine (alpine), one does this with Customized X-headers:
Customized Headers = X-M: Go Blue
[hmmm -- a typo: o for 0 in the GnuPG line -- I'll fix that in alpine]
This piece intentionally does not address CentOS response; a preliminary statement on this has been posted in the /topic of the IRC channel #centos on irc.freenode.org, and I have done a blog posting which is up at: http://planet.centos.org/
- -- Russ herrold