密钥分发与公钥认证:保障网络通信的安全

在网络通信中,密钥的安全分发和公钥的有效认证是确保系统安全的关键。本文将为基础小白介绍密钥分发与公钥认证的基本概念和实际应用,帮助大家更好地理解这些技术如何保障我们的网络通信安全。

1. 密钥分发与公钥认证的背景

由于密码算法是公开的,因此密钥系统的安全性依赖于密钥的安全保护。在对称密钥密码体制中,通信双方要共享一个秘密密钥,如何将密钥分发到通信的双方是一个需要解决的问题。显然密钥必须通过安全的通路进行分发。

1.1 网外分发与网内分发

一种方法是派非常可靠的信使携带密钥分发给互相通信的用户,这种方法称为网外分发。但随着用户的增多和通信量的增大,密钥更换频繁(密钥必须定期更换才能做到可靠),派信使的办法将不再适用。因此,必须解决网内密钥自动分发的问题。

1.2 公钥的发布

对于公钥密码体制,虽然不需要共享密钥,公钥可以发布在报纸或网站上,但如何验证该公钥确实是某实体真正的公钥仍然是一个问题。这些问题的解决可以通过使用一个可信的中介机构来实现。

2. 对称密钥的分发

对称密钥的分发问题在于如何让通信双方共享密钥。目前常用的对称密钥分发方式是设立密钥分发中心(Key Distribution Center,KDC) 。KDC是一个大家都信任的机构,其任务就是给需要进行秘密通信的用户临时分发一个会话密钥。

2.1 KDC的工作原理

image

图7—10展示了KDC进行密钥分发的基本过程。假定用户A和B都是KDC的登记用户,他们分别拥有与KDC通信的主密钥KA和KB。密钥分发的三个步骤如下:

  1. 用户A请求通信:用户A向KDC发送用自己私有的主密钥KA加密的报文E(A,B),说明想和用户B通信。
  2. KDC生成会话密钥:KDC用随机数产生一个“一次一密”密钥R供A和B这次的通信使用,然后向A发送回答报文,这个回答报文用A的主密钥KA加密,报文中有密钥R和请A转发给B的报文E(KB)(A,R),但报文E(KB)(A,R)是用B的主密钥KB加密的,因此A无法知道报文E(KB)(A,R)的内容。
  3. 用户A转发报文:用户A将报文E(KB)(A,R)转发给B。B收到后,用自己的主密钥KB解密,知道A要和它通信,同时也知道和A通信时所使用的密钥R。

此后,A和B就可使用这个一次一密的密钥进行本次通信了。

2.2 防止重放攻击

KDC还可在报文中加入时间戳,防止报文的截取者利用以前记录下的报文进行重放攻击。密钥R是一次性的,因此保密性较高。而KDC分配给用户的主密钥,如KA和KB,都应定期更换以减少攻击者破译密钥的机会。

3. 公钥的签发与认证

在公钥体制中,如果每个用户都具有其他用户的公钥,就可实现安全通信。这样看来好像可以随意公布用户的公钥。其实不然。

3.1 认证中心(CA)

为了确保公钥的真实性,需要有一个认证中心(Certification Authority, CA) 将公钥与其对应的实体(人或机器)绑定。认证中心一般由政府或权威机构出资建立,负责为用户的公钥签发证书。

3.2 CA签发证书的过程

  1. 验证身份:用户向CA申请证书,提交身份证明文件。CA核实用户的真实身份。
  2. 生成密钥对:CA为用户生成私钥和公钥对,并生成证书。证书中包含公钥及其拥有者的身份标识信息(如人名、公司名或IP地址)。
  3. 签名与发布:CA用自己的私钥对证书进行数字签名,确保证书的真实性。用户可以将证书通过网络发送给希望与之通信的实体,或存放在服务器供其他用户下载。

3.3 PKI层次结构

image

