0 引言
目前多數(shù)實際應(yīng)用系統(tǒng)的安全功能模塊都采用內(nèi)嵌業(yè)務(wù)模塊的方式開發(fā)實現(xiàn),安全組件和業(yè)務(wù)組件耦合度過高,導(dǎo)致兩者之間的交互關(guān)系繁雜,功能邏輯抽離性差;另外,安全系統(tǒng)涉及認證、授權(quán)、訪問控制和責任認定等領(lǐng)域,現(xiàn)有的集中開發(fā)模式?jīng)]有從軟件形態(tài)、邏輯形態(tài)以及最后的物理形態(tài)上對安全組件進行進一步構(gòu)件化分離,造成部件功能劃分模糊重疊,不易開展安全功能專有評測,二次開發(fā)代價高、周期長、風險大。
1 相關(guān)工作發(fā)展現(xiàn)狀
網(wǎng)絡(luò)應(yīng)用的高速發(fā)展和分布式服務(wù)的不斷深入使得系統(tǒng)安全產(chǎn)品從封閉型、單體化的形態(tài)向協(xié)作型、可插拔的中間件模式轉(zhuǎn)變。近年來,國際上已涌現(xiàn)出一批具有影響力的安全中間件項目。耶魯大學(xué)開發(fā)的CAS,Internet2/Mace和IBM開發(fā)的Shibboleth,英國Kent大學(xué)開發(fā)的PERMS,美國NASA開發(fā)的Cardea等都采用了面向?qū)S邪踩δ荛_發(fā)的中間件形式。提供針對單一需求的安全服務(wù)。但是這些中間件系統(tǒng)內(nèi)部構(gòu)件化和可替換性還處在粗粒度的發(fā)展階段,封裝的算法和協(xié)議層次單一,無法適應(yīng)企業(yè)應(yīng)用對安全功能定制的裁剪性和敏捷性需求;旧蠜]有提供面向安全開發(fā)人員或者業(yè)務(wù)涉及人員進行多次開發(fā)、自由組裝的平臺和方法。
還有一些旨在提供基礎(chǔ)性安全技術(shù)的開發(fā)包,例如Bouncy Castle Crypto、Crypto++、IAIK Crypto等,這些項目可以提供全面豐富的密碼算法具體實現(xiàn)、公鑰/屬性證書生成器、密碼學(xué)相關(guān)數(shù)學(xué)工具。已經(jīng)在很多實際系統(tǒng)作為安全基礎(chǔ)設(shè)施大量應(yīng)用,但其兩個基本不足在于:開發(fā)包內(nèi)部結(jié)構(gòu)仍然比較復(fù)雜,即使面向?qū)I(yè)人員的學(xué)習曲線仍然較高;缺乏構(gòu)建上層安全集成服務(wù)的組裝模式和開發(fā)模版,不能提供直接面向業(yè)務(wù)安全的功能接口,后期的開發(fā)量仍然較大。
2 基于共性安全構(gòu)件的安全業(yè)務(wù)建模
本文提出的共性安全構(gòu)件,又稱為信息安全共性構(gòu)件,旨在將安全功能從傳統(tǒng)的業(yè)務(wù)邏輯中分離,進而分割成具有不同安全子功能的模塊,各模塊對外提供接口,獲得可獨立開發(fā),可方便組裝、拆解、更換的優(yōu)勢。共性安全構(gòu)件提供良好的擴展性,可以用于快速便捷地搭建安全系統(tǒng),從而實現(xiàn)安全系統(tǒng)自底向上的,配置型可定制性開發(fā)。
2.1 共性安全構(gòu)件三層結(jié)構(gòu)
共性安全構(gòu)件可以按其實現(xiàn)完整功能的復(fù)雜度劃分到三個不同層次的子集中;A(chǔ)構(gòu)件只實現(xiàn)一個具體算法或者定義具體的算法結(jié)構(gòu),處于最底層;功能構(gòu)件由基礎(chǔ)構(gòu)件搭建而成,能獨立提供一種安全業(yè)務(wù)功能;服務(wù)構(gòu)件由基礎(chǔ)構(gòu)件和功能構(gòu)件搭建而成,實現(xiàn)一套完整的安全業(yè)務(wù),并能以web服務(wù)的形式供外部調(diào)用。
2.2 基于服務(wù)構(gòu)件的安全業(yè)務(wù)建模方法
共性安全構(gòu)件的開發(fā)是從底層基礎(chǔ)構(gòu)件到中層功能設(shè)施構(gòu)件然后到上層的集成服務(wù)構(gòu)件,而業(yè)務(wù)流程的開發(fā)是從上層業(yè)務(wù)建模到中層的過程分析然后到底層的服務(wù)集成,這是兩個不同方向的開發(fā)。
現(xiàn)有系統(tǒng)的安全功能開發(fā)往往局限于具體的安全事務(wù),缺乏從安全業(yè)務(wù)的角度考慮流程安全完整性。本文從已有的應(yīng)用業(yè)務(wù)中抽取并設(shè)計了一個完整的安全訪問業(yè)務(wù)流程,利用BPEL編排將構(gòu)件開發(fā)與業(yè)務(wù)流程開發(fā)無縫地結(jié)合起來,形成完善的安全業(yè)務(wù)流程的開發(fā)模式。
BPEL是為整合web服務(wù)而制定的一種標準規(guī)范,它可以在不影響原有web服務(wù)正常運行的前提下,將web服務(wù)進行調(diào)度和協(xié)調(diào),從而形成具有商業(yè)價值的業(yè)務(wù)流程。在基于服務(wù)構(gòu)件的安全業(yè)務(wù)流程開發(fā)過程中引入BPEL語言,可有效提高安全系統(tǒng)開發(fā)的效率。
安全訪問業(yè)務(wù)流程主要包括安全認證,授權(quán)與訪問控制,審計與責任認定三大處理流程。在這些處理流程之下,還集成了域定位服務(wù)、認證服務(wù)、跨域身份聯(lián)合服務(wù)、斷言服務(wù)、策略查詢服務(wù)、屬性查詢服務(wù)、審計記錄服務(wù)等跨域或單域訪問過程中需要的web服務(wù),能夠提供一套完整的安全訪問業(yè)務(wù)流程所需的各種功能。以下通過訪問控制流程的實施步驟和其中涉及的子流程給出完整的實現(xiàn)步驟說明。
訪問控制流程是從業(yè)務(wù)的角度利用BPEL建模工具對服務(wù)構(gòu)件進行粘合從而實現(xiàn)靈活的安全訪問控制系統(tǒng)。整個流程包含了一個總的訪問控制過程,包括認證,授權(quán)以及審計部分。每一個功能的具體實現(xiàn)都封裝在所調(diào)用的服務(wù)構(gòu)件中。流程中不包括細粒度的安全處理過程。
BPEL流程的執(zhí)行過程描述采用了程序設(shè)計語言偽代碼的方式,其中變量和方法的命名都采用了統(tǒng)一的形式,目的是使流程的執(zhí)行過程表述更加清晰,是實際BPEL流程建模和執(zhí)行過程的抽象描述。
BPEL流程中調(diào)用的每一個web服務(wù)可以是由web服務(wù)粘合而成的子流程,例如對訪問控制流程中的Authentication Enforce Service,可以采用BPEL流程進行建模,如圖1所示。
圖1 BPEL建模的安全認證過程流程圖
這樣,我們利用BPEL自上而下地從業(yè)務(wù)流程的角度構(gòu)建了一個安全訪問控制系統(tǒng)模型。通過這種方式,可以從很大程度上避免對底層細節(jié)的處理,這些細節(jié)可以交給具體的web service以構(gòu)件的形式進行封裝。由于不涉及到細節(jié)處理?梢允沽鞒痰膱(zhí)行邏輯更加嚴密,從更大程度上減少系統(tǒng)的安全漏洞和隱患。同時由于web service可以根據(jù)需要而更換,系統(tǒng)的升級和更新將更加方便,減少了系統(tǒng)維護的代價。
2.3 共性安全構(gòu)件組裝開發(fā)技術(shù)
AOP和DI技術(shù)是軟件工程領(lǐng)域成熟的開發(fā)方法。它們面向接口和對象,采用程序設(shè)計語言提供的反射機制實現(xiàn)系統(tǒng)的動態(tài)部署和功能替換。
本文從構(gòu)件的層面,將AOP和DI思想引入到共性安全構(gòu)件的組裝開發(fā)過程中,將提供類似功能的構(gòu)件歸類,抽取通用的操作接口。上層構(gòu)件對底層構(gòu)件的調(diào)用采用松散耦合機制,對易變的底層構(gòu)件調(diào)用其接口,具體構(gòu)件在部署時由配置文件指定,這樣可以有效提高構(gòu)件的復(fù)用性,同時加快構(gòu)件部署系統(tǒng)時的效率和靈活性。下面結(jié)合屬性檢索構(gòu)件說明如何將AOP和DI的思想結(jié)合到共性安全構(gòu)件的開發(fā)過程中及其帶來的優(yōu)勢。
在傳統(tǒng)的訪問控制模型中,屬性檢索必不可少。通常需要根據(jù)用戶的屬性信息來為其提供相應(yīng)的訪問權(quán)限。但是在不同的應(yīng)用場景下,不同的對象屬性檢索方式可能不同。如果在設(shè)計一個訪問控制系統(tǒng)的時候,使用哪種屬性檢索方式還不確定,通常的做法將會是將所有的屬性檢索構(gòu)件全部集成到其中,然后根據(jù)用戶提供的消息來決定使用哪一個構(gòu)件,正如圖2中所描述。這與設(shè)計安全構(gòu)件的初衷相背離。用安全構(gòu)件搭建系統(tǒng)的優(yōu)勢就是構(gòu)件可方便進行拆解和組裝,易更換和升級。
圖2 集成式屬性檢索構(gòu)件
下面結(jié)合AOP和DI思想,提供一種更好的解決方案。圖3顯示了重新設(shè)計的屬性檢索構(gòu)件架構(gòu),首先提取出所有屬性檢索過程所需要的操作,然后將這些操作封裝成一個接口Attribute Retrieve Faetory。每個屬性檢索構(gòu)件都實現(xiàn)該接口,遵循該接口定義的規(guī)范。系統(tǒng)開發(fā)時針對接口進行編碼,運行時根據(jù)配置文件,采用面向?qū)ο笳Z言的反射機制注入實際需要的具體屬性檢索構(gòu)件。每一個屬性檢索構(gòu)件只要實現(xiàn)了該接口,就可方便地組裝到系統(tǒng)中。這樣既可簡化系統(tǒng)架構(gòu),又有利于系統(tǒng)的擴展,方便新的屬性檢索構(gòu)件的開發(fā)和配置。
圖3 采用AOP和DI思想實現(xiàn)的遁用屬性檢索構(gòu)件
在創(chuàng)建構(gòu)件的過程中,合理地使用AOP和DI思想可以帶來很大的方便。雖然采用反射機制在運行時創(chuàng)建對象會帶來一定的效率損失,但是可以簡化系統(tǒng)架構(gòu),優(yōu)化配置過程,更重要的是使系統(tǒng)的擴展、構(gòu)件的開發(fā)應(yīng)用更加方便快捷。反射機制和對象的動態(tài)生成功能在靜態(tài)面向?qū)ο笳Z言如Java、C#中都已經(jīng)提供了一定的機制來實現(xiàn),可以較方便地將其應(yīng)用到構(gòu)件開發(fā)應(yīng)用中。依賴注入結(jié)合AOP思想的開發(fā)技術(shù),可以將構(gòu)件之間的繼承關(guān)系和共性特征很好地展現(xiàn)出來,使構(gòu)件層次劃分、類別劃分更加清晰,也更容易實現(xiàn)構(gòu)件的開發(fā)、組裝、擴展和升級。圖4描述了基于AOP和DI思想的安全構(gòu)件組裝開發(fā)模式。
圖4 基于AOP和DI思想的安全構(gòu)件組裝開發(fā)模式
3 性能測試與實驗數(shù)據(jù)
本節(jié)從系統(tǒng)性能方面,針對之前設(shè)計的安全業(yè)務(wù)流程中安全認證系統(tǒng)進行測試,獲取試驗數(shù)據(jù)并與傳統(tǒng)的安全認證中間件產(chǎn)品CAS、OpenID協(xié)議進行比較,驗證安全構(gòu)件集成建模方法的有效性。為了使系統(tǒng)之間更具可比性,本文只針對服務(wù)端一次成功驗證的時間進行比較,時間的截取從認證信息發(fā)出到認證斷言頒發(fā)成功為止,采用統(tǒng)一的用戶名口令認證方式。同時為了減少網(wǎng)絡(luò)IO對傳輸速率的影響,認證系統(tǒng)都采用本地部署的方式,并且CAS和OpenID協(xié)議都采用單域的認證機制,以減少跨域流程帶來的性能損失,防止其對比較結(jié)果產(chǎn)生影響。安全認證系統(tǒng)的BPEL流程圖如圖6所示,它包含了可用的四種具體認證方式。本節(jié)只對用戶名口令認證方式進行測試。其他三種方式的認證服務(wù)構(gòu)件并未實現(xiàn)。但是為了使比較結(jié)果更加趨于實際應(yīng)用,流程中保留了分支活動。為此,安全認證BPEL流程接受的輸入?yún)?shù)除了包含用戶名、口令之外,還有所選擇的認證方式標識,如圖5所示。
圖5 安全認證系統(tǒng)輸入?yún)?shù)
CAS和OpenID的基本認證流程如圖6所示,本試驗為減少實驗環(huán)境對測試性能的影響,將客戶端、依賴方、認證服務(wù)器部署到統(tǒng)一機器上,并且只統(tǒng)計認證服務(wù)器進行認證的時間,即圖6流程中從客戶端發(fā)送用戶身份數(shù)據(jù)(步驟3)到依賴方收到認證結(jié)果(步驟4)之間的時間。
圖6 CAS和OpenID的基本認證流程
本文利用3GHz主頻、2G內(nèi)存的計算機,部署了CAS 3.0服務(wù)、OpenID服務(wù)以及安全認證系統(tǒng),采用本地MySql身份數(shù)據(jù)庫,針對一次成功的單域認證所用的時間,對三個系統(tǒng)性能進行比較分析,另外還對安全認證系統(tǒng)內(nèi)的用戶名口令認證服務(wù)構(gòu)件做了測試,以此分析基于BPEL構(gòu)件整合方案的性能損耗。具體數(shù)據(jù)見表1所示。
表1 各認證系統(tǒng)性能數(shù)據(jù)比較
通過上述數(shù)據(jù)可以看出,基于安全服務(wù)構(gòu)件搭建的安全認證系統(tǒng)在效率上較CAS和OpenID更為出色,但是與直接使用口令認證服務(wù)構(gòu)件進行認證的效率相比,卻存在一定差距。根據(jù)認證流程可以分析得出,這部分效率損失主要集中在web Service接口調(diào)用時,對數(shù)據(jù)的xml編解碼過程之中。由此可見,使用BPEL粘合服務(wù)構(gòu)件搭建安全業(yè)務(wù)系統(tǒng),是以部分性能損耗為代價,換取高效的開發(fā)、靈活的部署方式,在很多場景下是具有實際應(yīng)用價值的。
為了提高安全業(yè)務(wù)系統(tǒng)的效率,可以增加安全服務(wù)構(gòu)件的粒度,減少安全業(yè)務(wù)流程中web service的調(diào)用次數(shù);此外,研發(fā)更加高效的安全服務(wù)構(gòu)件粘合技術(shù)是解決該問題最直接的手段。
4 結(jié)語
本文試圖介紹一種新型的建模方法,通過將AOP和BPEL等軟件開發(fā)技術(shù)和思想結(jié)合到信息安全共性構(gòu)件的開發(fā)和應(yīng)用中,使信息安全系統(tǒng)的建模過程更加方便,從上層而言避開了瑣碎的實現(xiàn)技術(shù)細節(jié),所建立的系統(tǒng)邏輯清晰,從而減少了系統(tǒng)中存在的安全漏洞,具有更高的安全性能。同時從底層而言由于信息安全共性構(gòu)件的使用,系統(tǒng)的可重用性大大提高,用戶可以根據(jù)實際需要更換相應(yīng)的構(gòu)件,具有良好的擴展性,系統(tǒng)的維護和更新更加便捷。
從長遠來看,云計算、服務(wù)托管是近來新興的業(yè)務(wù)模式和網(wǎng)絡(luò)應(yīng)用層體系結(jié)構(gòu)。由此產(chǎn)生出新的安全需求和安全問題。包括策略集成在內(nèi)的諸多安全技術(shù)應(yīng)更好地借助共性安全構(gòu)件這一先進開發(fā)理念,從新的業(yè)務(wù)角度出發(fā),重新定位受保護的核心資產(chǎn)和安全目標實施方式.提供與產(chǎn)業(yè)應(yīng)用升級同步的安全服務(wù)模式升級。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的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)載請注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標題:基于服務(wù)構(gòu)件集成的安全訪問業(yè)務(wù)建模方法
本文網(wǎng)址:http://www.oesoe.com/html/solutions/1401932319.html