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 seluruh kemampuan prosesor dan memori utama perangkat, tetapi sepenuhnya terisolasi. Isolasi Trusty melindunginya dari aplikasi berbahaya yang diinstal oleh pengguna dan potensi kerentanan yang dapat ditemukan di Android.

Trusty kompatibel dengan prosesor ARM dan Intel. Pada sistem ARM, Trusty menggunakan Trustzone™ ARM untuk memvirtualisasi prosesor utama dan membuat trusted execution environment yang aman. Dukungan serupa juga tersedia di platform Intel x86 yang menggunakan Teknologi Virtualisasi Intel.

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/layanan aman) melalui driver kernel

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

Mengapa 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 berbiaya mahal bagi vendor Sistem-di-Chip (SoC) dan OEM. Biaya moneter yang dikombinasikan dengan sistem pihak ketiga yang tidak dapat diandalkan menciptakan ekosistem yang tidak stabil untuk Android. Trusty disediakan kepada partnernya sebagai alternatif open source yang andal dan gratis untuk Trusted Execution Environment 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 OS TEE memiliki cara unik tersendiri untuk men-deploy aplikasi tepercaya. Fragmentasi ini dapat menjadi masalah bagi developer aplikasi tepercaya yang mencoba memastikan aplikasi mereka berfungsi di setiap perangkat Android. Menggunakan Trusty sebagai standar membantu developer aplikasi membuat dan men-deploy aplikasi dengan mudah tanpa memperhitungkan fragmentasi beberapa sistem TEE. Trusty TEE memberikan transparansi, kolaborasi, kemampuan pemeriksaan kode, dan kemudahan proses debug kepada developer dan partner. Developer aplikasi tepercaya dapat berfokus pada alat dan API umum untuk mengurangi risiko munculnya kerentanan keamanan. Developer ini akan yakin bahwa mereka dapat mengembangkan aplikasi dan menggunakannya kembali di beberapa perangkat tanpa pengembangan lebih lanjut.

Aplikasi dan layanan

Aplikasi Tepercaya ditentukan sebagai kumpulan file biner (file yang dapat dieksekusi dan file resource), manifes biner, dan tanda tangan kriptografis. 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.

Gambar 2. Ringkasan aplikasi tepercaya.

Aplikasi Tepercaya pihak ketiga

Saat ini, 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 saat ini tidak didukung di Trusty. Meskipun Trusty memungkinkan pengembangan aplikasi baru, hal tersebut harus dilakukan dengan sangat hati-hati; setiap aplikasi baru akan meningkatkan area trusted computing base (TCB) sistem. Aplikasi tepercaya dapat mengakses secret perangkat dan dapat melakukan komputasi atau transformasi data menggunakan secret tersebut. Kemampuan untuk mengembangkan aplikasi baru yang berjalan di TEE membuka banyak peluang untuk inovasi. Namun, karena definisi TEE, aplikasi ini tidak dapat didistribusikan tanpa beberapa bentuk kepercayaan yang terpasang. Biasanya, ini berupa tanda tangan digital oleh entitas yang dipercaya oleh pengguna produk tempat aplikasi berjalan.

Penggunaan dan contoh

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

Pada perangkat dengan implementasi TEE, prosesor utama sering disebut sebagai “tidak tepercaya”, yang berarti tidak dapat mengakses area tertentu RAM, register hardware, dan sekring tulis sekali tempat data rahasia (seperti kunci kriptografi khusus perangkat) disimpan oleh produsen. Software yang berjalan di prosesor utama mendelegasikan operasi apa pun yang memerlukan penggunaan data rahasia ke prosesor TEE.

Contoh yang paling dikenal 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.

Ada banyak penggunaan TEE lainnya seperti pembayaran seluler, perbankan aman, autentikasi multi-faktor, perlindungan reset perangkat, penyimpanan persisten yang dilindungi replay, pemrosesan PIN dan sidik jari yang aman, dan bahkan deteksi malware.