基于Web的签章控件开发【开题报告+文献综述+毕业设计】

基于Web的签章控件开发【开题报告+文献综述+毕业设计】

ID:471681

大小:452.74 KB

页数:39页

时间:2017-08-07

上传者:U-944
基于Web的签章控件开发【开题报告+文献综述+毕业设计】_第1页
基于Web的签章控件开发【开题报告+文献综述+毕业设计】_第2页
基于Web的签章控件开发【开题报告+文献综述+毕业设计】_第3页
基于Web的签章控件开发【开题报告+文献综述+毕业设计】_第4页
基于Web的签章控件开发【开题报告+文献综述+毕业设计】_第5页
资源描述:

《基于Web的签章控件开发【开题报告+文献综述+毕业设计】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

毕业设计开题报告计算机科学与技术基于Web的签章控件开发一、选题的背景与意义由于Internet网电子商务系统技术使在网上购物的顾客能够极其方便轻松地获得商家和企业的信息,但同时也增加了对某些敏感或有价值的数据被滥用的风险.为了保证互联网上电子交易及支付的安全性,保密性等,防范交易及支付过程中的欺诈行为,必须在网上建立一种信任机制。这就要求参加电子商务的买方和卖方都必须拥有合法的身份,并且在网上能够有效无误的被进行验证。电子签章,泛指所有以电子形式存在,依附在电子文件并与其逻辑关联,可用以辨识电子文件签署者身份,保证文件的完整性,并表示签署者同意电子文件所陈述事实的内容。一般来说,对电子签章的认定,都是从技术角度而言的。主要是指通过特定的技术方案来鉴别当事人的身份及确保交易资料内容不被篡改的安全保障措施。从广义上讲,电子签章不仅包括我们通常意义上讲的"非对称性密钥加密电子签章",也包括计算机口令、生物笔迹辨别、指纹识别,以及新近出现的眼虹膜透视辨别法、面纹识别等。目前,最成熟的电子签章技术就是"数字签章",它是以公钥及密钥的"非对称型"密码技术制作的电子签章。公钥及密钥是由一个由权威机构----CA证书授权(CertificateAuthority)中心发行的,人们可以在互联网交往中用它来识别对方的身份。当然在电子签章认证的过程中,证书认证中心(CA)作为权威的、公正的、可信赖的第三方,其作用是至关重要的。  随着Internet的普及、各种电子商务活动和电子政务活动的飞速发展,电子签章开始广泛地应用到各个领域之中,主要包括:网上报关、资金管理系统、财务报销审批系统、招投标系统、项目管理、公检法业务综合系统等,所以,电子签章有着广阔的市场前景。目前针对电子印章的应用环境,又分为以下五种电子印章系统1、基于Office编辑软件的电子印章-Word,Excel,WPS2、基于Web网页的电子印章-WebSign3、基于PDF文件的电子印章-TrustedPDF可信的PDF4、基于自有版式文件的电子印章-AIP5、基于WindowMobile平台的电子印章-手机签章39 6、基于CAD文件的电子签章-CAD现在关于Web电子签章的技术已经成熟,并且有很多公司已经开发出成熟产品。实力比较强的是江西金格科技有限责任公司,他们主要产品是iSignature金格可信电子签章系统,它可在WORD、EXCEL、HTML(WEB页面)、PDF、CAD图纸签章、TIF传真签章、XML数据签章、FORM表单、WPS文字、FILE文件签名、永中OFFICE以及自主知识产权的GDFTM版式文件上实现手写电子签名和加盖电子印章;并可将签章和文件绑定在一起,通过密码验证、签名验证、数字证书确保文档防伪造、防篡改、防抵赖,安全可靠。二、研究的基本内容与拟解决的主要问题:开发基于Web签章控件,完成以下功能:1、提取网页中需要签章的数据。2、将得到的数据利用H函数生成原文摘要。3、使用用户的私钥,加密得到不可逆的字符串。4、将数字证书、字符串、图片签章打包绑定在控件上。5、取出控件中数字证书的公钥,将控件中字符串解密,重复功能一、二,将得到的两个字符串匹配,匹配成功,则验证成功,否则验证失败。以上的功能保证电子签章的两个最主要的功能------防抵赖和防篡改。拟解决的主要问题:1、基于Web页面数据的签名功能2、基于Web页面数据的验证功能3、网页签章的数据安全性问题4、提高基于Web电子签章控件的稳定性三、研究的方法与技术路线:(1)基于PKI技术的Web签章开发原理:电子签章也必须具有唯一性和可靠性。为了达到这一目的,需要采用很多技术来实现。通常,电子签章采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所有的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。公开密钥技术解决了密钥发布的管理问题,用户可以公开其公开密钥,而保留其私有密钥。单向散列函数(简称“H函数”或“Hash函数”39 )用于对要传输的数据作运算生成信息摘要,它并不是一种加密机制,但却能产生信息的数字"指纹",它的目的是为了确保数据没有被修改或变化,保证信息的完整性不被破坏。单向散列函数有三个主要特点:1.它能处理任意大小的信息,并将其技信息摘要(messagedigest)方法生成固定大小的数据块(FF是128位,即16字节),对同一个源数据反复执行Hash函数将总是得到同样的结果。2.它是不可预见的。产生的数据块的大小与原始信息的大小没有任何联系,同时源数据和产生的数据块的数据看起来也没有明显关系,源信息的一个微小变化都会对数据块产生很大的影响。3.它是完全不可逆的,没有办法通过生成的数据块直接恢复源数据。签名具体流程如图一:获取文档内容A原文中的数据A原文摘要B利用Hash函数作运算字符串C数字证书公钥私钥CA图片印章发布利用私钥加密图一验证流程如图二:39 (e,n)控件字符串C数字证书公钥解密字符串B1原文中的数据A原文摘要B2利用Hash函数作运算B1==B2则验证成功,否则失败图二(2)电子签章控件功能如图三:39 Web电子签章控件签名获取文档内容A验证H函数生成文章摘要B将签章图片、数字证书、数据C传送到服务器私钥将B加密成C将服务器中保存的签章数据取出用公钥将数据C解密成B1匹配B1、B2,若匹配成功,则验证成功获取验证文档的内容,利用H函数生成文章摘要B2图三(3)开发工具与环境介绍软件环境为:WindowsXP系统、VisualStudio2008、IE浏览器主要技术介绍:对象链接和嵌入用户控件(OCX)是一种可以由在微软的Windows系统中运行的应用软件创建使用的特殊用途的程序。OCX提供操作滚动条移动和视窗恢复尺寸的功能。对象链接和嵌入(OLE)被设计来支持混合文档(包含多种资料类型,比如文本、绘画图像、声音、动画)。Windows桌面就是一个混合文档的范例,微软使用OLE来建立的。OLE和组件对象模型(COM继OLE后的更常用的概念)支持“即插即用”程序的发展,“即插即用”程序在系统中可以用任何语言写入并可以由任何应用程序动态地使用。四、研究的总体安排与进度:1、2010年12月2日——2010年12月20日:查阅相关文献资料,理清思路,写文献综述和开题报告。39 2、2010年12月21日——2011年1月13日:研究JSP编程技术、OLE技术,回顾vs2008的使用。3、2011年1月14日——2011年2月06日:完成环境配置,搭建基本架构。4、2011年2月07日——2011年3月20日:完成编程实践,并测试控件性能,整理相关技术上和应用上的思路。5、2011年3月21日——2011年5月30日:完成所有项目与毕业论文等工作。五、主要参考文献:(1)何大可,唐小虎.现代密码学.人民邮电出版社(2)谭轶密码学中哈希函数的设计与分析[学位论文]硕士2006(3)方延峰基于信息加密原理的工程图样数字签名算法研究机械仪表20067(4)张振峰.基于身份的可验证加密签名协议的安全性分析.计算机学报,2006(5)辛向军,张宏伟.一个安全的基于身份的可验证加密签名方案.十四届全国青年通信学术会议论文集(6)ZhangF,NainiRS,SusiloW.Eficientverifiablyencryptedsignatureandpartiallyblindsignaturefrombilinearpairings.In:INDOCRYPT2003,Berlin:Springer-Verlag,2003(7)MingY,WangYM.Anefficientverifiablyencryptedsignatureschemewithoutrandomoracle.(8)年仁德基于数字水印技术的电子印章系统设计[期刊论文]-潍坊学院学报2008(4)(9)杨波编著网络安全理论与应用,电子工业出版社(10)顾纯祥,张亚娟,祝跃飞.混合可验证加密签名体制及应用.电子学报,2006,34(5):878~88239 毕业设计文献综述计算机科学与技术PKI技术的发展与应用摘要:PKI的核心是要解决信息网络空间中的信任问题,确定信息网络空间中各种经济、军事和管理行为主体身份的唯一性、真实性和合法性,保护信息网络空间中各种主体的安全利益。PKI的应用前景不仅限于网上的商业行为,而应应用于网络生活中的方方面面。关键词:PKI、公钥、电子签章一、课题研究历史与研究现状1、PKI的发展历史自1976年W.Diffieand和M.Hellman发明公开金钥加密法后两年,公开金钥电子凭证的概念开始被提及;1988年公布第一个凭证标准X.509,而在1993年第一个IEFE凭证也公布了。到了1990年后半段,随着网际网络的崛起、网络公司的出现、以及PKI与RSA发明专利权时限的结束,VeriSign在1995年成立,SSL机制也出现并且被广泛的用于网页浏览器中,PKI的发展在该段时期似乎充满希望和存在着过高的期许。2、PKI概述PKI是PublicKeyInfrastructure的缩写,是指用公钥概念和技术来实施和提供安全服务的具有普适性的安全基础设施。这个定义涵盖的内容比较宽,是一个被很多人接受的概念。这个定义说明,任何以公钥技术为基础的安全基础设施都是PKI。当然,没有好的非对称算法和好的密钥管理就不可能提供完善的安全服务,也就不能叫做PKI。也就是说,该定义中已经隐含了必须具有的密钥管理功能。PKI是一种新的安全技术,它由公开密钥密码技术、数字证书、证书发放机构(CA)和关于公开密钥的安全策略等基本成分共同组成的。PKI是利用公钥技术实现电子商务安全的一种体系,是一种基础设施,网络通讯、网上交易是利用它来保证安全的。从某种意义上讲,PKI包含了安全认证系统,即安全认证系统-CA/RA系统是PKI不可缺的组成部分。3、PKI现状39 国外的PKI应用已经开始,开发PKI的厂商也有多家。许多厂家推出了可以应用的PKI产品,有些公司已经开始提供PKI服务。网络许多应用已经在使用PKI技术以保证网络的认证、非否认、加解密和密钥管理等。尽管如此,总的说来PKI技术仍在发展和完善之中。美国许多大企业已经在建立自己的PKI系统。作为PKI的一种应用,基于PKI的PKI市场也随着电子商务的发展迅速膨胀。国外的一些大的网络安全公司纷纷推出一系列的基于PKI的网络安全产品,如美国的Verisign,IBM,Entrust等安全产品供应商为用户提供了一系列的客户端和服务器端的安全产品,为电子商务的发展提供了安全保证。为电子商务、政府办公网、EDI等提供了完整的网络安全解决方案。中国,作为一个网络大国,发展自己的PKI技术是很有必要的。PKI技术,作为一项关键的密码技术,由于我们没有成熟的解决方案,这成为了我们的电子商务发展的一大瓶颈。网络,特别是Internet网络的安全应用已经离不开PKI技术的支持。网络应用中的认证、加解密的密钥管理、非否认等服务只有PKI技术才能提供。二、PKI的发展动向和趋势PKI提供的安全服务支持了许多以前无法完成的应用。PKI技术可以保证运行代码正确地通过网络下载而不被黑客篡改;可以保证数字证件,比如护照的真实性,而不用担心被证件阅读者假冒;可以用于版权保护而不用担心没有证据;可以用于负责任的新闻或节目分级管理从而净化文化环境,等等。PKI技术在国内应用的方面大概分为下面几个方面。第一,虚拟专用网络(VPN)。基于PKI技术的IPSec协议现在已经成为架构VPN的基础,它可以为路由器之间、防火墙之间或者路由器和防火墙之间提供经过加密和认证的通信。虽然它的实现会复杂一些,但其安全性比其他协议都完善得多。第二,安全电子邮件。目前发展很快的安全电子邮件协议是S/MIME(TheSecureMultipurposeInterneMtailExtension)这是一个允许发送加密和有签名邮件的协议。该协议的实现需要依赖于PKI技术。第三,Web安全。利用PKI技术,SSL协议允许在浏览器和服务器之间进行加密通信。还可以利用数字证书保证通信安全,服务器端和浏览器端分别由可信的第三方颁发数字证书,这样在交易时,双方可以通过数字证书确认对方的身份。但是,SSL协议本身并不能提供对不可否认性的支持,这部分的工作必须由数字证书完成。第四,电子商务的应用。PKI技术是解决电子商务安全问题的关键,综合PKI的各种应用,我们可以建立一个可信任和足够安全的网络。如银行、政府或其他第三方都可以是可信的认证中心。在通信中,利用数字证书可消除匿名带来的风险,利用加密技术可消除开放网络带来的风险,这样,商业交易就可以安全可靠地在网上进行。39 三、我对电子签章的一些观点本课题研究是基于Web的电子签章开发。随着近年来电子商务和电子政务的发展,电子签章技术作为安全领域的一大看点,正在快速发展。电子签章利用电子技术来表现和传递企业印章。正是这种网上操作的电子方式,使电子签章可以在制作、识别过程中对用户单位的身份进行认证,通过其可以追查到实际的业务交易者或文件执行者,并可以留下法律认可的交易凭据或事实凭据。从而明确双方责权利,保证交易的安全,起到与手写签字或者盖章的同等法律效力。从商务流程来看,电子签章系统的出现让企业摆脱了烦恼,提高了市场响应速度,增强了企业竞争力。以签订电子合同为例,它就是一个简单快捷的过程:首先要使用智能文档设计工具,编辑合同内容,签约双方填写相关合同信息,在确认后,甲方先盖上自己电子印章,即将一个类似U盘的物体插入电脑,二次输入密码后,用鼠标点击电子文件下方空白处,一个红色的公司印章就印在指定位置。之后,甲方通过网络将合同传输给乙方,乙方也用同样的方法盖上电子印章。这样,一份具有法律效力的电子合同几分钟就生效了,大大加快了办公效率。这些电子签章看似一个简单的图片,但用户却无法对它作任何复制、提取或修改,保证交易的安全。同样在网上行政审批上,远距离的同城或异地签订电子公文的处理也类同电子商务合同,也会很安全、方便、快捷。举例来看,像最近厦门推出的网上审批毕业生人事落户制度,只要一分钟即可办完一名毕业生人事落户手续,厦门跨部门网上审批显示了电子签章的高效率。参考文献:[1]PKI大师眼中PKI现状与未来趋势梁理旋[2]PKI的应用与发展分析张文吴娟《桂林航天工业高等专科学校学报》2006年01期[3]电子签章在诱惑与困惑中前行吴勇毅[4]基于PKI的网上交易安全中间件的研究与实现吕格莉,王东,戴 骥,邵自然微型电脑应用 2005年第21卷第12期[5]MichaelMyers,RichAnkney,AmbarishMalpani,etal.X.509InternetPublicKeyInfrastructureOnlineCertificateStatusProtocol-OCSP[S].RFC2560.PKIXWorkingGroup,1999.[6]ITU-TRecommendationX.509,InformationTechnology-OpenSystemsInterconnection-TheDirectory:AuthenticationFramework[S].1997.39 39 本科毕业设计(20届)基于Web的签章控件开发39 摘要【摘要】随着社会信息化的发展,对电子文档进行签章来确保文件的完整性、不可更改性和不可抵赖性越来越受到人们的重视。本文详细介绍了以PKI技术为核心的电子签章原理及相关技术手段,设计并实现了基于Web的电子签章控件开发。具体实现以下的功能:(1)生成数字摘要:接收页面传送过来的数据,用MD5算法加密(2)页面签章功能:利用数字证书的私钥对数字摘要签名(3)签章验证功能:验证签章人身份(4)页面验证功能:任何人都可以对页面的完整性进行验证,如果签章后的页面数据发生改变则提示页面被篡改(5)查看证书:查看签署者姓名。(6)签章时间:查看签署者签署页面的准确时间。该控件运作方式简便、成本低廉、安全性高,有着广阔的应用前景。【关键词】电子签章;公钥基础设施;数字摘要;RSA非对称加密;散列函数39 Abstract【ABSTRACT】Withthedevelopmentofsocialinformation,peoplepaymoreandmoreattentiontotheElectronicSignaturetoensuretheintegrityoftheelectronicdocumentsandnotbechangedandnon-repudiation.ThisthesisintroducesthePKItechnologyasthecoreprincipleoftheElectronicSignatureandrelatedtechnicalmeans.WedesignandimplementtheElectronicSignatureControlbasedonWeb.Itisrealizesseveralfunctionasfollows:(1)GenerationDigitalSummary:ToreceivedatatransmittedfromthewebpageandmakeuseofMD5toencrypt.(2)SignatureFunction:Usingdigitalcertificate'sprivatekeytosignthedigitalsummary.(3)VerificationFunction:ConfirmtheidentityoftheSignature.(4)PageValidation:Anyonecanverifythepage,ifpageischanged,thenthevalidationerror.(5)ViewCertificate:Viewthecertificateowner.(6)SigningTime:Checkthetimeofsignature.Thiscontrolofadvantagessuchassimpleuses,cheapcostandhighsecurity,andhaswindforeground.【KEYWORDS】ElectronicSignature;PublicKeyInfrastructure;DigitalDigest;RSAasymmetricencryption;HashFunction39 目录1概述11.1课题背景11.2国内研究现状11.3本控件的内容与意义22基于Web的电子签章原理及相关技术介绍32.1PKI技术介绍32.1.1PKI标准32.1.2数字证书42.1.3认证机构CA(CertificateAuthority)42.1.4PKI提供的服务52.2数字签名原理52.3签名算法52.3.1Hash函数概述52.3.2MD5算法62.3.3SHA和SHA-1安全散列算法72.3.4RSA算法82.4本章小结93基于Web的电子签章控件分析及设计103.1电子签章控件设计目标103.2电子签章的结构设计103.2.1什么是ActiveX103.2.2ActiveX的特点103.2.3选择ActiveX技术的原因103.3电子签章运行的流程113.3.1电子签章的签名流程113.3.2电子签章的验证流程113.4CryptoAPI函数分析123.5本章小结144基于Web的电子签章控件的实现1539 4.1使用VS2008创建mfcActiveX控件154.1.1使用VS2008创建ActiveX的步骤154.2页面引用控件154.3签名功能的实现154.3.1Web页面数据的提取154.3.2数字摘要的产生154.3.3页面的签章154.4签章图片的加载164.5控件上添加左键菜单184.6验证功能的实现194.7本章小结205基于Web的电子签章控件测试分析215.1功能测试215.1.1签名功能的测试215.1.2验证功能的测试215.1.3证书查看及身份识别功能测试225.2本章小结226结束语236.1总结236.2展望23参考文献24致谢25附录26引言39 近年来随着办公自动化的普及和电子商务的兴起,相关的电子文档传递、邮件发送等网络传输越来越频繁,商务、政务活动也从传统的物理方式转到网络空间进行,这就存在一个非常严重的问题——如何保证信息的机密性、完整性和不可否认性。电子签章就是随之而出现的高新技术。它主要解决对电子文档的签字盖章问题,用于辨识电子文档签署者的身份,保证文件的完整性,确保文件的不可更改性和不可抵赖性。电子签章泛指所有以电子形式存在,依附在电子文件并与其逻辑相关,可以用于辨识电子文档签署者身份,保证文件的完整性,并表示签署者肯定电子文档所陈述的内容是真实的。所以电子签章系统应该具有以下功能:1、电子文档的完整性。当文档在传送的过程中发生遗漏、错误或人为篡改时,电子签章应该能够检测出来。2、签署人的身份认证。当电子文档被签章后,其持章者的身份能被其他人确认。3、电子文档的不可抵赖性。当电子文档被签名后,签署人不可抵赖。所有电子签章技术中,PKI技术是最为成熟和合理的。以PKI技术为基础的电子签章系统安全性非常高、运作方式简便、成本低廉。国内社会的信息化程度越来越高,传统商业模式已经渐渐被电子商务取代。我国自2005年4月1日起施行《中华人民共和国电子签名法》,让电子签章有了法律保证,电子签章和纸质签章具有同样的效果。在电子信息化日趋完善的趋势下,在不久以后像电子报关、报税、审批等业务也都会采用电子签章的方式,可以预见电子签章的应用将会越来越广泛。本文对PKI技术原理和电子签章的具体实现进行了详细的描述,开发控件使用户对Web页面的签名变得更为方便、快捷。在公钥密码体制方面,采用最为成熟完善的RSA非对称加密算法。在框架技术方面,采用Microsoft提供的ActiveX技术和CryptoAPI接口函数。最后,对实现的电子签章控件做了功能测试。39 1概述1.1课题背景在传统的商务、政务活动中,书面合同或公文需要当事人或负责人签名、盖章,这是为了让交易双方辨别是谁签的合同,确认合同的真实性和完整性,法律才能承认这份合同的有效性。而在电子商务、政务活动中,交易双方不是面对面交易,而是通过电子文档的方式传递,这就必须依靠先进的技术来确认交易双方的真实身份,以保证交易的公平、公正,合同、公文的不可抵赖性,使得电子签章和手写签字、盖章具有同样的效果。1、电子商务对电子签章的需求对于电子商务而言,其核心内容主要体现在双方的契约中,换句话说,商务活动主要内容就是谈判、合同签订、合同执行。合同的基本要素包括要约、承诺、书面形式、签字盖章等,这些要素都是具体形式,可以保障合同的法律效力并明确双方的权利义务。但对电子商务而言,从传统的物理方式转为虚拟世界进行时,相应的合同要素就没有了原有的法律效应了,从而使电子合同乃至电子商务无法正常进行。而电子签章能够对电子商务活动双方的身份认证,保证电子文件的完整性,交易双方对签署的电子文件的不可抵赖性。2、电子政务对电子签章的需求国家信息化工作领导小组在颁布的《关于我国电子政务建设的指导意见》中规定国家政务内网主要承载中央和副省级以上地方各政务部门的办公业务,实现党委、人大、政府、政协、法院、检查系统(简称“六大系统”)间的互联互通。作为涉密系统,政务内网在建设中所采用的安全措施既要满足国家保密的规定,又要满足业务的需要。构建政务内网,基于数字证书的电子签章可以提供身份认证、机密性、完整性和不可抵赖性服务,并实现有效授权和安全审计,达到了是最基本的安全要求。1.2国内研究现状目前有很多可提供的电子签章的客户端软件产品,国内电子签章研究开发起步较晚,主要的产品是以PKI技术为基础的。经过近几年的发展,已经有了许多的比较成熟的产品,例如优泰科技的优泰电子签章系统、江西金格的电子签章系统和百成科技的电子签章系统等等。其中比较有特色的是江西金格的电子签章系统。金格可信电子签章系统产品采用COM/ActiveX技术开发,应用金格DBPacketTM对象包协议技术,将电子印章和数字签名技术完美结合为一体的应用软件系统。它可在WORD、EXCEL、HTML(WEB页面)、PDF、CAD图纸签章、TIF传真签章、XML数据签章、FORM表单、WPS文字、FILE文件签名、永中OFFICE以及自主知识产权的GDFTM版式文件上实现手写电子签名和加盖电子印章;并可将签章和文件绑定在一起,通过密码验证、签名验证、数字证书确保文档防伪造、防篡改、防抵赖,安全可靠。它具有制章的唯一性、不被变造、伪造,签章的真实性,文档完整性、真实性、不可篡改性。1.3本控件的内容与意义《电子签名法》的颁布与实施是中国社会信息化里程碑意义的大事,从长远看必将改变目前的商务模式和政务模式。由于商业模式越来越依赖互联网,IT厂商将面临巨大的市场需求,特别是以信息安全为主要经营方向的厂商具有非常现实的价值。虽然电子签章目前来讲应用不是非常广泛,但这种模式必将被人们接受。并且政府信息化已经进入实施阶段,一些政府机构的电子信息化趋于完善,在不久的将来像电子报关、报税、审批等业务也都会采用电子签名的方式,这对于厂商来讲,又是一个很大的市场[2]。39 安全认证技术是信息安全学的一个重要的内容。本文针对电子商务、电子政务等需要确定Web页面数据完整性、不可更改和不可抵赖性,设计实现一个基于Web页面的电子签章控件,可对Web页面进行签名。本文所作的具体工作如下:首先对电子签章的背景进行分析,选定以PKI为核心技术进行开发。其次,详细分析了基于Web页面的电子签章控件的原理及相关算法。具体设计了电子签章控件的功能并通过具体编程实现各个功能。39 2基于Web的电子签章原理及相关技术介绍基于Web的电子签章控件是通过网页加载控件,使持章者可以对所看到的网页数据完成签字盖章,与传统的手写签名、盖章具有同样的功效。主要解决Web页面的签字盖章问题,用于辨识Web页面签署者的身份,保证Web页面数据的完整性,确保Web页面数据的不可更改性和不可抵赖性。可通过多种技术实现电子签章,目前应用最为广泛的是基于PKI技术的数字签名技术。2.1PKI技术介绍PKI(PublicKeyInfrastructure)中文名称为公钥基础设施,是指用公钥概念和技术来实施和提供安全服务的安全基础设施。PKI产生于20世纪80年代,发展壮大于20世纪90年代,是一种新的安全技术,它由数字证书、证书发放机构(CA)、公开密钥密码技术和关于公开密钥的安全策略等基本成分共同组成。PKI是利用公钥技术实现电子商务安全的一种体系,是一种基础设施,为网络世界各种交易提供安全保证[4]。2.1.1PKI标准从整个PKI体系建立于发展历程来看,与PKI相关的标准主要包括以下一些。(1)X.209(1988)ASN.1基本编码规则的规范[8]ASN.1是描述在网络上传输信息格式的标准方法。它有两部分:第一部分(ISO8824/ITUX.208)描述的信息内的数据、数据类型及序列格式,也就是数据的语法;第二部分(ISO8825/IUTX.209)描述如何将各部分数据组成消息,也就是数据的基本编码规则。ASN.1原来是作为X.409的一部分而开发的,后来才独立地成为一个标准。这两个协议除了在PKI体系中被应用外,还广泛的应用于通信和计算机的其他领域。(2)X.500(1993)信息技术之开放系统互联:概念、模型、服务及简述[6][9]X.500是一套已经被国际化标准组织(ISO)接受的目录服务系统标准,它定义一个机构如何在全局范围内共享其名字和与之相关的对象,它基本上是用来查询有关人员的信息(邮政地址、电话号码、电子邮件地址等)的一种服务,可以检索的字段有:姓名、人员所在机构名、所在机构的部门名称以及国家名称。目录允许维护,分发,并且有一些安全方面的保证。(3)X.509(1993)信息技术之开放系统互联:鉴别框架[7]X.509是由国际电信联盟(ITU-T)制定的数字证书标准,它还定义了公钥证书、证书吊销清单、属性证书和证书路径验证算法等证书标准。X.509最初是在1988年发布的,当时是作为ITUX.500目录服务标准的一部分,它设定了一系列严格的CA分级体系来颁发数字证书。X.509v3是最新的一个版本,它支持扩展概念,因此任何人均可定义扩展并将其纳入证书中,用来提供更多的灵活性及特殊性应用环境下所需的信息传送。(4)PKCS系列标准[10]由RSA实验室制定的PKCS系列标准,是一套针对PKI体系的加解密、签名、密钥交换、分发格式及行为标准,该标准目前已经成为PKI体系中不可缺少的一部分。(5)OCSP在线证书状态协议OCSP(OnlineCertificateStatusProtocal)是Internet工作任务组(IETF)颁布的用于检查数字证书在某一交易时间是否仍然有效的标准。CA认证中心在提供证书状态的实时查询时要用到这个协议。协议规定了服务器和客户端应用程序的通信语法。(6)LDAP轻量级目录访问协议39 LDAP规范简化了笨重的X.500目录访问协议,并在数据表示、编码、功能性和传输方面都进行了相应的修改。LDAPv3已经在PKI体系中广泛应用于证书信息发布、CRL信息发布、CA政策以及与信息发布相关的各个方面。除了以上协议外,还有一些构建在PKI体系上的应用协议,这些协议时PKI体系在应用和普及化方面的代表作,包括SET协议和SSL协议。2.1.2数字证书数字证书类似于我们现实生活中的居民身份证,居民身份证是由权威机构公安部签发的,同样数字证书也需要权威机构CA来签发,用以在数字领域中证实用户本身身份的一种数字凭据。数字证书就是将证书所有者的个人信息和密钥绑定的数字文件。数字证书还必须包括签发机构CA对其的签名,以保证该证书的合法性和有效性,也保证了用户密钥和相关信息的真实性和完整性。数字证书和相关的私钥可以提供身份认证,证书的公钥可用于加密数据或者验证对应私钥的签名。2.1.3认证机构CA(CertificateAuthority)数字证书认证中心(CA)是PKI的主要组成实体。它主要工作是产生、分配并管理所有实体所需的身份认证的数字证书。每一份数字证书都与上一级的数字签名证书相关联,最终通过安全链追溯到一个已知的并广泛认为是安全、权威、足以信任的认证机构----根认证机构(根CA)。认证机构CA的建设必须根据国家市场准入政策由国家主管部门批准,具有权威性。CA机构本身的建设应具备条件、采用的密码算法及技术保障是高度安全,具有可信任性。CA是不参加交易双方利益的第三方机构,具有公正性。2.1.4PKI提供的服务到目前为止,完善并正确实施的PKI系统是全面解决所有网络交易和通信安全问题的最佳途径。在电子商务和电子政务活动中,最重要的是要数据的保密性、数据的完整性、数据的不可抵赖性及身份的认证。PKI能够提供服务来保证电子商务和电子政务的正常进行。PKI所提供的服务主要包括以下几方面:1、认证PKI技术提供基于公开密钥的身份认证。客户A利用自己独有的私钥对数据进行签名,客户B利用对应的公开密钥对签名数据解密,成功则认证该数据是客户A签名的,客户A无法抵赖。2、支持密钥管理在庞大的网络世界中,密钥管理中非常重要的一项功能就是密钥恢复。当个别反政府分子利用加密系统攻击时,我们可以通过特定的程序获得其通信内容,保障国家的信息安全。PKI拥有良好的密钥恢复机制,网络正常有序的运行。3、完整性与不可否认完整性与不可否认是PKI提供的最基本的服务。当数据被用户A用私钥签名后,当他用对应的公钥解密成功时,就可以保证数据没有被更改,数据时完整的。同样,其他用户公开密钥对签名解密成功,则用户A就不能否认对数据的签名。2.2数字签名原理数字签名是一种确保数据完整性和原始性的方法。数字签名可以提供有力证据,表明自从数据被签名来没有被更改,也可以用来确认签名人或实体的身份,不可抵赖。数字签名的“完整性”和“不可抵赖性”,是确保电子商务安全的基本条件。39 数字签名采用双重加密的方法来实现防伪、防赖。其原理如下:1、被签名的数据先用散列函数生成固定长度的数字摘要。2、签名人利用私钥将数字摘要再次加密,形成数字签名。3、当需要验证时,先签名数据重新用同样的散列函数生成数字摘要A。4、利用相应的公钥对数字签名解密,得到数字摘要B。5、将数字摘要A与数字摘要B比较。两者一致,则说明数据没有修改,数据是完整的,且签名人不可抵赖。2.3签名算法2.3.1Hash函数概述Hash函数是将一个任意长度的消息(Message)映射成固定长度消息的函数,即Hash函数h(m)作用于任何长度的消息m,它返回一个固定长度的散列值:h=h(m)。Hash函数应用在只需加密,无需解密的特殊场合。例如为了鉴别消息有没有被篡改,在消息传送之前,作Hash处理计算出散列值,然后和消息一起传送出去。接收方将接收到的消息进行Hash处理计算出散列值,将之与传送过来的散列值比较,匹配成功则消息没有被修改,否则,消息一定被修改了。实际上,Hash函数还应用在很多场合,如在口令表加密、数字签名等安全事件中都有应用,在数字签名中应用的Hash函数必须满足以下条件。(1)单向Hash函数。设h是一个Hash函数,给定一个Hash值y,如果寻找一个消息x,使得y=h(x)是计算上不可行的,则称h是单向Hash函数。(2)弱抗碰撞Hash函数。设h是一个Hash函数,任给一个消息x,如果寻找另一个不同的消息x’使得h(x)=h(x’)是计算上不可行的,则称h是弱抗碰撞(WeaklyCollision-Free)Hash函数。(3)强抗碰撞Hash函数。设h是一个Hash函数,如果寻找两个不同的消息x和x’,使得h(x)=h(x’)是计算上不可行的,,则称h是强抗碰撞(StronglyCollision-Free)Hash函数。2.3.2MD5算法1990年10月,著名密码学家Rivest在MIT(MassachusettsInstituteofTechnology)提出了一种Hash函数,称为MD4,MD表示消息摘要。MD5是MD4的改进版本。MD5不依赖任何密码系统和假设条件,是一种将一个任意随机长度的信息经四轮变换得到一个128位的信息摘要,算法简洁,计算速度快,特别适合32位计算机软件实现[1]。MD5算法可简述如下:MD5算法的输入可以是任意长度的消息x,对输入消息按512位的分组为单位进行处理,输出128位的散列值MD(x)。整个算法分为五个步骤,如图2-1所示。39 数字证书········MD128CVL-1CV1128IV12864bitX1000···0512×LY0(512)Y1(512)HMD5HMD5········YL-1(512)128HMD5图2-1MD5算法结构步骤一增加填充位在消息x右边增加若干为的比特,使消息的总长度于448模512同余。也就是说,填充后的消息长度比512的某个倍数少64位。即使消息长度满足以上条件,仍然需要填充。例如,若消息长为448,则仍需填充512位使其长度为960。填充长度为1~512。填充的比特第一位为1,其他的为0。步骤二附加消息长度值用64位表示原始消息x的长度,并将其附加在步骤1所得结果之后。若填充前消息长度大于264,则只使用其低64位。填充方法是把64bit的长度分成两个32bit的字,低32bit字先填充,高32bit字后填充。步骤三初始化MD5缓冲区MD5算法的中间结果和最终结果都保存在128位的缓冲区中,缓存区用4个32位的寄存器表示。4个缓存区记为(A,B,C,D)其初始值为:A=0x01234567B=0x89abcdefC=0xfedcba98D=0x76543210步骤四以512位的分组(16字)为单位处理消息MD5是迭代Hash函数,其压缩函数为:HMD5:{0,1}128+512---->{1,1}128步骤四是MD5算法的主循环,它以512btit作为分组,重复应用压缩函数HMD5,从消息Y的第一个分组Y0开始,依次对每个分组Yi进行压缩,直至最后分组YL-1,然后输出消息x的Hash值,MD5的循环次数等于消息Y中的数目L(见图2-1)。步骤五输出依次对消息的L个512bit的分组进行处理,第L个分组处理后的输出值即是消息x的散列值MD(x)。2.3.3SHA和SHA-1安全散列算法在1993年,SHA(安全散列算法)由美国国家安全标准和技术协会提出,并作为联邦信息处理标准公布;1995又发布了一个修订版,通常称之为SHA-1.SHA-1是基于MD4算法的,并且它的设计在很大程度上是继承MD4的,是目前被广泛认可的散列算法之一。SHA-139 是一种数据加密算法,该算法的思想是接收一段明文,然后以一种不可逆的函数转换为一段更短的密文。换言之,就是将一段输入码映射成为一段更短且位数固定的输出序列。在电子签章控件中,我们先将页面取出的数据进行以上的处理,得到固定位的数字摘要。该数字摘要比原文的数据长度要短很多,因而可以大大提升加密算法的运算速度。由于Hash函数的强抗碰撞性,是无法找到两个不同的消息经过Hash函数计算后两者摘要相等,所以保证了任何人无法利用一个改动后的数据来替换原有数据。由于Hash函数的弱抗碰撞性,无法通过穷举法或其他方法找到那个经过Hash函数计算后生成的消息摘要和原消息摘要相等,保证了信息的安全性,并可由强抗碰撞性和弱抗碰撞性保证数据的完整性;由于Hash的单向性,已知消息摘要无法反求出原数据,保证数据的机密性。因此,在电子签章中应用Hash算法会大大提高安全性和运行速度。2.3.4RSA算法RSA密码系统是以其发明者Rivest、Shamir和Adleman的名字命名的,它是目前应用最广的公钥密码系统之一。RSA密码系统即可以用于加密,又可以用于数字签名,其安全性是基于大整数因子的困难性。RSA密码系统是由以下几个算法组成[3]:密码生成算法(1)选取两个大素数p和q,计算n=p×q和欧拉函数φ=(p-1)×(q-1);(2)随机选取整数e,1//此为控件的注册ID4.3签名功能的实现4.3.1Web页面数据的提取由于人力和时间的限制,本电子签章控件在Web页面数据的提取方面,采用很简单的方法。利用js语言获取页面的输入数据。具体代码如下:vartheme=document.getElementById("theme").value;varname1=document.getElementById("name1").value;varname2=document.getElementById("name2").value;varcontract=document.getElementById("contract").value;4.3.2数字摘要的产生如上所述将Web页面数据取出后,将数据传给控件,控件将数据用MD5算法加密,生成128位的字符串。具体代码如下:MD5md5(m_crypt);stringstrl=md5.toString();strl中就是页面数据生成的数字摘要。4.3.3页面的签章获得数字摘要后,对数字摘要调用签名函数enCrypt(),签名函数具体实现过程图4-1。39 获取CSP句柄打开证书存储区域从存储区中获取指定证书利用证书对数字摘要签名释放证书和关闭存储区域保存签名后数据和签名时间图4-1签名函数实现过程具体实现如下:1、获取CSP句柄。调用CryptAcquireContext函数,函数第一个参数返回CSP句柄。2、打开证书存储区域。调用CertOpenSystemStore函数,函数返回证书存储区域句柄。3、从存储区域获得指定证书。调用CertEnumCertificatesInStore函数。该函数循环枚举存储区域中的数字证书,然后调用CertGetCertificateContextProperty函数获取证书的扩展属性,根据属性找到指定的证书或合适的证书。4、利用证书对数字摘要签名。两次调用CryptSignMessage函数,第一次获得签名后加密数据的长度L,然后申请一块长度为L的BYTE数组pBlob存储加密数据。第二次调用,将加密数据写入BYTE数组中。5、保存签名后的数据和签名时间。签名时间准确来说应该是来自第三方认证机构CA,本文由于条件限制,就取系统时间。6、释放证书和关闭存储区域。调用函数CertFreeCertificateContext和CertCloseStore,释放证书和关闭存储区域。4.4签章图片的加载签名功能完成后,就要在Web页面上加载签章图片。VS2008在创建mfcActiveX控件后就为我们自动生成绘图函数OnDraw()函数,我们只要在找到这个函数添加绘图代码就可以了。在编写绘图代码之前,我们先要在工程中添加签章图片资源。添加资源的步骤:首先在工程的资源视图,点击右键添加资源,如图4-2。39 图4-2添加资源然后,选择Bitmap,导入签章图片(见图4-3),就可以导入签章图片,图片ID命名为IDB_BITMAP1。图4-3导入图片导入资源后,我们就可以在OnDraw()函数中编写绘图代码。具体代码如下:CBitmapm_cBitmap;m_cBitmap.LoadBitmap(IDB_BITMAP1);CDCm_MemDc;m_MemDc.CreateCompatibleDC(pdc);m_MemDc.SelectObject(&m_cBitmap);BITMAPbmp;m_cBitmap.GetBitmap(&bmp);39 pdc->StretchBlt(rcBounds.left,rcBounds.top,rcBounds.Width(),rcBounds.Height(),&m_MemDc,0,0,bmp.bmWidth,bmp.bmHeight,MERGECOPY);m_MemDc.DeleteDC();4.5控件上添加左键菜单添加左键菜单的主要目的是为了方便查看证书所有者的姓名和签名时间。首先,我们还是先在资源视图中添加菜单资源,方法和添加图片资源同样。添加菜单资源成功后,编辑菜单项,如图4-4所示。图4-4编辑菜单因为菜单响应按下左键消息,所以在控件按下左键的消息函数OnLButtonDown()中添加以下代码:CMenumenu,*pop;menu.LoadMenu(IDR_MENU1);pop=menu.GetSubMenu(0);ClientToScreen(&point);pop->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,point.x,point.y,this);COleControl::OnLButtonDown(nFlags,point);添加左键菜单后,还要为每个菜单项添加添加响应函数。菜单项(签署人)的响应函数中添加以下代码:CStringstr="签署人:";str.Append(m_SignerName);AfxMessageBox(str);变量m_SignerName中存储着数字证书的所有者姓名。菜单项(签署时间)的响应函数中,由于CTime类中时间都是int类型,需要转换为CString类型,转换代码如下:CStringday,hour,month,year;day.Format("%d",m_SignerTime.GetDay());hour.Format("%d",m_SignerTime.GetHour());month.Format("%d",m_SignerTime.GetMonth());year.Format("%d",m_SignerTime.GetYear());转换后,再添加以下代码:CStringstr="签名时间:";str.Append(year);str.Append("年");str.Append(month);str.Append("月");str.Append(day);str.Append("日");str.Append(hour);str.Append("时。");39 AfxMessageBox(str);4.6验证功能的实现对需要验证的页面,重复页面数据提取,生成新的数字摘要。然后利用签名数据解密出原数字摘要,将新旧数字摘要匹配,若成功,则代表页面数据完整。验证函数具体过程实现如图4-5。打开一个消息解码,返回消息句柄增加签名数据到消息中利用公钥解密,获得旧数字摘要从验证页面获得新的数字摘要新旧数字摘要匹配身份确认,验证完成图4-5验证函数实现过程具体实现如下:1、打开一个消息解码。调用CryptMsgOpenToDecode函数,函数返回消息句柄。2、增加签名数据到消息中。调用函数CryptMsgUpdate,该函数的第二、三个参数分别为签名数据和长度。3、利用公钥解密,获得就数字摘要。此过程要四次调用CryptMsgGetParamhas函数。前两次是获得解密后数字摘要和长度。后两次是验证解密出信息是否更改,信息更改则验证失败。四次函数调用函数CryptMsgGetParamhas由于参数的不同,作用也不同。4、从验证页面获得新的数字摘要。详细过程见4.3.1和4.3.2两节。5、新旧数字摘要匹配。新旧数字摘要都是BYTE数组,因此,可以简单的一位位的对比,只要有一位不相同,则匹配失败。匹配成功,则确定Web页面的完整性和不可更改性。6、身份确认。匹配成功后,读取证书中的所有者字段,可知该Web页面的签署者,签署者不可抵赖。调用函数CertGetNameString,其中第五个参数返回签署者得姓名。4.7本章小结本章详细讲述了基于Web的电子签章控件各个功能的具体实现过程。通过具体编程,实现了控件的签章功能、签章图片加载、控件左键菜单、验证功能及查看证书功能等,确保被签章的Web页面的完整性、不可更改性和不可抵赖性。39 5基于Web的电子签章控件测试分析5.1功能测试5.1.1签名功能的测试签名功能的实现,就是利用K盘中的数字证书的私钥,对页面数据加密,最后在页面上显示一个签章图片,完成签名。1、调用K盘中的数字证书。点击页面的签名按钮,若签署者忘记插入K盘,页面会跳出提醒用户插入K盘。如图5-1。图5-1获取容器句柄失败插入K盘后,会跳出K盘输入密码界面,输入密码后才能使用证书。具体实现如图5-2。图5-2输入K盘密码2、签章图片的显示输入密码后,签名成功后,Web页面上就会显示签章图片。如图5-3。图5-3显示签章图片39 5.1.2验证功能的测试验证功能的实现,就是对Web页面进行验证,成功则显示“Web页面完整”,失败则显示页面被篡改。点击Web页面的验证按钮,成功则跳出Web页面完整的提醒框,如图5-4所示。图5-4验证成功修改Web页面数据,点击验证按钮,则跳出页面被篡改的提醒框,如图5-5所示图5-5验证失败5.1.3证书查看及身份识别功能测试在Web签章图片上添加左键菜单功能,当签章图片显示后,左键点击签章图片,则跳出“签署人”和“签名时间”的菜单。如图5-6。图5-6签章左键菜单点击签署时间,则显示签名时间。如图5-7所示。图5-7显示签名时间点击签署人,则显示签署人姓名。如图5-8所示。39 图5-8显示签署人姓名5.2本章小结本章电子签章控件进行功能测试,分别对控件的签名功能、验证功能和查看证书及身份识别功能进行测试,都达到了预期效果。39 6结束语6.1总结随着计算机的普及和网络的飞速发展,整个社会的信息化程度越来越高,电子商务和电子政务已经深入我们生活的方方面面。随之而来的信息安全问题也越来越严峻。电子化的商业合同和政府公文,都需要电子签章来代替传统手写签字盖章来确保电子文档的信息完整性、不可更改性和不可抵赖性。在各种实现电子签章的技术中,基于PKI的Web页面签章运作方式简单、成本低廉、安全性高,且技术最为成熟完善。本文使用公钥密码体制,利用非常成熟的RSA算法,有效地实现对Web页面的签章,并确保了Web页面的完整性、不可更改性和不可抵赖性以及身份认证。总结全文,本文主要完成以下工作:(1)通过对电子签章现状的分析,选择基于Web的电子签章的开发。(2)对电子签章的基础原理PKI技术,介绍了其标准协议、数字签名的基本原理,分析了RSA非对称算法和Hash数字摘要算法。(3)详细设计了本电子签章控件的目标,描述数字签名原理,分析CryptoAPI接口函数。(4)根据电子签章功能设计,实现控件在页面的加载、签名功能、加载签章图片、添加控件左键菜单、签章验证功能及认证并查看证书功能。(5)从电子签章实现功能方面,对控件进行了功能性测试。6.2展望本文虽然完成了电子签章的核心功能,但基于Web页面的电子签章控件开发还有很多方面还需要进一步来研究:(1)获取页面数据的方法过于简单,不能适用其他大部分Web页面。(2)签章图片和签名应该让用户选择。(3)签章图片未能自由移动。(4)关于签名数据的存储可以有两种方法,一是将网页数据+签名消息+证书+签章图片+控件打包存为本地文件,当需要验证时,将文件取出,还原为网页形式;二是,将网页数据、签名消息、数字证书、签章图片存到服务器中,验证时再取出。本文由于时间和知识储备的不足,未能完成此项功能。39 参考文献[1]何大可,彭代渊,唐小虎等,现代密码学[M],人民邮电出版社,2009[2]徐俊,基于PKI的电子签章系统客户端的设计与实现[D],硕士论文,软件工程,苏州大学,2005[3]丁宵琪,基于PKI的电子签章系统客户端设计与应用[D],硕士论文,计算机应用技术,西南交通大学,2005[4]郭改文,面向服务的网格安全研究及设计[J],商场现代化,2006[5]Microsoft.DataEncryptionwithCryptoAPI[EB/OL],http://msdn.microsoft.com/zh-cn/library[6]CarlM.Ellison,ThenatureofauseablePKI,Intel,SecurityTechnologyLab,1999[7]MaryR.Thompson,Certificate-BasedAuthorizationPolicyinaPKIEnvironment,LawrenceBerkeleyNationalLaboratory,2003[8]赵为强,基于PKI体系的网络完全电子钥匙的研究和开发[D],硕士论文,电力电子及电力传动,东南大学,2004[9]冯兆泰,PKI/CA在电子税务系统中的应用和研究[D],硕士论文,软件工程,华南理工大学,2004[10]赵迎春,绵阳市电子政务外网安全系统的关键问题研究及实施[D],电子与信息工程,电子科技大学,2004[11]肖宁,基于Diffie-Hellman的密钥交换协议[J],中国科技博览,2010[12]伍江耀,电子档案保全与固定技术的研究与实现[D],计算机应用技术,同济大学,200639

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