Il est essentiel de garder vos API clés sécurisées pour protéger les données des utilisateurs et respecter les règles de l'App Store. La divulgation de clés peut entraîner des fuites de données, des abus de services et des compromis de compte.
Résultats clés :
- Évitez de stocker les clés dans codeUtilisez les variables d'environnement ou les fichiers sécurisés.
- Utilisez les outils de la plateformeClés de la chaîne de clés iOS et Android SharedPreferences chiffrés.
- Chiffrez les clés APIAjoutez une couche supplémentaire de sécurité avec l'encryption AES-256.
- Transport sécuriséUtilisez toujours HTTPS et considérez la mise en cache de certificats SSL.
- Surveillez et tournnez les clésTournnez régulièrement les clés et suivez l'utilisation pour les anomalies.
En mettant en œuvre ces pratiques, vous pouvez sécuriser votre application, vous conformer aux lignes directrices d'Apple et de Google, et protéger vos utilisateurs.
Sécuriser les méthodes de stockage de la clé API
Supprimer les clés API des fichiers source Code
Inclure les clés API directement dans les fichiers source code peut entraîner une exposition par décompilation ou par des fuites de dépôt. Pour éviter cela, considérez ces approches :
- Utiliser les variables d'environnement pour le développement local.
- Stockez les clés dans fichiers de configuration sécurisés qui sont exclus du contrôle de version.
- Rendez-vous sur services de configuration à distance gérer les clés.
Pour iOS, envisagez d'utiliser les fichiers XCConfig pour séparer les configurations de votre base de code. Sur Android, vous pouvez gérer les clés à l'aide des gradle.properties:
# Store in ~/.gradle/gradle.properties
API_KEY=your_key_here
# Reference in build.gradle
buildConfigField "String", "API_KEY", "\"${project.API_KEY}\""
Outils de sécurité de la plateforme
Profitez des outils spécifiques à la plateforme pour améliorer la sécurité lors du stockage des clés API.
Sur iOS, utilisez Services de clés de chaîne pour un stockage sécurisé :
let query: [String: Any] = [
kSecClass as String: kSecClassGenericPassword,
kSecAttrAccount as String: "APIKey",
kSecValueData as String: apiKey.data(using: .utf8)!
]
let status = SecItemAdd(query as CFDictionary, nil)
Pour Android, profitez de SharedPreferences chiffrés pour un stockage sécurisé des clés :
val masterKey = MasterKey.Builder(context)
.setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
.build()
val sharedPreferences = EncryptedSharedPreferences.create(
context,
"secret_shared_prefs",
masterKey,
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)
Clés Séparées par Environnement
Utilisez des clés API différentes pour les environnements de développement, de pré-production et de production. Chaque environnement devrait avoir :
- Un calendrier de rotation de clés unique.
- Surveillance d'utilisation.
- Contrôles d'accès stricts.
Stockez les clés spécifiques à l'environnement dans les variables de CI/CD sécurisées au lieu de fichiers de configuration. Cela garantit que les clés restent protégées tout en supportant les processus de construction automatisés. De plus, assurez-vous que des mécanismes de transport sécurisés sont en place pour protéger les clés pendant la transmission. La Sécurité Avancée des Appareils Mobiles iOS – Attaques en Temps d'Exécution & __CAPGO_KEEP_0__ Clé …
Advanced Mobile iOS Security – Runtime Attacks & API Key …
La protection des clés API pendant le transit est essentielle pour protéger les données des utilisateurs et se conformer aux exigences des magasins d'applications. Des mesures de sécurité de transport solides aident à prévenir les attaques comme l'homme au milieu et l'accès non autorisé.
Clés API Sécurité de Transport
Mise en œuvre HTTPS
Pour sécuriser la communication API, redirigez toujours le trafic HTTP vers HTTPS. Utilisez TLS 1.3 ou une version ultérieure et obtenez des certificats SSL auprès d'une autorité de certification fiable.
Voici un exemple de base pour mettre en œuvre HTTPS dans une application Node.js Express : Pour une couche de protection supplémentaire, considérez la mise en œuvre de la pinning de certificats. Pinning de certificat SSL
const express = require('express');
const app = express();
// Redirect HTTP to HTTPS
app.use((req, res, next) => {
if (!req.secure) {
return res.redirect('https://' + req.headers.host + req.url);
}
next();
});
La pinning de certificat garantit que le certificat SSL du serveur correspond à une copie fiable, empêchant l'utilisation de certificats faux.
Sur iOS, vous pouvez mettre en œuvre la pinning de certificat en utilisant
Voici un exemple :
En plus de sécuriser le transport, chifrez les clés __CAPGO_KEEP_0__ au niveau de l'application. URLSession__CAPGO_KEEP_0__ Chiffrement de Clé
class APIManager: NSObject, URLSessionDelegate {
func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
guard let serverTrust = challenge.protectionSpace.serverTrust,
let certificate = SecTrustGetCertificateAtIndex(serverTrust, 0) else {
completionHandler(.cancelAuthenticationChallenge, nil)
return
}
// Compare certificate with pinned certificate
if validateCertificate(certificate) {
completionHandler(.useCredential, URLCredential(trust: serverTrust))
} else {
completionHandler(.cancelAuthenticationChallenge, nil)
}
}
}
API
API
Chiffrer les API clés ajoute une autre couche de sécurité. Par exemple, API utilise la chiffrure de bout en bout pour les mises à jour d'applications. “La seule solution avec une chiffrure de bout en bout vraie, les autres ne signent que les mises à jour” - Capgo
Pour chiffrer les Capgo clés, utilisez des algorithmes de chiffrure fiables. Voici un exemple de chiffrage d'une __CAPGO_KEEP_1__ clé avec AES-256-GCM dans Node.js : [1]
To encrypt API keys, use reliable encryption algorithms. Below is an example of encrypting an API key with AES-256-GCM in Node.js:
const crypto = require('crypto');
function encryptAPIKey(apiKey, encryptionKey) {
const iv = crypto.randomBytes(16);
const cipher = crypto.createCipheriv('aes-256-gcm', encryptionKey, iv);
let encrypted = cipher.update(apiKey, 'utf8', 'hex');
encrypted += cipher.final('hex');
return {
encrypted: encrypted,
iv: iv.toString('hex'),
tag: cipher.getAuthTag().toString('hex')
};
}
La gestion de sécurité des API clés
Gérer efficacement les API clés signifie garder un œil de près sur leur utilisation, les faire tourner régulièrement et appliquer des contrôles d'accès stricts. Ces étapes aident à protéger les données sensibles et à s'assurer de la conformité aux exigences des magasins d'applications.
Managing API keys effectively means keeping a close eye on their usage, rotating them regularly, and enforcing strict access controls. These steps help protect sensitive data and ensure compliance with app store requirements.
Surveiller l'utilisation des __CAPGO_KEEP_0__ clés est crucial pour détecter toute activité anormale. Utilisez des analyses en temps réel pour surveiller :
Keeping track of API key usage is crucial for spotting any unusual activity. Use real-time analytics to monitor:
- Emplacements géographiques d'accès
- Taux et types d'erreurs
- Chiffrer les __CAPGO_KEEP_0__ clés ajoute une autre couche de sécurité. Par exemple, __CAPGO_KEEP_0__ utilise la chiffrure de bout en bout pour les mises à jour d'applications. ‘La seule solution avec une chiffrure de bout en bout vraie, les autres ne signent que les mises à jour’ - __CAPGO_KEEP_0__
- Echecs d'authentification
Voici un exemple en Node.js :
const apiMetrics = {
trackRequest: (apiKey, endpoint) => {
// Log request details
const requestData = {
timestamp: new Date().toISOString(),
endpoint,
apiKey: hashKey(apiKey),
geoLocation: getRequestLocation(),
responseTime: calculateResponseTime()
};
// Alert on suspicious patterns
if (isAnomalous(requestData)) {
notifySecurityTeam(requestData);
}
}
};
Calendrier de rotation des clés
Une fois que vous avez une bonne compréhension de l'utilisation, assurez-vous de faire pivoter régulièrement vos clés. Les processus de rotation automatisés peuvent vous aider à rester conforme aux exigences des magasins d'applications. Voici quelques stratégies de rotation :
- Rotation d'urgence : Immédiatement désactivez les clés si vous soupçonnez une intrusion.
- Rotation planifiée : Mettez à jour les clés de production tous les trimestres.
- Rotation de développement : Actualisez les clés pour les environnements de test tous les mois.
Pour minimiser les perturbations, utilisez une période de transition lors des changements de clés :
const keyRotation = {
oldKey: process.env.OLD_API_KEY,
newKey: process.env.NEW_API_KEY,
transitionPeriod: 7 * 24 * 60 * 60 * 1000, // 7 days
startDate: new Date()
};
Configuration de la gestion des accès
La surveillance et la rotation ne constituent qu'une partie de l'équation. Vous devez également imposer des contrôles d'accès stricts. Attribuez des permissions en fonction de la nécessité et restez fidèle au principe de privilège minimal :
const accessControl = {
validateAccess: (apiKey, requestedOperation) => {
const keyPermissions = getKeyPermissions(apiKey);
const environmentType = getCurrentEnvironment();
return isOperationAllowed(keyPermissions, requestedOperation, environmentType);
}
};
Examinez régulièrement qui a accès, ajustez les permissions si nécessaire et configurez des alertes automatiques pour les activités inhabituelles. Ces mesures vous aideront à maintenir une sécurité solide tout en restant conforme aux règles des magasins d'applications.
Capgo Fonctionnalités de Sécurité

