Cryptography 08
Cryptography 08
Spring 2006
http://www.abo.fi/~ipetre/crypto/
Ion Petre
Academy of Finland and
Department of IT, Åbo Akademi University
One problem we went over too quickly: if Alice and Bob do not know
each other, how do they get each other’s public key to communicate
with each other?
Solution 1: append your public key (e.g., for PGP) to the end of your
email
Attack: emails can be forged – Eve sends an email to Bob pretending
she is Alice and handing him a public key, supposedly Alice’s; she will be
able to communicate with Bob pretending she is Alice
Solution 2: post it on your website
Attack: Eve breaks into the DNS server and sends Alice a fake webpage
purportedly of Bob’s
Alice encrypts the message using that public key and Eve will be able to
read it; Eve may even modify the message and forwards it to Bob using
his public key
For any communication between any two users, the central authority
must be consulted by both users to get the newest public keys
The central authority must be online 24 hours/day
If the central authority goes offline, all secure communications halt
This clearly leads to an undesirable bottleneck
Alice finds Bob’s certificate signed by CA5 – Alice has never heard of CA5
Alice asks CA5’s certificate: CA5 is certified by RA2
Alice asks RA2’s certificate: RA2 is certified by the root: everything on the chain is legitimate
Question: How does Alice finds root’s public key?
Answer: it is assumed that everybody knows root’s public key
The browser may have it built in
Better implementation: Bob collects himself the certificates of CA5 and RA2 and makes them available
to save Alice the trouble
Alice does not need to contact anybody now: all the certificates are signed and she can detect any tampering
Problem: Who is running the root?
Solution: have more than one root, each with its own RAs and CAs
Modern browsers come preloaded with the public keys for over 100 roots (trust anchors)
Problem: The user should trust the browser vendor to make wise choices and not simply approve all
trust anchors willing to pay the inclusion fee
Solution: Most browsers allow users to inspect trust anchors and remove any that may seem shady
Problem: Inconvenient for each user to store his certification path and all certificates
Possible solution: Have the DNS return Bob’s IP address together with all his certificates