Needham-Schroeder Scyther工具形式化过程
1、Needham-Schroeder Public key Protocol
协议的通信认证的过程 顺序图的
1、 A-> S : A, B
2、 S->A: {Ks, B }Ks-1
3、 A->B : {Na, A }Ks
4、 B->S: B ,A
5、 S->B: {Ka, A}Ks-1
6、B->A : {Na, Nb}Ka
7、 A-> B : {Nb}Ks
2、下面我们画一个验证的顺序图 (原来的图片没有找到 ,拍一张图片)
3、现在我么来形式化描述这个协议
首先第一步声明变量 :
首先声明非对称密钥
const pk:Function ;
secret sk:Function ;
inversekeys(pk, sk);
第二步 定义协议
protocol NeedhamSchroeder(I, R , S){ }
第三步定义 协议中参加的角色对象
role I { #这里 I 指代的就是图上的 Alice
const Ni: Nonce; // 全局变量
var Nr: Nonce; // 局部变量
send_1(I ,S, (I, R)); 发送的消息 从 I 发给 S 对照上面的图 从 Alice 发给 Server
recv_2(S ,I {pk(R), R }sk(S)); I 接受到的消息 , 对应上面的图 从 Server 发给 Alice
........# 后面的形式化 过程根据上图一次添加上
........# 形式化的规律就是 在一个角色对象中 智能描述该对象直接参与 的通信
claim_I1(I, Secret, Ni);
claim_I2(I ,Secret, Nr); # 声明安全属性的时候 是根据协议的安全目标来定义
claim_I3(I, Nisynch)
}
在协议的最后规范的描述中 我们添加协议中信任的参与者,这些参与者的秘密信息不能信任
const Alice ,Bob ,Server ,Compromised :Agent
untrusted Compromised ;
const nc: Nonce;
Compromised sk(Compromised);
第四步添加配置敌手的模型和参数 开始验证协议
具体的信息显示 可以根据上面的图来 观测 ,如果发现存在攻击 显示 Fail 不存在攻击 显示 NO
我们关心的就是上面声明 出现 验证过程中 发现符合安全声明的 部分
附录 全部的形式化 描述
{
role I
{
fresh Ni: Nonce;
var Nr: Nonce;
send_1(I,S,(I,R));
recv_2(S,I, {pk(R), R}sk(S));
send_3(I,R,{Ni,I}pk(R));
recv_6(R,I, {Ni, Nr}pk(I));
send_7(I,R, {Nr}pk(R));
claim_I1(I,Secret,Ni);
claim_I2(I,Secret,Nr);
claim_I3(I,Nisynch);
}
role R
{
fresh Nr: Nonce;
var Ni: Nonce;
recv_3(I,R,{Ni,I}pk(R));
send_4(R,S,(R,I));
recv_5(S,R,{pk(I),I}sk(S));
send_6(R,I,{Ni,Nr}pk(I));
recv_7(I,R,{Nr}pk(R));
claim_R1(R,Secret,Nr);
claim_R2(R,Secret,Ni);
claim_R3(R,Nisynch);
}
role S
{
recv_1(I,S,(I,R));
send_2(S,I,{pk(R),R}sk(S));
recv_4(R,S,(R,I));
send_5(S,R,{pk(I),I}sk(S));
}
}
Needham-Schroeder Scyther工具形式化过程的更多相关文章
- Redis数据导入工具优化过程总结
Redis数据导入工具优化过程总结 背景 使用C++开发了一个Redis数据导入工具 从oracle中将所有表数据导入到redis中: 不是单纯的数据导入,每条oracle中的原有记录,需要经过业务逻 ...
- .NET领域驱动设计—初尝(一:疑问、模式、原则、工具、过程、框架、实践)
.NET领域驱动设计—初尝(一:疑问.模式.原则.工具.过程.框架.实践) 2013-04-07 17:35:27 标签:.NET DDD 驱动设计 原创作品,允许转载,转载时请务必以超链接形式标明 ...
- [转] .NET领域驱动设计—初尝(原则、工具、过程、框架)
阅读目录: 1.原则 1.1.精简聚合 1.2.分离用例与接口功能(设计模式的用武之地) 2.工具.框架.组件 3.过程 1]原则 原则对于任何一项技术实现来说都是至关重要的,在设计某一个系统功能的时 ...
- [工具向]__关于androidstudio工具使用过程中学习到的一些知识点简记
前言 在我学习android开发课程的过程中,我们通常只会关注编程语言上面的一些知识点与问题,而忽略了开发工具的使用上的一些遇到的一些知识,其实每一款IDE工具都是集编程语言大成而开发出来的,其中有很 ...
- SUSE11sp3 perf工具安装过程
工作环境是suse11sp3系统(内核版本3.0.101-0.47.90-default),需要通过perf排查系统性能问题,但是默认是没有perf工具的. 在网上搜索了一下,需要linux-tool ...
- NSA Fuzzbunch中EternalRomance工具复现过程
自Shadow Brokers公布NSA泄露工具后,各路大神陆陆续续发表复现过程,这几天也仔细试了各种套路,一直想弄明白DoublePulsar中的shellcode到底是如何用的,刚好又在模拟环境中 ...
- 【编程基础】CppLint工具使用过程
前言 coding最好要形成一定的编程风格,一般常用的开源风格有google code style,可以使用cpplint工具检查是否符合该编程风格. 目录 1. linux系统使用过程: 2. wi ...
- [转] .NET领域驱动设计—初尝(疑问、模式、原则、工具、过程、框架、实践)
阅读目录: 1.1.疑问 1.1.1.UML何用 1.1.2.领域建模 1.2.模式 1.3.原则 1.5.过程 1.6.框架 1.7.项目演示 最近在研究DDD颇有收获,所以整理出来跟大家分享,共同 ...
- Charles 抓包工具绿化过程记录
1.下载官方的软件,并安装. 下载地址:https://www.charlesproxy.com/latest-release/download.do 根据需求下载即可 2.使用在线破解工具生成jar ...
随机推荐
- QT中常用工具总结
1.qmake 利用.pro文件生成Makefile 命令为: eg: qmake -o Makefile hello.pro 2. uic 利用ui界面审查.h头文件 命令为: eg: uic go ...
- 映美FP-530K+打印发票的各种经验
本人虽然写了很多lodop博文,但是程序开发一般都是用虚拟打印机测试,实际打印机打印中还可能存在各种问题,毕竟理论都不如实践能获得更多的打印经验.当个人使用过的打印机不多,只有映美FP-530K+,用 ...
- SVN限制普通用户删除文件及提交时必须填写log日志
SVN用得也算挺广泛的,但是它也存在着一个大问题,就是权限控制得比较差,要么读,要么读写,而读写就意外着可以删除文件(目前我的理解是这样,如果有什么不对的地方,请多指教). 刚好前段时间发生了开发人员 ...
- Linux服务器安装rocketMQ单机消息队列
首先下载rocketMQ 1.解压: > unzip rocketmq-all-4.3.0-source-release.zip > cd rocketmq-all-4.3.0/ > ...
- python常用英文单词
application 应用程式 应用.应用程序 application framework 应用程式框架.应用框架 应用程序框架 architecture 架构.系统架构 体系结构 argument ...
- Delphi 10 Seattle plus 新特性——System.JSON.Builders
{ 全能中间件 —— 简单.高效.稳定.安全的三层中间件 1.支持 多账套多数据库,包括SQLite, MySQL, SQL Server, Oracle, PostgreSQL, DB2, SQL ...
- TensorFlow学习笔记(1)—— 基本概念与框架
入门框架时的常见问题 学习框架的原因? 方便.易用 学习框架的哪些知识点? 掌握一个项目的基本流程,就知道需要学习哪些知识点了 迅速学习框架的方法 根据项目每块流程的需要针对性的学 可以看官方的入门教 ...
- Spring系列(三):Spring IoC源码解析
一.Spring容器类继承图 二.容器前期准备 IoC源码解析入口: /** * @desc: ioc原理解析 启动 * @author: toby * @date: 2019/7/22 22:20 ...
- vscode 连接远程服务器 sftp
1.在vscode 应用商店搜索 sftp 下载安装 2.ctrl+shift+p 搜索sftp:config 生成sftp.json 3.配置你的服务器信息{ "name": & ...
- python --- 字符编码学习小结(二)
距离上一篇的python --- 字符编码学习小结(一)已经过去2年了,2年的时间里,确实也遇到了各种各样的字符编码问题,也能解决,但是每次都是把所有的方法都试一遍,然后终于正常.这种方法显然是不科学 ...