Zum Inhalt springen

Verschlüsselung

Capgo bietet eine robuste Ende-zu-Ende-Verschlüsselung für Ihre App-Bundles, die sicherstellt, dass Ihr JavaScript code und Ihre 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 Lebendaktualisierungen bequem bleiben.

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 in der 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üsselungsmethode, 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: Abgeleitet aus Ihrem privaten Schlüssel und in der Capacitor-Konfiguration Ihres Apps gespeichert (wird für die Entschlüsselung verwendet)
  • Sitzungschlüssel: Zufällige AES-Schlüssel werden für jede Bundle-Upload-Operation generiert
  1. Für jeden Upload eines Pakets wird eine zufällige AES-Sitzungsschlüssel generiert
  2. Ihr Paket wird mit dem AES-Sitzungsschlüssel verschlüsselt
  3. Der Paket-Prüfsummenwert wird berechnet
  4. Beide, der AES-Sitzungsschlüssel und die Prüfsumme, werden gemeinsam mit Ihrem RSA-Privatschlüssel verschlüsselt (wodurch der “Signatur” entsteht)
  5. Das verschlüsselte Paket und die verschlüsselte Signatur werden gespeichert

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

  1. Ihre App lädt das verschlüsselte Paket und die verschlüsselte Signatur herunter
  2. Die Capgo SDK verwendet Ihren RSA-öffentlichen Schlüssel (in der App gespeichert) zur Entschlüsselung der Signatur
  3. Dadurch werden der AES-Sitzungsschlüssel und die ursprüngliche Prüfsumme freigegeben
  4. Der AES-Sitzungsschlüssel wird zum Entschlüsseln des Pakets verwendet
  5. Eine Prüfsumme des entschlüsselten Pakets 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 das verschlüsselte Paket abfangen kann, er das AES-Sitzungsschlüssel nicht ändern oder eine falsche Prüfsumme bereitstellen kann, denn er müsste Ihren privaten Schlüssel haben, um eine gültige Signatur zu erstellen, die der öffentliche Schlüssel entschlüsseln kann

FunktionCapgo__CAPGO_KEEP_0__ vs Andere OTA-Plattformen
PaketinhaltVerschlüsselt im Speicher/Übertragung; kann jedoch noch von einem bestimmten Reverse-Engineer mit dem App-Binary untersucht werdenÖffentlich lesbar
SicherheitsmethodeWahrer End-to-End-VerschlüsselungCode-Signatur nur
VertraulichkeitsstufeStarker Lieferung/Speicher-Schutz; kein Anti-Reverse-EngineeringDie Plattform kann auf Ihr code zugreifen
SchutzInhalt + Integrität + AuthentizitätNur Integrität + Authentizität

Warum das wichtig ist:

  • Code Signierung __CAPGO_KEEP_0__ nur überprüft, dass Updates nicht manipuliert wurden und vom richtigen Quellcode stammen
  • Capgo Verschlüsselung __CAPGO_KEEP_0__ schützt das Bundle während der Speicherung und Lieferung und macht gefälschte verschlüsselte Updates viel schwieriger, da der Angreifer Ihr privater Schlüssel benötigen würde
  • Die Umkehrung von Engineering 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

Capgo verwendet Verschlüsselung V2 als Standardverschlüsselungsmethode:

  • Verwendet RSA-4096 für eine erhöhte Sicherheit
  • AES-256-GCM für die Authentifizierung von Verschlüsselungen
  • Bietet eine Integritätsprüfung
  • Bessere Leistung und Sicherheit
  • 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 auf V2 migrieren

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

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

Dies 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 kontext: HTML-Textfragment aus einem längeren Capgo-UI-String (Elternschlüssel `you_definition`). Seite/Bereich: Capgo-Marketingwebsite. Rolle: Langen Marketing- oder Rechtsparagraphen. Gesehen in: Seite Disclaimer.astro, Seite Rückkehr.astro. Nachrichtenschlüssel `you_definition` (Sie Definition). save your public key to the Capacitor config so your mobile app can decrypt bundles:

ihr öffentliche Schlüssel in der __CAPGO_KEEP_0__-Konfiguration speichern, damit Ihre mobile 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 directly
npx @capgo/cli@latest key save --key-data "$CAPGO_PUBLIC_KEY"

Nachdem Sie die öffentliche Schlüssel gespeichert haben, müssen Sie müssen synchronisieren Sie das Capacitor-Plattform, um die aktualisierte Konfiguration auf die native Ebene zu kopieren:

Terminal-Fenster
# Sync the platform to copy config to native
npx cap sync

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)

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

  1. Erstellen Sie ein Zip-Paket:

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

    Terminal-Fenster
    npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM_FROM_STEP_1
  3. Hochladen Sie es in Ihrem Speicher (z.B. S3) und registrieren Sie es mit Capgo:

    Terminal-Fenster
    # 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

Sichere Speicherung von Schlüsseln

Abschnitt: "Sichere Speicherung von Schlüsseln"

Privatschlüssel-Optionen:

  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üsselsatz (erforderlich):

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

Produktionsumgebung:

  • Speichern Sie private Schlüssel in sicheren Schlüsselmanagementdiensten (AWS KMS, Azure Key Vault usw.)
  • Verwenden Sie CI/CD-Secret-Management für private Schlüssel
  • Nie committieren Sie private Schlüssel in die Versionskontrolle

Zweck der Schlüssel:

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

Rotieren Sie das Schlüsselpaar, wenn der private Schlüssel verdächtig oder bestätigt als kompromittiert ist. Eine routinemäßige Kalenderrotation ist nicht erforderlich. Dies ist eine native-Schlüssel-Migration, nicht eine nur-OTA-Änderung.

  1. Eine Ersatzschlüsselpaar generieren:

    Terminal-Fenster
    npx @capgo/cli@latest key create
  2. Speichern Sie die Ersatzöffentlichkeitsschlüssel in Ihrem Capacitor-Konfiguration:

    Terminalfenster
    npx @capgo/cli@latest key save --key ./.capgo_key_v2.pub
  3. Synchronisieren und versenden Sie eine native Veröffentlichung: Ausführen npx cap sync, dann verteilen Sie eine neue native App-Version, die den Ersatzöffentlichkeitsschlüssel enthält.

  4. Ziel die neue native Version: Geräte, die noch die alte native Binärdatei ausführen, können Updates verschlüsselt mit dem Ersatzschlüssel nicht entschlüsseln. Verwenden Sie Versionzielung Zur Einschränkung von Ersatzschlüssel-Paketen auf die neue native Version, während der Rest der Flotte über den Store oder MDM aktualisiert wird.

  5. Wechseln Sie Ihr Upload-Secret: Sobald diese native Veröffentlichung live ist, ersetzen Sie den privaten Schlüssel in CI und laden nur Pakete hoch, die auf native Versionen abzielen, die den Ersatzöffentlichkeitsschlüssel enthalten.

  • Teilen Sie niemals private Schlüssel zwischen Umgebungen oder Teammitgliedern
  • Verwenden Sie unterschiedliche Schlüssel für unterschiedliche Umgebungen (Entwicklung, Staging, Produktion)
  • Rotieren Sie nach einer Kompromittierung: ersetzen Sie das Schlüsselpaar, wenn das private Schlüssel verdächtig oder bestätigt ist; eine regelmäßige Kalenderrotation ist nicht erforderlich
  • Sicherheitsmaßnahmen für die Schlüssel mit geeigneten Sicherheitssystemen
  • Verifizieren Sie immer die Integrität des Bundles nach der Entschlüsselung
  • Überwachen Sie für ungewöhnliche Downloadmuster oder Fehler
  • Verwenden Sie HTTPS für alle Bundle-URLs (erforderlich für mobile Apps)
  • Implementieren ordnungsgemäße Fehlerbehandlung bei Fehlschlägen der Entschlüsselung
  • Zugriff einschränken Zugriff auf Verschlüsselungsschlüssel nur auf autorisierte Personen beschränken
  • Rollenbasierte Zugriffssteuerung für die Verwaltung von Schlüsseloperationen verwenden
  • Audit den Schlüsselgebrauch und -zugriff regelmäßig überprüfen
  • Implementieren ordnungsgemäße Sicherung und Wiederherstellungsverfahren

