前置知识
数字摘要
与数字摘要算法
数字签名
原理
- 发送端(服务端)
-
原始数据
经过数字摘要算法
生成数字摘要
-
私钥
对数字摘要
进行加密生成数字签名
- 将
原始数据
、数字签名
打包发送
- 接收端(客户端)
- 提取
原始数据
,使用约定的数字摘要算法
计算出数字摘要
A - 提取出
数字签名
,使用公钥
对其解密得到数字摘要
B - 判断
数字摘要
A是否与数字摘要
B一致
接收端如何获取到公钥
?数字证书
可以帮到你
- 发送端(服务端)
- 发送端向CA申请
数字证书
-
发送端公钥
经过数字证书
里的摘要算法
生成数字摘要
-
数字证书私钥
对数字摘要
进行加密生成数字签名
- 将
发送端公钥
、数字签名
、数字证书
打包发送
- 接收端(客户端)
- 提取
发送端公钥
- 提取
数字证书
,校验数字证书
是否可信 - 如果可信,使用
发送端公钥
和数字证书
里的摘要算法
计算出数字摘要
A - 从
数字证书
中拿到数字证书公钥
- 提取出
数字签名
,使用数字证书公钥
对其解密得到数字摘要
B - 判断
数字摘要
A是否与数字摘要
B一致 - 如果一致,发送与接收双方可以利用非对称加密进行通信
HTTP的不安全性
- 被中间人窃听(HTTPS可解决)
- 被中间人篡改(HTTPS可解决)
- 被中间人伪造(HTTPS可解决)
- 被中间人丢弃(HTTPS不可解决)
HTTPS概念
HTTP over SSL/TLS
HTTPS请求过程
- C向S发起访问请求
- S向C发送数字证书
- C校验接收到的数字证书是否可信
- 如果不可信,显示警告
- 如果可信,提取公钥
- C生成对称加密私钥对
- C使用证书提取的公钥加密私钥对,发送给S
- S使用证书私钥解密接收到的C端私钥对
- 后续通信使用C端私钥对进行
网友评论