Proverif
文章平均质量分 71
eotteon__ireum
要成为有趣的大人.
展开
-
【Proverif语法(七)】
解决中间人攻击(* Symmetric key encryption *)type key.fun senc(bitstring, key): bitstring.reduc forall m: bitstring, k: key; sdec(senc(m,k),k) = m.(* Asymmetric key encryption *)type skey.type pkey.fun pk(skey): pkey.fun aenc(bitstring, pkey): bitstr原创 2021-07-23 17:08:19 · 1160 阅读 · 1 评论 -
【Proverif语法(六)】
Proverif的输出结果Attack Derivation:解释攻击者为了破坏性质必须采取的行动。Attack Trace:能够在输入文件所给出的进程中执行的trace。输出的三种结果:true:结果被证实了,攻击没有发生,不会输出[Attack derivation]和 [Attack trace]。false:性质被证伪了,输出[Attack derivation]和 [Attack trace],主要关注 [Attack trace]。cannot be proved:性质证原创 2021-07-21 20:42:33 · 600 阅读 · 0 评论 -
【Proverif语法(五)】
握手协议的保密性和认证性event acceptsClient(key):客户端接受了【使用收到的key和服务器交互】这件事。 eventacceptsServer(key,pkey):服务器接受了【使用key和公钥为pkey的客户端交互】这件事。 eventtermClient(key,pkey):客户端认为已经完成了【使用key为会话密钥以及pkey作为客户端公钥,和服务器运行协议】这件事。event termServer(key):服务器认为已经完成了【使用key作为会话密钥,和客户端运行协原创 2021-07-20 16:39:39 · 756 阅读 · 0 评论 -
【Proverif语法(四)】
进程宏进程宏(Process Macros)用来定义子进程,因为在用ProVerif对协议进行建模时,直接一个大的主进程比较混乱,进程宏的形式为:let R(x1:t1,...,xn:tn)=P.其中 R 是宏的名字, P是子进程, x 1 , . . . , x n x_1,…,x_n x1,…,xn是 P 里面的free变量,当使用这个宏时(原文叫macro expansion)就把使用时的参数传进去了。例子(*process macrocs*)free c:channe原创 2021-07-15 22:25:42 · 568 阅读 · 0 评论 -
【Proverif语法(二)】
命令行执行proverif xxx.pv例子(* test.pv:可达性学习*)free c:channel.free Id:bitstring [private].free Pa:bitstring [private].query attacker(Id).query attacker(Pa).process out(c,Id). 0原创 2021-07-13 21:13:01 · 839 阅读 · 3 评论 -
【Proverif语法(三)】
ProVerif验证的加密协议并发程序通过公共通道来进行信息较交互,最终实现一些目标。认为攻击者对这样的通道有完全的控制能力,包括阅读、修改、删除和注入消息,也可以解密自己持有密钥的消息(视解密为获取密文的唯一途径,不考虑攻击者用其它方式获取密文,所以如果自己没有解密的密钥就不行)。...原创 2021-07-14 21:04:14 · 532 阅读 · 0 评论 -
【Proverif语法学习(一)】
1.声明(declaration)1.1 声明变量格式:type t.free n:t. 表示n的类型是t,free是关键词,表示公开的,是可以被攻击者获取的。如果不想被攻击者获取,则需要声明为私密的,关键词为private,格式如下:free n:t [private].1.2 声明函数格式:fun f(t1,…,tn):t.f是关于n的函数构造器,t是该函数f的返回值类型,t1…tn是函数f的自变量。fun f(t1,…,tn):t [private]. 表示攻击者无法获取由函原创 2021-07-13 20:26:50 · 1271 阅读 · 1 评论