NHS England에서 패스키로 로그인 시간을 개선하고 100만 파운드 이상을 절약한 방법

Yu Tsuno
Yu Tsuno
Darren Hutton
Darren Hutton
Pelin Dem
Pelin Dem

게시일: 2026년 7월 10일

국민보건서비스 (NHS)는 영국의 공공 자금 지원을 받는 의료보건 시스템입니다. NHS England 및 NHS Wales의 보안 디지털 ID 제공업체인 NHS 로그인은 수천만 명의 시민이 보건 및 사회복지 서비스에 액세스할 수 있는 단일하고 신뢰할 수 있는 방법을 제공합니다. 이러한 규모의 사용자 기반과 민감한 데이터를 고려할 때 인증 마찰과 보안이 가장 중요합니다.

NHS팀은 디지털 서비스 파트너인 Hippo와 협력하여 패스키를 구현했습니다. Hippo는 패스키의 UX 연구와 기술 통합을 주도하여 사용자가 더 빠르고 쉽고 안전하게 액세스할 수 있도록 지원하는 한편 지원 및 운영 비용을 대폭 절감했습니다.

주요 결과

  • 로그인 시간 단축: 사용자가 패스키를 사용하면 인증 속도가 8배 빨라집니다. 조건부 UI를 사용하면 로그인 시간이 43초 (비밀번호 + SMS OTP)에서 5초로 단축되었습니다.
  • 높은 채택률과 확장성: 2년 전 이 기능이 출시된 이후 사용자가 생성한 패스키가 670만 개에 달하며, 매달 600만 건의 패스키 로그인이 이루어집니다.
  • 거래 비용 절감: 출시 이후 OTP 비용이 최대 120만 파운드 절감되었습니다.
주요 측정항목 영향
8배 패스키를 사용한 로그인 시간 단축 (5초 대 43초)
670만 출시 이후 사용자가 만든 패스키
6백만 매월 패스키 로그인
120만 파운드 출시 이후 SMS OTP 비용 절감

불편, 비용, 비밀번호 피로도

NHS 로그인은 다양한 건강 관리 서비스에 액세스하는 사용자를 위한 중앙 디지털 게이트웨이 역할을 합니다. 모든 사용자가 계속해서 로그인할 수 있도록 플랫폼은 비밀번호 및 SMS 기반 다중 인증 (MFA) 방법을 계속 지원합니다. 하지만 이러한 방법에는 다음과 같은 시스템적 문제가 있습니다.

  • 비밀번호를 잊어버림: 사용자는 비밀번호를 잊어버려 건강 관리 서비스에 액세스할 수 없는 경우가 많습니다.
  • 보안 위험: 비밀번호와 SMS 코드는 피싱 공격에 취약합니다.
  • 비용 증가: 2단계 인증을 위해 수백만 건의 SMS 문자 메시지를 전송하는 데 많은 비용이 듭니다.
  • 포용성 문제: SMS를 사용하려면 사용자가 신호가 안정적인 휴대전화를 보유해야 하므로 일부 사용자에게는 장벽이 될 수 있습니다.

NHS와 Hippo가 패스키를 구현한 방법

팀의 접근 방식은 사용자 중심의 반복적 접근 방식으로, 강제 대체가 아닌 새로운 선택적 인증 방법으로 패스키를 통합하는 데 중점을 두었습니다. 이를 통해 점진적인 채택과 실제 사용자 피드백이 가능했습니다.

팀은 기존 플랫폼 내에서 패스키 등록 및 인증이라는 두 가지 기본 개발자 흐름에 집중했습니다.

원활한 패스키 등록을 통해 사용자 업그레이드

팀은 모든 사용자에게 즉시 패스키를 등록하도록 강제하는 대신 활성 인증된 사용자를 타겟팅합니다. 사용자가 표준 방법 (비밀번호 + SMS)을 사용하여 로그인하면 향후 더 빠르고 안전한 로그인을 위해 패스키를 만들라는 명확한 메시지가 표시됩니다.

가장 큰 과제는 사용자를 교육하고 지원하는 것 사이에서 적절한 균형을 찾는 것이었습니다. 패스키를 설명하려고 할수록 사용자는 더 주저했습니다. '지문' 및 '얼굴 ID'와 같은 친숙한 용어를 사용하여 기기 중심 환경으로 전환했습니다. 사용자는 이 기능을 사용함으로써 개념을 훨씬 빠르게 이해했습니다.

Pelin Demir, Hippo UX 디자이너

등록 흐름은 표준 브라우저 네이티브 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.');
  }
}
NHS 로그인에서 단계별 패스키 등록 흐름
NHS 로그인 패스키 등록 흐름

조건부 UI를 사용하여 로그인 흐름 간소화

