当前位置: 首页 > news >正文

计算机网络学习----Https协议

        在互联网通信中,数据安全始终是核心需求。当用户在浏览器中输入https://访问网站时,背后隐藏着一套复杂的安全机制 ——HTTPS(Hypertext Transfer Protocol Secure)。它通过 TLS/SSL 协议对 HTTP 通信加密,而支撑这一加密体系的核心正是证书体系。本文将详细解析 HTTPS 的证书体系、加密通信流程、核心作用、优缺点,并结合代码示例说明其实现逻辑。​

        HTTPS 是什么?​HTTPS(超文本传输安全协议)是 HTTP 的安全扩展,通过TLS(Transport Layer Security,传输层安全协议,前身为 SSL) 对数据进行加密处理,实现客户端与服务器之间的机密性、完整性和身份认证。​简单来说,HTTP 是 “明文通信”,数据在传输过程中可能被窃听、篡改或伪造;而 HTTPS 通过加密让数据变成 “密文”,同时验证通信双方的身份,确保数据仅被目标接收方解读,且未被中途篡改。​

        HTTPS 的安全依赖于公钥基础设施(PKI,Public Key Infrastructure),其核心是证书体系,由以下关键组件构成:​

(1)数字证书:由权威机构(CA)颁发的电子文件,包含网站域名、公钥、CA 签名、有效期等信息,用于证明 “公钥属于该域名”。​

