一、前言
1> 随着互联网、特别是移动互联网的爆炸式发展,我们的生活已经和网络有了千丝万缕的关系,于是'网络安全问题'就越来越受到人们的关注。
2> 我们已知,百度已经上线了全站'HTTPS' 的安全搜索,默认情况下,就会将 HTTP请求 转成 HTTPS请求。
3> 在 iOS 开发中,从 iOS 9.0 开始,苹果也引入了 ATS (App Transport Security 应用传输安全),App Transport Security 的目标是提高 Apple 操作系统的安全性以及在此操作系统上运行的任何应用的安全性。
4> ATS要求应用程序在进行网络传输的时候,自动通过 HTTPS 传输而不是 HTTP。
二、HTTPS协议概述
2.1 简述
1> '两个名词': 'SSL'(Secure Sockets Layer 安全套接层) 和 'TLS'(Transport Layer Security 传输层安全)。
2> HTTPS 可以认为是 HTTP + SSL/TLS。
3> TLS 是 '传输层' 加密协议,它的前身是 SSL 协议,SSL协议最早是由NetScape(网景)公司于1995年发布,1999年经过IETF((The Internet Engineering Task Force 国际互联网工程任务组)讨论和规范后,改名为 TLS。
4> 若没有特别说明,SSL 和 TLS 说的都是同一个协议。
5> iOS 中,ATS 要求至少是 'TLS1.2'版本。
2.2 HTTP 和 TLS 在协议层的位置以及TLS协议的组成
TLS协议格式图.png1> TLS 协议主要包含5个部分: '应用数据层协议'、'握手协议'、'报警协议'、'加密消息确认协议'、'心跳协议'。
2> TLS 协议本身又是由 record 协议传输的,record 协议的格式如上图最右所示。
3> 目前常用的 HTTP 协议是 'HTTP1.1'。
4> 常用的 TLS 协议版本有: 'TLS1.2'、'TLS1.1'、'TLS1.0' 和 'SSL3.0'。
5> 'SSL3.0' 和 'TLS1.0' 都已经被证明不安全。
6> 'TLS1.2' 和 'TLS1.1' 暂时没有已知的安全漏洞,比较安全,同时有大量扩展提升速度和性能,推荐使用这两个版本。
7> 需要关注一下 'TLS1.3',将会是 TLS 协议的一次重大改革。不管是安全性还是用户访问速度都会有质的提升,不过目前还没有明确发布时间。
8> 'HTTP2.0' 已经正式定稿,这个由SPDY协议演化而来的协议相比 'HTTP1.1' 又是一个非常重大的变动,能够明显提升应用层数据的传输效率。
* 'SPDY': 2012年,Google推出了基于TCP的应用层协议SPDY(取speedy谐音,意谓更快),目的是为了取代'HTTP1.1'。不过'HTTP2.0'定稿后,'SPDY'退出了历史舞台。
三、HTTPS 功能介绍
百度使用 HTTPS 协议主要是为了保护用户隐私、防止流量劫持。
HTTP 本身是'明文传输'的,没有经过任何安全处理。
例如:
1> 用户在百度搜索『葵花』,中间者完全能够查看到这个信息,并且有可能来骚扰用户。
2> 也有用户投诉百度,发现首页或结果页有一个很大很大的广告,这也是中间者往页面插的广告。
3> 如果劫持技术比较低劣,用户甚至无法访问百度。
常见「中间者」主要指一些 『网络节点』,是用户数据在浏览器和百度服务器中间传输必须要经过的节点。
常见网络节点:
WIFI热点、路由器、防火墙、反向代理、缓存服务器等。
HTTPS 协议提供了三大功能来对抗『中间者』的劫持行为
1> '内容加密'
浏览器到百度服务器的内容都是以加密形式传输,中间者无法直接查看原始内容。
2> '身份认证'
保证用户访问的是百度服务器,即使被 DNS 劫持到了第三方站点,也会提醒用户没有访问百度服务器,有可能被劫持。
3> '数据完整性'
防止内容被第三方冒充或者篡改。
网友评论