确保Web安全的HTTPS

HTTP的不足:

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

这些问题不仅仅出现在HTTP上,其他未加密的协议中也存在这类问题。

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

窃听相同段上的通信并非难事,只需要收集在互联网上流动的数据包(帧)就行了,然后交给抓包或嗅探器工具进行解析工作。

  • 通信的加密
    SSL:Secure Socket Layer(安全套接层)
    TLS:Transport Layer Security(安全传输层协议)
  • 内容的加密
    即把HTTP报文里所含的内容进行加密处理。服务器端和客户端必须有加密和解密的方式,也就是密钥是必须双方所共有的,密钥还必须进行定时更换,防止被窃取。

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

存在“服务器是否就是发送请求中URI真正指定的主机,返回的响应是否真的返回到实际提出请求的客服端”等类似的问题。
无法确定正在通信的对方是否具备访问权限。因为某些Web服务器上保存着重要的信息,只想发给特定用户通信的权限。
即使是无意义的请求也会照单全收。无法阻止海量请求下的DoS攻击(Denial of Service,拒接服务攻击)

  • 查明对手的证书

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

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

请求或响应在传输途中,遭受攻击者拦截并篡改内容的攻击称为中间人攻击(Man-in-the-MiddleAttack,MIMT)

PGP(Pretty Good Privacy 完美隐私)创建的数字签名及MD5算法生成的散列值。(PGP是用来证明创建文件的数字签名,MD5是由单向函数生成的散列值)(但值得注意的是,PGP和MD5本身可能会被改写)

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

你可能感兴趣的:(确保Web安全的HTTPS)