Encryption
Copiez une commande de configuration avec les étapes d'installation et le guide markdown complet pour ce plugin.
Capgo provides robust end-to-end encryption for your app bundles, ensuring that your JavaScript code and assets are protected during transmission and storage. This encryption system is designed to give you complete control over your app’s security while maintaining the convenience of live updates.
Section intitulée « Vue d'ensemble »
Copy for AICapgo’s système d’encryption utilise des méthodes cryptographiques industrielles pour protéger vos bundles contre tout accès non autorisé. Lorsque l’encryption est activé, vos bundles 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.
Quel est l’objectif de l’encryption ?: Contrairement aux systèmes OTA qui ne signent que les mises à jour, Capgo chiffre le bundle téléchargé avant stockage et livraison. Cela protège les contenus du bundle contre tout accès non autorisé en stockage ou en transit et garantit que seuls les détenteurs de votre clé privée peuvent produire une mise à jour chiffrée valide. Cela ne rend pas les actifs web embarqués impossibles à décompiler : 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 bundle avec suffisamment d’effort. Quand avez-vous besoin d’encryption ? Quand avez-vous besoin d’encryption ?
Comment fonctionne la Chiffrement
Section intitulée “Comment fonctionne la Chiffrement”Capgo utilise une approche de chiffrement hybride qui combine le chiffrement RSA et AES pour une sécurité et une performance optimales :

