Scyther 协议形式化验证翻译 (第二章)
论文概述:$\alpha +\forall (\sum \oint_{3}^{4})$
第二章: 操作语义
在第二章中我提出了一种新的安全协议的模型,用于定义安全协议以及协议的行为,在明确的模型中执行协议,结果是基于角色的安全协议模型,该模型与并发协议的数量无关,该模型对协议分析做出了几个明确的假设,并允许例如:用于从协议描述中推导出入侵者知识,在协议模型中,安全属性被建模成本地声明事件,本章基于引文[65]。本章主要的贡献是开发了新的安全协议模型,用于描述协议和协议的行为,该模型提供了几个新颖功能。
第三章 : 安全属性
第三章扩展了第二章模型中的安全属性的定义,包括保密概念和现有认证属性的定义。我们通过开发一种强大的身份验证的概念(称为内射同步性)来扩展现有的身份验真属性集。同时我们给出了认证属性的层次结构,并给出了建立内射同步性严格的语法标准格式。我们应用这种正式的定义手动证明 Needham-Schroeder-Lowe协议的安全属性。本章基于引文[67,70,69,67] ,本章的主要贡献是包括现有的安全属性的定义,以及定义了一种更加强的认证属性称为同步性,这种新的身份验证属性通过层次结构与现有的身份认证属性相互关联,对于同步性,结果证明了关于内射性属性。
第四章: 验证
基于安全协议模型,第四章介绍了一种算法用于验证安全属性和寻找攻击。但也具有能够对协议进行完整表征的功能,这个算法在原型工具 Scyther中已经实现,该工具的性能是安全协议形式化分析的最新技术。我们使用该工具可以进行大量的协议形式化的安全分析。本章的主要贡献是改进基于现有验证算法,此处算法背后的概念是在安全模型中重新定义的。这导致算法的改进,作为负面的影响,新算法共享语义特征,例如能够验证新的身份验证属性 。我们在新算法的输出和现有表征概念之间建立了联系,该算法确保更进一步的终止机制算法。我们表明在绝大数情况之下,并没有降低有效性,该算法涉及启发式(此处),我们研究了几种替代方案,并研究了各自的效率,通过引入附加参数保障新算法的终止。并且调查了特定参数选择的后果。
第五章 :多协议攻击
在第五章中使用原型工具自动分析多个协议的并行执行,在这种情况下,像嵌入式系统,智能卡协议或者手机应用程序,发现了性攻击和安全实践结果, 本章基于引文[62] ,本章主要的理论贡献是定义了多协议攻击,实际的贡献是分析了大量协议的多协议攻击,以及随后发现的几种新的多协议攻击,两种模式是标识捕获在同一网络上执行的协议可能存在的问题。
第六章: 推广 NSL进行多方认证
第六章进一步讨论模型和工具应用,Needham-Schroeder-Lowe协议被推广到一系列多方认证协议。证明了协议秘密性的正确新,并给出了Needham-Schroeder-Lowe协议的广义版本,开发的协议可以作为多方同步协议的有效基础。参看引文[66]
本章的主要贡献包括多方同步协议概念和协议中最小消息数之间的链接。开发了一系列的多方认证协议。并绘制了参数化证明,证明了Needham-Schroeder-Lowe协议的广义版本的正确性。
最后 我们在第七章讨论了相关的工作,结束论文,并在第八章中介绍以后的工作。
下面是论文的详细内容:
第二章 内容: 操作语义
我们将会讨论这些方面的每一个,列出他们的变化点并作出适当的设计决策。当然每一个细分都是人为的,但是我们发现这里有助于增加结构和限制问题空间。提到字模型并不是一个独立的额实体,列如,协议规范利用提供的加密原语,并且如果入侵者控制网络(某些部分),则通信模型连接到入侵者模型。
协议规范:
(消息序列图)作为本章的一个运行示例,我们使用简版的Neeedham-Schroeder协议来自参考文献[145] 简称为 NS 协议,在本篇论文中我们使用消息序列图(MSC)来说明安全协议和攻击,MSC是ITU标准化的协议规范语言[105]. 图2.1 包括NS协议的MSC ,发起者 “i” 同时拥有私钥 sk(i) 和 响应者 的公钥 pk(r) ,对称的,响应者 r 拥有自己的私钥 sk(r) 和发起者的公钥 pk(i),我们使用秘钥 k 加密消息 m ,记作 {/m/}k 。发起者 i 首先创建一个随机变量 ni ,使用方框指明,然后 将她的名字 i 和 ni 一起发送,使用公钥 pk(r) 加密,对于响应者 r ,接受到之后,响应者生成一个新的随机变量 nr ,连着之前接受到的变量 ni ,使用公钥 pk(i) 进行加密 ,一起发送给 发起者 i 。发起者在反过来解密消息,解密出 nr 并使用公钥 pk(r) 加密发送给 响应者 r 。安全声明使用六边形表示,发起者和响应者都声称认证属性 ni-synch成立,将在第三章中详细的介绍安全声明事件。
协议规范定义了代理之间信息术语的交换,要注意的是,协议规范中出现的术语和稍后定义执行的模型不同,这里我们定义了角色术语,在协议规范中使用。
2.2.1 角色术语
我们首先解释一些术语的基本术语,像 常量、角色和变量。下面我们添加配对和元组结构为角色术语集 为角色描述中使用。
定义 2.1 (基本术语集) 我们定义用于构造角色的基本术语集合
- var ,定义一个变量用于接收和存储消息
- const , 表示为角色的每个实例化新生成的常量,因此被认为是局部常量,
- Role ,表示 角色
- Func ,表示函数名
在表 2.1 中 在下面将展示这些集合的一些典型元素,如本论文中全文使用。
定义 2.2 (角色术语) 我们定义一组角色术语作为角色术语集,使用构造函数进行扩展以进行配对和加密,我们假设配对是右相关的。


