电子商务中XML安全技术的应用研究
2010-06-09张恺
张 恺
(福建交通职业技术学院信息技术工程系,福州350000)
0 引言
电子商务可以通过多种电子通讯方式来完成各种商贸活动。它是全球经济化和贸易自由化的重要手段,也是传统产业变革和企业技术跨越的关键动力。但是随着电子商务的高速发展使经济和社会面临日益严重的信息安全威胁,特别是电子交易信息的机密性、完整性、真实性和抗否认性等方面难以得到有效保证[1]。
XML(Extensible Markup Language,可扩展标记语言)由于其良好的扩展性、自描述性以及内容与表现形式的分离等特点,正逐步取代HTM L,在电子商务领域得到日益广泛的应用。各大企业、银行、保险公司和财务公司都趋向使用XML进行金融、财务、产品信息等数据的交换。目前,在XML的传输过程中采用的安全机制,例如安全H TTP(secure HT TP,S-HT TP)和安全套接字层(secure sockets layer,SSL)等并非是针对XML结构的特点进行设计的,因此,只能在传输层加密整个XM L文档。而在电子商务的实际应用中,通常需要对XML中的一部分或者个别敏感数据项进行加密,以实现对其他成员进行授权或签名等安全性操作。本文就XM L相关标准和安全策略进行探讨,着重研究通过组件化模式[2],实现签名与加密等安全处理技术来保证XML的数据安全。
1 电子商务的安全技术
电子商务的核心问题就是交易的安全性是否能够得到保障。在电子商务的处理过程中,安全保障技术主要包括几个方面:数据安全、网络安全和系统安全。本文主要从数据安全方面入手来研究电子商务的安全保障技术。传统的用来保证电子商务数据安全的技术主要有加密和认证技术。
目前加密算法很多,根据加密密钥的不同,大体上可以分为对称加密与非对称加密2大类。对称加密又称私钥加密,它具有使用简便、密钥简短和破译困难等优势,但其在电子商务应用中存在密钥数目无法管理,较难应用于大量信息交流,无法验证发送方和接收方身份,密钥协商渠道不安全等缺点。常用的对称算法有RC2、DES、T ripleDES和Rijndael。非对称加密也称公钥加密,加密密钥和解密密钥是不相同的,具有更大的密钥空间。其优势是易于分发、可创建数据签名验证身份等,但与对称加密相比,速度较慢。目前最常用的有RSA算法。
认证技术主要用于保障身份认证、信息完整性确认以及交易的不可否认等多项电子商务的安全需求。其包括身份与报文认证两方面内容。身份认证主要用于识别用户的身份,报文认证保障交易信息的完整性与不可抵赖性。目前,常用的认证方法与手段有数字签名、数字证书、安全认证体系等。
2 基于XML的电子商务安全架构体系
在分析目前大部分电子商务安全体系的优缺点基础上,结合软件工程中松散耦合、逻辑复用的思想,本文提出了基于XML组件化的电子商务安全架构体系:在安全硬件层与安全管理层之间加入XML安全层,并进行组件化封装。如图1所示。
图1 电子商务安全体系架构图
(1)XML Encryption(XML加密)是XML文档加密的标准,它不仅可以像SSL、TLS一样给文档整体加密解密、还可就文档的某一部分进行加密解密,使加密部分的敏感信息不以明文的方式存在。同时,可以根据用户权限的不同作为进行文档的分级访问的依据[3]。
(2)XML Signature(XML签名)在电子商务中应用相当广泛,运用它可保证客户订单完整性、签名确认和不可否认性。
(3)XKMS(XM L Key Management Specification,XML的密钥管理规范)是分发和注册公钥的规范,由XML密钥信息服务和XML密钥注册服务规范组成[4]。
(4)WEB SERVICES和DLL:提供可复用的公共类的封装或者WEB服务组件。可以将加解密技术、签名技术和密钥管理技术的实现进行组件化的封装,形成DLL文件供使用者调用或在Internet上发布WEB服务供所有应用程序进行调用。
(5)SOAP(Simple Object Access Protocol,简单对象访问协议)主要用于实现异构平台下的程序互操作性,SOAP协议基于XML,把XML的灵活性和扩展性与WEB技术结合起来,使用H TTP协议进行远程COM对象的调用,实现跨平台、跨语言、跨网络和防火墙等功能优势。
3 基于XM L的电子商务安全架构体系的实现
3.1 XML数据加密解密
(1)敏感信息的加密
传统的电子商务数据加密总趋向将文件进行整体加密,然后传输后进行解密。而XML加密解密的优势在于可以针对文件中的敏感信息部分进行特定加密,提高加密效率[5]。例如对 Customer的XM L文档中的信用卡卡号信息进行加密会得到如下密文:
观察加密后的密文,可以看到上面描述的各个元素,首先,<EncryptionMethod>元素显示了AES-256的URI,这意味着该文档的加密算法是用带有256位密钥的AES算法。密钥在<KeyInfo>元素中加密,通过观察<EncryptedKey>元素,可以看到它是用RSA算法并借助一个名为“zhangkai”的密钥加密的,<CipherData>元素存放了该密钥的加密值。在<KeyInfo>元素后面的是包含加密内容的<CipherData>元素。
(2)XML数据加密、解密的实现
微软公司在其最新的VS2008.Net开发平台中,改进了XML API内核套件,实现了对XML的内置支持。因此,采用C#或者VB.Net都能很快地实现XML数据的加密与解密,流程分别如图2~3所示。
3.2 XML数据签名
XML Signature是一个与XML语法兼容的数字签名语法描述规范,描述数字签名本身和签名的生成与验证过程。利用XML Signature可以确保数据信息不被篡改和防止客户或商家的抵赖行为,从而保证通信双方的利益[6]。
XM L Signature的主要优点在于替代了原来的PKCS#7的签名形式,使签名更具有可读性,更加容易解析,而且与平台无关。以下代码为签名后的XM L部分代码:
在<signature>元素中的即为签名信息,包含用于计算<Signaturevalue>元素的算法引用,<SignatureMethod>引用的是将规范的<SignedInfo>转换成<Signaturevalue>所用的算法,它是和密钥相关的算法和摘要算法,本例采用的是 RSA和SHA-1的组合,<KeyInfo>元素是用来指出验证签名的密钥。
生成XML签名文件包括以下几个步骤:
(1)实例化一个XmlDocument对象,并装载要签名的XML文件
(2)创建<SignedInfo>元素,确定被处理的数据。
(3)创建密钥对,公钥创建<KeyInfo>元素供签名验证使用,私钥用于生成签名。
(4)创建<Signture>元素与<Reference>元素。
(5)创建<SignatureValue>元素,生成签名并可输出签名后的XML文档。
4 结语
本文对电子商务的概念及其安全性做了相关的介绍说明,探讨了如何利用XML技术加强其安全性,即XML加密和XML数字签名不但可以保护数据的私有性,还能对整个交易提供数字证明,保证交易的不可抵赖性。同时,基于软件复用性的思想,将XML签名与加密技术的实现进行组件化封装,在保护数据安全的同时也提高了软件的可重用性。本文的XML加密与签名均在微软最新的系统开发平台——VS.Net2008平台上进行开发并实现。
[1]莫秀良,冯利春,王春东.移动商务中的安全问题研究[J].天津理工大学学报,2008,10:78-81.
[2]黄崇本,龚松杰,陶剑文.一种基于XML组件的电子商务安全解决方案[J].计算机仿真,2008(3):281-284.
[3]许宏云,张济仕.一种基于XML的电子订单安全方案[J].电脑知识与技术,2007(1):1 569-1 571.
[4]隆文超.电子商务安全技术研究[J].商场现代化,2008(2):191-192.
[5]Blake Dournaee.XM L安全基础[M].北京:清华大学出版社,2003:280-288.
[6]程雪红,谢佳.基于代理/服务的XM L数字签名研究[J].XML安全基础计算机安全,2008,7:51-54.