Кратко
- RFC 5961 немедленно принимает RST установленного соединения только при точном равенстве номера
RCV.NXT; RST внутри окна без точного совпадения получает Challenge ACK и отбрасывается. - Тот же способ защищает синхронизированное состояние от слепого SYN, необязательная проверка ACK снижает вероятность внедрения данных, а регулируемый предел ограничивает цену ответов.
Старая слабость состояла не в отсутствии номеров, а во власти всего окна приёма. Атакующий вне пути мог рассылать поддельные RST с шагом предполагаемого окна, пока один не прервал соединение.
RFC 5961 сужает полномочие. RST вне окна молча отбрасывается. Немедленно закрывает соединение только точное совпадение со следующим ожидаемым байтом. RST внутри окна, но без совпадения, вызывает <SEQ=SND.NXT><ACK=RCV.NXT><CTL=ACK>; исходный сегмент удаляется, соединение продолжается.
Запрос раскрывает состояние стороны
ACK не аутентифицирует, а спрашивает о состоянии. Законная сторона, действительно удалившая соединение, больше не имеет блока управления и отвечает новым RST, выведенным из номера подтверждения. Второй сброс совпадает точно. Слепой атакующий обычно не видит вопроса.
SYN в синхронизированном состоянии также получает Challenge ACK независимо от номера и отбрасывается. Реально перезапущенная сторона подтверждает закрытие допустимым RST. В SYN-SENT RST принимается лишь когда ACK подтверждает SYN. Остаётся редкий старый крайний случай повторного четырёхкортежа и точного RCV.NXT-1.
Для внедрения данных нужны два совпадения
Необязательная защита ограничивает ACK диапазоном от SND.UNA-MAX.SND.WND до SND.NXT. MAX.SND.WND хранит наибольшее окно, объявленное другой стороной, включая масштабирование. Это снижает риск внедрения данных и FIN, но не устраняет его. Защиты RST и SYN имеют силу SHOULD, данных — MAY.
Каждый запрос расходует процессор и канал. RFC рекомендует регулируемый предел. Десять ACK за пять секунд — эмпирический пример, не универсальная норма. Малый предел бережёт ресурсы, но задерживает очистку старого состояния; большой меняет компромисс.
Несовместимый middlebox может повторять неверный RST и поддерживать обмен RST/ACK. Ограничитель сдерживает цену. Один поддельный сегмент отражает один ACK без усиления, потому что каждый ответ требует пакета атакующего.
Единственный источник — RFC 5961, опубликованный в Standards Track в августе 2010 года. Он усложняет атаки вне пути, но не аутентифицирует TCP, не останавливает наблюдающего путь и не закрывает поддельный ICMP. Полную границу дают IPsec AH или ESP. Challenge ACK показывает недостаток полномочия, а не злой умысел.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
