プライベートアクセストークン : CAPTCHA なしでプライバシーを保護できる未来の実現に向けて
Apple は先日開催された WWDC で、Fastly を使用した新たな技術のデモを発表しました。同社は、この技術を活用することで、エンドユーザーのプライバシーに配慮しながら、ユーザーが FT.com のコンテンツに CAPTCHA を使わずシームレスにアクセスできることを実証しました。プライベートアクセストークンは、プライバシーを尊重したうえで不正の防止と認証を行うフレームワークを実現できるのが最大の特徴です。このブログ記事ではプライベートアクセストークンの概要と、開発者が Fastly と Apple のサービスを使用して今すぐこのツールを試せる方法をご紹介します。
開発の背景 : コミュニティ主導、オープンかつ標準化された技術
Fastly は Apple や Cloudflare、Google と共に、プライベートアクセストークンに必要な技術を開発、標準化しました。この技術はプライバシーパスプロトコル</u>をベースに、使いやすさと性能をさらに高めたものです。Chrome のトラストトークン</u>に馴染みのあるユーザーは、プライベートアクセストークンの仕組みも理解しやすいかもしれません。
プライベートアクセストークンは、上述の技術をさらに発展させ、(ブラウザのプラグインを使わずに) より用途が広く、エンドユーザーに匿名性を提供できるツールの実現を目指して開発されました。現在 IETF のワーキンググループが、オープンスタンダードとして同技術の開発と標準化</u>に取り組んでいます。Webサイト開発者は、今すぐにこの技術を試すことができます。
UX、アクセシビリティ、プライバシーの問題を解決
CAPTCHA 技術はさまざまなWebサイトで利用されています。CAPTCHA の画像認証画面を嫌になるほど見てきた、という方は多いはずです。CAPTCHA はWebサイトの不正防止対策として便利ですが、サイトへのアクセスを妨げる要因にもなっています。CAPTCHA に挑戦する気がない (そのためにサイトから離れてしまう) ユーザーもいれば、認証に失敗してコンテンツにアクセスできないユーザーもいるためです。
また、プライバシーの問題に敏感なユーザーは、CAPTCHA をクリアするために自分が提供したデータがどのように扱われるのか不安に感じるでしょう。「CAPTCHA をクリアした際のデータとレガシー認証トークンを利用して、ユーザーが追跡されることはないだろうか」と懸念する声があります。プライバシーに重きを置いたブラウザ設定を選択しているユーザーは、こうした疑問について考える機会が多いと思います。彼らは、他のユーザーよりも頻繁に CAPTCHA 認証に対応しないといけない場合が多いからです。
プライベートアクセストークンは、サポートされるクライアントプラットフォームにおいて CAPTCHA 認証に代わる新たな技術です。暗号化技術と要件を慎重に適用することで、リソースへのアクセスを許可するのに必要なユーザー情報のみをWebサイトが取得する仕組みを保証します。人間によるインタラクションの必要がなく、不要なデータの漏えいの心配もありません。
仕組み : 新技術の魅力
プライベートアクセストークンの動作は、他のチャレンジ/レスポンス認証のフレームワークと似ています。このアーキテクチャの詳細についてはこちら</u>をご覧ください。人間によるインタラクションを不要にしながらプライバシーを尊重するというプライベートアクセストークンの優れた機能は、その中核にあるいくつかのコンセプトに集約されています。
ひとつ目のコンセプトは、既存の認証方法や ID 技術をさらに進化させたものです。具体的には、必要なユーザー情報のみを証明できる外部システムを指定する仕組みです。undefinedこれは仕様では「アテスター」と呼ばれます。アテスターは、ユーザーに関するさまざまなデータにアクセスできる可能性があります。これは、ご自身の携帯電話に保存されているデータにアクセスすることを頭に浮かべると、イメージしやすいかもしれません。しかしアテスターは、Webサイトとの通信に必要な、まさに最低限の情報「のみ」を、暗号化を使用して証明するよう設計されています。
プライベートアクセストークンを支えるもうひとつのコンセプトに、「職務分掌」(差分プライバシーやセキュアなマルチパーティ計算など、暗号化設計で一般的に使用されるプラクティス) が挙げられます。この場合プライベートアクセストークンは、「クライアント」と「アテスター」(例 : お使いのデバイスと Apple) のみが、クライアントに関して何らかの有用な情報を伝えるのに必要なユーザーデータにアクセスできるよう指定します。「オリジン」 (例 : Webサイト) は、ある正当なクライアントが自分のサイトにアクセスすることのみを把握します。「発行者」 (例 : トークンを発行するWebサイトや組織) は、有効なトークンをあるクライアントに発行したことのみを把握します。
そしてプライベートアクセストークンは、こうした仕組みがすべてうまく機能するように、暗号化設計を慎重に適用するのです。注目すべきポイントは、ブラインド署名が使用されていることです。簡潔に言うと、この技術により、クライアントプラットフォームがユーザーに関する何らかの属性を証明する際に、ユーザーがアクセスしているWebサイトに関するデータを暗号化によってブラインド化できるようになります。このデータを (アテスターを信頼する) トークン発行者に送ると、発行者はブラインド署名をしてデータを返します。つまり発行者は、データの中身を知らずに署名するのです (住宅ローンで同じことをしたら大変ですが、ここでは非常に有用です)。
RSA ブラインド署名のフロー概要 (トークンタイプ = 2)。_詳細はこちら</u>から確認できます。_undefinedundefined
認証失敗の確認やエッジケースは別として、通常 RSA ブラインド署名のフローは以下のようになります。
ユーザー (クライアント) が、Webサイト (オリジン) 上で保護されているリソースへのアクセスを要求します。VPN または iCloud プライベートリレーが利用されている場合、Webサイトはこの時点で、IP アドレスなどのクライアントに関する情報を把握する必要はありません。
Webサイトは、「WWW-Authenticate」HTTP レスポンスヘッダーを介してプライベートアクセストークンのチャレンジを返します。
クライアントはチャレンジを匿名化し、これを含むトークン要求メッセージを、(1) Webサイトが把握する必要のある属性 (検証済みの iOS デバイス上で動作しているなど) を証明でき、(2) トークンを発行するシステム (発行者) が信頼するシステム (アテスター) に送信します。
アテスターによって、トークン発行者にリクエストが転送されます。発行者はリクエストを確認し、問題がなければブラインド署名を行い、その結果を (「TokenResponse」として) 返します。クライアントが暗号化による匿名化を行ったので、発行者はクライアントに関する情報を一切知りません。
アテスターによって TokenResponse がクライアントに転送され、クライアントは暗号化プロセスの最終段階として、ステップ3で匿名化されたデータに最終署名を行います。この署名によって、オリジンが求めるトークンが発行されます。
クライアントはこのトークンをオリジンに (具体的には「Authorization」HTTP リクエストヘッダーを介して) 提供することで、リソースへのアクセスを許可されます。この時点でWebサイトは、クライアントが有効なトークンを有していることだけを把握しています。アテスターとやり取りしたすべての情報は引き続きブラインド化されます。
つまり、どのエンティティもクライアントのアイデンティティとWebサイトのアクティビティを結び付けられない仕組みになっています。undefinedそれでいて、人間によるインタラクションを一切必要とせずにWebサイトへのアクセスを許可できるのです。これは非常に有効な認証方法です。
一般的なWebサイトのトラッキング技術に精通している方は、「いやいや、IP アドレスでサイト訪問者の追跡はするだろう」と思われるかもしれません。たしかにその通りです。とはいえ、(Fastly のプライベート・ゲートウェイ・サービス</u>を活用している) Apple の iCloud プライベートリレーなどのプライバシープロキシサービスをはじめ、ユーザーが選べるデータ漏えい対策の選択肢が増えているのもまた事実です。
実際に試してみる
理論的な話はいったん休憩しましょう。Fastly はエコシステムのパートナーたちと共に、開発者たちが今すぐ試せるよう、プライベートアクセストークンのビルディングブロックの提供に取り組んできました。
クライアントおよびアテスターへの早期アクセス : Apple の新しい macOS と iOS のリリースで利用可能なプライベートアクセストークン機能をいち早く試されたい方は、Apple ベータ版プログラム</u>にご登録ください。
お客様のサイト向けにプライベートアクセストークンを有効化 : チャレンジの発行や、トークンを受理してアクセスを許可する処理に関しては、仕様書をご確認ください。また、Fastly の Next-Gen WAF を利用することで、このプロセスをより簡単に行えるようになります。詳細は後日ご紹介します。
トークンの発行 : Fastly はトークンを発行するライブサービスをデプロイしました。設定の詳細は以下をご確認ください。開発向けのこのエンドポイントは、あらゆるオリジンをサポートします。現在、互換性のある iOS や macOS デバイスから整形式の発行リクエスト</u>を送ると、この仕組みをサポートしているWebサイトでアクセス許可を得るために使用できる有効なトークンが返されます。
デモ設定
発行者名
demo-issuer.private-access-tokens.fastly.com
Base64 でエンコードされた発行者の公開鍵
MIICUjA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAqEaMBgGCSqGSIb3DQEBCDALBglghkgBZQMEAgKiAwIBMAOCAg8AMIICCgKCAgEAubzND7lvK-u5aIFHSt_NHIzsUFuHCiwVm88kvUvbvJbjj4be_IdNwpfdfXz-vq6NeEwlKEDLtD9oMVop_kEf5HEBkiipBrcn10h17XvYPuc6lA7Z4Y8IjvSjLVydXmcabmslwreMysD1ZINjzadjlJxiIKWCeS_3OJ4dxMTirt8HMUl8cRQafTjSOBJIZNtoNiT5rr5_5SYfEQW8v25RZcitkL0Lrg1mkSutRR00EE3zMelQBGR0sf8jDgBRiPQ1-sSgaIicIciZ2ysiPdkQZBIDpIFnvqed4yKY9gZCn-ASztoe1JhJvzWUwO7Nyz1Mb6pxAV0aQNfb0rDMTPNtyF4z7kgtFcsr5SXiJUa13bm0G2QvEdhl177poghh2RDaT5tcEmiRRvdQWBTeVgFyjrX3-29TZCT4z8VyvDxPPIUIi2rN8-9lN6mmsF0KhlyKe4jUuDwK7dc6Q0gZyjKiE3n-ygErrlbOYU16MGQiJQRV6Z8j38OSD4Lf5-SzsgkAa6Zbv95Zf8TZRS-fuagiXGZcmfdO9zXkuNlRlGguEUpx520SANRciPIBZxFBDXga6kcT9Hfha0n97Mhq57kFRe2Cox7qpq79x9TjUvHOZkWMSv2KmZpoF0wbI2NvlZngbW6Z1hC-X4C3evilX7O498r45Ct7PNjq11Qjso82DwMCAwEAAQ==
さらなる機能強化に向けた取り組み
現在、Fastly のトークン発行者エンドポイントを使用してオリジンをセットアップし、Apple クライアントのベータ版をお試しいただけます。より優れた機能の提供を目指す Fastly の今後の取り組みに、ぜひご期待ください。
Fastly は、より信頼性の高いインターネットの構築にはセキュリティとプライバシーが不可欠であると考え、その信念を実証するテクノロジーやプロダクトの開発に投資、協力しながら、これらの構築を実現しています。メディアの保護を目的としたレート制限や、より多くのクライアント属性の認証など、プライベートアクセストークンに追加する新たな機能の開発に向けて、標準化コミュニティのパートナー達と積極的に取り組んでいます。プライベートアクセストークンは、色々な用途に活用できる素晴らしい可能性を秘めています。Webサイトが把握する必要のあるユーザー情報 (年齢など) のみが公開されることを、暗号化技術によって保証できる仕組みにより、これまで不可能であったさまざまなことが可能になります。こうしたデータフローを明示的に保証することで、ユーザーとWebサイト両方のセキュリティを保護できるのです。
シンプルで簡単に利用できるプライベートアクセストークンの自動設定機能にも今後ご注目ください。また、この技術を Fastly Next-Gen WAF (Powered by Signal Sciences) の使いやすさと有効性、開発者フレンドリーな Fastly エッジクラウドプラットフォームのスピードとスケーラビリティと組み合わせることで、さらにWebサイトの保護を強化できます。