Digital signiert. Aha–und jetzt?


Thomas Wölfer
Thomas Wölfer

12. Februar 2014


Ich hatte gestern berichtet, das unsere ausführbaren Dateien ab dem nächsten Update mit digitalen Signaturen ausgestattet sind. Dabei stellt sich natürlich die Frage: Was ist denn so eine digitale Signatur, und wofür ist die eigentlich gut?

Das will ich hier nun beantworten, zumindest will ich das versuchen, denn die Sache ist nicht ganz einfach.

Der Hintergrund von digitalen Signaturen liegt bei Dateien, insbesondere ausführbaren, die man aus dem Internet herunterladen kann. Dazu zählt zum Beispiel auch unserer Software, die man entweder manuell aus dem Download-Bereich unserer Webseite runterladen kann, oder aber die per automatische Updates vom Programm selbst heruntergeladen wird.

(Wer sich ein bisschen Mühe gibt, kann unsere Software auch von diversen Raubkopierer-Seiten herunterladen, wobei es aber meines Ermessens einfacher ist, die kostenlose Hochschulversion einfach von uns direkt zu beziehen )

Jedenfalls ist es so, das man so eine Datei runterlädt, und dann möglicherweise irgendwo hin kopiert – und irgendwann weiss man nicht mehr, woher ein gegebenes Programm kommt. Diesem Umstand machen sich nicht zuletzt die Autoren von Schadsoftware zu Nutzen: Entweder, sie nehmen ein völlig unschuldiges Programm wie die Baustatik, pflanzen darin Ihren Schadcode ein, und verteilen das ganze dann. In dem Fall hat man eine “richtig” aussehende Software, die sich möglicherweise auch “normal” verhält – nur eben mit einem Zusatz an Schadcode versehen ist.

Oder ab, die nehmen direkt das Schadprogramm und nennen es wie ein “bekanntes, richtiges”  - zum Beispiel eben “Baustatik.exe” – und verteilen das dann.

In beiden Fällen hat man, wenn man diese Software dann startet, ein Problem – und zwar eines das man realistischer weise nicht loswird, ohne den Rechner neu zu formatieren und zu installieren.

Diesem Umstand sollen digitale Signaturen abhelfen – oder dabei zumindest assistieren. So eine Signatur tut im Wesentlichen zwei Dinge:

  • Sie stellt sicher, das das Programm auch tatsächlich von dem Hersteller stammt, der in der Signatur steht.
  • Sie stellt sicher, das ein gegebenes Programm nicht verändert werden kann, ohne das dies vom Betriebssystem bemerkt werden kann – und dann die Ausführung unterbindet.

Wenn also eine ausführbare Datei ein digitales Zertifikat enthält (ob das so ist, kann man über den “Eigenschaften” Dialog überprüfen), dann stammt diese Kopie der Datei auch sicher von der Institution, die im Zertifikat angegeben ist.

Weil das Zertifikat unter anderem auch eine “Checksumme” des Programmcodes enthält, die nur mit dem geheimen Schlüssel des Verwenders des Zertifikats hergestellt werden kann, kann das Programm auch nicht mehr verändert werden, nachdem es signiert wurde: Der Befall durch Schadsoftware wird also deutlich verringert.

Der Autor der Schadsoftware ist zwar in der Lage das Programm zu verändern – nur muss er es danach nochmal signieren: Er hat aber den geheimen Teil des Zertifikats nicht, und muss darum ein anderes Zertifikat verwenden. Hinterher steht in unserem Fall eben nicht mehr die “DIE Software” als Herausgeber im Programm.