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技術也將得到更好的發展,為商業、金融等領域提供更好的技術上的支持。