Sabtu, 01 Juni 2019

Tips untuk Mengamankan API key pada aplikasi android



Sempat coba reverse engineering juga pada 2 aplikasi di Playstore yg jumlah downloadnya puluhan ribu. Ternyata file apk keduanya (sepertinya) belum diproteksi dengan Proguard jadi keliatan semua source code nya. Mulai dari file Manifest.xml hingga semua file berekstensi .java bisa dibaca dengan mudah. Dari file hasil decompile itulah ketemu api key dari layanan Onesignal pada salah satu apk.

Beberapa penyedia layanan memberikan API key pada developer agar bisa mengakses layanan API. Salah satu contohnya adalah API key untuk Google map.
API key untuk mengakses layanan map dari google harus diamankan agar tidak bisa digunakan oleh pihak yang tidak berhak. Developer yang ‘nakal’ bisa gunakan API key pada aplikasi mereka dan membebankan tagihannya pada akun anda. Ingat, file apk bisa di-decompile dan semua kodenya baik itu java maupun xml bisa terbaca dari hasil decompile.

Pengamanan dengan membatasi pengguna

Khusus untuk API key dari Google map ada pengamanan yang dilakukan melalui console developer. Pengamanan melalui console dilakukan dengan membatasi penggunaan API key hanya untuk package name tertentu dan SH-1 certificate fingerprint tertentu.


Menyimpan API Key pada file C++

Cara yang lain adalah menyimpannya pada file C++ dengan bantuan NDK. Tutorial menyimpan API key pada file C++ bisa dibaca di link berikut..


Cara terbaru dan termudah bisa ikuti panduan melalui link di bawah ini
Securing API Keys in Android App using NDK (Native Development Kit)
cara ini menerut saya cukup aman namun lumayan ribet.

File Gradle bukan tempat aman untuk menyimpan API key

Beberapa developer menyimpan API key di file gradle. Awalnya saya juga merasa cara ini cukup untuk mengamankan API key. Tapi setelah saya baca-baca referensi saya menemukan bahwa tujuan menyimpan API key pada file gradle hanya untuk memisahkannya dari file-file yang dishare melalui VCS seperti github dan gitlab. Jadi meskipun API key disimpan di file gradle masih bisa ditemukan dengan cara decompile APK.
Saya menemukan percakapan dari artikel ini



Jadi sudah ada developer yang mencoba menyimpan API key pada file gradle dan menemukan fakta bahwa API key-nya belum aman dari decompile.
Sementara sampai di sini dulu bahasannya. Next time saya update lagi.
Semoga bermanfaat.


*Image by Shahid Abdullah from Pixabay

Tidak ada komentar:

Posting Komentar