Kesimpulan dan kondisi pengambilan keputusan
- Pertama, inventarisasi secara terpisah model, runtime inferensi, logika pra/pasca-pemrosesan, templat prompt, kredensial API, cache, log, dan sumber daya sisi server.
- Enkripsi file melindungi fase penyimpanan statis; namun, status runtime setelah pemuatan, function invocation API, dan output memerlukan kontrol terpisah.
- Kunci API berprivilegi tinggi berumur panjang tidak boleh disimpan sebagai rahasia klien. Prioritaskan proksi sisi server, token berumur pendek, prinsip privilese minimum, dan strategi yang dapat dicabut.
- Play Integrity dan App Attest menyediakan bukti instances atau lingkungan aplikasi, namun otorisasi akhir dan remediasi risiko tetap berada di server.
Dekomposisi Aplikasi AI Seluler menjadi Tujuh Kelas Aset
Keamanan AI seluler sering disederhanakan hanya pada apakah model terenkripsi. Padahal, permukaan serangan mencakup setidaknya file model, runtime inferensi, pra-pemrosesan input, pasca-pemrosesan output, prompt atau aturan bisnis, kredensial API jarak jauh, data pengguna, dan log. Setiap kelas aset membawa konsekuensi berbeda saat bocor, mekanisme pembaruan yang-distinktif, serta tanggung jawab kepemilikan yang terpisah.
Menyalin bobot model dapat menyebabkan pencurian kekayaan intelektual dan hilangnya kapabilitas bisnis; memodifikasi templat prompt atau logika pasca-pemrosesan dapat mengubah perilaku bisnis; membocorkan Kunci API berumur panjang dapat langsung mengakibatkan kerugian finansial, akses data tanpa izin, atau penyalahgunaan sumber daya; log input/output mungkin mengandung data privasi pengguna. Hanya melindungi file model gagal menutupi sisa risiko tersebut.
Daftar aset harus mendokumentasikan lokasi penyimpanan, sumber pembuatan, jalur transmisi, pola penggunaan runtime, mekanisme pembaruan dan rollback, prinsip privilese minimum, cakupan log, dan periode retensi. Aset tanpa siklus hidup yang terdefinisi tidak boleh dianggap terlindungi hanya dengan mengaktifkan sakelar enkripsi.
| Aset | Risiko Utama | Kontrol Prioritas | Tidak Dapat Digantikan Oleh |
|---|---|---|---|
| File Model | Penyalinan, analisis statis, substitusi versi | Pengiriman terkontrol, perlindungan file, pemeriksaan integritas, dan pemasangan versi | Otorisasi API |
| Runtime Inferensi | Injeksi, debugging, inspeksi memori, risiko dependensi | Application hardening, tata kelola dependensi, validasi anomali dan kompatibilitas | Hanya mengenkripsi file model |
| Logika Pra/Pasca-Pemrosesan | Pembalikan atau modifikasi aturan | Perlindungan jalur kritis, verifikasi sisi server, dan regression testing | Perlindungan bobot model |
| Kredensial API | Penyalahgunaan, kelebihan biaya, dan eskalasi privilese data | Proksi sisi server, token berumur pendek, pembatasan privilese, dan rotasi | Obfuscation kode atau enkripsi model |
| Input/Output Pengguna | Kebocoran privasi, serangan injeksi, gema data sensitif | Pengumpulan minimal, penyaringan, masking, dan kontrol akses | Janji umum enkripsi perangkat |
| Log dan Cache | Retensi jangka panjang materi sensitif | Klasifikasi, masking, kedaluwarsa, dan ekspor terkontrol | Menonaktifkan satu sakelar debug |
| Sumber Daya Sisi Server | Function invocation tanpa izin dan penyalahgunaan otomatis | Kebijakan akun, kuota, analisis perilaku, versioning, dan strategi integritas | Kepercayaan yang dilaporkan sendiri oleh klien |
File Model Harus Menjadi Materi yang Dapat Digunakan Selama Runtime
Baik menggunakan Core ML, LiteRT, atau runtime on-device lainnya, model harus dimuat, diurai, dan dilibatkan dalam komputasi. Enkripsi lapisan berkas mengurangi kemudahan penyalinan langsung dari paket instalasi atau direktori aplikasi, tetapi tidak dapat mencegah aplikasi yang sedang berjalan mengakses materi model. Jika penyerang mengendalikan proses atau mengamati runtime, risiko bergeser dari berkas statis ke pemuatan, memori, pemanggilan fungsi, dan keluaran.
Hal ini bukan berarti enkripsi model tidak bernilai. Langkah ini meningkatkan biaya upaya penyalinan rendah, mencegah substitusi langsung, dan membentuk bagian dari strategi pertahanan berlapis bersama perlindungan paket, pemeriksaan integritas, deteksi lingkungan runtime, serta pasangan versi. Kuncinya adalah memfrasakan manfaatnya sebagai peningkatan biaya bagi penyerang dan pengurangan permukaan eksposur, alih-alih mengklaim ekstraksi mustahil dilakukan.
Pembaruan model juga menghadirkan tantangan kompatibilitas. Versi model harus dipasangkan dengan logika prapemrosesan, bentuk fitur, versi runtime, kemampuan perangkat keras, dan aturan pascapemrosesan. Kegagalan pembaruan memerlukan rollback aman untuk mencegah kombinasi acak antara model lama dan logika baru.
| Fase | Permukaan Eksposur | Fokus Kontrol | Pertanyaan Validasi |
|---|---|---|---|
| Pembangunan dan Pengemasan | Repositori, pipa CI, paket instalasi, dan direktori sumber daya | Kontrol akses, isolasi kunci, perlindungan berkas, dan identitas artefak | Model dan konfigurasi mana saja yang muncul dalam paket akhir? |
| Unduhan dan Pembaruan | Jaringan, tembolok, dan pergantian versi | Perlindungan transmisi, penandatanganan atau pemeriksaan integritas, penggantian atomik, dan rollback | Akankah pembaruan anomali memuat model yang tidak cocok? |
| Pemuatan dan Inferensi | Memori proses, antarmuka runtime, dan backend perangkat keras | Perlindungan runtime, residensi minimal, penanganan pengecualian, dan kompatibilitas | Kapan model menjadi tersedia, dan bagaimana kegagalan menghentikan eksekusi? |
| Keluaran dan Pencatatan | Hasil, skor kepercayaan, informasi debug, dan data pengguna | Keluaran minimal, penyamaran, kontrol akses, dan kedaluwarsa | Apakah log membocorkan detail model atau informasi sensitif pengguna? |
Kunci API Berhak Tinggi Berumur Panjang Tidak Boleh Menjadi Rahasia Klien
Dokumentasi keamanan Android secara eksplisit menyatakan bahwa Kunci API yang disematkan dalam kode sumber dapat ditemukan melalui dekompilasi setelah aplikasi dikompilasi. Obfuscation dan application hardening dapat meningkatkan biaya untuk menemukannya, tetapi tidak dapat mengubah fakta bahwa klien harus memegang dan menggunakan kredensial ini. Selama kunci tetap berumur panjang dan berhak tinggi dalam klien generik, dampak kebocoran sulit dibatasi.
Android Keystore dapat menjaga material kunci tertentu agar tidak dapat diekspor, namun dokumentasi resmi memperjelas bahwa jika proses aplikasi dikompromikan, penyerang mungkin masih dapat menggunakan kunci aplikasi untuk melakukan operasi. Ini cocok untuk melindungi kunci privat terikat perangkat dan enkripsi lokal, tetapi tidak boleh disalahartikan sebagai brankas aman bagi rahasia bersama berumur panjang sembarang untuk layanan jarak jauh.
Arsitektur yang lebih kuat mengharuskan klien meminta token berumur pendek, terbatas, dan dapat dicabut dari layanannya sendiri berdasarkan identitas pengguna dan konteks perangkat, atau menjadikan server-side proxy menangani pemanggilan fungsi model berisiko tinggi. Server harus menegakkan otorisasi akun, kuota, pembatasan laju, cakupan model, cakupan data, dan pemantauan perilaku anomali.
- Isolasi kredensial berdasarkan lingkungan pengembangan, pengujian, dan produksi
- Pastikan token memiliki izin model dan data minimal
- Aktifkan pencabutan sisi server dan tegakkan kuota serta batas laju
- Cegah klien menyimpan kunci bersama berhak tinggi berumur panjang
request = verify_user_session(input.session)
app = verify_app_evidence(input.attestation)
policy = load_policy(user=request.user, app=app.identity)
if policy.version_state == UNKNOWN:
return CHALLENGE_OR_LIMIT
if policy.account_scope.allows(input.model_scope) == false:
return DENY
if policy.risk_score >= HIGH:
return STEP_UP_VERIFICATION
return issue_short_lived_token(
scope=input.model_scope,
quota=policy.quota,
expires_in=policy.short_window
)Sinyal Integritas Hanya Boleh Menginformasikan Keputusan Sisi Server
Play Integrity menyediakan sinyal bagi backend Android terkait identifikasi aplikasi, integritas perangkat, lisensi akun, dan risiko lingkungan parsial. Apple App Attest membantu server menentukan apakah permintaan berasal dari instans aplikasi yang valid dengan menghasilkan kunci perangkat, menerbitkan tantangan satu kali, memverifikasi atestasi di sisi server, dan memproses asersi berikutnya. Persamaannya adalah bukti tersebut akhirnya divalidasi oleh server.
Mekanisme ini memiliki batasan yang jelas. Sinyal terkait Play dipengaruhi oleh sumber distribusi, status perangkat, dan kondisi layanan; dokumentasi Apple mencatat bahwa App Attest tidak didukung pada semua jenis perangkat dan tidak ada kebijakan tunggal yang menghilangkan seluruh penipuan. Server harus membedakan antara status lolos, gagal, tidak tersedia, error sementara, dan keadaan belum dikonfigurasi. Server tidak boleh menyamakan 'tidak tersedia' langsung dengan serangan, maupun melakukan penilaian akhir secara lokal di klien.
Sinyal integritas dan enkripsi model menangani masalah yang berbeda. Yang pertama membantu memverifikasi instans aplikasi dan lingkungan runtime, sedangkan yang kedua mengurangi paparan model statis. Otorisasi sejati tetap memerlukan konteks akun, pemeriksaan sumber daya bisnis, validasi versi, analisis konten permintaan, penegakan kuota, dan konteks perilaku.
| Lapisan | Apa yang Disediakan | Siapa yang Memvalidasi | Penyalahgunaan Umum |
|---|---|---|---|
| Proteksi Berkas Model | Ketahanan terhadap akses dan substitusi penyimpanan statis | Klien dan rantai pengiriman | Menganggap enkripsi berkas sebagai otorisasi API |
| Play Integrity | Sinyal terkait aplikasi Android, perangkat, akun, dan lingkungan | Sisi server | Klien mengembalikan nilai boolean tepercaya secara mandiri |
| App Attest | Atestasi dan asersi untuk kunci instans aplikasi Apple | Sisi server | Mengabaikan tantangan, penghitung, atau perangkat yang tidak didukung |
| Kebijakan Akun dan Bisnis | Apakah pengguna dapat mengakses model, data, dan kuota tertentu | Sisi server | Hanya mengandalkan sinyal perangkat sambil mengabaikan izin pengguna |
| Pengendalian Risiko Perilaku | Pembatasan laju, deteksi replay, pencegahan penyalahgunaan massal, dan konteks anomali | Sisi server | Memberikan kepercayaan permanen setelah satu kali lolos |
Validasi Aplikasi AI Seluler Memerlukan Pandangan Statis, Runtime, dan Sisi Server
Pemeriksaan statis menjawab model, konfigurasi, string, kredensial, dan sumber daya debug apa saja yang ada dalam paket instalasi; pemeriksaan runtime menjawab bagaimana model dimuat, bagaimana kegagalan ditangani, apakah log membocorkan data, dan apakah pembaruan dapat dikembalikan; pemeriksaan sisi server menjawab apakah akun, versi, integritas, kuota, dan izin data benar-benar ditegakkan. Ketiadaan salah satu dari tiga jenis bukti ini akan membiasakan kesimpulan menuju pandangan parsial.
Pengujian harus menggunakan kandidat rilis unik dan versi model eksplisit, dengan mendokumentasikan sistem target, kapabilitas perangkat, backend runtime, sumber model, dan status pembaruan. Kinerja inferensi on-device, penggunaan memori, dan kompatibilitas bergantung pada struktur model, kuantisasi, perangkat keras, dan runtime; angka dari model atau perangkat lain tidak dapat dikutip.
Jalur pengecualian sangat kritis: berkas model hilang atau rusak, pembaruan terputus, runtime tidak didukung, token server kedaluwarsa, sinyal integritas tidak tersedia, unggahan log gagal, dan izin pengguna dicabut. Sistem harus mengalami degradasi secara aman, menyediakan keadaan yang dapat dipulihkan bagi pengguna maupun tim operasional.
| Permukaan Bukti | Konten Pemeriksaan | Kondisi Lolos | Batasan Kesimpulan |
|---|---|---|---|
| Paket Instalasi (Statis) | Model, kunci, konfigurasi, penanda log, dan sumber daya debug | Tidak ada rahasia berprivilese tinggi berumur panjang; pengiriman model selaras dengan desain | Tidak dapat membuktikan runtime tidak teramati |
| Runtime Model | Pemuatan, siklus hidup memori, error, kinerja, dan rollback | Stabil pada perangkat target dengan penanganan pengecualian yang aman | Tidak dapat membuktikan otorisasi sisi server sudah benar |
| Jaringan dan Kredensial | Validitas token, izin, rotasi, proteksi replay, dan kebijakan sertifikat | Privilese minimum dan kemampuan pencabutan | Tidak dapat membuktikan berkas model terlindungi |
| Kebijakan Sisi Server | Akun, versi, integritas, kuota, dan perilaku | Sumber daya berisiko tinggi yang ditentukan secara final oleh server | Tidak dapat memperlakukan sinyal platform tunggal sebagai sumber tepercaya mutlak |
| Privasi dan Log | Masukan/keluaran, tembolok, diagnostik, dan ekspor | Pengumpulan minimal, penyamaran, dan kemampuan kedaluwarsa | Harus dikombinasikan dengan persyaratan klasifikasi data bisnis |
Kesimpulan Desain dan Batasan Cakupan
Enkripsi model memang bermanfaat, namun hanya mewakili satu titik kendali dalam siklus hidup model. Aplikasi AI komersial juga perlu melindungi logika pra/pasca-pemrosesan, mencegah kunci berprivilegi tinggi berumur panjang masuk ke klien, memastikan server melakukan otorisasi final, menerapkan toleransi kesalahan untuk sinyal integritas platform, serta mengatur data pengguna dan log.
Tanpa release candidate aktual, versi model, perangkat target, dan antarmuka sisi server, kami hanya dapat meninjau arsitektur dan item validasi yang tertunda. Kami tidak dapat mengklaim model tahan ekstraksi, antarmuka tahan penyalahgunaan, injeksi runtime terblokir, atau target kinerja terpenuhi. Kesimpulan semacam itu memerlukan paket bukti terkini.
Titik masuk tindakan Yudun pada halaman ini khusus untuk mengajukan permohonan application hardening dan asesmen kompatibilitas; ini bukan validasi terhadap kerangka kerja model tertentu atau kapabilitas eksklusif AI. Cakupan proyek harus dikonfirmasi terpisah setelah mengirimkan tumpukan teknologi, metode pengiriman model, dan jalur bisnis kritis.
- Pelihara register terpisah untuk model, runtime, kredensial, dan data
- Pastikan invokasi berisiko tinggi diotorisasi secara final oleh server
- Sediakan jalur ketidaktersediaan dan degradasi untuk sinyal platform
- Aktifkan pembaruan model untuk mendukung verifikasi, pengalihan atomik, dan rollback
- Ikatkan semua kesimpulan pada release candidate dan versi model tertentu
Batasan bukti dan penerapan
Bagian ini memisahkan fakta platform yang terdokumentasi, penilaian teknik, dan batasan yang tidak dapat digeneralisasikan ke dalam klaim produk yang belum diverifikasi.
| Penghakiman pasal | Dasar fakta atau rekayasa | Batas penerapan |
|---|---|---|
| Kunci API yang dikompilasi ke dalam klien dapat ditemukan melalui dekompilasi. | Daftar Periksa Keamanan Android resmi menyatakan secara eksplisit bahwa ketika kode sumber mengandung Kunci API, penyerang dapat mendekompilasi aplikasi dan menemukan sumber daya tersebut. | Beberapa Kunci berprivilegi rendah yang dibatasi platform mungkin berada di klien sesuai aturan vendor, namun pembatasan cakupan dan pemantauan tetap diperlukan. |
| Android Keystore tidak dapat mencegah proses yang terkompromi menggunakan kunci. | Dokumentasi resmi Android menyatakan bahwa meskipun materi kunci dapat bersifat non-ekspor, penyerang tetap dapat menggunakan kunci aplikasi jika proses aplikasi terkompromi. | Kapabilitas perlindungan spesifik bergantung pada penggunaan kunci, dukungan perangkat keras, batasan autentikasi, dan detail implementasi. |
| Atestasi dan asersi App Attest harus divalidasi di server. | Alur kerja resmi Apple menggunakan tantangan sisi server, verifikasi atestasi, penyimpanan kunci publik, dan penghitung asersi berikutnya. | Tidak semua jenis perangkat didukung, dan Apple menyatakan secara eksplisit bahwa tidak ada kebijakan tunggal yang menghilangkan semua penipuan. |
| Perlindungan berkas model tidak dapat menggantikan otorisasi sumber daya sisi server. | Keduanya melindungi objek berbeda: satu menargetkan berkas sisi klien dan materi runtime, sedangkan lainnya menargetkan izin akun, model, data, dan kuota. | Ini adalah penilaian tanggung jawab arsitektural dan tidak menyiratkan bahwa implementasi enkripsi model tertentu telah lolos validasi. |
| Kesimpulan mengenai kinerja dan kompatibilitas model on-device harus diikat pada model dan perangkat tertentu. | Struktur model, metode kuantisasi, runtime, backend perangkat keras, versi sistem, dan skala masukan secara bersama-sama memengaruhi hasil. | Artikel ini tidak menyediakan atau menyiratkan angka kinerja apa pun untuk model Yudun. |
Pertanyaan teknik
Model sudah dienkripsi; mengapa saya masih tidak bisa menempatkan Kunci API di dalam aplikasi?
Enkripsi model melindungi berkas model, sedangkan Kunci API adalah kredensial untuk mengakses sumber daya jarak jauh. Ketika klien harus menggunakan Kunci tersebut, penyerang tetap dapat memperoleh atau menyalahgunakannya melalui observasi statis atau runtime.
Apakah menyimpan Kunci API di Android Keystore benar-benar aman?
Keystore dapat mengurangi risiko ekspor materi kunci, namun proses aplikasi yang terkompromi tetap dapat melakukan function invocation terhadap kunci tersebut. Mekanisme ini lebih cocok untuk operasi terikat perangkat (on-device) dan tidak menggantikan prinsip least privilege di sisi server maupun penggunaan token berumur pendek.
Dapatkah perangkat dipercaya secara permanen setelah lolos Play Integrity atau App Attest?
Tidak. Bukti yang diberikan hanya valid untuk waktu dan konteks tertentu. Server tetap harus memvalidasi akun, permintaan, versi, kuota, dan perilaku, sambil menangani ketidaktersediaan sinyal serta perubahan status.
Apakah model on-device wajib dimigrasikan ke server?
Tidak selalu. Skenario offline, sensitif privasi, dan latensi rendah mungkin memerlukan inferensi on-device. Aset harus dilapisi berdasarkan nilai dan kondisi bisnis, dengan menjaga izin berisiko tinggi dan rahasia berumur panjang tetap di server.
Penilaian apa yang dapat dilakukan tanpa sampel model?
Kami dapat meninjau aset, rantai pengiriman, arsitektur kredensial, strategi pembaruan, dan rencana validasi, namun kami tidak dapat mengklaim bahwa pencegahan ekstraksi model, proteksi runtime, atau kompatibilitas kinerja telah lulus uji.
Ingin mengujinya di aplikasi Anda sendiri?
Kirimkan kandidat rilis, sistem target, dan jalur bisnis penting untuk Yudun PoC dan penilaian kompatibilitas.
Lanjutkan dengan: Batasan keamanan runtime untuk aplikasi AI seluler