https
HTTPS,全称:超文本传输安全协议(英文:Hypertext Transfer Protocol Secure),是由HTTP加上TLS/SSL协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。
在HTTPS出现之前,HTTP是在基本的TCP/IP 协议栈上发送信息。1994年底,网景公司(Netscape Communication)在此基础上创建了一个额外的加密传输层:SSL。该传输层的1.0版本没有在公司以外发布过,但之后的SSL 2.0及其后继者SSL 3.0允许通过加密来保证服务器和客户端之间交换消息的真实性,来创建电子商务网站。在SSL逐渐演变到TLS时,最新的HTTPS也由在2000年五月公布的RFC 2818正式确定下来。
HTTPS对比HTTP在安全方面取得了极大的增强。HTTPS的改进点在于创造性的使用了非对称加密算法,在不安全的网路上,安全的传输了用来进行对称加密的密钥,综合利用了非对称加密的安全性和对称加密的快速性。
HTTPS被广泛用于万维网上安全敏感的通讯,例如交易支付方面。HTTP到HTTPS的转向可以帮助企业网提升用户访问安全水平,特别是对于有敏感信息保存和提供金融交易等服务的企业更有帮助,但也有缺点和局限性。
历史沿革
产生背景
HTTP虽然使用极为广泛,但是却存在不小的安全缺陷,主要是其数据的明文传送和消息完整性检测的缺乏,而这两点恰好是网络支付,网络交易等应用中安全方面最需要关注的。
攻击者针对HTTP最常用的攻击手法就是网络嗅探,攻击者试图从传输过程当中分析出敏感的数据,例如管理员对Web程序后台的登录过程等等,从而获取网站管理权限,进而渗透到整个服务器的权限。即使无法获取到后台登录信息,攻击者也可以从网络中获取普通用户的隐秘信息,包括手机号码,身份证号码,信用卡号等重要资料,导致严重的安全事故。进行网络嗅探攻击非常简单,对攻击者的要求很低。使用网络发布的任意一款抓包工具,一个新手就有可能获取到大型网站的用户信息。另外,HTTP在传输客户端请求和服务端响应时,唯一的数据完整性检验就是在报文头部包含了本次传输数据的长度,而对内容是否被篡改不作确认。因此攻击者可以轻易的发动中间人攻击,修改客户端和服务端传输的数据,甚至在传输数据中插入恶意代码,导致客户端被引导至恶意网站被植入木马。
产生和发展
HTTP在基本的TCP/IP协议栈上发送信息,1994年底,网景公司(Netscape Communication)在此基础上创建了一个额外的加密传输层:SSL。HTTPS的发展经历了SSL 2.0、SSL 3.0、TLS 1.0到TLS 1.3的演进。SSL 2.0 及其后继者 SSL 3.0 允许通过加密来保证服务器和客户端之间交换消息的真实性,来创建电子商务网站。在SSL逐渐演变到TLS时,HTTPS也由在2000年5月公布的RFC 2818正式确定下来。
HTTPS优先考虑HTTP中的数据安全问题。现代系统使用包含SSL/TLS的HTTP/2作为HTTPS。随着HTTP/3日趋成熟,浏览器和服务器技术最终也会将其集成到HTTPS下。
协议原理和区别
HTTP原理
HTTPS原理
HTTPS主要由两部分组成:HTTP+SSL/TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS 进行加密,所以传输的数据都是加密后的数据。
HTTPS和HTTP对比
大多数情况下,HTTP和HTTPS是相同的,因为都是采用同一个基础的协议,作为HTTP或HTTPS客户端——浏览器,设立一个连接到Web服务器指定的端口。当服务器接收到请求,它会返回一个状态码以及消息,这个回应可能是请求信息、或者指示某个错误发送的错误信息。系统使用统一资源定位器URI模式,因此资源可以被唯一指定。
协议的改进
HTTPS协议是由HTTP加上TLS/SSL协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。
双向的身份认证
客户端和服务端在传输数据之前,会通过基于X.509证书对双方进行身份认证。具体过程如下:
数据传输的机密性
客户端和服务端在开始传输数据之前,会协商传输过程需要使用的加密算法。客户端发送协商请求给服务端,其中包含自己支持的非对称加密的密钥交换算法(一般是RSA),数据签名摘要算法(一般是SHA或者MD5) ,加密传输数据的对称加密算法(一般是DES),以及加密密钥的长度。服务端接收到消息之后,选中安全性最高的算法,并将选中的算法发送给客户端,完成协商。客户端生成随机的字符串,通过协商好的非对称加密算法,使用服务端的公钥对该字符串进行加密,发送给服务端。服务端接收到之后,使用自己的私钥解密得到该字符串。在随后的数据传输当中,使用这个字符串作为密钥进行对称加密。
数据的完整性检验
SSL使用一种很健壮的信息验证码, 例如MD5,或者SHA-1算法来对数据进行签名,验证码被放在数据包的后部, 并且和数据一块被加密,这样在数据被篡改时会由于HASH值的改变而被发现。
防止重放攻击
SSL使用序列号来保护通讯方免受报文重放攻击。这个序列号被加密后作为数据包的负载。在整个SSL握手中,都有一个唯一的随机数来标记SSL握手。这样防止了攻击者嗅探整个登录过程,获取到加密的登录数据之后,不对数据进行解密, 而直接重传登录数据包的攻击手法。
综合以上,鉴于电子商务等安全上的需求,HTTPS对比HTTP在安全方面取得了极大的增强。总结来说,HTTPS的改进点在于创造性的使用了非对称加密算法,在不安全的网路上,安全的传输了用来进行对称加密的密钥,综合利用了非对称加密的安全性和对称加密的快速性。
协议优势
安全性
HTTP消息采用纯文本形式,这意味着未经授权的各方可以轻松通过互联网对其进行访问和读取。相比之下,HTTPS是以SSL+HTTP构建的可进行加密传输、身份认证的网络协议,要比HTTP安全,可防止数据在传输过程中被窃取、改变,确保数据的完整性。使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;当用户提交敏感数据时,他们可以确保没有第三方可以通过网络拦截这些数据。选择HTTPS来保护潜在的敏感信息,如信用卡详细信息或客户的个人信息。HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
权威性
由于HTTP不太可信,搜索引擎对HTTP网站内容的排名通常低于HTTPS网页。相较于HTTP网站,客户也更喜欢HTTPS网站。浏览器通过在浏览器的地址栏中网站的URL旁边放置挂锁图标,使用户可以看见HTTPS连接。由于这些额外的安全性和信任因素,用户更喜欢HTTPS网站和应用程序。
性能和分析
HTTPS Web应用程序的加载速度比HTTP应用程序更快。同样,HTTPS也能更好地跟踪推荐链接。推荐流量是您的网站来自广告或社交媒体反向链接等第三方来源的流量。如果您希望分析软件准确识别您的可靠流量来源,则必须启用 HTTPS。
缺点和局限
技术方面
成本方面
应用实践
银行对外提供的互联网金融服务中,互联网门户类网站和图片网站主要通过HTTP对外服务。其中门户网站为用户提供金融咨询和优惠信息等服务,还提供银行App客户端、U盾驱动等程序下载服务。为提升用户服务体验,此类HTTP网站还部署了内容分发网络(Content Delivery Network,CDN),通过CDN将用户需要访问的信息放到离用户所在物理地区最近内容服务站点,可以大幅提升互联网对外服务的获取速度,提供最佳访问体验。上述CDN通常为基于HTTP的互联网应用提供服务,而随着互联网环境中的劫持、篡改等访问安全问题的日趋严峻,CDN 提供的网络分发方案也需要支持HTTP改造为HTTPS协议。下面是对HTTP到HTTPS改造应用和网络的方案介绍。
价值和意义
HTTP到HTTPS的转向可以帮助企业网提升用户访问安全水平,特别是对于有敏感信息保存和提供金融交易等服务的企业更有帮助。谷歌、Facebook 和国内诸多大型互联网公司应用已经全面支持HTTPS,并且苹果公司和谷歌两大公司也在积极推动HTTPS扩大应用范围,对HTTPS协议在全球网站的部署进度起到加速作用。
参考资料
HTTP Semantics RFC 9110.IETF.2024-12-21
HTTP 的发展.mozilla.org.2024-12-22
RFC 2818 HTTP Over TLS.IETF.2024-12-22
HTTP 与 HTTPS 之间有什么区别?.AWS.2024-12-24
HTTP 概述.mozilla.org.2024-12-22