Zum Hauptinhalt springen
Lösung

E2E-Verschlüsselung für den Capacitor Updater via Code Signing

Einsatz von RSA + AES-Verschlüsselung für Updates – entwickelt für Enterprise-Lösungen und hochsichere Apps

E2E-Verschlüsselung für Capacitor Updater via Code Signing Capgo Blog-Illustration

Capacitor-updater unterstützt jetzt End-to-End-code-Verschlüsselung. Code Signing stellt sicher, dass die Updates, die auf den Geräten der Endnutzer laufen, nicht manipuliert wurden, und bietet eine zusätzliche Schutzebene über die Standard-Web-Sicherheit von Capacitor-updater hinaus.

Die Standard-Sicherheit von Capacitor-updater

Standardmäßig ähnelt das Sicherheitsmodell von Capgo dem von Web-Hosting-Anbietern. Capgo speichert Updates verschlüsselt gespeichert und stellt sie über HTTPS mit modernen Chiffren bereit. Ebenso läuft das Veröffentlichen eines Updates vom Rechner eines Entwicklers immer über HTTPS.

Capgo erhält ein A+ im HTTPS-Test von SSL Labs

Die Standard-Sicherheit von Capgo erhält ein A+ im HTTPS-Test von SSL Labs (https://www.ssllabs.com, November 2022)

Wie erstklassige Web-Hosts nutzt Capgo HTTPS, um die Privatsphäre und Integrität der Netzwerkverbindungen zwischen dem Server und den Geräten der Endnutzer zu schützen. Das ist ein hervorragendes Sicherheitsniveau, das sowohl im Web als auch in Ionic-Apps mit Capgo gut funktioniert.

Die Cloud-Infrastruktur-Supply-Chain

Ein weiterer Punkt, den Capgo und die meisten Web-Hosts gemeinsam haben, ist, dass sie auf niedrigerer Cloud-Infrastruktur laufen, oft von AWS, GCP oder einem anderen beliebten Cloud-Anbieter. Die von diesen Cloud-Anbietern und Capgo oder anderen Web-Hosts betriebenen Hardware- und Softwarekomponenten sind Teil der Cloud-Supply-Chain.

Die Cloud-Supply-Chain und ihr Sicherheitsmodell funktionieren für eine Vielzahl von Websites und Apps. Jeder Web-Entwickler, der einen Cloud-Anbieter nutzt, vertraut diesem Anbieter und erwartet, dass die hochgeladenen Dateien genau die sind, die ausgeführt oder ausgeliefert werden, ohne manipuliert zu sein. Und Cloud-Anbieter arbeiten hart daran, ihre Infrastruktur sicher zu halten.

Aber natürlich werden Hardware- und Software-Schwachstellen entdeckt. Cloud-Anbieter patchen Schwachstellen nach zeitnahen Zeitplänen, verhindern bösartige Software proaktiv (z. B. Googles SLSA) und bauen Schichten der Defense in Depth auf. In der Praxis hat sich gezeigt, dass die Cloud-Infrastruktur die Sicherheitsanforderungen der meisten Websites und Apps erfüllt. Allerdings schließen einige Ionic-Apps kompromittierte Cloud-Infrastruktur in ihre Threat-Models ein. Für diese Capacitor JS-Apps mit den höchsten Sicherheitsanforderungen über dem Web hinaus haben wir End-to-End-code-Signierung in Capgo und das Capgo Updates Standardprotokoll.

End-to-End-code-Signierung mit Capgo

Die End-to-End-code-Signierung von Capgo verwendet Public-Key-Kryptographie, um sicherzustellen, dass die Geräte der Endnutzer nur unveränderte, originale Updates vom Capacitor-App-Entwickler ausführen.

„End-to-end“ bedeutet, dass diese Sicherheit den gesamten Ablauf abdeckt – vom Moment, in dem eine:r Entwickler:in ein Update veröffentlicht, bis zum Zeitpunkt, an dem das Gerät des Endnutzers das Update empfängt und ausführt. „Code signing“ nutzt Kryptografie und einen geheimen privaten Schlüssel, um code zu „signieren“, und verifiziert die Signatur später mit einem vertrauenswürdigen öffentlichen Schlüssel.

Hier ist ein einfaches* Schema, das erklärt, wie es funktioniert:

Capgo-Verschlüsselungsschema

  • In der Praxis komplex, Kryptografie ist schwierig

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üsselten Daten.
  • Session-Key: Ein AES-Key zum Verschlüsseln und Entschlüsseln von Daten.
  • Checksumme: Ein Hash, der für eine Datei berechnet wird
  • Signatur: Eine Checksumme, die mit einem privaten RSA-Key verschlüsselt wurde. Sie kann mit einem öffentlichen RSA-Key verifiziert werden

Wir verwenden den AES-Algorithmus, um das Update zu verschlüsseln. Für jeden Upload wird ein zufälliger AES-Key generiert; anschließend werden der AES-Key und die Checksumme (im Folgenden „Signatur“) mit dem privaten RSA-Key des Entwicklers verschlüsselt. In der App wird der öffentliche RSA-Key des Entwicklers verwendet, um den AES-Key und die Signatur zu entschlüsseln (wobei die Signatur wieder in eine Checksumme umgewandelt wird). Anschließend wird der entschlüsselte AES-Key genutzt, um das Update zu entschlüsseln; eine Checksumme des entschlüsselten Updates wird berechnet und mit der entschlüsselten Signatur verglichen.

Wir verwenden zwei verschiedene Verschlüsselungsalgorithmen, da sich RSA nicht zum Verschlüsseln großer Datenmengen eignet. AES verschlüsselt das Update, während RSA den AES-Key und die Checksumme verschlüsselt.

Damit kann selbst Capgo den Inhalt deines Bundles nicht lesen. Dies ist ein robustes Sicherheitsmodell, das bereits von vielen Enterprise-Kunden genutzt wird.

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

  • Wir haben den in der App gespeicherten Schlüsseltyp geändert. Das geschah, um zu verhindern, dass vom privaten Key (früher zum Entschlüsseln genutzt) auf den öffentlichen Key (früher zum Verschlüsseln genutzt) geschlossen werden kann. Jetzt speichert die App den öffentlichen Key (nun zur Entschlüsselung genutzt).
  • Wir haben die Checksumme vom CRC32- auf den SHA256-Algorithmus umgestellt. Außerdem haben wir begonnen, das Bundle zu signieren. Wenn Encryption V2 konfiguriert ist, muss ein Update eine gültige Signatur besitzen. Das Plugin erzwingt dies strikt.
  • Wir erzwingen nun eine gültige Signatur, wenn Encryption V2 konfiguriert ist. Diese drei Änderungen wurden nach einer Sicherheitsanalyse durch ein Community-Mitglied vorgenommen. Sie dienen dazu, kryptografische Angriffe während des Updates zu verhindern.

Wenn Sie Encryption V1 verwendet haben, migrieren Sie zu V2, um von den neuen Sicherheitsfunktionen zu profitieren. Folgen Sie den Migrationsanweisungen.

Mit End-to-End-code-Signierung wird Capgo zu einer „trustless“ Cloud-Infrastruktur. Sollte einer der Cloud-Anbieter von Capgo oder sogar Capgo selbst ein code-signiertes Update manipulieren, würden die Geräte der Endnutzer dieses Update ablehnen und das bereits auf dem Gerät vorhandene, vertrauenswürdige Update ausführen.

Während HTTPS auf Web-Ebene für viele Apps ausreicht, schätzen einige große Unternehmen das zusätzliche Sicherheitsniveau durch End-to-End-code-Signierung. Einige dieser Unternehmen entwickeln Finanz-Apps, die hochwertige, dauerhafte Transaktionen ausführen. Andere haben CISOs, die kompromittierte Cloud-Infrastruktur in ihre Threat-Models einbeziehen. Wir haben End-to-End-code-Signierung in Capgo integriert, um genau diese Use Cases abzudecken, und freuen uns über Feedback von Unternehmen mit höheren Sicherheitsanforderungen.

Erste Schritte für Enterprise-Kunden

Für große Unternehmen oder Projekte, die großen Wert auf Sicherheit legen, möchten wir die code-Signierung einfach in der Einrichtung und Wartung gestalten. Dafür stellen wir nun folgende Funktionen bereit:

  • Schnelle Zertifikatseinstellung und -konfiguration
  • Unterstützung für code-Signing auf Entwicklungsservern mit Capgo und Development-Builds
  • Produktions-code-Signierung bei jedem Update

Capgo code-Signierung ist für alle Kunden verfügbar. Um zu starten, befolgen Sie die Einrichtungsanweisungen.

Danksagungen

Vielen Dank an Ionic, dieser Artikel basiert auf diesem Artikel mit ChatGPT-3 neu geschrieben und angepasst.

Weiter geht's: E2E-Verschlüsselung für Capacitor Updater via Code Signing

Wenn du es nutzt E2E-Verschlüsselung für den Capacitor Updater via Code Signing um Sicherheit und Compliance zu planen, verbinden Sie es mit Verschlüsselung für die Implementierungsdetails in Encryption, Compliance für das Implementierungsdetail in Compliance, Capgo Security-Scanner für den Produkt-Workflow im Capgo Security Scanner, Capgo Sicherheit für den Produkt-Workflow in Capgo Security und Capgo Trust Center für den Produkt-Workflow im Capgo Trust Center.

Live-Updates für Capacitor-Apps

Wenn ein Bug im Web-Layer live ist, liefere den Fix über Capgo aus, statt Tage auf die App-Store-Freigabe zu warten. Nutzer bekommen das Update im Hintergrund, während native Änderungen im normalen Review-Prozess bleiben.

Neues aus unserem Blog

Capgo gibt dir die besten Insights, um eine wirklich professionelle Mobile App zu erstellen.