1. Génération de Clés
Section intitulée “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 l'encryption)
- Clé Publique: Déduite de votre clé privée et stockée dans la configuration de votre application Capacitor (utilisée pour la décryptage)
- Clés de Session: Clés AES aléatoires générées pour chaque téléchargement de bundle
2. Processus d'Encryption
Section intitulée “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
- The calcul du checksum du bundle est effectué
- Les deux clés 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 tentative de modification. Puisque seuls votre clé privée RSA peut créer cette signature et que seule la clé publique correspondante peut la déchiffrer, cela garantit que les deux clés de session AES et le checksum attendu sont authentiques et n'ont pas été modifiés par un attaquant.
3. Processus de décryptage
Section intitulée « 3. Processus de décryptage »- Votre application télécharge le bundle chiffré et la signature chiffrée
- Le 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 checksum du bundle déchiffré est calculé et comparé avec le checksum original pour vérification d'intégrité
Ce processus garantit que même si un attaquant intercepte le bundle chiffré, il ne peut pas modifier la clé de session AES ou fournir un checksum 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 Plates-formes
Section intitulée “Capgo vs Autres Plates-formes”| Fonctionnalité | Capgo | Autres Plates-formes OTA |
|---|---|---|
| Contenu du Bundle | Chiffré en stockage/transport; encore inspectable par un ingénieur reverse qui se détermine avec l'application binaire | Lisible par le public |
| Méthode de Sécurité | Chiffrement à la fin à fin | Code signature uniquement |
| Niveau de confidentialité | Protection de livraison/stockage solide; pas anti-décompilation | La plateforme peut accéder à votre code |
| Protection | Contenu + intégrité + authenticité | Intégrité + authenticité uniquement |
Pourquoi Cela Compte :
- Code signature ne vérifie que les mises à jour n'ont pas été altérées et proviennent de la bonne source
- Capgo chiffrement protège le bundle pendant son stockage et sa livraison et rend les mises à jour cryptées fabriquées beaucoup plus difficiles car l'attaquant aurait besoin de votre clé privée
- L'ingénierie inverse est toujours possible après la mise en ligne de l'application, car le client contient la clé publique nécessaire pour déchiffrer et charger la mise à jour
Méthodes d'encryption
Section intitulée “Méthodes d'encryption”Capgo utilise Encryption V2 comme méthode d'encryption standard :
Encryption V2 (Méthode actuelle standard)
Utilise RSA-4096 pour une sécurité renforcée- AES-256-GCM pour une encryption authentifiée
- Fournit une vérification d'intégrité
- Une meilleure performance et sécurité
- Méthodes d'encryption
Chiffrement V1 (Déprécié)
Section intitulée “Chiffrement V1 (Déprécié)”- Utilise RSA-2048 pour le chiffrement des clés
- AES-256-CBC pour le chiffrement des ensembles
- Plus disponible actuellement dans le CLI
- Les applications légataires utilisant V1 doivent migrer vers V2
Setup du chiffrement
Section intitulée « Configuration de l'encodage »Étape 1 : Générez les clés d'encodage
Section intitulée « Étape 1 : Générez les clés d'encodage »Tout d'abord, générer vos clés d'encodage à 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 courant où vous exécutez la commande.
Étape 2 : Enregistrez votre clé publique dans la configuration Capacitor (obligatoire)
Section intitulée « Étape 2 : Enregistrez votre clé publique dans la configuration Capacitor (obligatoire) »Vous devez enregistrer votre clé publique dans la configuration Capacitor afin que votre application mobile puisse déchiffrer les ensembles :
# 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"Étape 3 : Synchroniser la plateforme Capacitor (obligatoire)
Section intitulée « Étape 3 : Synchroniser 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 syncChiffrement de Bundles
Section intitulée “Chiffrement de Bundles”Méthode 1 : Chiffrer pendant l'upload
Section intitulée « Méthode 1 : Chiffrer pendant l'envoi »La méthode la plus simple consiste à chiffrer pendant le processus d'envoi :
# 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 manuellement chiffrer 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 dans 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é privée :
-
Par fichier (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 des secrets CI/CD pour les clés privées
- N'ajoutez jamais les clés privées au contrôle de version
Utilisation de la clé :
- Clé privée: Utilisé par CLI pour la cryptage lors de l'envoi du bundle (gardez sécurisé)
- Clé publique: Stocké dans la configuration de l'application pour la décryptage sur le dispositif (sûr de commettre)
Rotation de clés
Section intitulée “Rotation de clés”Rotez régulièrement vos clés de cryptage pour une sécurité renforcée :
-
Générez de nouvelles clés :
Fenêtre de terminal # Navigate to desired directory first, then create keysmkdir ./new-keys && cd ./new-keysnpx @capgo/cli@latest key create -
Enregistrez la nouvelle clé publique dans la config de Capacitor :
Fenêtre de terminal npx @capgo/cli@latest key save --key ./new-keys/.capgo_key_v2.pub -
Mettez à jour la configuration de votre application avec la nouvelle clé publique
-
Déployez l'application mise à jour avant de télécharger des bundles chiffrés avec la nouvelle clé
Meilleures Pratiques de Sécurité
Section intitulée “Meilleures Pratiques de Sécurité”Sécurité Clé
Section intitulée “Sécurité Clé”- N'envoyez jamais les clés privées entre environnements ou membres d'équipe
- Utilisez des clés différentes pour différents environnements (dev, étape, production)
- Rotaire les clés régulièrement (recommandé : tous les 6-12 mois)
- 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
Section intitulée “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)
- Mettre en œuvre une gestion des erreurs appropriée pour les échecs de déchiffrement
Contrôle d'accès
Section intitulée « Contrôle d'accès »- Restreindre l'accès aux clés de chiffrement aux seuls personnel autorisé
- Utiliser un contrôle d'accès basé sur les rôles pour les opérations de gestion de clés
- Auditer l'utilisation et l'accès des clés régulièrement
- Mettre en œuvre des procédures de sauvegarde et de récupération appropriées
Résolution des problèmes d'encodage
Section intitulée “Résolution des problèmes d'encodage”Problèmes courants
Section intitulée “Problèmes courants”Échecs de décodage :
- Vérifiez que la clé privée correspond à la clé publique utilisée pour l'encodage
- Vérifiez que le
ivSessionKeyest correct - Assurez-vous d'utiliser l'encodage 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/transfer
- Vérifiez que la clé dispose des permissions appropriées dans votre configuration d'application
Problèmes de performance :
- Les gros bundles peuvent prendre plus de temps pour chiffrer/déchiffrer
- Considérez l'utilisation des mises à jour Delta (manifest) pour réduire les tailles des bundles
- Surveillez les performances du dispositif pendant la déchiffrement
Commandes de débogage
Section intitulée “Commandes de débogage”Vérifiez l'état de chiffrage :
npx @capgo/cli@latest app debugTestez le flux de chiffrage/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_KEYConformité et normes
Section intitulée « Conformité et normes »Capgo met en œuvre une implémentation d'encryption conforme aux normes de l'industrie :
- AES-256Algorithme d'encryption asymétrique fort approuvé par FIPS 140-2
- RSA-4096Algorithme d'encryption asymétrique fort pour la protection des clés
- Mode GCMFournit à 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 une conformité avec :
- RGPD (Règlement Général sur la Protection des Données)
- HIPAA (Loi sur la Portabilité et la Confidentialité des Assurances de Santé)
- SOC 2 (Contrôle de Service Organisation 2)
- ISO 27001 (Gestion de la Sécurité de l'Information)
Considérations de Performance
Section intitulée « Considérations de Performance »Surcharge de chiffrement
Section intitulée « Surcharge de chiffrement »- Taille du paquetLes bundles chiffrés sont légèrement plus grands (~1-2% de surcharge)
- Temps de traitement: Chiffrement/déchiffrement ajoute une latence minimale
- Utilisation de la mémoire: Augmentation temporaire pendant les opérations de chiffrement/déchiffrement
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 la mise en bundle
- 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”- Découvrez comment Stockage personnalisé __CAPGO_KEEP_0__
- Explorez Canaux __CAPGO_KEEP_0__
- Configurez Intégration CI/CD __CAPGO_KEEP_0__