日本語
  • webauthn
  • passkey
  • authentication
  • MFA

WebAuthn とパスキー 101

WebAuthn の概念、ワークフロー、人気の理由、および関連する課題について包括的な理解を深めましょう。

Ran
Ran
Product & Design

WebAuthn は、NIST AAL 基準において最も安全な認証手段の一つとされています。2013 年に導入され、現在では認証のために企業に選ばれる手段となっています。しかし、その採用はまだ広がっておらず、多くの人々が WebAuthn とパスキーについて疑問を抱いています。それでは、あなたが知っておくべきことを見ていきましょう。

概念: WebAuthn、パスキー、FIDO 間の関係は何ですか?

FIDO Alliance

FIDO Alliance は、オープンソースで安全なパスワードなしの 認証基準を提供する組織です。これには UAF、U2F、および FIDO2 が含まれます。

FIDO2

FIDO2 は、FIDO Alliance によって開発された安全なオンライン認証のためのセット基準です。 FIDO2 は、パスワードなしのログインのための WebAuthn と、安全な デバイス通信のための CTAP の 2 つの主要なコンポーネントで構成されています。

Passkey

パスキーは、パスワードを置き換えるための FIDO ベースのフィッシング耐性の資格情報です。

  1. ハードウェアトークンやセキュリティキー (USB や Bluetooth デバイスなど) です。
  2. より強化されたセキュリティのために非対称公開鍵暗号を利用します。
  3. プラットフォーム、セキュリティキー、またはデバイス間での同期が可能です。
WebAuthn

WebAuthn は、W3C と FIDO Alliance によって開発されたJavaScript APIで、FIDO2 基準を使用して ウェブアプリケーションの認証を強化します。パスキーは、WebAuthn がサポートする認証 方法の一つです。

フロー: WebAuthn はどのように機能しますか?

WebAuthn の 4 つの主要エンティティ

基本的に、WebAuthn フローに関与する 4 つの主要エンティティを知っておく必要があります。

  1. ユーザー: WebAuthn を使用してウェブアプリケーションに登録または認証を行う人。

  2. ユーザーエージェント: WebAuthn API 呼び出しを処理し、さまざまな依存パーティと認証器との間で認証プロセスを管理するウェブブラウザ。

  3. 依存パーティ: ユーザーがアクセスしようとしているウェブサービスまたはアプリケーション。ユーザーはユーザーエージェントを通じて依存パーティと対話します。

  4. 認証器: ユーザーの身元確認のためにユーザーが所有するハードウェアコンポーネント。セキュリティキー (Yubikey など)、電話機またはタブレット (Bluetooth、NFC、または USB で接続されたもの)、デバイスベースのバイオメトリクスまたは PIN など、プラットフォームやブラウザの機能に基づいてさまざまな形式をとることができます。

main entities

WebAuthn のワークフロー

非対称公開鍵暗号が基本プロセスです。

  1. キー対生成: ユーザーエージェントが公開-秘密鍵のペアを生成します。公開鍵は依存パーティと共有され、秘密鍵はユーザーの認証器に安全に格納されます。
  2. 認証チャレンジ: ユーザーがログインしようとすると、依存パーティがユーザーエージェントに認証チャレンジを送信します。
  3. ユーザー確認: ユーザーエージェントはチャレンジを認証器に送信し、ユーザーとインタラクションを行って確認します (例: 生体認証またはボタン押下)。
  4. 暗号署名: 認証器は秘密鍵を使用してチャレンジに署名し、暗号署名を生成します。
  5. 確認とアクセス: ユーザーエージェントは公開鍵を使用して署名を確認し、依存パーティに認証の成功を通知します。アクセスが許可されます。

詳細に説明するために、登録フェーズと認証フェーズに分けています。

WebAuthn 登録フロー: enrollment flow

WebAuthn 認証フロー: authentication flow

利点: なぜ WebAuthn がトレンドになりつつあるのか?

複数の認証器

追加の柔軟性のために複数の認証器を選択するオプションがあります。これらの認証器は、ローカル用とクラウド用の 2 種類あり、サービスに 1 つまたは両方を有効にすることができます。

プラットフォーム認証器 (内部認証器)

プラットフォーム認証器は、PC、ノートパソコン、電話、またはタブレットなどの特定のデバイス OS に関連付けられています。ユーザーがログインするために使用します。バイオメトリクスやデバイスのパスコードなどを使用してデバイスでのみ動作し、許可を行います。特にバイオメトリクスを使用した場合、認証が迅速で手動のパスワード入力を置き換えることができます。ただし、ユーザーがデバイスを紛失すると、アクセスの障壁となる可能性があります。 例えば:

  • MacOS および iOS: Touch ID、Face ID、またはデバイスのパスコードによって確認される iCloud Keychain。
  • Windows: 顔認識、指紋、または PIN フレンドリーにより確認される Windows Hello。
  • Android: デバイスを承認するための顔認識または指紋をサポートする Google Password Manager。

platform authenticator

ローミング認証器 (外部認証器、クロスプラットフォーム認証器)

