Verschlüsselung
Kopieren Sie einen Setup-Vorschlag mit den Installationsanweisungen und der vollständigen Markdown-Anleitung für diesen Plugin.
Capgo bietet eine robuste Ende-zu-Ende-Verschlüsselung für Ihre App-Bundles, die sicherstellt, dass Ihre JavaScript-code- und Asset-Dateien während der Übertragung und Speicherung geschützt sind. Dieses Verschlüsselungssystem ist so konzipiert, dass Ihnen die volle Kontrolle über die Sicherheit Ihrer App zugestanden wird, während die Vorteile von Live-Updates beibehalten werden.
Capgo
Was Verschlüsselung tatsächlich schützt: Im Gegensatz zu OTA-Systemen, die nur Updates signieren, Capgo verschlüsselt das hochgeladene Bundle vor dem Speicher und der Lieferung. Dies schützt die Bundle-Inhalte vor zufälligem Zugriff im Speicher oder im Transit und stellt sicher, dass nur jemand mit Ihrem privaten Schlüssel ein gültig verschlüsseltes Update erstellen kann. Es macht jedoch die im App verteiltete öffentliche Schlüssel, mit dem der Client Updates entschlüsseln kann, nicht unmöglich zu extrahieren und die Bundle-Inhalte zu untersuchen. Wenn Sie ein Bundle ohne Verschlüsselung hochladen, behandeln Sie es als öffentliches Asset. Private Kanäle beschränken die Geräte, die ein Update erhalten, aber sie machen das hochgeladene Bundle nicht vertraulich. Die Verschlüsselung ist nützlich, wenn Sie eine bessere Schutzausstattung im Speicher und im Transit benötigen und wenn Sie nur die Inhaber des privaten Schlüssels haben möchten, die gültig verschlüsselte Updates veröffentlichen können. Sie garantiert nicht, dass gelieferte JavaScript-, HTML- oder CSS-Dateien nie untersucht werden können. Gefährdungsmodell
Wie Verschlüsselung funktioniert
Abschnitt mit dem Titel 'Wie Verschlüsselung funktioniert'Capgo verwendet eine hybride Verschlüsselungsstrategie, die RSA- und AES-Verschlüsselung kombiniert, um optimalen Schutz und Leistung zu erzielen:

