简介

本文讨论 FIPS 140-2 说明以及如何在 FIPS 140-2 兼容的模式下使用 Microsoft SQL Server 2012。注意

  • 此处定义了 "FIPS 140-2 合规"、"FIPS 140-2 合规性" 和 "FIPS 140-2 兼容模式",以供使用和清晰度。 这些条款无法识别或定义为政府条款。 美国和加拿大政府根据 FIPS 140-2 之类的标准识别加密模块的验证,而不是使用指定的或一致的方式使用加密模块。 在本文中,我们将使用 "FIPS 140-2 兼容"、"FIPS 140-2 合规性" 和 "FIPS 140-2 兼容模式",这一点意义在于 SQL Server 2012 在所有实例中都仅使用 FIPS 140-2 验证的算法和哈希函数实例,在这些数据中导入或导出的是 SQL Server 2012 中的加密或哈希数据。 此外,这意味着 SQL Server 2012 将以安全的方式管理密钥,就像 FIPS 140-2 验证的加密模块需要一样。 密钥管理过程还包括密钥生成和密钥存储。

  • 我们在此处使用 "已验证",表示算法实例是 FIPS 140-2 验证的,或者操作系统包含 FIPS 140-2 验证的算法实例。

更多信息

什么是 FIPS?

联邦信息处理标准(FIPS)是由以下两个政府机构开发的标准:

  • 美国国家标准和技术协会(NIST)

  • 加拿大的通信安全设施(CSE)

在美国和加拿大使用联邦政府运营的 IT 系统中,建议或规定使用 FIPS 标准。

什么是 FIPS 140-2?

FIPS 140-2 是一个标题为 "加密模块的安全要求" 的声明。 它指定可以使用的加密算法和可使用的哈希算法以及如何生成和管理加密密钥。 某些硬件、软件和进程可以是 FIPS 140-2 认证的,并且某些硬件、软件和进程可以是 FIPS 140-2 兼容的。

FIPS 140-2 兼容和 FIPS 140-2 认证有何区别?

可以按照兼容 FIPS 140-2 的方式配置和运行 SQL Server 2012。 若要以这种方式配置 SQL Server 2012,SQL Server 2012 必须在 FIPS 140-2 已验证的操作系统上运行,或者在提供经过认证的加密模块的操作系统上运行。 合规性和认证的区别不微妙。 可以验证算法。 在 FIPS 140-2 中使用已批准列表的算法不足。 相反,你必须使用经过认证的此类算法的实例。 认证要求由政府认可的评估实验室进行测试和验证。 Windows Server 2003、Windows XP 和 Windows Server 2008 包含允许的算法,其中每个操作系统的实例均经过评估实验室测试和政府认证。

哪些应用程序产品可以兼容 FIPS 140-2?

在已验证版本的 Windows 上运行的所有应用程序都可以通过仅使用已批准的算法的认证实例,并通过使用 Windows 功能实现密钥生成和密钥管理要求来满足密钥生成和密钥管理要求,方法是使用 Windows 功能实现密钥生成和密钥管理,或者遵循应用程序中的密钥生成和密钥管理要求。 请注意,如果启用了不符合的算法或进程,则可能存在 FIPS 兼容的应用程序中的区域。 例如,允许在系统中保留的某些内部进程和某些外部数据,这些外部数据将由认证的算法实例进一步加密。

SQL Server 2012 是否始终符合 FIPS 140-2?

否。 SQL Server 2012 可以是 FIPS 140-2 兼容的,因为它可以配置并运行,这种方式使它仅使用 FIPS 140-2 认证的算法实例,这些实例通过使用 CryptoAPI 进行加密或在需要 FIPS 140-2 合规性的每个实例中通过哈希处理调用。

