Passer au contenu principal

SSL Pinning pour les applications Capacitor

Implémentez l'authentification SSL dans votre application Capacitor pour améliorer la sécurité et protéger contre les attaques de type homme au milieu tout en respectant les directives des magasins d'applications.

Martin Donadieu

Martin Donadieu

Spécialiste du contenu

SSL Pinning pour les applications Capacitor

L'authentification SSL protège votre application contre les menaces de sécurité telles que les attaques de type homme au milieu en vérifiant les certificats de serveur directement dans votre application. Sans cela, les attaquants pourraient intercepter des données sensibles ou manipuler les communications. Voici pourquoi cela compte et comment l'implémenter efficacement :

Why l'importance de l'authentification SSL est-elle cruciale :

  • Prévient les attaques de type MITM : Empêche l'interception des appels API.
  • Renforce la sécurité : Vérifie les certificats de serveur contre des valeurs connues.
  • Remplit les exigences de l'App Store : Aide à se conformer aux normes de sécurité d'Apple et de Google.
  • Construit la confiance des utilisateurs : Protège les données des utilisateurs pendant la transmission.

Étapes clés pour mettre en œuvre l'authentification SSL :

  1. Choisissez le bon plugin : Assurez la compatibilité avec iOS et Android.
  2. Configurez Votre Application: Intégrez les données de certificat dans les paramètres de votre application.
  3. Configuration Spécifique au Plateforme:
    • Android: Utilisez network_security_config.xml pour définir les piquets de certificat.
    • iOS: Réajustez Info.plist et validez les certificats pendant l'exécution.
  4. Testez Votre Configuration: Simulez des attaques en utilisant des outils comme Proxy Charles pour vérifier la sécurité.
  5. Gestion des Certificats : Mettez régulièrement à jour les certificats et incluez des sauvegardes pour éviter les temps d'arrêt.

Comparaison Rapide : Android vs. iOS SSL Pinning

Fonctionnalité Android iOS
Fichier de Configuration network_security_config.xml Info.plist
Emplacement du Certificat res/raw répertoire bundle d'application
Méthode de Validation Configuration basée sur XML ATS et validation de temps d'exécution
Processus d'actualisation Manuel ou automatisé Manuel ou automatisé

Conseil : Automatisez les mises à jour de certificats avec des outils comme Capgo pour garantir des transitions fluides et sécurisées sans rebuild de l'application. Cela prévient les interruptions de service et maintient la conformité aux directives des magasins d'applications.

La mise en place de certificats SSL est un must-have pour toute Capacitor application pour sécuriser les communications API et protéger les données des utilisateurs. Commencez à l'implémenter aujourd'hui pour améliorer la sécurité de votre application.

TLS/SSL Certificate Pinning Explained

Exigences de configuration

La configuration de la mise en cache SSL dans votre Capacitor exige une planification soigneuse et un paramétrage précis. Voici ce dont vous avez besoin pour mettre en œuvre avec succès la mise en cache de certificats :

Choisir le bon plugin de mise en cache SSL

The first step is selecting a plugin that works well for both iOS and Android while offering strong security features. For Capacitor apps, @capgo/capacitor-ssl-pinning applications, @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-ssl-pinning

  • cache les connexions HTTPS vers des certificats embarqués pour CapacitorHttp sur iOS et Android. Lorsque vous comparez les plugins, tenez compte de ces facteurs :Compatibilité du plateforme : Vérifiez que le plugin fonctionne correctement sur les appareils iOS et Android.
  • Gestion des Certificats: Optez pour un plugin qui simplifie le processus de gestion des certificats.
  • Mises à Jour Faciles: Cherchez des plugins qui permettent des mises à jour de certificats sans nécessiter une reconstruction complète de l'application.
  • Considérations Relatives à la Performance: Évaluez comment le plugin pourrait affecter la vitesse et la réactivité de votre application.

Configuration de Votre Capacitor Documentation du Site Web du Framework de Votre

