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

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

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

지난 몇 년 동안 사용자 계정에 대한 수많은 공격과 계정 액세스 상실을 초래한 문제가 있었습니다. 이러한 문제의 대부분은 인증을 위한 비밀번호 사용과 관련이 있었습니다.

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

암호 없는 인증의 이점

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

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

다음은 Yahoo! 일본.

    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! 일본.

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

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

2. 비밀번호 비활성화

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

다음 단계에 따라 사용자가 비밀번호를 사용 중지하도록 권장했습니다.

  • 사용자가 비밀번호를 재설정할 때 대체 인증 방법을 홍보합니다.
  • 사용자에게 간편한 인증 방법 (예: 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, 000만 명이 넘는 사용자가 FIDO 인증을 설정했습니다.

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

FIDO는 설정이 매우 간단해서 특히 전환율이 높습니다. 실제로 Yahoo! JAPAN은 FIDO가 SMS 인증보다 CVR이 높은 것을 확인했습니다.

    25 %

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

    74 %

    사용자가 FIDO 인증으로 성공

    65 %

    SMS 인증으로 성공하기

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

비밀번호, SMS, FIDO 인증 시간 비교 그래프
평균적으로 FIDO 인증에는 8초, 비밀번호 인증에는 21초, SMS 인증에는 27초가 소요됩니다.

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

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

결론

비밀번호 인증은 보안 측면에서 위험할 뿐 아니라 사용성 측면에서도 문제를 일으킵니다. 이제 WebOTP API 및 FIDO와 같이 비밀번호가 아닌 인증을 지원하는 기술이 더 널리 보급됨에 따라 비밀번호가 없는 인증을 지향해야 할 때입니다.

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

사진: olieman.eth(Unsplash 제공)