2013-10-31 144 views
2

请不要回复如何/为什么嵌入密码是一个坏主意。我知道他们的所有信息,我已经阅读过这篇文章What's the most secure way to embed a password inside Java code?,但没有为我提供答案。如何保护Sql应用程序角色密码

对我的问题。

我在我的程序中使用SQL应用程序角色。因此,最终用户不知道角色名称和密码是什么,因为它不适用于他们,如果他们发现角色名称和密码,它实际上是一个安全风险。

我考虑将role/pw存储在安全的远程服务器中。但后来我必须授予用户访问权限的权限。由于解密例程将在代码中,因此将pw加密并存储在配置文件中不起作用。

基本上我能想到的所有东西都只能掩盖但不能保护密码。

+0

据我所知,您可以使用MD5哈希库对其进行编码,即使他们知道它使用MD5进行加密,但它们无法解密,因为它们没有密钥。万一他们可以访问密钥,恐怕你不能安全地存储它,因为总是会有一个易受攻击的登录名或密钥,它们只会掩盖你自己已经提到的对象。 – Voidpaw

+0

除了隐藏和限制用户/卷的特权之外,没有其他解决方案,因此妥协的密码不会是灾难性的。 –

+4

你在问一些不可能的事情。 – CodesInChaos

回答

0

“最”安全​​的方式?我不知道。有办法使它不那么明显。

一个建议是使用XOR程序中的一些无害数据,比如“按任意键继续”。

realPassword <- SHA256(myByteArray XOR getBytes(userMessage001)) 

这样,实际的密码永远不会出现在代码中,只是派生密码的方法。您甚至可以将myByteArray分开保存在一个文件中,以便它永远不会出现在代码中。

正如@Aurand指出的那样,你可以通过它来模糊真实密码。有权访问代码的攻击者将能够找到它。