Code Signing Zertifikate: Warum kommen wir ohne sie nicht aus?

06.02.2018 | Petra Alm

Auch falls Sie (noch nicht) zu den Direktanwendern von Code Signing Zertifikaten gehören, haben Sie sie – obwohl vielleicht nur unbewusst – bestimmt schon angetroffen oder von ihnen wenigstens gehört. Zur welchen Gruppe auch immer Sie zählen, der folgende Artikel kann Ihnen nur gelegen kommen. Wir fassen in ihm zusammen, was wir uns unter dem Begriff Code Signing vorstellen können, wozu dieses Produkt dient und wie wir von ihm das Maximum gewinnen können.

Code Signing Zertifikate als untrennbarer Teil aller Software-Produkte

Die Wortverbindung code signing ist ziemlich prosaistich und verbirgt keinen Verrat. Aber was mit dem code, welcher signiert werden soll? Konkret können wir uns unter ihm Anwendungen und Programme vorstellen, Dateien mit den Endungen .exe, .app, .msi, .cab, .ddll, .jar und andere – kurz und bündig Software.

Und falls Sie eben eine Software entwickeln, steht für Sie ihre erfolgreiche Verbreitung unter Nutzern – ihr Vertrieb - bestimmt an erster Stelle. Sollte Ihr Produkt mit einem Code Signing Zertifikat nicht ausgestattet sein, werden es die Kunden weder auf ihre Handys herunterladen, noch in Windows auslösen können – aus dem einfachen Grund, dass es für das Endgerät nicht vertrauenswürdig sein wird - nicht abgesichert vor möglichen Risiken. Vor welchen genau? Es ist natürlich äußerst wichtig, dass die Früchte Ihrer Arbeit zu den Kunden in der originalen, unveränderten Form gelangen – also dass sie auf dem Weg von Ihnen zu den Nutzern zu keinem Schaden kommen. Jeder weiß, wie die elektronische Post kompromittiert werden kann - entweder durch eine Nachahmung der Adresse des Absenders oder durch einen Eingriff in den Inhalt der Nachricht. Und auf beide Art und Weisen kann auch Ihr Produkt manipuliert werden. Vor allem falls Sie Ihre Software online zur Verfügung stellen, wie möchten Sie verhindern, dass sich ein Angreifer eine Kopie Ihres Programms bemächtigt und sie für das Original ausgibt, jedoch bereichert um eine Adware oder Malware? Als Nutzer sollten Sie sich dann die Frage stellen, ob die Anwendung, die Sie gewählt haben und die Sie installieren möchten, tatsächlich von dem angegebenen Hersteller stammt. Ein Code Signing Zertifikat kann beides beantworten – es stellt sicher, dass das mit ihm unterzeichnete Produkt durch einen Fremdangriff nicht geändert worden ist und dass es tatsächlich von dem deklarierten Hersteller stammt.

Auf welchem Prinzip funktioniert das Ganze?

Jedes Code Signing Zertifikat ist mit einem unikalen privaten Schlüssel verbunden, welchen nur der Inhaber des betreffenden Zertifikats besitzt und welcher auf der Basis der erstellten CSR-Anforderung entsteht. Eben dank diesem privaten Schlüssel kann die gewählte Datei mit einer digitalen Signatur versorgt werden.

Diese Signatur ist für jedes unterzeichnete Programm einzigartig. Wir unterschreiben nämlich Hash. Dieser Begriff steht generell für einen Abdruck oder Wert einer beliebigen Datenkette, in unserem Fall dann der signierten Datei. Eben dieser Abdruck verhindert es, die zu der App beigefügte Signatur zu entwenden und sie für eine betrügerische Software zu missbrauchen. Sollte das originale Produkt modifiziert werden, wird es von dem Endgerät als ungültig betrachtet und abgewiesen, weil es dem ursprünglichen Abdruck nicht mehr entsprechen wird. Das Code Signing Zertifikat stellt somit die Integrität der übertragenen Daten sicher. Es garantiert, dass seit dem Moment der Signatur der Code von niemandem und auf keine Art und Weise geändert worden ist.

