简析https协议传输的几个特点

263 阅读3分钟

这是我参与更文挑战的第7天,活动详情查看: 更文挑战

http明文协议的问题(4个)❓

1.流量劫持

客户端访问地址时被恶意劫持,中途跳转到其他网站

2.数据篡改

// 原数据被篡改
// 无法证明报文的完整性
//https 通过数据签名进行弥补

3.钓鱼攻击

// http不需要验证通信双方的身份,任何人都可以通过伪造服务器欺骗客户
// 缺少身份认证

4.数据泄露

https的特点❤

1.数据的私密性

// 对称加密
// 非对称性加密
// 每一个连接生成唯一的加密密钥

2.数据的完整型

3.身份验证

解决数据被窃听的问题✔

1.通过公有密钥和私有密钥进行加密

2.发密文的使用对方的密钥进行加密,对方收到加密的信息后,在使用私有密钥进行解密

优点:服务器只需要1个私钥就可以和多个客户端进行加密通信

缺点: 1.公钥公开: 黑客如果截获依旧会获取

2.服务器身份的合法性不确定:存在中间人去截获并篡改

3.降低数据传输效率:数据加密解密过程中消耗一定的时间

4.最终方式: 二合一 对称加密与非对称加密两者并用的混合加密机制

具体实现:在交换密钥的环节,发密方将自己的公钥通过对方的公钥进行加密,对方收到加密的密钥后,用自己的私钥进行解密,获取对方的公钥

解决数据完整性的问题✔

数字签名:确定发送方的身份,证明数据是否被篡改

流程: 首先,发送方先将一段原文用hash函数生成一段消息摘要,然后用自己的私钥对消息摘要进行加密,生成数字签名,然后与原文一起发送给接收方,接受方通过发送方的公钥对数字签名进行解密,让再将原文用hash函数生成消息摘要,让后进行对比。

问题:不能保证公钥的安全传输

解决通信双方可能被伪装的问题✔

数字证书认证机构

具体实现:服务器向第三方CA提交公钥,组织信息,申请认证,认证通过后,CA签发证书:包含申请者的公钥,组织信息,有效时间,证书序列号明文,还有签名,用散列表将明文计算,生成消息摘要,再用CA的密钥进行加密,密文就是签名,客户端向服务端发出请求,服务端会返回文件,客户端收到证书后,先用CA的公钥进行解密,再用散列函数计算消息明文生成消息摘要,进行对比。

流程图

image.png

欢迎关注作者雾灵🥇

个人博客 | github-雾灵

《百道JS小知识点》系列(1)快速学习⛹🏻‍♂️

《百道JS小知识点》系列(2)快速学习⛹🏻‍♂️

简单实现vue的几个流程