如何在桌面应用程序中存储数据库凭据?

时间:2012-12-11 02:19:31

标签: java database storage credentials

场景是这样的:在开发人员的控制之下,有一台桌面Java应用程序在随机计算机上运行。该应用程序连接到安装在同一台计算机上的MySQL服务器。

有没有办法确保数据库登录凭据对本地用户安全?

我可以想象,作为具有客户端和数据库的本地PC的管理员,要求完全安全性可能是徒劳的,因为凭证需要在系统上的某个位置。我想知道在桌面应用程序中使用硬编码的密码是否是最好的选择。我知道这是一个很大的禁忌,但在这样的情况下是否有更好的选择呢?

2 个答案:

答案 0 :(得分:1)

  

有没有办法确保数据库登录凭据对本地用户安全?

简短的回答是否定的。

无论你做什么 1 ,本地用户都可以访问用户名和密码(或任何其他形式的凭证),假设他/她具备技能和动力


1 - 即使trusted platform module方法也不完全安全。 IIRC,有人用电子显微镜成功打破了TPM的安全性。虽然在正常情况下这不是实际的攻击,但另一方面是在TPM上构建一个系统,该系统无法在大多数环境中接受用户对机器的控制。

答案 1 :(得分:1)

您可以将它们保存在对称加密的文件中,并将密钥硬编码到应用程序中。这至少是在能够更改密码和对懒惰的本地修补器进行一些基本保护之间的折衷。