HTTP协议存在的安全问题
- 通信协议使用明文传输,内容有被窃听的风险
- 不验证通信方的身份,可能遭遇伪装的通信方
- 无法证明报文的完整性,可能被篡改
解决方案
加密协议
- 由于互联网是由全世界各个地方的网络组成,无法避免被请求数据在传输过程中被窃听, 所以可以通过使用HTTPS加密协议,做到窃听者即使拿到请求数据,也无法理解通信的内容。
验证通信方的身份,避免遭遇伪装
- 定通信方的身份,证书是由值的信任的第三方机构颁发,用以证明服务器和客户端是实际存在的
证明报文的完整性,避免遭篡改的请求
- 通过SSL提供的认证和加密处理以及摘要功能,来避免
HTTP和HTTPS的区别
与SSL组合使用的HTTP被称为HTTPS(超文本传输安全协议)
HTTP+加密+认证+完整性保护=HTTPS
通常HTTP直接和TCP通信,HTTPS这是先和SSL通信,再由SSL和TCP通信
我们正是通过SSL协议来解决上述的HTTP安全问题
SSL与TLS简介和区别
- SSL(安全套接字层协议),TLS(安全传输层协议),是用于在网络上安全的传输数据,主要提供以下功能:
- 认证用户和服务器,确保数据发送到正确的客户机和服务器
- 加密数据以防止数据中途被窃取;
- 维护数据的完整性,确保数据在传输过程中不被改变。
- 在SSL更新到3.0时,IETF对SSL3.0进行了标准化,并添加了少数机制(几乎和3.0一样),更名为TLS1.0,可以说TLS1.0就是SSL的3.1版本
HTTPS工作流程
在阐述HTTPS工作流程之前,先了解下用到的两种加密方法
- 对称密钥加密
- 即通信双方使用相同的密钥进行加密解密
- 问题在于在互联网上如何安全的将密钥转交给对方,并安全的管理密钥
- 公开密钥加密
- 使用一对非对称的密钥,公钥和私钥,私钥需要自己妥善保管,公钥可以随意发布
- 加密时,发送密文的一方使用对方的公钥加密,对方收到后使用私钥解密
- 这种方式因为不需要发送用于解密的私钥,所以不用担心私钥被窃听盗走
- 性能区别
HTTPS采用混合加密机制
- 在交换密钥环节使用公开密钥加密方式,主要是为了安全的交换密钥
- 在之后的建立通信传输环节使用对称密钥加密,主要对称密钥加密性能更高
如何安全的交换共享密钥 - 证书(证明公开密钥正确性)
- 如何选择加密方式
- 选择对称密钥加密, 因为速度更快
- 决定使用对称密钥加密后,关键点在于如何传输约定的用于加密的密钥
- 基于安全,考虑使用公开密钥加密来传输使用的密钥,由于私钥并不会传输所以是安全的
- 这个时候问题在于解决如何确定收到的公钥是需要请求的服务器发送的公钥,中途没有被替换
- 解决方案是加入值的信赖的第三方认证机构,来认证收到的公钥是真正请求服务器的公钥
- 具体流程如下
- 服务器管理员向数字认证机构提出公开密钥的申请
- 数字认证机构使用自己的私钥对公开密钥做数字签名,然后将该公开密钥放入公钥证书
- 服务器将公钥证书发送给客户端
- 客户端使用数字认证机构的公开密钥对证书上的数字签名进行验证
- 验证通过后明确两件事:一、证书上的数字签名是真实有效的数字证书认证机构。二、服务器的公开密钥是值的信赖的
- 这里有一个问题验证数字签名用到的认证机构的公开密钥如何安全的转交,通常的解决办法是浏览器事先在内部植入常用认证机关的公开密钥
HTTPS具体的工作流程
图示

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/16276.html。