我想建立一个无法追踪的投票系统,该系统将允许注册用户以某种方式对某些敏感问题进行投票,这将使得在数据库受损的情况下(包括被过度好奇的数据库“妥协”)无法追踪用户的投票行政)。
详细设置:
- 每个用户都已注册,没有完全匿名的投票。
- Sockpuppets、假账户等不在此问题的范围内——这是注册系统的责任。
- 每个注册用户只能投一票(可能是任何东西:简单的是/否或重量或其他)。
- 用户必须能够更改/删除他的投票,直到投票结束。
- 没有必要让用户查看自己的投票,但可以通过与删除/更改相同的方式来完成。
- 即使有人可以访问用户身份验证数据库和投票数据库,他们也不能将每个投票跟踪回用户(从某种意义上说,暴力破解或以其他方式破解整个用户帐户的访问权限并不容易)。
- 系统除了通讯以外的所有部分都是开放的,所以不能有隐藏的钥匙。中间人攻击不在问题范围内,但攻击者可以完全访问源、身份验证和投票数据库。
- 用户很懒惰。他们不需要任何其他投票专用密钥或密码。系统不得要求用户在本地提供或保留任何内容,除了他们已经用于登录的常用登录名/密码/密钥。
- 篡改投票和除程序<->数据库通信和不可追踪性之外的任何安全问题都是更广泛的问题,因此也超出了这个问题的范围。
我有一些解决方案,我会在宽限期后发布我自己的答案。