TEE yang terpercaya

Trusty adalah Sistem Operasi (OS) aman yang menyediakan Lingkungan Eksekusi Tepercaya (TEE) untuk Android. Trusty OS berjalan pada prosesor yang sama dengan OS Android, namun Trusty diisolasi dari sistem lainnya baik oleh perangkat keras maupun perangkat lunak. Trusty dan Android berjalan paralel satu sama lain. Trusty memiliki akses ke kekuatan penuh prosesor utama dan memori perangkat tetapi sepenuhnya terisolasi. Isolasi Trusty melindunginya dari aplikasi jahat 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 yang menggunakan Teknologi Virtualisasi Intel.

Gambar 1 . Diagram ikhtisar yang dapat dipercaya.

Terpercaya terdiri dari:

  • Kernel OS kecil yang berasal dari Little Kernel
  • Driver kernel Linux untuk mentransfer data antara lingkungan 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 biasanya disediakan 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 ditambah 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 dapat menjadi masalah bagi pengembang aplikasi tepercaya yang mencoba memastikan aplikasi mereka berfungsi di setiap perangkat Android. Menggunakan Trusty sebagai standar membantu pengembang aplikasi membuat dan menyebarkan aplikasi dengan mudah tanpa memperhitungkan fragmentasi beberapa sistem TEE. Trusty TEE memberi pengembang dan mitra transparansi, kolaborasi, pemeriksaan kode, dan kemudahan proses debug. Pengembang aplikasi tepercaya dapat menggabungkan alat dan API umum untuk mengurangi risiko timbulnya kerentanan keamanan. Para 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 terisolasi dalam mode tidak memiliki hak istimewa di bawah kernel Trusty. Setiap proses berjalan di sandbox memori virtualnya sendiri dengan memanfaatkan kemampuan unit manajemen memori prosesor TEE. Pembuatan perangkat keras mengubah proses persis yang diikuti Trusty, tetapi misalnya, kernel menjadwalkan proses ini menggunakan penjadwal round-robin berbasis prioritas yang digerakkan oleh tanda pengatur waktu yang aman. Semua aplikasi Trusty memiliki prioritas yang sama.

Gambar 2 . Ikhtisar aplikasi yang tepercaya.

Aplikasi Terpercaya pihak ketiga

Saat ini semua aplikasi Trusty dikembangkan oleh satu pihak dan dikemas dengan image kernel 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) sistem. Aplikasi tepercaya dapat mengakses rahasia perangkat dan dapat melakukan komputasi atau transformasi data dengan menggunakannya. Kemampuan mengembangkan aplikasi baru yang dijalankan di TEE membuka banyak kemungkinan inovasi. Namun, karena definisi TEE, aplikasi ini tidak dapat didistribusikan tanpa adanya kepercayaan. Biasanya ini datang dalam bentuk tanda tangan digital oleh entitas yang dipercaya oleh pengguna produk tempat aplikasi dijalankan.

Kegunaan dan contoh

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 dibandingkan perangkat tanpa TEE.

Pada perangkat dengan implementasi TEE, prosesor utama sering disebut sebagai “tidak tepercaya”, yang berarti prosesor tersebut tidak dapat mengakses area tertentu dari RAM, register perangkat keras, dan sekering tulis sekali di mana data rahasia (seperti, kunci kriptografi khusus perangkat) berada disimpan oleh produsen. Perangkat lunak yang berjalan pada prosesor utama mendelegasikan setiap operasi yang memerlukan penggunaan data rahasia ke prosesor TEE.

Contoh yang paling dikenal luas dalam ekosistem Android adalah kerangka 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 TEE seperti pembayaran seluler, perbankan aman, autentikasi multifaktor, perlindungan penyetelan ulang perangkat, penyimpanan persisten yang dilindungi pemutaran ulang, pemrosesan PIN dan sidik jari yang aman, dan bahkan deteksi malware.