隣の人に語りたいパスキーの世界

## はじめに
IT機器上で「パスキー使いますか」といったお誘いをよく見かけるようになりました。
そこで出てくる心の声。
**一般用語みたいにパスキーパスキー言ってますけど、あなたそんなに知名度ありませんからね？**
...と思いながらも、ある調べでは国内認知度が60％を超えているとのことでした:hushed:

そんなご時世なので、この波に乗り遅れないよう、IT技術者からITにあまり詳しくない人向けにパスキーが説明できるようにまとめてみました。
（分かりやすさ優先で説明を端折っている部分がありますが、ご了承ください）

## 10秒ピッチ
:::note info
パスワードマネージャーに生体認証を組み合わせました
:::
というのが、ユーザー向けには理解しやすい表現かなと思います。
そしてパスワードを入力するタイミングが無くなったのでパスワードマネージャーからパスワード部分を削った感じです。

## 素朴な疑問
### パス「キー」って？
これまでユーザーを認証する代表的な要素は「パスワード」つまりその人だけが知っている合い言葉でした。これをその人だけが管理している電子的な鍵（技術用語としては秘密鍵）に置き換えたものです。
パスワードの「ワード」を「キー」に置き換えたのでパスキーと呼ばれています。
電子的な鍵はパスキー利用開始時に生成されてデバイス上に格納されます。どのような内容や形式になっているのかユーザーが直接目にすることはありません。

### キーの部分は生体情報なの？
パスワードの代わりに生体認証でログインするというと、電子的な鍵＝生体情報という発想になるのですが、違います。
「サービスと接続するための電子鍵がデバイスに埋め込まれている」という理解が正しく、この鍵を使うためにデバイス上で生体情報による本人チェックを行います。

### パスキーを一度設定したら複数のサービスがまとめて使えるようになるの？
いいえ。パスキーはサービス毎に作成されるため、利用するサービス毎に作成する必要があります。この関係はパスワードのときと同じです。
ただし生体認証のほうはデバイスでセットアップを一度行えば、全てのパスキー利用時に使えます。

### 複数デバイスで同一サービスを利用する際には、各デバイスでパスキーを作成する必要があるの？
いいえ。従来サイト毎のパスワードを記憶していたパスワードマネージャーに相当する「パスキープロバイダー」に関連情報が登録されており、パスキー関連情報はパスキープロバイダーがカバーする範囲で他のデバイスで共用することができます。

## IT技術者向けの仕組み紹介
パスキーを実現する機構は、FIDOアライアンスから提供されている
- FIDO認証
- パスキープロバイダー

の2つから構成されています。

### FIDO認証
FIDO認証の構造は
- Web上のサービスは、接続可能なデバイスを認証する（鍵を共有する）
- デバイスは生体ログインなどで本人であることを認証する

の2段階で構成されています。

<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/536604/a22637ff-faef-4953-8176-1d0e3e44a523.png">

これを連動させて「認証したデバイスが本人確認しているんだから大丈夫と判断する」という考え方に基づいています。

### パスキープロバイダー
いわゆるパスワードマネージャーのパスキー版と考えるとよいかと思います。OSベンダーが提供するイメージですがサードパーティも提供するようです。
この仕組みが導入される前は、各デバイス毎に鍵を作成する必要がありました。堅牢な反面、複数デバイスで認証を行ないたい場合やデバイスの移行・紛失への対応に手間がかかる局面もありました。
複数デバイスで鍵情報を引き継げるため、ユーザーの利便性を高めることに成功しています。

## パスキーを使うメリット
### ものぐさな方向け
#### パスワード管理の煩わしさから解放される
「サービス毎に違うパスワードを使いましょう」はパスワード運用の基本ですが、楽だから危険を無視して同じパスワードを使い回してしまう、または新しいサービスへアクセスする度に別のパスワードを考える（しかもサービス毎に微妙に基準が違う）のが面倒くさい、という方もいると思います。
そんな方向けにその辛さを回避できるパスキーはいい選択肢と言えるでしょう。
### 意識の高い方向け
#### 不正ログインの可能性を減らせる
フィッシングでパスワード窃取されて不正ログインされ何らかの被害に遭う...という状況は避けたいものです。
パスキーは知識認証を使わないため、このリスクをある程度下げることが期待できます。
#### 生体認証は共有されない
生体認証でログインする場合、生体情報をサービス側と共有するとどのように管理されているか不安になることもあるでしょう。
サービス側からの個人情報の漏洩は現実に度々発生しており、生体認証関連が漏洩するとユーザーとして様々なサービスを利用する際に不安がつきまとうことになりかねません。
パスキーの仕組みでは、サービス側と連携するのは電子的な鍵だけで、**生体関連情報はデバイス内に留まります**。
サービス側に生体情報関連を保持しないことから、上記の不安を感じる必要がなくなります。
### サービス提供者側からの視点
パスワード方式に由来するなりすましログインやパスワード忘れなどへの対応の運用負荷を下げることができ、その余力を本来のサービス価値の向上に振り向けることができます。

## パスキーの使い勝手を確認したい
ユーザー体験がどう変化するのかは、[Passkey Centralの「ライブ実装」コーナー](https://www.passkeycentral.org/ja/resources-and-tools/live-implementations)で確認することができます。
ヤフー、メルカリ、ドコモ、ソニーといった日系企業が積極的に取り組んでいる姿と、パスキーが生体認証として直感的に使えることが確認できます。

## パスキーを使うべきか
パスワードマネージャーが便利なこともあり積極的にパスワードからパスキーに乗り換える動機が小さい、というのが正直な感想です:sweat:

ITリテラシーの高い人ほど乗り換えそうなものですが、丁寧なIT暮らしができている人はパスワードも適切に管理されていてフィッシングサイトには近寄らない、という印象があります。
パスキーが必要なのはITリテラシーと距離がある方で、ここは積極的に導入を検討してよいと思うのですがパスキーの認知度はその界隈にはいまひとつ浸透していないのではないか、と思います。悩ましい...

その他、パスキーの仕組みを理解すれば特に回避する理由は無いということが分かりますが、
- パスキー対応サービスが限定されている
- サービスによってはパスキー対応のプラットフォームが限定される（PCをカバーしていないことも多い）
- パスワード管理が残るのであれば二重管理になる

など、パスキー対応の広がりがまだまだ小さいことから自分ゴトになりづらく、積極的に考えるテーマではないという人が多いように想像しています。

GitHubのようにパスキーでなければ2FAが要求されるサービスもあるため、こちらのケースでは積極的に使っていくほうが快適ですね。

## 参考
### PassKey Central
FIDOアライアンスが提供する、パスキー関連の一次情報源です。

https://www.passkeycentral.org/ja/introduction-to-passkeys/
### passkeys.dev
パスキー関連の用語を確認するにはこちらが便利です。

https://passkeys.dev/docs/reference/terms/