HTTP入门(七):确保Web安全的HTTPS

文章目录

    • 7.1HTTP的缺点
      • 7.1.1 通信使用明文可能会被窃听
      • 7.1.2 不验证通信方的身份就可能遭遇伪装
        • 任何人都可发起请求
        • 查明对手的证书
      • 7.1.3无法验证报文的完整性,可能已遭篡改
        • 接受到的内容可能有误
    • 7.2 HTTP+加密+认证+完整性保护=HTTPS
      • 7.2.1HTTPS是身披SSL外壳的HTTP
      • 7.2.2相互交换密钥的公开密钥加密技术
        • 共享密钥加密的困境
        • 使用两把密钥的公开密钥加密
        • HTTPS采用混合加密机制
      • 7.2.3HTTPS的安全通信机制
        • SSL速度
        • 为什么不一直使用HTTPS?

7.1HTTP的缺点

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

7.1.1 通信使用明文可能会被窃听

由于HTTP本身不具备加密的功能,所以也无法做到对通信整体(使用HTTP协议通信请求和响应的内容)进行加密。即,HTTP报文使用明文(指未加密的报文)进行加密

  • TCP/IP是可能被窃听的网络

按照TCP/IP协议族的工作机制,通信内容在所有的通信线路上都有可能遭到窥视。即使是已经加密处理的通信,也会被窥视到通信内容,这点和未加密的通信是相同的。只是说如果经过加密,就有可能让人无法破解报文信息的含义,但加密处理后的报文信息本身还是会被看到的。

  • 加密处理防止被窃听

防窃听保护信息的几种对策中,最为普及的就是加密技术。

通信的加密

和SSL(Secure Socket Layer,安全套接层)或者TLS(Transport Layer Security,安全传输层协议)的组合使用,加密HTTP的通信内容。

用SSL建立安全通信线路之后,就可以在这条路上进行HTTP通信了。与SSL组合使用的HTTP被称为HTTPS(HTTP Secure ,超文本传输安全协议)。

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

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

任何人都可发起请求

在HTTP协议通信时,由于不存在确认通信方的处理步骤,任何人都可以发起请求,另外,服务器只要接收到请求,不管对方是谁都会返回一个响应(但也限于发送端的IP地址和端口号没有被Web服务器设定限制访问的前提下)

查明对手的证书

SSL不仅可以加密,还使用了一种被称为证书的手段,可用于确定方。

证书由值得信赖的第三方机构颁发,用以证明服务器和客户端是实际存在的。伪造证书是异常困难的,所以只要能够确认通信方持有的证书,即可判断通信方的真实身份。

HTTP入门(七):确保Web安全的HTTPS_第1张图片

7.1.3无法验证报文的完整性,可能已遭篡改

所谓完整性是指信息的准确性。若无法证明其完整性,也就意味着无法证明其信息是否准确。

接受到的内容可能有误

没有办法确认,发出的请求/响应和接受到的请求/响应是前后相同的。

请求或响应在传播途中,遭遇攻击者拦截并篡改内容的攻击称为中间人攻击(Man-in-the-Middle attack,MITM)

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

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

7.2.1HTTPS是身披SSL外壳的HTTP

HTTPS并非是应用层的一种新协议。只是HTTP通信接口部分用SSL协议代替而已。

通常,HTTP直接和TCP通信。当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信了。简言之,所谓HTTPS,其实就是身披SSL外壳的HTTP。

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

SSL是独立于HTTP的协议,所以不光是HTTP协议,其他运行在应用层SMTP和Telnet等协议均可配合SSL协议使用。

7.2.2相互交换密钥的公开密钥加密技术

SSL采用一种叫做公开密钥加密的加密处理方式。

共享密钥加密的困境

加密和解密同用一个密钥的方式称为共享密钥加密,也被称为对称密钥加密。

问题在于:

  • 已共享密钥的方式进行加密,密钥如何安全地转交给对方。
  • 如何安全地保管接受到的密钥、

使用两把密钥的公开密钥加密

公开密钥加密使用一对非对称的密钥。一把叫做私有密钥,另一把叫做公开密钥。顾名思义,私有密钥不能让其他任何人知道,而公开密钥则是可以随意发布,任何人都可以获得。

HTTPS采用混合加密机制

HTTPS采用共享密钥加密和公开密钥加密并用的混合加密机制。

在交换密钥环节使用公开密钥加密,之后建立通信交换报文阶段则使用共享密钥加密方式。

HTTP入门(七):确保Web安全的HTTPS_第2张图片

7.2.3HTTPS的安全通信机制

HTTPS使用SSL(Secure Socket Layer)和TLS(Transport Layer Security)这两个协议,TSL是以SSL为原型开发的协议,有时候统一称该协议为SSL。

SSL速度

HTTP入门(七):确保Web安全的HTTPS_第3张图片

SSL慢分为两种,一种是指通信慢,二是指由于大量消耗CPU及内存等资源,导致处理速度变慢。

为什么不一直使用HTTPS?

  • 与纯文本通信相比,加密通信会消耗更多的CPU及内存资源,特别是每当那些访问量较多的Web网站进行加密处理时候,他们所承担的负载不容小觑。因此,如果是非敏感信息,则使用HTTP通信,只有包含个人信息等敏感信息时,才利用HTTPS进行通信。
  • 节约购买数字证书的费用。

你可能感兴趣的:(HTTP入门)