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 Lebendaktualisierungen bequem bleiben.

Capgo’s Verschlüsselungssystem verwendet branchenstandardmäßige 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 Speichern und der Lieferung. Dies schützt die Bundle-Inhalte vor zufälligem Zugriff im Speicher oder in der Übertragung 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üsselungsstrategie, die RSA- und AES-Verschlüsselung kombiniert, um eine optimale Sicherheit und Leistung zu erzielen:

Capgo-Verschlüsselungsablauf

  • Privatschlüssel: Erstellt und sicher gespeichert in Ihrer Entwicklungsumgebung (wird für die Verschlüsselung verwendet)
  • Öffentlicher Schlüssel: Abgeleitet aus Ihrem privaten Schlüssel und gespeichert in der Capacitor-Konfiguration Ihrer App (wird für die Entschlüsselung verwendet)
  • Sitzungschlüssel: Zufällige AES-Schlüssel werden für jede Bundle-Upload-Operation generiert
  1. Eine zufällige AES-Sitzungsschlüssel wird für jeden Paketupload 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 Prüfsummenwert 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 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 der erwartete Prüfsummenwert authentisch sind und nicht von einem Angreifer manipuliert wurden.

  1. Ihr App lädt das verschlüsselte Paket 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. 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 verglichen, um die Integrität zu überprüfen

Dieser Prozess stellt sicher, dass selbst wenn ein Angreifer das verschlüsselte Paket abfangt, er das AES-Sitzungsschlüssel nicht ändern oder einen falschen Prüfsummenwert bereitstellen kann, weil er Ihre private Schlüssel benötigen würde, um einen gültigen Signaturwert zu erstellen, der von der öffentlichen Schlüssel entschlüsselt werden kann

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

Weshalb das wichtig ist:

  • Code Signierung verifiziert nur, dass Updates nicht manipuliert wurden und vom richtigen Quellcode stammen
  • Capgo Verschlüsselung schützt das Bundle während der Speicherung und -lieferung und macht gefälschte verschlüsselte Updates viel schwieriger, da der Angreifer Ihre private Schlüssel benötigen würde
  • Die Umkehrung der Entwicklung 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 von Verschlüsselungen
  • Bietet eine Überprüfung der Integrität
  • 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

Erstellt zunächst Ihre Verschlüsselungschlüssel mithilfe der Capgo CLI:

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

Dies schafft:

  • .capgo_key_v2: Ihr privater Schlüssel (halten Sie diesen sicher aufgehoben!)
  • .capgo_key_v2.pub: Ihr öffentlicher Schlüssel (wird von Ihrer App verwendet)

Auf diese Dateien wird in dem aktuellen Verzeichnis gearbeitet, in dem Sie die Kommandozeilenanweisung 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 Bundles entschlüsseln kann:

Terminalfenster
# 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 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 in Ihren Speicher (z.B. S3) und mit Capgo registrieren:

    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

Private Schlüsseloptionen:

  1. Datei-basiert (lokale Entwicklung):

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

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

Terminal-Fenster
# 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-Schlüsselmanagement für private Schlüssel.
  • Nie committiere 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: Wird in der Anwendungs-Konfiguration für die Entschlüsselung auf dem Gerät gespeichert (sicher zum Committen)

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

  1. Erstellen Sie ein Ersatzschlüsselpaar:

    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. Übertragen und verteilen Sie eine native Version: Laufen npx cap sync, dann verteilen Sie eine neue native Anwendungsversion, 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 Kontext: Seite/Bereich: Capgo-Lösungen-Marketingseite. Rolle: Abschnitts- oder Seitenüberschrift. Gesehen in: Seite Lösungen/Versionzielung.astro. Nachrichten Schlüssel `solutions_version_targeting_title` (Lösungen Versionzielung Titel). | Seite/Bereich: Capgo-Lösungen-Marketingseite. Rolle: Kurzer Benutzeroberflächen-Label oder Navigationselement. Gesehen in: Seite Lösungen/Versionzielung.astro. Nachrichten Schlüssel `solutions_version_targeting` (Lösungen Versionzielung).

  5. Um die Ersatzschlüssel-Bundles auf die neue native Version zu beschränken, während der Rest der Flotte über den Store oder MDM aktualisiert wird. Ändern Sie Ihr Upload-Secret:

