Yahoo! JAPAN のパスワード不要の認証で問い合わせが 25% 減少し、ログイン時間が 2.6 倍に

Yahoo! 日本はパスワードなしの ID システムを構築しました。

Alexandra Klepper
Alexandra Klepper
Yuya Ito
Yuya Ito

Yahoo! JAPAN は、検索、ニュース、e コマース、メールなどのサービスを提供する、日本最大級のメディア企業の 1 つです。Yahoo! にログインするユーザーは 5,000 万人を超えています。JAPAN サービスを毎月ご利用いただいているお客様に

長年にわたり、ユーザー アカウントに対する攻撃や、アカウントへのアクセスを失う原因となる問題が数多く発生してきました。これらの問題のほとんどは、認証用のパスワードの使用に関連していました。

認証技術の進歩に伴い、Yahoo! JAPAN は、パスワード ベースの認証からパスワードレス認証に移行することを決定しました。

パスワードレスにする理由

Yahoo! JAPAN は、e コマースやその他の金銭関連サービスを提供しているため、不正アクセスやアカウントの損失が発生した場合、ユーザーに重大な損害が生じるおそれがあります。

パスワードに関連する最も一般的な攻撃は、パスワード リスト攻撃とフィッシング詐欺でした。パスワード リスト攻撃が一般的で効果的な理由の 1 つは、多くの人が複数のアプリケーションやウェブサイトで同じパスワードを使用する習慣があることです。

次の図は、Yahoo! が実施したアンケートの結果です。日本。

    50 %

    6 つ以上のサイトで同じ ID とパスワードを使用している

    60 %

    複数のサイトで同じパスワードを使用している

    70 %

    パスワードを主なログイン方法として使用する

パスワードを忘れたというお問い合わせが、パスワード関連のお問い合わせの大部分を占めていました。パスワードだけでなくログイン ID も忘れてしまったというユーザーからのお問い合わせもありました。ピーク時には、これらの問い合わせがアカウント関連の問い合わせ全体の 3 分の 1 以上を占めていました。

パスワードレスにすることで、Yahoo! JAPAN は、ユーザーに余計な負担をかけることなく、セキュリティだけでなくユーザビリティの向上も目指しました。

セキュリティの観点から見ると、ユーザー認証プロセスからパスワードを排除することで、リストベースの攻撃による被害を軽減できます。また、ユーザビリティの観点から見ると、パスワードの記憶に依存しない認証方法を提供することで、パスワードを忘れてログインできない状況を防ぐことができます。

Yahoo! 日本のパスワードレスへの取り組み

Yahoo! 日本は、パスワードレス認証を推進するためにさまざまな取り組みを行っています。これらの取り組みは、大きく次の 3 つのカテゴリに分類できます。

  1. パスワードに代わる認証手段を提供します。
  2. パスワードの無効化。
  3. パスワードレスのアカウント登録。

最初の 2 つの取り組みは既存のユーザーを対象としていますが、パスワードなし登録は新規ユーザーを対象としています。

1. パスワードの代替認証手段を提供する

Yahoo! JAPAN では、パスワードの代わりに次の方法をご利用いただけます。

  1. SMS 認証
  2. WebAuthn を使用した FIDO

また、メール認証、パスワードと SMS OTP(ワンタイム パスワード)の組み合わせ、パスワードとメール OTP の組み合わせなどの認証方法も提供しています。

SMS 認証

SMS 認証は、登録ユーザーが SMS で 6 桁の認証コードを受信できるシステムです。ユーザーが SMS を受け取ったら、アプリまたはウェブサイトで認証コードを入力できます。

Apple は、iOS が SMS メッセージを読み取り、テキスト本文から認証コードを提案することを長年許可してきました。最近では、入力要素の autocomplete 属性で「one-time-code」を指定することで、候補を使用できるようになりました。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(Trusted Execution Environment)または同様の場所に安全に保存されます。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! にログインするために使用するすべてのデバイスで FIDO 認証を設定する必要があります。日本。

パスワードレス認証を推進し、パスワードから移行するユーザーに配慮するため、複数の認証手段を提供しています。つまり、ユーザーごとに異なる認証方法を設定でき、使用できる認証方法はブラウザによって異なる場合があります。ユーザーが毎回同じ認証方法でログインする方が、ユーザー エクスペリエンスが向上すると考えています。

