哈工大计算机网络课程网络安全基本原理详解之:密钥分发中心与公钥认证中心

news2024/11/13 22:20:32

哈工大计算机网络课程网络安全基本原理详解之:密钥分发中心与公钥认证中心

在介绍密钥分发中心的概念前,先来回顾一下之前介绍的身份认证协议AP4.0:利用随机数R来避免“回放攻击”,并借助于对称加密算法来保证R的加密传输和解密,从而实现身份认证的协议过程。

共享密钥问题与解决方案

我们知道对称加密算法在发送方/接收方使用的是同一共享密钥,用该密钥加密,同时也需要用该密钥解密。**因此,这里涉及到的一个问题就是,发送方和接收方如何实现密钥的共享,即两个实体在网上如何建立共享密钥。**如果这个问题不能得到很好解决的话,那么共享密钥在网络环境下实施起来就存在很大障碍和安全隐患。

解决方案

比较有代表性的解决方案,就是利用可信任的密钥分发中心(Key Distribution Center-KDC)作为实体间的中介(intermediary)

引入密钥分发中心KDC,就是以它作为中介,实现通信实体之间的共享密钥的分发。

密钥分发中心(KDC)

接下来,我们就看一下作为密钥分发中心,是什么样一个形式,发挥什么样的作用。

我们仍然假设一个通信场景,并以此为基础来介绍KDC在两个实体间通信时的作用机理。

仍然以Alice和Bob两个实体间的通信为例:

  • Alice和Bob间通信需要使用共享对称密钥进行加密,如何获取彼此的密钥呢?

  • 引入KDC:一个服务器

    • 每个注册用户(很多用户)共享其与KDC的秘密密钥。也就是说,每个用户如果需要使用密钥的话,都需要在KDC上注册一个密钥,该密钥只有用户自己和KDC知道。
      在这里插入图片描述
  • Alice在KDC上注册一个只有Alice和KDC知道的密钥KA-KDC

  • Bob在KDC上注册一个只有Bob和KDC知道的密钥KB-KDC

  • Alice和Bob只知道自己与KDC之间的对称密钥,用于分别与KDC进行秘密通信。

  • Alice在与Bob进行通信时,为了把自己的密钥告知Bob,就需要借助KDC来完成。

Q:KDC如何支持Bob和Alice确定用于彼此通信的共享对称密钥呢?

  • Alice利用其与KDC之间共享的密钥KA-KDC,将Alice和Bob的身份信息加密,得到KA-KDC(A,B),然后发送给KDC。
  • KDC利用与Alice间的共享密钥对该信息进行解密,并且知道Alice期望与Bob进行通信。为此,KDC为Alice和Bob这次通信生成一个随机数R1。
  • KDC将R1和Alice本身的身份标识利用KDC与Bob之间的密钥KB-KDC进行加密,得到KB-KDC(A, R1),之后再将其与R1拼接后,再次利用KA-KDC进行加密,得到KA-KDC(R1,KB-KDC(A, R1))。将该加密的结果发送给Alice。
  • Alice收到该加密信息后,利用KA-KDC密钥解密得到随机数R1,该随机数R1就可以作为这次与Bob之间通信所使用的会话密钥。
  • 对于KB-KDC(A, R1)这个加密内容,Alice是无法解开的。因为她本次的目的通信对象是Bob,因为在获得这个加密内容后,她会转发给Bob。
  • Bob在收到KB-KDC(A, R1)后,可以利用他与KDC共享的密钥KB-KDC解密,从而得到这个随机数R1。
  • 此时Bob可以获知Alice的身份认证,并且这次通信的会话使用的秘密的对称密钥就是R1。
  • 接下里作为Alice和Bob之间就可以为这次的秘密通信使用R1作为会话密钥(session key),用于共享对称加密。

在这里插入图片描述

总结

以上就是KDC在Alice和Bob之间通信过程中,所起的作用和原理。实际上可以看出,KDC的角色相当于是作为一个大家都可以信任的权威机构,每个通信方都需要向其注册申请自己的密钥。在对称加密中,由于需要通信双方共享对称密钥,但实际上,通信双方本身的密钥是不直接利用网络传输给对方的,而是借助于KDC中介,生成一个临时的共享密钥。由这个临时共享密钥来实现通信双发本次会话的对称加密。

公钥认证中心

上面我们介绍了对称密钥在实际应用中,需要借助KDC来实现密钥分发的基本原理和过程。在这一节中,我们针对上述对称密钥方法中存在的问题,来介绍一种公钥会使用的机制:认证中心(CA)

在之前介绍的身份认证协议AP5.0中,我们介绍了在Alice和Bob间使用对称密钥加密通信时,会存在中间人攻击的问题。事实上,使用公开密钥除了存在这种问题外,还有一个典型的场景就是:比萨恶作剧。

比萨恶作剧

