跳到主要內容

【認證與授權】 你是否被一堆帳號密碼給搞瘋了? FIDO能夠成為救星嗎?



科技發展飛快的時代,人手一支手機,除此之外許多APP也如雨後春筍般的誕生,而每一款APP背後幾乎都是獨立的一間公司在提供服務,因此每個公司都會獨立維護客戶的資料,身為客戶的我們為了享受到各家大廠的服務,每使用一間公司服務的同時也隨之註冊一組帳號密碼,不知不覺就註冊了好幾十組帳密,每一組都一樣也不太安全,每一組都不一樣又很容易忘記,到底該怎麼辦呢? 相信這應該是大部分使用者的一大煩惱吧! 為了解決這個問題,過程中不斷推出一些策略,像是最早期的SSO到現在的OAuth都是解決太多組帳密的問題,作法上雖然有些差異,但最終想要解決的就是多組帳密的惱人場景,簡化到只要一組帳密,取得授權之後就能登入並享受服務。

舉例來說,像我們開始使用Notion這套筆記軟體時,會有三種註冊方式,除了從Notion本身的平台註冊以外,亦提供的Google及Apple帳密進行註冊及登入,讓我們在使用其他服務的同時就能夠透過不需要重新注冊的方式進來使用,看似非常方便對吧! 但其實背後隱藏著一些問題值得我們探討與省思…。

試想,我們畫面上只看到Google與Apple,其實無非就是在爭奪誰是市場上最大的應用廠,誰就能夠做為業界的唯一標準,假設今天又出了一間更大廠的服務,是不是又要依賴於該大廠並註冊一組帳密了呢? 對於用戶來說這就是目前SSO與OAuth仍遇到的問題之一。

基於過往的一些問題進而誕生出FIDO這套機制,由非營利組織 FIDO 聯盟所訂定的一套網路識別標準,目的在於保護伺服器與終端裝置的安全性,並秉持著三大原則,便於使用、隱私安全、標準化。

FIDO更為安全的原因是什麼? 背後又是怎麼運作的呢?

我們之前有介紹過什麼是公開金鑰加密,還不清楚這是什麼的朋友歡迎先行閱讀「【開發智能合約 - 密碼學系列】編碼(Encode)、雜湊(Hash)、加密(Encrypt)傻傻分不清楚?」,裡面最後一個章節有提到非對稱加密,這也是公開金鑰加密的一種別稱。

這種架構之下,伺服器不再需要保存密碼,只需要保有「公開金鑰」,而「私密金鑰」則保存在個人裝置中,因此個資只需要自己保管好,責任就由伺服端轉嫁到使用者端囉!

帶來的好處當然是「自己的東西自己管」,但風險就是「自己管不好就完蛋」,凡事總有一體兩面,並非十全十美,我們只能選擇一種更有優勢的方式來解決問題,

FIDO UAF

UAF(Universal Authentication Framework)通用認證框架,透過生物辨識的認證方式進行認證,指紋辨識、聲音辨識、臉部辨識…等方式,它的概念就像是非對稱式加密一樣,裝置上保存密鑰, 公鑰儲存在伺服器端,當用戶想要登入UAF服務時,只要透過裝置上的指紋、臉部辨識…,就能免密碼登入。

FIDO U2F

U2F(Universal 2nd Factor) 雙因素驗證,為了防範網站密碼遭到盜用,Google在2011年提供二階段驗證,除了輸入帳號密碼之外,還得透過接收到的簡訊碼才能進行登入,這是因為駭客通常遠端攔截我們的密碼,並藉由該密碼直接登入網站,但加入了二階段驗證後,勢必會驚動到我們裝置,除非駭客能夠連同我們的裝置一同駭入,否則對他們來說是難以在我們未察覺的狀況下盜用我們的會員帳號,而UF2更是在安全機制上更上一層樓,透過專用的USB保存一把Security Key,它只有在驗證登入的網站是否真實的狀況下運作,假設用戶連上假冒的網站,那麼Security Key就無法發揮作用,減少釣魚的風險。

FIDO2

FIDO2是由W3C的網路驗證(Web Authentication,WebAuthn)規格與FIDO的客戶端至驗證器協定( Client-to-Authenticator Protocol,CTAP)所組成,內容除了免密碼登入與雙因素驗證,最大的特色在於結合了 WebAuthn 後對於各大瀏覽器的支援。

結語

隨著智慧型手機的普及,人手一機已經是基本配備,那麼假設平均一位使用者平常需要使用上百的APP時,每個APP都有獨立的一組帳密,相信這樣對於用戶來說會非常困擾,除非不考慮安全問題,進而將帳密全部設定一樣的,否則光是使用前輸入帳密就非常惱人,對於使用者體驗來說就大打折扣了,因此無密碼登入已經成為近期的趨勢之一,而能夠推行無密碼登入也仰賴UAF、U2F、FIDO2…這類的協定制定,才能藉由這些協定實作,最終達到免密碼登入之功能來滿足廣大的用戶。

喜歡撰寫文章的你,不妨來了解一下:

Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 - 為什麼要加入?

歡迎加入一起練習寫作,賺取知識,累積財富!

留言

這個網誌中的熱門文章

java西元民國轉換_各種不同格式

C#資料庫操作(新增、修改、刪除、查詢)