Security Best Practices

Sicherheitshinweise

Schlüsselsicherheit

Sicherheit des Schlüssels
  • Nie das private Schlüssel zwischen Umgebungen oder Teammitgliedern teilen
  • Verschiedene Schlüssel für verschiedene Umgebungen (Entwicklung, Staging, Produktion) verwenden
  • Nach einem Kompromiss rotieren: 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 Schlüssel Verwenden Sie geeignete Systeme für die Schlüsselverwaltung
  • Verifizieren Sie immer die Integrität des Bundles nach der Entschlüsselung
  • Überwachen Sie unübliche Downloadmuster oder Fehler
  • Verwenden Sie HTTPS für alle Bundle-URLs (erforderlich für mobile Apps)
  • Implementieren Sie angemessene 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
  • Überprüfung den Schlüsselgebrauch und -zugriff regelmäßig
  • Implementierung angemessene Sicherung und Wiederherstellungsverfahren

Schadensbegrenzung bei Verschlüsselung

Abschnitt mit dem Titel “Schlüsselprobleme lösen”

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

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:

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

Capgos Implementierung der Verschlüsselung entspricht Branchenstandards:

  • AES-256: FIPS 140-2 genehmigte Verschlüsselungsalgorithmus
  • RSA-4096: Starke asymmetrische Verschlüsselung zur Schutz von Schlüsseln
  • GCM-Modus: Bietet sowohl Vertraulichkeit als auch Authentizität
  • Sichere Zufallszahlengenerierung: Kryptografisch sichere Zufallszahlengenerierung

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

  • Datenschutzgrundverordnung (DSGVO)
  • Health Insurance Portability and Accountability Act (HIPAA)
  • Service Organization Control 2 (SOC 2)
  • Informationssicherheitsmanagement (ISO 27001)

Verschlüsselungsüberhead

Abschnitt: Verschlüsselungsüberhead
  • Bundle-Größe: Verschlüsselte Bundles sind leicht größer (~1-2% Überhead)
  • Verarbeitungszeit: Die Verschlüsselung/Entschlüsselung fügt minimalen Latenzfehler hinzu
  • Speicherplatznutzung: Temporäre Erhöhung während der Verschlüsselungs-/Entschlüsselungsoperationen
  • Verwenden Sie Delta (Manifest)-Updates, um den verschlüsselten Datenverkehr zu minimieren
  • Optimieren Sie Ihre Bundle-Größ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 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
  • Entdecken Kanäle Kontext: Capgo-Releasekanäle-Funktion. Seite/Bereich: Capgo-Lösungen-Marketingseite. Rolle: Kurzer UI-Label oder Navigationselement. Gesehen in: Seite Lösungen/White-Label.astro. Nachrichtenschlüssel `solutions_white_label_visual_cell2_value` (Lösungen White-Label Visual Cell2 Wert).
  • um verschlüsselte Pakete über Umgebungen zu verwalten Einrichten CI/CD-Integration

Kontext: Seite/ Bereich: Capgo Builder / native Cloud-Build-Produktseite. Rolle: Kurzer UI-Label oder Navigationselement. 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“ um Sicherheit und Compliance zu planen, verbinden Sie es mit Compliance zur Implementierungsdetail in Compliance Capgo Sicherheits-Scanner zur Produktworkflow in Capgo Sicherheits-Scanner Capgo Sicherheit zur Produktworkflow in Capgo Sicherheit Capgo Vertrauenszentrum zur Produktworkflow in Capgo Vertrauenszentrum und Organisations-Sicherheit zur Implementierungsdetail in Organisations-Sicherheit.