Самый эффективный способ манипулировать номерами ISN в заголовках TCP

В настоящее время я пытаюсь написать программу, которая сможет создавать стабильное TCP-соединение и иметь полный контроль над номерами ISN. Я писал на C, и мои очень ограниченные знания достигли своего предела, и мне было интересно, есть ли лучший способ сделать это.

Я пробовал создавать заголовки вручную, используя необработанные сокеты для отправки и получения пакетов без вмешательства ядра, что является проблемой.

Итак, независимо от языка, какой, по вашему мнению, самый эффективный и простой способ манипулирования ISN?


person youjustreadthis    schedule 31.08.2012    source источник
comment
О какой операционной системе идет речь? Зачем вообще нужен этот уровень контроля? Короче говоря, что вы на самом деле пытаетесь сделать?   -  person Michael Madsen    schedule 01.09.2012
comment
@MichaelMadsen Ну, я использую Backtrack5, и по той причине, что я прочитал эту статью о скрытых каналах в tcp-соединениях и хотел попробовать предложенный канал. Чисто в качестве хобби, конечно, посмотреть, можно ли это сделать (имеется в виду, смогу ли я это сделать) :)   -  person youjustreadthis    schedule 01.09.2012


Ответы (1)


Ну, ISN генерируется случайным образом, чтобы предотвратить атаку с переадресацией ISN (http://www.thegeekstuff.com/2012/01/tcp-sequence-number-attacks/).

Сетевой стек Linux, используйте функцию tcp_v4_init_sequence для создания ISN (http://lxr.free-electrons.com/source/net/ipv4/tcp_ipv4.c#L101), эта функция вызывает secure_tcp_sequence_number функцию (http://lxr.free-electrons.com/source/net/core/secure_seq.c#L106), чтобы выполнить работа. Взгляните на эту функцию и попробуйте клонировать ее, чтобы использовать ее с вашим кодом из пользовательского пространства.

Если у вас достаточно времени, вы можете просмотреть раздел 3 документа RFC 6528 (http://www.rfc-editor.org/rfc/rfc6528.txt), в нем описан алгоритм создания ISN:

ISN = M + F(localip, localport, remoteip, remoteport, secretkey)

И попробуй реализовать, если хочешь :)

person TOC    schedule 01.09.2012
comment
Спасибо, это очень полезные ссылки. - person youjustreadthis; 01.09.2012
comment
ссылки не работают - person monolith; 10.11.2019
comment
ссылки не работают, по состоянию на апрель 2021 г. можно проверить github.com/torvalds /linux/blob/master/net/core/secure_seq.c - person http8086; 27.04.2021