Service: Shareware-Testzeit überwachen: Implementierung

Wie es aus Benutzersicht funktioniert

Wenn der Benutzer die Software nach der Installation zum ersten mal startet, wird nach einer kurzen Wartezeit ein Registrierungsdialog angezeigt. Hier kann der Benutzer

  1. Einen Lizenzschlüssel für eine Testversion abrufen
  2. Den Lizenzschlüssel einer Vollversion eingeben (sofern bereits vorhanden)
  3. Zur Bestellseite wechseln

Wird die erste Option gewählt, geht es so weiter:

  • Bestimmte Computerinformationen werden ermittelt und verschlüsselt.
  • Es wird eine Seite meines Web mit diesen verschlüsselten Informationen als Parameter aufgerufen.
  • Auf dieser Seite wird dem Benutzer ein Lizenzschlüssel angezeigt.
  • Der Lizenzschlüssel wird kopiert und in ein Eingabefeld des Registrierungsformlars eingefügt.
  • Nach klicken der Schaltfläche 'Fertigstellen' ist die Software für die gewünschte Zeit freigeschaltet.

Das ganze Verfahren kann sehr leicht an meinem PC-Tischrechner ausprobiert werden.


Wie es im Hintergrund funktioniert

Welche Computerinformationen es sind, die vom Rechner des Benutzers ermittelt und verschlüssel werden, kann ich hier nicht verraten, denn sonst hätten gewiefte Benutzer es evtl. zu leicht, den Schutzmechanismus auszuhebeln.

Soviel kann ich aber sagen: es werden vier verschiedene Werte ermittelt, von denen drei als Schlüssel verwendet werden um den ersten Wert mit Hilfe eines schlichten XOR zu verschlüsseln.

Wenn nun die Web-Seite aufgerufen wird, die den Lizenzschlüssel erzeugt, wird in einer Tabelle der zugrunde liegenden msSQL-Datenbank nachgesehen, ob es bereits einen entsprechenden Datensatz gibt.

Wenn das der Fall ist, wird der früher bereits erzeugte Lizenzschlüssel aus der Datenbank zurückgeliefert.

Wenn nicht, werden die verschlüsselte Computerinformation, die Bezeichnung der Software und das Ablaufdatum ( = heute plus 30 Tage) in eine Funktion gestopft, die als Ergebnis einen numerischen Schlüssel zurückliefert und alle Informationen gemeinsam in die Datenbank ablegt.

Der Benutzer wird aufgefordert, diese Schlüssel zusammen mit dem angehängten Ablaufdatum zu kopieren und in das entsprechende Eingabefeld des Registrierungsdialogs einzufügen.


Ein paar Hinweise dazu

Einer der Kniffe ist, dass das Ablaufdatum sowohl im Schlüssel steckt als auch vom Benutzer eingegeben werden muss. Da der Schlüssel nur funktioniert, wenn das richtige Ablaufdatum mit eingegeben wird, ist sichergestellt, dass das Datum nicht manipuliert werden kann. D.h.: der mögliche Versuch eines Benutzers, ein anderes Datum einzugeben, führt nur zu einem Hinweis wegen eines ungültigen Lizenzschlüssels.

Ein weiterer wichtiger Punkt ist natürlich die verschlüsselte Computerinformation. Einerseits identifiziert sie den Computer, von dem aus die Registrierung durchgeführt wurde eindeutig (die verwendeten Computerdaten stellen das sicher). Andererseits ist die Anonymität des Benutzers gewahrt. Da sowohl die Ausgangsinformationen als auch der Schlüssel vom Computer des Benutzers stammen und ich beides nicht kenne, kann ich aus dem Schlüssel selbst nicht feststellen, welchen Inhalt die basierenden Computerdaten einmal hatten. *

Mit entscheidend ist schließlich, dass alle Daten einer jeden Registierung in der Datenbank abgelegt werden. Die verschlüsselten Computerinformationen bei jeden Abruf der Registrierungsseite als Kriterium verwendet, um nach einer eventuellen vorheriger Registrierung mit den selbsten Computerinformationen zu suchen. Wenn der Benutzer die Seite also einmal von einem bestimmten Computer aus aufgerufen hat, erhält er in der Zukunft immer den selben Lizenzschlüssel mit dem selben Ablaufdatum.

* Zugegeben: mit Hilfe ausgefeilter Entschlüsselungstechniken wäre es sicher möglich, die Originaldaten wiederherzustellen. Das ist aber nicht das Ziel und ich werde mir diese Mühe auch garantiert nicht machen, denn die Originaldaten sind auch nicht viel interessanter als eine beliebige Seite aus dem Kursbuch der Deutschen Bahn.


Nachteile

Wie alles im Leben hat auch dieses Verfahren seine Nachteile.

  1. Trotz zugesicherter Anonymität, wird mancher Benutzer es nicht gut finden
  2. Es ist nicht 100 %ig Manipulationssicher

Ich finde aber, mit diesen Nachteilen kann man leben.

Unter dem Strich ist es nicht mein primäres Ziel, Benutzer glücklich zu machen, sondern mit meiner Arbeit meinen Lebensunterhalt zu bestreiten. Und ich benötige diesen Mechanismus, damit die Benutzer die Software nicht auf Dauer kostenlos benutzen.

Wenn jemand genug Zeit hat und findig ist, wird es sicher möglich sein, das System auszuhebeln. Das ist unvermeidlich - letztlich aber eine Frage von Aufwand und Ertrag. Wenn jemand Tage investieren möchte um 15 Euro Lizenzgebühr zu sparen und dabei auch noch riskiert, sich strafbar zu machen, gut. Wenn ich dahinter kommen sollte werde ich das verfolgen, aber deswegen mache ich mir jetzt keine Sorgen.


Das Wichtigste ist, dass ich mit diesem System meinen Sharewareumsatz vervierfachen konnte!

Seitenanfang

Kontaktaufnahme- und Terminvereinbarung:

Bei Fragen und für Terminvereinbarungen erreichen Sie uns unter:

0 63 49 99 07 38

0 151 51 95 34 00

Oder nutzen Sie das Kontaktformular




Ihr Ansprechpartner:


Hier sollte das Fahnungsfoto zu sehen sein.

Ralf Kunsmann

Spezialist für VBA-Programmierung
(alle Office-Anwendungen)
Entwickler der
VBA-Extension-Tools