互联网|万字长文拿下HTTPS,面试不再慌!( 二 )
HTTPS 凭什么就能做到机密性、完整性这些安全特性呢?
秘密就在于 HTTPS 名字里的 S , 它把 HTTP 下层的传输协议由 TCP/IP 换成了 SSL/TLS , 由 HTTP over TCP/IP 变成了 HTTP over SSL/TLS , 让 HTTP 运行在了安全的 SSL/TLS 协议上 , 收发报文不再使用 Socket API , 而是调用专门的安全接口 。
HTTPS 本身并没有什么惊世骇俗的本事 , 全是靠着后面的 SSL/TLS 撑腰 。 只要学会了 SSL/TLS , HTTPS 自然就手到擒来 。
HTTPS 协议的主要功能基本都依赖于 TLS/SSL 协议 , TLS/SSL 的功能实现主要依赖于三类基本算法:散列函数 、对称加密和非对称加密 , 利用非对称加密实现身份认证和密钥协商 , 对称加密算法采用协商的密钥对数据加密 , 基于散列函数验证信息的完整性 。
本文插图
什么是 SSL/TLS
现在我们就来看看 SSL/TLS , 它到底是个什么来历 。
SSL 即安全套接层(Secure Sockets Layer) , 在 OSI 模型中处于第 5 层(会话层) , 由网景公司于 1994 年发明 , 有 v2 和 v3 两个版本 , 而 v1 因为有严重的缺陷从未公开过 。
本文插图
SSL 发展到 v3 时已经证明了它自身是一个非常好的安全通信协议 , 于是互联网工程组 IETF 在 1999 年把它改名为 TLS(传输层安全 , Transport Layer Security) , 正式标准化 , 版本号从 1.0 重新算起 , 所以 TLS1.0 实际上就是 SSLv3.1 。
到今天 TLS 已经发展出了三个版本 , 分别是 2006 年的 1.1、2008 年的 1.2 和去年(2018)的 1.3 , 每个新版本都紧跟密码学的发展和互联网的现状 , 持续强化安全和性能 , 已经成为了信息安全领域中的权威标准 。
目前应用的最广泛的 TLS 是 1.2 , 而之前的协议(TLS1.1/1.0、SSLv3/v2)都已经被认为是不安全的 , 各大浏览器即将在 2020 年左右停止支持 , 所以接下来的讲解都针对的是 TLS1.2 。
TLS 由记录协议、握手协议、警告协议、变更密码规范协议、扩展协议等几个子协议组成 , 综合使用了对称加密、非对称加密、身份认证等许多密码学前沿技术 。
浏览器和服务器在使用 TLS 建立连接时需要选择一组恰当的加密算法来实现安全通信 , 这些算法的组合被称为密码套件(cipher suite , 也叫加密套件) 。
TLS 的密码套件命名非常规范 , 格式很固定 。 基本的形式是密钥交换算法+签名算法+对称加密算法+摘要算法 。
比如刚才的密码套件的意思就是:握手时使用 ECDHE 算法进行密钥交换 , 用 RSA 签名和身份认证 , 握手后的通信使用 AES 对称算法 , 密钥长度 256 位 , 分组模式是 GCM , 摘要算法 SHA384 用于消息认证和产生随机数 。
OpenSSL
说到 TLS , 就不能不谈到 OpenSSL , 它是一个著名的开源密码学程序库和工具包 , 几乎支持所有公开的加密算法和协议 , 已经成为了事实上的标准 , 许多应用软件都会使用它作为底层库来实现 TLS 功能 , 包括常用的 Web 服务器 Apache、Nginx 等 。
OpenSSL 是从另一个开源库 SSLeay 发展出来的 , 曾经考虑命名为 OpenTLS , 但当时(1998 年)TLS 还未正式确立 , 而 SSL 早已广为人知 , 所以最终使用了 OpenSSL 的名字 。
OpenSSL 目前有三个主要的分支 , 1.0.2 和 1.1.0 都将在今年(2019)年底不再维护 , 最新的长期支持版本是 1.1.1 。
由于 OpenSSL 是开源的 , 所以它还有一些代码分支 , 比如 Google 的 BoringSSL、OpenBSD 的 LibreSSL 。
这些分支在 OpenSSL 的基础上删除了一些老旧代码 , 也增加了一些新特性 , 虽然背后有大金主 , 但离取代 OpenSSL 还差得很远 。
推荐阅读
- 互联网|上线半年收获6700万用户,这款聚焦下沉用户的陌生人社交APP是怎么做到的?
- 互联网|5G商用一周年,华为云向互联网企业大抛绣球
- 互联网|中台产品经理实战(14):中台与SaaS、微服务关系
- 互联网|行业观察 | 你所不知道的5G消息
- 互联网|多名知名人物推特被黑,拜登奥巴马都“中招”,比尔盖茨也在其内
- 互联网|发放高利贷,还要窃取用户信息?这些金融APP在秀“道德底线”
- 互联网|东莞先知:数字智能,先觉“先知”
- 云计算|从互联网到AI崛起,上海能弯道超车吗?
- 行业互联网,5G|江苏有线顺利完成园区5G信号开通测试
- 行业互联网,AI人工智能|城市教育大脑以“ AI+ 大数据”为核心 , 引领教育变革
