帳號整合實作
跨網站單一登入認證:選擇UID或CA?

2009-10-05
網路上的每一個系統絕大多數都擁有自己的帳號密碼,假使需要一個新的網路服務,就必須有一組新的帳號密碼。隨著e化的發展,不管在私人還是企業皆有各自的網路服務,持續發展的服務節省了相當多的人力作業,而各系統間的資料共享也日漸重要。首先遇到的問題是帳號的通用,系統與系統的帳號如果能共用相同的資料,將能省略使用者確認身分的手續。
跨網站單一登入(Single sign-on,SSO)最核心的部分就是帳號的整合,其次是跨網站聯繫的實作。單一登入的優點有以下幾點:減少不同的帳號和密碼組合的困擾、減少時間重新輸入密碼的手續、支持其他傳統的身分驗證、減少詢問密碼的人力支出降低IT成本、集中的權限控制。

單一登入使用集中的SSO身分驗證的服務器,提供其他各資訊系統所需要的身分認證使用,並確保不需要使用者再次做身分驗證。

實作方法:符合現實需求

在整合帳號的工作上,有現實上的挑戰。各種系統因為本身的時間、成本、規模會有不同的架構,要全部統合成一個架構,複雜度很高。如果要一個小系統符合大型的單一登入架構,複雜度可能會超過系統本身的價值,這樣就沒有整合的價值。例如使用者在10人以下的系統,實作單一登入的效益就不高,就算整合了也無法得到效益。

各系統整合程度需要在事前評估效益,並參考政策來決定。整合年代愈久遠的系統,整合的工程愈加困難,並且成本越高,失敗的可能也越高。最完美的狀態是全部整合成一個密碼,但相對地成本與時間的付出也就越大,整合的程度需要在設計階段時視現實需求來評估判斷。

選擇UID或CA

在SSO身分的認證有兩種類型,一種是整合各系統向Centralized Authentication(簡稱CA)伺服機驗證身分,一種方式是產生一次性的表徵(Token)來做Unique identifier(簡稱UID)。

1. CA伺服機驗證身分

利用CA伺服機驗證身分比較單純,當系統需要驗證身分皆由CA伺服機來驗證,各系統本身並不會做驗證身分的工作。簡單地說,就是把原本系統中的驗證身分功能轉移到單一登入的身分驗證伺服機,這種方式是常見的解決方案。身分驗證步驟流程,如下圖所示。

▲CA驗證過程。

CA身分驗證步驟包括:使用者於系統登入介面輸入帳號密碼→登入系統→系統服務伺服機使用驗證伺服機資料庫驗證帳號密碼→驗證伺服機回傳驗證結果給服務伺服機→回傳是否登入系統結果給使用者。

2. 一次性的UID來做Token

一次性的UID用來做身分的驗證,作為帳號可拿來確認登入狀態,也可以作為密碼來做一次性密碼。當作帳號的時候,檢驗用戶端的UID,通過表示這個UID正確,各系統就確認身分無誤。如果把UID當作密碼就確認使用者的帳號來增加安全性,在特別要求安全性的系統會傾向這種做法。

為了增加安全性,會加上時間的判斷,當發出一個UID會加入過期時間的變數,在確認UID的時候需要確認過期時間。若過期了,這個UID就無效了,避免這個UID被其他人使用。驗證UID步驟流程,如下圖所示。

▲UID驗證過程。

UID身分驗證步驟包括:登入發放UID(TOKEN)的介面→要求UID→驗證後發放UID給使用者電腦→使用者登入服務選擇使用單一登入→傳送UID給服務伺服機→服務伺服機向驗證伺服機驗證UID→驗證後回傳驗證結果給服務伺服機→服務伺服機再回傳是否登入系統結果給使用者。

兩者比較:程式開發成本差異大

兩者差別在於安全性與複雜度,CA的方式一定需要使用安全的加密傳輸,避免密碼被竊取,而UID使用複雜的演算法以及UID有效期間,避免被竊取UID,在產生UID的方式時必須有足夠的變數與複雜度,來避免被破解規則,因為UID採用複雜的演算法,比CA方式需要更多的開發成本。

在硬體成本部分,UID也比CA較高。因為UID在UID產生或是執行步驟方面都比CA方式來得更複雜,所以在硬體成本上UID比CA來得高。而安全性,UID比CA好,當UID外洩的時候或者UID的期間過了,這個UID就無法使用,而CA密碼傳輸時被竊取,在更改密碼前都能得到存取權限。但在一般實作上,CA比較常見。兩者比較的結果,如下表所示。

▲UID與CA比較表。

實際案例:國立交通大學

國立交通大學已經導入單一登入系統和入口網站,藉由單一登入來增加各系統的資源共享,增加使用者的方便性。實作上,選擇建立憑證中心(CA),成功整合了校內的電子公文系統、選課系統以及學籍系統等等。另外,也結合了入口網站提供服務單一入口。

憑證中心使用Novell eDirectory LDAP伺服機,並且同時架設了校內的入口網站。LDAP伺服機在單一登入中扮演身分確認的角色,每當需要確認帳號密碼時,都會一一確認身分來達成各系統擁有相同的結果。一般,在沒有單一登入的系統上,很容易遇到帳號或密碼的不同,造成使用上的不便。而LDAP伺服機整合後端的資料、入口網站整合前端的介面,使用者可以藉由單一網站進入各個系統,不需要再次輸入帳號密碼。設計之初,為了保留現有系統的彈性和既有的使用者習慣,系統原有的前端介面並沒有移除,提供一個可選擇性的解決方案。

在入口網站方面,特別加強了安全性,提供Actividentity的硬體式一次性密碼,來增加用戶密碼的安全性。使用者除了選擇CA伺服機中的自設密碼,也可以選擇使用由硬體式一次性密碼取代自設密碼登入,可以免除密碼外洩時的風險。

單一登入結合入口網站,提供一個完整的帳號整合解決方案,帶給使用者莫大的便利,減少不同的帳號和密碼組合的困擾,以及縮短重新輸入密碼手續的時間,並且在資料管理上提供集中管理的功能。單一登入結合入口網站可以節省用戶時間,也減少系統維護成本,是e化過程中十分實用且辛苦的重要里程碑。

安全第一:如何安全又方便?

系統的安全與方便性兩者並無法兼具,單一登入的方便性也可能成為駭客的最愛,一個密碼可以直接進入其他系統,無疑是有風險的動作。保護單一登入的密碼就變成相當重要的工作,以保護單一登入所帶來的管理上的效益。像是智慧卡或生物辨識技術都是保護密碼的解決方案,可避免駭客入侵。

結語

單一登入的技術與需求都來自身分驗證,這是屬於資訊安全的重要一環,如何做好帳號密碼的管理,不管是用鍵盤輸入、一次性密碼、智慧卡認證、單一登入,最根本的還是定時更新密碼才是最安全的。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!