Capacitor

Une fois que vous avez choisi un plugin, la prochaine étape consiste à configurer votre application Capacitor pour activer la mise en cache de certificats. Voici un exemple de ce que votre configuration pourrait ressembler :

// Example: capacitor.config.ts
{
  appId: 'com.example.app',
  plugins: {
    SSLPinning: {
      certs: ['cert1', 'cert2'],
      validateCertificates: true,
      allowBackup: false
    }
  }
}

Il est une bonne idée de mettre en œuvre ces changements progressivement pour garantir une transition fluide pour les utilisateurs. Après avoir configuré la configuration générale, passez à des ajustements spécifiques à la plateforme pour Android et iOS pour compléter la mise en œuvre.

Configuration Spécifique à la Plateforme

La mise en place de l'authentification SSL nécessite des configurations personnalisées pour Android et iOS afin de se protéger efficacement contre les attaques de type MITM.

Implémentation Android

Sur Android, l'authentification SSL implique la configuration de la sécurité réseau et la gestion des certificats. Voici comment procéder :

  • Créer une Configuration de Sécurité Réseau

    Démarrez par la création d'un fichier nommé __CAPGO_KEEP_0__ network_security_config.xml dans le répertoire res/xml du projet Android de votre projet :

    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <domain-config>
            <domain includeSubdomains="true">api.example.com</domain>
            <pin-set>
                <pin digest="SHA-256">your_certificate_hash</pin>
                <!-- Backup pin -->
                <pin digest="SHA-256">backup_certificate_hash</pin>
            </pin-set>
        </domain-config>
    </network-security-config>
  • Mettre à Jour le Fichier AndroidManifest.xml

    Référez-vous à la nouvelle configuration de sécurité réseau créée dans votre AndroidManifest.xml fichier :

    <application
        android:networkSecurityConfig="@xml/network_security_config"
        ...>
  • Ajouter des Fichiers de Certificats

    Stockez les fichiers de certificats requis (.cer ou .pem) dans le res/raw répertoire de votre projet Android.

Implémentation iOS

Pour iOS, la configuration de la mise en cache SSL est effectuée en modifiant les paramètres de la sécurité de transport d'application (ATS) et en mettant en œuvre la validation de certificat en temps de exécution. Suivez ces étapes :

  • Configurer ATS dans Info.plist

    Ajoutez la configuration suivante à votre fichier d'application : Info.plist Initialiser la mise en cache SSL dans __CAPGO_KEEP_0__

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <false/>
        <key>NSExceptionDomains</key>
        <dict>
            <key>api.example.com</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSPinnedDomains</key>
                <true/>
            </dict>
        </dict>
    </dict>
  • Utilisez le snippet suivant Code pour activer la mise en cache SSL lors de l'initialisation de l'application :

    Use the following code snippet to enable SSL pinning during app initialization:

    import { HTTP } from '@ionic-native/http/ngx';
    
    export class AppComponent {
      constructor(private http: HTTP) {
        this.initializeSSLPinning();
      }
    
      async initializeSSLPinning() {
        try {
          await this.http.setSSLCertMode('pinned');
          console.log('SSL Pinning initialized successfully');
        } catch (error) {
          console.error('SSL Pinning initialization failed:', error);
        }
      }
    }

Comparer les implémentations Android et iOS

Voici une comparaison rapide de la différence entre la mise en place de la certification SSL pour Android et iOS :

Fonctionnalité Android iOS
Fichier de configuration network_security_config.xml Info.plist
Emplacement du certificat res/raw Répertoire Bundle d'application
Méthode de validation Configuration XML Validation ATS et temps d'exécution
Support du plugin Plugins natifs + plugins personnalisés Plugins natifs + plugins personnalisés

Ensuite, nous allons plonger dans les stratégies de test et les erreurs courantes pour vous aider à vous assurer que votre configuration de verrouillage SSL est fiable et sécurisée.

