图解HTTP--确保安全的HTTPS

确保安全的HTTPS

HTTP协议的缺点

  • 通信使用明文(不加密)内容可能会被窃听
    通信内容一般要经过多次转发才能到达接收端。在这个通信过程中,在各个阶段通信内容都有可能被窥探。即使通信内容进行过加密,但是加密后的报文还是会被窃听。而且,如果内容要到达接收端,密钥也会需要传输到接收方,在传递过程中,密钥还是有可能被获取。

  • 不验证通信方身份,可能遭遇伪装
    HTTP协议通信时,由于不存在确认通信方的处理步骤,任何人都可以发起请求。服务器只要接到请求也都会响应。所以请求方和服务器都可以伪装。
    无法确定正在通信的双方是否具备访问权限
    即使是无意义的请求也会照单全收,无法阻止海量请求下的DoS攻击(Denial of Service拒绝服务攻击)

  • 无法验证报文的完整性,可能遭遇篡改
    所谓报文的完整性,指的是信息的准确度。因为信息在传递的途中可能被篡改,而服务器没法知道是否被修改。


由于HTTP协议存在以上各种缺点,所以为了有效防止这些弊端,就有必要使用HTTPS了


所谓HTTPS

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

看吧,上面这个公式,正好可以对应解决HTTP的弊端

-----下面依次来解释以上公式-----

  • HTTP
    HTTPS并非新的应用层协议,而是HTTP通信接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议代替。用HTTP的时候,HTTP直接和TCP通信,用SSL的时候,HTTP就会先和SSL通信,然后SSL再和TCP通信。简而言之,HTTPS就是套了SSL协议外壳的HTTP
  • 加密
    HTTP加密传输一般使用 <u>共享密钥加密</u>,这是一种<u>对称加密方法</u>也就是说,发送方和接收方使用同一套密钥。这样存在的问题是,密钥在传输过程中可能被窃取。
    HTTPS采用的是<u>公开密钥加密</u>的处理方式。这是一种 <u>不对称的加密方式</u>,就是说,发送方用对方的公开密钥加密,当信息传递到对方的时候,对方用自己的私有密钥解密,这样就不涉及传输密钥的安全问题。公开密钥可以随意传输,私有密钥只有自己知道。棒棒的~

  • 认证
    HTTP协议无法确定通信方,但是SSL可以。它拥有一种叫做证书的手段,可用于确定方。另外伪造证书想当困难,所以只要能够确定通信方持有证书,就可以判断通信方的真正意图。
    证书由值得信赖的第三方机构颁发,用以证明服务器端和客户端是真实存在的。

  • 完整性保护
    应用层在发送数据时,会附加一种叫做MAC(Message Authentication Code)的报文摘要。MAC能够查知报文是否遭到篡改,从而保护报文的完整性。


SSL是独立于HTTP的协议,所以不光是HTTP协议,其他运行在应用层的SMTP和Telnet等协议均可配合SSL协议使用。可以说SSL是当今世界上应用最为广泛的网络安全技术。

HTTPS也有一些问题

当HTTP使用SSL的时候,处理速度会变慢,一般HTTPS 比HTTP慢2到100倍。
一是因为多了HTTP和SSL及TCP的通信
二是因为HTTPS要处理客户端和服务器之间的加密解密,完整性,证书认证等验证。这也将消耗CPU和内存等硬件资源

<u>由此看来在一些情况下不用HTTPS的原因也是显而易见了:</u>
因为HTTPS的处理速度会变慢,因为对硬件的消耗,对访问量很大的web网站而言,其承担的负载不容小觑。除此之外,节约购买数字证书的成本也是原因之一。
所以,一般非敏感性信息还是会用http通信,敏感性的信息才会用https通信。

针对SSL速度慢的情况,没有根本的解决方案,一般会使用SSL加速器这种(专用服务器)硬件来改善问题。

本文整理自《图解HTTP》和网络,之后将持续进行完善

图解HTTP系列:
图解HTTP--HTTP状态码
图解HTTP--TCP/IP
图解HTTP--与HTTP协作的web服务器

推荐阅读更多精彩内容

  • 前面两篇文章中关于 HTTP 相关知识基本上介绍的差不多了,这篇文章是对 HTTP 协议的补充,主要介绍以下三点内...
    lijiankun24阅读 930评论 2 3
  • 1.OkHttp源码解析(一):OKHttp初阶2 OkHttp源码解析(二):OkHttp连接的"前戏"——HT...
    隔壁老李头阅读 19,036评论 23 171
  • 1. 网络基础TCP/IP HTTP基于TCP/IP协议族,HTTP属于它内部的一个子集。 把互联网相关联的协议集...
    yozosann阅读 3,229评论 0 21
  • 事物皆有两面,HTTP也有其不足之处,如下所示举例:(1)通信使用明文,不加密,内容可能会被窃听;(2)不验证通信...
    _SecondLife阅读 663评论 0 2
  • 一、作用 不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文传播,带来了三大风险。 (1)窃听风险...
    XLsn0w阅读 9,748评论 2 45
  • 人生在世如身处荆棘林中,心不动则人不妄动,不动则不伤;如心动则人妄动,则伤其身痛其骨,于是体会到世间诸般痛苦。 所...
    生长面包树阅读 227评论 0 0
  • 神,一个离我们很近也很远的高贵物种,它总是让我们感到触手可得,但当我们认为自己已经做足了准备去接受它时我们就会发现...
    牛涵葳阅读 219评论 0 0
  • 催着老公去学习九型的初衷是把他打造成懂我要什么、既能赚钱养家又能跟孩子亲密的高品位妇用产品,他走进了课堂(一阶复训...
    长青竹ing阅读 193评论 0 6