Zum Inhalt

Webinar: Melden Sie sich jetzt für unser kommendes Webinar an!

Jetzt registrieren

Verstehen, welche Auswirkungen die Code-Signierung auf Ihr Unternehmen hat

Verwendung eines kryptografischen Hashs

Die ausgelieferte ausführbare Datei wird digital signiert, wenn ein Entwickler sein Programm mit einer Code-Signatur versieht. Für den Anwender des Programms gilt die intakte Signatur als Beweis dafür, dass der Code zwischen der Übertragung und der Installation auf dem Gerät des Anwenders nicht verändert wurde. Diese Signatur fungiert als eine Art „Wachssiegel“. Code-Signierung bedeutet die Verwendung digitaler Signaturen zur Verteilung von Dateien mit Verschlüsselung mit öffentlichem Schlüssel

Notwendigkeit der Code-Signierung

Heutzutage ist das Internet das wichtigste Medium für die Verbreitung, den Zugriff und die Nutzung von Software – fast jede Anwendung auf Ihrem Computer wurde wahrscheinlich online heruntergeladen. Die weite Verbreitung dieses Mediums hat jedoch auch das Risiko krimineller Aktivitäten erhöht.

Hacker und Internetkriminelle könnten beispielsweise den Quellcode einer ausführbaren Datei stehlen, Schadsoftware hinzufügen und die Software dann online verfügbar machen. Natürlich würde die Schadsoftware jeden Benutzer infizieren, der diese Datei herunterlädt und installiert.

Codesignatur verhindert dieses Szenario. Ihr Betriebssystem verhindert die Installation eines Programms, ohne zuvor beim Herunterladen und Installieren das Vorhandensein eines Code-Signatur-Zertifikats zu überprüfen. Der Benutzer wird an dieser Stelle informiert, falls ein Zertifikat eines vertrauenswürdigen Anbieters fehlt, und kann entscheiden, ob er die Installation fortsetzen möchte oder nicht.

Funktionsweise der Code-Signierung

  1. Für Entwickler

    Der Ersteller muss zunächst einen speziellen privaten Schlüssel erstellen, mit dem die Daten verschlüsselt werden können. Nach der Theorie der Public-Key-Kryptographie ist ein privates und öffentliches Schlüsselpaar eine Sammlung von Verschlüsselungstechniken, die zum Ver- und Entschlüsseln verwendet werden können. Nachdem das Schlüsselpaar erstellt wurde, wird der öffentliche Schlüssel an einen Zertifizierungsstelle (CA), eine seriöse Organisation, die Zertifikate ausstellt.

    Die Zertifizierungsstelle bestätigt die Legitimität des Entwicklers, bevor sie dessen öffentlichen Schlüssel an ein digital signiertes Zertifikat anhängt. Dies ist der Nachweis des Entwicklers, dass er der rechtmäßige Eigentümer des Schlüssels ist. Der Entwickler, der das Zertifikat angefordert hat, erhält den öffentlichen Schlüssel und das Zertifikat von der Zertifizierungsstelle zurück.

    digital signiertes Zertifikat
  2. Für Verbraucher

    Bevor ein Programm installiert wird, prüfen die meisten Consumer-Betriebssysteme, ob ein Codesignaturzertifikat vorhanden ist. Bei einer Installationsanforderung überprüft das Betriebssystem zunächst die Gültigkeit des Zertifikats, bevor es den Digest mit einem öffentlichen Schlüssel der Zertifizierungsstelle entschlüsselt.

Änderungen für die Softwareentwicklung

Ein Element (Dokument, Datei, Skript, Bibliothek usw.), das während des Softwareentwicklungsprozesses verwendet wird, wird als Zwischenartefakt bezeichnet. Diese Artefakte sollten während des gesamten Entwicklungszyklus signiert werden, um Änderungen durch andere als den autorisierten Ersteller zu verhindern.

