1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

全エンジニアが知っておくべき、非エンジニアでもわかるパスキーの仕組み

1
Posted at

きっかけ

先日、身近な友人から「Discordに突然ログインできなくなった」と相談を受けました。

状況を整理すると、

  1. メールアドレスとパスワードを入力
  2. 「パスキーが必要です」と表示され、QRコードが発行される
  3. 別端末でQRコードを読み取り顔認証
  4. それでも「パスキーがありません」と表示されログイン不可

とのこと。

原因は、iPhoneのパスワード管理アプリの「最近削除されたパスキー」にDiscordのパスキーが残っていたことから、何らかの理由でパスキーが削除されてしまっていたようです。

これを復元して事なきを得ましたが、この一連のやり取りは、パスキーの仕組みを知らないと解決するのが難しい対応だったと思います。

この記事では、専門用語をできるだけ使わずに、パスキーとは何か、なぜ従来のパスワード認証と挙動が違うのか、そしてトラブル時にどう動けばいいのかを整理します。

パスキーとは何か

パスキーは、パスワードの代わりにログイン認証を行う仕組みです。

パスワードは「本人しか知らない文字列」を入力することで本人確認をします。一方パスキーは、文字列を入力する代わりに、自分の端末(スマホやパソコン)そのものが「合鍵」の役割を果たすというイメージです。

  • あなたの端末の中に、その端末でしか使えない特別な「合鍵」が作られて保存される
  • サービス側は、その合鍵に対応する「鍵穴」だけを持っている
  • ログインするとき、端末が「その鍵穴に合う合鍵を持っています」と証明する
  • サービス側は鍵穴で照合し、本人だと確認できたらログインを許可する

ポイントは、合鍵そのものが外部に送られることは一切ないという点です。パスワードのように「文字列そのものを入力して送る」方式だと、偽サイトに文字列を盗まれるリスクがありますが、パスキーは合鍵自体をやり取りしないため、なりすましの偽サイトに騙されて盗まれるということが原理的に起こりにくくなっています。

その「合鍵」はどこに保存されているのか

パスキーでユーザーが混乱しやすいのが、この「合鍵、実は今どこにあるの?」という点です。

代表的な保存先は次の通りです。

  • スマホ・パソコンのパスワード管理機能(iPhoneならiCloud、Androidや Windows/ChromebookならGoogleのパスワード管理など)
  • ブラウザのパスワード管理機能(Chrome、Safariなど。上のOSの管理機能と連携している場合も、別々になっている場合もある)
  • 専用の物理キー(YubiKeyなどの小型デバイス)
  • 認証用の専用アプリ(サービスによっては対応)

厄介なのは、「今回どこに保存されたか」が使っている本人からは分かりにくいことです。スマホやパソコンの設定、ブラウザの初期設定によって保存先が変わるため、いざパスキーを探そうとしたときに「どこにあるんだっけ」と迷子になりがちです。

冒頭のケースでは、iPhoneのパスワード管理アプリ内の「最近削除されたパスキー」という項目を確認したことが解決の糸口になりました。これは、パスキーやパスワードを削除した際に、一定期間だけ元に戻せる状態で保管しておいてくれる機能です。誤って削除してしまった場合の救済措置として用意されていますが、この機能自体を知らなければ、探しようがありません。

トラブル時の代わりのログイン方法

多くのサービスは、パスキーでログインできない場合に備えて代わりの方法を用意しています。代表的なものは次の3つです。

1. バックアップコード

サービスがあらかじめ発行しておく、緊急用の使い切りコードです。パスキーや他の方法が使えない場合の最終手段として位置づけられていることが多く、一度使うと二度と使えなくなる点に注意が必要です。設定した時点で表示されるので、必ずどこかに保存しておくことをおすすめします(メモアプリへの記録、印刷、写真での保存など、パスキーとは別の場所に控えておくのがポイントです)。

2. 認証アプリ

Google AuthenticatorやMicrosoft Authenticatorなどのアプリで、数十秒ごとに変わる6桁の確認コードを表示してくれる仕組みです。パスキーとは別の仕組みなので、両方を設定しておくと、片方が使えなくなってももう片方でログインできる保険になります。

3. QRコード経由の別端末での認証

今ログインしようとしている端末とは別の、パスキーが保存されている端末でQRコードを読み取り、そちらで顔認証・指紋認証などをする方式です。冒頭のケースはこのパターンでしたが、「そもそもどの端末にパスキーが保存されているか分からない」状態だと機能しません。

詰まりやすいポイント

まとめると、パスキー関連のトラブルで詰まりやすいのは次のような点です。

  • パスキーの保存先が複数あり得るため、どこを確認すればいいか分からない
  • 「削除された」という事実に気づく手段が限られている(今回のように偶然「最近削除された項目」を見つけない限り気づけない)
  • バックアップコードや認証アプリなど、代わりの方法の存在自体を知らない、または設定していない
  • サービスごとに代わりの方法の呼び方や画面が違う

事前にやっておきたい対策

パスキーを使うサービスでは、可能であれば次の3点をセットで準備しておくと安心です。

  1. パスキーを複数の端末・複数の保存先に登録しておく(例:iPhoneのパスワード管理機能とブラウザの両方)
  2. 認証アプリも一緒に設定しておく(パスキーが使えないときの二段目の保険)
  3. バックアップコードを発行された時点で必ず保存しておく(スクリーンショットや印刷でも可。ただしパスキーと同じ場所に保存すると、パスキーごと失ったときに一緒に失ってしまうので注意)

おわりに

パスキーはパスワードより安全性の高い仕組みですが、「見えない場所で自動的に管理される」という特性上、トラブルが起きたときの原因究明や復旧の難しさはむしろ上がっていると感じます。

サービス提供側にはトラブル時の案内をより分かりやすくしてほしいところですが、利用者側としても「代わりのログイン方法を複数用意しておく」という発想を持っておくと、いざというときに困らずに済みます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?