以XML為基礎的安全宣示標記語言

在XML推出之後,Web Services的使用彈性越來越高,也成為許多企業建置應用服務時的方式。雖然彈性增加,但是身分認證問題一直是讓人感到困擾的一環。使用者確認機制中,認證(Authentication)與授權(Authorization)是相當重要的兩個環節,只要是受到管理的站臺或網域,都需要連線者通過認證,而後才能獲得存取的權限。

早期XML的安全控管包含AuthXML及S2ML兩種作法,這兩個XML安全準則是在2000年秋季分別由Securact Technologies與Netegrity推出,雖然都是以安全控管為主,但是其中各有不同之處,彼此並沒有辦法完全相容,因此早期在Web Services部分除了透過一些基礎設備構成安全認證機制之外,很難找到另一套快速且有效的解決方案。

在企業網路中可以藉由整合如RADIUS、NT Domain或Active Directory等基礎認證設備,讓員工不管是在內部或外部網路都可以利用同一組帳號密碼達到單一登入(Single Sign-On)的理想。不過隨著設備越來越多,使用者也必須一而再、再而三的確認自己的身分,才能使用相關的功能,讓使用者操作上增加不少困擾。

在內部網路就如此麻煩了,更何況外界多種網路服務以及協同作業時的問題。內部網路的認證授權機制無法向外延伸到網際網路的情況下,許多提供Web Services的站臺都必須另覓方式以確保使用者的資訊安全,因此發展出多種方法,確保不同階段的安全性。

OASIS(資訊標準架構促進會)於7月13日發表安全宣示標記語言(Security Assertion Markup Language,SAML),是以XML為基礎發展而成的。

目的是提供採用Web Services的不同站臺,可以藉由SAML彼此溝通,並且安全地交換授權及認證,主要透過四種宣示以提高XML架構的安全性:認證宣示、屬性宣示、決策宣示及授權宣示。藉由SAML可以整合Web-based的安全機制達到單一登入的功效,能夠讓多家服務供應商跨站臺使用,並且以標準架構及協定提供資源共享的服務。以SAML提高Web Services安全防護彈性

所有提供Web Services的站臺為了避免安全防護出問題,都會採用多重密碼及身分認證。不過在身分認證沒有集中管理的狀態下,只要連線到不同網站,就必須要重新登入一次,而每個網站對帳號密碼的限制不同,甚至有的網站還需要特別的驗證軟體或憑證,讓使用者產生許多困擾。因為認證公信力的問題,在內部網路上可以利用的認證伺服器在網際網路上很難產生同樣的效力,並且認證過程需要花費大量的系統資源及時間,也不太符合效益。

為了提供認證功能,有許多認證機構(Certificate Authority)提供第三方憑證,使用者可以自行申請,並藉由這些憑證驗證使用者身分。這些憑證可分為公鑰與私鑰,私鑰是驗證個人身分的憑據,就如同身分證一般是個人專屬的,而公鑰則是用以驗證私鑰的正確性。不過這項作法有一定的複雜度,因為在使用時必須先安裝專屬的數據憑證或是相關設備,如RSA的SecurID或是內含憑證的智慧卡,在使用公共電腦時會產生一定的不便。而且不同網站使用的認證方式不儘相同,使用者在管理多種憑證時,就像管理多個帳號密碼一樣麻煩。而在站臺部分則需要得到CA的核可,才能夠獲得發送與驗證憑證的權力,相對的需要花費一筆額外的支出。由各行其政到集中化管理

雖然說單一站臺可以提供良好的安全保護機制,但是這僅僅是就安全性考量,絲毫沒有考量到使用者的操作便利性,而一般在內部網路所使用的集中認證管理機制基於安全與資料保密的原因,又無法在廣域網路中公開,有鑑於此,微軟推出了.NET passport安全機制,希望藉此提供更良好的安全性,並且讓使用者免於多次登入的困擾。

.Net passport的使用概念採用集中化認證授權管理,在有使用.Net passport的網站中就不需要再重複填寫已經輸入過的身分資料,登入後會自動由cookie轉向到要求認證的站臺,減少使用者的困擾。而各個站臺可以自行決定透過.Net passport認證的使用者權限,除了可以兼顧使用便利性之外,也能避免自動登入可能造成的安全危機。以統一標準提供充足彈性彌補受限制的集中管理

SAML基本運用方式與.Net passport相當類似,其中最大的不同點就在於SAML採用的是XML架構,具有開放的共通性與統一的標準,使用者可以據此自行開發相關套件及站臺上的認證機制,而不必受到第三方的限制;在Web Services供應商部分,可以自行架設認證資料庫,並且與協力廠商共同分享資料庫,也可以自行訂定授權層級,權限設定相當有彈性。

SAML的認證方式相當簡單,就如同一般登入方式,所不同的是帳號資料庫並不見得存在於該網站上,而可能是在遠端其他公司的伺服器。只要雙方允許彼此交換SAML憑證,使用者就可以藉由另一方的登入資訊取得存取站臺的權限。依據兩個站臺間的友好程度,可以決定使用者的授權層級,讓站臺管理者保有自行調整的彈性。以目前來說,許多如IBM、BEA、SAP等服務廠商都已經投入支援SAML的陣營,除了SAML可以提供良好的認證方式外,藉由標準化語言提供共通標準是最重要的原因,不論是不是同一家廠商提供的網路服務,只要透過SAML,就能夠互相交換認證資訊,而不需要受到太多限制。

除此之外,資訊安全廠商也開始留意到SAML的潛力,以日前第一家支援SAML的Juniper而言,支援SAML的SSL VPN可以整合內部原有的認證系統,外部使用者透過SSL VPN登入之後,就得到了相對應的授權,當需要連線到其他友好站臺時,只需要徵詢原發送SAML授權的站臺,就可以確認該使用者是否能夠進入,之後再依據所設定的政策原則,給予該使用者權限,既能夠達到認證授權集中管理的理想,也能夠獲得彈性管理的目標。

以整體的認證概念而言,SAML兼具了.Net passport與CA憑證的優勢,除了可以提供Web Services站臺群組的集中認證授權功能之外,各群組間也可以指定其中一個站臺作為身分認證的伺服器,只要通過該站臺的認證,就可以在群組中暢行無阻,也能夠依據授權等級提供使用者不同的存取權限,並且可以由企業本身控管,使用者端也不需要另外安裝憑證,是相當便捷且安全的方式。各個企業僅需維護自己員工的認證資料庫,不需要額外建置權限不同的帳號,將認證層級由單一使用者提升到整個群體,降低設定上的困擾,也能夠提升管理上的便利性。

在可以彼此查詢的狀況下,也不必擔心是否有人冒用身分,除了能夠在內部網域單一登入之外,也可以在外部網路使用,以授與權限取代帳號密碼,讓使用者更方便。文⊙羅健豪

熱門新聞

Advertisement