Verschlüsselungsfehler:

  • Überprüfen Sie, ob der private Schlüssel mit dem öffentlichen Schlüssel übereinstimmt, der für die Verschlüsselung verwendet wird
  • Überprüfen Sie, ob ivSessionKey ist korrekt
  • Stellen Sie sicher, dass Sie Encryption V2 verwenden (V1 wird nicht mehr unterstützt)

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 der Schlüssel in Ihrer Anwendungs-Konfiguration die richtigen Berechtigungen hat

Leistungsausfälle:

  • Große Pakete können länger zum Verschlüsseln/Entschlüsseln benötigen
  • Überlege dir, Delta-Updates (Manifest) zu verwenden, um die Paketgröße zu reduzieren
  • Überwache die Geräteleistung während der Entschlüsselung

Überprüfe den Verschlüsselungsstatus:

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

Teste den Verschlüsselungs-/Entschlüsselungsworkflow:

Terminal-Fenster
# 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
  • Sicherer Zufall: Kryptografisch sichere Zufallszahlengenerierung

Dies macht Capgo für Anwendungen geeignet, die die Einhaltung von:

  • DSGVO (Datenschutz-Grundverordnung)
  • HIPAA (Gesetz über die Portabilität von Gesundheitsversicherungen und die Verantwortlichkeit für Gesundheitsdaten)
  • SOC 2 (Service Organization Control 2)
  • ISO 27001 (Informationssicherheitsmanagement)

Verschlüsselungsüberhead

Abschnitt: Verschlüsselungsüberhead
  • Bundle-Größe: Verschlüsselte Bundle sind leicht größer (~1-2% Überhead)
  • Verarbeitungszeit: Die Verschlüsselung/Entschlüsselung fügt minimalen Latenz auf
  • Speicherplatznutzung: Temporäre Erhöhung während der Verschlüsselungs-/Entschlüsselungsoperationen
  • Verwenden Sie Delta-(Manifest)-Updates, um den verschlüsselten Datentransfer zu minimieren
  • Optimieren Sie die Größe Ihres Bundles, indem Sie Bilder in 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 Geräteleistung auf älteren/Schnellereinheiten
  • Erhalten Sie mehr Informationen über Benutzerdefinierte Speicherung um die Verschlüsselung mit Ihrer eigenen Infrastruktur zu verwenden
  • Erkunden Kanäle Kanälenamen: Capgo-Releasekanäle. Seite/Bereich: Capgo-Lösungen-Marketingseite. Rolle: Kurzer UI-Label oder Navigationspunkt. Gesehen in: Seite Lösungen/White-Label.astro. Nachrichtenschlüssel `solutions_white_label_visual_cell2_value` (Solutions White Label Visual Cell2 Value).
  • um verschlüsselte Pakete über Umgebungen zu verwalten Einrichten CI/CD-Integration

Kanälenamen: Capgo-Bauer / native Cloud-Build-Produktseite. Seite/Bereich: Capgo-Bauer / native Cloud-Build-Produktseite. Rolle: Kurzer UI-Label oder Navigationspunkt. Nachrichtenschlüssel `native_build_feature_ci_cd` (Native Build Feature Ci Cd).

um verschlüsselte Bereitstellungen zu automatisieren

Fortsetzen von Verschlüsselung Abschnitt mit dem Titel ‘Fortsetzen von Verschlüsselung’ zur Sicherheits- und Complianceplanung, 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 Vertrauenszentrum für den Produktworkflow in Capgo Vertrauenszentrum und Organisations-Sicherheit für die Implementierungsdetails in Organisation-Sicherheit