WebService商行客戶信息程序安全實(shí)現(xiàn)
時(shí)間:2022-05-27 08:23:00
導(dǎo)語(yǔ):WebService商行客戶信息程序安全實(shí)現(xiàn)一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

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