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.
因此, 以下事项至关重要:
- DTLS implementation 是安全且无 vulnerabilities 的
- 使用 strong cipher suites
- endpoints 正确 authenticate 彼此的 certificates
- 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.