Entwickler können eine Datei oder ein Skript in ihrer Entwicklungsumgebung ändern, mit einer Codesignatur versehen und das signierte Artefakt anschließend für die spätere Verwendung in ihrem Repository speichern. Die Codesignatur dieser Zwischenartefakte verhindert, dass Hacker während des Erstellungsprozesses unerwünschte Komponenten einführen. In modernen Softwareentwicklungsansätzen werden viele verschiedene Komponenten verwendet.

Das Eindringen von Schadsoftware in diese Komponenten kann zu erheblichen Sicherheitsverletzungen führen. Ihre Softwareentwicklungsteams müssen dies unbedingt berücksichtigen. Daher müssen sie alle Zwischenprodukte, die sie zur Softwareentwicklung verwenden, mit einem Code signieren.

Vorteile der Code-Signierung

  • Hilft bei der Authentifizierung der Identität des Entwicklers und fördert das Vertrauen auf beiden Seiten der Transaktion.
  • Liefert den Beweis, dass die Software nicht manipuliert oder manipuliert wurde und bestimmungsgemäß verwendet wird.
  • Ermöglicht Entwicklern die Verteilung auf mehreren Plattformen – vorausgesetzt, dass die großen Plattformen die Code-Signierung als obligatorischen Schritt vor der Veröffentlichung erzwingen.

Enterprise Code-Signing-Lösung

Holen Sie sich mit unserer Code-Signing-Lösung eine Lösung für alle Ihre kryptografischen Software-Code-Signing-Anforderungen.

Best Practices für die Code-Signierung

  1. Führen Sie Code-Integritätsprüfungen durch

    Jeder von Entwicklern eingecheckte Code muss mit ihrem Signaturschlüssel digital signiert werden. Um sicherzustellen, dass der veröffentlichte Code unverändert ist, müssen alle Entwicklersignaturen überprüft werden. Nach Abschluss aller Prüfungen sollte der finale Build signiert und freigegeben werden. Ein entscheidender Schritt, um sicherzustellen, dass das Software-Update manipulationssicher und für Ihre Kunden sicher ist, ist die Überprüfung der Integrität des Quellcodes.

  2. Bewahren Sie Ihre Schlüssel an einem hochsicheren Ort auf

    Einer der größten Fehler, den Unternehmen bei der Schlüsselspeicherung machen, ist die Speicherung der Schlüssel auf einer Festplatte, dem PC des Entwicklers oder auf integrierten Servern. Dieser Fehler bietet Angreifern große Möglichkeiten, an Ihre privaten Schlüssel zu gelangen und mehrere Systeme zu kompromittieren. Bewahren Sie Ihre Code-Signaturschlüssel daher stets in sehr sicheren kryptografischen Bereichen auf, z. B. in einem FIPS 140-2 Level 3 Hardware-Sicherheitsmodul (HSM), um dieser Gefahr vorzubeugen. HSMs sind äußerst schwer zu knacken, da sie manipulationssicher sind. Sie können sicher sein, dass niemals private Schlüssel exportiert werden und dass niemand sonst jemals Zugriff auf die Codesignaturschlüssel hat oder diese missbraucht.

  3. Schlüssel rotieren

    Manchmal verwenden Unternehmen denselben Schlüssel zum Signieren von Releases für verschiedene Produktlinien und Geschäftsbereiche. Das ist keine gute Idee. Alle Releases, die Sie mit dem Code Signing Key signiert haben, laufen Gefahr, gehackt zu werden. Stattdessen ist es ratsam, die Schlüssel regelmäßig auszutauschen. Verwenden Sie außerdem unterschiedliche und unabhängige Schlüssel, um verschiedene Releases in verschiedenen DevOps-Teams zu signieren.

Fazit

A Codesignatur Ein Zertifikat ist unerlässlich für das Vertrauen des Benutzers und stellt sicher, dass Ihr Quellcode intakt ist. Darüber hinaus können Sie damit sicherstellen, dass Ihre Anwendung nicht Cyberangriffen ausgesetzt ist. Zunehmende Cyberangriffe und ein riesiger App-Markt erfordern, dass Sie in Sachen Sicherheit vorbereitet sind.