HTTP的缺点:
1、通信使用明文(不加密),内容可能会被窃听
2、不验证通信方的身份,因此有可能遭遇伪装
3、无法证明报文的完整性,所以有可能已遭篡改
1)
通信的加密:HTTP协议中没有加密机制,但可以通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全层传输协议)的组合使用,加密HTTP的通信内容
用SSL建立安全通信线路之后,就可以在这条线路进行HTTP通信。
与SSL组合使用的HTTP被称为HTTPS(HTTP Secure 超文本传输安全协议)或HTTP over SSL。
内容加密:对HTTP协议传输的内容本身加密,由于该方式不同于SSL或TLS将整个通信线路加密处理,所以内容仍有被篡改的风险
2)
查明对手的证书,SSL不仅提供加密处理,而且还使用了一种被称为证书的手段,证书由值得信赖的第三方机构颁发,用以证明服务器和客户端是实际存在的。
3)
防止报文被篡改,其中常用的是MD5和SHA-1等散列值校验方法,以及用来确认文件的数组签名方法,但依然无法百分百确认结果正确
HTTPS加密+认证+完整性保护
HTTPS并非是应用层的一种协议,只是HTTP通信接口部分用SSL和TLS协议代替而已
HTTPS采用混合加密机制,采用共享密钥加密和公开密钥加密两者并用的混合加密机制。
公开密钥正确性的证书
1、服务器运营人员向数字证书认证机构提出公开密钥的申请
2、数字证书认证机构判明申请者的身份之后,对申请的公开密钥做数字签名,将公开密钥放入证书
3、服务器会将数字证书认证机构颁发的公钥证书发送给客户端
4、客户端使用数字证书认证机构的公开密钥对证书上的数字签名进行验证
一旦通过验证,客户端可以明确两件事:
1、认证服务器的公开密钥的是真实有效的数字认证认证机构
2、服务器的公开密钥是值得信赖的