가장 중요한 사용자 환경 개선사항은 조건부 UI(WebAuthn 자동 완성)에서 제공됩니다. 로그인 필드에 autocomplete="username webauthn"를 추가하면 브라우저에서 사용자에게 생체 인식을 사용하여 인증하라는 메시지를 사전에 표시합니다.

<form action="/login" met>hod<="post"
  >label for="use<rname&>quo<t;Email or NHS number/label
  input type="text"
         id="username"
         name="username">
  <       autocomplete=>"us<ername >w<ebaut>hn"
         required
  button type="submit"Continue/button
/form

조건부 UI를 구현한 결과 패스키 사용량이 거의 1.7배 증가했으며, 이는 입력 마찰을 제거하면 채택이 직접적으로 가속화된다는 것을 보여줍니다.

Signal API로 오래된 키 처리

패스키의 알려진 운영상의 문제점은 오래된 사용자 인증 정보입니다. 사용자가 계정 설정에서 사용자 인증 정보를 삭제했지만 패스키는 기기의 비밀번호 관리자에 저장된 상태로 남아 있는 경우입니다. 오래된 키를 사용하려고 하면 혼란스러운 인증 실패가 발생합니다.

이 문제를 해결하기 위해 팀은 WebAuthn Signal API를 통합했습니다. 백엔드에서 사용자 인증 정보가 취소되거나 업데이트되면 서버는 패스키 제공업체에 동기화를 요청하여 사용자의 자동 완성 제안에서 무효한 키를 원활하게 삭제합니다.

원활한 액세스 및 향상된 보안 제공

사용자가 인증 메커니즘으로 패스키를 점점 더 많이 채택하고 있습니다.

  • 원활한 사용자 경험: 인증 마찰을 제거하면 사용자가 잊어버린 사용자 인증 정보로 인해 발생하는 불편함이나 이탈 없이 NHS 서비스에 액세스하고 건강을 사전 예방적으로 관리할 수 있습니다.
  • 타협 없는 보안: 패스키는 내장된 피싱 방지 기능을 제공하여 매우 민감한 건강 데이터를 보호하는 동시에 비밀번호와 SMS가 없는 미래를 위한 길을 열어줍니다.
  • 운영 효율성: SMS OTP의 직접적인 재정적 절감 외에도 비밀번호 의존도를 줄이면 NHS의 효율성이 근본적으로 개선됩니다. 비밀번호 관련 지원 전화가 감소하여 직원이 더 복잡한 문의를 처리할 수 있습니다.

핵심 교훈

NHS 서비스 전반에 패스키를 통합하는 동안 팀은 다음과 같은 주요 교훈을 파악했습니다.

  • 기술적 복잡성보다 UX 우선: WebAuthn의 기술적 구현은 간단했습니다. 주요 과제는 다양한 인구통계에서 채택할 수 있도록 UX를 최적화하는 것이었습니다.
  • 교육보다 지원: 사용자는 플랫폼에서 보안을 자동으로 관리할 것으로 기대합니다. 패스키 메커니즘을 과도하게 설명하면 인지 부하가 발생합니다. 친숙한 기기 프롬프트 (생체 인식)를 신뢰하는 것이 훨씬 효과적입니다.
  • 교차 기기 여정: 사용자가 휴대전화에서 패스키를 생성했지만 나중에 도서관 컴퓨터에서 로그인하려고 할 수 있습니다. 교차 기기 흐름(데스크톱에 휴대전화로 스캔한 QR 코드가 표시됨)을 처리하는 것은 설계하고 테스트해야 하는 중요한 여정이었습니다. 또한 패스키 관리를 지원하기 위해 패스키와 신원을 표시하는 새로운 섹션을 사용자의 계정 관리에 추가했습니다 (AAGUID로 패스키 제공업체 확인 참고).
  • 계정 복구: 패스키를 사용해도 강력한 계정 복구가 필요합니다. 팀은 기기를 분실한 사용자가 계정에 안전하게 다시 액세스할 수 있도록 해야 했습니다. 이는 건강 관련 서비스에서 매우 중요한 흐름입니다.
  • 혁신과 포용성의 균형: 패스키는 우수한 환경을 제공하지만 취약한 사용자를 소외하지 않고 기존 시스템을 완전히 대체할 수는 없습니다. 팀은 기기 요구사항이나 열악한 네트워크 범위로 인해 제외되는 사용자가 없도록 지속적인 비용을 감수하면서 비밀번호 + SMS OTP를 병행 경로로 유지했습니다.

다음 단계

670만 개 이상의 패스키가 생성된 Hippo는 이제 사용자에게 패스키 생성을 요청하는 프롬프트를 개선하는 데 주력하고 있습니다. 전환을 강제하는 대신 테스트를 통해 패스키를 제공하기에 가장 적합한 시점을 찾아 더 많은 사용자가 원활하게 업그레이드할 수 있도록 지원합니다.

자세히 알아보기