现代密码学-认证协议

A.B两个用户想通过网络先建立安全的共享密钥再进行保密通信?A(B)如何确信自己正在和B(A)通信而不是C?这种通信方式为双向通信,此时的认证为相互认证。

相互认证

A/B两个用户在建立共享密钥时需要考虑的核心问题:保密性和实时性;

保密性:防止会话密钥伪造或泄露,会话密钥组哎通信双方之间交换时应该以密文的形式--所以通信双方事先应该有密钥或公钥。

实时性:防止消息的重放攻击。常用两种方法:时间戳(要求各方的时钟同步,每次收到的消息里都包含一个时间戳,接收方需要用该时间戳和自己本地的时间作比较;该方法不能用于面向连接的应用过程)和询问-应答(发送者发一个一次性随机数询问,接收者回应正确的一次性随机数;该方法不适合于无连接场景)。

单钥加密体制

单密钥体制需要有一个可信的密钥分配中心KDC,每个用户与KDC都有一个共享的密钥--主密钥K_A,K_B。KDC为通信双方建立一个短期的会话密钥,用主密钥加密会话密钥后分配给用户。

  1. A向KDC发起向B通信的请求:A\rightarrow KDC:ID_{A}||ID_{B}||N_1
  2. A从KDC处获得会话密钥K_sKDC\rightarrow A:E_{K_A}[K_s||ID_B||N_1||E_{K_B}[K_s||ID_A]]
  3. A将KDC发来的消息用自己的密钥解密,获得会话密钥K_s和要发给B的密文信息E_{K_B}[K_s||ID_A]发给B:A\rightarrow B:E_{K_B}[K_s||ID_A]
  4. B用自己的密钥解密获得会话密钥 ,B生成一次性随机数并用会话密钥加密发给A:B\rightarrow A:E_{K_s}[N_2]
  5. A收到消息用会话密钥解密获得B发的随机数,并应答B的消息:A\rightarrow B:E_{K_s}[f(N_2)]

第4,5步用于防止重放攻击。攻击者可以截获第3步消息进行重放攻击,如果没有第4,5步,B无法检测出自己得到的会话密钥式重放的旧的密钥。

攻击者在截获第3部消息后,可进一步截获第4步B发出的询问,然后假冒A做出第5步回答。对于这一攻击场景,可以在第2,3步加上时间戳。

  1. A\rightarrow KDC:ID_{A}||ID_{B}
  2. KDC\rightarrow A:E_{K_A}[K_s||ID_B||T||E_{K_B}[K_s||ID_A||T]]
  3. A\rightarrow B:E_{K_B}[K_s||ID_A||T]
  4. B\rightarrow A:E_{K_s}[N_1]
  5. A\rightarrow B:E_{K_s}[f(N_1)]

时间戳用于保证会话密钥的时效性。|Clock-T|< \Delta t_1+\Delta t_2,Clock为本地时钟。t1为本地时钟与KDC时钟差,t2为网络时延。

上面的改进还存在问题:等待重放攻击:利用时钟同步差异进行攻击,若发送方时钟超前,攻击者截获发送方消息并等待消息时间戳接近接收方时间再重发该消息。---应对方法:网络各方以KDC时钟为基准定期检测调整;还可增加使用一次性随机数握手协议

A\rightarrow B:ID_A||N_A

B\rightarrow KDC:ID_B || N_B||E_{K_B}[ID_A||N_A||T_B]

KDC\rightarrow A:E_{K_A}[ID_B || N_A||K_s||T_B]||E_{K_B}[ID_A||K_s||T_B]||N_B

A\rightarrow B:E_{K_B}[ID_A||K_s||T_B]||E_{K_s}[N_B]

 


公钥加密体制

认证服务器AS密钥对SK_{AS},PK_{AS},A的密钥对SK_A,PK_A,B的密钥对SK_B,PK_B

  1. A将自己的身份和想通信的对象身份一起发给AS:A\rightarrow AS:ID_A ||ID_B
  2. AS发给A两个链接的数据项都利用AS的私钥加密(AS签名),分别作为分发给双方的公钥证书AS\rightarrow A:E_{SK_{AS}}[ID_A||PK_{A}||T]||E_{SK_{AS}}[ID_B||PK_B||T]
  3. A选取会话密钥并经自己的密钥和B的公钥加密后连同两个证书一起发给BA\rightarrow B:E_{SK_{AS}}[ID_A||PK_{A}||T]||E_{SK_{AS}}[ID_B||PK_B||T]||E_{PK_B}[E_{SK_{A}}[K_s]||T]

时间戳T用于防止重放 攻击,需要各方时间同步。

