使用证书对包进行签名

更新日期: 2006 年 12 月 12 日

SQL Server 2005 Integration Services (SSIS) 包可以用证书进行签名,并被配置为需要运行时环境在加载包之前检查该签名。包的属性 CheckSignatureOnLoadCertificateObject 指示是否必须检查证书,并指定对包进行签名时所用的证书。必须为代码签名启用对包进行签名时所用的证书。

Integration Services 提供注册表值,供用于管理某个组织加载签名包和未签名包的策略。注册表值还可以管理签名包的不可信签名。对于用来进行包签名的签名的状态,BlockedSignatureStates 注册表值使用下列定义:

  • “有效签名”**是一个可以成功读取的签名。
  • “无效签名”**是一个解密校验和(由私钥加密的包代码的单向哈希)与在加载 Integration Services 包的过程中计算的解密校验和不相符的签名。
  • “可信签名”**是一个使用由受信任的根证书颁发机构签名的数字证书创建的签名。该设置不要求签名者出现在可信发布服务器的用户列表中。
  • “不可信签名”**是一个不能验证为由受信任的根证书颁发机构颁发的签名,或不是最新版本的签名。

若要使用注册表值在包未签名、具有无效或不可信签名时阻止加载包,必须将 BlockedSignatureStates DWORD 值添加到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTS 注册表项中并指定值 0、1、2 或 3。

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

说明

0

无管理限制。

1

阻止无效签名。

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

2

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

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

3

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

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

如果 BlockedSignatureStates 注册表值的类型为 DWORD,并且注册表值不是 0、1、2 或 3,则 Integration Services 会将注册表值视为 3。如果 BlockedSignatureStates 未设置为 DWORD,则 Integration Services 会将注册表值视为具有 0 值的 DWORD。

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

签署包

请参阅

概念

Integration Services 包
Integration Services 的安全注意事项

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2006 年 12 月 12 日

新增内容:
  • 添加了有关 BlockedSignatureStates 注册表值的建议。
  • 添加了指向有关签名详细信息的链接。

2006 年 4 月 14 日

新增内容:
  • 添加了有关 BlockedSignatureStates 注册表值的信息。
  • 添加了指向操作指南主题的链接,该主题中提供了实现 BlockedSignatureStates 的过程。