Vai direttamente al contenuto principale
Soluzione

Crittografia a fine (Capacitor) per l'aggiornamento via firma Code

Utilizza la crittografia RSA + AES per cifrare gli aggiornamenti, progettata per le aziende e le app di alta sicurezza

Martin Donadieu

Martin Donadieu

Content Marketer

Crittografia a fine (Capacitor) per l'aggiornamento via firma Code

Capacitor-aggiornamento ora supporta la crittografia a fine (code) di code. La firma Code assicura che gli aggiornamenti eseguiti dai dispositivi degli utenti finale non siano stati alterati e fornisce un livello di protezione aggiuntivo rispetto alla sicurezza web standard di Capacitor-aggiornamento

Il livello di sicurezza predefinito di Capacitor-aggiornamento

Di default, il modello di sicurezza di Capgo è simile a quello dei provider di hosting web. Capgo memorizza gli aggiornamenti cifrati in stato di riposo e serve i contenuti tramite HTTPS utilizzando cifrature moderne. Allo stesso modo, la pubblicazione di un aggiornamento da un computer di un sviluppatore utilizza sempre HTTPS.

Capgo ottiene un punteggio A+ nel test HTTPS di SSL Labs

Capgo’s impostazioni di sicurezza predefinite ottengono un punteggio A+ nel test HTTPS di SSL Labs (https://www.ssllabs.com, novembre 2022)

Come gli host web di classe migliore, 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 host web hanno in comune è che si eseguono su infrastrutture 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 catena di fornitura cloud.

La catena di fornitura 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 fiducia in 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 regolari, prevenendo proattivamente il software malintenzionato (ad esempio Google’s SLSATuttavia, alcuni 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 costruito una firma end-to-end code per l'accesso a Capgo e Protocollo standard di aggiornamento Capgo.

Firma end-to-end code con Capgo

Capgo’s end-to-end code signing uses public-key cryptography to ensure end users’ devices run only unmodified, original updates from the Capacitor app developer.

“Firma 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. “Firma Code” è 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:

Schema di crittografia Capgo

  • 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.
  • Cifra: 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 upload, quindi la chiave AES e il checksum (di seguito denominato “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 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, nemmeno Capgo può leggere il contenuto del tuo bundle. Questo è un modello di sicurezza robusto utilizzato da molti clienti aziendali.

Cifratura dell'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 decifrazione). Ora, l'app memorizza la chiave pubblica (utilizzata ora per la decifrazione).
  • Abbiamo cambiato il checksum dall'algoritmo CRC32 all'algoritmo SHA256. Abbiamo anche iniziato a firmare il bundleWhen l'encryption V2 è configurato, un aggiornamento deve avere una firma valida. Ciò è rigorosamente imposto dal plugin.
  • Eseguiamo ora una firma di encryption V2 configurata. Queste 3 modifiche sono state fatte dopo un'analisi di sicurezza da un membro della community. Sono qui per prevenire attacchi criptografici 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 'non fiduciaria'. Se uno dei provider cloud di __CAPGO_KEEP_2__ o addirittura __CAPGO_KEEP_3__ stesse a modificare un aggiornamento firmato con __CAPGO_KEEP_4__, i dispositivi degli utenti finale rifiuterebbero quell'aggiornamento e eseguirebbero l'aggiornamento precedente, già presente sul dispositivo, che è stato riconosciuto come affidabile..

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:

  • __CAPGO_KEEP_0__
  • Supporto per la firma di server di sviluppo con code e build di sviluppo con Capgo
  • Firma di code su ogni aggiornamento

Capgo firma con code è disponibile per tutti i clienti. Per iniziare, segui le istruzioni di configurazione Istruzioni di configurazione.

Crediti

Grazie moltissimo a IonicQuesta guida è basata su Questa guida è stata rivista con chat-gpt-3 e adattata. Scritto da

Aggiornamenti in tempo reale per le app Capacitor

Quando un bug del layer web è attivo, invia la correzione attraverso Capgo invece di attendere giorni per l'approvazione della store. Gli utenti ricevono l'aggiornamento in background mentre le modifiche native rimangono nel normale percorso di revisione.

Inizia subito

Ultimi articoli dal nostro Blog

Capgo ti offre le migliori informazioni che ti servono per creare un'app mobile davvero professionale.