zoukankan      html  css  js  c++  java
  • 【图解Http 学习摘要】四、HTTP 缺点

    在 HTTP 协议中有可能存在信息窃听或身份伪装等安全问题(其实也不仅仅出现与 HTTP,只要是未加密的协议都会存在),使用 HTTPS 通信机制可以有效的防止这些问题。

    HTTP 的缺点

    1. 通信使用明文(不加密),内容可能会被窃听。

    由于 HTTP 本身不具备加密的功能,所以 HTTP 报文使用明文方式传送。

    传送又是在 TCP/IP,这东东就是一个可以被窃听的网络,你在上面传东西自然就有被恶意窃听的风险了。

    所谓的网络,是由能连通到全世界的网络组成的。无论世界哪个角落的服务器在和客户端通信时,在此通信线路上的某些网络设备、光缆、计算机等都不可能是个人的私有物,所以不排除某个 环节中会遭到恶意窥视行为。

    另外,就算你把通信内容加密了,但是加密处理后的内容依然可以被看到。

    加密处理防止被窃听

    • 通信的加密:HTTP 协议通过和 SSL(Secure Socket Layer,安全套接层),也就是 HTTPS。
    • 内容的加密:将参与通信的内容本身加密的方式,前提是要求客户端和服务器同时具备加密和解密机制,主要应用在 Web 服务中。但是内容仍有被篡改的风险。

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

    HTTP 协议中的请求和响应不会对通信方进行确认。

    那么问题来了:

    • 客户端 A 发送请求给服务端 B,不知道返回响应的 B 是不是真正的服务器,有可能是伪装的 web服务。
    • 服务端 B 给客户端 A 返回响应,也不知道接收响应的 A 是不是真正的那个客户端,有可能是伪装的 客户端。
    • 无法确定正在通信的对方是否具备访问权限。因为某些 Web 服务器上保存着重要的信息,只想发给特定用户通信的权限。
    • 无法判定请求是来自何方、出自谁手。
    • 即使是无意义的请求也会照单全收。无法阻止海量请求下的 DoS 攻击(Denial of Service,拒绝服务攻击)

    查明对手的证书

    • SSL不仅提供加密处理,而且还使用了一种被称为证书的手段,可用于确定方。
    • 证书由值得信任的第三方机构颁发,用以证明服务器和客户端是 实际存在的。
    • 伪造证书从技术角度来说是异常困难的一件事。

    所以只要能够确认通信方(服务器或客户端)持有的证书,即可判断通信方的真实意图。

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

    所谓完整性是指信息的准确度。若无法证明其完整性,通常也就意味着无法判断信息是否准确,问题也就出现了:

    • 双方接收到的内容可能有误。

    在请求或响应送出之后直到对方接收之前的这段时间内,如果请求或响应的内容遭到篡改,HTTP 协议无法获悉,这种叫中间人攻击

    如何防止篡改

    • 使用 HTTP 协议确定报文完整性的方法,常用的是 MD5 和 SHA-1 等散列值校验的方法,以及用来确认文件的数字签名方法。可惜的是,用这些方法也依然无法百分百保证确认结果正确。因为 MD5 本身被改写的话,用户是没有办法意识到的。
    • 还是得用 HTTPS,SSL提供认证和加密处理及摘要功能。
    --不要用肉体的勤奋,去掩盖思考的懒惰--
  • 相关阅读:
    奇数阶魔方问题
    《DSP using MATLAB》示例9.3
    《DSP using MATLAB》示例9.2
    《DSP using MATLAB》示例9.1
    找个目标很重要
    《DSP using MATLAB》示例Example 8.30
    《DSP using MATLAB》示例Example 8.29
    《DSP using MATLAB》示例Example 8.28
    《DSP using MATLAB》示例Example 8.27
    《DSP using MATLAB》示例Example 8.26
  • 原文地址:https://www.cnblogs.com/pingguo-softwaretesting/p/14970172.html
Copyright © 2011-2022 走看看