At 10:46 pm -0500 2000-01-01, Dan Geer wrote:
>My daughter was ordering a CD this evening from the site cdnow.com
>and I noted that besides the SSL option they also had a PGP option.
>Take a look at
>
>http://www.cdnow.com/cgi-bin/mserver/SID=0/pagename=/RP/HELP/order.html#8q
>
>This is new to me.


This is indeed *very* interesting, and yes, a relatively new phenomenon, 
notwithstanding the old "Phil's Pretty Good Software" t-shirt purchase mechanism and a 
handful of other small-business examples of Yore.

One would hope it's also the tip of a huge "iceberg" of people taking their online 
e-commerce security into their own hands, since VeriSign now owns Thawte too, making 
for a potential trust monopoly of staggering proportions. Of course, it's also 
symbolic of a serious can-of-worms being opened: the ability of the PGP PKI to be able 
to create viable webs of validity for business use, ala X.509v3 Certificate 
Authorities. If major online vendors begin to offer this simple feature for die-hards 
like us, then perhaps the time has never been more ripe for someone to provide serious 
PGP business certification services (GTE CyberTrust, et alia, are you listening?).

In any case, I was as intrigued as Dan, so I did a little investigating into the trust 
metrics on the CDNOW key. I would never expect your average consumer, PGP-equipped or 
not, to delve this way, but let's just call this a basic cp trust analysis for now.

The canonical instance of the CDNOW key (keyid = 0xC894F687, userid = "CDnow! The 
Internet Music Store   <[EMAIL PROTECTED]>") is supposedly on their own website 
<http://www.cdnow.com/cgi-bin/mserver/SID=336979276/pagename=/RP/HELP/pgp.html>. 
Assuming no-one is spoofing that particular page for all HTTP queries (certainly 
possible, but unlikely), one finds there a 1024-bit RSA key exported from PGP v2.7 
(that's an old ViaCrypt version, a clue right there) with the key owner's 
self-signature. The self-signed key is a good sign and also a clue to the key's 
origin, since those old PGP 2.x-based versions did not automatically self-sign keys 
upon generation as version 5.x+ does: the owner had to be clueful enough to put it 
there. There's also a signature from a key belonging to David Barnhart, a former 
ViaCrypt employee and later a colleague of mine at PGP Inc. He's probably the clueful 
one responsible for the bare bones WoT on the CDNOW key.

Here the plot thickens: If the only two sigs on the key at CDNOW are the key-owner's 
sig and David's, then the ability of any CDNOW customer to trust the key's security is 
based on David's "trustability quotient" as well as the ability of CDNOW to prevent 
spoofing of its webpages. Giving CDNOW the benefit of the doubt in this case, this 
means that David has become the defacto PGP Certificate Authority for CDNOW, which 
implies more liability than he's probably willing to take on personally, so it may be 
that he's a CDNOW employee and therefore has some legal protections (one hopes it's in 
his contract).

Unfortunately, the old RSA key David used (0x67ECF13D) to sign the CDNOW key has no 
CDNOW userid on it to indicate his affiliation with the company, nor is his key found 
on the CDNOW website, which means that any CDNOW customer who wishes to trust the 
CDNOW key must know enough to go fetch David's key from elsewhere, check the validity 
on it individually and build his/her WoT manually as I've done. As I pointed out 
above, that's not bloody likely.

I found a better WoT-connected version of the CDNOW key on Highware's OpenKeyServer:
<http://www.keyserver.net:11371/pks/lookup?op=vindex&template=ensearch,ennomatch,enerror&search=0xC894F687>.

Interestingly, David's (old) key 
<http://www.keyserver.net:11371/pks/lookup?op=vindex&template=ensearch,ennomatch,enerror&search=0x67ECF13D>
 is a 512-bit RSA key (compromisable at this point by a sophisticated competitive 
online CD vendor in, say, Japan), and it has no signatures of any importance (in terms 
of validity calculations) on it other than one: Phil Zimmermann (using his key 
0xC7A966DD). No offense to the other signers, but I don't even recognize any of their 
names.

Now, I seriously doubt that PRZ is going to take on any fiscal responsibility for a 
security failure during a product order at CDNOW, this at least produces a trust chain 
that gives me *some* warm'n'fuzzy metrics: I once had the brazen temerity, many moons 
ago at his house in Boulder CO, to require Phil to show me some photo identification 
before I'd sign his key 
<http://www.keyserver.net:11371/pks/lookup?op=vindex&template=ensearch,ennomatch,enerror&search=0xC7A966DD>
 with my old RSA key 
<http://www.keyserver.net:11371/pks/lookup?op=vindex&template=ensearch,ennomatch,enerror&search=0x4AAF00E5>.
 Phil was bemused by my enthusiasm at the time, but hey... even back then some of us 
knew the WoT had to start SOMEwhere! ;) However, your average CDNOW customer is not 
likely to have checked PRZ's key personally.

Moving on, CDNOW's key was created on 1994-11-25 which, unless I'm mistaken, was 
before CDNOW even existed(?). Further, the self-signature was not generated on the 
same day as the key-generation, but instead three months later on 1995-03-07. Perhaps 
this may even be an old key of David's which he has repurposed for business use at 
CDNOW: this is not a bad thing in itself, but it does raise more interesting issues 
that are beyond the scope of my little investigation here.

Well, it's obvious where this is going: to use CDNOW's PGP key with the same sort of 
validity assurance as their SSL certificate, some WoT work still needs to be done. 
However, this is still a positive sign, even if it's the work of one old-time PGP-hand 
(David B) who might be working for CDNOW.

For now, I'd recommend that CDNOW spend a little bit of time to do this right:

 0. Provide a very basic PGP Certificate Policy Statement (CPS).

 1. Generate a new Secure Transaction Key (the STK should have an
    expiration date)

 2. Generate a Corporate Signing Key
    (a DH key with no enc subkeys, stored securely and shared to
    3+ corp officers)

 3. Sign the new STK with the CSK

 4. Sign the new STK with the old RSA key (to carry any remaining
    WoT forward)

 5. Revoke the old RSA key and circulate the Key Revocation
    Certificate widely

 6. Get a bunch of people with strong WoT trust connections to sign
    the STK

 7. Get one of the companies that supposedly supports PGP
    (VeriSign/Thawte?) to certify their CSK and STK

 8. Put *all* relevant keys in a single PGP Public Key Block on
    their website (on a PGP-signed page), next to their CPS.



   dave 

Reply via email to