CAN304 W5

Designing security protocols

Security protocols:

A series of steps involving two or more parties designed to accomplish a task with suitable security

涉及两方或多方的一系列步骤,旨在以适当的安全性完成任务

Sequence is important

这些步骤的顺序很重要

Different protocols assume different levels of trust between participants

不同的协议假设参与者之间的信任程度不同。

例如:Payment protocol,Smart lock protocol。

Goals of security protocols

Each protocol is intended to achieve some very particular goal(like setting up a key between two parties)

每个协议都旨在实现一些非常特殊的目标

Protocols may only be suitable for that particular purpose

协议可能只适用于该特定目的

Important secondary goal is minimalism

重要的次要目标是极简主义

  • Fewest possible messages
  • Least possible data
  • Least possible computation

Trusted arbitrator: A disinterested third party trusted by all legitimate participants. Arbitrators often simplify protocols, but add overhead and may limit applicability(所有合法参与者都信任的无私的第三方。Arbitrators 通常会简化协议,但会增加开销,并可能限制适用性)

Key establishment protocols

Often, we want a different encryption key for each communication session

通常,我们希望每个通信会话使用不同的加密密钥。但是,我们如何将这些钥匙交给参与者?

session: period of time over which parties are willing to maintain state

Key establishment 是一种加密机制,它为通过开放网络进行通信的两方或多方提供共享密钥。

类别:

  • Key transport protocols

    ​ the shared secret key is created by one party and securely transmitted to the second party.

    • 在密钥传输协议中,共享密钥由一方创建并安全地传输给另一方
  • Key agreement (or exchange) protocols

    ​ both parties contribute information which is used to derive the shared secret key

    • 在密钥交换协议中,双方都提供用于派生共享密钥的信息

Key transport protocols

Key transport with private-key cryptography

Alice 和 Bob 想用新密钥安全地交谈,他们都信任 arbitrators Trent,并假设 Alice 和 Bob 各自与 Trent 共享一个密钥。

最初,Alice 和 Trent 分享 KA,Bob 和 Trent 分享 KB

Key establishment:

  1. Alice -> Trent: Alice 请求和 Bob 的会话密钥

  2. Trent -> Alice:\(\{K_S\}_{K_A}, \ \{K_S\}_{K_B}\) (Trent 生成密钥 KS,并分别使用 KA 和 KB 加密 KS,然后把加密后的内容发给 Alice)

  3. Alice: \(K_S \ \leftarrow \ \{K_S\}_{K_A}\) (Alice 使用 KA 解密得到 KS)

    Alice -> Bob:\(\{K_S\}_{K_B}\) (Alice 把剩下的内容发给 Bob)

  4. Bob: \(K_S \ \leftarrow \ \{K_S\}_{K_B}\) (Bob 使用 KB 解密得到 KS,KS 即他们交流所使用的密钥)

What has the protocol achieved?

  • Alice 和 Bob 都有一个新的会话密钥,会话密钥是使用只有 Alice 和 Bob 知道的密钥传输的,Alice 和 Bob 都知道 Trent 参加了
  • 不过这有一个漏洞

The man-in-the-middle attack

假如有一个攻击者 Mallory,他也是 Trent 的合法用户。当 Alice 索求和 Bob 的密钥时,Mallory 把信息改成 Alice 和 Mallory 的密钥,然后他就会和 Alice 共享一个密钥;之后 Mallory 再索求和 Bob 的密钥,然后他就和 Bob 也共享密钥;这样 Alice 和 Bob 以为他们在交流,实际上他们的信息经过了 Mallory 的中转,Mallory 可以窃听 Alice 和 Bob 的对话。

这个问题是缺乏身份验证 ( lacking authentication) 导致的,可以通过使用MAC(using MAC)或在消息中包括时间戳/计数器和身份(including timestamps/counter and identity in the messages)

Key transport with public key cryptography

此问题中,没有受信任的 arbitrator,Alice 和 Bob 互相发送他们的公钥。

