Direkt zum Inhalt wechseln
media-podcast-icon Blogpost
in
encryption

Code Signing | Wie funktioniert es?

Time to read 6 Min

Code Signing authentifiziert und verifiziert Softwareanwendungen. Wir erklären die Technologie hinter digitalen Zertifikaten und schildern die Best Practices zum digitalen Signieren Ihrer Anwendungen.

Published by

Author

Annika Jehl

Date

05.04.2023
Mann mit Laptop der zeigt wie Code Signing funktioniert. Rechts ist ein Zertifikat

User und Organisationen weltweit erwarten hohe Sicherheitsstandards und reibungslose Prozesse. Ein digitales Zertifikat bietet hierfür genau die passende Lösung. Es stellt die Integrität von Anwendungen sicher und überprüft die Identität von Softwareherausgebern, und schützt so Ihren digitalen Raum. Ob Sie die Rolle des Chief Technology Officer (CTO) oder Chief Security Officers (CFO) bekleiden, als technischer Manager IT-Verifizierungsprozesse einsetzen oder als Ingenieur Anwendungen signieren und verifizieren: Sie sollten sich die Zeit nehmen, um zu verstehen wie Sie Code Signing-Zertifikate gezielt einsetzen können, um Vertrauen in und um Ihre digitalen Produkte zu schaffen.

Was ist ein digitales Zertifikat?

Digitale Zertifikate bilden heutzutage den Standard im professionellen Online-Raum. Sie lassen sich mit elektronischen Ausweisen vergleichen, da sie alle relevanten Informationen enthalten, um die Identität einer Person, Organisation oder eines Systems zu überprüfen.

Sie kennen wahrscheinlich bereits S/MIME-Zertifikate zur sicheren E-Mail-Kommunikation oder TSL/SSL zur Authentifizierung von Netzwerkverbindungen. Sie alle fallen in die Kategorie der digitalen Zertifikate und werden im Rahmen der Public-Key- oder asymmetrischen Kryptografie beschrieben. Dieses System, das auch von Technologien wie IPsec oder Bitcoin verwendet wird, besteht aus einem Schlüsselpaar:

  • Public Keys (offen einsehbar)
  • Private Keys (nur dem Eigentümer zugänglich)

Im zentralisierten Vertrauensmodell der Public-Key-Infrastruktur (PKI) werden digitale Zertifikate von Zertifizierungsstellen (engl. Certification Authorities oder kurz CA) ausgestellt. Die Hauptaufgabe dieser Organisationen besteht darin, Public Keys digital zu signieren und zu veröffentlichen.

InterNetX ist stolzer Premium Elite Partner von DigiCert, der weltweit am stärksten etablierten und vertrauenswürdigen Zertifizierungsstelle (CA).

X.509 standardisiert digitale Zertifikate

Public-Key-Zertifikate werden durch X.509 standardisiert. Dieser Standard definiert das Format digitaler Zertifikate, die einen Public Key und eine Identität enthalten. Entsprechend des X.509 v3 Standard hat ein digitales Zertifikat folgenden Aufbau:

Code Signing: Digitaler Schutz für geistiges Eigentum

Ein Code Signing-Zertifikat zählt zu den digitalen Zertifikaten. Diese Art von Zertifikaten wird eingesetzt, um eine Vielzahl ausführbarer Dateien und Skripte wie z. B. Anwendungen, Java-Applets, Installationspakete, Skripte, MS Office-Makros, dynamische Bibliotheken, Laufwerke usw. digital zu signieren. So wird die digitale Signatur des Herausgebers validiert, um dessen Authentizität und Integrität zu gewährleisten. Beispielsweise wird geprüft, dass Softwarekomponenten nicht gehackt wurden. Wenn der Code nach der erfolgten Signatur des Autors manipuliert wurde, kann der Public Key das Betriebssystem über die Änderungen informieren. Diese Zertifikate werden nicht nur für Offline-Code verwendet – auch über das Internet verbreitete Anwendungen und Software können digital signiert werden.

So funktioniert Code Signing

Dieses Verfahren bietet durch die digitale Signatur des Codes hohe Sicherheits-Standards. Code Signing-Zertifikate verwenden einen eindeutigen kryptografischen Hash, um die Identität des Herausgebers an die Software zu binden. Die Entwickler versehen den Code mit dem Private Key, während das Betriebssystem den Public Key des Entwicklers abruft, um die Identität des Unternehmens zu überprüfen.

Obwohl ein Code Signing-Zertifikat anderen digitalen Zertifikaten sehr ähnlich ist, weist es einige Besonderheiten auf. Beispielsweise kann das Key-Usage-Feld zum Zeitpunkt der Generierung nur „Code Signing“ anzeigen, d.h. dieses Zertifikat kann nur für diesen Zweck verwendet werden und ist daher weder austauschbar noch übertragbar. Die größte Besonderheit des Code Signing-Zertifikats liegt jedoch darin, dass die digitale Signatur angehängt wird, die ausführbare Datei wird also gehasht, sodass Änderungen erkannt werden können. S/MIME und SSL-Zertfikate hingegen verschlüsseln die Daten während der Übertragung.