来自函数集的函数被认为是全局函数,并且必须尊重所有的额方面,注意没有术语 f 表示函数 f 的形式,当我们想要参考函数 f 的时候,(在定义域 X ),我们使用 f 作为 {f(x)| x ∈X} 的简写。
如果全局常量出现在协议中, 我们将他建模为 arity zero的函数(元数 0),使用术语加密术语,只能解密过相同的术语(用于对称加密)或者反向秘钥(用于非对称加密)进行解密。为了确定解密一个术语需要知道哪个术语,我们定义一个函数,该函数为任何角色术语产生逆。

我们要求
是他自己的逆, 比如 
整片论文中,我们假设 pk 和 sk 函数元数为 1 ,映射到非对称秘钥。 比方说
,特别是 我们使用 pk表示代理的公钥,使用 sk 表示代理的私钥。
例子 2.3(签名): 我们建立角色 R的私钥模型 sk (R) 和其逆,公钥 pk(R) ,使用公钥 pk对消息 m 加密建模
,对消息进行签名不直接对应着用秘钥进行加密,相反,所谓的消息摘要加密,与之一起发送的消息,为了正确使用私钥 sk(R) 建模消息 m 签名。我们引进哈希函数 h ,签名 m 的结果术语是
。
其他的术语 rt 被认为是对称秘钥,我们有
,除非另外说明。这样,虽然我们对两种加密都是用符号 { / / } , 应用加密类型可以从使用的秘钥派生,请注意,我们,明确允许组合秘钥。比如 在
,我们转向描述协议的行为,我们将协议描述成为角色集,而角色集又由角色事件组成。
定义 2。4 (角色事件):我们使用两个新的集定义角色事件集,标签 Label 和安全声明 Claims ,解释如下:

事件
表示由绑定到R的代理发送消息 rt ,用于绑定到代理 R',同样
表示由绑定到 R' 的代理接受消息 rt ,显示是由绑定到 R的代理发送的。事件
表示 代理 R执行此事件时期望安全目标 c 和可选参数一起保持。声明事件时基于本地的声明,这就意味着只是关注 角色 R ,其他的 角色并不期望。本章的详细安全声明的概念将在第三正讨论。
角色事件集设置在协议描述级别包含协议中执行的所有操作,我们区分协议事件通过发送、读取、声明。虽然也可以包括其他的协议事件,列如模拟角色内部的活动,但是这里我们不这么做。发送事件协议、读取时间协议、声明事件协议。已经满足于我们大多数目的需求。我们将局部常量(如:nonce)的生成保持为隐式的,并假设局部常量的生成发生在事假中的第一次出现之前。需要标记的事件的标签
来消除协议规范中相同事件的类似出现的歧义,这些标签的第二个用途是表达响应的发送事假和接受事件之间的关系,我们将在下一章中看到。对于这些属于条款,我们引入了一个允许我们识别术语部分的运算符。
定义 2.5 (子运算符): 子运算符 $\sqsubseteq $ 归纳总结如下:

