日常生活中超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了
SSL
/TLS协议,SSL/TLS依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTPS工作流程
1.用户通过浏览器请求https网站,要求与服务器建立SSL连接,告诉服务器自己支持那些加密算法
2.服务器收到请求后,返回网站的数字证书给浏览器,数字证书中包含颁发机构,网址,子域名,公钥,证书有效期等信息
3.客户端验证数字证书,生成随机密钥x,用证书中的公钥对随机密钥x进行加密,并发送给服务器
4.服务器收到之后,用私钥进行解密,得到随机密钥x,然后使用随机密钥x对网页加密,发送给浏览器
5.浏览器收到加密后的网页后用随机密钥x进行解密,得到最终网页
HTTPS为了实现浏览器与服务器之间的加密通信,采用了对称式加密和非对称式加密两种算法来保证通信安全
对称式加密:
加密和解密使用同一密钥。
- 优点:运算速度快;
- 缺点:无法安全地将密钥传输给通信方
非对称式加密:
加密和解密使用不同的密钥。
公开密钥所有人都可以获得,通信发送方获得接收方的公开密钥之后,就可以使用公开密钥进行加密,接收方收到通信内容后使用私有密钥解密。
非对称密钥除了用来加密,还可以用来进行签名。因为私有密钥无法被其他人获取,因此通信发送方使用其私有密钥进行签名,通信接收方使用发送方的公开密钥对签名进行解密,就能判断这个签名是否正确。
-
优点
:可以更安全地将公开密钥传输给通信发送方; -
缺点
:运算速度慢。 -