Anzeige

Telefon: +49-721-93172-0


Software-Schutz verhindert Kopieren und Reverse-Engineering

Beweisbare Sicherheit

Bild: WIBU-Systems AGBild: WIBU-Systems AG
Bild 3: Die Schutz-Hardware CmStick gibt es für verschiedene Schnittstellen.

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.

WIBU-Systems AG

Dieser Artikel erschien in SPS-MAGAZIN 7 2015 - 09.07.15.
Für weitere Artikel besuchen Sie www.sps-magazin.de

Firmenportrait