ローミング認証器は、ハードウェアセキュリティキーやスマートフォンなどの別のポータブルデバイスまたはソフトウェアアプリケーションです。デバイスを USB でリンクするか、NFC または Bluetooth をオンにしておく必要があります。ローミング認証器は特定のデバイスやブラウザに限定されず、より柔軟性があります。例えば:

  • セキュリティキー: ハードウェアトークンとも呼ばれる Yubikey など。
  • モバイルスマートフォン: Android 上のクラウドベースの Google アカウントや iPhone 上の iCloud アカウントを使用するようなもの。特にクロスデバイス認証には、ユーザーの認証器が近くにあることを保証するために Bluetooth、NFC、または USB で接続が必要です。モバイル認証器は、しばしば QR コードのスキャンを必要とし、デスクトップデバイスとリンクします。(特に Android フォンでは、Chrome ブラウザとシームレスにリンクするために「Persistent Linking」を使用し、QR コードスキャンを必要としないワンクリック認証を可能にします。)

roaming authenticator

高保証セキュリティ

高保証セキュリティは、ビジネスリソースを保護するために重要です。これには次の措置が含まれます:

  1. プライバシーキーの保護: プライバシーキーはサードパーティのウェブサイト (依存パーティ) と共有されることはなく、パスワード漏えいやフィッシング攻撃からの保護に役立ちます。
  2. デバイスの近接要件: デバイスは「単一デバイス用のプラットフォーム認証」または「USB、Bluetooth、NFC 限定のローミング認証器」がユーザーに近接する必要があり、リモート攻撃を防ぎます。
  3. ドメインのバインディング: WebAuthn はユーザーが登録したウェブサイトの特定のドメインに厳密にバインドされ、未承諾のウェブサイトからのフィッシング攻撃から保護します。

MFA&1FA のための摩擦のないユーザー体験

WebAuthn は、ユーザーのパスワードレス検証体験を向上させながらセキュリティを強化します:

  • ネイティブ体験とバイオメトリクス効率: WebAuthn は、ユーザーの習慣に合わせたさまざまなプラットフォームとデバイスに特定の認証方法を採用します。バイオメトリクス認証は手動入力を必要とせず、検証プロセスを大幅に加速します。
  • 直接 MFA 1FA スキップ: WebAuthn は、多要素認証 (MFA) に頻繁に使用されます。強固なセキュリティのため、依存パーティが以前にブラウザで WebAuthn の使用を記録している場合、ユーザーは 1FA (単一要素認証) ステップをスキップして直接パスキー検証を通じてサインインできます。
  • パスキーがパスワードに取って代わる: パスキーは、1FA の伝統的なパスワードの代替として機能することもできます。ユーザーはアカウントにアクセスする前または後にパスキーを提供でき、パスキー認証が利用できない場合にのみパスワード検証が必要です。

課題: なぜ WebAuthn がユーザーによって広く採用されていないのか?

ブラウザまたはプラットフォームの制限

一部のブラウザやプラットフォームは、WebAuthn を全くサポートしていないか、ローミング認証器をサポートしていない場合があります。Caniuse の現在の統計では、97.37% のデスクトップと 96.3% のモバイルプラットフォームカバレッジで、まともなサポートを示していますが、異なるブラウザバージョンやオペレーティングシステムによって依然としてばらつきがあります。たとえば、デスクトップ Linux はプラットフォーム認証器のサポートがなく、Android は Chrome でのみ WebAuthn を完全にサポートし、MacOS の Internet Explorer は WebAuthn をサポートしていません。このため、管理者はメンバーに特定のブラウザまたは OS の選択を実施させるか、他の別の MFA 方法を設定させる必要があります。

browser support

デバイス紛失のリスク

特に「このデバイス」プラットフォーム認証器に依存しているユーザーにとって、デバイスの紛失はアカウントへのアクセスを失うことにつながります。アカウントの回復は煩雑なプロセスになることがあります。このリスクを軽減するために、ユーザーは WebAuthn をセットアップする際に、他のバックアップ認証方法を同時にバインドすることをお勧めします。

ウェブサイトとアプリのサポートの制限

多くのサービスやアプリケーションはまだパスキーのサポートを提供していません。ユーザーはさまざまな認証方法に精通していることは少なく、プラットフォーム認証器とローミング認証器の違いと制限を完全に理解していないかもしれません。しかし、主要なシステム、ブラウザ、SaaS サービスは WebAuthn をますます採用しており、企業とユーザーの両方がそれを採用し始めているため、トレンドになりつつあります。

結論

Logto は、11 月に多要素認証 (MFA) のローンチを控えています。初期フェーズでは、3 つの確認方法をサポートします: オーセンティケーターアプリ TOTP、WebAuthn(パスキー)、およびバックアップコードを提供し、包括的なサインインおよびサインアップソリューションを提供します。WebAuthn に関連する高度な機能の開発を続けていきます。あなたの体験を心待ちにしており、Product Hunt での MFA のリリース発表についてご期待ください。