| only for RuBoard - do not distribute or recompile |
In the previous chapter, we explored three techniques for establishing and authenticating a person's identity: the use of paper documents, biometrics, and digital signatures. We saw in that chapter that digital signatures had a significant security advantage over the first two systems for e-commerce: because the private key used to "sign" a digital signature is not used by the recipient to verify the signature, digital signatures are not easily subverted by replay attacks. Identity-proving signatures cannot be reused (if the
The use of digital certificates and a public key infrastructure (PKI) are attempts to tie absolute identity to digital signatures. A digital certificate is a special kind of digital signature—it is a digital signature that comes with an identity, which is designed to be interpreted by computers in an automated way. A public key infrastructure is a collection of technologies and policies for creating and using digital certificates. The effectiveness of these systems comes from a
| only for RuBoard - do not distribute or recompile |
| only for RuBoard - do not distribute or recompile |
Digital certificates
(shown in Figure 7-1) allow public key cryptography to be used as a kind of general-purpose identification system. A digital certificate is a signed block of data that contains a public key and other information, such as a person's
In the remainder of this section, we'll use PGP's built-in key management facilities to
In the previous chapter, we showed how to use a PGP public key to verify the signer of a digital signature. In fact, PGP's "public keys" consist of much more than a simple RSA or DSA public key: PGP public keys are actually full-blown digital certificates. In addition to the public key, PGP's "public keys" contain the key holder author's name, email address, and digital signatures of their own. It's these secondary digital signatures that are crucial for using digital signatures as a system for identification.
Think back to the last chapter. In Section 6.3.1, we used the CERT/CC public key to verify the Apache vendor bulletin that was distributed on January 20, 1998. Getting the public key for CERT/CC was relatively easy; we could download it either from their web page or from the PGP key server. And indeed, once we downloaded the key, the bulletin from CERT/CC
This question isn't simply an
As it turns out, we can know quite a bit about the identity of key holders and the authenticity of digital certificates, as long as certain rules and procedures are followed in the creation and protection of these instruments.
When we created the PGP key in the last chapter, PGP prompted us to enter our name and email address. This information was then attached to the key that we created. With this key, we certified our own information.
The ability for people to create and
Alas, PGP's ease of key creation had its own problem: if you
The freedom that was a hallmark of PGP came with a cost: if you were given a person's PGP key, there was no way you could be sure that it belonged to that person.
One way that you can be reasonably sure to get a person's actual PGP key is to get the key from the person himself. In the last chapter, we saw that many individuals and organizations distribute PGP keys from their own web pages. In many cases, if you want to verify the PGP key of someone who is an avid PGP
Most of us start life knowing only a few people—the
How do we know whether to trust the new people that we meet? Most children trust everyone. But as they grow older, they become suspicious. After only a few
One of the strengths of PGP is that it has a system that mimics this community-based approach to trust for helping users to decide if they should trust keys. With PGP, users are able to sign the key certificates of other users. A signature on a key certificate is a promise made by the signer that the key really does belong to the person whose name and email address are listed on the key. If you believe a person's promises, then you are said to trust the key. If you have a key that has a signature (a promise) on it that you believe, then the key is said to be valid .
When you display your key ring with the PGPkeys application, each key appears with an indication of validity and trust:
An indication of whether you believe that the key you have in your possession actually belongs to the person to whom it says it belongs. Keys are valid if you created them or if they are signed with a key that you trust.
A measure of how much you believe the honesty and judgment of the person who holds the key. The more you trust a key, the more you trust the person who created the key to certify other people's keys.
Figure 7-4 shows a window from the PGPkeys application. In this case, the keys for Mr. Test Key, Niche Software, and Philip R. Zimmerman are listed as both valid and trusted. This means that this PGP key ring has signatures on the keys for these individuals who the user (Simson) trusts, and that he trusts other keys signed by these keys. The key from Niche Software is listed as valid but only half trusted; if Simson finds a signature from Niche Software on a key, he will not consider that key to be valid unless there is a second signature on the key that he also trusts. The key from Peter Gutmann is valid but not trusted, which means that Simson thinks the key belongs to Peter Gutmann, but he doesn't trust him to sign other people's keys. There are also five keys that are implicitly trusted: Mr. Test Key, two keys for Simson, and two keys for Vineyard.NET. These keys are implicitly trusted because Simson created them and their private keys are on the private key ring.
When he created PGP, Phil Zimmermann hoped that these casual relationships between key holders would build upon each other to create an ad hoc system for global key certification. Zimmermann then called this system the "Web of Trust" (see Figure 7-5). [1]
[1] More information on the Web of Trust can be found at http://world.std.com/~cme/html/web.html.
Today the Web of Trust is most visible on the PGP key servers. In April 2001, Simson looked up his own key on the PGP public key server. He
[2] If you look up the KeyID of the unknown signer, you will find that it is Randy Antler (
randy @pilot.com). We're not really sure who this is and Simson didn't ever meet him. He signed Simson's key when he downloaded the key to send Simson an email in August 2000. Because this person never met Simson face to face and did not have any real way to attest that the key really belonged to Simson, this signature may beconsidered suspect. It illustrates why you need to be cautious about trusting arbitrary signatures on a key without knowing something about the signer.
Suppose you want to find our keys, but when you connect to the PGP key server you find several keys with our
[3] Actually, if you
consult the servers, you will find two valid keys for each of us: we each have an old-style RSA key and anewer DSS/DH key.
One way that PGP users work to extend the Web of Trust is by holding key signing parties . PGP users will gather, exchange floppy disks or business cards containing their keys, and then show each other their driver's licenses or passports. Having obtained a copy of someone's key and seen an apparently unimpeachable form of identification, people at the key signing party will then sign each other's keys and (usually) upload the signed keys to the key server.
Key signing parties are a lot of fun,
| only for RuBoard - do not distribute or recompile |