跳到主要内容

3. 浏览器威胁模型 (Browser Threat Model)

3. 浏览器威胁模型 (Browser Threat Model)

Web security model [RFC6454] 建立在 "origins" 概念之上. 简而言之, origin 由 protocol, host 和 port 的 tuple 组成; 例如, https://example.com/ 的 origin 是 (https, example.com, 443). (详见 [RFC6454]). 当 browser 向给定 origin 发送 request 时, 它代表发起该 request 的 principal 行事 (例如来自 https://trusted.com/ 的 script). Web 的基本安全规则是 Same-Origin Policy (SOP), 它规定来自一个 origin 的 resources 不应被来自另一个 origin 的 scripts 访问, 除非该 resource 的 origin 明确选择允许这种访问 (例如通过 Cross-Origin Resource Sharing (CORS) [fetch]).

WebRTC 为 Web 引入了一个与 HTTP (以及 WebSockets) 并列的新 communication channel. 该 channel 在若干重要方面不同于 HTTP:

  1. 它允许发送任意 data (通过 DataChannel).
  2. 它允许发送 media (audio 和 video).
  3. 它通常通过 UDP 路由 (虽然也支持 TCP).
  4. 它可以是 peer-to-peer (P2P), 这意味着 data 直接在 browsers 之间传输, 而不是通过 server.

这些差异引入了必须由 WebRTC architecture 缓解的新 threats.

3.1 新目标 (New Targets)

由于 WebRTC 允许向任意 IP addresses 和 ports 发送 data (受 ICE checks [RFC8445] 约束), malicious scripts 可能利用用户的 browser 攻击无法从 public Internet 访问但可从用户机器访问的 services (例如 intranets, home routers). 这称为 "calling card" attack.

3.2 新数据类型 (New Data Types)

WebRTC 允许发送 real-time audio 和 video. 如果 malicious site 可以未经同意访问用户的 camera 和 microphone, 它就可以监视用户.

3.3 拒绝服务 (Denial of Service)

由于 WebRTC 可以生成 high-bandwidth traffic, 它可能被用于 Denial of Service (DoS) attacks.