パスワードレス認証とFIDO2についてまとめてみた

昨今ますます注目されているパスワードレス認証とFIDO2の基礎についてまとめてみました。
2023.03.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

prismatix事業部Devチームの中島です。 今回はパスワードレス認証とFIDO2について書いてみます。

パスワードレス認証について

パスワードレス認証はその名の通り、パスワードを使わずに認証を行う技術のことで、パスワードではなく生体認証などにより認証を行うことで、セキュリティと利便性の向上を目指します。 従来から広く使われてきた認証方法として、パスワード認証がありますが、パスワード忘れ等の問題点があります。

そこで注目されているのがパスワードレス認証です。パスワードレス認証であればユーザーがパスワードを記憶したり入力することなく認証を行うことができるため利便性が向上する他、後述のFIDO2の仕組みを使えば、パスワードなどの認証情報がネットワークを流れることがなく、また、フィッシングサイトに対しても効果的であるため、セキュリティ面でも期待されている技術です。

FIDO2とは

FIDO2とは、パスワードレス認証の標準化を行うFIDO Allianceという団体が策定した認証規格です。

FIDO1についての詳細は割愛しますが、従来のFIDO1において策定されたFIDO Universal Second Factor(FIDO U2F)、FIDO Universal Authentication Framework(FIDO UAF)のみでは専用のAPIやSDKが必要なため、技術的な制約や導入の困難さから普及率がそれほど高くありませんでした。

FIDO2はFIDO1のU2FとUAFの仕組みに加えて、WebAuthnとCTAPという2つの仕様で構成されており、これらの仕組みによって、広範囲のアプリケーションにおいて生体認証によるパスワードレス認証を実現することが可能となっており、今後の普及が期待されています。

WebAuthnとCTAP

WebAuthn(Web Authentication)

WebAuthnはウェブアプリケーションでパスワードレス認証を実現するための標準規格です。W3Cによって標準化されており、ChromeやSafariなどの最新ブラウザではすでにサポートされています。WebAuthnのAPIを通じて、ウェブアプリケーションは認証器(セキュリティキーや生体認証デバイスなど)を使用した認証を提供できます。

CTAP(Client To Authenticator Protocol)

CTAPはデバイス(スマートフォン、PCなど)がBluetooth、USB、またはNFCを介して認証器との間で情報のやり取りを行うための仕様です。CTAPは認証器とデバイス間の通信を標準化することで、さまざまな種類の認証器をサポートします。

FIDO2のフロー

FIDO2の処理フローの概略をシーケンス図で表すと以下の通りです。

登録

認証

以上のシーケンス図のとおり、認証情報はネットワーク上でやりとりされないためセキュアな方式であることがわかります。

パスキー

FIDO2では端末内に認証情報を保管するためネットワーク上を認証情報が流れないためセキュアである反面、複数端末での認証情報の登録が煩雑である点や端末紛失・故障時にログインできなくなることが問題とされてきました。
「multi-device FIDO credential」通称、パスキーは、複数端末間で認証情報を同期する技術で、FIDO2の問題点を克服することができると注目されています。
Microsoft、Apple、Googleが対応を表明しており、たとえばApple製品においては、iCloudのキーチェーンの同期を使って複数端末間での認証情報の同期を可能としています。

まとめ

従来から用いられてきたパスワード認証はいまだに広く使われていますが、パスワードの漏洩などのセキュリティインシデントは数多く発生しています。 今回紹介したFIDO2はパスキーの登場により、今後さらに普及していくことが期待されています。 とはいえパスワードレス認証もまだまだ課題が多い状況かと思います。 パスワードレス認証をはじめとした技術が発展して、みんなが安全にインターネットを使える世の中になるといいですね。

参考文献

https://fidoalliance.org/仕様概要/?lang=ja

https://fidoalliance.org/fidoの仕組み/?lang=ja