【问题标题】:How to secure Sql App Role password [closed]如何保护 Sql App 角色密码 [关闭]
【发布时间】: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


【解决方案1】:

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

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

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

这样,实际密码永远不会出现在代码中,只是获取密码的方法。您甚至可以将myByteArray 单独保存在一个文件中,这样它就不会出现在代码中。

正如@Aurand 指出的那样,您可以尽一切努力掩盖真实密码。有权访问代码的攻击者将能够找到它。

【讨论】:

    猜你喜欢
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 2013-07-10
    • 2021-09-27
    • 2014-05-11
    • 2021-04-06
    • 1970-01-01
    相关资源
    最近更新 更多