WebService商行客户信息程序安全实现

时间:2022-05-27 08:23:00

导语:WebService商行客户信息程序安全实现一文来源于网友上传,不代表本站观点,若需要原创文章可咨询客服老师,欢迎参考。

WebService商行客户信息程序安全实现

随着计算机技术的不断发展以及金融市场的不断壮大,银行服务的重心已从“以账务为中心”转向了“以客户为中心”。那么,如何准确、及时地把握住客户的信息就显得尤为重要和必要。本文提出了客户信息共享的理念。webservice技术具有跨平台、编程语言无关,及可在原有应用系统上的封装、集成和低成本的特点,为该理念得以付诸实施提供了基础。但是,出于银行及其他征信机构在业务上的特殊性,对客户信息的保密性和安全性有着比其它商业机构更高和更严格的要求,WebService技术的安全性问题就成了该理念得以付诸实施的关键问题。本文针对WebService技术的安全性问题,从系统构建、通信方式、通信内容的安全及访问控制这几个方面提出了观点和解决方案,为银行及其他征信机构间的客户信息能够安全、可靠地共享提供了保障。使得客户信息共享(这种可以准确、及时地掌握客户最新信息)的理念,能真正付诸实施。这不仅可以减少银行为客户提供服务时所承担的风险,也可以让银行为客户提供的个性化服务更符合客户本身的需求。

1、WebService及相关技术

1.1WebService概述

WebService是一个平台独立的、松耦合的、自包含的、基于可编程的Web的应用程序,可使用开放的XML标准描述、、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。WebService能够在一些常规的计算中提供一些服务,从而完成一个具体的任务,处理相关的业务或者解决一个复杂的问题。WebService使用基于XML的标准化语言和标准化协议在因特网或内部网上展示它们的可编程功能部件,并通过自描述接口实现。这些自描述接口基于开放的因特网标准。

1.2WebService体系结构

WebService体系结构基于三种角色(服务提供者、服务注册中心和服务请求者)之间的交互。交互涉及、查找和绑定操作。这些角色和操作一起作用于WebService构件:WebService软件模块及其描述。在典型情况下,服务提供者托管可通过网络访问的软件模块(WebService的一个实现)。服务提供者定义WebService的服务描述,并把它到服务请求者或服务注册中心。服务请求者使用查找操作来从本地或服务注册中心检索服务描述,然后使用服务描述与服务提供者进行绑定并调用WebService实现或同它交互。服务提供者和服务请求者角色是逻辑结构,因而服务可以表现两种特性。如图所示:

1.3WebService的相关技术标准

(1)XML———可扩展标记语言(ExtensibleMarkupLanguage)提供了一种可被用于不同的平台和编程语言之间的语言。定义了用于定义其它特定领域有关语义的、结构化的标记语言的句法语言。XML不同于超文本语言(HTML),用户可以自由定义自己需要的标记。使用XML,用户可以定义自己需要的标记,如用户个人的信息、一个包括服务序号、姓名、性别、年龄等内容。

(2)SOAP———简单对象访问协议(SimpleObjectAccessProtocol)一个基于XML的可扩展消息信封格式,需同时绑定一个传输用协议。这个协议通常是HTTP或HTTPS,但也可能是SMTP或XMPP。一个SOAP消息包括SOAP<Header>,SOAP<Body>和SOAP<Fault>三个子元素。它们被封装在SOAP<Envelope>内,组成了一个统一体。<Header>元素用来传递辅助性的附加消息,它的内容通常是特定于应用程序的。<Body>元素用来存放信息体,可以包括多个体条目,内容可以为遵循SOAP所规定的串行化编码规则的远程调用,以及其它一些信息。<Fault>元素是用来返回当一个SOAP消息传递失败使得相关描述信息的,如错误原因,出错位置等。(3)WSDL———WebService描述语言一个XML格式文档,用以描述服务端口访问方式和使用协议的细节。通常用来辅助生成服务器和客户端代码及配置信息。(4)UDDI———通用描述、发现与集成一个用来和搜索WebService的协议,应用程序可借由此协议在设计或运行时找到目标WebSer-vice。

2、WebService的安全

基于WebService自身的一些特点,在使用过程中对其安全性提出了多方面的需求,认证(信任)与授权(访问控制)、机密性、数据完整性、不可抵赖性、互操作性、权限委托等是基本的需求。以下将结合商业银行客户信息系统的实际需求对WebService的安全技术作具体地讨论。

2.1网络环境安全

确保WebService系统安全的基础就是首先要保证系统所在网络环境的安全,保证系统的网络连接是安全、可靠、有效的。因