Sobald der App-Leitfaden in Gang gesetzt wird, die Plattform, ob Windows, iOS oder Java, überprüft die Signatur und zeigt sie dem Nutzer an. Somit kann er die Herkunft der Software überprüfen und sich für ihre Installierung oder Entfernung entscheiden. Und hier kommen wir zu der zweiten Funktion der Zertifikate – der Authentifizierung des Herausgebers und Identifizierung der unterschriebenen Daten. Falls wir den privaten Schlüssel sicher aufbewahren und an eine Drittpartei nicht weitergeben, kann eine fremde Software mit unserem Firmennamen nicht signiert werden. Aber Vorsicht, es lässt sich nicht das Szenario ausschließen, dass in das Code Signing Zertifikat ein Hacker investiert und mit ihm eine Malware signiert, um die Vertrauenswürdigkeit der Datei zu besorgen und mehrere Opfer anzulocken. Die Abwägung, ob das herausgebende Subjekt des Vertrauens wert ist oder nicht, liegt somit schon in Hand des Nutzers. In den meisten Fällen gilt es jedoch, dass der Autor der heruntergeladenen App eine uns bekannte Firma ist.

Timestamping – ein Schritt extra, welcher sich lohnt

Sobald das Zertifikat abgelaufen ist, kann es fürs Signieren von neuen Anwendungen nicht mehr genutzt werden. Und was schlimmer ist – mit dem Ablaufdatum des Zertifikats verlieren auch die bereits durchgeführten Signaturen ihre Gültigkeit. Sofern wir uns nicht Timestamping zu Hilfe rufen.

Der Begriff Timestamping bezeichnet eine zusätzliche Information, welche der Signatur angehängt wird und welche dem Gerät des Nutzers bekanntgibt, wann wir den Code signiert haben. Dank dieser Angabe wird die Unterschrift eigentlich als Perpetuum mobile funktionieren. Dies ist natürlich wünschenswert, vor allem in Anbetracht dessen, dass die einmal herausgegebenen Anwendungen unverändert für Jahre auf dem Markt angeboten werden können. Dieses „Stempeln“ bringt uns somit logisch auch Ersparnis – wenn wir neue Dateien signieren möchten, müssen wir nicht regelmäßig in eine Verlängerung des schon einmal ausgestellten Zertifiikats investieren.

Verschiedene Plattformen & ein Zertifikat

Code Signing Zertifikate werden von jeder Plattform unterstüzt. Es ist nebensächlich, mit welcher genau sie arbeiten, ob mit Windows, OS X, iOS, Android, Java oder Adobe AIR – die Nutzung eines Code Signings ist auf allen nicht nur möglich, sondern sogar empfehlenswert: ohne die Signatur zu realisieren setzen Sie sich dem Risiko aus, dass Ihre Software als nicht vertrauenswürdig eingestuft wird und dass Ihre Kunden vor ihrem Download nachdrücklich gewarnt werden.

Das Code Signing Zertifikat ist auf vielen Plattformen eine Pflicht

Bei Publizierung der Software für offizielle Shops von iOS, Android und OS X ist das Sginieren sogar eine Pflicht. Und die Anzahl von diesen „strengen“ Plattformen steigt. Signiert müssen auch alle Windows Treiber (drivers) und MS Office-Makros werden. In diesem Zusammenhang sollten wir auch das hochgeachetete Code Signing EV-Zertifikat erwähnen, welches für Windows 10 Kernel Mode Drivers erfordert wird und welches die einzige Lösung darstellt, wie die unangenehmen Blockierungen vonseiten des unrühmlichen Smartscreen Filters vorgebeugt werden können.

Für welche Platfform konkret Sie das Zertifikat benötigen ist dabei eigentlich nebensächlich - die erhaltenen Zertifikatsdateien können Sie einfach während ein paar Minuten je nach Ihrem Bedarf konventieren.

Auf einigen Plattformen werden Sie bei dem Import des Zertifikats und Generierung der Unterschrift nur mit einem Signtool auskommen. Auf anderen werden Sie zuerst das Zertifikat in den Zertifikatsspeicher übertragen müssen, bevor Sie mit ihm die Signatur leisten werden können. Mit diesen konkreten Aufgaben wird Ihnen nach der Ausstellung des Zertifikats jedoch der Kundensupport von SSLmarket gerne helfen.

Wir wünschen Ihnen viel Spaß beim Signieren!

Zum Nachlesen

Getting Started with Code Signing


Petra Alm
Spezialistin für TLS-Zertifikate
DigiCert TLS/SSL Professional
e-mail: info(at)sslmarket.de