Encryption
Capgo bietet robuste Ende-zu-Ende-Verschlüsselung für Ihre App-Bundles und stellt sicher, dass Ihr JavaScript-Code und Assets während der Übertragung und Speicherung geschützt sind. Dieses Verschlüsselungssystem ist darauf ausgelegt, Ihnen die vollständige Kontrolle über die Sicherheit Ihrer App zu geben und gleichzeitig den Komfort von Live-Updates beizubehalten.
Übersicht
Section titled “Übersicht”Das Verschlüsselungssystem von Capgo verwendet branchenübliche kryptografische Methoden, um Ihre Bundles vor unbefugtem Zugriff zu schützen. Wenn die Verschlüsselung aktiviert ist, werden Ihre Bundles verschlüsselt, bevor sie Ihre Entwicklungsumgebung verlassen, und bleiben verschlüsselt, bis sie von Ihrer App auf dem Gerät des Benutzers entschlüsselt werden.
Echte Ende-zu-Ende-Verschlüsselung: Im Gegensatz zu anderen OTA-Update-Plattformen, die nur Updates signieren (wobei der Code öffentlich lesbar bleibt), bietet Capgo echte Ende-zu-Ende-Verschlüsselung. Das bedeutet, dass nur Ihre Benutzer Ihre Updates entschlüsseln können - niemand sonst, einschließlich Capgo selbst. Ihr Bundle-Inhalt bleibt während des gesamten Bereitstellungsprozesses vollständig privat und unlesbar.
Wie Verschlüsselung funktioniert
Section titled “Wie Verschlüsselung funktioniert”Capgo verwendet einen hybriden Verschlüsselungsansatz, der RSA- und AES-Verschlüsselung für optimale Sicherheit und Leistung kombiniert:

