[Avispa-users] Why agent A use intruder's public key?
m_barho at encs.concordia.ca
m_barho at encs.concordia.ca
Sat Aug 21 05:54:27 EDT 2010
Hello All
when i compiled the following example from AVISPA manual:
%A -> B: {Na.A}_Kb
%B -> A: {Nb.xor(Na,B)}_Ka
%A -> B: {Nb}_Kb
role alice (A,B : agent,
Ka,Kb : public_key,
Snd,Rcv : channel (dy)) played_by A def=
local
State : nat,
Na : message,
Nb : text
init State := 0
transition
1. State = 0 /\ Rcv(start) =|>
State':= 1 /\ Na' := new() /\ Snd({Na'.A}_Kb)
/\ witness(A,B,bob_alice_na,Na')
/\ secret(Na',na,{A,B})
2. State = 1 /\ Rcv({Nb'.xor(Na,B)}_Ka) =|>
State':= 2 /\ Snd({Nb'}_Kb)
/\ wrequest (A,B,alice_bob_nb,Nb')
end role
%??????????????????????????????????????????
role bob (B,A : agent,
Kb,Ka : public_key,
Snd,Rcv : channel (dy)) played_by B def=
local
State : nat,
Na : message,
Nb : text
init State := 0
transition
1. State = 0 /\ Rcv({Na'.A}_Kb) =|>
State':= 1 /\ Nb' := new() /\ Snd({Nb'.xor(Na',B)}_Ka)
/\ witness(B,A,alice_bob_nb,Nb')
/\ secret(Nb',nb,{A,B})
2. State = 1 /\ Rcv({Nb}_Kb) =|>
State':= 2 /\ wrequest(B,A,bob_alice_na,Na)
end role
%??????????????????????????????????????????
role session (A,B: agent,
Ka, Kb : public_key) def=
local SA, RA, SB, RB: channel (dy)
composition
alice(A,B,Ka,Kb,SA,RA)
/\ bob(B,A,Kb,Ka,SB,RB)
end role
%??????????????????????????????????????????
role environment() def=
const
a, b, i : agent,
ka, kb, ki : public_key,
bob_alice_na,
alice_bob_nb,
na, nb : protocol_id
intruder_knowledge = {a,b,i,ka,kb,ki,inv(ki)}
composition
session(a,b,ka,kb)
/\ session(a,i,ka,ki)
end role
%??????????????????????????????????????????
goal
weak_authentication_on alice_bob_nb
weak_authentication_on bob_alice_na
secrecy_of na, nb
end goal
%??????????????????????????????????????????
environment()
it shows the following attack:
ATTACK TRACE
i -> (a,6): start
(a,6) -> i: {Na(1).a}_ki
i -> (b,3): {Na(1) XOR i XOR b.a}_kb
(b,3) -> i: {Nb(2).Na(1) XOR i}_ka
i -> (a,6): {Nb(2).Na(1) XOR i}_ka
(a,6) -> i: {Nb(2)}_ki
i -> (i,17): Nb(2)
i -> (i,17): Nb(2)
What i don't understand, why do agent A encrypts the first message
using intruder's public key, while he wants to talk to B and he knows
the B's public key? Can anyone help?
Regards,
Malek
More information about the Avispa-users
mailing list