The secondary goal is to give the semantics of formal models. Last time we looked at the BAN logic from syntactic point of view. We learn a particular algebraic way to determine a given protocol is secure, and a way based on state machine to analyze security protocols.
Here is a list of approaches.
Ex | Encryption function for user X |
Dx | Decryption function for user X |
A -> Z(B): (A, EB(M), B) | % Z intercepts message from A |
Z -> B: (Z, EB(M), B) | % Z sticks Z in for A |
B -> Z: (B, EZ(M), Z) | % B follows its protocol |
Z: decrypts EZ(M) to get M |
a. A-> B: (A, EB(MA), B) |
b. B-> A: (B, EA(MB), A) |
a. A->B: (A, EB(EB(M)A), B) |
b. B->A: (B,EA(EA(M)B), A) |
1. B->Z(A): (B,EA(EA(M)B),A) | % Let M' = Ea(M)B |
% Z extracts EA(M') | |
2. Z->A: (Z, EA(EA(M')Z),A) | % Z starts protocol with A |
3. A->Z: (A, EZ(EZ(M')Z),Z) | % A responds accordingly. |
% Z now has Ez(M'). | |
4. Z->A: (Z, EA(EA(M)Z),A) | % Z starts protocol with A again |
5. A->Z: (A, EZ(EZ(M)Z),Z) | % A responds accordingly. |
% Z discovers M. | |
1. Cascade Protocols (like Example 1) are secure iff
For example, consider the protocol:
X->Y: EyDx M | |
Y->X: ExDyExExDyEyDx M | % or simply ExDyExM |
A protocol is insecure
if there exists some sting G in (S(Z) cup S2 cup S3)* such that
A -> Z(B): (A, EB(M), B) | % Z intercepts message from A |
Z -> B: (Z, EB(M), B) | % Z sticks Z in for A |
B -> Z: (B, EZ(M), Z) | % B follows its protocol |
Z: decrypts EZ(M) to get M |
A user Y can do any of these operations to a string G
a. encrypt Ex | |
b. decrypt Dy | |
c. append ix: | ix G = GX |
d. name-match dx: | dx G = head(G) if tail(G)=x |
e. delete d: | dG = head(G) |
ExDx = DxEx = 1 | |
dxix = dix = 1 | % but ixdx is not equal to 1 |
Consider Example 3 again. It has the following sets of strings.
GN2 | = DzdDz EzixEz DxdzDx Exizd DzdDz EzixEz DxdzDx Exiz ExiyEx |
= Dzd ixEz Dxdz izd Dzd ixEz Dxdz iz ExiyEx | |
= Dz Ez Dx d Dz Ez Dx ExiyEx | |
= Dx d iyEx | |
= Dx Ex | |
= empty string |
According to [BAN89], knowledge and belief logics are incomparable.
A good run is one in which initial beliefs are initially true.
Model of computation is more general than Abadi-Tuttle
Syntax of protocols in terms of terms (as in Dolev-Yao)
Semantics in terms of state machines