-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consider improvements to logic for maintaining voter privacy by obfuscating the order in which ballots are cast #3977
Comments
Continuing the discussion in #3972 about the idea of pre-creating the files:
If the file system lets you set the file modification time, after writing the file contents to the pre-existing files, you could manually set the last-modified time of those files equal to the creation times. Then, neither the creation times nor the last-modified times would reveal anything about the order in which the files were written to. This approach would then let you have "perfect privacy" (to use @benadida's phrase) in the sense of a uniform distribution over all orderings. |
That makes sense @cjerdonek! I quickly tried updating a file's modification time and ran into one snag, namely the distinction between a file's "Modify" time and "Change" time. While the "Modify" time is easy to update, "Change" time is turning out to be trickier. Create a file
Write to that file
Try resetting the file's modification time(s)
Still worth further investigation! But wanted to document this hurdle |
Thanks for trying that out, @arsalansufi! One question that comes to mind: what happens if the "Change" time starts out in the future? Does it remain the same, or does it get updated to an earlier time? |
^ I'm finding that the "Change" time is always updated to the current system time. So even if the "Change" time starts off in the future (I accomplished this by temporarily modifying my system time to be in the future), it gets set to an earlier time if the system time at the time of the update is earlier. |
So it looks like pre-creating enough files would likely let you do away with more expensive operations like copying directories of past CVR's, etc, but you would still need to do some lightweight operation on previous files to update the "Change" time (e.g. using |
Agreed - this combo seems like a viable direction! |
We have covered this with a copying strategy - see the TDP for details: https://docs.voting.works/vxsuite-tdp-v4/system-security-auditing-and-logging/system-security-architecture/artifact-authentication/preserving-voter-privacy. |
@adghayes This issue was originally about refinements to the current approach (as documented in the TDP), to shuffle even better, i.e., with an even more random distribution. But now that we've seen our current approach in action, I think that it strikes the right balance between preserving privacy and not overcomplicating. So I'm good to close! |
See the discussion at the end of #3972
The text was updated successfully, but these errors were encountered: