Enkripsi
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Capgo menyediakan enkripsi akhir-ke-akhir yang kuat untuk bundle aplikasi Anda, memastikan bahwa JavaScript code dan aset Anda dilindungi selama transmisi dan penyimpanan. Sistem enkripsi ini dirancang untuk memberikan Anda kendali lengkap atas keamanan aplikasi Anda sambil mempertahankan kemudahan pembaruan waktu nyata.
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 hingga diuraikan 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 santai dalam penyimpanan atau transit dan memastikan hanya orang dengan kunci pribadi Anda yang dapat menghasilkan pembaruan enkripsi yang valid. Ini tidak Sumber membuat aset web yang telah dikirimkan tidak mungkin direversi: kunci publik yang digunakan oleh klien untuk mendekripsi update didistribusikan di dalam aplikasi, sehingga seorang penyerang yang berdedikasi masih dapat mengekstraknya dan memeriksa isi bundle dengan usaha yang cukup.
Bagaimana Cara Kerja Enkripsi
Bagian berjudul āBagaimana Cara Kerja EnkripsiāCapgo menggunakan pendekatan enkripsi hybrid yang menggabungkan RSA dan AES untuk keamanan dan kinerja optimal:

1. Pembuatan Kunci
Bagian 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 Capacitor aplikasi Anda (digunakan untuk dekripsi)
- Kunci Sesi: Kunci AES acak yang dihasilkan untuk setiap unggahan bundle
2. Proses Enkripsi
Bagian berjudul ā2. Proses Enkripsiā- Kunci Sesi AES acak dihasilkan 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 menjamin bahwa baik kunci Sesi AES dan checksum yang diharapkan autentik dan tidak dimodifikasi oleh penyerang.
3. Proses Penguraian
Bagian berjudul ā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 mengungkap kunci sesi AES dan cek checksum asli
- Kunci sesi AES digunakan untuk mendekripsi bundle
- Checksum dari bundle yang dideskripsi dihitung dan dibandingkan dengan cek asli untuk verifikasi integritas
Proses ini memastikan bahwa bahkan jika penyerang menginterupsi bundle yang dienkripsi, mereka tidak dapat mengubah kunci sesi AES atau menyediakan cek palsu, karena mereka perlu kunci privat Anda untuk membuat tanda tangan yang valid yang dapat dideskripsi oleh kunci publik.
Capgo vs Platform Lainnya
Judul Bagian āCapgo vs Platform Lainnyaā| Fitur | Capgo | Lainnya Platform OTA |
|---|---|---|
| Mengemas Konten | Ditimbun dalam penyimpanan/transit; masih dapat diperiksa oleh seorang pengecer balik dengan file aplikasi biner | Baca publik |
| Metode Keamanan | Enkripsi akhir-ke-akhir yang benar | Code hanya tanda tangan |
| Tingkat Privasi | Pengiriman/kelengkapan penyimpanan yang kuat; tidak anti-pengecer balik | Platform dapat mengakses code |
| Pengamanan | Integritas + keaslian + keaslian autentik | Hanya integritas + keaslian |
Mengapa Ini Penting:
- Code penandatangan hanya memastikan bahwa pembaruan belum disusupi dan berasal dari sumber yang tepat
- Capgo enkripsi melindungi bundle selama disimpan dan dikirimkan dan membuat pembaruan enkripsi palsu jauh lebih sulit karena penyerang perlu kunci pribadi Anda
- Pengembangan balik masih mungkin setelah aplikasi dikirimkan, karena klien berisi kunci publik yang diperlukan untuk mendekripsi dan memuat pembaruan
Metode Enkripsi
Bab berjudul āMetode EnkripsiāCapgo menggunakan Metode Enkripsi V2 sebagai metode enkripsi standar:
Enkripsi V2 (Standar Saat Ini)
Judul Bagian āEnkripsi V2 (Standar Saat Ini)ā- Menggunakan RSA-4096 untuk keamanan yang lebih tinggi
- AES-256-GCM untuk enkripsi yang diverifikasi
- Menghasilkan verifikasi integritas
- Kinerja yang lebih baik dan keamanan
Enkripsi V1 (Tidak Aktif)
Judul Bagian āEnkripsi V1 (Tidak Aktif)ā- Menggunakan RSA-2048 untuk enkripsi kunci
- AES-256-CBC untuk enkripsi paket
- Tidak lagi tersedia di versi CLI saat ini
- Aplikasi legacy yang menggunakan V1 harus beralih ke V2
Mengatur Enkripsi
Judul bagian āMengatur EnkripsiāLangkah 1: Membuat Kunci Enkripsi
Judul bagian ā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 createMembuat:
.capgo_key_v2: Kunci pribadi Anda (jaga ini aman!).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.
Bab berjudul āLangkah 2: Simpan Kunci Publik Anda ke Capacitor Konfigurasi (Wajib)ā
Section titled āStep 2: Save Your Public Key to Capacitor Config (Required)āwajib menyimpan kunci publik Anda ke konfigurasi __CAPGO_KEEP_0__ agar aplikasi seluler dapat mengenkripsi bundle: 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"Langkah 3: Sinkronisasi Capacitor Platform (Wajib)
Bab berjudul āLangkah 3: Sinkronisasi Capacitor Platform (Wajib)āSetelah menyimpan kunci publik, Anda harus sinkronisasi Capacitor platform 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
Bagian berjudul āMetode 1: Mengenkripsi Selama UnggahanāCara 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 Kerja Enkripsi Manual
Bagian berjudul āMetode 2: Alur Kerja Enkripsi ManualāUntuk kontrol yang lebih baik, Anda dapat mengenkripsi bundle secara manual:
-
Buatlah bundle zip:
Jendela 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
Pengelolaan Kunci
Bagian berjudul āPengelolaan KunciāMengimpan Kunci dengan Aman
Judul Bagian ā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.pubEnvironment Produksi:
- Simpan kunci pribadi di layanan manajemen kunci yang aman (AWS KMS, Azure Key Vault, dll.)
- Pakai manajemen rahasia CI/CD untuk kunci pribadi
- Tidak pernah komit kunci pribadi ke pengendalian versi
Penggunaan Kunci:
- Kunci Pribadi: Digunakan oleh CLI untuk enkripsi selama unggahan bundle (jaga aman)
- Kunci Publik: Disimpan di konfigurasi aplikasi untuk dekripsi di perangkat (aman untuk komit)
Penggantian Kunci
Bab berjudul āPenggantian KunciāPutar kunci enkripsi secara teratur untuk meningkatkan keamanan:
-
Membuat 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
-
Tampilkan aplikasi yang diperbarui sebelum mengunggah bundle yang dienkripsi dengan kunci baru
Praktik Keamanan Terbaik
Bagian berjudul āPraktik Keamanan TerbaikāKeamanan Utama
Bab berjudul āKeamanan Utamaā- Jangan pernah berbagi kunci pribadi antara lingkungan atau anggota tim
- Pakai 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
Bab berjudul āKeamanan Paketā- Selalu verifikasi integritas bundle setelah dekripsi
- Pantau untuk pola download yang tidak biasa atau gagal
- Gunakan HTTPS untuk semua URL bundle (diperlukan untuk aplikasi mobile)
- Implementasikan penanganan error yang tepat untuk gagal dekripsi
Kontrol Akses
Bagian berjudul āKontrol Aksesā- Hindari akses ke kunci enkripsi hanya kepada staf yang berwenang
- Gunakan akses berdasarkan peran untuk operasi manajemen kunci
- Audit penggunaan dan akses kunci secara teratur
- Implementasikan prosedur backup dan pemulihan yang tepat
Pengaturan Enkripsi untuk Mengatasi Masalah
Judul bagian āPengaturan Enkripsi untuk Mengatasi MasalahāMasalah Umum
Judul bagian āMasalah UmumāGagal Dekripsi:
- Periksa apakah kunci pribadi sesuai dengan kunci publik yang digunakan untuk enkripsi
- Pastikan bahwa
ivSessionKeybenar - Pastikan Anda menggunakan Enkripsi V2 (V1 tidak lagi didukung)
Masalah terkait kunci:
- Konfirmasi bahwa format kunci privat Anda benar (format PEM)
- Verifikasi bahwa kunci tidak rusak selama penyimpanan/transfer
- Pastikan kunci memiliki izin yang tepat dalam konfigurasi aplikasi Anda
Masalah kinerja:
- Bundel besar mungkin memakan waktu lebih lama untuk dienkripsi/didekripsi
- Consider menggunakan Delta (manifest) updates untuk mengurangi ukuran bundel
- Monitor kinerja perangkat selama proses dekripsi
Perintah Debug
Section 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
Section berjudul āKetentuan dan StandarāCapgoās implementasi enkripsi mengikuti standar industri:
- AES-256: Algoritma enkripsi yang disetujui FIPS 140-2
- RSA-4096: Enkripsi asimetris kuat untuk perlindungan kunci
- GCM Mode: Menyediakan keamanan keaslian dan keamanan konfidensial
- Secure Random: Penghasilan angka random yang aman kriptografis
Karena itu Capgo cocok untuk aplikasi yang memerlukan kinerja sesuai dengan:
- GDPR (Peraturan Perlindungan Data Umum)
- HIPAA (Undang-Undang Keseimbangan Asuransi Kesehatan Portabilitas dan Tanggung Jawab)
- SOC 2 (Kontrol Organisasi Layanan 2)
- ISO 27001 (Manajemen Keamanan Informasi)
Konsiderasi Kinerja
Ketentuan KinerjaBiaya Enkripsi
Ketentuan Biaya Enkripsi- Ukuran Paket: Paket yang dienkripsi sedikit lebih besar (~1-2% overhead)
- Waktu Proses: Penambahan latensi yang minimal karena enkripsi/dekripsi
- Penggunaan Memori: Peningkatan sementara selama operasi enkripsi/dekripsi
- Section titled āOptimization Tipsā
- Optimalkan ukuran bundle Anda dengan mengonversi gambar ke format WebP
- Minimalkan file JavaScript dan CSS sebelum mengemas
- Hapus dependensi yang tidak digunakan dan code
- Monitor kinerja perangkat pada perangkat yang lebih tua/lambat
Langkah-Langkah Berikutnya
Judul Bagian āLangkah-Langkah Berikutnyaā- Pelajari tentang Penyimpanan Kustom untuk menggunakan enkripsi dengan infrastruktur sendiri
- Eksplorasi Saluran untuk mengelola bundle yang dienkripsi di antara lingkungan
- Konfigurasi Integrasi CI/CD untuk mengautomasi pengiriman file yang terenkripsi
Teruskan dari Pengenkripsi
Judul Bagian āTeruskan dari PengenkripsiāJika Anda menggunakan Pengenkripsi untuk merencanakan keamanan dan kewenangan, hubungkannya dengan Kewenangan untuk detail implementasi di Kewenangan, Capgo Scanner Keamanan untuk alur kerja produk di Capgo Scanner Keamanan, Keamanan Capgo untuk alur kerja produk di Keamanan Capgo Pusat Kepercayaan Capgo untuk alur kerja produk di Pusat Kepercayaan Capgo, dan Keamanan Organisasi untuk detail implementasi di Keamanan Organisasi.