Tests et Corrections

Vérifier votre configuration de verrouillage SSL est essentiel pour prévenir les attaques Man-In-The-Middle (MITM). Voici comment vous pouvez vous assurer que votre mise en œuvre est sécurisée et résoudre les problèmes courants.

Test d'attaque MITM

Vous pouvez utiliser des outils de proxy comme Charles Proxy pour simuler les attaques MITM et vérifier votre configuration de verrouillage SSL.

Test de Charles Proxy

Suivez ces étapes pour tester avec Charles Proxy :

  1. Installez le certificat racine de Charles sur votre appareil.
  2. Activez la proxy SSL dans les paramètres de Charles.
  3. Ajoutez votre API domaine à la liste de proxy SSL.
  4. Configurez votre appareil pour rediriger le trafic par le biais du proxy Charles.

Si votre mise en place de l'ancrage SSL est correcte, vous devriez voir des erreurs de validation de certificat dans les journaux d'application pendant la mise à l'épreuve.

Test de configuration réseau

Utilisez le code suivant code pour valider la connexion avec un certificat ancré :

// Validate pinned certificate connection
try {
    const response = await Http.get({
        url: 'https://api.example.com/test',
        headers: { 'Content-Type': 'application/json' }
    });
    console.log('Connection successful');
} catch (error) {
    console.error('Certificate validation failed:', error);
}

Résolutions de problèmes courants

Voici quelques problèmes d'ancrage SSL typiques et comment les résoudre :

Type d'erreur Cause commune Solution
Mauvais correspondance de certificat Hachage incorrect dans la configuration Vérifiez l'hachage du certificat en utilisant OpenSSL.
Problèmes de chemin Emplacement de certificat incorrect Vérifiez les chemins de certificat spécifiques à la plateforme.
Problèmes de format Format de certificat non valide Convertissez le certificat au format correct (par exemple, PEM ou DER).
Délai de temps d'attente de réseau Configuration de mise en cache incorrecte Vérifiez vos paramètres de sécurité réseau.

Vérification de l'empreinte de certificat

Pour vous assurer que l'empreinte de certificat correspond à votre configuration, utilisez la commande OpenSSL suivante :

# Generate the correct certificate hash
openssl x509 -in certificate.pem -pubkey -noout | \
openssl rsa -pubin -outform der | \
openssl dgst -sha256 -binary | base64

Après avoir résolu les erreurs, assurez-vous que le processus d'actualisation de votre certificat fonctionne correctement.

Test de mise à jour de certificat

Incluez à la fois un certificat principal et un certificat de secours dans votre configuration pour prévenir les interruptions de service pendant les mises à jour.

Processus de test de mise à jour

Voici un exemple de test de rotation de certificat :

// Rotate certificates
const certificates = {
    current: 'sha256/current_certificate_hash',
    backup: 'sha256/backup_certificate_hash'
};

// Test both certificates
async function validateCertificates() {
    try {
        await testConnection(certificates.current);
        console.log('Primary certificate valid');
    } catch {
        try {
            await testConnection(certificates.backup);
            console.log('Backup certificate valid');
        } catch {
            console.error('All certificates invalid');
        }
    }
}

Surveiller l'expiration des certificats

Vérifiez régulièrement l'expiration des certificats pour éviter les interruptions :

# Check certificate expiration date
openssl x509 -enddate -noout -in certificate.pem

Testez ensuite votre configuration dans diverses conditions, notamment WiFi stable, données mobiles, scénarios hors ligne et transitions de réseau, pour vous assurer d'une sécurité et d'une fonctionnalité robustes.

Gestion de la mise en pin SSL

Une fois votre mise en place de mise en pin SSL en place, la prochaine étape consiste à gérer la mise en pin de certificats et de clés pour maintenir une sécurité solide au fil du temps.

Certificat vs. Clé Pinning

