Software-Schutz verhindert Kopieren und Reverse-Engineering

Beweisbare Sicherheit

Software hat einen immer größeren Anteil an der Wertschöpfung und muss daher besonders geschützt werden. Bisher mussten entsprechende Verfahren geheim gehalten werden, um sicher zu bleiben. Ein neues Verfahren nach dem Kerckhoffs\'schen Prinzip ermöglicht hingegen einen beweisbar sicheren und korrekten Software-Schutz. Dabei beruht die Sicherheit auf der Geheimhaltung von Schlüsseln, einer geschützten Hardware und der inhärenten Komplexität der zu schützenden Software. Für diese Leistung wurden die Hersteller/Anbieter mit dem ersten Platz beim 5. Deutschen IT-Sicherheitspreis ausgezeichnet.

Weil Software prinzipiell kopier- und manipulierbar ist, verwendet das Blurry-Box-Verfahren mit dem CmStick eine sichere Hardware, die nicht kopiert oder verändert werden kann. Das Verfahren bindet nun den auszuführenden Programmcode so an den Stick, dass die Software ohne ihn nicht lauffähig ist. Dies geschieht aber nicht durch simple Aufrufe, die überprüfen, ob der CmStick antwortet. Denn solche Aufrufe könnten einfach aus dem Programm auskommentiert werden; auch wird nicht das Programm einfach verschlüsselt und dann vor der Programmausführung vom CmStick entschlüsselt. Denn dann läge das ausführbare Programm im Speicher und könnte wieder kopiert und manipuliert werden. Das Blurry-Box-Verfahren unterteilt das Programm in viele Funktionsblöcke, die jeweils Eingabe- und davon abhängige Ausgabeparameter umfassen, und verschlüsselt diese. Das Verfahren vervielfältigt jeden dieser Funktionsblöcke und verändert den Programmablauf so, dass die Auswahl aus den vervielfältigten Funktionsblöcken abhängig von den Aufrufparametern erfolgt. Die Auswahl des Funktionsblocks übernimmt dabei eine Wrapper-Funktion. Dadurch wird erreicht, dass die Codeabdeckung bei einem Durchlauf stark verringert wird und zusätzlich von den verwendeten Eingabeparametern abhängig ist.

Angriff unwirksam

Ein Hacker könnte versuchen, durch das Ändern der Wrapper-Funktion die Auswahlfunktion zu umgehen, sodass von den vervielfältigten Funktionsblöcken immer der gleiche ausgewählt wird. Das Blurry-Box-Verfahren macht einen solchen Angriff unwirksam, indem die vervielfältigten Funktionsblöcke jeweils so zu Varianten modifiziert werden, dass sie nur für den vorgesehenen Wertebereich korrekt funktionieren. Da das Programm über eine hinreichende inhärente Komplexität verfügt und dem Hacker das notwendige Fachwissen fehlt, ist nicht davon auszugehen, dass er bislang unbekannte Varianten oder den ursprünglichen Funktionsblock ableiten kann. Diese Annahme ist für den Sicherheitsbeweis des Verfahrens wichtig und wird Fachlichkeitsannahme genannt. Wird eine Variante mit den falschen Aufrufparametern benutzt, dann liefert diese Variante falsche Ergebnisse für die nicht vorgesehenen Parameterwerte. Gemäß der Fachlichkeitsannahme fehlt dem Angreifer das Fachwissen, um diese Ergebnisse zu korrigieren und er muss somit alle Varianten durch seinen Angriff erhalten, um eine vollständig funktionsfähige Kopie der Software zu erzeugen. Jede einzelne Variante wird vom Blurry-Box-Verfahren verschlüsselt und die Schlüssel für alle Varianten im CmStick sicher abgelegt. Die Entschlüsselung erfolgt über die API-Funktion des Sticks, indem die verschlüsselte Daten ins Stick-Innere übertragen werden und dort mit Hilfe der vorliegenden Schlüssel entschlüsselt werden. Der entschlüsselte Programmcode wird als Rückgabewert der CmDongle-API zurückgeliefert und in der Software als Code der Variante ausgeführt. Eine Variante kann nur mit dem CmStick entschlüsselt werden. Zur Verschlüsselung wird der Advanced Encryption Standard (AES) verwendet. Um Blöcke mit gleichem Inhalt auf unterschiedliche Chiffrate abzubilden, fließt in die Berechnung ein zufällig gewählter Wert mit ein.

Fallen für den Angreifer

