Yahoo! JAPAN은 비밀번호를 사용하지 않는 인증으로 문의량이 25% 감소하고 로그인 시간이 2.6배 빨라졌습니다.

Yahoo! Japan은 비밀번호 없는 ID 시스템을 구축했습니다.

키타무라 에이지
키타무라 에이지
알렉산드라 화이트
알렉산드라 화이트
이토 유야
이토 유야

Yahoo! JAPAN은 검색, 뉴스, 전자상거래, 이메일과 같은 서비스를 제공하는 일본 최대의 미디어 기업 중 하나입니다. 5천만 명 이상의 사용자가 Yahoo! JAPAN 서비스에 영향을 미칩니다.

지난 몇 년간 사용자 계정에 대한 수많은 공격과 문제로 인해 계정 액세스 권한을 잃은 문제가 있었습니다. 이러한 문제는 대부분 인증을 위한 비밀번호 사용과 관련이 있습니다.

최근 인증 기술이 발전하면서 Yahoo! JAPAN은 비밀번호 기반에서 패스워드리스 인증으로 전환하기로 결정했습니다.

왜 비밀번호가 필요 없나요?

Yahoo! JAPAN은 전자상거래 및 기타 금융 관련 서비스를 제공하는 경우 무단 액세스 또는 계정 손실이 발생할 경우 사용자에게 심각한 피해를 줄 위험이 있습니다.

비밀번호와 관련된 가장 일반적인 공격은 비밀번호 목록 공격과 피싱 사기입니다. 비밀번호 목록 공격이 일반적이고 효과적인 이유 중 하나는 많은 사람들이 여러 애플리케이션과 웹사이트에 같은 비밀번호를 사용하는 습관입니다.

다음 수치는 Yahoo! JAPAN입니다.

    50 %

    6개 이상의 사이트에서 동일한 ID와 비밀번호 사용

    60 %

    여러 사이트에서 같은 비밀번호 사용

    70 %

    비밀번호를 기본 로그인 방법으로 사용

사용자가 비밀번호를 잊어버리는 경우가 많으며, 이는 비밀번호 관련 문의 대부분을 차지합니다. 비밀번호 외에 로그인 ID를 잊어버린 사용자 문의도 있었습니다. 최고조에 이르렀을 때, 이러한 문의가 전체 계정 관련 문의의 3분의 1 이상을 차지했습니다.

비밀번호 없이 Yahoo! JAPAN의 목표는 사용자에게 추가적인 부담을 주지 않으면서 보안뿐 아니라 사용성도 개선하는 것이었습니다.

보안 측면에서 사용자 인증 프로세스에서 비밀번호를 제거하면 목록 기반 공격으로 인한 피해를 줄이고 사용성 관점에서도 피해를 줄일 수 있습니다. 비밀번호 기억에 의존하지 않는 인증 방법을 제공하면 사용자가 비밀번호를 잊어버려 로그인할 수 없는 상황을 방지할 수 있습니다.

Yahoo! JAPAN의 비밀번호 없는 이니셔티브

Yahoo! JAPAN은 다음과 같은 세 가지 카테고리로 크게 나눌 수 있는 비밀번호 없는 인증을 촉진하기 위해 여러 단계를 진행하고 있습니다.

  1. 비밀번호에 대한 대체 인증 방법을 제공합니다.
  2. 비밀번호 비활성화:
  3. 비밀번호가 없는 계정 등록

처음 두 가지 이니셔티브는 기존 사용자를 대상으로 하고, 비밀번호 없는 등록은 신규 사용자를 대상으로 합니다.

1. 비밀번호에 대한 대체 인증 방법 제공

Yahoo! JAPAN에서는 다음과 같은 비밀번호 대안을 제공합니다.

  1. SMS 인증
  2. WebAuthn을 사용하는 FIDO

또한 이메일 인증, SMS OTP (일회용 비밀번호)와 결합된 비밀번호, 이메일 OTP와 결합된 비밀번호 등의 인증 방식도 제공합니다.

SMS 인증

SMS 인증은 등록된 사용자가 SMS를 통해 6자리 인증 코드를 받을 수 있는 시스템입니다. SMS를 받은 사용자는 앱 또는 웹사이트에 인증 코드를 입력할 수 있습니다.

