Passkeysがもたらす認証の未来

1 はじめに

2022年3月、FIDO Allianceが、”multi-device FIDO credentials”(またはpasskey)と呼ばれる情報を公開しました。FIDO Allianceで、Google、Microsoft、Appleが共同発表した情報で、FIDOの資格情報(ログイン資格)をさまざまなデバイスで復元、再利用できる仕組みをまとめた技術情報です。
Appleが2022年6月7日の年次開発者向けイベント「WWDC22」で、Passkeysという名称で紹介しました。Google、Microsoftも順次公開する予定です。
本内容は、発表のあったPasskeysについての解説と、既存のWebサービスにPasskeysを対応するための情報を紹介します。

2 Passkeys(パスキー)とは

Passkeysは従来のパスワード認証に取って代わり、簡単で安全に認証できる仕組みを、各種デバイスのOSレベルで実装するというものです。Passkeysの認証にはWeb Authentication(以後、WebAuthn※1)
という仕組みが使われます。

WebAuthn※1
2019年3月4日 Web技術の標準化団体である「W3C」が、FIDO Allianceから支援を受け、Webサービスにおけるオンライン認証のパスワードレス認証に関する仕様を勧告しました。認証方法にはFIDO2認証が採用されています。(詳細は、「3 FIDOとは」を参照ください)
従来、WebAuthnを利用したパスワードレス認証を利用する場合、Security KeyやFIDO認証器と呼ばれる物理鍵を使用して、対応するサービスを利用する必要がありました。しかし、Passkeysの登場により、お手持ちのデバイスがFIDO認証器として動作します。つまり、普段使っているデバイスでパスワードレス認証が利用できるようになります。Passkeysには、以下の2つの特徴があります。

⑴ 特別なハードウェアを接続することなく、Android、iPhone、WindowsPC、macなど、普段使っているデバイス自体が、パスワードレス認証器として動作します。

⑵ 認証には、パスワードを利用せずに、デバイスが実装している指紋や顔認証などを利用して、本人確認を行います。(生体認証を実装しないデバイスはPINコードにより認証します)

利用者は、最新のOSをインストールするだけで、Passkeysが利用可能になります。特別なアプリケーションをインストールする必要もありません。利用者はPasskeysを意識することなく、WebAuthnに対応したWebサービスを利用するだけで、簡単にパスワードレス認証を利用できるようになるのです。

3 FIDOとは

FIDO(Fast IDentity Online)は、従来のパスワード認証に変わる安全性とユーザーの利便性を両立すべく、FIDO Allianceという団体によって規格化された標準の認証規格です。

3−1.FIDO2認証のしくみ

FIDO2認証は、公開鍵認証を採用しています。利用者とFIDO認証器を紐づける登録操作の際に、FIDO認証器側で、秘密鍵と公開鍵(キーペア)を生成します。公開鍵は、FIDO2認証サーバー(以降、FIDO2サーバー)内に保存されます。

認証の際は、FIDO2サーバーより送付した「チャレンジ」をFIDO認証器に送付します。FIDO認証器は、指紋やPIN等で本人確認を行います。本人だと認識できると、秘密鍵を用いて、チャレンジに署名し、認証結果として、FIDO2サーバーに送り返します。FIDO2サーバーは受信した認証結果を公開鍵で検証し、認証可否を判定します。

3−2.FIDO2認証が安全な理由

  1. 従来の共通鍵暗号やパスワードとは違い、万が一、FIDO2サーバーが攻撃を受けて、公開鍵が漏洩したとしても、秘密情報をサーバー側に保持していないので、安全性を担保できます。
  2. 秘密鍵が格納されている、FIDO認証器のほとんどは、耐タンパー性が考慮されています。そのため、分解しようとすると回路や素子が破壊され、秘密鍵が抜き取られないように作られています。

4 PassKeysのもう一つの特徴

Passkeysは、multi-device FIDO credentialsと定義したことが最大の特徴です。現在時点で、Appleが、2022年6月7日の年次開発者向けイベント「WWDC22」で公表した内容をより、「Passkeysは、オンラインサービスにサインインするための資格情報をAppleIDに紐付けられた、デバイス間で共有できる。」としています。

今まで、FIDO認証器ではセキュリティの観点から、FIDO認証器内に格納されている秘密情報の取り出しは許していないため、AR(アカウントリカバリ)や、合鍵の作成は許されませんでした。