Deshalb sollten Sie Code Signing-Zertifikate verwenden

Wussten Sie, dass die meisten Betriebssysteme bei der Installation nicht signierter Software eine Warnung anzeigen? Dies hält Benutzer zweifellos davon ab, Ihre Anwendungen herunterzuladen. Die beiden wesentlichen Gründe, die für Code Signing-Zertifikate sprechen,lauten: Integrität und Authentizität.

1. Gewährleistet die Integrität des Codes

Heutzutage wird der Großteil aller Daten und Anwendungen über das Internet verbreitet. Daher ist es unerlässlich, Sicherheit an erste Stelle zu setzen und entsprechend sichtbar zu machen. Lassen Sie Ihre Nutzer wissen, dass sie es mit vertrauenswürdigem Code zu tun haben. Das Zertifikat garantiert, dass der Quellcode nach dem Signieren nicht manipuliert wurde. Code Signing bürgt jedoch weder für die Qualität noch Funktionalität von Anwendungen. Der Code kann immer noch Sicherheitslücken enthalten, aber das Zertifikat zeigt, dass der Softwarehersteller Wert auf Qualität legt und bereit ist, alle Schwachstellen zu beheben.

2. Garantiert die Authentizität des Herausgebers

Das Code Signing-Zertifikat gibt verlässlich Auskunft darüber, wer der Autor der Anwendung ist und macht dies für User sichtbar. Es hilft Anwendern in der Entscheidungsphase, wenn es um die Installation oder Verwendung unbekannter Software geht. Sie können Anwendungen somit sicher verbreiten und Vertrauen schaffen.

Sechs Tipps für einen reibungslosen Code Signing-Prozess

Es ist wichtig, den Code Signing-Prozess mit Sorgfalt zu behandeln. Wir empfehlen dringend, immer die Best Practices im Bezug auf Sicherheit zu befolgen. Wenn Sie ein digitales Zertifikat für Ihre Applications anwenden möchten, folgen Sie diesen Schritten, um Private Keys sicher zu generieren und zu speichern:

1. Behalten Sie alle Prozesse im Blick

Beginnen Sie damit, von Anfang an alle Prozesse sowie alle Änderungen während des Code Signing-Prozesses aufzuzeichnen. Dies ist die bewährte Vorgehensweise und kann Audits oder Untersuchungen erheblich erleichtern.

2. Überprüfen Sie den Code und prüfen sie ihn vor dem Signieren auf Viren

Bevor Sie einen Code digital signieren und freigeben, sollten Sie ihn immer zuerst validieren. Richten Sie in Ihrem Unternehmen einen strengen Überprüfungsprozess ein, der einen Virenscan beinhaltet, damit Ihr Code frei von unerwünschten Effekten und Schwachstellen ist, wenn Sie ihn zum Signieren einreichen. Das gilt auch für Bibliotheken von Drittanbietern, die in Ihrem Code integriert sind.

3. Signierten Code immer mit einem Zeitstempel versehen

Durch Anwenden des Zeitstempels auf den Code validieren Sie ihn auch über das Ablauf- oder Widerrufs-Datum des Code Signing-Zertifikats hinaus. Der Grund: ein Zeitstempel friert die digitale Signatur ein und zeigt, dass der Code gültig war, als das Zertifikat erstellt wurde.

4. Beschränken Sie den Zugriff auf Private Keys

Der Zugriff auf Private Keys darf nur autorisiertem Personal vorbehalten sein, um die Vertraulichkeit und Informationssicherheit zu wahren. Beschränken Sie daher die Anbindung derjenigen Geräte, die für den Code Signing-Prozess verwendet werden. Ergreifen Sie geeignete physische Sicherheitsmaßnahmen und beschränken Sie so den Zugriff auf die Code Signing Keys.

5. Schützen Sie Private Keys mit kryptografischer Hardware

In Software gespeicherte Private Keys sind sehr anfällig für Cyberattacken. Schützen Sie Ihre Code Signing Keys mit Hilfe kryptografischer Geräte wie Smartcards oder USB-Token. Stellen Sie sicher, dass die entsprechende Hardware durch PIN oder Passwort geschützt und sicher aufbewahrt wird.

6. Gefährdete Zertifikate widerrufen

Wenn ein gefährdeter Private Key, Malware oder verdächtiger Code erkannt wird, sollte die CA benachrichtigt und das Zertifikat widerrufen werden.

Wählen Sie das passende Zertifikat icon-arrow--right