AnySTICK Die Dokumentation - AnySTICK - USB

Transcription

AnySTICK Die Dokumentation - AnySTICK - USB
AnySTICK
Der preiswerte Dongle-Ersatz
Die Dokumentation
Inhaltsverzeichnis
Allgemein....................................................................................... 2
Systemvoraussetzungen ................................................................ 3
Sicherheit ...................................................................................... 4
Szenarien....................................................................................... 5
Online .......................................................................................... 5
Offline .......................................................................................... 5
In dieser Reihenfolge werden Lizenzinformationen gesucht.................. 5
Konditionen ................................................................................... 7
Preise ........................................................................................... 7
Lieferbedingungen.......................................................................... 7
Zahlungsbedingungen..................................................................... 7
Widerrufsrecht............................................................................... 8
Developer Pack .............................................................................. 9
Lieferumfang ................................................................................. 9
Der Lizenz-Manager ..................................................................... 10
Das AnySTICK-Tool ...................................................................... 12
Integration in Ihre Anwendung ................................................... 13
Nutzung als .NET Assembly ........................................................... 13
Nutzung als COM (ActiveX)-Objekt ................................................. 14
Troubleshooting ........................................................................... 16
FAQ – Häufige Fragen .................................................................. 17
Über uns ...................................................................................... 19
Allgemein
AnySTICK ist eine Lösung für Softwarehersteller, die Ihre Produkte mit
einem günstigen komfortablen hardwarebasierten Lizenzschutz versehen
möchten.
Mit AnySTICK lässt sich jeder USB-Stick als Dongle (und weiterhin 100%
als Datenträger) verwenden.
Die Lizenzinformationen werden dabei nicht auf dem Stick gespeichert,
sondern in einer Online-Lizenzdatenbank, die von der AnySTICK-DLL bei
jedem Aufruf abgefragt wird.
Dabei werden über das Internet ausschließlich verschlüsselte
Informationen übertragen, alle Inhalte der Lizenzdatenbank liegen
anonymisiert und verschlüsselt vor, und die Übertragung erfolgt zusätzlich
über eine SSL-gesicherte Verbindung. Auch eine Offline-Lösung ist
implementiert.
Sie als SW-Entwickler bekommen mit dem Lizenzverwaltungsprogramm
ein einfach zu bedienendes Tool, in dem Sie Ihre Produktlizenzen USBSticks zuordnen können.
Jeder USB-Stick auf der Welt hat in der Regel eine eindeutige HardwareKennung und kann von AnySTICK als Dongle verwendet werden, ganz
ohne etwas darauf zu speichern.
Dazu installieren Sie als SW-Hersteller zusammen mit Ihrer zu
schützenden Anwendung einfach die AnySTICK-DLL und rufen zur
Lizenzabfrage eine darin enthaltene Funktion auf.
Die Zuordnung Ihrer Produktlizenzen zu den USB-Sticks erfolgt in einer
Online-Lizenzdatenbank und auf Wunsch zusätzlich in einer OfflineLizenzdatei.
Das Developer Pack enthält den Lizenzmanager, der Sie als SW-Hersteller
Ihre Lizenzen ganz einfach verwalten lässt.
Auf den Zielcomputern muss nur der USB-Stick erkannt werden, weitere
Treiber sind nicht erforderlich.
USB-Sticks, die in der Lizenzdatenbank als Dongle registriert sind, können
weiterhin uneingeschränkt als Datenträger genutzt werden.
Datenträgerbezeichnung, Partitionen und Inhalt des Sticks sind für die
Eigenschaft als Lizenzträger ohne Bedeutung. AnySTICK legt auch keine
Daten auf dem Stick ab, sondern nutzt in der Hardware fest eingebrannte
Parameter zur Identifizierung des Sticks.
Mehrere SW-Hersteller können so völlig unabhängig voneinander
denselben Stick als Dongle nutzen. Lizenzen können über den
Lizenzmanager kostenfrei von Stick zu Stick übertragen werden.
Beim Kunden bereits vorhandene Sticks können genutzt werden, was die
Kosten noch weiter reduziert.
Systemvoraussetzungen
Alle Komponenten des AnySTICK-Systems setzen das Betriebssystem
Microsoft Windows sowie das .NET Framework 2.0 voraus.
Für Windows 2000 wurde das AnySTICK-System nicht mehr getestet.
Zu nutzende USB-Sticks müssen auf den Zielsystemen fehlerfrei als
Datenträger erkannt werden.
Der Lizenzmanager setzt zum Betrieb eine bestehende Online-Verbindung
voraus.
Die AnySTICK-DLL kann von .NET-Programmiersprachen aus als .NETAssembly eingebunden werden, sowie von anderen Programmiersprachen
aus als COM (ActiveX)-Objekt genutzt werden.
Auch bei Nutzung als ActiveX-Objekt muss auf den Zielrechnern das .NET
Framework 2.0 vorhanden sein.
Sicherheit
Online-Lizenzabfrage und -speicherung erfolgt über eine SSL-gesicherte
Verbindung, zusätzlich werden grundsätzlich nur chiffrierte Daten
übertragen.
Alle Inhalte der Lizenzdatenbank liegen außerdem nur anonymisiert und
verschlüsselt vor.
Für jeden SW-Hersteller, der über seine Developer ID identifiziert wird,
wird automatisch ein etwas anderer Verschlüsselungsalgorithmus benutzt.
Nur mit dem im Developer Pack enthaltenen Master-Stick und einem von
uns vergebenen Passwort lässt sich das Lizenzverwaltungsprogramm
nutzen.
Über einen MD5-HASH (Fingerabdruck) kann die Echtheit der AnySTICKDLL von Ihrer Anwendung aus verifiziert werden.
Auf eine genauere Beschreibung der verwendeten
Verschlüsselungsmethoden wird hier aus Sicherheitsgründen verzichtet.
Bitte haben Sie Verständnis dafür, dass wir hierzu auch keine Anfragen
beantworten.
Nur soviel sei gesagt: Die Verschlüsselung entspricht dem aktuellen Stand
der Technik. Auf das Schließen von Sicherheitslücken wurde während der
Konzeption und Entwicklung des AnySTICK-Systems besonderer Wert
gelegt.
Was Sie selber für die Sicherheit tun können:
 Bewahren Sie Ihren Master-Stick und das Developer Passwort sicher
