电子签章功能与实现.doc
《电子签章功能与实现.doc》由会员分享,可在线阅读,更多相关《电子签章功能与实现.doc(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、电子签章系统可实现在电子文件(Word,Excel,CAD图纸,PDF,HTML-WEB页面,LotusNotes,TIF传真,XML数据,FORM表单,WPS,GDFTM版式文件等)上实现手写电子签名和加盖电子印章,并可将签章和文件绑定在一起,通过密码验证、签名验证、数字证书确保文档防伪造、防篡改、防抵赖,安全可靠。它具有制章的唯一性、不变造、伪造,签章的真实性,文档完整性、真实性、不可篡改,验章的真实性、有效性。电子签章系统可以通过辨识电子文件签署者的身份,确保文件的真实性、完整性和不可抵赖性。JSCA电子签章结合成熟的组件技术、PKI技术、图像处理技术以及智能卡技术,按照一系列的标准体系
2、,以电子形式对电子文档签名并加盖签章。软件采用COM组件技术,将传统印章与电子签名技术完美结合,通过签章可以确认文档来源、确保文档的完整性、防止对文档未经授权的篡改以及确保签名行为的不可否认。1电子签章是什么? 在传统的书面信息传递环境中,信息安全的保障为当事人的签字、盖章,电子签章制度则是在虚拟的网络环境中的信息安全保障,电子签章类似传统的“印章”。 从技术上讲,电子签章,泛指所有以电子形式存在,依附在电子文件并与其逻辑关联,可用以辨识电子文件签署者身份,保证文件的完整性,并表示签署者确认电子文件所陈述事实的内容。从广义上讲,电子签章不仅包括我们通常意义上讲的“非对称性密钥加密”,也包括笔迹
3、辨别、指纹识别,以及新近出现的眼虹膜透视辨别、面纹识别、DNA识别等。目前,最成熟的电子签章技术就是“数字签章”,它是以公钥及密钥的“非对称型”密码技术制作的电子签章。我们通常所说的电子签章也是指数字签章。 数字签章是运用一种名为“非对称密码系统”(Asymmetric Cryptography)的技术来对发文者的电子文件作加、解密运算,其目的是使收文者可确定电子文件的发出者是谁、该电子文件在传输中未遭篡改并保证发文者不能否认其发文的行为。有了这个保障,通过网络传播的信息就可以说是真实可信的了。 2CA认证机构:“刻印章的店” 如果把数字签章比喻为“印章”,那么CA认证机构实际上就是“刻印章的
4、店”。 为了确保用户及他所持有密钥的正确性,公共密钥系统需要一个公正的、值得信赖而且独立的第三方机构充当认证中心,来确认声称拥有公共密钥的人的真正身份,认证机构(Certification Authority,简称CA)遂因此而生。 要确认一个公共密钥,CA首先制作一张“数字证书”,它包含用户身份的部分信息及用户所持有的公共密钥,然后CA利用其本身的密钥为数字证书加上数字签名。CA认证机构功能是产生及保管各人的密钥,以供随时认证,当网络交易发生争议或纠纷时,认证机构作为公正第三方,提供认证资料做为裁决的依据。 如同目前刻公章需要到公安机关备案一样,数字签章的发文者亦需要先向CA登记其公钥,再由
5、CA签发数字证书。数字证书上所记录的是与私钥相对应的公钥。发文者以数字签章签署于电子文件后,可将电子文件并同数字证书一起传送给收文者,收文者即可利用数字证书上所载的公钥验证数字签章的真实性与文件的完整性,而收文者只要能确认该凭证确实为CA所签发(收文者也可取得CA的公钥以验证CA数字证书上所签署的数字签章的真实性),便可确信数字证书内的公钥确为凭证所指之人所有。本文将探讨数字签名、数字证书、强签名程序集、反编译等以及它们在.NET中的运用(一些概念并不局限于.NET在其它技术、平台中也存在)。1.数字签名数字签名又称为公钥数字签名,或者电子签章等,它借助公钥加密技术实现。数字签名技术主要涉及公
6、钥、私钥、非对称加密算法。1.1公钥与私钥公钥是公开的钥匙,私钥则是与公钥匹配的严格保护的私有密钥;私钥加密的信息只有公钥可以解开,反之亦然。在Visual Studio中,可以在项目属性页或者通过强命名工具Sn.exe生成公钥与私钥对,参考创建公钥私钥对。1.2非对称加密算法非对称加密算法(也叫公钥加密算法)借助于私钥加密、公钥解密,使用了两个不同的密钥,因此被称为非对称加密;数字签名属于非对称加密算法的一种。比较著名的非对称加密算法是RSA,在.NET中对应的类为RSACryptoServiceProvider类,参看 。数字加密算法包括密码生成算法、密码标记算法、验证算法。NET中的RS
7、ACryptoServiceProvider类包含这些相应的方法。1.3数字签名过程消息的发送者用一个HASH函数提取出消息的摘要,然后用私钥借助非对称加密算法对消息进行加密,将消息原文与加密后的数字签名同时发送给接受者;消息接受者收到消息原文与数字签名后,首先利用同一HASH函数从消息原文提取消息摘要,再用发送者发布的公钥对数字签名进行解密出发送者的消息摘要,对比消息摘要,如果一致则证明,此消息来自发送者,且内容未经修改。对于RSA算法,解密与解密分别对应:Encrypt与Decrypt方法。1.4数字签名的功能确定消息确实是由发送方签名并发出来的,因为私钥是私有的,其他人假冒不了发送方的签
8、名。二是数字签名能确定消息的完整性。因为数字签名的特点是它代表了消息的特征,消息如果发生改变,HASH函数得到的消息摘要就会不同,数字签名的值也将发生变化,因而不同的消息将得到不同的数字签名。 2.数字证书数字证书亦称电子证书,它是在Internet上用来标志和证明网络通信双方身份的数字信息文件。它是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。授权中心的数字签名可以帮助我们从授权中心验证证书是否被更改,即身份信息是否被更改等。简言之它就如同我们的身份证。数字证书可以保证信息除发送方和接收方外不被其它人窃取;
9、信息在传输过程中不被篡改;发送方能够通过数字证书来确认接收方的身份;发送方对于自己的信息不能抵赖。数字证书广泛运用于服务器证书,如SSL证书,电子邮件证书,客户端证书等等。理论上任何人都可以给你发个数字证书,亦即是说给你发数字证书的那个人或机构对你的公钥进行加签。对PGP和GPG系统来说,就是如此,而不需要一个统一的身份认证机构。但我们一般仅信任权威的数字认证机构颁发的证书。在Internet Properties-内容-证书 可以查看已经安装在本机的证书:分析数字签名如何进行发送者的身份认证首先对发送消息进行hash摘要,然后用自己的私钥对hash摘要加密,将加密后的内容+原始消息一并发送给
10、接受方。接受方收到内容后,用发送者的公钥解密加密后的hash摘要,得到hash摘要的明文,再将发送过来的原始消息使用相同的hash算法,求得hash摘要。将求得的hash摘要与解密得到的hash摘要进行匹配,若一样,则证明是发送者发送的,否则,不是发送者发送的。上图选中项为阿里巴巴的证书的公钥。3.强签名程序集 3.1强签名程序集简介强名称是由程序集的标识加上公钥和数字签名组成的。其中,程序集的标识包括简单文本名称、版本号和区域性信息(如果提供的话)。强名称是使用相应的私钥,通过程序集文件(包含程序集清单的文件,并因而也包含构成该程序集的所有文件的名称和散列)生成的。Microsoft Vis
11、ual Studio .NET 和在 .NET Framework SDK 中提供的其他开发工具能够将强名称分配给一个程序集。强名称相同的程序集应该是相同的。3.2强名称程序集的功能强名称依赖于唯一的密钥对来确保名称的唯一性,只有强名称的程序集可以加入到GAC中;强名称保护程序集的版本沿袭;强名称提供可靠的完整性检查。强名称就如同证书一样,帮助两个程序集之间建立信任关系。3.3强名称程序集的实现方案请参看:强名称方案ClickOnce 应用程序的强名称签名对应用程序和部署清单进行签名对程序集进行签名 3.4延迟程序集签名为程序集签名时,您可能不会始终具有对私钥的访问权限。在这种情况下,可以使用
12、“延迟签名”或“部分签名”来提供公钥,从而将私钥的添加推迟到交付程序集时。参考 。4.强签名程序集实践4.1新建测试项目StrongNameAssembly,为其添加一个类TestClass:namespace StrongNameAssembly public class TestClass 4.2在项目属性的签名选项卡设置强签名:生成项目后,用.NET Reflector打开程序集,我们可以发现,程序集的的名称包含了公钥标志:/ Assembly StrongNameAssembly, Version 1.0.0.0Location:D:Raymonds DocumentsVisual S
13、tudio 2005ProjectsStrongNameAssemblyStrongNameAssemblybinDebugStrongNameAssembly.dllName:StrongNameAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=79dbc45bc8054239Type:Library如果不进行强签名,那么公钥标志为null。4.3新建测试项目ConsoleApplication1添加对StrongNameAssembly的引用,并且更改Program.cs内容为:using System;using Sys
14、tem.Collections.Generic;using System.Text;namespace ConsoleApplication1 class Program static void Main(string args) Console.Write(new StrongNameAssembly.TestClass().ToString(); Console.ReadLine(); 生成解决方案,用Reflector打开控制台应用程序,查看其Reference中包含了对StrongNameAssembly的完整引用:/ Assembly Reference StrongNameAsse
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 签章 功能 实现
限制150内