Capacitor-updater now supports end-to-end code encryption. Code signing makes sure the updates run by end users’ devices have not been tampered with and provides an extra level of protection above Capacitor-updater’s standard web-grade security.
The default security of Capacitor-updater
By default, Capgo’s security model is similar to that of web hosting providers. Capgo stores updates e li serve tramite HTTPS utilizzando cifrari moderni. Allo stesso modo, pubblicare un aggiornamento da un computer del developer utilizza sempre HTTPS Capacitor ottiene un punteggio A+ nel test SSL Labs' HTTPS

Capgo’s default security scores an A+ on SSL Labs’ HTTPS test (, novembre 2022)Editor
Come i migliori host 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 supply chain dell'infrastruttura cloud
Un'altra cosa che Capgo e la maggior parte degli host web hanno in comune è che si eseguono su infrastruttura cloud di livello inferiore, spesso da AWS, GCP o un altro fornitore di cloud popolare. L'hardware e il software gestiti da questi fornitori di cloud e Capgo o altri host web fanno parte della supply chain cloud.
La supply chain cloud e il suo modello di sicurezza funzionano per un numero enorme di siti web e app. Ogni sviluppatore web che utilizza un fornitore di cloud mette in fiducia quel fornitore e si aspetta che i file che carica siano i file che vengono eseguiti o serviti senza essere stati alterati. E i fornitori di cloud lavorano duramente per mantenere la loro infrastruttura sicura.
Ma ovviamente, le vulnerabilità di hardware e software vengono scoperte. I fornitori di cloud patchano le vulnerabilità in orari prestabiliti, prevenendo in modo proattivo il software malintenzionato (ad esempio Google's SLSA), e costruiscono strati di difesa in profondità, e in pratica, l'infrastruttura cloud ha dimostrato di soddisfare le esigenze di sicurezza di molti siti web e app. Tuttavia, alcune app Ionic includono infrastruttura cloud compromessa nei loro modelli di minaccia. Per queste app JS Capacitor con le esigenze di sicurezza più elevate rispetto al web, abbiamo costruito la firma end-to-end code in Capgo e il Capgo Updates standard protocol.
End-to-end code con Capgo
Capgo’s end-to-end code con firma digitale 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. “Code signing” è l'utilizzo della crittografia e di una chiave privata segreta per “firmare” code, e in seguito utilizzare una chiave pubblica affidabile per verificare la firma.
Ecco uno schema semplice* per spiegare come funziona:

- Crittografia complessa in pratica, 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 crittografare e decrittografare i dati.
- Checksum: Un calcolo di hash per un file
- La 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 (da ora in poi “firma”) vengono cifrate 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 (convertondo nuovamente il checksum). In seguito, la chiave AES decifrata viene utilizzata per decifrare l'aggiornamento; un checksum dell'aggiornamento 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.
Aggiornamento cifrato 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 bundle. Quando è configurato l'aggiornamento cifrato V2, un aggiornamento deve avere una firma valida. Ciò è rigorosamente imposto dal plugin.
- Ora imponeamo una firma di crittografia valida. Questi 3 cambiamenti sono stati fatti dopo un'analisi di sicurezza da un membro della community. Sono qui per prevenire attacchi crittografici durante l'aggiornamento.
Se hai utilizzato la crittografia 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 “senza fiducia”. Se uno dei provider di __CAPGO_KEEP_2__ o addirittura __CAPGO_KEEP_3__ stesse a modificare un aggiornamento firmato con __CAPGO_KEEP_4__, i dispositivi degli utenti rifiuterebbero quell'aggiornamento e eseguirebbero il precedente aggiornamento fidato che è già sul dispositivo..
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.
While web-level HTTPS is sufficient for many apps, some large companies find the extra level of security from end-to-end code signing appealing. Some of these companies make finance apps that issue high-value, permanent transactions. Other companies have CISOs who include compromised cloud infrastructure in their threat models. We built end-to-end code signing in to Capgo for these use cases and are interested in hearing more from companies with higher-level security needs.
Per le grandi aziende o i progetti che si curano profondamente della sicurezza, vogliamo rendere la firma __CAPGO_KEEP_0__ facile da configurare e mantenere. A tale scopo, forniamo ora le seguenti funzionalità:
For large companies or projects who care deeply about security, we want to make code signing easy to set up and maintain. To that end, we now provide the following features:
- Supporto per la firma __CAPGO_KEEP_0__ dei server di sviluppo con sia __CAPGO_KEEP_1__ che build di sviluppo
- Support for code signing development servers with both Capgo and development builds
- Per le aziende che si preoccupano della sicurezza, vogliamo rendere facile la configurazione e il mantenimento della firma code.
Capgo code di firma disponibile per tutti i clienti. Per iniziare, segui le istruzioni di configurazione. Istruzioni di configurazione.
Crediti
Grazie moltissimo a Ionic, questo articolo si basa su questo articolo Riscritto con chat-gpt-3 e adattato.
Continua da E2E Encryption per Capacitor Aggiornatore via Code di firma
Se stai utilizzando E2E Encryption per Capacitor Aggiornatore via Code di firma per pianificare la sicurezza e la conformità, connettilo con Encryption per la descrizione dettagliata di Encryption, Compliance per la descrizione dettagliata di Compliance, Capgo Scanner di Sicurezza per il flusso di lavoro del prodotto in Capgo Scanner 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.