也可使用一次性随机数,不要要同步时钟。

 KDC密钥对SK_{KDC},PK_{KDC}

  1. A\rightarrow KDC:ID_A||ID_B
  2. KDC\rightarrow A:E_{SK_{KDC}}[ID_B||PK_B]
  3. A\rightarrow B:E_{PK_B}[N_A||ID_A]
  4. B\rightarrow KDC:ID_B||ID_A||E_{PK_{KDC}}[N_A]
  5. KDC\rightarrow B:E_{SK_{KDC}}[ID_A||PK_A]||E_{PK_B}[{E_{SK_{KDC}}[N_A||K_s||ID_B]}]
  6. B\rightarrow A:E_{PK_A}[E_{SK_{KDC}}[N_A||K_s||ID_B]||N_B]
  7. A\rightarrow B:E_{K_s}[N_B]

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

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

相关文章

家政服务小程序,提高企业在市场中的竞争力

近几年&#xff0c;人们对家政的需求持续增加&#xff0c;面对小程序的快速发展&#xff0c;互联网家政的模式成为了市场新的发展方向&#xff0c;越来越多的居民也开始在线上预约家政服务。随着当下人们对家政的需求日益提升&#xff0c;线上家政小程序利用各种信息技术&#…

verilog阻塞和非阻塞语法

阻塞和非阻塞是FPGA硬件编程中需要了解的一个概念,绝大部分时候,因为非阻塞的方式更加符合时序逻辑设计的思想,有利于时钟和信号的同步,更加有利于时序收敛,所以除非特殊情况,尽量采用非阻塞方式。 1,非阻塞代码 非阻塞赋值,A和B是同时被赋值的,具体是说在时钟的上升…

5. MySQL 运算符和函数

文章目录 【 1. 算术运算符 】【 2. 逻辑运算符 】2.1 逻辑非 (NOT 或者 !)2.2 逻辑与运算符 (AND 或者 &&)2.3 逻辑或 (OR 或者 ||)2.4 异或运算 (XOR) 【 3. 比较运算符 】3.1 等于 3.2 安全等于运算符 <>3.3 不等于运算符 (<> 或者 !)3.4 小于等于运算符…

十足正式在山东开疆拓土!首批店7月初开业,地区便利店现全新面貌!

十足便利店将正式进军山东市场&#xff0c;以济南、淄博两座城市为核心发展起点&#xff0c;目前济南市已经有三家十足门店正在装修施工中&#xff0c;首批15家门店将于7月初开业&#xff0c;这标志着十足集团市场战略布局迈出了至关重要的一步。 随着3月份罗森品牌在济南成功开…

Inner-IoU

文章目录 AbstractMethodBBox Regression Mode AnalysisInner-IOU Loss paper code Abstract 作者指出IoU损失在理论上有能力精确描述边界框回归状态&#xff0c;但在实践中&#xff0c;它不能自适应地匹配不同的检测器和检测任务&#xff0c;导致泛化能力较弱。 为了解决这个…

Linux磁盘分区(fdisk)和卷管理详解(VG-LV-PV)

先看整体图&#xff0c;再讲解概念 一、磁盘分区 一个磁盘disk可以分多个区part&#xff0c;用fdisk命令&#xff0c;举例把/dev/vdb划分为/dev/vdb1和/dev/vdb2 二、创建虚拟卷 LVM是逻辑盘卷管理&#xff08;Logical Volume Manager&#xff09;的简称&#xff0c;他是磁盘…

基于Sentry+OpenTelemetry实现微服务前后端全链路监控

文章目录 前⾔背景技术⽅案Sentry私有化部署部署环境准备 项目集成前端后端agent探针集成sentry sdk集成增强探针为⽇志注⼊TraceID异常处理SDK⾃定义开发sentry sdk⾃定义开发⾃定义SentryEvent注⼊otel追踪信息⾃定义全局异常上报issue事件新增动态过滤功能 Java Agent Exten…

六位一线AI工程师总结大模型应用摸爬滚打一年的心得,网友:全程高能!

六位一线AI工程师和创业者&#xff0c;把在大模型应用开发上摸爬滚打一整年的心得&#xff0c;全&#xff01;分&#xff01;享&#xff01;了&#xff01; &#xff08;奇怪的六一儿童节大礼包出现了&#xff09; 这篇干货长文&#xff0c;一时间成为开发者社区热议的话题。…

紧急通知!Win10将于2025年终止支持,快来升级Win11吧!

近期&#xff0c;微软更新了官方支持页面&#xff0c;我们可以看到微软官方在2025年10月14日之后&#xff0c;不再为 Win10系统提供安全更新或技术支持。到这个时间&#xff0c;Win10用户的电脑仍可正常工作&#xff0c;但建议Win10用户都升级为Win11版本&#xff0c;接下来小编…