子术语运算符$\sqsubseteq $ 识别术语的字句,其中包括用于加密的术语的秘钥,注意的是 f (rt) 形式的术语没有适当的子术语,因为被认为是非组合术语。除了接受和发送术语,角色规范描述执行角色所需要的初始知识,这个初始知识是一组术语组。
定义 2.6 (角色知识): 我们将角色知识集RoleKnow 定义为不包含变量作为子项的所有角色术语的集合:
$RoleKnow=P({rt\epsilon RoleTerm | \forall {rt}' :{rt}'\sqsubseteq rt\Rightarrow {rt}'\notin Var})$
以上角色的描述遵循第十二页 图12 ,选取左边的轴和其关联的事件,注意我们必须澄清术语中的哪些结构是变量(因为在接受消息时会收到值)和哪些是常数(因为是基于角色本身决定的)因此我们认为, i, R ∈ Role , ni ∈ Const ,sk pk ∈ Func . $pk(i)^{-1}=sk(i)$ , $pk(r)^{-1}=sk(r)$ . 1,2,3,4 ∈ Label , V ∈ Var
Scyther 协议形式化验证翻译 (第二章)的更多相关文章
- Gradle2.0用户指南翻译——第二章. 概述
翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc本文翻译所在分支:https://github.com/msdx/gradledoc/tree/2 ...
- ORACLE AUTOMATIC STORAGE MANAGEMENT翻译-第二章 ASM instance(1)
第二章 ASM INSTANCE ASM的类型,例如可以: 10g后ORACLE instance 类型增加了一个ASM种类.参数INSTANCE_TYPE=ASM进行设置. ASM实例启动命令: ...
- Scyther-Semantics and verification of Security Protocol 翻译 (第二章 2.2.2----2.3)
2.2.2 事件顺序 协议中的每个角色对应于事件列表,换句话说, 在属于角色 R 的协议事件集上施加结构,总的排序表示为 $ \prec $ , 如此任何角色 R∈Role 和 $\varepsil ...
- Learning Scrapy 中文版翻译 第二章
为了从网页中提取信息,你有必要对网页的结构做一些了解.我们将快速学习HMTL,HTML数状结构以及用XPath在网页上提取信息 HTML, DOM树结构以及XPath 让我们花一点时间来了解当用户在浏 ...
- ORACLE AUTOMATIC STORAGE MANAGEMENT翻译-第二章ASM Instance(4)完
ASM安全 这个小节主要描写叙述与ASM相关的各种安全配置话题,像 配置ASM须要的userids.groupids:ASM权限如 SYSOPER,SYSDBA和新的SYSASM权限,最后还有ASM ...
- brent ozar的sqlserver dba训练课程翻译——第二章:手动恢复数据库
备份的唯一原因 备份的唯一原因是我们可以还原 当我第一次成为sqlserver数据库管理员,只要备份工作都能成功运行,我就会觉得一切都很好.我会查看sqlserver代理,保证那些作业都在运行,然 ...
- 协议形式化分析Scyther 资料整理
1.性能分析 目前来说形式化的分析已经成为安全协议的一种很流行的方法,但是每种工具都用其不同适合的协议,Scyther软件是一种形式化分析工具,极大的促进了协议的分析和设计,scyther工具在运行界 ...
- 《Django By Example》第二章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第二章:利用模型类创建视图、控制器和数据库
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类 ...
- 《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型
第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以 ...
随机推荐
- JS ----- JS原型与原型链终极详解(一)
一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object .Function 是 JS 自带的函数对象.下面举例说明 var o1 = ...
- Fabric-ca client端初始化过程源码分析
本文从Fabric-ca源码入手,以newRegisterCommand()函数为例,简单分析client启动时的过程.Fabric-ca源码可以从github.com下载,本文以v1.4.6为例进行 ...
- 心动了!iPhone 15 Pro超窄边框感受下:1.5mm破历史纪录 “跑马框”再见
综合目前已知爆料来看,iPhone 15系列将有7大升级.其中一个比较明显的直观变化是,新款iPhone全系边框都会更窄.iPhone 15 Pro.Pro Max的边框宽度仅为1.55mm,破历史记 ...
- VS Code 使用
Tips 总结 1. VSCode显示空格和tab符号 1.打开setting,在搜索框中输入renderControlCharacters,选中勾选框,即可显示tab 2.在搜索框中输入render ...
- navicat破解(15以前的版本)
navicat破解各种不成功,很耽误事.所以,再次整理一个相对省事有效的办法.内容如下: 一:下载此激活工具 二:按下图生成激活码 1. 2. 点击手动激活 3. 将请求码按图粘贴,按图点击操作便可激 ...
- abc339 详解
第一篇整场题解纪念我第一次 AK 的 abc! A #include <iostream> using namespace std; int main(int argc, const ch ...
- Python_json类方法
Python_json类方法 import requests import json headers = { "User-Agent": "Mozilla/5.0 (Li ...
- 思维分析逻辑 5 DAY
目录 如何分析 结构分析 对比分析 时间序列 相关性分析 机器学习 报告撰写 报告撰写三原则 标准化报告的组成 AB测试 AB测试流程 AB测试注意事项 如何分析 结构分析 对比分析 对比分析:所有的 ...
- NC20909 游戏
题目链接 题目 题目描述 有 n 个人围成一个环玩传球游戏,每轮游戏手里拿着球的那个人必须将球传给他(她)的一个朋友.游戏一共进行了 m 轮,初始球在第 a 个人手中,问游戏结束后球在第 b 个人手中 ...
- NC20284 [SCOI2011]糖果
题目链接 题目 题目描述 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他 ...