为什么我可以在Snoop中看到PasswordBox的密码?

时间:2018-03-13 17:37:24

标签: c# wpf passwordbox

我试图了解PasswordBox如何保护从外部应用程序读取密码。而我不明白的是,为什么我有能力使用Snoop读取我的WPF窗口的密码:

enter image description here

我认为这是PasswordBox应该解决的那种漏洞。

1 个答案:

答案 0 :(得分:1)

为了可用 - 在某一点或另一点 - 密码必须在内存中作为明确的字符串和/或必须可以作为明确的字符串进行转换。 SecureString和PasswordBox限制了漏洞的时间。但他们无法摆脱它。它可以执行GC强制攻击收集之类的操作,防止像String itnerning这样的Optimsiations,甚至可以在超出范围时用随机数据覆盖内存。

Passwrod属性是你如何检索所说的裸弦。而snoop显然可以像你的代码那样查询它。

就我个人而言,我认为如果攻击者可以读取你的记忆,你几乎已经失去了安全战。如果你在内存中有一个加密值,那么你也可以拥有密钥。与实际工作的代码一起。所以它不像攻击者无法以同样的方式解密它。任务有点复杂,但就是这样。

内存读取的漏洞是Heartbleed如此巨大的原因。你必须盲目信任RAM。因为如果它受到损害,你无能为力。