aboutsummaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorGravatar Willy Tarreau <w@1wt.eu> 2022-05-02 10:46:13 +0200
committerGravatar Jakub Kicinski <kuba@kernel.org> 2022-05-04 19:22:28 -0700
commit4c2c8f03a5ab7cb04ec64724d7d176d00bcc91e5 (patch)
tree13efa715676a84ef496967f7842f2f1611e597f7 /block
parenttcp: dynamically allocate the perturb table used by source ports (diff)
downloadlinux-4c2c8f03a5ab.tar.gz
linux-4c2c8f03a5ab.tar.bz2
linux-4c2c8f03a5ab.zip
tcp: increase source port perturb table to 2^16
Moshe Kol, Amit Klein, and Yossi Gilad reported being able to accurately identify a client by forcing it to emit only 40 times more connections than there are entries in the table_perturb[] table. The previous two improvements consisting in resalting the secret every 10s and adding randomness to each port selection only slightly improved the situation, and the current value of 2^8 was too small as it's not very difficult to make a client emit 10k connections in less than 10 seconds. Thus we're increasing the perturb table from 2^8 to 2^16 so that the same precision now requires 2.6M connections, which is more difficult in this time frame and harder to hide as a background activity. The impact is that the table now uses 256 kB instead of 1 kB, which could mostly affect devices making frequent outgoing connections. However such components usually target a small set of destinations (load balancers, database clients, perf assessment tools), and in practice only a few entries will be visited, like before. A live test at 1 million connections per second showed no performance difference from the previous value. Reported-by: Moshe Kol <moshe.kol@mail.huji.ac.il> Reported-by: Yossi Gilad <yossi.gilad@mail.huji.ac.il> Reported-by: Amit Klein <aksecurity@gmail.com> Reviewed-by: Eric Dumazet <edumazet@google.com> Signed-off-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'block')
0 files changed, 0 insertions, 0 deletions