图解HTTP——确保Web安全的HTTPS(学习记录9)

在HTTP协议中有可能存在信息窃听或身份伪装等安全问题,使用HTTPS通信禁止可以有效的防止这些问题。

HTTP缺点:

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

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

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

2、加密处理防止被窃听

    通信的加密:HTTP协议中没有加密机智,但可以通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Secure,安全传输层协议)的组合使用,加密HTTP的通信协议。与SSL组合使用的HTTP被称为HTTPS(HTTP Secure,超文本传输安全协议)或HTTP over SSL.

    内容的加密:把HTTP报文里所含的内容进行加密处理(前提是要求客户和服务器同时具备加密和解密机制)

不验证通信方的身份就可能遭遇伪装(HTTP协议中的请求和响应不会对通信方进行确认)

1、任何人都可发起请求

     即使是无意义的请求也会照单全收,无法阻止海量请求下的DoS攻击(Denial of Service,拒绝服务攻击)

2、查明对手的证书(虽然使用HTTP协议无法确定通信方,但如何使用SSL则可以。SSL不仅提供加密处理,而且还使用了一种被称为证书的手段,可用于确认方)

无法证明报文的完整性,可能已遭篡改(所谓完整性是指信息的准确度,若无法证明其完整性,通常也就意味着无法判断信息是否准确)

1、接收到的内容可能有误

     HTTP协议,没有任何办法确认发出的请求/响应和接收到的请求/响应是前后相同的。(像这样在请求或响应在传输途中,遭攻击者拦截并篡改内容的攻击称为中间人攻击(Man-in-the-Middle attack,MITM))

2、如何防止篡改

     其中常用的是MD5和SHA-1等散列值校验的方法,以及用来确认文件的数字签名方法。

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

证书可证明服务器或客户端的身份

HTTPS并非是应用层的一种新协议,只是HTTP通信接口部分用SSL和TLS协议代替而已。(通常HTTP直接和TCP通信,当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信了)

SSL采用一种叫做公开密钥加密的加密处理方式,加密方式中的加密算法是公开的,而密钥是保密的。

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

公开密钥加密使用一对非对称的密钥,一把叫做私有密钥,另一把叫做公开密钥。使用公开密钥加密方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。

HTTPS采用共享密钥加密和公开密钥加密两者并用的混合加密机制。(在交换密钥环节使用公开密钥加密方式,之后的建立通信交换报文阶段则使用共享密钥加密方式)

HTTPS的安全通信机制:



为什么不一直使用HTTPS?

既然HTTPS那么安全可靠,那为什么所有的Web网站不一直使用HTTPS?

1、因为与纯文本通信相比,加密通信会消耗更多的CPU和内存资源。如果每次通信都加密,会消耗相当多的资源,平摊到一台计算机上时,能够处理的请求数量必定也会随之减少。

2、节约购买证书的开销也是原因之一。

猜你喜欢

转载自blog.csdn.net/zmeilin/article/details/80791472