协议组合逻辑学习笔记

1.challenge

面临的挑战是 通过组合各部分的独立证明 来建立 复合协议的安全性证明。但组合是一个困难的问题,因为一个组件 泄露的信息并不会影响其自身的安全性,但会降低其他组件的安全性!

因为即使 各个部分的独立证明可能已经确保了它们的安全性,然而,将这些部分组合在一起时,某个组件可能会泄露与其自身无关的信息,但却降低了其他组件的安全性。

如果能找到一种方法,将两者考虑进来,既 组合独立组件的安全性证明,又考虑它们之间的安全降级问题。

2.a framework consisting of two formal systems 由两个正式系统组成的框架

Protocol Derivation System 协议推导系统 (PDS) and Protocol Composition Logic 协议组合逻辑 (PCL).

PDS

PDS从基本组件开始,使用一连串的 组合、细化、转化操作来组合或者扩展。

安全协议推导框架由 一组基本的构件(组件)和一组操作(用于从旧的协议中构建新的协议) 组成。

操作可以分为:

1.composition

组合composition(组合了两个协议,有并行合成和顺序合成两种操作。对于顺序合成:将第一个组件的输出给第二个组件的输入)、

2.transformation

转换transformation(作用于单个协议,它会修改协议的若干步骤,通过 将数据从一个消息移动到另一个,或组合步骤,或插入一个或多个附加步骤。例如,在同一个party中,将数据从某个协议信息移动到一个更早的消息中)

Message component move, T1: 消息组件移动,将消息m中的顶层字段t移动到之前的消息m’中,其中,它们具有相同的发送方和接收方,并且t在 消息m和消息m‘之间没有生成或接收到新数据,否则会出现后续过程数据不一致的情况。使用该转换的原因是 为了减少协议中总消息数量。

Binding, T2:绑定。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-40Xc2QGg-1691330903723)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1691310058970.png)]绑定转换通常以某种有意义的方法将协议的一部分信息添加到另一部分,以绑定这两部分。上述我们将 n 添加到后续消息的签名部分中,我们首先使用T1转换,将n移动到第二条信息,然后在应用T2,从而获得右边的协议,这样可以确保m和n属于同一个会话。

Cookie, T3

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BXUKC8Sx-1691330903726)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1691329937787.png)]

Cookie转换的目的是使协议对blind denial-of-service攻击具有抵抗力。在传统的协议中,响应方在收到发起方的消息之后会立即进行昂贵的计算和状态的创建,攻击者可以利用这一点进行大量的请求来消耗响应方的 **计算资源和内存资源,从而导致拒绝服务攻击。**使用cookie转换时,我们假设消息由两部分组成:1.可以在不执行任何昂贵操作的情况下计算出来mc2;2.需要昂贵操作的me2。响应方在接收到第一条消息后,不会创建本地状态,也不会执行昂贵的计算。它会将一个不可伪造的token(cookie)发送回给发起方I,只有I返回了此cookie后,才恢复协议的运行。cookie是消息 **m1和mc2的带密钥的哈希值,**注意,HKR只有R知道。昂贵的计算和状态的创建都被推迟到发起者可以通过 它声称是自己的IP地址 接收信息之后,因此产生的协议可以抵御 盲目dos攻击。

3.refinement

细化refinement(作用于单个协议的消息组件,比如使用加密nonce替换明文nonce,它不会改变消息的数量或协议的基本结构)

R1:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KVgggVWw-1691330903728)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1691223193064.png)]

K是 对等方共享的密钥,这里的目的是提供身份保护,为了抵抗passive attackers。因为签名内容是public的,所以,如果签名不加密,攻击者可以验证对主体身份的猜测。

R2:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N351oQjo-1691330903734)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1691223896422.png)]

签名itself可以证明该term m是由实体X生成的,附加的keyed hash(基于密钥的哈希)可以证明实体X拥有密钥K。

R3

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bgN3Ow8u-1691330903735)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1691231910708.png)]

它与R2的作用相同。

R4

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4WjfA9AF-1691330903736)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1691232090488.png)]

Y是peer(对等体), 假设X拥有Y的必要识别信息 。

