Kripsi
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Capgo menyediakan enkripsi akhir-ke-akhir yang kuat untuk paket 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 waktu nyata.
Ringkasan
Judul bagian “Ringkasan”Sistem enkripsi Capgo menggunakan metode kriptografi standar industri untuk melindungi paket Anda dari akses tidak sah. Ketika enkripsi diaktifkan, paket Anda dienkripsi sebelum meninggalkan lingkungan pengembangan Anda dan tetap dienkripsi hingga dienkripsi oleh aplikasi Anda di perangkat pengguna.
Apa Saja 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 yang memiliki kunci pribadi Anda yang dapat menghasilkan pembaruan enkripsi yang valid. Namun, hal ini tidak membuat aset web yang dikirimkan tidak dapat direversi: kunci publik yang digunakan oleh klien untuk mendekripsi pembaruan didistribusikan dalam aplikasi, sehingga seorang penyerang yang berdedikasi masih dapat mengekstraknya dan memeriksa isi bundle dengan cukup usaha. Kapan Anda Membutuhkan Enkripsi Kapan Anda Membutuhkan Enkripsi
Bagaimana Pengenkripsian Bekerja
Bagian berjudul “Bagaimana Pengenkripsian Bekerja”Capgo menggunakan pendekatan pengenkripsi hybrid yang menggabungkan pengenkripsi RSA dan AES untuk keamanan dan kinerja optimal:

