威胁缓解技术

可以使用多种威胁缓解技术来更好地保护密码。 这些技术是使用以下四种主要技术的一种或多种实现的。

科技 描述
CryptoAPI CryptoAPI 提供了一组函数,可帮助你将加密例程应用于目标实体。 CryptoAPI 可以提供哈希、摘要、加密和解密,以提及其主要功能。 CryptoAPI 还具有其他功能。 若要了解加密和 CryptoAPI,请参阅 加密概要
访问控制列表 访问控制列表(ACL)是适用于对象的安全保护列表。 对象可以是具有安全描述符的文件、进程、事件或其他任何内容。 有关 ACL 的详细信息,请参阅 访问控制列表(ACL)。
数据保护 API 数据保护 API(DPAPI)提供了以下四个函数,可用于加密和解密敏感数据:CryptProtectDataCryptUnprotectDataCryptProtectMemory,以及 CryptUnprotectMemory
存储的用户名和密码 用于处理用户密码和其他凭据的存储功能,例如私钥、更简单、更一致、更安全。 有关此功能的详细信息,请参阅 CredUIPromptForCredentials

 

这些技术在所有作系统上都不可用。 因此,可以改进安全性的程度取决于涉及哪些作系统。 下面是每个作系统中可用的技术。

操作系统 科技
Windows Server 2003 和 Windows XP
  • CryptoAPI
  • 访问控制列表
  • 数据保护 API
  • 存储的用户名和密码
Windows 2000

 

以下威胁缓解技术使用四种技术中的一种或多种。 无法使用需要使用作系统中未包含的技术的技术。

从用户获取密码

允许用户设置密码时,强制使用强密码。 例如,要求密码长度最小,例如 8 个字符或更多。 密码还应包括大写字母、小写字母、数字和其他键盘字符,如美元符号($)、感叹号(!)或大于(>)。

获取密码后,请快速使用它(尽可能少使用代码),然后擦除密码的所有痕迹。 这样可最大程度地减少入侵者“捕获”密码的时间。 此方法的权衡是必须从用户检索密码的频率;但是,应尽可能采用该原则。 有关如何正确获取密码的信息,请参阅 询问用户输入凭据

避免提供“记住我的密码”用户界面选项。 通常,用户需要拥有此选项。 如果必须提供密码,则至少确保密码以安全方式保存。 有关信息,请参阅本主题后面的“存储密码”部分。

限制密码输入尝试。 在一定数量的尝试未成功后,锁定用户一定的时间长度。 (可选)延长每次尝试的响应时间超过最大值。 这项技术旨在击败猜测攻击。

存储密码

切勿以纯文本形式存储密码(未加密)。 加密密码可显著提高其安全性。 有关存储加密密码的信息,请参阅 CryptProtectData。 有关加密内存中的密码的信息,请参阅 CryptProtectMemory。 尽可能少的地方存储密码。 存储密码的位置越多,入侵者可能会发现密码的可能性就越大。 切勿将密码存储在网页或基于 Web 的文件中。 将密码存储在网页或基于 Web 的文件中,可以轻松泄露密码。

加密密码并存储密码后,请使用安全 ACL 来限制对文件的访问。 或者,可以在可移动设备上存储密码和加密密钥。 将密码和加密密钥存储在可移动媒体(如智能卡)上有助于创建更安全的系统。 检索给定会话的密码后,可以删除卡片,从而消除入侵者可以访问该密码的可能性。