進入21世紀,信息化的浪潮席卷了整個世界??梢哉f,現在的任何一項生產活動都離不開計算機、網絡和信息系統,越來越多的組織機構和企業建立了各種計算機信息系統以滿足日益激烈的市場競爭的需要。在信息系統中,有兩個安全需求是非常重要的:如何保證人員的安全登錄和登出?如何控制不同層次的人員使用不同的功能?解決這兩個問題的辦法是采用認證技術和授權技術。目前常見的方法是分別構建不同的認證授權平臺和系統,認證授權屬于分散管理模式,其造成的結果是重復建設、無法高效互聯互通、管理成本高以及系統總體安全性降低。因此,如何能夠設計和建設一個通用架構和基礎平臺,承載不同組織和機構的信息系統,避免重復建設,實現跨域跨機構、可移植、可信任和可擴展的認證授權與審計,是一個亟待研究解決的問題。
認證和授權是任何信息化的系統都應當包含的功能,因此工業界也討論和設立了很多關于這方面的標準。其中,認證的需求目標比較獨立和明確,關于認證的標準比較多比較全,大眾的認知度也比較高。授權管理的需求相對比較分散和模糊,標準不多,應用的實際效果也一般。下面,我們就對這兩種標準的應用和發展分別做一個綜述。
1、身份認證的標準
這里把認證分為3大類:認證方案類、單點登陸(SSO)協議類和認證實現類。
認證方案是指認證的方式、手段、涉及的設備和協議,最常見例子就是用戶名/口令方式,其他的還有一次性口令方案、X.509數字證書方案、生物認證方案、智能卡認證方案、Kerberos認證方案等。這些方案描述的是認證的實體,包括流程、序列、實現,甚至包括數學證明和安全性分析。隨著時間的推移,這些方案在不斷發明、使用、被攻破的過程中也在不斷地優化和改進。
SSO協議指的是集成各種認證方案以實現單點登錄目的的協議規范,主要的有安全性斷言標記語言(SAML) V1.0/V1.1/V2協議、網絡身份統一架構(ID-FF) 1.2協議、WS-Federation協議和.Net Passport協議。其中SAML[5-6]協議由結構化信息標準促進組織(OASIS)制定,規定了SSO在客戶端(Browser)和工件(Artifact)實現的流程,定義了認證斷言和屬性斷言,它們都遵循萬維網聯盟(W3C)的XMLSchema規范和XMLSig規范,以可擴展標記語言(XML)的格式描述。ID-FF 1.2協議由Liberty Alliance組織制定,Liberty規范要求建立聯盟關系的系統的賬號之間要建立映射,通過映射關系間接地實現賬號的全局性,該規范和SAML越來越融合。SAML的標準化程度比較高,將認證的功能和流程做了統一的規劃和定義,各大軟件廠商對其支持力度也在逐漸加強;ID-FF使用的技術與SAML越來越趨同;而WS-Federation協議和.Net Passport協議比較封閉,被提及的次數越來越少。
認證實現是指工業界形成的實際技術框架標準和開源社區基于標準構建的認證系統,他們雖然在建立之初并沒有經過標準化委員會的認證和支持,但是,他們在實際的軟件開發人員中有著先入為主的重要印象和深遠的范例意義。Java認證授權服務(JAAS)就是一項JAVA領域的實際標準,它規定了一系列的調用接口和規范,提供了靈活和可伸縮的機制來規范客戶端或服務器端的JAVA程序。許多基于JAVA技術構建的大型應用和服務,無論是軟件巨頭推出的產品還是極具影響力的開源社區推出的系統,都已經聲稱支持這項規范,商用系統有Webshpere和Weblogic等,開源社區有JBoss和Tomcat等。開源社區基于標準構建的認證系統影響力也不小,比如Internet2的Shibboleth,致力于校園網教育系統的認證聯盟建立,實現Web資源的共享;又比如Acegi Security為Spring Framework提供一個兼容的安全認證服務;還有耶魯大學開發的單點登錄系統(CAS),在互聯網上被討論的熱度也很高。
2、授權管理的標準
授權管理有著悠久的歷史,但是發展比較緩慢,基本還是在早期的理論上修補,沒有具有突破性質和廣泛應用價值的新成果出現。比較熱門的研究有基于任務的授權、基于工作流的授權等,但離標準的形成和大規模應用還有相當長的距離。
授權管理基礎設施(PMI)授權管理基礎設施是一種被寄予厚望的授權架構標準,它推薦使用屬性證書(由Asn.1格式描述)來定義出現在各種系統中的權限,使用簽名技術保護授權。但是由于Asn.1語義艱澀、開放性不夠等諸多原因,這項標準發展到現在,應用的狀況并不是特別理想。
可擴展的訪問控制標記語言(XACML)是一種有影響力的授權描述標準,和SAML一樣,也是由OASIS定義,它擴展了傳統的訪問控制列表(ACLs)技術,提供了表達復雜邏輯策略的能力,使得應用程序更加靈活地使用訪問控制策略。
Java容器授權合同(JACC)是一種被工業界實際采用卻未標準化的技術標準,基于JAVA
構建的大型企業應用都在不經意間使用了該項技術,比如在Portal、App Server領域,占據較大市場份額的商用系統都內置了對該技術的支持。