Cloudflare は、CAPTCHA 認証の代替 ↗として Cryptographic Attestation of Personhood(CAP)を開発しました。
CAP では、CAPTCHA のパズルを解く代わりにハードウェアキーに触れることで、正当なウェブサイト訪問者であることを証明できます。
この記事では、使いやすさとプライバシーに関するよくある質問に答えます。
デモサイト ↗ で CAP を試すこともできます。
プライバシーに関する懸念の多くは、次の表にまとめています。
| 項目 | Cloudflare ができること | Cloudflare が実際に行うこと |
|---|---|---|
| 生体情報(指紋や顔写真)の収集 | いいえ | 該当なし |
| ハードウェア認証器に関する情報の収集 | はい(バッチ内のキー数に限定) | はい(取得できる場合) |
いいえ、Cloudflare は生体情報を収集できません。CAP の処理は WebAuthn API を使い、この API は生体情報の収集をデフォルトで防ぎます ↗。デバイスが指紋センサーなどで生体認証を求める場合、処理はすべて端末上で行われます。
そのため、生体データが Cloudflare に届くことはありません。データはデバイス上に残ります。デバイスが一致を確認したあと、送られるのは基本的なアテステーションメッセージだけです。つまりデバイスは「信頼できるこのデバイスで、誰かが正しく指紋を入力した」という証明だけを送り、指紋そのものは送りません。
はい、Cloudflare はキーに関する限られたデータを収集します。検証のため、キーのメーカーとバッチ識別子(1 バッチあたり最低 100,000 ↗ キー)を保存します。Cloudflare から見ると、あなたのキーはバッチ内のほかのキーと同じに見えます。
一部の自己署名キーや特定メーカーのキーは、この要件を満たさない ↗ことが分かっています。オンライン上のプライバシーリスクを抑えたい場合は避けるべきです。
Cryptographic Attestation of Personhood の仕組みの詳細は、紹介ブログ記事 ↗ を参照してください。
CAP は幅広いハードウェア認証器に対応しています。
- ローミング(クロスプラットフォーム)認証器:
- 対応: FIDO Metadata Service 3.0 ↗ に掲載されているすべてのセキュリティキー。セキュリティ上の理由で失効したものは除きます。
- 例: YubiKeys、HyperFIDO keys、Thetis FIDO U2F keys
- プラットフォーム認証器:
- 例: iOS モバイルデバイスと macOS ラップトップの Apple Touch ID / Face ID、指紋リーダー付き Android モバイルデバイス、Windows Hello
ほとんどのウェブブラウザーと WebAuthn 対応認証器の組み合わせは動作します。ただし WebAuthn アテステーションには既知の互換性問題があり、CAP が成功しない場合があります。
- 基本 CAP:
- macOS デスクトップ: Touch ID を使う場合、ブラウザーは Safari である必要があります
- Android: ブラウザーは Chrome である必要があります
- ゼロ知識証明付き CAP:
- Apple のプラットフォーム認証器(例: Touch ID / Face ID 付き iPhone)は、ゼロ知識証明システム ↗と互換がありません。失敗した場合は、追加操作なしで基本 CAP の経路へすぐリダイレクトされます。Apple は、認証器が正当であることだけを示し追跡を防ぐプライバシー保護の Apple Anonymous Attestation ↗ を使うため、この方式でも高いプライバシー基準を保てます。
エコシステムの変化と、さまざまな組み合わせの検証に合わせて、この一覧は更新しています。
CAP は、ボットを識別してブロックする手法の 1 つです。これまでに、CAP のセキュリティを試す試みはいくつかあります。たとえば よく考えられ、文書化されたテスト ↗ です。このテストを取り上げたブログは、この手法が Cloudflare の脅威モデルを破るものではないと明記しています。
これは CAP が破られたという意味ではなく、現行の CAPTCHA モデルより攻撃コストを上げていることを示します。
必要なハードウェア(YubiKey など)がない場合でも、通常の CAPTCHA チャレンジ(画像の選択など)を解けます。
- Unsupported_att_fmt:
- 原因: 認証器が未対応のアテステーション形式(ブラウザーとキーの組み合わせ)を使っています。Firefox で「キーを匿名化する」(anonymise your key)を選んだ場合にも発生します。
- 対処: ゼロ知識証明版の CAP ↗ でこのエラーが出た場合は、基本 CAP の流れへ自動的にリダイレクトされます。基本 CAP も失敗する場合は、対応しているハードウェアとブラウザーの別の組み合わせを試すか、CAPTCHA を選んでください。
- Unsupported_issuer:
- 原因: そのキーは現在サポートされていません。
- 対処: 対応しているキー を使います。