AVISPA入門級教程

AVISPA證明實例請參考我的另一篇博文:https://blog.csdn.net/qq_33877253/article/details/105096479
注:basic role 命名時必須得寫成role_…

注:參變量首字母必須大寫

注:def和=中間不能有空格

一、參與者

role role-name (類型化參數) played_by player def =
local %本地變量
const %常量
init %初始化變量
transition %轉換
end role
  1. basic role
    記錄模型中不同類型的角色的行動。
    (dy) : 此信道考慮了攻擊模型。
    nat : 自然數
    transition: 記錄事件觸發的先決條件和觸發後的動作。
%如
step1. State = 0 /\ RCV({Kab’}_Kas) =|>
		State’:= 2 /\ SND({Kab’}_Kbs)
%step1:transition的名字,主要用於區分不同的transition,沒有實際用處
%X'表示變量X的新值
%發送的消息由Kbs加密,意味着只有擁有Kbs的對象才能收到該消息
  1. composed role
    composed role用於實例化basic roles,將多個basic roles連接在一起,組成會話。
    composed role沒有transition模塊,它的composition模塊用於實例化basic role
%如
role session(A,B,S : agent,
Kas, Kbs : symmetric_key) def=
local SA, RA, SB, RB SS, RS: channel (dy))
composition
alice (A, B, S, Kas, SA, RA)
/\ bob (B, A, S, Kbs, SB, RB)
/\ server(S, A, B, Kas, Kbs, SS, RS)
end role
%SA A的發送器
%RA A的接收器
  1. environment
    包含多個會話,其中攻擊者可能會裝作是合法用戶。
role environment()
def=
const a, b, s : agent,
kas, kbs, kis : symmetric_key
intruder_knowledge = {a, b, s, kis} %攻擊者知道的知識
composition
session(a,b,s,kas,kbs)
/\ session(a,i,s,kas,kis)
/\ session(i,b,s,kis,kbs)
end role
% i爲攻擊者
  1. 執行
environment()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章