Assuming there is a powerful adversary who can arbitrarily manipulate the sequence number of each tcp packet, then the following packet-reorder attack should be possible, right?

Assuming the packet the attacker wants to disorder has the tcp sequence number n, he first allows the n+1, n+2, ..., n+m packets to be sent out but modifies the sequence-number fields to use numbers n, n+1, ..., n + m -1. Finally, the attacker uses the sequence number n+m to send the detained packet.

Is the attack still possible when TLS/SSL is used?

1 Answer 1


An attacker who can fake the TCP stream (reorder, erase, duplicate packets, or flip arbitrary bits of payload and fix up the crc) will cause received TLS record messages (chunks of up to 16KB of cleartext, encrypted and MAC'd pr MAC'd and encrypted or AEAD'd) which fail to verify the MAC. The receiving side will discard the last TLS record and close the connection when the MAC fails to verify. This is the most basic protection against active attacker in a secure communication protocol.

Tampering with the cleartext handshake messages is protected by the Finished message which has a MAC of the transcript of the entire handshake - if the handshake was tampered with, the Finished message will be wrong and the other side will close the connection.

Attacks against TLS are much more sophisticated than that. You should read up on them before trying to invent your own.

  • Thanks! I just searched and learned the TLS layer has its own implicit sequence number used for computing MAC, so the attack is infeasible. But without TLS, reordering TCP data packets is feasible (like what I described), right?
    – Infinite
    Jul 1, 2020 at 23:37
  • 1
    An active attacker can simply do full mitm, in effect be a tcp proxy with a buffer and do whatever they want. Cellular networks do it to accelerate traffic to let your phone turn off its radio sooner. Great firewall of China injects packets to cause ddos, called "Great Cannon of China".
    – Z.T.
    Jul 1, 2020 at 23:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .