前言
本文是本系列的第四篇,主要记录了HTTPS和用户身份认证的相关知识,如果有错误烦请大家指出。
确保Web安全的HTTPS
1.HTTP的缺点
-
使用明文通信,可能会被窃听。
我们都知道,HTTP协议是基于TCP/IP协议族的,按照其工作机制,通信内容在所有通信线路上都有可能遭到窥视。这是因为任何一个服务器和客户端进行通信时,这条通信线路上的网络设备、光缆、计算机等都不可能是个人的私有物,所以不排除在某个环节会遭到恶意窥探。
这也就是说即使是已经经过加密的通信也会被窥视到通信内容,只不过通信经过加密后,恶意窃听通信的人可能无法破解加密的报文,但加密之后的报文还是会被看到的。
而加密技术最常见的对象有两个——通信的加密和内容的加密。
所谓通信的加密就是将HTTP与SSL或者TSL组合使用,用SSL建立安全通信线路之后就可以在这条线路上进行HTTP通信了(本文讲的HTTPS即HTTP与SSL的组合使用)。
而内容的加密就更好理解,它是将参与通信的内容本身进行加密,也就是将HTTP报文的内容(注:报文首部是不加密的,报文主体进行加密)加密处理。诚然,对内容加密可以避免通信内容被窃听,但通信内容仍有可能被篡改。 -
不认证通信双方的身份,因此有可能遭遇伪装。
HTTP协议中的请求和响应不会对通信方进行确认。也就是说存在“服务器是否就是发送请求URI中指定的主机,返回的响应是否真的是返回到实际提出请求的客户端”等问题。也就是说,HTTP协议无法判定请求是来自何方、出自谁手;无法确定正在通信的对方是否具备访问权限,因为某些Web服务器上保存着一些重要信息,只想发给特定用户通信的权限;并且即使是无意义的请求也会照单全收,无法阻止DoS攻击。(有关DoS攻击的有关内容请移步我的另一篇文章:https://blog.youkuaiyun.com/weixin_41631970/article/details/88908482)</