Ein Teil der verschlüsselten Daten gehört nicht zum Programm und werden in einem normalen Programmlauf nie verwendet. Diese Daten entsprechen Varianten, die für keinen möglichen Aufrufwert vom Wrapper ausgewählt werden. Wird der CmStick aufgefordert solch eine Variante zu entschlüsseln, so wird diese erkannt. Der Stick markiert die Lizenz als ungültig und ermöglicht damit keine weiteren Entschlüsselungen. Solche sogenannten Fallen hindern einen Angreifer, alle verschlüsselt vorliegenden Varianten unabhängig vom Programmlauf durch den CmStick zu entschlüsseln. Werden im Programm zusätzlich Sprünge auf solche Fallen eingefügt, die bei einem normalen Programmlauf nie auftreten, so wirken die Fallen sowohl bei einem statischen Angreifer, dessen Angriff unabhängig vom Programmlauf ist, als auch bei Angreifern, die den Code durch Decompilierung analysieren und allen Sprungadressen folgen. Das Code Moving, also das Ausführen von Programmcode in einer geschützten Hardware, verlangsamt im Allgemeinen die geschützte Anwendung und ist somit in der Regel nicht praktikabel. Auch eine Auswahl von besonders wichtigen Funktionsblöcken, die per Code Moving im Dongle ausgeführt werden sollen, ist nicht praktikabel, da diese wichtigen Funktionsblöcke dadurch stark verlangsamt würden. Sehr sinnvoll ist das Code Moving dagegen für den Code zur Berechnung der Variantenauswahl, denn dieser ist sehr kurz und essentiell für die korrekte Programmausführung. Diese Form des Code Moving kann sogar größtenteils automatisiert werden und ist dann nur auf wenig Interaktion mit dem Programmentwickler angewiesen. Ein Angriff, der von einer normalen Programmausführung abweicht, kann nicht nur über Fallen erkannt werden, sondern auch an der Reihenfolge, in der Blöcke vom CmStick entschlüsselt werden. Während eines regulären Ablaufs des Programmcodes ist diese Reihenfolge nicht beliebig und auf einen Block kann nur eine kleine Teilmenge aller Blöcke folgen. Ein Gedächtnis des CmSticks ermöglicht es der Blurry Box-Technologie, gültige von ungültigen Abfolgen zu unterscheiden und eine Sperre auszulösen, sobald eine ungültige Abfolge versucht wird.

Sicherheit durch Beweis und Fachlichkeit

Kerckhoffs Prinzip besagt, dass das verwendete kryptographische Verfahren nicht geheim sein sollte, sondern nur die verwendeten Schlüssel. Es ist ein wichtiger Grundpfeiler der modernen Kryptographie, denn nur so können kryptographische Verfahren öffentlich diskutiert, kritisiert und verbessert werden. Kerckhoffs Prinzip erlaubt darüber hinaus sogar eine beweisbare Sicherheit. Darunter versteht man nicht, dass es einen Beweis absoluter Sicherheit gibt, sondern ein systematisches Vorgehen, mit dem man große Klassen von Angriffen wirksam ausschließen kann. Zuerst wird eine Modellwelt definiert, die von der realen Welt abstrahiert. Dann werden Sicherheitsannahmen explizit aufgeführt und zuletzt wird ein mathematischer Beweis angegeben, dass unter den getroffenen Sicherheitsannahmen innerhalb der Modellwelt kein Angriff möglich ist. Jeder erfolgreiche Angreifer muss also das Modell verlassen. Lässt sich sein Angriff im Modell formulieren, so kann er nicht erfolgreich sein. Bei dieser Herangehensweise führt jeder gefundene Angriff zu einem Erkenntnisgewinn, denn es wird gezeigt, dass das Modell nicht realistisch ist oder die getroffenen Annahmen falsch sind.

Seiten: 1 2Auf einer Seite lesen

WIBU-Systems AG
http://www.wibu.de

Das könnte Sie auch Interessieren

Weitere Beiträge

Bild: Ceratizit Deutschland GmbH
Bild: Ceratizit Deutschland GmbH
Werkzeuge – immer passend

Werkzeuge – immer passend

Eine digitalisierte Fertigung hat viele Gesichter… und Recker Technik aus Eschweiler setzt ihr auf jeden Fall einen Smiley auf. Dort bringt die Produktion mit digitalen Zwillingen mehr Effizienz in den Alltag sowie gleichzeitig mehr Überblick über das Toolmanagement und die Werkzeugkosten. Mit dabei: Zwei Tool-O-Maten, die intelligenten Werkzeugausgabesysteme von Ceratizit – dank denen immer das passende Werkzeug für den Job zur Hand ist.

mehr lesen
Bild: Hainbuch GmbH
Bild: Hainbuch GmbH
„Wie passende Spanntechnik die Automation voranbringt“

„Wie passende Spanntechnik die Automation voranbringt“

Zunehmend individuellere Kundenanforderungen, mehr Schwankungen im Auftragseingang und weniger Fachkräfte – diese Faktoren beeinflussen die Fertigungsplanung zunehmend. Gerade bei kleinen Herstellungschargen mit Losgrößen unter 100 macht in diesem Spannungsfeld die Automatisierung, etwa von Hainbuch, den Unterschied. Ein entscheidender Ansatzpunkt in der Umsetzung ist neben Maschine, Roboter und Bediener der Rüst- und Spannprozess.

mehr lesen
Bild: Schunk SE & Co. KG Spanntechnik
Bild: Schunk SE & Co. KG Spanntechnik
Futter für die Ewigkeit

Futter für die Ewigkeit

Siemens Energy setzt für die Präzisionsbearbeitung an einer Horizontaldrehmaschine Magnos Elektropermanent-Magnetspannfutter von Schunk ein. Dank der gleichmäßig dauerhaft wirkenden Magnetspannkraft erfolgt das Spannen der Werkstücke deformations- und vibrationsarm – für eine ausgezeichnete Bearbeitungs- und Oberflächenqualität. Mit der zugehörigen App lässt sich die Spannsituation simulieren und sicher parametrieren.

mehr lesen