2008-08-27 41 views
2

我有一个项目为Java中的一个类建立投票桌面应用程序。虽然安全不是项目的重点,但我希望尽可能现实。将安全性集成到Java应用程序中的一些主要工具是什么?投票应用安全

编辑:我不是主要担心物理安全,我们只是构建一个不是整个系统的应用程序。我想确保选票被正确记录,不能被其他人改变或阅读。

回答

3

这实际上取决于您希望整合哪种安全性。你是否想要安全性来确保用户没有运行任何调试器或者在应用程序中翻转位来更改投票?你是否想确保用户不安装日志记录软件来跟踪谁投谁?你想确保应该投票的人实际上是投票吗?安全是一个非常广泛的主题,如果不知道你在找什么,就很难给出答案。

+0

看到新的问题编辑 – 2010-03-15 17:57:12

1

如果你正在寻找这个东西的“更高层次”的解释(如在,而不是代码),Applied Cryptography有很多相关的例子(我相信一个关于“安全选举”的部分涵盖了一些投票策略)。

0

我相信物理安全对投票间系统更重要,而不是你知道的,代码安全。
这些机器本身不应该连接到任何类型的公共网络,特别是不能连接到互联网。但具有良好的物理安全性以防止任何形式的物理篡改是非常重要的。

0

我不是主要担心物理安全,我们只是构建一个不是整个系统的应用程序。我想确保选票被正确记录,不能被其他人改变或阅读。

2

我公司最近做的应用程序安全性非常强。也许它有帮助。

我们的应用程序

它是Java EE的应用程序。

架构是以下:

  1. 客户端计算机具有加密包。
  2. 脏serwer存储加密用户输入和输出
  3. 清洁serwer不是从存储密钥和解密的数据外入店。

用户发出加密卡(您可能需要使用不太安全的东西 - 比如PGP),并通过JSP页面都需要输入所有与他们进行加密。页面包含连接到cryographyography应用程序的组件,要求用户输入密钥密码,用服务器公钥对其进行加密并用用户私钥签名,然后提交。

数据被存储在外部服务器,然后转移到内部服务器,在那里它被解密和签名被验证,则数据被处理和重新加密,然后它被发送到脏服务器,然后用户可以得到它。

所以,即使有人破解了脏服务器(即使拿到数据库),他也会得到大多数无用的数据。

您的应用程序

我会送加密和签名票服务器。它将断言两两件事:

  1. 你知道是谁发来的投票
  2. 西港岛线没有人能够知道什么投票是。

然后从服务器获取数据,断言大家一次票数最多一次票数,瞧!

0

你的问题是,你需要可靠地识别用户,这样就可以防止他们重新投票并访问对方的选票。

这与任何需要身份验证(以及可能授权)的其他桌面应用程序没有任何区别。如果你的选民,与用户帐户在网络上一个封闭的群体,你可以与目录集成,并要求用户登录。

如果选民不具备网络用户帐户,这是它变得有趣。每个用户仍然需要使用应用程序进行身份验证。你可以事先投票安全地生成与应用程序密码的帐号和发布这一信息。第一次访问应用程序时,您的应用程序可能会要求用户选择密码。

不知道具体情况,很难给出更具体的答案。

0

您知道电子投票是一个未解决的研究问题吗?大规模欺诈应该付出很大的努力。

+0

我是,问题是更多的一般准则/实践。 – 2009-07-08 05:05:48