6edbe4c835f01ab25308ac3a21f6675af2790e1c
[ach-master.git] / src / PKIs.tex
1 \section{Public Key Infrastructures}
2
3 Public-Key Infrastructures aim to provide a way to simplify the
4 verification of a certificate's trustworthiness.  In general, if the
5 authenticity of a given public key is to be established by a user (say,
6 Alice), it is necessary to contact the owner (say, Bob) of the public key
7 directly and compare the public key's fingerprint.  This, obviously, is
8 cumbersome and does not scale.
9
10 In practice, there are two approaches to address this scale-out problem.
11 Both solutions are based on the assumption that Alice can delegate the
12 verification of the authenticity of a given public key to another party
13 (say, Trent).  This requires that Alice have a certain amount of faith in
14 Trent.  In particular, she must trust him to do a proper job when verifying
15 authenticity.
16
17 The first approach to help the scale-out problem puts a little more work on
18 Alice's and Bob's shoulders.  The idea is that every user can act as a
19 trusted third party to verify the authenticity of other users' public keys.
20 If a number of other users have verified and signed off on the authenticity
21 of Bob's public key, then Alice can be somewhat confident in the
22 authenticity as well.  Obviously, the more users have verified and signed
23 any given public key, the more trustworthy that key becomes; this concept
24 is called a ``Web of Trust.''  On the other hand, this means that in order
25 for a public key to become reasonably trustworthy in practice, it is
26 necessary that a fairly large number of users need to verify its
27 authenticity.  This is where the additional work for Alice and Bob comes
28 in: For the entire scheme to work, it is necessary that a sufficiently
29 large number of users generally participate in cross-verification and
30 signing.  The number of signatures needed to obtain a given level of
31 confidence in the authenticity of a public key also depends on how good a
32 job participating users on average do when verifying keys.  Thus, the more
33 knowledgeable, experienced and accurate users are expected to be in terms
34 of key verification, the fewer signatures are necessary.  In particular,
35 there is no practical way to set common standards for verification.
36
37 The other approach to solve the problem of scale-out introduces a
38 structured and organized set of trusted third parties called
39 ``Certification Authorities'' (CAs).  CAs offer verification services to
40 all users, adhering to a published set of standard rules and procedures.
41 Of course, each CA is free to specify its own standard operating
42 procedures, which generally are referred to as ``Certification Practice
43 Statement''\footnote{\url{http://en.wikipedia.org/wiki/Certification_Practice_Statement}}
44 (CPS) and denotes the rules that the CA adheres to when verifying the
45 authenticity of public keys.  When the authenticity of a public key has
46 been established in accordance to the CA's CPS, it may issue a certificate,
47 which is essentially the public key, usually combined with some
48 meta-information about the owner of the key, and the CA's cryptographic
49 signature by which the CA assures the accuracy of the information contained
50 in the certificate.  Therefore, if Alice is sufficiently convinced that a
51 given CA is doing a proper job of verification in accordance with its
52 published CPS and the CPS are sufficiently strict so that Alice feels
53 comfortable with the level of assurance they provide, then Alice may
54 consider all public keys that that CA has issued certificates for as
55 authentic.  This reduces the work that Alice has to do to verify $n$~public
56 keys from $n$~verifications (one per other user) to just one verification
57 (that to verify the authenticity of the CA's public key).  Accepting a CA
58 as a generally-trusted mediator therefore solves the scaling problem at the
59 cost of introducing an actor that magically is more trustworthy.
60
61
62
63 %``Certification
64 %Policy''\footnote{\url{http://en.wikipedia.org/wiki/Certificate_Policy}}
65 %(CA)