Телекоммуникационные технологии.Сети TCP-IP


Десинхронизация TCP-соединения


Злоумышленник Х, находящийся в одном сегменте сети с узлами А и В или на пути между А и В, может произвести десинхронизацию TCP-соединения между А и В для установления полного контроля над соединением, то есть, злоумышленник получит возможность действовать как от имени А, так и от имени В. Для обозначения имперсонации, выполняемой таким методом, в англоязычной литературе используется термин TCP hijacking. Впервые эта атака была описана в [].

Определим, что такое десинхронизация TCP-соединения. При установленном соединении каждый из узлов А и В знает, октеты с какими номерами может прислать ему собеседник в данный момент: если последнее подтверждение, высланное узлом А, было ACKAB и при этом узел А объявил окно WAB, то А ожидает от В октетов с номерами SNBA, попадающими в объявленное окно, то есть:

ACKAB <= SNBA <= ACKAB + WAB

Аналогично в узле В ожидается от А:

ACKBA <= SNAB <= ACKBA + WBA

Если, например, узел А по какой-то причине получает от В сегмент с номером SNBA, не попадающим в окно, то этот сегмент уничтожается, а в ответ А отправляет в В сегмент с SNAB, ACKAB, WAB, чтобы указать узлу В, какие именно октеты ожидает получить А. Отметим, что скорее всего этот сегмент не содержит данных, но номер SNAB в этом сегменте тем не менее должен быть указан, где SNAB — номер следующего октета данных, который А когда-либо вышлет в В.

Предположим, злоумышленнику каким-то образом удалось сбить показатели счетчиков узлов А и (или) В так, что вышеприведенные неравенства больше не выполняются (как это можно сделать, мы обсудим ниже). Далее мы будем использовать обозначения вида SNAB(B), что означает «приемлемый SNAB с точки зрения В».

Теперь, если В посылает в А сегмент с неким номером SNBA(B), адекватным с точки зрения В, но уже не попадающим в окно в узле А, то А возвращает узлу В подтверждение со своим значением ACKAB=SNBA(A). Однако в этом же сегменте имеется номер SNAB(A), который теперь уже В рассматривает как не попадающий в свое окно и отправляет в А подтверждение SNBA(B), ACKBA=SNAB(A). Номер SNBA(B), как и раньше, неприемлем для А, и узел А вновь отправляет в В подтверждение, и этот цикл, называемый ACK-шторм, теоретически продолжается до бесконечности, а практически — до тех пор, пока один из ACK-сегментов не потеряется в сети. Чем сильнее шторм, тем больше загрузка сети, тем выше процент потерь, следовательно, тем быстрее шторм прекратится.




- Начало -  - Назад -  - Вперед -



Книжный магазин