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. egg.js 相关

      egg sequelize 建表规范 CREATE TABLE `wx_member` ( `id` ) NOT NULL AUTO_INCREMENT COMMENT 'primary key' ...

  2. Tensorflow问题

    TypeError: 'urban' has type str, but expected one of: bytes 在前面添加"b"(例如,b'urban'),或者处理为var ...

  3. LeetCode:四数之和【18】

    LeetCode:四数之和[18] 题目描述 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c ...

  4. 密码工具:KeePassXC

    KeePassXC 开源免费 只支持数据库存放在本地, 跨平台 自动填充 使用浏览器插件时,软件必须启动着 KeePassXC is a community fork of KeePassX, a n ...

  5. linux:vim中全选复制

    全选(高亮显示):按esc后,然后ggvG或者ggVG 全部复制:按esc后,然后ggyG 全部删除:按esc后,然后dG 解析: gg:是让光标移到首行,在vim才有效,vi中无效 v : 是进入V ...

  6. nuxt/eapress 安装报错Module build failed: ValidationError: PostCSS Loader Invalid OptionsModule build failed: ValidationError: PostCSS Loader Invalid Options options['useConfigFile'] is an invalid additi

    错误信息: Module build failed: ValidationError: PostCSS Loader Invalid Options options['useConfigFile'] ...

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

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

  8. ubuntu18.04安装Anaconda

    jiangshan@dell-Precision-7920-Tower:~$ lsAnaconda3-2019.07-Linux-x86_64.shjiangshan@dell-Precision-7 ...

  9. 【转帖】处理器史话 | 这张漫画告诉你,为什么双核CPU能打败四核CPU?

    处理器史话 | 这张漫画告诉你,为什么双核CPU能打败四核CPU? https://www.eefocus.com/mcu-dsp/371324 2016-10-28 10:28 作者:付丽华预计 9 ...

  10. 2019秋季PAT甲级_C++题解

    2019 秋季 PAT (Advanced Level) C++题解 考试拿到了满分但受考场状态和知识水平所限可能方法不够简洁,此处保留记录,仍需多加学习.备考总结(笔记目录)在这里 7-1 Fore ...