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