Encryption
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Capgo fornisce una robusta crittografia end-to-end per i pacchetti dell'applicazione, garantendo che il tuo JavaScript code e gli asset siano protetti durante la trasmissione e lo storage. Questo sistema di crittografia è progettato per darti il controllo completo sulla sicurezza dell'applicazione mentre mantieni la comodità degli aggiornamenti in tempo reale.
Panoramica
Sezione intitolata “Panoramica”Capgo's sistema di crittografia utilizza metodi crittografici di standard industriale per proteggere i pacchetti dall'accesso non autorizzato. Quando la crittografia è abilitata, i pacchetti vengono crittografati prima di lasciare l'ambiente di sviluppo e rimangono crittografati fino a quando non vengono decrittografati dall'applicazione sul dispositivo dell'utente.
Cosa la Crittografia Protegge Effettivamente: A differenza dei sistemi OTA che firmano solo gli aggiornamenti, Capgo crittografa il pacchetto caricato prima dello storage e della consegna. Ciò protegge i contenuti del pacchetto da accessi casuali in storage o in transito e assicura che solo qualcuno con la tua chiave privata possa produrre un aggiornamento crittografato valido. Ciò Non evitare che gli asset web consegnati siano impossibili da sottoporre a reverse engineering: la chiave pubblica utilizzata dal client per decrittare gli aggiornamenti è distribuita nell'app, quindi un determinato attaccante può ancora estrarla e ispezionare i contenuti del pacchetto con sufficiente impegno.
Come Funziona la Crittografia
Sottosezione intitolata “Come Funziona la Crittografia”Capgo utilizza un approccio di crittografia ibrida che combina la crittografia RSA e AES per una sicurezza e prestazioni ottimali:

