WebService商行客戶信息程序安全實現(xiàn)
時間:2022-05-27 08:23:00
導(dǎo)語:WebService商行客戶信息程序安全實現(xiàn)一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
隨著計算機技術(shù)的不斷發(fā)展以及金融市場的不斷壯大,銀行服務(wù)的重心已從“以賬務(wù)為中心”轉(zhuǎn)向了“以客戶為中心”。那么,如何準確、及時地把握住客戶的信息就顯得尤為重要和必要。本文提出了客戶信息共享的理念。webservice技術(shù)具有跨平臺、編程語言無關(guān),及可在原有應(yīng)用系統(tǒng)上的封裝、集成和低成本的特點,為該理念得以付諸實施提供了基礎(chǔ)。但是,出于銀行及其他征信機構(gòu)在業(yè)務(wù)上的特殊性,對客戶信息的保密性和安全性有著比其它商業(yè)機構(gòu)更高和更嚴格的要求,WebService技術(shù)的安全性問題就成了該理念得以付諸實施的關(guān)鍵問題。本文針對WebService技術(shù)的安全性問題,從系統(tǒng)構(gòu)建、通信方式、通信內(nèi)容的安全及訪問控制這幾個方面提出了觀點和解決方案,為銀行及其他征信機構(gòu)間的客戶信息能夠安全、可靠地共享提供了保障。使得客戶信息共享(這種可以準確、及時地掌握客戶最新信息)的理念,能真正付諸實施。這不僅可以減少銀行為客戶提供服務(wù)時所承擔的風(fēng)險,也可以讓銀行為客戶提供的個性化服務(wù)更符合客戶本身的需求。
1、WebService及相關(guān)技術(shù)
1.1WebService概述
WebService是一個平臺獨立的、松耦合的、自包含的、基于可編程的Web的應(yīng)用程序,可使用開放的XML標準描述、、發(fā)現(xiàn)、協(xié)調(diào)和配置這些應(yīng)用程序,用于開發(fā)分布式的互操作的應(yīng)用程序。WebService能夠在一些常規(guī)的計算中提供一些服務(wù),從而完成一個具體的任務(wù),處理相關(guān)的業(yè)務(wù)或者解決一個復(fù)雜的問題。WebService使用基于XML的標準化語言和標準化協(xié)議在因特網(wǎng)或內(nèi)部網(wǎng)上展示它們的可編程功能部件,并通過自描述接口實現(xiàn)。這些自描述接口基于開放的因特網(wǎng)標準。
1.2WebService體系結(jié)構(gòu)
WebService體系結(jié)構(gòu)基于三種角色(服務(wù)提供者、服務(wù)注冊中心和服務(wù)請求者)之間的交互。交互涉及、查找和綁定操作。這些角色和操作一起作用于WebService構(gòu)件:WebService軟件模塊及其描述。在典型情況下,服務(wù)提供者托管可通過網(wǎng)絡(luò)訪問的軟件模塊(WebService的一個實現(xiàn))。服務(wù)提供者定義WebService的服務(wù)描述,并把它到服務(wù)請求者或服務(wù)注冊中心。服務(wù)請求者使用查找操作來從本地或服務(wù)注冊中心檢索服務(wù)描述,然后使用服務(wù)描述與服務(wù)提供者進行綁定并調(diào)用WebService實現(xiàn)或同它交互。服務(wù)提供者和服務(wù)請求者角色是邏輯結(jié)構(gòu),因而服務(wù)可以表現(xiàn)兩種特性。如圖所示:
1.3WebService的相關(guān)技術(shù)標準
(1)XML———可擴展標記語言(ExtensibleMarkupLanguage)提供了一種可被用于不同的平臺和編程語言之間的語言。定義了用于定義其它特定領(lǐng)域有關(guān)語義的、結(jié)構(gòu)化的標記語言的句法語言。XML不同于超文本語言(HTML),用戶可以自由定義自己需要的標記。使用XML,用戶可以定義自己需要的標記,如用戶個人的信息、一個包括服務(wù)序號、姓名、性別、年齡等內(nèi)容。
(2)SOAP———簡單對象訪問協(xié)議(SimpleObjectAccessProtocol)一個基于XML的可擴展消息信封格式,需同時綁定一個傳輸用協(xié)議。這個協(xié)議通常是HTTP或HTTPS,但也可能是SMTP或XMPP。一個SOAP消息包括SOAP<Header>,SOAP<Body>和SOAP<Fault>三個子元素。它們被封裝在SOAP<Envelope>內(nèi),組成了一個統(tǒng)一體。<Header>元素用來傳遞輔助性的附加消息,它的內(nèi)容通常是特定于應(yīng)用程序的。<Body>元素用來存放信息體,可以包括多個體條目,內(nèi)容可以為遵循SOAP所規(guī)定的串行化編碼規(guī)則的遠程調(diào)用,以及其它一些信息。<Fault>元素是用來返回當一個SOAP消息傳遞失敗使得相關(guān)描述信息的,如錯誤原因,出錯位置等。(3)WSDL———WebService描述語言一個XML格式文檔,用以描述服務(wù)端口訪問方式和使用協(xié)議的細節(jié)。通常用來輔助生成服務(wù)器和客戶端代碼及配置信息。(4)UDDI———通用描述、發(fā)現(xiàn)與集成一個用來和搜索WebService的協(xié)議,應(yīng)用程序可借由此協(xié)議在設(shè)計或運行時找到目標WebSer-vice。
2、WebService的安全性
基于WebService自身的一些特點,在使用過程中對其安全性提出了多方面的需求,認證(信任)與授權(quán)(訪問控制)、機密性、數(shù)據(jù)完整性、不可抵賴性、互操作性、權(quán)限委托等是基本的需求。以下將結(jié)合商業(yè)銀行客戶信息系統(tǒng)的實際需求對WebService的安全技術(shù)作具體地討論。
2.1網(wǎng)絡(luò)環(huán)境安全
確保WebService系統(tǒng)安全的基礎(chǔ)就是首先要保證系統(tǒng)所在網(wǎng)絡(luò)環(huán)境的安全,保證系統(tǒng)的網(wǎng)絡(luò)連接是安全、可靠、有效的。因
此,本系統(tǒng)將采用SSLVPN技術(shù)來保證網(wǎng)絡(luò)環(huán)境的安全。SSLVPN是一種采用SSL(SecuritySocketLayer)協(xié)議來實現(xiàn)遠程接入的新型VPN(VirtualPrivateNetwork)技術(shù)。SSLVPN提供對所傳送的數(shù)據(jù)的加密、認證和發(fā)送源的身份認證,提供對基于TCP協(xié)議的應(yīng)用程序通訊的安全保護,并實現(xiàn)不同用戶對于不同應(yīng)用程序的訪問控制。對于內(nèi)、外部應(yīng)用來說,使用SSL可保證信息的真實性、完整性和保密性。
2.2網(wǎng)絡(luò)通信安全
WebService是通過基于XML的SOAP(SimpleObjectAccessProtocol,簡單對象訪問協(xié)議)協(xié)議進行消息傳遞的,SOAP是在分散或分布式環(huán)境中交換信息的輕量級協(xié)議,它的兩個主要設(shè)計目標是簡單性和可擴展性,因此SOAP協(xié)議在制定時并沒有過多考慮安全性,而是盡可能地利用已有的標準和協(xié)議來實現(xiàn)相應(yīng)的安全功能。而且XML是以文本格式來表示和存儲數(shù)據(jù),在網(wǎng)絡(luò)上傳送或在經(jīng)過中間服務(wù)器處理時,完全以明文形式出現(xiàn),導(dǎo)致數(shù)據(jù)有被任意篡改的可能;SOAP能穿越已有的網(wǎng)絡(luò)防火墻,與應(yīng)用建立通信。這就給病毒和黑客入侵帶來了很大的隱患。為了保證商業(yè)銀行客戶信息系統(tǒng)在客戶信息數(shù)據(jù)共享過程中的安全,就必須要先保證網(wǎng)絡(luò)通信的安全。有許多技術(shù)可用于保護網(wǎng)絡(luò)通信的安全性,其中最基本的技術(shù)就是消息加密。密碼技術(shù)解決了在網(wǎng)絡(luò)通信中應(yīng)用層的四方面安全需求:認證(信任)與授權(quán)(訪問控制)、機密性、數(shù)據(jù)完整性、不可抵賴性。目前有三種主要的密碼技術(shù):對稱加密(秘密密鑰加密)、非對稱加密(公開密鑰加密)、數(shù)字證書與數(shù)字簽名(帶密鑰的消息摘要)。其中,應(yīng)用最廣泛的是非對稱加密(公鑰密碼術(shù))———RSA(由Rivest、Shamir和Adleman三人共同完成)。使用非對稱加密模式可同時確保機密性與數(shù)據(jù)接收者的真實性,但是,這種模式無法確保不可抵賴性,不能確保對數(shù)據(jù)發(fā)送者的認證,而且性能也得不到保證。協(xié)同使用數(shù)字簽名與公鑰加密模式不但可以提供機密性、完整性、不可抵賴性及數(shù)據(jù)發(fā)送者和接收者的認證,也解決了性能上的問題。數(shù)字簽名算法(DSA)對生成簽名的速度進行了優(yōu)化,使其可以在低功耗的微處理器上運行,例如智能卡;公鑰加密AES算法因密鑰建立時間短、靈敏性好、內(nèi)存需求低,而且至今為止還沒有被破譯的官方報道,在各個領(lǐng)域得到了廣泛的研究與應(yīng)用。因此,本系統(tǒng)將采用SHA1withDSA數(shù)字簽名算法技術(shù)協(xié)同AES加密技術(shù)來保證網(wǎng)絡(luò)環(huán)境的安全。核心代碼如下:publicabstractclassDSACoder{/**簽名*/privatestaticbyte[]sign(byte[]data,byte[]privateKey)throwsEx-ception{PKCS8EncodedKeySpecpkcs8KeySpec=newPKCS8Encod-edKeySpec(privateKey);//還原私鑰、轉(zhuǎn)換私鑰材料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);//還原公鑰、轉(zhuǎn)換公鑰材料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、結(jié)束語
本文對WebService技術(shù)的安全性問題進行了研究和探討,針對銀行和征信機構(gòu)等對客戶信息的特殊要求,結(jié)合已有的成熟的安全技術(shù),對其數(shù)據(jù)的安全共享提出了解決方案,并加以了實現(xiàn)。不但保證了數(shù)據(jù)在傳輸和交互中的安全問題,也考慮了性能的問題。隨著計算機領(lǐng)域及通信領(lǐng)域的安全技術(shù)的不斷發(fā)展,WebService技術(shù)也將得到更好的發(fā)展,為商業(yè)、金融等領(lǐng)域提供更好的技術(shù)上的支持。