Pada level sistem operasi, platform Android memberikan keamanan kernel Linux, serta fasilitas komunikasi antar proses (IPC) yang aman untuk memungkinkan komunikasi aman antar aplikasi yang berjalan dalam proses berbeda. Fitur keamanan di tingkat OS ini memastikan bahwa kode asli pun dibatasi oleh Application Sandbox. Baik kode tersebut merupakan hasil dari perilaku aplikasi yang disertakan atau eksploitasi kerentanan aplikasi, sistem dirancang untuk mencegah aplikasi jahat tersebut membahayakan aplikasi lain, sistem Android, atau perangkat itu sendiri. Lihat Konfigurasi Kernel untuk mengetahui langkah-langkah yang dapat Anda ambil untuk memperkuat kernel pada perangkat Anda. Lihat Dokumen Definisi Kompatibilitas Android (CDD) untuk pengaturan yang diperlukan.
Keamanan Linux
Fondasi platform Android adalah kernel Linux. Kernel Linux telah digunakan secara luas selama bertahun-tahun, dan digunakan di jutaan lingkungan yang sensitif terhadap keamanan. Melalui sejarahnya yang terus-menerus diteliti, diserang, dan diperbaiki oleh ribuan pengembang, Linux telah menjadi kernel yang stabil dan aman yang dipercaya oleh banyak perusahaan dan profesional keamanan.
Sebagai dasar untuk lingkungan komputasi seluler, kernel Linux menyediakan beberapa fitur keamanan utama bagi Android, termasuk:
- Model izin berbasis pengguna
- Isolasi proses
- Mekanisme yang dapat diperluas untuk IPC yang aman
- Kemampuan untuk menghapus bagian kernel yang tidak perlu dan berpotensi tidak aman
Sebagai sistem operasi multipengguna, tujuan keamanan mendasar dari kernel Linux adalah untuk mengisolasi sumber daya pengguna satu sama lain. Filosofi keamanan Linux adalah melindungi sumber daya pengguna satu sama lain, Linux:
- Mencegah pengguna A membaca file pengguna B
- Memastikan bahwa pengguna A tidak menghabiskan memori pengguna B
- Memastikan bahwa pengguna A tidak menghabiskan sumber daya CPU pengguna B
- Memastikan pengguna A tidak menghabiskan perangkat pengguna B (misalnya, telepon, GPS, dan Bluetooth)
Kotak Pasir Aplikasi
Keamanan aplikasi Android ditegakkan oleh kotak pasir aplikasi, yang mengisolasi aplikasi satu sama lain dan melindungi aplikasi dan sistem dari aplikasi berbahaya. Untuk detail selengkapnya, lihat Kotak Pasir Aplikasi .
Partisi Sistem dan Mode Aman
Berbagai partisi yang dilindungi integritas berisi kernel Android serta perpustakaan sistem operasi, waktu proses aplikasi, kerangka aplikasi, dan aplikasi. Partisi ini disetel ke read-only. Saat pengguna mem-boot perangkat ke Mode Aman, aplikasi pihak ketiga mungkin diluncurkan secara manual oleh pemilik perangkat tetapi tidak diluncurkan secara default.
Izin Sistem File
Dalam lingkungan bergaya UNIX, izin sistem file memastikan bahwa satu pengguna tidak dapat mengubah atau membaca file pengguna lain. Dalam kasus Android, setiap aplikasi berjalan sebagai penggunanya sendiri. Kecuali jika pengembang secara eksplisit berbagi file dengan aplikasi lain, file yang dibuat oleh satu aplikasi tidak dapat dibaca atau diubah oleh aplikasi lain.
Linux dengan Keamanan yang Ditingkatkan
Android menggunakan Linux yang Ditingkatkan Keamanan (SELinux) untuk menerapkan kebijakan kontrol akses dan menetapkan kontrol akses wajib (mac) pada proses. Lihat Linux dengan Keamanan yang Ditingkatkan di Android untuk detailnya.
Boot terverifikasi
Android 7.0 dan yang lebih baru mendukung booting terverifikasi yang diterapkan secara ketat, yang berarti perangkat yang disusupi tidak dapat melakukan booting. Boot terverifikasi menjamin integritas perangkat lunak perangkat mulai dari akar kepercayaan perangkat keras hingga partisi sistem. Selama boot, setiap tahap secara kriptografis memverifikasi integritas dan keaslian tahap berikutnya sebelum menjalankannya.
Lihat Boot terverifikasi untuk lebih jelasnya.
Kriptografi
Android menyediakan sekumpulan API kriptografi untuk digunakan oleh aplikasi. Ini termasuk implementasi kriptografi primitif standar dan umum digunakan seperti AES, RSA, DSA, dan SHA. Selain itu, API disediakan untuk protokol tingkat yang lebih tinggi seperti SSL dan HTTPS.
Android 4.0 memperkenalkan kelas KeyChain untuk memungkinkan aplikasi menggunakan penyimpanan kredensial sistem untuk kunci pribadi dan rantai sertifikat.
Rooting Perangkat
Secara default, di Android hanya kernel dan sebagian kecil layanan inti yang dijalankan dengan izin root. SELinux masih membatasi proses ruang pengguna yang berjalan sebagai root. Boot terverifikasi mencegah pengguna atau layanan dengan izin root memodifikasi sistem operasi secara permanen.
Kemampuan untuk memodifikasi perangkat Android yang mereka miliki penting bagi pengembang yang bekerja dengan platform Android. Di banyak perangkat Android, pengguna memiliki kemampuan untuk membuka kunci bootloader untuk memungkinkan instalasi sistem operasi alternatif. Sistem operasi alternatif ini memungkinkan pemilik untuk mendapatkan akses root untuk tujuan debugging aplikasi dan komponen sistem atau untuk mengakses fitur yang tidak disajikan ke aplikasi oleh Android API.
Pada beberapa perangkat, seseorang dengan kontrol fisik atas perangkat dan kabel USB dapat menginstal sistem operasi baru yang memberikan hak akses root kepada pengguna. Untuk melindungi data pengguna yang ada dari gangguan, mekanisme buka kunci bootloader mengharuskan bootloader menghapus data pengguna yang ada sebagai bagian dari langkah buka kunci. Akses root yang diperoleh melalui eksploitasi bug kernel atau lubang keamanan dapat melewati perlindungan ini.
Mengenkripsi data dengan kunci yang disimpan di perangkat tidak melindungi data aplikasi dari pengguna root pada perangkat yang di-rooting. Aplikasi dapat menambahkan lapisan perlindungan data menggunakan enkripsi dengan kunci yang disimpan di luar perangkat, seperti di server atau kata sandi pengguna. Pendekatan ini dapat memberikan perlindungan sementara ketika kunci tidak ada, namun pada titik tertentu kunci tersebut harus diberikan kepada aplikasi dan kemudian dapat diakses oleh pengguna root.
Pendekatan yang lebih kuat untuk melindungi data dari pengguna root adalah melalui penggunaan solusi perangkat keras. OEM dapat memilih untuk menerapkan solusi perangkat keras yang membatasi akses ke jenis konten tertentu seperti DRM untuk pemutaran video, atau penyimpanan tepercaya terkait NFC untuk dompet Google. Jika perangkat hilang atau dicuri, enkripsi penyimpanan memastikan bahwa data pengguna tidak dapat diakses tanpa mengetahui kredensial layar kunci pengguna.
Fitur Keamanan Pengguna
Enkripsi Penyimpanan
CDD mengharuskan semua perangkat yang diluncurkan dengan Android 10 atau lebih tinggi, dan sebagian besar perangkat yang diluncurkan dengan Android 6.0 atau lebih tinggi, langsung mengaktifkan enkripsi penyimpanan.
Penerapan enkripsi penyimpanan Android saat ini adalah enkripsi berbasis file yang dikombinasikan dengan enkripsi metadata . Enkripsi berbasis file secara transparan mengenkripsi konten dan nama file pada partisi data pengguna, menggunakan kunci berbeda untuk direktori berbeda. Ini menyediakan direktori penyimpanan yang dienkripsi kredensial dan perangkat yang dienkripsi untuk setiap pengguna, termasuk profil kerja.
Enkripsi metadata melengkapi enkripsi berbasis file. Ini mengenkripsi semua blok pada partisi data pengguna yang belum dienkripsi dengan enkripsi berbasis file, menggunakan kunci yang tidak terikat pada kredensial layar kunci pengguna mana pun namun masih dilindungi oleh Boot Terverifikasi.
Perlindungan Kredensial Layar Kunci
Android dapat dikonfigurasi untuk memverifikasi kredensial layar kunci (PIN, kata sandi, atau pola) yang diberikan pengguna sebelum memberikan akses ke perangkat. Selain mencegah penggunaan perangkat yang tidak sah, kredensial layar kunci melindungi kunci kriptografi untuk data yang dienkripsi kredensial. Penggunaan aturan kompleksitas kredensial dan/atau kredensial layar kunci dapat diwajibkan oleh administrator perangkat.
Administrasi Perangkat
Android 2.2 dan versi lebih baru menyediakan Android Device Administration API, yang menyediakan fitur administrasi perangkat di tingkat sistem. Misalnya, aplikasi Email Android bawaan menggunakan API untuk meningkatkan dukungan Exchange. Melalui aplikasi Email, administrator Exchange dapat menerapkan kebijakan kredensial layar kunci — termasuk kata sandi alfanumerik atau PIN numerik — di seluruh perangkat. Administrator juga dapat menghapus secara jarak jauh (yaitu mengembalikan ke default pabrik) ponsel yang hilang atau dicuri.
Selain digunakan dalam aplikasi yang disertakan dengan sistem Android, API ini tersedia untuk penyedia solusi Manajemen Perangkat pihak ketiga. Detail tentang API disediakan di Administrasi Perangkat .