天融信网安学习——阶段一笔记day9
第一部分 网络基础知识学习
文章目录
前言
author:SummerEnd
date:2025.9.4
一、KPI概述
名称:Public Key Infrastructure
作用:通过加密技术和数字签名,保证信息存储和传输的安全
组成:公钥就加密技术、数字证书、CA、RA
应用领域:Https,端口443
VPN——IPsecVPN
VPN——部分远程访问VPN、pptpvpn、sslvpn
二、信息安全
信息安全三要素:机密性、完整性、身份验证
信息安全的其他要素:可用性、可控性、真实性
三、加密技术
3.1对称加密算法
3.1.1原理
发送方和接收方持有同一个密钥,发送方通过密钥加密,接收方通过密钥解密,传输密文
角色 | 持有密钥 | 传输数据 | 持有密钥 | 角色 |
---|---|---|---|---|
发送方 | 密钥A | 密文——→ | 密钥A | 接收方 |
操作 | 操作 | |||
使用密钥A加密得到密文 | 使用密钥A解密得到原文 |
3.1.2特点
优点:传输数据快,计算量小
缺点:一旦密钥和算法暴露则密文会被完全破解
3.2非对称加密算法
3.2.1原理
使用公私钥来加解密
大致过程为:加密时使用自己的私钥和对方的公钥,解密时使用自己的私钥和对方的公钥
具体流程:发送方先使用对方公钥对密文加密,然后使用自己的私钥对密文加密,接收方接收到数据后,使用发送方的公钥对密文解密,然后使用自己的私钥进行解密得到明文
角色 | 数据/操作 | 数据传输 | 数据/操作 | 角色 |
---|---|---|---|---|
发送方甲 | 明文 | 密文B——→ | 密文B | 接收方乙 |
持有密钥 | 使用乙公钥加密 | 使用甲公钥解密 | 持有密钥 | |
甲公钥 | 密文A | 密文A | 乙公钥 | |
甲私钥 | 使用甲私钥加密 | 使用乙私钥解密 | 乙私钥 | |
密文B | 明文 |
使用发送方密钥的加解密过程:只有甲持有甲私钥,所以以甲公钥解密出来的文件只有甲可以发出,这一步确保了数据传输的身份验证
使用接收方密钥的加解密过程:只有乙持有乙私钥,所以只有乙可以解密出通过乙公钥加密的密文,这一步确保了数据传输的机密性
3.2.2特点
优点:安全性较高,可以进行身份验证
缺点:计算量大,传输过程可能较慢,乙私钥被窃取后仍然会失去机密性
3.3哈希算法
3.3.1原理
哈希算法的特点:1.原文相同时得到的密文永远相同 2.密文长度固定 3.加密不可逆(暴力碰撞除外)
大致流程:发送方将原文进行哈希加密,得到一串数字签名,与原数据连接在一起后一起发送给接收方,接收方对原文进行哈希加密,得到另一串数字签名,比对两个数字签名,如果相同则说明原文没有被篡改
角色/数据 | 操作 | 数据传输 | 操作 | 角色/数据 |
---|---|---|---|---|
发送方/原文 | 使用哈希算法加密原文得到数字签名A | 原文+数字签名——→ | 拆解原文和数字签名A | 接收方/原文+数字签名A |
原文/数字签名A | 连接原文和数据签名A | 使用哈希算法加密原文得到数字签名B | 原文/数字签名A | |
原文+数字签名A | 发送数据 | 比对数字签名A和数字签名B | 原文/数字签名A/数字签名B |
3.4完整加解密过程(哈希+非对称)
3.4.1原理
大致流程:在非对称加密的第一层加密之后,使用哈希算法得到数字签名打包后进行第二次加密,加解密过程参考非对称加密,数字签名过程参考哈希加密
角色/密钥 | 数据 | 操作 | 数据传输 | 数据 | 操作 | 角色/密钥 |
---|---|---|---|---|---|---|
发送方甲 | 明文 | 通过乙公钥加密得到密文A | 密文B——→ | 密文B | 通过甲公钥解密得到密文A+数字签名A | 接收方乙 |
甲公钥 | 密文A | 通过哈希算法加密密文A得到数字签名A | 密文A/数字签名A | 通过哈希算法加密密文A得到数字签名B | 乙公钥 | |
甲密钥 | 密文A+数字签名A | 通过甲私钥加密得到密文B | 密文A/数字签名A/数字签名B | 比对数字签名A和数字签名B | 乙密钥 | |
密文B | 发送数据 | 密文A | 通过乙私钥解密密文B得到明文 | |||
明文 |
四、TLS握手过程
4.1关于数字证书
数字证书用于保证公钥的合法性
颁发数字证书的机构叫做CA,其作用是接受证书申请,制作证书,颁发证书
数字证书的格式(包含的信息)
遵循x.509标准
内容:
使用者/申请者的公钥
使用者的表示信息(域名、ip、名称、电子邮件地址)
证书有效期
颁发者的信息
颁发者的数字签名
4.2TLS握手过程
一言蔽之:数字证书阶段(1.2.3.4)负责传输Web服务器的公钥、验证服务器的真伪;客户机发送公钥阶段(5.6.7)负责传输客户机的公钥;数据传输阶段(8.9)负责以非对称加解密形式传输数据
证书请求文件A | 认证证书B |
---|---|
A公钥/A其他信息 | B公钥/A公钥/A其他信息 |
角色/数据 | 操作 | 角色/数据 | 操作 | 角色/数据 | 操作 |
---|---|---|---|---|---|
Web服务器 | 生成公私钥[2] | CA认证服务器 | 客户机 | ←——访问Web服务器[1] | |
A公私钥/其他数据 | 打包为证书请求文件A | B公私钥/其他数据 | |||
证书请求文件A | ——→CA服务器 | ||||
证书请求文件A | 打包成认证证书B | ||||
认证证书B | ←——Web服务器[3] | ||||
认证证书B | ——→客户机 | ||||
认证证书B | 检验证书合法性[4] | ||||
生成C公私钥[5] | |||||
C公私钥 | 使用A公钥加密C公钥 | ||||
加密公钥C | ←——Web服务器[6] | ||||
加密公钥C | 使用公钥A解密[7] | ||||
公钥C | |||||
以下内容通过非对称加密传输[8][9] |
1.客户端发起连接请求:客户端向服务器发送请求,以建立安全连接。
2.服务器生成密钥对:服务器创建一对公私钥,并将公钥发送给CA机构。CA机构同样生成公私钥,并使用自己的私钥对服务器的公钥进行加密,从而生成一个CA数字证书。
3.服务器返回证书:服务器将由CA机构生成的数字证书发送给客户端,以响应其请求。
4.客户端验证证书:客户端解析服务器发送的数字证书(浏览器通常已保存大部分CA机构的公钥),以验证该证书的有效性。如果证书不合法,客户端会收到警告;如果合法,客户端将提取服务器的公钥。
5.客户端生成随机密钥:客户端使用提取的公钥生成一个随机密钥(这就是对称加密所需的密钥)。
6.客户端发送加密的随机密钥:客户端将这个随机密钥加密后发送给服务器,作为后续对称加密的密钥。
7.服务器解密随机密钥:服务器接收到随机密钥后,利用自己的私钥进行解密,从而获得该随机密钥。
8.服务器使用随机密钥加密数据:服务器利用随机密钥对要传输的数据进行加密,并将加密后的数据发送给客户端。
个随机密钥(这就是对称加密所需的密钥)。
6.客户端发送加密的随机密钥:客户端将这个随机密钥加密后发送给服务器,作为后续对称加密的密钥。
7.服务器解密随机密钥:服务器接收到随机密钥后,利用自己的私钥进行解密,从而获得该随机密钥。
8.服务器使用随机密钥加密数据:服务器利用随机密钥对要传输的数据进行加密,并将加密后的数据发送给客户端。
9.客户端解密接收到的数据:客户端使用其生成的随机密钥解密服务器发送的数据,随后,客户端和服务器通过对称密钥进行安全的数据传输。