概述:
因为HTTP存在
安全性问题:使用明文进行通信,内容可能会被窃听;不验证通信方的身份,通信方的身份有可能遭遇伪装;无法证明报文的完整性,报文有可能遭篡改。
HTTPS
并不是新协议,而是让 HTTP
先和 SSL(Secure Sockets Layer)
通信,再由 SSL
和 TCP
通信,也就是说 HTTPS
使用了隧道进行通信。通过使用 SSL
,HTTPS
具有了加密(防窃听)、认证(防伪装)和完整性保护(防篡改)。
加密方式:
加密分为:对称式加密和非对称式加密两种。
1.对称式加密
对称式加密是,加密和解密过程中用的是同一把密钥,使得运算速度较快,但是在传输过程中无法安全地将密钥传输给通信方,容易让密钥遭到拦截后,泄露数据。
2.非对称式加密
非对称式加密,加密和解密用的不是同一把密钥,是一个密钥对,加密用公钥加密,解密用的是私钥,这样可以更安全地将公钥传输给通信发送方,但是这样会使得运算速度较慢。
HTTPS工作原理:
图中可以看出:用户通过浏览器请求https
网站,服务器收到请求,选择浏览器支持的加密和hash
算法,同时返回证书给浏览器,证书里包含了公钥,然后,浏览器对证书的内容进行校验,如果没有问题,就生成随机秘钥X
,同时使用证书中的公钥对其进行加密,并且发送给服务器。服务器收到之后,使用私钥解密,得到随机秘钥X
,然后使用随机秘钥X
对网页内容进行加密,返回给浏览器。浏览器则使用随机秘钥X
和之前约定的加密算法进行解密,得到最终的网页内容。