Zum Hauptinhalt springen

7. Security Considerations (安全考虑)

SDP会话描述本身不构成传输协议,必须 (MUST) 与传输协议一起使用以传送会话描述给参与者。本节讨论SDP使用中的安全考虑。

机密性 (Confidentiality)

会话描述可能包含敏感信息,包括:

  • 参与者身份信息
  • 联系信息(电子邮件、电话号码)
  • 加密密钥
  • 网络拓扑信息(IP地址、端口)
  • 会话时间和主题

建议使用适当的加密机制(如TLS、S/MIME)来保护会话描述在传输过程中的机密性。

完整性和真实性 (Integrity and Authenticity)

会话描述必须 (MUST) 受到保护,防止未授权的修改。攻击者可能通过修改会话描述来:

  • 重定向媒体流到恶意服务器
  • 注入恶意属性
  • 修改加密密钥
  • 更改会话时间

建议使用数字签名或消息认证码 (MAC) 来验证会话描述的完整性和真实性。

拒绝服务 (Denial of Service)

攻击者可能利用会话描述发起拒绝服务攻击:

  • 发送大量伪造的会话通告
  • 创建极大的会话描述消耗解析器资源
  • 指向不存在的地址以消耗网络资源

实现应该 (SHOULD) 限制会话描述的大小和复杂度,并对解析错误进行适当处理。

加密密钥分发 (Encryption Key Distribution)

虽然SDP提供了传达加密密钥的机制("k=" 字段),但在许多情况下,通过会话描述传递密钥可能不安全。建议使用专用的密钥管理协议(如MIKEY、ZRTP)或带外密钥交换方法。

隐私考虑 (Privacy Considerations)

"o=" 字段包含创建会话的用户名和IP地址,这可能泄露隐私信息。在需要隐私的场景中,可以使用任意用户名和私有地址,前提是不影响字段的全局唯一性。

网络地址转换 (NAT) 和防火墙

SDP中包含的IP地址和端口信息可能在经过NAT或防火墙时变得无效。应用程序应该 (SHOULD) 使用交互式连接建立 (ICE) 等机制来处理这些情况。