HTTP的缺点
- 通信使用明文(不加密),内容可能会被窃听
通信的加密
可以通过SSL
和TLS
组合加密HTTP
通信内容
HTTPS并非是应用层的一种新协议。只是HTTP通信接口部分用SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议代替而已。
在采用SSL后,HTTP就拥有了HTTPS的加密、证书和完整性保护这些功能
内容的加密:
报文主体加密处理,报文首部未加密处理 - 不验证通信方的身份,因此有可能遭遇伪装
证书由值得信任的第三方机构颁发,用以证明服务器和客户端是实际存在的 - 无法证明报文的完整性,所以有可能已遭篡改
HTTP + 加密 + 认证 + 完整性保护 = HTTPS
共享密匙加密
- 加密和解密同用一个密钥,只要拿到密匙,任何人都能破解密码
- 无法安全将密匙发送到客户端
公开密匙加密
- 公开密匙可以交给任何人,在客户端收到公开密匙之后,使用公开密匙进行加密,服务器端使用私有密匙解密(公开密匙和私有密匙是配对的一套密匙)
- 根据密文和公开密匙,恢复到信息原文是异常困难的
HTTPS采用混合加密机制
- 首先,在客户端收到公开密匙之后,使用公开密匙将共享密匙加密,发给服务器,服务器使用私有密匙将共享密匙解密,现在客户端和服务器都拥有了共享密匙,就可以使用共享密匙进行通信
证明公开密钥正确性的证书
- 务器的运营人员向数字证书认证机构提出公开密钥的申请。数字证书认证机构在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公钥证书后绑定在一起
- 服务器会将这份由数字证书认证机构颁发的公钥证书发送给客户端,以进行公开密钥加密方式通信
- 接到证书的客户端可使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证通过,客户端(EV SSL证书)便可明确两件事:一,认证服务器的公开密钥的是真实有效的数字证书认证机构。二,服务器的公开密钥是值得信赖的。
- 数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开密钥。
HTTPS的安全通信机制
- 在以上流程中,应用层发送数据时会附加一种叫做MAC(Message AuthenticationCode)的报文摘要。MAC能够查知报文是否遭到篡改,从而保护报文的完整性。
- HTTPS使用SSL(Secure Socket Layer)和TLS(Transport Layer Security)这两个协议。
- SSL的慢分两种。一种是指通信慢。另一种是指由于大量消耗CPU及内存等资源,导致处理速度变慢。和使用HTTP相比,网络负载可能会变慢2到100倍。
转载:https://blog.csdn.net/AnitaSun/article/details/115607528
查看评论