保护Windows应用程序免受密码恢复工具的侵害

本文关键字:工具 恢复 密码 Windows 应用程序 保护 | 更新日期: 2023-09-27 18:10:03

我正在开发一个c#应用程序,其中用户将输入一些信息,如服务器,数据库,用户和密码(密码是隐藏的this.txtPassword.PasswordChar = '*';),如果我使用像BulletsPassView这样的密码恢复工具,它会显示密码,而我知道一些应用程序受此工具(skype, yahoo messenger,…)的保护。

我想知道我必须做些什么来保护我的应用

保护Windows应用程序免受密码恢复工具的侵害

变通方法:引用您链接的站点:

此实用程序适用于大多数密码文本框,但有一些应用程序不将密码存储在子弹后面,以增加其安全性。在这种情况下,BulletsPassView将无法显示密码。

这意味着您可以通过从密码盒中获取实际密码并在每次击键时将其替换为虚拟字符来保护自己。

更好的方法:使用当前的相关技术,而不是使用旧的winforms:

我刚刚用WPF PasswordBox测试过,它没有被BulletsPassView工具检测到/显示。

如果您的计算机受到损害,那么没有任何混淆和技巧(Skype技巧)可以帮助您对抗确定的攻击者-您的应用程序将不得不以明确的形式使用密码(或其他秘密信息)(它可能被散列,加密,无关紧要-最终它将以相同的形式用于身份验证)。现代用户操作系统的设计并不是为了保护您免受好战的管理员或妥协的核心。

我认为你不应该担心在PasswordBox控件中泄露你的密码——如果有人能够在你的机器上做类似的事情,那么他就能够做更糟糕的事情。在这种情况下,任何人都无法有效应对这种威胁。

保护你的密码(或密钥)的唯一真正的方法是…不将其存储在您的应用程序中,只在安全可信的计算机上使用它,时间尽可能短,删除和清除所有信息。

编辑(评论后):

有了这么多现成的工具和漏洞,你不应该低估脚本小子。

如果你想保护Windows.Forms.PasswordBox不受类似于bulletspassview的工具的侵害,那么你应该相应地命名你的问题(如果这是你的目标,那么重新命名它-你的问题将不那么宽泛,并且目标非常明确)

关于PasswordBox的实际保护:

因为我认为BulletsPassView只是通过钩子(如spy++)访问目标窗口,并获得所需的值(spy++钩子内部)。

如果你想要防止BulletsPassView,你可以尝试一些非标准的PasswordBox或使用另一个UI。但我不确定它是否真的能永远解决这个问题。

据我所知,你实际上并没有什么办法来对付钩子。正如我已经说过的,主要的保护是环境,它限制所有不允许的东西,并以最少的特权运行所有东西。你不可能保护你的系统免受一切威胁——创建一些正式的有限威胁模型,并实现处理已识别的威胁所需的功能。

注:我不是很了解dll挂钩-可能有人知道一个方法。
附注:别忘了重新命名问题,以反映你的实际目标和问题。