使用证书对包进行签名
更新日期: 2006 年 12 月 12 日
SQL Server 2005 Integration Services (SSIS) 包可以用证书进行签名,并被配置为需要运行时环境在加载包之前检查该签名。包的属性 CheckSignatureOnLoad 和 CertificateObject 指示是否必须检查证书,并指定对包进行签名时所用的证书。必须为代码签名启用对包进行签名时所用的证书。
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。
注意: |
---|
建议将 BlockedSignatureStates 设置为 3。该设置提供针对未签名包或者无效或不可信签名的最强保护功能。不过,建议的设置并非适用于所有情况。有关如何进行数字资产签名的详细信息,请参阅 MSDN Library 中的主题“代码签名简介”。 |
签署包
请参阅
概念
Integration Services 包
Integration Services 的安全注意事项
帮助和信息
更改历史记录
发布日期 | 历史记录 |
---|---|
2006 年 12 月 12 日 |
|
2006 年 4 月 14 日 |
|