确保Web安全的HTTPS

一、HTTP的缺点

到目前为止,我们已经介绍完HTTP,它具有相当优秀和方便的一面,但它也有不足之处,HTTP 主要有这些不足,例举如下。

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

除此之外,HTTP 本身还有很多缺点。而且,还有像某些特定的 Web 服务器和特定的 Web 浏览器在实际应用中存在的不足(也可以说成 是脆弱性或安全漏洞),另外,用 Java PHP 等编程语言开发的 Web 应用也可能存在安全漏洞。下面我们具体介绍一下三个不足之处

1、通信使用明文可能会被窃听 (图:互联网上的任何角落都存在通信内容被窃听的风险

确保Web安全的HTTPS

窃听相同段上的通信并非难事。只需要收集在互联网上流动的数 据包(帧)就行了。对于收集来的数据包的解析工作,可交给那
些抓包(Packet Capture)或嗅探器(Sniffer)工具
 
解决办法:加密处理防止被窃听
  1. 通信的加密:HTTP协议中没有加密机制,但可以通过SSL(Secure Socket Layer安全套接层)或TSL(Transport Layer Security安全层传输协议)的组合使用,加密HTTP通信内容。用SSL建立安全通信线路之后,就可以在这条线路上进行HTTP通信了故称HTTPS(HTTP over Secur)。

         确保Web安全的HTTPS

      2、内容的加密:把报文主体进行加密(内容仍有被篡改的风险)

        确保Web安全的HTTPS

2、不验证通信方的身份就可能遭遇伪装

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

确保Web安全的HTTPS
解决办法:
  • 查明对手的证书
    虽然使用 HTTP 协议无法确定通信方,但如果使用 SSL则可以。 SSL不仅提供加密处理,而且还使用了一种被称为证书的手段, 可用于确定方。 证书由值得信任的第三方机构颁发,用以证明服务器和客户端是 实际存在的。另外,伪造证书从技术角度来说是异常困难的一件 事。所以只要能够确认通信方(服务器或客户端)持有的证书, 即可判断通信方的真实意图。

       确保Web安全的HTTPS

使用证书,以证明通信方就是意料中的服务器。这对使用者个人来讲,也减少了个人信息泄露的危险性。

 

3、无法证明报文完整性,可能已遭篡改

 
确保Web安全的HTTPS
 
 
确保Web安全的HTTPS
 
解决办法:
虽然有使用 HTTP 协议确定报文完整性的方法,但事实上并不便 捷、可靠。其中常用的是 MD5 SHA-1 等散列值校验的方法, 以及用来确认文件的数字签名方法。

 

 

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

确保Web安全的HTTPS

确保Web安全的HTTPS

HTTPS是身披SSL外壳的HTTP,在采用 SSL后,HTTP 就拥有了 HTTPS 的加密、证书和完整性保护 这些功能。

在对 SSL进行讲解之前,我们先来了解一下加密方法。SSL采用一种 叫做公开**加密(Public-key cryptography)的加密处理方式。
1、共享**加密的困境:加密解密用同一个**的方式称为共享**加密。
      确保Web安全的HTTPS
2、使用两把**的公开**加密
  • 使用两把**的公开**加密,使用一对非对称的**。一把叫做私有**,一把叫做公有**。发送密文的一方使用对方的公钥进行加密,接收方使用自己的私钥进行解密,利用这种方式,不需要发送用来解密的私有**。
确保Web安全的HTTPS
 
HTTPS采用混合加密机制:若**能够实现安全交换,那么有可能会考虑仅使用公开**加密来,但是公开**加密处理速度比共享**要慢。故:交换**环节使用公开**加密方式,之后建立通信交换报文阶段采用共享**加密
确保Web安全的HTTPS

 

 

3、证明公开**正确性的证书:

遗憾的是,公开**加密方式还是存在一些问题的。那就是无法证明 公开**本身就是货真价实的公开**。比如,正准备和某台服务器 建立公开**加密方式下的通信时,如何证明收到的公开**就是原 本预想的那台服务器发行的公开**。或许在公开**传输途中,真 正的公开**已经被攻击者替换掉了。 为了解决上述问题,可以使用由数字证书认证机构(CACertificate Authority)和其相关机关颁发的公开**证书。

确保Web安全的HTTPS

数字证书认证机构处于客户端与服务器双方都可信赖的第三方机构的 立场上。威瑞信(VeriSign)就是其中一家非常有名的数字证书认证 机构。我们来介绍一下数字证书认证机构的业务流程。首先,服务器 的运营人员向数字证书认证机构提出公开**的申请。数字证书认证 机构在判明提出申请者的身份之后,会对已申请的公开**做数字签 名,然后分配这个已签名的公开**,并将该公开**放入公钥证书 后绑定在一起。 服务器会将这份由数字证书认证机构颁发的公钥证书发送给客户端以进行公开**加密方式通信。公钥证书也可叫做数字证书或直接称为证书。接到证书的客户端可使用数字证书认证机构的公开**,对那张证书
上的数字签名进行验证,一旦验证通过,客户端便可明确两件事:
一,认证服务器的公开**的是真实有效的数字证书认证机构。
二, 服务器的公开**是值得信赖的。 此处认证机关的公开**必须安全地转交给客户端。使用通信方式时,如何安全转交是一件很困难的事,因此,多数浏览器开发商发布 版本时,会事先在内部植入常用认证机关的公开**。

 

三、HTTPS的缺点

HTTPS 也存在一些问题,那就是当使用 SSL时,它的处理速度 会变慢。除此之外,想要节约购买证书的开销也是原因之一。
确保Web安全的HTTPS