Code Signing einfach erklärt: Wie Software signiert und geprüft wird

Wenn Sie ein Programm herunterladen und starten, prüft Ihr Betriebssystem im Hintergrund, wer es hergestellt hat und ob es seitdem verändert wurde. Möglich macht das Code Signing: Softwarehersteller unterschreiben ihre Programme digital mit einem Schlüssel, zu dem ein Zertifikat gehört. Dieser Artikel erklärt, wie die Signatur funktioniert, warum Zeitstempel wichtig sind, wie Windows, macOS, iPhone und Android signierte Software prüfen, welche neuen Regeln seit 2023 gelten und was passiert, wenn Signaturschlüssel gestohlen werden.

Was Code Signing leistet

Eine Code-Signatur beantwortet zwei Fragen:

  • Herkunft: Stammt die Datei wirklich vom angegebenen Hersteller? Der Name im Zertifikat wurde von einer Zertifizierungsstelle geprüft.
  • Unversehrtheit: Wurde die Datei nach dem Signieren verändert, etwa durch Schadsoftware auf einem Download-Server? Schon ein geändertes Byte macht die Signatur ungültig.

Eine Signatur sagt dagegen nichts darüber, ob die Software gut oder harmlos ist. Auch Schadsoftware kann signiert sein, wenn ihr Urheber ein Zertifikat bekommen oder gestohlen hat. Zu Schadsoftware siehe Schadsoftware erklärt.

So funktioniert die Signatur

Das Verfahren ist dasselbe wie bei jeder digitalen Signatur; siehe digitale Signatur einfach erklärt:

  • Der Hersteller berechnet einen Hashwert über das Programm, etwa mit SHA-256.
  • Er signiert den Hash mit seinem privaten Schlüssel, der heute in Hardware liegen muss.
  • Signatur, Zertifikat samt Kette und ein Zeitstempel werden in die Datei eingebettet oder daneben gelegt.
  • Beim Start berechnet das Betriebssystem den Hash neu, prüft die Signatur mit dem öffentlichen Schlüssel aus dem Zertifikat und die Kette bis zu einer vertrauenswürdigen Root.

Das Zertifikat ist ein Code-Signing-Zertifikat: Es enthält die Verwendung „Codesignatur“ und nennt die Organisation oder die Person, deren Identität die CA geprüft hat. Einfache Domainvalidierung wie bei Website-Zertifikaten gibt es hier nicht.

Vier Schritte: Hash über das Programm, Signieren mit dem privaten Schlüssel in Hardware, Einbetten von Signatur, Zertifikat und Zeitstempel, Prüfung beim Start.
So entsteht und wirkt eine Code-Signatur.

Zeitstempel: Signaturen, die länger halten als das Zertifikat

Code-Signing-Zertifikate laufen nach gut einem Jahr ab, Software wird aber oft viele Jahre genutzt. Damit ein Programm nicht am Ablauftag plötzlich als unsigniert gilt, lässt der Hersteller beim Signieren einen Zeitstempel nach RFC 3161 von einem Zeitstempeldienst anbringen. Dieser bestätigt mit eigener Signatur, dass die Signatur zu einem Zeitpunkt entstand, an dem das Zertifikat gültig war. Dann bleibt sie auch nach dem Ablauf gültig.

Beispiel: Ein Zertifikat gilt vom 2. März 2026 bis zum 5. Juni 2027 (460 Tage). Ein Programm, das am 10. Oktober 2026 mit Zeitstempel signiert wurde, gilt auch 2029 noch als korrekt signiert. Ohne Zeitstempel würde Windows es nach dem 5. Juni 2027 als ungültig signiert behandeln.

Zeitleiste: Das Zertifikat gilt vom 2. März 2026 bis 5. Juni 2027; ein Programm, das am 10. Oktober 2026 mit Zeitstempel signiert wurde, bleibt gültig, ohne Zeitstempel endet die Gültigkeit am 5. Juni 2027.
Wirkung eines Zeitstempels (Beispieldaten).

Windows: Authenticode und SmartScreen

Windows nutzt das Verfahren Authenticode. Die Signatur steckt in der EXE- oder MSI-Datei; in den Dateieigenschaften zeigt der Reiter „Digitale Signaturen“ Hersteller und Zeitstempel. Die Benutzerkontensteuerung nennt bei signierten Programmen den Hersteller, bei unsignierten „Unbekannter Herausgeber“.

Zusätzlich bewertet Microsoft Defender SmartScreen heruntergeladene Programme nach ihrem Ruf: Wie oft wurde diese Datei oder Software dieses Herstellers schon ohne Probleme ausgeführt? Neue Programme und neue Zertifikate lösen deshalb anfangs eine Warnung aus. Früher erhielten Programme mit einem teureren EV-Zertifikat sofort einen guten Ruf; diesen Vorteil hat Microsoft 2024 abgeschafft. Treiber für den Windows-Kern muss inzwischen Microsoft selbst über sein Hardware-Entwicklerportal signieren.

