2.1 Dongle-Varianten - RWTH Aachen University

Werbung
Seminararbeit
Name:
Dominique Lärz
Matr.-Nr.:
845816
Software-Lizensierung durch Hardlocks
Erstbetreuer:
Prof.Dr. Wilhelm Hanrath
Zweitbetreuer:
Dipl.-Ing. Björn Christian Höper
Aachen, den 14.05.2016
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
I
Inhaltsverzeichnis
I
Inhaltsverzeichnis......................................................................................................... i
1
EINLEITUNG ................................................................................................................. 1
2
1.1
Motivation .............................................................................................................. 1
1.2
Was ist ein Dongle ................................................................................................. 1
HARDWARE ................................................................................................................. 4
2.1
2.1.1
Gängige Hardware-Varianten ......................................................................... 4
2.1.2
Zusätzlicher Speicher ..................................................................................... 5
2.1.3
Netzwerk-Dongle ............................................................................................ 5
2.2
3
4
Dongle-Varianten ................................................................................................... 4
Der ASIC-Chip ....................................................................................................... 6
DONGLE-HERSTELLUNG ........................................................................................... 8
3.1
Darstellung einer Dongle-Herstellung bei Aladdin .................................................. 8
3.2
Vor- und Nachteile beim Einsatz von Dongles ....................................................... 9
SCHUTZ .......................................................................................................................11
4.1
Wie sehr kann ich meine Software schützen .........................................................11
4.2
Schutzmaßnahmen ...............................................................................................12
4.2.1
Möglichkeiten des Dongle-Einsatzes .............................................................12
4.2.2
Vorgehensweise bei Erkennung einer nicht-aktivierten Programmversion .....14
4.3
Lizenzmanager-Software Flexera..........................................................................15
4.3.1
Vor- und Nachteile einer Lizenzmanager-Software........................................16
5
AUSBLICK ...................................................................................................................17
6
LITERATUR .................................................................................................................20
1
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
1
EINLEITUNG
1.1 Motivation
Heutzutage ist es sehr einfach raubkopierte Software illegal über das Internet zu verbreiten.
Zur Sicherung der Software verwendet man einen Kopierschutz oder auch, durch Hardware
unterstützten Schutz, um die Verwendung kopierter Software zu unterbinden.
Da am Werkzeugmaschinenlabor der RWTH Aachen – kurz WZL - Softwarelizenzen
vertrieben werden, ist es notwendig sich durch ein solches Verfahren abzusichern. Damit die
Software nicht nach dem ersten Verkauf beliebig oft vervielfältigt und von unautorisierten
Personen benutzt werden - wodurch viel Umsatz bei den Software-Herstellern verloren geht ist es nötig die Software zu schützen. An dieser Stelle kam bei uns bisher immer ein
bestimmter Kopierschutz zum Einsatz: Ein sogenannter Dongle oder auch Hardlock. Ich
werde in meiner Seminararbeit beide Begriffe verwenden, jedoch das Gleiche meinen. Es
handelt sich dabei um eine Hardware, die mit der Lizenz zusammen ausgeliefert wird und
dafür sorgt, dass die Lizenz überhaupt genutzt werden kann.
Mit der Zeit entwickeln sich die Verfahren zum Schützen von lizenzierter Software weiter.
Der aktuelle Trend ist es, Software über bestimmte Lizenzserver abzusichern und hier liegt
das Problem.
Immer mehr Firmen steigen auf diese Methode um, unter anderem auch die Firma Aladdin,
die bislang für die Versorgung des WZLs mit Dongles verantwortlich war. Das Konzept wird
insofern umgestellt, dass man sich auf Lizenzserver also eine Lizenz-Verwaltung über das
Internet spezialisiert. Dadurch wird die Entwicklung neuer Versionen der Standard-Dongles
eingestellt und aktuelle Betriebssysteme werden durch fehlende Updates nicht mehr
unterstützt.
Da uns das Konzept jedoch sehr gefällt und jährliche Kosten vermieden werden könnten, ist
die Überlegung groß, ein eigenes Dongle-System zu entwickeln, das zum Schutz der WZLSoftware verwendet werden soll. In meiner Seminararbeit werde ich daher allgemein auf das
Thema Lizenzschutz eingehen und im speziellen den Wirkmechanismus eines Harlocks
darstellen. Hieraus kann anschließend ein Anforderungsprinzip für unser neues HardlockKonzept abgeleitet werden.
1.2 Was ist ein Dongle
„Als Raubkopie wird die rechtswidrige Vervielfältigung eines Musikstückes, Filmes, einer
Software oder einer Datenbank bezeichnet. Die Raubkopie verletzt das Urheberrecht und
1
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
enthält dem Rechtsinhaber die ihm zustehende finanzielle Leistung vor.“ [RAUB00]
Ergebnisse einer Umfrage des BSA zur Nutzung von Nicht-Lizensierter Software [BSA00]
Eine Studie der BSA (Business Software Alliance) zeigt, dass im Jahr 2011 über 50% der
befragten Menschen zugeben, illegal kopierte Software zu verwenden. Die befragten
Personen verteilen sich über die ganze Welt. Es wird geschätzt, dass mittlerweile durch
Raubkopien bereits mehr als 63 Milliarden US$ verloren gegangen sind (Stand 2011).
[BSA00]
Um das verhindern zu können, muss die zu verkaufende Software Kopiergeschützt werden
oder die Verwendung von illegalen Kopien von Software unterbunden werden. Eine
Möglichkeit das zu lösen ist der Einsatz eines Dongles.
Ein Dongle ist ein hardware-basierter Kopierschutzstecker, der verhindern soll, dass illegal
kopierte Software verwendet werden kann. Die Software ist also nur in Verbindung mit dem
Dongle-Modul lauffähig. Dongles werden in verschiedenen Variationen angeboten, die sich
in den Schnittstellen zum Anwender-Gerät (USB, seriell, parallel,…) und einigen
Eigenschaften unterscheiden, später mehr.
Auch die Verbindung zwischen Dongle und Software kann dabei stark variieren. Wo manche
Software den Dongle nur auf Anwesenheit prüft, verschlüsseln andere Systeme ganze
Codeblöcke oder Datensätze der zu sichernden Software. Das ist abhängig von der
Wichtigkeit des Schutzes. Da Software nicht hundertprozentig gesichert werden kann, gilt es
den Schutz so hoch wie möglich und nötig zu setzen.
2
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
3
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
2
HARDWARE
2.1 Dongle-Varianten
2.1.1
Gängige Hardware-Varianten
Dongles werden, je nach Einsatzgebiet oder auch benötigter Schnittstellen in verschiedenen
Bauformen hergestellt. Die folgende Tabelle gibt einen Überblick über die üblichsten DongleModelle:
Modell
Eigenschaften




Einfache Nutzung
Plug & Play
USB heute häufigste Schnittstelle
Meist kein USB-Treiber nötig

E-Y-E
(StandardDongle)

Standard Dongle mit ParallelSchnittstelle
Mehrere Dongles hintereinander
schaltbar
USB-Dongle
Twin-Dongle
Internal PCI-Dongle
4


Erweiterung zum Standard-Dongle
Enthält zusätzlich eine serielle
Schnittstelle


Kopierschutz als Rechnerkomponente
Anbindung über einen PCI-, PCIExpress- oder ISA-Anschluss
Darstellung
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
PCMCIA
2.1.2
 Schmale Hardlock-Variante für
Unterwegs
 Ideale Lösung für Notebooks/ Laptops
Zusätzlicher Speicher
Jeder Dongle kann zusätzlich noch mit programmierbarem Speicher ausgeliefert werden,
was heute eigentlich zum Standard gehört. Der Speicher liegt im Byte-Bereich, ist also nicht
sonderlich groß, dennoch aber mehr als ausreichend um bei Bedarf die zu schützende
Software zusätzlich zu sichern. Es wäre beispielsweise möglich zusätzliche Daten im
Speicher abzulegen, die zur Sicherung der Software dienen können oder andere
Funktionalitäten bieten. Der Vorteil dabei ist, dass niemand auf diesen Speicher zugreifen
kann, außer der Person, die den sogenannten Master-Dongle bzw. die Crypto-ProgrammerCard besitzt, dazu später mehr.
2.1.3
Netzwerk-Dongle
In großen Firmen kommt es häufig vor, dass viele Mitarbeiter die gleiche Software
verwenden und so kann es sein, dass sie mit dem selben Dongle arbeiten müssen. Beim
Transport des Dongles von einem zum anderen Rechner könnte der Dongle verloren gehen
und vor allem ist es auch sehr umständlich. Unter anderem wurde deswegen der NetzwerkDongle entwickelt.
Im Falle eines USB-Dongles wird ein USB-Server an das Netzwerk angeschlossen, welches
alle Dongles verwaltet. In diesen USB-Server werden nun alle USB-Dongles eingesteckt und
sind somit über eine bestimmte IP erreichbar.
5
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
Abb.:
USB-Server für die Nutzung von Dongles im Netzwerk [WEST00]
Möchte man nun die Rechte für eine Software erhalten, verbindet man sich über einen Client
mit dem Server und fragt nach der Erlaubnis den Dongle zu verwenden. Ist er als frei
markiert, darf der Dongle verwendet werden. Wird der Dongle nicht mehr benötig, wird er im
Server wieder freigegeben und kann von anderen Mitarbeitern verwendet werden.
2.2 Der ASIC-Chip
ASIC steht für Application Specific Integrated Circuit. Es handelt sich hierbei um einen
integrierten Schaltkreis aus einer elektronischen Schaltung und es ist ein wichtiger
Bestandteil des Dongles.
Heutzutage ist er in fast jedem Gerät vorzufinden, das entweder Batterien/Akkus oder ein
Stromkabel verwendet. Es gibt sie in Fernsehern, Waschmaschinen, Toastern usw.
Auch in unseren Dongles werden sie verwendet.
In einem ASIC-Chip befindet sich die elektronische Schaltung, die aus vielen digitalen
Bauelementen und Verbindungen zwischen diesen, besteht. Das Besondere daran ist, dass
sie alle gleichzeitig eingebaut wurden.
Beim ASIC handelt es sich um einen Chip, der speziell für eine Anwendung hergestellt wird,
das heißt, dass der Hersteller vor der Herstellung genau wissen muss, was der Chip können
soll. Ziel ist es bei der also möglichst alle Funktionalitäten des Dongles in einem einzigen
Halbleiter-Chip zu implementieren.
6
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
Abb.:
Obere Ansicht eines ASIC-Chips [ASIC09]
Neben den benötigten Logikfunktionen werden hier auch Kundenspezifische Informationen
gespeichert, die den Besitzer des Dongles identifizieren können. Dadurch wird besondere
Sicherheit gewährleistet, da es ohne die Identifikation nicht möglich ist, Dongles zu brennen.
Wurde also bei der Bestellung ein kundenspezifischer Prototyp eines ASIC-Chips entworfen,
ist er von nun an auf allen Bestellten Dongles zu finden, jedenfalls solange es sich um den
gleichen Kunden handelt.
7
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
3
DONGLE-HERSTELLUNG
3.1 Darstellung einer Dongle-Herstellung bei Aladdin
Davon ausgehend, dass man eine Software hat und diese sichern möchte, man sich für die
Dongle-Variante entschieden hat und auch für die Firma Aladdin, möchte ich kurz die
Vorgehensweise darstellen.
Wir möchten nun einen Hardlock der Firma Aladdin verwenden, setzen uns zuerst mit der
Firma in Verbindung und bestellen einen Kundencode. Dieser Code wird einmalig erzeugt
um alle Kunden zu individualisieren.
Es wird nun der Application Specific Integrated Circuit Chip – kurz ASIC-Chip - erstellt, auf
den eine für uns spezifische Dongle Signatur gebrannt wird, welche wiederum ein
bestimmtes Verschlüsselungsverhalten ergibt. Dieser Chip wird einzigartig für jeden Kunden
von Aladdin angefertigt und ist von diesem Zeitpunkt an in jedem bestellten Dongle
enthalten.
Möchte man nun seine Dongles für die Kunden der eigenen Software implementieren,
bestellt man sich die gewünschte Anzahl Raw-Dongles mit den eingebauten ASIC-Chips.
Jetzt gibt es mehrere Möglichkeiten fortzufahren. Die Hardlock-Bistro-Software wird
zusammen mit dem Hardlock Development Kit geliefert und ist in 4 Hauptteile gegliedert:
Cappuccino, Latteccino, Espresso und Gazzetta. Diese Software-Module ermöglichen eine
individuelle Entwicklung des eigenen Software-Schutzes. Man kann entweder mittels
Cappuccino einzelne Dongle-API-Befehle einbauen oder mit Latteccino gesamte
vorgefertigte Blöcke von Code einfügen. Ein Beispiel für einen API-Befehl ist der Login. Der
Benutzer muss sich über die Software mit dem Dongle verbinden. Die Dongle API stellt also
einen Befehl zur Verfügung, den man in die zu schützende Software einbaut. Man übergibt
eine verschiedene Werte, die der Dongle verlangt und erhält die Antwort, ob der Dongle
angeschlossen ist oder eben nicht. Je nach Rückgabewert kann nach Belieben gehandelt
werden.Diese beiden Arten lassen sich natürlich auch untereinander kombinieren. Wie die
Kommunikation mit dem Dongle aussehen kann werde ich später behandeln.
Die Schnittstelle zwischen Dongle und der zu schützenden Software stellt die oben genannte
Dongle-API dar, eine Standard-Library der Dongle-Hersteller um gleiche Zugriffe für jegliche
Dongle-Modelle zu gewährleisten.
Das Hardlock-Bistro bietet auch noch weitere Software, beispielsweise zur Verwaltung von
Kunden- und Lizenzdaten um eine Übersicht über Updates und Support zu haben. Mit
Gazzetta lässt sich der Lebenslauf aller Dongles lückenlos zurückverfolgen.
8
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
Um die Dongles nun zu brennen, benötigt man nun noch 2 Dinge. Einerseits den Dongle, der
je nach Modell zwischen 10 und 50 Euro kostet und eine sogenannte Crypto-ProgrammerCard auch CP-Card oder Master-Dongle genannt, die bei der ersten Bestellung speziell für
uns angefertigt wurde. Sie enthält, genau wie jeder andere Dongle auch unseren
spezifischen ASIC-Chip. Was den Master-Dongle so besonders macht, ist, dass sie bei
jedem Brennvorgang an den PC angeschlossen sein muss. Sie dient zur Identifizierung der
Person, die den Dongle brennen möchte, also uns. Dadurch kann niemand, der nicht
Besitzer dieses Dongles ist einen eigenen Dongle für die Software erstellen.
Hat nun jemand unsere Software gekauft, so erhält er die Software und einen von uns
gebrannten Dongle.
3.2 Vor- und Nachteile beim Einsatz von Dongles
Hier die Vor- und Nachteile der Verwendung von Dongles. Inbegriffen sind Dongles für die
Schnittstellen USB, Seriell, Parallel.
Vorteile

