Implementasi Konfirmasi Terlindungi

Pertimbangan

Pertimbangan berikut harus diperhatikan untuk memastikan integritas Konfirmasi Dilindungi Android. Jika pertimbangan ini tidak dapat diatasi secara memuaskan, Konfirmasi Terlindungi tidak dapat diterapkan pada perangkat.

Pertimbangan kernel Linux

Konfirmasi Terlindungi dirancang untuk beroperasi dengan aman meskipun kernel perangkat disusupi. Saat dialog Konfirmasi Terlindungi aktif, kernel tidak dapat mengganggu integritas konten layar, integritas input pengguna, dan atomisitas antara input dan output pengguna. Secara arsitektural, kernel harus dicegah untuk menambah keputusan pengguna dan melakukan spoofing pada kejadian pengguna. Kernel tidak dianggap dapat dipercaya untuk kasus penggunaan ini, karena mungkin berada di bawah kendali penyerang atau diganti dengan sesuatu yang sama sekali berbeda.

Pertimbangan firmware

Konfirmasi Terlindungi dapat diterapkan pada perangkat hanya jika semua komponen yang terlibat memiliki firmware tepercaya. Konfirmasi Terlindungi dirancang untuk memastikan bahwa pengguna memiliki kesempatan untuk membaca pesan yang ditampilkan di UI Tepercaya untuk membuat keputusan apakah akan melanjutkan transaksi atau tidak. Driver panel tampilan sangat penting karena hal ini dapat mencegah pengguna melihat UI Tepercaya.

Pertimbangan masukan

Pilih metode masukan yang aman untuk memastikan bahwa peristiwa masukan yang dihasilkan oleh metode masukan yang dipilih ini tidak disampaikan ke dialog Konfirmasi Terlindungi kecuali pengguna membuat peristiwa tersebut saat dialog tersebut aktif.

Perangkat keras fisik

Komponen apa pun yang dapat dikontrol oleh kernel Android, seperti system on chip (SoC) atau sirkuit terpadu manajemen daya (PMIC), tidak boleh menggerakkan kabel yang terhubung ke tombol konfirmasi fisik.

Pertimbangan pengontrol sentuh

Konfirmasi Terlindungi dapat menggunakan tombol perangkat lunak di layar sebagai input. Kapan pun pengontrol sentuh digerakkan oleh TEE, tindakan harus diambil untuk membersihkan kondisi pengontrol sentuh.

Perilaku yang diharapkan

Interupsi

Jika sistem mengganggu sesi konfirmasi karena panggilan telepon masuk atau kejadian listrik, HAL harus melaporkan ResponseCode::Aborted . Aplikasi mendapatkan callback onCanceled() dan mengetahui bahwa pengguna tidak memilih suatu tindakan. Alarm tidak perlu membatalkan sesi tetapi perlu memberi tahu pengguna. Hamparan pemberitahuan dalam bentuk apa pun tidak diperbolehkan saat dialog aktif.

Masukkan masa tenggang

Setelah Konfirmasi Terlindungi dimulai, masukan harus tetap tidak aktif selama minimal 1 detik sebelum menjadi responsif terhadap interaksi pengguna. Masa tenggang ini memastikan bahwa pengguna memiliki kesempatan untuk bereaksi terhadap dialog konfirmasi yang tidak terduga. Masa tenggang ini harus diterapkan oleh aplikasi tepercaya.

Perputaran layar

Potret adalah satu-satunya mode yang diwajibkan, dan rotasi layar tidak didukung. Rotasi layar memungkinkan potensi penyalahgunaan pada sistem yang disusupi, seperti penempatan tombol yang menyesatkan atau manipulasi teks isi.

Kegagalan rendering teks isi

Ada batas tegas sebesar 6144 (0x1800) byte untuk isi teks termasuk data tambahan yang tidak ditampilkan dan informasi header CBOR. Selain itu, ada batas lunak yang harus ditegakkan. Jika pesan yang ditampilkan tidak sepenuhnya sesuai dengan ruang layar yang tersedia, pastikan Konfirmasi Terlindungi dibatalkan dan transaksi dibatalkan. Jika MessageSize melebihi ukuran maksimum yang diperbolehkan, implementasi Anda harus mengembalikan UIErrorMessageTooLong pada promptUserConfirmation .

Praktik terbaik adalah memformat teks isi setelah menerima panggilan API. Teks isi harus ditampilkan kepada pengguna secara lengkap.

Tampilan Sekunder

Tampilan sekunder didukung dalam kondisi tertentu. Integritas keluaran dan masukan pengguna harus dijaga, dan tidak ada informasi menyesatkan yang dapat ditampilkan melalui cara lain. Jika tidak, dialog hanya dapat ditampilkan pada tampilan utama dan semua tampilan lainnya harus dinonaktifkan atau dikosongkan. Solusi streaming dan berbagi layar tidak diperbolehkan menampilkan dialog atau menghasilkan konfirmasi.