这是我参与更文挑战的第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的公钥进行解密,再用散列函数计算消息明文生成消息摘要,进行对比。