两部分代码一起发送的在线投票

信息安全 电子投票
2021-08-17 14:08:07

我加入的许多社团允许在线投票为其年度股东大会(选举成员、批准会议记录等)。在这些投票中,所有成员都会发送一个两部分代码 - 但是这两个代码总是在电子邮件或信件中一起发送。

在我看来,代码的两部分理想情况下应该通过不同的渠道发送(例如,一部分通过电子邮件,一部分通过信函)或至少在不同的时间(例如,在不同日期发送的两封电子邮件)。我意识到这会使选民的事情变得更加困难(丢失一个代码,在他们投票之前必须等待第二个代码),但是一起发送两个代码有什么意义呢?为什么不只发布一个要使用的代码?

我收到的代码通常是以下格式:

Code 1: 12345678
Code 2: abcd
2个回答

我也收到过类似的关于各种选举的两码邮件。我也有同样的担忧,所以我更仔细地观察了它们。

令我印象深刻的一件事是,同一家公司举办了数千次选举。因此,这里发生的不仅仅是简单的选举。

为了保持一致性和品牌化,投票网站是为组织定制的,所以每年我的 Coop 都会登录同一个 URL,比如https://my.coop.election.example.com/并投票。据我所知,URL 只是确定了显示的 CSS,以便显示正确的徽标和颜色;但在完全相同的网站下为他们所有的客户和选举服务。

从这个意义上说,第一个代码确定了具体的选举(“2018 My Coop Board of Trustees”、“2017 My Coop Board of Trustees”等),而另一个将我确定为选民是有道理的。如果为真,这不是双重身份验证,它只是一对标识符。

我记得它们被命名为通用名称,例如“代码 1”和“代码 2”,而不是“选举编号”和“选民 ID”。这可能是为了让事情变得晦涩难懂;防止人们试图在其他选举中投票或试图猜测他人的选民 ID。

他们能否以不同的方式执行此操作,例如将两者结合并发出一个巨大的 SHA-1 哈希数字供我输入?是的,但是输入一个很长的数字的可用性是很困难的,他们试图同时保持可用性和完整性——两个较短的数字更容易输入,并且可能为他们解决了他们的问题。

我认为您的问题是:“如果他们一次发送 2 个代码,为什么不只发送一个代码?”

如果我要发布 2 代码身份验证,我会在假设一次传输受到损害但因此对只有一半代码的人无用的情况下这样做。通过相同的方式同时发送它们,它们否定了该安全措施。听起来他们几乎是在尝试进行廉价的 2 因素身份验证。但这并不是真正的第二个因素——它是对一个因素的第二次使用。

TBH 我真的想不出这样做的理由。这是两全其美的——既麻烦又不安全。