V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
p2227
V2EX  ›  信息安全

设置握手消息的最小长度可以减少 DDoS 攻击?原理是怎么样的?

  •  
  •   p2227 · 2016-10-31 20:00:08 +08:00 · 3265 次点击
    这是一个创建于 2945 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在研究 QUIC 协议,协议里面的代码里面我看到有这样一段注释

    // kClientHelloMinimumSize is the minimum size of a client hello. Client hellos
    // will have PAD tags added in order to ensure this minimum is met and client
    // hellos smaller than this will be an error. This minimum size reduces the
    // amplification factor of any mirror DoS attack.
    //
    // A client may pad an inchoate client hello to a size larger than
    // kClientHelloMinimumSize to make it more likely to receive a complete
    // rejection message.
    const size_t kClientHelloMinimumSize = 1024;
    

    代码出处 https://github.com/google/proto-quic/blob/e532f6da2454465de9e9e0114283b83458e2485f/src/net/quic/core/crypto/crypto_protocol.h#L251

    背景是这样子的,这个是一个保证传输的通讯协议,当然要有一个握手的过程。

    ClientHello 消息,是客户端第一个发送给服务端的数据,以进行一些版本、初始化数据,加密密钥等的通讯。

    然后 kClientHelloMinimumSize 这个变量是这样的,客户端在组装好各种 ClientHello 需要的参数,再序列化成二进制报文后,若发现报文的长度小于 kClientHelloMinimumSize 就在报文中增加一个 padding 。

    然后注释是说这个增加 padding 的机制可以在一定程度上减缓 DDoS 。原理是怎么样的呢?我大概想了一下,如果服务端收到的报文长度小于这个值,可以直接拒绝连接,这样可以减少 CPU 资源,但还有没有其他原理呢?欢迎大家补充。

    dndx
        1
    dndx  
       2016-11-01 00:51:36 +08:00 via iPhone
    // hellos smaller than this will be an error. This minimum size reduces the
    // amplification factor of any mirror DoS attack

    这个讲的很明确了,为了减小 ampflication factor ,让 QUIC 对 DDoS 的人没这么大吸引力。要不可能就沦落到 NTP 或者 DNS 那样被利用。
    ryd994
        2
    ryd994  
       2016-11-01 02:34:13 +08:00 via Android
    不是防自己被 DDoS
    是防被利用来 DDoS 其他人
    p2227
        3
    p2227  
    OP
       2016-11-01 10:23:30 +08:00
    @dndx 抱歉,理解错了。 dns 放大攻击就是别人伪造 ip 包让多个 dns 都去 DoS 某个指定的 ip 是吧。那么还是回到这个问题大,设置握手消息的最小长度可以减少自己被别人利用来 DDoS 的原理是怎么样呢?
    p2227
        4
    p2227  
    OP
       2016-11-01 10:24:20 +08:00
    @ryd994 抱歉,那么防止被利用的原理是什么呢?本人菜鸟,不知道这个跟初始握手消息的最小长度有什么联系。
    dndx
        5
    dndx  
       2016-11-01 13:21:38 +08:00   ❤️ 1
    @p2227 如果握手包太小,那么攻击者给支持 QUIC 的服务器发送一个很小的数据包就会收到服务器一个较大的回复,这样有放大效果,容易被利用。

    反之如果要求攻击者必须发送比较大的数据包才能获得一个类似大小的回复,放大效果很差甚至没有,也就没有被利用的动机了。
    ryd994
        6
    ryd994  
       2016-11-01 14:50:43 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2853 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 74ms · UTC 14:11 · PVG 22:11 · LAX 06:11 · JFK 09:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.