7. 安全考虑 (Security Considerations)
SDP经常与会话发起协议(Session Initiation Protocol) [RFC3261]一起使用,采用提供/应答模型(offer/answer model) [RFC3264]来协商单播会话的参数。以这种方式使用时,这些协议的安全考虑适用。
SDP是描述多媒体会话的会话描述格式。接收和处理SDP消息的实体应该(SHOULD)意识到,除非会话描述是通过来自已知和受信任源的经过身份验证和完整性保护的传输协议获得的,否则不能信任会话描述。可以使用许多不同的传输协议来分发会话描述,身份验证和完整性保护的性质将因传输而异。对于某些传输,通常不部署安全功能。如果会话描述不是以受信任的方式获得的,端点应该(SHOULD)小心,因为除其他攻击外,接收的媒体会话可能不是预期的会话,媒体发送到的目的地可能不是预期的目的地,会话的任何参数可能不正确,或者媒体安全可能受到损害。端点需要做出明智的决定,考虑应用程序的安全风险和用户偏好——端点可能决定询问用户是否接受会话。
在通过未经身份验证的传输机制或来自不受信任方接收会话描述时,解析会话描述的软件应该采取一些预防措施。如果完整性保护未到位,也会出现类似的问题。会话描述包含在接收者系统上启动软件所需的信息。解析会话描述的软件不得(MUST NOT)能够启动其他软件,除非特别配置为适合参与多媒体会话的软件。通常认为,解析会话描述的软件在用户系统上启动适合参与多媒体会话的软件是不合适的,除非首先通知用户将启动此类软件并获得用户的同意。因此,通过会话公告、电子邮件、会话邀请或WWW页面到达的会话描述不得(MUST NOT)将用户传送到交互式多媒体会话中,除非用户已明确预先授权此类操作。由于并不总是简单地判断会话是否是交互式的,不确定的应用程序应该假设会话是交互式的。处理会话描述中包含的URL的软件还应该注意[RFC3986]中确定的安全考虑。
在本规范中,没有允许会话描述的接收者被告知以默认为传输的模式启动多媒体工具的属性。在某些情况下,定义此类属性可能是合适的。如果这样做,解析包含此类属性的会话描述的应用程序应该(SHOULD)忽略它们或通知用户加入此会话将导致多媒体数据的自动传输。未知属性的默认行为是忽略它。
在某些环境中,中介系统拦截和分析其他信令协议中包含的会话描述已变得很常见。这样做有多种目的,包括但不限于在防火墙中打开孔以允许媒体流通过,或者有选择地标记、优先处理或阻止流量。在某些情况下,此类中介系统可能会修改会话描述,例如,使会话描述的内容与动态创建的NAT绑定匹配。不建议(NOT RECOMMENDED)这些行为,除非会话描述的传送方式允许中介系统进行适当的检查以确定会话描述的真实性,以及其来源建立此类通信会话的权限。SDP本身不包含足够的信息来进行这些检查:它们依赖于封装协议(例如,SIP或RTSP)。使用某些程序和SDP扩展(例如,交互式连接建立(Interactive Connectivity Establishment, ICE) [RFC8445]和ICE-SIP-SDP [RFC8839])可能避免中介需要修改SDP。
不得(MUST NOT)使用SDP传达密钥材料(例如,使用"a=crypto:"属性[RFC4568]),除非可以保证传递SDP的通道既是私有的又是经过身份验证的。