Slashdot Mirror


Phony TCP Retransmissions Can Hide Secret Messages

Hugh Pickens writes "New Scientist reports that a team of steganographers at the Institute of Telecommunications in Warsaw, Poland have figured out how to send hidden messages using the internet's transmission control protocol (TCP) using a method that might help people in totalitarian regimes avoid censorship. Web, file transfer, email and peer-to-peer networks all use TCP, which ensures that data packets are received securely by making the sender wait until the receiver returns a 'got it' message. If no such acknowledgment arrives (on average 1 in 1000 packets gets lost or corrupted), the sender's computer sends the packet again in a system known as TCP's retransmission mechanism. The new steganographic system, dubbed retransmission steganography (RSTEG), relies on the sender and receiver using software that deliberately asks for retransmission even when email data packets are received successfully (PDF). 'The receiver intentionally signals that a loss has occurred,' says Wojciech Mazurczyk. 'The sender then retransmits the packet but with some secret data inserted in it.' Could a careful eavesdropper spot that RSTEG is being used because the first sent packet is different from the one containing the secret message? As long as the system is not over-used, apparently not, because if a packet is corrupted, the original packet and the retransmitted one will differ from each other anyway, masking the use of RSTEG."

7 of 188 comments (clear)

  1. Real errors? by PhireN · · Score: 5, Interesting

    What happens when one of the packets actually gets corrupted?

    1. Re:Real errors? by evanbd · · Score: 5, Insightful

      Then your stego channel detects an error thanks to its checksumming. And it retransmits. Much like TCP. In fact, your stego channel could just be another layer of TCP.

  2. Re:Might be a little obvious... by Exitar · · Score: 5, Insightful

    They probably have another paper ready "Detecting RSTEG use through resent packets frequency statistical analysis"...

  3. Re:Might be a little obvious... by wjh31 · · Score: 5, Insightful

    no, because you can simulate the normal faliure rate, and so send 1kB of steganographised data per 1MB of real data (on average). While this isnt a particularly high rate, it means that you can send a few kB of text to your friend when it seems you are just sending some photos of your holiday/party/whatever. A few kB of text sounds like a pretty reasonable amound of information to be sending, especially if compressed first.

  4. Re:Does it matter which data you send first? by DontBlameCanada · · Score: 5, Informative

    I believe the procedure will be something like this:

    Msg1: "The next character is part of a secret msg: /" --> Reciever NACK
    Msg2: "The next character is part of a secret msg: ." --> Reciever NACK
    Msg3: "The next character is part of a secret msg: R" --> Reciever NACK
    Msg4: "The next character is part of a secret msg: o" --> Reciever NACK
    Msg5: "The next character is part of a secret msg: x" --> Reciever NACK
    Msg6: "The next character is part of a secret msg: {ascii null}>"

    Secret msg: /.Rox

    It works because each tcp retransmission updates several fields in the tcp header as part of correct operation (check sum etc). So brute force comparison of the previous datagram to the new datagram will always fail. In order to detect this, the eavesdropper would need to strip the headers. That in itself isn't too hard, however since 1:1000 normal packets get a retransmit, the device doing the snooping will be hugely overwhelmed with noise.

    It be like trying to overhear whispered conversations in a huge auditorium with loudspeakers blaring a static hiss (white noise) at high volume.

  5. Even 1 bit per 1 megabyte might be a problem by Etylowy · · Score: 5, Informative

    With the packet size of ~1500 bytes a 1MB send means ~700 packets. With an average of 0.1% packets lost even sending a single bit of information (a single 0 or 1) per 1MB transfered gives you a 150% increase in lost packets
    With dialup and it's default packet size of ~500 bytes combined with much higher packet loss you might be able to sneak in 1-2 bytes per MB without making it possible at all to detect. Considering 56kbps modem upload speed and need for some error/fault correction in the protocol sending an equivalent of SMS (160 characters) would take more than 2 days.

    All that is assuming that someone is looking for that type of transmissions. If not it looks like a very nice method to send very short messages.

  6. Re:Does it matter which data you send first? by DontBlameCanada · · Score: 5, Insightful

    >> you'd get an insanely poor data rate

    The target application is busting through mass censorship by government entities. Even the equivalent throughput of a 300baud modem is better than no connectivity at all. Heck, I bet most of the /. readers over the age of 35 spent a goodly portion of their youth msging each other on local BBs at 1200baud or less --> and we thought it was lightning speed (compared to pen n'paper over snail mail).