Enkripsi
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 tetap 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. Ini tidak membuat asset web yang dikirimkan tidak mungkin 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 banyak upaya. Kapan Anda Membutuhkan Enkripsi
Bagaimana Enkripsi Bekerja
Bagian berjudul “Bagaimana Enkripsi Bekerja”Capgo menggunakan pendekatan enkripsi hybrid yang menggabungkan enkripsi RSA dan AES untuk keamanan dan kinerja optimal:

1. Pembuatan Kunci
Bab berjudul “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 aplikasi Anda Capacitor (digunakan untuk dekripsi)
- Kunci Sesi: Kunci AES acak yang dihasilkan untuk setiap unggahan bundle
2. Proses Enkripsi
Bab berjudul “2. Proses Enkripsi”- Kunci Sesi AES acak dihasilkan untuk setiap unggahan bundle
- Bundle Anda dienkripsi menggunakan kunci sesi AES
- The bundle checksum dihitung ulang
- Kedua kunci sesi AES dan checksum dienkripsi bersama menggunakan kunci pribadi RSA Anda (membuat
- 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 mendekripsinya, ini memastikan bahwa kedua kunci sesi AES dan checksum yang diharapkan autentik dan belum diubah oleh penyerang.
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 mendekripsi tanda tangan
- Ini mengungkapkan kunci sesi AES dan checksum asli
- Kunci sesi AES digunakan untuk mendekripsi bundle
- Checksum dari bundle yang diuraikan dihitung dan dibandingkan dengan checksum asli untuk verifikasi integritas
Proses ini memastikan bahwa bahkan jika penyerang menginterupsi bundle yang dienkripsi, mereka tidak dapat mengubah kunci sesi AES atau menyediakan checksum palsu, karena mereka memerlukan kunci pribadi Anda untuk membuat tanda tangan yang valid yang dapat diuraikan oleh kunci publik.
Capgo vs Platform Lainnya
Bagian berjudul “Capgo vs Platform Lainnya”| Fitur | Capgo | Platform OTA Lainnya |
|---|---|---|
| Isi Paket | Dikripsi dalam penyimpanan/transit; masih dapat diperiksa oleh seorang pengekang balik dengan binary aplikasi | Baca Publik |
| Metode Keamanan | Enkripsi akhir-ke-akhir yang benar | Code hanya tanda tangan |
| Tingkat Privasi | Pengiriman/data yang kuat; tidak melawan analisis ulang | Platform dapat mengakses code |
| Pengamanan | Konten + integritas + keaslian | Integritas + keaslian hanya |
Mengapa Ini Penting:
- Code tanda tangan hanya memastikan bahwa pembaruan tidak telah dimanipulasi dan berasal dari sumber yang tepat
- Capgo enkripsi melindungi bundle saat disimpan dan dikirimkan dan membuat pembaruan yang dibuat palsu sangat sulit karena penyerang memerlukan kunci pribadi Anda
- Reversi engineering masih mungkin setelah aplikasi rilis, karena klien berisi kunci publik yang diperlukan untuk mendekripsi dan memuat pembaruan
Metode Pengenkripsi
Bagian berjudul “Metode Pengenkripsi”Capgo menggunakan Pengenkripsi V2 sebagai metode pengenkripsi standar:
Pengenkripsi V2 (Standar Saat Ini)
Bagian berjudul “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 paket
- Tidak lagi tersedia di versi CLI saat ini
- Aplikasi warisan yang menggunakan V1 harus bermigrasi ke V2
Mengatur Enkripsi
Bagian berjudul “Mengatur Enkripsi”Langkah 1: Membuat Kunci Enkripsi
Bagian berjudul “Langkah 1: Membuat 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 createIni menciptakan:
.capgo_key_v2: Kunci pribadi (jaga ini aman!).capgo_key_v2.pub: Kunci publik (digunakan oleh aplikasi Anda)
File-file ini 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 menghemat kunci publik Anda ke konfigurasi Capacitor agar aplikasi seluler Anda dapat memecahkan paket:
# 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 Saat Mengunggah
Bagian berjudul “Metode 1: Enkripsi Selama Unggah”Cara 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)Metode 2: Alur Enkripsi Manual
Bagian berjudul “Metode 2: Alur Enkripsi Manual”Untuk kontrol yang lebih baik, Anda dapat mengenkripsi bundle secara manual:
-
Buat bundle zip:
Jendela terminal npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2 -
Mengenkripsi 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
Pengelolaan Kunci
Bagian berjudul “Pengelolaan Kunci”Mengimpan Kunci dengan Aman
Bagian berjudul “Mengimpan Kunci dengan Aman”Opsi Kunci Pribadi:
-
Berbasis 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"
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.)
- Gunakan manajemen rahasia CI/CD untuk kunci pribadi
- Tidak pernah komit kunci pribadi ke pengontrol versi
Penggunaan Kunci:
- Kunci PribadiDigunakan oleh CLI untuk enkripsi selama unggahan bundle (tetap aman)
- Kunci PublikDigunakan oleh __CAPGO_KEEP_0__ untuk enkripsi selama unggahan bundle (tetap aman)
Penggantian Kunci
Judul: Penggantian KunciRotasikan kunci enkripsi secara teratur untuk meningkatkan keamanan:
-
Membuat kunci baru:
Tampilan Terminal # Navigate to desired directory first, then create keysmkdir ./new-keys && cd ./new-keysnpx @capgo/cli@latest key create -
Simpan kunci publik baru ke konfigurasi Capacitor:
Tampilan 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
Judul bagian “Praktik Keamanan Terbaik”Keamanan Kunci
Judul bagian “Keamanan Kunci”- Jangan pernah berbagi kunci pribadi antara lingkungan atau anggota tim
- Gunakan kunci yang berbeda untuk lingkungan yang berbeda (dev, staging, produksi)
- Ganti 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
- Pantau untuk pola download yang tidak biasa atau gagal
- Pakai HTTPS untuk semua URL paket (diperlukan untuk aplikasi mobile)
- Implement pengaturan error yang tepat untuk gagal dekripsi
Kontrol Akses
Bagian berjudul “Kontrol Akses”- Batasi akses ke kunci enkripsi hanya untuk staf yang berwenang
- Gunakan kontrol akses berdasarkan peran untuk operasi manajemen kunci
- Audit penggunaan dan akses kunci secara teratur
- Implement prosedur cadangan dan pemulihan yang tepat
Troubleshooting Pemutusan Kunci
Judul Bagian “Troubleshooting Pemutusan Kunci”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 Pemutusan Kunci V2 (V1 tidak lagi didukung)
Masalah terkait kunci:
- Konfirmasikan bahwa 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:
- Bundel besar mungkin memakan 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”Implementasi Capgo’s enkripsi mengikuti standar industri:
- AES-256AES-256: Algoritma enkripsi yang disetujui FIPS 140-2
- RSA-4096RSA-4096: Enkripsi simetris yang kuat untuk perlindungan kunci
- GCM ModeGCM Mode: Memberikan keamanan kekonfidensialan dan keaslian
- Secure RandomSecure Random: Penghasilan angka acak yang aman kriptografi
This makes Capgo sesuai untuk aplikasi yang memerlukan kinerja:
- Pengawasan Data Pribadi Umum (GDPR)
- Undang-Undang Kesehatan Asuransi Portabilitas dan Tanggung Jawab (HIPAA)
- Kontrol Layanan Organisasi 2 (SOC 2)
- Manajemen Keamanan Informasi (ISO 27001)
Pertimbangan Kinerja
Judul bagian “Pertimbangan Kinerja”Biaya Kripsi
Judul bagian “Biaya Kripsi”- Ukuran Paket: Paket yang dienkripsi sedikit lebih besar (~1-2% overhead)
- Waktu ProsesPenambahan latensi minimal karena enkripsi/deskripsi
- Penggunaan Memori: Peningkatan sementara selama operasi enkripsi/deskripsi
Tips Optimasi
Bab berjudul “Tips Optimasi”- Gunakan perbaruan 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 lama/lebih lambat
Langkah Selanjutnya
Bab berjudul “Langkah Selanjutnya”- Pelajari tentang Penyimpanan Kustom untuk menggunakan enkripsi dengan infrastruktur sendiri Anda
- Eksplorasi Saluran untuk mengelola bundle yang dienkripsi di antara lingkungan
- Tetapkan Integrasi CI/CD untuk otomatisasi pengiriman yang dienkripsi
Lanjutkan dari Enkripsi
Jika Anda menggunakan__CAPGO_KEEP_0__ Enkripsi 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.