Apple은 오래 전부터 iOS에서 SMS 메시지를 읽고 텍스트 본문에서 인증 코드를 제안하도록 허용해 왔습니다. 최근 입력 요소의 autocomplete 속성에 '일회성 코드'를 지정하여 추천을 사용할 수 있게 되었습니다. Android, Windows, Mac의 Chrome은 WebOTP API를 사용하여 동일한 환경을 제공할 수 있습니다.

예를 들면 다음과 같습니다.

<form>
  <input type="text" id="code" autocomplete="one-time-code"/>
  <button type="submit">sign in</button>
</form>
if ('OTPCredential' in window) {
  const input = document.getElementById('code');
  if (!input) return;
  const ac = new AbortController();
  const form = input.closest('form');
  if (form) {
    form.addEventListener('submit', e => {
      ac.abort();
    });
  }
  navigator.credentials.get({
    otp: { transport:['sms'] },
    signal: ac.signal
  }).then(otp => {
    input.value = otp.code;
  }).catch(err => {
    console.log(err);
  });
}

두 방법 모두 SMS 본문에 도메인을 포함하고 지정된 도메인에만 추천을 제공하여 피싱을 방지하도록 설계되었습니다.

WebOTP API 및 autocomplete="one-time-code"에 관한 자세한 내용은 SMS OTP 양식 권장사항을 참고하세요.

WebAuthn을 사용하는 FIDO

WebAuthn을 사용하는 FIDO는 하드웨어 인증자를 사용하여 공개 키 암호화 쌍을 생성하고 소유를 증명합니다. 스마트폰을 인증자로 사용하면 생체 인식 인증 (예: 지문 센서 또는 얼굴 인식)과 결합하여 1단계 2단계 인증을 실행할 수 있습니다. 이 경우 생체 인식 인증의 서명 및 성공 표시만 서버로 전송되므로 생체 인식 데이터 도용의 위험이 없습니다.

다음 다이어그램은 FIDO의 서버-클라이언트 구성을 보여줍니다. 클라이언트 인증자는 생체 인식으로 사용자를 인증하고 공개 키 암호화를 사용하여 결과에 서명합니다. 서명을 생성하는 데 사용된 비공개 키는 TEE (신뢰할 수 있는 실행 환경) 또는 유사한 위치에 안전하게 저장됩니다. FIDO를 사용하는 서비스 제공업체를 RP(신뢰 당사자)라고 합니다.

일반적으로 생체 인식 스캔 또는 PIN을 사용하여 사용자가 인증을 수행하면 인증자는 비공개 키를 사용하여 서명된 인증 신호를 브라우저에 전송합니다. 그런 다음 브라우저가 이 신호를 RP 웹사이트와 공유합니다.

그러면 RP 웹사이트가 서명된 인증 신호를 RP 서버로 전송하고 서버에서 공개 키에 대해 서명을 확인하여 인증을 완료합니다.

자세한 내용은 FIDO Alliance의 인증 가이드라인을 참고하세요.

Yahoo! JAPAN은 Android (모바일 앱 및 웹), iOS (모바일 앱 및 웹), Windows (Edge, Chrome, Firefox), macOS (Safari, Chrome)에서 FIDO를 지원합니다. FIDO는 소비자 서비스이므로 거의 모든 기기에서 사용할 수 있으므로 비밀번호 없는 인증을 홍보하는 데 적합합니다.

운영체제 FIDO 지원
Android 앱, 브라우저 (Chrome)
iOS 앱 (iOS 14 이상), 브라우저 (Safari 14 이상)
Windows 브라우저 (Edge, Chrome, Firefox)
Mac (Big Sur 이상) 브라우저 (Safari, Chrome)
Yahoo! JAPAN 메시지를 표시합니다.

Yahoo! JAPAN에서는 사용자가 다른 방법으로 아직 인증하지 않은 경우 WebAuthn을 사용하여 FIDO에 등록하는 것을 권장합니다. 사용자가 동일한 기기로 로그인해야 하는 경우 생체 인식 센서를 사용하여 빠르게 인증할 수 있습니다.

