パスキーを体験してみよう!

パスキーを体験してみよう!

パスキーとは、パスワードに代わる簡単かつ安全な最新の認証方式です。

利用者のデバイスに保存される秘密鍵(本人だけがアクセスできる情報)と、サービス側に保存される公開鍵(誰でもアクセスできる情報)のペアを「パスキー」として使用し、顔認証や指紋認証などの画面ロック解除と同じ操作で簡単にログインでき、フィッシング攻撃に強いという特徴があります。

本記事では多くのサービスで導入が進んでいるこの「パスキー」について、Webで公開されているデモサイトを使って実際の動きを見てみましょう

パスキーを体験してみる

Webで公開されているパスキーのデモサイトを使って、実際にパスキーの動きを体験してみましょう。

本サイトの別コラム(こちら)を見ながら進めるとさらに理解が深まるかもしれません。

デモサイトについて

本記事で利用するデモサイトはGoogleの開発者向けサイトで公開されているサイトを利用します。

以下のURLにアクセスし「実際に試す」のセクションにあるリンクからデモサイトにアクセスしてください。
https://developers.google.com/identity/passkeys?hl=ja#demo

このデモサイトはユーザー登録不要かつ登録時に必要なパスワードはダミーのものになりますが、パスキーについては基本的な操作をしっかり体験できるデモサイトとなっています。

事前準備(iOS 端末の場合)

用意するもの

  • iPhone(iOS バージョン 16 以降)
  • Apple Account(以前の名称:Apple ID)
  • ブラウザ(Safari)

事前に設定すること

  • iCloudキーチェーンを有効にする。
    ※ 「iCloudキーチェーン」とは、Appleのクラウドサービスで、ユーザーのパスワードやクレジットカード情報を安全に保存し、デバイス間で同期する機能です。iCloudキーチェーンでは生体認証情報を取得しAppleのサービスに送信することはありませんが、iCloudキーチェーンのデータを保護するために端末の中だけで生体認証が使用されます。
    参考:iCloud キーチェーンを設定する - Apple サポート (日本)
  • 画面ロック解除用のパスコードおよびFace ID(またはTouch ID)を設定する。

パスキーの登録

  1. iPhoneでブラウザ(Safari)を起動しデモサイトにアクセスします。
      
  2. username に適当なユーザー名を入力し、「Next」をタップします。
    (注意事項)
    ここでのユーザー名は任意の文字列で良いですが、なるべく個人情報を含まないものでかつ他の利用者と被らなそうなものを入力しましょう。
      
  3. パスワード入力画面に遷移するので、適当なパスワードを入力して「Sign-in」をタップします。
    ※このデモサイトでは、パスワードは無視されます。
      
  4. ログイン後の画面に遷移するので、「Create a passkey」をタップします。
      
  5. Face IDを使用してサインインしますか?」と表示されるので、「続ける」をタップし、Face IDを実施してパスキーを登録してください。

    (解説)
    この手順でFace IDを使った認証が成功すると端末のセキュア領域へのアクセスが可能となり、作成されたパスキーのうち秘密鍵とメタデータ情報(ユーザー名やサービスのドメイン情報等)が端末に保管されます。
    端末に秘密鍵が保管されると、iCloudキーチェーンによってiCloudにも暗号化された秘密鍵を保存します。
    秘密鍵がiCloudに保存されることによって、同じApple Accountでログインしている他の端末でもパスキー認証を利用できるようになります。
  6. パスキーの登録が完了し、画面に登録済みのパスキーが表示されます。

    (解説)
    登録が完了すると、サービス側にパスキーの公開鍵が保管され、パスキーを使ってのログインが可能となります。

パスキーの確認

iOSの標準機能の「パスワード」アプリを使うと端末に保管されているパスキーを確認できます。
パスワードと同じように、どのWebサイトのパスキーなのか、どのユーザーのパスキーなのかといった情報に加えて、いつ作成されたパスキーなのかを確認できます

パスキーを使っての認証・ログイン

  1. パスキーの登録が完了した画面からの続きで操作します。
  2. Sign out」ボタンをタップします。
  3. ログイン画面が表示されるので「Use one button sign-in instead」をタップします。
     
  4. Sign-in with passkey」をタップします。
     
  5. Face IDを使用してサインインしますか?」のダイアログが表示されるので、「続ける」をタップし、Face IDでの認証を実施します。

    (解説)
    ここでFace IDを使った認証が成功すると端末のセキュア領域へのアクセスが可能となり、端末保管されているパスキーの秘密鍵(サービスのドメインに紐づけられています)を利用できるようになります。
    取り出した秘密鍵を利用してサービスからの認証要求に署名を実施し、サービス側では登録時に保管した公開鍵を使って署名検証をすることで認証を行います。
  6. ログイン後の画面が表示されます。

