| author | wenzelm | 
| Wed, 10 Mar 1999 10:55:12 +0100 | |
| changeset 6340 | 7d5cbd5819a0 | 
| parent 6335 | 7e4bffaa2a3e | 
| child 11185 | 1b737b4c2108 | 
| permissions | -rw-r--r-- | 
| 3445 | 1 | (* Title: HOL/Auth/Yahalom2 | 
| 2111 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 2 | ID: $Id$ | 
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 3 | Author: Lawrence C Paulson, Cambridge University Computer Laboratory | 
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 4 | Copyright 1996 University of Cambridge | 
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 5 | |
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 6 | Inductive relation "yahalom" for the Yahalom protocol, Variant 2. | 
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 7 | |
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 8 | This version trades encryption of NB for additional explicitness in YM3. | 
| 3432 | 9 | Also in YM3, care is taken to make the two certificates distinct. | 
| 2111 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 10 | |
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 11 | From page 259 of | 
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 12 | Burrows, Abadi and Needham. A Logic of Authentication. | 
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 13 | Proc. Royal Soc. 426 (1989) | 
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 14 | *) | 
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 15 | |
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 16 | Yahalom2 = Shared + | 
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 17 | |
| 3519 
ab0a9fbed4c0
Changing "lost" from a parameter of protocol definitions to a constant.
 paulson parents: 
3481diff
changeset | 18 | consts yahalom :: event list set | 
| 
ab0a9fbed4c0
Changing "lost" from a parameter of protocol definitions to a constant.
 paulson parents: 
3481diff
changeset | 19 | inductive "yahalom" | 
| 2111 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 20 | intrs | 
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 21 | (*Initial trace is empty*) | 
| 3519 
ab0a9fbed4c0
Changing "lost" from a parameter of protocol definitions to a constant.
 paulson parents: 
3481diff
changeset | 22 | Nil "[]: yahalom" | 
| 2111 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 23 | |
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 24 | (*The spy MAY say anything he CAN say. We do not expect him to | 
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 25 | invent new nonces here, but he can also use NS1. Common to | 
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 26 | all similar protocols.*) | 
| 6335 | 27 | Fake "[| evs: yahalom; X: synth (analz (knows Spy evs)) |] | 
| 3519 
ab0a9fbed4c0
Changing "lost" from a parameter of protocol definitions to a constant.
 paulson parents: 
3481diff
changeset | 28 | ==> Says Spy B X # evs : yahalom" | 
| 2111 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 29 | |
| 6335 | 30 | (*A message that has been sent can be received by the | 
| 31 | intended recipient.*) | |
| 32 | Reception "[| evsr: yahalom; Says A B X : set evsr |] | |
| 33 | ==> Gets B X # evsr : yahalom" | |
| 34 | ||
| 2111 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 35 | (*Alice initiates a protocol run*) | 
| 5434 
9b4bed3f394c
Got rid of not_Says_to_self and most uses of ~= in definitions and theorems
 paulson parents: 
5359diff
changeset | 36 | YM1 "[| evs1: yahalom; Nonce NA ~: used evs1 |] | 
| 3659 
eddedfe2f3f8
Renamed "evs" to "evs1", "evs2", etc. in protocol inductive definition
 paulson parents: 
3519diff
changeset | 37 |           ==> Says A B {|Agent A, Nonce NA|} # evs1 : yahalom"
 | 
| 2111 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 38 | |
| 6335 | 39 | (*Bob's response to Alice's message.*) | 
| 5434 
9b4bed3f394c
Got rid of not_Says_to_self and most uses of ~= in definitions and theorems
 paulson parents: 
5359diff
changeset | 40 | YM2 "[| evs2: yahalom; Nonce NB ~: used evs2; | 
| 6335 | 41 |              Gets B {|Agent A, Nonce NA|} : set evs2 |]
 | 
| 3432 | 42 | ==> Says B Server | 
| 43 |                   {|Agent B, Nonce NB, Crypt (shrK B) {|Agent A, Nonce NA|}|}
 | |
| 3659 
eddedfe2f3f8
Renamed "evs" to "evs1", "evs2", etc. in protocol inductive definition
 paulson parents: 