如何将 SQL Server 2012 配置为 FIPS 140-2 兼容?

  • 操作系统要求: 必须在基于以下操作系统之一的服务器上安装 SQL Server 2012:

    • Windows Server 2003

    • Windows XP

    • Windows Server 2008

  • Windows 系统管理要求: 在启动 SQL Server 2012 之前,必须先设置 FIPS 模式。 SQL Server 在启动时读取设置。 若要设置 FIPS 模式,请按照下列步骤操作:

    1. 以 Windows 系统管理员身份登录到 Windows。

    2. 单击“开始”。

    3. 单击 "控制面板"

    4. 单击 " 管理工具"。

    5. 单击 " 本地安全策略"。 将显示 " 本地安全设置 " 窗口。

    6. 在导航窗格中,单击 " 本地策略",然后单击 " 安全选项"。

    7. 在右侧窗格中,双击 "系统加密:使用 FIPS 兼容的算法进行加密、哈希和签名

    8. 在出现的对话框中,单击 " 已启用",然后单击 " 应用"。

    9. 单击“确定”。

    10. 关闭 " 本地安全设置 " 窗口。

  • SQL Server 管理员要求

    • 当 SQL Server 服务检测到在启动时启用 FIPS 模式时,SQL Server 会在 SQL Server 错误日志中记录以下消息:

      Service Broker 传输在 FIPS 合规模式下运行。此外,你可能会发现 Windows 事件日志中记录了以下消息:

      你可以通过查找这些消息来验证服务器是否在 FIPS 模式下运行。

    • 对于对话框安全性(在服务之间),如果启用了 FIPS 模式,则加密使用 AES 认证的 AES 实例。 如果禁用了 FIPS 模式,加密将使用 RC4。

    • 在 FIPS 模式下配置 service broker 终结点时,管理员必须为 service broker 指定 "AES"。 如果终结点配置为 RC4,SQL Server 将生成错误。 因此,传输层将不会启动。

在 FIPS 140-2 兼容模式下如何运行 SQL Server 2012?

  • 在 Windows 中启用 FIPS 模式后,在用户不能选择是否加密/哈希以及如何完成的所有区域中,SQL Server 2012 将在遵从 FIPS 140-2 时执行。 (SQL Server 2012 将在 Windows 中使用 CryptoAPI,并且将仅使用经过认证的算法实例。)

  • 在 Windows 中启用 FIPS 模式后,在用户可选择是否使用加密的所有区域中,SQL Server 2012 将仅启用 FIPS 140-2 兼容的加密,或者不会启用任何加密。

  • 适用于软件开发人员的重要信息在开发人员或用户编写自己的用于加密或哈希的代码的所有区域中,必须指示它们仅使用 CryptoAPI (因此仅适用于经过验证的实例),并且仅指定 FIPS 140-2 允许的算法。 尤其是,它们必须仅为加密而指定三重 DES (3DES)或 AES,并仅为 SHA-1 指定哈希。

在 FIPS 140-2 兼容模式下运行 SQL Server 2012 有何影响?

  • 如果进程不是以 FIPS 140-2 兼容的方式运行,则使用较强的加密可能会对这些进程的性能产生少许影响。

  • 对 SSIS 的加密选择(UseEncryption = True)将生成一条错误消息,指出可用加密与 FIPS 合规性不兼容,并且不被允许。 换句话说,不执行邮件进程的加密。

  • 与旧版 DTS 一起使用加密不符合 FIPS 140-2。 请注意,对于 DTS,不会检查 Windows 中的 FIPS 模式。 因此,用户有责任选择 "无加密" 以保持合规。

  • 由于大多数 SQL Server 2012 加密和哈希进程都已符合 FIPS 140-2,因此在完全合规的情况下执行(即,在 Windows 开启的 FIPS 模式下)将对产品的使用或性能几乎没有影响。

在哪里可以了解有关 FIPS 140-2 的详细信息?

有关 FIPS 140-2 标准以及如何下载它的详细信息,请转到以下 NIST 网站:

http://csrc.nist.gov/cryptval/140-2.htmMicrosoft 提供了第三方联系信息,以便你寻求技术支持。 该联系信息如有更改,恕不另行通知。 Microsoft 不保证此第三方联系信息的准确性。

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×