Analysis of Autherntication Protocol with Scyther :Case Study ---补充整理
1、Needham-Schroeder public Key Protocol (基于非对称的加密协议)
the Protocol's authors are Roger NeedHam and Michael Schroeder
定义 密钥对:
const pk: Function
secret sk: Function
inversekeys(pk ,sk):// pair of asymmetric keys
其中 const 定义全局常量,
(这篇博客存在草稿箱好长时间了,乘着今天把里面的几项工作做完,重新整理一遍,里面的几个安全属性的定义重新找了一下资料,在此补充完整)
在声明协议的安全属性的时候使用固定的术语原语:
Secret:声明保密,即使我们在不信任的网络上交换数据,某些信息也不会被泄露给入侵者
SKR:泄露会话秘钥(Session-key)的时候任然安全,类似于Secret
Aliveness: 参见论文(G.Lowe .A hierarchy of authentication specification.In Proc 10 IEEE Computer Security Roundation Workshop (CSFW) ,page31-44 IEEE,1
这个概念比较复杂----就是说如果在A的本地事件存一个时间窗口 I ,则A经过身份验证的B 使 A 确信B在 I 中还存活着。
Weakagree: 参见论文(G.Lowe .A hierarchy of authentication specification.In Proc 10 IEEE Computer Security Roundation Workshop (CSFW) ,page31-44 IEEE,1997)
Commit, Running :所有的内射性协议要求在,角色的声明中,触发者中添加 Commit ,接受者添加 Running
Nisynch:声明非单射性
Niagree:
Reachable: 声明协议触发者传输的参数和消息是可以无误抵达接受者
Empty: 不做任何处理的的安全属性
声明全局变量的关键词:
声明局部变量的关键词:
2、符号化分析关注点
通俗的来讲,符号化分析集中在下面几个方面,
- 逻辑消息组件以及协议的功能(公钥和私钥、每个会话运行产生的常数)
- 消息结构(密钥对,加密算法,签名,哈希函数)
- 消息流(顺序、涉及参与的通信实体-角色)
另外的一些协议的元素可以抽象化,(可以忽略的字符串可以抽象出来),比如一些复杂的循环的控制结构可以被限制成在一定的次数内。
3、协议验证安全属性该如何声明
- 协议的单射性或者非单射性改如何判断?
具体的单射一致性和非单射一致性请参照之前非博客(非单射一致性和单射一致性的概念辨析),那么之后的就是对协议本身的分析是否添加单射性和非单射性
- 协议验证的安全属性特征添加的依据是什么?
具体的协议的安全要求都有自己的规范文档的描述,在Security中会提出协议的安全属性的要求,也就是协议的RFC文档,当然不同的协议在实现的安全属性上在实现上可能是一个不可逆的算法或者依赖于随机数,这个要根据协议自己安全属性的实现原理来分析,但是总体的协议安全属性目标,在协议的文档中是指出的。
- 我们需要验证哪些属性或者参数?
具体的要看协议中药保证的安全参数,比方说协议通过某种加密方式保证传输的一个随机数是安全的,哪我们就直接声明 这个随机数是安全的 。如果最厚根据协议分析得到在某次的会话中传输的依噶加密会话消息整体是安全的,那我们对这个消息的会话声明就 声明这个整体的传输的加密消息是安全的。具体的形式如下:
claim _r1(I, Secret,ni) 其中 I 是角色实体, Secret是声明的安全属性 ni 是被声明安全的随机数
claim_r2(I,Secret,hash(ni)) 其中整个 hash(ni) 被声明是安全的
- 在形式化描述的时候触发者和响应者之间的形式化描述有什么差别
关键字位置互换(在触发者产生的随机数用 fresh 声明,但是在接受者中需要使用 变量 var 指代)
发送者和接受者之间的关系需要互换,
安全属性声明的标签是唯一的,
4、对 Needham-Schroeder Public Key Protocol 协议的分析
因为参照的是官网上提供的Case-Study的这个协议的案列,上面的协议角色一共三个(这里只摘抄了两个角色的) ,我后续按照文章补充了形式化的代码 具体如下:
/* * Needham-Schroeder protocol */
protocol ns3(I,R)
{role I
{fresh ni: Nonce;
var nr: Nonce;
send_1(I,R, {ni,I}pk(R) );
recv_2(R,I, {ni,nr}pk(I) );
claim(I,Running,R,ni,nr);
send_3(I,R, {nr}pk(R) );
claim(I,Secret,ni);
claim(I,Secret,nr);
claim(I,Alive);
claim(I,Weakagree);
claim(I,Commit,R,ni,nr);
claim(I,Niagree);
claim(I,Nisynch);
}
role R{
var ni: Nonce;
fresh nr: Nonce;
recv_1(I,R, {ni,I}pk(R) );
claim(R,Running,I,ni,nr);
send_2(R,I, {ni,nr}pk(I) );
recv_3(I,R, {nr}pk(R) );
claim(R,Secret,ni);
claim(R,Secret,nr);
claim(R,Alive);
claim(R,Weakagree);
claim(R,Commit,I,ni,nr);
claim(R,Niagree);
claim(R,Nisynch);
}
}
5、graph输出的攻击图,如何描述,(这里补充说一下,绑定状态空间的目的是为了限定程序的终止运行)

目前国内使用形式化分析工具很少用到Scyther 工具,发表的论文大多是使用输出的攻击图指出目标协议存在安全隐患,但是并没有分析攻击图中输出的会话消息和敌手之间的具体的含义,这也是我想在大论文中准备要加上去的,另外对 Scyther工具的汉化过程存在核心部分在参数调用算法的时候报错的问题,有必要对Scyther整个的框架GUI部分的代码部分做一个全面的分析。这部分工作我会出现在在后续的大论文部分。
Analysis of Autherntication Protocol with Scyther :Case Study ---补充整理的更多相关文章
- Data Visualization – Banking Case Study Example (Part 1-6)
python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...
- Attacking JavaScript Engines: A case study of JavaScriptCore and CVE-2016-4622(转)
转:http://phrack.org/papers/attacking_javascript_engines.html Title : Attacking JavaScript Engines: A ...
- 你从未见过的Case Study写作指南
Case Study,意为案例分析,Case Study与其它的留学论文作业最大的的差别就在于Case Study在论文开始就需要明确给出论,然后再阐述这个结论的论证依据和理由.留学生们需要知道的是C ...
- Deep Learning-Based Video Coding: A Review and A Case Study
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 1.Abstract: 本文主要介绍的是2015年以来关于深度图像/视频编码的代表性工作,主要可以分为两类:深度编码方案以及基于传统编码方 ...
- Case Study: Random Number Generation(翻译教材)
很荣幸,经过三天的努力.终于把自己翻译的教材做完了,现在把它贴出来,希望能指出其中的不足. Case Study: Random Number Generation Fig. 6.7 C++ 标 ...
- 课程三(Structuring Machine Learning Projects),第一周(ML strategy(1)) —— 1.Machine learning Flight simulator:Bird recognition in the city of Peacetopia (case study)
[]To help you practice strategies for machine learning, the following exercise will present an in-de ...
- 【ASE模型组】Hint::neural 模型与case study
模型 基于搜索的提示系统 我们的系统用Pycee针对语法错误给出提示.然而,对于语法正确.结果错误的代码,我们需要另外的解决方式.因此,我们维护一些 (错误代码, 相应提示) 的数据,该数据可以由我们 ...
- 关于运维之故障复盘篇-Case Study
关于故障的事后复盘,英文名 Case Study是非常有必要做的,当然是根据故障的级别,不可能做到每个故障都Case Study,除非人员和时间充足: 文档能力也是能力的一种,一般工程师的文档能力比较 ...
- 李宏毅机器学习课程---2、Regression - Case Study
李宏毅机器学习课程---2.Regression - Case Study 一.总结 一句话总结: 分类讨论可能是比较好的找最佳函数的方法:如果 有这样的因素存在的话 模型不够好,可能是因素没有找全 ...
随机推荐
- 服务器推送(Server push)技术总结
1. 短轮询 ajax按一定间隔去请求 2. 长轮询(long Polling) Long Polling的实现很简单,可分为四个过程: 发起Polling发起Polling很简单,只需向服务器发起请 ...
- 成为真正的win10 超级管理员,解决win+r 不以管理员身份运行
secpol.msc 本地策略=>安全选项 禁用 用户账户控制:以管理员批准模式运行所有管理员 用户帐户控制:用于内置管理员帐户的管理员批准模式 注意:需要重启计算机
- Vue 引入 .md 文件,解析markdown语法
module.exports = { chainWebpack: config => { config.module .rule('md') .test(/\.md$/) .use('html- ...
- LODOP打印超文本有边距不居中的情况2
之前的博文:LODOP打印项水平居中.之前的博文有介绍超文本和纯文本的居中方式,设置超文本打印项居中时,注意打印内容要在打印项本身宽度里居中.之前的博文超文本用的是个表格,而且表格本身没有margin ...
- Jenkins - 构建项目
1 - 登录 进入起始界面 2 - 创建并运行第一个Jenkins项目 新建Item:创建新项目 --->Freestyle project:通用的项目创建方法 --->在新建项目页面(添 ...
- Bat批处理之for/f详解
转自:https://www.cnblogs.com/zhangq/p/3988697.html 含有/F的for格式: FOR /F ["options"] %%i IN (fi ...
- 【视频开发】RTSP SERVER(基于live555)详细设计
/* *本文基于LIVE555的嵌入式的RTSP流媒体服务器一个设计文档,个中细节现剖于此,有需者可参考指正,同时也方便后期自己查阅.(本版本是基于2011年的live555) 作者:llf_17@q ...
- Eureka学习笔记
解决: 自我保护: 消费端的调用: Euraka的集群:
- 动态字节码技术Javassist
字节码技术可以动态改变某个类的结构(添加/删除/修改 新的属性/方法) 关于字节码的框架有javassist,asm,bcel等 引入依赖 <dependency> <groupI ...
- 原生js监听input值发生变化
原生JS中可以使用oninput,onpropertychange,onchange oninput,onpropertychange,onchange的用法 1) onchange 触发事件必须满足 ...