3519diff
changeset | 44 | # evs2 : yahalom" | 
| 2111 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 45 | |
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 46 | (*The Server receives Bob's message. He responds by sending a | 
| 3659 
eddedfe2f3f8
Renamed "evs" to "evs1", "evs2", etc. in protocol inductive definition
 paulson parents: 
3519diff
changeset | 47 | new session key to Alice, with a certificate for forwarding to Bob. | 
| 5066 
30271d90644f
Changed format of Bob's certificate from Nb,K,A to A,B,K,Nb.
 paulson parents: 
4537diff
changeset | 48 | Both agents are quoted in the 2nd certificate to prevent attacks!*) | 
| 5434 
9b4bed3f394c
Got rid of not_Says_to_self and most uses of ~= in definitions and theorems
 paulson parents: 
5359diff
changeset | 49 | YM3 "[| evs3: yahalom; Key KAB ~: used evs3; | 
| 6335 | 50 |              Gets Server {|Agent B, Nonce NB,
 | 
| 51 | 			   Crypt (shrK B) {|Agent A, Nonce NA|}|}
 | |
| 3659 
eddedfe2f3f8
Renamed "evs" to "evs1", "evs2", etc. in protocol inductive definition
 paulson parents: 
3519diff
changeset | 52 | : set evs3 |] | 
| 2111 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 53 | ==> Says Server A | 
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 54 |                {|Nonce NB, 
 | 
| 2516 
4d68fbe6378b
Now with Andy Gordon's treatment of freshness to replace newN/K
 paulson parents: 
2451diff
changeset | 55 |                  Crypt (shrK A) {|Agent B, Key KAB, Nonce NA|},
 | 
| 5066 
30271d90644f
Changed format of Bob's certificate from Nb,K,A to A,B,K,Nb.
 paulson parents: 
4537diff
changeset | 56 |                  Crypt (shrK B) {|Agent A, Agent B, Key KAB, Nonce NB|}|}
 | 
| 3659 
eddedfe2f3f8
Renamed "evs" to "evs1", "evs2", etc. in protocol inductive definition
 paulson parents: 
3519diff
changeset | 57 | # evs3 : yahalom" | 
| 2111 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 58 | |
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 59 | (*Alice receives the Server's (?) message, checks her Nonce, and | 
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 60 | uses the new session key to send Bob his Nonce.*) | 
| 5434 
9b4bed3f394c
Got rid of not_Says_to_self and most uses of ~= in definitions and theorems
 paulson parents: 
5359diff
changeset | 61 | YM4 "[| evs4: yahalom; | 
| 6335 | 62 |              Gets A {|Nonce NB, Crypt (shrK A) {|Agent B, Key K, Nonce NA|},
 | 
| 63 | X|} : set evs4; | |
| 3659 
eddedfe2f3f8
Renamed "evs" to "evs1", "evs2", etc. in protocol inductive definition
 paulson parents: 
3519diff
changeset | 64 |              Says A B {|Agent A, Nonce NA|} : set evs4 |]
 | 
| 
eddedfe2f3f8
Renamed "evs" to "evs1", "evs2", etc. in protocol inductive definition
 paulson parents: 
3519diff
changeset | 65 |           ==> Says A B {|X, Crypt K (Nonce NB)|} # evs4 : yahalom"
 | 
| 2111 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 66 | |
| 2155 | 67 | (*This message models possible leaks of session keys. The nonces | 
| 68 | identify the protocol run. Quoting Server here ensures they are | |
| 69 | correct. *) | |
| 5359 | 70 | Oops "[| evso: yahalom; | 
| 2155 | 71 |              Says Server A {|Nonce NB, 
 | 
| 2284 
80ebd1a213fd
Swapped arguments of Crypt (for clarity and because it is conventional)
 paulson parents: 
2155diff
changeset | 72 |                              Crypt (shrK A) {|Agent B, Key K, Nonce NA|},
 | 
| 3659 
eddedfe2f3f8
Renamed "evs" to "evs1", "evs2", etc. in protocol inductive definition
 paulson parents: 
3519diff
changeset | 73 | X|} : set evso |] | 
| 4537 
4e835bd9fada
Expressed most Oops rules using Notes instead of Says, and other tidying
 paulson parents: 
3683diff
changeset | 74 |           ==> Notes Spy {|Nonce NA, Nonce NB, Key K|} # evso : yahalom"
 | 
| 2111 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 75 | |
| 
81c8d46edfa3
New version of Yahalom, as recommended on p 259 of BAN paper
 paulson parents: diff
changeset | 76 | end |