同样以Alice和Bob间的通信为例,看看Trudy(第三方入侵者)可以在通信过程中实施怎样的比萨恶作剧。

  • Ttudy创建邮件订单:Dear Pizza Store: Please deliver to me four pepperon pizzas. Thank you Bob.

    上述邮件订单的意思就是,以Bob的名字,向Pizza店订购了4个pizza。

  • 为了实现上述恶作剧,Trudy会利用她的私钥签名订单。

  • Trudy向比萨店发送订单。

  • 当比萨店索要Bob的公钥时,Trudy向比萨店发送她自己的公钥,但是她声称这是Bob的公钥。

  • 由于没有其他机制来验证该公钥是不是真的属于Bob,比萨店只能利用收到的公钥尝试去解密收到的以为是“Bob"发送的签名订单。当然这是能解密的(因为这是一对Trudy的私钥和公钥),因此,基于非对称加密算法,比萨店由于用该公钥解开了之前以为是真实Bob的私钥加密的订单,所以认定该公钥就是属于Bob的。

  • 比萨店核实签名,然后向Bob配送了4个比萨。

  • 然而可能Bob根本就不喜欢吃比萨,所以这也称为比萨恶作剧。

事实上,我们分析一下,无论是之前的中间人攻击还是比萨恶作剧也好,问题的发生就在于公钥这样一个系统存在一个主要的问题。接下来,我们详细对该问题进行探讨。

公钥问题

核心问题其实上面在讲比萨恶作剧时也提到了,实际上就是,当Alice或者比萨店,当其获得了Bob的公钥时(通过网站,e-mail,磁盘等),她应该如何确定这是真的Bob的公钥,而不是另一个第三方的公钥?

上面的中间人攻击和比萨恶作剧,事实上发生问题的原因,都在于第三方使用了假的公钥来欺骗了接收方。这个问题也就是公钥的主要问题。

如何解决?

同样的,我们可以借助第三方权威认证机构:可信任的认证中心(Certification Authority - CA)。

可信任的认证中心

可信任的认证中心跟我们上面介绍的密钥分发中心KDC类似,它也是一个服务器形式的基础设施,它的主要目的是实现:将网络中通信的实体与其真正的公钥进行绑定。

因此,作为我们在网络通信中要使用公钥的每个人、路由器等,都需要在CA上注册其公钥。

  • 每个网络通信实体向CA提供“身份证明”
  • CA利用其自己的私钥,对通信实体的公钥进行签名,进而创建绑定通信实体及其公钥的证书(certificate)
  • 证书包含了由CA签名的通信实体的公钥—CA声明:这是**的公钥

在这里插入图片描述

有了证书之后,将来任何实体需要获取Bob的公钥时,就不会把一个“欺骗性”的密钥当作Bob的密钥,因为它会核实这个密钥的证书是否由权威认证颁发的。

就像大学毕业出去找工作,用人单位不会只听信你自己说:我是***名牌大学毕业的,而是会看你的毕业证书,因为证书是由教育部权威机构颁发的。上面的CA颁发证书也是类似的道理。

有了CA认证中心后,公钥系统就可以比较安全的来运行和实施了。

此时,当Alice想要Bob的公钥时:

  • 首先获取Bob的公钥证书(从Bob或其他地方)。
  • 应用CA的公钥,解密证书中签名的公钥,从而获得Bob的实际公钥。

在这里插入图片描述

公钥证书的主要内容

在这里插入图片描述

在示例中包含这样几部分:

  • 序列号,认证中心会为每个证书编号,是一个唯一的序列号。
  • 证书持有者信息,即对哪个实体的证书进行签名的。包括算法和密钥值。
  • 证书发行者信息
  • 证书有效期
  • 发行者的数字签名

总结:公钥认证中心CA是现在网络公钥系统得以正常运行的重要保障!

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

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

相关文章

用python编写一个小程序,如何用python编写软件

大家好,给大家分享一下用python编写一个小程序,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 1、python可以写手机应用程序吗? 我想有人曲解意思了,人家说用python开发渣蔽一个手机app,不是…

“ARTS挑战:探索技术,分享思考“

文章目录 前言一、学习的内容二、遇到的困难及解决办法三、学习打卡成果展示四、学习技巧的总结五、未来学习打卡计划后记 关于 ARTS 的释义 ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Sha…

大数据面试实际场景类问题怎么准备,实在遭不住了!

300万字!全网最全大数据学习面试社区等你来! 前几天我发了一个面试总结的文章,实际场景类问题在大数据领域面试的占比越来越多。大家面试开始「务实」,在实际场景问题中,顺便增加对框架原理性内容的考察,这…

Docker中gitlab以及gitlab-runner的安装与使用

1、本文主要讲述如何使用Docker安装gitlab以及gitlab-runner,并且会讲述gitlab-runner如何使用 2、gitlab部分不需要修改过多的配置即可使用,本文未讲述https配置,如有需求,可自行百度 3、Docker如何安装可以自行百度 一、Docker安…

react中的高阶组件理解与使用

一、什么是高阶组件? 其实就是一个函数,参数是一个组件,经过这个函数的处理返回一个功能增加的组件。 二、代码中如何使用 1,高级组件headerHoc 2,在普通组件header中引入高阶组件并导出高阶组件,参数是普…

