To top
Products Products

Blurry-Box Kryptographie

Teilen:

Kerckhoffs Prinzip

Auguste Kerckhoffs

Auguste Kerckhoffs
Quelle: Wikipedia.org

„Die Sicherheit eines Verschlüsselungsverfahrens sollte auf der Geheimhaltung des Schlüssels und nicht auf der Geheimhaltung des Verfahrens selbst beruhen“, so der Grundsatz von Auguste Kerckhoffs. Dies bedeutet, ein gutes Verfahren muss nicht geheim gehalten werden. Falls es geheim gehalten wird, dann sollte man sich hinterfragen warum dies so ist.

Diesen Grundsatz verfolgt Wibu-Systems bereits seit vielen Jahren. Während viele andere Dongles auf eigene Algorithmen setzen, wurde bei WibuKey schon 1992 der bekannte FEAL-Algorithmus eingesetzt und das Schema der Schlüsselableitung in der WibuBox im Handbuch veröffentlicht. Während andere - geheim gehaltene - Systeme bereits frühzeitig gebrochen waren, hat WibuKey den Sicherheitsanforderungen standgehalten bis die aufgrund von Exportrestriktionen verwendetet Schlüssellänge von 40-Bit zu klein wurde. Die aktuellen WibuBoxen verwenden daher eine Schlüssellänge von 64-Bit und sind ungebrochen. Bei CodeMeter wurde schon im ersten Release 2003 mit AES 128-Bit wiederrum auf ein öffentliches Verfahren gesetzt. Und auch hier gilt, dass die Kryptographie im CmDongle bis heute nicht gebrochen wurde.

Die Idee

Im Gegensatz zu dem Verschlüsselungsverfahren in einem Dongle, ist die Methode wie man einen sicheren Schutz in eine Software integriert bisher nicht veröffentlicht worden. Hier gilt genau das Gegenteil von Kerckhoffs Prinzip, nämlich „Security by Obscurity“. Damit können diese Verfahren weder beurteilt noch untereinander verglichen werden. Auch hier gilt für Wibu-Systems, dass man im Rahmen von Vorträgen und Veranstaltungen viel über die Methoden und die Funktionsweise der CodeMeter Protection Suite vorstellt.

Mit Blurry Box-Kryptographie wird dies auf eine neue Ebene gehoben. Blurry Box-Kryptographie bietet einen Softwareschutz, der komplett und alleinig auf veröffentlichen Verfahren beruht und somit beurteilt und verglichen werden kann. Natürlich kann BlurryBox-Kryptographie mit den herkömmlichen Methoden von CodeMeter Protection Suite kombiniert werden.

Schaubild beschreibt das AxProtector.NET Funktionsprinzip

Das Grundprinzip von Blurry Box-Kryptographie beruht auf einen, bzw. mehreren sicheren Schlüsseln in einem Dongle und der Tatsache, dass Software im Regelfall komplex ist. Das Ziel ist es dabei den Aufwand, den man benötigt um eine Raubkopie der Software anzufertigen, höher ist als der Aufwand, die gleiche Software komplett neu zu schreiben. Denn dieses Ansatz: „Ich schreibe die Software komplett neu“, ist systembedingt nie zu verhindern, wenn man die Funktion der Software versteht.

Die Methoden

Blurry Box-Kryptographie setzt sich aus sieben Methoden zusammen, die den Aufwand für das Erstellen einer Raubkopie so erhöhen, dass es einfacher und schneller ist, die Software neu zu entwickeln.

Bild zeigt die sieben Schutzmethoden zum Schutz vor Raubkopien

Erzeugung von Varianten

Funktionen in der Software werden zu Varianten der Funktion vervielfältigt. Damit wird die Komplexität der Software erhöht. Eine Wrapper-Funktion übernimmt die Auswahl, welche der Varianten abhängig von den gegebenen Eingangsparametren der Funktion ausgeführt wird.

Modifikation der Varianten

Die einzelnen Varianten werden so modifiziert, dass diese nur in dem für diese Variante gültigen Wertebereich funktioniert. Damit wird verhindert, dass ein Angreifer die Wrapper Funktion so patched, dass immer die gleiche Variante ausgeführt wird.

Verschlüsselung der Varianten

Alle Varianten werden verschlüsselt, so dass ein Angreifer den Code nicht analysieren kann, ohne den Code entschlüsselt zu haben.

Einfügen von Fallen

Zusätzlich zu den bereits erzeugten Varianten werden weitere Varianten als Fallen eingefügt und ebenso verschlüsselt. Eine Falle enthält einen Sperrcode. D.h. falls so eine Falle über den Dongle entschlüsselt wird, dann sperrt sich der Dongle selbst und kann nicht mehr zum Entschlüsseln verwendet werden. Damit wird verhindert, dass ein Angreifer alle Methoden ohne Analyse deren Funktionsweise entschlüsseln kann.

Auswahl der Variante im Dongle

Die Wrapper-Funktion verwendet den Dongle für die Auswahl der Variante. Dazu werden die Eingangsparameter an den Dongle gesendet und dieser gibt die zu verwendende Variante zurück. Damit ist es dem Angreifer nicht mehr möglich Falle von benötigten Varianten durch alleinige Analyse einer entschlüsselten Wrapper-Funktion zu unterschieden. Er müsste den Code für alle möglichen Eingangsparameter ausführen, um dies sicher unterscheiden zu können.

Zustandsspeicher im Dongle

Der Entwickler weiß, dass Funktionen nur in einer von ihm vorgegebenen Reihenfolge durchlaufen werden können. Die zuletzt entschlüsselte Methode wird im Dongle als Zustand gespeichert. Bei der nächsten Entschlüsselung wird dann geprüft, ob dieser Zustand erwartet wurde. Falls nicht, kann eine Falle ausgelöst werden. Damit wird verhindert, dass ein Angreifer alle Varianten an einer beliebigen Stelle in der Software ausprobiert. Er müsste immer wieder zum Ausgangspunkt zurückgehen, was die Komplexität des Angriffes erhöht.

Entschlüsselungs-Verzögerung

Im Normalbetrieb wird nur eine bestimmte Anzahl an Entschlüsselungen pro 30 Sekunden durchgeführt. Diese Anzahl wird als maximal erlaubte Anzahl an Entschlüsselungen im Dongle gespeichert. Der Dongle verlangsamt seine Entschlüsselungen dementsprechend. Damit wird zusätzlich zur Komplexität auch der Zeitaufwand für den Angreifer erhöht.

Zusammenfassung

Mit Blurry Box-Kryptographie werden sieben veröffentliche Verfahren verwendet, die die Komplexität und den Zeitaufwand eines Angriffs so stark erhöhen, dass es für einen Angreifer einfacher und wirtschaftlicher ist, wenn er eine vergleichbare Software von Null an neu entwickelt.

Diese Verfahren stehen Ihnen zusätzlich den gewohnten Anti-Debug und Verschleierungsmethoden von CodeMeter Protection Suite zur Verfügung. Durch Blurry Box-Kryptographie ist Softwareschutz mess- und vergleichbar. Anstelle die Katze im Sack zu kaufen, erhalten Sie eine Technologie, die von Experten bereits geprüft wurde.