Verschlüsselung
Einen Setup-Befehl 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, sodass Ihre JavaScript-code-Dateien und Assets während der Übertragung und Speicherung geschützt sind. Diese Verschlüsselungssystem ist so konzipiert, dass Sie die volle Kontrolle über die Sicherheit Ihrer App behalten, während die Vorteile von Live-Updates erhalten bleiben.
Übersicht
Section titled “Overview”Capgo’s Verschlüsselungssystem verwendet branchenstandardmäßige kryptographische Methoden, um Ihre Pakete vor unbefugtem Zugriff zu schützen. Wenn die Verschlüsselung aktiviert ist, werden Ihre Pakete 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 Verschlüsselung tatsächlich schützt: Anders als bei OTA-Systemen, die nur Updates signieren, verschlüsselt Capgo das hochgeladene Paket vor dem Speichern und der Lieferung. Dies schützt die Paketinhalte 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 tut nichts dazu, dass verschiffene Web-Ressourcen unmöglich zu rückentwickeln sind: Der öffentliche Schlüssel, mit dem der Client Updates entschlüsselt, wird im App verteilt, sodass ein bestimmt Eindringling ihn noch immer extrahieren und die Paketinhalte untersuchen kann, wenn er genug Mühe aufwendet.
Wie Verschlüsselung funktioniert
Wie Verschlüsselung funktioniertCapgo verwendet eine hybride Verschlüsselungsanordnung, 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)
- Public Key: Abgeleitet aus Ihrem privaten Schlüssel und gespeichert in der Konfiguration Ihres Apps Capacitor (wird für die Entschlüsselung verwendet)
- Sitzungschlüssel: Zufällige AES-Schlüssel generiert für jede Bundle-Upload-Operation
2. Verschlüsselungsprozess
Abschnitt mit dem Titel “2. Verschlüsselungsprozess”- Ein zufälliger AES-Sitzungschlüssel wird für jeden Bundle-Upload generiert
- Ihr Bundle wird mit dem AES-Sitzungschlüssel verschlüsselt
- Die Bundle-Prüfsumme wird berechnet
- Beide, die AES-Sitzungsschlüssel und die Prüfsumme, werden gemeinsam mit deinem RSA-Privatschlüssel verschlüsselt (wodurch der „Signature“ entsteht)
- 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 dein RSA-Privatschlüssel diese Signatur 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“- Deine App lädt das verschlüsselte Bundle und die verschlüsselte Signatur herunter
- Das Capgo SDK verwendet deinen RSA-öffentlichen Schlüssel (der im App gespeichert ist), um die Signatur zu entschlüsseln
- Dies offenbart den AES-Sitzungsschlüssel und die ursprüngliche Prüfsumme
- Der AES-Sitzungsschlüssel wird verwendet, um das Bundle zu entschlüsseln
- 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 abfangt, er den AES-Sitzungsschlüssel oder eine falsche Prüfsumme nicht ändern oder bereitstellen kann, weil er deinen Privatschlüssel benötigen würde, um eine gültige Signatur zu erstellen, die der öffentliche Schlüssel entschlüsseln kann.
Capgo vs Other Platforms
Capgo gegenüber anderen Plattformen| Feature | Capgo | Sonstige OTA-Plattformen |
|---|---|---|
| Paketinhalt | Verschlüsselt im Speicher/Übertragung; noch von einem bestimmt geübten Reverse-Engineer mit der App-Datei einsehbar | Öffentlich lesbar |
| Verschlüsselungsmethode | Echte Ende-zu-Ende-Verschlüsselung | Code-Signatur nur |
| Privatsphäresebene | 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, dass Updates nicht manipuliert wurden und von der richtigen Quelle 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 verschickt wurde, weil der Client die öffentliche Schlüssel enthält, die zum Entschlüsseln und Laden des Updates benötigt werden
Verschlüsselungsmethoden
Sektion mit dem Titel “Verschlüsselungsmethoden”Capgo verwendet Verschlüsselung V2 als Standardverschlüsselungsmethode:
Verschlüsselung V2 (aktuelle Standard)
Sektion mit dem Titel “Verschlüsselung V2 (aktuelle Standard)”- Wendet RSA-4096 für eine erhöhte Sicherheit an
- AES-256-GCM für die Authentifizierung von Verschlüsselungen
- Bietet eine Integritätsprüfung
- Bietet eine 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 mit V1 müssen auf V2 migrieren
Verschlüsselung einrichten
Abschnitt mit dem Titel “Verschlüsselung einrichten”Schritt 1: Verschlüsselungsschlüssel generieren
Schritt 1: Verschlüsselungsschlüssel generierenErstens generieren Sie Ihre Verschlüsselungsschlüssel mithilfe der Capgo CLI:
# Generate new encryption keys (creates files in current directory)npx @capgo/cli@latest key createDies erstellt:
.capgo_key_v2: Ihr privater Schlüssel (halten Sie diesen sicher!).capgo_key_v2.pubIhr öffentlicher Schlüssel (von Ihrer App verwendet)
Diese Dateien werden im aktuellen Verzeichnis erstellt, in dem Sie den Befehl ausführen.
Step 2: Save Your Public Key to Capacitor Config (Required)
Sektion: Schritt 2: Speichern Sie Ihre öffentliche Schlüssel in der Capacitor-Konfiguration (Pflichtfeld)You must speichern Sie Ihre öffentliche Schlüssel in der Capacitor-Konfiguration, 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: Synchronisiere Capacitor Plattform (Pflichtfeld)
Schritt 3: Synchronisiere Capacitor Plattform (Pflicht)Nachdem Sie die öffentliche Schlüssel gespeichert haben must synchronisiere die Capacitor Plattform, 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”Die einfachste Möglichkeit 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üsselungsworkflow
Abschnitt mit dem Titel “Methode 2: Manuelle Verschlüsselungsworkflow”Für mehr Kontrolle können Sie Bundles manuell verschlüsseln:
-
Erstellen Sie ein Zip-Bundle:
Terminal-Fenster npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2 -
Verschlüsseln Sie das Bundle:
Terminal-Fenster npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM_FROM_STEP_1 -
Hochladen auf Ihr Speicher (z.B. S3) und Registrieren 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
Schlüsselverwaltung
Abschnitt mit dem Titel „Schlüsselverwaltung“Sicherer Schlüsselspeicher
Abschnitt mit dem Titel „Sicherer Schlüsselspeicher“Optionen für den privaten Schlüssel:
-
Dateibasiert (lokale Entwicklung):
Terminal-Fenster # 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üsselsatz (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 einem sicheren Schlüsselmanagementdienst (AWS KMS, Azure Key Vault usw.) speichern
- Verwenden Sie eine CI/CD-Schlüsselverwaltung für private Schlüssel
- Private Schlüssel niemals in der Versionskontrolle committen
Keyverwendung:
- Privater Schlüssel: Durch CLI für die Verschlüsselung während der Bundle-Uploads verwendet (sicher halten)
- Public Key: In der App-Konfiguration gespeichert für die Entschlüsselung auf dem Gerät (sicher zum Commiten)
Nach einem Privatschlüssel-Verschlechterung rotieren
Abschnitt mit dem Titel “Nach einem Privatschlüssel-Verschlechterung rotieren”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üsselmigration, nicht eine nur-OTA-Änderung.
-
Erstellen Sie ein Ersatzschlüsselpaar:
Terminal-Fenster npx @capgo/cli@latest key create -
Speichern Sie das Ersatzschlüsselpaar in Ihrer Capacitor-Konfiguration:
Terminal-Fenster npx @capgo/cli@latest key save --key ./.capgo_key_v2.pub -
Synchronisieren und versenden Sie eine native Veröffentlichung: Ausführen
npx cap sync, dann wird eine neue native App-Version mit dem ersetzen öffentlichen Schlüssel verteilt. -
Ziel der neuen native Version: Geräte, die noch das alte native Binärdatei laufen, können Updates verschlüsselt mit dem Ersatzschlüssel nicht entschlüsseln. Verwenden Sie Version Zielgruppierung Um die Ersetzungsschlüsselbündel auf die neue native Version zu beschränken, während der Rest der Flotte über den Store oder MDM aktualisiert wird.
-
Wechseln Sie Ihr Upload-Schlüssel: As soon as that native release is live, replace the private key in CI and upload only bundles targeted to native versions that contain the replacement public key.
Sicherheitsbest Practices
Abschnitt mit dem Titel „Sicherheitsbest Practices“Schlüsselsicherheit
Abschnitt mit dem Titel „Schlüsselsicherheit“- Teile niemals private Schlüssel zwischen Umgebungen oder Teammitgliedern
- Verwende unterschiedliche Schlüssel für unterschiedliche Umgebungen (Entwicklung, Staging, Produktion)
- Rotiere nach einem Sicherheitsverstoß: ersetze das Schlüsselpaar, wenn der private Schlüssel verdächtig oder bestätigt als kompromittiert ist; eine regelmäßige Kalenderrotation ist nicht erforderlich
- Speichere Schlüssel sicher mit geeigneten Schlüsselverwaltungssystemen
Sicherheit des Bundles
Abschnitt mit dem Titel „Sicherheit des Bundles“- Verifizieren Sie Integrität des Pakets nach Entschlüsselung
- Überwachen für ungewöhnliche Herunterlademuster oder Fehler
- Use 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“- Zugriffsbeschränkung Zugriff auf Verschlüsselungsschlüssel nur für autorisierte Personen
- Verwenden von Rollenbasierten Zugriffsrechten für die Verwaltung von Schlüsseloperationen
- Audit Regelmäßige Überprüfung der Schlüsselverwendung und -zugriff
- Implementierung ordnungsgemäßer Backup- und Wiederherstellungsverfahren
Fehlersuche bei der Verschlüsselung
Troubleshooting-Verfahren für die VerschlüsselungHäufige Probleme
Abschnitt mit dem Titel „Häufige Probleme“Verschlüsselungsfehler:
- Verify the private key matches the public key used for encryption
- Überprüfen Sie, ob das
ivSessionKeyist 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 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 dauern
- Verwenden Sie Delta-Updates, um die Größe der Pakete zu reduzieren.
- Überwachen Sie die Geräteleistung während der Entschlüsselung
Debug-Befehle
Abschnitt mit dem Titel „Debug-Befehle“Überprüfen Sie den Status der Verschlüsselung:
npx @capgo/cli@latest app debugVerschluesselung/Entschluesselung-Workflow:
# 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: FIPS 140-2 zugelassener Verschlüsselungsalgorithmus
- RSA-4096Starke asymmetrische Verschlüsselung für die 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:
- DSGVO (Datenschutz-Grundverordnung)
- HIPAA (Gesundheitsversorgungs-Portabilitäts- und Verantwortlichkeitsergänzungsgesetz)
- SOC 2 (Service-Organisation-Kontrolle 2)
- ISO 27001 (Informationssicherheitsmanagement)
Leistungsbetrachtungen
Abschnitt mit dem Titel „Leistungsbetrachtungen“Verschlüsselungsüberhead
Abschnitt: Verschlüsselungsüberhead- Bundle-Größe: Verschlüsselte Pakete sind leicht größer (~1-2% Überhead)
- Verarbeitungszeit: Verschlüsselung/Entschlüsselung fügt nur geringe Latenz hinzu
- : Temporäre Erhöhung während Verschlüsselungs-/Entschlüsselungsoperationen: Temporäre Leistungssteigerung während der Verschlüsselungs-/Entschlüsselungsoperationen
Optimierungshinweise
Abschnitt mit dem Titel ‘Optimierungstipps’- Verwenden Sie Delta-Updates, um die übertragenen Daten 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
- Entferne nicht benötigte Abhängigkeiten und code
- Überwachen Sie die Leistung Ihres Geräts auf älteren/Schnellereinheiten
Nächste Schritte
Abschnitt mit dem Titel ‘Nächste Schritte’- Learn about Eigener Speicher um die Verschlüsselung mit Ihrer eigenen Infrastruktur zu verwenden
- Entdecken Sie Kanäle Verschlüsselte Pakete über Umgebungen zu verwalten
- Einstellungen CI/CD-Integration Verschlüsselte Bereitstellungen automatisieren
Fortsetzung aus Verschlüsselung
Wenn Sie Verschlüsselung verwendenVerschlüsselung Encryption 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 Organisations-Sicherheit für die Implementierungsdetails in Organisations-Sicherheit.