Alice 生成一个会话密钥并将其发送给 Bob,用 Bob 的公钥加密,用Alice 的私钥签名;Bob 验证签名,并用他的私钥解密 Alice 的消息,然后使用共享会话密钥加密会话。


Man-in-the-middle attack

攻击者 Mallory 也有一对公钥和私钥,在 Alice 和 Bob 交换公钥时,Mallory 把自己的公钥发给双方,之后 Alice 和 Bob 以为他们在交流,实际上他们的信息经过了 Mallory 的中转,Mallory 可以窃听 Alice 和 Bob 的对话。

这个问题可以通过以下方法解决:

  • PKI: public-key infrastructure

    • CA (certificate authority) issues public-key certificates,证书中会包含验证身份的信息
  • Identity-based cryptography
    • identity 是(或可用于生成)公钥

Key exchange protocols

Basic ECDH

x,y是私钥,k是协商出的密钥

通过 ECDDH 来共享密钥,最后 k1 和 k2 是相等的 (因为 \(xyG = yxG\) )。

Man-in-the-middle to basic ECDH

Reason: Lack of authentication

Solution: Introduce authentication in the protocol

原因:缺乏身份验证

解决方案:在协议中引入身份验证

ECDH-based AKE example: PW-AKE

• IEEE 802.15.6 Password Authenticated Association

Other applications of security protocols

A smart lock system

Suppose in unlock process,the lock only support short-range bluetooth connection for security purpose.

假设在开锁过程中,为了安全起见,锁只支持短距离蓝牙连接。

  • Task/purpose

    ​ When receive a "unlock" request from the host, unlock

    ​ When receive a "unlock" request from host authorized guest,unlock

    ​ Otherwise, keep locked

    • 当收到主机 (host) 的“解锁”请求时,解锁
    • 当收到来自主人授权客人 (guest) 的“解锁”请求时,解锁
    • 否则,保持锁定
  • Security goals

    • Integrity: the request if originated from the host and not changed improperly(完整性:请求是从主机组织而来的,并且没有被不正确地更改)

Design 1: using private-key tools

最初,锁和主机(手机)共享一个密钥 k。

Protocol I: host unlock;Protocol II: guest unlock。

主要思路是 host 根据密钥和随机数 r 生成 MAC tag,然后锁验证 tag。

Design 2: using public-key tools

最初,锁存储主机的公钥。

Protocol I: host unlock;Protocol II: guest unlock。

主要思路是 host 根据私钥和随机数 r 生成签名,然后锁用公钥验证签名。

CAN304 W5的更多相关文章

  1. 20162325 金立清 S2 W5 C14

    20162325 2017-2018-2 <程序设计与数据结构>第5周学习总结 关键内容摘要 集合是收集并组织其他对象的对象 集合中的元素一般由加入集合的次序或元素之间某些固有的关系而组织 ...

  2. java web学习总结(五) -------------------servlet开发(一)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  3. Android—万能ListView适配器

    ListView是开发中最常用的控件了,但是总是会写重复的代码,浪费时间又没有意义. 最近参考一些资料,发现一个万能ListView适配器,代码量少,节省时间,总结一下分享给大家. 首先有一个自定义的 ...

  4. Android—关于自定义对话框的工具类

    开发中有很多地方会用到自定义对话框,为了避免不必要的城府代码,在此总结出一个工具类. 弹出对话框的地方很多,但是都大同小异,不同无非就是提示内容或者图片不同,下面这个类是将提示内容和图片放到了自定义函 ...

  5. 在C#里面给PPT添加注释

    平常开会或者做总结报告的时候我们通常都会用到PowerPoint演示文稿,我们可以在单个幻灯片或者全部幻灯片里面添加注释,这样观众可以从注释内容里面获取更多的相关信息. 有些朋友不清楚如何在幻灯片里面 ...

  6. CSS3中的动画效果记录

    今天要记录的是CSS3中的三种属性transform.transition以及animation,这三个属性大大提升了css处理动画的能力. 一.Transform 变形 CSS中transform ...

  7. 基於tiny4412的Linux內核移植--- 中斷和GPIO學習(2)

    作者 彭東林 pengdonglin137@163.com 平臺 tiny4412 ADK Linux-4.4.4 u-boot使用的U-Boot 2010.12,是友善自帶的,爲支持設備樹和uIma ...

  8. 使用MATLAB对图像处理的几种方法(上)

    实验一图像的滤波处理 一.实验目的 使用MATLAB处理图像,掌握均值滤波器和加权均值滤波器的使用,对比两种滤波器对图像处理结果及系统自带函数和自定义函数性能的比较,体会不同大小的掩模对图像细节的影响 ...

  9. java web学习总结(二十七) -------------------JSP标签介绍

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  10. java web学习总结(二十六) -------------------JSP属性范围

    所谓的属性范围就是一个属性设置之后,可以经过多少个其他页面后仍然可以访问的保存范围. 一.JSP属性范围 JSP中提供了四种属性范围,四种属性范围分别指以下四种: 当前页:一个属性只能在一个页面中取得 ...

