确保WEB安全的HTTPS

一、HTTP的缺点:

1、通信使用明文(不加密),内容可能会被窃听。
2、不验证通信方的身份,因此有可能遭遇身份伪装。
3、无法证明报文的完整性,所以有可能已被篡改。

通信使用明文可能会被窃听
TCP/IP是可能被窃听的网络

1、加密处理防止被窃听

通信加密:HTTP中没有加密机制,但是可以通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全层传输协议)的组合使用,加密HTTP的通信内容。

用SSL建立起安全的通信线路之后,就可以在这条线路上进行HTTP通信了。与SSL组合使用的HTTP被称为HTTPS。

确保WEB安全的HTTPS

内容加密:由于HTTP协议没有加密机制,那么就对HTTP协议传输的内容本身加密,即把HTTP报文里所含的内容进行加密处理。
确保WEB安全的HTTPS

因此就要求客户端和服务器同时具备相同的加密和解密的机制。

2、不验证通信方的身份,因此有可能遭遇身份伪装。

HTTP协议中的请求和响应不会对通信方进行确认,也就是说存在“服务器是否就是发送请求中URL真正指定的主机,返回到响应是否真的返回到实际提出请求的客户端”。
确保WEB安全的HTTPS

HTTP协议实现本身就非常简单,不论是谁发送过来的请求都会返回响应,因此不确认通信方。

如何解决:查看对手的证书
虽然使用HTTP协议无法确定通信方,但如果使用SSL则可以。SSL不仅提供加密处理,而且还使用了一种称为证书的手段,可用于确定通信方。

确保WEB安全的HTTPS

3、无法证明报文的完整性,所以有可能已被篡改。

接收到的内容可能有误
由于HTTP协议无法证明通信的报文的完整性,因此,在请求或响应送出之后直到对方接收之前的这段时间内,即使请求/或响应的内容遭到篡改,也没有办法获悉。
确保WEB安全的HTTPS

像这样。请求或响应在传输过程中,遭遇攻击者拦截并篡改内容的攻击称为中间人攻击(MITM)。

确保WEB安全的HTTPS

如何防止篡改
最常用的就是MD5和SHA-1等散列值校验的方法,以及用来确认文件的数字签名方法。
PGP是用来证明创建文件的数字签名,MD5是由单向函数生成的散列值。不论使用哪一种办法,都需要用户本人检查下载的文件是否就是原来服务器上的文件。浏览器无法自动帮用户检查。

二、HTTP+加密+认证+完整性保护 = HTTPS

确保WEB安全的HTTPS

经常会在Web的登录页面和购物结算页面使用HTTPS通信。

1、HTTPS是身披SSL外壳的HTTP
HTTPS并非是应用层的一种新协议,只是HTTP通信接口部分用SSL和TLS协议代替而已。
通常,HTTP直接和TCP通信。当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信。简而言之,所谓HTTPS,就是身披SSL外壳的HTTP。

确保WEB安全的HTTPS
在采用SSL后,HTTP就拥有了HTTPS的加密、证书和完整性保护这些功能。

2、相互交换**的公开**加密技术
SSL采用一种叫做公开**的加密处理方式

共享**加密的困境
加密和解密用同一个**的方式称为共享**加密,也叫做对称**加密。

确保WEB安全的HTTPS

以共享**的方式加密时必须将**也发送给对方

确保WEB安全的HTTPS

如果**能安全到达对方,那么数据也能安全到达。

使用两把**的公开**加密技术
公开**加密方式很好的解决了共享**加密的困境
使用公开**加密方式,发送密文的一方使用对方的公开**进行加密处理,对方收到被加密的信息后,使用自己的私有**进行解密。利用这种技术,不需要发送解密的私有**。

确保WEB安全的HTTPS

三、HTTPS采用混合加密机制

HTTPS采用共享**加密和公开**加密两者并用的混合加密机制。因为公开**加密与私有**加密相比,其处理速度要慢。
所以应当充分考虑两者的优势,将多种方法组合起来用于通信。在交换**环节使用公开**加密方式来传递稍后在共享**加密中使用的**。之后的建立通信交换报文阶段则使用共享**加密方式。
确保WEB安全的HTTPS

1、证明公开**正确性的证书
遗憾的是,无法证明公开**就是货真价实的公开**,比如,正准备和某台服务器建立公开**加密方式的通信时,如何证明收到的公开**就是原本预想的那台服务器发行的公开**。或许在公开**交换途中,真正的公开**已经被攻击者替换掉了。

确保WEB安全的HTTPS

2、发放证书的流程
服务器的运营人员向数字证书认证机构提出公开**的申请,数字证书认证机构在判明提出申请者的身份后,会对已申请的公开**做数字签名,然后分配这个已签名的公开**,并将该公开**放入公钥证书后绑定在一起。

接到证书的客户端可使用数字证书认证机构的公开**,对那张证书上的数字签名进行验证,一旦验证通过,客户端可以明确两件事:一、认证服务器的公开**是真实有效的数字证书认证机构的。二、服务器的公开**是值的信赖的。

四、HTTPS的安全通信机制

确保WEB安全的HTTPS

确保WEB安全的HTTPS