1、本科毕业设计(20届)基于WEB的签章控件开发所在学院专业班级计算机科学与技术学生姓名学号指导教师职称完成日期年月II摘要【摘要】随着社会信息化的发展,对电子文档进行签章来确保文件的完整性、不可更改性和不可抵赖性越来越受到人们的重视。本文详细介绍了以PKI技术为核心的电子签章原理及相关技术手段,设计并实现了基于WEB的电子签章控件开发。具体实现以下的功能(1)生成数字摘要接收页面传送过来的数据,用MD5算法加密(2)页面签章功能利用数字证书的私钥对数字摘要签名(3)签章验证功能验证签章人身份(4)页面验证功能任何人都可以对页面的完整性进行验证,如果签章后的页面数据发生改变则提示页面被篡改(5)
2、查看证书查看签署者姓名。(6)签章时间查看签署者签署页面的准确时间。该控件运作方式简便、成本低廉、安全性高,有着广阔的应用前景。【关键词】电子签章;公钥基础设施;数字摘要;RSA非对称加密;散列函数IIIABSTRACT【ABSTRACT】WITHTHEDEVELOPMENTOFSOCIALINFORMATION,PEOPLEPAYMOREANDMOREATTENTIONTOTHEELECTRONICSIGNATURETOENSURETHEINTEGRITYOFTHEELECTRONICDOCUMENTSANDNOTBECHANGEDANDNONREPUDIATIONTHISTHESISINT
3、RODUCESTHEPKITECHNOLOGYASTHECOREPRINCIPLEOFTHEELECTRONICSIGNATUREANDRELATEDTECHNICALMEANSWEDESIGNANDIMPLEMENTTHEELECTRONICSIGNATURECONTROLBASEDONWEBITISREALIZESSEVERALFUNCTIONASFOLLOWS1GENERATIONDIGITALSUMMARYTORECEIVEDATATRANSMITTEDFROMTHEWEBPAGEANDMAKEUSEOFMD5TOENCRYPT2SIGNATUREFUNCTIONUSINGDIGITA
4、LCERTIFICATESPRIVATEKEYTOSIGNTHEDIGITALSUMMARY3VERIFICATIONFUNCTIONCONFIRMTHEIDENTITYOFTHESIGNATURE4PAGEVALIDATIONANYONECANVERIFYTHEPAGE,IFPAGEISCHANGED,THENTHEVALIDATIONERROR5VIEWCERTIFICATEVIEWTHECERTIFICATEOWNER6SIGNINGTIMECHECKTHETIMEOFSIGNATURETHISCONTROLOFADVANTAGESSUCHASSIMPLEUSES,CHEAPCOSTAN
5、DHIGHSECURITY,ANDHASWINDFOREGROUND【KEYWORDS】ELECTRONICSIGNATUREPUBLICKEYINFRASTRUCTUREDIGITALDIGESTRSAASYMMETRICENCRYPTIONHASHFUNCTIONIV目录1概述111课题背景112国内研究现状113本控件的内容与意义22基于WEB的电子签章原理及相关技术介绍321PKI技术介绍3211PKI标准3212数字证书4213认证机构CA(CERTIFICATEAUTHORITY)4214PKI提供的服务422数字签名原理523签名算法5231HASH函数概述5232MD5算法62
6、33SHA和SHA1安全散列算法7234RSA算法724本章小结93基于WEB的电子签章控件分析及设计1031电子签章控件设计目标1032电子签章的结构设计10321什么是ACTIVEX10322ACTIVEX的特点10323选择ACTIVEX技术的原因1033电子签章运行的流程11331电子签章的签名流程11332电子签章的验证流程1134CRYPTOAPI函数分析1235本章小结14V4基于WEB的电子签章控件的实现1541使用VS2008创建MFCACTIVEX控件15411使用VS2008创建ACTIVEX的步骤1542页面引用控件1543签名功能的实现15431WEB页面数据的提取1
7、5432数字摘要的产生15433页面的签章1544签章图片的加载1645控件上添加左键菜单1846验证功能的实现1947本章小结205基于WEB的电子签章控件测试分析2151功能测试21511签名功能的测试21512验证功能的测试22513证书查看及身份识别功能测试2252本章小结236结束语2461总结2462展望24参考文献25致谢错误未定义书签。附录错误未定义书签。VI引言近年来随着办公自动化的普及和电子商务的兴起,相关的电子文档传递、邮件发送等网络传输越来越频繁,商务、政务活动也从传统的物理方式转到网络空间进行,这就存在一个非常严重的问题如何保证信息的机密性、完整性和不可否认性。电子签
8、章就是随之而出现的高新技术。它主要解决对电子文档的签字盖章问题,用于辨识电子文档签署者的身份,保证文件的完整性,确保文件的不可更改性和不可抵赖性。电子签章泛指所有以电子形式存在,依附在电子文件并与其逻辑相关,可以用于辨识电子文档签署者身份,保证文件的完整性,并表示签署者肯定电子文档所陈述的内容是真实的。所以电子签章系统应该具有以下功能1、电子文档的完整性。当文档在传送的过程中发生遗漏、错误或人为篡改时,电子签章应该能够检测出来。2、签署人的身份认证。当电子文档被签章后,其持章者的身份能被其他人确认。3、电子文档的不可抵赖性。当电子文档被签名后,签署人不可抵赖。所有电子签章技术中,PKI技术是最
9、为成熟和合理的。以PKI技术为基础的电子签章系统安全性非常高、运作方式简便、成本低廉。国内社会的信息化程度越来越高,传统商业模式已经渐渐被电子商务取代。我国自2005年4月1日起施行中华人民共和国电子签名法,让电子签章有了法律保证,电子签章和纸质签章具有同样的效果。在电子信息化日趋完善的趋势下,在不久以后像电子报关、报税、审批等业务也都会采用电子签章的方式,可以预见电子签章的应用将会越来越广泛。本文对PKI技术原理和电子签章的具体实现进行了详细的描述,开发控件使用户对WEB页面的签名变得更为方便、快捷。在公钥密码体制方面,采用最为成熟完善的RSA非对称加密算法。在框架技术方面,采用MICROS
10、OFT提供的ACTIVEX技术和CRYPTOAPI接口函数。最后,对实现的电子签章控件做了功能测试。11概述11课题背景在传统的商务、政务活动中,书面合同或公文需要当事人或负责人签名、盖章,这是为了让交易双方辨别是谁签的合同,确认合同的真实性和完整性,法律才能承认这份合同的有效性。而在电子商务、政务活动中,交易双方不是面对面交易,而是通过电子文档的方式传递,这就必须依靠先进的技术来确认交易双方的真实身份,以保证交易的公平、公正,合同、公文的不可抵赖性,使得电子签章和手写签字、盖章具有同样的效果。1、电子商务对电子签章的需求对于电子商务而言,其核心内容主要体现在双方的契约中,换句话说,商务活动主
11、要内容就是谈判、合同签订、合同执行。合同的基本要素包括要约、承诺、书面形式、签字盖章等,这些要素都是具体形式,可以保障合同的法律效力并明确双方的权利义务。但对电子商务而言,从传统的物理方式转为虚拟世界进行时,相应的合同要素就没有了原有的法律效应了,从而使电子合同乃至电子商务无法正常进行。而电子签章能够对电子商务活动双方的身份认证,保证电子文件的完整性,交易双方对签署的电子文件的不可抵赖性。2、电子政务对电子签章的需求国家信息化工作领导小组在颁布的关于我国电子政务建设的指导意见中规定国家政务内网主要承载中央和副省级以上地方各政务部门的办公业务,实现党委、人大、政府、政协、法院、检查系统(简称“六
12、大系统”)间的互联互通。作为涉密系统,政务内网在建设中所采用的安全措施既要满足国家保密的规定,又要满足业务的需要。构建政务内网,基于数字证书的电子签章可以提供身份认证、机密性、完整性和不可抵赖性服务,并实现有效授权和安全审计,达到了是最基本的安全要求。12国内研究现状目前有很多可提供的电子签章的客户端软件产品,国内电子签章研究开发起步较晚,主要的产品是以PKI技术为基础的。经过近几年的发展,已经有了许多的比较成熟的产品,例如优泰科技的优泰电子签章系统、江西金格的电子签章系统和百成科技的电子签章系统等等。其中比较有特色的是江西金格的电子签章系统。金格可信电子签章系统产品采用COM/ACTIVEX
13、技术开发,应用金格DBPACKETTM对象包协议技术,将电子印章和数字签名技术完美结合为一体的应用软件系统。它可在WORD、EXCEL、HTML(WEB页面)、PDF、CAD图纸签章、TIF传真签章、XML数据签章、FORM表单、WPS文字、FILE文件签名、永中OFFICE以及自主知识产权的GDFTM版式文件上实现手写电子签名和加盖电子印章;并可将签章和文件绑定在一起,通过密码验证、签名验证、数字证书确保文档防伪造、防篡改、防抵赖,安全可靠。它具有制章的唯一性、不被变造、伪造,签章2的真实性,文档完整性、真实性、不可篡改性。13本控件的内容与意义电子签名法的颁布与实施是中国社会信息化里程碑意
14、义的大事,从长远看必将改变目前的商务模式和政务模式。由于商业模式越来越依赖互联网,IT厂商将面临巨大的市场需求,特别是以信息安全为主要经营方向的厂商具有非常现实的价值。虽然电子签章目前来讲应用不是非常广泛,但这种模式必将被人们接受。并且政府信息化已经进入实施阶段,一些政府机构的电子信息化趋于完善,在不久的将来像电子报关、报税、审批等业务也都会采用电子签名的方式,这对于厂商来讲,又是一个很大的市场2。安全认证技术是信息安全学的一个重要的内容。本文针对电子商务、电子政务等需要确定WEB页面数据完整性、不可更改和不可抵赖性,设计实现一个基于WEB页面的电子签章控件,可对WEB页面进行签名。本文所作的
15、具体工作如下首先对电子签章的背景进行分析,选定以PKI为核心技术进行开发。其次,详细分析了基于WEB页面的电子签章控件的原理及相关算法。具体设计了电子签章控件的功能并通过具体编程实现各个功能。32基于WEB的电子签章原理及相关技术介绍基于WEB的电子签章控件是通过网页加载控件,使持章者可以对所看到的网页数据完成签字盖章,与传统的手写签名、盖章具有同样的功效。主要解决WEB页面的签字盖章问题,用于辨识WEB页面签署者的身份,保证WEB页面数据的完整性,确保WEB页面数据的不可更改性和不可抵赖性。可通过多种技术实现电子签章,目前应用最为广泛的是基于PKI技术的数字签名技术。21PKI技术介绍PKI
16、(PUBLICKEYINFRASTRUCTURE)中文名称为公钥基础设施,是指用公钥概念和技术来实施和提供安全服务的安全基础设施。PKI产生于20世纪80年代,发展壮大于20世纪90年代,是一种新的安全技术,它由数字证书、证书发放机构(CA)、公开密钥密码技术和关于公开密钥的安全策略等基本成分共同组成。PKI是利用公钥技术实现电子商务安全的一种体系,是一种基础设施,为网络世界各种交易提供安全保证4。211PKI标准从整个PKI体系建立于发展历程来看,与PKI相关的标准主要包括以下一些。(1)X209(1988)ASN1基本编码规则的规范8ASN1是描述在网络上传输信息格式的标准方法。它有两部分
17、第一部分(ISO8824/ITUX208)描述的信息内的数据、数据类型及序列格式,也就是数据的语法;第二部分(ISO8825/IUTX209)描述如何将各部分数据组成消息,也就是数据的基本编码规则。ASN1原来是作为X409的一部分而开发的,后来才独立地成为一个标准。这两个协议除了在PKI体系中被应用外,还广泛的应用于通信和计算机的其他领域。(2)X500(1993)信息技术之开放系统互联概念、模型、服务及简述69X500是一套已经被国际化标准组织(ISO)接受的目录服务系统标准,它定义一个机构如何在全局范围内共享其名字和与之相关的对象,它基本上是用来查询有关人员的信息(邮政地址、电话号码、电
18、子邮件地址等)的一种服务,可以检索的字段有姓名、人员所在机构名、所在机构的部门名称以及国家名称。目录允许维护,分发,并且有一些安全方面的保证。(3)X509(1993)信息技术之开放系统互联鉴别框架7X509是由国际电信联盟(ITUT)制定的数字证书标准,它还定义了公钥证书、证书吊销清单、属性证书和证书路径验证算法等证书标准。X509最初是在1988年发布的,当时是作为ITUX500目录服务标准的一部分,它设定了一系列严格的CA分级体系来颁发数字证书。X509V3是最新的一个版本,它支持扩展概念,因此任何人均可定义扩展并将其纳入证书中,用来提供更多的灵活性及特殊性应用环境下所需4的信息传送。(
19、4)PKCS系列标准10由RSA实验室制定的PKCS系列标准,是一套针对PKI体系的加解密、签名、密钥交换、分发格式及行为标准,该标准目前已经成为PKI体系中不可缺少的一部分。(5)OCSP在线证书状态协议OCSP(ONLINECERTIFICATESTATUSPROTOCAL)是INTERNET工作任务组IETF颁布的用于检查数字证书在某一交易时间是否仍然有效的标准。CA认证中心在提供证书状态的实时查询时要用到这个协议。协议规定了服务器和客户端应用程序的通信语法。(6)LDAP轻量级目录访问协议LDAP规范简化了笨重的X500目录访问协议,并在数据表示、编码、功能性和传输方面都进行了相应的修
20、改。LDAPV3已经在PKI体系中广泛应用于证书信息发布、CRL信息发布、CA政策以及与信息发布相关的各个方面。除了以上协议外,还有一些构建在PKI体系上的应用协议,这些协议时PKI体系在应用和普及化方面的代表作,包括SET协议和SSL协议。212数字证书数字证书类似于我们现实生活中的居民身份证,居民身份证是由权威机构公安部签发的,同样数字证书也需要权威机构CA来签发,用以在数字领域中证实用户本身身份的一种数字凭据。数字证书就是将证书所有者的个人信息和密钥绑定的数字文件。数字证书还必须包括签发机构CA对其的签名,以保证该证书的合法性和有效性,也保证了用户密钥和相关信息的真实性和完整性。数字证书
21、和相关的私钥可以提供身份认证,证书的公钥可用于加密数据或者验证对应私钥的签名。213认证机构CA(CERTIFICATEAUTHORITY)数字证书认证中心(CA)是PKI的主要组成实体。它主要工作是产生、分配并管理所有实体所需的身份认证的数字证书。每一份数字证书都与上一级的数字签名证书相关联,最终通过安全链追溯到一个已知的并广泛认为是安全、权威、足以信任的认证机构根认证机构(根CA)。认证机构CA的建设必须根据国家市场准入政策由国家主管部门批准,具有权威性。CA机构本身的建设应具备条件、采用的密码算法及技术保障是高度安全,具有可信任性。CA是不参加交易双方利益的第三方机构,具有公正性。214
22、PKI提供的服务到目前为止,完善并正确实施的PKI系统是全面解决所有网络交易和通信安全问题的最佳途径。在电子商务和电子政务活动中,最重要的是要数据的保密性、数据的完整性、数据的不可抵赖性及身份的认证。PKI能够提供服务来保证电子商务和电子政务的正常进行。5PKI所提供的服务主要包括以下几方面1、认证PKI技术提供基于公开密钥的身份认证。客户A利用自己独有的私钥对数据进行签名,客户B利用对应的公开密钥对签名数据解密,成功则认证该数据是客户A签名的,客户A无法抵赖。2、支持密钥管理在庞大的网络世界中,密钥管理中非常重要的一项功能就是密钥恢复。当个别反政府分子利用加密系统攻击时,我们可以通过特定的程
23、序获得其通信内容,保障国家的信息安全。PKI拥有良好的密钥恢复机制,网络正常有序的运行。3、完整性与不可否认完整性与不可否认是PKI提供的最基本的服务。当数据被用户A用私钥签名后,当他用对应的公钥解密成功时,就可以保证数据没有被更改,数据时完整的。同样,其他用户公开密钥对签名解密成功,则用户A就不能否认对数据的签名。22数字签名原理数字签名是一种确保数据完整性和原始性的方法。数字签名可以提供有力证据,表明自从数据被签名来没有被更改,也可以用来确认签名人或实体的身份,不可抵赖。数字签名的“完整性”和“不可抵赖性”,是确保电子商务安全的基本条件。数字签名采用双重加密的方法来实现防伪、防赖。其原理如
24、下1、被签名的数据先用散列函数生成固定长度的数字摘要。2、签名人利用私钥将数字摘要再次加密,形成数字签名。3、当需要验证时,先签名数据重新用同样的散列函数生成数字摘要A。4、利用相应的公钥对数字签名解密,得到数字摘要B。5、将数字摘要A与数字摘要B比较。两者一致,则说明数据没有修改,数据是完整的,且签名人不可抵赖。23签名算法231HASH函数概述HASH函数是将一个任意长度的消息(MESSAGE)映射成固定长度消息的函数,即HASH函数HM作用于任何长度的消息M,它返回一个固定长度的散列值HHM。HASH函数应用在只需加密,无需解密的特殊场合。例如为了鉴别消息有没有被篡改,在消息传送之前,作
25、HASH处理计算出散列值,然后和消息一起传送出去。接收方将接收到的消息进行HASH处理计算出散列值,将之与传送过来的散列值比较,匹配成功则消息没有被修改,否则,消息一定被修改了。实际上,HASH函数还应用在很多场合,如在口令表加密、数字签名等安全事件中都有应6用,在数字签名中应用的HASH函数必须满足以下条件。(1)单向HASH函数。设H是一个HASH函数,给定一个HASH值Y,如果寻找一个消息X,使得YHX是计算上不可行的,则称H是单向HASH函数。(2)弱抗碰撞HASH函数。设H是一个HASH函数,任给一个消息X,如果寻找另一个不同的消息X使得HXHX是计算上不可行的,则称H是弱抗碰撞(W
26、EAKLYCOLLISIONFREE)HASH函数。(3)强抗碰撞HASH函数。设H是一个HASH函数,如果寻找两个不同的消息X和X,使得HXHX是计算上不可行的,则称H是强抗碰撞(STRONGLYCOLLISIONFREE)HASH函数。232MD5算法1990年10月,著名密码学家RIVEST在MIT(MASSACHUSETTSINSTITUTEOFTECHNOLOGY)提出了一种HASH函数,称为MD4,MD表示消息摘要。MD5是MD4的改进版本。MD5不依赖任何密码系统和假设条件,是一种将一个任意随机长度的信息经四轮变换得到一个128位的信息摘要,算法简洁,计算速度快,特别适合32位计
27、算机软件实现1。MD5算法可简述如下MD5算法的输入可以是任意长度的消息X,对输入消息按512位的分组为单位进行处理,输出128位的散列值MD(X)。整个算法分为五个步骤,如图21所示。图21MD5算法结构步骤一增加填充位在消息X右边增加若干为的比特,使消息的总长度于448模512同余。也就是说,填充后的消息长度比512的某个倍数少64位。即使消息长度满足以上条件,仍然需要填充。例如,若消息长为448,则仍需填充512位使其长度为960。填充长度为1512。填充的比特第一位为1,其他的为0。步骤二附加消息长度值用64位表示原始消息X的长度,并将其附加在步骤1所得结果之后。若填充前消息长度大于2
28、64,则只使用其低64位。填充方法是把64BIT的长度分成两个32BIT的字,低32BIT字先填充,高MD128CVL1CV1128IV12864BITX10000512LY0512Y1512HMD5HMD5YL1512128HMD5732BIT字后填充。步骤三初始化MD5缓冲区MD5算法的中间结果和最终结果都保存在128位的缓冲区中,缓存区用4个32位的寄存器表示。4个缓存区记为(A,B,C,D)其初始值为A0X01234567B0X89ABCDEFC0XFEDCBA98D0X76543210步骤四以512位的分组(16字)为单位处理消息MD5是迭代HASH函数,其压缩函数为HMD50,11
29、285121,1128步骤四是MD5算法的主循环,它以512BTIT作为分组,重复应用压缩函数HMD5,从消息Y的第一个分组Y0开始,依次对每个分组YI进行压缩,直至最后分组YL1,然后输出消息X的HASH值,MD5的循环次数等于消息Y中的数目L(见图21)。步骤五输出依次对消息的L个512BIT的分组进行处理,第L个分组处理后的输出值即是消息X的散列值MDX。233SHA和SHA1安全散列算法在1993年,SHA(安全散列算法)由美国国家安全标准和技术协会提出,并作为联邦信息处理标准公布;1995又发布了一个修订版,通常称之为SHA1SHA1是基于MD4算法的,并且它的设计在很大程度上是继承
30、MD4的,是目前被广泛认可的散列算法之一。SHA1是一种数据加密算法,该算法的思想是接收一段明文,然后以一种不可逆的函数转换为一段更短的密文。换言之,就是将一段输入码映射成为一段更短且位数固定的输出序列。在电子签章控件中,我们先将页面取出的数据进行以上的处理,得到固定位的数字摘要。该数字摘要比原文的数据长度要短很多,因而可以大大提升加密算法的运算速度。由于HASH函数的强抗碰撞性,是无法找到两个不同的消息经过HASH函数计算后两者摘要相等,所以保证了任何人无法利用一个改动后的数据来替换原有数据。由于HASH函数的弱抗碰撞性,无法通过穷举法或其他方法找到那个经过HASH函数计算后生成的消息摘要和
31、原消息摘要相等,保证了信息的安全性,并可由强抗碰撞性和弱抗碰撞性保证数据的完整性;由于HASH的单向性,已知消息摘要无法反求出原数据,保证数据的机密性。因此,在电子签章中应用HASH算法会大大提高安全性和运行速度。234RSA算法RSA密码系统是以其发明者RIVEST、SHAMIR和ADLEMAN的名字命名的,它是目前应用最广的公钥密码系统之一。RSA密码系统即可以用于加密,又可以用于数字签名,其安全性是基于8大整数因子的困难性。RSA密码系统是由以下几个算法组成3密码生成算法(1)选取两个大素数P和Q,计算NPQ和欧拉函数(P1)(Q1);(2)随机选取整数E,1/此为控件的注册ID43签名
32、功能的实现431WEB页面数据的提取由于人力和时间的限制,本电子签章控件在WEB页面数据的提取方面,采用很简单的方法。利用JS语言获取页面的输入数据。具体代码如下VARTHEMEDOCUMENTGETELEMENTBYID“THEME“VALUEVARNAME1DOCUMENTGETELEMENTBYID“NAME1“VALUEVARNAME2DOCUMENTGETELEMENTBYID“NAME2“VALUEVARCONTRACTDOCUMENTGETELEMENTBYID“CONTRACT“VALUE432数字摘要的产生如上所述将WEB页面数据取出后,将数据传给控件,控件将数据用MD5算法
33、加密,生成128位的字符串。具体代码如下MD5MD5(M_CRYPT)STRINGSTRLMD5TOSTRINGSTRL中就是页面数据生成的数字摘要。433页面的签章获得数字摘要后,对数字摘要调用签名函数ENCRYPT(),签名函数具体实现过程图41。16图41签名函数实现过程具体实现如下1、获取CSP句柄。调用CRYPTACQUIRECONTEXT函数,函数第一个参数返回CSP句柄。2、打开证书存储区域。调用CERTOPENSYSTEMSTORE函数,函数返回证书存储区域句柄。3、从存储区域获得指定证书。调用CERTENUMCERTIFICATESINSTORE函数。该函数循环枚举存储区域中
34、的数字证书,然后调用CERTGETCERTIFICATECONTEXTPROPERTY函数获取证书的扩展属性,根据属性找到指定的证书或合适的证书。4、利用证书对数字摘要签名。两次调用CRYPTSIGNMESSAGE函数,第一次获得签名后加密数据的长度L,然后申请一块长度为L的BYTE数组PBLOB存储加密数据。第二次调用,将加密数据写入BYTE数组中。5、保存签名后的数据和签名时间。签名时间准确来说应该是来自第三方认证机构CA,本文由于条件限制,就取系统时间。6、释放证书和关闭存储区域。调用函数CERTFREECERTIFICATECONTEXT和CERTCLOSESTORE,释放证书和关闭存
35、储区域。44签章图片的加载签名功能完成后,就要在WEB页面上加载签章图片。VS2008在创建MFCACTIVEX控件后就为我们自动生成绘图函数ONDRAW()函数,我们只要在找到这个函数添加绘图代码就可以了。在编写绘图代码之前,我们先要在工程中添加签章图片资源。添加资源的步骤首先在工程的资源视图,点击右键添加资源,如图42。获取CSP句柄打开证书存储区域从存储区中获取指定证书利用证书对数字摘要签名释放证书和关闭存储区域保存签名后数据和签名时间17图42添加资源然后,选择BITMAP,导入签章图片(见图43),就可以导入签章图片,图片ID命名为IDB_BITMAP1。图43导入图片导入资源后,我
36、们就可以在ONDRAW()函数中编写绘图代码。具体代码如下CBITMAPM_CBITMAPM_CBITMAPLOADBITMAPIDB_BITMAP1CDCM_MEMDCM_MEMDCCREATECOMPATIBLEDCPDCM_MEMDCSELECTOBJECT18BITMAPBMPM_CBITMAPGETBITMAPPDCSTRETCHBLTRCBOUNDSLEFT,RCBOUNDSTOP,RCBOUNDSWIDTH,RCBOUNDSHEIGHT,M_MEMDCDELETEDC45控件上添加左键菜单添加左键菜单的主要目的是为了方便查看证书所有者的姓名和签名时间。首先,我们还是先在资源视图中
37、添加菜单资源,方法和添加图片资源同样。添加菜单资源成功后,编辑菜单项,如图44所示。图44编辑菜单因为菜单响应按下左键消息,所以在控件按下左键的消息函数ONLBUTTONDOWN()中添加以下代码CMENUMENU,POPMENULOADMENUIDR_MENU1POPMENUGETSUBMENU0CLIENTTOSCREENPOPTRACKPOPUPMENUTPM_LEFTALIGN|TPM_LEFTBUTTON,POINTX,POINTY,THISCOLECONTROLONLBUTTONDOWNNFLAGS,POINT添加左键菜单后,还要为每个菜单项添加添加响应函数。菜单项(签署人)的响应
38、函数中添加以下代码CSTRINGSTR“签署人“STRAPPENDM_SIGNERNAMEAFXMESSAGEBOXSTR变量M_SIGNERNAME中存储着数字证书的所有者姓名。菜单项(签署时间)的响应函数中,由于CTIME类中时间都是INT类型,需要转换为CSTRING类型,转换代码如下CSTRINGDAY,HOUR,MONTH,YEARDAYFORMAT“D“,M_SIGNERTIMEGETDAYHOURFORMAT“D“,M_SIGNERTIMEGETHOURMONTHFORMAT“D“,M_SIGNERTIMEGETMONTHYEARFORMAT“D“,M_SIGNERTIMEGET
39、YEAR转换后,再添加以下代码19CSTRINGSTR“签名时间“STRAPPENDYEARSTRAPPEND“年“STRAPPENDMONTHSTRAPPEND“月“STRAPPENDDAYSTRAPPEND“日“STRAPPENDHOURSTRAPPEND“时。“AFXMESSAGEBOXSTR46验证功能的实现对需要验证的页面,重复页面数据提取,生成新的数字摘要。然后利用签名数据解密出原数字摘要,将新旧数字摘要匹配,若成功,则代表页面数据完整。验证函数具体过程实现如图45。图45验证函数实现过程具体实现如下1、打开一个消息解码。调用CRYPTMSGOPENTODECODE函数,函数返回消
40、息句柄。2、增加签名数据到消息中。调用函数CRYPTMSGUPDATE,该函数的第二、三个参数分别为签名数据和长度。3、利用公钥解密,获得就数字摘要。此过程要四次调用CRYPTMSGGETPARAMHAS函数。前两次是获得解密后数字摘要和长度。后两次是验证解密出信息是否更改,信息更改则验证失败。四次函数调用函数CRYPTMSGGETPARAMHAS由于参数的不同,作用也不同。4、从验证页面获得新的数字摘要。详细过程见431和432两节。5、新旧数字摘要匹配。新旧数字摘要都是BYTE数组,因此,可以简单的一位位的对比,只要有一位不相同,则打开一个消息解码,返回消息句柄增加签名数据到消息中利用公钥
41、解密,获得旧数字摘要从验证页面获得新的数字摘要新旧数字摘要匹配身份确认,验证完成20匹配失败。匹配成功,则确定WEB页面的完整性和不可更改性。6、身份确认。匹配成功后,读取证书中的所有者字段,可知该WEB页面的签署者,签署者不可抵赖。调用函数CERTGETNAMESTRING,其中第五个参数返回签署者得姓名。47本章小结本章详细讲述了基于WEB的电子签章控件各个功能的具体实现过程。通过具体编程,实现了控件的签章功能、签章图片加载、控件左键菜单、验证功能及查看证书功能等,确保被签章的WEB页面的完整性、不可更改性和不可抵赖性。215基于WEB的电子签章控件测试分析51功能测试511签名功能的测试
42、签名功能的实现,就是利用K盘中的数字证书的私钥,对页面数据加密,最后在页面上显示一个签章图片,完成签名。1、调用K盘中的数字证书。点击页面的签名按钮,若签署者忘记插入K盘,页面会跳出提醒用户插入K盘。如图51。图51获取容器句柄失败插入K盘后,会跳出K盘输入密码界面,输入密码后才能使用证书。具体实现如图52。图52输入K盘密码2、签章图片的显示输入密码后,签名成功后,WEB页面上就会显示签章图片。如图53。图53显示签章图片22512验证功能的测试验证功能的实现,就是对WEB页面进行验证,成功则显示“WEB页面完整”,失败则显示页面被篡改。点击WEB页面的验证按钮,成功则跳出WEB页面完整的提
43、醒框,如图54所示。图54验证成功修改WEB页面数据,点击验证按钮,则跳出页面被篡改的提醒框,如图55所示图55验证失败513证书查看及身份识别功能测试在WEB签章图片上添加左键菜单功能,当签章图片显示后,左键点击签章图片,则跳出“签署人”和“签名时间”的菜单。如图56。图56签章左键菜单点击签署时间,则显示签名时间。如图57所示。图57显示签名时间点击签署人,则显示签署人姓名。如图58所示。23图58显示签署人姓名52本章小结本章电子签章控件进行功能测试,分别对控件的签名功能、验证功能和查看证书及身份识别功能进行测试,都达到了预期效果。246结束语61总结随着计算机的普及和网络的飞速发展,整
44、个社会的信息化程度越来越高,电子商务和电子政务已经深入我们生活的方方面面。随之而来的信息安全问题也越来越严峻。电子化的商业合同和政府公文,都需要电子签章来代替传统手写签字盖章来确保电子文档的信息完整性、不可更改性和不可抵赖性。在各种实现电子签章的技术中,基于PKI的WEB页面签章运作方式简单、成本低廉、安全性高,且技术最为成熟完善。本文使用公钥密码体制,利用非常成熟的RSA算法,有效地实现对WEB页面的签章,并确保了WEB页面的完整性、不可更改性和不可抵赖性以及身份认证。总结全文,本文主要完成以下工作(1)通过对电子签章现状的分析,选择基于WEB的电子签章的开发。(2)对电子签章的基础原理PK
45、I技术,介绍了其标准协议、数字签名的基本原理,分析了RSA非对称算法和HASH数字摘要算法。(3)详细设计了本电子签章控件的目标,描述数字签名原理,分析CRYPTOAPI接口函数。(4)根据电子签章功能设计,实现控件在页面的加载、签名功能、加载签章图片、添加控件左键菜单、签章验证功能及认证并查看证书功能。(5)从电子签章实现功能方面,对控件进行了功能性测试。62展望本文虽然完成了电子签章的核心功能,但基于WEB页面的电子签章控件开发还有很多方面还需要进一步来研究(1)获取页面数据的方法过于简单,不能适用其他大部分WEB页面。(2)签章图片和签名应该让用户选择。(3)签章图片未能自由移动。(4)
46、关于签名数据的存储可以有两种方法,一是将网页数据签名消息证书签章图片控件打包存为本地文件,当需要验证时,将文件取出,还原为网页形式;二是,将网页数据、签名消息、数字证书、签章图片存到服务器中,验证时再取出。本文由于时间和知识储备的不足,未能完成此项功能。25参考文献1何大可,彭代渊,唐小虎等,现代密码学M,人民邮电出版社,20092徐俊,基于PKI的电子签章系统客户端的设计与实现D,硕士论文,软件工程,苏州大学,20053丁宵琪,基于PKI的电子签章系统客户端设计与应用D,硕士论文,计算机应用技术,西南交通大学,20054郭改文,面向服务的网格安全研究及设计J,商场现代化,20065MICRO
47、SOFTDATAENCRYPTIONWITHCRYPTOAPIEB/OL,HTTP/MSDNMICROSOFTCOM/ZHCN/LIBRARY6CARLMELLISON,THENATUREOFAUSEABLEPKI,INTEL,SECURITYTECHNOLOGYLAB,19997MARYRTHOMPSON,CERTICATEBASEDAUTHORIZATIONPOLICYINAPKIENVIRONMENT,LAWRENCEBERKELEYNATIONALLABORATORY,20038赵为强,基于PKI体系的网络完全电子钥匙的研究和开发D,硕士论文,电力电子及电力传动,东南大学,20049冯兆泰,PKI/CA在电子税务系统中的应用和研究D,硕士论文,软件工程,华南理工大学,200410赵迎春,绵阳市电子政务外网安全系统的关键问题研究及实施D,电子与信息工程,电子科技大学,200411肖宁,基于DIFFIEHELLMAN的密钥交换协议J,中国科技博览,201012伍江耀,电子档案保全与固定技术的研究与实现D,计算机应用技术,同济大学,2006
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。