HTTP

超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。

由于HTTP报文使用明文传输,所以存在很多安全隐患。从电脑、路由器、运营商到对方服务器,以及途中的各节点,这途中的任一环节都有可能被中间人嗅探,导致数据泄漏,甚至引起流量劫持、钓鱼攻击等安全问题。

亲身经历,大学毕业后有一段时间没有玩贴吧,后来偶然登陆看到我的账号发了很多珠宝玉石相关的广告贴,而且关注列表也有几百个类似的营销号。猜测可能就是请求被截获,从而盗取了我的账号信息。由于那时贴吧还没有使用HTTPS,请求全是明文的,所以只需要获得有登陆状态的cookie就可以,都不用账号和密码。

国内的HTTPS部署情况近几年越来越好了,不过还是有很多网站是HTTP,尤其是很多政府网站,待会用Wireshark抓包看一下。

HTTPS

超文本传输安全协议(英语:HyperText Transfer Protocol Secure,缩写:HTTPS;常称为HTTP over TLS、HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换资料的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到互联网上。

在访问一个HTTPS网站时,TCP三次握手之后,并不会立即传输数据,而是SSL/TLS握手,在这之后,客户端和服务器之间发送的所有报文均会被加密和鉴别,从而加强安全性。

HTTP抓包

天津市小客车调控管理信息系统为例,网站使用HTTP,使用Wireshark抓取登陆过程中的报文。

定位到登陆认证的这条POST请求,可以看到用户名和密码都是明文传输。假如有中间人嗅探的话,用户名密码就泄露了。

HTTPS抓包

豆瓣为例,网站使用HTTPS,使用Wireshark抓取登陆过程中的报文。

原来的HTTP协议都变成了http-over-tls,info栏也看不到请求方法和请求地址了,全部变成Application Data,数据也变成了加密数据。

总结

  • 自己在部署网站时请一定要使用HTTPS;
  • 不要所有网站使用同一个密码,网站提供二级验证的话,请尽量开启。