Chiffrement
Capgo propose un chiffrement de bout en bout pour vos bundles OTA. Vos assets et votre code JavaScript restent protégés pendant l’upload, le transit et l’installation.
Aperçu
Section titled “Aperçu”Le système utilise des primitives cryptographiques standard pour garantir :
- la confidentialité du contenu
- l’intégrité des fichiers
- l’authenticité des mises à jour
Différence clé : contrairement à une simple signature de bundle, le contenu lui-même est chiffré. Même Capgo ne peut pas lire votre code en clair.
Comment fonctionne le chiffrement
Section titled “Comment fonctionne le chiffrement”Capgo utilise une approche hybride RSA + AES.

1. Génération des clés
Section titled “1. Génération des clés”- Clé privée: utilisée par la CLI au moment de l’upload chiffré
- Clé publique: enregistrée dans la configuration de l’application
- Clé de session AES: générée pour chaque upload
2. Chiffrement
Section titled “2. Chiffrement”- Génération d’une clé de session AES
- Chiffrement du bundle avec AES
- Calcul du checksum du bundle chiffré/déchiffré selon le flux
- Chiffrement RSA des métadonnées de vérification (clé de session + checksum)
- Stockage du bundle chiffré + signature/métadonnées
3. Déchiffrement côté app
Section titled “3. Déchiffrement côté app”- L’app télécharge bundle + métadonnées
- Le SDK lit la clé publique embarquée
- Le SDK récupère les informations nécessaires au déchiffrement
- Le bundle est déchiffré localement
- Le checksum est vérifié
Capgo vs plateformes OTA classiques
Section titled “Capgo vs plateformes OTA classiques”| Fonctionnalité | Capgo | Plateformes OTA classiques |
|---|---|---|
| Contenu bundle | Chiffré de bout en bout | Souvent lisible en clair |
| Garantie | Confidentialité + intégrité + authenticité | Intégrité + authenticité |
| Confidentialité code | Élevée | Limitée |
Versions de chiffrement
Section titled “Versions de chiffrement”Chiffrement V2 (standard)
Section titled “Chiffrement V2 (standard)”- RSA-4096
- AES-256-GCM
- vérification d’intégrité
- meilleur niveau de sécurité
Chiffrement V1 (obsolète)
Section titled “Chiffrement V1 (obsolète)”- non supporté par la CLI actuelle
- migration requise vers V2
Mise en place
Section titled “Mise en place”Étape 1: générer les clés
Section titled “Étape 1: générer les clés”# Generate new encryption keys (creates files in current directory)npx @capgo/cli@latest key createFichiers générés :
.capgo_key_v2(privée, ne jamais commit).capgo_key_v2.pub(publique)
Étape 2: enregistrer la clé publique (obligatoire)
Section titled “Étape 2: enregistrer la clé publique (obligatoire)”# 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 les plateformes natives
Section titled “Étape 3: synchroniser les plateformes natives”npx cap syncChiffrer les bundles
Section titled “Chiffrer les bundles”Méthode 1: chiffrement direct à l’upload
Section titled “Méthode 1: chiffrement direct à l’upload”# Upload with automatic encryptionnpx @capgo/cli@latest bundle upload --key-v2Méthode 2: workflow manuel
Section titled “Méthode 2: workflow manuel”-
Créer le zip:
Terminal window npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2 -
Chiffrer:
Terminal window npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM_FROM_STEP_1 -
Uploader sur votre stockage puis enregistrer l’URL:
Terminal window aws s3 cp ./encrypted-bundle.zip s3://your-bucket/encrypted-bundle.zipnpx @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 titled “Gestion des clés”Stockage recommandé
Section titled “Stockage recommandé”- local dev: fichier temporaire
- CI/CD: variable secrète ou manager de secrets
- production: KMS / Vault / Key Vault
Exemple CI/CD:
export CAPGO_PRIVATE_KEY="$(cat .capgo_key_v2)"npx @capgo/cli@latest bundle upload --key-data-v2 "$CAPGO_PRIVATE_KEY"Rotation des clés
Section titled “Rotation des clés”-
Générer de nouvelles clés:
Terminal window mkdir ./new-keys && cd ./new-keysnpx @capgo/cli@latest key create -
Enregistrer la nouvelle clé publique:
Terminal window npx @capgo/cli@latest key save --key ./new-keys/.capgo_key_v2.pub -
Publier une version native embarquant la nouvelle clé publique.
-
Basculer les futurs uploads sur la nouvelle clé privée.
Bonnes pratiques de sécurité
Section titled “Bonnes pratiques de sécurité”- une clé privée par environnement (dev/staging/prod)
- rotation périodique
- audit des accès aux secrets
- HTTPS obligatoire pour les URLs de bundles externes
- supervision des erreurs de déchiffrement
Dépannage
Section titled “Dépannage”Problèmes fréquents:
- clé privée / clé publique non correspondantes
ivSessionKeyinvalide- oubli de
key saveou decap sync - tentative d’utilisation V1
Commandes utiles:
npx @capgo/cli@latest app debug# Test workflownpx @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é
Section titled “Conformité”Le schéma cryptographique est compatible avec des exigences de sécurité enterprise:
- AES-256
- RSA-4096
- mode GCM
- génération aléatoire sécurisée
Références fréquentes:
- GDPR
- HIPAA
- SOC 2 (Service Organization Control 2)
- ISO 27001
Impact performance
Section titled “Impact performance”- léger surcoût de taille bundle
- léger surcoût CPU au chiffrement/déchiffrement
- bénéfice significatif si combiné aux mises à jour différentielles
Étapes suivantes
Section titled “Étapes suivantes”- Découvrir Custom Storage pour l’hébergement externe
- Gérer les Canaux pour piloter les déploiements
- Mettre en place la CI/CD Integration pour automatiser les releases