これらの要件を満たすには、以前の認証方法を追跡し、この情報をクライアントにリンクする必要があります。この情報は、Cookie などの形式で保存されます。これにより、認証にさまざまなブラウザやアプリケーションがどのように使用されているかを分析できます。ユーザーの設定、以前に使用した認証方法、必要な最低認証レベルに基づいて、適切な認証情報の提供をユーザーに求めます。

2. パスワードの無効化

Yahoo! JAPAN は、ユーザーに代替の認証方法を設定するよう求め、その後パスワードを無効にして使用できないようにします。代替認証の設定に加えて、パスワード認証を無効にすると(パスワードのみでログインできなくなる)、リストベースの攻撃からユーザーを保護できます。

ユーザーにパスワードを無効にするよう促すため、以下の対応を行っています。

  • ユーザーがパスワードをリセットする際に、代替認証方法を推奨します。
  • ユーザーに使いやすい認証方法(FIDO など)を設定し、頻繁な認証が必要な状況ではパスワードを無効にするよう促します。
  • e コマース決済などのリスクの高いサービスを使用する前に、パスワードを無効にするようユーザーに促します。

ユーザーがパスワードを忘れた場合は、アカウントの復元を実行できます。以前は、パスワードの再設定が必要でした。ユーザーは別の認証方法を設定できるようになりました。設定することをおすすめします。

3. パスワードレスのアカウント登録

新しいユーザーは、パスワードなしの Yahoo! JAPAN アカウントでは利用できません。ユーザーはまず、SMS 認証で登録する必要があります。ログインが完了すると、ユーザーに FIDO 認証の設定を促します。

FIDO はデバイスごとの設定であるため、デバイスが動作しなくなった場合、アカウントの復元が困難になる可能性があります。そのため、追加の認証を設定した後も、電話番号の登録を維持していただく必要があります。

パスワードレス認証の主な課題

パスワードは人間の記憶に依存しており、デバイスに依存しません。一方、パスワードレス イニシアチブでこれまで導入してきた認証方法は、デバイスに依存しています。これにはいくつかの課題があります。

複数のデバイスを使用する場合、ユーザビリティに関する問題がいくつかあります。

  • SMS 認証を使用してパソコンからログインする場合、ユーザーは携帯電話で受信した SMS メッセージを確認する必要があります。この方法は、ユーザーのスマートフォンがいつでも利用可能で、簡単にアクセスできる状態である必要があるため、不便な場合があります。
  • FIDO、特にプラットフォーム認証システムでは、複数のデバイスを使用しているユーザーは、登録されていないデバイスで認証できません。使用する予定のデバイスごとに登録を完了する必要があります。

FIDO 認証は特定のデバイスに紐付けられているため、デバイスはユーザーが所有し、アクティブな状態を維持する必要があります。

  • サービス契約がキャンセルされると、登録された電話番号に SMS メッセージを送信できなくなります。
  • FIDO は特定のデバイスに秘密鍵を保存します。デバイスを紛失した場合、これらの鍵は使用できません。

Yahoo! JAPAN は、これらの問題に対処するためにさまざまな対策を講じています。

最も重要な解決策は、複数の認証方法を設定するようユーザーに促すことです。これにより、デバイスを紛失した場合にアカウントにアクセスするための代替手段が提供されます。FIDO キーはデバイスに依存するため、複数のデバイスに FIDO 秘密鍵を登録することもおすすめします。

また、WebOTP API を使用して、Android スマートフォンから PC の Chrome に SMS 確認コードを渡すこともできます。

パスワードレス認証が普及するにつれて、これらの問題に対処することがますます重要になると考えています。

パスワードレス認証の推進

Yahoo! JAPAN は 2015 年からパスワードレスの取り組みを進めてきました。これは、2015 年 5 月の FIDO サーバー認証の取得から始まり、その後、SMS 認証、パスワード無効化機能、各デバイスの FIDO サポートが導入されました。

現在、3, 000 万人を超える月間アクティブ ユーザーがすでにパスワードを無効にし、パスワード以外の認証方法を使用しています。Yahoo! 日本では、Android 版 Chrome で FIDO のサポートが開始され、現在では 1, 000 万人以上のユーザーが 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! 日本においては、このアプローチはユーザビリティとセキュリティの両方に明確な影響を与えています。ただし、パスワードを使用しているユーザーはまだ多いため、パスワードレス認証方法への切り替えをより多くのユーザーに促していきます。また、パスワードレス認証方法のユーザー エクスペリエンスを最適化するため、プロダクトの改善も継続して行います。

写真: olieman.eth(Unsplash