[112-1]第四組-「單一」最「安全」?解密單一入口系統

 「單一」最「安全」?解密單一入口系統

第四組:財法一蔡宏廉、經濟一許羽慈、經濟一朱昱寬、政治二莊逸芸、財法二王鼎翰

(圖:中正大學單一入口登入頁面)

身為中正大學的學生,對於「單一入口」系統應該不陌生,使用學校各種網站之前,都需要經過單一入口登入,然而在充斥著各種駭客攻擊的網路上,一次登入就能夠存取各種網站資料的方式是否安全?其實,單一登入(又稱SSO,Single-Sign-On),是目前最安全、也是最廣泛使用的網站身分驗證概念,原因在與其簡便的登入方式減少使用者因保管的密碼過多而被盜取的風險。以下,就讓我們來看看SSO的過人之處。


SSO的原理

SSO就像在存取多個服務之前安排保安,統一管理使用者登入,使用者登入成功後,即可依其權限存取各項服務、資料。SSO本身並非實際系統,而是一種理念,實現SSO有許多方式,以下以中正大學的單一入口為例。

中正大學如何實現SSO?

中正大學單一入口負責人指出:中正大學的單一入口使用者使用帳號密碼進行身份認證,在身份証認後,利用CAS(Central Authentication Service)協定讓使用者可以不再輸入帳號密碼就可登入到其他資訊系統。單一入口僅有「認證」(Authentication),而「授權」(Authorization)則交付由各系統執行。認證針對使用者身分的正確性進行驗證,也就是讓系統知道「你是誰」;授權則注重於使用者能存取的服務與資訊內容,亦即讓系統決定「你能使用什麼」。

CAS協定的核心概念建立在客戶端Web瀏覽器(使用者)、Web應用和CAS伺服器之間的票據驗證機制上。當客戶端向資訊系統提出身分驗證請求時,系統會引導它至CAS,並提供帳號密碼,通過驗證後,CAS會一次性發送「TGT票據」(Ticket Granting Ticket)給客戶端,以Cookie的形式存儲,它就像遊樂園入口的手章,用以確認使用者已登入過CAS,過一段時間後會失效。在TGT票據有效期內,CAS將持續信任該使用者,並自動將客戶端導回原始應用程式,同時轉遞身分驗證票(Service ticket,ST),讓應用程式辨識訪問者的身份。隨後,應用程式透過安全連接與CAS建立通訊,同時提供自身的服務標識和驗證票(ST)。之後,CAS提供關於使用者是否已成功通過身分驗證的應用程式授信資訊。

不過,並非任意系統都可以使用中正的單一認證服務!若要使用中正單一認證服務的資訊系統,該系統負責人必須填寫ISMS(註1)連線申請表,在其主管核章並通過資訊處審核後才可以連線。綜上所述,只有CAS保有使用者本身的帳號與密碼,而CAS與應用程式間有專屬的驗證方式。


SSO登入流程示意圖(自製)

為了使安全性更上一層,系統還須依法規建置Google Captcha,且為防暴力破解攻擊,當使用者連續五次密碼錯誤將會被鎖定。若使用者忘記密碼,則須通過電子信箱驗證更改密碼,甚至當使用者遺失信箱,則需填寫申請表,交由人工審核再更改密碼。

SSO的優點

用了這麼久SSO,卻不知道為什麼學校要採用這種系統 ? 這裡帶大家一探究竟 !

(一)強化密碼安全性

在非使用單一登入(SSO)情況下,人們必須記住各種不同網站的多個密碼,這可能導致使用者選擇使用簡單或重複的密碼,降低安全性。此外,當使用者試圖登入服務時,可能會遇到忘記或輸入錯誤憑證的情況。SSO的使用有助於克服密碼疲勞,並鼓勵使用者建立可用於多個網站的強勢密碼。

透過極大限度地減少每位使用者的密碼數量,SSO可促進使用者存取稽核,並提供針對所有類型資料的堅固訪問控制。這有助於降低針對密碼的安全事件風險,同時協助組織遵守資料安全法規。

(二)提高生產力

企業員工經常需要使用多個需要單獨身分驗證的應用程式,手動輸入每個應用程式的使用者名稱和密碼既費時又效率低下。SSO簡化了企業應用程式的使用者驗證過程,使得存取受保護的資源更加容易。

(三)降低成本