und getrennt auf.
 Informieren Sie uns sofort, wenn Ihnen eins davon oder beides
abhanden gekommen ist.
 Ziehen Sie Ihren Master-Stick ab, nachdem Sie den Lizenzmanager
beendet haben.
 Implementieren Sie die AnySTICK-DLL wie in den mitgelieferten
Quellcodebeispielen, insbesondere verifizieren Sie die Echtheit der
DLL per MD5-Hash, bevor Sie Funktionen daraus aufrufen.
 Führen Sie mehrere Aufrufe mit unterschiedlichem Salt durch und
prüfen Sie, ob die Rückgabewerte der DLL mit den erwarteten
Rückgabewerten übereinstimmen.
 Führen Sie DLL-Aufrufe nicht nur beim Start Ihrer Anwendung
durch, sondern auch zwischendurch, um sicherzugehen, dass der
Stick noch angeschlossen ist.
 Teilen Sie möglichst keinem Außenstehenden Ihre Developer ID
oder Ihre Produktstrings mit.
 Möchte ein Kunde einen vorhandenen USB-Stick als Dongle nutzen,
akzeptieren Sie keine USB-Stick-Kennungen, die am Ende nicht
nach einer individuellen Seriennummer aussehen (z.B. 000000). Es
könnte sich dabei um Hardware handeln, die entgegen den USBSpezifikationen keine individuelle Seriennummer eingebrannt hat.
Alle Besitzer eines Sticks dieses Modells könnten dann Ihre
Anwendung benutzen.
Szenarien
Online
AnySTICK funktioniert am einfachsten und sichersten, wenn die
Zielcomputer regelmäßigen Onlinezugriff auf das Internet haben.
AnySTICK ruft in diesem Fall regelmäßig neue Lizenzinformationen aus der
Lizenzdatenbank ab und puffert diese verschlüsselt auf den
Zielcomputern, um Offline-Zeiten zu überbrücken.
Sie als SW-Entwickler halten mit dem Lizenzverwaltungsprogramm nur die
Online-Lizenzdatenbank auf dem aktuellen Stand, der Rest passiert
automatisch. Sie können einzelnen Kunden so auch Lizenzen wieder
aberkennen (bei Zahlungsausfällen, Trial-Versionen, Mietmodellen).
Offline
AnySTICK funktioniert auch in Offline-Umgebungen, also bei Rechnern, die
nie Internetzugang erhalten, noch nicht einmal beim Erststart der
geschützten Anwendung.
In diesem Fall können Sie als SW-Entwickler Ihrer Distribution USB-Sticks
mit bekannter Kennung und eine dazu passende verschlüsselte Lizenzdatei
beilegen. Zur Aktualisierung Ihrer Lizenzinformationen aktualisieren Sie
selber die Lizenzdatei auf den Zielcomputern (z.B. im Zuge eines
Updates).
Über Ihr Lizenzverwaltungsprogramm können Sie jederzeit Ihre
Lizenzdatenbank als verschlüsselte Lizenzdatei speichern.
Sobald die DLL trotzdem einmal eine Online-Verbindung zur
Lizenzdatenbank herstellen kann, werden die aktuellen
Lizenzinformationen heruntergeladen, in der Registry gepuffert und
zukünftig genutzt, auch wenn die Online-Verbindung nicht mehr besteht.
Nachteil: Sollte Ihr Kunde allerdings nie online gehen, können sie ihm die
einmal per Lizenzdatei erteilte Nutzungslizenz nie wieder entziehen.
Bedenken Sie dies, bevor Sie sich dazu entschließen, generell die
Lizenzdatei mit zu distributieren.
In dieser Reihenfolge werden Lizenzinformationen gesucht
Die AnySTICK-DLL versucht beim Aufruf der Funktion CheckLicense()
zunächt einmal, eine sichere Online-Verbindung zum Lizenzserver
aufzubauen. Gelingt dies, werden die relevanten Informationen von dort
verschlüsselt heruntergeladen (und gleich in der Registry gepuffert).
Gelingt die Online-Verbindung nicht, wird nach gepufferten Informationen
in der Registry gesucht. Sind dort welche vorhanden, werden diese
benutzt.
Sind auch keine Lizenzinformationen in der Registry vorhanden, wird das
Vorhandensein einer Lizenzdatei geprüft und die Informationen daraus
gelesen.
Ist auch keine Lizenzdatei vorhanden, wird von der DLL eine nicht
vorhandene Lizenz (Leerstring) zurückgegeben.
Wurden auf einem der 3 oben beschriebenen Wege Lizenzinformationen
gefunden, werden diese nun entschlüsselt und alle angeschlossenen USBSticks daraufhin überprüft, ob einem von ihnen die angefragte Lizenz
zugeordnet werden konnte.
Wurde keine Lizenzzuordnung gefunden, wird von der DLL ein Leerstring
zurückgegeben.
Wurde eine Lizenzzuordnung gefunden, wird die in der DLL enthaltene
Verschlüsselungsengine angeworfen, und in Abhängigkeit von
übergebener Developer-ID, Produktstring und Salt ein verschlüsselter
Lizenzstring zurückgegeben.
Konditionen
Sie wissen aus eigener Erfahrung, was Dongle der etablierten Anbieter im
Einkauf kosten? Ab jetzt genügen USB-Sticks der untersten Preisklasse,
egal welche Kapazität.
Selbst beim Kunden bereits vorhandene USB-Sticks beliebigen Fabrikates
können als Dongle genutzt werden und bleiben als vollwertiger
Datenträger erhalten, denn AnySTICK speichert nichts darauf.
Für wenige Euro kann man sich übrigens schon bei vielen Firmen
individuell bedruckte USB-Sticks fertigen lassen und so seine eigenen
Dongles produzieren.
AnySTICK erhebt einen fixen einmaligen Betrag pro Neueintrag in die
Lizenzdatenbank. Einmal vorhandene Einträge können später komplett
umgenutzt werden (für andere Produkte oder andere USB-Sticks)
Preise
(zzgl. 19% USt.)
Developer Pack (inkl. Master-Stick, Developer-Passwort und den ersten 10
Lizenzen): € 99,00
Jede weitere Lizenz einmalig: € 5,00
Ersatz-Master-Stick inkl. Sperrung des alten Sticks: € 49,00
Developer-Passwort neu ausstellen & per Post zusenden: € 25,00
Lieferbedingungen
Developer Pack & Ersatz-Master-Stick werden als Großbrief per
Einschreiben geschickt.
Das Developer-Passwort kommt separat als Brief per Einschreiben.
Die Lieferung innerhalb Deutschlands ist kostenfrei.
Für Lieferung ins Ausland berechnen wir € 10,00.
Lieferungen in EU-Länder außerhalb Deutschlands an Empfänger mit
gültiger USt.-ID werden ohne Berechnung der Umsatzsteuer ausgeführt,
ebenso Lieferungen ins Nicht-EU-Ausland (nur an Firmen).
Zahlungsbedingungen
Nach Bestellung des Developer Packs wird von uns eine VorkasseRechnung erstellt & per Email zugesandt.
Nach Zahlungseingang werden das Developer Pack & das DeveloperPasswort separat versendet.
Anschließend werden einmal monatlich die im Lizenzmanager neu
erstellten Lizenzen erfasst und in Rechnung gestellt. Der
Rechnungsversand erfolgt als PDF-Dokument per Email. Die Zahlungsfrist
beträgt 10 Tage ab Rechnungsdatum.
Widerrufsrecht
Es handelt sich um individuell angefertigte Produkte ausschließlich für
Gewerbetreibende und Freiberufler.
Daher ist ein Widerrufsrecht ausgeschlossen.
Der Kaufvertrag kommt erst mit Bezahlung der Vorkasse-Rechnung für
das Developer Pack zustande.
Developer Pack
Lieferumfang
Nach Eingang Ihrer Bestellung auf der AnySTICK-Webseite teilen wir
Ihnen bereits eine Developer ID zu, die Sie der Rechnung entnehmen
können.
Nach Eingang der Vorauskasse-Zahlung für das Developer Pack legen wir
Sie als Developer in der Lizenzdatenbank an, schalten Ihren Master-Stick
frei und erstellen Ihnen Ihr Developer-Passwort.
Auf den Master Stick (8GB USB-Stick) kopieren wir folgende Daten:






