Zum Inhalt

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

Jetzt handeln →

Was ist Code Signing? Wie funktioniert Code Signing?

Was ist Code-Signing?

Bei der Codesignierung wird mithilfe einer digitalen Signatur nachgewiesen, dass eine Software, Firmware, ein Skript oder eine ausführbare Datei von einem bestimmten Herausgeber stammt und seit der Signierung nicht verändert wurde.

Die Codesignierung verwendet einen privaten Schlüssel und ein Codesignaturzertifikat, um Software vor ihrer Verteilung digital zu signieren. Bei der Installation überprüft das Betriebssystem des Benutzers die Signatur, um die Identität des Herausgebers zu bestätigen und sicherzustellen, dass der Code nicht manipuliert wurde. Sie ist der wichtigste Vertrauensmechanismus bei der modernen Softwareverteilung.

Wichtige Erkenntnisse 

  • Die Codesignierung beweist die Urheberschaft und Integrität der Software mithilfe eines privaten Schlüssels des Herausgebers und eines von einer vertrauenswürdigen Zertifizierungsstelle ausgestellten Codesignaturzertifikats. 
  • Das CA/Browser-Forum verlangt, dass private Codesignaturschlüssel auf Hardware gespeichert werden, die die Anforderungen erfüllt. FIPS 140-2 Level 2 (oder FIPS 140-3 Level 2) oder Common Criteria EAL 4+, gültig ab 1. Juni 2023. 
  • Durch die Verwendung von Zeitstempeln (RFC 3161) bleibt eine Signatur auch nach Ablauf des Signaturzertifikats gültig, indem nachgewiesen wird, wann der Code signiert wurde. 
  • SHA-256 ist der aktuelle Basis-Hash-Algorithmus; SHA-1 ist veraltet und wird von modernen Plattformen abgelehnt. 
  • Die Post-Quanten-Codesignierung nutzt ML-DSA (FIPS 204) oder SLH-DSA (FIPS 205); CNSA 2.0 zielt ab 2027 auf eine ausschließlich quantenresistente Signierung für nationale Sicherheitssysteme der USA ab. 

So funktioniert Code Signing 

Die Codesignierung folgt dem gleichen Public-Key-Kryptographiemuster wie jede digitale Signatur, wird jedoch speziell auf Softwareartefakte angewendet. 

  • Generieren Sie ein Schlüsselpaar: Der Herausgeber generiert ein öffentliches und ein privates Schlüsselpaar, dann ein Zertifikatsignierungsanfrage (CSR)
  • Ein Zertifikat erhalten: Ein vertrauenswürdiger Zertifizierungsstelle prüft die Identität des Herausgebers und stellt ein an den öffentlichen Schlüssel gebundenes Code-Signaturzertifikat aus. 
  • Hash den Code: Eine kryptographische Hash-Funktion (typischerweise SHA-256) erzeugt einen Digest fester Länge des Softwareartefakts. 
  • Unterschreiben Sie das Hashtag: Der private Schlüssel des Herausgebers verschlüsselt den Hashwert, um eine digitale Signatur zu erzeugen. Gemäß den Regeln des CA/B-Forums muss der private Schlüssel in einem Hardwaremodul gemäß FIPS 140-2 Level 2 (oder FIPS 140-3 Level 2) gespeichert werden. 
  • Paket zur Verteilung: Der Originalcode, die Signatur und das Code-Signatur-Zertifikat (das den öffentlichen Schlüssel enthält) werden zusammen verpackt und verteilt. 
  • Bei der Installation überprüfen: Das Betriebssystem des Empfängers berechnet einen neuen Hashwert für den Code, entschlüsselt die Signatur mit dem öffentlichen Schlüssel und vergleicht die beiden Hashwerte. Eine Übereinstimmung bestätigt Authentizität und Integrität. 

Wird der Code nach der Signierung verändert, stimmt der neu berechnete Hash nicht überein, die Signaturprüfung schlägt fehl, und das Betriebssystem warnt den Benutzer oder blockiert die Installation. 

Code Signing funktioniert

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.

Code-Signatur-Zertifikate: Öffentlich vertrauenswürdig vs. selbstsigniert 

Code-Signaturzertifikate lassen sich in zwei Kategorien mit sehr unterschiedlichen Vertrauenseigenschaften einteilen. 

