陸睿++劉東
摘 要:針對XML語言在數字簽名和加密上的一些薄弱環節,該文從訪問控制和單點登錄兩個方面提出了改進XML安全性的方法。
關鍵詞:擴展標記語言(XML) 訪問控制 單點登錄
中圖分類號:TP309.2 文獻標識碼:A 文章編號:1674-098X(2014)04(a)-0033-01
XML安全性存在一些明顯的薄弱環節。如XML簽名只對XML標記了的數據進行處理,使得不同的格式數據在哈希算法中產生不同的值。另外XML加密由于XML的靈活性而容易遭受攻擊。下面從訪問控制和單點登錄兩個方面研究分析解決安全性的方法。
1 訪問控制的改進
由XML衍生出來的XML訪問控制標記語言(XACML)提供了服務器端關于訪問控制策略的一系列規則。XACML策略可以引用別的策略,還可以智能地融合與其沖突或重疊的規則集。如果所提供的算法集還不充分的話,應用開發者可根據自身需要進行新的定義。
傳統的基于身份的訪問控制(IBAC)是一種不能良好擴展的控制方法,定義重復而冗長,因為它所遵循的規則需要對每一個身份進行定義。而較新的基于角色的訪問控制(RBAC)是直接將訪問許可與訪問者身份代碼或符合訪問者身份的規則相關聯。RBAC要求訪問策略為系統中的所有角色進行定義,然后將訪問者身份代碼映射到這些角色上。這種方式同樣具有很大局限性,從系統頑存性的角度,一個擁有特定權限同時扮演特定角色的訪問者應該擁有與這一角色相關聯的所有權利。最新的基于屬性的訪問控制(ABAC),其策略規則的定義基于主體(用戶、應用、進程等)、受訪問資源(網絡服務、數據等)的屬性,和它們的環境(時間、威脅等級、安全等級等),這就能夠提供比RBAC更為精細的訪問控制策略。
針對傳統訪問控制的缺陷,利用ABAC的這一特性,可以使用安全等級標簽來創建規則,允許XACML策略與強制訪問控制(MAC)同時使用,并制定分級的安全策略以確保其高效性。訪問控制是安全性的重要部分,應該支持多種形式和不同等級的應用。在一個高安全等級的系統中,低強度的訪問控制只能用于一般信息的訪問,如果訪問重要信息,則需要更高等級的訪問控制。其中,低強度訪問控制可以與RBAC協同實施,角色的操作權限與用戶身份相關聯。例如,一個系統管理員角色能夠允許他以任何用戶身份登錄系統,而普通用戶只能擁有較低的系統權限。而雙重精確訪問控制應該評估具體的用戶特性,從而通過ABAC進程做出判斷。在這種情況下,可以基于用戶特征實施更為精確的權限評估。比如,這些特征反映出當訪問分段數據時,必須對特殊許可證進行認證。也就是說,擁有特殊許可證的用戶只能訪問他們必須知道的分段數據,而不是具有同樣安全等級的所有數據。
2 單點登錄的改進
SSO是標記授權認證機制,在這種機制下,請求者被提供一個顯示其已經通過認證服務器的標記,系統內的其他服務器可以不需額外認證即接受這一標記,以簡化用戶認證過程。SSO標記存在的安全問題之一,假定標記只在安全通道內傳輸,意味著認證服務只能向認證用戶提供標記,第三方不可能獲得此標記。相對安全技術而言,這種方法建立的系統更依賴于對其它應用系統的信任。這種情況下的安全模式可以歸納為“如果這一系統以它應該的方式建立,我們就相信它”。這種安全強度對于重要系統比如電信運維管理系統顯然不夠。信息網絡的終端用戶或服務不能驗證這一要求,所以在動態SOA中這樣的認證機制并不實用。SSO標記存在的安全問題之二是其保鮮性,即認證必須有即時性,在基于標記的系統中很難做到這一點。基于標記系統的核心概念之一是:一個身份可以在認證以后才使用。這種“重放”模式與認證機制要求的即時性并不一致。認證是這樣一個過程,當某一身份正在被聲明時,驗證某個身份是不是他所聲稱的身份(即邊認證邊使用)。即時性保證通常需要與系統時鐘同步,從而使信息時間戳是有效的,這在SOA等松耦合系統中難以保證。
針對這些問題,認證可以和密鑰分發機制結合起來,來自合法客戶的需求可以通過共享的加密密鑰來受到保護。為了防止攻擊者獲得SSO的安全標記(在此情況下就是共享的加密密鑰)的訪問權,安全協議必須做出特殊規定來傳輸與網絡通信規則相分離的密鑰。因此,協議必須被加密,并且不依賴于通信安全協議對密鑰進行無縫傳輸。
按照理想的設計,PKI應該是共用信息基礎設施架構下鑒別用戶的通用要求。可以借助通用訪問卡(CAC)來實現,卡上包括用戶的私人密鑰和防篡改證書。訪問私人密鑰需要個人身份號碼(PIN),而卡上不攜帶這些信息,所有涉及密鑰的計算由內置芯片完成。從用戶角度出發,在CAC上錄入個人身份號碼即可完成單點登錄。他的數字身份隨即被策略實施點和策略決定服務評估,與此同時他的用戶代理將收到一個安全標記。對于安全標記,CAC激活只能在特定的時間段內有效,而且必須對它進行重新認證。
參考文獻
[1] [RFC4535] Harney,et al., Group Secure Association Key Management Protocol, 2006. http://www.ietf.org/rfc/rfc4535.txt
[2] Laura Lee,Rod Fleischer.Service Oriented Architecture (SOA) Security Challenges And Mitigation Strategies.IEEE,2007.
[3] [SAML]Security Assertion Markup Language v2.0,OASIS, 2005. http://www.oasis-open.org/specs/index.php#samlv2.0.endprint