Public Key Infrastructure Levi Broderick April 18, 2006 05-899 / 17-500 – USABLE PRIVACY & SECURITY – CRANOR, HONG, REITER The need for PKI Meet Alice. She has a secret that she wants to send to Bob. Meet Bob. He looks forward to talking with his good friend Alice. The need for PKI Alice and Bob can use a secret key (symmetric cryptography) to communicate over the public channel. They must have agreed on this key in advance. The need for PKI ? But what if Alice and Bob had never spoken before? Can Alice still send him a secure communication? This is the primary focus of PKI. Communication under PKI Both Alice and Bob have their own individual private and public keys signed by a certificate authority. The CA might be an employer, Verisign, or some other organization. Communication under PKI All communicating parties must have each others’ public keys. Public keys must have a common ancestor to be considered valid. Alternatively, some PKI implementations (Lotus Notes, Groove Virtual Office, etc.) allow CAs outside the local network to be individually trusted. Communication under PKI Company XYZ Mary Jane Allen Development dept. head Linda Clay Marketing dept. head Freddy Hale Supervisor Ulysses Applegate Supervisor Peter Jacobson Jill Tyson Tyrone King Supervisor Jason Peters Asst. Supervisor Kenneth Blue Sheryl Song Jordan Lewis Peter and Ulysses can communicate since they share Mary Jane as an ancestor. Jill and Sheryl can communicate since they share a root element. Communication under PKI Bob’s public key Alice’s public key The public key is used for encryption and digital signature verification. The private key is used for decryption and the creation of digital signatures. X.509 certificates ITU-T standard for PKI V3 described in RFC 3280 Certificate authority issues binding certificate between public key and name (URI, email, etc.) Includes validation and revocation policy Certificate Revocation List (CRL) Online Certificate Status Protocol (OCSP) X.509 certificates V3 certificate includes: Issuing agency information Subject information Period of validity ... Cryptographic signature For root CAs, the issuing agency and the subject of the certificate are the same. X.509 certificates amazon.com name X.509 certificate public key X.509 hierarchy issuer GTE Cybertrust Global Root Comodo Class 3 Security Services CA Microsoft Internet Authority www.cmu.edu Microsoft Secure Server Authority www.microsoft.com www.buy.com (a248.e.akamai.net) update.microsoft.com subject And a demonstration . . . Non-repudiation Non-repudiation and repudiation of signatures involved in legal practice for untold generations. Traditional paper signatures may be repudiated: False signature Real signature, but extenuating circumstances Unconscionable conduct / inequality of bargaining power Fraud Undue influence, or signature made under duress Source: http://firstmonday.org/issues/issue5_8/mccullagh/index.html Non-repudiation Increasing legislation to allow digital signatures to serve as legally binding. Non-repudiation as applied to digital signatures: Provides proof of the integrity and origin of data, both unforgeable, which can be verified by any third party at any time. An authentication that with high assurance can be asserted to be genuine and that cannot subsequently be refuted. Thoughts? Comments? Source: http://firstmonday.org/issues/issue5_8/mccullagh/index.html Non-repudiation Carl Ellison speaks out: It is not achievable. The private key provided the signature, not the human. No provable link exists between the person and the computer. It is counter to consumer protection law. Transfers liability from the merchant to the consumer. Corollary: E-commerce will suffer since repudiation guaranteed by creditors becomes nonexistent. Source: http://world.std.com/~cme/non-repudiation.htm Non-repudiation Carl Ellison continues to speak out: It circumvents contract practice and law. When does the user ever publicly acknowledge that he stands behind the signatures created with the private key? It conflicts with good key management. If there exists no audit log, the user is likely to discover a compromised key when another party in a transaction reveals use of the key and demands further action. Source: http://world.std.com/~cme/non-repudiation.htm X.509 certificate revocation Sometimes a certificate needs to be invalidated before its natural expiration date Private key compromised Employee fired from company issuing certificate Two main ways to revoke an X.509 certificate: Certificate Revocation List (CRL) Online Certificate Status Protocol (OCSP) CRLs Requires database of all invalidated, unexpired certificates. Two models Verifier queries this database whenever he wants to see whether a certificate has been revoked. Pull model: Verifier downloads CRL from CA as needed. Push model: CA sends CRL to verifiers at regular intervals. Problems? Source: http://www.rsasecurity.com/rsalabs/node.asp?id=2283 CRLs Problems similar to blacklists with credit card companies Database is periodically pruned, but still very large Time delay between certificate being revoked and revocation being published in CRL Widely-used CRLs have too many verifiers to be able to effectively use the “push” method. Susceptible to DOS attacks Is the software default to accept or reject the certificate? Sources: 18-730 (Reiter), http://www.imc.org/ietf-pkix/old-archive-01/msg02256.html OCSP RFC 2560 Request / response protocol Verifier receives up-to-the-minute status info Status list parsed server-side Responder only sends back relevant info, reducing traffic Responder may require requests to be signed Allows for billing mechanisms to be put into place Still vulnerable to DOS attacks Source: http://www.openvalidation.org/whatisocsp/whatocsp.htm Encrypting email with PKI Lotus Notes/Domino makes it easy to encrypt messages because of its use of PKI. Encrypting email with PKI If the key exists locally, encrypt and send the message. If not, contact LDAP server and download key. Encrypting email with PKI If key is signed by the CA, not revoked, and owner is correct: Save to local keyring Encrypt message and send If incorrect owner, revoked, or unsigned, error out. Encrypting email with PKI Behind-the-scenes look & demonstration . . . Problems with PKI System was originally envisioned as encompassing entire globe. Would require one root CA or a specific and unchanging list for each government. Governments are fickle and don’t like to trust each other. Additionally, Balfanz, Durfee, and Smetters identify four usability problems with PKI. Problems with PKI Public-key cryptography is counterintuitive. What on earth are public and private keys? What is a certificate? PKI seems too far removed from application goals. Users do not understand how their tasks require PKI. PKI tasks are too cumbersome. Large CAs run into naming collisions. Users shoulder the burden of ensuring that the person they’re looking up is indeed the person they want. Source: Security and Usability, ch. 16. SPKI (Simple PKI) Similar to X.509, but names are local rather than global. Certificates are used to bind authorizations rather than identities to public keys. Possible uses (from RFC 2692): Grants permission to write electronic checks. Digital marriage license / divorce decree. DC Metro farecard Proof of degree earned (M.D., Ph.D., etc.) Permission to issue nuclear launch codes Thoughts? Source: http://theworld.com/~cme/html/spki.html PGP’s Web of Trust Public / private keys with an attached name, email address, and optional photo. No centralized CA to sign keys. PGP users sign keys when they’ve verified the owner’s identity, so in essence each PGP user is acting as a CA. Your trust of a public key is related to how many signing “hops” you are away from that key and how much you trust each signer along the route. Decentralized key distribution – users send keys. Key servers have popped up to fill the role of the CA in key distribution. PGP’s Web of Trust PGP’s Web of Trust PGP’s Web of Trust Makes key management issues very apparent Web of trust depends on end users verifying and signing large quantities of keys. Does a user understand what type of commitment he makes by signing a key? Just how much trust is placed in a key 3 hops away? What about 4 hops? Trust disappears after a default of 2 hops, maximum 8 hops (PGP 9.0). Thoughts? Robot CAs Public / private keys without a central CA. Robot is a trusted, neutral third party whose signatures provide some validation for email addresses: 1. 2. 3. User uploads public key to robot CA. Robot signs key and sends encrypted signature to email address present in public key. Recipient decrypts message to retrieve signed key, then redistributed public key with robot’s signature attached. Effectively invalidates signatures on keys not belonging to the email addresses listed for them. Source: http://jameshoward.us/Robot_Certificate_Authority Robot CAs Attempts to solve some of the key management issues in PGP: If key verifier’s software automatically places trust in the robot’s signature, then keys can be downloaded from a key server automatically by the email client. Burden is on the key creator to get the key signed by robot. Process can probably be automated even at the creation end with the right software. Thoughts? The fun part! Groove Virtual Office demo . . . www.groove.net