Web开发

首页 » 常识 » 诊断 » HTTPS通俗易懂的阐述HTTP
TUhjnbcbe - 2022/5/4 17:20:00
治白癫疯办法 http://pf.39.net/bdfyy/bdfzg/190710/7288900.html

HTTPS工作原理,之前也看过一些,但是对整体的一个完整流程和部分细节,还是处于一个模糊状态,之前也有一些疑问:“证书是怎么验证的?”、“TLS握手过程是怎么样的?”、“对称密钥如何计算?”、“计算预主密钥随机数用了几个?”等等,基于这些疑问,也花了一些时间才逐步了解的,基于自己的理解,做了一个HTTPS的系列文章,希望能帮助到有此疑问的读者朋友。

本文为系列的第一篇,带着一些问题逐步了解对称加密、非对称加密、数字证书、密钥协商等这些概念分别是什么、能做什么,一层一层揭开其神秘面纱。

使用HTTP潜在的问题

在HTTP中数据之间的网络传输是明文的,很容易被中间人窃取、攻击,对数据进行伪造再发往服务器端,服务端接收到数据也无法判断数据的来源是否准确。如果说为什么要使用HTTPS?直白点就是“HTTP不安全”,无法准确的保证数据的机密性、真实性、完整性。

什么是HTTPS协议

HTTPS不是一种全新的协议,它是建立在SSL/TLS传输层安全协议之上的一种HTTP协议,相当于HTTPS=HTTP+SSL/TLS,可保护用户计算机与网站服务器之间数据传输的完整性、机密性。

从OSI模型图上看主要是在应用层和传输层直接多了一个SSL/TLS协议。这里最主要的部分SSL/TLS就是我们学习HTTPS的关键部分,SSL/TLS做为一种安全的加密协议,其在不安全的基础设施之上为我们提供了安全的通信通道。

SSL/TLS这个名字有时也会让人迷,现在我们所说的SSL/TLS一般特指TLS协议,不妨看下它的发展历史。

SSL/TLS发展历史

SSL是securesocketlayer的简称,中文为安全套接字层。最早由网景(Netscape)公司开发,该协议的第一个版本从未发布过。自年11月开始发布第二个版本,SSL2在开发上基本上没有与Netscape公司以外的安全专家商讨,这个版本被认为存在严重缺陷,这个版本最终也以失败告终。在SSL2失败后,Netscape专注于SSL3进行了完全重新的协议设计,于年发布,SSL3版的协议被沿用至今,只不过后来被改了名字TLS1.0,也许很多人并不知道。

年5月,TLS工作组成立,开始将SSL从Netscape公司迁移至IETF,由于Netscape与Microsoft在Web统治权的争执,整个迁移工作也经历了一个漫长的过程,在年1月IETF组织将SSL进行了标准化TLS1.0问世,前身就是SSL3。

TLS是transportlayersecurity的简称,中文为传输层安全协议。在年4月TSL1.1版本发布,修复了一些关键的安全问题,添加对CBC攻击的保护(隐式IV被替换为显示IV,更改分组密码模式中的填充错误)。

在年8月TLS1.2版本发布,主要包括:增加SHA-2密码散列函数、AEAD加密算法、TLS扩展定义和AES密码组合。

年8月TLS1.3版本发布,对安全的加强、性能的提升也做了很多改变,例如,在安全上将MD5、SHA-1这些不安全或过时的算法移除,仅保留了少数算法ECDHA、SHA-2等。性能上在TLS握手过程中由之前的2-RTT握手改进为1-RTT握手并初步支持0-RTT。

选择合适加密算法

我们谈到

1
查看完整版本: HTTPS通俗易懂的阐述HTTP