ここまでが、通常のパスキー認証の動きになります。

ここから先は、先ほど登録したパスキーを使って他の端末で認証する動きを体験します。

別のiOS端末でパスキー認証

ここでは、先ほどまでのiOS端末とは別のiOS端末(iPad等iPadOSの端末でも可能です)を利用してパスキー認証をします。

事前準備として先ほどまで操作していた端末と同じApple Accountで別のiOS端末にログインし、iCloudキーチェーンを有効にしてください。

  1. 別のiOS端末でブラウザ(Safari)を起動してデモサイトにアクセスします。
  2. Use one button sign-in instead」をタップします。
     
  3. Sign-in with passkey」をタップします。
     
  4. Touch IDを使用してサインインしますか?」のダイアログが表示されるので、画面の指示に従ってTouch IDでの認証を実施します。

    (解説)
    ここで利用する秘密鍵は、iCloudキーチェーンを使って1台目のiPhone端末から同期された秘密鍵です。
    先ほどパスキーを登録した別端末からiCloud経由でこの端末にパスキーが同期されています。
  5. ログイン後の画面が表示されます。

Windows端末でQRコードを使ったパスキー認証

ここからは、先ほどiOS端末で作ったパスキーを使って、Windows端末(パソコン)でパスキー認証をします。

事前準備として、先ほどまで利用していた iOS端末と物理的に近い距離にある Windows端末(Windows10 または Windows11)と、その Windows端末で動作する Chromeブラウザを用意してください。
また、用意したWindows端末および先ほどまで利用していたiOS端末のBluetooth通信をONにしてください。

  1. Windows端末でブラウザ(Chrome)を起動しデモサイトにアクセスします。 
  2. Windows端末で「Use one button sign-in instead」をクリックします。
     
  3. Windows端末で「Sign-in with passkey」をクリックします。
     
  4. Windows端末のブラウザ上に表示されるダイアログで「スマートフォン、タブレット、またはセキュリティキーを使用する」をクリックします。
     
  5. QRコードが表示されるので、先ほどまで利用していたiOS端末のカメラアプリで読み取り、「パスキーでサインイン」をタップします。
     
     
  6. iOS端末で「Face IDを使用してサインインしますか?」のダイアログが表示されるので、「続ける」をタップし、Face IDでの認証を実施します。
    この間、Windows側のブラウザには「デバイスに表示される手順に沿って操作してください」と表示されます。
     
     
    (解説)
    ここでiOS端末側の認証が成功すると対象のサービスへの認証が完了したことがBluetooth通信でiOS端末からWindows端末に共有されます。(パスキー/秘密鍵は共有されません。)
    Windows端末では認証結果を受け取り、サービスに認証結果を送ることで認証をします。
  7. Windows側のブラウザでログイン後の画面が表示されます。
     

パスキーを利用するためには

パスキーを活用するためには、パスワードマネージャーを有効にする必要があります

さらに、他のデバイスにも同期してパスキーを使いたいといった場合にはGoogle アカウントApple Accountを使ってクラウドに秘密鍵を同期します。(もちろん暗号化された状態で保管されます。)
パスキーが同期されていれば端末の故障や買い替えなどで新しい端末になった場合でも再登録なしでパスキー認証が可能となります。

また、最近 Google パスワードマネージャーが異なるOS間でのパスキー同期に対応することを発表しました。
これによって Android と Windows など異なるOSでもパスキーをクラウド経由で各端末に同期し、さらに利便性が向上するでしょう。

さらに、ブラウザやOSに依存しないパスワードマネージャー(Keeper、1Password、LastPassなど)もパスキーへの対応を始めています。
特に企業内でパスキーを利用する場合は、このブラウザやOSに依存しないパスワードマネージャーでパスキーを管理するのも良いでしょう。

おわりに

パスキーについて、デモサイトを利用して実際の動きを確認しながら解説しました。

パスキーはまだまだ新しい技術で、これからもどんどんアップデートされていくものとなっています。

NTTテクノクロスのパスキー認証サービス「PASUTTO」はパスキーをサービスに簡単に組み込めるサービスです。
パスキーを自社のサービスに組み込みたいとお考えの方は NTTテクノクロス までお問い合わせください。

合わせて読みたい