由一个CA来签发全世界所有的证书显然是不切实际的。这会带来负载过重和单点故障问题。一种解决方案是将许多CA组成一个层次结构的公钥基础设施(Public Key Infrastructure,PKI) ,在全球范围内为所有互联网用户提供证书的签发与认证服务。

下级CA的证书由上级CA签发和认证。顶级的根CA能验证所有1级CA的证书,各个1级CA可以在一个很大的地理区域或逻辑区域内运作,而2级CA可以在一个相对较小的区域内运作。

3.4 PKI的信任链

所有用户都信任该层次结构中顶级的CA,但可以信任也可以不信任中间的CA。用户可以在自己信任的CA获取个人证书,当要验证来自不信任CA签发的证书时,需要到上一级验证该CA的证书的真伪,如果上一级CA也不可信任,则需要到更上一级进行验证,一直追溯到可信任的一级CA。这一过程最终有可能一直追溯到根CA。

4. 密钥分发与公钥认证的实际应用

4.1 电子商务

在电子商务中,密钥分发与公钥认证确保了交易双方的身份验证和数据传输的机密性。例如,用户在进行网上支付时,支付平台使用公钥加密用户的支付信息,确保信息在传输过程中不被窃取或篡改。

4.2 企业内部通信

企业内部通信中,使用KDC分发对称密钥,可以确保员工之间的通信安全。通过CA认证,企业可以确保只有经过认证的员工设备才能接入内部网络。

4.3 物联网(IoT)

在物联网中,设备之间的通信安全至关重要。通过PKI,设备可以获得证书并相互认证,确保只有可信设备才能加入网络并进行通信。

访问控制策略

访问控制策略是保障授权用户能获取所需资源的同时拒绝非授权用户的安全机制,确保网络资源不被非法使用和访问。

4.1 访问控制的基本概念

在信息系统中,用户通过身份鉴别进入系统后,只能访问授权范围内的资源。身份鉴别是信息系统的第一道安全防线,访问控制则是第二道安全防线,对合法用户进行监督和限制,解决“合法用户在系统中对各类资源以何种权限访问”的问题。

4.2 访问控制的基本要素

访问控制包括主体客体访问访问控制策略等基本要素:

  • 主体(Subject) :访问活动的发起者,可以是用户、进程、服务或设备。
  • 客体(Object) :被访问的对象,如信息、文件、设备、资源、服务等。
  • 访问:对资源的各种操作类型,如读取、修改、创建、删除、执行、发送、接收等。
  • 访问控制策略:系统的授权行为规则,限制主体对客体的访问类型,通常存储在系统的授权服务器中。

4.3 访问控制策略的类型

4.3.1 自主访问控制(DAC)

自主访问控制基于主客体的隶属关系,客体的拥有者可以自主决定其他主体的访问权限。尽管灵活,但存在缺陷:权限管理分散,容易出现漏洞,难以控制被攻击主体的破坏行为。

4.3.2 强制访问控制(MAC)

强制访问控制不允许一般主体设置访问权限,主体和客体被赋予安全级别,只有安全管理员可以设定。系统通过比较安全级别决定访问权限,防止木马等恶意程序的窃密攻击。

4.3.3 基于角色的访问控制(RBAC)

基于角色的访问控制旨在降低安全管理的复杂度,根据安全策略划分不同角色,用户通过角色与许可关联。一个用户可以拥有多个角色,一个角色也可以被赋予多个用户;角色与许可之间的关系比直接赋予用户权限更加稳定和可管理,有效降低授权复杂性。

5. 总结

密钥分发与公钥认证是保障网络通信安全的基石。通过对称密钥分发中心(KDC)和公钥认证中心(CA),可以有效解决密钥分发和公钥认证的问题,确保通信双方的身份真实性和数据传输的机密性。

图文来源:《计算机网络教程》第六版微课版

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

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

相关文章

每天分享一个FPGA开源代码(2)- spi 读写Flash

