Zum Inhalt

47-Tage-Zertifikate sind in Planung. Bist du 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 einen Code-Signaturzertifikat Um Software vor ihrer Veröffentlichung mit einer digitalen Signatur zu versehen, überprüft das Betriebssystem des Nutzers bei der Installation die Signatur, um die Identität des Herausgebers zu bestätigen und sicherzustellen, dass der Code nicht manipuliert wurde. Dies 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 

Da  1. Juni 2023Die CA/Browser Forum Code Signing Baseline Requirements schreiben vor, dass alle privaten Code-Signatur-Schlüssel sowohl für Organisationsvalidierungs- (OV) als auch für erweiterte Validierungszertifikate (EV) auf Hardware gespeichert werden müssen, die den Anforderungen entspricht. FIPS 140-2 Level 2 (oder FIPS 140-3 Level 2) oder Common Criteria EAL 4+Die Speicherung von Schlüsseln ausschließlich in Software ist für öffentlich vertrauenswürdige Codesignaturen 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 richtete sich direkt an hochrangige Personen. Supply-Chain-Angriffe wie SolarWinds Im Jahr 2020 wurden kompromittierte Signaturschlüssel verwendet, 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 US-amerikanische NSA CNSA 2.0 Die Richtlinien fordern quantenresistente Algorithmen zum Signieren von Software und Firmware in nationalen Sicherheitssystemen, deren ausschließliche Verwendung darauf abzielt, 2027Organisationen mit langlebigen signierten Artefakten sollten jetzt mit der Planung des Übergangs beginnen, oft mittels Hybridzertifikaten, die während der Migration sowohl eine klassische als auch eine Post-Quanten-Signatur tragen. 

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-Codesignierungsplattform von Encryption Consulting. Sie zentralisiert Signaturvorgänge hinter einem FIPS 140-2 Level 2-Zertifikat. HSM, integriert sich mit Microsoft SignTool, jarsigner und CI / CD-Pipelines einschließlich Jenkins, Azure DevOps und GitLab, und unterstützt Zeitstempelung und Post-Quanten-Signaturalgorithmen, sobald diese verfügbar sind. Es bietet Sicherheitsteams umfassende Prüfung Es werden Protokolle aller Signiervorgänge erstellt und die Hardware-Speicherregel des CA/B-Forums standardmäßig durchgesetzt. Unterstützt durch ISO/IEC 27001:2022- und SOC 2-zertifizierte 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 stärkere Hash-Funktion bevorzugt wird. 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. SHA-256Denn Grovers Algorithmus halbiert lediglich das effektive Sicherheitsniveau, sodass SHA-256 nach der Quantenberechnung noch eine Post-Quanten-Sicherheit von etwa 128 Bit aufweist. 

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

RSA und ECDSA Codesignatur Sobald ein ausreichend leistungsstarker Quantencomputer existiert, werden diese Systeme 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 Signaturverfahren für US-amerikanische nationale Sicherheitssysteme. Organisationen sollten hybride Signaturverfahren (klassisch plus post-quantenmechanisch) für langlebige signierte Artefakte 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 mehr CodeSign Secureden sich unterhalten an einen Berater für Verschlüsselungsberatung.