Capacitor-aggiornamento ora supporta la crittografia a fine ciclo di code. La firma di Code assicura che gli aggiornamenti eseguiti dai dispositivi degli utenti finali non siano stati alterati e fornisce un livello di protezione aggiuntivo rispetto all'aggiornamento standard di Capacitor
L'aggiornamento predefinito di Capacitor
Di default, il modello di sicurezza di Capgo è simile a quello dei provider di hosting web. Capgo memorizza gli aggiornamenti crittografato in stato di riposo e li serve tramite HTTPS utilizzando moderni cifrari. Allo stesso modo, la pubblicazione di un aggiornamento da un computer di un sviluppatore utilizza sempre HTTPS.

Capgo's default security ottiene un punteggio A+ nel test SSL Labs' HTTPS (https://www.ssllabs.com, novembre 2022)
Come i migliori hosting web, Capgo utilizza HTTPS per proteggere la privacy e l'integrità delle connessioni di rete tra il server e i dispositivi degli utenti finali. Si tratta di un livello eccellente di sicurezza che funziona bene sia per il web che per le app Ionic che utilizzano Capgo.
La catena di fornitura dell'infrastruttura cloud
Un'altra cosa che Capgo e la maggior parte degli hosting web hanno in comune è che si eseguono su infrastrutture cloud di livello inferiore, spesso da AWS, GCP o un altro popolare provider di cloud. L'hardware e il software gestiti da questi provider di cloud e Capgo o altri hosting web fanno parte della catena di fornitura dell'infrastruttura cloud.
La catena di fornitura dell'infrastruttura cloud e il suo modello di sicurezza funzionano per un numero enorme di siti web e app. Ogni sviluppatore web che utilizza un provider di cloud mette fiducia in quel provider e si aspetta che i file che carica siano i file che vengono eseguiti o serviti senza essere stati alterati. E i provider di cloud lavorano duramente per mantenere la loro infrastruttura sicura.
Ma ovviamente, le vulnerabilità di hardware e software vengono scoperte. I provider di cloud riparano le vulnerabilità in orari prestabiliti, prevenendo in modo proattivo il software malizioso (ad esempio Google's SLSAe) e costruire strati di difesa in profondità, e in pratica, l'infrastruttura cloud ha dimostrato di soddisfare le maggiori esigenze di sicurezza per i siti web e le app. Tuttavia, alcune app Ionic includono infrastrutture cloud compromesse nei loro modelli di minaccia. Per questi Capacitor app JS con le più elevate esigenze di sicurezza al di sopra del web, abbiamo sviluppato la firma end-to-end code in Capgo e Capgo Protocollo di aggiornamento standard.
La firma end-to-end code con Capgo
La firma end-to-end Capgo di code utilizza la crittografia a chiave pubblica per garantire che i dispositivi degli utenti finali eseguano solo aggiornamenti non modificati e originali dallo sviluppatore dell'app Capacitor.
“End-to-end” significa che questa sicurezza copre il flusso dal momento in cui uno sviluppatore pubblica un aggiornamento fino al momento in cui un dispositivo dell'utente finale riceve e esegue l'aggiornamento. “La firma Code” utilizza la crittografia e una chiave privata segreta per “firmare” code, e in seguito utilizza una chiave pubblica affidabile per verificare la firma.
Ecco uno schema semplice* per spiegare come funziona:

- Complesso nella pratica, la crittografia è difficile
Definizione:
- AES: Standard di crittografia avanzata, un algoritmo di crittografia simmetrica, una chiave per l'encryption e la decrittografia.
- RSA: Rivest–Shamir–Adleman, un algoritmo di crittografia asimmetrica, due chiavi vengono utilizzate: una chiave pubblica e una chiave privata.
- Cifrario: I dati crittografati.
- Chiave di sessione: Una chiave AES utilizzata per cifrare e decifrare i dati.
- Checksum: Un hash calcolato per un file
- Firma: Un checksum che è stato cifrato con una chiave privata RSA. Può essere verificato con una chiave pubblica RSA
Utilizziamo l'algoritmo AES per cifrare l'aggiornamento. Una chiave AES casuale viene generata per ogni caricamento, quindi la chiave AES e il checksum (di seguito denominato “firma”) vengono cifrati con la chiave privata RSA dello sviluppatore. La chiave pubblica RSA dello sviluppatore viene utilizzata nell'app per decifrare la chiave AES e la firma (convertono nuovamente in un checksum). In seguito, la chiave AES decifrata viene utilizzata per decifrare l'aggiornamento; un checksum del file decifrato viene calcolato e viene confrontato con la firma decifrata.
Utilizziamo due diversi algoritmi di cifratura perché RSA non può essere utilizzato per cifrare grandi quantità di dati. AES viene utilizzato per cifrare l'aggiornamento e RSA viene utilizzato per cifrare la chiave AES e il checksum.
Con questo, neanche Capgo può leggere il contenuto del tuo bundle. Questo è un modello di sicurezza robusto che viene utilizzato da molti clienti aziendali.
Cifratura aggiornamento V2 2024-08-27:
- Abbiamo cambiato il tipo di chiave che viene memorizzata nell'app. Ciò è stato fatto per prevenire l'inferenza della chiave pubblica (utilizzata precedentemente per la cifratura) dalla chiave privata (utilizzata precedentemente per la decifratura). Ora, l'app memorizza la chiave pubblica (utilizzata ora per la decifratura).
- Abbiamo cambiato il checksum dall'algoritmo CRC32 all'algoritmo SHA256. Abbiamo anche iniziato a firmare il bundleQuando l'encryption V2 è configurato, un aggiornamento deve avere una firma valida. Ciò è rigorosamente impostato dal plugin.
- Ora impone una firma di crittografia V2 configurata. Queste 3 modifiche sono state fatte dopo un'analisi di sicurezza da un membro della community. Sono qui per prevenire attacchi crittografici durante l'aggiornamento.
Se hai utilizzato l'encryption V1, migra a V2 per beneficiare delle nuove funzionalità di sicurezza. Segui le istruzioni di migrazione. Con la firma end-to-end __CAPGO_KEEP_0__, __CAPGO_KEEP_1__ diventa un'infrastruttura cloud .
With end-to-end code signing, Capgo becomes a “trustless” cloud infrastructure. If one of Capgo’s cloud providers or even Capgo itself were to modify a code-signed update, end users’ devices would reject that update and run the previous, trusted update that’s already on the device.
Mentre il HTTPS a livello web è sufficiente per molte app, alcune grandi aziende trovano l'ulteriore livello di sicurezza dalla firma end-to-end code attraente. Alcune di queste aziende creano app di finanza che emettono transazioni di valore permanente. Altre aziende hanno CISO che includono infrastrutture cloud compromesse nei loro modelli di minaccia. Abbiamo implementato la firma end-to-end code in Capgo per questi casi d'uso e siamo interessati a sentire ulteriori richieste da aziende con bisogni di sicurezza più elevati.
Avvio rapido per i clienti aziendali
Per le grandi aziende o i progetti che si preoccupano profondamente della sicurezza, vogliamo rendere la firma code facile da configurare e mantenere. A tale scopo, forniamo ora le seguenti funzionalità:
- Configurazione e configurazione rapida del certificato
- Sostegno per la firma di code dei server di sviluppo con entrambi Capgo e build di sviluppo
- La firma di code in produzione su ogni aggiornamento
La firma di Capgo code è disponibile per tutti i clienti. Per iniziare, segui le istruzioni di configurazione Istruzioni di configurazione.
Crediti
Un grande ringraziamento a Ionic, questo articolo è basato su questo articolo Riscritto con chat-gpt-3 e adattato.
Continua da E2E Encryption per Capacitor Updater via Code Signing
Se stai utilizzando E2E Encryption per Capacitor Aggiornatore tramite Code Firma per pianificare la sicurezza e la conformità, connettilo con Crittografia per il dettaglio di implementazione in Crittografia Conformità per il dettaglio di implementazione in Conformità Capgo Scansionatore di Sicurezza per il flusso di lavoro del prodotto in Capgo Scansionatore di Sicurezza Capgo Sicurezza per il flusso di lavoro del prodotto in Capgo Sicurezza, e Capgo Centro di Trust per il flusso di lavoro del prodotto in Capgo Centro di Trust