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

目录

[1) 对称加密和非对称加密](#1) 对称加密和非对称加密)

[Ⅰ 对称加密算法](#Ⅰ 对称加密算法)

[Ⅱ 非对称加密算法](#Ⅱ 非对称加密算法)

[Ⅲ 对称和非对称加密比较:](#Ⅲ 对称和非对称加密比较:)

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

[3)数据验证 - 数字签名](#3)数据验证 - 数字签名)

4)数字证书

[Ⅰ 数字证书格式](#Ⅰ 数字证书格式)

[Ⅱ 证书的颁发](#Ⅱ 证书的颁发)

[Ⅲ 证书验证:](#Ⅲ 证书验证:)

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

[@ 验证为B颁发证书的这个CA的证书真伪](#@ 验证为B颁发证书的这个CA的证书真伪)

[@ 证书验证案列:](#@ 证书验证案列:)

[1. 发起HTTPS请求](#1. 发起HTTPS请求)

[2. 服务器返回证书](#2. 服务器返回证书)

[3. Chrome验证证书有效性](#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握手

相关推荐
2401_8734794020 分钟前
如何从零搭建私有化IP查询平台?数据采集、清洗、建库到API发布全流程
服务器·网络·tcp/ip
FS_Marking2 小时前
CWDM vs DWDM:区别是什么?
网络
Vis-Lin2 小时前
BLE 协议栈:ATT 协议详解
网络·物联网·网络协议·iot·ble
lcxc3 小时前
Mac M4超流畅运行Win版同花顺教程
网络
bluechips·zhao3 小时前
帝国CMS 8.0 安全审计分析——代码审计
安全·网络安全·代码审计
whuhewei3 小时前
为什么客户端不存在跨域问题
前端·安全
W.A委员会3 小时前
常见网络攻击
网络·http·网络安全
zmj3203243 小时前
CAN数据帧详解
网络·can·canfd·数据帧
Flittly3 小时前
【SpringSecurity新手村系列】(4)验证码功能实现
java·spring boot·安全·spring
Flittly3 小时前
【SpringSecurity新手村系列】(3)自定义登录页与表单认证
java·笔记·安全·spring·springboot