パスキーの保存先より先に心配した方がいい(かもしれない)もの

kkoiwai
·
公開:2025/1/16

1月28日に、「パスキーのすべて」という本を共著で出版させてもらうことになりました。

出版社の技術評論社のページに、本書の「はじめに」を掲載頂いています。1分で読み終わるので是非ご覧ください。

また、数ページほど、本文からの抜粋もご覧頂けます。どういった内容が書いてあるのか、イメージをつかんで頂いて、購入をご検討ください。

諸先輩方のように、毎日ブログを書くことは私にはとても難しいので、3人で共著なのを理由にして、年初から1月28日の発売まで、3日に1本ぐらいの感覚で、どこかのブログで記事を書き続けるチャレンジをしてみたいと思います。1ヶ月ぐらいならきっと続くことを祈ります。これは5本目。


旧来のFIDO認証と比較する上で、パスキーの利点でもあり、弱点でもあるのは、秘密鍵をクラウドにバックアップしたり、複数のデバイスや他人と共有できる点です。これにより、端末紛失や機種変更時にサービスにログインできなくなる可能性が大幅に削減され、ユーザの利便性が向上しました。一方で、物理的に端末を盗まれなければ安全であった旧来のFIDO認証と異なり、クラウドサービスへの不正アクセスや、フィッシング被害などによって、パスキーが盗難される「可能性がある」というのは、特に旧来のFIDO認証をはじめとする、デバイスに紐付いた認証を通じてサービスを提供してきた事業者にとっては、大きなリスクであると捉えられる場合があります。

ところで、先日の記事でも書いたとおり、パスキーでログインしたユーザが、それ以降サービスを利用できるのは、パスキーでログインしたという状態をセッションで管理しているためです。

セッションとは、ご存じの通り、Webサーバ側でランダムな値(セッションID)を生成してブラウザにCookieとして送信し、その値と紐付けてユーザに関する情報をサーバ側で保存しておく処理です。

そのため、一度パスキーでログインした後は、Webサーバとしては、通信相手が先ほどと同じユーザである事を、セッションIDを知っているという点だけを持って判断しています。(よりセキュリティの高い実装では、加えてIPアドレスやブラウザのUA等を組み合わせて判断している場合もあるかと思います。)

よって、セッションID=Cookieが盗まれてしまえば、どれだけログイン時点で強いセキュリティを担保したとしても、ユーザを守り切れないことになります。

ブラウザからのCookieの盗まれ方(主にPC)

PCの場合、ブラウザからCookieが盗まれる手口として、主に2つのパターンが考えられます。

一番危険なのは、ブラウザ拡張機能です。一部のパスワードマネージャも拡張機能を利用していますし、様々な機能を提供してくれるので便利な拡張機能ですが、これは、ユーザが現在閲覧中のWebサイトのコンテンツを自由に閲覧し、改変することで実現している機能です。よって、ブラウザ拡張機能は、現在ユーザが閲覧しているWebページのCookieも取得できてしまう場合があります。

もう一つは、マルウエアやウイルスを実行してしまうことで、ローカルドライブ上に保存されているCookieを読まれてしまう危険です。Cookieの保存場所を知っていれば、誰でもCookieを読むことができてしまいます。

そもそも今ユーザが使っているブラウザは安全なのか

上記はPC特有の攻撃手段でしたが、スマホでも、偽のブラウザアプリをインストールさせられる事例が発生しています。

このときの偽のブラウザアプリが、ブラウザとしての機能を有していたかは分かりませんが、可能性としては、偽のブラウザである事に気付かずにユーザがそのアプリを使ってWebサイトにアクセスしてしまえば、認証情報やCookieは簡単に取得できてしまいます。

また、旧来のFIDO認証とパスキーで共通した特徴である「フィッシング耐性」を実現するうえでも、Webサイトの正当性の判断はブラウザの仕事ですので、偽のブラウザを使われてしまうと、パスキーのフィッシング耐性も破られる可能性すらあります(※:パスワードマネージャーの実装によります。補足参照)。

結局バランスのはなし

セキュリティというと目に見えてわかりやすいパスワードやパスキーの話をしがちですが、結局セキュリティは一番弱いところが狙われます。そういう意味でも、ログインの部分をどこまで利便性を犠牲にしてガチガチにするか、サービス性を踏まえて日々調節するしかないのかなと思います。


補足

Androidスマホ上で偽ブラウザ上でパスキーによるログインができるかどうかは、パスキープロバイダ(パスワードマネージャー)の実装によります。(通常は、パスキープロバイダが信頼できるブラウザのリストを管理していて、それ以外のアプリからは任意のRPID(Webサイトのドメイン)に紐付くパスキーを呼べない仕組みです。)

そういう意味でも、パスキーはパスワードなど他の認証手段に比較すれば、マルウエアを利用したフィッシングに強いと言えるかも知れません。

補足の補足

ちなみに、Google パスワードマネージャーが管理しているブラウザリストは公開されていますが、思ったよりいろんなブラウザが登録されています。例えばこんなアプリも。

とはいえ、旧来のFIDOセキュリティキーであっても、USB HIDなどで自由に接続でき、接続元のアプリを問わず利用できる点を踏まえれば、結局最後はユーザのリテラシ次第ということになるんでしょうね。