By Kurt Seifried, [email protected], Copyright Kurt Seifried
Encryption is primarily composed of public / private key systems in the modern world. The main problems with any system to distribute public keys are:
Since you cannot meet every single person you wish to communicate with and verify all the details there is a need for a solution. Public Key Infrastructure allows for distribution (and to some degree management) of public keys, thus allowing people to encrypt/decrypt, sign and verify data from other people. Typically you have trusted 3rd parties (such as Verisign) that have a set of keys that are preinstalled in software (such as web browsers and email clients. Using these keys the third party supposedly checks up on the identity of organizations or people and then signs their public keys, you can verify that signature since the keys required to do so are built into your software (and if you cannot trust your software you've got bigger problems). These 3rd parties also typically run servers that maintain copies of the keys so you can search them, for say "John Parker" entries, and also allow the owner of the key to issue a "revocation" (meaning the key is no longer valid). In a nutshell if Alice trusts Bob, Bob can then verify the identities of Charles and David, Alice can then verify that Charles and David's keys have been okayed by Bob, and use them with a relative degree of safety. Of course the real world is far from perfect. Obtaining encryption keys signed by another party is easy, you can either steal them (most people run Windows and have little or no security enabled), or steal someone's identity and use their personal information to create and register keys without their knowledge (and as digital signature laws come into being this will be a serious problem as the rewards for fraud grow). An excellent paper on these and more problems is available:
C. Ellison and B. Schneier
Computer Security Journal, v 16, n 1, 2000, pp. 1-7.
http://www.counterpane.com/pki-risks.html