Das Sichern Ihrer API-Schlüssel ist entscheidend für den Schutz von Benutzerdaten und die Einhaltung der App-Store-Richtlinien. Die Offenlegung von Schlüsseln kann zu Datenverletzungen, Missbrauch von Diensten und Konto-Kompromittierung führen.
Hauptergebnisse:
- Vermeide das Speichern von Schlüsseln in code: Verwende Umgebungsvariablen oder sichere Dateien.
- : Verwende Plattform-Tools: iOS-Schlüsselkasten und Android VerschlüsselteSharedPreferences.
- Verschlüssle API-Schlüssel: Füge einem zusätzlichen Sicherheitslevel mit AES-256-Verschlüsselung hinzu.
- Sichere Übertragung: Verwende immer HTTPS und überlege dir SSL-Zertifikatspinning.
- Überwache und rotiere Schlüssel: Rotiere Schlüssel regelmäßig und verfolge die Nutzung für Anomalien.
Durch die Implementierung dieser Praktiken können Sie Ihre App schützen, den Richtlinien von Apple und Google entsprechen und Ihre Benutzer schützen.
Sichere API Schlüsselspeicherungsmethoden
Entfernen Sie API Schlüssel aus der Quellcode Code
Die direkte Einbeziehung von API Schlüsseln in den Quellcode code kann zu einer Exposition durch Entkompilierung oder Repository-Lecks führen. Um dies zu vermeiden, sollten Sie diese Ansätze in Betracht ziehen:
- Verwenden Sie Umgebungsvariablen für lokale Entwicklung.
- Speichern Sie Schlüssel in sichere Konfigurationsdateien die aus der Versionskontrolle ausgeschlossen sind.
- Richten Sie sich auf remote Konfigurationsdienste Um Schlüssel zu verwalten.
Für iOS empfiehlt es sich, XCConfig-Dateien um Konfigurationen von Ihrem Codebase zu trennen. Auf Android können Sie Schlüssel mit gradle.properties:
# Store in ~/.gradle/gradle.properties
API_KEY=your_key_here
# Reference in build.gradle
buildConfigField "String", "API_KEY", "\"${project.API_KEY}\""
Plattform-Sicherheits-Tools
Nutzen Sie plattformspezifische Tools, um die Sicherheit zu verbessern, wenn Sie API-Schlüssel speichern.
Auf iOS verwenden Sie Keychain Services für sichere Speicherung:
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)
Für Android nutzen Sie EncryptedSharedPreferences für sichere Schlüsselspeicherung:
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
)
Umgebungen getrennt
Verwenden Sie unterschiedliche API-Schlüssel für die Entwicklungsumgebung, die Staging-Umgebung und die Produktionsumgebung. Jede Umgebung sollte folgende Merkmale aufweisen:
- Eine einzigartige Schlüsselrotationsschranke
- Verwendungsmeldungen
- Zugriffsbeschränkungen
Speichern Sie umgebungsabhängige Schlüssel in sicheren CI/CD-Variablen anstatt in Konfigurationsdateien. Dies sichert die Schlüssel vor unbefugtem Zugriff und unterstützt gleichzeitig automatisierte Build-Prozesse. Zudem sollten sichere Transportmechanismen in Kraft sein, um Schlüssel während der Übertragung zu schützen. Erweiterte Mobile iOS-Sicherheit – Laufzeitangriffe & __CAPGO_KEEP_0__-Schlüssel …
Advanced Mobile iOS Security – Runtime Attacks & API Key …
Die Sicherheit von API-Schlüsseln während der Übertragung ist entscheidend, um Benutzerdaten zu schützen und Anforderungen der App-Stores zu erfüllen. Starke Transport-Sicherheitsmaßnahmen helfen dabei, Angriffe wie man-in-the-middle und unbefugten Zugriff zu verhindern.
Keeping API keys secure during transit is essential to protect user data and comply with app store requirements. Strong transport security measures help prevent attacks like man-in-the-middle and unauthorized access.
HTTPS-Implementierung
Um die API-Kommunikation zu sichern, leiten Sie HTTP-Verkehr immer auf HTTPS um. Verwenden Sie TLS 1.3 oder eine spätere Version und erhalten Sie SSL-Zertifikate von einer vertrauenswürdigen Zertifizierungsstelle.
Hier ist ein grundlegender Beispiel, wie Sie HTTPS in einem Node.js Express Anwendung implementieren:
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();
});
Für einen zusätzlichen Schutz sollten Sie Zertifikatspinning implementieren.
SSL-Zertifikatspinning
Zertifikatspinning stellt sicher, dass das SSL-Zertifikat des Servers mit einem vertrauenswürdigen Vorgabkopie übereinstimmt, wodurch der Einsatz von Falschzertifikaten verhindert wird.
Auf iOS können Sie Zertifikatspinning mit der folgenden Beispiel-Implementierung verwenden: URLSessionZusätzlich zur Sicherung des Transports sollten Sie die __CAPGO_KEEP_0__-Schlüssel auf Anwendungs-Ebene verschlüsseln.
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-Schlüsselverschlüsselung
API Key Encryption
Verschlüsselung von API Schlüsseln fördert die Sicherheit um ein weiteres Level. Capgo, zum Beispiel, verwendet Ende-zu-Ende-Verschlüsselung für App-Updates.
„Die einzige Lösung mit wahrer Ende-zu-Ende-Verschlüsselung, andere signieren nur Updates“ - Capgo [1]
Um API Schlüssel zu verschlüsseln, verwenden Sie zuverlässige Verschlüsselungsalgorithmen. Hier ist ein Beispiel für die Verschlüsselung eines API Schlüssels mit 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')
};
}
Die Combination von HTTPS, Zertifikatspinning und Verschlüsselung sichert eine starke Verteidigung für Ihre API Schlüssel.
API-Schlüssel-Sicherheitsverwaltung
Die effektive Verwaltung von API Schlüsseln bedeutet, dass man ein Auge auf ihren Einsatz hat, sie regelmäßig rotieren und strengen Zugriffscontrollen unterwirft. Diese Schritte helfen dabei, sensible Daten zu schützen und die Einhaltung von Anforderungen der App-Stores sicherzustellen.
Benutzungsüberwachung
Die Überwachung der API-Schlüssel-Nutzung ist entscheidend, um ungewöhnliche Aktivitäten zu erkennen. Verwenden Sie Echtzeit-Analysen, um zu überwachen:
- Anfragemuster und -volumina
- Geografische Standorte des Zugriffs
- Fehlerraten und -typen
- Authentifizierungsfehler
Hier ist ein Beispiel in 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);
}
}
};
Schlüsselrotationsschema
Sobald Sie den Umgang mit der Anwendung beherrschen, stellen Sie sicher, dass Sie Ihre Schlüssel regelmäßig rotieren. Automatisierte Rotationen können Ihnen helfen, den Anforderungen der App-Stores zu entsprechen. Hier sind einige Rotationstrategien:
- Dringliche Rotation: Schalten Sie Schlüssel sofort aus, wenn Sie einen Sicherheitsvorfall vermuten.
- Geplante Rotation: Produktionschlüssel alle Vierteljahr aktualisieren.
- Entwicklungsrotation: Testumgebungen monatlich mit neuen Schlüsseln aktualisieren.
Um Störungen zu minimieren, verwenden Sie einen Übergangszeitraum während der Schlüsseländerung:
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()
};
Einstellungen für Zugriffssteuerung
Überwachung und Rotation sind nur ein Teil der Gleichung. Sie müssen auch strenge Zugriffssteuerungen durchsetzen. Zuteilen Sie Berechtigungen aufgrund der Notwendigkeit und halten Sie sich an das Grundsatz der geringsten Privilegien:
const accessControl = {
validateAccess: (apiKey, requestedOperation) => {
const keyPermissions = getKeyPermissions(apiKey);
const environmentType = getCurrentEnvironment();
return isOperationAllowed(keyPermissions, requestedOperation, environmentType);
}
};
Regelmäßig überprüfen Sie, wer Zugriff hat, passen Sie die Berechtigungen an, wenn nötig, und setzen Sie automatisierte Warnungen für ungewöhnliche Aktivitäten ein. Diese Maßnahmen helfen Ihnen, eine starke Sicherheit aufrechtzuerhalten, während Sie sich an die Regeln der App-Stores halten.
Capgo Sicherheitsmerkmale

