如何通过设置注册表值实现签名策略

使用可选的注册表值可以管理组织用于加载签名包和未签名包的策略。如果使用此注册表值,则必须在将运行 Integration Services 包以及将强制实施该策略的每台计算机上创建此注册表值。设置该注册表值后,Integration Services 将在加载包之前检查或验证签名。

本主题中的此过程将介绍如何将可选的 BlockedSignatureStates DWORD 值添加到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS 注册表项中。BlockedSignatureStates 中的数据值决定当包具有不可信签名、具有无效签名或未签名时是否阻止该包。对于用来进行包签名的签名的状态,BlockedSignatureStates 注册表值使用下列定义:

  • “有效签名”是一个可以成功读取的签名。

  • “无效签名”是一个解密校验和(由私钥加密的包代码的单向哈希)与在加载 Integration Services 包的过程中计算的解密校验和不相符的签名。

  • “可信签名”是一个使用由受信任的根证书颁发机构签名的数字证书创建的签名。该设置不要求签名者出现在可信发布服务器的用户列表中。

  • “不可信签名”是一个不能验证为由受信任的根证书颁发机构颁发的签名,或不是最新版本的签名。

下表列出了 DWORD 数据的有效值及其相关策略。

说明

0

无管理限制。

1

阻止无效签名。

该设置不阻止未签名的包。

2

阻止无效签名和不可信签名。

该设置不阻止未签名的包,但会阻止自我生成的签名。

3

阻止无效签名、不可信签名以及未签名的包

该设置也阻止自我生成的签名。

注意注意

建议将 BlockedSignatureStates 设置为 3。该设置提供针对未签名包或者无效或不可信签名的最强保护功能。不过,建议的设置并非适用于所有情况。有关如何进行数字资产签名的详细信息,请参阅 MSDN Library 中的主题“Introduction to Code Signing(代码签名简介)”。

实现包的签名策略

  1. 在**“开始”菜单上,单击“运行”**。

  2. 在“运行”对话框中,键入 regedit,然后单击**“确定”**。

  3. 找到注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS。

  4. 右键单击 MSDTS,指向**“新建”,然后单击“DWORD 值”**。

  5. 将新值的名称更新为 BlockedSignatureStates。

  6. 右键单击 BlockedSignatureStates,再单击**“修改”**。

  7. 在**“编辑 DWORD 值”**对话框中,键入值 0、1、2 或 3。

  8. 单击**“确定”**。

  9. 在**“文件”菜单中,单击“退出”**。