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

Yahoo!Japan は、パスワードレスの ID システムを構築しました。

Yahoo! JAPAN は、検索、ニュース、e コマース、メールなどのサービスを提供する日本最大級のメディア企業です。5,000 万人以上のユーザーが Yahoo!JAPAN のサービスを毎月提供しています。

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

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

なぜパスワードレスなのか?

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

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

以下は、Yahoo! トラベルが実施したアンケート調査の結果です。Japan で利用可能。

    50 %

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

    60 %

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

    70 %

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

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

パスワードレス化によって、Yahoo!JAPAN は、ユーザーに余分な負担をかけることなく、セキュリティだけでなくユーザビリティも改善することを目指しました。

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

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

Yahoo! JAPAN では、パスワードレス認証の推進に向けてさまざまな対策を講じています。この認証は、大きく 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 属性で「ワンタイム コード」を指定することで候補を使用できるようになりました。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 のサーバーに送信します。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 での FIDO での認証を求めるプロンプト

Yahoo! JAPAN では、ユーザーが他の手段でまだ認証されていない場合は、WebAuthn で FIDO に登録することをおすすめします。ユーザーが同じデバイスでログインする必要がある場合、生体認証センサーを使用してすばやく認証できます。

ユーザーは、Yahoo! へのログインに使用するすべてのデバイスで FIDO 認証を設定する必要があります。Japan で利用可能。

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

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

2. パスワードの無効化

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

ユーザーにパスワードを無効にするよう促すために、以下の措置を講じました。

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

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

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

新規ユーザーは、パスワード不要の Yahoo!Japan アカウントでは確認できません。ユーザーはまず SMS 認証で登録する必要があります。ユーザーがログインしたら、FIDO 認証を設定することをおすすめします。

FIDO はデバイスごとの設定であるため、デバイスが動作不能になった場合、アカウントの復元が難しくなることがあります。そのため、ユーザーは追加の認証を設定した後も、登録された電話番号を保持しておく必要があります。

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

パスワードは人間の記憶に基づいており、デバイスに依存しません。一方、パスワードレスの取り組みでこれまでに導入された認証方法はデバイスによって異なります。これにはいくつかの課題が伴います。

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

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

FIDO 認証は特定のデバイスに関連付けられているため、ユーザーがそのデバイスを所持し、アクティブにしておく必要があります。

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

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

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

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

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

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

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

現在、月間 3, 000 万人以上のアクティブ ユーザーがすでにパスワードを無効にし、パスワード以外の認証方法を使用しています。Yahoo! JAPAN による FIDO のサポートは Android 版 Chrome から始まり、現在 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