崩溃转储上的明文密码保护[关闭]

Posted

技术标签:

【中文标题】崩溃转储上的明文密码保护[关闭]【英文标题】:Plaintext password protection on crash dump [closed] 【发布时间】:2014-10-15 06:19:31 【问题描述】:

我们需要使用 LogonUserNetUseAdd 等 API 指定纯文本密码。我们可以通过在内存中加密来保护密码,并在调用函数之前分配一个明文密码(在LogonUser的情况下输入lpszPassword参数,或者在NetUseAdd的情况下输入USE_INFO_2::ui2_username)。

我的问题是如何保护明文密码免受外部进程的影响,尤其是当该进程可能崩溃并产生内存转储时。

应该是这样的:

    保护这个内存区域 调用需要明文的安全函数 密码 解除内存区域保护 清理内存区域

【问题讨论】:

【参考方案1】:

您需要保护内存转储本身。这就是为什么有些系统将它们完全禁用,有些系统将它们写入一个普通人无法读取的特殊位置,等等。

【讨论】:

可能无法保护内存转储,尤其是在客户端计算机上。有什么特别的地方,怎么让它不可读?我看到有关如何“攻击”的参考资料,但没有看到如何“保护”它的参考资料。 您不担心恶意用户可以拦截 LogonUser() 并且您会将凭据直接传递给他们吗?我假设您是在谈论在不受信任的客户端计算机上运行您的软件? 这就是我所关心的。如果不是正在运行的进程,但可能会以某种方式获取转储。就像 SSP(Kerberos 等)一样,它适用于密钥,为什么这些 API 不采用加密缓冲区,而不是普通密码? 如果即使在受保护的环境中,启动了一些管理员级别的进程怎么办?该过程可能会拦截 - 必须有技术来避免它(如果不是完全)。 我知道 Kerberos 是如何工作的,Windows 有 NTLM 等,但我不知道这如何适用于您的具体情况。从更高级别开始,稍微备份一下,然后发布一个新问题(请在此处链接),询问如何实现更高级别的安全身份验证目标,这可能是一个合理的想法。

以上是关于崩溃转储上的明文密码保护[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

交换机明文密文密码配置与关闭

怎么把网页上记录的密码 明文显示出来?

Android 系统开发常用的目录(崩溃日志/wifi密码等)

INUX下抓取当前登录用户登录密码的工具:mimipenguin

添加电子邮件和密码验证时应用程序崩溃[关闭]

Linux 上的核心转储文件:如何获取打开文件的信息?