Capacitor-mises à jour maintenant prend en charge la cryptage code de bout en bout. La signature Code s'assure que les mises à jour exécutées par les appareils des utilisateurs finaux n'ont pas été modifiées et fournit un niveau supplémentaire de protection au-dessus de la sécurité de niveau web standard de Capacitor-mises à jour.
La sécurité par défaut de Capacitor-mises à jour
Par défaut, le modèle de sécurité de Capgo est similaire à celui des fournisseurs de hébergement web. Capgo stocke les mises à jour stockées sous forme chiffrée et les sert sur HTTPS à l'aide de césures modernes. De même, la publication d'une mise à jour à partir d'un ordinateur d'un développeur utilise toujours HTTPS.

La sécurité par défaut de Capgo obtient une note A+ dans le test HTTPS de SSL Labs (https://www.ssllabs.com, novembre 2022)
Comme les meilleurs hôtes web, Capgo utilise HTTPS pour protéger la vie privée et l'intégrité des connexions réseau entre le serveur et les appareils des utilisateurs finaux. C'est un excellent niveau de sécurité qui fonctionne bien à la fois pour le web et les applications Ionic qui utilisent Capgo.
L'infrastructure cloud de la chaîne d'approvisionnement
Une autre chose Capgo et la plupart des hébergeurs web ont en commun, c'est qu'ils fonctionnent sur une infrastructure cloud de niveau inférieur, souvent de AWS, GCP ou un autre fournisseur cloud populaire. Les matériel et logiciel exploités par ces fournisseurs cloud et Capgo ou d'autres hébergeurs web font partie de la chaîne d'approvisionnement cloud.
La chaîne d'approvisionnement cloud et son modèle de sécurité fonctionnent pour un nombre immense de sites web et d'applications. Chaque développeur web qui utilise un fournisseur cloud met sa confiance dans ce fournisseur et s'attend à ce que les fichiers qu'il télécharge soient les fichiers qui sont exécutés ou servis sans être modifiés. Et les fournisseurs cloud travaillent dur pour garder leur infrastructure sécurisée.
Mais évidemment, les vulnérabilités de matériel et de logiciel sont découvertes. Les fournisseurs cloud corrigent les vulnérabilités dans des horaires de maintenance, préviennent proactivement le logiciel malveillant (par exemple, "Google’s SLSA"), et construisent des couches de défense en profondeur, et en pratique, l'infrastructure cloud a montré qu'elle répond aux besoins de sécurité de la plupart des sites web et d'applications. Cependant, certaines applications Ionic incluent une infrastructure cloud compromise dans leurs modèles de menace. Pour ces __CAPGO_KEEP_0__ applications JS avec les exigences de sécurité les plus élevées au-dessus du web, nous avons construit une signature __CAPGO_KEEP_1__ de bout en bout dans __CAPGO_KEEP_2__ et __CAPGO_KEEP_0__ Mise à jour du protocole standard), and build layers of defense in depth, and in practice, cloud infrastructure has shown to meet most websites and apps’ security needs. However, some Ionic apps include compromised cloud infrastructure in their threat models. For these Capacitor JS apps with the highest security requirements above the web, we built end-to-end code signing in to Capgo and the La signature Capgo de bout en bout utilise la cryptographie à clé publique pour s'assurer que les appareils des utilisateurs finaux exécutent uniquement des mises à jour non modifiées, originales du développeur de l'application __CAPGO_KEEP_2__..
End-to-end code signing with 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.
“End-to-end” signifie que cette sécurité couvre le flux depuis le moment où un développeur publie une mise à jour jusqu'au moment où un utilisateur final reçoit et exécute la mise à jour. “Code signing” utilise la cryptographie et une clé privée secrète pour “signer” code, et utilise ensuite une clé publique fiable pour vérifier l'empreinte digitale.
Voici un schéma simple* pour expliquer comment ça marche :

- Difficile en pratique, la cryptographie est difficile
Définition:
- AES : Standard de chiffrement avancé, un algorithme de chiffrement symétrique, une clé pour le chiffrement et la décryptage.
- RSA : Rivest–Shamir–Adleman, un algorithme de chiffrement asymétrique, deux clés sont utilisées : une clé publique et une clé privée.
- Cypher : Les données chiffrées.
- Clé de session : Une clé AES utilisée pour chiffrer et déchiffrer les données.
- Checksum : Une somme de contrôle calculée pour un fichier
- Signature : Une somme de contrôle chiffrée avec une clé privée RSA. Elle peut être vérifiée avec une clé publique RSA
Nous utilisons l'algorithme AES pour chiffrer la mise à jour. Une clé AES aléatoire est générée pour chaque téléchargement, puis la clé AES et la somme de contrôle (désormais « signature ») sont chiffrées avec la clé privée RSA du développeur. La clé publique RSA du développeur est utilisée dans l'application pour déchiffrer la clé AES et la signature (la convertissant à nouveau en somme de contrôle). Plus tard, la clé AES déchiffrée est utilisée pour déchiffrer la mise à jour ; une somme de contrôle du mise à jour déchiffrée est calculée, et elle est comparée avec la signature déchiffrée.
We utilisons deux algorithmes d'encryption différents car RSA ne peut pas être utilisé pour encrypter de grandes quantités de données. AES est utilisé pour encrypter la mise à jour et RSA est utilisé pour encrypter la clé AES et le checksum.
Avec cela, même Capgo ne peut pas lire le contenu de votre bundle. C'est un modèle de sécurité robuste qui est utilisé par de nombreux clients entreprises.
Mise à jour d'encryption V2 2024-08-27 :
- On a changé le type de clé qui est stocké dans l'application. Cela a été fait pour empêcher l'inference de la clé publique (utilisée précédemment pour l'encryption) à partir de la clé privée (utilisée précédemment pour la déchiffrement). Maintenant, l'application stocke la clé publique (utilisée maintenant pour la déchiffrement).
- On a changé le checksum du algorithme CRC32 à l'algorithme SHA256. On a également commencé à signer le bundle. Lorsque l'encryption V2 est configuré, une mise à jour doit avoir une signature valide. Cela est strictement appliqué par le plugin.On exige maintenant une signature valide lorsque l'encryption V2 est configuré. Ces 3 changements ont été faits après une analyse de sécurité d'un membre de la communauté. Ils sont là pour prévenir les attaques cryptographiques pendant la mise à jour.
- Si vous avez utilisé l'encryption V1, migrez vers V2 pour bénéficier des nouvelles fonctionnalités de sécurité. Suivez les instructions de migration.
Avec la signature à la fin de la chaîne __CAPGO_KEEP_0__, __CAPGO_KEEP_1__ devient une infrastructure cloud sans confiance. Si l'un des fournisseurs de cloud de __CAPGO_KEEP_2__ ou même __CAPGO_KEEP_3__ lui-même modifiait une mise à jour signée par __CAPGO_KEEP_4__, les appareils des utilisateurs finaux rejetteraient cette mise à jour et exécuteraient la mise à jour précédente, déjà enregistrée sur l'appareil et de confiance. Nous utilisons deux algorithmes d'encryption différents car RSA ne peut pas être utilisé pour encrypter de grandes quantités de données. AES est utilisé pour encrypter la mise à jour et RSA est utilisé pour encrypter la clé AES et le checksum..
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 le HTTPS au niveau web est suffisant pour de nombreuses applications, certaines grandes entreprises trouvent l'ensemble supplémentaire de sécurité de la signature code de bout en bout attrayant. Certaines de ces entreprises créent des applications de finance qui émettent des transactions de haute valeur permanentes. D'autres entreprises ont des CISO qui incluent des infrastructures de cloud compromises dans leurs modèles de menace. Nous avons conçu la signature code de bout en bout dans Capgo pour ces cas d'utilisation et sommes intéressés à entendre plus d'entreprises avec des besoins de sécurité plus élevés.
Demarrage pour les clients entreprises
Pour les grandes entreprises ou les projets qui s'intéressent profondément à la sécurité, nous voulons rendre la signature code facile à configurer et à maintenir. À cette fin, nous fournissons désormais les fonctionnalités suivantes :
- Configuration rapide de certificats et de configuration
- Support pour la signature code de serveurs de développement avec les deux Capgo et les builds de développement
- Signature code en production sur chaque mise à jour
La signature Capgo code est disponible pour tous les clients. Pour commencer, suivez les instructions de configuration. Crédits.
Nous remercions beaucoup
Ionic ce qui est basé sur cet article__CAPGO_KEEP_0__ cet article a été réécrit avec chat-gpt-3 et adapté.
Continuez à partir de la Chiffrement à bout de chaîne pour l'Capacitor Metteur à jour via l'Code Signature
Si vous utilisez le Chiffrement à bout de chaîne pour l'Capacitor Metteur à jour via l'Code Signature pour planifier la sécurité et la conformité, connectez-le à Chiffrement pour les détails d'implémentation dans Chiffrement, Conformité pour les détails d'implémentation dans Conformité, le Scanneur de Sécurité Capgo pour le flux de travail du produit dans le Scanneur de Sécurité Capgo, Capgo Sécurité pour le flux de travail du produit dans Capgo Sécurité, et Capgo Centre de confiance pour le flux de travail du produit dans Capgo Centre de confiance.