此,本系统将采用SSLVPN技术来保证网络环境的安全。SSLVPN是一种采用SSL(SecuritySocketLayer)协议来实现远程接入的新型VPN(VirtualPrivateNetwork)技术。SSLVPN提供对所传送的数据的加密、认证和发送源的身份认证,提供对基于TCP协议的应用程序通讯的安全保护,并实现不同用户对于不同应用程序的访问控制。对于内、外部应用来说,使用SSL可保证信息的真实性、完整性和保密性。

2.2网络通信安全

WebService是通过基于XML的SOAP(SimpleObjectAccessProtocol,简单对象访问协议)协议进行消息传递的,SOAP是在分散或分布式环境中交换信息的轻量级协议,它的两个主要设计目标是简单性和可扩展性,因此SOAP协议在制定时并没有过多考虑安全性,而是尽可能地利用已有的标准和协议来实现相应的安全功能。而且XML是以文本格式来表示和存储数据,在网络上传送或在经过中间服务器处理时,完全以明文形式出现,导致数据有被任意篡改的可能;SOAP能穿越已有的网络防火墙,与应用建立通信。这就给病毒和黑客入侵带来了很大的隐患。为了保证商业银行客户信息系统在客户信息数据共享过程中的安全,就必须要先保证网络通信的安全。有许多技术可用于保护网络通信的安全性,其中最基本的技术就是消息加密。密码技术解决了在网络通信中应用层的四方面安全需求:认证(信任)与授权(访问控制)、机密性、数据完整性、不可抵赖性。目前有三种主要的密码技术:对称加密(秘密密钥加密)、非对称加密(公开密钥加密)、数字证书与数字签名(带密钥的消息摘要)。其中,应用最广泛的是非对称加密(公钥密码术)———RSA(由Rivest、Shamir和Adleman三人共同完成)。使用非对称加密模式可同时确保机密性与数据接收者的真实性,但是,这种模式无法确保不可抵赖性,不能确保对数据发送者的认证,而且性能也得不到保证。协同使用数字签名与公钥加密模式不但可以提供机密性、完整性、不可抵赖性及数据发送者和接收者的认证,也解决了性能上的问题。数字签名算法(DSA)对生成签名的速度进行了优化,使其可以在低功耗的微处理器上运行,例如智能卡;公钥加密AES算法因密钥建立时间短、灵敏性好、内存需求低,而且至今为止还没有被破译的官方报道,在各个领域得到了广泛的研究与应用。因此,本系统将采用SHA1withDSA数字签名算法技术协同AES加密技术来保证网络环境的安全。核心代码如下:publicabstractclassDSACoder{/**签名*/privatestaticbyte[]sign(byte[]data,byte[]privateKey)throwsEx-ception{PKCS8EncodedKeySpecpkcs8KeySpec=newPKCS8Encod-edKeySpec(privateKey);//还原私钥、转换私钥材料KeyFactorykeyFactory=KeyFactory.getInstance(“DSA”);//实例化密钥工厂PrivateKeypriKey=keyFactory.generatePrivate(pkcs8KeySpec);//生成私钥对象Signaturesignature=Signature.getInstance(“SHA1WITHD-SA”);//实例化Signaturesignature.initSign(priKey);//初始化Signaturesignature.update(data);//更新returnsignature.sign();//签名}/**校验*/privatestaticbooleanverify(byte[]data,byte[]publicKey,byte[]sign)throwsException{X509EncodedKeySpeckeySpec=newX509EncodedKeySpec(publicKey);//还原公钥、转换公钥材料KeyFactorykeyFactory=KeyFactory.getInstance(“DSA”);//实例化密钥工厂PublicKeypubKey=keyFactory.generatePublic(keySpec);//取公钥对象Signaturesignature=Signature.getInstance(“SHA1WITHD-SA”);//实例化Signaturesignature.initVerify(pubKey);//初始化Signaturesignature.update(data);//更新returnsignature.verify(sign);//验证}/**生成密钥*/privatestaticMap<String,Object>initKey()throwsException{KeyPairGeneratorkeygen=KeyPairGenerator.getInstance(“DSA”);//初始化密钥对生成器。

3、结束语

本文对WebService技术的安全性问题进行了研究和探讨,针对银行和征信机构等对客户信息的特殊要求,结合已有的成熟的安全技术,对其数据的安全共享提出了解决方案,并加以了实现。不但保证了数据在传输和交互中的安全问题,也考虑了性能的问题。随着计算机领域及通信领域的安全技术的不断发展,WebService技术也将得到更好的发展,为商业、金融等领域提供更好的技术上的支持。