Menyimpan token autentikasi secara aman merupakan kunci keamanan aplikasi mobile. Token merupakan kunci untuk akun pengguna, data sensitif, dan layanan. Jika terbongkar, mereka dapat menyebabkan pencurian identitas, penipuan keuangan, dan pelanggaran data. Berikut cara melindunginya:
Poin Utama:
- Gunakan Penyimpanan yang Aman Berdasarkan Platform: Simpan token di Keychain iOS atau Keystore Android untuk keamanan yang didasarkan pada perangkat.
- : Gunakan alat seperti(Android) atau
EncryptedSharedPreferences(iOS) untuk enkripsi yang aman.CryptoKit: Gunakan token yang berumur pendek dan rotasi token untuk mengurangi risiko. - : Selalu gunakan HTTPS dan implementasikan perekaman sertifikat untuk mencegah interupsi.__CAPGO_KEEP_0__
- __CAPGO_KEEP_0____CAPGO_KEEP_0__
- Manajemen Siklus Token: Rutinlah mengakhiri, memperbarui, dan membatalkan token untuk mengurangi kerugian dari pencurian.
Perbandingan Cepat Metode Penyimpanan:
| Metode Penyimpanan | Tingkat Keamanan | Kemudahan Penggunaan | Penggunaan Terbaik |
|---|---|---|---|
| Penyimpanan di Memori | Tinggi | Rendah | Sesi singkat, kebutuhan keamanan tinggi |
| Penyimpanan Lokal | Rendah | Tinggi | __CAPGO_KEEP_0__ |
| Kuki yang Aman | Tinggi | Menengah | Aplikasi Web dengan Kontrol Sisi Server |
| Kunci iOS | Sangat Tinggi | Menengah | Aplikasi iOS yang Menyimpan Token yang Sensitive |
| Android Keystore | Sangat Tinggi | Menengah | Aplikasi Android yang memerlukan penyimpanan yang aman |
| Enkripsi Kustom | Variabel | Menengah | Persyaratan Keamanan Khusus |
Mulai dengan mengaudit metode penyimpanan token aplikasi Anda saat ini dan implementasikan praktik terbaik untuk melindungi pengguna dan merek Anda.
Faux Disk Encryption Realities of Secure Storage on Mobile Devices - Daniel Mayer & Drew Suarez
Aturan Dasar untuk Penyimpanan Token yang Aman
Melindungi token memerlukan pendekatan berlapis untuk keamanan. Dengan menggabungkan beberapa pengamanan, Anda memastikan bahwa jika satu langkah gagal, lainnya masih melindungi data sensitif. Untuk aplikasi Capacitor, mengikuti praktik-praktik ini sangat penting untuk menjaga keamanan token di seluruh platform.
Gunakan HTTPS dan Penguncian Sertifikat
Penggunaan HTTPS adalah pertahanan pertama Anda terhadap interupsi token. Setiap interaksi antara aplikasi Anda dan server harus menggunakan HTTPS untuk mengenkripsi data dalam transit, mencegah paparan kepada penyerang.
Untuk memperkuat ini lebih lanjut, implementasikan penguncian sertifikat. Teknik ini memastikan aplikasi Anda berkomunikasi hanya dengan server yang dipercaya, bahkan jika seseorang mencoba menggunakan sertifikat palsu. Dengan mengkode sertifikat server atau kunci publik ke dalam aplikasi, Anda menetapkan hubungan kepercayaan langsung antara aplikasi dan server.
“Anda harus mengunci setiap kali Anda ingin yakin dengan identitas host jarak jauh atau ketika beroperasi di lingkungan yang berbahaya. Karena satu atau kedua hal ini hampir selalu benar, Anda mungkin harus mengunci semua waktu.” – Cheat Sheet Penguncian OWASP [5]
Contoh nyata: Twitter memperkenalkan penguncian sertifikat dalam aplikasi mobile setelah mengalami serangan Man-in-the-Middle (MitM). Tim mereka menyematkan kunci publik SSL sertifikat server langsung ke dalam aplikasi. Ketika pengguna terhubung, aplikasi memverifikasi sertifikat terhadap yang dipasang. Jika tidak ada kesesuaian, koneksi dihentikan segera. Pendekatan ini secara signifikan mengurangi serangan MitM dan meningkatkan kepercayaan pengguna dalam platform [5].
Anda dapat memilih antara penguncian sertifikat (mengvalidasi sertifikat seluruhnya) untuk keamanan maksimum atau penguncian kunci publik (mengvalidasi hanya kunci publik) untuk fleksibilitas yang lebih besar selama perpanjangan sertifikat. Alat seperti OkHttp untuk Android dan untuk iOS memudahkan menerapkan teknik-teknik ini Alamofire Setelah transmisi aman terpasang, langkah berikutnya adalah untuk meminimalkan paparan token. [5].
Mengurangi Paparan Token
Mengurangi paparan token melibatkan membatasi baik lingkup maupun masa hidup token. Konsepnya sederhana: semakin singkat waktu token berlaku dan semakin sedikit izin yang dimilikinya, maka semakin rendah risikonya jika terkompromi.
Gunakan
- token akses singkat dengan waktu kedaluwarsa yang diukur dalam menit. Pasang mereka dengan token refresh untuk menjaga sesi pengguna tanpa menyimpan token akses yang berlangsung lama di perangkat. Pendekatan ini memastikan token yang dicuri menjadi tidak berguna dalam waktu singkat. Terapkan prinsip kebijakan keamanan terkecil
- prinsip keamanan terkecil prinsip keamanan terkecil. Contohnya, jika token hanya dibutuhkan untuk membaca data profil pengguna, jangan berikan izin untuk mengubah pengaturan akun atau mengakses detail pembayaran.
- Aktifkan rotasi token refresh, di mana token refresh baru diterbitkan setiap kali digunakan untuk meminta token akses baru. Jika token refresh dicuri, maka menjadi tidak berlaku setelah aplikasi sah menggunakan token tersebut, sehingga mengurangi jendela risiko [4].
Dengan membatasi paparan token, Anda mengurangi kemungkinan kerusakan signifikan dari serangan. Selanjutnya, enkripsi memastikan token tetap aman bahkan jika perangkat fisik dicuri.
Enkripsi Token di Tempat
Enkripsi di Tempat melindungi token yang disimpan di perangkat. Bahkan jika perangkat hilang, dicuri, atau diserang oleh malware, enkripsi memastikan token tetap tidak dapat dibaca.
Sistem operasi mobile modern menyediakan penyimpanan yang aman dan didukung oleh perangkat keras yang jauh lebih dapat diandalkan daripada metode standar seperti SharedPreferences pada Android atau NSUserDefaults pada iOS [4].
- Untuk Android: Gunakan
EncryptedSharedPreferences(tersedia pada Android 10 dan setelahnya). Alat ini menghandle enkripsi dan manajemen kunci secara otomatis, sehingga memudahkan implementasi sambil meningkatkan keamanan. Misalnya,SecureJWTStorageclass dapat menyimpan dan mengambil JWT dengan aman menggunakanEncryptedSharedPreferencestanpa memerlukan enkripsi kustom kompleks code. - Untuk iOS: Keychain menawarkan enkripsi level perangkat keras untuk penyimpanan token yang aman. Pengembang dapat menggunakan
KeychainHelperclass untuk mengelola token JWT atau menambahkan lapisan keamanan tambahan dengan mengenkripsi token dengan CryptoKit sebelum menyimpannya di Keychain [4].
Kedua Android dan iOS menggunakan enkripsi yang didukung perangkat keras, seperti Secure Enclave di iOS dan Hardware Security Module di Android. Komponen-komponen ini menyimpan kunci enkripsi di perangkat keras yang tahan gangguan, terisolasi dari sistem operasi utama.
Akhirnya, tetapkan kebijakan penyimpanan data yang jelas. Otomatis hapus token yang telah kadaluarsa dan hapus data sensitif secara aman dari perangkat ketika tidak lagi diperlukan. Praktik-praktik ini memastikan token hanya disimpan selama waktu yang absolut diperlukan [6].
Metode Penyimpanan Token Platform-Spesifik
Setiap platform mobile menyediakan alat-alatnya sendiri untuk menyimpan token yang aman, dirancang untuk memenuhi kebutuhan keamanan dan pengalaman pengguna. Pilihan-pilihan asli ini membangun pada praktik-praktik dasar seperti HTTPS, enkripsi, dan membatasi paparan, yang dibahas sebelumnya.
Android: Keystore dan [EncryptedSharedPreferences]
![[EncryptedSharedPreferences]](https://assets.seobotai.com/capgo.app/683504c5d3b966198183bfc0/3d7bb4094014eecd42576ecc9be1e082.jpg)
Perangkat Android menawarkan perlindungan token yang kuat melalui sistem Keystore dan [EncryptedSharedPreferences] . Keystore menyimpan kunci kriptografi dengan aman di lingkungan yang dilindungi, sehingga sulit diekstrak dan memastikan mereka tetap tidak dapat diekspor. Ini berarti kunci hanya dapat digunakan untuk operasi yang aman. Selain itu, Anda dapat menambahkan batasan seperti memerlukan autentikasi pengguna. Untuk perangkat yang menjalankan Android 9 (__CAPGO_KEEP_0__ tingkat 28) atau lebih tinggi,. The Keystore securely stores cryptographic keys in a protected environment, making them difficult to extract and ensuring they remain non-exportable. This means the keys can only be used for secure operations. Additionally, you can add restrictions like requiring user authentication. For devices running Android 9 (API level 28) or later, menawarkan isolasi yang lebih besar dibandingkan dengan lingkungan Eksekusi Terpercaya (TEE) standar. Untuk memeriksa apakah StrongBox tersedia, gunakan , dan aktifkan dengan FEATURE_STRONGBOX_KEYSTORE[EncryptedSharedPreferences] menawarkan cara yang lebih sederhana untuk menyimpan pasangan nilai-kunci secara aman. Ini mengenkripsi data dan mengelola kunci dengan aman, mendukung __CAPGO_KEEP_0__ tingkat 23 dan di atasnya. Arun, seorang insinyur Android, menyoroti kemudahan penggunaannya: KeyGenParameterSpec.Builder.setIsStrongBoxBacked().
“Dengan hanya beberapa baris API, kita dapat
“With just a few lines of code, we can signifikan meningkatkan keamanan dengan menggunakan
EncryptedSharedPreferences. Ini adalah solusi yang kuat dan mudah digunakan untuk mengamankan data sensitif dalam aplikasi Android.”
Untuk praktik terbaik, implementasikan pengelolaan kesalahan, rotasi kunci setiap 90-180 hari, dan hindari menyimpan data yang sangat sensitif (seperti nomor kartu kredit) di SharedPreferences. Data tersebut seharusnya diproses di backend yang lebih aman daripada itu.
iOS: Keychain dan Enklaf Secure
Pada iOS, keamanan token bergantung pada Keychain dan Enklaf Secure. Keychain adalah repositori yang aman untuk data sensitif, seperti kata sandi dan token, menggunakan enkripsi AES-256-GCM. Keychain menggunakan sistem kunci ganda: satu kunci untuk metadata dan kunci unik untuk setiap item yang disimpan. Kunci metadata dilindungi oleh Enklaf Secure, yang menyimpannya untuk pencarian yang lebih cepat, sementara kunci rahasia memerlukan perjalanan balik ke enklaf untuk keamanan tambahan. Keychain juga mendukung pengiriman aman item di antara aplikasi dari pengembang yang sama, yang dikelola oleh securityd daemon.
Enkripsi Secure Enclave meningkatkan perlindungan dengan menggunakan kunci P256 dan penyimpanan aman sekitar 4 MB. Anda dapat meningkatkan keamanan lebih lanjut dengan mengonfigurasi Daftar Kontrol Akses (ACL) untuk memerlukan verifikasi Face ID, Touch ID, atau kode sandi menggunakan pengaturan seperti kSecAttrAccessibleWhenUnlocked. Untuk keamanan yang lebih ketat, pilihan .whenPasscodeSetThisDeviceOnly menjamin data tetap terkait dengan perangkat, sehingga mengurangi risiko akses tidak sah. Pastikan untuk mengatasi kasus-kasus sampingan seperti blokir biometrik atau reset perangkat, serta secara teratur memeriksa hak akses dan izin aplikasi.
CapacitorSecure Storage Plugin

Untuk aplikasi lintas-platform, Capacitor menawarkan Plugin Penyimpanan Aman yang memudahkan keamanan token tanpa memerlukan code spesifik platform. Pada iOS, plugin menyimpan data di Keychain Sistem yang dienkripsi, sedangkan pada Android, plugin mengenkripsi data menggunakan AES dalam mode GCM dengan kunci yang dihasilkan oleh Android Keystore sebelum menyimpannya di SharedPreferences. Untuk lingkungan web, plugin menggunakan penyimpanan tidak dienkripsi localStorage - tetapi hanya untuk tujuan debugging.
Pada bulan Februari 2025, martinkasa memperbarui capacitor-secure-storage-plugin untuk mendukung Capacitor v7, sehingga menyimpan nilai string yang aman di iOS dan Android. Plugin ini ideal untuk menyimpan kredit login dan data JSON. Namun, mereka mungkin tidak memiliki kontrol yang lebih halus seperti solusi asli. Untuk aplikasi level bisnis dengan kebutuhan keamanan yang lebih maju, solusi asli seperti iOS Keychain Services dan Android Keystore APIs - atau alat yang ditingkatkan seperti IonicVault Identitas - mungkin lebih cocok. Capacitor’s dokumentasi resmi juga menyarankan penggunaan penyimpanan aman native untuk data sensitif, seperti kunci enkripsi atau token sesi.
Jika Anda mengembangkan pembaruan live untuk aplikasi Capacitor, layanan seperti Capgo dapat meningkatkan keamanan token lebih lanjut. Capgo’s enkripsi akhir-ke-akhir menjamin bahwa pembaruan - termasuk yang berisi patch keamanan atau perbaikan manajemen token - disampaikan secara aman, menjaga integritas kerangka keamanan aplikasi Anda.
Manajemen Siklus Token dan Keamanan
Manajemen token efektif melibatkan pengawasan pembuatannya, kedaluwarsa, dan penghapusan. Pengembang harus merancang sistem yang menyeimbangkan antara kebijakan keamanan yang kuat dan pengalaman pengguna yang lancar. Di bawah ini, kita menjelajahi strategi untuk kedaluwarsa token, penghapusan, dan pembaruan OTA yang aman untuk membantu Anda membangun pendekatan manajemen token yang komprehensif.
Metode Kedaluwarsa dan Perbarui Token
Menggunakan token akses yang berumur pendek bersamaan dengan token perbarui yang lebih lama adalah praktik penting untuk pengelolaan token yang aman. Token akses harus kedaluwarsa dalam waktu 5-15 menit untuk mengurangi risiko penyalahgunaan jika terkompromi. Di sisi lain, token perbarui dapat tetap valid selama hari-hari atau minggu-minggu, memungkinkan pengguna untuk menjaga sesinya tanpa autentikasi ulang yang sering.
Kedaluwarsa token memainkan peran kritis dalam menjaga API yang aman dan efisien [7]Pairing ini dengan rotasi token - di mana token yang telah diterbitkan sebelumnya dibatalkan - menambahkan lapisan perlindungan tambahan. Metode ini meminimalkan kerusakan yang disebabkan oleh token refresh yang terompres dan dapat membantu mengidentifikasi aktivitas yang mencurigakan, seperti penggunaan kembali token yang sudah lama.
Ketika merancang mekanisme refresh, pastikan token diterapkan secara ketat selama proses refresh. Gunakan batasan kecepatan untuk melindungi serangan paksa dan gunakan pemantauan otomatis untuk mendeteksi anomali, seperti permintaan refresh dari lokasi yang berbeda-beda pada waktu yang sama. Menyeimbangkan keamanan dan kinerja adalah kunci untuk melindungi sesi pengguna tanpa mengganggu pengalaman secara keseluruhan.
Pembatalan dan Pembatasan Token
Sementara penggunaan token yang telah kadaluarsa sangat penting, pembatalan token menambahkan lapisan keamanan lainnya, terutama dalam skenario seperti keluaran pengguna, perangkat yang hilang, atau insiden keamanan yang diduga. Meskipun token akses JWT yang tidak memiliki keadaan tetap tetap valid hingga kadaluarsa, pengelolaan token refresh efektif dapat menghalangi penerbitan token akses baru.
Pembatalan token segera mencegah akses tidak sah ke sumber daya sensitif [8]Untuk membatalkan token segera, pertimbangkan untuk menerapkan blacklist server-side yang mencatat token yang dibatalkan dan memeriksa mereka selama API permintaan. Selain itu, fungsi Logout tunggal (SLO) memungkinkan pengguna untuk mengakhiri beberapa sesi autentikasi dalam satu aksi, sehingga semua token refresh terkait di layanan yang terhubung dibatalkan.
Penting juga untuk memiliki protokol yang jelas untuk mengatasi token yang telah dibobol. Protokol ini harus mencakup revokasi token segera, peringatan keamanan otomatis, pemberitahuan waktu yang tepat kepada pengguna yang terkena dampak, dan penghentian semua sesi aktif yang terkait dengan token yang dibobol.
Pembaruan Token yang Aman dengan Sistem OTA
Setelah Anda telah menetapkan siklus token yang kuat dan strategi revokasi, pembaruan over-the-air (OTA) yang aman menjadi penting untuk menjaga keamanan token karena ancaman yang terus berkembang. Sistem OTA memungkinkan Anda untuk segera mengdeploy patch keamanan, memutar kunci API, memperbarui sertifikat, dan memperhalus logika validasi - semua tanpa memerlukan pembaruan manual dari pengguna.
Untuk pengembang yang menggunakan Capacitor, alat seperti Capgo menyediakan solusi OTA yang kompatibel dengan enkripsi ujung ke ujung. Hal ini memastikan bahwa pembaruan keamanan disampaikan dengan aman ke perangkat sambil mematuhi pedoman Apple dan Android. Sistem seperti ini sangat berguna untuk menangani kebocoran keamanan yang mendesak.
Untuk meningkatkan keamanan token lebih lanjut, monitor aplikasi dan infrastruktur Anda untuk ancaman yang berkembang. Gunakan sistem OTA untuk mengeluarkan pertahanan waktu eksekusi dan tindakan lain yang canggih yang dapat langsung menghalangi pengguna atau perangkat yang mencurigakan, semua sambil memastikan layanan yang tidak terganggu bagi pengguna yang sah.
Mengadakan Perbandingan Pilihan Penyimpanan Token: Keamanan vs. Kemudahan Penggunaan
Ketika memutuskan cara menyimpan token dengan aman, semuanya tentang menemukan keseimbangan yang tepat antara keamanan dan kenyamanan. Pilihan Anda dapat mempengaruhi langsung keamanan aplikasi Anda terhadap serangan dan pengalaman pengguna secara keseluruhan. Mari kita analisis kelebihan dan kekurangan metode penyimpanan yang berbeda.
Penyimpanan Dalam Memori vs. Penyimpanan Tetap
Penyimpanan dalam memori menyimpan token di memori aplikasi atau variabel JavaScript, membuatnya sebagai pilihan yang sangat aman. Karena token tidak ditulis ke penyimpanan tetap, penyerang menggunakan serangan XSS tradisional memiliki kesempatan yang lebih sedikit untuk mengaksesnya.
Namun, ada satu hal: token yang disimpan di memori akan hilang ketika pengguna refresh halaman atau membuka tab baru. Ini membuat penyimpanan dalam memori kurang praktis untuk aplikasi web di mana pengguna mengharapkan pengalaman browsing yang lancar.
Di sisi lain, penyimpanan tetap - metode seperti penyimpanan lokal, penyimpanan sesi, atau cookie - menawarkan pengalaman yang lebih halus. Token yang disimpan secara persisten memungkinkan pengguna menutup browser, kembali kemudian, dan melanjutkan dari mana mereka tinggalkan tanpa perlu masuk lagi [9].
Namun, kemudahan ini datang dengan risiko keamanan. Penyimpanan tetap lebih rentan terhadap serangan XSS, di mana skrip jahat dapat mencuri token dari penyimpanan lokal atau sesi [4]. Cookie, meskipun menawarkan opsi konfigurasi tambahan, juga dapat ditargetkan oleh serangan CSRF jika tidak dijamin dengan flag yang tepat.
Untuk aplikasi seluler yang menggunakan Capacitor, Pekerja Web menawarkan tanah pertengahan. Berjalan di lingkungan global terpisah, mereka meningkatkan keamanan sambil menjaga kenyamanan lebih baik daripada penyimpanan dalam-memori [9]Jika Pekerja Web tidak menjadi pilihan, penutupan JavaScript dapat menyimulasikan metode privat untuk menambahkan lapisan perlindungan tambahan [9]Para pengembang seluler juga perlu mempertimbangkan kelebihan dan kekurangan penyimpanan keamanan native versus enkripsi kustom
Keychain/Keystore vs. Enkripsi Kustom
Untuk aplikasi seluler, penyimpanan keamanan native platform seperti Keychain iOS dan Keystore Android adalah standar emas. Solusi-solusi ini menawarkan keamanan yang didukung perangkat keras, membuat ekstraksi token jauh lebih sulit
Keindahan alat-alat native ini terletak pada sederetannya. Mereka dibangun ke dalam sistem operasi, sehingga pengembang tidak perlu menulis kode code yang ekstensif untuk mengimplementasinya. Selain itu, mereka mendukung fitur seperti autentikasi biometrik dan manajemen kredensial sentral, yang meningkatkan baik keamanan maupun kenyamanan pengguna [10].
Enkripsi khusus, di sisi lain, memberikan pengembang lebih banyak kontrol tetapi datang dengan tantangan yang signifikan. [10]Keamanan sepenuhnya bergantung pada seberapa baik enkripsi diimplementasikan dan seberapa aman kunci dielola
Banyak pengembang menganggap kompleksitas sistem yang aman terlalu rendah, yang dapat menyebabkan kelemahan.
| Dan karena standar kriptografi berkembang, solusi khusus memerlukan pembaruan dan perawatan yang berkelanjutan - membuatnya intensif sumber daya kecuali tim Anda memiliki keahlian mendalam di bidang ini. | Perbandingan Keamanan vs. Kemananan | Metode Penyimpanan | Tingkat Keamanan | Kemanan |
|---|---|---|---|---|
| Kompleksitas Implementasi | Kasus Penggunaan Terbaik | Penyimpanan di Memori | Rendah | Sesi singkat dengan tingkat keamanan tinggi |
| Penyimpanan Lokal | Rendah | Tinggi | Rendah | Hanya data tidak sensitif |
| Penyimpanan Sesi | Menengah | Tinggi | Rendah | Data sesi sementara |
| __CAPGO_KEEP_0__ | Tinggi (dengan flag yang tepat) | Menengah | Menengah | Aplikasi web dengan dukungan server |
| iOS Keychain | Sangat Tinggi | Menengah | Rendah | Aplikasi iOS asli/hibrida |
| Android Keystore | Sangat Tinggi | Indonesia | Rendah | Aplikasi Android native/hybrid |
| Enkripsi Kustom | Variabel | Rendah | Tinggi | Kebutuhan Keamanan Khusus |
Tabel ini menampilkan bagaimana opsi penyimpanan native platform seperti Keychain dan Keystore menawarkan kombinasi yang kuat dari keamanan dan kemudahan implementasi, sehingga mereka ideal untuk aplikasi mobile. Mereka menyediakan perlindungan yang kuat tanpa memerlukan pengembang untuk menguasai kriptografi.
Untuk pengembang Capacitor, menggunakan plugin penyimpanan yang aman untuk mengakses solusi native ini adalah langkah cerdas. Ini menggabungkan keamanan yang didukung oleh perangkat Keychain dan Keystore dengan fleksibilitas lintas-platform yang ditawarkan oleh Capacitor.
Akhirnya, pilihan penyimpanan token Anda harus sesuai dengan model ancaman aplikasi dan harapan pengguna. Aplikasi yang mengolah data sensitif, seperti aplikasi kesehatan atau keuangan, harus memprioritaskan keamanan di atas segalanya. Di sisi lain, aplikasi konsumen mungkin menerima risiko yang lebih tinggi untuk menyajikan pengalaman pengguna yang lebih halus. Dengan memahami kesan-kesan ini, Anda dapat memilih metode penyimpanan yang paling sesuai dengan kebutuhan Anda.
Poin Utama
Melindungi data pengguna melalui penyimpanan token yang aman bukan hanya praktik teknis terbaik - itu kebutuhan untuk menjaga integritas aplikasi Anda. Dengan 81% dari insiden yang dikonfirmasi pada tahun 2022 terkait dengan kata sandi yang lemah, digunakan kembali, atau dicuri [12]pengembang mobile perlu memprioritaskan langkah-langkah keamanan token yang kuat.
Ringkasan Praktik Terbaik
Rencana keamanan token yang efektif bergantung pada beberapa lapisan perlindungan. Mulai dengan menggunakan penyimpanan aman yang native platform, seperti iOS Keychain dan Android Keystore, yang menawarkan keamanan yang didukung oleh perangkat.Hindari menyimpan token di LocalStorage atau IndexedDB
, karena metode ini rentan terhadap serangan XSS. Sebaliknya, bergantung pada opsi penyimpanan aman yang dibangun ke dalam sistem operasi, sehingga akses yang terbatas. [2]Untuk pengembang yang menggunakan Capacitor, plugin penyimpanan aman menyediakan cara untuk mengakses perlindungan native sambil menjaga fungsi lintas platform.
Pengelolaan siklus token adalah aspek yang kritis lainnya. Perbarui token secara teratur dan implementasikan rotasi token refresh, menghasilkan token refresh baru setiap kali token akses diminta [3]. Siklus token refresh yang lebih singkat mengurangi risiko penyalahgunaan jika token dicuri.
Tetapkan kunci tanda tangan sebagai rahasia, berbagi hanya dengan layanan yang esensial [1]. Hindari praktik tidak aman seperti logging token atau menyematkannya dalam URL [11]. Langkah-langkah ini secara bersamaan memperkuat strategi manajemen token Anda.
Langkah-Langkah Berikut untuk Pengembang
Berikut cara Anda dapat bertindak atas praktik terbaik ini untuk meningkatkan keamanan token aplikasi Anda:
-
Audit metode penyimpanan token Anda. Jika Anda menggunakan solusi tidak aman seperti LocalStorage, prioritaskan migrasi ke penyimpanan yang aman secara native. Untuk aplikasi Capacitor , gunakan plugin penyimpanan yang aman untuk memanfaatkan perlindungan native secara efektif.
-
Implementasikan autentikasi berlapis. Gunakan metode yang lebih sederhana untuk aksi-aksi yang berisiko rendah, tetapi memerlukan autentikasi multi-faktor (MFA) atau biometrik untuk operasi yang sensitif. Menurut Microsoft, MFA dapat menghalangi 99,9% serangan otomatis cyber Namun, pertimbangkan pengalaman pengguna - studi menunjukkan bahwa sekitar satu per tiga pengguna menghindari MFA karena ketidaknyamanannya [12]Gunakan sistem pembaruan OTA (over-the-air) [12].
-
Gunakan sistem pembaruan OTA (over-the-air) untuk memperbarui aplikasi Anda secara aman dan efisien for secure and immediate rollouts. Tools like Capgo enable encrypted live updates for Capacitor apps, ensuring that security fixes reach users without compromising token safety during updates.
-
Tools seperti __CAPGO_KEEP_0__ memungkinkan pembaruan hidup yang terenkripsi untuk aplikasi __CAPGO_KEEP_1__, sehingga perbaikan keamanan dapat mencapai pengguna tanpa mengorbankan keamanan token selama pembaruan. Pusatkan pada manajemen siklus token.
-
Protokol perawatan, penggantian, dan pembatalan yang teratur sangat penting. Pastikan implementasi Anda mencerminkan prinsip-prinsip ini untuk mengurangi risiko. Pantau pola autentikasi. [13]Perhatikan aktivitas yang tidak biasa dan sesuaikan langkah keamanan Anda berdasarkan ancaman yang berkembang.
Uji keamanan secara teratur harus menjadi bagian rutin dari proses pengembangan Anda, bukan sesuatu yang dilupakan. Sementara keamanan ponsel terus berkembang, prinsip-prinsip dasar tetap sama: gunakan penyimpanan aman native, manajemen siklus token efektif, dan pastikan enkripsi tidak dapat diperdebatkan. Dengan 81% smartphone yang dilengkapi dengan biometrik [12]sejak tahun 2022
pengembang memiliki alat yang kuat untuk meningkatkan baik keamanan maupun pengalaman pengguna.
Pengguna Anda mengandalkan Anda dengan data mereka - pastikan praktik penyimpanan token Anda memenuhi standar keamanan tertinggi.
::: faq
Mengapa pengembang mobile harus menggunakan iOS Keychain dan Android Keystore untuk penyimpanan token yang aman?
Menggunakan penyimpanan aman yang berasal dari platform, seperti iOS Keychain dan Android Keystore, memainkan peran penting dalam melindungi data sensitif di dalam aplikasi mobile. Alat-alat ini dilengkapi dengan enkripsi bawaan, sehingga token tetap dilindungi dari akses yang tidak berwenang. Selain itu, mereka juga mengintegrasikan pengujian autentikasi pengguna, sehingga pengguna harus memastikan identitas mereka sebelum mengakses data yang disimpan. Hal ini menambahkan lapisan keamanan tambahan.
Satu di antara fitur yang menonjol dari sistem ini adalah bahwa kunci kriptografi tidak dapat diekspor. Artinya, kunci-kunci ini tidak dapat diambil dari perangkat, yang secara signifikan mengurangi risiko mereka terkompromi. Karena sistem-sistem ini dirancang untuk dapat diintegrasi dengan platform masing-masing dengan mudah, pengembang dapat mengimplementasikannya dengan mudah, menghindari kesulitan dalam mengelola proses enkripsi yang kompleks secara manual. Dengan menggunakan alat-alat ini tidak hanya memperkuat keamanan aplikasi, tetapi juga membantu pengembang untuk memenuhi standar keamanan modern dan mengikuti praktik-praktik yang direkomendasikan industri. :::
::: faq
Apa praktik terbaik untuk mengelola siklus token secara aman di aplikasi mobile?
Untuk mengelola siklus token secara aman di aplikasi mobile, pengembang harus mengikuti beberapa praktik yang penting. Mulai dengan menggunakan token yang berumur pendek, seperti token yang memiliki masa berlaku 15 menit. Hal ini meminimalkan jendela waktu untuk penyalahgunaan jika token terkompromi. Untuk menjaga kenyamanan pengguna tanpa mengorbankan keamanan, implementasikan token yang dapat diperbarui. Token ini memungkinkan token baru diterbitkan tanpa memaksa pengguna untuk masuk ulang secara berulang.
Penyimpanan token yang tepat sangat penting untuk mencegah akses tidak sah. Selalu bergantung pada solusi penyimpanan yang aman secara platform, seperti Keychain untuk iOS atau Android Keystore. Ini khususnya dibangun untuk melindungi data sensitif. Juga, hindari mengkodekan token secara keras atau menyimpannya dalam teks plaintext di dalam aplikasi, karena ini dapat membuatnya rentan terhadap ancaman.
Dengan mengintegrasikan praktik-praktik ini, pengembang dapat meningkatkan keamanan pengelolaan token di aplikasi mobile dan melindungi pengguna dari potensi kelemahan.
:::
::: faq
Apa tantangan yang dapat timbul dengan enkripsi kustom untuk penyimpanan token, dan kapan harus dipertimbangkan sebagai solusi native?
Saat menyimpan token di aplikasi mobile, menggunakan enkripsi kustom dapat menjadi pedang bermata dua. Meskipun mungkin terlihat seperti solusi yang disesuaikan menawarkan lebih banyak kontrol, seringkali membawa kompleksitas tambahan, membuka pintu bagi potensi celah keamanan, dan memerlukan perawatan yang berkelanjutan untuk tetap menangkap ancaman baru. Berbeda dengan alat enkripsi bawaan yang disediakan oleh platform, solusi kustom biasanya tidak memiliki pengujian yang luas, dokumentasi yang rinci, dan dukungan dari komunitas pengembang yang kuat. Ini dapat membuat debugging dan integrasi menjadi masalah yang lebih besar. Namun, ada situasi di mana enkripsi kustom menjadi tidak terelakkan - seperti ketika Anda berurusan dengan data yang sangat sensitif atau mencoba memenuhi persyaratan regulasi yang ketat yang alat standar tidak dapat menangani. Dalam kasus-kasus ini, sangat penting bagi pengembang untuk tetap mengikuti praktik terbaik untuk memastikan metode enkripsi mereka tidak hanya aman tetapi juga dapat diandalkan dan sesuai dengan standar industri. Perlu dipertimbangkan sebelum melompat ke pendekatan enkripsi khusus. :::