Zum Inhalt springen

Verschlüsselung

Capgo bietet eine robuste Ende-zu-Ende-Verschlüsselung für Ihre App-Bundles, die sicherstellt, dass Ihre JavaScript-code und -Assets während der Übertragung und Speicherung geschützt sind. Dieses Verschlüsselungssystem ist so konzipiert, dass Sie die volle Kontrolle über die Sicherheit Ihrer App behalten, während die Lebendaktualisierung bequem bleibt.

Capgo's Verschlüsselungssystem verwendet branchenstandardisierte kryptographische Methoden, um Ihre Bundles vor unbefugtem Zugriff zu schützen. Wenn die Verschlüsselung aktiviert ist, werden Ihre Bundles vor dem Verlassen Ihres Entwicklungsumgebungen verschlüsselt und bleiben verschlüsselt, bis sie von Ihrer App auf dem Gerät des Benutzers entschlüsselt werden.

Was die Verschlüsselung tatsächlich schützt: Im Gegensatz zu OTA-Systemen, die nur Updates signieren, verschlüsselt Capgo 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 keine

Capgo verwendet eine hybride Verschlüsselungsanordnung, die RSA- und AES-Verschlüsselung kombiniert, um eine optimale Sicherheit und Leistung zu gewährleisten:

Capgo-Verschlüsselungsablauf

  • Privatschlüssel: Generiert und sicher gespeichert in Ihrem Entwicklungsumfeld (wird für die Verschlüsselung verwendet)
  • Öffentlicher Schlüssel: Aus Ihrem privaten Schlüssel abgeleitet und in Ihrer App-Capacitor-Konfiguration gespeichert (wird für die Entschlüsselung verwendet)
  • Sitzungschlüssel: Zufällige AES-Schlüssel werden für jede Upload-Paket generiert
  1. Eine zufällige AES-Sitzungsschlüssel wird für jeden Upload von Bundeln generiert
  2. Ihr Bundle wird mit dem AES-Sitzungsschlüssel verschlüsselt
  3. Der Bundle-Prüfsummenwert wird berechnet
  4. Beide der AES-Sitzungsschlüssel und der Prüfsummenwert werden gemeinsam mit Ihrem RSA-Privatschlüssel verschlüsselt (wodurch der „Signature“ entsteht)
  5. Das verschlüsselte Bundle und die verschlüsselte Signatur werden gespeichert

Die Prüfsumme wird neben 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-Sitzungsschlüssel als auch die erwartete Prüfsumme authentisch sind und nicht von einem Angreifer manipuliert wurden.

  1. Ihr App lädt das verschlüsselte Bundle und die verschlüsselte Signatur herunter
  2. Der Capgo SDK verwendet Ihren RSA-Öffentlichen Schlüssel (in der App gespeichert) zur Entschlüsselung der Signatur
  3. Dies offenbart den AES-Sitzungsschlüssel und die ursprüngliche Prüfsumme
  4. The AES-Sitzungsschlüssel wird verwendet, um das Bundle zu entschlüsseln
  5. Eine Prüfsumme des entschlüsselten Bundles wird berechnet und mit der ursprünglichen Prüfsumme verglichen, um die Integrität zu überprüfen

Dieser Prozess stellt sicher, dass selbst wenn ein Angreifer das verschlüsselte Bundle abfangt, er das AES-Sitzungsschlüssel nicht ändern oder eine falsche Prüfsumme bereitstellen kann, denn er müsste Ihren privaten Schlüssel haben, um einen gültigen Signatur zu erstellen, die der öffentliche Schlüssel entschlüsseln kann.

FunktionCapgoAndere OTA-Plattformen
Inhalte des BundlesVerschlüsselt in Speicher/Übertragung; kann jedoch noch von einem bestimmten umgekehrten Ingenieur mit dem Anwendungsdatei gelesen werdenÖffentlich lesbar
SicherheitsmethodeWahre Ende-zu-Ende-VerschlüsselungCode-Signatur nur
VertraulichkeitsstufeStarke Lieferung/Speicher-Schutz; kein Anti-Umkehr-EngineeringPlattform kann Ihren code lesen
SchutzInhalt + Integrität + AuthentizitätNur Integrität + Authentizität

Warum das wichtig ist:

  • Code Signierung nur überprüft, dass Updates nicht manipuliert wurden und vom richtigen Quellcode stammen
  • Capgo Verschlüsselung schützt das Bundle während der Speicherung und des Transports und macht gefälschte verschlüsselte Updates viel schwieriger, da der Angreifer Ihre private Schlüssel benötigen würde
  • Das Umgehen der Sicherheitsmaßnahmen ist immer noch möglich nachdem die App abgeschickt wurde, weil der Client den öffentlichen Schlüssel enthält, der zum Entschlüsseln und Laden des Updates benötigt wird