Lorsqu'il s'agit de la mise en pin SSL, il existe deux approches principales : la mise en pin de certificat et la mise en pin de clé publique. Chacune a ses propres avantages, en particulier pour Capacitor applications:

Fonctionnalité Fixage de certificat Fixage de clé publique
Niveau de sécurité Élevé – fixe l'ensemble du certificat Très élevé – fixe uniquement la clé publique
Maintenance Mises à jour requises à chaque renouvellement Moins fréquentes, résistent aux renouvellements
Mise en œuvre Facile à mettre en œuvre Configuration initiale plus complexe
Impact sur le stockage Footprint de stockage plus important Exigences de stockage minimales
Fréquence d'actualisation Tout renouvellement de certificat Seulement lorsque la clé publique change

Ce détail peut vous aider à décider quelle méthode s'adapte le mieux à votre stratégie de maintenance à long terme de l'application.

Mise à jour automatique des certificats

Mettre à jour les certificats est crucial pour sécuriser les communications API. Capgo propose une solution simplifiée en automatisant ces mises à jour, en éliminant ainsi la nécessité de soumissions de nouvelles applications.

  • Taux d'adoption rapideLes mises à jour sont planifiées, suivies et atteignent un taux d'adoption de 95% en 24 heures [1].
  • La livraison chiffrée: Les mises à jour sont entièrement chiffrées de bout en bout.
  • Surveillance en temps réel: Les analyses fournissent des informations sur le succès des mises à jour.

Comment mettre en œuvre :

  • Configurer les mises à jour automatiques
    Intégrez la chaîne d'outils CI/CD de Capgo pour gérer les mises à jour de certificats automatiquement. Les plans Capgo commencent à 12 $/mois et incluent les mises à jour OTA plus environ 15 builds natifs/mois. Les minutes de build supplémentaires sont facturées par minute à l'aide de crédits.

  • Suivre les métriques des certificats
    Utilisez le tableau de bord d'analyse de Capgo pour surveiller les principaux indicateurs, tels que le taux de réussite mondial des mises à jour, qui est actuellement de 82 %. [1].

Ces mesures aident à protéger votre application contre les attaques potentielles MITM (Man-in-the-Middle).

Directives de sécurité de l'App Store

Les deux App Store d'Apple et Google Play Store imposent des exigences de sécurité strictes pour le pinning SSL. Voici un aperçu rapide de leurs attentes :

Apple App Store :

  • Les certificats doivent être mis à jour à l'aide de l'encryption de bout en bout.
  • La validation appropriée des certificats est obligatoire.
  • La documentation de sécurité est requise lors du processus de revue.

Google Play Store :

  • Mises à jour doivent utiliser des mécanismes approuvés.
  • La transparence dans la gestion des certificats est essentielle.
  • Des mécanismes de rechange doivent être en place.

La solution de Capgo répond à toutes ces exigences tout en permettant des mises à jour instantanées. [1]Pour une approche de sécurité robuste, envisagez de combiner les mises à jour traditionnelles des magasins d'applications avec des mises à jour en temps réel à travers Capgo. Cette stratégie hybride garantit que votre application reste sécurisée et conforme sans retard inutile.

Conclusion

Pour protéger vos applications Capacitor contre les attaques MITM, la mise en place de l'ancrage SSL est une nécessité. En intégrant les données de certificat de confiance directement dans votre application, vous pouvez considérablement renforcer la sécurité de vos communications API.

Pour une mise en œuvre réussie, gardez ces aspects critiques à l'esprit :

  • Gestion des certificats : Faites de l'actualisation régulière et de la surveillance de vos certificats une priorité pour éviter les interruptions de service potentielles.
  • Flux de travail de développement : Intégrez des mécanismes de contournement pour les environnements de test tout en vous assurant que les protocoles de sécurité stricts sont en place pour les builds de production.
  • Lignes directrices du plateau : Faites respecter les exigences de sécurité des deux Apple App Store et Google Play Store pour vous assurer de la conformité.

