Capacitor-updater ora supporta la crittografia end-to-end di code. La firma Code garantisce che gli update eseguiti sui dispositivi degli utenti non siano stati manomessi, offrendo un livello di protezione superiore alla sicurezza standard web di Capacitor-updater.
La sicurezza predefinita di Capacitor-updater
Di default, il modello di sicurezza di Capgo è simile a quello dei provider di web hosting. Capgo memorizza gli update crittografati a riposo e li serve tramite HTTPS utilizzando cifrari moderni. Allo stesso modo, il publishing di un update dal computer di uno sviluppatore avviene sempre via HTTPS.

La sicurezza predefinita di Capgo ottiene un punteggio A+ nel test HTTPS di SSL Labs (https://www.ssllabs.com, novembre 2022)
Come i migliori web host sul mercato, Capgo usa HTTPS per proteggere la privacy e l'integrità delle connessioni di rete tra il server e i dispositivi degli utenti finali. È un livello di sicurezza eccellente, ideale sia per il web che per le app Ionic che utilizzano Capgo.
La supply chain dell'infrastruttura cloud
Un altro elemento in comune tra Capgo e la maggior parte dei web host è che girano su infrastrutture cloud di basso livello, spesso AWS, GCP o altri provider popolari. L'hardware e il software gestiti da questi provider e da Capgo o altri web host fanno parte della cloud supply chain.
La cloud supply chain e il suo modello di sicurezza funzionano per un numero enorme di siti e app. Ogni web developer che usa un cloud provider si fida di quel provider e si aspetta che i file caricati siano esattamente quelli che vengono eseguiti o serviti, senza manomissioni. I cloud provider lavorano duramente per mantenere sicura la propria infrastruttura.
Ma ovviamente, vulnerabilità hardware e software vengono scoperte. I cloud provider rilasciano patch in modo tempestivo e prevengono proattivamente i software malevoli (ad es. SLSA di Google), costruendo strati di difesa in profondità; in pratica, l'infrastruttura cloud ha dimostrato di soddisfare le esigenze di sicurezza della maggior parte di siti e app. Tuttavia, alcune app Ionic includono infrastrutture cloud compromesse nei loro modelli di minaccia. Per queste app JS Capacitor con i massimi requisiti di sicurezza oltre il web, abbiamo implementato la firma code end-to-end in Capgo e nel Protocollo standard di Capgo Updates.
Firma code end-to-end con Capgo
La firma code end-to-end di Capgo utilizza la crittografia a chiave pubblica per garantire che i dispositivi degli utenti eseguano solo aggiornamenti originali e non modificati dello sviluppatore dell'app Capacitor.
“End-to-end” significa che questa sicurezza copre l'intero flusso, dal momento in cui uno sviluppatore pubblica un update a quando il dispositivo dell'utente lo riceve ed esegue. La “firma Code” consiste nell'usare la crittografia e una chiave privata segreta per “firmare” code, e successivamente usare una chiave pubblica fidata per verificarne la firma.
Ecco uno schema semplice* per spiegare come funziona:

- La crittografia è complessa e difficile in pratica
Definizione:
- AES: Advanced Encryption Standard, un algoritmo di crittografia simmetrica, con una chiave per cifratura e decifratura.
- RSA: Rivest–Shamir–Adleman, un algoritmo di crittografia asimmetrica, che utilizza due chiavi: una pubblica e una privata.
- Cypher: i dati cifrati.
- Chiave di sessione: una chiave AES usata per criptare e decriptare i dati.
- Checksum: un hash calcolato per un file
- Firma: un checksum criptato con una chiave privata RSA. Può essere verificato con una chiave pubblica RSA
Utilizziamo l'algoritmo AES per criptare l'update. Viene generata una chiave AES casuale per ogni upload, poi la chiave AES e il checksum (d'ora in poi “firma”) vengono criptati con la chiave privata RSA dello sviluppatore. La chiave pubblica RSA dello sviluppatore viene usata nell'app per decriptare la chiave AES e la firma (riconvertendola in un checksum). Poi la chiave AES decriptata viene usata per decriptare l'update; viene calcolato un checksum dell'update decriptato e confrontato con la firma decriptata.
Usiamo due algoritmi di crittografia diversi perché RSA non può essere usato per criptare grandi quantità di dati. AES viene usato per criptare l'update e RSA per criptare la chiave AES e il checksum.
In questo modo, nemmeno Capgo può leggere il contenuto del tuo bundle. È un modello di sicurezza robusto, usato da molti clienti enterprise.
Crittografia update V2 2024-08-27:
- Abbiamo cambiato il tipo di chiave memorizzato nell'app. Lo abbiamo fatto per evitare che la chiave pubblica (prima usata per criptare) potesse essere dedotta dalla chiave privata (prima usata per decriptare). Ora l'app memorizza la chiave pubblica (ora usata per decriptare).
- Abbiamo sostituito l'algoritmo di checksum dal CRC32 al SHA256. Inoltre, abbiamo iniziato a firmare il bundle. Quando è configurata la crittografia V2, un update deve avere una firma valida. Il plugin applica rigorosamente questo controllo.
- Ora imponiamo una firma valida se è configurata la crittografia V2. Queste 3 modifiche sono state introdotte dopo un'analisi di sicurezza condotta da un membro della community. Servono a prevenire attacchi crittografici durante l'update.
Se usi la crittografia V1, migra alla V2 per sfruttare le nuove funzionalità di sicurezza. Segui le istruzioni di migrazione.
Con la firma end-to-end di code, Capgo diventa un'infrastruttura cloud "trustless". Se uno dei cloud provider di Capgo o persino Capgo stesso dovesse modificare un update firmato con code, i dispositivi degli utenti finali rifiuterebbero quell'update ed eseguirebbero l'update precedente e attendibile già presente sul dispositivo.
Sebbene l'HTTPS a livello web sia sufficiente per molte app, alcune grandi aziende trovano interessante il livello di sicurezza extra offerto dalla firma end-to-end di code. Alcune di queste aziende sviluppano app finanziarie che gestiscono transazioni permanenti di alto valore. Altre hanno CISO che includono l'infrastruttura cloud compromessa nei propri modelli di minaccia. Abbiamo integrato la firma end-to-end di code in Capgo per questi casi d'uso e siamo interessati a saperne di più dalle aziende con esigenze di sicurezza più elevate.
Guida per i clienti enterprise
Per le grandi aziende o i progetti che tengono molto alla sicurezza, vogliamo rendere la firma code facile da configurare e mantenere. A tal fine, ora offriamo le seguenti funzionalità:
- Configurazione rapida dei certificati
- Supporto per la firma code dei server di sviluppo con build Capgo e di sviluppo
- Firma code in produzione su ogni update
La firma Capgo code è disponibile per tutti i clienti. Per iniziare, segui le istruzioni di setup.
Crediti
Grazie mille a Ionic, questo articolo si basa su questo articolo riscritto con chat-gpt-3 e adattato.
Continua da E2E Encryption per Capacitor Updater tramite Code Signing
Se stai usando Crittografia E2E per Capacitor Updater tramite firma Code per pianificare sicurezza e compliance, collegalo a Crittografia per i dettagli di implementazione della crittografia, Conformità per i dettagli di implementazione in Compliance, Security Scanner di Capgo per il workflow del prodotto in Capgo Security Scanner, Sicurezza Capgo per il workflow del prodotto in Capgo Security, e Trust Center di Capgo per il workflow del prodotto in Capgo Trust Center.