利用CAPICOM 在ASP 中实现数字签名的关键技术
CAPICOM 是由微软公司推出的一个高性能的用于密码方面的组件, 其中包含了实现加密、解密、数字证书、数字签名、签名认证、数字信封等技术对应的对象、属性和方法, 而且这些方法具体的实现对用户是透明的, 用户只需要通过相应的接口的调用就可以实现指定的功能. CAP ICOM 可以在W INDOW S 环境下任何语言中使用, 而且大多数接口都是“脚本安全”的, 这就意味着可以在浏览器网页脚本中安全地使用这些接口所提供的功能.
1) 获取数字证书 在数字签名的实现及验证流程中, 为了证实签名的公钥确实来自声称的签名方, 可以通过数字证书来绑定签名者的身份.数字证书可以通过向任何合法的CA 中心提交申请而获得. 本方案中使用了W indow s2000 下提供的证书管理服务申请获得数字证书, 并使用CAPICOM 提供的Cert if icates 类的Cert if icates.F ind 方法来加载符合搜索条件的数字证书并加载到某个Cert if icate 对象上.
2 ) 生成摘要的实现 CAPICOM 中的HashedData 类提供使用hash 函数生成指定字符串的摘要的功能. 该类的HashedData. Hash (p ) 方法使用Algo rithm 属性中指定的算法标识产生p字符串的摘要, 并将结果存放于V alue 属性中.
3 ) 数字签名的实现 CAPICOM 提供的SignedData 类封装了实现数字签名的SignedData. Sign 方法. 该方法的第一个参数为一个Signer对象, 该Signer 对象能够获得其Signer. Certificate 属性指定的数字证书对应的密钥, SignedData. Sign 方法将会使用该密钥对SignedData. Content 属性中指定的内容进行数字签名, 然后返回经过加密后的数字签名.
4 ) 签名验证的实现 签名的认证使用CAPICOM 中的SignedData 对象的SignedData.Verify 方法实现. 该方法首先验证由第一个参数指定的数字签名是否有效, 如果有效, 则调出签名者的公钥对数字签名进行解密, 获得报文摘要, 然后在使用签名者的Hash 值对SignedData. Content 属性中指定的值计算生成摘要, 最后比较两个摘要, 如果相同, 则返回验证成功值, 反之, 验证失败.
南京B2C事业网为南京网站制作公司公益提供南京网站软件设计中的各种技术咨询。
