摘 要:在前期工作的LISA體系結構下,提出了IBAC模型,提供了更加精確和高效的網絡訪問控制,然而,IBAC增大了訪問控制列表的處理開銷。為此,對訪問控制列表的規則組織結構進行了分析和優化,模擬實驗證明了優化方法的有效性。
關鍵詞:訪問控制;位置與標志分離; 基于標志的訪問控制;訪問控制列表
中圖分類號:TP181 文獻標志碼:A
文章編號:1001-3695(2010)03-1145-03
doi:10.3969/j.issn.1001-3695.2010.03.094
Optimization of access control list based on locator/identifier split
YAO Yu-feng1,TU Rui2
(1.School of Computer Science Engineering, Changshu Institute of Technology, Changshu Jiangsu 215500, China;2.Dept. of Quarter-master, Military Economie Academy, Wuhan 430035, China)
Abstract:With the support of locator and identifier separation architecture (LISA),this paper proposed IBAC model which made network access control more accurate and efficient. However, IBAC increased the process costs of ACL(access control list).In order to reduce the process costs,this paper analyzed and optimized the rules structure of ACL.The simulation test results prove the efficiency of the optimization approach.
Key words:access control;locator/identifier split;IBAC(identifier-based access control);ACL
0 引言
在當前的TCP/IP體系結構中,IP地址在語義上具有雙重含義,既代表了網絡節點的拓撲位置,又是節點的標志,IP地址成為一個與位置相關的動態可變標志。由于IP地址語義過載(IP overloaded)問題的存在[1~3],目前普遍采用的基于IP地址驗證的訪問控制方式面臨諸多無法克服的缺陷。
首先,基于IP地址的訪問控制限制了節點移動條件下的資源訪問。一些網絡服務使用IP地址來區分服務對象,這就導致服務對象綁定了位置,不能滿足用戶的移動性要求。例如一些網絡服務僅限于特定IP段的用戶訪問,若某個用戶的網絡位置發生了變化,即使其身份合法也無法獲得原有的服務。
其次,IP地址語義過載加大了基于IP地址的訪問控制復雜性和難度,并在一定程度上影響了訪問控制的效能,例如:
a)由于IP地址本身的動態可變以及地址欺騙的存在,IP地址不能夠準確反映節點的真實身份,非法用戶可以匿名地發動各種形式的攻擊,而很難在網絡層定位訪問源。
b)IP地址與用戶之間沒有準確的對應關系[4],不同時刻一個IP地址可能對應不同的用戶,一個IP地址也可能對應多個用戶(如NAT)。這種情況便于網絡犯罪的隱藏,增大了各種安全機制的復雜性,并影響其效能。
c)由于情況a)b)的存在,使得訪問控制的效能大打折扣,同時還造成一些誤傷,損害了合法用戶的利益。
最后,由于網絡拓撲或ISP自身策略的改變,會導致IP地址重分配,使得許多基于IP地址的訪問控制策略、配置都需要改變。這無疑加大了訪問控制管理的復雜性和更新的工作量。
上述缺陷的根源在于網絡實體沒有精確、惟一的固定標志,為此必須首先解決IP地址語義過載問題。國際IAB組織提出通過引入兩個名字空間來分別表示節點標志和位置,即所謂的locator/identifier split[5,6]來解決IP地址語義過載問題。Locator/identifier split引入了固定的節點標志(identifier),從而為準確地識別網絡實體(用戶、主機、設備)和惡意流量奠定了基礎。筆者認為通過將基于locator/identifier split的路由和尋址方案與源地址驗證技術集成,可以提高網絡的安全性。
本文在已完成的位置與標志分離的命名和尋址體系結構框架(LISA)[7]下,提出了一種基于固定標志的訪問控制模型(IBAC)。IBAC支持網絡實體的基于固定標志的身份識別,提供了準確、高效的精細粒度訪問控制機制。通過采用不依賴于用戶位置信息訪問控制機制,使得安全策略的管理和執行更加直觀和有效。
訪問控制列表(ACL)是一種普遍采用的網絡訪問控制機制。ACL的處理采用順序匹配規則的方式,匹配規則的過程會導致報文的延遲。當規則表項較少時,這種延遲可以忽略,但如果表項龐大,就會對報文延遲產生一定的影響。IBAC提供了細粒度的訪問控制,ACL的規則粒度變小,加之identifier本身的規模,導致基于IBAC的ACL的表項規模較大。此外,基于IBAC的訪問控制處理過程也發生了變化,帶來額外的處理延遲,詳見第2章。在IBAC中,ACL的處理延遲成為影響報文處理性能的一個重要因素。因此,需要針對IBAC的特性,對ACL的規則組織結構進行優化,減少報文的處理延遲。
1 LISA體系結構
LISA采用了基于網絡的locator/identifier split命名和尋址體系結構,如圖1所示。本文將網絡劃分為核心網絡和邊緣網絡,核心網絡使用locator名字空間,邊緣網絡使用固定的identifier名字空間。通信會話基于固定的identifier,但identifier對應的locator可以變化。
為了支持報文在兩個名字空間的尋址,LISA采用了“LISA in IP”的報文封裝方式。LISA路由器(邊緣路由器)通過查詢LISA-Mapping映射服務,完成identifier到locator的映射。LISA-Mapping是一個基于單跳DHT的分布式映射服務系統[8]。Identifier是一個新的扁平名字空間,有利于支持移動性,也可以不受限制地表示為特定意義的名字空間。Locator沿用了已有的IP地址空間(IPv4/IPv6),這樣可以避免對大量核心網絡設備的更新。LISA路由器收到主機發送的報文后,根據報文包含的identifier信息,查詢分布式映射服務系統,并獲得匹配的locator記錄。LISA路由器隨后將一個包含locator的新報文頭附加在當前的報文上。在新報文中,內部報頭的源和目的地址是identifier,外部報頭的源和目的地址是locator。LISA用identifier來表示網絡節點,在核心網絡中根據locator來轉發封裝后的報文。當一個經過封裝后的報文到達目的地LISA路由器時,路由器將解封該報文,并根據identifier將其發送到目的地主機。
2 IBAC模型
與傳統的訪問控制不同,IBAC模型的訪問控制策略基于網絡實體的真實固定標志,而不是IP地址或者網絡設備端口。IBAC提供了端到端的安全機制,細化了訪問控制的粒度。例如,即使多個用戶共享一個locator(如IP地址),IBAC也可以根據identifier為單個用戶指定安全策略。
IBAC保證了訪問控制策略的長期穩定性。雖然網絡節點在移動過程中locator會發生變化,但基于固定identifier的訪問控制策略不需要改變,合法用戶可以繼續訪問相關服務。IBAC適合移動節點的訪問控制,避免了由于locator變化所導致的訪問控制更新,減輕了訪問控制管理的復雜性和工作量。
由于identifier是一種無結構的扁平標志,也就無法像IP地址一樣進行聚合。在這種情況下,IBAC只能對每個identifier制定訪問控制策略,而無法對策略進行歸類,從而導致訪問控制列表規模膨脹。為了簡化訪問控制策略,控制ACL的規模,本文引入了標志歸屬(identifier affiliation)的概念。
定義1 標志歸屬。Identifier對應用戶、設備所歸屬的組織。
IBAC由三個實體組成:標志(I)、對象(O)、權限(P)。其中,標志又劃分為個體標志(individual identifier,I2)和標志歸屬(identifier affiliation)。
IBAC的授權用三元組(I,O,P)表示,如果存在元組(I,O,P),則表明I可在O上執行P許可。訪問控制策略在語法上包含兩種形式:基于個體標志(I2)的表項和基于標志歸屬(IA)的表項。其中,基于標志歸屬的表項是對若干基于個體標志的表項的合并。如果存在元組(I2,O,P),則表明單個I可在O上執行P許可;如果存在元組(IA,O,P),則表明一組I可在O上執行P許可。
對應不同類型的訪問控制表項,存在兩種不同的處理過程。對基于I2的表項進行查詢和匹配時,由于報文中已經攜帶了源identifier,處理過程類似基于IP的訪問控制列表的處理。在對基于IA的表項進行處理時,由于報文沒有直接攜帶IA,需要目的端安全設備根據報文的源identifier向LISA-Mapping映射服務系統查詢,獲得響應的IA,再根據IA查詢訪問控制表項。為了支持基于IA的訪問控制策略,需要對LISA-Mapping映射服務系統進行擴展:每條映射記錄不僅包括locator,還包括identifier對應的IA信息。
引入了標志歸屬后,達到了標志聚合的效果,可以針對一個機構制定訪問控制策略,從而減少訪問控制策略表項規模。所帶來的額外操作是機構需要事先向LISA-Mapping映射服務系統注冊本機構成員的IA信息。本文以基于IA的訪問控制為例,給出整個訪問控制過程,如圖2所示。
3 ACL規則優化
基于IBAC的ACL的規則粒度變小,加之identifier本身的規模較大,導致基于IBAC的ACL的表項規模較大。此外,基于IBAC的訪問控制處理過程引入了基于IA型規則的訪問控制,帶來額外的查詢延遲。因此,在IBAC中,ACL的處理延遲成為影響報文處理性能的一個重要因素。為了提高IBAC的實用性,需要對ACL進行優化,以減少處理開銷。
3.1 模型描述
首先定義I為所有可用的identifier的集合,由于identifier包含I2和IA兩種類型,為了以后討論的方便,重新定義I=I2∪IA;定義P為當前支持的協議組。
定義2 規則:ri=(opi,pri,sIi,dIi)。其中:opi∈{permit, deny},為規則執行的操作;pri∈P,為規則處理的協議對象;sIi∈I,dIi∈I,分別為規則限定的源identifier和目的identifier。四元組中,只有opi是每條規則所必需的,其他元素省略時的默認值為pri=P,sIi=dIi=I。
定義3 報文:pk=(prk,sIk,dIk,spk,dpk)。其中:prk∈P,為報文的協議;sIk∈I,dIk∈I,分別為報文攜帶的源identifier和目的identifier;spk和dpk分別表示報文的源端口和目的端口。
若報文pk與規則ri匹配,記做pk⊙ri,定義為
pk⊙ri=(prk∈pri)∧(sIk∈sIi)∧(dIk∈dIi)(1)
3.2 優化方法
ACL優化目標:本文設定ACL的規則序列R={r1,r2,…,rn},對于ri∈R,為R中的第i條規則;設定流T={p1,p2,…,pm}為一段時間的報文序列。
定義4 等效ACL。設定兩個ACL規則序列R和R′,以及報文流T,若對于任意報文pk∈T,R和R′的處理結果相同,則稱R和R′等效,記做:R≡R′。
設定報文與一條規則匹配操作的耗時為函數T(ri)。對于I2型規則,由于僅限本地處理,考慮長期大量報文的處理,處理時間趨近恒定,設為λ。對于IA型規則,涉及遠程查詢和映射解析,處理時間變化較大,設為函數p(ri)=query(sIk)+λ。規則處理耗時函數可以表示為
T(ri)=query(SIi)+λ if ri∈IA
λif ri∈I2(2)
定義5 累積處理時間。對于ACL規則序列R的任意一條規則ri,系統在處理ri及其之前的規則時總共消耗的時間,記做cpt(ri(R))。
cpt(ri)=ij=1T(rj)(3)
設E(T,R)表示報文流T在某一ACL規則序列上的處理期望時間,則ACL的優化目標為:求使得E(T,R)最小的R的等效ACL,即在不改變ACL執行結果的條件下,通過修改規則序列的結構,使報文流T的處理期望時間最小。
設定報文流T中報文與規則序列R中任意規則匹配的概率f(i),ni=1f(i)=1,則報文流在R上的處理期望時間為
E(T,R)=ni=1f(i)cpt(ri(R))=ni=1f(i)ij=1T(rj(R))(4)
定義6 規則冗余。IA型規則可以看做一組I2型規則的集合,因此在一個ACL的規則序列中可能出現一條I2型規則在語義上被包含在一條IA型規則中的情況,即規則冗余。
對于規則序列R中的兩條規則:ri和rj,其中ri∈I2,rj∈IA,若所有匹配ri報文均能被rj匹配;反之不成立,則稱ri規則冗余,記做ri< ri< 由于ACL的規則序列是順序執行的,冗余規則的執行順序不同,ACL執行時間也不同。對I2型規則ri和IA型規則rj: a)i b)i>j。ri和rj所針對的報文對象相同,由于ACL的規則序列采用順序一次執行的方式,被rj執行的報文不會被ri再次執行,ri實際多余。對于規則序列R:{r1,r2,…,rj,…,ri,…,rn},如果刪除ri,得到新的規則R′:{r1,r2,…,rj,ri-1,ri+1,…,rn}。易知,R≡R′。 由于規則ri不會被執行,還給ri之后的規則rx(x>i)增加了一次匹配操作,從而增大了E(T,R′)。檢測到這種類型的規則冗余,可以考慮將ri刪除。 設定冗余規則ri,現討論E(T,R′),易知只有序號在ri之后的規則會受到ri刪除的影響,由式(2)(4)得到: E(T,R)-E(T,R′)=λnk=i+1f(k)(6) 除了簡單地刪除ri外,還可以考慮交換兩條冗余規則的位置來達到減小E(T,R)的目的。通過把冗余的I2型規則提到IA型之前,可以使得部分報文不需要進行遠程查詢,從而整體上減少了處理時間。 對于規則序列R:{r1,r2,…,rj,…,ri,…,rn},如果交換ri和rj,得到新的規則R″:{r1,r2,…,ri,…,rj,…,rn}。易知,R≡R″。性能提升一方面來自原本匹配rj的報文不再需要遠程查詢,一方面來自匹配rk(i E(T,R)-E(T,R″)=i-1k=j+1f(k)query(sIk)+f(i)query(sIj)(7) 設刪除和交換兩種方式產生的性能提升差異為diff(R′,R″),由式(6)(7)得到 diff(R′,R″)=λnk=i+1f(k)-i-1k=j+1f(k)query(sIk)-f(i)query(sIj)(8) 因此,若diff(R′,R″)≥0,則采用刪除的方式;若diff(R′,R″)<0,則采用交換的方式。 處理原則:I2型規則在前,IA型規則在后。 證明 對于規則序列R:{r1,r2,…,ri,…,rj,…,rn},其中,ri為I2型規則,rj為IA型規則,如果交換ri和rj,得到新的規則R″:{r1,r2,…,rj,…,ri,…,rn}。易知,R≡R″。匹配rk(i<k ΔE(T,R)=i-1k=j+1f(k)query(sIk)>0 (9) 可見,將IA型規則盡量后移,能減少ACL的處理期望時間。 3.3 模擬實驗結果 本文使用3.2節的優化原則對一組不同規模和規則結構的原始ACL進行優化,得到一組新的ACL。通過隨機生成的10萬個模擬LISA報文,測量數據報文在新舊ACL上的總運行時間。 在不改變訪問控制結果正確性的前提下,對于不同規模的ACL,本文測試了刪除冗余I2型規則,交換I2型和IA型規則兩種情況。對于前一種情況,本文在構造ACL時僅應用刪除操作;對于后一種情況,本文在構造ACL時僅應用交換操作。表1顯示了對于不同規模的ACL,優化前后的運行時間比。實驗結果表明:優化后的ACL執行時間有所減少,并且通過交換的方式能比刪除獲得更大的性能提升。此外,當ACL規模較大時,通過刪除冗余I2型規則很難再獲得較大的性能提升。然而,隨著ACL規則數目的增多,交換I2型和IA型規則能獲得更大的性能提升。 表1 ACL規則優化后的性能對比 ACL規模(規則數)規則刪除(timenew/timeold)/%規則交換(timenew/timeold)/% 5098.2796.78 10098.4295.12 50097.3194.53 1 00097.6592.34 4 結束語 IBAC模型的ACL具有不同于基于IP的ACL的特殊屬性,在一定程度上增大的訪問控制列表的處理 開銷。為了提高訪問控制列表的查詢效率,減少延遲,本文對IBAC模型的訪問控制列表的組織結構進行了優化。模擬實驗證明經過優化的訪問控制列表處理時間有所減少,提高了IBAC的實用性。 參考文獻: [1] SCUDDER J.Routing/Addressing problem solution space[EB/OL].(2007).http://www.arin.net/meetings/minutes/ARIN_XX/PDF/wednesday/SolutionSpace_Scudder.pdf. [2]CLARK D,BRADEN R,PALK A,et al.FARA:reorganizing the addressing architecture[C]//Proc of ACM SIGCOMM’03 Workshops.New York:ACM Press,2003:313-321. [3]SALTZER J.RFC 1498,On the naming and binding of network destinations[S].1993. [4]TU Rui,SU Jin-shu,MENG Zhao-wei,et al.UCEN:user centric enterprise network[C]//Proc of IEEE ICACT.2008:66-71. [5]MEYER D,FALL K.Report from the IAB workshop on routing and addressing[S].2006. [6]涂睿,蘇金樹,彭偉.位置與標識分離的命名和尋址體系結構研究綜述[J].計算機研究與發展,2009,46(11):1777-1786. [7]涂睿,蘇金樹.一種基于位置/標識分離的站點多宿主路徑失效恢復機制[J].計算機科學, 2009,36(10):49-54. [8]涂睿,蘇金樹.一種基于hash的位置與標識分離的映射機制[R].長沙:國防科技大學,2009.