Capacitor-Updater Der code-Updater unterstützt nun eine Ende-zu-Ende-Verschlüsselung von code. Die Code-Signierung stellt sicher, dass die Updates, die von den Geräten der Endnutzer ausgeführt werden, nicht manipuliert wurden und bietet eine zusätzliche Schutzschicht über die standardmäßige Web-Sicherheit des Capacitor-Updaters.
Die Standard-Sicherheit des Capacitor-Updaters
Standardmäßig ist die Sicherheitsarchitektur des Capgo-Updaters ähnlich wie bei Web-Hosting-Anbietern. Capgo speichert Updates verschlüsselt am Server und liefert sie über HTTPS mit modernen Ziffernblättern aus. Ebenso verwendet __CAPGO_KEEP_0__ immer HTTPS, wenn ein Update von einem Entwicklerrechner ausgesendet wird.

Capgo's Standard-Sicherheit erzielt eine A+ bei der SSL Labs-HTTPS-Test (https://www.ssllabs.com, November 2022)
Ähnlich wie die besten Web-Hosts verwendet Capgo HTTPS, um die Privatsphäre und Integrität der Netzwerkverbindungen zwischen dem Server und den Endgeräten der Benutzer zu schützen. Dies ist ein hervorragender Sicherheitsstandard, der sowohl für die Web- als auch für die Ionic-Apps, die Capgo verwenden, funktioniert.
Der Cloud-Infrastruktur- Lieferkettensystem
Ein weiteres gemeinsames Merkmal von Capgo und den meisten Web-Hosts ist, dass sie auf untergeordneter Cloud-Infrastruktur laufen, oft von AWS, GCP oder einem anderen beliebten Cloud-Anbieter. Die Hardware und Software, die von diesen Cloud-Anbietern und Capgo oder anderen Web-Hosts betrieben werden, sind Teil des Cloud-Lieferkettensystems.
Das Cloud-Lieferkettensystem und sein Sicherheitsmodell funktionieren für eine riesige Anzahl von Websites und Apps. Jeder Web-Entwickler, der einen Cloud-Anbieter verwendet, setzt Vertrauen in diesen Anbieter und erwartet, dass die Dateien, die er hochlädt, die Dateien sind, die ohne Manipulation ausgeführt oder ausgesendet werden. Und die Cloud-Anbieter arbeiten hart daran, ihre Infrastruktur sicher zu halten.
Aber offensichtlich werden Hardware- und Software-Schwachstellen entdeckt. Cloud-Anbieter schließen Schwachstellen auf regelmäßigen Zeitplänen ab und verhindern proaktiv schädliche Software (z.B. Google's SLSAund bauen Sie Schichten der Verteidigung in der Tiefe, und in der Praxis hat sich die Cloud-Infrastruktur bewährt, um die Sicherheitsbedürfnisse der meisten Websites und Apps zu erfüllen. Allerdings umfassen einige Ionic-Apps in ihren Bedrohungsmustern auch kompromittierte Cloud-Infrastrukturen. Für diese Capacitor JS-Apps mit den höchsten Sicherheitsanforderungen über dem Web haben wir eine Ende-zu-Ende- code-Signierung in Capgo und Capgo Updates-Standardsprotokoll.
Ende-zu-Ende- code-Signierung mit Capgo
Capgo’s Ende-zu-Ende- code-Signierung verwendet öffentliche-Schlüssel-Kryptographie, um sicherzustellen, dass die Endgeräte der Endnutzer nur unveränderte, ursprüngliche Updates vom Capacitor-App-Entwickler ausführen.
“Ende-zu-Ende” bedeutet, dass diese Sicherheit den Fluss von der Zeit, als ein Entwickler ein Update veröffentlicht, bis zur Zeit, als ein Endgerät des Endnutzers das Update erhält und ausführt. “Code-Signierung” ist die Verwendung von Kryptographie und einem geheimen privaten Schlüssel, um code zu “signen”, und später die Verwendung eines vertrauenswürdigen öffentlichen Schlüssels, um die Signatur zu überprüfen.
Hier ist ein einfaches* Schema, um es zu erklären:

- Komplex in der Praxis, ist Kryptographie schwer
Definition:
- AES: Advanced Encryption Standard, ein symmetrischer Verschlüsselungsalgorithmus, ein Schlüssel für Verschlüsselung und Entschlüsselung.
- RSA: Rivest–Shamir–Adleman, ein asymmetrischer Verschlüsselungsalgorithmus, zwei Schlüssel werden verwendet: ein öffentlicher Schlüssel und ein privater Schlüssel.
- Cypher: Die verschlüsselte Daten.
- Sessionsschlüssel: Ein AES-Schlüssel, der zum Verschlüsseln und Entschlüsseln von Daten verwendet wird.
- Prüfsumme: Eine Hash-Wertberechnung für ein Datei
- Signatur: Eine Prüfsumme, die mit einem privaten RSA-Schlüssel verschlüsselt wurde. Sie kann mit einem öffentlichen RSA-Schlüssel überprüft werden
Wir verwenden das AES-Algorithmus, um die Aktualisierung zu verschlüsseln. Ein zufälliger AES-Schlüssel wird für jeden Upload generiert, dann wird der AES-Schlüssel und die Prüfsumme (in diesem Zusammenhang „Signatur“) mit dem privaten RSA-Schlüssel des Entwicklers verschlüsselt. Der öffentliche RSA-Schlüssel des Entwicklers wird im App zum Entschlüsseln des AES-Schlüssels und der Signatur (wieder in eine Prüfsumme umgewandelt) verwendet. Später wird der entschlüsselte AES-Schlüssel verwendet, um die Aktualisierung zu entschlüsseln; eine Prüfsumme der entschlüsselten Aktualisierung wird berechnet, und sie wird mit der entschlüsselten Signatur verglichen.
Wir verwenden zwei verschiedene Verschlüsselungsalgorithmen, weil RSA nicht zum Verschlüsseln großer Datenmengen verwendet werden kann. AES wird zum Verschlüsseln der Aktualisierung verwendet und RSA zum Verschlüsseln des AES-Schlüssels und der Prüfsumme.
Mit diesem können sogar Capgo nicht auf den Inhalt Ihres Bundles zugreifen. Dies ist ein robustes Sicherheitsmodell, das von vielen Unternehmen verwendet wird.
Aktualisierungsverschlüsselung V2 2024-08-27:
- Wir haben den Schlüsseltyp, der im App gespeichert ist, gewechselt. Dies wurde getan, um das Inferieren des öffentlichen Schlüssels (früher zum Verschlüsseln verwendet) aus dem privaten Schlüssel (früher zum Entschlüsseln verwendet) zu verhindern. Jetzt speichert das App den öffentlichen Schlüssel (jetzt zum Entschlüsseln verwendet).
- Wir haben die Prüfsumme vom CRC32-Algorithmus auf den SHA256-Algorithmus gewechselt. Wir haben auch begonnen, den Bundle zu signieren Wir haben den Schlüsseltyp, der im App gespeichert ist, gewechselt. Dies wurde getan, um das Inferieren des öffentlichen Schlüssels (früher zum Verschlüsseln verwendet) aus dem privaten Schlüssel (früher zum Entschlüsseln verwendet) zu verhindern. Jetzt speichert das App den öffentlichen Schlüssel (jetzt zum Entschlüsseln verwendet).Wenn Verschlüsselung V2 konfiguriert ist, muss ein Update eine gültige Signatur haben. Dies wird streng durch den Plugin durchgesetzt.
- Wir erzwingen nun eine gültige Signatur. Verschlüsselung V2 ist konfiguriert. Diese 3 Änderungen wurden nach einer Sicherheitsanalyse von einem Mitglied der Community durchgeführt. Sie dienen dazu, kryptographische Angriffe während der Aktualisierung zu verhindern.
Wenn Sie Verschlüsselung V1 verwendet haben, migrieren Sie zu V2, um von den neuen Sicherheitsfunktionen zu profitieren. Folgen Sie den Anweisungen zur Migration. Mit Ende-zu-Ende-Signierung wird die __CAPGO_KEEP_0__-Infrastruktur zu einem “vertrauenslosen” Cloud-Infrastruktur. Wenn einer der __CAPGO_KEEP_2__-Cloud-Anbieter oder sogar __CAPGO_KEEP_3__ selbst eine __CAPGO_KEEP_4__-signierte Aktualisierung modifiziert, lehnen die Endgeräte diese Aktualisierung ab und führen die vorherige, vertrauenswürdige Aktualisierung aus, die bereits auf dem Gerät installiert ist..
With end-to-end code signing, Capgo becomes a “trustless” cloud infrastructure. If one of Capgo’s cloud providers or even Capgo itself were to modify a code-signed update, end users’ devices would reject that update and run the previous, trusted update that’s already on the device.
While web-level HTTPS is sufficient for many apps, some large companies find the extra level of security from end-to-end code signing appealing. Some of these companies make finance apps that issue high-value, permanent transactions. Other companies have CISOs who include compromised cloud infrastructure in their threat models. We built end-to-end code signing in to Capgo for these use cases and are interested in hearing more from companies with higher-level security needs.
Für große Unternehmen oder Projekte, die Sicherheit sehr wichtig sind, möchten wir es __CAPGO_KEEP_0__-Signierung einfach einrichten und aufrechterhalten. Dazu bieten wir nun folgende Funktionen an:
For large companies or projects who care deeply about security, we want to make code signing easy to set up and maintain. To that end, we now provide the following features:
- Schnelle Zertifikatskonfiguration und -konfiguration
- Unterstützung für code-Signierung von Entwicklungs-Servern mit sowohl Capgo als auch Entwicklungsbuilds
- Produktions-code-Signierung bei jedem Update
Capgo-code-Signierung ist für alle Kunden verfügbar. Um loszulegen, folgen Sie bitte den Einstellungen.
Kredit
Vielen Dank an Ionic, dieses Artikel basiert auf diesem Artikel erstellt mit chat-gpt-3 und angepasst.
Fortsetzung von E2E-Verschlüsselung für Capacitor-Updater via Code-Signierung
Wenn Sie __CAPGO_KEEP_0__-Updater verwenden E2E-Verschlüsselung für Capacitor-Updater über Code-Signierung um Sicherheit und Compliance zu planen, verbinden Sie es mit Verschlüsselung Verschlüsselung für die Implementierungsdetails in Verschlüsselung, Kongruenz Capgo Security Scanner Capgo-Sicherheits-Scanner für den Produktworkflow in Capgo-Sicherheits-Scanner, Capgo-Sicherheit für den Produktworkflow in Capgo-Sicherheit, und Capgo-Vertrauenszentrum