Durch Dongles kann ein Umsatzanstieg bewerkstelligt werden, da nicht viele
Menschen ein Dongle-System umgehen können. (Vorteil aus der Sicht der SoftwareHersteller)

Es müssen keine Passwörter verwaltet werden

Software kann auch auf mehreren Rechnern benutzt werden, da lediglich der Dongle
weitergereicht werden muss

Die Software ist ohne Dongle-Modul nicht benutzbar (Schutz vor Fremdanwendern)
Nachteile
9

Dongle-Modul kann leicht verloren gehen, falls man es oft mit sich herumträgt

Eine Erhöhung der Kosten für die Software entsteht, da der Dongle auch bezahlt
werden muss

Pro Dongle-Modul wird eine Schnittstelle belegt. Beim Einsatz von mehreren Dongles
kann es sein, dass weitere Schnittstellen in den Rechner eingebaut werden müssen
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.

10
Verlangsamung von Prozessen, durch Datenaustausch mit dem Dongle (heutzutage
liegt sie im Bereich von ms)
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
4
SCHUTZ
4.1 Wie sehr kann ich meine Software schützen
„Jede Kette ist nur so stark wie ihr schwächstes Glied“
Ich erwähne dieses Zitat, um zu verdeutlichen, dass die Sicherheit der zu schützenden
Software quasi äquivalent zur größten Sicherheitslücke im Kopierschutz ist. Es ist unmöglich
eine Software komplett zu schützen. Es ist jedoch möglich den Aufwand, das
Sicherheitssystem zu umgehen, dermaßen in die Höhe zu treiben, dass es sich nicht mehr
lohnt, oder dem Angreifer bei der Systementwicklung stets einen Schritt voraus zu sein,
indem man seine nächsten Vorhaben vorausgesehen, und es bereits im eigenen
Sicherheitssystem berücksichtigt hat.
Wie könnte so ein Angreifer nun vorgehen?
Hier wären 3 Möglichkeiten den Schutz zu knacken.
Die erst Möglichkeit wäre es, den Dongle so zu verändern, dass er jederzeit angibt,
angeschlossen zu sein. Das reicht den meisten Schutzsystemen jedoch nicht, da heute
hauptsächlich Verschlüsselungs-Mechanismen von Codeblöcken und verschlüsselte
Abfragen mit eingehen. Die bloße Anwesenheit eines Dongles zu simulieren ist mit ein wenig
Arbeit und einigen Suchbegriffen im Internet zu einfach zu bewerkstelligen.
Eine weitere Möglichkeit wäre es, sich zwischen Dongle und Computer zu schalten, die
gesendeten Daten abzufangen und sich einen Algorithmus dahinter zu erschließen. Dadurch
kann man nun eigene Signale einfügen, welche dem System die erwarteten Ergebnisse
liefern. Dieses Vorgehen ist jedoch sehr umständlich, da bei komplexen
Verschlüsselungsalgorithmen viele Zufallsvariablen eingehen und sich die Rechnung nur
sehr schwer zurückverfolgen lässt.
Die letzte ist die meist verwendete Möglichkeit. Durch einen so genannten Disassambler,
einen Debugger und weiterer Software wird das erworbene Programm in seinen Quellcode
zerlegt und der Angreifer hat Zugriff auf alle Funktionen der Software, also auch auf die
Dongle-Abfragen. Es ist nun einfach eine Frage der Zeit bis der Angreifer die eingebauten
Sicherheitsabfragen findet und eliminiert. Um den Aufwand also für den Angreifer zu
erhöhen, ist es sinnvoll die Sicherheitsabfragen so zu verstecken oder geschickt einzubauen,
dass es dem Angreifer stark erschwert wird alle Abfragen zu finden und zu eliminieren.
11
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
4.2 Schutzmaßnahmen
4.2.1
Möglichkeiten des Dongle-Einsatzes
Hier sind nun einige Möglichkeiten aufgelistet, die man verwenden könnte, um die Arbeit
einer Dongle-Umgehung zu erschweren:
4.2.1.1 Modulabfrage
Beim Brennen des Dongles wird eine bestimmte Modulnummer festgelegt, die den Dongle
identifiziert. Bei einer Dongle-Abfrage loggt man sich über die Dongle-API mithilfe dieser
Nummer auf dem Dongle ein. Durch den erfolgreichen Login wird also geklärt ob der Dongle
angeschlossen ist. Diese Abfragen kann man nun an beliebigen Stellen im Programm
einbauen. Für diesen Vorgang ist es nicht nötig, auf dem Dongle zusätzlichen Speicher
bereitzustellen, da die Modulnummer in den Dongle eingebrannt wird.
4.2.1.2 Datensatz-Verschlüsselung
Da die alleinige Modulabfrage nicht sehr sicher ist, bevorzugen viele Leute eine Methode bei
der man Programmteile, Rechenergebnisse oder bestimmte Datensätze, durch einen auf
dem Dongle abgelegten Schlüssel ver- oder entschlüsseln lassen.
Abb.:
Schematische Darstellung eines möglichen Verschlüsselungsvorgangs zwischen
Dongle und Software
12
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
Die Daten werden mittels Schlüssel, der auf dem Dongle vorhanden ist, entschlüsselt und
können danach benutzt werden. Beispielsweise ist der verschlüsselte Datensatz im
entschlüsselten Zustand ein Bestandteil einer wichtigen Berechnung, ohne den das
Programm nicht weiter ausgeführt werden kann oder eben falsche Ergebnisse liefert. Es ist
also absolut notwendig, dass der Dongle vorhanden ist. Es gibt auch Variationen dieses
Models. Man könnte sich auch vorstellen, dass man einen bestimmten Datensatz auf den
Dongle verlagert. Es werden Eingangsdaten zum Dongle gesendet, auf dem Modul
berechnet und man erhält die Ergebnisse für die Software.
Außerdem ist es auch möglich, einen Dongle für einzelne Programmerweiterungen zu
verwenden. Gibt es beispielsweise 5 Tools für Zusatzberechnungen, die extra bezahlt
werden müssen, könnte man für jeden Zusatzprogrammteil Flags (Ja/ Nein) im Dongle
abspeichern um beim Programmstart zu wissen, welche Programmteile der Kunde erworben
hat und dementsprechend freigeschaltet werden müssen. Das aufwändige Verwalten
verschiedener Programmzusammenstellungen entfällt damit.
Um so etwas jedoch zu ermöglichen, benötigt man zusätzlichen Speicher, der bei den
meisten Dongles hinzugekauft werden kann. Heute wird fast außschließlich diese Variante
verwendet.
4.2.1.3 Abfragen-Variation
Modulabfragen
(Abfrage,
ob
Dongle-Modul
vorhanden
ist
oder
jegliche
Verschlüsselungsarten) sollten variieren. Falls der Angreifer eine Dongle-Abfrage entdeckt
hat und weiß wie es geht diese zu entfernen, wären die ähnlichen Abfragen in anderen
Stellen im Code sehr leicht zu entfernen. Ist die Abfrage jedoch anders formuliert als die
Vorige, so muss der Angreifer erneut eine Lösung für die Umgehung finden.
4.2.1.4 Verwirrung stiften
Durch Einbauen von unnötigen Dongle-Abfragen oder Verschlüsselungen kann dem
Angreifer die Arbeit zusätzlich erschwert werden. Es ist nicht besonders aufwändig sie
einzubauen, doch relativ umständlich sie wieder auszubauen. Als Argumente kann man
beliebige Werte wie Zufallsvariablen, Zwischenergebnisse von Berechnungen oder die
System-Zeit verwenden und „scheinbar“ wichtige Werte verrechnen. Oftmals ist es der Fall,
dass der Angreifer Software Kopieren möchte, die nicht seinem Fachgebiet obliegt. Hat er
beispielsweise eine Software vor sich, die die Buchhaltung einer Firma übernimmt und er
keine Ahnung von Wirtschaftslehre oder Fachbegriffen dieses Gebiets hat, wird es sehr
13
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
schwer für ihn, zu überprüfen, ob die gewonnenen Ergebnisse nun stimmen oder nicht, wenn
die Variablennamen nicht zu eindeutig formuliert wurden.
Durch solch einen Vorgang kann man den Zeitanspruch für die Entfernung von Abfragen
sehr stark in die Höhe treiben.
4.2.1.5 Verschachtelte Abfragen
Wie oben schon erwähnt, kann man über die Dongle-API abfragen, ob ein Dongle
angeschlossen ist. Wieso sollte man also nicht abfragen können ob die Abfrage nach dem
Dongle noch vorhanden ist? Durch eine Verschachtelung unterschiedlicher Abfragen, kann
man für zusätzliche Sicherheit sorgen. Der Angreifer wird sein Hauptaugenmerk auf die
Entfernung der Sicherheitsabfragen für den Dongle legen und eventuell nicht auf die
Unterabfragen achten.
4.2.1.6 Zeitfenster für bestimmte Rechnungen einbauen
Es ist möglich die Zeit für einen bestimmten Programmablauf zu erfassen. Da bekannt ist,
dass Debuggen um einiges langsamer ist, als wenn man das Programm normal ausführen
würde, könnte man Zeitfenster für bestimmte Programmabschnitte festlegen. Wird ein
Abschnitt nicht schnell genug abgearbeitet, kann man davon ausgehen, dass sich jemand
über einen Debugger zwischen den Code gehängt hat und man kann somit weitere Eingriffe
verhindern.
4.2.1.7 Code-Länge überprüfen
Zu guter Letzt gibt es noch die Möglichkeit eine Variable für die Codelänge des Programms
einzubauen und zu überprüfen oder zu verrechnen, ob eventuell Teile des Codes entfernt
wurden. Diesen Test könnte man auch auf sequentielle Programmteile anwenden um die
Manipulation am Quellcode zu erschweren.
4.2.2
Vorgehensweise bei Erkennung einer nicht-lizenzierten
Programmversion
Es werden nun ein paar Möglichkeiten aufgezeigt, wie sich ein Programm verhalten könnte,
wenn erkannt würde, dass kein eigener Dongle mit der erworbenen Software verbunden ist.
14
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
4.2.2.1 Scheinbare Vollversion
Falls erkannt wird, dass kein Dongle mehr angeschlossen ist kann man, anstatt das
Programm abzubrechen, das Programm weiterlaufen lassen, jedoch falsche Werte einfließen
lassen, um so einige Werte falsch auszugeben. Der Vorteil hierbei ist, dass der Angreifer
nicht direkt weiß, ob nun alle Sicherheitsabfragen korrekt ausgebaut wurden. Er wird mit
hoher Wahrscheinlichkeit davon ausgehen, dass wenn das Programm lauffähig ist, die
Ergebnisse schon stimmen werden.
4.2.2.2 Demo-Version simulieren
Sollte erkannt werden, dass nicht der richtige Dongle oder gar keiner angeschlossen sein, so
könnte man, anstatt das Programm nicht lauffähig zu machen, eine Demo-Version
simulieren. Der Benutzer kann das Programm also benutzen, nur stehen ihm die
Hauptfunktionen nicht zur Verfügung. Beispielsweise kann man bestimmte Fenster nicht
öffnen oder man kann Berechnungen bis zum Ende ausführen, nur erhält man keine
Ergebnisse. Hier stehen dem Entwickler viele Türen offen.
4.3 Lizenzmanager-Software Flexera
Software kann man nicht nur über Hardware schützen, sondern auch über Software. Die
Lizenzmanager-Software Flexera ist ein Beispiel dafür. Es ist eine Software zur Verwaltung
nach dem Floating-, und dem Node-Locked-Lizenzmodell. Diese Verfahren werden oft in
Firmennetzwerken verwendet.
Das Floating-Lizenz-Modell sagt aus, dass eine bestimmte Anzahl von Lizenzen für eine
Software gekauft wird und diese dann unter der folgenden Bedingung verwendet werden
darf. Und zwar darf die Software beliebig oft installiert werden, doch zur gleichen Zeit nur so
oft verwendet werden, wie Lizenzen vorhanden sind. Dieses Prinzip kennen wir schon von
Dongle. Beim Kauf einer Lizenz wird von der Verkäuferfirma A also eine Lizenzdatei speziell
für den Käufer Firma B angefertigt. Firma B installiert nun einen Lizenzserver entweder lokal
auf einem Rechner, oder bei Verwaltung mehrerer Lizenzen im Netzwerk, zur globalen
Verwaltung der Lizenzdateien. Dieser Server verwaltet nun alle erworbenen Lizenzen und
verteilt je nach Anfragen, die Erlaubnis, die entsprechende Software zu benutzen.
Bei Bedarf einer Lizenz verbindet sich ein Benutzer mit dem Server und fragt an, ob eine
Lizenz für ihn frei ist. Das System prüft nun, wie viele Lizenzen in Verwendung sind und
15
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
erlaubt keine weiteren Benutzer, falls alle Lizenzen vergeben sind. Möchte ein weiterer
Benutzer eine Lizenz benutzen, muss er also warten bis sich jemand ausgeloggt und die
Lizenz wieder freigegeben hat.
Flexera verwendet aber auch das Node-Locked-Lizenz-Verfahren, bei dem für spezielle
Knotenpunkte im Netzwerk, also für bestimmte Rechner Lizenzen freigegeben werden, die
jederzeit verwendet werden können. Das Schema ist im Grunde das Gleiche, wie beim
Floating-Lizenz-Model, nur ist es nicht so flexibel, da die Lizenzen an bestimmte
Netzwerkkarten oder Rechner-IPs gebunden sind. Das macht zum Beispiel Sinn bei
Rechnern, die an Prüfstände angeschlossen sind und die Software ständig in Gebrauch ist.
4.3.1
Vor- und Nachteile einer Lizenzmanager-Software
Vorteile

