第7章 确保Web安全的HTTPS
从HTTP明文、身份不验证和完整性不可证三个缺点,推导SSL/TLS、混合密码与证书链的HTTPS通信机制
第7章 确保Web安全的HTTPS
本课程对应[日]上野宣《图解HTTP》,于均良译,人民邮电出版社/图灵教育,2014年4月首版,308页,双色印刷,ISBN 9787115351531;原书《HTTPの教科書》,ISBN 9784798126258。图灵官方资料标明出版日期为2014年4月22日、172张图解;正式目录为11章、202个节/小节节点。本页严格按该首版章次组织,不用后续规范替换原书语境。
学习目标
- 能解释“第7章 确保Web安全的HTTPS”全部正式节点,并把概念定位到真实请求、响应或应用状态。
- 能绘制客户端、中介、服务器之间的消息方向、主体边界和关键状态转移。
- 能设计单变量实验,验证“能把一次HTTPS连接拆成证书验证、密钥协商、对称加密记录与完整性检查,并指出每一步阻断哪类攻击”。
- 能写出并提交包含原始报文、失败反例、恢复条件和版次边界的独立证据包。
机制总览
第7章 确保Web安全的HTTPS:机制路径
- 1
从一条可证伪的HTTP交换开始
先预测:把HTTPS简化成用公钥加密全部网页,或只看到锁图标就跳过主机名、有效期和信任链验证,会留下中间人路径。把预测写成“请求输入、线上消息、接收方状态、响应输出、最终副作用”五列,再运行实验。若结果与预测不同,先修正模型,不要只截取一个状态码证明自己。
- 2
核心词汇与首版边界
这些词汇按2014年首版语义使用。SPDY、HTTP/2.0、X-XSS-Protection、P3P等保留出版时状态;HTTP/2最终规范、HTTP/3、JWT、OAuth、SameSite等后续技术只能作为另行标注的现代补充,不改变本书目录分母。
- 3
核心机制深读
明文可被路径观察者读取;协议本身不确认对端身份;单靠收到相同长度的报文不能证明未被改写。加密提供机密性,证书与签名建立认证,消息认证机制检测篡改,三者不能互相替代。
章级决策实验
第7章 确保Web安全的HTTPS:机制与证据
切换《第7章 确保Web安全的HTTPS》的三个关键教学阶段,先解释机制,再用运行与失败证据验证结论。
选择推理阶段
当前阶段 · 从一条可证伪的HTTP交换开始
先预测:把HTTPS简化成用公钥加密全部网页,或只看到锁图标就跳过主机名、有效期和信任链验证,会留下中间人路径。把预测写成“请求输入、线上消息、接收方状态、响应输出、最终副作用”五列,再运行实验。若结果与预测不同,先修正模型,不要只截取一个状态码证明自己。
可核验证据
保存「从一条可证伪的HTTP交换开始」的原始请求与响应报文,用 curl 和浏览器网络面板复现成功、重定向、缓存及拒绝路径,并核对状态码与首部。
学完《第7章 确保Web安全的HTTPS》后,应能从输入和前置条件推导状态变化,并用可重复的构建、运行或边界测试证明结果。
失效—证据矩阵
第7章 确保Web安全的HTTPS:失效与核验
从一条可证伪的HTTP交换开始
典型失效
若只背诵「从一条可证伪的HTTP交换开始」字段而不区分请求语义、缓存边界和安全上下文,代理或浏览器状态变化后会得到错误响应或泄露数据。
核验证据
保存「从一条可证伪的HTTP交换开始」的原始请求与响应报文,用 curl 和浏览器网络面板复现成功、重定向、缓存及拒绝路径,并核对状态码与首部。
核心词汇与首版边界
典型失效
若只背诵「核心词汇与首版边界」字段而不区分请求语义、缓存边界和安全上下文,代理或浏览器状态变化后会得到错误响应或泄露数据。
核验证据
保存「核心词汇与首版边界」的原始请求与响应报文,用 curl 和浏览器网络面板复现成功、重定向、缓存及拒绝路径,并核对状态码与首部。
核心机制深读
典型失效
若只背诵「核心机制深读」字段而不区分请求语义、缓存边界和安全上下文,代理或浏览器状态变化后会得到错误响应或泄露数据。
核验证据
保存「核心机制深读」的原始请求与响应报文,用 curl 和浏览器网络面板复现成功、重定向、缓存及拒绝路径,并核对状态码与首部。
从一条可证伪的HTTP交换开始
先预测:把HTTPS简化成用公钥加密全部网页,或只看到锁图标就跳过主机名、有效期和信任链验证,会留下中间人路径。把预测写成“请求输入、线上消息、接收方状态、响应输出、最终副作用”五列,再运行实验。若结果与预测不同,先修正模型,不要只截取一个状态码证明自己。
本章的主问题是:从HTTP明文、身份不验证和完整性不可证三个缺点,推导SSL/TLS、混合密码与证书链的HTTPS通信机制。原书以图解建立直觉,本课程把图解升级为可操作轨迹:每个箭头必须注明方向、协议对象和完成点;每个安全结论必须附一条攻击或误配置反例。
验收不变量是:能把一次HTTPS连接拆成证书验证、密钥协商、对称加密记录与完整性检查,并指出每一步阻断哪类攻击。浏览器页面“看起来正常”只能说明某个终点出现,不能单独证明DNS、连接、TLS、缓存、认证或授权中的哪一段正确。
核心词汇与首版边界
↡攻击者在传输路径读取明文通信内容的威胁、↡通信对端身份未验证时,攻击者冒充服务器或客户端、↡接收方能判断报文从发送后是否被篡改的性质、↡使用公开密钥加密或验证、私有密钥解密或签名的非对称密码机制、↡由可信证书机构签名,把主体身份与公开密钥绑定的凭据
这些词汇按2014年首版语义使用。SPDY、HTTP/2.0、X-XSS-Protection、P3P等保留出版时状态;HTTP/2最终规范、HTTP/3、JWT、OAuth、SameSite等后续技术只能作为另行标注的现代补充,不改变本书目录分母。
核心机制深读
三个缺点对应三类证据
明文可被路径观察者读取;协议本身不确认对端身份;单靠收到相同长度的报文不能证明未被改写。加密提供机密性,证书与签名建立认证,消息认证机制检测篡改,三者不能互相替代。
动手试:先写下预期请求、响应与状态变化,再捕获一次正常交换和一次只改一个变量的失败交换。比较状态码、首部、主体、缓存或会话状态,确认结论来自证据而非浏览器表象。
HTTPS仍然传HTTP
应用先构造普通HTTP消息,再交给SSL/TLS记录层保护,底下仍由TCP传输。TLS握手发生在HTTP请求前;握手失败时,应用层不应继续发送敏感HTTP数据。
混合密码解决效率和分发
共享密钥密码适合高吞吐数据但难以安全分发密钥;公开密钥密码便于协商和认证但计算昂贵。HTTPS在握手中使用非对称机制建立共享秘密,随后用对称会话密钥保护大量记录。
证书链不是一张图片
客户端验证签发链是否到达受信根、签名是否有效、证书是否在有效期、主机名是否匹配,并考虑吊销信息。任一步失败都不能用忽略警告代替安全结论。
原书目录核对清单
本页承担10个目录或复习节点,正文、图解、实验和题目必须能反向定位每一项:
- 7.1 HTTP的缺点
- 7.1.1 通信使用明文可能会被窃听
- 7.1.2 不验证通信方的身份就可能遭遇伪装
- 7.1.3 无法证明报文完整性,可能已遭篡改
- 7.2 HTTP+加密+认证+完整性保护=HTTPS
- 7.2.1 HTTP加上加密处理和认证以及完整性保护后即是HTTPS
- 7.2.2 HTTPS是身披SSL外壳的HTTP
- 7.2.3 相互交换密钥的公开密钥加密技术
- 7.2.4 证明公开密钥正确性的证书
- 7.2.5 HTTPS的安全通信机制
复原正常协议轨迹
固定URI、客户端、网络和服务端状态,标出请求行、首部、主体、中介与最终响应。
可复现实验
ClientHello -> ServerHello + Certificate
certificate validation -> key agreement
Finished <-> Finished
encrypted HTTP request <-> encrypted HTTP responseserver certificate: subject=www.example.test
SAN=DNS:www.example.test
issuer=Example Intermediate CA
validity=notBefore..notAfterHTTP plaintext -> TLS record protection -> TCP byte stream
TCP byte stream -> TLS verify/decrypt -> HTTP plaintext独立证据门
第7章 确保Web安全的HTTPS 的最小证据包包含:首版目录节点、请求与响应原文、连接/中介方向、主体边界、缓存或会话状态、一个单变量失败、最终副作用、已知限制、恢复步骤、责任人与复核人。
练习
练习
问题 1:为什么“第7章 确保Web安全的HTTPS”必须固定2014年首版语境?
问题 2:怎样构造“把HTTPS简化成用公钥加密全部网页,或只看到锁图标就跳过主机名、有效期和信任链验证,会留下中间人路径”的最小反例?
问题 3:何时可以认为本页完成独立交接?
本章回顾
“第7章 确保Web安全的HTTPS”的核心是从HTTP明文、身份不验证和完整性不可证三个缺点,推导SSL/TLS、混合密码与证书链的HTTPS通信机制。真正掌握不止是认出术语,而是能让一条请求在消息、连接、中介、表示、身份和攻击边界之间闭环,并用失败实验说明边界一旦被破坏会发生什么。
名词解释
本章出现的专业名词,用大白话再讲一遍。
- 窃听
攻击者在传输路径读取明文通信内容的威胁。掌握标准是能在原始请求或响应中定位它,并构造一条最小反例。
- 伪装
通信对端身份未验证时,攻击者冒充服务器或客户端。掌握标准是能在原始请求或响应中定位它,并构造一条最小反例。
- 完整性
接收方能判断报文从发送后是否被篡改的性质。掌握标准是能在原始请求或响应中定位它,并构造一条最小反例。
- 公开密钥加密
使用公开密钥加密或验证、私有密钥解密或签名的非对称密码机制。掌握标准是能在原始请求或响应中定位它,并构造一条最小反例。
- 数字证书
由可信证书机构签名,把主体身份与公开密钥绑定的凭据。掌握标准是能在原始请求或响应中定位它,并构造一条最小反例。
← 上一页:第6章 HTTP首部 · 下一页:第8章 确认访问用户身份的认证 →
原版目录概念补充核对
以下条目补齐官方目录中容易被示例主线掩盖的概念。它们不重复罗列目录,而是明确每项概念的机制、适用边界和验收证据。
7.1.1 通信使用明文可能会被窃听:机制、边界与证据
第7章 确保Web安全的HTTPS中的7.1.1 通信使用明文可能会被窃听描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
7.1.2 不验证通信方的身份就可能遭遇伪装:机制、边界与证据
第7章 确保Web安全的HTTPS中的7.1.2 不验证通信方的身份就可能遭遇伪装描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
7.1.3 无法证明报文完整性,可能已遭篡改:机制、边界与证据
第7章 确保Web安全的HTTPS中的7.1.3 无法证明报文完整性,可能已遭篡改要放进一次完整 HTTP 交换中判断:请求行与首部给出前置条件,状态码和响应首部说明处理结果,消息体承载表示。复核时保存原始报文并改变方法、资源状态或连接复用条件,确认客户端、代理与服务端对语义的解释一致。
7.2 HTTP+加密+认证+完整性保护=HTTPS:机制、边界与证据
第7章 确保Web安全的HTTPS中的7.2 HTTP+加密+认证+完整性保护=HTTPS涉及身份、机密性或输入信任边界,不能把“使用 HTTPS”或“已经登录”当作完整安全证明。应分别验证握手/证书、凭据传递、会话属性、授权拒绝和恶意输入,并检查敏感信息是否进入 URL、日志或可被脚本读取的存储。
7.2.1 HTTP加上加密处理和认证以及完整性保护后即是HTTPS:机制、边界与证据
第7章 确保Web安全的HTTPS中的7.2.1 HTTP加上加密处理和认证以及完整性保护后即是HTTPS涉及身份、机密性或输入信任边界,不能把“使用 HTTPS”或“已经登录”当作完整安全证明。应分别验证握手/证书、凭据传递、会话属性、授权拒绝和恶意输入,并检查敏感信息是否进入 URL、日志或可被脚本读取的存储。
7.2.2 HTTPS是身披SSL外壳的HTTP:机制、边界与证据
第7章 确保Web安全的HTTPS中的7.2.2 HTTPS是身披SSL外壳的HTTP涉及身份、机密性或输入信任边界,不能把“使用 HTTPS”或“已经登录”当作完整安全证明。应分别验证握手/证书、凭据传递、会话属性、授权拒绝和恶意输入,并检查敏感信息是否进入 URL、日志或可被脚本读取的存储。
7.2.3 相互交换密钥的公开密钥加密技术:机制、边界与证据
第7章 确保Web安全的HTTPS中的7.2.3 相互交换密钥的公开密钥加密技术描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
7.2.4 证明公开密钥正确性的证书:机制、边界与证据
第7章 确保Web安全的HTTPS中的7.2.4 证明公开密钥正确性的证书涉及身份、机密性或输入信任边界,不能把“使用 HTTPS”或“已经登录”当作完整安全证明。应分别验证握手/证书、凭据传递、会话属性、授权拒绝和恶意输入,并检查敏感信息是否进入 URL、日志或可被脚本读取的存储。
7.2.5 HTTPS的安全通信机制:机制、边界与证据
第7章 确保Web安全的HTTPS中的7.2.5 HTTPS的安全通信机制涉及身份、机密性或输入信任边界,不能把“使用 HTTPS”或“已经登录”当作完整安全证明。应分别验证握手/证书、凭据传递、会话属性、授权拒绝和恶意输入,并检查敏感信息是否进入 URL、日志或可被脚本读取的存储。