1. Pembuatan Kunci
Judul bagian “1. Pembuatan Kunci”- Kunci Privat: Dibuat dan disimpan dengan aman di lingkungan pengembangan Anda (digunakan untuk enkripsi)
- Kunci Publik: Diperoleh dari kunci privat Anda dan disimpan di konfigurasi aplikasi Anda Capacitor (digunakan untuk dekripsi)
- Kunci Sesi: Kunci AES acak yang dibuat 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
- [targetLanguage]
- Bundel ceksum dihitung
- Kedua kunci sesi AES dan ceksum dienkripsi bersama menggunakan kunci privat RSA Anda (membuat “tanda tangan”)
Bundel yang dienkripsi dan tanda tangan yang dienkripsi disimpan
Ceksum dienkripsi bersama kunci AES untuk mencegah perubahan. Karena hanya kunci privat RSA Anda yang dapat membuat tanda tangan ini, dan hanya kunci publik yang sesuai yang dapat memecahkannya, ini memastikan bahwa kedua kunci sesi AES dan ceksum yang diharapkan adalah autentik dan belum diubah oleh penyerang.
3. Proses Penguraian- Judul bagian “3. Proses Penguraian”
- The Capgo SDK uses your RSA public key (stored in the app) to decrypt the signature
- __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ menggunakan kunci publik RSA Anda (yang disimpan di aplikasi) untuk memecahkan tanda tangan
- Ini mengungkapkan kunci sesi AES dan ceksum asli
- Kunci sesi AES digunakan untuk memecahkan bundel
Ceksum bundel yang dienkripsi dihitung dan dibandingkan dengan ceksum asli untuk verifikasi integritasnya. Proses ini memastikan bahwa bahkan jika penyerang menginterupsi bundel yang dienkripsi, mereka tidak dapat mengubah kunci sesi AES atau menyediakan ceksum palsu, karena mereka memerlukan kunci privat Anda untuk membuat tanda tangan yang valid yang dapat dipecahkan oleh kunci publik.
Capgo vs Platform Lainnya
Bagian berjudul “Capgo vs Platform Lainnya”| Fitur | Capgo | Platform OTA Lainnya |
|---|---|---|
| Isi Paket | Dienkripsi dalam penyimpanan/transportasi; masih dapat diperiksa oleh seorang pengecualian dengan aplikasi biner | Bacaan Publik |
| Metode Keamanan | Enkripsi akhir-ke-akhir yang benar | Code hanya menandatangani |
| Tingkat Privasi | Pengiriman/penyimpanan yang kuat; tidak melawan analisis ulang | Platform dapat mengakses code |
| Pengamanan | Konten + integritas + keaslian | Integritas + keaslian hanya |
Mengapa Ini Penting:
- Code menandatangani hanya memastikan bahwa pembaruan belum disalahgunakan dan berasal dari sumber yang tepat
- Capgo enkripsi melindungi bundle saat disimpan dan dikirimkan dan membuat pembaruan yang dibuat palsu sangat sulit karena penyerang perlu kunci pribadi Anda
- Reversi engineering masih mungkin setelah aplikasi dikirimkan, karena klien mengandung kunci publik yang diperlukan untuk memecahkan dan memuat pembaruan
Metode Pengenkripsi
Judul bagian “Metode Pengenkripsi”Capgo menggunakan Metode Pengenkripsi V2 sebagai metode pengenkripsi standar:
Pengenkripsi V2 (Standar Saat Ini)
Judul bagian “Pengenkripsi V2 (Standar Saat Ini)”- Menggunakan RSA-4096 untuk keamanan yang ditingkatkan
- AES-256-GCM untuk pengenkripsi yang terotentikasi
- Memberikan verifikasi integritas
- Kinerja yang lebih baik dan keamanan
V1 Enkripsi (Tidak Aktif)
Judul Bagian “V1 Enkripsi (Tidak Aktif)”- Menggunakan RSA-2048 untuk enkripsi kunci
- AES-256-CBC untuk enkripsi bundle
- Tidak tersedia lagi di versi CLI saat ini
- Aplikasi legacy yang menggunakan V1 harus bermigrasi ke V2
Panduan Pemigrasian
Bagian berjudul “Mengatur Enkripsi”Langkah 1: Buatlah Kunci Enkripsi
Bagian berjudul “Langkah 1: Buatlah Kunci Enkripsi”Pertama-tama, buatlah kunci enkripsi Anda menggunakan Capgo CLI:
# Generate new encryption keys (creates files in current directory)npx @capgo/cli@latest key createHal ini menciptakan:
.capgo_key_v2: Kunci pribadi Anda (jaga keamanannya!).capgo_key_v2.pub: Kunci publik Anda (digunakan oleh aplikasi Anda)
Berikut adalah file yang dibuat di direktori saat ini di mana Anda menjalankan perintah.
Langkah 2: Simpan Kunci Publik Anda ke Capacitor Konfigurasi (Wajib)
Judul Bagian “Langkah 2: Simpan Kunci Publik Anda ke Capacitor Konfigurasi (Wajib)”Anda harus menyimpan kunci publik Anda ke konfigurasi Capacitor agar aplikasi seluler Anda dapat mengenkripsi bundle:
# 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"Langkah 3: Sinkronkan Capacitor Platform (Wajib)
Judul Bagian “Langkah 3: Sinkronkan Capacitor Platform (Wajib)”Setelah menyimpan kunci publik, Anda harus sinkronkan platform Capacitor untuk menyalin konfigurasi yang diperbarui ke layer native:
# Sync the platform to copy config to nativenpx cap syncMengenkripsi Paket
Bagian berjudul “Mengenkripsi Paket”Metode 1: Mengenkripsi Selama Unggahan
Metode 1: Enkripsi Selama UnggahanCara termudah adalah dengan mengenkripsi selama proses unggahan:
# Upload with automatic encryptionnpx @capgo/cli@latest bundle upload --key-v2
# For external storage, you must encrypt first (see Manual Encryption Workflow below)Metode 2: Alur Enkripsi Manual
Untuk kontrol yang lebih, Anda dapat mengenkripsi bundle secara manual:Buat bundle zip:
-
Jendela Terminal
Salin ke clipboard npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2 -
Jendela Terminal
Salin ke clipboard 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:
-
Berdasarkan file (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"
Pengaturan 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.)
- Gunakan manajemen rahasia CI/CD untuk kunci pribadi
- Jangan pernah komit kunci pribadi ke pengontrol versi
Penggunaan Kunci:
- Kunci Pribadi: Digunakan oleh CLI untuk enkripsi selama unggahan bundle (tetap aman)
- Kunci Publik: Tersimpan dalam konfigurasi aplikasi untuk dekripsi di perangkat (aman untuk dicommit)
Rotasi Kunci
Bagian berjudul “Rotasi Kunci”Rotasikan kunci enkripsi secara teratur untuk meningkatkan keamanan:
-
Buat kunci baru:
Jendela terminal # Navigate to desired directory first, then create keysmkdir ./new-keys && cd ./new-keysnpx @capgo/cli@latest key create -
Simpan kunci publik baru ke Capacitor konfigurasi:
Jendela terminal npx @capgo/cli@latest key save --key ./new-keys/.capgo_key_v2.pub -
Perbarui konfigurasi aplikasi Anda dengan kunci publik baru
-
Tingkatkan aplikasi yang diperbarui sebelum mengunggah bundle yang dienkripsi dengan kunci baru
Praktik Keamanan Terbaik
Bagian berjudul “Praktik Keamanan Terbaik”Keamanan Kunci
Bagian berjudul “Keamanan Kunci”- Jangan pernah berbagi kunci pribadi antara lingkungan atau anggota tim
- Gunakan kunci yang berbeda untuk lingkungan yang berbeda (dev, staging, produksi)
- Rotasi kunci secara teratur (direkomendasikan: setiap 6-12 bulan)
- Simpan kunci dengan aman menggunakan sistem manajemen kunci yang tepat
Keamanan Paket
Judul bagian “Keamanan Paket”- Selalu verifikasi integritas paket setelah dekripsi
- Monitor untuk pola download yang tidak biasa atau gagal
- Gunakan HTTPS untuk semua URL paket (diperlukan untuk aplikasi mobile)
- Implementasikan penanganan kesalahan yang tepat untuk gagal dekripsi Pengendalian Akses
Bagian berjudul “Pengendalian Akses”
Batasi akses- ke kunci enkripsi hanya kepada staf yang berwenang saja Gunakan pengendalian berdasarkan peran
- untuk operasi manajemen kunci Audit
- penggunaan kunci dan akses secara teratur Implementasikan prosedur cadangan dan pemulihan yang tepat
- Implementasikan penanganan kesalahan yang tepat untuk gagal dekripsi Pengendalian Akses
Pengaturan Kesalahan
Judul Bagian “Pengaturan Kesalahan”Masalah Umum
Judul Bagian “Masalah Umum”Kegagalan Dekripsi:
- Pastikan kunci pribadi sesuai dengan kunci publik yang digunakan untuk enkripsi
- Periksa bahwa
ivSessionKeybenar - Pastikan Anda menggunakan Enkripsi V2 (V1 tidak lagi didukung)
Kunci terkait:
- Konfirmasikan format kunci pribadi benar (format PEM)
- Pastikan kunci tidak rusak selama penyimpanan/transfer
- Pastikan kunci memiliki izin yang tepat dalam konfigurasi aplikasi Anda
Masalah kinerja:
- Bundel besar mungkin membutuhkan waktu lebih lama untuk dienkripsi/didekripsi
- Gunakan Delta (manifest) untuk mengurangi ukuran bundel
- Monitor kinerja perangkat selama proses dekripsi
Perintah Debug
Bagian berjudul “Perintah Debug”Periksa status enkripsi:
npx @capgo/cli@latest app debugTest 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”Capgo’s implementasi enkripsi mengikuti standar industri:
- AES-256: Algoritma enkripsi asimetris yang kuat untuk perlindungan kunci
- RSA-4096: Enkripsi asimetris yang kuat untuk perlindungan kunci
- Mode GCM: Menyediakan keamanan keaslian dan keamanan konfidensialitas
- Random yang Aman: Penghasilan angka acak yang aman secara kriptografi
Hal ini membuat Capgo cocok untuk aplikasi yang memerlukan kinerja:
- GDPR (Regulasi Perlindungan Data Umum)
- HIPAA (Undang-Undang Keseimbangan Asuransi Kesehatan dan Tanggung Jawab)
- SOC 2 (Kontrol Organisasi Layanan 2)
- ISO 27001 (Manajemen Keamanan Informasi)
Konsiderasi Kinerja
Judul bagian “Konsiderasi Kinerja”Biaya Enkripsi
Judul bagian “Biaya Enkripsi”- Ukuran PaketPaket yang dienkripsi sedikit lebih besar (~1-2% biaya tambahan)
- Waktu Proses: Pengenkripsi/dikripsi menambahkan latensi minimal
- Penggunaan Memori: Peningkatan sementara selama operasi pengenkripsi/dikripsi
Tips Optimasi
Bagian berjudul “Tips Optimasi”- Gunakan perubahan Delta (manifest) untuk meminimalkan transfer data yang dienkripsi
- Optimalkan ukuran bundle Anda dengan mengonversi gambar ke format WebP
- Minimalkan file JavaScript dan CSS sebelum pembundelan
- Hapus dependensi yang tidak digunakan dan code
- Monitor kinerja perangkat pada perangkat yang lebih tua/lambat
Langkah-Langkah Selanjutnya
Bagian berjudul “Langkah-Langkah Selanjutnya”- Pelajari tentang Penyimpanan Kustom __CAPGO_KEEP_0__
- Tamu Saluran __CAPGO_KEEP_0__
- Konfigurasi Integrasi CI/CD __CAPGO_KEEP_0__