Attribut Selbstsigniertes Zertifikat Zertifikat für öffentlich anerkannte Qualität 
Herausgegeben von Der Verlag, intern Eine vertrauenswürdige Zertifizierungsstelle (DigiCert, Sectigo, GlobalSign usw.). 
Vertrauen in Betriebssystem/Browser Standardmäßig nicht vertrauenswürdig; löst Sicherheitswarnungen aus Standardmäßig vertrauenswürdig; keine Warnungen 
Kosten Frei Kostenpflichtig; variiert je nach Validierungsstufe 
Validierungsstufen Keine Präsentation Standardvalidierung (OV), Organisationsvalidierung, Erweiterte Validierung (EV) 
Am besten geeignet, Interne Tests, Entwicklung, privater Vertrieb Ã–ffentliche Softwareverteilung an Endbenutzer 
Speicherbedarf für private Schlüssel Empfohlen auf HSM Erforderlich auf Hardware gemäß FIPS 140-2 Level 2+ seit dem 1. Juni 2023 

Extended Validation (EV)-Zertifikate beinhalten die strengsten Identitätsprüfungen und verleihen signierter Software sofort einen Reputationsschub bei Microsoft SmartScreen und anderen Anwendungsreputationssystemen. 

Warum Zeitstempel wichtig sind 

Durch die Zeitstempelung wird der Signatur zum Zeitpunkt der Unterzeichnung ein vertrauenswürdiger Zeiteintrag hinzugefügt, sodass die Verifizierung auch nach Ablauf des Code-Signatur-Zertifikats gültig bleibt.

Code-Signatur-Zertifikate sind üblicherweise ein bis drei Jahre gültig. Ohne Zeitstempel wird die Signatur nach Ablauf des Zertifikats als ungültig behandelt, und Benutzer erhalten Sicherheitswarnungen, obwohl der Code während der Gültigkeitsdauer des Zertifikats rechtmäßig signiert wurde. Ein Zeitstempel einer vertrauenswürdigen Zeitstempelstelle (TSA) behebt dieses Problem, indem er das Signaturdatum kryptografisch nachweist. Der relevante Standard ist RFC 3161.

Produktionscode-Signaturen sollten immer mit einem Zeitstempel versehen werden. Dies ist eine kostengünstige und wertvolle Maßnahme und entspricht dem Standardvorgehen.

CA/B Forum-Grundanforderungen: Die Hardware-Speicherregel 

Seit dem 1. Juni 2023 schreiben die CA/Browser Forum Code Signing Baseline Requirements vor, dass alle privaten Schlüssel für die Codesignierung – sowohl für Organisationsvalidierungs- (OV) als auch für erweiterte Validierungszertifikate (EV) – auf Hardware gespeichert werden müssen, die FIPS 140-2 Level 2 (oder FIPS 140-3 Level 2) oder Common Criteria EAL 4+ erfüllt . Die Speicherung der Schlüssel ausschließlich in Software ist für öffentlich vertrauenswürdige Codesignierungen nicht mehr zulässig.

Zulässige Speichermöglichkeiten sind: 

  • Hardware-Sicherheitsmodule (HSMs) 
  • Cloudbasierte HSM-Dienste 
  • USB-basierte Hardware-Token, die die erforderlichen Zertifizierungen erfüllen 

Diese Regel reagierte direkt auf aufsehenerregende Lieferkettenangriffe wie den auf SolarWinds (2020), bei dem kompromittierte Signaturschlüssel verwendet wurden, um mit Trojanern infizierte Orion-Updates an Tausende von Organisationen zu verteilen. Die Speicherung von Schlüsseln in manipulationssicherer Hardware erschwert den Schlüsseldiebstahl erheblich.

Code-Signierung und Post-Quanten-Kryptographie 

Signierter Code muss oft über Jahre oder Jahrzehnte verifizierbar bleiben – sei es Firmware in einem Industriegerät, eine Betriebssystemversion oder ein signierter Treiber. Daher ist die Codesignierung eine der dringendsten Prioritäten für die Migration nach der Quantencomputer-Ära.

RSA- und ECDSA-Signaturen, die heute nahezu allen Codesignaturen zugrunde liegen, können von einem ausreichend leistungsstarken Quantencomputer, der Shors Algorithmus ausführt, gefälscht werden. Das NIST standardisierte im August 2024 zwei quantenresistente Signaturalgorithmen:

  • ML-DSA (FIPS 204), basierend auf CRYSTALS-Dilithium 
  • SLH-DSA (FIPS 205), basierend auf SPHINCS+ 

