Forum www.Kopierschutzsysteme.de - Hier findet Ihr Informationen rund um das Thema Kopierschutz (http://www.Kopierschutzsysteme.de/index.php)
- Kopierschutzsysteme (http://www.Kopierschutzsysteme.de/board.php?boardid=5)
-- Erfahrungs-/Testberichte (http://www.Kopierschutzsysteme.de/board.php?boardid=6)
--- Dongle Evaluierung (http://www.Kopierschutzsysteme.de/threadid.php?threadid=132)
Dongle Evaluierung
Hallo Kopierschutz-Community,
da ich bei meinen Recherchen auf die überaus fundiert geführten Diskussionen hier aufmerksam geworden bin, habe ich mich gleich mal angemeldet. Hallo!
Ich bin gerade dabei, für unsere Firma einen optimalen Softwareschutz zu evaluieren. Es ist ein mittelständisches Unternehmen, welches relative große, eigene Hardwaresysteme ausliefert (mehrere 10 bzw. auch 100 Tsd Euro pro Stück). Diese Systeme werden mit unserer Software ausgeliefert (Steuerungsframework + verschiedene Programmmodule für einzelne Funktionalitäten). Wir sprechen also keinen Massenmarkt an und verkaufen auch nicht täglich eines unserer Produkte.
Mittlerweile bin ich zu dem Schluss gekommen, dass ein Hardware-Dongle das einzig sinnvolle für uns ist, da wir die HW mit ausliefern und der Donglepreis für die teure Software nicht ins Gewicht fällt.
Nun bin ich dabei, einige Dongles gegenüberzustellen. Es fällt mir aber nicht leicht, da der Informationsgehalt auf den einzelnen Seiten sehr unterschiedlich ist. Manche erscheinen mit ihren Informationen eher als Blender aufzutreten (größer, besser, sicherer!!), andere geben kaum Informationen preis.
Die Dongles, mit denen ich mich momentan befasst habe, sind: Wibu CodeMeterStick, Aladdin HASP-SL, Rockey 4ND, Matrix MLU-60, Enky SL
Wichtig für uns ist die Realisierung folgender Lizenzmodelle:
Zeitliche Begrenzung der Lizenz
Begrenzung der Programmstarts
Begrenzung der Ausführung einer bestimmten Funktion (bsp. 100 Drucke)
Möglichkeit, Versionupgrades gegen Entgelt freizuschalten
Möglichkeit, das gesamte Programm auszuliefern aber immer nur die gekauften Features freizuschalten - und das flexibel!
Außerdem wollen wir unseren .NET-Code vor Reverse-Engineering schützen und eine gute Lizenzverwaltung (eventuell in unser ERP-System eingebunden) haben.
Hat jemand eine Idee, welche Produkt ich eventuell näher anschauen sollte, welches wegfällt und welches ich vielleicht noch hinzuziehen sollte? Bisher fand ich Wibu sehr ansprechend, es lässt sich aber auch etwas kosten... Gibt es vielleicht gute Alternativen?
Ich habe die Produkteigenschaften auch tabellarisch gegenübergestellt, bin mir teilweise aber nicht sicher, ob ich die Features richtig interpretiert habe. Bei Bedarf kann ich die Liste jemandem zukommen lassen.
Es wäre nett, wenn jemand vielleicht den einen oder anderen Gedanken mit mir teilen würde! Viele Grüße, cherry
Hallo Cherry,
erstmal willkommen im Forum.
Die Systeme mit denen Du Dich schon befasst hast sind wirklich gut, wobei ich sagen muss, Enky SL kenne ich nicht.
Habe mir mal kurz den Enky SL Dongle angeschaut und von den Hardwarefeatures her sieht das System nicht schlecht aus, was ich jedoch vermisse ist ein automatischer Schutzwrapper zum Schützen von Exe/Dll usw. Dateien. Denke zum Einbinden bieten die nur eine Dll-Api, da Ihr in .Net programmiert würde ich nach einem System schauen, das auch den .Net-Code schützen kann. Wibu, Aladdin, Rockey und Matrix bieten so eine Möglichkeit.
Bzgl. Eurer Lizenzmodelanforderungen würde ich sagen, die lassen sich mit den von Dir in Betracht gezogenen Systemen ohne Probleme umsetzen.
Zitat:
Zeitliche Begrenzung der Lizenz
Begrenzung der Programmstarts
Wibu & Co. bieten die Möglichkeit beim Start der Anwendung das Datum zu prüfen oder die Programmstarts zu beschränken
Zitat:
Begrenzung der Ausführung einer bestimmten Funktion (bsp. 100 Drucke)
Dies könnte man einfach mittels Überprüfung eines Wertes im Donglespeicher realisieren, nach Ausführung der Funktion wird im Donglespeicher der entsprechende Wert um eins dekrementiert und bei 0 steht die Funktion nicht mehr zur Verfügung.
Zitat:
Möglichkeit, Versionupgrades gegen Entgelt freizuschalten
Möglichkeit, das gesamte Programm auszuliefern aber immer nur die gekauften Features freizuschalten - und das flexibel!
Dies lässt sich auch einfach mittels Überprüfung von Donglewerten realisieren. Wenn z.B. ein Wert im Dongle auf 1 gesetzt ist, ist Feature verfügbar. Wibu & Co. bietet durch Remoteupdate die Möglichkeit den Dongle direkt beim Kunden zu programmieren, somit können die Features flexible freigeschalten werden.
Wenn magst kann ich gerne mal über Deine Liste schauen? Als weiteres Donglesystem fällt mir spontan noch Marx (www.marx.com) ein.
Gruß
Michael
der beste
Hallo Cherry,
ich denke Wibu Codemeter ist die beste Wahl, gibt es in vielen Varianten.
Codemeter + Ax Protector da gibt es meines wissens keinen Emulator oder Wibu key + Axprotector.
Megalock Dongle ist nach meiner meinung der sicherste Dongle. Nachteil ist jedoch, Megalock erfordert einen sehr hohen Implementierungsaufwand
www.megalock.de
Hasp HL ist eine gute Wahl, Nachteil Netzwerk Lizenz Dongle sehr teuer und nur in 10 20 50 100 200 oder unbegrenzt verfügbar.
Matrixlock auch eine gute Wahl, aber nur ein Xtea Schlüssel programmierbar.
Rockey 4nd programmierbare ALgos, keine richtige Hardware Verschlüsselung.
Wichtig wäre noch wie lange gibt es schon den Hardware Key:
Wibukey 20 Jahre
Megalock 10-12 Jahre
Matrixlock 10 Jahre
Rockey unbekannt
Hasl hl 6-7 Jahre (schneller Modell + Firmenware Wechsel)
Enky SL ich denke ein Rocky 2 Konzept-Nachbau,
ist neu am Markt
TIP:
Hohe Sicherheit viel Programmierarbeit --> Megalock oder Senselock.
Wenig Programmieraufwand hohe Schutzwirkung -->Wibukey oder Codemeter mit AX-Protector.
Hasp-HL gute einfache API
Marx Crypto box USB USB2 (remote update gegen Aufpreis)
----
Preis Leistungsverhältnis mit Sicherheit und Einbindungsaufwand:
1.Wibukey
2.Codemeter (Hardware + lic Kosten)
3.matrixlock
4.marx
5.Megalock
Sicherheit
1.Matrixlock
2.wibukey-codemeter
3.der Rest
Support:
1.Wibusystems
2.der Rest
Vielen Dank für die bisherigen Antworten.
@uhabber: Du hast geschrieben, dass Enky wohl eine konzeptuelle Erweiterung/Ableger von den Rockey-Dongles ist. Das sehe ich auch so, der Distributor ist der selbe. Leider findet man kaum etwas brauchbares über die Enky-Dongles.
Du hast aber geschrieben, dass die Rockeys nur eigene Algorithmen ermöglichen und nicht "wirklich" verschlüsseln. Auf der Rocky-HP steht allerdings etwas von einer "easy envelope encryption protection". Wie hast Du das gemeint bzw. wo ist denn der Sinn darin, eigene Algorithmen abzufragen??
Üblicherweise speichern Dongles doch einen symmetrischen Schlüssel, mit dem der Quellcode dann - am besten on-demand - entschlüsselt wird. So hab ich das verstanden. Eine Abfrage eigener Algorithmen könnte dann praktisch nur zur Überprüfung der Lizenzkonformität verwendet werden, indem ein Wert zur Berechnung reingegeben wird und das Ergebnis validiert wird. Allerdings muss ja dann IM QUELLTEXT ebenfalls eine plausible Berechnung des selben Algorithmus stattfinden, wodurch das ganze ja unsinnig wird!! Oder wird der Soll-Rückgabewert im voraus berechnet und dann verglichen?? Trotzdem wäre auch da bei einem Reverse-Engineering der ganze Schutz Makulatur!
Denke ich da richtig oder hab ich was falsch verstanden?
Viele Grüße, cherry
Ich kenne jetzt den Rocky Dongle nicht im Detail aber mit „Easy envelope encryption protection“ ist bestimmt der automatische Schutzwrapper gemeint. Denke mal dieser verschlüsselt und versieht die Exe/Dll mit Anti-Hacking Mechanismen.
So wie ich uhabber verstehe geschieht das Verschlüsseln nur softwarebasiert ohne die Möglichkeit die Verschlüsselung über den Dongle laufen zu lassen. Dies bietet zwar auch schon eine Sicherheit, sicherer wird es aber wenn der Dongle noch eine Hardwareverschlüsselung bietet, denn dann lässt sich z.B. bei einem 128bit Key ohne Dongle nichts gross machen. Wenn der Dongle keine Hardwareverschlüsselung bietet könnte man alternativ noch den Key im Dongle-Speicher ablegen und diesen zur Laufzeit auslesen, sicherer sind aber die Systeme mit Hardwareverschlüsselung, der Key sollte selbstverständlich nicht auslesbar sein.
Eigene Alogs im Dongle ausführen lassen zu können steigert die Sicherheit, Problem ist nur, dass je komplexer die Alogos werden die Performance in die Knie geht.
Richtig, wenn sowohl in der Software wie auch im Dongle die selbe Verschlüsselung ausgeführt wird, vereinfacht dies für einen Hacker die Sache, da er bei dem Vorgehen an den Key gelangt. Schwieriger wird es schon beim Soll-Rückgabe Vergleich/Weiterverarbeitung, hier weiss der Hacker den Key nicht und muss hoffen alle Stellen gefunden zu haben. Wenn dieses Vorgehen gestreut und verschleichert im Code vorkommt wird’s für einen Hacker schon kniffliger.
Gruß
Michael
Danke für die schnelle Antwort.
Das mit der Soll-Rückgabe ist mir noch ein wenig schleierhaft, ehrlich gesagt.
Ich stelle mir eine Codestelle etwa so vor:
if(dongle.GetReturnValue(iCryptIndex) == "8cex7")
{
//... gültige Lizenz
}
else //...ungültig
Was ich damit sagen will ist, man muss ja im Quelltext diesen Vergleich ziehen - und egal wie komplex das alle sein mag, was sich im Dongle abspielt, die Soll-Rückgabe steht ja im Quelltext und kann einfach ausgelesen werden. Das ist das, was ich nicht verstehe.
Wie gehe ich im Quelltext vor, dass mir überhaupt irgendein Dongle etwas bringt?
Der direkte If-Vergleich nach der Dongle-Abfrage macht es natürlich sehr einfach für einen Hacker. Besser ist es die Dongle-Abfrage und den Vergleich zeitlich zu verzögern oder an gewisse Bedingungen zu knüpfen damit Dongle-Abfrage und Vergleich zuschlägt.
Um einem Hacker Erfolgserlebnisse zu geben gehören natürlich auch einfache Dongle-Abfragen/Vergleiche dazu :-)
Eklig wird's auch für einen Hacker wenn man nicht nur reine Integerwerte vergleicht, sondern die Zahlenwerte in der Fliesskomma-Arithmetik durcheinander würfelt. Fliesskommazahlen auf Assemblerebene zu debuggen macht wirklich keinen Spass und erfordert schon etwas Übung.
Neben der If-Abfrage könnte man den Sollwert direkt z.B. auch in eine Berechnung oder bei der Anzeigendarstellung miteinfliessen lassen.
Wichtig ist auch, dass die Dongleabfragen verstreut im Code eingebunden werden und der Hacker regelrecht mit Abfragen bombardiert wird. Bei einer Dll-Einbindung ist auch darauf zu achten, dass die Schnittstelle Applikation(-)Dll verschlüsselt ist, so ist es für einen Hacker schwieriger sich dazwischen zu klemmen, um so an Dongleinformationen zu gelangen.
Ein Patentrezept für eine gute Schutzeinbindung gibt's leider nicht. Wie aufwendig die Dongleabfragen sein müssen hängt auch davon ab, ob potentielle Kunden über entsprechendes Hacker Know-How verfügen könnten.
Hmm ok. Es stellt sich aber trotzdem die Frage, was es mir bringt, wenn ich die Entschlüsselung auf dem Dongle selbst durchführe.
Chiffretext Dongle -> Klartext
Wo ist der Unterschied, ob ich jetzt von einem 08/15-Dongle direkt meine Daten anfordere oder ob dieser sie intern noch verschlüsselt?
Dem Angreifer kann es ja total egal sein, was der Dongle intern macht, da er sowieso "nur" auf das Ergebnis warten muss, welches in gewünschter Form aus dem Dongle rauskommt.
Ich stelle es mir für einen geübten Cracker halt einfach vor, die Kommunikation zwischen System und Dongle mitzulesen und dabei die für ihn relevanten Daten zu extrahieren. Weiterhin stelle ich mir eine Abfrage im Quelltext vor, die eben diese Donglevariable erwartet (von mir aus auch zur weiteren Verrechnung) - tatsache ist aber: Der Angreifer setzt den Wert vom Dongle da einfach ein und das Programm läuft wie gewünscht weiter.
Wie gesagt: Was macht es für einen Unterschied, ob der Dongle das intern noch durcheinanderwürfelt??
Powered by: Burning Board Lite 1.0.2 © 2001-2004 WoltLab GmbH