R5:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ciyJ1XXB-1691330903737)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1691233530602.png)]

nx是一个新鲜值, Diffie-Hellman指数的计算成本很高,故使用了nonce随机数,使用nonce使得可以在多个会话中重复使用指数,但这会使完全前向保密性丢失。

R6

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UDAClgbN-1691330903738)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1691234338693.png)]

IDX表示X的公钥证书,对于对方可能没有对应的公钥证书的情况,无法对 签名的有效性进行验证,通过将 证书和签名一起发送,以便接收方可以验证签名的有效性,从而解决这个问题。这样,**通过包含证书,**协议可以消除 **进行会话之前必须持有对方公钥证书的假设。**满足在对方可能没有公钥证书的情况下,仍然能够验证签名的有效性。

R7:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fmLl2lbo-1691330903739)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1691304772109.png)]

K’和K是peer之间的 共享keyrole用来标识产生m的协议角色(如:发起者或响应者)。

组件 是构件更大协议的基本协议步骤或步骤集合。如 Diffie-Hellman key exchange 和 challenge-response 就是基本组件。一个协议组件包括了一组角色(发起者、响应者、服务器),每个角色都有一系列的输入、输出和协议动作。直观地说,执行协议角色的principal从一个已知输入的状态开始,执行规定的动作,然后产生输出。

PCL

PCL是Floyd-Hoare风格的逻辑[52,64],支持协议属性的公理化证明。 关于 公理化证明,它是一种通过使用公理和推理规则来推导出逻辑论断的方法。这意味着,使用 一组公理和推理规则来,利用已知的 公理和协议规范,推导出关于协议安全性或其他属性的结论。从而,可以 形式化地证明协议的正确性或安全性。

上述方法的最终目标是为PDS中的每个 派生操作 开发PCL的证明方法,从而实现 协议及其安全性证明 的并行开发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/25145.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS 原型与继承

本文内容学习于:后盾人 (houdunren.com) 一、原型对象 每个对象都有一个原型prototype对象,通过函数创建的对象也将拥有这个原型对象。 原型是一个指向对象的指针。 1.可以将原型理解为对象的父亲,对象从原型对象继承来属性 2.原型就是对象…

Jenkins触发器时间、次数设定

触发器触发条件介绍 触发器触发条件公式:由5颗星组成 * * * * * 分别代表:分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6) 企业项目中常用场景介绍 场景1:接口脚本部分测试通过,部分还在进行,回归测试脚本执行…

Windows上安装 jdk 环境并配置环境变量 (超详细教程)

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…

torchvision.datasets数据加载失败

torchvision.datasets数据加载失败 如何使用torchvision.datasets进行自动下载数据失败,可以使用手动下载数据 Ctrl点击可以进入相关包文件,查找下载地址:https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz 手动下载之后解压&#x…

企业微信小程序在调用wx.qy.login时返回错误信息qy.login:fail

原因是大概是绑定了多个企业但是在开发者工具中没有选择正确的企业 解决方法: 重新选择企业后即可成功获取code

指针常量与常量指针的区别、含指针的函数、什么是结构体

const int *p &a;//定义常量指针,值不可改 int * const p &a;//定义指针常量,指向的值可改,指向不可改 const为静态常量的意思,不可修改。从左到右,常量const先出现,指针符号*后出…

在CSDN学Golang场景化解决方案(基于grpc的微服务开发脚手架)

一,服务与服务之间采用TLS加密通信 在Golang基于gRPC的微服务开发中,可以采用TLS加密通信来确保服务与服务之间的安全通信。下面是一个简单的设计示例: 生成证书和密钥: $ openssl req -newkey rsa:2048 -nodes -keyout server…

Redis 持久化RDB和AOF

Redis 持久化之RDB和AOF Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。如果你想快速了解和使用RDB和AOF,可以直接跳到文章底部看总结。本章节通过配置文件,触发快照…

RabbitMQ(一) - 基本结构、SpringBoot整合RabbitMQ、工作队列、发布订阅、直接、主题交换机模式

