|
|
|
|
|
by DecoPerson
1425 days ago
|
|
If the CRDT part is done correctly, then replaying a message that sets a key will not change anything, ever. If the message is: Key: Foo Reference CRDT node ID: 7654321 (the last node that the clients knows of that updated the value of ‘Foo’) Operation: Update Value: Bar The ID of this new node: 1122112211 (Omitted for simplicity: Timestamps, hashes, …) Replaying that message won’t do anything if the target already knows about the existence of that new node. If the target didn’t know about the node, then I guess you’re helping them sync their own data? Maybe they owe you a thanks? If you knew what each encrypted message contained, you might be able to do some split-state shenanigans; for example: replay the message that sets a “PasswordAuthEnabled” key to “Yes” but deliberately omit the message that changes the “Password” key from its default of “password” to a genuine password. It’s very hard to imagine an actual situation like this occurring, but I guess that’s what makes crypto (and designing secure systems in general) so damn tricky. That and the math. And end users. And… |
|