CS 513 - System Security
Lecture 12
Lecturer: Professor Fred B. Schneider
Notes by: Vicky Weissman
Lecture Date: 3/7/00
Today's Topics
- Multiple CAs
- Chaining
- Trust Management
- Reasoning about Statements
Multiple CAs
Public key cryptography relies on a CA to distribute public keys.
By using multiple CAs, the cryptosystem can perform well in large networks and can
accommodate principals with different trust requirements.
Multiple CAs - Chaining
Let Kx refer to x's public key.
Given:
2 principals, P and Q, and n certification authorities, CA1, CA2,
..., CAn
where P knows KCA1, CAn has KQ, and each
CA has the public key for the next CA in the sequence
An Algorithm for P to get KQ is:
for i = 1 to (n-1) {use CAi to get KCAi+1}
use CAn to get KQ
Example: Given the public key of the CA responsible for edu/*, get the public key for edu/cornell/fbs.
Use the given key to get the public key for cornell/*. Use the public key for cornell/* to get fbs's public key.
Multiple CAs - Trust Management
The Internet Policy Registration Authority (IPRA) rates CAs according to 3 policy certificate
authority (PCA) classes. The classes are:
- high assurance
- all reachable CAs use strict tests to verify identity before issuing certificates
- designed for military use
- discretionary assurance
- the CA is well-managed, but may be used to access insecure services
- designed for corporate America
- no assurance
- the CA does not issue 2 certificates for the same principal
The level of confidence that a public key is correct corresponds to the least secure rating of any CA used to obtain the key.
Another way to do trust management is called a 'web of trust'. It is implemented by Pretty Good Privacy (PGP). In this approach, each user maintains a set of principals that are trusted to supply correct bindings. (The trusted set can be obtained through personal contact such as key parties.) A binding is valid if it is signed by a trusted principal or by multiple, partially trusted principals.
Reasoning about Statements
Given a statement, S, and 2 principals, P and Q, the following inference rules can be used to reason about a statement's validity:
1. (P controls S) (P said S)
_________________________________________
S
2. {S}P
_______________________________________________
(KP said S) where KP is the key used to sign S
3. (P speaks for Q) (P said S)
_____________________________________
(Q said S)
Example:
Given {x, Kx}CA and {m}x, deduce that x said m
{x, Kx}CA -> (KCA said 'Kx speaks for x') by Rule 2
(and the definition of a binding)
Assuming KCA speaks for CA, CA said 'Kx speaks for x' by Rule 3
Assuming CA controls the binding, 'Kx speaks for x' by Rule 1
{m}x -> (Kx said 'm') by Rule 2
Since Kx speaks for x, x said 'm' by Rule 3
Note: In the above example, -> is a meta-logical operator used to separate the hypotheses from the conclusion of an inference rule.