HTTPS 请求能否被嗅探并重新提交?

Can HTTPS request be sniffed and resubmitted?

如果有人嗅探网络流量,他能否将他嗅探到的完全相同的加密请求(不篡改)重新发送到服务器?例如一个请求可以激活服务器上的某个程序,那么他是否可以因为他有请求内容而重新激活该程序,即使它是在 HTTPS 上?

答案取决于谁可能会攻击您的系统:

如果使用您的网页或应用程序的用户是攻击者,那么明确的答案是肯定的,请求数据是可访问的。

如果本地系统管理员必须被视为潜在的攻击者,那么答案是肯定的。

如果您谈论的是只能访问加密数据包的外部攻击者(例如互联网接入提供商),答案是否定的。

您始终可以通过记录所有请求和响应数据的解密代理重定向 HTTPS 流量。客户端只需要 accept/install/trust 代理的证书。

这被称为 Replay Attack:

A replay attack (also known as playback attack) is a form of network attack in which a valid data transmission is maliciously or fraudulently repeated or delayed.

SSL/TLS 从本质上保护您的连接免受重放攻击,因此通过 HTTPS 的任何内容都受到保护。

但是,如果有一个代理服务器(可能是透明的)在途中使用您的浏览器信任的 SSL 证书(例如在公司环境中,每台计算机上都安装了由组织签署的根证书),那么这将能够重放 HTTPS 流量。