Passkeysの登場で、iOS,iPadOS 16やmacOS Venturaより、KeychainとiCloudサービスを用い、デバイス間でPassKeysを共有することが可能になります。つまり合鍵問題を解決することが可能になります。これにより、生成された認証鍵をcloud上に保管されるので、機種変更・デバイス紛失などで、重要な認証情報を失ってしまうことがなくなります。更には、許可した家族等に認証情報を、復元する許可も与えることが可能です。これにより、FIDO認証器が抱えていた、合鍵や、AR(アカウントリカバリ)問題もある程度、解決できるようになりました。

5 PasskeyとFIDO認証器について

従来、WebAuthnを利用する場合、FIDO認証器を購入する必要がありました。Passkeysの登場によって、お手持ちのデバイスがあれば、WebAuthnを利用することが可能です。利用者は、WebAuthnを利用した、パスワードレス認証が更に身近なものになるでしょう。PasskeysかFIDO認証器かの選択肢は、運用する認証のユースケースにより使い分けられます。

FIDO認証器が有利なケース:
携帯の電波が入らなかったり、個人端末の利用を許可しない場合は、FIDO認証器を組織が管理し、運用するケースもあるでしょう。また、普段は、利用者のPasskeyを利用し、有事の際にFIDO認証器を、マスターキーのような使い方で利用するかもしれません。

Passkeysが有利なケース:
コンシュマーの認証で、FIDO認証器の購入や配布が、サービス価格と釣り合わず、導入が難しかったケースでは、Passkeysを採用することで、WebAuthnを導入できる可能性もあります。

FIDO認証器とPasskeysを組み合わせることで、様々なWebサービスの性質や、ビジネス形態に合わせ、カスタマイズしやすくなり、WebAuthnを利用したパスワードレス認証が加速していくでしょう。

6 DAuthへの期待

Passkeysのリリースにより、各種デバイスでパスワードレス認証の準備が整いました。Passkeysを実装したことで、今日から全てのWebサービスのID認証が、パスワードレスになるかと言うと、そうではありません。それには、Webコンテンツが、WebAuthnに対応することが必要不可欠なのです。
Webサービスの認証をWebAuthnに対応するには、WebサービスにFIDOサーバーの機能を実装するか、すでにあるFIDOサーバーと連携することです。

FIDOサーバーを実装する場合、WebAuthnの仕様に基づいて実装するため、FIDOに関する処理やプロトコルの学習が必要で、それなりの開発コストがかかります。また、公式にFIDO認定を取得する場合は、FIDOAllianceが開催する相互運用性イベントに参加し、認定試験を受ける必要があります。さらに、認定試験合格後に、認定証を取得する場合は、別途、認定費用を支払う必要があります。

アライアンスメンバー非アライアンスメンバー
認定費用$500 USD$750 USD

そこで、既存のFIDO2認証サービスを利用し、開発コストを抑える方法があります。DAuthは、FIDO2サーバー機能を実装しています。DAuthを利用することで、次世代認証技術であるFIDO2認証を、いち早くかつ簡単にWeb Appに導入することが可能です。

また、開発者は、Dauth TESTサイトをご利用頂ければ、Web 閲覧可能な環境をご準備いただくだけで、お⼿軽にAPIの動作やコーディング方法をご確認 いただけます。
URL : https://test.d-auth.com

APIの詳細はDAuthのドキュメントサイトにてご確認頂けます。
 URL : https://docs.d-auth.com

上記より、開発コスト、環境構築等の手間をかけずに、導入前の実験や、Webサービスの修正計画や作業コストを算出しやすくなります。

7 まとめ

Passkeysが登場し、次世代のパスワードレス認証(WebAuthn)が、とても身近に利用できるようになりました。普段、使い慣れたデバイスさえあれば、誰でもが簡単に、しかも安全にID認証することが可能です。

世界中のWebサービスがWebAuthnに対応し、全ての人がパスワードから解放される日を、夢見ながら製品作りに取り組んでおります。筆者含め、我々チーム一同、そのお手伝いができれば幸いです。

このコラムにコメントする

コメントは承認制とさせていただいているため、反映まで少しお時間をいただきます。あらかじめご了承ください。

コラム一覧

お見積り・導入に関する
ご質問・サービスの詳細など
ご不明な点は
お気軽にお問い合わせください