パスキーってご存知ですか?
パスキーとは、FIDO(ファイド)アライアンスとW3Cが共同で規格化した、パスワードが不要な認証技術です。
パスキーは、パスワードを必要としないため、フィッシング攻撃などによって攻撃者に盗まれることで被害に直結しやすいパスワード認証に比べて、攻撃に対する耐性が非常に高くなります。
また、パスキーによる認証ではユーザ側のデバイス上で生体認証などのローカル認証が必須ですが、秘密情報となる生体情報などはネットワークに送られないため、ユーザのプライバシーも守られて安全です。
現在ほとんどの方が、ブラウザにて一度入れたID&PASSは、次回以降ブラウザ側で保存されたID&PASSでスルーでログインしていませんでしょうか?
いくらパスワードを複雑に分かりにくくしたところで、ブラウザの簡単な操作でID&PASSはすぐに分かりますし、実際スマホやPCを仮に盗まれた場合、全てログインできてしまうことになってしまいます。
パスキーというのは、そもそものパスワードの管理を必要としないログイン方法になります。
Googleが既に対応しているので、私も設定してみました。
スマホで、Googleアカウントから、セキュリティの項目、パスキーの箇所をクリックすればそれで設定完了です。
次回以降は、生体認証でGoogleにログインするようになります。
既に、顔認証や指紋認証があらゆるサイトで進んでいるので、パスキーに変更したところで、違和感はないかと思います。
パスキーをチェックするのは、OSやブラウザの役目であるので、従来のパスワードのようにアプリ側で入力欄を偽装することもできず、不正アクセスを防ぐことができます。
これからあらゆるログイン方法が、パスキーに変わっていく流れになると思っています。
考察として・・・
※プライバシー
ウェブサイトでいきなり生体認証が求められた時、この指紋なり顔なりの情報がどこに行くのか、疑問に思うエンドユーザーは少なくないと思います。特にこのパスキーが普及し始め、ユーザーが慣れないうちは、指紋の情報や顔の情報をが集められ監視されるかもしれないとか、サービスがハックされて漏れたら悪人の手に渡ってしまう、といった恐怖を感じるのはごく自然なことだと思います。
FIDO では、生体情報は認証器となるデバイスに保存し、サーバーなどに送信してはならないというきまりがあるので、少なくとも FIDO Certified な認証器を使う限り (Android はこれに含まれます。iPhone もおそらく含まれますが、ソースを見つけられませんでした。)、これは守られる原則ですので安心して良いと思います。
また、パスキーを作成してサービスに渡される情報は、公開鍵とクレデンシャル ID というどちらもサイトごとに払い出される、それ自体意味を持たないバイト列です。クレデンシャル ID は認証する際に使える認証器を制限したり、サーバーが認証した署名と一致する公開鍵を探す際に使用します。公開鍵は認証時に送られてくる署名を検証するために使われます。ですので、ユーザーのメールアドレスや名前などの個人情報と組み合わせて登録しない限り、パスキーでサイトを跨いでユーザーをトラッキングするようなことはできないです。
パスキーは、特に初期はエンドユーザーにとって心理的ハードルが高い認証方法かもしれないので、サービス提供側はそれに寄り添った安心材料をしっかり用意してあげる必要があるのではないかと思っています。
※パスキーの同期は正しいことなのか
FIDO は公開鍵暗号方式を使った所有認証が基本です。認証器に物理的にアクセスできない限り、認証を突破するのは難しいというのがポイントだったのですが、パスキーはこれを同期可能にし、複数端末で利用可能にしています。この点について、NIST SP800-63B で定義されている AAL3 (Authenticator Assurance Level 3) から外れてしまうという懸念が挙げられます。
とはいえ、じゃあデバイスと固く紐付いたクレデンシャル以外を認めないと、新しいデバイスに移行する場合、
・クレデンシャルを作ったすべてのアカウントを移行しなければならない
・FIDO 以外のフィッシングに弱い方法で新しい端末にログインしなければならない
といった問題があります。
パスワードを使い続けるのは論外として、利便性も悪くフィッシングに弱い認証方法を残さざるをえない従来の FIDO クレデンシャルと、利便性は高いがリスクが若干増してしまうパスキーと、どちらを選ぶべきかという話になります。ここはニーズで使い分けるのがベストではないかと思っています。
例えばソーシャルメディアやニュースアプリのような、コンシューマ向けのサービスであれば、アカウントが乗っ取られたとしても経済的被害はそれほど甚大ではないため、パスキーの利便性を取る方が懸命でしょう。
逆に機密情報を扱うエンタープライズや、お金を扱う銀行やウォレットアプリなどでは、大きな経済的被害が出る可能性があるため、多少利便性が低くてもデバイスと紐付けておきたいのが普通でしょう。
Chrome では、Discoverable Credentials を有効にしてパスキーを作れば同期され、無効にして作れば従来の FIDO クレデンシャルとして同期されない、という使い分けが可能です。Safari ではすべてのクレデンシャルがパスキーとなり同期されるため、エンタープライズなどでは使いづらいかもしれません (二要素認証にしてセキュリティキーを使えばいい、という割り切りなのかもしれません)。
※Device Public Key
もう一つのオプションとして、パスキーとデバイスに紐付いた FIDO クレデンシャルのいいとこ取りをするための、Device Public Key という Extension が提案されています。これはパスキーと一緒にデバイス特有のもうひとつの公開鍵ペアを作ることで、パスキーがすでに登録されているデバイスかをサーバー上で検知できるようにする仕組みです。これを使えば、パスキーの使い勝手とデバイスに紐付いた FIDO クレデンシャル両方のいいとこ取りができるかもしれないと期待されています。
ただし、現時点で Device Public Key は Android に実装が予定されているものの、Apple デバイスで使えるようになるかはまだアナウンスされていません。Microsoft の動向も含めて、今後に注目です。
※最後に・・・
FIDO はパスキーの登場でいよいよ実用段階に入ってきました。上記のような問題に加え、Firefox が未サポートなことや、同期環境にまだ改善の余地があることなど、まだ課題も残ってはいますが、時間が解決していくものと思われます。すでに PayPal や Yahoo! JAPAN など、既に投入しているサービスもあります。
画して、風俗革命のバージョンアップの一つとして、セキュリティの向上も挙げられていますので、いろんな動向を組み入れながら進めていけたらと思っています。
Googleがパスキーに対応しています。
- 2023.10.25