linux备份与还原系统(类似window上ghost备份还原)

一、摘要 在linux上进行了几年的开发工作 (qt ros) 突然发现,现在有公司硬件、笔记本台式机一台占一个系统,导致硬件太浪费,又不能用虚拟机(有时候要链接硬件必须物理机)怎么办? 二…

Simple Set Problem

题意: 给你k个集合,每个集合里有ci个数,在每个集合里各挑一个数,求挑的k个数里的最大值减去最小值的值最小 思路: 可以将题意转换为,挑的所有数的集合一共有n种,求挑的数的最大值最小值的差最…

idealC-2020.1.4免费下载(附安装教程)

下载地址 [软件名称]: IntelliJ IDEA 2020 [软件大小]: 560MB [安装环境]: Windows [下载链接]: 链接: https://pan.baidu.com/s/1yGOWqfRVE6cPsAe0qHpnbg https://pan.baidu.com/s/1yGOWqfRVE6cPsAe0qHpnbg 提取码: zt88 软件介绍 idea 2020.是由捷克IntelliJ公司而…

快速响应,上门维修小程序让您享受无忧生活

随着科技的不断发展和智能手机的普及,上门维修小程序成为了现代人生活中越来越重要的一部分。上门维修小程序通过将维修服务与互联网相结合,为用户提供了更加便捷、高效的维修服务体验。下面将介绍上门维修小程序开发的优势。   提供便捷的预约方式&am…

NFTScan | 07.24~07.30 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。周期:2023.07.24~ 2023.07.30 NFT Hot News 01/数据:Azuki 地板价跌破 5 枚 ETH,过去 7 日跌幅逾 20% 7月24日, Blur数据显示,Azuki地板价已跌破…

开关降压型DC-DC芯片方案:30V-80V转24V/12V/5V芯片

摘要:本文介绍了一种开关降压型DC-DC芯片方案,可将输入电压范围在9V至100V之间的信号转换为24V、12V和5V输出。该芯片采用了外挂MOS管,能够提供10A峰值电流输出,并且具备低待机功耗、内置过温保护和输出短路保护等功能。此外&…

【图像分类】CNN+Transformer结合系列.3

介绍两篇图像分类的论文:ResMLP(arXiv2305),MetaFormer(CVPR2022),两者都与Transformer有关系,前者基于transformer结构的特点设计ResMLP,后者认为宏观架构才是Transform…

【教程】Tkinter实现Python软件自动更新与提醒

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 文件下载:https://download.csdn.net/download/sxf1061700625/88134425 示例演示: 参考代码: import os import _thread import shutil import subprocess import sys import …

RFID出入库管理系统

RFID(射频识别)技术作为一种先进的自动识别技术,已经广泛应用于各个领域,仓库管理系统就是其中之一。RFID仓储管理系统利用RFID技术实现实时数据传输和信息识别,为企业提供了高效、准确的库存管理解决方案。 RFID出入库管理系统基于RFID技术&…

基础概念:图片的卷积可视化结果

1. 前言 之前介绍过卷积的基本概念,具体的可以参考图片的卷积和池化操作,这里给出可视化的操作,因为卷积在初学的时候比较抽象,现在有时间就写写看,希望可以给初学的同学一点启发吧(这里前提是学过pytorch和相关的图像…

Elasticsearch和Kibana的安装及验证

金翅大鹏盖世英,展翅金鹏盖世雄。 穿云燕子锡今鸽,踏雪无痕花云平。 ---------------- 2023.7.31.101 ----------------- 本文密钥:365 Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,常用来进行全文检索、…

分享亿款好用的PDF编辑工具

所周知,PDF文件是不能够像word/excel/ppt等文件一样,可以被随意编辑的,PDF文件往往只能够被查看,我们无法对它进行编辑,或者对上面的文字进行复制,也不能任意删除上面的页面。但是很多时候,我们…

【应用层】Http协议的学习

文章目录 前言一、了解HTTP协议是如何规定的总结 前言 http/https都是应用层协议,下面是应用层的作用: 应用层主要负责应用程序之间的沟通,如简单电子邮件传输(SMTP),文件传输协议(FTP&#x…

支付宝调试问题

网页支付返回表单不正确显示 升级前现象&#xff1a; SpringBoot 的返回给前台的<form>表单会自动提交&#xff0c;结果一直提示这个&#xff0c;而不是期望的支付宝登录页 实际得到这个&#xff1a; 期望得到这个&#xff1a; 因为沙箱账号是之前申请的&#xff0c;所…

[CrackMe]Cruehead.2.exe的逆向及注册机编写

1. 逆向工程 这个版本连一个注册界面也没有 进去一看, 他打开了一个CRACKME32.KEY, 估计里面就是放key的, 于是我随便写了一些数字进去 从CRACKME32.KEY中读取18个字节, 然后确认读取是否成功, 可见密码是18字节, 回去把密码长度改成18在重新调试 接着把key值输入CalcHash函…