Flash的用途主要是用于存储主控制器的程序,SPI -Flash芯片就是支持SPI通讯协议的flash芯片。 在FPGA开发中,一般有这两种方式下载程序到板子上: (1)通过 JTAG下载程序到FPGA中直接运行,下载速度快&#xff…

从误删到重生:2024年数据恢复软件市场新趋势与精选工具

现在科技发展越来越先进,大部分的办公内容也都是通过电脑来进行操作的。但是总免不了偶尔会遇到电脑蓝屏或者其他原因导致数据丢失的情况。那辛辛苦苦做好的材料不见了一定很恼火。这次我分享几个电脑数据恢复工具来解决这个问题。 1.福晰数据恢复 连接直达&#…

C++ | Leetcode C++题解之第392题判断子序列

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isSubsequence(string s, string t) {int n s.size(), m t.size();vector<vector<int> > f(m 1, vector<int>(26, 0));for (int i 0; i < 26; i) {f[m][i] m;}for (int i m - 1; …

操作系统面试真题总结(五)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 线程切换要保存哪些上下文&#xff1f; 当发生线程切换时&#xf…

【论文阅读】Stealing Image-to-Image Translation Models With a Single Query(2024)

摘要 Training deep neural networks(训练深度神经网络) requires(需要) significant computational resources(大量计算资源) and large datasets(大型数据集) that are often confidential(机密的) or expensive(昂贵的) to collect. As a result(因此), owne…

sed awk 第二版学习(二)—— 正则表达式语法

目录 一、表达式 二、成行的字符 1. 反斜杠 2. 通配符 3. 编写正则表达式 4. 字符类 &#xff08;1&#xff09;字符的范围 &#xff08;2&#xff09;排除字符类 &#xff08;3&#xff09;POSIX 字符类补充 5. 重复出现的字符 6. 匹配单词 7. gres 替换脚本 8. …

2024-09-02 Ubuntu固定USB串口名(包括1拖N的USB串口)

在运行Ubuntu系统的开发板上,如果使用可插拔的USB串口,有时候程序正在运行时,如果突然连接传感器的USB串口设备被插拔了一下,这时,会发现系统中的USB串口名发生了改变。例如,插拔之前是/dev/ttyUSB0,插拔之后变成了/dev/ttyUSB3。发生这种情况的时候,有时候会导致程序无…

关于VUE3开发频繁引入ref,reactive,computed等基础函数。

利用unplugin-auto-import插件可以避免频繁引入ref&#xff0c;reactive&#xff0c;computed等基础函数。 1.安装unplugin-auto-import依赖 npm i -D unplugin-auto-import 2.在vite.config.ts中注入依赖 效果

关于主流电商平台|淘宝|拼多多|抖音|1688官方平台接口的接入和返回

taobao.trades.sold.get( 查询卖家已卖出的交 搜索当前会话用户作为卖家已卖出的交易数据&#xff08;只能获取到三个月以内的交易信息&#xff09; 1. 返回的数据结果是以订单的创建时间倒序排列的。 2. 返回的数据结果只包含了订单的部分数据&#xff0c;可通过taobao.trade…

代码随想录Day 32|leetcode题目:501.斐波那契数、70.爬楼梯、746.使用最小花费爬楼梯

提示&#xff1a;DDU&#xff0c;供自己复习使用。欢迎大家前来讨论~ 文章目录 动态规划理论基础一、理论基础1.1 什么是动态规划1.2 动态规划的解题步骤1.3 动态规划应该如何debug 二、题目题目一&#xff1a; 509. 斐波那契数解题思路&#xff1a;动态规划递归解法 题目二&a…

【golang-入门】环境配置、VSCode开发环境配置

golang介绍基础信息 windows环境配置安装包下载安装环境变量设置检查 VSCode开发配置插件配置在 Visual Studio Code 中安装通义灵码go hello word 参考资料 golang介绍 基础信息 golang官网&#xff1a;https://go.dev/golang学习网&#xff1a;https://studygolang.com/使用…

ARM基础知识---CPU---处理器

目录 一、ARM架构 1.1.RAM---随机存储器 1.2.ROM---只读存储器 1.3.flash---闪存存储器 1.4.时钟&#xff08;振晶&#xff09; 1.5.复位 二、CPU---ARM920T 2.1.R0~R12---通用寄存器 2.2.PC程序计数器 2.3.LR连接寄存器 2.4.SP栈指针寄存器 2.5.CPSR当前程序状态寄存…

测试:TestGRPCDiscovery

目录 测试:TestGRPCDiscovery 类定义 方法 async def asyncSetUp(self): async def asyncTearDown(self): async def test_discovery(self): 总结 这是一个关于算力共享中环形结构通讯机制的项目图的功能模型解释。以下是根据所给信息对项目功能的概述: 项目结构: 项…

Windows 下载安装RabbitMQ

环境描述 windows10 Erlang 26.2.x 版本 RabbitMQ 3.13.7 因为RabbitMQ是Erlang语言开发的&#xff0c;所以必须安装 Erlang RabbitMQ官网链接: https://www.rabbitmq.com/docs/which-erlang 1.下载并安装Erlang 26.2.5 1.1下载Erlang 26.2.5 https://erlang.org/dow…

深度强化学习算法(四)(附带MATLAB程序)

深度强化学习&#xff08;Deep Reinforcement Learning, DRL&#xff09;结合了深度学习和强化学习的优点&#xff0c;能够处理具有高维状态和动作空间的复杂任务。它的核心思想是利用深度神经网络来逼近强化学习中的策略函数和价值函数&#xff0c;从而提高学习能力和决策效率…

鸿誉移民:定制化移民服务,吹响全球高效率移民的嘹亮号角!

鸿誉移民&#xff1a;定制化移民服务&#xff0c;吹响全球高效率移民的嘹亮号角&#xff01; 作为国内知名海外移民服务机构&#xff0c;鸿誉移民历经多年行业沉淀&#xff0c;拥有着极其丰富的移民咨询以及移民办理经验&#xff0c;并以咨询及时精准&#xff0c;签证快捷、通…

【数据结构】Map的使用与注意事项

文章目录 概念模型Map 的使用put() 和 get()getOrDefault()remove()keySet()entrySet() 注意事项 概念 Map 和 set 是一种专门用来进行搜索的容器或者数据结构&#xff0c;其搜索的效率与其具体的实例化子类有关。 以前常见的搜索方式有&#xff1a; 直接遍历&#xff0c;时间…

URP简洁的instance的写法

材质还是要开启enable instance&#xff0c;这是上一次的写法 https://dbbh666.blog.csdn.net/article/details/136644181 最近发现更适合我个人的习惯的写法 就是代码控制这个整个过程 C#代码是这样的&#xff0c;获取一个mesh&#xff0c;获取每个mesh的transform&#xff0c…

常见的性能测试方法!

前言 性能测试划分有很多种&#xff0c;测试方法也有很多种&#xff0c;更确切的说是由于测试方法的不同决定了测试划分的情况&#xff0c;但在测试过程中性能测试的划分没有绝对的界限&#xff0c;常用的有压力测试、负载测试和并发用户测试等。 性能测试的方法主要包括以下…

stm32之硬件I2C读写MPU6050陀螺仪、加速度传感器应用案例

系列文章目录 1. stm32之I2C通信协议 2. stm32之软件I2C读写MPU6050陀螺仪、加速度传感器应用案例 3. stm32之I2C通信外设 文章目录 系列文章目录前言一、电路接线图二、应用案例代码三、应用案例分析3.1 基本思路3.2 相关库函数介绍3.3 MPU6050模块3.1.1 模块初始化3.1.2 指定…