图解HTTP---第七章

第七章
  1. HTTP的缺点:(1)通信使用铭文(不加密),内容可能会被窃听(2)不验证通信方的身份,因此有可能遭遇伪装(3)无法证明报文的完整性,所以有可能已遭篡改
  2. HTTP报文使用明文方式发送。只是说如果通信经过加密,就有可能让人无法破解报文信息的含义,但加密处理后的报文信息本身还是会被看到的。
  3. HTTP没有加密机制,但可以通过和SSL或TLS组合使用,加密HTTP的通信内容。
  4. 与SSL组合使用的HTTP称为HTTPS或HTTP over SSL
  5. 还有一种方式是对内容的加密,为了做到有效的内容加密,前提是要求客户端和服务器同时具备加密和解密机制。主要应用在Web服务中,但是不同于SSL或TLS将整个通信线路加密处理,所以内容仍有被篡改的风险。
  6. 不验证通信方的身份就可能遭遇伪装:任何人都可以发起请求,服务器只要接收到请求,不管对方是谁都会返回一个响应。存在如下隐患:无法确定发送至目标的Web服务器是否是目标的服务器;无法确定响应返回到的客户端是目标客户端;无法确定正在通信的双方是否具备访问权限;无法判定请求来自何方,出自何手;即使是无意义的请求也照单全收,无法阻止海量请求下的Dos攻击。
  7. SSL不仅提供加密处理,还使用了一种被称为证书的手段,可用于确定方。
  8. 证书由值得信任的第三方机构颁发,用以证明服务器和客户端是实际存在的。
  9. 客户端持有证书即可完成个人身份的确认,也可用于对Web网站的认证环节。
  10. 无法证明报文完整性,可能已遭篡改:接收到的内容有误。即使请求或响应的内容遭到篡改,也没有办法获悉。
  11. 像这样,请求或响应在传输途中,遭攻击者拦截并篡改内容的攻击称为中间人攻击。
  12. 如何防止篡改:其中常用的是MD5 和 SHA-1等散列值校验的方法,以及用来确认文件的数字签名方法。提供文件下载服务的Web网站会提供相应的PGP(Pretty Good Privacy)创建的数字签名及MD5算法生成的散列值。PGP是用来证明创建文件的数字签名,MD5是由单向函数生成的散列值。无论使用哪一种方法,都需要用户本人亲自检查验证下载的文件是否就是原来服务器上的文件,浏览器无法自动帮用户检查。
  13. 为了有效防止这些弊端,有必要使用HTTPS。SSL提供认证和加密功能及摘要功能。
  14. 我们把添加了加密及认证机制的HTTP称为HTTPS(HTTP Secure)。
  15. HTTPS并非应用层的一种新协议,只是HTTP通信接口部分用SSL和TLS协议代替而已。
  16. 通常,HTTP直接和TCP通信,当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信了,简言之,所谓HTTPS,其实就是身披SSL协议这层外壳的HTTP
  17. SSL采用一种叫做公开密钥加密的加密方式。
  18. 加密和解密同用一个密钥的方式称为共享密钥解密,也被叫做对称密钥加密。公开密钥加密使用一对分对称的密钥。一把叫做私有密钥,另一把叫做公开密钥,私有密钥不能让其他任何人知道,而公开密钥则可以随意发布,任何人都可以获得。
  19. 使用公开密钥加密方式,发送密文的一方使用对方的公开密钥进行加密处理。对方收到加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听而盗走。另外,要根据密文和公开密钥,恢复到信息原文是异常困难的。
  20. HTTPS采用共享密钥加密和公开密钥加密两者并用的混合加密机制。但是公开密钥加密与共享密钥加密相比,其处理速度要慢,效率就很低。
  21. 混合加密机制:使用公开密钥交换稍后的共享密钥加密中的密钥。在确保交换的密钥是安全的前提下,使用共享密钥方式通信。
  22. 在公开密钥传输途中,公开密钥可能被攻击者替换掉了,为了解决这种问题,可以使用数字证书认证机构和其相关机关颁发的公开密钥证书。
  23. 如何安全转交认证机关的公开密钥也是一件很困难的事情,因此,多数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开密钥。
  24. 银行的网上银行就采用了客户端证书。在登录网银时不仅要求用户确认输入ID和密码,还会要求客户的客户端证书,以确认用户是否从特定的终端访问网银。但是客户端证书只能证明客户端,而不能用来证明用户本人的真实有效性。
  25. 独自构建的证书机构叫做自认证机构,由自认证机构颁发的“无用”证书也被称为自签名证书。但是自签名证书无法消除伪装的可能性。
  26. 值得信赖的第三方机构介入认证,才能让已植入在浏览器内的认证机构颁发的公开密钥发挥作用,并借此证明客户端的真实性。
  27. HTTPS使用SSL和TLS两个协议。TSL是以SSL为原型开发的协议,有时会统一称为该协议为SSL。
  28. SSL的慢分两种,一种是指通信慢,另一种是指由于大量消耗CPU及内存等资源,导致处理速度变慢。
  29. SSL必须进行加密处理因此比起HTTP会更多的消耗服务器和客户端的硬件资源,导致负载增强。
  30. 我们会用SSL加速器这种(专用服务器)硬件来改善该问题,该硬件为SSL通信专用硬件,相对软件来讲,能够提高数倍SSL的计算速度。
  31. 为什么不一直用HTTPS:其中一个原因是,因为与纯文本通信相比,加密通信会消耗更多的CPU及内存资源,如果每次通信都加密,消耗的资源平摊到每一台计算机上时,能够处理的请求数量必定会随之减少。
  32. 因此,如果是非敏感信息则使用HTTP通信,只有在包含个人信息的敏感数据使用HTTPS加密通信。Web网站在进行加密处理时,并非对所有内容都进行加密处理,而是仅在那些需要信息隐藏时才会加密,以节约资源。
发布了22 篇原创文章 · 获赞 42 · 访问量 1762

猜你喜欢

转载自blog.csdn.net/zzZsleep7/article/details/105633093
今日推荐