Code-Signing-Zertifikate: Was ist Code Signing?

Code-Signing-Zertifikate schaffen gegenüber Software-Anwendern Vertrauen in die Sicherheit einer Software. Lesen Sie hier, was dies für Softwarehersteller und Anwender bedeutet. [...]

Welche Zertifizierungsstelle eine Website geprüft hat ist für Anwender einfach zu prüfen. Wird der Mauszeiger auf dem schwarzen Schloss vor der URL platziert, erscheint die Meldung: Verifiziert von: XYZ (c) pixabay.com

Das Konzept des Code Signing schützt Unternehmen und Anwender bereits seit langer Zeit, denn es stellt eine der Grundlagen des Internets dar, nämlich das Vertrauen in die digitale Welt – Stichwort „Root of Trust“. Die mehr als 30 Jahre alte Technologie ist nur so gut wie der Schutz, den sie für die wichtigste Komponente der digitalen Signatur – den kryptografischen Schlüssel – bietet.

Code Signing – Definition

Code Signing ist ein Prozess zur digitalen Unterschrift von ausführbaren Dateien und Programmcodes und damit eine Form der kritischen Sicherheitskontrolle. Sie hilft Unternehmen und Anwendern mit dem Wissen, dass ihre Software vertrauenswürdig ist und nicht verändert wurde. Dadurch können sich die Nutzer darauf verlassen, dass die Software wirklich von diesem Hersteller stammt sowie von einer unabhängigen Instanz abgesegnet und nicht von einem unbekannten Dritten manipuliert wurde. Aktuelle Betriebssysteme sind so konzipiert, dass sie vor der Installation einer Software warnen oder sie gar nicht erst zulassen, wenn sie nicht digital signiert wurde.

Mobile, Desktop- und eingebettete Betriebssysteme unterstützen heute fast durchgängig den Schutz von ausführbaren Programmcodes durch die Verwendung digitaler Signaturen. Code Signing beweist die Authentizität einer Binärdatei durch die digitale Unterschrift des Entwicklers und garantiert somit, dass diese Software nicht kompromittiert wurde. Folglich sind Anwendungssignaturen darauf ausgelegt:

  1. die Authentizität von Anwendungen zu verifizieren;
  2. Manipulationen und Man-in-the-Middle-Angriffe zu verhindern;
  3. vor Malware zu schützen, die sich als unverdächtige Anwendung tarnt;
  4. Entwicklervertrauen aufzubauen und deren Ruf zu schützen und
  5. gefälschte Anträge zu verhindern.

Was genau ist ein Code-Signing-Zertifikat?

Zunächst müssen wir der Frage nachgehen, was ein digitales Zertifikat ist, um dann festzulegen, was ein Code-Signing-Zertifikat ist. Ein digitales Zertifikat erfüllt zwei Funktionen. Erstens dient es zur Authentifizierung und Verifizierung der Identität z. B. eines Hosts oder einer Webseite. Und zweitens ermöglicht es die Verschlüsselung von Informationen, die über eine Webseite ausgetauscht werden.

Code Signing hat sich für praktisch jedes Unternehmen, das Software an Kunden und Partner vertreibt, zu einem wesentlichen Bestandteil der Geschäftsprozesse entwickelt. Diese Technik verifiziert, wer der Herausgeber eines bestimmten Codes ist und bescheinigt, dass er seit seiner Unterzeichnung nicht verändert wurde. Code-Signing-Zertifikate garantieren, dass der Code eines Programms oder Softwaredownloads nicht beschädigt und verändert wurde, nachdem er vom Herausgeber digital signiert wurde.

Die sicherste Methode, um Unternehmen die Möglichkeit zu geben, einen privaten Schlüssel zu beziehen, besteht darin, ein Zertifikat bei einer vertrauenswürdigen Zertifizierungsstelle zu beantragen. Sie führt durch einen Authentifizierungsprozess, um die Identität des Antragstellers zweifelsfrei festzustellen. Antragssteller signieren die ausführbare Datei oder Softwarebibliothek dann mit dem privaten Schlüssel. Sie kann anschließend von jedem über den zugehörigen öffentlichen Schlüssel verifiziert werden.

Wer bietet Code-Signing-Zertifikate an?

Code-Signing-Zertifikate werden von sogenannten Zertifizierungsstellen (Certificate Authorities, CA) ausgestellt. Sie übernehmen die Rolle eines Trust Centers und bestätigen die Identität des Programmierers. Für die behördliche Aufsicht ist die Bundesnetzagentur zuständig. Code-Signing-Zertifikate werden unter anderem von der PSW-Group angeboten.

Wie wird ein Zertifikat ausgestellt?

Wird für eine Software ein Code-Signing-Zertifikat benötigt, wendet sich der zuständige Programmierer oder Projektleiter an die CA seiner Wahl oder im besten Fall an die von seinem Unternehmen bevorzugte und empfohlene Stelle und beantragt dort die Ausstellung. Er muss dafür in der Regel Rechenschaft zur Nutzung ablegen und muss darüber hinaus dafür Sorge tragen, dass vor Ablauf der Gültigkeit des Code-Signing-Zertifikats ein neues verfügbar oder aber die Verlängerung gewährleistet ist.
Dieser Prozess kann sowohl manuell als auch teilautomatisiert erfolgen. Ansonsten ist der Service oder die Software, bei der das Code -Signing-Zertifikat zur Signierung eingesetzt wurde, nicht mehr vertrauenswürdig. Allerdings ist der Service oder die Software nach wie vor verfügbar und arbeitet wie gewohnt.

Sie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen

Zeitstempel

