Encryption
Copiez une invite de configuration avec les étapes d'installation et le guide Markdown complet pour ce plug-in.
Capgo fournit une encryption robuste de bout en bout pour vos lots d'application, garantissant que votre JavaScript code et vos actifs sont protégés pendant la transmission et le stockage. Ce système d'encryption est conçu pour vous donner un contrôle total sur la sécurité de votre application tout en maintenant la commodité des mises à jour en direct.
Vue d'ensemble
Titre de la section « Vue d'ensemble »Le système d'encryption de Capgo utilise des méthodes cryptographiques industrielles pour protéger vos lots de toute accès non autorisé. Lorsque l'encryption est activé, vos lots sont chiffrés avant de quitter votre environnement de développement et restent chiffrés jusqu'à ce qu'ils soient déchiffrés par votre application sur le dispositif de l'utilisateur.
Ce que l'encryption protège réellement: À la différence des systèmes OTA qui ne signent que les mises à jour, Capgo chiffre le lot téléchargé avant le stockage et la livraison. Cela protège les contenus du lot de toute accès non autorisé en stockage ou en transit et garantit que seuls quelqu'un avec votre clé privée peut produire une mise à jour chiffrée valide. Cela ne fait pas les actifs web embarqués impossibles à démonter : la clé publique utilisée par le client pour déchiffrer les mises à jour est distribuée dans l'application, donc un attaquant déterminé peut toujours l'extraire et inspecter les contenus du lot avec suffisamment d'effort.
Comment fonctionne l'encryption
Titre de la section « Comment fonctionne la cryptage ? »Capgo utilise une approche de cryptage hybride qui combine la cryptage RSA et AES pour une sécurité et une performance optimales :

