SOA(Service-Oriented Architecture,面向服務(wù)的體系結(jié)構(gòu))是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元通過這些單元之間定義良好的接口和契約聯(lián)系起來(lái)。這些接口獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言,使得構(gòu)建在各種各樣的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互。和以往聯(lián)網(wǎng)的分布式的系統(tǒng)不同,SOA 與平臺(tái)相獨(dú)立,其通信和特定的平臺(tái)和技術(shù)沒有必然的聯(lián)系。
在企業(yè)中,將日常的各種業(yè)務(wù)應(yīng)用劃分為若干服務(wù),然后通過SOA,用戶可以構(gòu)建、部署和整合這些服務(wù),且無(wú)須依賴應(yīng)用程序及其運(yùn)行平臺(tái),從而提高業(yè)務(wù)流程的靈活性。例如,一個(gè)電子商務(wù)網(wǎng)站建立SOA 架構(gòu)后能夠使自己與供應(yīng)商、分銷商、信用卡公司和消費(fèi)者無(wú)縫地集成在一起。在一個(gè)客戶下訂單之后,系統(tǒng)將自動(dòng)編排大量的信息,而不需要在每一次登錄時(shí)都詢問用戶或者系統(tǒng)。對(duì)于企業(yè)來(lái)說(shuō),這種業(yè)務(wù)靈活性可以大大加快開發(fā)新業(yè)務(wù)的速度,并降低總體擁有成本,同時(shí)改善對(duì)及時(shí)、準(zhǔn)確性業(yè)務(wù)信息的訪問。
不過,SOA 在帶給企業(yè)靈活性,便捷性的同時(shí),對(duì)于現(xiàn)實(shí)的要求也是很高的。因?yàn)檎麄(gè)SOA 應(yīng)用架構(gòu)相當(dāng)于企業(yè)的信息平臺(tái),而企業(yè)本身對(duì)于平臺(tái)本身的安全性、可靠性以及相關(guān)的服務(wù)質(zhì)量都有相當(dāng)高的要求。為了確保SOA 能夠切實(shí)給企業(yè)帶來(lái)效益,企業(yè)必須通盤考慮這種新架構(gòu)的運(yùn)行平臺(tái)。因?yàn),SOA 在提供價(jià)值鏈上企業(yè)之間信息共享和業(yè)務(wù)流程自動(dòng)化的同時(shí),也給業(yè)務(wù)信息安全帶來(lái)了負(fù)面影響,且存在安全隱患。
一 SOA架構(gòu)的負(fù)面影響
SOA架構(gòu)是一種松耦合服務(wù)模式,通過標(biāo)準(zhǔn)化的接口來(lái)聯(lián)系各種形式的服務(wù),無(wú)論服務(wù)置于何地,均能通過一種便捷而統(tǒng)一的方式實(shí)現(xiàn)相關(guān)功能,這對(duì)信息資源的二次利用和服務(wù)模式的二次重整具有極大的作用。但是,如果沒有適當(dāng)?shù)陌踩胧矔?huì)把這個(gè)服務(wù)平臺(tái)的鑰匙交給黑客。另外,SOA安全標(biāo)準(zhǔn)的不成熟加劇了互操作性方面的難題。如果想嚴(yán)加保護(hù)涉及多個(gè)企業(yè)的龐大Web服務(wù)網(wǎng)絡(luò),每個(gè)企業(yè)必須就采用的技術(shù)、甚至安全策略達(dá)成共識(shí)。
此外,企業(yè)中使用Web服務(wù)進(jìn)行相互操作的系統(tǒng)對(duì)于內(nèi)、外部攻擊的防御能力越來(lái)越差。當(dāng)這些系統(tǒng)使用的Web服務(wù)由供應(yīng)商和業(yè)務(wù)伙伴等外部機(jī)構(gòu)提供時(shí),SOA和Web服務(wù)的部署工作將變得更加復(fù)雜,不得不謹(jǐn)慎部署最新的安全解決方案,如應(yīng)用級(jí)防火墻、IDP、SSL VPN 和SSL卸載產(chǎn)品等,以便為企業(yè)中的SOA環(huán)境提供安全保護(hù)。
二 基于SOA架構(gòu)的業(yè)務(wù)安全隱患
SOA雖然在某些方面使安全簡(jiǎn)化,但是在其他方面卻使安全問題變得復(fù)雜。由于在基礎(chǔ)設(shè)施中使用了XML一類的數(shù)據(jù)結(jié)構(gòu)通用協(xié)議、IP 通信協(xié)議和通用操作系統(tǒng),SOA 有助于簡(jiǎn)化某些安全決策;但在模塊程序中,由于許多移動(dòng)部件作為最終應(yīng)用要集成在一起,使得安全決策變得復(fù)雜。
2.1 企業(yè)機(jī)構(gòu)中缺乏對(duì)安全風(fēng)險(xiǎn)嚴(yán)重性的認(rèn)識(shí)和知識(shí)
企業(yè)機(jī)構(gòu)中的人員普遍認(rèn)為被攻擊的幾率極低,不可能發(fā)生在他們身上,因此對(duì)安全風(fēng)險(xiǎn)缺乏認(rèn)識(shí)。沒有安全意識(shí),則導(dǎo)致對(duì)保障系統(tǒng)信息安全的知識(shí)不重視。事實(shí)上,安全應(yīng)該作為一套核心的服務(wù)實(shí)施,允許集中管理和維護(hù)安全。此外,管理層必須理解這個(gè)風(fēng)險(xiǎn)并且提供適當(dāng)?shù)闹С趾唾Y金以便有效地保證企業(yè)的安全。
2.2 信息泄露的問題
以一個(gè)電子商務(wù)網(wǎng)站為例,一個(gè)訂單能夠引發(fā)一個(gè)包含提供給一個(gè)供應(yīng)商、分銷商和信用卡公司的XML數(shù)據(jù),由于每一方都有不同的安全要求,比如只有信用卡公司有權(quán)訪問信用卡信息(信用卡信息應(yīng)該按照PCI的要求加密),供應(yīng)商需要知道什么產(chǎn)品及產(chǎn)品在目錄的什么地方,分銷商需要知道有關(guān)產(chǎn)品和發(fā)貨地址的信息。如果不能保證XML傳送的安全性,將泄漏交易過程中的敏感信息。
2.3 欺詐問題
欺詐主要是指未授權(quán)的用戶訪問授權(quán)用戶被授權(quán)的資源,并以授權(quán)用戶的名義進(jìn)行交易,使得真正的授權(quán)用戶的利益受到損失和破壞。在SOA系統(tǒng)中,強(qiáng)調(diào)設(shè)備與設(shè)備的交互,而大多數(shù)IT安全性都是基于人與設(shè)備的交互。傳統(tǒng)的安全防御對(duì)象主要是針對(duì)人,而SOA更多地強(qiáng)調(diào)了設(shè)備與設(shè)備的交互,即所謂服務(wù)的互操作性,那么如何應(yīng)對(duì)來(lái)自合作伙伴或第三方服務(wù)交互請(qǐng)求的欺詐威脅(因?yàn)榇蠖鄶?shù)情況下,這些請(qǐng)求被人惡意利用和操縱),將是SOA安全防御的一項(xiàng)重要課題。身份驗(yàn)證和授權(quán)在這個(gè)環(huán)境中變得更加富于挑戰(zhàn)性。在未受保護(hù)的SOA中,想要阻止Web服務(wù)的未授權(quán)使用實(shí)際上是不可能的。未授權(quán)用戶可以非常輕松地訪問Web服務(wù),而Web服務(wù)往往不具備跟蹤誰(shuí)在使用它們或者誰(shuí)被允許使用它們的固有毛病。
2.4 其它方面的安全問題
SOA整套架構(gòu)在應(yīng)用層與表示層的隔離上做得不完美,這會(huì)導(dǎo)致在未來(lái)階段新的代理程序很容易尋找和利用SOA的安全漏洞,僵尸網(wǎng)絡(luò)工具準(zhǔn)確找到應(yīng)用系統(tǒng)中安全漏洞的概率比較大,準(zhǔn)確性也比較高。
總之,SOA的應(yīng)用還處于起始階段,還存在許多的安全隱患。
三 基于SOA架構(gòu)的業(yè)務(wù)安全對(duì)策
SOA從本質(zhì)上說(shuō)是一種由元數(shù)據(jù)和XML一類的標(biāo)準(zhǔn)數(shù)據(jù)結(jié)構(gòu)協(xié)議生成的應(yīng)用程序,從而SOA所面臨的安全問題與應(yīng)用其他任何分布式系統(tǒng)時(shí)所遇到的安全問題是相同的,即如何確保機(jī)密性(Confidentiality)、完整性(Integrity)和可用性(Availability)。
3.1 提高認(rèn)識(shí)和明確責(zé)任感
針對(duì)企業(yè)機(jī)構(gòu)中缺乏對(duì)安全風(fēng)險(xiǎn)嚴(yán)重性的認(rèn)識(shí)和知識(shí)的安全隱患,有兩件事情能夠緩解這種風(fēng)險(xiǎn)。第一是提高認(rèn)識(shí),通常采用培訓(xùn)安全知識(shí)的方式。不僅僅對(duì)開發(fā)人員進(jìn)行培訓(xùn),對(duì)于管理層、架構(gòu)師、審計(jì)師、測(cè)試人員和其他人等都進(jìn)行針對(duì)他們需求的培訓(xùn)。第二,安全是每一個(gè)人的責(zé)任,不僅僅是企業(yè)架構(gòu)師和安全架構(gòu)師的責(zé)任。機(jī)構(gòu)要全力保證企業(yè)的安全。建議企業(yè)雇用有經(jīng)驗(yàn)的SOA 安全人員或者雇用一個(gè)安全顧問把這個(gè)知識(shí)傳授給機(jī)構(gòu)內(nèi)部的安全部門。
3.2 采用加密和認(rèn)證等技術(shù)防止信息泄露
針對(duì)信息泄露的問題,需要進(jìn)行多層次防范措施。采用加密和認(rèn)證技術(shù),在公共網(wǎng)絡(luò)上建立安全專用隧道的網(wǎng)絡(luò),也就是常說(shuō)的VPN;其次,網(wǎng)絡(luò)服務(wù)的訪問大多數(shù)通過HTTP協(xié)議,HTTP上實(shí)現(xiàn)的安全套接字層 (Security Socket Layer,SSL)也是成熟的安全通訊方式;但是,在上面的電子商務(wù)網(wǎng)站例子中,同樣的信息要同時(shí)發(fā)給三個(gè)不同的公司,并且不需要任何一家公司登錄,所以僅使用SSL是不夠的。可以結(jié)合使用第三種即針對(duì)XML處理專門制定的消息級(jí)別的XML加密和處理標(biāo)準(zhǔn),它把消息轉(zhuǎn)換為一段經(jīng)過加密的XML,消息仍然是XML格式的,但是使用加密算法將內(nèi)容隱藏起來(lái)了。另外,保證XML傳送安全在SOA安全中也非常重要。XML傳送的安全包括兩個(gè)部分:基礎(chǔ)設(shè)施安全和加密。為了保證基礎(chǔ)設(shè)施安全,硬件防火墻、安全設(shè)備都可以用來(lái)保護(hù)網(wǎng)絡(luò)內(nèi)部和外部的通信,通常這些設(shè)備都是SOA系統(tǒng)所必備的。但是,前提是需要對(duì)這些硬件防火墻和安全設(shè)備進(jìn)行正確的配置以便保證XML信息在入口和網(wǎng)絡(luò)界限之間能正常工作。這些XML信息包括數(shù)字簽名的或者擁有其它安全標(biāo)記的信息。而加密則是對(duì)SOA系統(tǒng)使用的XML文件進(jìn)行加密。XML文件數(shù)字簽名和加密有兩個(gè)World Wide Web Consortium 規(guī)范:XML-加密和XML-簽名。對(duì)于在HTTP連接之上發(fā)送的XML文件,則應(yīng)使用SSL保護(hù)文件傳送的安全。
3.3 采用身份認(rèn)證和消息的數(shù)字簽名應(yīng)對(duì)欺詐問題
針對(duì)欺詐問題,可以使用身份認(rèn)證和消息的數(shù)字簽名來(lái)解決。身份認(rèn)證保證授權(quán)的用戶能夠訪問被授權(quán)的資源。由于在企業(yè)級(jí)SOA中身份認(rèn)證不局限于單一安全控制域,而安全斷言標(biāo)記語(yǔ)言(Security Assertion Markup Language,SAML)標(biāo)準(zhǔn)提供了不同安全域之間認(rèn)證的交互,以一種可為用戶調(diào)用的Web 服務(wù)所接受的方式表達(dá)用戶的真實(shí)性,并且,SAML基于XML的標(biāo)準(zhǔn),為以標(biāo)準(zhǔn)方式描述安全性信息提供了一個(gè)框架。通過一個(gè)標(biāo)準(zhǔn)的認(rèn)證過程,多方可以達(dá)成一致,使用一組給定的標(biāo)準(zhǔn)來(lái)對(duì)一組指定的用戶進(jìn)行身份驗(yàn)證,參加這個(gè)過程的安全域組成一個(gè)身份聯(lián)邦(Identity Federation)。接下來(lái),SOAP消息被傳遞給目的Web服務(wù),并附加上一個(gè)SAML斷言。但是需要注意SAML斷言不依賴于聯(lián)邦身份驗(yàn)證過程。
數(shù)字簽名用于保證消息真正創(chuàng)建者身份的真實(shí)性以及消息在發(fā)送系統(tǒng)到接受系統(tǒng)之間傳輸時(shí)未被篡改。數(shù)字簽名是對(duì)身份和消息內(nèi)容進(jìn)行惟一的處理得到的一個(gè)基于密鑰的非常大的數(shù),是一種消息級(jí)的安全措施,它結(jié)合了數(shù)字證書密鑰和加密等安全方法。如果消息被改變了,那么惟一的數(shù)字簽名將不再與密鑰和用于創(chuàng)建密鑰的原始消息相匹配。為此,數(shù)字簽名提供了個(gè)不可否認(rèn)性,例如,數(shù)字簽名可以證明你的供應(yīng)商收到的電子訂單確實(shí)是由你發(fā)出而且在傳輸中沒有被篡改過。針對(duì)企業(yè)級(jí)SOA,可以使用專門制定的處理XML消息級(jí)別的XML數(shù)字簽名標(biāo)準(zhǔn)。
四 總結(jié)
雖然關(guān)于SOA技術(shù)的標(biāo)準(zhǔn)已經(jīng)有很多了,專門針對(duì)安全問題而制定的標(biāo)準(zhǔn)卻屈指可數(shù)。OASIS技術(shù)委員會(huì)制定了一系列技術(shù)標(biāo)準(zhǔn),WS-Security是迄今為止得到認(rèn)可的安全性標(biāo)準(zhǔn)集合的總稱,包括WS-Security(描述如何將XML加密和XML簽名應(yīng)用于SOAP文檔或信息)、WS-Trust(應(yīng)用WS-Security標(biāo)準(zhǔn)傳輸密碼、數(shù)字證書以及SAML斷言等安全標(biāo)識(shí))、WS-SecurityPolicy(對(duì)哪些人被允許訪問某個(gè)服務(wù)以及訪問方式做出規(guī)定,并對(duì)認(rèn)證方式的類型和/或所需要的加密等級(jí)做出限制)、WS-Federation(根據(jù)WS-SecurityPolicy 中描述的服務(wù)規(guī)則,應(yīng)用WS-Trust 中提到的被傳輸?shù)陌踩珮?biāo)識(shí),通過Web服務(wù)的認(rèn)證)、WS-SecureConversation( 按照WS-Security標(biāo)準(zhǔn),實(shí)施WS-SecurityPolicy中所描述的策略的方法)等,F(xiàn)在,SOA領(lǐng)域的“物質(zhì)基礎(chǔ)”已塵埃落定,而“上層建筑”仍在建立之中。
需要注意的是,就像在IT的其他領(lǐng)域中一樣,若想保障基于SOA架構(gòu)業(yè)務(wù)的安全性,就需要有大量開銷。因?yàn)樵诘竭_(dá)目的地之前,每條消息都必須經(jīng)過好幾個(gè)地方,另外證書文件可能會(huì)很大,從而給網(wǎng)絡(luò)造成很大的負(fù)擔(dān),而且整個(gè)過程往往會(huì)降低性能。但遺憾的是,為了安全這些開銷和負(fù)擔(dān)是必不可少的。
此外,如果想保護(hù)牽涉多家企業(yè)的龐大Web服務(wù)網(wǎng)絡(luò),每家企業(yè)必須就采用的技術(shù)、甚至安全策略達(dá)成共識(shí),因?yàn)槿绻献骰锇榈膯T工使用弱密碼來(lái)訪問系統(tǒng),那么即使要求本企業(yè)的員工使用生物特征識(shí)別技術(shù)和物理令牌也是毫無(wú)用處的。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:基于SOA架構(gòu)的業(yè)務(wù)安全性研究
本文網(wǎng)址:http://www.ezxoed.cn/html/support/1112153885.html