Yahoo! 日本はパスワード不要の ID システムを構築しました。
Yahoo! JAPAN は、検索、ニュース、e コマース、メールなどのサービスを提供する、日本の大手メディア企業の 1 つです。5,000 万人以上のユーザーが Yahoo!JAPAN サービスに対して毎月請求されます。
これまで、ユーザー アカウントに対する攻撃や、アカウントへのアクセスを失う問題が数多く発生してきました。これらの問題のほとんどは、認証でのパスワードの使用に関連していました。
認証技術の進歩に伴い、Yahoo!JAPAN は、パスワード ベースの認証からパスワードレス認証に移行することを決定しました。
パスワード不要にする理由
Yahoo!JAPAN は電子商取引やその他の金銭関連サービスを提供しているため、不正アクセスやアカウントの紛失が発生した場合、ユーザーに重大な損害が発生するリスクがあります。
パスワードに関連する最も一般的な攻撃は、パスワード リスト攻撃とフィッシング詐欺でした。パスワードリスト攻撃が一般的で効果的である理由の一つは、多くの人が複数のアプリケーションやウェブサイトで同じパスワードを使用している習慣があるためです。
次の図は、Yahoo! が実施した調査の結果です。JAPAN。
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 は、ハードウェア認証システムを使用して公開鍵暗号ペアを生成し、所有権を証明します。認証者としてスマートフォンを使用する場合、生体認証(指紋認証センサーや顔認識など)と組み合わせて 1 段階の 2 要素認証を行うことができます。この場合、生体認証からの署名と成功の指示のみがサーバーに送信されるため、生体認証データの盗難のリスクはありません。
次の図は、FIDO のサーバー クライアント構成を示しています。クライアント認証システムは生体認証でユーザーを認証し、公開鍵暗号を使用して結果に署名します。署名の作成に使用される秘密鍵は、TEE(Trusted Execution Environment)または同様の場所に安全に保存されます。FIDO を使用するサービス プロバイダは RP(リライング パーティ)と呼ばれます。
詳細については、FIDO アライアンスの認証ガイドラインをご覧ください。
Yahoo! JAPAN は、Android(モバイルアプリとウェブ)、iOS(モバイルアプリとウェブ)、Windows(Edge、Chrome、Firefox)、macOS(Safari、Chrome)で FIDO をサポートしています。一般ユーザー向けサービスである FIDO は、ほぼすべてのデバイスで使用できるため、パスワードレス認証を促進するのに適しています。
Yahoo! 日本のユーザーは、他の方法で認証されていない場合は、WebAuthn を使用して FIDO に登録することをおすすめします。ユーザーが同じデバイスでログインする必要がある場合は、生体認証センサーを使用してすばやく認証できます。
ユーザーは、Yahoo! にログインするために使用するすべてのデバイスで FIDO 認証を設定する必要があります。日本
パスワード不要の認証を推進し、パスワードから移行するユーザーに配慮するために、Google では複数の認証方法を提供しています。つまり、ユーザーによって認証方法の設定が異なり、使用できる認証方法はブラウザごとに異なる可能性があります。Google では、ユーザーが毎回同じ認証方法でログインすると、ユーザー エクスペリエンスが向上すると考えています。
これらの要件を満たすには、以前の認証方法を追跡し、この情報を Cookie などの形式で保存してクライアントにリンクする必要があります。これにより、さまざまなブラウザやアプリケーションがどのように認証に使用されているかを分析できます。ユーザーの設定、以前に使用した認証方法、必要な最低レベルの認証に基づいて、適切な認証を提供するよう求められます。
2. パスワードの無効化
Yahoo! 日本では、代替の認証方法を設定し、パスワードを無効にして使用できなくするようユーザーに求めています。代替認証を設定するだけでなく、パスワード認証を無効にすることで(パスワードのみでログインできなくなるようにすることで)、リストベースの攻撃からユーザーを保護できます。
パスワードを無効にするようユーザーに促すために、Google は次の手順を講じています。
- ユーザーがパスワードをリセットする際に、代替の認証方法を促す。
- 使いやすい認証方法(FIDO など)を設定し、認証を頻繁に行う必要がある状況ではパスワードを無効にするよう、ユーザーに促します。
- e コマース決済など、リスクの高いサービスを使用する前にパスワードを無効にするようユーザーに促す。
ユーザーがパスワードを忘れた場合は、アカウント復元を実行できます。以前は、パスワードのリセットが必要でした。ユーザーは別の認証方法を設定できます。Google では、別の認証方法を設定することをおすすめします。
3. パスワード不要のアカウント登録
新規ユーザーは、パスワード不要の Yahoo!JAPAN のアカウントでご利用いただけます。ユーザーはまず SMS 認証で登録する必要があります。ユーザーがログインしたら、FIDO 認証を設定することをおすすめします。
FIDO はデバイスごとの設定であるため、デバイスが動作しなくなった場合にアカウントを復元するのが難しい場合があります。そのため、追加の認証を設定しても、電話番号を登録したままにしておく必要があります。
パスワードレス認証の主な課題
パスワードは人間の記憶に基づいており、デバイスに依存しません。一方、パスワード不要の取り組みでこれまで導入された認証方法はデバイスに依存しています。これにはいくつかの課題があります。
複数のデバイスを使用すると、使い勝手に関連するいくつかの問題が発生します。
- SMS 認証を使用して PC からログインする場合、ユーザーはスマートフォンで着信 SMS メッセージを確認する必要があります。ユーザーのスマートフォンがいつでも利用可能で、簡単にアクセスできる必要があるため、不便に感じる場合があります。
- FIDO では、特にプラットフォーム認証システムを使用する場合、複数のデバイスを使用しているユーザーは、未登録のデバイスで認証できません。使用するデバイスごとに登録を完了する必要があります。
FIDO 認証は特定のデバイスに関連付けられており、ユーザーがデバイスを持ち、アクティブ状態にある必要があります。
- サービス契約が解約されると、登録した電話番号に SMS メッセージを送信できなくなります。
- FIDO では、秘密鍵は特定のデバイスに保存されます。デバイスを紛失した場合、これらの鍵は使用できなくなります。
Yahoo! JAPAN はこうした問題に対処するためにさまざまな措置を講じています。
最も重要な解決策は、ユーザーに複数の認証方法を設定するように促すことです。これにより、デバイスを紛失した場合にアカウントに別の方法でアクセスできるようになります。FIDO キーはデバイスに依存するため、FIDO 秘密鍵を複数のデバイスに登録することもおすすめします。
または、ユーザーは WebOTP API を使用して、SMS 確認コードを Android スマートフォンから PC の Chrome に渡すこともできます。
パスワード不要の認証が普及するにつれて、こうした問題への対応がさらに重要になると考えられます。
パスワードレス認証の推進
Yahoo! JAPAN は 2015 年から、このようなパスワードレスの取り組みに取り組んできました。 2015 年 5 月の FIDO サーバー認証の取得に始まり、その後、SMS 認証、パスワード無効化機能、各デバイスの FIDO サポートが導入されました。
現在、1 か月のアクティブ ユーザーが 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)