Trusty adalah Sistem Operasi (OS) aman yang menyediakan Lingkungan Eksekusi Tepercaya (TEE) untuk Android. Trusty OS berjalan pada prosesor yang sama dengan OS Android, tetapi Trusty diisolasi dari sistem lainnya oleh perangkat keras dan perangkat lunak. Trusty dan Android berjalan paralel satu sama lain. Trusty memiliki akses ke kekuatan penuh dari prosesor dan memori utama perangkat tetapi sepenuhnya terisolasi. Isolasi Trusty melindunginya dari aplikasi berbahaya yang dipasang oleh pengguna dan potensi kerentanan yang mungkin ditemukan di Android.
Trusty kompatibel dengan prosesor ARM dan Intel. Pada sistem ARM, Trusty menggunakan Trustzone™ ARM untuk memvirtualisasikan prosesor utama dan menciptakan lingkungan eksekusi tepercaya yang aman. Dukungan serupa juga tersedia pada platform Intel x86 menggunakan Teknologi Virtualisasi Intel.
Amanah terdiri dari:
- Kernel OS kecil yang berasal dari Little Kernel
- Driver kernel Linux untuk mentransfer data antara lingkungan yang aman dan Android
- Pustaka ruang pengguna Android untuk berkomunikasi dengan aplikasi tepercaya (yaitu, tugas/layanan aman) melalui driver kernel
Catatan: Trusty dan Trusty API dapat berubah. Untuk informasi tentang Trusty API, lihat Referensi API .
Mengapa Terpercaya?
Sistem operasi TEE lainnya secara tradisional dipasok sebagai gumpalan biner oleh vendor pihak ketiga atau dikembangkan secara internal. Mengembangkan sistem TEE internal atau melisensikan TEE dari pihak ketiga dapat memakan biaya yang mahal bagi vendor dan OEM System-on-Chip (SoC). Biaya moneter yang dikombinasikan dengan sistem pihak ketiga yang tidak dapat diandalkan menciptakan ekosistem yang tidak stabil untuk Android. Trusty diberikan kepada mitranya sebagai alternatif sumber terbuka yang andal dan gratis untuk Lingkungan Eksekusi Tepercaya mereka. Trusty menawarkan tingkat transparansi yang tidak mungkin dilakukan dengan sistem sumber tertutup.
Android mendukung berbagai implementasi TEE sehingga Anda tidak dibatasi untuk menggunakan Trusty. Setiap TEE OS memiliki cara uniknya sendiri dalam menerapkan aplikasi tepercaya. Fragmentasi ini bisa menjadi masalah bagi pengembang aplikasi tepercaya yang mencoba memastikan aplikasi mereka berfungsi di setiap perangkat Android. Menggunakan Trusty sebagai standar membantu pengembang aplikasi untuk dengan mudah membuat dan menyebarkan aplikasi tanpa memperhitungkan fragmentasi beberapa sistem TEE. Trusty TEE memberi pengembang dan mitra transparansi, kolaborasi, kemampuan memeriksa kode, dan kemudahan debugging. Pengembang aplikasi tepercaya dapat berkumpul di sekitar alat dan API umum untuk mengurangi risiko memperkenalkan kerentanan keamanan. Pengembang ini akan memiliki keyakinan bahwa mereka dapat mengembangkan aplikasi dan menggunakannya kembali di beberapa perangkat tanpa pengembangan lebih lanjut.
Aplikasi dan layanan
Aplikasi Trusty didefinisikan sebagai kumpulan file biner (file yang dapat dieksekusi dan file sumber daya), manifes biner, dan tanda tangan kriptografi. Saat runtime, aplikasi Trusty berjalan sebagai proses yang terisolasi dalam mode unprivileged di bawah kernel Trusty. Setiap proses berjalan dalam kotak pasir memori virtualnya sendiri dengan memanfaatkan kemampuan unit manajemen memori dari prosesor TEE. Pembuatan perangkat keras mengubah proses persis yang diikuti oleh Trusty, tetapi misalnya, kernel menjadwalkan proses-proses ini menggunakan penjadwal round-robin berbasis prioritas yang digerakkan oleh tick timer yang aman. Semua aplikasi Trusty memiliki prioritas yang sama.
Aplikasi Tepercaya pihak ketiga
Saat ini semua aplikasi Trusty dikembangkan oleh satu pihak dan dikemas dengan kernel image Trusty. Seluruh gambar ditandatangani dan diverifikasi oleh bootloader saat boot. Pengembangan aplikasi pihak ketiga tidak didukung di Trusty saat ini. Meskipun Trusty memungkinkan pengembangan aplikasi baru, hal itu harus dilakukan dengan sangat hati-hati; setiap aplikasi baru meningkatkan area basis komputasi tepercaya (TCB) dari sistem. Aplikasi tepercaya dapat mengakses rahasia perangkat dan dapat melakukan komputasi atau transformasi data dengan menggunakannya. Kemampuan untuk mengembangkan aplikasi baru yang berjalan di TEE membuka banyak kemungkinan untuk inovasi. Namun, karena definisi TEE, aplikasi ini tidak dapat didistribusikan tanpa suatu bentuk kepercayaan yang melekat. Biasanya ini datang dalam bentuk tanda tangan digital oleh entitas yang dipercaya oleh pengguna produk tempat aplikasi berjalan.
Kegunaan dan contohnya
Lingkungan eksekusi tepercaya dengan cepat menjadi standar di perangkat seluler. Pengguna semakin mengandalkan perangkat seluler mereka 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”, artinya prosesor tersebut tidak dapat mengakses area tertentu dari RAM, register perangkat keras, dan sekering tulis-sekali tempat data rahasia (seperti, kunci kriptografi khusus perangkat) disimpan disimpan oleh produsen. Perangkat lunak yang berjalan pada prosesor utama mendelegasikan operasi apa pun yang memerlukan penggunaan data rahasia ke prosesor TEE.
Contoh yang paling dikenal luas dalam ekosistem Android adalah kerangka kerja DRM untuk konten yang dilindungi. Perangkat lunak yang berjalan pada prosesor TEE dapat mengakses kunci khusus perangkat yang diperlukan untuk mendekripsi konten yang dilindungi. Prosesor utama hanya melihat konten terenkripsi, memberikan tingkat keamanan dan perlindungan yang tinggi terhadap serangan berbasis perangkat lunak.
Ada banyak kegunaan lain untuk TEE seperti pembayaran seluler, perbankan aman, otentikasi multi-faktor, perlindungan reset perangkat, penyimpanan persisten yang dilindungi replay, PIN aman dan pemrosesan sidik jari, dan bahkan deteksi malware.