| Good point. You could: If notifications/blocking disabled (newbie setting): Send re-keyed ciphertext immediately. Random time later send garbage (automatically discarded by client) If blocking enabled: Send re-keyed garbage immediately. When consumer notices the popup some (random) time later, - and clicks "re-send": send re-keyed ciphertext - and clicks "discard": send re-keyed different garbage. However, note that if a compromised server MITM, they will probably be able to tell the difference between garbage and actual message (because the server provides the bad key, so can decrypt the immediate response message). It's really not trivial. Don't roll your own crypto... :-) |
Random is bad because you need some random distribution and by gathering statistics server can determine if your distribution of delays match. Delay until really clicking the button would be highly individual. That is why I said "when they open the application".