Pada tingkat sistem operasi, platform Android menyediakan keamanan kernel Linux, serta fasilitas komunikasi antar proses (IPC) yang aman untuk memungkinkan komunikasi yang aman antara aplikasi yang berjalan dalam proses yang berbeda. Fitur keamanan ini di tingkat OS memastikan bahwa bahkan kode asli dibatasi oleh Application Sandbox. Apakah kode tersebut merupakan hasil dari perilaku aplikasi yang disertakan atau eksploitasi kerentanan aplikasi, sistem dirancang untuk mencegah aplikasi jahat merusak 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
Dasar dari 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 mobile, kernel Linux menyediakan Android dengan beberapa fitur keamanan utama, 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 multiuser, tujuan keamanan mendasar dari kernel Linux adalah untuk mengisolasi sumber daya pengguna dari satu sama lain. Filosofi keamanan Linux adalah untuk melindungi sumber daya pengguna dari satu sama lain. Jadi, 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 bahwa 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 lebih jelasnya, lihat Application Sandbox .
Partisi Sistem dan Mode Aman
Partisi sistem berisi kernel Android serta perpustakaan sistem operasi, runtime aplikasi, kerangka aplikasi, dan aplikasi. Partisi ini diatur ke read-only. Saat pengguna mem-boot perangkat ke Safe Mode, aplikasi pihak ketiga dapat diluncurkan secara manual oleh pemilik perangkat tetapi tidak diluncurkan secara default.
Izin Sistem File
Dalam lingkungan gaya 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 membagikan file dengan aplikasi lain, file yang dibuat oleh satu aplikasi tidak dapat dibaca atau diubah oleh aplikasi lain.
Linux yang Ditingkatkan Keamanan
Android menggunakan Security-Enhanced Linux (SELinux) untuk menerapkan kebijakan kontrol akses dan menetapkan kontrol akses wajib (mac) pada proses. Lihat Linux yang Ditingkatkan Keamanan di Android untuk detailnya.
Boot terverifikasi
Android 6.0 dan yang lebih baru mendukung boot terverifikasi dan device-mapper-verity. Boot terverifikasi menjamin integritas perangkat lunak perangkat mulai dari root kepercayaan perangkat keras hingga partisi sistem. Selama boot, setiap tahap secara kriptografis memverifikasi integritas dan keaslian tahap berikutnya sebelum menjalankannya.
Android 7.0 dan yang lebih baru mendukung boot terverifikasi yang diterapkan secara ketat, yang berarti perangkat yang disusupi tidak dapat melakukan booting.
Lihat Boot terverifikasi untuk detail selengkapnya.
Kriptografi
Android menyediakan satu set API kriptografi untuk digunakan oleh aplikasi. Ini termasuk implementasi primitif kriptografi 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 dari aplikasi inti yang berjalan dengan izin root. Android tidak mencegah pengguna atau aplikasi dengan izin root untuk memodifikasi sistem operasi, kernel, atau aplikasi lainnya. Secara umum, root memiliki akses penuh ke semua aplikasi dan semua data aplikasi. Pengguna yang mengubah izin pada perangkat Android untuk memberikan akses root ke aplikasi meningkatkan paparan keamanan terhadap aplikasi berbahaya dan potensi kelemahan aplikasi.
Kemampuan untuk memodifikasi perangkat Android yang mereka miliki penting bagi pengembang yang bekerja dengan platform Android. Pada banyak perangkat Android, pengguna memiliki kemampuan untuk membuka kunci bootloader untuk memungkinkan pemasangan 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 perangkat dan kabel USB dapat menginstal sistem operasi baru yang memberikan hak akses root kepada pengguna. Untuk melindungi data pengguna yang ada dari kompromi, mekanisme buka kunci bootloader mengharuskan bootloader menghapus data pengguna yang ada sebagai bagian dari langkah membuka 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. 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 saat kunci tidak ada, tetapi pada titik tertentu kunci harus diberikan ke 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.
Dalam kasus perangkat hilang atau dicuri, enkripsi sistem file lengkap pada perangkat Android menggunakan kata sandi perangkat untuk melindungi kunci enkripsi, jadi memodifikasi bootloader atau sistem operasi tidak cukup untuk mengakses data pengguna tanpa kata sandi perangkat pengguna.
Fitur Keamanan Pengguna
Enkripsi Sistem File
Android 3.0 dan yang lebih baru menyediakan enkripsi sistem file lengkap, sehingga semua data pengguna dapat dienkripsi di kernel.
Android 5.0 dan yang lebih baru mendukung enkripsi disk penuh . Enkripsi disk penuh menggunakan satu kunci—dilindungi dengan kata sandi perangkat pengguna—untuk melindungi seluruh partisi data pengguna perangkat. Saat boot, pengguna harus memberikan kredensial mereka sebelum bagian mana pun dari disk dapat diakses.
Android 7.0 dan yang lebih baru mendukung enkripsi berbasis file . Enkripsi berbasis file memungkinkan file yang berbeda dienkripsi dengan kunci berbeda yang dapat dibuka kuncinya secara independen.
Rincian lebih lanjut tentang implementasi enkripsi sistem file tersedia di bagian Enkripsi .
Perlindungan Kata Sandi
Android dapat dikonfigurasi untuk memverifikasi sandi yang diberikan pengguna sebelum memberikan akses ke perangkat. Selain mencegah penggunaan perangkat yang tidak sah, kata sandi ini melindungi kunci kriptografik untuk enkripsi sistem file lengkap.
Penggunaan kata sandi dan/atau aturan kerumitan kata sandi dapat diminta oleh administrator perangkat.
Administrasi Perangkat
Android 2.2 dan yang 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 kata sandi — termasuk kata sandi alfanumerik atau PIN numerik — di seluruh perangkat. Administrator juga dapat menghapus dari jarak jauh (yaitu, mengembalikan default pabrik pada) handset 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 .