Verschlüsselung
Eine Voreinstellung mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin kopieren.
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.
Übersicht
Abschnitt mit dem Titel „Übersicht“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: Anders als OTA-Systeme, 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 gibt nicht Machen Sie es unmöglich, webbasierte Assets zu rückzuübersetzen: Die öffentliche Schlüssel, die der Client zum Entschlüsseln von Updates verwendet, wird im App verteilt, sodass ein bestimmt Eindringling immer noch extrahieren und die Inhalte der Paketdatei mit genügend Anstrengung untersuchen kann.
Wie Verschlüsselung funktioniert
Abschnitt mit dem Titel „Wie Verschlüsselung funktioniert“Capgo verwendet eine hybride Verschlüsselungsanordnung, die RSA- und AES-Verschlüsselung kombiniert, um eine optimale Sicherheit und Leistung zu erzielen:

1. Schlüsselgenerierung
Abschnitt mit dem Titel „1. Schlüsselgenerierung“- Privatschlüssel: Erstellt 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
2. Verschlüsselungsprozess
Abschnitt mit dem Titel “2. Verschlüsselungsprozess”- Ein zufälliger AES-Sitzungschlüssel wird für jeden Upload-Paket generiert
- Ihr Paket wird mit dem AES-Sitzungschlüssel verschlüsselt
- Der Paket-Checksumme wird berechnet
- Beide der AES-Sitzungschlüssel und die Checksumme werden gemeinsam mit Ihrem RSA-Privatschlüssel (die “Signatur” erstellend) verschlüsselt
- Das verschlüsselte Paket und die verschlüsselte Signatur werden gespeichert
Die Checksumme 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-Sitzungschlüssel als auch die erwartete Checksumme authentisch sind und nicht von einem Angreifer manipuliert wurden.
3. Entschlüsselungsprozess
Abschnitt mit dem Titel “3. Entschlüsselungsprozess”- Ihre App lädt das verschlüsselte Bundle und die verschlüsselte Signatur herunter
- Der Capgo SDK verwendet Ihre RSA-Publikationschlüssel (gespeichert in der App) zum Entschlüsseln der Signatur
- Dies offenbart den AES-Sitzungsschlüssel und den ursprünglichen Prüfsummenwert
- Der AES-Sitzungsschlüssel wird zum Entschlüsseln des Bundles verwendet
- Eine 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 das verschlüsselte Bundle erfasst, er das AES-Sitzungsschlüssel nicht ändern oder eine fiktive Prüfsumme bereitstellen kann, da er Ihre private 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
Abschnitt mit dem Titel “Capgo vs. andere Plattformen”| Funktion | Capgo | Andere OTA-Plattformen |
|---|---|---|
| Inhalt verpacken | Verschlüsselt in Speicher/Übertragung; noch von einem bestimmten Reverse-Engineer mit dem App-Binary untersuchbar | Öffentlich lesbar |
| Sicherheitsmethode | Wahre Ende-zu-Ende-Verschlüsselung | Code-Signierung nur |
| Datenschutzbewertung | Starker Lieferung/Speicher-Schutz; kein Anti-Reverse-Engineering | Die Plattform kann auf Ihr code zugreifen |
| Schutz | Inhalt, Integrität und Authentizität | Integrität und Authentizität nur |
Weshalb das wichtig ist:
- Code-Signierung überprüft 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 Reverse-Engineering 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
Verschlüsselungsmethoden
Abschnitt mit dem Titel „Verschlüsselungsmethoden“Capgo verwendet Verschlüsselung V2 als Standardverschlüsselungsmethode:
Verschlüsselung V2 (aktuelle Standard)
Abschnitt mit dem Titel „Verschlüsselung V2 (aktuelle 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)
Abschnitt mit dem Titel „Verschlüsselung V1 (veraltet)“- Verwendet RSA-2048 für Schlüsselverschlüsselung
- AES-256-CBC für Paketverschlüsselung
- Nicht mehr verfügbar in der aktuellen CLI
- Legacy-Anwendungen, die V1 verwenden, müssen auf V2 migrieren
Abschnitt: Verschlüsselung einrichten
Schritt 1: Verschlüsselungsschlüssel generierenAbschnitt: Schritt 1: Verschlüsselungsschlüssel generieren
Erstellen Sie zunächst Ihre Verschlüsselungsschlüssel mit dem __CAPGO_KEEP_0__ __CAPGO_KEEP_1__:First, generate your encryption keys using the Capgo CLI:
# Generate new encryption keys (creates files in current directory)npx @capgo/cli@latest key createDies erstellt:
.capgo_key_v2: Ihre private Schlüssel (halten Sie dies sicher!).capgo_key_v2.pub: Ihre öffentliche 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 Ihren öffentlichen Schlüssel in der Capacitor-Konfiguration (Pflicht)
Überschrift ‘Schritt 2: Speichern Sie Ihren öffentlichen Schlüssel in der Capacitor-Konfiguration (Pflicht)’Sie müssen Ihren öffentlichen Schlüssel in der Capacitor-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 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 Bundles
Abschnitt mit dem Titel „Verschlüsselte Bundles”Methode 1: Verschlüsseln während des Uploads
Abschnitt mit dem Titel „Methode 1: Verschlüsseln während des Uploads”Der einfachste Weg ist, 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üsselung
Abschnitt mit dem Titel „Methode 2: Manuelle Verschlüsselung”Für mehr Kontrolle können Sie die Bundles manuell verschlüsseln:
-
Eine 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 es in Ihr 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 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 Schlüssel speichern
Abschnitt: Sichere Schlüssel speichernPrivatschlüssel-Optionen:
-
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:
- Speichern Sie private Schlüssel in sicheren Schlüsselverwaltungsdiensten (AWS KMS, Azure Key Vault usw.)
- Verwenden Sie CI/CD-Schlüsselmanagement für private Schlüssel
- Komiten Sie private Schlüssel nie in die Versionskontrolle
Schlüsselverwendung:
- Privater Schlüssel: Wird von CLI für die Verschlüsselung während der Upload des Bundles verwendet (halten Sie sicher)
- Öffentlicher Schlüssel: In der Anwendungs-Konfiguration gespeichert für die Entschlüsselung auf dem Gerät (sicher zum Commiten)
Schlüsselrotation
Abschnitt mit dem Titel “Schlüsselrotation”Rotieren Sie Ihre Verschlüsselungsschlüssel regelmäßig für eine erhöhte Sicherheit:
-
Neue Schlüssel generieren:
Terminalfenster # 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:
Terminalfenster npx @capgo/cli@latest key save --key ./new-keys/.capgo_key_v2.pub -
Aktualisieren Sie die Anwendungs-Konfiguration mit dem neuen öffentlichen Schlüssel
-
Die aktualisierte Anwendung hochladen Bevor Sie verschlüsselte Bundles mit dem neuen Schlüssel hochladen
Sicherheitsbest Practices
Abschnitt mit dem Titel „Sicherheitsbest Practices“Sicherheits-Schlüssel
Abschnitt mit dem Titel „Sicherheits-Schlüssel“- Private Schlüssel nie mit anderen teilen zwischen Umgebungen oder Teammitgliedern
- Verschiedene Schlüssel für verschiedene Umgebungen (Entwicklung, Staging, Produktion) verwenden
- Schlüssel regelmäßig rotieren (empfohlen: alle 6-12 Monate)
- Schlüssel sicher speichern mit geeigneten Sicherheits-Systemen für Schlüsselmanagement
Sicherheit in der Bundle
Abschnitt mit dem Titel „Sicherheit in der Bundle“- Verifizieren Sie immer die Integrität des Bundles nach der Entschlüsselung
- Überwachen für ungewöhnliche Downloadmuster oder Fehlschläge
- Verwenden Sie HTTPS für alle Bundle-URLs (erforderlich für mobile Apps)
- Implementieren eine ordnungsgemäße Fehlerbehandlung für Entschlüsselungsfehler
Zugriffssteuerung
Abschnitt mit dem Titel „Zugriffssteuerung“- Beschränken Sie den Zugriff auf Verschlüsselungsschlüssel nur auf autorisierte Personen
- Benutzen Sie rollenbasierte Zugriffssteuerung zur Verwaltung von Schlüsseloperationen
- Audit Überprüfen Sie regelmäßig die Schlüsselverwendung und -zugriff
- Implementieren Sie angemessene Sicherung und Wiederherstellungsverfahren
Schadensbegrenzung bei Verschlüsselung
Abschnitt mit dem Titel “Schadensbegrenzung bei Verschlüsselung”Häufige Probleme
Abschnitt mit dem Titel “Häufige Probleme”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, dass das
ivSessionKeyist korrekt - Stellen Sie sicher, dass Sie Encryption V2 (V1 wird nicht mehr unterstützt) verwenden
Schlüsselbeziehungsfehler:
- 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
- Überlegen Sie, ob Sie Delta (Manifest)-Updates 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 debugTesten Sie den Verschlüsselungs-/Entschlüsselungsworkflow:
# 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_KEYZuverlässigkeit und Standards
Abschnitt mit dem Titel „Zuverlässigkeit und Standards“Capgo's Verschlüsselungsimplementierung folgt Branchenstandards:
- AES-256: genehmigte Verschlüsselungsalgorithmus nach FIPS 140-2
- RSA-4096: Starke asymmetrische Verschlüsselung für die Schutz von Schlüsseln
- GCM-Modus: Bietet sowohl Vertraulichkeit als auch Authentizität
- Sichere Zufallszahlengenerator: Kryptografisch sichere Zufallszahlenerzeugung
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 die Gesundheitsversicherung)
- SOC 2 (Service Organization Control 2)
- ISO 27001 (Informationssicherheitsmanagement)
Leistungsüberlegungen
Abschnitt mit dem Titel “Leistungsbetrachtungen”Verschlüsselungsüberhead
Abschnitt mit dem Titel “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
- Speicherverbrauch: Temporäre Erhöhung während Verschlüsselungs-/Entschlüsselungsoperationen
Optimierungshinweise
Abschnitt mit dem Titel “Optimierungshinweise”- Verwende Delta (Manifest)-Updates, um den verschlüsselten Datentransfer zu minimieren
- 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 von Geräten auf älteren/Schnelleren Geräten
Zukünftige Schritte
Abschnitt mit dem Titel “Zukünftige Schritte”- Erhalten Sie Informationen Eigene Speicherung um Verschlüsselung mit Ihrer eigenen Infrastruktur zu verwenden
- Erkunden Sie Kanäle um verschlüsselte Bundles über Umgebungen zu verwalten
- Einrichten CI/CD-Integration um verschlüsselte Bereitstellungen zu automatisieren
Weitermachen von Verschlüsselung
Abschnitt mit dem Titel “Weitermachen von Verschlüsselung”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 Vertrauenszentrum für den Produktworkflow in Capgo Vertrauenszentrum, und Organisationssicherheit für die Implementierungsdetails in Organisationssicherheit.