Názor k článku HTTP/3 nebude postavené na TCP, základem bude QUIC používající UDP od Petr M - Takže na tvoje přání to vezmu polopaticky znovu,...

  • Článek je starý, nové názory již nelze přidávat.
  • 15. 11. 2018 8:04

    Petr M (neregistrovaný)

    Takže na tvoje přání to vezmu polopaticky znovu, pro ty, co neznají rozdíl mezi UDP a TCP:

    Spojení UDP ze stroje A na stroj B (za dvojtečkou je port), např. DNS:
    1) A:X -> B:53: Pošli záznam AAAA pro domena.cz
    2) B:53 -> A:X: IP adresa je ...

    Většinou se posílá několik dotazů na několik serverů a co dojde, to se použije. DNS serveru je úplně šumák, jestli to došlo. Kdyžtak se zeptá znovu...

    Spojení TCP na příkladu SSH:
    1) A:X -> B:22: Prosím o spojení na A:X
    2) B:Y -> A:X: Nabízím komunikaci na portu Y
    3) A:X -> B:Y: Ok, můžeme komunikovat
    A v téhle chvíli máme obousměrný tunel A:X <> B:Y se zaručeným pořadím dat a zaručeným doručením, pokud není přerušená linka.


    No a teď něco k DDoS. Princip je zahlcení linky oběti. Pokud má 10Gbps uplink, pošlu jí 30Gbps a není tam kapacita pro zpracování legitimního provozu. Abych poslal 30Gbps, musím mít zdroj dat s minimálně 30Gbps. To má málo kdo, takže se používá zesílení přes některý služby (NTP, DNS, ICMP,...). Probíhá to takhle (C je oběť):

    AC:X->B:Y: Pošli odpověď na ... // A změní svou IP adresu v paketu na IP adresu oběti
    B:Y->C:X: Odpověď delší než dotaz

    Celkem triviální záležitost a stačí, když ISP nekontroluje odchozí IP adresy, že patří do jeho rozsahu.


    A teď si představme, že se někdo rozhodne po UDP přenášet balíčky souborů na jednu UDP žádost:
    AC:X->B:443: Pošli stránku ..., do potvrzení smí odejít 10MB
    B:Y->C:X: Stream až 10MB

    Při žádosti velikosti řekněme 5kB včetně klíčů pro šifrování (který si můžu vymyslet, server mě nezná) a podpisu (to samý, ví jenom IP adresu, ale ne veřejný klíč) získám až 10MB z jednoho stroje.
    Když bude mít průměrný server k dispozici 20Mbps na odbavení dotazu a dá těch 10MB (cca 80Mb) na jeden dotaz, mám ten tok na 0,4s a na saturování 10Gbps linky stačí 10G/200M = 500 dotazů.
    500x5kB dotaz = 2,5MB. Za sekundu to musím udělat 2.5x. To znamená, že na dotazy z toku 6.25MB/s ~ 50Mb/s takhle vyrobím DDoS 10Gb/s. To se opravdu vyplatí vyhodit úvodní handshake, že...

    <ironie>Ještě že 50mbps+ uplink nikdo nemá doma, dokonce ani ti s gigovou FTTH. </ironie>