La mise en pin SSL joue un rôle clé dans la sauvegarde des données des utilisateurs et dans la maintenance de l'intégrité de votre application. Lorsqu'elle est combinée avec les mesures de sécurité plus larges discutées précédemment, elle aide à créer un environnement d'application plus sécurisé.

FAQs

::: faq

Quels risques pourraient surgir si la mise en pin SSL n'est pas utilisée dans une application Capacitor ?

Si la mise en pin SSL n'est pas configurée dans une application Capacitor , l'application devient un objectif plus facile pour attaques de type homme au milieu (MITM)Ces attaques permettent aux acteurs malveillants de capturer et de modifier les données circulant entre l'application et son serveur. Cela pourrait entraîner la divulgation d'informations sensibles telles que les identifiants d'utilisateur ou les clés __CAPGO_KEEP_0__. API keys.

:::

:::

Quels sont les principaux différences dans l'implémentation et la maintenance de l'authentification SSL pour Android et iOS dans les applications Capacitor?

L'authentification SSL fonctionne un peu différemment sur Android et iOS, grâce à leurs API et leurs paramètres de sécurité uniques.

Sur Android, les développeurs ont souvent recours à des bibliothèques de réseau comme OkHttp ou utilisent des paramètres natifs pour configurer l'authentification SSL. Cependant, lorsqu'il est temps de mettre à jour les certificats fixés, cela signifie généralement la mise en ligne d'une nouvelle version de l'application.

Sur iOSLes mises à jour de certificats SSL sont généralement gérées via URLSession ou avec l'aide de bibliothèques tierces. Comme sur Android, toute mise à jour de certificats doit être gérée avec soin pour s'assurer que la API communication ne se rompe pas.

Les deux plateformes exigent une attention continue à l'expiration des certificats et aux mises à jour pour garder les API connections sécurisées. Des tests réguliers sont essentiels pour détecter les problèmes de compatibilité dès le début et pour se protéger contre les attaques au milieu du guichet (MITM) :::

::: faq

Comment puis-je automatiser les mises à jour de certificats SSL et m'assurer que mon Capacitor app est conforme aux exigences de sécurité des magasins d'applications ?

Même si l'article ne plonge pas dans les outils ou les stratégies pour automatiser les mises à jour de certificats SSL ou s'assurer de la conformité aux lignes directrices de sécurité des magasins d'applications, il existe des étapes que vous pouvez prendre pour améliorer la sécurité de votre application. Une mesure efficace est d'implémenter la mise en pin SSL dans votre Capacitor application. Cela aide à protéger votre application contre les attaques au milieu du guichet (MITM), qui peuvent compromettre des données sensibles.

Pour gérer les mises à jour en direct et simplifier la maintenance de l'application, des plateformes comme Capgo peut être un changement de jeu. Ils facilitent la mise à jour des applications tout en respectant les réglementations des magasins d'applications, ce qui assure une expérience plus fluide pour les développeurs et les utilisateurs.

Continuez de la mise en place de l'authentification SSL pour les applications Capacitor

Si vous utilisez la mise en place de l'authentification SSL pour les applications Capacitor pour planifier la sécurité et la conformité, connectez-le avec l'encodage pour les détails d'implémentation dans l'encodage la conformité pour les détails d'implémentation dans la 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é, et Capgo Centre de confiance pour le flux de travail du produit dans Capgo Centre de confiance.

Mises à jour en temps réel pour les applications Capacitor

Lorsqu'un bug de la couche web est en ligne, expédiez la correction à travers Capgo au lieu de attendre des jours pour l'approbation de l'App Store. Les utilisateurs reçoivent la mise à jour en arrière-plan tandis que les modifications natives restent dans la voie de revue normale.

Commencez dès maintenant

Dernières actualités de notre blog

Capgo vous offre les meilleures informations nécessaires pour créer une application mobile véritablement professionnelle.