Trusty TEE

Trusty adalah sistem operasi (OS) aman yang menyediakan Trusted Execution Environment (TEE) untuk Android. Trusty OS berjalan di prosesor yang sama dengan Android OS, tetapi Trusty diisolasi dari sistem lainnya oleh hardware dan software. Trusty dan Android berjalan secara paralel satu sama lain. Trusty memiliki akses ke daya penuh prosesor dan memori utama perangkat, tetapi sepenuhnya terisolasi. Isolasi Trusty melindunginya dari aplikasi berbahaya yang diinstal oleh pengguna dan potensi kerentanan di Android.

Trusty kompatibel dengan prosesor ARM dan Intel. Pada sistem ARM, Trusty menggunakan TrustZone ARM untuk memvirtualisasikan prosesor utama dan membuat TEE yang aman. Dukungan serupa juga tersedia di platform x86 Intel menggunakan Teknologi Virtualisasi Intel.

Diagram ringkasan Trusty

Gambar 1. Diagram ringkasan Trusty.

Trusty terdiri dari:

  • Kernel OS kecil yang berasal dari Little Kernel
  • Driver kernel Linux untuk mentransfer data antara lingkungan yang aman dan Android
  • Library ruang pengguna Android untuk berkomunikasi dengan aplikasi tepercaya (yaitu, tugas dan layanan yang aman) melalui driver kernel

Catatan: Trusty dan Trusty API dapat berubah sewaktu-waktu. Untuk mengetahui informasi tentang Trusty API, lihat Referensi Trusty API.

Keunggulan Trusty

Sistem operasi TEE lainnya biasanya disediakan sebagai blob biner oleh vendor pihak ketiga atau dikembangkan secara internal. Mengembangkan sistem TEE internal atau melisensikan TEE dari pihak ketiga dapat menimbulkan biaya yang besar bagi vendor sistem di chip (SoC) dan OEM. Biaya moneter yang dikombinasikan dengan sistem pihak ketiga yang tidak andal menciptakan ekosistem yang tidak stabil untuk Android. Trusty disediakan untuk partnernya sebagai alternatif open source yang andal dan gratis untuk TEE mereka. Trusty menawarkan tingkat transparansi yang tidak mungkin dilakukan dengan sistem closed-source.

Android mendukung berbagai implementasi TEE sehingga Anda tidak dibatasi untuk menggunakan Trusty. Setiap TEE OS memiliki cara unik untuk men-deploy aplikasi tepercaya. Fragmentasi ini dapat menjadi masalah bagi developer aplikasi tepercaya yang mencoba memastikan aplikasi mereka berfungsi di setiap perangkat Android. Penggunaan Trusty sebagai standar membantu developer aplikasi membuat dan men-deploy aplikasi tanpa memperhitungkan fragmentasi beberapa sistem TEE. TEE Tepercaya memberikan transparansi, kolaborasi, kemampuan inspeksi kode, dan proses debug yang mudah bagi developer dan partner. Developer aplikasi tepercaya dapat berkumpul di sekitar alat dan API umum untuk mengurangi risiko munculnya kerentanan keamanan. Developer ini memiliki keyakinan untuk mengembangkan aplikasi dan menggunakannya kembali di beberapa perangkat tanpa pengembangan lebih lanjut.

Aplikasi dan layanan

Aplikasi Trusty adalah kumpulan file biner (file yang dapat dieksekusi dan file resource), manifes biner, dan tanda tangan kriptografi. Saat runtime, aplikasi Trusty berjalan sebagai proses terisolasi dalam mode tanpa hak istimewa di bawah kernel Trusty. Setiap proses berjalan di sandbox memori virtualnya sendiri menggunakan kemampuan unit pengelolaan memori dari prosesor TEE. Build hardware mengubah proses persis yang diikuti Trusty, tetapi misalnya, kernel menjadwalkan proses ini menggunakan penjadwal round-robin berbasis prioritas yang didorong oleh tick timer yang aman. Semua aplikasi Trusty memiliki prioritas yang sama.

Ringkasan aplikasi tepercaya

Gambar 2. Ringkasan aplikasi tepercaya.

Aplikasi Trusty pihak ketiga

Semua aplikasi Trusty dikembangkan oleh satu pihak dan dikemas dengan image kernel Trusty. Seluruh image ditandatangani dan diverifikasi oleh bootloader selama booting. Pengembangan aplikasi pihak ketiga tidak didukung di Trusty. Meskipun Trusty memungkinkan pengembangan aplikasi baru, lakukan hal ini dengan sangat hati-hati; setiap aplikasi baru akan meningkatkan area basis komputasi tepercaya (TCB) sistem. Aplikasi tepercaya dapat mengakses rahasia perangkat dan dapat melakukan komputasi atau transformasi data menggunakan rahasia tersebut. Kemampuan untuk mengembangkan aplikasi baru yang berjalan di TEE membuka banyak kemungkinan untuk inovasi. Namun, karena definisi TEE itu sendiri, aplikasi ini tidak dapat didistribusikan tanpa beberapa bentuk kepercayaan yang terlampir. Hal ini dalam bentuk tanda tangan digital oleh entitas yang dipercaya oleh pengguna produk tempat aplikasi berjalan.

Penggunaan dan contoh

TEE menjadi standar di perangkat seluler. Pengguna semakin mengandalkan perangkat seluler untuk kehidupan sehari-hari dan kebutuhan akan keamanan pun meningkat. Perangkat seluler dengan TEE lebih aman daripada perangkat tanpa TEE.

Pada perangkat dengan penerapan TEE, prosesor utama sering kali disebut sebagai *tidak tepercaya*, yang berarti tidak dapat mengakses area RAM, register hardware, dan sekering tulis sekali di mana data rahasia (seperti kunci kriptografi khusus perangkat) disimpan oleh produsen. Software yang berjalan di prosesor utama mendelegasikan semua operasi yang memerlukan penggunaan data rahasia ke prosesor TEE.

Contoh yang paling banyak diketahui tentang hal ini dalam ekosistem Android adalah framework DRM untuk konten yang dilindungi. Software yang berjalan di Prosesor TEE dapat mengakses kunci khusus perangkat yang diperlukan untuk mendekripsi konten yang dilindungi. Prosesor utama hanya melihat konten terenkripsi, sehingga memberikan tingkat keamanan dan perlindungan yang tinggi terhadap serangan berbasis software.

TEE memiliki kegunaan lain, seperti pembayaran seluler, perbankan yang aman, autentikasi multifaktor, perlindungan reset perangkat, penyimpanan persisten yang dilindungi dari serangan replay, pemrosesan PIN dan sidik jari yang aman, serta deteksi malware.