HTTP 与 HTTPS 的差异及HTTPS的独特优势解析

技术文章 好剧之徒@百家号 2025-12-10 20:28:06

HTTPS是以安全为目标的HTTP通道,是HTTP的安全升级版

一、前言:

我们平日上网时我们经常接触到HTTP,但对于HTTPS的了解却往往停留在表面。为了深入探究这一问题,我特地查阅了相关资料,并发现这一主题实际上涉及了广泛的加密算法和SSL协议知识。因此,在了解HTTP与HTTPS的差异之后,我们还可以进一步研究TLS/SSL的工作原理及握手过程,以更全面地掌握计算机网络的安全知识。

二、HTTP与HTTPS的概览

HTTP,即超文本传输协议,是互联网上使用最为普遍的网络协议。它专为发布和接收HTML页面而设计,旨在提升浏览器的效率。然而,HTTP以明文方式传输信息,这意味着黑客有可能截取浏览器与服务器间的传输报文,从而轻易获取其中的数据。

接下来,我们将深入探讨HTTP与HTTPS的差异,以及TLS/SSL的工作原理和握手流程,以全面理解计算机网络的安全知识。
① 客户端的浏览器通过网络与服务器建立连接,这一过程依赖于TCP协议,通常使用的端口号为80。连接建立后,浏览器会向服务器发送一个请求,该请求包含统一资源标识符(URL)、协议版本号,以及MIME信息,其中还包括请求修饰符、客户机信息和许可内容。

② 服务器在接收到请求后,会做出相应的响应。响应信息以状态行的形式呈现,包括协议版本号、一个表示成功或错误的代码,以及MIME信息,其中包含服务器信息、实体信息和可能的内容。

接下来,我们将探讨HTTPS的原理。HTTPS是以安全为目标的HTTP通道,是HTTP的安全升级版。其安全基础在于SSL协议。SSL协议在TCP/IP协议与应用层协议之间发挥作用,为数据通信提供安全保障。该协议可分为两层:SSL记录协议和SSL握手协议。SSL记录协议建立在可靠的传输协议之上,如TCP,它为高层协议提供数据封装、压缩和加密等基础功能。而SSL握手协议则负责在实际数据传输开始前,确保通讯双方进行身份验证、协商加密算法和交换加密密钥等安全操作。

HTTPS的设计目标主要包括三个方面:

(1) 数据保密性:确保传输过程中的数据内容无法被第三方查看。这类似于快递员传递的包裹,都经过了严密封装,使得外界无法得知其中的具体内容。

(2) 数据完整性:能够及时发现数据在传输过程中是否被第三方篡改。尽管快递员可能不知道包裹内的具体物品,但他有可能在途中进行替换。数据完整性就是指,一旦发现此类篡改,能立即察觉并采取相应措施。

(3) 身份校验安全性:保障数据能够准确无误地送达预期用户。这就像我们邮寄包裹时,虽然包裹被妥善封装且未被掉包,但我们必须确保它能够准确无误地送达目的地。通过身份校验,我们可以验证数据的发送者和接收者,从而确保数据送达的正确性。

三、HTTP与HTTPS的差异

在了解HTTPS的设计目标后,我们进一步探讨HTTP与HTTPS之间的区别。这两者之间的差异主要体现在安全性上。HTTP,作为互联网上应用最为广泛的一种协议,虽然功能强大,但存在显著的安全隐患。相比之下,HTTPS则通过其强大的加密功能,为用户提供了更加安全的数据传输服务。
1、HTTPS协议需要向CA(证书颁发机构)申请证书,通常免费证书较为稀少,因此需要支付一定费用。以网易为例,其官网曾使用HTTP,而网易邮箱则采用了HTTPS。

2、HTTP作为超文本传输协议,数据传输以明文方式进行,而HTTPS则是一种具有SSL加密功能的传输协议,提供了更高的安全性。

3、HTTP和HTTPS在连接方式和端口上也有显著差异。HTTP连接方式简单且无状态,使用80端口;而HTTPS则是通过SSL+HTTP构建的,支持加密传输和身份认证,使用443端口。

4、HTTPS协议在安全性方面进行了多项改进。它引入了双向身份认证机制,确保客户端和服务端在传输数据前能够相互验证身份。此外,HTTPS还提供了加密传输功能,保护数据在传输过程中的安全性。

在实施双向身份认证时,客户端会向服务端发起SSL握手请求,服务端则将证书发送给客户端进行验证。客户端会检查证书是否由可信任的CA签发,并根据检查结果决定是否继续通讯。同时,服务端也会要求客户端发送证书并进行验证。如果双方身份认证成功,则继续进行数据传输;否则,将关闭连接以确保数据的安全性。

