最近,Google、Apple、蝦皮購物、樂天、PlayStation 等平台上,愈來愈常看到「通行密鑰(passkey)」這個詞。即使只知道它大概是「可以取代密碼的新登入方式」,當被問到「說到底那是什麼?」、「為什麼它比密碼更安全?」時,很多人還是會不太知道怎麼解釋吧。
本文會從零開始整理通行密鑰的運作原理。為了讓非工程師也能讀懂,文中會搭配比喻說明專有名詞。
撰寫時點:2026 年 5 月。通行密鑰是正在快速普及的領域,支援的服務與法規動向每天都在更新。
要理解通行密鑰的好處,最直接的方法就是先整理「密碼到底有多麻煩」。
人類沒辦法記住幾十組密碼。因此很多人會在多個服務上重複使用同一組密碼。結果只要某一個服務外洩,其他所有服務都有可能被入侵。這稱為「密碼清單攻擊」。
像是收到一封寫著「來自 Amazon 的通知」的電子郵件,點進連結後進入幾可亂真的假網站,然後輸入密碼——這就是釣魚詐騙。密碼的機制只要「字串正確就放行」,因此只要使用者親自把密碼輸入假網站,攻擊者就能直接拿走。
密碼是「使用者與伺服器共同持有的秘密」。雖然伺服器端會把密碼雜湊後儲存,但仍然必須以某種形式保留與密碼相關的資訊,因此無法把外洩風險降到零。
「至少 12 碼、大小寫和符號都要混合、每個服務都不同、還要定期更換」——理論上這很完美,但對人類記憶力來說幾乎不可能。結果通常會使用生日、字典裡的單字、或相似模式的重複字串等容易被猜中的內容。
這些問題不是靠操作規範就能補起來,而是必須從根本上改變機制,這就是通行密鑰誕生的出發點。
一種可以用裝置上的指紋、臉部或 PIN 登入,而且在機制上不會把「秘密」透過網路傳送出去的認證方式
這就是通行密鑰。也有人把它描述成把認證從「記住」變成「持有」的典範轉移。
重點有兩個:
很多人會誤以為「不就是指紋辨識嗎?」但指紋其實只是用來向裝置證明「是你本人」的手段。真正的核心,是後面要說明的公開金鑰密碼學。
這是通行密鑰的核心。
在通行密鑰中,當你註冊某個服務時,系統會成對產生兩把金鑰:
可以把它想成這樣:
你做出很多把「專屬你的掛鎖」,分發給全世界的服務使用(=公開金鑰)。
能打開那些掛鎖的鑰匙,只存在你的手機或電腦裡(=私密金鑰)。
登入時,伺服器會挑戰你「把這把掛鎖打開看看」,而你的裝置就啪地把它打開給它看。
這裡最重要的是,私密金鑰完全不會透過網路跑到外面。
密碼是「口令」,所以每次都得送到伺服器才能驗證,途中可能被攔截。相對地,通行密鑰只送出「我持有這把鑰匙的證明」,不會把鑰匙本身交出去。
用公開金鑰加密的內容,只有配對的私密金鑰才能解密。反過來,用私密金鑰產生的簽章,只有配對的公開金鑰才能驗證。通行密鑰使用的是後者,也就是「簽章與驗證」的機制。
「如果私密金鑰放在裝置裡,那手機被偷不就完了?」
為了避免這種情況,就要靠生物辨識(指紋、臉部)或裝置 PIN。私密金鑰會被嚴密保管在裝置內,使用時一定會先確認「是不是持有人本人」。指紋和臉部資料不會離開裝置。伺服器端只會收到「已完成本人確認的裝置所產生的簽章」這個事實。
很多人會誤以為生物資訊本身會傳到伺服器,但這是錯的。指紋、臉部資料都會被封存在裝置內的安全區域,只用來發出「是本人」的允許訊號。
通行密鑰最大的特色之一,就是「只能在註冊時的網站(網域)使用」。
例如你在 amazon.co.jp 建立了通行密鑰。即使攻擊者做出一個 amaz0n.co.jp(把 o 換成 0)的假網站誘導你,瀏覽器和驗證器(Authenticator)也會察覺「這不是已註冊的網域」,因此不會讓通行密鑰運作。
這不是依賴使用者注意力的機制,而是在通訊協定層級就被強制限制。這也是為什麼大家說通行密鑰具有很高的抗釣魚能力。
理解了上述關鍵字後,讓我們用流程圖看看註冊時實際發生了什麼。
重點是,只有公開金鑰會交給伺服器。私密金鑰一步都不會離開裝置。這也是「就算伺服器外洩,損害也較小」的原因。
所謂的「challenge(挑戰值)」是伺服器每次產生的隨機值。至少是 16 位元組以上的隨機資料,每次都不同,而且有效期限很短。這樣可以防止偷看過去通訊內容後重複使用的「重放攻擊」。
只要註冊完成,之後的登入就會簡單很多。
這是認證領域中自古就有的概念,稱為挑戰/回應(challenge-response)。
它不是像密碼那樣「送出秘密字串,確認是否一致」,而是「每次都證明自己持有金鑰」的機制,因此即使通訊被竊聽,也無法拿去作為下一次登入使用。
觀點 密碼 通行密鑰
是否需要記憶 需要 不需要(只要指紋、臉部、PIN)
伺服器持有的資訊 密碼雜湊 僅公開金鑰
外洩時的影響 可直接拿去不法登入 只有公開金鑰本身什麼也做不到
抗釣魚能力 低(人容易受騙) 高(會自動辨識網域)
重複使用 很常見 原理上不可能(每個服務都有不同金鑰)
服務間連鎖外洩 有 沒有
裝置遺失時的影響 只要記得就沒事 需要透過其他裝置復原
看到這裡,可能有人會想:「如果私密金鑰被關在裝置裡,那換手機怎麼辦?」這個問題問得很好。
對應這個需求的,就是同步通行密鑰。Apple 的 iCloud 鑰匙圈、Google 密碼管理工具、Microsoft 帳戶等,會把私密金鑰以端對端加密的方式,透過雲端同步到同一位使用者的其他裝置上。
也就是說:
私密金鑰並不是以「明文」形式放在雲端;只有同一位使用者的裝置才能解密,這就是它的設計。
同步通行密鑰(Synced Passkey)和像 USB 安全金鑰那樣被鎖定在單一實體裝置中的裝置綁定通行密鑰(Device-bound Passkey)是不同的東西。前者重視便利性,後者重視安全性。一般消費者服務幾乎都採用前者。
這項技術本身並不新。FIDO 這個標準規格早在 2012 年就已存在,而面向網頁瀏覽器的 WebAuthn 規格則在 2018 年公開。那為什麼現在會迅速普及?主要有 3 個原因。
2022 年,Apple、Google、Microsoft 三家公司同時表態支援通行密鑰。這讓 iPhone、Android、Windows 不管用哪一種,都能用同一套機制。過去 FIDO 往往需要專用 USB 金鑰,對一般使用者來說門檻太高;但因為每個人都有的手機直接變成驗證器,普及障礙一下子就降低了。
2025 年 7 月,日本證券業協會(JSDA)公布了網際網路交易防止不正登入指南修正草案,要求登入與出金流程必須使用具備抗釣魚能力的 MFA(多因素驗證)。其中被點名作為範例的,就是通行密鑰。
樂天證券、野村證券、SBI 證券、Monex 證券等主要證券公司都在 2025 年內推進支援。隨著釣魚受害愈來愈嚴重,義務化期限也被推測會在 2026 年夏季左右。
釣魚、密碼清單攻擊、突破簡訊驗證的中間人攻擊等,依賴密碼的認證方式已經顯現出極限。簡訊一次性密碼還有簡訊發送成本,對服務業者來說,轉向通行密鑰的好處也很大。
導入企業也相當多元,包括 Adobe、Amazon、PayPal、NTT docomo、Yahoo、蝦皮購物、豐田汽車、PlayStation 等。
通行密鑰不是萬能的,現實上還有一些課題。
若是同步通行密鑰,可以透過其他裝置復原,但各服務的復原設計都不同。從使用者角度來看,最安全的做法是「在兩台以上的裝置上都註冊通行密鑰」。
很多服務目前都是「可以用通行密鑰,但密碼還留著」的狀態。只要密碼還存在,針對密碼的釣魚風險就依然可能發生。理想狀態雖然是「只剩通行密鑰」,但過渡期看來還會持續一段時間。
同步通行密鑰在同一生態系內(Apple 對 Apple、Google 對 Google)對換機很友善,但像從 iPhone 換到 Android這種不同生態系之間的移轉,仍然不算順暢。跨平台移轉規格(Credential Exchange Protocol)也在標準化中,但要普及還需要一些時間。
即使大家已經習慣「可以用指紋登入」這種體驗,要真正下決心「完全丟掉密碼」,使用者心裡還是會有門檻。這與其說是技術問題,不如說是宣導問題。
「為什麼全世界的密碼會逐漸被它取代」這件事,從技術面與社會面應該都更容易理解了。如果你在日常使用的服務中看到通行密鑰設定畫面,真的很推薦實際設定一次看看。
原文出處:https://qiita.com/ktdatascience/items/78212f9f851ffe97f3d9