Capgo stärkt die Anwendungsicherheit, indem es sichere Speicherung und -Transportmethoden kombiniert mit fortschrittlichen Funktionen, die in seine Plattform eingebaut sind.
Capgo Security Architecture
Capgo’s System hat erfolgreich über 23,5 Millionen sichere Updates an 750 Produktionsanwendungen [1]geliefert. Es verwendet End-to-End-Verschlüsselung__CAPGO_KEEP_0__-Sicherheit
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;
}
};
API-Sicherheitskonfiguration
__CAPGO_KEEP_0__-Konformität mit den Richtlinien des App-Stores
Capgo-Sicherheit und schnelle Updates [1]__CAPGO_KEEP_0__-Sicherheitsfunktion
- Automatisierte Schlüsselrotation entsprechend den Richtlinien des App-Stores
- Umgebungsabhängige Bereitstellungssteuerungen
- Feinjustierte Berechtigungen für die Update-Verwaltung
CI/CD-Sicherheitsintegration
Capgo-Integration mit CI/CD-Plattformen zur Verbesserung der API-Schlüsselsicherheit
capgo_deployment:
environment:
- CAPGO_API_KEY: ${SECURED_API_KEY}
- APP_ENV: production
security:
- signature_verification: true
- key_rotation: enabled
- access_control: role_based
| __CAPGO_KEEP_1__-Schlüsselsicherheit | Implementierung |
|---|---|
| Schlüsselverschlüsselung | End-to-end-Verschlüsselung während der Erstellung und Bereitstellung |
| Zugriffssteuerung | Rollenbasierte Berechtigungen für Bereitstellungsstarter |
| Rechnungslegung | Umfassende Protokolle aller Bereitstellungsvorgänge |
| Versionenverwaltung | Sichere Verfolgung der bereitgestellten Updates |
“End-to-end-Verschlüsselung. Nur Ihre Benutzer können Ihre Updates entschlüsseln, niemand sonst.” [1] - Capgo
Zusammenfassung
Die Sicherung von API-Schlüsseln ist entscheidend, um Anforderungen von App-Stores zu erfüllen und Benutzerdaten zu schützen. Hier ist eine kurze Übersicht über wichtige Praktiken und was als Nächstes zu tun ist.
Sicherheitscheckliste
Die folgende Tabelle hebt wichtige Schritte zur Sicherung von API-Schlüsseln hervor, während man sich an die Standards von Apple und Google hält:
| Sicherheitsmaßnahme | Implementierungsanforderungen | Zuständigkeitsauswirkungen |
|---|---|---|
| Speicherungssicherheit | Verwenden Sie Ende-zu-Ende-Verschlüsselung und separate Umgebungen | Stimmt mit den Datenschutzregeln von Apple/Google überein |
| Transportlayer | Erzwingen Sie HTTPS und verwenden Sie SSL-Zertifikatspinning | Sichert Daten während der Übertragung |
| Zugriffssteuerung | Berechtigungen auf Rollenebene zuweisen und Zugriffe protokollieren Zugriffsprotokolle | Blockiert unbefugten Zugriff |
| Schlüsselverwaltung | Drehen Sie Schlüssel automatisch und verwenden Sie umgebungsspezifische Schlüssel | Bewahrt starke, laufende Sicherheit |
Beziehen Sie sich auf diese Liste als Leitfaden zur Sicherung Ihrer API-Schlüssel.
Nächste Schritte
-
Audit der aktuellen Implementierung
Überprüfen Sie Ihre bestehende Schlüssel-Speicher- und -Transportmethoden auf Schwachstellen, insbesondere bei Verschlüsselung und Quellcode code-Exposition.
-
Implementieren Sie Sicherheitsmaßnahmen
Wenden Sie Ende-zu-Ende-Verschlüsselung an, um Risiken zu reduzieren und Anforderungen der App-Stores zu erfüllen.
-
Sicherheitsüberwachungssysteme einrichten
Automatisierte Warnungen einrichten und regelmäßige Audits durchführen, um die Sicherheit fortzusetzen.
“App Store compliant” - Capgo [1]
Keep going from API Key Security for App Store Compliance
Wenn Sie Key Security für die Einhaltung der App Store-Vorschriften verwenden API Key Security for App Store Compliance Verschlüsselung für die Implementierungsdetails in Verschlüsselung Einhaltung für die Implementierungsdetails in Einhaltung Sicherheits-Scanner von Capgo für den Produktworkflow in Capgo Sicherheits-Scanner Capgo Sicherheit für den Produktworkflow in Capgo Sicherheit, und Capgo Vertrauenszentrum für den Produktworkflow in Capgo Vertrauenszentrum.