發布日期:2026 年 7 月 10 日
英國國民保健署 (NHS) 是英國政府公開資助的醫療照護系統。 NHS 登入是英格蘭和威爾斯國民保健署的安全數位身分識別供應商,為數千萬名公民提供單一且值得信賴的管道,方便他們存取健康和社會照護服務。由於使用者規模龐大,且資料非常敏感,因此驗證摩擦和安全性至關重要。
在數位服務合作夥伴 Hippo 的協助下,NHS 團隊導入了密碼金鑰。Hippo 負責密碼金鑰的 UX 研究和技術整合,讓使用者享有更快速、輕鬆且安全的存取體驗,同時大幅降低支援和營運成本。
重點成果
- 縮短登入時間:使用者使用密碼金鑰驗證身分的速度快了 8 倍。 使用條件式 UI 後,登入時間中位數從 43 秒 (密碼 + 簡訊動態密碼) 降至 5 秒。
- 高採用率和規模:自兩年前推出這項功能以來,使用者已建立 670 萬個密碼金鑰,每月有 600 萬次密碼金鑰登入。
- 降低交易成本:自推出以來,OTP 費用最多節省了 £120 萬英鎊。
| 主要指標 | 影響 |
|---|---|
| 8x | 使用密碼金鑰登入的速度更快 (5 秒 vs 43 秒) |
| 670 萬 | 自推出以來,使用者建立的密碼金鑰 |
| 600 萬 | 每月使用密碼金鑰登入的次數 |
| 120 萬英鎊 | 自推出以來,節省的簡訊動態密碼費用 |
摩擦、成本和密碼疲勞
NHS 登入服務是集中式數位閘道,使用者可透過這項服務存取各種健康服務。為確保所有使用者都能順利登入,平台仍支援密碼和簡訊多重驗證 (MFA) 方法。不過,這些方法會帶來系統性挑戰:
- 忘記密碼:使用者經常忘記密碼,導致無法登入健康服務。
- 安全風險:密碼和簡訊驗證碼仍可能遭到網路釣魚攻擊。
- 成本不斷攀升:傳送數百萬則簡訊進行雙重驗證,需要大量資金。
- 包容性障礙:使用簡訊驗證時,使用者必須有訊號穩定的行動電話,這對部分使用者來說可能是一項障礙。
英國國民保健署和 Hippo 如何導入密碼金鑰
該團隊以使用者為中心,採取疊代式做法,著重於整合密碼金鑰,將其做為新的選用驗證方法,而非強制取代。這項做法可讓使用者逐步採用,並提供實際回饋。
團隊專注於現有平台中的兩項主要開發人員流程:密碼金鑰註冊和驗證。
透過順暢的密碼金鑰註冊程序升級使用者
團隊並未強制所有使用者立即註冊密碼金鑰,而是針對已通過驗證的活躍使用者。使用者以標準方式 (密碼 + 簡訊) 成功登入後,系統會顯示清楚的提示,邀請他們建立密碼金鑰,以便日後更快速安全地登入。
我們面臨的最大挑戰,是在教育使用者和賦予使用者能力之間取得適當平衡。我們越是嘗試說明密碼金鑰,使用者就越猶豫。我們改用以裝置為主的體驗,並使用「指紋」和「Face ID」等常見用語。使用者透過實際操作,更快瞭解概念。
Hippo 使用者體驗設計師 Pelin Demir
註冊流程會使用標準的瀏覽器原生 WebAuthn API。以下是註冊序列的概念範例:
// Simplified example of the registration call
async function createPasskey() {
try {
// 1. Fetch challenge and options from the NHS Login server
const createOptions = await fetch('/api/passkey/register-options', {
method: 'POST'
}).then(r => r.json());
// 2. Trigger the browser/OS to create the passkey
const credential = await navigator.credentials.create({
publicKey: createOptions
});
// 3. Send the public key credential back to the server for verification and storage
await fetch('/api/passkey/register-verify', {
method: 'POST',
body: JSON.stringify(credential)
});
// 4. Show success message to the user
showSuccess('Passkey saved');
} catch (err) {
console.error('Error creating passkey:', err);
showError('Could not create passkey. Please try again.');
}
}
使用條件式 UI 簡化登入流程
使用者體驗最顯著的改善來自條件式 UI (WebAuthn 自動填入)。在登入欄位中新增 autocomplete="username webauthn",瀏覽器就會主動提示使用者透過生物特徵辨識進行驗證。
<form action="/login" method="post">
<label for="username">Email or NHS number</label>
<input type="text"
id="username"
name="username"
autocomplete="username webauthn"
required>
<button type="submit">Continue</button>
</form>
導入條件式使用者介面後,密碼金鑰的使用率成長近 1.7 倍,顯示移除輸入摩擦可直接加速採用。
使用 Signal API 處理過時的金鑰
密碼金鑰的常見運作問題是過時的憑證,也就是使用者從帳戶設定中移除憑證,但密碼金鑰仍儲存在裝置的密碼管理工具中。嘗試使用過時的金鑰會導致驗證失敗,令人困惑。
為解決這個問題,團隊採用了 WebAuthn 信號 API。後端撤銷或更新憑證時,伺服器會通知密碼金鑰提供者進行同步,從使用者的自動填入建議中移除無效的金鑰。
提供順暢的存取體驗,同時提升安全性
越來越多使用者採用密碼金鑰做為驗證機制。
- 流暢的使用者體驗:移除驗證阻礙後,使用者就能存取 NHS 服務並主動管理健康狀況,不會因為忘記憑證而感到沮喪或放棄。
- 安全無虞:密碼金鑰內建防網路釣魚機制,可保護高度私密的健康資料,同時為無密碼和無簡訊驗證的未來鋪路。
- 作業效率:除了直接節省簡訊 OTP 的費用,減少對密碼的依賴也能從根本上提升 NHS 的效率。密碼相關支援電話減少後,員工就能處理更複雜的查詢。
重要課程
在整合 NHS 服務的密碼金鑰時,團隊發現了下列重要教訓:
- 使用者體驗優於技術複雜性:WebAuthn 的技術導入方式相當簡單。主要挑戰在於針對廣泛客層採用情況,最佳化使用者體驗。
- 啟用而非教育:使用者希望平台能以靜態方式管理安全性。過度解釋密碼金鑰機制會造成認知負荷;信任熟悉的裝置提示 (生物辨識) 證明更有效。
- 跨裝置歷程:使用者可能會在手機上建立密碼金鑰,但稍後嘗試在圖書館電腦上登入。處理跨裝置流程 (電腦顯示 QR code,由手機掃描) 是設計和測試的重要環節。他們也在使用者帳戶管理中新增專區,顯示密碼金鑰和身分,協助管理密碼金鑰 (請參閱「使用 AAGUID 判斷密碼金鑰提供者」)。
- 帳戶救援:密碼金鑰無法取代完善的帳戶救援程序。團隊必須確保使用者遺失裝置時,仍能安全地重新取得帳戶存取權,這對健康相關服務而言是至關重要的流程。
- 兼顧創新與包容性:雖然密碼金鑰能提供更優質的體驗,但無法在一夜之間完全取代舊版系統,否則會讓部分弱勢使用者無法使用。團隊刻意保留密碼 + 簡訊 OTP 做為平行路徑,接受持續產生的費用,確保不會有使用者因裝置需求或網路涵蓋範圍不佳而無法使用。
後續步驟
Hippo 已建立超過 670 萬個密碼金鑰,目前正在改善提示,邀請使用者建立密碼金鑰。他們不會強制切換,而是透過測試找出提供密碼金鑰的最佳時機,協助更多使用者順利升級。