跳到主要内容

2.3. Time Synchronization (时间同步)

2.3. Time Synchronization (时间同步)

SNMP 引擎之间的时间同步对于重放保护机制的有效工作至关重要。基于用户的安全模型使用时间同步协议, 该协议允许非权威 SNMP 引擎从权威 SNMP 引擎学习当前时间值。

Time Synchronization Process (时间同步过程)

  1. Initial State (初始状态): 当非权威 SNMP 引擎首次与权威 SNMP 引擎通信时, 它不知道权威引擎的当前时间值。

  2. Discovery (发现): 非权威引擎向权威引擎发送消息。此消息可以是:

    • 具有零长度 msgUserName 的未认证消息 (securityLevel = noAuthNoPriv), 或
    • 具有权威引擎未知的 userName 的已认证消息
  3. Response (响应): 权威引擎使用包含以下内容的报告消息进行响应:

    • msgAuthoritativeEngineID
    • msgAuthoritativeEngineBoots
    • msgAuthoritativeEngineTime
  4. Synchronization (同步): 非权威引擎存储这些值, 并将它们用于与该权威引擎的后续已认证消息交换。

Time Updates (时间更新)

每当非权威 SNMP 引擎从该引擎接收到已认证的消息时, 它就会更新其对权威引擎时间的概念。更新过程如下:

  1. 计算接收到的 msgAuthoritativeEngineTime 与本地存储时间之间的时间差。
  2. 如果差值在可接受范围内 (< 150 秒), 则更新权威引擎时间的本地概念。
  3. 如果差值太大, 则认为该消息在时间窗口之外, 并将其丢弃。

Time Window Considerations (时间窗口考虑)

选择 150 秒的时间窗口是为了:

  • 允许 SNMP 引擎之间合理的时钟偏差
  • 限制消息重放攻击的机会窗口
  • 适应典型的网络延迟和处理时间

此时间窗口意味着只有在生成后 150 秒内到达的已认证消息才被视为有效。