Google menerapkan keamanan jaringan pada android mulai dari API 24
dengan versi android 7.0 (Nauget)
atau yang lebih tinggi.
Fitur Konfigurasi Keamanan Jaringan memungkinkan aplikasi menyesuaikan setelan keamanan jaringan mereka dalam file konfigurasi deklaratif yang aman tanpa memodifikasi kode aplikasi. Setelan ini bisa dikonfigurasi untuk domain dan aplikasi tertentu. Kemampuan utama fitur ini adalah sebagai berikut:
- Anchor kepercayaan kustom: Menyesuaikan Otoritas Sertifikat (CA) mana yang dipercaya untuk sambungan aman suatu aplikasi. Misalnya, mempercayai sertifikat tertentu yang ditandatangani sendiri atau membatasi kumpulan CA umum yang dipercaya aplikasi.
- Penggantian khusus debug: Melakukan debug sambungan aman tanpa masalah di aplikasi tanpa menambah risiko pada basis yang diinstal.
- Memilih tidak menggunakan traffic cleartext: Melindungi aplikasi dari penggunaan traffic cleartext yang tidak disengaja.
- Pemasangan pin pada sertifikat: Membatasi sambungan aman aplikasi ke sertifikat tertentu.
Lebih lengkapnya anda bisa pelajari di google developer
Dengan menerapkan keamanan jaringan Anda bisa berkomunikasi jariangan dengan aman terlebih Anda bertukar data melalui internet, seringkali dengan server selain yang anda percayai, Anda perlu berhati-hati saat mengirim dan menerima informasi yang sensitif dan pribadi.
Berlaku pada android API 24
atau yang lebih tinggi, jika anda seringkali mengalami masalah pada jaringan tidak bisa terhubung dengan jaringan server, Pertama yang anda harus lakukan menambahkan URL pada file gradle.properties
.
postsUrl="http://storage.googleapis.com/network-security-conf-codelab.appspot.com/v1/posts.json"
cache
lokal supaya membatasi jumlah permintaan jaringan jarak jauh.
Konfigurasi Keamanan Jaringan
Konfigurasi Keamanan Jaringan memungkinkan aplikasi menyesuaikan pengaturan keamanan jaringan mereka melalui file konfigurasi deklaratif. Seluruh konfigurasi terkandung dalam file XML
, dan tidak diperlukan perubahan kode.
Ini memungkinkan untuk konfigurasi berikut ini:
- Penyisihan trafik Cleartext: Nonaktifkan trafik cleartext.
- Penanda kepercayaan khusus: Tentukan Otoritas Sertifikat dan sumber yang dipercayai aplikasi.
- Override khusus debug: Men-debug koneksi aman dengan aman tanpa memengaruhi build rilis.
- Penyematan sertifikat: Batasi koneksi aman ke sertifikat tertentu.
File dapat diatur oleh domain, memungkinkan pengaturan keamanan jaringan diterapkan ke semua URL atau hanya untuk domain tertentu.
Buat file XML Konfigurasi Keamanan Jaringan
Buat file resource xml
baru dengan nama network_security_config.xml
.
Di Panel Proyek Android di sisi kiri, klik kanan res
, lalu pilih New > Android Resurce File.
Kemudian atur sesuai gambar dibawah
Buka file xml/network_security_config.xml
ganti isinya dengan code berikut
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="false" >
</base-config>
</network-security-config>
Konfigurasi ini berlaku untuk konfigurasi dasar, atau konfigurasi keamanan default, dari aplikasi dan menonaktifkan semua lalu lintas teks yang jelas.
-
Jika
cleartextTrafficPermitted="false"
untuk menonaktifkan semua lalu lintas (traffic) text aplikasi -
Jika
cleartextTrafficPermitted="true"
untuk mengaktifkan semua lalu lintas (traffic) text aplikasi
Selanjutnya, tambahkan entri ke dalam konfigurasi aplikasi dalam AndroidManifest.xml
file dan referensi file konfigurasi keamanan jaringan yang baru dibuat.
Tambahkan android:networkSecurityConfig
properti ke applicationelemen di AndroidManifest
.
<application
...
android:networkSecurityConfig="@xml/network_security_config"
... >
Masalah Umum: Pembaruan sisi server
Konfigurasi Keamanan Jaringan dapat melindungi dari kerentanan ketika aplikasi membuat permintaan melalui koneksi yang tidak aman.
Masalah umum yang ditangani oleh Konfigurasi Keamanan Jaringan adalah perubahan sisi server yang memengaruhi URL
yang dimuat ke aplikasi Android. Misalnya, di aplikasi kami, bayangkan server mulai mengembalikan URL HTTP
tanpa jaminan untuk gambar profil alih-alih URL HTTPS
yang diamankan. Konfigurasi Keamanan Jaringan yang memberlakukan koneksi HTTPS
kemudian akan menimbulkan pengecualian karena persyaratan ini tidak akan dipenuhi saat runtime.
Demikian yang dapat saya sampaikan dari artikel ini semoga bermanfaat, jika ada yang ditanyakan silahkan di kolom komentar dibawah, selamat mencoba.