Die CNSA 2.0- Richtlinie der US-amerikanischen NSA fordert quantenresistente Algorithmen für die Signierung von Software und Firmware in nationalen Sicherheitssystemen; deren ausschließliche Verwendung ist ab 2027 vorgesehen . Organisationen mit langlebigen signierten Artefakten sollten jetzt mit der Planung des Übergangs beginnen, häufig mithilfe von Hybridzertifikaten, die während der Migration sowohl eine klassische als auch eine Post-Quanten-Signatur enthalten.

Häufige Anwendungsfälle 

Die Codesignierung ist bei den meisten Softwarevertriebswegen erforderlich oder wird erwartet. 

  • Anwendungsverteilung: Windows SmartScreen und macOS Gatekeeper blockieren oder warnen vor unsignierten ausführbaren Dateien. Apples App Store und Google Play verlangen signierte Einsendungen. 
  • Software-Updates und Patches: Signierte Updates beweisen, dass der Patch vom Hersteller stammt und während des Transports nicht verändert wurde. 
  • Gerätetreiber: Windows benötigt signierte Kernelmodustreiber; unsignierte Treiber werden auf 64-Bit-Windows komplett blockiert. 
  • Firmware: Firmware für IoT-, Industrie- und Automobilanwendungen wird signiert, um ein böswilliges Austauschen zu verhindern. 
  • Skripte und Makros: PowerShell, Microsoft Office VBA-Makros und ähnliche können signiert werden, um die Ausführungsrichtlinien zu erfüllen. 
  • CI/CD-Artefakte: Container-Images, Pakete und Build-Ausgaben werden zunehmend als Teil der Sicherheit der Software-Lieferkette signiert (SLSA, Sigstore). 

Bewährte Methoden zur Code-Signierung 

Sechs Praktiken unterscheiden ein robustes Code-Signaturprogramm von einem, das zu einem Lieferkettenvorfall wird. 

  • Private Schlüssel in einem HSM speichern: Dies ist seit dem 1. Juni 2023 für die öffentlich vertrauenswürdige Codesignierung erforderlich und stellt die mit Abstand wirksamste Kontrollmaßnahme gegen Schlüsseldiebstahl dar. 
  • Jeder Produktionssignatur einen Zeitstempel hinzufügen: Verwenden Sie eine vertrauenswürdige TSA (RFC 3161), damit die Signaturen auch nach Ablauf des Zertifikats erhalten bleiben. 
  • Verwenden Sie SHA-256 oder einen stärkeren Verschlüsselungsalgorithmus: SHA-1 ist veraltet. Signieren Sie neue Artefakte nicht mit SHA-1. 
  • Zugriff auf die Signatur einschränken: Für jeden Signaturvorgang ist eine Multi-Faktor-Authentifizierung erforderlich. Es muss protokolliert werden, wer wann und von wo aus was signiert hat. 
  • Schlüssel regelmäßig wechseln und auf Missbrauch achten: Verfolgen Sie den Ablauf von Zertifikaten, achten Sie auf ungewöhnliche Signaturaktivitäten und widerrufen Sie diese im Falle einer Kompromittierung umgehend. 
  • Planen Sie den PQC-Übergang: Beginnen Sie mit der Bewertung. ML-DSA und jetzt auch hybride Signierung für langlebige Firmware und Systemsoftware. 

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.

Wie Verschlüsselungsberatung hilft 

CodeSign Secure ist die Enterprise-Codesignaturplattform von Encryption Consulting. Sie zentralisiert Signaturvorgänge hinter einem FIPS 140-2 Level 2 HSM , integriert sich mit Microsoft SignTool, jarsigner und CI/CD-Pipelines wie Jenkins, Azure DevOps und GitLab und unterstützt Zeitstempelung sowie Post-Quanten-Signaturalgorithmen, sobald diese verfügbar sind. Sicherheitsteams erhalten vollständige Audit- Trails aller Signaturvorgänge, und die Hardware-Speicherrichtlinie des CA/B Forums wird standardmäßig durchgesetzt. Die Plattform basiert auf ISO/IEC 27001:2022- und SOC 2-zertifizierten Verfahren.

Häufig gestellte Fragen 

Was ist Codesignierung in einfachen Worten? 

