Pengamanan
Siapkan untuk dicopy
Capgo menyediakan enkripsi akhir-ke-akhir yang kuat untuk bundle aplikasi Anda, sehingga JavaScript code dan aset Anda dilindungi selama transmisi dan penyimpanan. Sistem enkripsi ini dirancang untuk memberikan Anda kendali penuh atas keamanan aplikasi Anda sambil mempertahankan kemudahan pembaruan hidup.
Ringkasan
Bab berjudul “Ringkasan”Sistem enkripsi Capgo menggunakan metode kriptografi standar industri untuk melindungi bundle Anda dari akses tidak berwenang. Ketika enkripsi diaktifkan, bundle Anda dienkripsi sebelum meninggalkan lingkungan pengembangan Anda dan tetap dienkripsi sampai di-dekripsi oleh aplikasi Anda di perangkat pengguna.
Apa yang Dilindungi oleh Enkripsi: Berbeda dengan sistem OTA yang hanya menandatangani pembaruan, Capgo mengenkripsi bundle yang diunggah sebelum penyimpanan dan pengiriman. Ini melindungi isi bundle dari akses sembarangan dalam penyimpanan atau transit dan memastikan hanya orang dengan kunci pribadi Anda yang dapat menghasilkan pembaruan enkripsi yang valid. Ini tidak menghalangi aset web yang dikirimkan untuk dipecahkan: kunci publik yang digunakan oleh klien untuk memecahkan pembaruan didistribusikan dalam aplikasi, sehingga seorang penyerang yang berdedikasi masih dapat mengekstraknya dan memeriksa isi bundle dengan cukup usaha.
Bagaimana Enkripsi Berfungsi
Judul Bagian “Cara Kerja Enkripsi”Capgo menggunakan pendekatan enkripsi hibrid yang menggabungkan RSA dan AES untuk keamanan dan kinerja optimal:

1. Pembuatan Kunci
Judul Bagian “1. Pembuatan Kunci”- Kunci Pribadi: Dibuat dan disimpan dengan aman di lingkungan pengembangan Anda (digunakan untuk enkripsi)
- Kunci Publik: Dihasilkan dari kunci pribadi Anda dan disimpan di konfigurasi Capacitor aplikasi Anda (digunakan untuk dekripsi)
- Kunci Sesi: Kunci AES acak yang dihasilkan untuk setiap unggahan bundle
2. Proses Enkripsi
Judul Bagian 2. Proses Enkripsi- Kunci sesi AES acak dibuat untuk setiap unggahan bundle
- Bundle Anda dienkripsi menggunakan kunci sesi AES
- Checksum bundle dihitung
- Kedua kunci sesi AES dan checksum dienkripsi bersama menggunakan kunci pribadi RSA Anda (membuat “tanda tangan”)
- Bundle yang dienkripsi dan tanda tangan yang dienkripsi disimpan
Checksum dienkripsi bersama kunci AES untuk mencegah perubahan. Karena hanya kunci pribadi RSA Anda yang dapat membuat tanda tangan ini, dan hanya kunci publik yang sesuai yang dapat memecahkannya, ini memastikan bahwa baik kunci sesi AES dan checksum yang diharapkan otentik dan tidak dimodifikasi oleh penyerang.
Judul Bagian 3. Proses Penguraian
Judul Bagian 3. Proses Penguraian- Aplikasi Anda mengunduh bundle yang dienkripsi dan tanda tangan yang dienkripsi
- Capgo SDK menggunakan kunci publik RSA Anda (yang disimpan di aplikasi) untuk memecahkan tanda tangan
- Ini mengungkapkan kunci sesi AES dan checksum asli
- Kunci sesi AES digunakan untuk membalikkan bundle
- Diperoleh checksum dari bundle yang dibalikkan dan dibandingkan dengan checksum asli untuk verifikasi integritas
Proses ini memastikan bahwa bahkan jika penyerang mengintersepsi bundle yang dienkripsi, mereka tidak dapat memodifikasi kunci sesi AES atau menyediakan checksum palsu, karena mereka perlu kunci pribadi Anda untuk membuat tanda tangan yang valid yang dapat dienkripsi oleh kunci publik
Capgo vs Platform Lain
Judul Bagian Capgo vs Platform Lain| Fitur | Capgo | Platform OTA Lain |
|---|---|---|
| Isi Bundle | Di enkripsi dalam penyimpanan/transit; masih dapat diperiksa oleh seorang insinyur balik yang berdedikasi dengan file biner aplikasi | Dapat dibaca secara publik |
| Metode Keamanan | Enkripsi akhir-ke-akhir yang sebenarnya | Code hanya tanda tangan |
| Level Privasi | Pelindungannya kuat; tidak melawan balik | Platform dapat mengakses code Anda |
| Pelindung | Konten + integritas + keaslian | Hanya integritas + keaslian |
Mengapa Ini Penting:
- Code penandatangan hanya memastikan bahwa pembaruan tidak telah dimanipulasi dan berasal dari sumber yang tepat
- Capgo enkripsi melindungi bundle saat disimpan dan dikirimkan dan membuat pembaruan enkripsi palsu jauh lebih sulit karena penyerang perlu kunci pribadi Anda
- Reversi engineering masih mungkin setelah aplikasi rilis, karena klien mengandung kunci publik yang diperlukan untuk mendekripsi dan memuat pembaruan
Methode Enkripsi
Bab berjudul “Methode Enkripsi”Capgo menggunakan Methode Enkripsi V2 sebagai metode standar enkripsi:
Methode Enkripsi V2 (Standar Saat Ini)
Bab berjudul “Methode Enkripsi V2 (Standar Saat Ini)”- Menggunakan RSA-4096 untuk keamanan yang lebih tinggi
- Enkripsi AES-256-GCM untuk enkripsi yang terautentik
- Menghasilkan verifikasi integritas
- Kinerja dan keamanan yang lebih baik
Enkripsi V1 (Tidak Aktif)
Judul Bagian “Enkripsi V1 (Tidak Aktif)”- Menggunakan RSA-2048 untuk enkripsi kunci
- Enkripsi AES-256-CBC untuk enkripsi paket
- Tidak lagi tersedia dalam versi CLI saat ini
- Aplikasi lama yang menggunakan V1 harus beralih ke V2
Mengatur Pengaturan Enkripsi
Bab berjudul “Mengatur Pengaturan Enkripsi”Langkah 1: Membuat Kunci Enkripsi
Bab berjudul “Langkah 1: Membuat Kunci Enkripsi”Pertama, buatlah kunci enkripsi Anda menggunakan Capgo CLI:
# Generate new encryption keys (creates files in current directory)npx @capgo/cli@latest key createIni menciptakan:
.capgo_key_v2: Kunci pribadi Anda (jaga ini aman!).capgo_key_v2.pub: Kunci publik Anda (digunakan oleh aplikasi Anda)
File-file ini dibuat di direktori saat ini di mana Anda menjalankan perintah.
Langkah 2: Simpan Kunci Publik Anda ke Konfigurasi Capacitor (Wajib)
Judul Bagian ‘Langkah 2: Simpan Kunci Publik Anda ke Konfigurasi Capacitor (Wajib)”Kamu konteks: Fragment teks HTML dari string Capgo UI yang lebih panjang (kunci induk `you_definition`). Halaman/area: Situs web pemasaran Capgo. Peran: Paragraf pemasaran atau hukum yang panjang. Dilihat di: halaman disclaimer.astro, halaman return.astro. Kunci pesan `you_definition` (Kamu Definisi). save your public key to the Capacitor config so your mobile app can decrypt bundles:
# Save public key from file to Capacitor config (required)npx @capgo/cli@latest key save --key ./.capgo_key_v2.pub
# Or save public key data directlynpx @capgo/cli@latest key save --key-data "$CAPGO_PUBLIC_KEY"Step 3: Sync Capacitor Platform (Required)
Langkah 3: Sinkronkan Platform Capacitor (Wajib)Setelah menyimpan kunci publik, Anda wajib mengsinkronkan Capacitor platform untuk menyalin konfigurasi yang diperbarui ke layer native:
# Sync the platform to copy config to nativenpx cap syncEnkripsi Paket
Judul: Enkripsi PaketMethode 1: Enkripsi Saat Unggah
Judul: Methode 1: Enkripsi Saat UnggahCara termudah adalah dengan mengenkripsi selama proses unggah:
# Upload with automatic encryptionnpx @capgo/cli@latest bundle upload --key-v2
# For external storage, you must encrypt first (see Manual Encryption Workflow below)Methode 2: Alur Kerja Enkripsi Manual
Judul: Methode 2: Alur Kerja Enkripsi ManualUntuk kontrol yang lebih, Anda dapat mengenkripsi paket secara manual:
-
Buatlah paket zip:
Tampilan Terminal npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2 -
Enkripsi bundle:
Jendela terminal npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM_FROM_STEP_1 -
Unggah ke penyimpanan Anda (misalnya, S3) dan daftarkan dengan Capgo:
Jendela terminal # First upload the encrypted bundle to your storage (e.g., AWS S3)aws s3 cp ./encrypted-bundle.zip s3://your-bucket/encrypted-bundle.zip# Then register with Capgo using the external URLnpx @capgo/cli@latest bundle upload --external https://your-storage.com/encrypted-bundle.zip --iv-session-key IV_SESSION_KEY_FROM_STEP_2
Manajemen Kunci
Bagian berjudul “Manajemen Kunci”Mengimpan Kunci dengan Aman
Bagian berjudul “Mengimpan Kunci dengan Aman”Opsi Kunci Pribadi:
-
File-based (pengembangan lokal):
Jendela terminal # Key stored as .capgo_key_v2 file in project rootnpx @capgo/cli@latest bundle upload --key-v2 -
Variabel lingkungan (CI/CD):
Jendela terminal # Store in environment variable for CIexport CAPGO_PRIVATE_KEY="$(cat .capgo_key_v2)"npx @capgo/cli@latest bundle upload --key-data-v2 "$CAPGO_PRIVATE_KEY"
Konfigurasi Kunci Publik (Diperlukan):
# Must save public key to Capacitor config for mobile appnpx @capgo/cli@latest key save --key ./.capgo_key_v2.pubLingkungan Produksi:
- Simpan kunci pribadi di layanan manajemen kunci yang aman (AWS KMS, Azure Key Vault, dll.)
- Pakai manajemen rahasia CI/CD untuk kunci pribadi
- Jangan pernah memasukkan kunci pribadi ke dalam pengontrol versi
Penyebab Penggunaan:
- Kunci Pribadi: Digunakan oleh CLI untuk enkripsi selama unggahan bundle (tetap aman)
- Kunci Publik: Disimpan dalam konfigurasi aplikasi untuk dekripsi di perangkat (aman untuk dikomit)
Putuskan setelah kompromi kunci pribadi
Bagian berjudul “Putuskan setelah kompromi kunci pribadi”Putuskan pasang kunci saat kunci pribadi dicurigai atau dikonfirmasi telah dicuri. Rotasi kalender rutin tidak diperlukan. Ini adalah migrasi kunci asli, bukan perubahan OTA saja.
-
Generate pasang kunci pengganti:
Jendela terminal npx @capgo/cli@latest key create -
Simpan kunci publik pengganti ke konfigurasi Capacitor Anda:
Jendela terminal npx @capgo/cli@latest key save --key ./.capgo_key_v2.pub -
Sinkronkan dan kirimkan rilis native yang telah diubah: Jalankan
npx cap sync, kemudian distribusikan aplikasi native baru yang berisi kunci publik pengganti. -
Targetkan versi native yang baru: Perangkat yang masih menjalankan binary native lama tidak dapat mengenkripsi pembaruan yang dienkripsi dengan kunci publik pengganti. Gunakan Target Versi context":"Page/area: Halaman Capgo solusi pemasaran. Peran: Judul bagian atau halaman. Dilihat di: halaman solusi/target-versi.astro. Pesan kunci `solutions_version_targeting_title` (Judul Target Versi Solusi). | Page/area: Halaman Capgo solusi pemasaran. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/target-versi.astro. Pesan kunci `solutions_version_targeting` (Target Versi Solusi)."
-
Untuk membatasi paket kunci publik pengganti hanya ke versi native yang baru sementara flota lainnya mengupdate melalui toko atau MDM. Ganti rahasia unggah Anda:
Praktik Keamanan Terbaik
Bab Praktik Keamanan TerbaikKeamanan Kunci
Bab Keamanan Kunci- Jangan pernah berbagi kunci pribadi antara lingkungan atau anggota tim
- Pakai kunci yang berbeda untuk lingkungan yang berbeda (dev, staging, produksi)
- Rotasi setelah gangguanGanti pasangan kunci ketika kunci pribadi dicurigai atau dikonfirmasi telah dibobol; rotasi kalender rutin tidak diperlukan
- Simpan kunci dengan aman Menggunakan sistem manajemen kunci yang tepat
Keamanan Paket
Bab berjudul “Keamanan Paket”- Selalu verifikasi integritas paket setelah dekripsi
- Pantau untuk pola download yang tidak biasa atau gagal
- Pakai HTTPS untuk semua URL paket (diperlukan untuk aplikasi mobile)
- Implementasikan Pengaturan Error yang Tepat untuk Kegagalan Dekripsi
Kontrol Akses
Bab berjudul “Kontrol Akses”- Pengaturan Akses Hanya Berikan Akses Kunci Enkripsi kepada Staf yang Berwenang
- Penggunaan Berbasis Peran untuk Operasi Pengelolaan Kunci Pengawasan
- Mengawasi Penggunaan dan Akses Kunci secara Teratur Mengimplementasikan
- Pengaturan Cadangan dan Pengembalian yang Tepat Pengaturan Masalah Enkripsi
Pengaturan Masalah Enkripsi
Judul Bagian: “Pengaturan Kunci Enkripsi”Masalah Umum
Judul Bagian: “Masalah Umum”Gagal Dekripsi:
- Pastikan kunci pribadi sesuai dengan kunci publik yang digunakan untuk enkripsi
- Periksa bahwa
ivSessionKeybenar - Pastikan Anda menggunakan Enkripsi V2 (V1 tidak lagi didukung)
Gagal Kunci:
- Konfirmasi format kunci pribadi benar (format PEM)
- Pastikan kunci tidak rusak selama penyimpanan/transfer
- Periksa bahwa kunci memiliki izin yang tepat dalam konfigurasi aplikasi Anda
Masalah kinerja:
- Bundle besar mungkin membutuhkan waktu lebih lama untuk dienkripsi/didekripsi
- Pertimbangkan menggunakan Delta (manifest) untuk mengurangi ukuran bundle
- Monitor kinerja perangkat selama proses dekripsi
Perintah Debug
Bagian berjudul “Perintah Debug”Periksa status enkripsi:
npx @capgo/cli@latest app debugUji alur enkripsi/dekripsi:
# Test the complete workflow: zip → encrypt → decrypt → unzipnpx @capgo/cli@latest bundle zip com.example.app --key-v2npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM --jsonnpx @capgo/cli@latest bundle decrypt ./encrypted-bundle.zip IV_SESSION_KEYKetentuan dan Standar
Judul Bagian “Ketentuan dan Standar”Implementasi Capgo untuk enkripsi mengikuti standar industri:
- AES-256: Algoritma enkripsi yang disetujui FIPS 140-2
- RSA-4096: Enkripsi asimetris yang kuat untuk perlindungan kunci
- GCM Mode: Memberikan keamanan kekonfidenan dan keaslian
- Random yang Aman: Penghasilan angka acak yang aman secara kriptografi
Hal ini membuat Capgo cocok untuk aplikasi yang memerlukan keterlaksanaan dengan:
- Regulasi Perlindungan Data Umum (GDPR)
- Undang-Undang Kesehatan Asuransi Portabilitas dan Tanggung Jawab (HIPAA)
- Kontrol Layanan Organisasi 2 (SOC 2)
- Manajemen Keamanan Informasi (ISO 27001)
Pertimbangan Kinerja
Bab yang berjudul “Pertimbangan Kinerja”Biaya Enkripsi
Bab yang berjudul “Biaya Enkripsi”- Ukuran Paket: Paket yang dienkripsi sedikit lebih besar (~1-2% overhead)
- Waktu Proses: Enkripsi/pengekripsi menambahkan ketidakstabilan waktu yang minimal
- Kebutuhan Memori: Peningkatan sementara selama operasi enkripsi/dekripsi
Tips Optimasi
Bab berjudul “Tips Optimasi”- Gunakan perbaruan Delta (manifest) untuk mengurangi transfer data yang dienkripsi
- Optimalkan ukuran bundle Anda dengan mengonversi gambar ke format WebP
- Minimalkan file JavaScript dan CSS sebelum bundling
- Hapus dependensi yang tidak digunakan dan code
- Monitor kinerja perangkat pada perangkat lama/lebih lambat
Langkah Selanjutnya
Bab berjudul “Langkah Selanjutnya”- Belajar tentang Penyimpanan Kustom untuk menggunakan enkripsi dengan infrastruktur sendiri Anda
- Explore Saluran context
- untuk mengelola bundle yang dienkripsi di berbagai lingkungan Set up Pengintegrasian CI/CD
Teruskan dari Enkripsi Teruskan dari Enkripsi (Judul Bagian) Untuk merencanakan keamanan dan kinerja, hubungkannya dengan Kinerja Untuk detail implementasi di Kinerja, Capgo Scanner Keamanan Untuk alur kerja produk di Capgo Scanner Keamanan, Capgo Keamanan Untuk alur kerja produk di Capgo Keamanan, Capgo Pusat Kepercayaan Untuk alur kerja produk di Capgo Pusat Kepercayaan, dan Keamanan Organisasi Untuk detail implementasi di Keamanan Organisasi.