Sehr sicher

Durch zusätzliche Software sehr übersichtlich

Lizenzen können nicht durch Transport verloren gehen oder geklaut werden
Nachteile
16

Die Software ist sehr teuer. Für den Installer bezahlt man zwischen 500 und 8000€
und für jeden Lizenz-Platzhalter zusätzlich rund 300€. Bei einem Unternehmen, das
etwa 80-140 Lizenzen verwaltet lägen die Kosten etwa bei 24000 – 42000€, plus die
Lizenzgebühren der zu verwaltenden Software, also der eigentlichen Lizenzkosten.

Lizenz kann nicht verwendet werden, wenn kein Netzwerk vorhanden ist. Bsp.:
Vorführung der Software vor einem Kunden oder bei Netzwerkausfall.

Kosten für die Lizenzen werden an die Kunden weitergereicht, macht die SoftwareLizenz teurer
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
5
AUSBLICK
Wie bereits im Kapitel Motivation dargestellt, ergibt sich aus der Tatsache, dass für aktuelle
Betriebssysteme, der von uns verwendete Hardlock nicht mehr supportet wird, die
Notwendigkeit, die Lizensierung unserer Software neu zu organisieren. Der Grund für die
Produktänderung seitens unseres Supporters ist im Wesentlichen in der Entwicklung
aktueller Programmierkonzepte zu finden. Durch die Verwendung von Laufzeitkonzepten
wie virtuelle Maschine oder .Net Framework ist das Schutzkonzept mittels Hardlock zwar
weiterhin realisierbar, stellt jedoch an die Entwicklerseite für die Implementierung deutlich
höhere Anforderungen und passt daher nicht in das vermarktbare „Simply Safe“ Konzept. Da
wir mit unserer Lizensierung keinen breiten Markt, sondern allenfalls den Bereich UniAachen erreichen wollen, steht somit dem Verfolgen des grundsätzlichen HardlockKonzeptes nichts im Wege.
In den vorigen Abschnitten wurden die Wirkmechanismen verschiedener Schutzkonzepte
erläutert.
Aus diesen Fakten können ein prinzipielles Anforderungsprofil für wirkungsvolle Verfahren
abgeleitet und Möglichkeiten einer Realisierung diskutiert werden.
Erste Überlegungen führten zu einem gewöhnlichen USB-Stick und diesem eindeutige
Identifikationsmerkmale zuzuordnen oder bereits vorhandene für eine Identifizierung zu
verwenden.
Eine Abfrage der Fabrikations- und/oder Herstellernummer wäre einfach zu realisieren, erfüllt
jedoch nur rudimentäre Sicherheitsanforderungen, da diese Hardwaremerkmale mit
einfachen Hilfsmitteln ausgelesen und geändert werden können.
Eine spezielle Art der Formatierung des Speichermediums wäre möglich und mittels
einfacher Verfahren eruierbar. Wir sehen jedoch keine Möglichkeit den Speicherbereich
eines Standard-Wechseldatenträgers gegen unerlaubtes sektorenweises Lesen und somit
nachhaltig gegen kopieren zu schützen.
Ein gemeinsamer Schwachpunkt aller aufgelisteten USB-Stick-Verfahren ist im
resultierenden Abfragemechanismus zur eindeutigen Identifikation zu finden. Letztendlich
endet jede Prüfung mit dem Szenario einer Frage „Bist du der oder die Richtige“. Wird das
„Ja-Wort“ gegeben, so kann gemeinsam fortgefahren werden. Diese Abfrage ist, wie bereits
im Kapitel Schutzmaßnahmen beschrieben, durch verschiedene Methoden emulierbar.
17
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
Eine weitere Möglichkeit wäre es einen Schwingkreis an den Hardlock anzubinden. Um kurz
aufzugreifen, wie ein Schwingkreis funktioniert, gibt es einen kleinen Überblick.
Ein Schwingkreis ist im Normalfall eine, aus einer Spule L und einem Kondensator C
bestehende, resonanzfähige elektrische Schaltung. Bei dem Vorgang wird Energie zwischen
dem magnetischen Feld der Spule und dem elektrischen Feld des Kondensators in einer
bestimmten Frequenz ausgetauscht. Dadurch herrschen abwechselnd hohe Stromstärken
und hohe Spannungen. Diese Frequenz kann man durch Änderung der Spannung variieren
und dadurch einen bestimmten Frequenz-Wert als Prüfsumme im Hardlock verlangen. Da in
der Praxis nicht immer alles so funktioniert, wie in der Theorie vorgesehen, muss
sichergestellt werden, dass variierende Betriebsparameter (z.B. Temperatur oder
Energieabnahme )keine unterschiedlichen Ergebnisse liefern, oder der Einfluss muss
bekannt sein und bei der Abfrage berücksichtigt werden. Da die Spannung nicht bekannt ist,
ist der Schwingkreis der Schlüssel selbst. Man würde schlussendlich nicht nur einen Wert
sondern eine nicht lineare Funktion benötigen wenn das Ergebnis emuliert werden soll.
Variierende Schwingkreise in zu verkaufenden USB-Stick zu verbauen und die
Berücksichtigung von Umwelteinflüssen, ist leider mit zu viel Aufwand verbunden, und somit
für uns nicht von Interesse.
Unser kommerzielles Vorbild realisiert die Idee des Unikats durch Verwendung eines ASICs
und umgeht das „Bist du der oder die Richtige“ Dilemma durch Anwendung kryptologischer
Verfahren. Da die Herstellung dieser - in der Stückzahl, die wir benötigen – zu teuer ist, fällt
diese Möglichkeit auch aus.
Eine Alternative könnte die Verwendung eines intelligenten Bausteins (Mikro-Prozessor) mit
zusätzlichen Speicherbereichen sein. So kann weitgehend an eine zu schützende Software
adaptiert werden. Letzteres beinhaltet die Vorstellung, dass ein Programm nur dann richtige
Ergebnisse liefert, wenn eine Lizensierung vorliegt, was letztendlich zu der Möglichkeit führt,
Daten oder Programmfragmente zu verschlüsseln. (Kap. 4.2.1)
Das Kopieren des internen Speichers wird dadurch verhindert, dass der Zugriff
ausschließlich über den integrierten Mikro-Prozessor stattfindet. Die Kommunikation
zwischen Rechner und USB wird mittels eines eigenen Treibers realisiert. Hierdurch wir ein
unerlaubter Zugriff auf lesen/schreiben vereitelt, da nur der, der über die entsprechende API
verfügt, diese auch verwenden kann. Exemplarische Grundfunktionen wären:
18

