pcherna
2 days ago
In the middle of playing my very first round with one of my adult children, the other adult child audio recorded part of our game and started replaying their recording to disrupt the rest of our game. All in good fun and we laughed pretty hard. Also, we had fun with the game.
simonw
2 days ago
That's excellent!
I don't think that could be prevented, either. You could have the protocol exchange signing keys at the start and sign every message, but it's stretching the amount you can do with available audio bandwidth already so I expect that either wouldn't work or would become unbearably slow.
dotancohen
2 days ago
Signing the transmission isn't enough to prevent a replay attack.
simonw
2 days ago
It should be if each message includes an incrementing counter and the clients keep track of which counters they have already seen.
kadoban
a day ago
You don't actually need the signing if you have the counters (if your ~only goal is to prevent replay attacks of that form).
dotancohen
2 days ago
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.
serf
a day ago
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.