ANDROID ARCHITECTURE
Apa itu Pemisahaan Hak Istimewa ?
Pemisahan Hak Isimewa adalah fitur keamanan yang
penting karena fitur ini menolak satu dari bayak tipe umum serangan. Di banyak
kasus, serangan yang dilakukakan pertama bukanlah serangan yang paling efektif.
Ini biasanya batu loncatan atau pintu gerbang untuk serangan yang lebih besar.
Biasanya, penyerang pertama kali akan mengeksploitasi satu komponen dari
system, dan sekali ada, mereka akan mencoba untuk menyerang komponen yang lebih
penting di system. Jika kedua komponen ini berjalan dengan satu hak istimewa
yang sama, sehingga ini adalah tugas yang sangat sepele untuk penyerang untuk
melompati dari satu kmponen ke komponen selanjutnya. Dengan pemisahaan hak
istimewa, tugas penyerang menjadi sangat sulit. Dia bisa meningkatkan atau
mengganti hak istimewanya kepada komponen yang ingin dia serang. Pada cara ini,
penyerangan berhenti, jika tidak melambat.
Karena Kernel melaksanakan pemisahaan hak istimewa,
ini adalah salah satu inti desain fitur android. Filosofi dibalik desain ini
untuk memastikan tidak ada aplikasi yang dapat membaca atau menulis kode atau
data dari aplikasi lain, pengguna perangkat, atau system operasinya sendiri.
Demikian, aplikasi mungkin tidak dapat semena-mena menggunakan tumpukan
perangkat jaingan untuk menghubungkan remot server. Satu aplikasi mungkin tidak
membaca langsung dari daftar kontak perangkat atau kalender. Fitur ini juga
dikenal sebagai sand boxing. Setelah dua proses yang berjalan di-sandboxes
mereka masing – masing, cara satu – satu nya mereka harus berkomunikasi dengan
satu sama lain adalah untuk meminta izin secara eksplisit unutk meminta data.
Perizinan
Mari kita ambil contoh sederhana. Kita mempunyai
aplikasi yang merekam suara dari mikrofon bawaan dari perangkat. Agar aplikasi
ini bekerja dengan baik, sang pengembang telah memastikan untuk menambahkan
permintaan dari izin RECORD_AUDIO di file aplikasi AndroidManifest.xml. ini
mengizinkan aplikasi kita untuk meminta izin untuk menggunakan komponen system
yang menangani perekaman suara. Tetapi yang menentukan apakah untuk memberi
atau menolak akses? Android mengizinkan pengguna akhir untuk menampilkan proses
terakhir persetujuan ini. Ketika pengguna memasang apliksai kita, dia diminta
dengan menampilkan layar di angka 1-4. Itu bermanfaat untuk mencatat cepat
untuk perizinan yang akan berlangsung ketika mengeksekusi aplikasi. Sebagai
gantinya, perizinan perlu diberikan pada waktu pemasangan.
Jika kita tidak secara ekspilisit mengatur kebutuhan
kita untuk izin RECORD_AUDIO, atau jika pemilik perangkat tidak memberikanv
kita izin setelah kita memintanya, kemudian sebuah pengecualian akan dilempar
oleh VM dan aplikasi akan gagal. Ini terserah kepada sang pengembang untuk
mengetahui permintaan izin dan menangani scenario dimana izin tidak diberikan dengan
menangkap pengecualian yang terkait. Untuk meminta izin ini, label berikut
harus dimasukan kedalam data AndroidManifest.xml dari proyek :
<uses-permission
android:name=”android.permission.RECORD_AUDIO” />
Daftar penuh
dari perizinan diberikan di buku lampiran ini.
Penandaan Kode Aplikasi
Banyak aplikasi yang
dijalankan pada sistem operasi Android yang harus di tandatangani. Android
menggunakan sertifikat pengembang individu dalam pemesanan untuk
mengidentifikasi mereka dan mendirikan hubungan terpercaya di antara banyak
aplikasi-aplikasi yang dijalankan dalam sistem operasi tersbut. Sistem operasi
tidak akan mengijinkan sebuah aplikasi yang tidak tertandatangani untuk di
kelola. Penggunaan sebuah sertifikat pewenang untuk menandai sertifikat tidak diperlukan,
dan android akan dengan mudah menjalankan banyak aplikasi yang telah tertanda
dengan
Seperti izin
pemeriksaan, sertifikat pemeriksaan dilakukan hanya pada saat pemasangan
aplikasi. Oleh karena itu, jika sertifikat pembangun anda sudah berakhir setelah
aplikasi anda terpasang di perangkat, maka aplikasi itu akan terus dikelola.
Yang membuat perbadaan pada poin ini hanyalah anda harus menghasilkan
sertifikat baru sebelum anda dapat membubuhkan aplikasi baru lainnya. Android
membutuhkan dia sertifikat terpisah untuk menelusuri versi dari aplikasi anda
dan mengeluarkan versi dari aplikasi anda. Biasanya, lingkungan Eclipse yang
menjalankan alat pengembangan android (APA) telaj disusun untuk membantu
mengembangkan kunci anda dan memasang sertifikat anda, sehingga aplikasi anda
dapat di bungkus dan ditandai secara otomatis. Program simulasi sistem android
menunjukkan reaksi identik dengan perangkat fisik. Seperti perangkat fisik, itu
hanya akan mengelola aplikasi tertanda. Kami akan menutupi kode aplikasi tertanda
secara detail, sebaik penerbitan dan penjualan aplikasi anda secara online.
Rangkuman
Seperti yang
kita lihat sejauh ini, Android menerima dorongan luar biasa dalam sumber daya
dan perhatian berkat pengambilalihan Google terhadap Android. Perawatan dan
perhatian yang sama ini telah membantu propel Android ke salah satu sistem
operasi smartphone yang tumbuh paling cepat di dunia saat ini. Model open
source Android telah membantu jumlahnya bertambah, terutama karena banyak
produsen hardware yang berbeda yang dapat menggunakan sistem operasi di ponsel
mereka.
Kita juga telah melihat
bahwa inti dari Android didasarkan pada kernel Linux. Dua tugas utama kernel
adalah (1) untuk melayani sebagai jembatan antara hardware dan sistem operasi,
dan (2) untuk menangani keamanan, manajemen memori, dan jaringan. Kernel
biasanya salah satu komponen utama yang akan diubah ketika produsen hardware
yang berbeda mulai mengadopsi Android untuk bekerja dengan perangkat keras
mereka.
lapisan berikutnya yang
terjadi di sekitar kernel Android adalah lapisan runtime yang terdiri dari
perpustakaan inti dan Dalvik mesin virtual. Dalvik VM adalah bagian mendasar dari pelaksanaan aplikasi Anda pada
platform android. Karena Anda
akan melihat dalam bab-bab berikutnya, Dalvik VM memiliki beberapa fitur unik
ketika datang ke mengeksekusi aplikasi dengan aman dan efisien dalam lingkungan
terbatas sumber daya
Lapisan
atas berikutnya yang akan ditambahkan adalah kerangka
kerja dan aplikasi, masing-masing.
Anda dapat memikirkan lapisan kerangka seperti jembatan lain antara API
Java dan kode asli dan sistem proses
asli berjalan di
bawah. Ini adalah di mana semua
API Java Android
hidup. Semua perpustakaan yang ingin Anda impor ke dalam program Anda diimpor
dari sini. Lapisan aplikasi adalah di mana
aplikasi Anda akhirnya
akan hidup dan bekerja. Anda akan berbagi
ruang ini dengan aplikasi pengembang lain dan aplikasi
Android dibundel seperti
telepon, kalender, e-mail dan pesan aplikasi.
Kita
kemudian melihat sebentar di risiko keamanan, bagaimana Anda memiliki tanggung jawab untuk melindungi
pengguna akhir Anda, dan beberapa cara di mana Android memfasilitasi ini.
tiga daerah yang
kita lihat adalah pemisahan hak
istimewa, hak akses, dan kode aplikasi penandatanganan. Di bab-bab berikutnya, kita
akan membahas apa yang dapat Anda lakukan tidak hanya untuk memanfaatkan fitur ini, tetapi juga menambahkan
sendiri tingkat keamanan dan pengguna akhir perlindungan.
Tidak ada komentar:
Posting Komentar