电子签章功能与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子签章系统可实现在电子文件(Word,Excel,CAD图纸,PDF,HTML-WEB页面,LotusNotes,TIF传真,XML数据,FORM表单,WPS,GDFTM版式文件等)上实现手写电子签名和加盖电子印章,并可将签章和文件绑定在一起,通过密码验证、签名验证、数字证书确保文档防伪造、防篡改、防抵赖,安全可靠。它具有制章的唯一性、不变造、伪造,签章的真实性,文档完整性、真实性、不可篡改,验章的真实性、有效性。电子签章系统可以通过辨识电子文件签署者的身份,确保文件的真实性、完整性和不可抵赖性。
JSCA电子签章结合成熟的组件技术、PKI技术、图像处理技术以及智能卡技术,按照一系列的标准体系,以电子形式对电子文档签名并加盖签章。
软件采用COM组件技术,将传统印章与电子签名技术完美结合,通过签章可以确认文档来源、确保文档的完整性、防止对文档未经授权的篡改以及确保签名行为的不可否认。
1.电子签章是什么?
在传统的书面信息传递环境中,信息安全的保障为当事人的签字、盖章,电子签章制度则是在虚拟的网络环境中的信息安全保障,电子签章类似传统的“印章”。
从技术上讲,电子签章,泛指所有以电子形式存在,依附在电子文件并与其逻辑关联,可用以辨识电子文件签署者身份,保证文件的完整性,并表示签署者确认电子文件所陈述事实的内容。从广义上讲,电子签章不仅包括我们通常意义上讲的“非对称性密钥加密”,也包括笔迹辨别、指纹识别,以及新近出现的眼虹膜透视辨别、面纹识别、DNA识别等。目前,最成熟的电子签章技术就是“数字签章”,它是以公钥及密钥的“非对称型”密码技术制作的电子签章。我们通常所说的电子签章也是指数字签章。
数字签章是运用一种名为“非对称密码系统”(Asymmetric Cryptography)的技术来对发文者的电子文件作加、解密运算,其目的是使收文者可确定电子文件的发出者是谁、该电子文件在传输中未遭篡改并保证发文者不能否认其发文的行为。有了这个保障,通过网络传播的信息就可以说是真实可信的了。
2.CA认证机构:“刻印章的店”
如果把数字签章比喻为“印章”,那么CA认证机构实际上就是“刻印章的店”。
为了确保用户及他所持有密钥的正确性,公共密钥系统需要一个公正的、值得信赖而且独立的第三方机构充当认证中心,来确认声称拥有公共密钥的人的真正身份,认证机构(Certification Authority,简称CA)遂因此而生。
要确认一个公共密钥,CA首先制作一张“数字证书”,它包含用户身份的部分信息及用户所持有的公共密钥,然后CA利用其本身的密钥为数字证书加上数字签名。CA认证机构功能是产生及保管各人的密钥,以供随时认证,当网络交易发生争议或纠纷时,认证机构作为公正第三方,提供认证资料做为裁决的依据。
如同目前刻公章需要到公安机关备案一样,数字签章的发文者亦需要先向CA登记其公钥,再由CA 签发数字证书。数字证书上所记录的是与私钥相对应的公钥。发文者以数字签章签署于电子文件后,可将电子文件并同数字证书一起传送给收文者,收文者即可利用数字证书上所载的公钥验证数字签章的真实性与文件的完整性,而收文者只要能确认该凭证确实为CA所签发(收文者也可取得CA的公钥以验证CA 数字证书上所签署的数字签章的真实性),便可确信数字证书内的公钥确为凭证所指之人所有。
本文将探讨数字签名、数字证书、强签名程序集、反编译等以及它们在.N ET中的运用(一些概念并不局限于.NET在其它技术、平台中也存在)。
1.数字签名
数字签名又称为公钥数字签名,或者电子签章等,它借助公钥加密技术实现。数字签名技术主要涉及公钥、私钥、非对称加密算法。
1.1公钥与私钥
公钥是公开的钥匙,私钥则是与公钥匹配的严格保护的私有密钥;私钥加密的信息只有公钥可以解开,反之亦然。
在Visual Studio中,可以在项目属性页或者通过强命名工具Sn.exe生成公钥与私钥对,参考创建公钥私钥对。
1.2非对称加密算法
非对称加密算法(也叫公钥加密算法)借助于私钥加密、公钥解密,使用了两个不同的密钥,因此被称为非对称加密;数字签名属于非对称加密算法的一种。比较著名的非对称加密算法是RSA,在.NET中对应的类为RSACryptoServiceProvider类,参看/zh-cn/library/system.security.cryptography.rsacryptoserviceprovider.aspx。数字加密算法包括密码生成算法、密码标记算法、验证算法。NET中的RSACryptoServiceProvider类包含这些相应的方法。
1.3数字签名过程
消息的发送者用一个HASH函数提取出消息的摘要,然后用私钥借助非对称加密算法对消息进行加密,将消息原文与加密后的数字签名同时发送给接受者;消息接受者收到消息原文与数字签名后,首先利用同一HASH函数从消息原文提取消息摘要,再用发送者发布的公钥对数字签名进行解密出发送者的消息摘要,对比消息摘要,如果一致则证明,此消息来自发送者,且内容未经修改。
对于RSA算法,解密与解密分别对应:Encrypt与D ecrypt方法。
1.4数字签名的功能
确定消息确实是由发送方签名并发出来的,因为私钥是私有的,其他人假冒不了发送方的签名。二是数字签名能确定消息的完整性。因为数字签名的特点是它代表了消息的特征,消息如果发生改变,HASH函数得到的消息摘要就会不同,数字签名的值也将发生变化,因而不同的消息将得到不同的数字签名。
2.数字证书
数字证书亦称电子证书,它是在Internet上用来标志和证明网络通信双方身份的数字信息文件。它是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。授权中心的数字签名可以帮助我们从授权中心验证证书是否被更改,即身份信息是否被更改等。简言之它就如同我们的身份证。
数字证书可以保证信息除发送方和接收方外不被其它人窃取;信息在传输过程中不被篡改;发送方能够通过数字证书来确认接收方的身份;发送方对于自己的信息不能抵赖。
数字证书广泛运用于服务器证书,如SSL证书,电子邮件证书,客户端证书等等。