Zum Hauptinhalt springen
Lösung

E2E-Verschlüsselung für Capacitor-Updater über Code-Signierung

Mit RSA + AES-Verschlüsselung Updates verschlüsseln, für Unternehmen und hochsichere Apps konzipiert

Martin Donadieu

Martin Donadieu

Content-Marketing-Manager

E2E-Verschlüsselung für Capacitor-Updater über Code-Signierung

Capacitor-Updater unterstützt nun eine Ende-zu-Ende-Verschlüsselung von code. Code-Signierung stellt sicher, dass die Updates, die von den Endnutzern' Geräten ausgeführt werden, nicht manipuliert wurden und bietet einen zusätzlichen Schutz über die Standard-Sicherheit von Capacitor-Updater hinaus.

Die Standard-Sicherheit von Capacitor-Updater

Standardmäßig ist Capgo's Sicherheitsmodell ähnlich wie das von Webhosting-Anbietern. Capgo speichert Updates verschlüsselt am Server und dient sie über HTTPS mit modernen Ziffernblöcken. Ebenso verwendet __CAPGO_KEEP_0__ immer HTTPS, wenn eine Aktualisierung von einem Entwicklerrechner aus erfolgt.

Capgo erzielt eine A+ auf der SSL Labs-HTTPS-Testseite

Capgo’s Standard-Sicherheit erzielt eine A+ auf der SSL Labs-HTTPS-Testseite (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 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 diese Cloud-Anbieter und Capgo oder andere Web-Hosts betreiben, sind Teil der Cloud-Lieferkette.

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 ausgeführt oder gesendet werden, ohne dass sie manipuliert werden. Und die Cloud-Anbieter arbeiten hart daran, ihre Infrastruktur sicher zu halten.

Aber natürlich werden Hardware- und Software-Schwachstellen entdeckt. Cloud-Anbieter beheben Schwachstellen in regelmäßigen Abständen, verhindern proaktiv schädliche Software (z.B. Google’s SLSAund bauen Sie Schichten der Tiefeverteidigung, 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 kompromittierte Cloud-Infrastrukturen in ihren Bedrohungsmodellen. Für diese Capacitor JS-Anwendungen mit den höchsten Sicherheitsanforderungen über dem Web haben wir eine Ende-zu-Ende- code-Signierung in Capgo entwickelt und Capgo-Updates-Standardprotokoll.

Ende-zu-Ende- code-Signierung mit Capgo

Capgo-Signierung mit Ende-zu-Ende- code verwendet die öffentliche- Schlüssel-Kryptographie, um sicherzustellen, dass die Geräte der Endnutzer nur unveränderte, ursprüngliche Updates vom Capacitor-App-Entwickler ausführen.

“Ende-zu-Ende” bedeutet, dass diese Sicherheit den Fluss vom Zeitpunkt, an dem ein Entwickler ein Update veröffentlicht, bis zum Zeitpunkt, an dem ein Endnutzer-Gerät das Update erhält und ausführt, umfasst. “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 zu erklären, wie es funktioniert:

Capgo-Verschlüsselungsschema

  • Komplex in der Praxis, Kryptographie ist schwer

Definition:

  • AES: Advanced Encryption Standard, ein symmetrisches Verschlüsselungsverfahren, ein Schlüssel für Verschlüsselung und Entschlüsselung.
  • RSA: Rivest–Shamir–Adleman, ein asymmetrisches Verschlüsselungsverfahren, zwei Schlüssel werden verwendet: ein öffentlicher Schlüssel und ein privater Schlüssel.
  • Cypher: Die verschlüsselte Daten.
  • Sitzungsschlü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 verifiziert 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 Sinne „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 zum Entschlüsseln der Aktualisierung verwendet; eine Prüfsumme der entschlüsselten Aktualisierung wird berechnet und 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 und RSA zum Verschlüsseln des AES-Schlüssels und der Prüfsumme verwendet.

Mit diesem können sogar Capgo nicht den Inhalt Ihres Bundles lesen. Dies ist ein robustes Sicherheitsmodell, das von vielen Unternehmen verwendet wird.

Update-Verschlüsselung V2 2024-08-27:

Wenn Sie die Verschlüsselung V1 verwendet haben, migrieren Sie zu V2, um von den neuen Sicherheitsfunktionen zu profitieren. Folgen Sie den Anweisungen zur Migration. Mithilfe der Ende-zu-Ende-Signierung __CAPGO_KEEP_0__ wird __CAPGO_KEEP_1__ zu einem “vertrauenslosen” Cloud-Infrastruktur. Wenn einer der __CAPGO_KEEP_2__-Cloud-Anbieter oder selbst __CAPGO_KEEP_3__ eine __CAPGO_KEEP_4__-signierte Aktualisierung modifizieren würde, würden die Endgeräte des Benutzers diese Aktualisierung ablehnen und die vorherige, vertrauenswürdige Aktualisierung ausführen, 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 sich sehr um die Sicherheit kümmern, möchten wir die Ende-zu-Ende-Signierung __CAPGO_KEEP_0__ einfach einrichten und aufrechterhalten. Zu diesem Zweck bieten wir nun die folgenden 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:

  • migration instructions
  • 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 Anweisungen zur Einrichtung Setup-Anweisungen.

Kredits

Vielen Dank an Ionic, diese Artikel basiert auf dieser Artikel wurde mit chat-gpt-3 neu geschrieben und angepasst.

Live-Updates für Capacitor-Apps

Wenn ein Web-Schadprogramm im Lauf ist, versenden Sie die Reparatur über Capgo anstatt Tage zu warten, bis die App-Store-Zulassung vorliegt. Die Benutzer erhalten die Aktualisierung im Hintergrund, während native Änderungen im normalen Review-Verfahren bleiben.

Jetzt loslegen

Neueste Beiträge aus unserem Blog

Capgo bietet Ihnen die besten Einblicke, die Sie benötigen, um eine wirklich professionelle mobilen App zu erstellen.