Capgo verwendet Verschlüsselung V2 als Standardverschlüsselungsmethode:

  • Verwendet RSA-4096 für eine erhöhte Sicherheit
  • AES-256-GCM für die Authentifizierung verschlüsselt
  • Bietet eine Überprüfung der Integrität
  • Bessere Leistung und Sicherheit
  • Verwendet RSA-2048 für die Verschlüsselung der Schlüssel
  • 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

Schritt 1: Erstellen Sie Verschlüsselungsschlüssel

Abschnitt „Schritt 1: Erstellen Sie Verschlüsselungsschlüssel“

Erstellen Sie zunächst Ihre Verschlüsselungsschlüssel mit dem Capgo CLI:

Terminal-Fenster
# Generate new encryption keys (creates files in current directory)
npx @capgo/cli@latest key create

Dies erstellt:

  • .capgo_key_v2Ihr privater Schlüssel (halten Sie diesen sicher!)
  • .capgo_key_v2.pubIhr öffentlicher Schlüssel (wird von Ihrer App verwendet)

Diese Dateien werden in dem 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 mobile App die Pakete entschlüsseln kann:

Fenster des Terminalfensters
# 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 directly
npx @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 das __CAPGO_KEEP_0__-System synchronisieren, um die aktualisierte Konfiguration auf die native Ebene zu kopieren: Sie müssen sync the Capacitor platform to copy the updated config to the native layer:

Auf die Zwischenablage kopieren
# Sync the platform to copy config to native
npx cap sync

Verschlüsselung von Bundles

Abschnitt: Verschlüsselung von Bundles

Methode 1: Verschlüsseln während des Uploads

Abschnitt: Methode 1: Verschlüsseln während des Uploads

Der einfachste Weg besteht darin, während des Upload-Prozesses zu verschlüsseln:

Terminal-Fenster
# Upload with automatic encryption
npx @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: Methode 2: Manuelle Verschlüsselungsworkflow

Für mehr Kontrolle können Sie Bundles manuell verschlüsseln:

  1. Erstellen Sie ein Zip-Bundle:

    Terminal-Fenster
    npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2
  2. Das Bundle verschlüsseln:

    Terminalfenster
    npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM_FROM_STEP_1
  3. Hochladen Sie es in Ihr Speicher (z.B. S3) und registrieren Sie es mit 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 URL
    npx @capgo/cli@latest bundle upload --external https://your-storage.com/encrypted-bundle.zip --iv-session-key IV_SESSION_KEY_FROM_STEP_2

Optionen für den privaten Schlüssel:

  1. Datei-basiert (lokale Entwicklung):

    Terminalfenster
    # Key stored as .capgo_key_v2 file in project root
    npx @capgo/cli@latest bundle upload --key-v2
  2. Umgebungsvariable (CI/CD):

    Terminalfenster
    # Store in environment variable for CI
    export CAPGO_PRIVATE_KEY="$(cat .capgo_key_v2)"
    npx @capgo/cli@latest bundle upload --key-data-v2 "$CAPGO_PRIVATE_KEY"

Öffentlicher Schlüssel-Setup (erforderlich):

Terminalfenster
# Must save public key to Capacitor config for mobile app
npx @capgo/cli@latest key save --key ./.capgo_key_v2.pub

Produktionsumgebung:

  • Private Schlüssel in sicheren Schlüsselverwaltungsdiensten (AWS KMS, Azure Key Vault usw.) speichern
  • Verwenden Sie die CI/CD-Schluesselverwaltung für private Schlüssel
  • Nie committiere private Schlüssel in die Versionskontrolle

Zugriff:

  • Privatschlüssel: Wird von CLI für die Verschlüsselung während der Bundle-Upload verwendet (sicher aufbewahren)
  • Öffentlicher Schlüssel: In der Anwendungs-Konfiguration gespeichert für die Entschlüsselung auf dem Gerät (sicher zum Committen)