Anforderung des Inhalts einer bestimmten speicherstelle

Lesen von Blöcken

Schreiben an eine bestimmte Speicherstelle
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.

Schreiben von Blöcken

Schreiben – Verschlüsseln – Lesen von Daten
(Die Verschlüsselung ist abhängig vom individualisierbaren Speicherinhalt)
Für die Entwicklung des beschriebenen Systems verwende ich das Experimenter Board
MSP430 der Firma Texas Instruments mit folgenden Eigenschaften:
19

16 kB RAM

256 kB Flash-Speicher

18 MHz Prozessor

USB zur Kommunikation mit dem Rechner

Display, zur Kommunikation mit dem User

SD-Karten-Slot
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
6
LITERATUR
[BSA00]
Global Piracy Study
URL: http://portal.bsa.org/globalpiracy2011/
[Stand 2011]
[DONGLE]
Dongle
URL: http://de.wikipedia.org/wiki/Dongle
[SEH00]
Tech?Update!: Was ist eigentlich ein Dongle?
URL: http://www.seh.de/presse/techupdate-detailview/article/techupdatewhat-is-a-dongle.html
[WUT00]
Geschützter Betrieb von USB-Dongles im Netzwerk
URL: http://www.wut.de/e-53641-11-apde-000.php
[MSP]
MSP430 Experimenter Board
URL: http://www.ti.com/tool/msp-exp430f5438
[RAUB00]
Was ist eine Raubkopie
URL: http://www.raubkopierer.info/
20
Error! Use the Home tab to apply Überschrift 1 to the text that you want to appear here.
[ASIC00]
ASIC, was ist das denn?
URL: http://www.andreas-schwope.de/ASIC_s/index.html
[ASIC09]
Foto eines Mikrochips
URL: http://www.ims.fraunhofer.de/en/news/detail/article/farbsensoren-fuerbessere-sicht.html
[WEST00]
Foto eines USB-Servers für Netzwerk-Dongles
URL: http://www.west-gmbh.de/2012/07/dongles-im-netzwerk-verteiltnutzen_4.html
[ALADDIN00] Hardlock-Übersicht
URL: http://www3.de.safenetnc.com/hasp/hardlock/hardlock_uebersicht.aspx
21
Herunterladen