10. Security Considerations (安全考量)
10. 安全考量 (Security Considerations)
我们考虑每种类型伪造消息的影响.
Query Message:
来自 IP 地址低于当前 Querier 的机器的伪造 Query 消息, 会导致 Querier 职责被分配给伪造者. 如果伪造者随后不再发送 Query 消息, 其他路由器的 Other Querier Present timer 将超时, 其中一个路由器会恢复 Querier 角色. 在此期间, 如果伪造者忽略 Leave Message, 流量可能会流向没有成员的组, 最长可达 [Group Membership Interval].
发往有成员的组的伪造 Query 消息会导致属于该组的主机报告其成员资格. 这会在 LAN 上产生少量额外流量, 但不会造成协议问题.
Report messages:
伪造的 Report 消息可能导致组播路由器认为子网上有某个组的成员, 而实际上并没有. 来自本地子网的伪造 Report 消息没有意义, 因为在主机上加入组通常是非特权操作, 所以本地用户无需伪造任何消息就可以轻易获得相同结果. 来自外部来源的伪造 Report 消息更麻烦; 对外部伪造 Report 有两种防御措施:
-
如果无法将数据包的源地址识别为属于接收该数据包的接口所分配的子网, 则忽略该 Report. 这种方案意味着, 没有本地子网地址的移动主机所发送的 Report 将被忽略.
-
忽略没有 Router Alert 选项 [RFC 2113] 的 Report 消息, 并要求路由器不得转发 Report 消息. (该要求不是转发路径中通用过滤的要求, 因为这些数据包中已经带有 Router Alert 选项). 这种方案会破坏与本规范早期版本实现的向后兼容性, 因为那些实现并未要求 Router Alert.
伪造的 Version 1 Report Message 可能使路由器针对特定组进入 "version 1 members present" 状态, 这意味着该路由器将忽略 Leave 消息. 这可能导致流量流向没有成员的组, 最长可达 [Group Membership Interval]. 对伪造的 v1 Report 有两种防御措施:
-
为了防御来自外部源的 v1 Report, 如果无法将数据包的源地址识别为属于接收该数据包的接口所分配的子网, 则忽略该 Report. 这种方案意味着, 没有本地子网地址的移动主机所发送的 v1 Report 将被忽略.
-
为路由器提供一个配置开关, 用于完全忽略 Version 1 消息. 这会破坏与 Version 1 主机的自动兼容性, 因此只应在 "fast leave" 至关重要的情况下使用. 这种方案也可以防御来自本地子网的伪造 version 1 report.
Leave message:
伪造的 Leave 消息会导致 Querier 针对相关组发出 Group-Specific Query. 这会在每个路由器和该组的每个成员上造成额外处理, 但不会导致所需流量丢失. 对外部伪造的 Leave 消息有两种防御措施:
-
如果无法将数据包的源地址识别为属于接收该数据包的接口所分配的子网, 则忽略该 Leave 消息. 这种方案意味着, 没有本地子网地址的移动主机所发送的 Leave 消息将被忽略.
-
忽略没有 Router Alert 选项 [RFC 2113] 的 Leave 消息, 并要求路由器不得转发 Leave 消息. (该要求不是转发路径中通用过滤的要求, 因为这些数据包中已经带有 Router Alert 选项). 这种方案会破坏与本规范早期版本实现的向后兼容性, 因为那些实现并未要求 Router Alert.