随机推荐

  1. vue 格式化时间戳

    前言 有时候我们需要前端处理后端传过来的时间戳进行格式化为日期. Html部分 template中这样使用,需要处理的字段名,再加上过滤器方法 <el-table-column label=&q ...

  2. Creo 4.0二次开发工具框架搭建

    一.新建MFC DLL工程  二.配置项目属性 附加依赖项中输入:netapi32.lib;psapi.lib;mpr.lib;wsock32.lib;protk_dll_NU.lib;protk_d ...

  3. C#反射与特性{学习笔记}

    其实这篇文章主要是想要学习反射,但是反射和特性往往是不分家的,所以也要了解一些特性相关的知识. 简单来说,继承了Attribute类的,就是特性 作用是给类或者方法打个标签 反射是在程序运行时,去读取 ...

  4. 【电脑】解决DiskGenius调整分区大小时报错“文件使用的簇被标记为空闲或与其它文件有交叉”

    [电脑]解决DiskGenius调整分区大小时报错"文件使用的簇被标记为空闲或与其它文件有交叉" 零.报错 在使用DiskGenius对磁盘分区进行调整时,DiskGenius检查 ...

  5. Windows体验-注册表

    打开方式中关闭在应用商店查找关联应用 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Explorer NoUseStoreOpenWit ...

  6. nodejs读写redis和mongo

    nodejs读写redis https://redis.io/commands https://www.npmjs.com/package/redis var redis = require('red ...

  7. Visual Studio 2022 v17.13新版发布:强化稳定性和安全,助力 .NET 开发提效!

    前言 今天大姚带领大家一起来看看 Visual Studio 2022 v17.13 新版发布都更新了哪些新功能,为我们开发工作带来了哪些便利,是否真的值得我们花费时间把 Visual Studio ...

  8. MySQL 的索引类型有哪些?

    MySQL 的索引类型 MySQL 提供多种索引类型,用于优化数据查询性能.每种索引类型在存储结构.适用场景和性能特性方面各不相同. 1. 常见的索引类型 (1)B+树索引 结构:基于 B+ 树实现, ...

  9. DPDI online在线调度系统环境部署

    DPDI online简介: DPDI Online 是一款基于Kettle的强大在线任务调度平台,凭借其高效与灵活性,专为调度和监控Kettle客户端生成的ETL任务而设计 DPDI online部 ...

  10. 【工具】SageMath|Ubuntu 22 下 SageMath 安装和一般数域筛法代码示例(2024年)

    就一个终端就能运行的东西, 网上写教程写那么长, 稍微短点的要么是没链接只有截图.要么是链接给的不到位, 就这,不是耽误生命吗. 废话就到这里. 文章目录 链接 步骤 链接 参考: Install S ...