0Pricing
Cryptology Academy · レッスン

パスワードレス認証:WebAuthnとFIDO2

認証の未来を担うW3C WebAuthn標準とFIDO2パスキーを学びます。

「パスワードレス認証:WebAuthnとFIDO2」はCoddyKit上の無料Cryptology Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCryptology Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cryptology Academyコースには全4レッスンが含まれています。

FIDO2アーキテクチャ

FIDO2は、W3CのWeb Authentication仕様(WebAuthn)とFIDO AllianceのClient-to-Authenticator Protocol 2(CTAP2)を組み合わせた総称です。これらは、リライングパーティーのオリジンに紐付いた公開鍵暗号を使用する、完全なパスワードレス認証システムを定義しています。

認証器の種類

FIDO2は、認証器を2つのカテゴリでサポートしています。プラットフォーム認証器はデバイスに組み込まれており、Apple製デバイスのTouch IDやFace ID、WindowsのWindows Helloなどがあります。ローミング認証器は外付けのハードウェアトークンで、YubiKey、Google Titan Key、Feitian keysなどがあります。いずれも公開鍵暗号を使用し、アテステーションステートメントを生成します。

登録:クレデンシャルの作成

WebAuthnの登録時に、認証器はリライングパーティー用の新しい非対称鍵ペアを生成します。公開鍵はサーバーに送信され、保存されます。秘密鍵が認証器の外部に出ることはありません。アテステーションステートメントにより、認証器の種類と、鍵が認証器のハードウェア内部で生成されたことが証明されます。

認証:クレデンシャルアサーション

WebAuthnの認証時に、サーバーはクライアントへチャレンジを送信します。認証器は保存されている秘密鍵を使用し、リライングパーティーIDとクライアントデータをチャレンジとともに署名します。サーバーは保存されている公開鍵で署名を検証します。共有秘密が送信されることは一度もありません。

オリジンへの紐付けによるフィッシング防止

WebAuthnのアサーションに含まれるリライングパーティーIDは、要求元ページのオリジン(ドメイン)に暗号学的に紐付けられています。認証器は、登録時とは異なるオリジンに対するアサーションへの署名を拒否します。この仕組みにより、WebAuthnは設計上フィッシングに耐性があります。偽のフィッシングサイトでは認証を完了できません。

レジデントキーと真のパスワードレス認証

検出可能なクレデンシャル(旧称レジデントキー)は認証器自体に保存され、リライングパーティーIDをキーとしてインデックス化されます。これにより、真のパスワードレス認証フローが可能になります。ユーザーは認証器を提示し、デバイスに保存されたクレデンシャルからアカウントを選択して、ユーザー名やパスワードを入力せずに認証できます。

ユーザー検証とユーザーの存在確認

WebAuthnでは、ユーザー検証(UV)とユーザーの存在確認(UP)を区別します。ユーザーの存在確認では、ユーザーが認証器に触れるかタップするだけで十分です。ユーザー検証では、さらにPINまたは生体認証による確認が必要となり、特定のユーザー本人がその場にいることを証明します。高セキュリティのアプリケーションでは、認証にUVを必須にする必要があります。

CTAP2プロトコル

CTAP2は、USB、NFC、またはBLEを介して、クライアント(ブラウザーまたはOS)と外付けのローミング認証器との間で行われるプロトコルを定義します。クレデンシャルの作成、アサーションの生成、認証器の管理に使用するコマンドを規定しています。CTAP2.1では、クレデンシャル管理や常時UVポリシーなどの機能が追加されています。

パスキー:同期されるクレデンシャル

パスキーは検出可能なWebAuthnクレデンシャルであり、プラットフォームベンダーの暗号化されたクラウド(AppleのiCloud Keychain、Google Password Manager、Windows Hello for Businessなど)を介してユーザーのデバイス間で同期されます。パスキーは、デバイス間で利用できるパスワードレス認証を提供し、セキュリティと、ユーザーがパスワードに期待する利便性を両立します。

パスキーのUXフロー

一般的なパスキー認証フローは次のとおりです。ユーザーがWebサイトにアクセスし、「Sign in with passkey」をクリックします。ブラウザーに、そのサイトで利用できるパスキーが表示されます。ユーザーは生体認証(Face ID、Touch ID、Windows Hello)で認証します。ブラウザーがチャレンジに署名し、アサーションを送信します。パスワードを入力する必要がないため、フロー全体が数秒で完了します。

WebAuthnと従来の認証の比較

従来のパスワードには、フィッシングされやすい、再利用できる、データベース侵害によって解読される可能性があるという問題があります。OTPコード(TOTP)はリアルタイムでフィッシングされる可能性があります。SMSコードはSIMスワッピングやフィッシングに対して脆弱です。WebAuthnとパスキーは、オリジンへの紐付けによるフィッシング耐性、盗み出すべきサーバー側の秘密情報が存在しないこと、サイトごとに固有であること、ハードウェアで保護された秘密鍵によって高い安全性を実現します。WebAuthnは、現在広く導入されている認証方式の中で最も強固なものです。

WebAuthnとパスワードの確認

パスワードやTOTPコードとは異なり、WebAuthnを本質的にフィッシング攻撃に耐性のあるものにしている特性は何ですか?

レッスンのまとめ:FIDO2とWebAuthn

FIDO2は、WebAuthn(W3C)とCTAP2(FIDO Alliance)を組み合わせ、フィッシングに耐性のあるパスワードレス認証を実現します。プラットフォーム認証器(Touch ID、Face ID)とローミング認証器(YubiKey)は、リライングパーティーのオリジンに紐付いた公開鍵暗号を使用します。パスキーは、デバイス間の同期によってこの仕組みを拡張します。WebAuthnは、現在広く利用可能な認証方式の中で最も高いセキュリティを提供します。

よくある質問

「パスワードレス認証:WebAuthnとFIDO2」レッスンは無料ですか?

はい。「パスワードレス認証:WebAuthnとFIDO2」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cryptology Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cryptology Academyコースには全4レッスンが含まれています。

「パスワードレス認証:WebAuthnとFIDO2」で何を学びますか?

認証の未来を担うW3C WebAuthn標準とFIDO2パスキーを学びます。 ブラウザで直接実行するハンズオンコードでCryptology Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Cryptology Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのCryptology Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「パスワードレス認証:WebAuthnとFIDO2」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このCryptology Academyレッスンでコードを書いて実行できますか?

はい。すべてのCryptology Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. パスワード認証が抱える根本的な問題
  2. SRP:Secure Remote Passwordプロトコル
  3. PAKEプロトコルとその特性
  4. パスワードレス認証:WebAuthnとFIDO2
← Cryptology Academyに戻る