【问题标题】:Why does the Linux IPv4 stack need random numbers?为什么 Linux IPv4 堆栈需要随机数?
【发布时间】:2012-08-29 18:00:30
【问题描述】:

我想问一个关于 Linux 内核 (net/ipv4/inet_fragment.c) 中的 IPv4 片段管理器的问题。我不明白为什么结构 inet_frags (include/net/inet_frag.h) 有一个“rnd”字段,显然是用随机数填充的。我的意思是,我不希望我的 IPv4 堆栈以随机顺序重新组合我的数据包^^。

你能帮我吗?提前谢谢。 (内核 3.4.4)

【问题讨论】:

    标签: linux random kernel ipv4


    【解决方案1】:

    该实现使用散列来存储 IP 数据报片段。具有固定哈希函数的哈希表容易出现拒绝服务hash collision attack。因此,他们为每个哈希函数添加了一个随机种子以防止攻击。

    http://www.iss.net/security_center/reference/vuln/linux-kernel-packets-dos.htm

    Linux 内核容易受到拒绝服务攻击,这是由于 TCP/IP 片段重组处理不当造成的。远程攻击者可以发送特制数据包,导致大量哈希表冲突,从而消耗所有可用的 CPU 资源。

    【讨论】:

    • 另外:随机数作为起点。初始 TCP 序列号是随机选择的,例如防止Connection hijacking
    猜你喜欢
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    相关资源
    最近更新 更多