跳到主要内容

5. 安全考虑事项 (Security Considerations)

5. 安全考虑事项 (Security Considerations)

本文档描述一种使用 DTLS 建立 SRTP keys 的方法. 最终 SRTP session 的 security properties 由 DTLS 和 SRTP 的组合决定.

5.1 DTLS Handshake 的安全性

keying material 的安全性完全取决于 DTLS handshake 的安全性. 如果 attacker 能够破坏 DTLS handshake (例如通过 man-in-the-middle attack), 它们可以获得 SRTP master key, 并 authenticate 和 decrypt 所有 SRTP traffic.

因此, 以下事项至关重要:

  1. DTLS implementation 是安全且无 vulnerabilities 的
  2. 使用 strong cipher suites
  3. endpoints 正确 authenticate 彼此的 certificates
  4. certificates 被正确 validated

5.2 Packet Routing and Multiplexing

DTLS-SRTP implementations 必须在以下类别之间正确 demultiplex incoming packets:

  • DTLS packets (handshake and alert messages)
  • SRTP packets (encrypted media)
  • SRTCP packets (encrypted control)
  • STUN packets (NAT traversal)

未能正确区分这些 packet types 可能导致 security vulnerabilities. demultiplexing algorithm 基于 packet 的第一个 byte, 并设计为无歧义.

5.3 Replay Protection

SRTP 包含 replay protection mechanisms. 然而, DTLS-SRTP implementations 必须确保 DTLS record sequence numbers 不会跨 rekeying operations 重用, 以防止 replay attacks.

5.4 Confidentiality and Authentication

DTLS-SRTP 同时提供 confidentiality (通过 encryption) 和 authentication (通过 message authentication codes). 这两个属性对 secure media transmission 都至关重要. 除非有特定 application requirements 证明这样做合理, implementations 不应该使用只提供其中一个属性的 SRTP protection profiles.

5.5 Perfect Forward Secrecy

如果使用适当的 key exchange algorithms (例如 ephemeral Diffie-Hellman), DTLS 可以提供 perfect forward secrecy (PFS). 当 PFS 很重要时, implementations 应该使用提供该属性的 cipher suites.

5.6 Identity Binding

DTLS handshake 中 authenticated 的 identity 应该以 cryptographic 方式绑定到 signaling channel 中使用的 identity, 以防止各种形式的 identity misbinding attacks.