2

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

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

它应该是这样的:

  1. 保护这个内存区域
  2. 调用需要明文密码的安全函数
  3. 消除内存区域保护
  4. 清理内存区
4

1 回答 1

1

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

于 2014-10-15T06:35:58.817 回答