计算机网络基础(Https协议详解)
HTTPS(Hypertext Transfer Protocol Secure,超文本传输安全协议)是互联网上应用最为广泛的安全通信协议,它通过在标准HTTP协议之上叠加SSL/TLS加密层,为网络数据传输提供了机密性、完整性和身份认证三大核心安全保障。自1994年由网景公司创建以来,HTTPS已成为现代互联网安全通信的基石,特别是在电子商务、在线支付、用户登录等敏感场景中不可或缺。
HTTPS与HTTP的本质区别
HTTPS并非一个独立的全新协议,而是“HTTP over SSL/TLS”的简称。其本质区别在于安全层的引入。
-
加密传输 vs 明文传输:HTTP协议以明文形式传输所有数据,包括请求头、请求体和响应内容,这使得攻击者可以通过网络嗅探轻易获取敏感信息。而HTTPS在HTTP与TCP之间插入了一个SSL/TLS安全层,对所有传输数据进行加密,确保即使数据被截获也无法被解读。
-
身份认证机制:HTTP协议无法验证通信对方的真实身份,容易遭受“中间人攻击”和钓鱼欺诈。HTTPS通过数字证书体系解决了这一问题。服务器必须从受信任的证书颁发机构(CA)获取证书,客户端(如浏览器)会验证该证书的有效性(包括颁发者、有效期、域名匹配等),从而确认正在通信的服务器是真实可信的。
-
默认端口不同:HTTP使用80端口进行通信,而HTTPS使用443端口。这是网络设备区分和处理两种流量的基础。
-
性能开销:由于增加了复杂的握手过程和加密解密运算,HTTPS在建立连接时会产生额外的计算资源消耗和延迟。早期测试表明,其效率可能仅为HTTP的十分之一。但随着硬件性能提升和TLS 1.3等新协议的优化(如1-RTT甚至0-RTT握手),这种性能差距已大幅缩小。
HTTPS的核心安全目标与实现原理
HTTPS的设计旨在解决HTTP的三大安全缺陷:窃听、篡改和伪装。其安全基础依赖于SSL/TLS协议,而该协议又综合运用了三类密码学算法。
-
数据保密性(防窃听):通过加密确保传输内容不被第三方查看。HTTPS采用混合加密体系实现这一目标。
- 握手阶段:使用非对称加密算法(如RSA、ECDHE)进行密钥协商和身份认证。客户端验证服务器证书后,利用服务器的公钥加密一个随机生成的
pre_master_secret(预主密钥)并发送给服务器。 - 传输阶段:双方利用协商出的
pre_master_secret和交换的随机数,独立计算出相同的会话密钥。此后所有的应用层数据都使用高效的对称加密算法(如AES-GCM、ChaCha20-Poly1305)进行加密传输。这种设计既利用了非对称加密的安全性来传递密钥,又发挥了对称加密的高效性来加密海量数据。
- 握手阶段:使用非对称加密算法(如RSA、ECDHE)进行密钥协商和身份认证。客户端验证服务器证书后,利用服务器的公钥加密一个随机生成的
-
数据完整性(防篡改):通过完整性校验确保数据在传输过程中未被修改。SSL/TLS使用消息认证码(MAC,在TLS 1.3中由AEAD模式如AES-GCM内置提供)和序列号机制。接收方会对每条记录进行校验,任何对数据的篡改都会导致校验失败,连接被终止。此外,防重放攻击也是通过加密的序列号来实现的,防止攻击者截获并重复发送有效的加密数据包。
-
身份校验安全性(防伪装):通过数字证书体系实现对通信方身份的认证。其核心是X.509证书标准和公钥基础设施(PKI)。
- 证书内容:一个SSL证书包含了服务器的公钥、持有者信息(如域名)、签发者(CA)信息、有效期以及CA用其私钥生成的数字签名。
- 验证流程:客户端收到证书后,会逐级验证证书链(服务器证书→中间CA证书→根CA证书)的签名,确保整条链都源自其信任的根证书存储库中的CA。同时,会检查证书是否在有效期内,以及证书中的主体备用名称(SAN)是否与正在访问的域名匹配。对于要求更高的场景(如网银专业版),HTTPS还支持双向认证,即服务器也要求验证客户端的证书。
SSL/TLS握手过程详解
握手过程是HTTPS建立安全通道的关键。以目前仍广泛使用的TLS 1.2完整握手为例,其核心步骤如下图所示并解析如下:

- ClientHello:客户端向服务器发起连接,发送一个随机数(
ClientRandom)、支持的TLS版本和密码套件列表(包含密钥交换算法、对称加密算法、哈希算法等组合)。 - ServerHello:服务器回应,选择一个双方都支持的密码套件,并发送自己的随机数(
ServerRandom)和服务器证书。 - 证书验证与密钥交换:客户端验证服务器证书。验证通过后,生成
pre_master_secret,并用证书中的公钥加密,通过ClientKeyExchange消息发送给服务器。 - 密钥推导与切换:客户端和服务器利用
pre_master_secret、ClientRandom和ServerRandom,通过伪随机函数(PRF)独立计算出相同的master_secret,进而派生出用于加密和完整性校验的会话密钥。双方发送ChangeCipherSpec消息,通知对方后续通信将使用刚协商的密钥和算法进行加密。 - Finished:双方发送第一条用会话密钥加密的握手完成消息,并验证对方解密后的消息是否正确,以确认整个握手过程未被篡改。至此,安全通道建立完成。
TLS 1.3的优化:最新版本的TLS 1.3(于2022年标准化为RFC 9114)大幅简化了握手过程,将往返次数从2-RTT减少到1-RTT,并支持0-RTT模式以进一步降低延迟。同时,TLS 1.3强制使用前向保密的密钥交换算法(如ECDHE),并移除了不安全的旧密码套件,安全性更强。
部署、挑战与未来
-
部署实践:将网站从HTTP迁移到HTTPS需要:1)从CA机构获取SSL/TLS证书(现在已有Let‘s Encrypt等免费CA);2)在服务器(如Nginx)上配置证书和私钥,并启用TLS 1.2/1.3协议;3)将网站内所有资源的链接更新为HTTPS;4)建议配置HSTS(HTTP严格传输安全)头,强制浏览器始终使用HTTPS访问,防止降级攻击。
-
存在的挑战与局限性:
- 性能开销:加解密操作消耗CPU资源,对高并发服务器构成压力,但可通过硬件加速卡缓解。
- 证书体系风险:HTTPS的安全依赖于CA体系的绝对可信。如果根CA被攻破或某些国家控制CA,中间人攻击仍可能发生。证书过期或域名不匹配是常见的配置错误。
- 并非万能:HTTPS只能保护传输过程中的安全,无法防止服务器被入侵、数据库泄露或客户端中毒等终端安全问题。
-
未来趋势:在HTTP/2和HTTP/3协议中,HTTPS已成为事实上的强制要求。各大浏览器和搜索引擎(如Google)已将HTTPS作为排名和安全标识的正面因素。随着全站HTTPS和自动证书管理的普及,互联网正全面进入加密时代。未来,随着量子计算的发展,后量子密码学也将融入TLS协议,以应对新的挑战。
总结,HTTPS通过巧妙地融合非对称加密、对称加密和数字证书技术,在HTTP的便捷性之上构筑了一道坚实的安全防线。理解其从握手到加密传输的全过程,对于开发、运维和安全人员都至关重要。尽管存在一定的成本和复杂性,但在隐私和安全日益受到重视的今天,部署HTTPS已不再是可选项,而是构建可信网络服务的必由之路。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)