Der Code Signing-Life-Cycle | Wie lange bleiben Zertifikate gültig?
Published by
Birgit Berger
Date
Code Signing-Zertifikate besitzen einen Life-Cycle und durchwandern – vom Kauf bis zum Ablauf des Zertifikats – verschiedene Phasen. Betrachten wir diese mal im Detail.
Im digitalen Zeitalter ist die Bereitstellung einer sicheren und vertrauenswürdigen Methode für den Vertrieb von Software und anderen Arten von Codeanwendungen von entscheidender Bedeutung. Die Entwicklung der Code Signing-Technologie war das Resultat einer steigenden Nachfrage nach sicheren digitalen Produkten. Das erste bekannte Code Signing-Zertifikat wurde 1995 für ein Webbrowser-Plug-in ausgestellt. In der Folge wurden neue Technologien und Sicherheitsstandards eingeführt, wodurch sich Code Signing-Zertifikate im Laufe der Jahre stark weiterentwickelt und verbessert haben.
Heute werden Code Signing-Zertifikate von verschiedenen Certificate Authorities (CAs) weltweit, wie etwa DigiCert, ausgestellt. Viele Software-Developer und Unternehmen verwenden sie, um Software zu verteilen und die Integrität ihres Codes sicher zu schützen und haben die Bedeutung dieses digitalen Werkzeugs längst erkannt.
Wenn Code Signing-Zertifikate eingesetzt werden, um Software sicher zu vertreiben und die eigene Reputation zu schützen, ist es ganz wichtig, das Ablaufdatum im Auge zu behalten. Denn, wie viele digitale Zertifikate sind diese nicht unbegrenzt gültig: Es hat einen Life-Cycle und die Gültigkeit muss nach einer gewissen Laufzeit verlängert werden. Dieser Artikel befasst sich mit dem Life-Cycle eines Code Signing-Zertifikats und erläutert, welche Folgen ein abgelaufenes Zertifikat hat.
Was ist ein Code Signing-Zertifikat?
Code Signing-Zertifikate fallen in die Kategorie der „digitalen Zertifikate“. Ein digitales Zertifikat ist generell ein elektronisches Dokument, das dazu dient, die Identität einer Person, einer Organisation oder eines Geräts zu überprüfen und Vertrauen in Online-Transaktionen und -Kommunikation zu schaffen. Es gibt verschiedene digitale Zertifikate, darunter TLS/SSL-Zertifikate, S/MIME- und Client-Authentifizierungs-Zertifikate. Jeder Zertifikatstyp hat seine eigenen einzigartigen Merkmale und Verwendungszwecke.
Code Signing wird verwendet, um die Authentizität und Integrität von Software zu überprüfen. Sie stellt sicher, dass die Software nach der Signierung des Zertifikats nicht manipuliert oder verändert wurde. Code Signing-Zertifikate werden in der Regel von einer vertrauenswürdigen Certificate Authority (CA) (wie DigiCert oder Sectigo) ausgestellt und zum Signieren von ausführbaren Dateien, Treibern und anderen Arten von Code verwendet. Wenn User Software herunterladen und installieren, die mit einem Code Signing-Zertifikat signiert wurde, kann das Betriebssystem oder der Webbrowser des Users die Authentizität des Codes anhand des Zertifikats überprüfen.
Es gibt verschiedene Arten von Code Signing-Zertifikaten, darunter Standard Code Signing-Zertifikate, Extended Validation (EV) Code Signing-Zertifikate und Code Signing-Zertifikate mit Timestamp. Jeder Zertifikatstyp hat spezifische Merkmale und Vorteile. Die Wahl des richtigen Zertifikatstyps hängt von den Anforderungen der Software-Developer oder Unternehmen ab.
Warum sollten Sie ein Code Signing-Zertifikat nutzen?
Es gibt einige Gründe, warum Software-Developer und Unternehmen Code Signing-Zertifikate nutzen sollten.
1. Verifizierung der Authentizität und Integrität von Code
Code Signing-Zertifikate stellen sicher, dass der Code nicht manipuliert oder verändert wurde. Das stärkt das User-Vertrauen und schützt die Reputation des Produkts und der Marke.
2. Schutz der User vor Malware
Code Signing-Zertifikate tragen dazu bei, dass User keine bösartige Software herunterladen und installieren. Versucht ein User, Software herunterzuladen und zu installieren, die mit einem Code Signing-Zertifikat signiert ist, kann sein Betriebssystem oder sein Webbrowser die Authentizität des Codes anhand des Zertifikats überprüfen.
3. Optimierung der Verteilung und Installation
Code Signing-Zertifikate optimieren die Softwareverteilung und -installation. Einige Betriebssysteme und Webbrowser vertrauen beispielsweise automatisch auf Software, die mit einem Code Signing-Zertifikat signiert ist. Das erleichtert es Usern, die Software herunterzuladen und zu installieren.
4. Einhaltung von Branchen-Vorschriften
Code Signing-Zertifikate werden in einigen Branchen benötigt, um gesetzliche Vorschriften zu erfüllen. So müssen z. B. einige Produzenten medizinischer Geräte Code Signing-Zertifikate als Teil ihres Qualitätsmanagement-Systems verwenden.
Verlieren Code Signing-Zertifikate ihre Gültigkeit?
Wie alle anderen digitalen Zertifikate haben auch Code Signing-Zertifikate eine begrenzte Laufzeit und müssen nach einem bestimmten Zeitraum erneuert werden. Das Ablaufdatum wird in der Regel im Zertifikat angegeben und ist für den User verfügbar. Der Gültigkeitszeitraum für ein Code Signing-Zertifikat kann je nach ausstellender Certificate Authority (CA) und der Art des Zertifikats variieren.
Da ein abgelaufenes Zertifikat nicht zum Signieren von Code verwendet werden kann, ist es wichtig, ein Code Signing-Zertifikat zu erneuern, bevor es abläuft. Wenn ein Benutzer oder Administrator versucht, einen Code mit einem abgelaufenen Zertifikat zu signieren, schlägt der Signier-Vorgang fehl und der User muss ein neues Code Signing-Zertifikat beantragen, um die Software weiterhin verteilen zu können. Außerdem muss bei einem abgelaufenen Zertifikat der gesamte Validierungsprozess von Grund auf neu durchlaufen werden.
Finden Sie perfekte Domains
Verschiedene Code Signing-Typen, unterschiedliche Gültigkeit
- Code Signing-Zertifikat mit Organization Validation (OV)
Dies ist die gängigste Art von Code Signing-Zertifikaten, das sog. Organization Validation (OV) certificate. Sie werde verwendet, um ausführbare Dateien, Treiber und andere Arten von Code zu signieren und die Authentizität und Integrität des Codes zu überprüfen. Standard Code Signing-Zertifikate sind in der Regel ein bis drei Jahre gültig. - Code Signing-Zertifikat mit Extended Validation (EV)
Diese Zertifikate bieten ein höheres Maß an Sicherheit, da der Software-Developer oder die Organisation ein intensiveres Prüfverfahren durchlaufen muss, um das Zertifikat zu erhalten. Das Zertifikat wird auf einem Hardware-Token (USB) gemäß den geltenden Vorschriften ausgestellt, um die 2FA zu erfüllen. Code Signing-Zertifikate mit EV geben Usern mehr Vertrauen und werden in der Regel zum Signieren von Code verwendet, der an eine große Anzahl von Usern verteilt wird. Sie haben eine Gültigkeit von ein bis drei Jahren. - Code Signing-Zertifikate mit Timestamp
Mit diesen Zertifikaten können Software-Developer ihren Code mit einem Zeitstempel versehen, d. h. sie können den Nachweis erbringen, dass der Code zu einem bestimmten Zeitpunkt signiert wurde. Dies kann in Fällen nützlich sein, in denen das Code Signing-Zertifikat abgelaufen ist, die Verbreitung des Codes aber noch läuft. Code Signing-Zertifikate mit Timestamp können je nach den spezifischen Anforderungen der ausstellenden Certificate Authority (CA) unterschiedliche Laufzeiten haben.
Es gibt noch weitere Code Signing-Arten für spezielle Zwecke, wie für den Kernel-Modus oder für die Verwendung mit Microsoft Office und VBA. Alles in allem hängt die passende Variante eines Code Signing-Zertifikats immer von den spezifischen Anforderungen ab.
Code Signing: Die sechs Life-Cycle-Phasen
Der Life-Cycle eines Code Signing-Zertifikats umfasst den Prozess von der Beantragung, dem Erhalt und der Installation des Zertifikats bis hin zur Erneuerung des Zertifikats vor Ablauf der Gültigkeit. Er lässt sich in folgende Phasen unterteilen:
1. Anwendung
Ein Software-Developer oder Unternehmen beantragt ein Code Signing-Zertifikat bei einer Certificate Authority (CA) oder über einen ISP. Das Antragsverfahren kann das Ausfüllen eines Online-Formulars, die Zahlung einer Gebühr und die Vorlage bestimmter Unterlagen zur Überprüfung der Identität des Antragstellers umfassen.
2. Erteilung
Wird der Antrag genehmigt, stellt die Certificate Authority dem Antragsteller das digitale Zertifikat aus. Das Code Signing-Zertifikat enthält Informationen über den Antragsteller, das Ablaufdatum und etwaige Berechtigungen oder Einschränkungen für die Verwendung des Zertifikats.
3. Installation
Der Antragsteller installiert das Code Signing-Zertifikat auf seinem Computer oder anderen Geräten. Dazu gehört in der Regel das Importieren des Zertifikats in die entsprechende Software oder in das Betriebssystem und die Konfiguration aller erforderlichen Einstellungen oder Präferenzen.
4. Anwendung
Das Code Signing-Zertifikat wird verwendet, um den Code zu signieren, den der Antragsteller verbreiten möchte. Ein Code Signing-Tool oder ein Dienstprogramm ist erforderlich, um die digitale Signatur auf den Code anzuwenden.
5. Verifizierung
Wenn User Software mit Code Signing herunterladen und installieren, prüft ihr Betriebssystem oder Webbrowser anhand der digitalen Signatur des Zertifikats die Authentizität und Integrität des Zertifikats.
6. Renewal
Läuft das Code Signing-Zertifikat ab, muss es erneuert werden, um es weiterhin nutzen zu können. Für die Erneuerung ist je nach den spezifischen Anforderungen der Certificate Authority ein neues Zertifikat zu beantragen, eine Gebühr zu entrichten und ein Prüfverfahren zu durchlaufen.
Der Life-Cycle eines Code Signing-Zertifikats umfasst zwar einige Schritte. Der Großteil des Prozesses kann aber relativ einfach und reibungslos online abgewickelt werden. Hier gelangen Sie zu unserer Übersicht an Zertifikaten.
Was passiert, wenn Ihr Code Signing-Zertifikat abläuft?
Ist ein Code Signing-Zertifikat abgelaufen, kann es nicht mehr zum Signieren von Code verwendet werden. Würde ein Software-Developer oder Administrator Code mit einem abgelaufenen Zertifikat signieren, schlüge der Signier-Vorgang fehl. Das heißt: ein neues Code Signing-Zertifikat muss beantragt werden, um die Software weiterhin verteilen zu können.
Um ein neues Code Signing-Zertifikat zu erhalten, muss je nach den spezifischen Anforderungen der ausstellenden Certificate Authority (CA) das Zertifikat beantragt, eine Gebühr entrichtet und erneut ein Prüfverfahren durchlaufen werden.
Wichtig: Behalten Sie das Ablaufdatum eines Code Signing-Zertifikats im Auge und erneuern Sie es, bevor es seine Gültigkeit verliert. Nur so bleibt sichergestellt, dass der Code weiterhin ohne Unterbrechung signiert und verteilt werden kann.
Mit Timestamp Code langfristig sichern
Ein Timestamp ist nicht zwingend für jedes Anwendungsprodukt erforderlich, wird aber in der Regel als Teil eines Code Signing-Zertifikats von einer Certificate Authority (CA) ausgestellt. Es handelt sich um eine Code Signing-Funktion, die es dem Software-Developer ermöglicht, den Code mit einem Zeitstempel zu versehen, um nachzuweisen, dass der Code zu einem bestimmten Zeitpunkt signiert wurde.
Ein Timestamp stellt sicher, dass der Code nicht ungültig wird, wenn das Zertifikat abläuft, da das System den Timestamp validiert. Der Timestamp-Server zeichnet einen Hash des Codes auf. So kann die Software des Users zwischen Code, der mit einem abgelaufenen Zertifikat signiert wurde (dem nicht vertraut werden sollte), und Code, der mit einem Zertifikat signiert wurde, das zum Zeitpunkt der Signatur gültig war, aber später abgelaufen ist, unterscheiden.
Die Nutzung eines Timestamp ist ein entscheidendes Merkmal für das Signieren von Code und bietet eine zusätzliche Sicherheitsebene, um dessen Gültigkeit zu verlängern.
Manchmal kann ein Software-Developer auf die Verwendung eines Timestamps in einem Code Signing-Zertifikat verzichten – wenn z. B. ein Nachweis darüber, wann die Software signiert wurde, nicht erforderlich ist. Die Entscheidung, ob ein Timestamp mit einem Code Signing-Zertifikat verwendet werden soll oder nicht, hängt von den spezifischen Bedürfnissen und Anforderungen des Software-Developers ab.