사용자는 Yahoo! JAPAN입니다.

Google은 비밀번호 없는 인증을 장려하고 비밀번호를 사용하지 않는 사용자를 배려하기 위해 다양한 인증 수단을 제공합니다. 즉, 사용자마다 인증 방법 설정이 다를 수 있으며 사용할 수 있는 인증 방법은 브라우저마다 다를 수 있습니다. 사용자가 매번 동일한 인증 방법을 사용하여 로그인하는 것이 더 나은 사용자 경험입니다.

이러한 요구사항을 충족하려면 이전 인증 방법을 추적하고 이 정보를 쿠키 등의 형식으로 저장하여 클라이언트에 연결해야 합니다. 그런 다음 다양한 브라우저와 애플리케이션이 인증에 사용되는 방식을 분석할 수 있습니다. 사용자의 설정, 사용된 이전 인증 방법, 필요한 최소 인증 수준에 따라 사용자에게 적절한 인증을 제공하라는 메시지가 표시됩니다.

2. 비밀번호 비활성화

Yahoo! JAPAN은 사용자에게 대체 인증 방법을 설정한 후 비밀번호를 사용할 수 없도록 사용 중지하도록 요청합니다. 대체 인증을 설정하는 것 외에도 비밀번호 인증을 사용 중지하면 비밀번호로만 로그인할 수 없으므로 목록 기반 공격으로부터 사용자를 보호할 수 있습니다.

Google에서는 사용자가 비밀번호를 사용 중지하도록 다음 조치를 취했습니다.

  • 사용자가 비밀번호를 재설정할 때 대체 인증 방법을 홍보합니다.
  • 사용하기 쉬운 인증 방식 (예: FIDO)을 설정하고 빈번한 인증이 필요한 상황에서는 비밀번호를 사용 중지하도록 사용자에게 권장합니다.
  • 사용자에게 전자상거래 결제와 같이 위험성이 높은 서비스를 사용하기 전에 비밀번호를 사용 중지하도록 권고

사용자가 비밀번호를 잊어버린 경우 계정 복구를 실행할 수 있습니다. 이전에는 비밀번호를 재설정해야 했습니다. 이제 사용자는 다른 인증 방법을 설정할 수 있으므로 그렇게 하는 것이 좋습니다.

3. 비밀번호가 없는 계정 등록

신규 사용자는 비밀번호 없이 Yahoo! JAPAN 계정에 적용됩니다. 사용자는 먼저 SMS 인증을 사용하여 등록해야 합니다. 사용자가 로그인한 후에는 FIDO 인증을 설정하도록 권장합니다.

FIDO는 기기별로 설정되므로 기기가 작동하지 않을 경우 계정을 복구하기 어려울 수 있습니다. 따라서 사용자는 추가 인증을 설정한 후에도 전화번호를 등록된 상태로 유지해야 합니다.

패스워드리스 인증의 주요 과제

비밀번호는 인간의 기억에 의존하며 기기와 독립적입니다. 반면, 비밀번호 없는 이니셔티브에서 지금까지 도입된 인증 방식은 기기에 따라 다릅니다. 여기에는 몇 가지 어려움이 있습니다.

여러 기기를 사용하는 경우 사용성과 관련된 몇 가지 문제가 있습니다.

  • SMS 인증을 사용하여 PC에서 로그인하는 경우 사용자는 휴대전화에 SMS 메시지가 수신되었는지 확인해야 합니다. 이 방법은 사용자의 휴대전화를 언제든지 사용할 수 있어야 하고 쉽게 액세스할 수 있어야 하므로 불편할 수 있습니다.
  • 특히 플랫폼 인증자의 경우 FIDO를 사용하면 여러 기기를 보유한 사용자가 등록되지 않은 기기에서 인증할 수 없습니다. 사용하려는 각 기기에서 등록을 완료해야 합니다.

FIDO 인증은 특정 기기에 연결되어 있으므로 기기가 사용자의 소유 및 활성 상태를 유지해야 합니다.

  • 서비스 계약이 취소되면 더 이상 등록된 전화번호로 SMS 메시지를 보낼 수 없습니다.
  • FIDO는 특정 기기에 비공개 키를 저장합니다. 기기를 분실하면 키를 사용할 수 없습니다.

