网络安全基础—加解密原理与数字证书

news2024/11/13 14:59:19

目录

1) 对称加密和非对称加密

Ⅰ 对称加密算法

Ⅱ 非对称加密算法

Ⅲ 对称和非对称加密比较:

2)数据加密--数字信封

3)数据验证 - 数字签名

4)数字证书

Ⅰ 数字证书格式

Ⅱ 证书的颁发

Ⅲ 证书验证:

@.验证B的证书的合法性:

@ 验证为B颁发证书的这个CA的证书真伪

@ 证书验证案列:

1. 发起HTTPS请求

2. 服务器返回证书

3. Chrome验证证书有效性


1) 对称加密和非对称加密

Ⅰ 对称加密算法

甲与乙事先协商好对称密钥,具体加解密过程如下:

          - 甲使用对称密钥对明文加密,并将密文发送给乙
          - 乙接收到密文后,使用对称密钥对密文解密,得到最初的明文

Ⅱ 非对称加密算法

甲事先获得乙的公钥,具体加解密过程如下:

        - 甲使用乙的公钥对明文加密,并将密文发送给乙。
        - 乙收到密文后,使用自己的私钥对密文解密,得到最初的明文。

Ⅲ 对称和非对称加密比较:

加密算法

优点

缺点

使用场景

对称加密

加解密速度快,效率高,算法简单,系统开销小,适合加密大量数据。

实现困难,扩展性差。

对大量数据进行加解密

非对称加密

无法从一个密钥推导出另一个密钥;公钥加密的信息只能用私钥进行解密。

算法非常复杂,导致加密大量数据所用的时间较长,而且加密后的报文较长,不利于网络传输。

对密钥或身份信息等敏感信息加密

对称密钥加密的优点是效率高,算法简单,系统开销小,适合加密大量数据。缺点是实现困难,扩展性差。实现困难原因在于进行安全通信前需要以安全方式进行密钥交换;扩展性差表现在每对通信用户之间都需要协商密钥,n个用户的团体就需要协商n*(n-1)/2个不同的密钥

公钥加密的优点是安全性高。无法从一个密钥推导出另一个密钥;公钥加密的信息只能用私钥进行解密。缺点是算法非常复杂,导致加密大量数据所用的时间较长,而且加密后的报文较长,不利于网络传输

基于公钥加密的优缺点,公钥加密适合对密钥或身份信息等敏感信息加密(小数据),从而在安全性上满足用户的需求


2)数据加密--数字信封

数字信封是指发送方采用接收方的公钥来加密对称密钥后所得的数据。采用数字信封时,接收方需要使用自己的私钥才能打开数字信封得到对称密钥

用公钥加密对称密钥,即密钥打包

甲事先获得乙的公钥,具体加解密过程如下:

  1. 甲使用对称密钥对明文进行加密,生成密文信息
  2. 甲使用乙的公钥加密对称密钥,生成数字信封 ( 图中⑥→⑦ )
  3. 甲将数字信封密文信息一起发送给乙
  4. 乙接收到甲的加密信息后,使用自己的私钥打开数字信封,得到对称密钥
  5. 乙使用对称密钥对密文信息进行解密,得到最初的明文

数字信封技术优点:结合了对称密钥加密和公钥加密的优点,解决了对称密钥的发布和公钥加密速度慢等问题,提高了安全性、扩展性和效率等
数字信封技术存在问题:如果攻击者拦截甲的信息,用自己的对称密钥加密伪造的信息,并用乙的公钥加密自己的对称密钥,然后发送给乙。乙收到加密信息后,解密得到的明文,而且乙始终认为是甲发送的信息(问题:中间人篡改了信息,如攻击者修改甲的账户,乙发放资金的时候就到了攻击者手里)
此时,需要一种方法确保接收方收到的信息就是指定的发送方发送的(没有修改过) —— 解决:数字签名


3)数据验证 - 数字签名

说明:HASH算法→完整性校验

  1. 同入同出 --相同输入,相同输出(相同:数据和hash算法相同)
  2. 等长输出 --不管原始数据长度大小,相同hash算法计算出来的hash值长度永远不变,MD5为128位
  3. 不可逆推 --不能根据hash值推算出原始数据
  4. 雪崩效应 --在原始数据上加了微妙的改动都会导致hash结果完全不同,二者之间没有任何关系,即随机。

发送方首先使用哈希算法得到明文信息数字指纹。然后使用自己的私钥加密数字指纹,得到数字签名

数字签名是指发送方用自己的私钥对数字指纹进行加密后所得的数据。采用数字签名时,接收方需要使用发送方的公钥才能解开数字签名得到数字指纹。

数字签名和数字信封结合使用:

数字签名两大特性不可抵赖性、不可伪造性

