Android Protected の確認の実装

考慮事項

Android Protected の確認の完全性を確保するために、次の事項を考慮してください。こうした考慮事項に十分に対応できない場合は、Protected の確認をデバイスに実装できません。

Linux カーネルに関する考慮事項

Android Protected の確認は、デバイスのカーネルが不正使用された場合でも安全に動作するように設計されています。Protected の確認ダイアログがアクティブである間は、画面のコンテンツの完全性、ユーザーによる入力の完全性、ユーザーによる入力と出力の間のアトミック性が、カーネルによって損なわれることはありません。 アーキテクチャの観点では、まず、カーネルでのユーザーによる決定の増大と、ユーザー イベントのなりすましを阻止する必要があります。カーネルは攻撃者に制御されたり、まったく異なるものに置き換えられたりする可能性があるため、このユースケースで信頼できるとは見なされません。

ファームウェアに関する考慮事項

Android Protected の確認をデバイスに実装するには、関係するすべてのコンポーネントに信頼できるファームウェアを導入する必要があります。Android Protected の確認により、ユーザーは Trusted UI に表示されるメッセージを読み、その情報に基づいて、トランザクションを進めるかどうかを判断できます。ユーザーに対する Trusted UI の表示に影響するため、ディスプレイ パネル ドライバは特に重要です。

入力に関する考慮事項

Android Protected の確認ダイアログがアクティブであるときにユーザーがイベントを生成しない限り、選択した入力方法によって生成された入力イベントがダイアログに伝達されないように、安全な入力方法を選択すべきです。

物理ハードウェア

システム オン チップ(SoC)や電源管理集積回路(PMIC)など、Android カーネルが制御できるコンポーネントが、物理的な確認ボタンとの接続を制御できないようにする必要があります。

タッチ コントローラに関する考慮事項

Android Protected の確認では、入力方法として画面上のソフトウェア ボタンを設定できます。TEE がタッチ コントローラを制御する場合は、タッチ コントローラの状態をサニタイズする対策をとる必要があります。

予想される動作

割り込み

システムが通話の着信や電源イベントによって確認セッションを中断する場合には、HAL が ResponseCode::Aborted を報告する必要があります。アプリは onCanceled() コールバックを受け取り、ユーザーがアクションを選択していないことを認識します。アラームではセッションを中止する必要はありませんが、ユーザーに通知しなければなりません。ダイアログがアクティブである間は、通知オーバーレイを行うことはできません。

入力猶予期間

Android Protected の確認が開始されると、最小 1 秒間は入力を非アクティブにしてからユーザー操作に反応しなければなりません。この猶予期間により、ユーザーは予期しない確認ダイアログに対応できます。この猶予期間は、信頼できるアプリが実施する必要があります。

画面の回転

必須のモードは縦向きだけであり、画面の回転はサポートされていません。 画面を回転させることは、誤解を招くボタン配置や本文の改ざんなど、不正使用されたシステムでの不正行為につながる可能性があります。

本文のレンダリング エラー

非表示の追加データや CBOR ヘッダー情報を含む本文には、6144(0x1800)バイトのハード境界があります。 さらに、必須のソフト境界もあります。レンダリングされたメッセージが画面スペースに収まらない場合は、Android Protected の確認を中止し、トランザクションをキャンセルする必要があります。 MessageSize が最大許容サイズを超える場合、promptUserConfirmation での実装では UIErrorMessageTooLong を返す必要があります。

API 呼び出しの後に本文の書式選択を行うことをおすすめします。ユーザーには、本文の全体が表示されなければなりません。

セカンダリ ディスプレイ

特定の条件の下で、セカンダリ ディスプレイがサポートされています。出力とユーザー入力の完全性を維持し、他の方法で誤解を招く情報が表示されないようにする必要があります。そうしないと、ダイアログがプライマリ ディスプレイだけに表示され、その他すべてのディスプレイが非アクティブまたは空白になる可能性があります。 ストリーミング ソリューションと画面共有ソリューションでは、ダイアログの表示や確認の生成はできません。