1. Schlüsselerzeugung
Section titled “1. Schlüsselerzeugung”- Privater Schlüssel: In Ihrer Entwicklungsumgebung generiert und sicher gespeichert (wird für Verschlüsselung verwendet)
- Öffentlicher Schlüssel: Von Ihrem privaten Schlüssel abgeleitet und in der Capacitor-Konfiguration Ihrer App gespeichert (wird für Entschlüsselung verwendet)
- Session-Schlüssel: Zufällige AES-Schlüssel, die für jedes Bundle-Upload generiert werden
2. Verschlüsselungsprozess
Section titled “2. Verschlüsselungsprozess”- Ein zufälliger AES-Session-Schlüssel wird für jedes Bundle-Upload generiert
- Ihr Bundle wird mit dem AES-Session-Schlüssel verschlüsselt
- Die Bundle-Prüfsumme wird berechnet
- Sowohl der AES-Session-Schlüssel als auch die Prüfsumme werden zusammen mit Ihrem RSA-Privatschlüssel verschlüsselt (wodurch die “Signatur” erstellt wird)
- Das verschlüsselte Bundle und die verschlüsselte Signatur werden gespeichert
Die Prüfsumme wird zusammen mit dem AES-Schlüssel verschlüsselt, um Manipulationen zu verhindern. Da nur Ihr RSA-Privatschlüssel diese Signatur erstellen kann und nur der entsprechende öffentliche Schlüssel sie entschlüsseln kann, wird sichergestellt, dass sowohl der AES-Session-Schlüssel als auch die erwartete Prüfsumme authentisch sind und nicht von einem Angreifer modifiziert wurden.
3. Entschlüsselungsprozess
Section titled “3. Entschlüsselungsprozess”- Ihre App lädt das verschlüsselte Bundle und die verschlüsselte Signatur herunter
- Das Capgo SDK verwendet Ihren RSA-öffentlichen Schlüssel (in der App gespeichert), um die Signatur zu entschlüsseln
- Dies enthüllt den AES-Session-Schlüssel und die ursprüngliche Prüfsumme
- Der AES-Session-Schlüssel wird verwendet, um das Bundle zu entschlüsseln
- Eine Prüfsumme des entschlüsselten Bundles wird berechnet und mit der ursprünglichen Prüfsumme zur Integritätsprüfung verglichen
Dieser Prozess stellt sicher, dass selbst wenn ein Angreifer das verschlüsselte Bundle abfängt, er weder den AES-Session-Schlüssel ändern noch eine gefälschte Prüfsumme bereitstellen kann, da er Ihren privaten Schlüssel benötigen würde, um eine gültige Signatur zu erstellen, die der öffentliche Schlüssel entschlüsseln kann.
Capgo vs. andere Plattformen
Section titled “Capgo vs. andere Plattformen”| Merkmal | Capgo | Andere OTA-Plattformen |
|---|---|---|
| Bundle-Inhalt | Vollständig verschlüsselt (unlesbar) | Öffentlich lesbar |
| Sicherheitsmethode | Echte Ende-zu-Ende-Verschlüsselung | Nur Code-Signierung |
| Datenschutzniveau | Zero-Knowledge (selbst Capgo kann Ihren Code nicht lesen) | Plattform kann auf Ihren Code zugreifen |
| Schutz | Inhalt + Integrität + Authentizität | Nur Integrität + Authentizität |
Warum das wichtig ist:
- Code-Signierung überprüft nur, dass Updates nicht manipuliert wurden und aus der richtigen Quelle stammen
- Ende-zu-Ende-Verschlüsselung stellt sicher, dass Ihr tatsächlicher Code-Inhalt während der Übertragung und Speicherung privat und unlesbar bleibt
- Mit Capgos echter Ende-zu-Ende-Verschlüsselung können nur Ihre Benutzer Updates entschlüsseln - niemand sonst, einschließlich Capgo selbst
Verschlüsselungsmethoden
Section titled “Verschlüsselungsmethoden”Capgo verwendet Verschlüsselung V2 als Standard-Verschlüsselungsmethode:
Verschlüsselung V2 (Aktueller Standard)
Section titled “Verschlüsselung V2 (Aktueller Standard)”- Verwendet RSA-4096 für erhöhte Sicherheit
- AES-256-GCM für authentifizierte Verschlüsselung
- Bietet Integritätsprüfung
- Bessere Leistung und Sicherheit
Verschlüsselung V1 (Veraltet)
Section titled “Verschlüsselung V1 (Veraltet)”- Verwendet RSA-2048 für Schlüsselverschlüsselung
- AES-256-CBC für Bundle-Verschlüsselung
- In der aktuellen CLI nicht mehr verfügbar
- Legacy-Apps, die V1 verwenden, müssen auf V2 migrieren
Verschlüsselung einrichten
Section titled “Verschlüsselung einrichten”Schritt 1: Verschlüsselungsschlüssel generieren
Section titled “Schritt 1: Verschlüsselungsschlüssel generieren”Generieren Sie zunächst Ihre Verschlüsselungsschlüssel mit der Capgo CLI:
# Neue Verschlüsselungsschlüssel generieren (erstellt Dateien im aktuellen Verzeichnis)npx @capgo/cli@latest key createDies erstellt:
.capgo_key_v2: Ihr privater Schlüssel (halten Sie diesen sicher!).capgo_key_v2.pub: Ihr öffentlicher Schlüssel (wird von Ihrer App verwendet)
Diese Dateien werden im aktuellen Verzeichnis erstellt, in dem Sie den Befehl ausführen.
Schritt 2: Öffentlichen Schlüssel in Capacitor-Konfiguration speichern (Erforderlich)
Section titled “Schritt 2: Öffentlichen Schlüssel in Capacitor-Konfiguration speichern (Erforderlich)”Sie müssen Ihren öffentlichen Schlüssel in der Capacitor-Konfiguration speichern, damit Ihre mobile App Bundles entschlüsseln kann:
# Öffentlichen Schlüssel aus Datei in Capacitor-Konfiguration speichern (erforderlich)npx @capgo/cli@latest key save --key ./.capgo_key_v2.pub
# Oder öffentliche Schlüsseldaten direkt speichernnpx @capgo/cli@latest key save --key-data "$CAPGO_PUBLIC_KEY"Schritt 3: Capacitor-Plattform synchronisieren (Erforderlich)
Section titled “Schritt 3: Capacitor-Plattform synchronisieren (Erforderlich)”Nachdem Sie den öffentlichen Schlüssel gespeichert haben, müssen Sie die Capacitor-Plattform synchronisieren, um die aktualisierte Konfiguration auf die native Ebene zu kopieren:
# Plattform synchronisieren, um Konfiguration auf native Ebene zu kopierennpx cap syncBundles verschlüsseln
Section titled “Bundles verschlüsseln”Methode 1: Während des Uploads verschlüsseln
Section titled “Methode 1: Während des Uploads verschlüsseln”Der einfachste Weg ist die Verschlüsselung während des Upload-Prozesses:
# Upload mit automatischer Verschlüsselungnpx @capgo/cli@latest bundle upload --key-v2
# Für externen Speicher müssen Sie zuerst verschlüsseln (siehe Manuelle Verschlüsselungs-Workflow unten)Methode 2: Manueller Verschlüsselungs-Workflow
Section titled “Methode 2: Manueller Verschlüsselungs-Workflow”Für mehr Kontrolle können Sie Bundles manuell verschlüsseln:
-
Ein Zip-Bundle erstellen:
Terminal-Fenster npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2 -
Bundle verschlüsseln:
Terminal-Fenster npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM_FROM_STEP_1 -
In Ihren Speicher hochladen (z.B. S3) und bei Capgo registrieren:
Terminal-Fenster # Zuerst verschlüsseltes Bundle in Ihren Speicher hochladen (z.B. AWS S3)aws s3 cp ./encrypted-bundle.zip s3://your-bucket/encrypted-bundle.zip# Dann bei Capgo mit externer URL registrierennpx @capgo/cli@latest bundle upload --external https://your-storage.com/encrypted-bundle.zip --iv-session-key IV_SESSION_KEY_FROM_STEP_2
Schlüsselverwaltung
Section titled “Schlüsselverwaltung”Schlüssel sicher speichern
Section titled “Schlüssel sicher speichern”Optionen für privaten Schlüssel:
-
Dateibasiert (lokale Entwicklung):
Terminal-Fenster # Schlüssel als .capgo_key_v2-Datei im Projektstamm gespeichertnpx @capgo/cli@latest bundle upload --key-v2 -
Umgebungsvariable (CI/CD):
Terminal-Fenster # In Umgebungsvariable für CI speichernexport CAPGO_PRIVATE_KEY="$(cat .capgo_key_v2)"npx @capgo/cli@latest bundle upload --key-data-v2 "$CAPGO_PRIVATE_KEY"
Öffentliche Schlüssel-Einrichtung (Erforderlich):
# Öffentlichen Schlüssel in Capacitor-Konfiguration für mobile App speichernnpx @capgo/cli@latest key save --key ./.capgo_key_v2.pubProduktionsumgebung:
- Speichern Sie private Schlüssel in sicheren Schlüsselverwaltungsdiensten (AWS KMS, Azure Key Vault usw.)
- Verwenden Sie CI/CD-Geheimnisverwaltung für private Schlüssel
- Committen Sie niemals private Schlüssel in die Versionskontrolle
Schlüsselverwendung:
- Privater Schlüssel: Wird von CLI für Verschlüsselung während Bundle-Upload verwendet (sicher aufbewahren)
- Öffentlicher Schlüssel: In App-Konfiguration für Entschlüsselung auf Gerät gespeichert (sicher zu committen)
Schlüsselrotation
Section titled “Schlüsselrotation”Rotieren Sie regelmäßig Ihre Verschlüsselungsschlüssel für erhöhte Sicherheit:
-
Neue Schlüssel generieren:
Terminal-Fenster # Navigieren Sie zuerst zum gewünschten Verzeichnis, dann Schlüssel erstellenmkdir ./new-keys && cd ./new-keysnpx @capgo/cli@latest key create -
Neuen öffentlichen Schlüssel in Capacitor-Konfiguration speichern:
Terminal-Fenster npx @capgo/cli@latest key save --key ./new-keys/.capgo_key_v2.pub -
Aktualisieren Sie Ihre App-Konfiguration mit dem neuen öffentlichen Schlüssel
-
Deployen Sie die aktualisierte App, bevor Sie verschlüsselte Bundles mit dem neuen Schlüssel hochladen
Sicherheits-Best-Practices
Section titled “Sicherheits-Best-Practices”Schlüsselsicherheit
Section titled “Schlüsselsicherheit”- Teilen Sie niemals private Schlüssel zwischen Umgebungen oder Teammitgliedern
- Verwenden Sie unterschiedliche Schlüssel für verschiedene Umgebungen (dev, staging, production)
- Rotieren Sie Schlüssel regelmäßig (empfohlen: alle 6-12 Monate)
- Speichern Sie Schlüssel sicher mit geeigneten Schlüsselverwaltungssystemen
Bundle-Sicherheit
Section titled “Bundle-Sicherheit”- Überprüfen Sie immer die Bundle-Integrität nach der Entschlüsselung
- Überwachen Sie auf ungewöhnliche Download-Muster oder Fehler
- Verwenden Sie HTTPS für alle Bundle-URLs (erforderlich für mobile Apps)
- Implementieren Sie ordnungsgemäße Fehlerbehandlung für Entschlüsselungsfehler
Zugriffskontrolle
Section titled “Zugriffskontrolle”- Beschränken Sie den Zugriff auf Verschlüsselungsschlüssel nur auf autorisiertes Personal
- Verwenden Sie rollenbasierte Zugriffskontrolle für Schlüsselverwaltungsoperationen
- Prüfen Sie regelmäßig Schlüsselnutzung und -zugriff
- Implementieren Sie ordnungsgemäße Backup- und Wiederherstellungsverfahren
Fehlerbehebung bei Verschlüsselung
Section titled “Fehlerbehebung bei Verschlüsselung”Häufige Probleme
Section titled “Häufige Probleme”Entschlüsselungsfehler:
- Überprüfen Sie, ob der private Schlüssel mit dem für die Verschlüsselung verwendeten öffentlichen Schlüssel übereinstimmt
- Prüfen Sie, ob der
ivSessionKeykorrekt ist - Stellen Sie sicher, dass Sie Verschlüsselung V2 verwenden (V1 wird nicht mehr unterstützt)
Schlüsselbezogene Fehler:
- Bestätigen Sie, dass das Format des privaten Schlüssels korrekt ist (PEM-Format)
- Überprüfen Sie, ob der Schlüssel während der Speicherung/Übertragung nicht beschädigt wurde
- Prüfen Sie, ob der Schlüssel die richtigen Berechtigungen in Ihrer App-Konfiguration hat
Leistungsprobleme:
- Große Bundles können länger zum Ver-/Entschlüsseln benötigen
- Erwägen Sie die Verwendung von differenziellen Updates, um Bundle-Größen zu reduzieren
- Überwachen Sie die Geräteleistung während der Entschlüsselung
Debug-Befehle
Section titled “Debug-Befehle”Verschlüsselungsstatus überprüfen:
npx @capgo/cli@latest app debugVerschlüsselungs-/Entschlüsselungs-Workflow testen:
# Vollständigen Workflow testen: 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_KEYCompliance und Standards
Section titled “Compliance und Standards”Die Verschlüsselungsimplementierung von Capgo folgt Industriestandards:
- AES-256: FIPS 140-2 genehmigter Verschlüsselungsalgorithmus
- RSA-4096: Starke asymmetrische Verschlüsselung für Schlüsselschutz
- GCM-Modus: Bietet sowohl Vertraulichkeit als auch Authentizität
- Sichere Zufallszahlen: Kryptografisch sichere Zufallszahlengenerierung
Dies macht Capgo geeignet für Anwendungen, die Compliance benötigen mit:
- GDPR (General Data Protection Regulation)
- HIPAA (Health Insurance Portability and Accountability Act)
- SOC 2 (Service Organization Control 2)
- ISO 27001 (Information Security Management)
Leistungsüberlegungen
Section titled “Leistungsüberlegungen”Verschlüsselungs-Overhead
Section titled “Verschlüsselungs-Overhead”- Bundle-Größe: Verschlüsselte Bundles sind etwas größer (~1-2% Overhead)
- Verarbeitungszeit: Ver-/Entschlüsselung fügt minimale Latenz hinzu
- Speichernutzung: Temporärer Anstieg während Ver-/Entschlüsselungsoperationen
Optimierungstipps
Section titled “Optimierungstipps”- Verwenden Sie differentielle Updates, um verschlüsselte Datenübertragung zu minimieren
- Optimieren Sie Ihre Bundle-Größe durch Konvertierung von Bildern ins WebP-Format
- Minimieren Sie JavaScript- und CSS-Dateien vor dem Bundling
- Entfernen Sie ungenutzte Abhängigkeiten und Code
- Überwachen Sie die Geräteleistung auf älteren/langsameren Geräten
Nächste Schritte
Section titled “Nächste Schritte”- Erfahren Sie mehr über Custom Storage, um Verschlüsselung mit Ihrer eigenen Infrastruktur zu verwenden
- Erkunden Sie Channels, um verschlüsselte Bundles über Umgebungen hinweg zu verwalten
- Richten Sie CI/CD Integration ein, um verschlüsselte Bereitstellungen zu automatisieren