数字签名技术存在问题:如果攻击者更改乙的公钥,甲获得的是攻击者的公钥,攻击者拦截乙发送给甲的信息,用自己的私钥对伪造的信息进行数字签名,然后与使用甲的公钥的加密伪造的信息一起发送给甲。甲收到加密信息后,解密得到的明文,并验证明文没有被篡改,则甲始终认为是乙发送的信息。此时,需要一种方法确保一个特定的公钥属于一个特定的拥有者(公钥的可靠性)——解决:数字证书


4)数字证书

数字证书 = 现实世界的身份证

CA证书机构 = 警察局

Ⅰ 数字证书格式


注:基于X.509标准的格式

  • 版本(Version):即遵循的X.509标准的版本,目前普遍使用的是v3版本。
  • 序列号(Serial Number):颁发者分配给证书的一个正整数,同一颁发者颁发的证书序列号各不相同,可与颁发者名称一起作为证书的唯一标识。
  • 签名算法(Signature Algorithm):颁发者颁发证书时使用的哈希算法和签名算法。
  • 颁发者(Issuer):证书颁发者的可识别名称,必须与颁发者颁发证书中的主体名一致。通常为CA服务器的名称。
  • 有效期(Validity):证书的有效时间段,包含有效的起止日期,不在有效期范围内的证书为无效证书。
  • 主体名(Subject Name):证书使用者的可识别名称,通常包括CN、国家/地区、组织名称、地理位置等。如果主体名与颁发者的可识别名称相同,则该证书是一个自签名证书。
  • 公钥信息(Subject Public Key Info):证书使用者的公钥以及公钥算法信息。
  • 扩展信息(Extensions):可选的扩展字段,通常包含授权密钥标识符、CRL分发点、SAN(Subject Alternative Name,使用者可选名称)等
  • 签名(Signature):颁发者使用CA的私钥对证书信息所做的数字签名。

证书签名的形成:

  • 首先,CA使用签名算法中的HASH密码学算法(如SHA1)生成证书的摘要信息,然后使用签名算法中的公钥密码学算法(如RSA),配合CA自己的私钥对摘要信息进行加密,最终形成签名

样例:


Ⅱ 证书的颁发

通常情况下,为网络中的设备(PC、防火墙等)申请证书时,我们先要在设备上生成公私密钥对,然后将公钥以及设备信息提供给CA,CA根据这些信息来生成证书。当然,也可以由CA来帮助设备生成公私密钥对,并为设备生成证书。然后将CA生成的公私密钥对和证书导入到设备中,省去了设备自己生成公私密钥对的过程

防火墙证书的颁发流程简要如下:

  1. 生成证书请求(CSR):防火墙生成私钥和公钥,并创建证书签名请求(CSR),其中包含公钥和设备信息。

  2. 提交CSR给证书颁发机构(CA):将CSR提交给CA,申请证书。

  3. CA验证身份:CA验证防火墙的身份,通常验证域名或企业身份。

  4. CA签发证书:CA使用自己的私钥对CSR进行签名,生成并返回证书。

  5. 安装证书:将CA签发的证书安装在防火墙上,并配置证书使用(如HTTPS、VPN等)。

  6. 配置信任链:在防火墙上安装CA的根证书和中间证书,确保信任链的完整。

  7. 定期续签:证书有效期到期前,申请新证书并替换旧证书。


Ⅲ 证书验证:

@.验证B的证书的合法性:

证书颁发给使用者后,使用者就会拿着证书到处证明自己的身份。如果我们收到了一个这样的证书,怎么才能判断这个证书就是合法的,不是伪造的呢?

  1. A收到了B发过来的证书,想要验证这个证书的真伪,此时A首先需要获取到为B颁发证书的那个CA的公钥,用这个CA的公钥解密证书中的签名,得到摘要信息
  2. 然后A使用证书中签名算法里面的HASH密码学算法对证书进行HASH计算,也得到一个摘要信息。A将两个摘要信息进行对比,如果两者一致,就说明证书确实是由这个CA颁发的(能用CA的公钥解密说明该CA确实持有私钥),并且没有被篡改过,该证书没有问题。当然,也会同时检查证书是否在有效期内

为A颁发证书的那个CA的公钥该如何获取呢?答案还是证书,从CA的证书获取。也就是说,CA除了给别人颁发证书外,它本身也有自己的证书,证书中包含CA的公钥。

@ 验证为B颁发证书的这个CA的证书真伪

再进一步,如何判断为B颁发证书的这个CA的证书真伪以及是否被篡改过?

  • 用CA自己的公钥来验证自己的签名,即用CA证书中的公钥解密该证书中的签名,得到摘要信息;然后使用CA证书中签名算法里面的HASH密码学算法对该证书进行HASH计算,得到另一个摘要信息,两者一致,说明该CA证书是真实的,没有被篡改过。 

