法律状态公告日
法律状态信息
法律状态
2015-09-09
未缴年费专利权终止 IPC(主分类):H04L9/30 授权公告日:20110615 终止日期:20140722 申请日:20080722
专利权的终止
2011-06-15
授权
授权
2009-10-21
实质审查的生效
实质审查的生效
2008-12-10
公开
公开
技术领域
本发明涉及一种基于Web服务的电子公文安全传输方法,主要用于电子政务领域中。
背景技术
电子公文交换,是指一个将AJAX技术和Web服务技术结合的技术。通过设计一种电子公文交换机制,旨在解决不同政务办公部门之间电子文档传输和处理的统一标准问题,提高在此期间的安全性和有效性。根据电子政务的业务特点,采取B/S模式作为客户端和服务器之间的结构,采用分布式的体系结构作为各部门间政务信息交互的方式,采用Web服务技术作为该电子公文交换机制的支撑技术。系统遵循《基于XML的电子公文格式规范》作为描述和表示电子公务的规范,提高了系统的兼容性和互操作性。
但是,在基于Web服务的电子公文交换中,安全问题已经逐步成为了一项巨大的挑战。在电子公文交换系统的应用场景中,信息在不同部门间传输,通信内容往往具有重要的业务信息,数据通信需要保证不被第三方获取和掌握。特别是Web服务松耦合的特点,提高了对安全性的要求,也成为面向服务环境中用户最关心的问题。Web服务要被广大企业用户所接受,必须解决它所面临的安全问题。而传统的安全机制无法针对Web服务的松散耦合、分布的特点,实现一种很好的安全保障。
具体来说,传统的安全机制主要采用传输层支持的安全协议,如SSL、TLS等。而Web服务技术作为建立在传统网络结构上层的技术结构,可以利用这些技术作为安全机制的基础,实现数据加密、认证、数据完整性和授权等安全需求。但是,与SOAP本身消息级的特点相比,这些技术只能对整个SOAP消息进行加密,而不能将安全机制细化到消息内部,形成细粒度的安全级别,往往导致大规模数据传输时的性能损耗,形成了Web服务的瓶颈。同时,根据Web服务的需求特点,还需要采用其它多种传输方式,如SMTP、FTP和Reliable HTTP等,这些协议并不一定适用建立在HTTP基础上的安全传输方法。
此外,在Web服务环境中,SOAP消息从发送方到接收方传递的过程中,根据具体业务的需要,有可能经过多个中介点。因此,必须考虑发送方到中介点、中介点之间以及中介点到接收方过程中的安全机制,以保证SOAP消息在经过多个中介点的传输过程中安全,即端到端的安全机制。传输级协议SSL/TLS只能提供点到点的安全,而无法提供端到端的安全。
与此同时,申请专利号为200410057153.6的通过专用字库,在公文交换或打印过程中,自动加密电子公文或文档,使接收单位打印的每份电子公文或文档彼此在部分字形上有细微差别,形成电子公文或文档的特殊编码,并通过手工或OCR技术鉴别公文或文档的出处与真伪。然而,这种技术存在着保密强度不高,可非法读取电子公文信息,易受到网络中间人攻击等缺点。
发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种基于Web服务的电子公文安全传输方法,从而保证电子公文在端到端传输及多点之间的传输安全,使电子公文系统的跨区域、跨组织的安全特性得到有效和保证。
本发明采用以下技术方案:一种基于Web服务的电子公文安全传输方法,其特征在于:电子公文安全交换过程包括三种情况:客户端加密-客户端解密;客户端加密-服务器端解密;服务器端加密-客户端解密,其步骤分别如下;
客户端加密过程
(1)通过Javascript程序读取待发送的电子公文信息和相关密钥,所述的相关密钥包括DES对称密钥和RSA非对称加密算法中的公有密钥;
(2)通过Java-Applet程序利用读取的DES对称密钥对电子公文信息进行加密处理,得到密文M1;
(3)通过Java-Applet程序利用读取的RSA非对称加密算法中的公有密钥对DES对称加密密钥进行加密处理,得到加密后的密钥K1;
(4)根据上述步骤(2)得到密文M1、步骤(3)得到的加密后的密钥K1和加密算法DES及RSA,构造SOAP消息,传输给接收方;
客户端解密过程
(5)通过Javascript程序对接收到的SOAP消息进行解析,提取出加密处理后的密文M1、加密后的密钥K1和加密算法DES及RSA;
(6)通过Java-Applet程序利用RSA算法中的私有密钥对DES对称密钥进行解密操作,得到DES解密密钥;
(7)Java-Applet程序通过DES解密密钥,对上述步骤(5)中提取出的密文M1进行解密操作,得到解密后的电子公文信息;
(8)将经解密处理后的电子公文信息通过HTML形式展现给相关用户;服务器端加密过程
(9)通过Java程序读取相关密钥信息和待加密的电子公文信息,所述的相关密钥包括DES对称密钥和RSA非对称加密算法中的公有密钥;
(10)通过Java程序使用所述步骤(9)中读取的DES对称密钥,对待发送的电子公文信息进行加密处理,得到密文M2;
(11)通过Java程序利用读取的RSA非对称加密算法中的公有密钥对DES对称加密密钥进行加密处理,得到加密后的密钥K2;
(12)根据上述步骤(10)得到密文M2、步骤(11)得到的加密后的密钥K2和加密算法DES及RSA,构造SOAP消息传输给接收方;
服务器端解密过程
(13)通过Java程序对接收到的SOAP消息进行解析,提取出加密处理后的密文M2、加密后的密钥K2和加密算法DES及RSA;
(14)通过Java程序利用RSA算法中的私有密钥,利用私有密钥对DES对称密钥进行解密操作,得到DES解密密钥;
(15)Java程序通过DES解密密钥,对步骤(13)中提取出的密文M2进行解密操作,得到解密后的电子公文信息。
本发明与现有技术相比的优点在于:
(1)基于Web服务的安全传输方法,确保本发明中的电子公文系统的跨区域、跨组织的安全特性。
本发明通过实现WS-Security协议的相关规范标准,将原有的一些安全保障机制都建立在SOAP协议基础之上,主要解决Web服务在传输过程中的机密性等安全问题,它具有可扩展性、平台无关性等优点。在本发明中所采用的基于Web服务的安全机制,事实上是对SOAP消息的一种扩展,从而有效地集成原有的一些安全处理机制,确保本发明中的电子公文系统的跨区域、跨组织的安全特性。
(2)对称加密算法和非对称加密算法相结合的加解密机制,达到效率和安全性兼顾的效果。
对称加密算法是指,加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥。对称加密算法使用起来简单快捷,密钥较短,且破译困难。对称加密的缺点在于它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,因此,对称加密算法的安全性不高。而非对称加密算法是指,加解密过程需要两个密钥:公开密钥和私有密钥。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。虽然非对称加密算法的安全性提高了,但是非对称加密的缺点在于算法实现后的效率低、速度慢。
在本发明中,在公文数据传输过程中,是通过运用对称加密算法和非对称加密算法相结合的方法,从而达到效率和安全性兼顾的效果。
(3)基于Web浏览器的Ajax+Applet访问,提高系统的用户友好性和易用性。
在本发明中,为减少服务器的负担,提高系统的用户友好性和易用性,采用Ajax技术,由Ajax形成SOAP消息。但是由于Ajax技术本身对加密解密的机制支持有限,因此采用Java中的Applet技术作为辅助实现。Applet是伴随Java语言诞生和发展的技术。用户可以通过网络将它下载到浏览器中运行。并可以将Applet嵌入到网页中,形成支持Applet的页面效果。因此,系统中由Ajax进行展示和SOAP操作,加密解密的功能由Applet执行,Applet可以作为组件代码,嵌入到Ajax页面当中,将明文SOAP消息转变为暗文SOAP消息,发送到服务器端。服务器端进行解密,变成明文SOAP后进行业务功能的执行。
(4)此外,本发明的私有密钥采用USBKey方式存储,基于Javascript的密钥读取,进一步保证了用户认证的安全性。
传统的信息安全与保护措施是通过软件实现加密和签名。但这种方法存在许多潜在的危险,因为软件实现加密和签名时,必须在电脑的处理器中被执行,意味着处理器完全可以得到密钥。安全隐患出现了,因为黑客完全有能力侵入你的电脑,甚至从网络通讯过程中获取密钥,并且在非授权的情况下使用这个密钥。一旦黑客拥有了这个密钥,它就可以在系统之外对截获的数据进行加密和解密。面对现在频繁出现的黑客入侵事件,个人和企业内部的大量信息财富正面临着各种危险。因此,在本发明中,为了更好的提高安全性,在Ajax客户端是采用了USBKey方式存储密钥。
USB Key是一种USB接口的硬件设备。它内置单片机或智能卡芯片,有一定的存储空间,可以存储用户的私钥以及数字证书,利用USB Key内置的公钥算法实现对用户身份的认证。由于用户私钥保存在密码锁中,理论上使用任何方式都无法读取,因此进一步保证了用户认证的安全性。
附图说明
图1为本发明采用的客户端加密过程示意图;
图2为本发明采用的客户端解密过程示意图;
图3为本发明采用的服务器端加密过程示意图;
图4位本发明采用的服务器端解密过程示意图;
图5为本发明采用的Javascript程序读取私有密钥过程示意图。
具体实施方式
本发明实现一种基于Web服务的电子公文安全机制,具体的实施说明如下所示:
1、客户端基本加密过程如图1所示,具体步骤如下:
(1)通过Javascript程序读取待发送的电子公文信息和相关密钥,所述的相关密钥包括DES对称密钥和RSA非对称加密算法中的公有密钥;
通过Javascript程序读取待发送的电子公文信息和相关密钥的过程为:
a.Javascript程序通过搜索所在主机的指定路径,读取待发送的电子公文信息;
b.Javascript程序通过搜索所在主机的指定路径,读取DES对称加密密钥,以便在加密处理时使用;
c.Javascript程序通过搜索所在主机的指定路径,读取非对称加密算法中的公有密钥,以便在加密处理时使用。
(2)通过Java-Applet程序利用上述读取的DES对称密钥对电子公文信息进行加密处理,得到密文M1;
(3)通过Java-Applet程序利用上述读取的RSA非对称加密算法中的公有密钥对DES对称加密密钥进行加密处理,得到加密后的密钥K1;
(4)根据上述步骤(2)得到密文M1、步骤(3)得到的加密后的密钥K1和加密算法DES及RSA,构造SOAP消息,传输给接收方;
构造SOAP消息包括以下具体步骤:
a.在SOAP消息的头部,加入符合WS-Sercurity安全规范协议的安全信息,包括加密后的密钥K1,以及加密中所使用的加密算法和密钥信息,具体安全信息存放位置,如下所示:
b.将加密后的密文集成到SOAP消息的体部,具体存放位置,如下所示:
c.最后,将按上述步骤所构造的SOAP消息发送给接收方,其中,按照上述步骤所构造的SOAP消息的完整格式如下所示:
2、客户端基本解密过程如图2所示,具体步骤如下所示:
(5)通过Javascript程序对接收到的SOAP消息进行解析,提取出加密处理后的密文M1、加密后的密钥K1和加密算法DES及RSA;
对SOAP消息进行解析的过程如下:
a.通过Javascript程序在本地主机的指定路径上,找到带有密文信息的SOAP消息后,再提取出SOAP消息的体部,即加密处理后的密文M1、头部中的<wsse:Security></wsse:Security>所包含的加密后的密钥K1和加密算法DES及RSA;
b.通过Javascript程序解析SOAP消息头部中的<wsse:Security>,从中提取出加密后的密钥K1和加密算法DES及RSA。
(6)通过Java-Applet程序利用RSA算法中的私有密钥对DES对称密钥进行解密操作,得到DES解密密钥;
上述的私有密钥通过USBKey方式保存,并由Javascript程序提取。
通过Javascript程序提取出由USBKey方式保存的RSA算法中的私有密钥的过程如图5所示:
a.通过Javascript程序首先对主机进行搜索,搜索是否具有U盘或其他可移动存储设备,如果搜索结果是没有,则提示用户“尚未发现可移动存储设备”,并等待用户插入存储有密钥的U盘;
b.如果Javascript程序搜索到U盘,则从中读取存储有私有密钥的文件。
(7)Java-Applet程序通过DES解密密钥,对上述步骤(5)中提取出的密文M1进行解密操作,得到解密后的电子公文信息;
(8)将经解密处理后的电子公文信息通过HTML形式展现给相关用户;
在这一步中,主要是通过XSLT转换器生成HTML文件,具体过程如下:通过XSLT转换器生成HTML文件,其中,XSLT代表XSL转换(XSL Transformations),XSLT是用于把XML文件转换成另一份XML文件,或者转换成另一种被浏览器所识别的诸如HTML和XHTML类型的文件。通常情况下,XSLT是通过把每个XML元素转换成(X)HTML文件来完成的。
3、服务器端加密过程如图3所示,与客户端加密过程比较,服务器端加密过程基本类似,不同之处在于对电子公文信息进行加密的过程中使用的是Java程序,而不是Java-Applet程序,具体步骤如下所示:
(9)通过Java程序读取相关密钥信息和待加密的电子公文信息,所述的相关密钥包括DES对称密钥和RSA非对称加密算法中的公有密钥;
(10)通过Java程序使用所述步骤(9)中读取的DES对称密钥,对待发送的电子公文信息进行加密处理,得到密文M2;
(11)通过Java程序利用读取的RSA非对称加密算法中的公有密钥对DES对称加密密钥进行加密处理,得到加密后的密钥K2;
(12)根据上述步骤(10)得到密文M2、步骤(11)得到的加密后的密钥K2和加密算法DES及RSA,构造SOAP消息传输给接收方;
本步骤中SOAP消息的过程为:
a.在SOAP消息的头部,加入符合WS-Sercurity安全规范协议的安全信息,包括加密后的密钥K2和加密算法DES及RSA;
b.将加密后的密文M2集成到SOAP消息的体部。
(4)服务器端解密过程如图4所示,与客户端解密过程比较,服务器端解密过程基本类似,不同之处在于两点:第一点在服务器端,直接使用Java程序在服务器上搜索私有密钥信息,而不是在USBKey设备上进行搜索;第二点在解密过程中服务器端是使用Java程序进行解密操作,而不是Java-Applet程序。具体步骤如下所示:
(13)通过Java程序对接收到的SOAP消息进行解析,提取出加密处理后的密文M2、加密后的密钥K2和加密算法DES及RSA;
本步骤通过Java程序对接收到的SOAP消息进行解析的过程为:
a.通过Java程序在本地主机的指定路径上,找到带有密文信息的SOAP消息后,再提取出SOAP消息的体部,即加密处理后的密文M2、头部中的<wsse:Security></wsse:Security>所包含的加密后的密钥K2和加密算法DES及RSA;
b.通过Java程序解析SOAP消息头部中的<wsse:Security>,从中提取出加密后的密钥K2和加密算法DES及RSA。
(14)通过Java程序利用RSA算法中的私有密钥,利用私有密钥对DES对称密钥进行解密操作,得到DES解密密钥;
(15)Java程序通过DES解密密钥,对步骤(13)中提取出的密文M2进行解密操作,得到解密后的电子公文信息。
本发明未详细描述部分属于本领域公知技术。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
机译: 基于硬件安全模块的基于云的Web服务安全性管理的系统和方法
机译: 用于基于云的Web服务的硬件安全模块的安全备份的系统和方法
机译: 安全备份基于云的Web服务的硬件安全模块的系统和方法