MetaがQuest開発者向けに、VRアプリを「不正な改変や潜在的なセキュリティ侵害」から保護する新しいセキュリティ対策を導入します。Meta Questアプリ構成証明API「Attestation API」として導入され、Unity版とネイティブ版の開発ドキュメントが公表されています。
Metaは開発者ブログで、「すべての人に安全でセキュアなユーザー体験を提供するために、アプリの完全性を検証する一貫した方法を伝えることが、ますます重要になっている」と述べています。また開発ドキュメントで、「この新しいAPI機能は、Meta Questデバイスで実行されるアプリの安全性を確保し、不正利用を防止するためのもの」だと説明しています。
Questアプリの完全性を検証可能に
このAPIはPlatform Integrity Attestation API (以下Attestation API)と呼ばれ、「安全なデバイス認証」「ハードウェアベースの利用禁止」「財務・業務データの保護」「外部データの悪用防止」「著作権侵害対策」といったセキュリティ対策が行えます。執筆時点ではAndroidプラットフォーム向けQuestアプリ専用で、Quest2とQuest Proのみ対応しています。
完全性(インテグリティ)とは情報セキュリティ3要素のひとつで、システムやデータが最新かつ正しい状態であることを指します。誤変更や不正な改竄による欠損、不整合が起きておらず、開発者・ユーザーの意図どおりに情報が処理されていると保証するために用いられます。
アプリ構成証明APIのデータ処理フロー
Attestation APIは、アプリが実行中のファームウェアとオペレーションシステムの整合性を検証する機能です。一度APIをアプリに統合すれば、暗号化・署名された認証トークンが発行され、デバイス(Meta Quest)上で実行されているアプリが改竄されているかを判断できるようになります。
情報処理の流れは引用図の通りです。サンプルコードその他の詳細は、公式ドキュメントをご覧ください。
構成証明トークンの発行
1.アプリケーションサーバーがノンス(暗号通信用のランダム値)を送信すると、2.デバイス側のアプリケーションクライアントがAPIを呼び出し、構成証明トークンを取得します。
3.APIはアプリケーションのサーバー/クライアントを介さず、Metaの構成証明サーバーに必要な情報(セキュリティシグナル)を転送。その内容に応じて、4.構成証明サーバーがAPIに構成証明トークンを発行します。
サービスリクエストの認証
5.APIは、アプリケーションクライアントに構成証明トークンを送り返します。6.アプリケーションクライアントが、構成証明トークンと合わせてサービスリクエスト(認証要求)をアプリケーションサーバーに送信し、7.アプリケーションサーバーが構成証明サーバーにトークン認証リクエストを送信します。
認証結果の通知
8.構成証明サーバーは構成証明トークンを検証し、認証結果をアプリケーションサーバーに伝えます。「成功」ならトークンクレームが、「失敗」ならエラーメッセージが返信されます。9.認証結果をもとにアプリケーションサーバーは、アプリケーションクライアントにサービスリクエストに応じるか、否認するかを通知します。
利用上の注意
APIを統合する準備が必要
構成証明APIを既存のアプリケーションへ統合するには、UnityストアでOculus Integrationをダウンロードするか、OculusプラットフォームSDKからネイティブアプリ用のプラットフォームSDKをダウンロードする必要があります。
また、ネイティブアプリの場合は、使用中のプラットフォームSDKとOculus Quest OSシステムがどちらもv55以降である必要があります。
認証プロセス中はWi-Fi接続が必須
Metaは開発ドキュメントで、「このプロセスの間、クライアント側の構成証明APIは構成証明サーバーと通信する必要があり、Wi-Fi接続が必須になりますので十分ご留意ください」とし、呼び出し前にWi-Fi接続を確認するよう求めています。
APIコール上限は100件/日(50件/時)、トークンの有効期限は24時間
構成証明APIの呼び出し回数は、デバイスごとに1時間あたりリクエスト50件、1日あたりリクエスト100件に制限されています。また、構成証明トークンの有効期間は24時間です。
Metaは開発ドキュメントで、アプリ開発者にトークンキャッシュの実装を推奨し、「有効期間内にトークンを保存し、再利用することで、必要なAPIの呼び出し頻度を効果的に減らすことができ、レート制限に達するリスクも最小限に抑えられます」と助言しています。
(参考)Meta(1)、Meta(2)、Road to VR
Mogura VRはRoad to VRのパートナーメディアです。