Die Codesignierung ermöglicht es Softwareherstellern, ihre Software mit einem kryptografischen Siegel zu versehen. Bei der Installation prüft das Betriebssystem des Benutzers dieses Siegel, um zwei Dinge zu bestätigen: dass die Software tatsächlich vom Hersteller stammt und dass sie seit der Signierung nicht verändert wurde. Ist das Siegel beschädigt oder fehlt es, warnt das Betriebssystem den Benutzer oder blockiert die Installation. 

Worin besteht der Unterschied zwischen einem selbstsignierten und einem öffentlich vertrauenswürdigen Codesignaturzertifikat? 

Ein selbstsigniertes Zertifikat wird vom Herausgeber ohne externe Validierung erstellt und wird von Betriebssystemen und Browsern standardmäßig nicht als vertrauenswürdig eingestuft. Daher erhalten Benutzer bei der Installation Sicherheitswarnungen. Ein öffentlich vertrauenswürdiges Zertifikat wird nach Identitätsprüfung von einer Zertifizierungsstelle ausgestellt und ist plattformübergreifend standardmäßig vertrauenswürdig. Öffentlich vertrauenswürdige Zertifikate sind für die Verteilung von Software an externe Benutzer erforderlich; für interne Tests ist ein selbstsigniertes Zertifikat ausreichend. 

Warum muss ich signierten Code mit einem Zeitstempel versehen? 

Ein Code-Signaturzertifikat läuft üblicherweise nach ein bis drei Jahren ab. Ohne Zeitstempel gilt die Signatur nach Ablauf des Zertifikats als ungültig, selbst wenn der Code signiert wurde, als das Zertifikat noch gültig war. Ein Zeitstempel einer vertrauenswürdigen RFC-3161-Zeitstempelstelle belegt den Zeitpunkt der Signierung, sodass die Verifizierung auch nach Ablauf des Zertifikats weiterhin erfolgreich ist. Produktionssignaturen sollten daher immer mit einem Zeitstempel versehen werden. 

Welchen Hash-Algorithmus verwendet die Codesignierung? 

SHA-256 ist der aktuelle Standard für Codesignaturen. SHA-384 und SHA-512 sind ebenfalls akzeptabel, wenn eine höhere Hash-Sicherheit erforderlich ist. SHA-1 ist veraltet und wird von modernen Betriebssystemen sowie den Anforderungen des CA/B-Forums nicht mehr unterstützt. Post-Quanten-Überlegungen erfordern keinen Ersatz für SHA-256 , da Grovers Algorithmus die effektive Sicherheitsstufe lediglich halbiert. Somit bietet SHA-256 auch nach der Quantenbehebung noch eine Post-Quanten-Sicherheit von etwa 128 Bit.

Was geschieht mit der Codesignierung unter Post-Quanten-Kryptographie? 

RSA- und ECDSA- Codesignaturen werden mit ausreichend leistungsstarken Quantencomputern angreifbar, da Shors Algorithmus Signaturen fälschen kann. Das NIST standardisierte im August 2024 quantenresistente Signaturalgorithmen: ML-DSA (FIPS 204) und SLH-DSA (FIPS 205). CNSA 2.0 fordert ab 2027 quantenresistente Signaturen für nationale Sicherheitssysteme der USA. Organisationen sollten hybride Signaturverfahren (klassisch plus post-quantenmechanisch) für langlebige signierte Dokumente einplanen.

Wie kann ich einen privaten Code-Signaturschlüssel sicher speichern? 

Speichern Sie den privaten Schlüssel in einem Hardware-Sicherheitsmodul oder Hardware-Token, der FIPS 140-2 Level 2 (oder FIPS 140-3 Level 2) oder Common Criteria EAL 4+ entspricht. Dies ist vom CA/Browser Forum für alle öffentlich vertrauenswürdigen Codesignaturen seit dem 1. Juni 2023 vorgeschrieben. Beschränken Sie den Zugriff durch Multi-Faktor-Authentifizierung, protokollieren Sie jeden Signiervorgang und exportieren Sie den privaten Schlüssel niemals auf die Festplatte oder übertragen Sie ihn in Software. 

Mit Zuversicht unterschreiben 

Sind Sie bereit, Ihre Codesignierungsvorgänge durchgängig abzusichern? Entdecken Sie CodeSign Secure oder sprechen Sie mit einem Berater von Encryption Consulting.