网络安全简述
- 网络安全概述
- 加密技术/算法
- 对称加密技术/算法
- 3DES加密流程详解
- 流程说明
- 密钥使用总结
- 安全性特点
- 非对称加密技术/算法
- RSA加密流程详解
- RSA加密流程图(信息保密场景)
- RSA签名流程图(身份认证场景)
- 公钥私钥使用顺序对比
- 关键区别
- 混合加密
- 哈希算法
- 特点
- 常见算法
- 应用场景
网络安全概述
网络安全就是信息安全。而信息安全的核心就在于密码技术,很多高校开设的有密码学,实际上就是研究数学领域内如何保证信息安全。
Kerckhoffs原则:密码系统的安全性不应依赖于其算法的保密性,而是应该建立在密钥的保密之上。
理论上来说,密码都是可以破解的,但是不同的密码技术所需要的成本截然不同。
密码技术的常见手段有三类:
1、替换
2、换位
3、一次性填充
加密技术/算法
分类:
| 加密技术 | 例子 |
|---|---|
| 对称加密 | DES 3DES 2DEA AES DC4/5 |
| 非对称加密 | RSA SM2 |
| 哈希 | MD5 SHA SM3 |
对称加密技术/算法
简而言之就是:加解密的密钥相同
常见有: DES 3DES AES 等等
其中值得一提的是:
AES是可以使用硬件来实现的,因此在运算速度上具备优势,分组为128位,密钥长度(120/192/256位)。
3DES的加密流程是 先使用Key1对信息加密 再使用Key2对信息解密 再使用Key1进行加密,总共有三步,但是只使用了两个密钥。
3DES加密流程详解
3DES(Triple DES)是对DES算法的增强,通过三次DES操作来提高安全性。其加密流程如下:
流程说明
第一步:DES加密
- 使用Key1对明文进行DES加密
- 这是标准的DES加密操作
第二步:DES解密
- 使用Key2对第一步的结果进行DES解密
- 注意:这里使用的是解密操作,但密钥不同
第三步:DES加密
- 再次使用Key1对第二步的结果进行DES加密
- 最终得到密文
密钥使用总结
- Key1: 用于第一步加密和第三步加密
- Key2: 用于第二步解密
- 总共使用两个密钥完成三次DES操作
安全性特点
- 有效密钥长度:112位(两个56位DES密钥)
- 抗暴力破解能力:2¹¹²次尝试
- 兼容性:可以解密使用单DES加密的数据
注意:在实际应用中,Key1和Key2应该是两个不同的密钥,如果使用相同的密钥,3DES会退化为单DES。
非对称加密技术/算法
公钥加密 + 私钥解密 = 信息保密
私钥加密 + 公钥解密 = 数字签名
公钥和私钥是一对钥匙,类似于电视剧中,男女主通过玉佩相识。这一对钥匙均属于一个主体,且私钥要保存妥当,原则上只有主体知道。
常见有RSA加密 其密钥长度为512位或者1024位。
RSA加密流程详解
RSA是目前最经典的非对称加密算法,其核心在于公钥和私钥的使用顺序决定了加密的目的。下面通过流程图和对比来说明。
RSA加密流程图(信息保密场景)
RSA签名流程图(身份认证场景)
公钥私钥使用顺序对比
| 场景 | 加密方使用的密钥 | 解密方使用的密钥 | 目的 |
|---|---|---|---|
| 信息保密 | 接收方的公钥 | 接收方的私钥 | 保证只有接收方才能解密 |
| 数字签名 | 发送方的私钥 | 发送方的公钥 | 保证信息确实来自发送方 |
关键区别
信息保密场景:先公钥后私钥
- 发送方用接收方的公钥加密
- 接收方用自己的私钥解密
- 公钥公开,任何人都能加密,但只有持有私钥的接收方才能解密
数字签名场景:先私钥后公钥
- 发送方用自己的私钥加密(签名)
- 接收方用发送方的公钥解密(验签)
- 私钥只有发送方持有,因此能证明信息确实来自发送方
核心要点:公钥加密、私钥解密用于保密通信;私钥加密、公钥解密用于身份认证。两者的使用顺序恰好相反,这正是非对称加密的精髓所在。
混合加密
既然对称加密加密信息具备优势,而非对称加密在传递信息上具备优势,因此结合起来,利用*对称密钥加密信息,使用非对称加密加密密钥,既能加密信息又保障了密钥不易第三方获取。
哈希算法
哈希最出名的特点就在于:
将任意长度的内容转化为固定长度的哈希值
特点
1、不可逆性无法通过哈希值还原原内容
2、抗碰撞性 很难找到两个不同的输入使得它们的哈希值相同
3、雪崩效应 原信息变动一个比特也会使得哈希值大变
常见算法
| 算法 | 数据分组 | 哈希值长度 |
|---|---|---|
| MD5 | 512位 | 128位 |
| SHA | 512位 | 160位 |
| SM3 | 512位 | 256位 |
应用场景
1、文件校验
下载软件或大文件时,官方会同时公布文件的哈希值(如 MD5、SHA-256)。下载完成后本地计算哈希值,与官方公布值比对,一致则说明文件在传输过程中未被篡改或损坏。
2、密码存储
网站存储用户密码时,不保存明文,而是保存密码的哈希值。用户登录时,将输入的密码做同样的哈希运算,与数据库中的哈希值比对。即使数据库泄露,攻击者也无法直接得到明文密码。
3、用户身份认证(HMAC)
HMAC(Hash-based Message Authentication Code,基于哈希的消息认证码)是哈希在身份认证中的典型应用。它结合了哈希函数与共享密钥,既能验证消息的完整性,又能确认消息确实来自持有密钥的合法用户。
HMAC 认证流程
HMAC 认证示例
以用户登录为例:
- 用户发起登录请求:用户输入账号和密码,向服务端请求登录。
- 服务端下发挑战值:服务端生成一个随机数
nonce并发送给用户。 - 用户计算 HMAC:用户使用共享密钥(登录时协商好的密钥)对
nonce计算 HMAC 值,连同账号一起发送给服务端。 - 服务端验证:服务端用数据库中保存的同一共享密钥,对同一个
nonce计算 HMAC 值,与用户发来的 HMAC 值比对。 - 判定结果:两个 HMAC 值一致 → 认证通过;不一致 → 认证失败。
关键点:HMAC 的安全性同时依赖哈希函数的单向性和共享密钥的保密性。攻击者即使截获了 HMAC 值,也无法反推出密钥;没有密钥,也无法伪造出合法的 HMAC 值。因此 HMAC 常用于 API 接口签名、Token 校验等身份认证场景。