無密碼登入的未來 - Passkeys 通行密鑰
Google 在 2023 年 5 月正式宣布支援 Passkeys 通行密鑰,這讓無密碼登入的未來已經到來。因此我開始研究相關的名詞,使用者場景以及這對我們來說需要抱持著什麼樣的態度來管理我們的登入資訊。
在研究的過程中,有些不懂的名詞或是疑問浮出,因此我自己整理了問答列於文章下方,有興趣的人可以跳到那邊先看看。以下我想聊聊對於 Passkeys 的應用場景。
場景一:長輩不用再記得 Google 密碼
這情境我想很常發生在你我之間,我們的長輩可能是 50~60 歲,甚至更高年紀,他們對於資安風險可能沒什麼概念,常用的帳號密碼的管理也可能做得很粗糙甚至是完全沒有管理,每次要輸入密碼的時候都要想半天。
Passkeys 的到來會是怎麼樣的情境?在 Google 正式支援 Passkeys 的到來,我們可以利用長輩的手機為長輩的 Google 帳號建立 Passkeys,未來在他們需要登入 Google 的地方,只要手機在身邊,就可以利用 iOS 的 FaceID 或是 TouchID 或是其他 Android 生物解鎖的方式,讓他們登入 Google 帳號。對長輩來說這種生物辨識的解鎖行之有年,因此他們會覺得都一樣,只要刷臉或是指紋就可以登入,所以使用起來一樣方便。
場景二:未來更多服務不需要密碼就登入
這需要時間,因為在此時不是每一家公司都支援利用 Passkeys 去「創建」帳號,就連 Google 也不是,Google 只是多提供一個讓使用者更安全且更方便的「登入」方式。有支援 Passkeys 的服務可以到 1Password 整理的Passkeys .directory去看。
以後我們要登入一些服務,只要確定你的裝置擁有 Passkeys 的私鑰(這邊不談太多細節,有興趣的人推薦參考這篇)或者是該私鑰在可取得的行動裝置或其他地方,就可以認證成功然後登入該服務,再也不用記得密碼。 這個體驗其實跟目前有在使用密碼管理服務差不多,但是 Passkeys 的特性讓這樣的過程更安全。 由於 Apple 和 Google 都有實作密碼管理的工具,因此回到上述的場景一,如果是用手機建立 Passkeys,則可以直接利用內建的密碼管理工具(例如: keychain)就可以跨裝置同步 Passkeys 私鑰,而能夠跨裝置同步這點也是 Passkeys 的一個重要特性,就可以在 iPhone 和 iPad 之間同步這些登入資訊了。
Passkeys = 無密碼?
這點我目前是保持疑問態度,原因是我認為帳號需要分成主要服務帳號以及非主要服務帳號。所謂的主要服務帳號就是指 Google、Apple 這些會直接跟手機有關連的帳號,或者說那些你會使用的 email 服務。
今天如果你需要創建 Google 帳號,其實是不能使用 Passkeys 的方式來創建帳號的。要在手機上登入你的 Google 或是 Apple 帳號,目前也都還是需要密碼才能登入。而這些主要服務帳號都擁有不同種的「忘記密碼」的服務,因為你會將手機號碼給他們,或是給不同的 email 帳號,讓真正需要忘記密碼的時候,Google 和 Apple 能有一個方式聯絡你。
這邊我還沒有想通的是,如果有一個服務支援了 Passkeys,你在建立帳號的時候根本沒有輸入過密碼,但你當時是利用手機申請的,然而已經換手機沒有備份,也就是 Passkeys 私鑰已經不在手上狀態,那不就永遠都沒辦法登入該服務了嗎?這件事類似加密貨幣錢包的 12 個字串不見,因為其實這就是私鑰的一種。
目前看到的一個解法是,註冊的時候就是需要利用 email 當做 account,今天你要登入的時候是輸入 email,然後它會寄 passcode 到你的 email(就像是 OTP),也就是你還是需要登入該 email 才能登入該服務。
跨平台解決方案
我是 1Password 的愛好者,目前 1Password 也在官方部落格提到他們是大力擁抱 Passkeys,目前 extension 在 beta 階段已經可以使用 Passkeys,且預期 2023 年 7 月就可以將這些功能上線到 mobile。我會持續關注 1Password 提出的解決方案,因為他們跟 Google 和 Apple 的解決方案不一樣,是跨平台不會限制在單一的平台上。而未來也可以利用 Passkeys 來解鎖 1Password,這也是很令人期待的一個功能。
Q&A
- Q:什麼是 FIDO?
- FIDO(Fast IDentity Online) 是指由同名的非營利組織 FIDO 聯盟所訂定的一套網路識別標準,意在確保登入流程中伺服器及終端裝置協定的安全性
- FIDO 最大的特色在於所有的協定都是建立於公開金鑰加密(Public Key Cryptography)之上,這樣的架構也能使「伺服器端將不再保管祕密」
- 數位發展部於 2023 年 1 月加入國際身分識別標準組織 FIDO Alliance
- Q:什麼是 FIDO Alliance?
- FIDO Alliance 是一個聯盟、一個組織,如 Google、Microsoft、PayPal 等大公司都有參加。
- 他們的目標是推廣並開發身份驗證的開放標準,以解決全球網路認證的問題。
- Q:什麼是 FIDO2?
- FIDO 在 2018 年 4 月推出的標準
- FIDO2 規範包含了 WebAuthn 與 Client-to-Authenticator Protocol (CTAP)
- 其核心的 WebAuthn 規格被 W3C 聯盟接納成為正式的 Web 標準
- Q:什麼是 WebAuthn?
- WebAuthn 是 FIDO2 規範中的一部分,是由 W3C 和 FIDO2 聯盟共同制定的一個網路標準。
- 在 2019 年 3 月 4 日正式成為 W3C 的官方網路標準。
- 用來規範標準的 Web API 讓瀏覽器實作
- Q:支援了 WebAuthn API,所以支援通行密鑰?他們兩個是什麼關係?
- 通行密鑰(Passkeys)可以通過 WebAuthn API 來實現,因為 WebAuthn API 提供了一個標準的方式來使用公鑰密碼學進行身份驗證。只要網站和瀏覽器都支援 WebAuthn API,就能使用通行密鑰進行身份驗證。
結論
Passkeys 的普及絕對是好處大於壞處,由各家科技大廠紛紛加入所制訂出來的協定,讓更多人可以擁抱無密碼登入的體驗,再也不用去思考該網站要用什麼密碼,以及每次註冊都要在那邊思考要用什麼密碼甚至是網站還會限制密碼長度或是格式這種問題了。
Reference
- https://passage.id
- 1password 推出 passkey 串接 solution
- https://passkeys.directory/
- 1Password 收錄有關於支援 passkeys 的網站
- https://www.passkeys.io
- hanko 做的,該公司本身有推出串接 passkey 的 solution
- https://passkeys.dev/
- 是 W3C WebAuthn Community Adoption Group and the FIDO Alliance. 整理各種開發資源的網站
- https://security.googleblog.com/2023/05/so-long-passwords-thanks-for-all-phish.html
- 大新聞,Google 2023/05/03 推出整合 passkey。
- https://www.theverge.com/2023/5/16/23725223/1password-passkey-date-password-manager
- 1Password 預計 2023/07 推出 passkey 儲存服務
- https://blog.techbridge.cc/2019/08/17/webauthn-intro
- 蠻深入的實作了 Web Authentication API
- https://blocktrend.substack.com/p/454
- 區塊勢淺顯易懂的介紹 Passkeys