1. Génération de clés
Titre de la section « 1. Génération de clés »- Clé privée: Générée et stockée de manière sécurisée dans votre environnement de développement (utilisée pour le cryptage)
- Clé publique: Dérivée de votre clé privée et stockée dans la configuration de votre application Capacitor (utilisée pour le déchiffrement)
- Clés de session: Clés AES aléatoires générées pour chaque téléchargement de bundle
2. Processus de cryptage
Titre de la section « 2. Processus d'encryption »- Une clé de session AES aléatoire est générée pour chaque téléchargement de bundle
- Votre bundle est chiffré à l'aide de la clé de session AES
- Le checksum du bundle est calculé
- La clé de session AES et le checksum sont chiffrés ensemble à l'aide de votre clé privée RSA (créant la « signature »)
- Le bundle chiffré et la signature chiffrée sont stockés
Le checksum est chiffré en même temps que la clé AES pour prévenir toute manipulation. Puisque seule votre clé privée RSA peut créer cette signature, et que seule la clé publique correspondante peut la déchiffrer, cela garantit que la clé de session AES et le checksum attendu sont authentiques et n'ont pas été modifiés par un attaquant.
3. Processus de déchiffrement
Titre de la section « 3. Processus de déchiffrement »- Votre application télécharge le bundle chiffré et la signature chiffrée
- La Capgo SDK utilise votre clé publique RSA (stockée dans l'application) pour déchiffrer la signature
- Cela révèle la clé de session AES et le checksum original
- La clé de session AES est utilisée pour déchiffrer le bundle.
- Un hachage du bundle déchiffré est calculé et comparé avec le hachage original pour vérification d'intégrité.
Cette procédure garantit que même si un attaquant intercepte le bundle chiffré, il ne peut pas modifier la clé de session AES ou fournir un hachage fictif, car il aurait besoin de votre clé privée pour créer une signature valide que la clé publique peut déchiffrer.
Capgo vs Autres Platesformes
Section intitulée « Capgo vs Autres Platesformes »| Fonctionnalité | Capgo | Autres Platesformes OTA |
|---|---|---|
| Contenu du Bundle | Chiffré en stockage/transport ; toujours inspectable par un ingénieur reverse avec le fichier binaire de l'application | Lisible par tous |
| Méthode de sécurité | Chiffrement à bout portant complet | Code : signature uniquement |
| Niveau de confidentialité | Protection forte du déploiement/stockage ; pas anti-reverse-engineering | La plateforme peut accéder à votre code |
| Protection | Contenu + intégrité + authenticité | Intégrité + authenticité uniquement |
Pourquoi cela compte :
- Code signature seullement vérifie que les mises à jour n'ont pas été altérées et proviennent de la bonne source
- Capgo encryption protège le bundle pendant qu'il est stocké et livré et rend les mises à jour chiffrées falsifiées beaucoup plus difficiles car l'attaquant aurait besoin de votre clé privée
- La reverse engineering est toujours possible après la mise en production de l'application, car le client contient la clé publique nécessaire pour déchiffrer et charger la mise à jour
Méthodes de chiffrement
Sous-titre intitulé « Méthodes de chiffrement »Capgo utilise le chiffrement V2 comme méthode de chiffrement standard :
Chiffrement V2 (Norme actuelle)
Sous-titre intitulé « Chiffrement V2 (Norme actuelle) »- Utilise RSA-4096 pour une sécurité renforcée
- AES-256-GCM pour l'encryption authentifiée
- Fournit la vérification d'intégrité
- Meilleure performance et sécurité
Encryption V1 (Déprécié)
Sous-section intitulée « Encryption V1 (Déprécié) »- Utilise RSA-2048 pour l'encryption des clés
- AES-256-CBC pour l'encryption des bundles
- Plus disponible actuellement dans le CLI
- Les applications légataires utilisant V1 doivent migrer vers V2
Configuration de l'encryption
Section intitulée « Configuration de l'encryption »Étape 1 : Générez des clés d'encryption
Section intitulée « Étape 1 : Générez des clés d'encryption »Générez d'abord vos clés d'encryption à l'aide de Capgo CLI :
# Generate new encryption keys (creates files in current directory)npx @capgo/cli@latest key createCela crée :
.capgo_key_v2: Votre clé privée (gardez-la sécurisée !).capgo_key_v2.pub: Votre clé publique (utilisée par votre application)
Ces fichiers sont créés dans le répertoire actuel où vous exécutez la commande.
Étape 2 : Sauvegardez votre clé publique dans la config Capacitor (Obligatoire)
Section intitulée « Étape 2 : Sauvegardez votre clé publique dans la config Capacitor (Obligatoire) »Vous context save your public key to the Capacitor config so your mobile app can decrypt bundles:
# Save public key from file to Capacitor config (required)npx @capgo/cli@latest key save --key ./.capgo_key_v2.pub
# Or save public key data directlynpx @capgo/cli@latest key save --key-data "$CAPGO_PUBLIC_KEY"Step 3: Sync Capacitor Platform (Required)
Section intitulée « Étape 3 : Synchronisez la plateforme Capacitor (Obligatoire) »Après avoir enregistré la clé publique, vous devez synchroniser la plateforme Capacitor pour copier la configuration mise à jour vers la couche native :
# Sync the platform to copy config to nativenpx cap syncChiffrage des Bundles
Section intitulée “Chiffrage des Bundles”Méthode 1 : Chiffrage pendant l'upload
Section intitulée “Méthode 1 : Chiffrage pendant l'upload”La méthode la plus simple consiste à chiffrer pendant le processus d'upload :
# Upload with automatic encryptionnpx @capgo/cli@latest bundle upload --key-v2
# For external storage, you must encrypt first (see Manual Encryption Workflow below)Méthode 2 : Flux de travail de chiffrage manuel
Section intitulée “Méthode 2 : Flux de travail de chiffrage manuel”Pour plus de contrôle, vous pouvez chiffrer manuellement les bundles :
-
Créer un bundle zip :
Fenêtre de terminal npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2 -
Chiffrer le bundle :
Fenêtre de terminal npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM_FROM_STEP_1 -
Télécharger sur votre stockage (par exemple, S3) et enregistrer avec Capgo :
Fenêtre de terminal # First upload the encrypted bundle to your storage (e.g., AWS S3)aws s3 cp ./encrypted-bundle.zip s3://your-bucket/encrypted-bundle.zip# Then register with Capgo using the external URLnpx @capgo/cli@latest bundle upload --external https://your-storage.com/encrypted-bundle.zip --iv-session-key IV_SESSION_KEY_FROM_STEP_2
Gestion des clés
Section intitulée « Gestion des clés »Stockage des clés de manière sécurisée
Section intitulée « Stockage des clés de manière sécurisée »Options de clés privées :
-
Fichier local (développement local):
Fenêtre de terminal # Key stored as .capgo_key_v2 file in project rootnpx @capgo/cli@latest bundle upload --key-v2 -
Variable d'environnement (CI/CD):
Fenêtre de terminal # Store in environment variable for CIexport CAPGO_PRIVATE_KEY="$(cat .capgo_key_v2)"npx @capgo/cli@latest bundle upload --key-data-v2 "$CAPGO_PRIVATE_KEY"
Configuration de la clé publique (Requis):
# Must save public key to Capacitor config for mobile appnpx @capgo/cli@latest key save --key ./.capgo_key_v2.pubEnvironnement de production :
- Stockez les clés privées dans des services de gestion de clés sécurisés (AWS KMS, Azure Key Vault, etc.)
- Utilisez la gestion de secrets CI/CD pour les clés privées
- Ne commettez jamais de clés privées dans le contrôle de version
Utilisation de la clé :
- Clé privée: Utilisée par CLI pour la mise en cryptage lors de l'envoi du paquet (gardez sécurisé)
- Clé publique: Stockée dans la configuration de l'application pour la décryptage sur le dispositif (sécurisé pour la mise en version)
Effectuez une rotation après un compromis de clé privée
Section intitulée “Effectuez une rotation après un compromis de clé privée”Effectuez une rotation de la paire de clés lorsque la clé privée est soupçonnée ou confirmée compromise. Une rotation calendaire régulière n'est pas requise. Il s'agit d'une migration de clé native, pas d'une mise à jour OTA uniquement.
-
Générez une paire de clés de remplacement :
Fenêtre de terminal npx @capgo/cli@latest key create -
Enregistrez la clé publique de remplacement dans votre Capacitor de configuration :
Onglet de terminal npx @capgo/cli@latest key save --key ./.capgo_key_v2.pub -
Synchroniser et expédier une version native : Démarrez
npx cap sync, puis distribuez une nouvelle version d'application native contenant la clé publique de remplacement. -
Ciblez la nouvelle version native : Les appareils qui exécutent toujours la version native ancienne ne peuvent pas déchiffrer les mises à jour chiffrées avec la clé de remplacement. Utilisez Ciblage de version context : Page/zone : Page de marketing de solutions Capgo. Rôle : En-tête de section ou de page. Vu dans : page solutions/version-targeting.astro. Clé de message `solutions_version_targeting_title` (Titre de la version de solutions). | Page/zone : Page de marketing de solutions Capgo. Rôle : Étiquette de navigation ou élément UI court. Vu dans : page solutions/version-targeting.astro. Clé de message `solutions_version_targeting` (Ciblage de version de solutions).
-
pour restreindre les lots de clés de remplacement aux nouvelles versions natives tout en laissant le reste de la flotte se mettre à jour via l'App Store ou MDM. Changer votre secret d'upload :
Meilleures Pratiques de Sécurité
Section intitulée « Meilleures Pratiques de Sécurité »Sécurité des Clés
Section intitulée « Sécurité des Clés »- N'ayez jamais partagé des clés privées entre environnements ou membres d'équipe
- Utilisez des clés différentes pour différents environnements (dev, étape de test, production)
- Rotez-les après une compromise: remplacez le couple de clés lorsque la clé privée est suspectée ou confirmée compromise ; une rotation du calendrier de routine n'est pas requise
- Stockez les clés de manière sécurisée en utilisant des systèmes de gestion de clés appropriés
Sécurité du Bundle
Sous-titre « Sécurité du Bundle »- Vérifiez toujours l'intégrité du bundle après déchiffrement
- Surveillez les modèles de téléchargement inhabituels ou les échecs
- Utilisez HTTPS pour toutes les URL du bundle (obligatoire pour les applications mobiles)
- Mettez en œuvre gestion correcte des erreurs pour les échecs de déchiffrement
Contrôle d'accès
Section intitulée « Contrôle d'accès »- Limitation de l'accès aux clés de chiffrement uniquement aux personnels autorisés
- Utilisation du contrôle d'accès basé sur les rôles pour les opérations de gestion de clés
- Audit l'utilisation et l'accès aux clés régulièrement
- Mise en œuvre des procédures de sauvegarde et de récupération appropriées
Diagnostics de chiffrement
Section intitulée « Résolution des problèmes d'encryption »Problèmes courants
Section intitulée « Problèmes courants »Échecs de déchiffrement :
- Vérifiez que la clé privée correspond à la clé publique utilisée pour l'encryption
- Vérifiez que le
ivSessionKeyest correct - Assurez-vous d'utiliser l'Encryption V2 (V1 n'est plus pris en charge)
Erreurs liées aux clés :
- Confirmez que le format de la clé privée est correct (format PEM)
- Vérifiez que la clé n'a pas été corrompue lors de son stockage ou de son transfert
- Vérifiez que la clé a les permissions appropriées dans la configuration de votre application
Problèmes de performance :
- Les gros paquets peuvent prendre plus de temps pour être chiffrés/déchiffrés
- Considérez l'utilisation des mises à jour Delta (manifest) pour réduire les tailles des paquets
- Surveillez la performance du dispositif pendant la déchiffrement
Commandes de débogage
Section intitulée « Commandes de débogage »Vérifiez l'état de chiffrement :
npx @capgo/cli@latest app debugTestez le flux de chiffrement/déchiffrement :
# Test the complete workflow: zip → encrypt → decrypt → unzipnpx @capgo/cli@latest bundle zip com.example.app --key-v2npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM --jsonnpx @capgo/cli@latest bundle decrypt ./encrypted-bundle.zip IV_SESSION_KEYLigne de conduite et normes
Titre de la section « Ligne de conduite et normes »La mise en œuvre d'Capgo de l'encryption respecte les normes de l'industrie :
- AES-256: Algorithme d'encryption homologué FIPS 140-2
- RSA-4096: Forte encryption asymétrique pour la protection des clés
- Mode GCM: fournit à la fois la confidentialité et l'authenticité
- Nombre aléatoire sécurisé: Génération de nombres aléatoires cryptographiquement sécurisés
Cela rend Capgo adapté aux applications nécessitant le respect de :
- Règlement Général sur la Protection des Données (RGPD)
- Loi sur la Portabilité et la Responsabilité des Assurances de Santé (HIPAA)
- SOC 2 (Contrôle de Service Organisation 2)
- ISO 27001 (Gestion de la Sécurité de l'Information)
Considérations relatives à la performance
Section intitulée « Considérations relatives à la performance »Surcharge de chiffrement
Section intitulée « Surcharge de chiffrement »- Taille du paquet : Les paquets chiffrés sont légèrement plus volumineux (~1-2% de surcharge)
- Temps de traitement : Le chiffrement/déchiffrement ajoute une latence minimale
- Utilisation de la mémoire: Augmentation temporaire pendant les opérations d'encryption/décryption
Conseils d'optimisation
Section intitulée « Conseils d'optimisation »- Utilisez les mises à jour Delta (manifest) pour minimiser les transferts de données chiffrées
- Optimisez la taille de votre bundle en convertissant les images au format WebP
- Minimisez les fichiers JavaScript et CSS avant bundling
- Supprimez les dépendances inutilisées et code
- Surveillez les performances du dispositif sur les appareils plus anciens/lents
Étapes suivantes
Section intitulée « Étapes suivantes »- En apprendre plus sur Stockage personnalisé pour utiliser l'encryption avec votre propre infrastructure
- Explorez Canaux Gérer les ensembles de fichiers chiffrés entre les environnements
- Configurer Intégration CI/CD automatiser les déploiements chiffrés
Continuez de la section Chiffrement
Section intitulée “Continuez depuis la cryptage”Si vous utilisez Chiffrement pour planifier la sécurité et la conformité, connectez-l’avec Conformité pour les détails d'implémentation en Conformité, Capgo Scanner de sécurité pour le flux de travail du produit dans Capgo Scanner de sécurité, Capgo Sécurité pour le flux de travail du produit dans Capgo Sécurité, Capgo Centre de confiance pour le flux de travail du produit dans Capgo Centre de confiance, et Sécurité de l'organisation pour les détails d'implémentation en Sécurité de l'organisation.