此时有一个新的问题,假设黑客伪造了CA证书,证书中的签名是黑客用自己的私钥来签名,而公钥就是黑客自己的公钥,那么对该CA证书的验证也能通过。所以上述验证过程的前提是CA证书必须是在可信任的机构获取的,保证没有被伪造


@ 证书验证案列:

当你在Chrome浏览器上访问huawei.com网站时,浏览器会自动进行数字证书的验证,以确保你与该网站之间的通信是安全的。以下是简要的数字证书验证过程:

1. 发起HTTPS请求

  • 当你在Chrome地址栏中输入 https://huawei.com 并按下回车时,浏览器会发起一个HTTPS请求,告知服务器希望建立一个加密连接。

2. 服务器返回证书

  • huawei.com 的服务器响应请求,并返回一个包含网站证书的包。该证书包含以下重要信息:
    • 服务器的公钥
    • 证书的颁发机构(CA)
    • 网站域名(如huawei.com
    • 证书的有效期

3. Chrome验证证书有效性

Chrome会进行一系列的检查来验证证书的有效性:

  • 验证证书是否过期:Chrome检查证书的有效期,确保当前日期在证书的有效期范围内。

  • 域名匹配验证:浏览器检查证书中的域名信息,确认证书颁发给的域名是huawei.com或与其相关的域名,确保证书属于你要访问的网站。

  • 验证证书颁发机构(CA)

    • 浏览器检查证书是否由受信任的证书颁发机构(CA)签发。Chrome浏览器中内置了受信任CA的列表。如果证书是由这些可信的CA签发的,浏览器会继续进行验证。
    • 证书链验证:浏览器还会从网站服务器返回的证书中提取证书链(即中间CA证书),并通过验证中间证书直到根证书,确保信任链的完整性。
  • 检查证书吊销状态:

    • Chrome还可能通过CRL(证书吊销列表)OCSP(在线证书状态协议)检查证书是否已被吊销。吊销意味着证书被CA认定为不再有效,可能是因为密钥泄露或域名所有者的更改

如果证书验证通过,浏览器会继续与服务器进行SSL/TLS握手

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

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

相关文章

【基础算法总结】双指针

目录 一,双指针算法介绍二,算法原理和代码实现283.移动零1089.复写零202.快乐数11.盛最多水的容器611.有效三角形的个数LRC179.和为s的两个数15.三数之和18.四数之和 三,算法总结 一,双指针算法介绍 双指针算法是基础算法之一&am…

【机器学习】朴素贝叶斯方法的概率图表示以及贝叶斯统计中的共轭先验方法

引言 朴素贝叶斯方法是一种基于贝叶斯定理的简单概率模型,它假设特征之间相互独立。 文章目录 引言一、朴素贝叶斯方法的概率图表示1.1 节点表示1.2 边表示1.3 无其他连接1.4 总结 二、朴素贝叶斯的应用场景2.1 文本分类2.2 推荐系统2.3 医疗诊断2.4 欺诈检测2.5 情…

菜鸟入门Docker

初始Docker Docker的概念 Docker的用途 DOcke的安装 Docker架构 配置Docker镜像加速器 Docker常用命令 Docker服务相关的命令。 Docker镜像相关的命令 Docker容器相关的命令 容器的数据卷 数据卷的概念和作用 配置数据卷 Docker应用部署 Docker部署mysql Docker…

RP2040 C SDK clocks时钟源配置使用

RP2040 C SDK clocks时钟源配置使用 🌿RP2040时钟源API函数文档:https://www.raspberrypi.com/documentation/pico-sdk/hardware.html#group_hardware_clocks 🍁RP2040时钟树: 系统时钟源可以来自外部时钟输入(exte…

<数据集>二维码识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:1601张 标注数量(xml文件个数):1601 标注数量(txt文件个数):1601 标注类别数:1 标注类别名称:[QR] 序号类别名称图片数框数1QR16016286 使用标注工具:l…

外观模式facade

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/facade 为程序库、 框架或其他复杂类提供一个简单的接口 把要做的事全放在一个类里给他做了,然后要用的时候直接创建这个类的实例

springboot项目引入Sentinel熔断

本文是springboot项目nacos进行引入&#xff0c;sentiel需自行按照部署 1.springboot包要是2.2.5或以上 <dubbo.version>2.7.7</dubbo.version><spring-boot.version>2.2.5.RELEASE</spring-boot.version><chainwork-boot.version>1.0.5-SNAPSH…

.Net C#检验科LIS系统成品源码 ,LIS 系统与 HIS 系统的连接方式详解

目录 系统定义与功能 应用特点 检验科 LIS 系统与 HIS 系统的连接方式 1、接口设计与数据交换 2、网络架构 3、数据格式与标准化 4、信息共享与协同工作 5、数据安全与隐私保护 6、技术支持与维护 LIS系统成品源码 总结 系统定义与功能 LIS系统&#xff0c;全称为实验…

python tkinter 简介

ttk模块是tkinter模块中非常重要的模块&#xff0c;相当于升级版的tkinter模块。 ttk模块包含18个组件&#xff0c;其中12个组件在tkinter模块中已经存在。这12个模块分别为Button&#xff08;按钮&#xff09;​、Checkbutton&#xff08;复选框&#xff09;​、Entry&#x…

OrangePi AIpro 香橙派 昇腾 Ascend C 算子开发 与 调用 - 通过aclnn调用的方式调用AddCustom算子

OrangePi AIpro 香橙派 昇腾 Ascend C 算子开发 与 调用 通过aclnn调用的方式调用 - AddCustom算子 - 单算子API执行(aclnn) 多种算子调用方式 *开发时间使用场景调用方式运行硬件基于Kernel直调工程&#xff08;快速&#xff09;少单算子调用&#xff0c;快速验证算法逻辑IC…

MySQL复习3

视图 视图&#xff08;view&#xff09;是一种虚拟存在的表&#xff0c;是一个逻辑表&#xff0c;本省没有数据&#xff0c;内容由查询定义。 基表&#xff1a;用来创建视图的表叫做基表 通过视图&#xff0c;我们可以查看基表的部分数据。视图数据来自定义视图的查询中使用…

[Go]-抢购类业务方案

文章目录 要点&#xff1a;1. 抢购/秒杀业务的关键挑战2. 技术方案3.关键实现点4.性能优化建议5.其他考虑因素 细节拆分&#xff1a;1. **高并发处理**2.**限流与防护**3.**库存控制**4. **异步处理**5. **数据一致性**6. **常用架构设计**7. **代码示例**8. 进一步优化9. 注意…

鸿蒙(API 12 Beta6版)图形加速【OpenGL ES平台内插模式】超帧功能开发

超帧内插模式是利用相邻两个真实渲染帧进行超帧计算生成中间的预测帧&#xff0c;即利用第N-1帧和第N帧真实渲染帧预测第N-0.5帧预测帧&#xff0c;如下图所示。由于中间预测帧的像素点通常能在前后两帧中找到对应位置&#xff0c;因此内插模式的预测帧效果较外插模式更优。由于…

android studio 模拟器 loadlibrary failed with 126:找不到指定的模块

loadlibrary failed with 126:找不到指定的模块 解决方法 解决方法&#xff1a;设备管理器-> 显示适配器-> 禁用 AMD Redeon 重启AndroidStudio

【学习笔记】 陈强-机器学习-Python-Ch14 支持向量机

系列文章目录 监督学习&#xff1a;参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归&#xff08;SAheart.csv&#xff09; 【学习笔记】 陈强-机器学习-Python-…

示波器在嵌入式中的作用和使用

你是否在开发嵌入式系统时&#xff0c;遇到过调试电路和信号分析的困难&#xff1f; 在嵌入式开发中&#xff0c;硬件调试和信号分析是必不可少的环节&#xff0c;而示波器作为一种强大的工具&#xff0c;能够帮助我们深入了解信号特性并解决难题。那么&#xff0c;如何正确使用…

Aigtek功率放大器可以驱动哪些传感器设备

功率放大器是一种电子设备&#xff0c;主要用于将输入信号增强到更高的功率级别并驱动各种负载。在传感器应用中&#xff0c;功率放大器可以用来驱动多种传感器设备&#xff0c;下面将介绍几个常见的应用场景。 光学传感器&#xff1a;光学传感器是一类基于光学原理工作的传感器…

Django发送邮件

【图书介绍】《Django 5企业级Web应用开发实战&#xff08;视频教学版&#xff09;》_django 5企业级web应用开发实战(视频教学版)-CSDN博客 Django 5框架Web应用开发_夏天又到了的博客-CSDN博客 本文学习怎么使用Django发送邮件。 尽管使用Python的smtplib模块发送电子邮件…

Flutter集成Firebase中的Remote Config

远程配置&#xff08;Remote Config&#xff09;的功能 动态配置参数&#xff1a;Remote Config 允许您在不更新应用程序的情况下&#xff0c;实时更改应用程序的参数&#xff0c;如文本、颜色、布尔值等条件化参数&#xff1a;您可以基于用户的特定条件&#xff08;例如用户地…

ADC——模数转换器

一、转换流程 在处理器中主要进行ADC 1、AD转换流程 &#xff1a;采样、保持、量化、编码 通过比较器获得的电信号转换数字信号&#xff0c;根据自己需求&#xff0c;如果要求速率就可以使用较多的比较器&#xff0c;不要求速率考虑成本就可以使用较少的比较器&#xff0c;将最…