Yahoo! 日本はパスワード不要の ID システムを構築しました。
Yahoo! JAPAN は、検索、ニュース、e コマース、メールなどのサービスを提供する、日本の大手メディア企業の 1 つです。5,000 万人を超えるユーザーが Yahoo! にログインしています。JAPAN サービスに対して毎月請求されます。
これまで、ユーザー アカウントに対する攻撃や、アカウントへのアクセスを失う問題が数多く発生してきました。これらの問題のほとんどは、認証でのパスワードの使用に関連していました。
認証技術の進歩に伴い、Yahoo!JAPAN は、パスワード ベースの認証からパスワードレス認証に移行することを決定しました。
パスワード不要にする理由
Yahoo!JAPAN は電子商取引やその他の金銭関連サービスを提供しているため、不正アクセスやアカウントの紛失が発生した場合、ユーザーに重大な損害が発生するリスクがあります。
パスワードに関連する最も一般的な攻撃は、パスワード リスト攻撃とフィッシング詐欺でした。パスワードリスト攻撃が一般的で効果的である理由の一つは、多くの人が複数のアプリケーションやウェブサイトで同じパスワードを使用している習慣があることです。
次の図は、Yahoo! が実施した調査の結果です。日本。
50 %
6 つ以上のサイトで同じ ID とパスワードを使用している
60 %
複数のサイトで同じパスワードを使用する
70 %
パスワードを主なログイン方法として使用している
ユーザーがパスワードを忘れることが多く、パスワード関連のお問い合わせの大部分を占めていました。また、パスワードだけでなくログイン ID を忘れたユーザーからのお問い合わせもありました。ピーク時には、こうしたお問い合わせがアカウント関連のお問い合わせの 3 分の 1 以上を占めていました。
パスワードレス化により、Yahoo!JAPAN では、ユーザーに余分な負担をかけることなく、セキュリティだけでなくユーザビリティも向上させることを目指しました。
セキュリティの観点から、ユーザー認証プロセスからパスワードを削除すると、リストベースの攻撃による被害を軽減できます。また、ユーザビリティの観点から、パスワードの記憶に依存しない認証方法を提供すると、ユーザーがパスワードを忘れてログインできない状況を防ぐことができます。
Yahoo! JAPAN のパスワードレス イニシアチブ
Yahoo! 日本では、パスワード不要の認証を推進するためのさまざまな取り組みを行っています。これらの取り組みは、大きく 3 つのカテゴリに分類できます。
- パスワード以外の認証手段を提供します。
- パスワードの無効化。
- パスワード不要のアカウント登録。
最初の 2 つの取り組みは既存のユーザーを対象としていますが、パスワード不要の登録は新規ユーザーを対象としています。
1. パスワード以外の認証手段を提供する
Yahoo! 日本では、パスワードの代わりに次の方法を使用できます。
また、メール認証、パスワードと 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 は、ハードウェア認証システムを使用して公開鍵暗号ペアを生成し、所有権を証明します。スマートフォンを認証システムとして使用する場合、生体認証(指紋センサーや顔認識など)と組み合わせて、ワンステップの 2 段階認証を行うことができます。この場合、生体認証からの署名と成功の指示のみがサーバーに送信されるため、生体認証データの盗難のリスクはありません。
次の図は、FIDO のサーバー クライアント構成を示しています。クライアント認証システムは生体認証でユーザーを認証し、公開鍵暗号を使用して結果に署名します。署名の作成に使用される秘密鍵は、TEE(Trusted Execution Environment)または同様の場所に安全に保存されます。FIDO を使用するサービス プロバイダは RP(信頼できる当事者)と呼ばれます。
詳細については、FIDO アライアンスの認証ガイドラインをご覧ください。
Yahoo! 日本では、Android(モバイルアプリとウェブ)、iOS(モバイルアプリとウェブ)、Windows(Edge、Chrome、Firefox)、macOS(Safari、Chrome)で FIDO がサポートされています。コンシューマ サービスとして、FIDO はほぼすべてのデバイスで使用できるため、パスワードレス認証を推進するのに適しています。
Yahoo! 日本のユーザーは、他の方法で認証されていない場合は、WebAuthn を使用して FIDO に登録することをおすすめします。ユーザーが同じデバイスでログインする必要がある場合は、生体認証センサーを使用してすばやく認証できます。
ユーザーは、Yahoo! にログインするために使用するすべてのデバイスで FIDO 認証を設定する必要があります。日本
パスワードレス認証を推進し、パスワードから移行するユーザーを考慮して、複数の認証手段を提供しています。つまり、ユーザーによって認証方法の設定が異なり、使用できる認証方法がブラウザによって異なる場合があります。ユーザーが毎回同じ認証方法を使用してログインすると、より良いエクスペリエンスが提供されると考えています。
これらの要件を満たすには、以前の認証方法を追跡し、Cookie などの形式で保存してクライアントにリンクする必要があります。これにより、さまざまなブラウザとアプリケーションが認証にどのように使用されているかを分析できます。ユーザーの設定、以前に使用した認証方法、必要な最低レベルの認証に基づいて、適切な認証を提供するよう求められます。
2. パスワードの無効化
Yahoo! 日本では、代替の認証方法を設定し、パスワードを無効にして使用できなくするようユーザーに求めています。代替認証を設定するだけでなく、パスワード認証を無効にすることで(パスワードのみでログインできなくなるようにすることで)、リストベースの攻撃からユーザーを保護できます。
パスワードを無効にするようユーザーに促すために、Google は次の措置を講じています。
- ユーザーがパスワードをリセットする際に、代替の認証方法を促す。
- 使いやすい認証方法(FIDO など)を設定し、認証を頻繁に行う必要がある状況ではパスワードを無効にするよう、ユーザーに促します。
- 電子商取引の支払いなど、リスクの高いサービスを利用する前にパスワードを無効にするようユーザーに強く促す。
ユーザーがパスワードを忘れた場合は、アカウント復元を実行できます。以前は、パスワードのリセットが必要でした。ユーザーは別の認証方法を設定できます。Google では、別の認証方法を設定することをおすすめします。
3. パスワード不要のアカウント登録
新規ユーザーは、パスワード不要の Yahoo! JAPAN アカウントでは利用できません。ユーザーはまず SMS 認証で登録する必要があります。ログインしたら、FIDO 認証を設定することをおすすめします。
FIDO はデバイスごとの設定であるため、デバイスが動作しなくなった場合にアカウントを復元するのが難しい場合があります。そのため、追加の認証を設定しても、電話番号を登録したままにしておく必要があります。
パスワードレス認証の主な課題
パスワードは人間の記憶に依存し、デバイスに依存しません。一方、パスワード不要の取り組みでこれまで導入された認証方法はデバイスに依存しています。これにはいくつかの課題があります。
複数のデバイスを使用すると、使い勝手に関連するいくつかの問題が発生します。
- SMS 認証を使用して PC からログインする場合、ユーザーはスマートフォンに届いた SMS メッセージを確認する必要があります。ユーザーのスマートフォンがいつでも利用可能で、簡単にアクセスできる必要があるため、不便に感じる場合があります。
- FIDO では、特にプラットフォーム認証システムを使用する場合、複数のデバイスを使用しているユーザーは、未登録のデバイスで認証できません。使用するデバイスごとに登録する必要があります。
FIDO 認証は特定のデバイスに関連付けられているため、デバイスはユーザーの所有下にあり、アクティブである必要があります。
- サービス契約が解約されると、登録した電話番号に SMS メッセージを送信できなくなります。
- FIDO では、秘密鍵は特定のデバイスに保存されます。デバイスを紛失した場合、これらの鍵は使用できなくなります。
Yahoo! 日本は、これらの問題に対処するためにさまざまな措置を講じています。
最も重要な解決策は、ユーザーに複数の認証方法を設定するよう促すことです。これにより、デバイスを紛失した場合にアカウントに別の方法でアクセスできるようになります。FIDO キーはデバイスに依存するため、FIDO 秘密鍵を複数のデバイスに登録することもおすすめします。
また、WebOTP API を使用して SMS 確認コードを渡すことで、Android スマートフォンから PC 版 Chrome に SMS 確認コードを渡すこともできます。
パスワード不要の認証が普及するにつれて、こうした問題への対応がさらに重要になると考えられます。
パスワードレス認証の推進
Yahoo! JAPAN は 2015 年から、こうしたパスワードレスの取り組みに取り組んできました。2015 年 5 月に FIDO サーバー認定を取得し、その後、SMS 認証、パスワードの無効化機能、各デバイスの FIDO サポートを導入しました。
現在、3, 000 万人を超える月間アクティブ ユーザーがすでにパスワードを無効にし、パスワード以外の認証方法を使用しています。Yahoo! 日本での FIDO のサポートは Android 版 Chrome から始まり、現在では 1, 000 万人以上のユーザーが FIDO 認証を設定しています。
Yahoo! JAPAN の取り組みにより、ログイン ID やパスワードの忘れに関する問い合わせの割合は、そのような問い合わせの数が最も多かった期間と比較して 25% 減少しました。また、パスワード不要のアカウント数の増加に伴い、不正アクセスが減少したことも確認できました。
FIDO は設定が簡単なため、コンバージョン率が特に高くなります。実際、Yahoo! 日本では、FIDO の方が SMS 認証よりも CVR が高いことがわかりました。
25 %
認証情報の忘れたリクエストの減少
74 %
ユーザーが FIDO 認証に成功する
65 %
SMS 確認に合格する
FIDO は SMS 認証よりも成功率が高く、認証の平均時間と中央値が短くなります。パスワードについては、一部のグループの認証時間が短くなっています。これは、ブラウザの autocomplete="current-password"
が原因であると考えられます。
パスワード不要のアカウントを提供するための最大の難しさは、認証方法を追加することではなく、認証システムの使用を普及させることです。パスワード不要のサービスの使用がユーザー フレンドリーでない場合、移行は容易ではありません。
Google は、セキュリティを強化するにはまずユーザビリティを改善する必要があると考えており、そのためにはサービスごとに独自のイノベーションが必要になります。
まとめ
パスワード認証はセキュリティ上のリスクがあり、ユーザビリティの面でも課題があります。WebOTP API や FIDO など、パスワード以外の認証をサポートするテクノロジーが広く利用可能になった今、パスワードレス認証に向けて取り組む時が来ています。
Yahoo! 日本の例では、このアプローチがユーザビリティとセキュリティの両方に確実な効果をもたらしました。ただし、多くのユーザーが引き続きパスワードを使用しているため、Google は引き続き、より多くのユーザーがパスワード不要の認証方法に切り替えるよう促していきます。また、パスワード不要の認証方法のユーザー エクスペリエンスを最適化するため、プロダクトの改善も継続して行います。
写真提供: olieman.eth(Unsplash)