永豐銀行在過年期間傳出多位卡友信用卡被盜刷,而且明明都使用 OTP 一次性密碼驗證了,卻還是難逃駭客魔爪。難道,我們已經沒有安全的交易方法了嗎?
好消息是,Google 、 Apple 、 Microsoft 都不約而同宣布導入「Passkeys」無密碼驗證技術,只要使用生物辨識,使用者不需要再創作密碼,大幅減少被破解或是被側錄盜帳號的機率。
Passkeys 用作原理
也許你會提出疑問,指紋登入不是早就有了嗎?又與二階段驗證(Two-Factor Authentication, 2FA)看上去十分類似,這套「無密碼驗證」機制,我們真的可以相信嗎?
首先,我們先來釐清Passkeys 的運作原理。在 Passkeys 的運作之中,一共有三個重要的角色:使用者 Device、平台供應商 Authenticator、應用服務 Relying Party。
在第一次申請 Passkeys 功能並使用生物驗證時,便會生成一組對應的公鑰與私鑰,公鑰存放在應用服務端(如:網路銀行)、而私鑰則保存在使用者的硬體裝置上(如:手機);每當未來要進行 Passkeys 登入時,應用程式便會發起一個驗證請求,要求使用者利用裝置內的私鑰進行簽章,以證明自己的身分。
當然,為了確保當下持有手機的是使用者本人,手機裝置就會要求透過指紋等生物驗證機制,完成識別後,再使用裝置內的私鑰進行簽章回傳給應用服務,應用服務端則利用他們所持有的公鑰,來驗證簽章的效力。
我們可以把登入情境變成一張如下的邏輯架構:
密碼與鑰匙
更進一步討論,就得要先知道「公開金鑰密碼」(Public Key Cryptography, PKC)與「公鑰」(Public Key)、「私鑰」(Private Key)的概念。
一般所說的「加密」概念,就是希望只有對方能夠「解密」。
早期的「對稱式密碼學」,在加密和解密時均使用同一把鑰匙,如此一來便衍生了一個小問題——多了一個「額外的秘密」需要被傳遞,這樣既麻煩也不安全。
後來就出現了「非對稱密碼學」,也就是前述提到的公開金鑰密碼學。在這個理論中將用到兩把不同的鑰匙——「公鑰」及「私鑰」;私鑰僅留存給使用者,公鑰則是公開給所有人。演算法分別使用這兩把鑰匙進行加密與解密,具有單向、無法回推等特徵。
如此一來,可以達到不同的應用方式:
第一種是「傳遞秘密」,每個人都持有一把自己的私鑰、向大家公開一把成對的公鑰,任何人都可以「用公鑰加密訊息」給我、並且只有我可以「用私鑰解密訊息」看到秘密訊息的內容。
第二種常見的應用方式則是 Passkeys 架構中所用到的「數位簽章」。數位簽章的邏輯正好和傳遞秘密相反:「用私鑰加密簽章」並「用公鑰解密驗章」;如此一來,任何人都能持有的公鑰,便能用以驗證訊息是否確實由世上唯一擁有私鑰的使用者所簽名發出。
重新回來看 Passkeys 的架構,就不難理解為什麼 Passkeys 在不使用密碼的前提下,也能透過裝置上的私鑰,來向應用服務進行身分驗證。當然,Passkeys 的安全與強大之處並不只在於公鑰密碼系統,而是可以完全擺脫掉「帳號密碼」的概念,進而避免非常多的威脅。
從根本上解決問題
一般來說,在登入帳號時所使用的「密碼」,並不會直接被明文儲存在應用服務的伺服器裡,會透過編碼、雜湊、加密等各種方式進行儲存。
即便如此,太過簡單的弱密碼容易被暴力或查表破解。此外,駭客也可以透過網站釣魚(Phishing)或鍵盤側錄(KeyLogger)等方式偷取使用者的密碼,再轉手將偷來的資訊傳給應用服務進行中間人攻擊(Man-in-the-Middle Attack);常見的簡訊驗證碼等二階段驗證方式,也可能受此攻擊的影響。
Passkeys 則從根本上解決了釣魚網站的威脅。存在使用者裝置中的 Passkeys 並不僅是一把私鑰,它連帶也儲存了應用服務網址、使用者帳號等資訊;無論釣魚網站做的與原服務有多相像,只要來源並非原本的服務網站,Passkeys 功能就不會被啟動,駭客自然就無法執行驗證或偷取到任何資訊。
而在跨裝置登入上,流程會是:使用者在筆電上開啟應用服務網站,選擇以 Passkeys 登入,網站會跳出一個 QRCode,使用者只要用存有私鑰的那隻手機掃描 QRCode,便會開啟 Passkeys 功能,讓使用者透過生物驗證完成登入。
這個過程不需要用到任何的「帳號」,因為 Passkeys 本身就儲存了使用者是誰的身分資訊,而使用 Passkeys 跨裝置登入時需要掃描 QRCode 來啟動的這一點,是為了避免駭客利用來進行中間人攻擊;Passkeys 要求這兩個裝置之間必須有藍牙連接,也就是必須在一定的物理範圍之內,裝置之間才能夠順利啟動 Passkeys 認證。
帶來的便利
對一般使用者來說,除了安全性以外,便利性也非常重要。
前述提及 Passkeys 的無密碼驗證機制,其實就等同於讓「裝置」擁有代表使用者本人的效力,那麼,若裝置不慎遺失、還能簡單地取回自己的身分嗎?答案是可以的。
使用者與提供 Passkeys 功能的平台供應商之間,原則上本來就會有相互驗證的方式,例如本來的帳號密碼登入、或者是額外的找回帳號機制,透過這些方式找回並登入帳號後,就可以進行設置,停用舊有 Passkeys 或啟用新的 Passkeys。
此外,Passkeys 提供多裝置同步私鑰的功能,以使用者對平台提供商的信任為前提,平台可能會在其雲端中儲存使用者的私鑰,以便在使用者需要的時候,可以將該私鑰輕鬆地同步到相同作業系統的其他裝置上,讓使用者也可以利用平板或電腦等裝置進行驗證登入。
另外,使用不同作業系統的裝置,一樣能用原本的私鑰登入;系統會在新的裝置上生成一組新的公私鑰繼續運作。也就是說,不管你是 Android 轉 iOS,還是 iOS 轉 Android,都不需重新設定,對使用者來說,可謂一大福音!
歡迎訂閱 Pansci Youtube 頻道 獲取更多深入淺出的科學知識!