Menyembunyikan akses root di Magisk akan menjadi jauh lebih sulit dilakukan berkat perubahan terbaru di SafetyNet yang menghadirkan pengesahan perangkat keras.
Pada bulan Maret lalu, beberapa pengguna menginstal Magisk memperhatikan bahwa perangkat mereka gagal dalam pengesahan SafetyNet. Berita ini meresahkan komunitas di XDA karena ini berarti banyak aplikasi penting perbankan/keuangan dan game populer seperti Pokémon Go dan Fate/Grand Order menolak untuk dijalankan pada perangkat yang di-rooting. Untuk beberapa waktu, sepertinya pembatasan yang diperketat di SafetyNet telah ditarik kembali, namun kemudian diterapkan kembali kepada segelintir pengguna dalam beberapa minggu terakhir. Namun, Google diam-diam mengonfirmasi pada awal Mei bahwa mereka sedang menguji pengesahan yang didukung perangkat keras Tanggapan SafetyNet, itulah yang membuat Magisk tidak dapat menyembunyikan kembali status pembukaan kunci bootloader Berbaris. Jika perubahan ini diterapkan secara luas, berarti pengguna harus memilih antara memiliki akses ke root/custom ROM/kernel/dll. atau aplikasi dan permainan perbankan pilihan mereka. Salah satu daya tarik terbesar Android bagi pengguna tingkat lanjut akan segera hilang.
Untuk merangkum rangkaian acara ini, pertama-tama kita harus membicarakan tentang SafetyNet itu sendiri. SafetyNet adalah sekumpulan API di Layanan Google Play. SafetyNet Attestation API adalah salah satu API tersebut, dan dapat dipanggil oleh aplikasi pihak ketiga untuk memeriksa apakah lingkungan perangkat lunak perangkat telah dirusak dengan cara apa pun. API memeriksa berbagai hal seperti tanda-tanda biner pengguna super, status buka kunci bootloader, dan banyak lagi. Saat Anda melakukan root pada perangkat dengan Magisk, itu “[menciptakan] 'lingkungan aman' yang terisolasi untuk proses deteksi [SafetyNet], dan melewati API Google untuk membuat sah Hasil SafetyNet yang tidak mencerminkan status sebenarnya dari perangkat,” menurut Pengembang Senior yang Diakui XDA topjohnwu. Hal ini memungkinkan pengguna untuk melakukan root pada ponsel mereka sambil memastikan bahwa API selalu mengembalikan "false" untuk setiap pemeriksaan pembukaan kunci bootloader. Metode untuk melewati deteksi pembukaan kunci bootloader SafetyNet ini telah berhasil diterapkan pada Magisk selama beberapa waktu terakhir tahun, tapi itu hanya karena Google menunda verifikasi integritas image booting menggunakan perangkat keras pengesahan. Pada bulan Maret, sepertinya Google akhirnya mulai menggunakan pengesahan perangkat keras di SafetyNet untuk memverifikasi boot image, namun kami tidak pernah mendapat pernyataan resmi dari Google yang mengonfirmasi perubahan tersebut dan hanya sedikit pengguna yang menerimanya terpengaruh. Seperti yang terlihat oleh Anggota Senior XDA Pergeseran, namun, Google mengonfirmasi pada tanggal 5 Mei 2020, bahwa respons SafetyNet Attestation API dari beberapa perangkat kini menyertakan pemeriksaan yang didukung perangkat keras.
Di Grup Google untuk "Klien API SafetyNet", Google merinci fitur baru untuk API Pengesahan: tipe evaluasi. Respons JSON Web Signature (JWS) dari beberapa perangkat akan memiliki bidang bernama "evaluationType" yang "akan memberikan wawasan kepada pengembang ke dalam jenis sinyal/pengukuran yang berkontribusi pada masing-masing respons SafetyNet Attestation API." Salah satu token yang didukung di bidang ini adalah "HARDWARE_BACKED" yang menunjukkan bahwa API "[menggunakan] fitur keamanan yang didukung perangkat keras yang tersedia pada perangkat jarak jauh (misalnya. pengesahan kunci yang didukung perangkat keras) untuk mempengaruhi evaluasi [nya]." Google mengatakan bahwa mereka "saat ini sedang mengevaluasi dan menyesuaikan kriteria kelayakan untuk perangkat yang akan kami andalkan pada perangkat yang didukung perangkat keras fitur keamanan." Artinya, pada beberapa perangkat, Layanan Google Play kini menggunakan pengesahan yang didukung perangkat keras untuk mendeteksi bahwa perangkat lunak perangkat tersebut belum dirusak. Google belum secara resmi mendokumentasikan perubahan ini di luar pengumuman di Grup Google, sehingga beberapa pengembang yang menggunakan SafetyNet mungkin melakukannya tidak menyadari perubahan ini (dan karenanya belum memeriksa kolom "HARDWARE_BACKED" di tanggapan JWS.) Namun, untuk aplikasi yang sedang memeriksa bidang ini, kini tidak ada cara untuk menyembunyikan akses root dari bidang tersebut, asalkan perangkat Anda merupakan bagian dari pengujian yang dilakukan Google berlari.
Menurut topjohnwu, pengesahan yang didukung perangkat keras berarti bahwa Layanan Google Play sekarang “[mengirimkan] sertifikat keystore yang tidak dimodifikasi ke server SafetyNet, [memverifikasi] keabsahannya, dan [memeriksa] data ekstensi sertifikat untuk mengetahui apakah perangkat Anda [telah] mengaktifkan boot terverifikasi (status bootloader).” Karena kunci privat dari mana sertifikat keystore berasal didukung oleh lingkungan aman ponsel yang terisolasi, mengambilnya akan berarti mengalahkan keamanan Trusted Execution Environment (TEE) ponsel atau keamanan perangkat keras khusus modul (HSM). Jika seseorang entah bagaimana bisa membocorkan kunci pribadi, itu kunci akan segera dicabut setelah Google mengetahuinya. Google menawarkan imbalan ratusan ribu dolar untuk setiap kerentanan keamanan kritis yang memengaruhi TEE di ponsel Pixel, Hal ini menunjukkan bahwa sangat tidak mungkin hal ini menjadi jalan potensial untuk melewati deteksi pembukaan kunci bootloader omong-omong.
Cara lain yang mungkin dilakukan Magisk untuk terus memalsukan status pembukaan kunci bootloader adalah dengan memodifikasi kode sisi klien SafetyNet agar selalu menggunakan evaluasi BASIC. Sebagai catatan topjohnwuNamun, hal ini memerlukan memasukkan kode khusus ke dalam Layanan Google Play melalui kerangka kait seperti Xpose Framework. Hal ini tidak hanya sulit dilakukan karena Layanan Google Play sangat dikaburkan tetapi juga tidak mungkin disembunyikan karena "beberapa analisis ruang memori akan mengungkap manipulasi kode yang sangat dengan mudah." Selain itu, ini juga hanya akan berfungsi jika server Google terus menerima evaluasi BASIC dan jika evaluasi HARDWARE_BACKED tidak diterapkan pada perangkat yang mendukung mereka. (Respon SafetyNet "[berasal] dari server Google dan ditandatangani dengan kunci pribadi Google," menurut topjohnwu, sehingga respons sebenarnya tidak dapat dipalsukan.)
Sejak Android 7 Nougat, Google mewajibkan semua perangkat memiliki lingkungan aman yang terisolasi, artinya perubahan pada cara SafetyNet memverifikasi pembukaan kunci bootloader ini akan memengaruhi sebagian besar perangkat yang tidak aktif di sana. Karena perangkat lama tanpa lingkungan aman yang terisolasi jelas tidak dapat melakukan pengesahan yang didukung perangkat keras, Magisk masih dapat menyembunyikan akses root pada perangkat tersebut. Namun jika perubahan ini diterapkan secara luas, semua orang harus membuat pilihan sulit antara akses root dan aplikasi perbankan.
Sayangnya, mungkin ada banyak aplikasi di luar sana yang menggunakan pemeriksaan SafetyNet padahal sebenarnya tidak diperlukan. Salah satu contoh yang dikutip oleh topjohnwu adalah aplikasi resmi McDonald's, yang tampaknya menolak untuk dijalankan pada perangkat yang tidak terkunci bootloader. Di Twitter, topjohnwu menyebut aplikasi yang menggunakan API secara berlebihan karena menciptakan lingkungan yang tidak bersahabat bagi pengguna yang mahir. Pengembang yang Diakui XDA Quinny899 bergabung dengan anekdot tentang bagaimana timnya mempertimbangkan penggunaan SafetyNet untuk memeriksa status keamanan perangkat. Mereka akhirnya memutuskan untuk tidak melanjutkannya karena aplikasi timnya mengenkripsi semua data sensitif yang digunakannya. SafetyNet, menurutnya, tidak boleh digunakan sebagai pengganti praktik keamanan dan penanganan data yang tepat, terutama ketika mempertimbangkan hal tersebut kemungkinan eksploitasi pengguna super.
Untuk informasi lebih lanjut tentang bagaimana perubahan SafetyNet baru mempengaruhi Magisk, lihat topjohnwu's FAQ yang luar biasa di Twitter. Jika Anda hanya ingin memeriksa apakah perangkat Anda merupakan bagian dari pengujian SafetyNet baru Google, Anda dapat mengikutinya panduan ini oleh XDA Senior Member Displax atau unduh rilis Magisk Manager terbaru.
Artikel ini diperbarui pada pukul 10:46 EST pada tanggal 30 Juni 2020, untuk mengoreksi bahwa Google hanya membayar reward untuk kerentanan TEE yang ditemukan di ponsel Pixel. Selain itu, rincian ditambahkan mengenai rilis Magisk Manager terbaru yang sekarang menampilkan bidang evaluasiType di pemeriksa SafetyNet bawaan.