Enkripsi
Copikan prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Capgo menyediakan enkripsi akhir-ke-akhir yang kuat untuk bundle aplikasi Anda, sehingga JavaScript code dan aset Anda terlindungi selama transmisi dan penyimpanan. Sistem enkripsi ini dirancang untuk memberikan Anda kendali penuh atas keamanan aplikasi Anda sambil tetap mempertahankan kemudahan pembaruan hidup.
Ringkasan
Section titled “Overview”Sistem enkripsi Capgo menggunakan metode kriptografi standar industri untuk melindungi bundle Anda dari akses tidak sah. 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 sembarangan dalam penyimpanan atau transit dan memastikan hanya orang yang memiliki kunci pribadi Anda yang dapat menghasilkan pembaruan enkripsi yang valid. Ini tidak membuat aset web yang dikirimkan tidak mungkin direkayasa ulang: kunci publik yang digunakan oleh klien untuk menguraikan pembaruan didistribusikan dalam aplikasi, sehingga seorang penyerang yang berdedikasi masih dapat mengekstraknya dan memeriksa isi bundle dengan cukup usaha.
Bagaimana Pengenkripsi Bekerja
Bagian berjudul “Bagaimana Pengenkripsi Bekerja”Capgo menggunakan pendekatan pengenkripsi hybrid yang menggabungkan RSA dan AES pengenkripsi 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 aplikasi Anda Capacitor (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 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 memastikan bahwa baik kunci sesi AES dan checksum yang diharapkan adalah 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 memecahkan tanda tangan
- Tanda tangan ini mengungkapkan kunci sesi AES dan checksum asli
- Kunci sesi AES digunakan untuk memecahkan 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 untuk membuat tanda tangan yang valid yang dapat dipecahkan oleh kunci publik.
Capgo vs Other Platforms
Bagian berjudul “Capgo vs Platform Lainnya”| Fitur | Capgo | Lainnya Platform OTA |
|---|---|---|
| Isi Bundle | Ditambahkan dalam penyimpanan/transit; masih dapat diperiksa oleh seorang pengekang balik dengan kode aplikasi | Akses Dapat Dilihat Publik |
| Metode Keamanan | Enkripsi akhir-ke-akhir yang benar | Code hanya tanda tangan |
| Level Privasi | Pelindungan pengiriman/simpanan yang kuat; bukan anti-reversi-engineering | Platform dapat mengakses code Anda |
| Pelindungan | Konten + integritas + keaslian | Hanya integritas + keaslian |
Mengapa Ini Penting:
- Code hanya tanda tangan hanya memastikan bahwa pembaruan tidak telah dimanipulasi dan berasal dari sumber yang tepat
- Capgo enkripsi melindungi paket saat disimpan dan dikirimkan serta membuat pembaruan yang terenkripsi palsu menjadi lebih sulit karena penyerang memerlukan kunci pribadi Anda
- Reversi engineering masih mungkin setelah aplikasi dikirimkan, karena klien mengandung kunci publik yang diperlukan untuk mendekripsi dan memuat pembaruan
Metode Pengenkripsi
Judul bagian “Metode Pengenkripsi”Capgo menggunakan Metode Pengenkripsi V2 sebagai metode pengenkripsi standar:
Metode Pengenkripsi V2 (Standar Saat Ini)
Judul bagian “Metode Pengenkripsi V2 (Standar Saat Ini)”- Uses RSA-4096 for enhanced security
- AES-256-GCM untuk enkripsi yang terotentikasi
- Memberikan verifikasi integritas
- Kinerja yang lebih baik dan keamanan
Enkripsi V1 (Tidak Aktif)
Judul Bagian “Enkripsi V1 (Tidak Aktif)”- Menggunakan RSA-2048 untuk enkripsi kunci
- Menggunakan AES-256-CBC untuk enkripsi paket
- Tidak lagi tersedia dalam versi CLI saat ini
- Aplikasi lama yang menggunakan V1 harus beralih ke V2
Pengaturan 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 createIni menciptakan:
.capgo_key_v2: Kunci pribadi Anda (jaga keamanannya!).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 Capacitor Konfigurasi (Wajib)
Judul Bagian: Langkah 2: Simpan Kunci Publik Anda ke Capacitor Konfigurasi (Wajib)You must Simpan kunci publik Anda ke konfigurasi Capacitor agar aplikasi seluler dapat mendekripsi 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 Platform Capacitor (Wajib)
Langkah 3: Sinkronkan Platform Capacitor (Wajib)Setelah menyimpan kunci publik, Anda must sinkronkan platform Capacitor untuk menyalin konfigurasi yang diperbarui ke layer native:
# Sync the platform to copy config to nativenpx cap syncPengenkapan Paket
Bab yang berjudul “Pengenkapan Paket”Metode 1: Mengenkripsi Selama Unggahan
Metode 1: Mengenkripsi Saat MengunggahMetode 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
Section titled “Method 2: Manual Encryption Workflow”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
Bab berjudul “Pengelolaan Kunci”Mengimpan Kunci dengan Aman
Bab berjudul “Mengimpan Kunci dengan Aman”Pilihan 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"
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)
Putuskan Kunci Setelah Kompromi Kunci Pribadi
Bab berjudul “Putuskan Kunci Setelah Kompromi Kunci Pribadi”Putuskan pasang kunci ketika kunci pribadi dicurigai atau dikonfirmasi telah dikompromi. 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 kirim rilis native: Jalankan
npx cap syncKunci pengganti dan distribusikan aplikasi native baru yang berisi kunci publik pengganti. -
Targetkan versi native baru: Perangkat yang masih menjalankan biner native lama tidak dapat mengenkripsi pembaruan yang dienkripsi dengan kunci pengganti. Gunakan Target Versi Mengatur untuk membatasi penggantian kunci pengganti ke versi native baru sementara sisanya dari armada memperbarui melalui toko atau MDM.
-
Ganti rahasia unggah: Secepatnya, ganti kunci privat di CI dan unggah hanya paket yang ditargetkan ke versi native yang berisi kunci publik pengganti.
Praktik Keamanan Terbaik
Judul Bagian “Praktik Keamanan Terbaik”Keamanan Utama
Judul Bagian “Keamanan Utama”- Jangan pernah berbagi kunci pribadi antara lingkungan atau anggota tim
- Pakai kunci yang berbeda untuk lingkungan yang berbeda (dev, staging, produksi)
- Rotasi setelah kompromiGanti pasangannya kunci saat kunci pribadi dicurigai atau dikonfirmasi bocor; rotasi kalender rutin tidak diperlukan
- 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
- Gunakan HTTPS untuk semua URL paket (diperlukan untuk aplikasi mobile)
- Implementasikan pengelolaan kesalahan yang tepat untuk gagal dekripsi
Kontrol Akses
Judul Bagian “Kontrol Akses”- Limits akses ke kunci enkripsi hanya untuk staf yang berwenang
- Pakai akses berdasarkan peran untuk operasi manajemen kunci
- Audit penggunaan dan akses kunci secara teratur
- Implementasikan prosedur backup dan pemulihan yang tepat
Pengaturan Enkripsi yang Tidak Berfungsi
Bab berjudul “Pengaturan Enkripsi yang Tidak Berfungsi”Issues Umum
Bab berjudul “Issues 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 terkait 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
Issue kinerja:
- Large bundles may take longer to encrypt/decrypt
- Consider menggunakan Delta update 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 kerja 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
Bagian berjudul “Ketentuan dan Standar”Capgo’s implementasi enkripsi mengikuti standar industri:
- AES-256: Algoritma enkripsi yang disetujui FIPS 140-2
- RSA-4096: Enkripsi asimetris yang kuat untuk perlindungan kunci
- Mode GCM: Menyediakan keamanan kepercayaan dan keaslian
- Angka Acak yang Aman: Penghasilan angka acak yang aman kriptografis
Ini membuat Capgo cocok untuk aplikasi yang memerlukan kinerja sesuai dengan:
- GDPR (Regulasi Perlindungan Data Umum)
- HIPAA (Undang-Undang Keseimbangan Asuransi Kesehatan dan Tanggung Jawab)
- SOC 2 (Kontrol Organisasi Layanan 2)
- ISO 27001 (Pengelolaan Keamanan Informasi)
Konsiderasi Kinerja
Bab berjudul “Konsiderasi Kinerja”Biaya Enkripsi
Bab berjudul “Biaya Enkripsi”- Ukuran Paket: Paket yang dienkripsi sedikit lebih besar (~1-2% overhead)
- Waktu Proses: Penambahan latensi yang minimal karena enkripsi/pengekripsi
- Penggunaan Memori: Peningkatan sementara selama operasi enkripsi/pengekripsi
Tips Optimalisasi
Judul Bagian: Tips Optimasi- Pilih Delta update untuk mengurangi transfer data yang terenkripsi
- Optimalkan ukuran bundle Anda dengan mengonversi gambar ke format WebP
- Minimalkan file JavaScript dan CSS sebelum melakukan bundling
- Hapus dependensi yang tidak digunakan dan code
- Periksa kinerja perangkat pada perangkat yang lebih tua/lambat
- Belajar tentang Penggunaan Penyimpanan Pribadi untuk menggunakan enkripsi dengan infrastruktur sendiri Anda
- Kunjungi Saluran Untuk mengelola paket yang dienkripsi di berbagai lingkungan
- Pasang Pengintegrasian CI/CD Untuk mengautomasi pengiriman yang dienkripsi
Teruskan dari Enkripsi
Bab yang berjudul “Teruskan dari Enkripsi”Jika Anda menggunakan Enkripsi untuk merencanakan keamanan dan ketercapaian, hubungkannya dengan Ketercapaian untuk detail implementasi di Ketercapaian, Keamanan Scanner Capgo untuk alur kerja produk di Keamanan Scanner Capgo 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.