Comment by dotancohen

12 hours ago

Signing the transmission isn't enough to prevent a replay attack.

It should be if each message includes an incrementing counter and the clients keep track of which counters they have already seen.

  • You don't actually need the signing if you have the counters (if your ~only goal is to prevent replay attacks of that form).

  • Yes, exactly, signing the transmission is not enough.

    You've just added a nontrivial amount of memory usage as well that will look a lot like a memory leak as it grows.

    • you use a cyclic sequence counter and a rolling replay protection window to avoid overflow with the signature. use an epoch counter for rollovers after as long a period as you can stuff into the value.

      you'll end up being protected from overflow for a practically-forever length of time with fairly few bits as long as the game isn't polling extremely fast.

      it's not foolproof, and it's to thwart a kid, so ehh i'm not that into it.