(2)CA(Certificate Authority,证书颁发机构):受信任的第三方机构(如 Let's Encrypt、DigiCert),负责验证网站身份并颁发证书,同时对证书进行数字签名。​

(3)公钥与私钥:非对称加密算法中的一对密钥。公钥公开存储在证书中,用于加密数据或验证签名;私钥由服务器秘密保存,用于解密数据或生成签名。​

(4)证书链:当证书由中间 CA 颁发时,需通过 “中间 CA 证书→根 CA 证书” 的链条验证,根 CA 证书是整个信任体系的起点(预装在操作系统或浏览器中)。​

        证书体系的核心是通过数字签名实现身份可信,其原理基于非对称加密和哈希算法,流程可分为 “证书颁发” 和 “证书验证” 两部分。​

(一)证书颁发过程(CA 视角)​

        当网站所有者申请证书时,CA 需完成以下步骤:​

(1)网站所有者生成一对非对称密钥(公钥 + 私钥),并将公钥、域名等信息提交给 CA。​

(2)CA 验证网站所有权(如通过 DNS 解析、文件验证等方式确认申请者确实控制该域名)。​

(3)CA 对 “公钥 + 域名 + 有效期” 等信息进行哈希计算,得到信息摘要。​

(4)CA 用自己的私钥对信息摘要加密,生成数字签名,并将签名与原始信息组合,形成数字证书。​

(5)CA 将证书颁发给网站所有者,网站将证书部署在服务器上。​

(二) 证书验证过程(客户端视角)​

        当客户端(浏览器)访问 HTTPS 网站时,需验证服务器证书的合法性:​

(1)服务器将证书发送给客户端。​

(2)客户端从证书中提取 “公钥 + 域名 + 签名” 等信息,同时获取颁发该证书的 CA 公钥(来自系统预装的根 CA 或中间 CA 证书)。​

(3)客户端用 CA 公钥解密证书上的数字签名,得到信息摘要 A。​

(4)客户端对证书中的原始信息(公钥、域名等)重新进行哈希计算,得到信息摘要 B。​

(5)对比 A 与 B:若一致,说明证书未被篡改且确实由该 CA 颁发,公钥可信;若不一致,证书无效,浏览器提示 “不安全”。​

        HTTPS 的加密通信需在 TCP 握手后完成TLS 握手,最终通过对称加密传输数据。以 TLS 1.2 为例,流程如下:​

(一)客户端问候(Client Hello)​

        客户端向服务器发送支持的 TLS 版本、加密套件(如 ECDHE-RSA-AES256-GCM-SHA384)、随机数(Client Random)等信息。​

(二)服务器回应(Server Hello)​

        服务器选择双方都支持的 TLS 版本和加密套件,返回服务器随机数(Server Random)、服务器证书(含公钥)。​

(三)客户端验证证书并生成预主密钥​

        客户端验证服务器证书(过程见上文 “证书验证”),确认合法后生成预主密钥(Pre-Master Secret),并用服务器证书中的公钥加密预主密钥,发送给服务器。​

(四)服务器解密并生成会话密钥​

        服务器用自己的私钥解密预主密钥,此时客户端和服务器均拥有三个值:Client Random、Server Random、Pre-Master Secret。双方通过相同算法(如 PRF 函数)从这三个值中生成会话密钥(Master Secret),用于后续对称加密。​

(五)握手完成,加密通信​

        客户端和服务器分别发送 “握手完成” 消息(用会话密钥加密),确认后续数据将通过对称加密传输。至此,TLS 握手结束,双方开始用会话密钥加密 HTTP 数据,实现机密通信。​

        关键逻辑:非对称加密(公钥 + 私钥)仅用于传输 “会话密钥”,而实际数据传输用对称加密(会话密钥),既保证了密钥传输的安全性,又兼顾了通信效率(对称加密速度远快于非对称加密)。​

        HTTPS 与证书体系的作用有很多:​

(1)数据机密性:通过对称加密确保数据在传输过程中无法被窃听(即使被截取,没有会话密钥也无法解密)。​

        例:用户输入的密码、支付信息在传输中不会被黑客获取。​

(2)身份认证:通过证书验证确认服务器身份,防止 “钓鱼网站” 冒充合法网站。​        

        例:用户访问https://bank.com时,浏览器通过证书确认服务器确实是银行官方,而非伪造的钓鱼页面。​

(3)数据完整性:通过哈希算法和数字签名确保数据未被篡改(篡改后哈希值会变化,验证时会失败)。​

        例:黑客无法修改传输中的订单金额,因为篡改会被客户端检测到。​

(4)信任背书:根 CA 的预装信任机制让普通用户无需手动验证,降低了安全使用门槛。​

        HTTPS 与证书体系的优缺点​有很多,其中优点有:

(1)安全性显著提升:从根本上解决 HTTP 明文传输的安全隐患,是电子商务、金融等领域的必备技术。​

(2)用户信任增强:浏览器对 HTTPS 网站显示 “锁图标”,提升用户对网站的信任度(搜索引擎也会优先收录 HTTPS 网站)。​

(3)标准化与兼容性:TLS 协议被广泛支持,几乎所有浏览器、服务器都兼容,部署成本逐渐降低(如 Let's Encrypt 提供免费证书)。​

        缺点​则如下:

(1)性能开销:TLS 握手需要额外的网络交互(约 1-2 个 RTT),且加密解密会消耗服务器 CPU 资源(尽管 TLS 1.3 已优化握手流程)。​

(2)证书管理成本:企业需定期更新证书(避免过期),大型网站还需部署证书吊销机制(如 OCSP),增加运维复杂度。​

(3)根信任风险:若根 CA 私钥泄露或被恶意使用,可能导致伪造证书无法被检测(历史上曾发生过 CA 被入侵的案例)。​

(4)部分场景冗余:对于纯静态、无敏感数据的网站,HTTPS 的安全收益可能低于性能开销。

http://www.dtcms.com/a/294993.html

相关文章:

  • 亚马逊云科技 上海AI研究院 突然解散 | AI早报
  • 13. event.target 和 event.currentTarget 区别
  • 【C语言进阶】动态内存管理(2)
  • 力扣(LeetCode) ——轮转数组(C语言)
  • Unity UI的未来之路:从UGUI到UI Toolkit的架构演进与特性剖析(2)
  • 【Web APIs】JavaScript 节点操作 ⑦ ( 创建节点案例 | 网页评论功能 )
  • 旅游管理虚拟仿真实训室:重构实践教学新生态
  • 掌握Autofac:IOC容器实战指南
  • GaussDB view视图的用法
  • 分布式光伏发电项目简易故障录波装置介绍
  • [硬件电路-78]:模拟器件 - 从宏观到微观:高频信号下电路与光路的特性演变与挑战
  • Hexo - 免费搭建个人博客05 - 更新个人博客
  • GUI简介 - OpenExo
  • 回顾 Palantir:八年之旅的反思
  • ​​SBOM 软件供应链安全(转)
  • haproxy的七层代理
  • Day01_C++编程
  • Ollama(3)模型迁移和API使用
  • Modbus协议详解与c#应用
  • 重写 与 重载
  • pig cloud框架中引入websocket
  • nginx websocket 代理 断网后 再联网 不能连接
  • Windows下编译UTF8-CPP
  • 前端学习 5:DFT
  • 云效CI/CD教程(PHP项目)
  • 如何提升连带消费?从新零售“人-货-场”模型拆解
  • 220V降5V,输出100MA,为家电电器消费类产品提供电源WD5202L
  • OpenCV+Python
  • WebGIS 常用坐标系
  • 真的假的?CISP认证考试将全面推行线下机考?