1. Schlüsselgenerierung
Abschnitt mit dem Titel “1. Schlüsselgenerierung”- Privatschlüssel: Generiert und sicher im Entwicklungsumfeld gespeichert (für die Verschlüsselung verwendet)
- Öffentlicher Schlüssel: Aus Ihrem privaten Schlüssel abgeleitet und im Capacitor-Konfiguration Ihres Apps gespeichert (für die Entschlüsselung verwendet)
- Sitzungschlüssel: Zufällige AES-Schlüssel generiert für jede Upload-Bundle
2. Verschlüsselungsprozess
Abschnitt mit dem Titel “2. Verschlüsselungsprozess”- Ein zufälliger AES-Sitzungschlüssel wird für jeden Upload-Bundle generiert
- Ihr Bundle wird mit dem AES-Sitzungschlüssel verschlüsselt
- The Bundle-Prüfsumme wird berechnet
- Beide, die AES-Sitzungsschlüssel und die Prüfsumme, werden mithilfe Ihres RSA-Privatschlüssels (wodurch der „Signature“ entsteht) verschlüsselt
- Der verschlüsselte Bundle und der verschlüsselte Signature werden gespeichert
Die Prüfsumme wird neben dem AES-Schlüssel verschlüsselt, um Manipulationen zu verhindern. Da nur Ihr RSA-Privatschlüssel diese Signature erstellen kann und nur der entsprechende öffentliche Schlüssel sie entschlüsseln kann, stellt dies sicher, dass sowohl der AES-Sitzungsschlüssel als auch die erwartete Prüfsumme authentisch sind und nicht von einem Angreifer manipuliert wurden.
3. Entschlüsselungsprozess
Abschnitt mit dem Titel „3. Entschlüsselungsprozess“- Ihr App lädt den verschlüsselten Bundle und den verschlüsselten Signature herunter
- Der Capgo SDK verwendet Ihren RSA-öffentlichen Schlüssel (gespeichert in der App) zur Entschlüsselung der Signature
- Dies offenbart den AES-Sitzungsschlüssel und die ursprüngliche Prüfsumme
- Der AES-Sitzungsschlüssel wird zum Entschlüsseln des Bundles verwendet
- Die Prüfsumme des entschlüsselten Bundles wird berechnet und mit der ursprünglichen Prüfsumme für eine Integritätsprüfung verglichen
Dieser Prozess stellt sicher, dass selbst wenn ein Angreifer den verschlüsselten Bundle aufgreift, er den AES-Sitzungsschlüssel oder eine Falschprüfsumme nicht ändern oder bereitstellen kann, da er Ihren Privatschlüssel benötigen würde, um eine gültige Signature zu erstellen, die der öffentliche Schlüssel entschlüsseln kann.
Capgo vs Andere Plattformen
Abschnitt mit dem Titel “Capgo vs Andere Plattformen”| Feature | Capgo | Andere OTA-Plattformen |
|---|---|---|
| Paketinhalt | In der Speicherung/Übertragung verschlüsselt; kann jedoch noch von einem bestimmt willigen Umgeher mit dem App-Binary eingesehen werden | Öffentlich lesbar |
| Sicherheitsmethode | Echte Ende-zu-Ende-Verschlüsselung | Code-Signatur nur |
| Sicherheitsstufe | Starker Versand/Speicher-Schutz; kein Anti-Reverse-Engineering | Die Plattform kann auf Ihr code zugreifen |
| Schutz | Inhalt + Integrität + Authentizität | Nur Integrität + Authentizität |
Warum das wichtig ist:
- Code-Signatur nur überprüft, ob Updates nicht manipuliert wurden und von der richtigen Quelle stammen
- Capgo-Verschlüsselung schützt das Bundle während es gespeichert und geliefert wird und macht gefälschte verschlüsselte Updates viel schwieriger, weil der Angreifer Ihre private Schlüssel benötigen würde
- Die Umkehrung der Entwicklung ist immer noch möglich nachdem die App verschickt wurde, weil der Client den öffentlichen Schlüssel enthält, der zum Entschlüsseln und Laden des Updates benötigt wird
Verschlüsselungsmethoden
Abschnitt mit dem Titel „Verschlüsselungsmethoden“Capgo verwendet Verschlüsselung V2 als Standardverschlüsselungsmethode:
Verschlüsselung V2 (aktuelles Standard)
Abschnitt mit dem Titel „Verschlüsselung V2 (aktuelles Standard)“- Verwendet RSA-4096 für eine erhöhte Sicherheit
- AES-256-GCM für eine authentifizierte Verschlüsselung
- Bietet eine Integritätsprüfung
- Bessere Leistung und Sicherheit
Verschlüsselung V1 (Veraltet)
Abschnitt mit dem Titel “Verschlüsselung V1 (Veraltet)”- Verwendet RSA-2048 für die Verschlüsselung von Schlüsseln
- AES-256-CBC für die Verschlüsselung von Paketen
- Nicht mehr verfügbar in der aktuellen CLI
- Legacy-Anwendungen, die V1 verwenden müssen, migrieren zu V2
Verschlüsselung einrichten
Abschnitt mit dem Titel „Sicherheitskonfiguration einrichten“Schritt 1: Verschlüsselungsschlüssel generieren
Abschnitt mit dem Titel „Schritt 1: Verschlüsselungsschlüssel generieren“Erstens generieren Sie Ihre Verschlüsselungsschlüssel mithilfe der Capgo CLI:
# Generate new encryption keys (creates files in current directory)npx @capgo/cli@latest key createDadurch werden folgende Dateien 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: Speichern Sie Ihre öffentliche Schlüssel in der Capacitor-Konfiguration (Pflicht)
Abschnitt mit dem Titel „Schritt 2: Speichern Sie Ihre öffentliche Schlüssel in der Capacitor-Konfiguration (Pflicht)“Sie müssen Ihre öffentliche Schlüssel in der Capacitor-Konfiguration speichern, damit Ihre mobilen App die Pakete entschlüsseln kann:
# 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"Schritt 3: Synchronisieren Sie die Capacitor-Plattform (Pflicht)
Abschnitt mit dem Titel „Schritt 3: Synchronisieren Sie die Capacitor-Plattform (Pflicht)“Nachdem Sie die öffentliche Schlüssel gespeichert haben, müssen Sie die Capacitor-Plattform synchronisieren, um die aktualisierte Konfiguration auf die native Ebene zu kopieren:
# Sync the platform to copy config to nativenpx cap syncVerschlüsselte Pakete
Abschnitt mit dem Titel “Verschlüsselte Pakete”Methode 1: Verschlüsseln während des Uploads
Abschnitt mit dem Titel “Methode 1: Verschlüsseln während des Uploads”Der einfachste Weg besteht darin, während des Upload-Prozesses zu verschlüsseln:
# Upload with automatic encryptionnpx @capgo/cli@latest bundle upload --key-v2
# For external storage, you must encrypt first (see Manual Encryption Workflow below)Methode 2: Manuelle Verschlüsselungsworkflow
Abschnitt mit dem Titel “Methode 2: Manuelle Verschlüsselungsworkflow”Für mehr Kontrolle können Sie die Bundles manuell verschlüsseln:
-
Ein Zip-Bundle erstellen:
Terminal-Fenster npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2 -
Das Bundle verschlüsseln:
Terminal-Fenster npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM_FROM_STEP_1 -
Hochladen Sie Ihre Daten in Ihr Speicher (z.B. S3) und registrieren Sie sich bei Capgo:
Terminalfenster # First upload the encrypted bundle to your storage (e.g., AWS S3)aws s3 cp ./encrypted-bundle.zip s3://your-bucket/encrypted-bundle.zip# Then register with Capgo using the external URLnpx @capgo/cli@latest bundle upload --external https://your-storage.com/encrypted-bundle.zip --iv-session-key IV_SESSION_KEY_FROM_STEP_2
Zugriff auf Schlüssel
Abschnitt mit dem Titel ‘Zugriff auf Schlüssel’Sichere Speicherung von Schlüsseln
Abschnitt mit dem Titel ‘Sichere Speicherung von Schlüsseln’Privatschlüsseloptionen:
-
Dateibasiert (lokale Entwicklung):
Terminalfenster # Key stored as .capgo_key_v2 file in project rootnpx @capgo/cli@latest bundle upload --key-v2 -
Umgebungsvariable (CI/CD):
Terminalfenster # Store in environment variable for CIexport CAPGO_PRIVATE_KEY="$(cat .capgo_key_v2)"npx @capgo/cli@latest bundle upload --key-data-v2 "$CAPGO_PRIVATE_KEY"
Öffentlicher Schlüssel-Setup (erforderlich):
# Must save public key to Capacitor config for mobile appnpx @capgo/cli@latest key save --key ./.capgo_key_v2.pubProduktionsumgebung:
- Sichere Schlüssel in sicheren Schlüsselverwaltungsdiensten (AWS KMS, Azure Key Vault usw.) speichern
- Verwenden Sie CI/CD-Secret-Management für private Schlüssel
- Private Schlüssel niemals in der Versionskontrolle committen
Schlüsselverwendung:
- Privater Schlüssel: Wird von CLI für die Verschlüsselung während der Bundle-Uploads verwendet (sicher aufbewahren)
- Öffentlicher Schlüssel: Wird in der Anwendungs-Konfiguration für die Entschlüsselung auf dem Gerät gespeichert (sicher zum Commiten)
Schlüsselrotation
Abschnitt mit dem Titel “Schlüsselrotation”Rotieren Sie regelmäßig Ihre Verschlüsselungsschlüssel für eine erhöhte Sicherheit:
-
Neue Schlüssel generieren:
Terminal-Fenster # Navigate to desired directory first, then create keysmkdir ./new-keys && cd ./new-keysnpx @capgo/cli@latest key create -
Speichern Sie den neuen öffentlichen Schlüssel in der Capacitor-Konfiguration:
Terminal-Fenster npx @capgo/cli@latest key save --key ./new-keys/.capgo_key_v2.pub -
Aktualisieren Sie die Anwendungs-Konfiguration mit der neuen öffentlichen Schlüssel
-
Deployen Sie die aktualisierte Anwendung bevor Sie verschlüsselte Pakete mit der neuen Schlüssel hochladen
Sicherheitsbest Practices
Abschnitt mit dem Titel “Sicherheitsbest Practices”Sicherheit der Schlüssel
Abschnitt mit dem Titel “Sicherheit der Schlüssel”- Teilen Sie niemals private Schlüssel zwischen Umgebungen oder Teammitgliedern
- Verwenden Sie unterschiedliche Schlüssel für unterschiedliche Umgebungen (Entwicklung, Staging, Produktion)
- Regelmäßig die Schlüssel rotieren (empfohlen: alle 6-12 Monate)
- Schlüssel sicher speichern mit geeigneten Schließsystemen
Bundle-Sicherheit
Abschnitt mit dem Titel “Bundle-Sicherheit”- Immer überprüfen die Integrität des Bundles nach der Entschlüsselung
- Überwachen außergewöhnliche Downloadmuster oder Fehler
- HTTPS verwenden für alle Bundle-URLs (erforderlich für mobile Apps)
- Implementieren Sie eine ordnungsgemäße Fehlerbehandlung für Verschlüsselungsfehler Zugriffssteuerung
Abschnitt mit dem Titel „Zugriffssteuerung“
Beschränken Sie den Zugriff- auf Verschlüsselungsschlüssel nur auf autorisierte Personen Verwenden Sie eine rollenbasierte Zugriffssteuerung
- für die Verwaltung von Schlüsseloperationen Überprüfen Sie regelmäßig
- den Schlüsselgebrauch und den Zugriff Implementieren Sie ordnungsgemäße Sicherung und Wiederherstellungsverfahren
- Implementieren Sie eine ordnungsgemäße Fehlerbehandlung für Verschlüsselungsfehler Zugriffssteuerung
Schadensbegrenzung bei Verschlüsselung
Abschnitt mit dem Titel „Schadensbegrenzung bei Verschlüsselung“Häufige Probleme
Abschnitt mit dem Titel „Häufige Probleme“Fehler bei der Entschlüsselung:
- Überprüfen Sie, ob der private Schlüssel mit dem öffentlichen Schlüssel übereinstimmt, der für die Verschlüsselung verwendet wird
- Stellen Sie sicher, dass das
ivSessionKeykorrekt ist - Stellen Sie sicher, dass Sie Encryption V2 (V1 wird nicht mehr unterstützt) verwenden
Schlüsselbezogene Fehler:
- Bestätigen Sie, dass die private Schlüsselformat korrekt ist (PEM-Format)
- Überprüfen Sie, ob der Schlüssel während der Speicherung/Übertragung nicht beschädigt wurde
- Überprüfen Sie, ob die Schlüssel die richtigen Berechtigungen in Ihrer Anwendungs-Konfiguration haben
Leistungsschwierigkeiten:
- Große Pakete können länger zum Verschlüsseln/Entschlüsseln dauern
- Überlegen Sie, ob Sie Delta-Updates (Manifest) verwenden können, um die Paketgröße zu reduzieren
- Überwachen Sie die Geräteleistung während der Entschlüsselung
Debug-Befehle
Abschnitt mit dem Titel “Debug-Befehle”Überprüfen Sie den Verschlüsselungsstatus:
npx @capgo/cli@latest app debugVerschlüsselungs- und Entschlüsselungsworkflow testen:
# Test the complete workflow: 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_KEYKongruenz und Standards
Abschnitt mit dem Titel “Kongruenz und Standards”Capgo’s Verschlüsselungsimplementierung folgt Branchenstandards:
- AES-256: FIPS 140-2 genehmigte Verschlüsselungsalgorithmus
- RSA-4096: Starker asymmetrischer Verschlüsselungsalgorithmus zur Schutz von Schlüsseln
- GCM-Modus: Bietet sowohl Vertraulichkeit als auch Authentizität
- Sicherer Zufall: Kryptografisch sichere Zufallszahlengenerierung
Dies macht Capgo für Anwendungen geeignet, die die Einhaltung von:
- DSGVO (Datenschutz-Grundverordnung)
- HIPAA (Gesetz zum Schutz von Gesundheitsdaten)
- SOC 2 (Service Organization Control 2)
- ISO 27001 (Informationssicherheitsmanagement)
Leistungskriterien
Abschnitt mit dem Titel „Leistungskriterien“Verschlüsselungsüberhead
Abschnitt mit dem Titel „Verschlüsselungsüberhead“- Bundle-GrößeVerschlüsselte Bundle sind leicht größer (~1-2% Überhead)
- Verarbeitungszeit: Verschlüsselung/Entschlüsselung fügt nur minimalen Latenzverlust hinzu
- Speicherverbrauch: Temporäre Erhöhung während Verschlüsselungs- und Entschlüsselungsoperationen
Optimierungshinweise
Abschnitt mit dem Titel “Optimierungshinweise”- Verwenden Sie Delta-Updates (Manifest) zur Minimierung des verschlüsselten Datenübertrags
- Optimieren Sie die Größe Ihres Bundles, indem Sie Bilder im WebP-Format umwandeln
- Minimieren Sie JavaScript- und CSS-Dateien, bevor Sie sie bündeln
- Entfernen Sie nicht benötigte Abhängigkeiten und code
- Überwachen Sie die Leistung Ihres Geräts auf älteren/Schnellere Geräten
Weitere Schritte
Abschnitt mit dem Titel “Weitere Schritte”- Erfahren Sie mehr Benutzerdefinierte Speicherung __CAPGO_KEEP_0__
- Entdecken Kanäle __CAPGO_KEEP_0__
- Einrichten CI/CD-Integration __CAPGO_KEEP_0__