FIDO 身分驗證 勒索軟體 無密碼身分驗證 多因素身分認證 生物辨識

帳密愈記愈多愈複雜 治絲益棼衍生更多資安風險

FIDO標準整合多因驗證 無密碼身分識別更安全

隨著各種數位服務平台的增加,使用者被要求必須註冊、管理多組帳號密碼,不僅費時沒效率,也間接衍生出許多資安風險,同時讓企業在IT、開發人員的維護人力與資源成本增加,而無密碼身分驗證的機制提供了新的資安選擇。

美國國家標準暨技術研究院NIST(National Institute of Standards and Technology)主管Bill Burr於2013年撰寫「美國國家標準與技術研究所特別出版物800-63,附錄A」(NIST Special Publication 800-63. Appendix A:https://pages.nist.gov/800-63-3/sp800-63a.html),這份文件也成了保障密碼設置安全的聖經,現今大家廣泛使用的密碼設定規則與管理措施,例如密碼設定要用奇怪而無意義的字加上罕見的字元、大小寫英文和數字,並且三個月要更換一次密碼、密碼不能重複使用等,都是遵行NIST800-63附錄A之建議而為。經過這幾年來的實施,確實讓「密碼」這件事變得更加安全,但對使用者和管理者著實也帶來了許多的不便。

2012年由PayPal及聯想所發起的FIDO(Fast Identity Online)聯盟,就是希望藉由一個有效的網路識別標準來解決複雜密碼設定與管理所帶來的問題,目前聯盟的會員公司如蘋果、谷歌、亞馬遜、微軟和Mozilla等領導廠商所推動的無密碼身分驗證方法其目的,即是為了要讓密碼這件事變得簡單又安全,如圖1所示。

圖1  FIDO Key Pair密鑰對具有不共享密鑰的特性。

為何進行無密碼身分驗證

即使密碼設定的要求越來越複雜、管理規則也越趨嚴謹,然而,密碼安全性的問題也益加暴露在各種資安威脅中,例如網路釣魚、暴力破解、撞庫攻擊等,81%的資料外洩事件起始於密碼被盜用或弱密碼。尤其,近兩年因為疫情,在未有充分準備部署資安環境的情況下,企業即開始要求員工分流、居家工作,因為遠距工作而產生的資安漏洞,各國企業遭到網路攻擊的比例高達78%(根據Atlas VPN於2021年中所做的統計顯示)。

無獨有偶,國際金融穩定委員會(Financial Stability Board,FSB)比對2020年與2021年2月與4月下旬國際疫情嚴重期間的數據,發現「網路釣魚」、「惡意程式」以及「勒索軟體」等攻擊活動的件數因為遠端工作成長到單週超過20萬件。趨勢科技更近一步指出,駭客利用家庭網路漏洞,進而對企業發動供應鏈攻擊,企圖由VPN網路中找到並竊取具有重要關鍵的企業數據或企業機密。

不論是VPN網路漏洞、網路釣魚、撞庫攻擊,或是暴力破解攻擊,駭客的目的都是成功獲取密碼進而盜用帳號而獲利。那麼,有什麼好的解決方案嗎?「捨去密碼」的使用是一個好的考慮方向。

無密碼身分驗證是保護系統、機密和重要關鍵數據不受侵害最有效的方法,例如採用多因素身分認證和生物辨識即是無密碼身分驗證的一種好的做法,對於使用者來說,無須記住任何文字符號即可登入系統。現在使用手機時所啟用的臉部辨識或指紋辨識功能,就是利用了生物特徵取代密碼以識別使用者的身分,不僅提高安全性與便利性,也是無密碼身分驗證的有效示範。

無密碼身分驗證的好處不僅限於安全性,還有在使用者及企業管理面的諸多效益。一、就使用者來說,更新密碼、堅持不同的密碼格式,以及使用密碼管理工具、密碼本等日子已經一去不復返,「密碼疲勞」已漸漸進入現代詞典;二、就企業管理面來說,可以使用無密碼身分驗證來降低資訊系統和維護成本,如不需要再花人力與資源來執行密碼儲存與管理,或者密碼重置等,可更有效地擴展資源的使用,並且改善使用者體驗,不論對公司及其客戶或員工來說都是雙贏的。

使用FIDO做為無密碼認證基礎

FIDO聯盟成立的目標是「無密碼」,由聯盟所制定的網路識別標準,來確保登入流程中伺服器及終端裝置協定的安全,而這套識別標準係透過公開金鑰加密(Public Key Cryptography)的架構進行多因素驗證(Multi-Factor Authentication)、生物辨識(Biometrics)登入,亦即不使用密碼,來強力且嚴密地保護帳號的安全,並且以便於使用(Ease of use)、隱私安全(Privacy and security)以及標準化(Standardaization)為三大原則。FIDO聯盟在身分驗證無密碼化的實現上發揮了關鍵作用,同時也確保了所有利用FIDO核心規範(UAF、U2F和FIDO2以及WebAuthn)的產品能無縫協同工作,同時提高了全球無密碼身分驗證的標準化和兼容性。

傳統上,切換到無密碼身分驗證需要處理無數的終端裝置協議(Protocol),而FIDO是一系列解決方案,匯集了從生物識別(指紋、虹膜、聲紋和臉部識別)到安全令牌(Token)和晶片卡等各種認證技術方法。FIDO標準建立在身分驗證應該是基於「你是誰」而不是「你記得什麼」的原則上。透過生物辦識所產生的特徵和密鑰,比傳統密碼所代表的一串字母、數字和符號更具唯一性。

eBay在2019年開始淘汰密碼導入WebAuthn登入方式,使用生物特徵來作為Web瀏覽器登入時的身分認證方法。在這個全面淘汰密碼的措施之前,eBay先使用FIDO UAF的推播認證來加強使用者登入時的安全,也就是在使用者登入時,輸入帳號及密碼後,再透過eBay App推播通知讓使用者確認登入,在實施FIDO不到一年,選擇FIDO認證的使用者比SMS OTP高出許多,且有更高的登錄成功率和完成率。

eBay持續觀察一段時間,發現FIDO使用率持續地成長,因此決定簡化登入流程,進一步導入「無密碼」驗證,在支援FIDO2的裝置上引導使用者啟用生物識別,在下一次登入時不需要再輸入帳號密碼,直接以生物識別進行登入時的身分認證。從密碼到FIDO的轉變,提高了安全性且同時完美地增強了使用者體驗,關鍵在於用戶不再需要記錄密碼的同時,也提高了整體登入的成功率,進而帶動了服務的成功與轉化率。

以目前現況來說,無論是網路內容服務網站、金融、線上遊戲乃至企業辦公環境,使用者若要使用網路服務或工作,每天需要做的第一件事就是登入網頁或系統,這些登入流程應該是安全且易於操作,而不是需要經由考驗記憶力的方式來輸入複雜的密碼組合才能開始工作,而且還被要求要定期更換複雜密碼,如圖2所示。

圖2  現行採用複雜密碼的應用系統更是需要無密碼化的支持。

然而,經常使用且記得住的就是那麼幾套密碼組合,儘管有密碼管理工具(還要記得登入密碼)或密碼本(不能放在容易被找到的地方,還須記得放在哪裡),依然有稽核或其他公司管理的要求(如ISO 27001)來限制使用密碼的自由。我們需要一個便利、安全又能保護隱私的身分認證方法,不要密碼!

實現無密碼登入的流程示範

以FIDO2認證機制運用在雲服務的認證流程為例,如圖3所示:

圖3  USB Key示範圖例。

1. 登入雲服務時,使用者將FIDO2實體安全金鑰(如USB Key)插入電腦。

2. 應用程式偵測安全性金鑰。

3. 使用者透過網頁傳送驗證要求,並收到nonce。

4. 使用者解儲存在FIDO2金鑰安全保護區中的私鑰。

5. 使用私密金鑰來簽署nonce並回傳。

6. 雲服務應用程式使用FIDO2公鑰來驗證已簽署的nonce。

事實上,在使用者端可能會看到多種認證方法,可能包含了作業系統、USB介面的實體認證載具以及行動裝置等(圖4),但它們不外乎都是為了一個目的:執行認證以及進行數位簽章。

圖4  FIDO WebAuthn執行畫面—設備驗證選項。

網頁程式該如何整合FIDO

FIDO2標準包括了W3C的WebAuthn及FIDO協會的CTAP(Client-to-Authenticator Protocol)規格,讓使用者可以在桌上型電腦或手機上透過支援的瀏覽器或實體金鑰,不須輸入任何用戶帳號或密碼而是透過將驗證金鑰存放於晶片或電腦裡的安全晶片(Trusted Platform Module,TPM)來執行身分認證。

傳統的帳號+密碼儲存方式

傳統上,在使用者執行註冊的流程上會有幾個重點,如圖5所示:

圖5  登入應用程式時採用帳號及密碼。

1. 輸入密碼

2. 再輸入一次密碼並比對,保證使用者填入的密碼無誤。

3. 儲存密碼時,需要定義密碼加密方法(加密或混淆)。

4. 系統或程式設計時,必須為了密碼做時間管理、更換密碼或忘記密碼等流程設計。

5. 驗證密碼時,需要依據所定義的加密或混淆方式進行反解或比對。

如果你是個程式設計者,不難發現以上這些步驟會讓開發過程花費相當多的時間在開發、處理這些流程面的事務。

整合FIDO到網頁服務中

整合了FIDO之後,傳統的密碼輸入欄位就可不必再提供,也少了忘記密碼以及密碼生命週期管理的問題,如圖6所示。

圖6  登入應用程式時使用FIDO取代密碼。

開始註冊

從FIDO聯盟所提供的WebAuthn示範程式(圖7)可以了解到,在處理FIDO2的WebAuthn行為時,最簡單的實現方式僅需要在前端(也就是WebAuthn Client)設計好Challenge以及最重要的user.id處理程序,便可以完成使用者的註冊並將驗證時所需的公鑰產生出來。

圖7  WebAuthn範例程式1。

公鑰的儲存及驗證行為

在實務上,需要在上一歩驟中將所取得的公鑰儲存在資料庫或加密區域中。

當用戶瀏覽到Web應用程式並想要進行身分驗證時,第一步是WebAuthn用戶端向依賴方發出身分驗證請求,它可以是基於Authenticator中儲存的數據或用戶名稱,這取決於在註冊期間是否有要求user.id資料,如圖8所示。

圖8  WebAuthn範例程式2。

Authenticator接收來自WebAuthn用戶端的數據,並檢查註冊的Relying Party ID是否匹配,在此過程中,來自Relying Party ID的數據使用了註冊過程中產生的Authenticator的私鑰(Credential Private Key)檢查真實性並執行簽名。

然後,WebAuthn用戶端將Authenticator數據簽名發送給Relying Party。Relying Party檢查數據庫中公鑰的可用性,並且使用註冊期間儲存的公鑰(憑證公鑰)驗證簽名。

實際應用範例

微軟目前所提供的Windows Logon和Azure AD雲服務皆導入了FIDO2認證,並且在官方網站中強調無密碼認證的重要性,而網管人員須經常使用的Windows及Azure AD後台管理如果可以導入無密碼認證,相信一定可以提升系統管理的整體效率。圖9和圖10為二個實際導入的應用案例,供讀者們參考。

圖9  Windows Logon結合FIDO2認證Token。 (圖片來源:Microsoft)
圖10  Azure AD結合FIDO2認證Token。 (圖片來源:Microsoft)

結語

儘管從傳統密碼改為免密碼登入對既有系統來說更具挑戰難度,但隨著微軟、Google、AWS等國際大廠也紛紛加入FIDO聯盟,提供FIDO方案的整合資源,將使得系統轉型更平順地進入免密碼時代!

<本文作者:社團法人台灣E化資安分析管理協會(ESAM, https://www.esam.io/)來毅數位科技股份有限公司(Lydsec Digital Technology Co., LTD, https://www.lydsec.com/)成立於2012年,研發團隊設立於台灣與瑞典,專精於網路身分認證之軟、硬體技術與產品研發,近幾年所推出之創新多因素身分認證(Multi-Factor Authentication)方案,已取得全球16個國家五項發明專利,並廣泛應用於各種網路平台之登入與交易(重要訊息)驗證上、以及企業內各系統存取控制之身分識別上。>


追蹤我們Featrue us

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

我知道了!