【问题标题】:SCTP State CookieSCTP 状态 Cookie
【发布时间】:2021-03-28 09:32:34
【问题描述】:

我知道 sctp 确实通过使用状态 cookie 来防止 SYN/Flooding(拒绝服务),每个回显的 cookie 都存储在会话浏览器缓冲区级别。 但是状态cookie实际上包含什么?!

【问题讨论】:

    标签: cookies sctp


    【解决方案1】:

    RFC-4960, chapter 5.1.3详细描述:

    5.1.3。生成状态 Cookie

    当发送一个 INIT ACK 作为对一个 INIT 块的响应时,发送方 INIT ACK 创建一个 State Cookie 并在 State Cookie 中发送它
    INIT ACK 的参数。在这个状态 Cookie 中,发送者
    应该包括一个 MAC(参见 [RFC2104] 的例子),一个时间戳
    State Cookie 的创建时间,以及 State 的生命周期
    Cookie,以及建立它所需的所有信息
    协会。

    应采取以下步骤来生成状态 Cookie:

    1. 使用来自双方的信息创建关联 TCB 收到 INIT 和传出的 INIT ACK 块,

    2. 在 TCB 中,将创建时间设置为当前时间, 和 协议参数“Valid.Cookie.Life”的生命周期(参见 第 15 节),

    3. 从 TCB 中,识别并收集 重新创建 TCB 并使用生成 MAC 所需的信息 这个信息子集和一个密钥(参见 [RFC2104] 生成 MAC 的示例),以及

    4. 通过组合这个子集来生成状态 Cookie 信息 以及由此产生的 MAC。

    在发送带有 State Cookie 参数的 INIT ACK 后,
    发件人应该删除 TCB 和任何其他与
    相关的本地资源 新的关联,从而防止资源攻击。

    用于生成 MAC 的散列方法是严格私有的
    对于 INIT 块的接收者来说很重要。 MAC的使用是
    强制以防止拒绝服务攻击。秘钥
    应该是随机的([RFC4086] 提供了一些关于随机性的信息
    指导方针);应该经常合理地更改它,并且
    状态 Cookie 中的时间戳可用于确定哪个键
    应用于验证 MAC。

    实现应该使 cookie 尽可能小
    确保互操作性。

    【讨论】:

      猜你喜欢
      • 2017-08-02
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      • 2014-12-29
      • 2013-09-12
      • 2015-07-23
      • 1970-01-01
      • 2011-10-26
      相关资源
      最近更新 更多