Capgo renforce la sécurité des applications en combinant des méthodes de stockage et de transport sécurisées avec des fonctionnalités avancées intégrées à sa plateforme.
Capgo Architecture de Sécurité
Capgo a réussi à livrer plus de 23,5 millions de mises à jour sécurisées à 750 applications de production. Mises à jour sécurisées à 750 applications de production. [1]Il utilise chiffrement de bout en bout, en garantissant que seuls les utilisateurs autorisés puissent déchiffrer les mises à jour. Voici un aperçu de sa configuration de sécurité :
const capgoSecurity = {
encryptionType: 'end-to-end',
keyStorage: {
separate: true,
encrypted: true,
environment: process.env.NODE_ENV
},
updateVerification: async (update) => {
const isValid = await verifySignature(update);
const isAuthorized = await checkUserPermissions(update.userId);
return isValid && isAuthorized;
}
};
Cette conception ne garantit pas seulement les clés API mais simplifie également le respect des exigences des magasins d'applications.
Conformité aux Directives du Magasin d'Application
Capgo garantit que les mises à jour soient livrées rapidement et de manière sécurisée, avec un taux de réussite mondial de 82 %, avec 95 % des utilisateurs actifs recevant les mises à jour dans les 24 heures [1]. Ses fonctionnalités aident à relever les vulnérabilités potentielles :
- Rotation automatique des clés alignée sur les politiques des magasins d'applications
- Contrôles de déploiement adaptés aux environnements spécifiques
- Permissions détaillées pour gérer les mises à jour
Intégration de la sécurité des CI/CD
Capgo fonctionne en toute harmonie avec les plateformes CI/CD pour renforcer la protection des clés API. Voici un exemple de son intégration :
capgo_deployment:
environment:
- CAPGO_API_KEY: ${SECURED_API_KEY}
- APP_ENV: production
security:
- signature_verification: true
- key_rotation: enabled
- access_control: role_based
| Fonctionnalité de sécurité | Mise en œuvre |
|---|---|
| Chiffrement de la clé | Chiffrement end-to-end pendant la construction et la mise en production |
| Contrôle d'accès | Permissions basées sur le rôle pour les déclencheurs de mise en production |
| Journalisation d'audit | Journaux complets de toutes les activités de mise en production |
| Contrôle de version | Suivi sécurisé des mises à jour déployées |
“Chiffrement end-to-end. Seuls vos utilisateurs peuvent déchiffrer vos mises à jour, personne d'autre.” [1] - Capgo
Résumé
Il est crucial de garder les clés API sécurisées pour répondre aux exigences des magasins d'applications et protéger les données des utilisateurs. Voici un aperçu rapide des pratiques clés et ce que faire ensuite.
Liste de Vérification de Sécurité
La table ci-dessous met en évidence les étapes importantes pour protéger les clés API tout en restant alignées sur les normes d'Apple et Google :
| Mesure de Sécurité | Exigences d'Implémentation | Impact de la Conformité |
|---|---|---|
| Sécurité de Stockage | Utilisez l'encryption à la fin à fin et des environnements séparés | S'aligne sur les règles de protection des données d'Apple/Google |
| Couche de Transport | Appliquez HTTPS et utilisez la mise en cache de certificat SSL | Sécurise les données pendant la transmission |
| Contrôle d'Accès | Appliquez des permissions basées sur le rôle et suivez les journaux d'accès | Empêche l'accès non autorisé |
| Gestion des clés | Rotez automatiquement les clés et utilisez des clés spécifiques à l'environnement | Maintient une sécurité solide et continue |
Consultez ce checklist comme guide pour sécuriser vos API clés.
Étapes suivantes
-
Auditez la mise en œuvre actuelle
Examinez vos méthodes actuelles de stockage et de transport de clés pour les vulnérabilités, en vous concentrant particulièrement sur l'encryption et l'exposition de votre source code.
-
Mettez en œuvre des mesures de sécurité
Appliquez une encryption de bout en bout pour réduire les risques et répondre aux exigences des magasins d'applications.
-
Établir des systèmes de surveillance
Configurer des alertes automatiques et effectuer des audits réguliers pour s'assurer de la sécurité continue.
“App Store compliant” - Capgo [1]
Continuez à partir de API Clé de sécurité pour la conformité de l'App Store
Si vous utilisez API Clé de sécurité pour la conformité de l'App Store pour planifier la sécurité et la conformité, connectez-le avec Chiffrage pour le détail d'implémentation dans Chiffrage, Conformité pour le détail d'implémentation dans 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.