Rotiere regelmäßig deine Verschlüsselungsschlüssel für erhöhte Sicherheit:

  1. Neue Schlüssel generieren:

    Terminal-Fenster
    # Navigate to desired directory first, then create keys
    mkdir ./new-keys && cd ./new-keys
    npx @capgo/cli@latest key create
  2. Speichern Sie die neue öffentliche Schlüssel in Capacitor Konfiguration:

    Terminalfenster
    npx @capgo/cli@latest key save --key ./new-keys/.capgo_key_v2.pub
  3. Aktualisieren Sie die Anwendungs-Konfiguration mit der neuen öffentlichen Schlüssel

  4. Das aktualisierte Anwendungs-Deployment Bevor Sie verschlüsselte Bundle mit der neuen Schlüssel hochladen

  • Teilen Sie niemals private Schlüssel Sicherheit zwischen Umgebungen oder Teammitgliedern
  • Verwende unterschiedliche Schlüssel Für unterschiedliche Umgebungen (Entwicklung, Staging, Produktion)
  • Rotiere Schlüssel regelmäßig (empfohlen: alle 6-12 Monate)
  • Sichere Schlüssel auf Verwende geeignete Sicherheitssysteme für die Schlüsselverwaltung
  • Überprüfe immer die Integrität des Bündels nach der Entschlüsselung
  • Überwache für ungewöhnliche Herunterladepattern oder Fehlschläge
  • HTTPS verwenden für alle Bundle-URLs (erforderlich für mobile Apps)
  • Implementieren eine ordnungsgemäße Fehlerbehandlung für Verschlüsselungsfehlschläge
  • Zugriff auf Verschlüsselungsschlüssel nur auf autorisierte Personen beschränken
  • Rollenbasierte Zugriffssteuerung für die Verwaltung von Schlüsseloperationen verwenden
  • Audit Regelmäßige Nutzung und Zugriffssicherheit
  • Implementieren Erforderliche Sicherheitsmaßnahmen treffen: regelmäßige Sicherheitskopien und Wiederherstellungsverfahren

Fehlfunktionen der Verschlüsselung

Abschnitt: "Fehlfunktionen der Verschlüsselung"

Verschlüsselungsfehler:

  • Ü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 ivSessionKey ist korrekt
  • Stellen Sie sicher, dass Sie die Verschlüsselung V2 (V1 wird nicht mehr unterstützt) verwenden

Fehler, die mit Schlüsseln zusammenhängen:

  • 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
  • Stellen Sie sicher, dass der Schlüssel die richtigen Berechtigungen in Ihrer Anwendungs-Konfiguration hat

Leistungsschwierigkeiten:

  • Große Pakete können länger zum Verschlüsseln/Entschlüsseln benötigen
  • Ü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

Überprüfen Sie den Verschlüsselungsstatus:

Terminal-Fenster
npx @capgo/cli@latest app debug

Testen Sie den Verschlüsselungs-/Entschlüsselungsworkflow:

Terminalfenster
# Test the complete workflow: zip → encrypt → decrypt → unzip
npx @capgo/cli@latest bundle zip com.example.app --key-v2
npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM --json
npx @capgo/cli@latest bundle decrypt ./encrypted-bundle.zip IV_SESSION_KEY

Capgo’s Verschlüsselungsimplementierung folgt Branchenstandards:

  • AES-256: FIPS 140-2 genehmigte Verschlüsselungsalgorithmus
  • RSA-4096: Starke asymmetrische Verschlüsselung für die Schutz von Schlüsseln
  • GCM-Modus: Bietet sowohl Vertraulichkeit als auch Authentizität
  • Secure Random: Kryptografisch sichere Zufallszahlenerzeugung

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)

Verschlüsselungsüberhead

Abschnitt "Verschlüsselungsüberhead"
  • Bundlegröße: Verschlüsselte Bundle sind leicht größer (~1-2% Überhead)
  • Verarbeitungszeit: Verschlüsselung/Entschlüsselung fügt minimalen Latenzverlust hinzu
  • Speicherverbrauch: Temporäre Erhöhung während Verschlüsselungs- und Entschlüsselungsoperationen
  • Optimieren Sie Ihre Bundlegröße, 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 __CAPGO_KEEP_0__
  • Remove unused dependencies and code
  • Geräteleistung überwachen auf älteren/schnelleren Geräten
  • Über Eigene Speicherung um Verschlüsselung mit eigener Infrastruktur zu verwenden
  • Erkunden Kanäle um verschlüsselte Pakete über Umgebungen zu verwalten
  • Einrichten CI/CD-Integration um verschlüsselte Bereitstellungen zu automatisieren

Wenn Sie Verschlüsselung verwenden Verschlüsselung um Sicherheit und Compliance zu planen, verbinden Sie es mit Compliance für die Implementierungsdetails in Compliance, Capgo Sicherheits-Scanner für den Produktworkflow in Capgo Sicherheits-Scanner, Capgo Sicherheit für den Produktworkflow in Capgo Sicherheit, Capgo Trust Center für den Produktworkflow im Capgo Trust Center und Organisationssicherheit für die Implementierungsdetails in Organisationssicherheit.