AVISPA入门级教程

补了一篇AVISPA工具安装和使用的教程,需要的朋友烦请移驾:https://blog.csdn.net/qq_33877253/article/details/107111450
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()

你可能感兴趣的:(计算机安全,Crypto,安全逻辑证明)