Ein sehr wichtiges Thema ist der Zeitstempel. Wenn eine Software digital signiert wird, wird der Computer die digitale Signatur vor der Installation der Software überprüfen. Wenn kein Zeitstempel (eine digitale Aufzeichnung des Zeitpunkts, an dem die Software signiert wurde) vorhanden ist, prüft das System normalerweise das Ablaufdatum des Zertifikats gegen das aktuelle Datum. Wenn jedoch ein Zeitstempel vorhanden ist, kann der Computer sehen, dass die Software signiert wurde, während das Zertifikat noch gültig war. Die Installation wird dann planmäßig durchgeführt.

Der Zeitstempel läuft nach einem gewissen Verfallsdatum ab. In der Regel beträgt die Laufzeit zwischen ein und drei Jahren. Nach Ablauf muss das Zertifikat ausgetauscht bzw. erneuert werden. Dieser Prozess ist wichtig, um die Vertrauenswürdigkeit des Zertifikats zu garantieren. Nur, wenn ein Zertifikat ein Gültigkeitsdatum hat, kann sich der Anwender darauf verlassen, dass die signierte Software vom Unternehmen laufend überprüft wird und vertrauenswürdig bleibt.

Sicherheits- und Verwaltungshinweise

Das Ziel von Code Signing ist es, eine Software einzusetzen, die ein hohes Maß an Authentizität und Integrität garantiert. Lange hat der Einsatz von Code-Signing-Zertifikaten reibungslos funktioniert und noch immer ist der Prozess durchaus überschaubar und strukturiert. Allerdings hat sich die Bereitstellung der Software verändert, die Softwareentwicklung wird immer schneller, agiler, flexibler und dadurch auch komplexer. Die Art und Weise wie Code Signing eingesetzt wird, hat nun größere Auswirkungen auf die Anwendungssicherheit.
In den letzten Jahren haben Cyberkriminelle ihre Aktivitäten zum Diebstahl, zur Fälschung oder zur Aufdeckung von Schwachstellen intensiviert. Dabei haben sie auch Code Signing für sich entdeckt und im Darknet hat sich ein reger Handel mit solchen Zertifikaten entwickelt.

Besonders wichtig sind hier die Schlüssel, die für den Signierungsprozess genutzt werden. Gelangen sie in die falschen Hände, kann das für die Herstellerfirma zu massiven Reputationsschäden führen. Das kann durchaus passieren, wenn Entwickler ihre Schlüssel in Entwicklerplattformen für alle zugänglich und unverschlüsselt ablegen. Das Problem bei einer Kompromittierung ist dann nicht nur der wirtschaftliche Schaden, wenn der Vorfall publik wird oder aber Anwender sich wegen auftretender Probleme beschweren, sondern erst einmal das Lokalisieren der Quelle. Oftmals dauert es Tage und Wochen, das abgelaufene Zertifikat oder die Schwachstelle zu finden, denn der manuelle Prozess dafür ist aufwändig und personalintensiv.

Code Signing bleibt elementar wichtig

Code Signing ist so alt wie das Internet, es ist jedoch ein Thema, mit dem sich IT-Experten eher weniger gern auseinandersetzen. Der Prozess der Software-Signierung ist fehleranfällig und bedeutet einen hohen Verwaltungsaufwand. Gleichzeitig wird er jedoch immer wichtiger, denn immer mehr Software muss als vertrauenswürdig gekennzeichnet werden. Der Bedarf an Code-Signing-Zertifikaten steigt daher exponentiell an, was dazu führt, dass es immer mehr Zertifizierungsstellen gibt, die diese Zertifikate anbieten.

Gleichzeitig wird der Verwaltungsprozess der vielen Zertifikate immer aufwändiger, was die Komplexität des Themas eher erhöht, als verringert. Die IT-Industrie ist dazu aufgefordert, mit den Möglichkeiten der Automation Abhilfe zu schaffen und Unternehmen und Anwendern kreative und sichere Lösungen für die Verwaltung dieser unzähligen Zertifikate und deren Schlüssel zu bieten. 

*Thorsten Krüger ist Regional Director DACH, CEE, CIS bei Thales. Er beschäftigt sich seit über 20 Jahren mit dem Vertrieb und der Beratung von IT und IT-Sicherheitslösungen. Er ist Experte für die Themen Verschlüsselung, Key Management und starke Authentifizierung. Vor Thales und Gemalto war Herr Krüger für internationale Unternehmen wie ActivCard tätig, in denen er unterschiedliche Vertriebs- und Managementpositionen innehatte.


Mehr Artikel

News

Public Key Infrastructure: Best Practices für einen erfolgreichen Zertifikats-Widerruf

Um die Sicherheit ihrer Public Key Infrastructure (PKI) aufrecht zu erhalten, müssen PKI-Teams, sobald bei einer Zertifizierungsstelle eine Sicherheitslücke entdeckt worden ist, sämtliche betroffenen Zertifikate widerrufen. Ein wichtiger Vorgang, der zwar nicht regelmäßig, aber doch so häufig auftritt, dass es sich lohnt, PKI-Teams einige Best Practices für einen effektiven und effizienten Zertifikatswiderruf an die Hand zu geben. […]

News

UBIT Security-Talk: Cyberkriminalität wächst unaufhaltsam

Jedes Unternehmen, das IT-Systeme nutzt, ist potenziell gefährdet Opfer von Cyberkriminalität zu werden, denn die Bedrohung und die Anzahl der Hackerangriffe in Österreich nimmt stetig zu. Die Experts Group IT-Security der Wirtschaftskammer Salzburg lädt am 11. November 2024 zum „UBIT Security-Talk Cyber Defense“ ein, um Unternehmen in Salzburg zu unterstützen, sich besser gegen diese Bedrohungen zu wappnen. […]

Be the first to comment

Leave a Reply

Your email address will not be published.


*