需要注意的是,采用HTTPS协议的服务器必须拥有一套数字证书,该证书包含公钥和私钥。这套证书可以由服务器自行制作或向组织申请获得。如果服务器自行颁发的证书需要得到客户端的验证通过才能继续访问,而向组织申请的证书则由CA进行验证并签发。
(2) 由于互联网上众多服务都需要使用证书进行身份验证,客户端(如操作系统或浏览器)无法预先内置所有证书。因此,服务端需要将证书发送给客户端进行验证。

(3) 客户端通常内置的是CA的根证书。在HTTPS协议中,服务器会向客户端发送证书链,以确保双方的身份验证和数据传输的安全性。

数据传输的机密性
在HTTPS协议中,客户端和服务端会在开始传输数据前进行加密算法的协商。客户端会发送包含自己支持的加密算法和密钥交换算法的协商请求给服务端。服务端在接收并分析这些请求后,会选择安全性最高的算法,并将其发送回客户端,从而完成算法的协商。接下来,客户端会生成一个随机的字符串,并利用协商好的非对称加密算法和服务端的公钥对其进行加密,然后发送给服务端。服务端在接收到加密字符串后,会使用自己的私钥进行解密,以获取该字符串。此后,双方在数据传输过程中将使用这个字符串作为密钥进行对称加密,从而确保数据传输的机密性。

防止重放攻击
为了防止重放攻击,SSL协议使用序列号对通讯方进行保护。这个序列号会被加密后作为数据包的负载进行传输。在整个SSL握手过程中,都会使用一个唯一的随机数来标记每个SSL握手阶段,以确保其唯一性和防止攻击者嗅探整个登录过程并重传登录数据包的攻击手法。

综上所述,鉴于电子商务等安全需求,HTTPS协议在安全性方面相较于HTTP协议已经取得了显著增强。其关键改进在于创造性地运用了非对称加密算法,能够在不安全网络上安全地传输用于非对称加密的密钥,同时结合了非对称加密的安全性和对称加密的高效率。

四、HTTPS的显著优势

HTTPS协议在安全性方面相较于HTTP协议有了显著的提升。其关键改进在于巧妙地运用了非对称加密算法,使得在不安全的网络环境中也能安全地传输用于非对称加密的密钥。同时,它结合了非对称加密的高安全性和对称加密的高效率,为电子商务等安全需求提供了强大的保障。
1、HTTPS协议通过其独特的认证机制,能够验证用户和服务器身份的真实性,从而确保数据被安全地发送到预期的客户机和服务器。
2、该协议融合了SSL与HTTP的优点,不仅提供了加密传输功能,还支持身份认证。相较于HTTP,其安全性得到了显著提升,能够有效防止数据在传输过程中遭受窃取或篡改,从而确保数据的完整性。
3、尽管HTTPS并非绝对安全,但在当前的网络架构下,它无疑是最为可靠的解决方案之一。其采用的高级加密技术大幅提升了中间人攻击的难度。

五、HTTPS的不足之处(与上述优点相对比)

HTTPS协议虽然提供了卓越的安全性能,但也存在一些潜在不足。例如,由于加密和解密过程需要消耗一定的计算资源,HTTPS可能会对服务器和客户端的性能产生一定影响。此外,随着网络技术的不断演进,新的安全挑战也可能不断涌现,需要持续关注和应对。
1、HTTPS协议在握手阶段相对耗时,这会导致页面加载时间的延长。
2、与HTTP相比,HTTPS连接的缓存效率较低,可能会增加数据开销,并可能影响到现有的安全措施。
3、HTTPS协议的安全保障是有限的,它无法抵御黑客攻击、拒绝服务攻击和服务器劫持等高级威胁。
4、SSL证书通常需要与IP地址绑定,而单个IP地址无法支持多个域名的绑定需求,这限制了IPv4资源的使用。
5、部署HTTPS协议会增加成本,因为额外的计算资源消耗,例如SSL协议的加密算法和SSL交互次数,都会导致服务器成本的上升。
6、HTTPS协议的加密范围也存在局限性。特别值得一提的是,SSL证书的信任链体系并不稳固,在某些国家能够控制CA根证书的情况下,中间人攻击仍然有可能得逞。

五、HTTPS的连接过程(略)


