Если между программой A и B TCP установлено TCP-соединение, и его IP-адрес / порт источника и IP-адрес / порт назначения известны злоумышленнику, теперь злоумышленник хочет отправить пакет сброса TCP на A, чтобы завершить TCP-соединение.
Теперь давайте предположим, что для A его стек TCP только что отправил пакет TCP Ack с порядковым номером 1000 и номером подтверждения 5000.
Существуют ли какие-либо требования к порядковому номеру и номеру подтверждения в пакете сброса?
Если пакет Reset использует seq: 5000 and ack:1000
, он определенно будет принят стеком TCP для A, а соединение TCP завершено на A.
Как насчет следующих комбинаций?
1 seq: 5000, ack_seq: 0
2 seq: 5000, ack_seq: 999 ( this ack_seq is obsolete, namely <1000)
3 seq: 5000, ack_seq: 1002 ( this ack_seq is proactive, namely >1000)
4 seq: 5001, ack_seq: 1000 ( the seq is not consistent)
5 seq: 5001, ack_seq: 999 ( both seq and ack_seq are not consistent)
Мне кажется, что 1
нормально для того, чтобы убить соединение?