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 */

// The protocol description
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 ---补充整理的更多相关文章

  1. Data Visualization – Banking Case Study Example (Part 1-6)

    python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...

  2. 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 ...

  3. 你从未见过的Case Study写作指南

    Case Study,意为案例分析,Case Study与其它的留学论文作业最大的的差别就在于Case Study在论文开始就需要明确给出论,然后再阐述这个结论的论证依据和理由.留学生们需要知道的是C ...

  4. Deep Learning-Based Video Coding: A Review and A Case Study

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 1.Abstract: 本文主要介绍的是2015年以来关于深度图像/视频编码的代表性工作,主要可以分为两类:深度编码方案以及基于传统编码方 ...

  5. Case Study: Random Number Generation(翻译教材)

    很荣幸,经过三天的努力.终于把自己翻译的教材做完了,现在把它贴出来,希望能指出其中的不足.   Case Study: Random Number Generation Fig. 6.7  C++ 标 ...

  6. 课程三(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 ...

  7. 【ASE模型组】Hint::neural 模型与case study

    模型 基于搜索的提示系统 我们的系统用Pycee针对语法错误给出提示.然而,对于语法正确.结果错误的代码,我们需要另外的解决方式.因此,我们维护一些 (错误代码, 相应提示) 的数据,该数据可以由我们 ...

  8. 关于运维之故障复盘篇-Case Study

    关于故障的事后复盘,英文名 Case Study是非常有必要做的,当然是根据故障的级别,不可能做到每个故障都Case Study,除非人员和时间充足: 文档能力也是能力的一种,一般工程师的文档能力比较 ...

  9. 李宏毅机器学习课程---2、Regression - Case Study

    李宏毅机器学习课程---2.Regression - Case Study 一.总结 一句话总结: 分类讨论可能是比较好的找最佳函数的方法:如果 有这样的因素存在的话 模型不够好,可能是因素没有找全 ...

随机推荐

  1. Aspose.Words操作Word.PDF,让图片和文本垂直居中,水平居中解决方案

    x 环境 { "Aspose.Words": {"Version":"18.x"} } 需求与难题 生成试卷的时候,如果数学题目中有特殊符号 ...

  2. JavaScript之 BOM 与 DOM

    1. JavaScript 组成 2. DOM.DOCUMENT.BOM.WINDOW 区别 DOM 是为了操作文档出现的 API , document 是其的一个对象:BOM 是为了操作浏览器出现的 ...

  3. [LeetCode] 388. Longest Absolute File Path 最长的绝对文件路径

    Suppose we abstract our file system by a string in the following manner: The string "dir\n\tsub ...

  4. [LeetCode] 463. Island Perimeter 岛的周长

    You are given a map in form of a two-dimensional integer grid where 1 represents land and 0 represen ...

  5. rConfig v3.9.2 授权认证与未授权RCE (CVE-2019-16663) 、(CVE-2019-16662)

    rConfig v3.9.2 authenticated and unauthenticated RCE (CVE-2019-16663) and (CVE-2019-16662) 原文:https: ...

  6. SpringBoot系列教程JPA之新增记录使用姿势

    SpringBoot系列教程JPA之新增记录使用姿势 上一篇文章介绍了如何快速的搭建一个JPA的项目环境,并给出了一个简单的演示demo,接下来我们开始业务教程,也就是我们常说的CURD,接下来进入第 ...

  7. 在ensp上配置Hybrid接口

    Hybrid接口是华为特有的一种接口 Hybrid接口是既可以连接普通终端的接入链路,又可以连接交换机间的干道链路. 简单说就是Hybrid接口既能实现Access的功能又能实现Trunk接口的功能. ...

  8. windows下大数据开发环境搭建(1)——Java环境搭建

    一.Java 8下载 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载之后 ...

  9. Tomcat详解|乐字节

    大家好,欢迎来到乐字节小乐的Java技术分享园地.这次给大家分享的是Tomcat   一. 什么是 Tomcat Tomcat 是一个符合 JavaEE WEB 标准的最小的 WEB 容器,所有的 J ...

  10. 14 SpringMVC框架的基本概念

    1.三层架构 我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就是浏览器服务器.在 JavaEE 开发中,几乎全都是基于 B/S 架构的开发. ...