在試圖記住眾多密碼時,企業使用者可能會忘記他們的登入憑證,這將導致頻繁請求擷取或重設密碼,增加內部IT團隊的工作量。實施SSO可減少忘記密碼的情況發生,極大地減少處理密碼重置請求的支援資源。

(四)提供更佳的客戶體驗

雲端應用程式供應商透過SSO為最終使用者提供無縫登入體驗和憑證管理。使用者管理的密碼減少,仍能安全地存取完成其日常工作所需的資訊和應用程式。

系統再嚴密,也敵不過個人疏忽

雖然駭客的攻擊手段層出不窮,但系統必定能找出其解決與防範手段,然而唯一無法透過改變系統解決的,即是出自使用者自身的「社交工程」攻擊。社交工程是最常見,卻也最難防範的攻擊,原因在於人們普遍對資安防護意識不足。常見的社交工程手法有:偽裝成政府機關、促銷優惠等,並發送釣魚連結誘使人們點入,並藉此盜取個資,甚至能夠遠端操縱被害者的裝置。

雖然如何保護密碼已經是老生常談的話題,在單一入口系統只需要一個密碼就能登入如選課系統、eCourse等多個網站的狀況下,卻更能夠彰顯保護密碼的重要性,以下介紹兩個能夠保護密碼不被有心之人盜竊的簡單方式:

(一)提高密碼複雜度

為預防「字典攻擊法」(註2),避免使用英文單字及常見的弱密碼,例如abcd、1234或是admin等常用預設密碼。此外,混用英文大小寫字母、數字及特殊符號組合,且密碼長度越長越好,密碼每多一個字,暴力破解軟體就需要多花一倍的時間,能夠有效防範反覆試驗來解密資料的「暴力攻擊法」。

(二)避免使用公共Wi-Fi

避免瀏覽或登入網址為「http」開頭或是網址欄前面沒有「掛鎖」圖示的不安全網站,這些網站傳輸資料通常並未加密,和公共Wi-Fi一樣,容易被駭客利用於竊取帳號資訊。

(圖:網址欄前方的「掛鎖」圖示)

在中正大學中,我們的公共Wi-Fi有以下選擇:CCU、TANetRoaming與eduroam,雖然三者皆需要帳號與密碼登入,然而前兩者因為僅採網頁認證故安全性較低,而eduroam雖然需要額外設定,但安全性較高。

各種不同的單一入口

其實,單一入口有許多不同的變化種類,目前主流有四種作法:JWT(JSON Web Token)、CAS、OAuth2.0(開放授權2.0)、以及SAML(Security Assertion Markup Language)。以複雜程度排序,分別是JWT<CAS<OAuth2<SAML,雖然越複雜的作法越安全,但開發成本也會隨之提高,所以業者會根據自己的需要,權衡採取的SSO模式,例如以安全性聞名的Google採用SAML,而多數企業因考量開發成本,多採CAS。

註釋:

1. ISMS(資訊安全管理系統,Information Security Management System)

持續進行「Plan」、「Do」、「Check」、「Act & Adjust」的循環以達成資安管理。目前以ISO 27001為國際標準。

2. 字典攻擊法

一般人的密碼其實能夠分類並藉此猜測,駭客利用蒐集各種常見密碼的「字典」進行攻擊,字典的資料來源頗多,像是被破解的網站、人名、身分證字號等等。而且,人們設定密碼有其語言與地區性,例如台灣人常使用的「ji32k7au4a83」(「我的密碼」的注音輸入法)就已經被記錄在字典中。

參考資料
https://marketing.ares.com.tw/newsletter/2020-03-cyber-security/sso-oauth2.0
https://hennge.com/tw/cloud/sso.html
https://www.cyberark.com/zh-hans/resources/blog/%E4%BD%BF%E7%94%A8-sso-%E5%8A%A0%E5%BC%BA%E8%BA%AB%E4%BB%BD%E5%AE%89%E5%85%A8%E7%9A%84%E5%9B%9B%E5%A4%A7%E5%8E%9F%E5%9B%A0
https://aws.amazon.com/tw/what-is/sso/
https://www.cloudflare.com/zh-tw/learning/access-management/what-is-identity-and-access-management/
https://www.cloudflare.com/zh-tw/learning/access-management/what-is-saml/
https://www.ibm.com/cn-zh/topics/single-sign-on
https://hackmd.io/@yosame/cas-server
https://it.ccu.edu.tw
*此報導與ChatGPT協作*