该图片展示了HTTPS连接过程的八个主要步骤,然而,网络上存在着更为详尽的步骤解析。因此,我将这些详细的步骤与图片相结合,以便更全面地理解HTTPS的连接流程。
① 客户端的浏览器向服务器发送请求,并包含客户端SSL协议的版本号、加密算法的种类、产生的随机数,以及其他通讯所需的信息。
② 服务器则向客户端传送SSL协议的版本号、加密算法的种类、随机数等必要信息,同时还会向客户端传送自己的证书。
③ 客户端利用这些信息来验证服务器的合法性,包括检查证书是否过期、发行CA的可靠性、公钥是否能正确解开证书的数字签名,以及证书上的域名是否与实际域名相匹配。若验证不通过,则通讯将终止;若通过,则继续下一步。
④ 用户端随即生成一个用于通讯的“对称密码”,并使用服务器公钥(从服务器证书中获取)对其进行加密,然后将加密后的“预主密码”传给服务器。
⑤ 若服务器要求客户身份认证(在握手过程中可选),用户需建立随机数并进行数据签名,连同客户证书和加密过的密钥一起传给服务器。
⑥ 服务器在收到客户证书和签名随机数后,会进行合法性验证,包括检查证书日期、发行CA的可靠性、公钥是否能解开证书的数字签名,以及证书是否在废止列表中。若验证不通过,则通讯将立即中断;若通过,则服务器将用自己的私钥解开加密的私钥,并与客户端一同产生主通讯密码。
⑦ 之后,服务器和客户端将使用相同的对称加密密钥进行SSL协议的安全数据通讯的加解密工作,同时确保数据通讯的完整性。
⑧ 客户端向服务器发送信息,指明后续数据通讯将使用步骤⑦中的主密码为对称密钥,并通知服务器握手过程结束。
⑨ 服务器同样向客户端发送信息,确认后续数据通讯将使用该主密码,并通知客户端握手过程结束。
⑩ SSL握手部分完成后,SSL安全通道的数据通讯正式开始,客户和服务器将使用相同的对称密钥进行加密通讯,并持续进行通讯完整性的检验。

此外,还需注意客户端解析证书的过程。这一部分工作由客户端的TLS完成,主要验证公钥的有效性,如颁发机构和过期时间等。若发现异常,将弹出警告框提示证书问题。若证书无误,则生成对称加密密钥并使用公钥进行非对称加密。
传送加密信息
在SSL握手过程中,客户端会使用服务器的公钥对一个对称加密密钥进行加密,并将加密后的密钥传送给服务器。这样,服务器就能获得这个对称密钥,从而在后续的通讯中使用它进行加密解密。

服务端解密信息
服务器收到加密的对称密钥后,会使用自己的私钥进行解密,从而获取到客户端传过来的对称加密算法的私钥。之后,服务器将利用这个私钥对后续传输的内容进行对称加密,确保数据的安全性。

为什么用非对称加密协商对称加密密钥
非对称加密算法具有复杂的算法强度和安全性,尽管其加密解密速度较慢,但安全性更高。在SSL握手过程中,非对称加密被用来协商对称加密密钥。其优点在于,由于非对称密钥体制中的公钥是公开的,因此无需像对称密码那样传输对方的密钥,从而大大提高了安全性。

SSL提供服务
SSL协议提供多种服务,包括认证用户和服务器、加密数据以防止窃取,以及维护数据完整性等。它通过一系列的工作流程来确保数据在传输过程中的安全和完整。

SSL工作流程
SSL的工作流程包括服务器认证阶段和用户认证阶段。在服务器认证阶段,客户端发送开始信息给服务器,服务器根据信息决定是否生成新主密钥,并回复给客户端。客户端则根据服务器的响应生成主密钥,并用服务器的公钥加密后传回。服务器再回复该主密钥,并发送一个用主密钥认证的信息给客户端,从而完成服务器认证。在用户认证阶段,经过认证的服务器向客户端发送提问,客户端返回签名后的提问和其公钥,以此向服务器提供认证。
SSL协议所提供的安全通道具备三大关键特性:

  1. 机密性:SSL协议通过使用密钥对通信数据进行加密,确保信息在传输过程中的保密性。

  2. 可靠性:该协议要求服务器和客户端进行相互认证,其中客户端的认证是可选的,旨在验证双方的身份,确保通信的可靠性。

  3. 完整性:SSL协议还会对传送的数据进行完整性检查,以防止数据在传输过程中被篡改或损坏。

此外,服务器证书作为SSL数字证书的一种形式,其作用是验证服务器身份并表明其对在线服务的访问权限。它包含详细的身份验证信息,如组织名称、颁发证书的机构以及唯一的公开密钥。通过相互信任的第三方组织获得服务器证书,可以为用户提供验证Web站点身份的可靠手段,并保证该站点拥有高强度的加密安全。

标签: http https web
赞助