パスキーとしてYubikeyが使えない時と使える時
概要
私はYubikeyを持っています。
このYubikeyをパスキーとして、いくつかのWebサービスに登録しようとしたのですが、使えるサービスと使えないサービスがありました。
なぜ、使えたり使えなかったりするのか、私が調べた結果を書きます。
何が起きたのか
これまで、セキュリティを高める目的で、これまでYubikeyという物理セキュリティキー(以降、物理キーと表記)を2要素認証として使っていました。 物理セキュリティキーは、サービスなどによっては、外部キーなどと表記されることもあります。
あくまでも2要素認証ですので、ログイン時などにはパスワードとYubikeyの2つを用意する必要があります。
しかし、最近のWebサービスは、パスワードのいらない認証として、パスキーというものを使えるようになってきました。
パスキーでは、Yubikeyのような物理キーや、Windows、macOS、Android、iOSなどの機器上に認証のために必要な情報を保存して、利用します。
そのため、パスワードを覚える必要がなく、ログイン時に物理的なキーや機器を持っていることを証明して、認証するという仕組みです。もちろん、サービスによっては、パスワードとの併用も可能です。
今回、私がYubikeyを持っているということで、パスキーを使えるサービスについて、Yubikeyを使ってパスキーの登録を行いました。 しかし、使えるサービスと使えないサービスがありました。何が原因で、使えたり使えなかったりするのか、調べた結果を書きます。
原因
使えたり、使えないサービスがある原因は、パスキーの登録時のサービス側の設定によるものです。
パスキーの登録のための、JavaScriptのAPIについて説明したページのリンクを次に載せました。
https://developer.mozilla.org/ja/docs/Web/API/CredentialsContainer/create#authenticatorselection
このページによると、パスキーの登録時に、authenticatorSelection
というオプションを使って、登録時の条件を指定できます。ここで指定できる内容は、platform
と、cross-platform
の2つです。
これらは認証機と呼ばれる、認証に用いる機器の違いを表しています。
platform
は、機器上に認証のために必要な情報を保存して、利用する場合に指定します。
cross-platform
は、複数の機器で使いまわせる物理キーを使って認証する場合に指定します。
これらのオプションを指定しない場合は、両方とも認証に利用できます。
つまり、サービス側がauthenticatorSelection
オプションでplatform
を指定している場合は、Yubikeyのような複数の機器で使いまわせる物理キーを使ったパスキーの登録はできません。
しかし、指定していない場合は、Yubikeyのような物理キーを使ってパスキーの登録ができます。
パスキーを利用できるサービスでは、これらの設定によって、使える機器が異なるため、使えるサービスと使えないサービスがあると考えられます。
私の推測ですが、サービスによっては、セキュリティの観点から、物理キーを付け替えることで機器を問わずログインできることを防ぐため、このような設定になっていると思われます。
どうしても、物理キーでの認証をやりたい場合は、サービスのサポート窓口などに要望を出すことで、対応してもらえるかもしれません。
さいごに
この問題にぶつかった時は、私のYubikeyが壊れているのかと思いましたが、調べてみると、サービス側の設定によるものでした。
せっかく購入したYubikeyをパスキーとして使えないのは残念ですが、2要素認証のキーとして使えるサービスがほとんどですので、そちらで利用することにしています。