
ProVerif
文章平均质量分 94
ProVerif学习笔记。
大桔骑士v
微软程序员,B站账号:大桔骑士v
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【ProVerif学习笔记】8:更多密码学特性
1 扩展的destructor将解构器的能力扩展,现在它可以被定义为:相当于有一系列的重写规则(rewrite rule),对于实际拿到的一个析构操作,到析构器里从上到下看,如果某一条重写规则是可应用的(applied,其实就是命中了这条规则,就是所有的项都能正确的match上),那么就用这条规则。如果所有的重写规则都遍历完一遍没有能应用上的,那么这个destructor就失败(fail)了。比如对于:在这个定义下,eq(M, N)都是string并且是同一个东西的时候被规约成true,都是st原创 2021-05-16 19:32:39 · 1271 阅读 · 0 评论 -
【ProVerif学习笔记】7:基本建模特性
1 constants常量(constant)可以用参数量为0的函数(fun关键字声明的,在ProVerif里其实应该叫constructor )来表示,也就是有一个类型名有一个返回值类型(就是常量的类型),也可以直接用const关键字来描绘常量。const c1, ... , ck : t.2 data constructors和type conversion2.1 [data]constructor就是用fun声明的函数,用来对一系列数据做构造。data constructor是一种将构造器原创 2021-05-06 00:24:31 · 1462 阅读 · 1 评论 -
【ProVerif学习笔记】6:握手协议(handshake protocol)建模
这节先不继续往下看,巩固一下对ProVerif建模握手协议的理解。握手协议的流程如下:ex_handshake.pv(只验证保密性)手册里在引入security性质之前,握手协议的模型如下:(* ------------------------对称加密相关------------------------ *)(* 对称密钥 *)type key.(* 对称加密:传入要加密的内容和密钥,返回加密结果 *)fun senc(bitstring, key): bitstring.(* 对称解密原创 2021-05-04 13:26:26 · 2244 阅读 · 5 评论 -
【ProVerif学习笔记】5:理解验证后的输出
ProVerif的输出比较长,格式如下:其中[Equations][Equations][Equations]给出了涉及的等式的内部表示。[Process][Process][Process]给出了将所有的进程宏展开之后的进程,在进程里面会看到一些标号为{n}\{n\}{n}的地方,这只是为了方便引用。[Query][Query][Query]部分就是开始评估用户给出的性质查询(对应输入文件中的query),也就是试图证明违反性质的状态是不可达的,然后在[Goal][Goal][Goal]这一行就会显示原创 2020-08-14 23:23:17 · 2024 阅读 · 4 评论 -
【ProVerif学习笔记】4:信息安全性质(Security Property)
1 Reachability和Secrecy证明Reachability是最基本的能力,因为需要知道攻击者能访问到哪些term,而Secrecy就可以根据这个来评估——能访问到的term不满足Secrecy。要测试项MMM在模型中是否满足Secrecy,在主进程前使用:query attacker(M).\bold{query} \ \ attacker(M).query attacker(M).其中MMM是一个最基本的项,即不包含析构器,MMM可以包含原创 2020-08-13 16:13:45 · 2339 阅读 · 0 评论 -
【ProVerif学习笔记】3:进程宏和进程书写的语法规则
1 进程宏进程宏(Process Macros)用来定义子进程,因为在用ProVerif对协议进行建模时,直接一个大的主进程比较混乱,进程宏的形式为:let R(x1:t1,...,xn:tn)=P.\bold{let} \ \ R(x_1:t_1,...,x_n:t_n)=P.let R(x1:t1,...,xn:tn)=P.其中RRR是宏的名字,PPP是子进程,x1,...,xnx_1,...,x_nx1,...,xn是PPP里面的fre原创 2020-08-12 19:12:29 · 2443 阅读 · 3 评论 -
【ProVerif学习笔记】2:协议建模中的声明
ProVerif验证的加密协议并发程序通过公共通道来进行信息较交互,最终实现一些目标。认为攻击者对这样的通道有完全的控制能力,包括阅读、修改、删除和注入消息,也可以解密自己持有密钥的消息(视解密为获取密文的唯一途径,不考虑攻击者用其它方式获取密文,所以如果自己没有解密的密钥就不行)。1 握手协议握手协议(Handshake protocol)是有一个客户端A和服务器B,假设每一方都有自己的公私钥对,然后A知道B的公钥pk(skB),协议的目的是让客户端A能向服务器B分享自己的私密信息s。协议按照如下的原创 2020-08-11 20:26:08 · 2618 阅读 · 2 评论 -
【ProVerif学习笔记】1:基本使用流程
1 简介ProVerif可以用来自动分析密码协议的Security性质,功能涵盖对称和非对称加密、数字签名、哈希函数、比特承诺、非交互式零知识证明。ProVerif可以证明可达性(reachability),对应断言(correspondence assertion),和可观察的等价性(observational equivalence)。这个能力使得它能对计算机安全领域中的机密性和认证性质进行分析,也可以考虑一些新兴的性质,如隐私性(privacy)、可追溯性(traceability)、可验证性(ve原创 2020-08-11 13:30:16 · 8943 阅读 · 5 评论