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. Qt编写气体安全管理系统28-模拟工具

    一.前言 模拟工具在一些涉及到硬件通信的程序中特别有用,也特别需要,回顾这十年来做过的项目,95%的项目都是软硬件交互的,貌似软硬件结合的项目更有生命力一些,纯软件的或者纯硬件的,并没有那么好控制,如 ...

  3. 使用GridSearchCV进行网格搜索微调模型

    import numpy as np import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer f ...

  4. iOS开发应该知道的7个编程概念

    对流行工具(如Xcode)和编程概念(如视图控制器)的高级讨论,这些对iOS开发本身很有用. 1. Xcode Xcode是iOS应用开发社区所见过的最通用的IDE.由于集成开发环境来自Apple,它 ...

  5. 基于EasyNVR摄像机网页无插件直播服务二次开发实现H5播放页面的简单集成方案

    我们通常在构架一套视频SaaS应用的过程中,将平台设计为3层:视频硬件层(视频源).视频能力平台(vPaaS).视频应用平台(vSaaS),视频硬件包括各种IPC.NVR.编码器等视频生成设备,vPa ...

  6. express 413 Request Entity Too Large解决办法

    1.配置nginx 原因是请求实体太长了.一般出现种情况是Post请求时Body内容Post的数据太大了 如上传大文件过大; 如POST数据比较多 处理方法修改nginx.conf的值就可以解决了. ...

  7. [LeetCode] 529. Minesweeper 扫雷

    Let's play the minesweeper game (Wikipedia, online game)! You are given a 2D char matrix representin ...

  8. InfluxDB入门

    InfluxDB是一个用于存储和分析时间序列数据的开源数据库 时序数据是基于时间的一系列的数据 时序数据库就是存放时序数据的数据库,并且需要支持时序数据的快速写入.持久化.多纬度的聚合查询等基本功能 ...

  9. Saltack 针对用户进行权限控制

    一. client_acl 配置使用 1.1 client_acl概述 开启对系统上非root的系统用户在master上执行特殊的模块,这些模块名可以使用正则表达式进行表示,不能指定对那些minion ...

  10. Spring Boot 项目中的 parent

    前言 我们成功创建Spring Boot之后,pom.xml坐标文件中都会有如下一段引用: <parent> <groupId>org.springframework.boot ...