Yahoo! JAPAN은 이러한 문제를 해결하기 위해 다양한 조치를 취하고 있습니다.

가장 중요한 해결책은 사용자가 여러 인증 방법을 설정하도록 유도하는 것입니다. 이렇게 하면 기기가 분실되었을 때 대체 계정 액세스 권한이 제공됩니다. FIDO 키는 기기에 따라 다르므로 FIDO 비공개 키를 여러 기기에 등록하는 것도 좋습니다.

또는 사용자는 WebOTP API를 사용하여 Android 휴대전화에서 PC용 Chrome으로 SMS 인증 코드를 전달할 수 있습니다.

비밀번호를 사용하지 않는 인증이 보급됨에 따라 이러한 문제를 해결하는 것이 더욱 중요해질 것이라고 생각합니다.

패스워드리스 인증 홍보

Yahoo! JAPAN은 2015년부터 이러한 패스워드리스 이니셔티브를 추진해 왔습니다. 이는 2015년 5월에 FIDO 서버 인증을 취득한 데 이어 SMS 인증, 비밀번호 비활성화 기능, 각 기기의 FIDO 지원이 도입되었습니다.

현재 월간 활성 사용자 수는 3천만 명이 넘고 이미 비밀번호를 사용 중지했으며 비밀번호가 아닌 인증 방법을 사용하고 있습니다. Yahoo! JAPAN의 FIDO 지원은 Android의 Chrome에서 시작되었으며 현재 1천만 명이 넘는 사용자가 FIDO 인증을 설정했습니다.

Yahoo! JAPAN의 이니셔티브에서 로그인 ID나 비밀번호 분실과 관련된 문의 비율이 가장 높았던 시기에 비해 25% 감소했으며, 비밀번호가 없는 계정 수가 늘어남에 따라 무단 액세스가 감소했음을 확인할 수 있었습니다.

FIDO는 설정이 매우 쉽기 때문에 특히 전환율이 높습니다. 실제로 Yahoo! JAPAN은 FIDO의 CVR이 SMS 인증보다 높다는 사실을 발견했습니다.

    25 %

    분실된 사용자 인증 정보에 대한 요청 감소

    74 %

    사용자가 FIDO 인증 성공

    65 %

    SMS 인증 성공

FIDO는 SMS 인증보다 성공률이 높고 평균 및 중앙값 인증 시간이 더 빠릅니다. 비밀번호의 경우 일부 그룹의 인증 시간이 짧으며 브라우저의 autocomplete="current-password" 때문일 수 있습니다.

비밀번호, SMS, FIDO의 인증 시간 비교 그래프
FIDO의 경우 인증하는 데 평균 8초가 소요되며, 비밀번호는 21초, SMS 인증에는 27초가 걸립니다.

비밀번호가 없는 계정을 제공할 때 가장 큰 어려움은 인증 방법을 추가하는 것이 아니라 인증자의 사용이 대중화되는 것입니다. 패스워드리스 서비스의 사용 환경이 사용자 친화적이지 않다면 전환이 쉽지 않을 것입니다.

보안 강화를 위해서는 먼저 사용성을 개선해야 하며, 이를 위해서는 각 서비스마다 고유한 혁신이 필요합니다.

결론

비밀번호 인증은 보안 측면에서 위험하며 사용성 측면에서도 문제가 됩니다. WebOTP API 및 FIDO와 같이 비밀번호가 아닌 인증을 지원하는 기술이 더욱 널리 보급됨에 따라 이제 패스워드리스 인증을 도입해야 할 때입니다.

Yahoo! JAPAN에서는 이 접근 방식을 채택한 것이 사용성과 보안 모두에 상당한 영향을 미쳤습니다. 그러나 여전히 많은 사용자가 비밀번호를 사용하고 있으므로 더 많은 사용자가 패스워드리스 인증 방식으로 전환하도록 권장할 것입니다. 또한 비밀번호 없는 인증 방법의 사용자 환경을 최적화하기 위해 제품을 지속적으로 개선할 예정입니다.

사진: olieman.eth(Unsplash 제공)