RabbitMQ结构 Publisher : 生产者 Queue: 存储消息的容器队列; Consumer:消费者 Connection:消费者与消息服务的TCP连接 Channel:信道,是TCP里面的虚拟连接。例如:电缆相当于TCP,信道是一条独立光纤束&…

web开发中的安全和防御入门——csp (content-security-policy内容安全策略)

偶然碰到iframe跨域加载被拒绝的问题,原因是父页面默认不允许加载跨域的子页面,也就是的content-security-policy中没有设置允许跨域加载。 简单地说,content-security-policy能限制页面允许和不允许加载的所有资源,常见的包括&a…

Java超级玛丽小游戏制作过程讲解 第三天 创建并完成常量类02

public class StaticValue {//背景public static BufferedImage bgnull;public static BufferedImage bg2null;//马里奥向左跳跃public static BufferedImage jump_Lnull;//马里奥向右跳跃public static BufferedImage jump_Rnull;//马里奥向左站立public static BufferedImage…

原型链污染

文章目录 1. javascript 原型链2. 原型链变量的搜索3. prototype 原型链污染4. 原型链污染例题4.1 题1:4.2.题2: 1. javascript 原型链 js在ECS6之前没有类的概念,之前的类都是用funtion来声明的。如下 可以看到b在实例化为test对象以后&…

LeetCode笔记:Weekly Contest 357

LeetCode笔记:Weekly Contest 357 1. 题目一 1. 解题思路2. 代码实现 2. 题目二 1. 解题思路2. 代码实现 3. 题目三 1. 解题思路2. 代码实现 4. 题目四 比赛链接:https://leetcode.com/contest/weekly-contest-357 1. 题目一 给出题目一的试题链接如下…

【C语言进阶】指针的高级应用(下)

文章目录 一、指针数组与数组指针1.1 指针数组与数组指针的表达式 二、函数指针2.1 函数指针的书写方式 三、二重指针与一重指针3.1 二重指针的本质3.2 二重指针的用法3.3 二重指针与数组指针 总结 一、指针数组与数组指针 (1)指针数组的实质是一个数组,这个数组中存…

Linux进程(二)

文章目录 进程(二)Linux的进程状态R (running)运行态S (sleeping)阻塞状态D (disk sleep)深度睡眠T(stopped)状态X(dead)状态Z&#x…

【力扣】21. 合并两个有序链表

以下为力扣官方题解,及本人代码 21. 合并两个有序链表 题目题意示例 1示例 2示例 3提示 官方题解迭代思路算法复杂度 本人代码Java提交结果:通过 题目 题意 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成…

【Linux】【预】配置VSCode阅读和编写Linux驱动的代码环境

配置VSCode阅读和编写Linux驱动代码环境 1. 安装vscode,以及配置vscode环境2. 安装VScode相关的插件3. 配置vscode4.总结 1. 安装vscode,以及配置vscode环境 安装vscode请点击如下连接 https://code.visualstudio.com/download2. 安装VScode相关的插件…

SSM(Vue3+ElementPlus+Axios+SSM前后端分离)--搭建Vue 前端工程[一]

文章目录 SSM--搭建Vue 前端工程--项目基础界面实现功能01-搭建Vue 前端工程需求分析/图解代码实现搭建Vue 前端工程下载node.js LTS 并安装: node.js 的npm创建Vue 项目使用idea 打开ssm_vue 项目, 并配置项目启动 Vue3 项目目录结构梳理Vue3 项目结构介绍 配置Vue 服务端口El…

记一次kernel patch(附开源贡献相关)

文章目录 开源操作系统流程手记smatch能发现的典型问题常见的修复方案附:偶然发现,unlikely函数搞开源贡献的一些捷径 开源操作系统 看了zhihu上的一些科普,明白二次开发是常见现象,套壳、抄袭、自研都不是很科学的说法。中外大厂…

Dockerfile构建mysql

使用dockerfile构建mysql详细教学加案例 Dockerfile 文件 # 使用官方5.6版本,latest为默认版本 FROM mysql:5.6 #复制my.cof至容器内 ADD my.cnf /etc/mysql/my.cof #设置环境变量 密码 ENV MYSQL_ROOT_PASSWORD123456my.cof 文件 [mysqld] character-set-server…