1. Generazione della Chiave
Sezione intitolata “1. Generazione delle chiavi”- Chiave PrivataGenerato e archiviato in modo sicuro nel tuo ambiente di sviluppo (utilizzato per la crittografia)
- Chiave Pubblica: Derivato dal tuo chiave privata e memorizzato nel tuo app’s Capacitor config (utilizzato per la decrittazione)
- Sessioni Chiavi: Chiavi AES casuali generate per ogni caricamento di bundle
2. Processo di crittografia
Sottosezione intitolata “2. Processo di crittografia”- Viene generata una chiave AES casuale per ogni caricamento di bundle
- La tua bundle è crittografata utilizzando la chiave AES di sessione
- Viene calcolato il checksum del bundle
- Entrambe la chiave AES di sessione e il checksum sono crittografate insieme utilizzando la tua chiave privata RSA (creando la “firma”)
- Viene memorizzato il bundle crittografato e la firma crittografata
Viene crittografato il checksum insieme alla chiave AES per prevenire la manipolazione. Poiché solo la tua chiave privata RSA può creare questa firma, e solo la chiave pubblica corrispondente può decritturarla, ciò assicura che sia autentica e non modificata da un attaccante sia la chiave AES di sessione che il checksum previsto.
3. Processo di decrittazione
Sezione intitolata “3. Processo di Decrittazione”- La tua app scarica il pacchetto crittografato e la firma crittografata
- La Capgo SDK utilizza la tua chiave pubblica RSA (archiviata nell'app) per decrittare la firma
- Questa rivela la chiave di sessione AES e il checksum originale
- La chiave di sessione AES viene utilizzata per decrittare il pacchetto
- Si calcola un checksum del pacchetto decrittato e si confronta con il checksum originale per la verifica dell'integrità
Questo processo assicura che anche se un attaccante intercetta il pacchetto crittografato, non può modificare la chiave AES o fornire un checksum falso, perché dovrebbe avere la tua chiave privata per creare una firma valida che la chiave pubblica può decrittare
Capgo vs Altre Piattaforme
Sezione intitolata “Capgo vs Altre Piattaforme”| Caratteristica | Capgo | Altre piattaforme OTA |
|---|---|---|
| Contenuto del pacchetto | Criptato in archiviazione/trasito; ancora esaminabile da un ingegnere inversore determinato con il binario dell'applicazione | Pubblicamente leggibile |
| Metodo di sicurezza | Verifica end-to-end | Code firma solo |
| Livello di privacy | Protezione forte di consegna/ archiviazione; non antiriciclaggio | La piattaforma può accedere al tuo code |
| Protezione | Integrità + autenticità + contenuto | Integrità + autenticità solo |
Perché è importante:
- Code firma verifica solo che gli aggiornamenti non siano stati alterati e provengano dalla fonte giusta
- Capgo crittografia protege il pacchetto mentre è archiviato e distribuito e rende molto più difficile creare aggiornamenti criptati falsificati perché l'attaccante avrebbe bisogno della tua chiave privata
- La reverse engineering è ancora possibile dopo che l'app è stata rilasciata, perché il client contiene la chiave pubblica necessaria per decrittare e caricare l'aggiornamento
Metodi di crittografia
Sezione intitolata “Metodi di crittografia”Capgo utilizza la crittografia V2 come metodo di crittografia standard:
Crittografia V2 (Standard attuale)
Sottosezione intitolata “Crittografia V2 (Standard attuale)”- Utilizza RSA-4096 per una maggiore sicurezza
- Utilizza AES-256-GCM per la crittografia autenticata
- Provides integrity verification
- Maggiore prestazione e sicurezza
Crittografia V1 (Deprecato)
Sottosezione intitolata “Crittografia V1 (Deprecato)”- Utilizza RSA-2048 per la crittografia delle chiavi
- AES-256-CBC per l'encryption del bundle
- Non più disponibile nella versione corrente di CLI
- Applicazioni legacy che utilizzano V1 devono migrare a V2
Configurazione dell'Encryption
Sottosezione intitolata “Configurazione dell'Encryption”Passo 1: Genera chiavi di Encryption
Sezione intitolata “Passo 1: Genera chiavi di crittografia”Prima, generare le tue chiavi di crittografia utilizzando il Capgo CLI.
# Generate new encryption keys (creates files in current directory)npx @capgo/cli@latest key createQuesto crea:
.capgo_key_v2: La tua chiave privata (tienila sicura!).capgo_key_v2.pubLa tua chiave pubblica (utilizzata dal tuo app)
Questi file vengono creati nella directory corrente in cui esegui il comando.
Passo 2: Salva la tua chiave pubblica nel Capacitor Config (Obbligatorio)
Titolo della sezione: “Passo 2: Salva la tua chiave pubblica nel Capacitor Config (obbligatorio)”You Devi salvare la tua chiave pubblica nel Capacitor config affinché l'app mobile possa decrittare i 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"Passo 3: Sincronizza la piattaforma Capacitor (obbligatoria)
Area del passo 3: sincronizza la piattaforma Capacitor (obbligatoria)Dopo aver salvato la chiave pubblica, tu devi sincronizzare la piattaforma Capacitor per copiare la configurazione aggiornata al layer nativo:
# Sync the platform to copy config to nativenpx cap syncBuste Crittografate
Sezione intitolata “Buste Crittografate”Metodo 1: Crittografia durante l'upload
Sezione intitolata “Metodo 1: Crittografia durante l'upload”La via più semplice è crittografare durante il processo di upload:
# Upload with automatic encryptionnpx @capgo/cli@latest bundle upload --key-v2
# For external storage, you must encrypt first (see Manual Encryption Workflow below)Flusso di lavoro di crittografia manuale
Sezione intitolata “Metodo 2: Flusso di lavoro di crittografia manuale”Per avere più controllo, puoi crittografare manualmente i pacchetti:
-
Crea un pacchetto zip:
Finestra del terminale npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2 -
Crittografa il pacchetto:
Finestra del terminale npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM_FROM_STEP_1 -
Carica sul tuo storage (ad esempio, S3) e registra con Capgo:
Finestra del terminale # 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
Gestione delle chiavi
Sezione intitolata “Gestione delle chiavi”Archiviazione delle chiavi in modo sicuro
Section titled “Storing Keys Securely”Opzioni per la chiave privata:
-
File-based (sviluppo locale):
Finestra del terminale # Key stored as .capgo_key_v2 file in project rootnpx @capgo/cli@latest bundle upload --key-v2 -
Variabile di ambiente (CI/CD):
Finestra del terminale # 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"
Configurazione della chiave pubblica (obbligatoria):
# Must save public key to Capacitor config for mobile appnpx @capgo/cli@latest key save --key ./.capgo_key_v2.pubAmbiente di produzione:
- Conservare le chiavi private in servizi di gestione delle chiavi sicure (AWS KMS, Azure Key Vault, ecc.)
- Utilizza la gestione dei segreti del CI/CD per le chiavi private
- Non commettere mai le chiavi private nel controllo delle versioni
Uso della chiave:
- Chiave privata: Utilizzata da CLI per l'encryption durante l'upload del pacchetto (mantenere sicuro)
- Chiave pubblica: Salvato nella configurazione dell'applicazione per la decrittografia sul dispositivo (sicuro da commit)
Rotare dopo un compromesso della chiave privata
Sottosezione intitolata “Rotare dopo un compromesso della chiave privata”Rimuovi la chiave privata quando si sospetta o si conferma compromesso. Non è richiesta una routine di rotazione del calendario. Si tratta di una migrazione di una chiave nativa, non di un cambiamento solo OTA.
-
Genera un nuovo coppia di chiavi:
Finestra del terminale npx @capgo/cli@latest key create -
Salva la chiave pubblica di sostituzione nel tuo Capacitor config:
Finestra del terminale npx @capgo/cli@latest key save --key ./.capgo_key_v2.pub -
Sincronizza e invia una versione nativa: Esegui
npx cap syncSe distribuisci una nuova versione nativa contenente la chiave pubblica di sostituzione, -
Seleziona la nuova versione nativa: I dispositivi che ancora utilizzano il binario nativo vecchio non possono decrittare gli aggiornamenti crittografati con la chiave di sostituzione. Utilizza Targeta di Versione per limitare i pacchetti di sostituzione-chiave a versioni native nuove mentre il resto della flotta si aggiorna attraverso la store o MDM.
-
Cambia il tuo segreto di caricamento: Appena quella versione nativa è live, sostituisci la chiave privata nel CI e carica solo pacchetti mirati alle versioni native che contengono la chiave pubblica di sostituzione.
Pratiche di Sicurezza
Section titled “Security Best Practices”Sicurezza delle Chiavi
Non condividere mai le chiavi private- Pratiche di Sicurezza tra ambienti o membri del team
- Usa chiavi diverse per ambienti diversi (dev, staging, production)
- Rotazione dopo una compromissione: sostituisci la coppia di chiavi quando il privato è sospettato o confermato compromesso; non è richiesta una rotazione calendario regolare
- Memorizza le chiavi in modo sicuro utilizzare sistemi di gestione delle chiavi adeguati
Capabilità di sicurezza del pacchetto
Sottosezione intitolata “Capabilità di sicurezza del pacchetto”- Verifica sempre l'integrità del pacchetto dopo la decrittazione
- Monitora per patterni di download insoliti o fallimenti
- Usa HTTPS per tutte le URL dei bundle (richiesto per le app mobili)
- Implementa gestione degli errori corretta per le fallite di decrittazione
Controllo degli accessi
Sottosezione intitolata “Controllo degli accessi”- Limita gli accessi ai chiave di crittografia solo a personale autorizzato
- Usa l'accesso basato su ruoli per le operazioni di gestione delle chiavi
- Audit utilizzo e accesso regolari delle chiavi
- Implementa procedure di backup e ripristino corrette
Risolvere le problematiche di crittografia
Sezione intitolata “Risolvere le problematiche di crittografia”Problemi comuni
Sezione intitolata “Problemi comuni”Fallimenti di decrittografia:
- Verifica che la chiave privata corrisponda alla chiave pubblica utilizzata per la crittografia
- Assicurati che il
ivSessionKeysia corretto - Assicurati di utilizzare la crittografia V2 (V1 non è più supportata)
Error di chiave:
- Confermare che il formato della chiave privata è corretto (formato PEM)
- Verifica che la chiave non sia stata corrotta durante lo storage/transfer
- Controllare che la chiave abbia le autorizzazioni corrette nella configurazione dell'applicazione
Problemi di prestazioni:
- Large bundles may take longer to encrypt/decrypt
- Consider using Delta updates to reduce bundle sizes
- Monitorare le prestazioni del dispositivo durante la decrittazione
Comandi di debug
Sezione intitolata “Comandi di debug”Controllare lo stato di encryption:
npx @capgo/cli@latest app debugFlusso di test di crittografia/descrittografia:
# 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_KEYConformità e Standard
Sottosezione intitolata “Conformità e Standard”L'implementazione di crittografia di Capgo segue gli standard dell'industria:
- AES-256: Algoritmo di crittografia approvato da FIPS 140-2
- RSA-4096: Crittografia asimmetrica forte per la protezione delle chiavi
- Modalità GCM: Fornisce sia la riservatezza che l'autenticità
- Casuali Random Sicuro: Generazione di numeri casuali criptograficamente sicuri
Ciò rende Capgo adatto per applicazioni che richiedono la conformità con:
- GDPR (Regolamento generale sulla protezione dei dati)
- HIPAA (Legge sulla Portabilità e Responsabilità dell'Assicurazione Sanitaria)
- SOC 2 (Controllo Organizzativo del Servizio 2)
- ISO 27001 (Gestione della sicurezza dell'informazione)
Considerazioni di prestazioni
Sezione intitolata “Considerazioni di prestazioni”Sovrappeso crittografico
Sezione intitolata “Sovrappeso crittografico”- Bundle size: I pacchetti crittati sono leggermente più grandi (~1-2% di sovraccarico)
- Tempo di elaborazioneLa crittografia/decrittografia aggiunge una latenza minima
- Utilizzo della memoria: Aumento temporaneo durante le operazioni di crittografia/decrittografia
Suggerimenti di ottimizzazione
Sezione intitolata “Suggerimenti di ottimizzazione”- Usa gli aggiornamenti Delta per ridurre il trasferimento di dati crittografati
- Ottimizza la dimensione del tuo pacchetto convertendo le immagini in formato WebP
- Minimizza i file JavaScript e CSS prima di bundleggerli
- Elimina le dipendenze non utilizzate e code
- Monitorare le prestazioni del dispositivo su dispositivi più vecchi/lenti
Next Steps
Sezione intitolata “Passaggi successivi”- Impara a Archiviazione personalizzata per utilizzare la crittografia con la tua infrastruttura
- Esplora Canali per gestire i pacchetti crittografati all'interno di ambienti diversi
- Configura Integrazione CI/CD per automatizzare i deployment crittografati
Continua da Criptazione
Sezione intitolata “Continua da Criptazione”Se stai utilizzando Criptazione per pianificare la sicurezza e la conformità, connettilo con Conformità per i dettagli di implementazione in Conformità, Capgo Centro di Sicurezza per il workflow del prodotto in Capgo Scanner di Sicurezza, Capgo Sicurezza per il flusso di lavoro del prodotto in Capgo Sicurezza, Capgo Centro di Trust per il workflow del prodotto nel Capgo Centro di Trust Sicurezza dell'organizzazione per i dettagli di implementazione in Sicurezza dell'organizzazione.