Zum Inhalt

47-Tage-Zertifikate sind im Anmarsch. Sind Sie bereit?

Jetzt handeln →

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

Verwendung eines kryptografischen Hashs

Die ausgelieferte ausführbare Datei ist digital signiert, sobald ein Entwickler sein Programm signiert. Nutzer des Programms betrachten die intakte Signatur als Beweis dafür, dass der Code zwischen der Übertragung und der Installation auf dem Gerät des Nutzers nicht verändert wurde. Diese Signatur fungiert quasi als Siegel. Die Codesignierung beinhaltet die Anwendung digitaler Signaturen zur Verteilung von Dateien mittels Public-Key-Verschlüsselung.

Wie sich die Codesignierung auf ein Unternehmen auswirkt: Sie entscheidet darüber, ob Ihre Software ohne Sicherheitswarnung installiert wird, ob große Plattformen sie überhaupt zur Verbreitung akzeptieren und, falls ein Signaturschlüssel kompromittiert wird, wie groß der Wirkungsradius dieser Kompromittierung ist – von einem einzelnen Artefakt bis hin zu jeder Produktlinie, die einen Schlüssel gemeinsam nutzt.

Wichtige Erkenntnisse

  • Die Codesignierung ist für den Vertrieb auf den meisten großen Plattformen nicht optional; sie ist eine Voraussetzung, die die meisten App-Stores und Betriebssysteme durchsetzen, bevor sie Software überhaupt akzeptieren.
  • Die tatsächliche HSM-Baseline des CA/Browser Forums für öffentlich vertrauenswürdige Codesignaturzertifikate ist FIPS 140-2 Level 2 oder Common Criteria EAL 4+, gültig seit dem 1. Juni 2023. Einige Plattformen übertreffen dieses Minimum mit Hardware der Stufe 3, aber Stufe 2 ist die konforme Untergrenze, keine unzureichende Abkürzung.
  • Die vollständige Angriffsfläche der Software-Lieferkette, in die dies passt, finden Sie unter Codesignierung 101: Absicherung Ihrer Software-Lieferkette.

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.

Die Codesignierung verhindert dieses Szenario. Ihr Betriebssystem unterbindet die Installation von Programmen, ohne vorher beim Herunterladen und Installieren das Vorhandensein eines Codesignaturzertifikats zu überprüfen. Fehlt zu diesem Zeitpunkt ein Zertifikat eines vertrauenswürdigen Anbieters, wird der Benutzer informiert und kann entscheiden, ob er die Installation fortsetzen möchte.

Funktionsweise der Code-Signierung

  1. Für Entwickler

    Der Ersteller muss zunächst einen speziellen privaten Schlüssel generieren, der zur Verschlüsselung der Daten verwendet werden kann. Gemäß der Theorie der Public-Key-Kryptographie stellt ein privates und ein öffentliches Schlüsselpaar eine Sammlung von Verschlüsselungstechniken dar, die zum Ver- und Entschlüsseln eingesetzt werden können. Nach der Erstellung des Schlüsselpaares wird der öffentliche Schlüssel an eine Zertifizierungsstelle (CA) gesendet, eine anerkannte 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 von Unternehmen bei der Schlüsselverwaltung ist die Speicherung der Schlüssel auf einer Festplatte, dem PC eines Entwicklers oder auf Build-Servern. Dieser Fehler bietet Angreifern ein großes Zeitfenster, um an Ihre privaten Schlüssel zu gelangen und mehrere Systeme zu kompromittieren. Bewahren Sie Ihre Codesignaturschlüssel stets in hochsicheren kryptografischen Bereichen auf, beispielsweise in einem Hardware-Sicherheitsmodul (HSM). Das CA/Browser Forum schreibt seit dem 1. Juni 2023 für alle öffentlich vertrauenswürdigen Codesignaturzertifikate einen HSM oder gleichwertigen Hardware-Schutz vor, mindestens gemäß FIPS 140-2 Level 2 oder Common Criteria EAL 4+. Einige Plattformen, darunter CodeSign Secure , verwenden Hardware nach FIPS 140-2 Level 3, die diese Mindestanforderung übertrifft. HSMs sind extrem schwer zu knacken, da sie manipulationssicher sind. Sie können sicher sein, dass keine privaten Schlüssel exportiert werden und niemand sonst Zugriff auf die Codesignaturschlüssel erhält oder diese missbräuchlich verwendet.

  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.

Häufig gestellte Fragen

Ist FIPS 140-2 Level 3 für die Codesignierung von HSMs erforderlich?

Nein. Das CA/Browser Forum fordert für öffentlich vertrauenswürdige Codesignaturzertifikate mindestens FIPS 140-2 Level 2 oder Common Criteria EAL 4+. Level 3 geht über dieses Minimum hinaus; einige Plattformen verwenden es als strengeren internen Standard, es ist jedoch keine zwingende Konformitätsanforderung.

Welche tatsächlichen organisatorischen Kosten entstehen durch das Weglassen der Codesignierung?

Über die Sicherheitswarnungen hinaus, die den Nutzern angezeigt werden, lehnen die meisten großen Plattformen (App-Stores, Browser, Betriebssystem-Update-Mechanismen) unsignierte Software kategorisch ab, sodass die Codesignierung zu einer Voraussetzung für die Verbreitung und nicht nur zu einem Vertrauenssignal wird.

Soll derselbe Schlüssel Freigaben für mehrere Produktlinien unterzeichnen?

Nein. Die gemeinsame Nutzung eines Schlüssels für alle Produktlinien bedeutet, dass eine einzige Kompromittierung alle mit diesem Schlüssel signierten Releases gefährdet. Verwenden Sie separate Schlüssel pro Produktlinie oder Team, um die Auswirkungen einer Kompromittierung einzugrenzen.

Fazit

Ein Code-Signatur -Zertifikat ist unerlässlich für das Vertrauen der Nutzer und um die Unversehrtheit Ihres Quellcodes zu gewährleisten. Darüber hinaus schützt es Ihre Anwendung vor Cyberangriffen. Angesichts zunehmender Cyberangriffe und eines riesigen App-Marktes müssen Sie in puncto Sicherheit bestens vorbereitet sein.