Den AnySTICK-Lizenzmanager zum Anlegen und Verwalten von
Lizenzen für Ihre Produkte & Zuordnung zu einzelnen USB-StickKennungen
Das AnySTICK-Tool zur Ermittlung von USB-Stick-Kennungen (zur
Weitergabe an Ihre Kunden, die eigene USB-Sticks als Dongle
verwenden möchten)
Die AnySTICK-DLL (zum Ausliefern zusammen mit Ihren zu
schützenden Anwendungen)
Ein Beispielprojekt zur Einbindung der DLL als Assembly unter .NET
(Beispiel in VB.NET, Visual Studio 10)
Ein Beispielprojekt zur Einbindung der DLL als COM (ActiveX)-Objekt
(Beispiel in VB6)
Diese Dokumentation als PDF-Dokument
Den Developer Stick bekommen Sie als Großbrief per Einschreiben mit der
Briefpost.
Das Developer-Passwort bekommen Sie aus Sicherheitsgründen separat
per Einschreiben.
Wie geht es direkt nach der Bestellung auf unserer Webseite
weiter?
Sie bekommen in den nächsten Minuten eine automatisierte
Eingangsbestätigung Ihrer Bestellung per Email.
Falls Sie keine Email bekommen, haben Sie evtl. Ihre Email-Adresse nicht
korrekt eingegeben. Schauen Sie auch in Ihren SPAM-Ordner.
Nach Bearbeitung durch einen unserer Mitarbeiter bekommen Sie Ihre
Rechnung als PDF-Dokument per Email zugeschickt.
Nach Zahlungseingang erfolgen dann alle weiteren Schritte wie oben auf
dieser Seite beschrieben, u.a. der Versand von Master-Stick und
Developer-Passwort per Post.
Bleibt der Zahlungseingang aus, kommt kein Kaufvertrag zustande.
Der Lizenz-Manager
Nach Start des Lizenzmanagers prüft dieser den angeschlossenen MasterStick, stellt eine sichere Verbindung zur Online-Lizenzdatenbank her und
lädt die relevanten Informationen herunter, decodiert sie, und füllt damit
die Lizenztabelle.
In obigem Beispiel hat der Developer, der durch den Master Stick
identifiziert wird, bereits 3 Lizenzen angelegt.
Per Definition ist eine Lizenz eine Zuordnung von einem Dongle zu einem
Produkt und entspricht einer Zeile in der obigen Tabelle.
Der Endkunde Max Mustermann besitzt also den USB-Stick mit der
Kennung, die auf '476' endet. Diesem Stick ist eine Lizenz für das Produkt
A und eine Lizenz für das Produkt B Version 3.0 zugeordnet.
Die Kundin Marion Musterfrau besitzt den USB-Stick, dessen Kennung auf
'1EF' endet. Diesem Stick ist eine Lizenz für Produkt B Version 3.0
zugeordnet. Aus dem freien Text in der Spalte 'für Kunde' ist ersichtlich,
dass die Zuordnung nur 30 Tage gelten soll. Danach könnte der Developer
die Zuordnung wieder aufheben, indem er den Inhalt der Spalte 'Dongle'
oder 'Produkt' ändert. Dadurch kann er die freigewordene Lizenz für einen
ganz anderen Kunden, einen anderen Stick und ein anderes Produkt
nutzen.
Die ersten 10 Lizenzen (Zeilen in obiger Tabelle) sind im Developer Pack
bereits enthalten. Sobald mehr als 10 Zeilen angelegt wurden, und die
Änderungen hochgeladen wurden, werden die zusätzlichen Zeilen in der
nächsten Monatsrechnung erfasst und gem. Preisliste berechnet.
Die Buttons 'Neue Lizenz anlegen' sowie 'markierte Lizenz bearbeiten'
sollten sich selbst erklären.
Durch Klick auf den Button 'Änderungen hochladen' werden alle
Änderungen in die Online-Lizenzdatenbank hochgeladen. Hierbei müssen
Sie Ihr Developer Passwort eingeben. Dabei können Sie auch wählen, ob
es für diese Sitzung oder generell verschlüsselt auf dem PC gespeichert
werden soll.
Nach Hochladen der Änderungen können Sie auf Wunsch auch eine
Lizenzdatei speichern (in einen beliebigen Ordner, Dateinamen bitte
unverändert lassen). Diese ist nur für den Fall gedacht, wenn AnySTICK
bei Ihren Endkunden in Offline-Umgebungen funktionieren soll. Dazu muss
die Lizenzdatei im selben Ordner liegen wie die zu schützende
Anwendungs-exe.
Außerdem finden Sie im Lizenzmanager noch Funktionen zum Auslesen
der Kennungen von USB-Sticks, zum Anzeigen des MD5-Hash-Wertes der
benutzten DLL sowie zum Anzeigen der verschiedenen Rückgabewerte der
DLL, je nach übergebenem Produktstring und Salt.
Durch Klicken auf das Fragezeichen neben vielen Buttons erhalten Sie
einen Hilfetext dazu angezeigt.
Das AnySTICK-Tool
Dieses Tool können Sie Ihren Kunden zur Verfügung stellen, die einen
vorhandenen USB-Stick als Dongle benutzen möchten.
Damit können Ihre Kunden den Stick identifizieren und seine Kennung in
der Zwischenablage speichern, um ihn Ihnen z.B. Per Email zuzusenden.
Sie erstellen dann im Lizenzmanager nur noch eine neue Zeile, tragen dort
die Kennung und das zu lizensierende Produkt ein, laden die Änderung per
Knopfdruck hoch, und ab diesem Zeitpunkt kann Ihr Kunde Ihre
Anwendung mit seinem Wunschdongle nutzen.
Das Tool besteht nur aus einer einzigen exe-Datei. Ein Vorhandensein der
AnySTICK-DLL ist nicht notwendig.
Sie als Developer können das AnySTICK-Tool natürlich auch selbst
benutzen, haben die selbe Funktionalität aber auch im hinter dem Button
'USB-Stick identifizieren'.
Integration in Ihre Anwendung
Nutzung als .NET Assembly
Da die AnySTICK-DLL ein .NET-Assembly ist, ist die Einbindung unter.NET
sehr einfach. Die DLL wird einfach ins selbe Verzeichnis wie Ihre zu
schützende Anwendungs-exe oder in den Globalen Assembly Cache
installiert.
Hier der relevante Teil aus dem Beispielprojekt:
'Bitte fügen Sie in den Projekteigenschaften einen Verweis auf eine AnySTICK-DLL ein.
'Die DLL nutzt das .NET Framework 2.0. Dieses ist in
Betriebssystems.
'Auf Windows XP muss es von Ihrem Setup, sofern noch
AnySTICK funktioniert.
'Ab Windows 8 ist Framework 4.0 und höher enthalten,
integriert. Deswegen muss auch hier Version 2.0 ggf.
'Wenn Ihr Setup das nicht übernimmt, macht Windows 8
(>50MB Download)
Windows Vista und Windows 7 bereits Teil des
nicht vorhanden, installiert werden, damit
leider ist darin das Framework 2.0 nicht mehr
nachinstalliert werden.
das beim ersten Start der Anwendung von alleine
Imports System.Reflection
Public Class frmAnySTICK_Demo
Private Sub btnLizenzPruefen_Click(sender As System.Object, e As System.EventArgs) Handles
btnLizenzPruefen.Click
Dim MyDeveloperID As Integer = 123456
'durch Ihre ID ersetzen
Dim ProductString As String = "App123"
'Durch den Namen der zu schützenden Anwendung
ersetzen, den Sie auch im Lizenzmanager verwendet haben
Dim Salt As Integer = 69
'beliebige Ganzzahl zwischen 0 und 100; hiermit wird
der Rückgabewert verschlüsselt
'AnySTICK-Assembly laden
Dim AssemblyAnySTICK As Assembly = Assembly.Load("AnySTICK")
'Eine Instanz der LicenseReader-Klasse erstellen
Dim AnySTICKLicenseReader = AssemblyAnySTICK.CreateInstance("AnySTICK.LicenseReader")
'Feststellen, von wo das Assembly geladen wurde (GAC oder lokal (empfohlen))
Dim AssemblyFileName As String = AssemblyAnySTICK.Location
'Überprüfen, on es sich wirklich um die Original-AnySTICK-DLL handelt
If GetHashAnySTICKDLL(AssemblyFileName) <> "xxxxxxxxxxxxxxxxxxxxxxxxxxx" Then
MsgBox("Die Integritätsprüfung der Softwareschutzkomponente ist leider fehlgeschlagen.")
Exit Sub
End If
'Die eigentliche Lizenzüberprüfung
Dim Lizenzstring As String = AnySTICKLicenseReader.CheckLicense(MyDeveloperID, ProductString,
Salt)
If Lizenzstring = "" Then
'Wenn hier ein Leerstring zurückgegeben wird, ist am Computer kein USB-Stick angeschlossen,
dem eine Lizenz für das geprüfte Produkt zugeordnet wurde.
MsgBox("Es ist kein USB-Stick angeschlossen, dem eine Lizenz für die Anwendung " &
ProductString & " zugeordnet werden konnte.")
Exit Sub
Else
'Nur sie wissen, welche Rückgabewerte Sie bei verschiedenen Salts erwarten und können diese
verifizieren.
MsgBox("Lizenz vorhanden. Um Angreifern die Arbeit zu erschweren, wird für jede
ProductString-Salt-Kombination ein anderer Wert zurückgegeben. In diesem Fall: " & Lizenzstring)
End If
End Sub
Nutzung als COM (ActiveX)-Objekt
Die Nutzung der AnySTICK-DLL als ActiveX-Objekt erfordert etwas
Aufmerksamkeit bei der Installation auf dem Kundenrechner, die
Verwendung im Quelltext Ihrer Anwendungen ist dann aber wieder recht
überschaubar.
Hier der relevante Teil aus dem Beispielprojekt:
'Bitte fügen Sie unter 'Projekt/Verweise einen Verweis auf die AnySTICK.tlb ein.
'Lesen Sie bitte auch die folgenden Hinweise.
Option Explicit
'Hinweis: Die AnyStick-DLL ist eine .NET-DLL.
'Sie muss im selben Verzeichnis wie die zu schützende exe (oder die Projektdatei auf Ihrem
Entwicklungsrechner) liegen.
'Damit sie über COM (ActiveX) angesprochen werden kann, muss sie mit regasm.exe registriert werden.
'Auf dem Entwicklungsrechner muss außerdem eine .tlb-Datei erstellt und registriert werden. Das geht
ganz einfach über die Eingabeaufforderung.
'Auf dem Entwicklungsrechner muss man dazu die cmd.exe als Administrator ausführen, mittels cd in den
Pfad gehen, wo regasm.exe und AnySTICK.dll liegen und eingeben:
' regasm.exe anystick.dll /codebase /tlb
'Als Verweis im VB-Projekt muss man anschließend die Datei 'AnySTICK.tlb' einbinden, auf Kundenrechnern
ist die Datei nicht erforderlich.
'Auf den Rechnern der Endkunden muss das Setup nur die DLL ins selbe Verzeichnis wie die EXE Ihrer
Anwendung installieren und dort mittels regasm.exe registrieren,
'sonst bekommt der Kunde den Fehler: 'Objekterstellung durch ActiveX-Komponente nicht möglich'.
'Die meisten modernen Installationsprogramme haben so eine Funktion an Bord, die müsste in etwa heißen:
'register .Net assembly for COM Interoperability' .
'Wenn nicht, muss man, nachdem man die regasm.exe und die anystick.dll installiert hat, mit AdminRechten folgenden Shell-Befehl zur Ausführung bringen:
' regasm.exe anystick.dll /codebase /silent
'Die DLL nutzt das .NET Framework 2.0. Dieses ist in
Betriebssystems.
'Auf Windows XP muss es von Ihrem Setup, sofern noch
AnySTICK funktioniert.
'Ab Windows 8 ist Framework 4.0 und höher enthalten,
integriert. Deswegen muss auch hier Version 2.0 ggf.
'Wenn Ihr Setup das nicht übernimmt, macht Windows 8
(>50MB Download)
Windows Vista und Windows 7 bereits Teil des
nicht vorhanden, installiert werden, damit
leider ist darin das Framework 2.0 nicht mehr
nachinstalliert werden.
das beim ersten Start der Anwendung von alleine
'Die Funktion 'CheckLicense()' sollte man zur Laufzeit öfter mal aufrufen, um zu sehen, ob der Dongle
auch noch drin steckt.
'Umso mehr Aufrufe man mit unterschiedlichem Salt durchführt, umso schwerer haben es Hacker, die DLL
nachzubauen
'Das Salt ist übrigens nicht Teil der Lizenzprüfung, nur der ProductString muss zum Dongle passen. Das
Salt beeinflusst nur den Rückgabewert der DLL.
'Schutz vor nachgebauten DLLs bietet auch die Ermittlung des DateiHash und Vergleich mit dem OriginalDateihash (dazu das ModHash).
'Vor dem eigentlichen Aufruf von CheckLicense() sollte man also erstmal mit GetHashAnySTICKDLL() die
Integrität der DLL überprüfen.
'Dazu muss die Datei 'advapi32.dll' auf dem Zielrechner vorhanden sein, entweder im Systemverzeichnis
oder im selben Verzeichnis wie die exe. Sie braucht nicht registriert zu werden.
Private Sub cmdLicense_Click()
'Eine Instanz der LicenseReader-Klasse erstellen
Dim AnySTICKLicenseReader As New AnySTICK.LicenseReader
'Und das Interface deklarieren
Dim AnyStickInterface As iAnySTICK
Dim
Dim
Dim
Dim
MyDeveloperID As Long
ProductString As String
Salt As Integer
Lizenzstring As String
MyDeveloperID = 123456
'durch Ihre ID ersetzen
ProductString = "App123" 'Durch den Namen der zu schützenden Anwendung ersetzen, den Sie auch im
Lizenzmanager verwendet haben
Salt = 69
'beliebige Ganzzahl zwischen 0 und 100; hiermit wird der Rückgabewert
verschlüsselt
'Über das Interface können wir auf die freigegebene Funktion zugreifen
Set AnyStickInterface = AnySTICKLicenseReader
'Überprüfen, on es sich wirklich um die Original-AnySTICK-DLL handelt
If GetHashAnySTICKDLL() <> "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" Then
MsgBox ("Die Integritätsprüfung der Softwareschutzkomponente ist leider fehlgeschlagen.")
Exit Sub
End If
'Die eigentliche Lizenzüberprüfung
Lizenzstring = AnyStickInterface.CheckLicense(MyDeveloperID, ProductString, Salt)
If Lizenzstring = "" Then
'Wenn hier ein Leerstring zurückgegeben wird, ist am Computer kein USB-Stick angeschlossen, dem
eine Lizenz für das geprüfte Produkt zugeordnet wurde.
MsgBox ("Es ist kein USB-Stick angeschlossen, dem eine Lizenz für die Anwendung " &
ProductString & " zugeordnet werden konnte.")
Exit Sub
Else
'Nur sie wissen, welche Rückgabewerte Sie bei verschiedenen Salts erwarten und können diese
verifizieren.
MsgBox ("Lizenz vorhanden. Um Angreifern die Arbeit zu erschweren, wird für jede ProductStringSalt-Kombination ein anderer Wert zurückgegeben. In diesem Fall: " & Lizenzstring)
End If
End Sub
Troubleshooting
Stellen Sie sicher, dass auf dem Zielcomputer das .NET Framework 2.0
vorhanden ist. Lässt sich dort das AnySTICK-Tool starten? Wenn nicht, ist
das ein sicheres Zeichen dafür, dass das .NET Framework nicht vorhanden
ist. Dann können auch die anderen Komponenten nicht funktionieren.
Tip: Auf Ihrem Developer-Stick finden Sie das .NET 2.0 Setup-Programm,
damit Sie es nicht erst von Microsoft herunterladen müssen.
Versuchen Sie, die DLL über COM (ActiveX) anzusprechen und erhalten
Sie oder einer Ihrer Kunden den 'Laufzeitfehler 429: Objekterstellung
durch ActiveX-Komponente nicht möglich'? Dann wurde die AnySTICK-DLL
noch nicht als COM-Objekt registriert (per Setup oder regasm.exe).
Versuchen Sie, die DLL über COM (ActiveX) anzusprechen und erhalten
Sie oder einer Ihrer Kunden den 'Run-Time-Error 2147024894:Automation
Error'? Dann befindet sich die AnySTICK-DLL nicht im selben Ordner wie
die zu schützende Anwendung.
Schlägt regasm.exe fehl (Error RA0000)? Dann wurde die
Eingabeaufforderung ohne Administratorrechte ausgeführt. Ab Windows
Vista müssen Sie die Eingabeaufforderung (cmd.exe) mit Rechtsklick und
'Als Administrator ausführen' starten.
FAQ – Häufige Fragen
Q: Was passiert, wenn der Kunde den USB-Stick neu formatiert,
umbenennt oder löscht?
A: Die Eigenschaft als Dongle bleibt vollständig erhalten.
Q: Was passiert, wenn mein Master-Stick kaputt geht/verloren
geht/gestohlen wird?
A: In dem Fall bekommen Sie einen neuen Master-Stick von uns. Die
Lizenzdatenbank wird von uns gleichzeitig auf die neue ID das Master
Sticks umgestellt und alle vorhandenen Lizenzen aktualisiert. Der alte
Stick wird gesperrt und kann nicht mehr als Master-Stick verwendet
werden. Wir berechnen hierfür einen geringen Betrag lt. Preisliste.
Q: Muss die AnySTICK-DLL auf den Zielrechnern registriert
werden? Wohin sollte sie installiert werden?
A: Die DLL muss ins selben Verzeichnis wie Ihre .exe-Datei installiert
werden, von der aus Sie auf die DLL zugreifen möchten. Sie muss nicht
registriert werden, sofern Sie von .NET-Anwendungen darauf zugreifen
möchten. Möchten Sie über ActiveX (COM) auf die DLL zugreifen, muss sie
von Ihrem Setup oder per regasm.exe für COM Interoperability registriert
werden.
Q: Was passiert, wenn der AnySTICK-Lizenzserver mal nicht zu
erreichen ist?
A: Die Lizenzinformationen werden zwischen den Online-Zugriffen
automatisch verschlüsselt auf den Zielcomputern bis zum nächsten
Online-Zugriff gepuffert, so dass die Programme Ihrer Kunden weiterhin
funktionieren.
Die Lizenzverwaltung mit dem Lizenzmanager würde während dieser Zeit
allerdings nicht funktionieren.
Q: Kann ich einem Stick beim Kunden mehrere Lizenzen zuordnen?
A: Ja. Einem Stick können beliebig viele Lizenzen zugeordnet werden.
Q: Kann man wirklich jeden USB-Stick als AnySTICK-Dongle
nutzen?
A: Gemäß den USB-Spezifikationen (ab 1.0) soll jeder USB-Stick eine
Herstellerkennung, Modellkennung sowie eine Seriennummer fest in seiner
Hardware eingebrannt haben. AnySTICK liest diese Parameter aus und
kombiniert sie zu einer Gesamtkennung. Es kann also jeder USB-Stick
genutzt werden, der die USB-Spezifikationen erfüllt. Im Zweifelsfall lassen
Sie sich mit dem AnySTICK-Tool die Kennungen von 2 baugleichen USBSticks anzeigen, die Sie als Dongle einsetzen möchten. Sind die
Seriennummern (hinten in der Kennung) verschieden, sind die Sticks
geeignet.
Bisher sind uns noch keine ungeeigneten Sticks begegnet. Für Hinweise
sind wir jederzeit dankbar.
Q: Kann ich die Hardware (USB-Sticks) auch bei Ihnen beziehen?
A: Nein. Wir sind ein Softwarehaus und handeln nicht mit Hardware. Wir
können aber Tipps geben, wo es sehr günstige geeignete Sticks gibt.
Q: Wie kann die AnySTICK-DLL eingebunden werden? Gibt es
Beispielprojekte?
A: Die AnySTICK-DLL ist ein .NET-Assembly, das auch als COM (ActiveX)Objekt nutzbar ist. Auf dem Developer-Stick liefern wir 2 Beispielprojekte
zur Einbindung in ein VB.NET-Projekt und ein VB6-Projekt mit. In den
Beispielprojekten ist auch Quelltext zur Ermittlung des Hash-Wertes der
DLL vorhanden, den Sie in Ihren eigenen Anwendungen benutzen dürfen,
um die Integrität der AnySTICK-DLL sicherzustellen.
Über uns
wird entwickelt und vertrieben von:
mediapromote software engineering
Ingenieurbüro für Softwareentwicklung
Dipl.-Ing. Martin Pehlke
Jägerpfad 35
D - 31789 Hameln
[email protected]