macOS, iPhone und Android

  • macOS: Programme außerhalb des App Store brauchen ein Developer-ID-Zertifikat von Apple und müssen seit macOS 10.15 (2019) zusätzlich notariell beglaubigt werden: Apple prüft das Programm automatisch auf Schadsoftware. Gatekeeper lässt sonst nur mit Umwegen starten.
  • iPhone und iPad: Apps sind immer von Apple signiert und kommen aus dem App Store oder, in der EU, aus zugelassenen alternativen Marktplätzen.
  • Android: Jede App ist mit einem Schlüssel des Entwicklers signiert. Das Zertifikat ist meist selbstsigniert, denn Android prüft nicht die Identität, sondern dass Updates mit demselben Schlüssel signiert sind wie die installierte Version. Im Play Store verwaltet Google den Signaturschlüssel vieler Apps (Play App Signing).
  • Linux: Paketverwaltungen wie apt prüfen die Signaturen der Paketquellen mit OpenPGP-Schlüsseln; siehe wie funktioniert Linux.
  • Open Source: Das Projekt Sigstore erlaubt Signaturen ohne langfristigen Schlüssel: Entwickler melden sich an, erhalten ein Zertifikat, das nur 10 Minuten gilt, und jede Signatur wird in einem öffentlichen Protokoll festgehalten, ähnlich wie bei Certificate Transparency.
Sechs Kacheln: Windows mit Authenticode und SmartScreen, macOS mit Developer ID und Notarisierung, iPhone, Android mit gleichem Schlüssel, Linux mit OpenPGP, Sigstore mit 10-Minuten-Zertifikaten.
Code Signing auf verschiedenen Plattformen.

Neue Regeln: Hardware-Pflicht und kürzere Laufzeiten

Für öffentlich vertraute Code-Signing-Zertifikate gelten eigene Regeln des CA/Browser Forums:

  • Seit dem 1. Juni 2023 müssen die privaten Schlüssel in Hardware erzeugt und gespeichert werden: in einem USB-Token, einem HSM oder einem Cloud-Signaturdienst. Eine .pfx-Datei auf dem Entwicklerrechner ist nicht mehr zulässig; siehe HSM und TPM.
  • Seit dem 1. März 2026 gelten neue Code-Signing-Zertifikate höchstens 460 Tage, vorher waren es 39 Monate.

In Build-Pipelines signiert man daher meist über einen Cloud-Dienst, der den Schlüssel im HSM hält, statt über einen Token am Rechner.

Wenn Signaturschlüssel gestohlen werden

Signaturschlüssel sind ein beliebtes Ziel. Der Wurm Stuxnet war 2010 mit gestohlenen Zertifikaten der Hardwarehersteller Realtek und JMicron signiert. 2022 wurden bei einem Einbruch bei Nvidia Code-Signing-Zertifikate erbeutet und kurz darauf zum Signieren von Schadsoftware benutzt. Bei SolarWinds 2020 schleusten Angreifer Schadcode in den Build-Prozess ein, sodass er mit dem echten Schlüssel signiert ausgeliefert wurde. Gegenmaßnahmen: Schlüssel in Hardware, Signieren nur in einer abgesicherten Build-Umgebung, Protokollierung jeder Signatur und sofortige Sperrung bei einem Verdacht.

Signaturen selbst prüfen

# Windows (PowerShell)
Get-AuthenticodeSignature .\setup.exe | Format-List

# macOS
codesign -dv --verbose=4 /Applications/Beispiel.app
spctl -a -vv /Applications/Beispiel.app

Unter Windows genügt auch ein Rechtsklick auf die Datei, „Eigenschaften“ und der Reiter „Digitale Signaturen“.

Häufige Fragen

Ist signierte Software automatisch sicher? Nein. Die Signatur belegt Herkunft und Unversehrtheit, nicht die Absicht des Herstellers. Laden Sie Software trotzdem nur aus vertrauenswürdigen Quellen.

Warum warnt Windows trotz gültiger Signatur? SmartScreen kennt das Programm oder den Hersteller noch nicht. Die Warnung verschwindet, wenn genug Nutzer die Datei ohne Probleme ausgeführt haben.

Was kostet ein Code-Signing-Zertifikat? Bei kommerziellen CAs meist einige hundert Euro im Jahr, je nach Prüfstufe und Hardware. Für Open-Source-Projekte ist Sigstore kostenlos.

Was passiert mit signierter Software, wenn das Zertifikat gesperrt wird? Je nach Sperrdatum gelten Signaturen ab diesem Zeitpunkt oder sogar rückwirkend als ungültig, etwa wenn ein gestohlener Schlüssel schon länger missbraucht wurde.

Fazit

Code Signing verbindet ein Programm mit seinem Hersteller und macht jede Veränderung sichtbar. Zeitstempel halten Signaturen über das Ablaufdatum hinaus gültig, und jede Plattform hat ihre eigenen Prüfregeln, von SmartScreen über die Notarisierung bei Apple bis zum gleichen Schlüssel bei Android-Updates. Seit 2023 gehören die Schlüssel in Hardware, seit 2026 gelten die Zertifikate höchstens 460 Tage. Mehr in der Übersicht Verschlüsselung und IT-Sicherheit.

Rating: 5.00/5. From 16 votes.
Please wait...


IT-Berater und Softwareentwickler aus Deutschland mit mehr als 25 Jahren Erfahrung in Unternehmenssoftware. Schwerpunkt: Public-Key-Infrastruktur (PKI) und Zertifikats-Lebenszyklus-Management, dazu lokale KI und große Sprachmodelle. Betreibt techuni.de, Tech Crates und Student Life Online. Mehr auf carsten-kraft.com.