KEYnote 29 Deutsch - Frühjahrsausgabe 2015 - Page 8

P R O D U K T Blurry Box® Technologie Software hat einen immer größeren Anteil an der Wertschöpfung. Daher ist Softwareschutz ein immer wichtiger werdendes Teilgebiet der IT-Sicherheit. Softwareschutz verhindert Kopieren und Reverse Engineering von Softwareprodukten und schützt so vor Industriespionage. Kerckhoffs’ Prinzip Kerckhoffs’ Prinzip sagt: „Der Schlüssel ist das Geheimnis und nicht das Verfahren.“ Die bisher in der Praxis verwendeten Softwareschutzlösungen verletzen Kerckhoffs’ Prinzip, da die Geheimhaltung der dort verwendeten Methoden essentiell für deren Wirksamkeit ist. Ein Angreifer, der diese Methoden genau kennt, hat einen erheblich verminderten Aufwand, den Softwareschutz zu brechen. In der Theorie sind Methoden bekannt, die einen wirksamen Softwareschutz zusammen mit Kerckhoffs’ Prinzip beweisbar garantieren. Diese sind allerdings in der Praxis aus Ressourcen- und Performancegründen nicht einsetzbar. Code Moving, die Ausführung des zu schützenden Programms in einer sicheren Spezialhardware (Dongle), ist in der Praxis ebenfalls zu langsam, um es flächendeckend für komplexe Anwendungen einzusetzen. Das Blurry Box-Verfahren Mit dem Blurry Box-Verfahren wird Softwareschutz nach dem Kerckhoffs’schen Prinzip möglich. Das Blurry Box-Verfahren wurde gemeinsam vom FZI Forschungs- 8 zentrum Informatik, Karlsruher Institut für Technologie und Wibu-Systems entwickelt und wird Mitte 2015 für Softwarehersteller zur Verfügung stehen. Beim Blurry Box-Verfahren kennt der Angreifer das Blurry Box-Verfahren und das ausgelieferte Softwareprodukt ist für den Angreifer keine Blackbox. Er kann die Software benutzen und den ausgeführten Code im Klartext inspizieren. Das Blurry Box-Verfahren macht eine statische Codeanalyse nachweislich unmöglich und erschwert eine dynamische Codeanalyse substantiell. Ausgangspunkt des Blurry Box-Verfahrens und des Sicherheitsnachweises sind empirische Beobachtungen aus der Softwareentwicklung und der Hackerszene der letzten zwanzig Jahre: ■■ Eine typische Software ist so komplex, dass niemand durch Bedienung der Software den gesamten Code durchlaufen kann. Ein typischer Anwender durchläuft 10–20 %, ein typischer Power User 30–50 % und die interne Qualitätssicherung 80–90 % des Codes. ■■ Ein Hacker verfügt über ein hohes Maß an Wissen um den Vorgang des Hackens selbst. Er kann beispielsweise verschlüsselte Codestellen finden, Rückgabewerte ändern, Codefragmente zusammenfügen oder Code aus dem Speicher auslesen und wieder einfügen. ■■ Ein Hacker kennt den eigentlichen Zweck der Software und die interne Funktionsweise nicht. Auf den oben genannten Erkenntnissen, speziell dem fehlenden Fachwissen, wird ein Softwareschutz aufgebaut, der ohne massive Verlagerung der Programmausführung in den Dongle auskommt. Die Methoden des Blurry BoxVerfahrens Das Blurry Box-Verfahren kombiniert mehrere Methoden, die im Folgenden erläutert werden. Vervielfältigung von Funktionsblöcken zu Varianten Ein Programm lässt sich in mehrere Funktionsblöcke unterteilen. Ein Funktionsblock f[i] hat Eingabeparameter pIn[i] und Ausgabeparameter pOut[i]. In Abhängigkeit der