こんにちは! 社内認証関係のプロダクトに携わっている江川達翔と申します。
今回の記事では社内認証系プロダクトの中でも「パスワードレス認証」に関するものを紹介いたします。
ヤフーは多くのユーザー向けサービスを展開していますが、社内向けシステムも1000個近く存在しています。社員は日々の業務のため社内向けシステムを利用しますが、1000個それぞれに別々の認証がかかっていては大変なのでSSO(シングルサインオン)でログインできるようになっています。そして、SSO時の認証手段の一つとして、パスワードレス認証を選択できるように整備しています。
本記事では「社内にパスワードレス認証を導入する」という観点で、「何が、誰が嬉しいのか?」「何が難しくてどう解決するのか?」といったことをご紹介します。「社内にパスワードレス認証を導入したい!」と考えている方や、「興味はあるけど実際どうなんだろう?」と疑問に思っている方の参考になれば幸いです。
用語解説
本記事内で登場する専門用語について、簡単な解説をまとめました。適宜ご参照ください。
用語 | 解説 |
---|---|
FIDO2 | パスワードレス認証に関する標準仕様の名称。 「Fast IDentity Online」の略称。 |
署名 | 秘密鍵を使ってデータの改ざんを防ぐ仕組み。 |
秘密鍵 | 他人に知られてはいけない秘密情報。 認証時の署名に用いる。 |
公開鍵 | 秘密鍵と対になる公開情報。 秘密鍵で署名されたデータが改ざんされていないか検証するために用いる。 |
公開鍵暗号方式 | FIDO2のベースとなっている仕組み。 「秘密鍵で署名した本人性確認のためのデータを、サーバーに登録済みの公開鍵で署名検証する」ことで安全性を担保する。 |
認証器 | パスワードレス認証のためにユーザーが使用する機器/機能。 公開鍵/秘密鍵の生成、秘密鍵の保管、認証時の署名などを行う。 |
プラットフォーム認証器 | 認証器のうち、パソコンやスマートフォン端末を認証器として利用できるもの。 対して、認証器専用の機器は「外部(ローミング)認証器」と呼ばれる。 |
FIDO2サーバー | 認証器が生成した公開鍵を保存する、認証時に本人性確認のためのデータをクライアントに送信、 認証器で署名されたデータをクライアントから受け取り署名検証するなどの機能を有したサーバー。 |
パスワードレスとは
「パスワードレス」とは言葉通り「パスワードが要らない」という意味です。パスワードにはたいてい「英数字・記号を含む8文字以上の複雑な文字列にしてください」「一年ごとに変更をしてください」といった煩わしい制約が存在します。利用者にしてみれば毎回違うパスワードを考えたり覚えたりするのは負担ですし、結局簡単なものや同じようなパスワードを使いまわしがちになり、管理者としても望んだ結果ではないという問題があります。パスワードレスはそういった煩わしさから利用者・管理者双方を解放します。
ヤフーの社内認証事情
ヤフーには一万人を超える社員が在籍しており、毎日一回以上認証の機会があります。
社員が社内ツールにアクセスすると、まずはじめに共通の入口である内製の社内認証基盤へとリダイレクトされます。そこで社員は実際のログイン手段として以下の三種類の認証方式から選択します(図1)。
- 社内ID/パスワード認証
- 社内パスワードレス認証
- 社外認証基盤SSO(ID/パスワード認証)
図1. ヤフーの社内認証事情
このように社内・社外の認証方法との繋ぎこみ部分を内製することで、新しい認証方式を取り入れたり実験するといったことがしやすい構成になっています。
パスワードレス認証が社内で使えると何が/誰が嬉しい?
パスワードレス認証の標準仕様である「FIDO2」は、公開鍵暗号方式に基づいた仕様で、大まかに
登録時: 認証器で公開鍵/秘密鍵を生成、FIDO2サーバーに公開鍵を登録
認証時: FIDO2サーバーから送られてくるランダム文字列に認証器の秘密鍵で署名、FIDO2サーバーに登録済みの公開鍵で署名検証
という流れになっています。この仕組み上、
- 秘密情報(秘密鍵)がサーバーに送信されない(署名したデータだけ送信される)
- フィッシング耐性がある(登録される鍵は「ドメイン:秘密鍵=1:1」の関係)
など、従来の認証方式に比べてとてもセキュアです。FIDO2仕様の詳細に関して本記事での紹介は割愛しますが、概要・実装それぞれの参考記事が過去Blogにありますので、ご興味のある方は併せてご覧ください。
- 「安全・安心・便利」FIDO(ファイド)を使ったパスワードレスログインとは - Corporate Blog
- Yahoo! JAPANでの生体認証の取り組み(FIDO2サーバーの仕組みについて) - Yahoo! JAPAN Tech Blog
これだけでもパスワードレス認証を選択する理由としては十分ですが、それ以外にも利用者・管理者にとって嬉しいポイントがいくつかあります。
以下、それぞれの視点で詳しく見ていきます。
利用者: 認証体験がスムーズ&高速化
利用者にとって、パスワードレス認証はその他の認証方式に比べて「スムーズに認証を行える」ことが嬉しいポイントとして挙げられます。
- 指紋・顔といった生体を用いることができる
- タッチするだけ・カメラを見るだけで良い
といったパスワードレス認証の特徴は、認証にかかるコストを少なくします。パスワードを覚えておく必要もタイピングする必要もありませんし、認証コードを別端末で受け取って入力する必要もありません。毎日行う認証において、そのコストが少なくて済むのは利用者にとってメリットだと思います。
感覚的なコスト低減だけでなく認証にかかる時間も短くなります。実際に、社内認証手段三種類の「認証種別ごとの認証完了までの平均時間」を計測してみたところ、パスワードレス認証にかかる時間が一番短いことがわかりました(図2)。
図2. 認証種別ごとの認証完了までの平均時間
社内認証だけでなく、ヤフーのサービスにおいても同様の計測が行われており、やはりパスワードレス認証にかかる時間が短いという結果になっています。サービス側の検証結果については以下からご覧いただけます。
WebAuthnを用いたパスワードレス生体認証のユーザビリティ調査 - Yahoo! JAPAN Tech Blog
これだけでもスムーズだと言えるパスワードレス認証ですが、社内認証チームでは社員からの「認証のための入力・クリック操作が面倒」という声を受け、さらにスムーズにできるよう実装した機能が二つあります。
一つ目が、「ユーザー名の自動保存」です。一度ユーザー名入力フォームに入力したユーザー名は、ブラウザの記憶領域(localStorage)に保存するようになっており、二回目以降の認証時にはユーザー名が入力された状態でページが開けるようにしています。
そして二つ目が「認証ポップアップの自動呼び出しオプション」です(図3)。上述のユーザー名が入力状態になっていれば、あとはログインボタンを押すだけなのですが、それすらせずとも自動で認証ポップアップが表示されるようにできます(図4)。
図3. 認証ポップアップ自動呼び出しオプションはチェックでon/offできます
図4. 認証ポップアップ
認証ポップアップ自動呼び出しオプションを有効にすると、フローチャートの赤点線内のフローで認証を行うことができ、非常にスムーズです(図5)。
私自身普段からMacのTouchIDを認証器として登録して利用していますが、上記二つの組み合わせにより「認証ページへリダイレクトされたらTouchIDを触るだけ」で認証が完了するので、とても簡単にログインできている感覚があります。
図5. 認証フロー
また注意点として、認証ポップアップの自動呼び出しについて、Safariのプラットフォーム認証器では動作しません。理由としてSafariでは認証の起点として、クリックなどの「ユーザーの操作」が必須となっているためです。このため、社内認証チームでは「Safariからのリクエストかどうか」で認証ポップアップ自動呼び出しオプションのチェックボックスを出し分けるようにしています。
管理者: 登録可能な認証器を簡単に制御
利用者視点でも良いことが多いパスワードレス認証ですが、管理者にとっても良い点があります。それは「登録可能な認証器の制御が容易」であることです。
パスワードレス認証はセキュアですが、管理者側で把握できていない認証器を利用者に自由に登録されてしまっては、セキュリティレベルを担保しづらくなります。詳細は後述しますが、社内認証チームでは「登録を受け入れる認証器のリスト」を管理して、リストに含まれていない認証器は登録できないような処理を実装しています。
社内認証ならではの難しさと解決策
セキュアなだけでなく、利用者・管理者にとって嬉しいポイントがいくつもあるパスワードレス認証ですが、社内認証の手段として組み込む上で考慮した点を二つご紹介します。「認証器紛失/盗難時のリスク」と「全社員に認証器を配布するコスト」です。以下、それぞれの詳細と社内認証チームにおける解決策を見ていきます。
難しさ1. 認証器紛失/盗難時の「リスク」
人はどうしても物を無くしてしまったりしますし、そうでなくても誰かに盗まれてしまうこともあるかもしれません。認証器には秘密情報が格納されており、ある意味パスワードを持ち歩いているようなものなので、無くしてしまったときの社内認証におけるリスクについて考慮する必要があります。外部認証器はUSBメモリのような形状・大きさのため可搬性に優れており、操作性も接続してタッチするだけなど良いものが多いです。しかし業務用パソコン/スマートフォン等の端末に比べるとどうしても紛失・盗難のリスクが高まってしまう問題があります。
実際に盗まれてしまったとして、盗んだ人がその認証器を使って元の持ち主として認証を突破しようとした時、認証器にPINロックが設定されていればいったん弾かれることになると思います。しかし、現状PINの試行回数を制限する手立てはありません。何度も何度もPINを試行しているうちに、認証を突破してしまう可能性があります。
難しさ2. 全社員に認証器を配布する「コスト」
上記のようなリスク回避目的以外にも、社内認証に導入する上ではあらかじめ全社員に認証器を配布する必要があり、そのための「コストの問題」があります。
認証器製品は一つあたり数千円から一万円前後のものまであります。導入するにあたり予算を組んで、専用の認証器を購入する方法もありますが、実験的に導入して様子を見たい場合にはやや大きい負担と言えます。
解決策. 業務用貸与端末の存在を活かす
上記で紹介したリスク・コストの問題をクリアするにあたり、社内認証チームでは「外部認証器」ではなく、パソコン・スマートフォン端末を認証器として利用する「プラットフォーム認証器」の導入から始めることにしました。
弊社では幸い、全社員に対して業務用iPhoneとパソコン(Mac or Windows)が貸与されています。それら貸与端末で使用できるTouchID/FaceID、Windows Helloといった生体認証機能を、認証器として登録できるように制御をしています。
貸与端末は外部認証器と比べて物理的にも大きく「紛失・盗難リスク」も少ないですし、既に貸与されているので「新たに認証器を配布するコスト」もかかりません。
ちなみに、認証器の種類は認証器が持っている構成証明情報内の識別子をもとに判定できます。管理者側としては、登録受け入れ識別子リストを作って制御を実装すれば、容易にコントロールできます。今後、「生体等で本人確認できる外部認証器も登録可能としたい!」となった際は、登録受け入れ識別子リストに対象認証器の識別子を追加するだけで済むなど、管理コストも低く抑えることができています。
対応認証器とその利用状況
各認証器の登録数・利用状況は以下のようになっています(図6)。現在、Google Chromeで利用できるTouchID、Windows Hello、そして昨年Safariに実装されたプラットフォーム認証器の三種類に対応しています。Safariのプラットフォーム認証器は全社員が所有している貸与iPhoneから利用できることから、MacのTouchIDの次に多く登録・利用されています。私自身も、iPhone上で社内認証のかかったサイトを閲覧する際はFaceIDを使ったログインを愛用しています。
図6. 認証器の種類別登録数
おわりに
ヤフーの社内認証ではパスワードレス認証を使うことができます。
FIDO2仕様に沿っているため従来のパスワード認証などに比べてもセキュアであり、また利用者にとっては認証体験の向上、管理者にとっても管理がしやすいといった、双方にとってメリットがあることを紹介いたしました。
社内認証にパスワードレス認証を導入するのは外部認証器の配布コストや、盗難紛失のリスクがありハードルが高く感じるかもしれません。しかし、昨年からiPhoneでもFIDO2が使えるようになり、主要プラットフォームほぼすべてにおいてプラットフォーム認証器が利用できるようになった今、パスワードレス認証を選択肢の一つとして検討するハードルは下がっていると感じます。
今後の展望として、社内のパスワードレス認証普及率のより一層の向上を目指し、社内ツール開発者向けに開発・運用している「新社内認証基盤とパスワードレス認証の繋ぎこみ」の実現など、「パスワードレス認証は安全で、便利なのでぜひ使いたい!」とより多くの社員の方に思ってもらえるよう努めていきたいと考えています。
今回ご紹介したような認証周りの課題解決をしていく仲間も募集中ですので、興味を持たれた方はぜひ以下リンクもご覧ください!
https://about.yahoo.co.jp/hr/job-info/role/1269/
それでは、良いパスワードレスライフをお送りください!
参考リンク
こちらの記事のご感想を聞かせください。
- 学びがある
- わかりやすい
- 新しい視点
ご感想ありがとうございました
- 江川 達翔
- セキュリティエンジニア