| Zeitgesteuertes Lizenzmanagement für Softwareprodukte |
|
|
In diesem Artikel wird ein Vorgehen für die sichere zeitgesteuerte Lizenzierung von Softwareprodukten vorgeschlagen:
Erzeugung des LizenzschlüsselsDer Benutzer der Software sendet eine Anforderung für die Lizenz an den Lizenzgeber. Darin können weitere Informationen enthalten sein. Als Beispiel werden wir annehmen, daß die Software an eine bestimmte IP-Adresse gebunden werden soll. Der Lizenzgeber fragt die aktuelle Uhrzeit bei einem NTP-Server ab und kombiniert daraus und aus der IP-Adresse ein Dokument. Weiterhin enthält das Dokument die Zeitspanne, für die die Lizenz gültig sein soll. Dieses Dokument wird mit dem privaten Schlüssel des Lizenzgebers verschlüsselt und elektronisch signiert. Das signierte Dokument wird an den Lizenznehmer gesendet. Dieser speichert es an einer vorher vereinbarten Stelle ab. Validierung des LizenzschlüsselsDie Software findet das signierte Dokument an der vereinbarten Stelle und entschlüsselt es mittels des öffentlichen Schlüssels des Lizenzgebers. Anschließend wird die elektronische Signatur geprüft. Schlägt eine dieser Operationen fehl, ist die Lizenz ungültig. Andernfalls werden die Daten aus dem Dokument extrahiert. Nun werden zunächst die zusätzlichen Daten validiert - im Beispiel würde hier der Test erfolgen, ob die im Dokument enthaltene IP-Adresse mit der aktuellen des Rechners übereinstimmt. Falls diese Tests erfolgreich sind, stellt die Software eine NTP-Anfrage. Ergebnis dieser Anfrage ist die Abweichung der Zeit des NTP-Servers von der lokalen Zeit. Als lokale Zeit wird der im Dokument gefundene Beginn der Lizenzlaufzeit benutzt. Ist die Abweichung größer als die ebenfalls im Dokument gespeicherte Lizenzlaufzeit, ist die Lizenz abgelaufen. Grenzen und AngriffspunkteDenial of ServiceIst der NTP-Server, der zur Prüfung der Lizenz herangezogen wird, nicht erreichbar, ist die Lizenz nicht prüfbar und daher nicht vorhanden - das Programm kann nicht ausgeführt werden. Merfachanforderung der LizenzKann nur durch Abgleich der EMail-Adressen verhindert werden, an die die Lizenzschlüssel verschickt werden. Dazu muß man Einmal- oder anonyme EMail-Adressen erkennen und ausfiltern. DebuggingEs ist prinzipiell möglich - wenn auch aufwändig - die Anwendung in einem Debugger laufen zu lassen und die Validierung der Lizenz zu übrspringen. Dadurch würde die Performanz der Anwendung jedoch leiden. Außerdem ist dieser Angriff prinzipiell bei jeder rein softwarebasierten Lizenzprüfung gegeben. Vorspiegeln eines NTP-ServersEs ist prinzipiell möglich - wenngleich aufwändig und eigentlich unpraktikabel - den Rechner, auf dem die Softwareanwendung läuft, in ein eigenes Netzwerk zu verschieben, das keine Verbindung mit dem Internet hat und in diesem Netz einen eigenen NTP-Server zu installieren, der seine Antworten entsprechend anpasst, so daß die Lizenz nie ausläuft. Fazit Die vorgeschlagene Lösung ermöglicht es auf einfache Art und Weise, zeitgesteuert Lizenzen zu vergeben und nach Ablauf einer frei definierbaren Zeitspanne automatisch zu sperren. Einzige Voraussetzung dafür ist eine bestehende Internetverbindung zur Anfrage des NTP-Servers während die Anwendung arbeitet.
|


