【发布时间】:2013-11-11 19:30:39
【问题描述】:
请不要回复如何/为什么嵌入密码是一个坏主意。我对他们了如指掌,并且我已经查看了这篇帖子 What's the most secure way to embed a password inside Java code?,但没有为我提供答案。
关于我的问题。
我在我的程序中使用 SQL 应用角色。所以最终用户不知道角色名和密码是什么,因为它不适用于他们,如果他们发现角色名和密码是什么实际上是一个安全风险。
我考虑将角色/密码存储在安全的远程服务器中。但随后我必须授予用户访问密码的权限。将密码加密并存储在配置文件中不起作用,因为解密例程将在代码中。
基本上我能想到的一切都只能掩盖密码,但不能保护密码。
【问题讨论】:
-
据我所知,您可以使用 MD5 哈希库对其进行编码,即使他们知道使用 MD5 加密也无法解密,因为他们没有钥匙。万一他们可以访问密钥,恐怕您将无法安全地存储它,因为总会有一个易受攻击的登录名或密钥,它只会掩盖您自己已经提到的对象。
-
除了模糊和限制用户/卷的权限之外没有其他解决方案,以免密码泄露造成灾难性后果。
-
你要求的是不可能的事情。
-
即使您可以在代码中加密密码,用户仍然可以嗅探自己的网络连接。
-
你不能。如果用户可以运行客户端并且客户端可以访问密码,则用户可以访问密码。你可以让它变得晦涩难懂或令人费解,但你无法保护它免受足智多谋的攻击者的攻击。
标签: .net sql-server security encryption