东航携手抖音生活服务开启机票首播,推出国内、国际超值机票次卡

在民航暑运旺季到来之际&#xff0c;越来越多的用户选择提前做好旅行规划&#xff0c;囤下高性价比的出游商品。6月6日18点&#xff0c;中国东方航空&#xff08;以下简称“东航”&#xff09;将在抖音开启首次机票直播&#xff0c;推荐多款超值机票次卡及空中Wi-Fi等特色产品&…

Angular17版本集成Quill富文本编辑器

Angular17版本集成Quill富文本编辑器 前言:网上找了好多富文本资源,对应Angular17版本的且兼容的太少了,且找到不到对应的版本 自己就去网上找个兼容的免费的富文本组件 1.兼容Angular17版本的quill包 "types/quill": "^1.3.10","ngx-quill": …

备战618!各广告平台SDK版本更新;最新支持eCPR指标;新增自动创建广告源平台 | TopOn产品更新

「TopPro 每月产品速递」是由TopOn最新推出的产品专栏&#xff0c;将会以月为周期梳理TopOn最新产品动态&#xff0c;致力于为互联网从业者提供优质服务&#xff0c;引领行业产品发展。 TopPro | 3~5月产品速递 2024.03.01-05.30 01 eCPR指标支持 // 功能描述 TopOn后台支…

C语言字符、数组指针变量

目录 一、字符指针变量 二、数组指针变量 a.数组指针变量是什么 b.数组指针变量的书写格式 c.数组指针变量如何初始化 d.二维数组传参的本质 一、字符指针变量 在指针的类型中我们知道有一种指针类型为字符指针 char* 。 其一般使用&#xff1a; int main() {char ch w…

ES 8的向量检索性能调优实践

前言 ES的官方实验室曾发布过一篇博客,介绍了使ES向量检索性能获得显著提升的技术要点与展望: 多线程搜索能力的利用:Lucene 的分段架构允许实现多线程搜索能力。Elasticsearch 通过同时搜索多个段来提高性能,使用所有可用的 CPU 核心的计算能力显著减少了单个搜索的延迟。…

关闭windows11磁盘地址栏上的历史记录

关闭windows11的磁盘地址栏上的历史记录 windows11打开磁盘后访问某一个磁盘路径后会记录这个磁盘路径&#xff0c;而且有时候会卡住这个地址栏&#xff08;关都关不掉&#xff09;&#xff0c;非常麻烦。 如下图所示&#xff1a; 关闭地址栏历史记录 按下windows键打开开…

Python 机器学习 基础 之 【常用机器学习库】 Matplotlib 数据可视化库

Python 机器学习 基础 之 【常用机器学习库】 Matplotlib 数据可视化库 目录 Python 机器学习 基础 之 【常用机器学习库】 Matplotlib 数据可视化库 一、简单介绍 二、Matplotlib 基础 1、安装 Matplotlib 2、导入 Matplotlib 3、基本绘图 3.1 绘制简单折线图 3.2、绘…

Framework | Android Rescue Party: 提升设备恢复力的机制

Framework | Android Rescue Party: 提升设备恢复力的机制 什么是 Rescue Party? Rescue Party 是 Android 操作系统中的一种机制,旨在当设备遇到系统崩溃或启动失败时提供自动恢复的方案。这一机制特别针对系统关键组件的反复崩溃,防止设备陷入无法使用的状态。 主要功能…

学习笔记——网络参考模型——TCP/IP模型(网络层)

三、TCP/IP模型-网络层 1、IPV4报头 (1)IPV4报文格式 IP Packet(IP数据包)&#xff0c;其包头主要内容如下∶ Version版本∶4 bit&#xff0c;4∶表示为IPv4; 6∶表示为IPv6。 Header Length首部长度∶4 bit&#xff0c;代表IP报头的长度(首部长度)&#xff0c;如果不带Opt…

Java 还能不能继续搞了?

金三银四招聘季已落幕&#xff0c;虽说行情不是很乐观&#xff0c;但真正的强者从不抱怨。 在此期间&#xff0c;我收到众多小伙伴的宝贵反馈&#xff0c;整理出132道面试题&#xff0c;从基础到高级&#xff0c;有八股文&#xff0c;也有对某个知识点的深度解析。包括以下几部…

HackTheBox-Machines--Aragog

Aragog 测试过程 1 信息收集 NMAP 服务器开启了 21、22、80端口 21 端口测试 首先测试 21 端口&#xff0c;21端口开启了匿名登录 ftp服务器上存在 test.txt 文件&#xff0c;test.txt 文件是 xml 格式。 80 端口测试 echo "10.129.97.250 aragog.htb" | sudo tee…