こんにちは!IDチームのたつみんです。
今年の「世界パスワードデー」である5月5日にApple、Google、Microsoftが共同で発表したPasskeyの取り組みが話題になったことを覚えている人も多いのではないでしょうか。
このPasskeyがiOS16で利用可能となったので早速Oktaでどのような挙動となるかを試してみました。
Passkeyとは
はじめにざっくりとしたPasskeyの概要について触れておきます。
簡易な表現をすると、PasskeyはFIDO AllianceによるFIDO (WebAuthn )という標準規格で作成したキーをマルチデバイスで利用できるよう応用したものだと言えます。
これまでFIDOは以下のような課題があり、あまり一般的な認証要素とは言えませんでした。
- Yubikeyに代表されるようなセキュリティキーを導入するハードル
- Apple Face ID/Touch IDやWindows Helloという端末から取り外せないという要素であり別の端末では新たな登録が必要であるというハードル
PasskeyはFIDOをマルチデバイス対応させることで利便性を上げてパスワードレスをより推し進めていくものです。
ちなみにPasskeyはニックネームのようなもので正式な名称ではないようです。
FIDO Allianceとしてはマルチデバイス対応FIDO認証資格情報という呼び方をしているようですが、このブログ記事の中ではPasskeyで統一します。
詳細については以下のFIDO Alliance発行のホワイトペーパーを是非ご参照ください。
Passkey登録方法
ここではiOS 16を搭載したiPhoneでOktaの認証要素としてPasskeyを追加する動画をご覧ください。
時系列に沿って簡単な解説をします。
0:00〜0:10
既に利用中のアカウントであるためOktaのエンドユーザー向け設定画面から、「Security key or Biometric」から「さらに設定する」をタップしています。
0:10〜0:22
新しい認証要素を設定するためには、すでにセットアップ済みの認証要素を利用する必要があるため、今回はOkta VerifyのPush通知を利用しています。
0:22〜0:31
Passkeyのセットアップ部分です。iPhoneのFace IDで登録するだけで実行ができます。
0:37
Security key or Biometricに2つ目のAuthenticatorが表示されていることがわかります。ちなみに1つ目は登録済みのYubikeyを指しているものと思います。
登録後のログイン操作
次にログイン時の挙動についてです。こちらもまずは動画をご覧ください。
時系列に沿って簡単な解説をします。
0:00〜0:05
サインアウト処理
0:05〜0:14
サインイン処理の開始
前回ログイン時に利用したOkta Verify Push通知がデフォルトで選択されていますが、ここでは「他の方法で確認する」をタップしています。
0:14〜0:20
セキュリティキーまたは生体認証システムをタップし、進めています。
0:20〜0:30
Passkeyを利用した認証の処理の実行
Passkeyについて気になる点
PasskeyはiOS 16で登録した場合はiCloud キーチェーンに保存され同じApple IDを利用している端末に同期されます。
このブログ記事を執筆中の2022.09.20時点ではmacOS Venturaはリリースされておらず、macOS MontereyのSafariではiCloud キーチェーンに保存されたPasskeyを利用することはできないようです。
また、Chromeブラウザ上では「新しいAndroidスマートフォンを追加」という選択肢からQRコードをPasskey登録済みのiPhoneで読み込むことで認証を実施することができます。
この時、デスクトップ端末とiOS 16搭載端末ではBluetoothを利用し物理的な近傍性によりフィッシング耐性があることを担保しているようです。
このブログ記事では主にiOS 16に焦点を当てていますが、PasskeyがiCloud キーチェーンに保存されることについて少し気になるところです。
この疑問を解消するためかAppleは以下のドキュメントを公開しています。
Passkeyの今後について気になる点
現時点ではPasskeyはiOS 16、iCloud キーチェーンといったプラットフォームであれば機能をフルに利用できる状態ですが、今後対応予定であるGoogle、Microsoftの動きにも注目しています。これらのプラットフォーマーが出揃った時にPasskeyをどのプラットフォームのクラウド上に保存し、どの端末にどのように同期するのか?という部分について情報を集めて、最適解を探っていく必要がありそうです。
さらに、パスワードマネージャーであるLastPassや1PasswordがFIDO Allianceのメンバーとして加入しているため、Passkeyの保存先となる未来も来るのではないかと思います。
前述のとおりプラットフォーマー同士で保存されたPasskeyを相互に利用できるのどうか?また保存されたPasskeyへのアクセスをどのように守っていくのかについても考えていく必要がありそうです。
ただし、これらはそれぞれのユーザーの選択に委ねられてしまう部分が大きいのではないかと感じています。
Oktaの認証用途としてみた時のPasskey
冒頭の動画のようにPasskeyはOkta FastPassと同様にユーザーフレンドリーでパスワードレスを実現するひとつの有効な手段のように見えます。
1つのデバイスで登録すればiCloud キーチェーンを通じて他の端末でも利用できる点はFastPassにはない大きなメリットですが、前述した通りプラットフォーマー間の相互連携については未知数である点が気になります。
OktaでPasskeyを利用すべきかどうか?
Okta Identity EngineでDevice Trustを構成している場合は、Okta VerifyによるFastPassの利用が必須となり、結局はPasskeyではなくFastPassを推進していくことになります。
そのため、Passkeyについては強く推奨するモチベーションがないというのが私個人の正直な感想です。
また、Passkeyがクラウド上に保存されさまざまなデバイスから利用できることについて組織によってはあまり好ましく感じない場合やPasskeyについてまだ慎重に判断をしたいという場合もあると思います。
OktaではPasskeyを明示的にブロックするオプションがEarly Accessとしてリリースされています。必要に応じて、以下のドキュメントを参考にブロックの有効化をしておくといいでしょう。
おまけ
Okta利用していないよって方でPasskeyについてどのような挙動になるか確認したい場合は、iOS 16などのPasskey対応デバイスを準備し、以下のテストサイトを利用することで確認が行えます。