Verwalten von Features auf Lizenzbasis für eine C ++ - Anwendung [geschlossen]

8

Wir versuchen, für jede Funktion, die unsere Linux-Anwendung ausführt, einen Lizenzmechanismus anzubieten, und wir denken darüber nach, ihn über einen Lizenzserver zentral zu steuern:

Unser Ziel für die Lizenzierung ist:

  1. Deny-Funktionen, die der Betreiber nicht gekauft hat.
  2. Angebotstests (Funktionen, die ablaufen, wenn sie nicht gekauft werden).
  3. Aktivieren Sie Features für Zeiträume und stellen Sie sie nur für einen bestimmten Zeitraum zur Verfügung.

Gibt es eine Server-Lizenz, die uns dies erlaubt (im Grunde würden wir Sockets verwenden, um mit unserer Anwendung zu kommunizieren)? Was können wir noch tun (zum Beispiel Open-Source-Software verwenden, lesen etc.), um loszulegen?

    
Peter Mortensen 12.03.2009, 10:22
quelle

8 Antworten

4

Müssen Sie wirklich "nach Hause telefonieren"?

Ich habe ein relativ schmerzloses Lizenzsystem gesehen, durch das dem Benutzer eine XML-Datei zur Verfügung gestellt wurde, die den Gültigkeitszeitraum der Lizenz, eine optionale IP-Adresse und die Liste der "entsperrten" Funktionen beschreibt. Eine digitale Signatur wurde mithilfe des privaten Schlüssels des Anbieters generiert, der erneut in die Lizenzdatei eingefügt wurde. Beim Start las die Anwendung die Lizenz, validierte sie, prüfte die IP und entspannte die Funktionen entsprechend.

Der Anbieter kann dem Client bei Bedarf neuere Lizenzen zur Verfügung stellen.

Obwohl Sie theoretisch die Lizenz täuschen könnten, indem Sie die lokale Zeit des Rechners ändern und mit der IP-Adresse fudging, hätte das in diesem Fall die Anwendung ziemlich umständlich gemacht, also war das kein Problem.

    
small_duck 12.03.2009 23:18
quelle
4

Wenn Sie wirklich einen Lizenzserver verwenden wollen, dann stellen Sie sicher, dass Ihre Anwendung nicht ständig Kontakt mit ihm aufnehmen muss, um die Nutzung zu autorisieren - dies führt zu einem Ende der Probleme, wenn Ihre Internetverbindung verloren geht oder Ihr Server ausfällt oder stürzt ab.

Ich würde vorschlagen, etwas zu haben, wo ein Schlüssel heruntergeladen und lokal gespeichert wird, wodurch die Anzahl der Rundreisen zum Server ständig reduziert wird. Der Schlüssel kann basierend auf den Maschinendetails des Benutzers verschlüsselt werden, sodass Schlüssel nicht gemeinsam genutzt werden können.

Wir haben den HASP Hardwareschlüssel in der Vergangenheit verwendet und obwohl er definitiv funktioniert und eine Lösung bietet, Ich glaube nicht, dass sie das sind, was du willst, denn sie sind einmal programmiert und das ist es. Beispielsweise könnten Sie den HASP-Schlüssel nicht aktualisieren, um eine Testphase zu beenden.

    
Steve Claridge 12.03.2009 10:53
quelle
2

Es gibt Zeiten, in denen Software Schutz braucht - schauen Sie sich diese Leute hier an - sie bieten Hardware- und Softwarelösungen .

    
James Fisher 12.03.2009 12:50
quelle
1

FLEXnet (früher bekannt als FLEXlm) ist ein Lizenzierungspaket, das häufig verwendet wird durch High-End- oder spezialisierte Softwarepakete, zum Beispiel im Markt für elektronische Designautomatisierung. Sie können eine Lizenz für einen einzelnen Computer (über eine Host-ID, normalerweise eine Ethernet-MAC-Adresse) oder einen tragbaren Hardware-Dongle sperren oder einen Netzwerkserver für die gemeinsame Nutzung eines begrenzten Pools gleichzeitiger Lizenzen für Clients verwenden, auf denen Ihre Software ausgeführt wird. Lizenzen können für eine begrenzte Zeit oder dauerhaft gewährt werden und können auch durch eine Versionsnummer begrenzt werden. Eine Lizenzdatei beschreibt die lizenzierten Funktionen.

FLEXnet enthält mehrere APIs zur Integration mit Ihrer Anwendung, einschließlich einer für C ++. Ich stelle mir vor, dass es Kryptografie mit öffentlichen Schlüsseln verwendet. Im Allgemeinen ruft eine Anwendung, die FLEXnet verwendet, nur dann "nach Hause" zu, wenn Sie sie über Ihre API-Nutzung anfordern. Viele Anwendungen überprüfen die Lizenz beim Start oder beim Reservieren einer Lizenz aus dem Pool für die Laufzeit der Anwendung.

Sie zahlen natürlich eine jährliche Lizenzgebühr, um FLEXnet in Ihren Produkten zu verwenden, beginnend bei über 1 Tsd. USD. Die Gebühr hängt vom Umsatz Ihres Unternehmens und von der Anzahl der Plattformen (OS / CPU-Kombination) ab, auf denen Ihr Lizenzierungsschema ausgeführt werden soll.

Ich würde sagen, es lohnt sich nicht, etwas wie FLEXnet zu verwenden, wenn Ihr Produkt weniger als mehrere tausend USD pro Sitz verkauft. Es ist beschwerlich zu verwenden (die Quelle eines guten Prozentsatzes von Supportanrufen für unser Unternehmen), aber Firmenkunden sind möglicherweise bereits vertraut mit der Verwendung, abhängig vom Markt.

FLEXnet, wie jedes DRM-Schema, von dem ich gehört habe, ist leicht zu knacken. Zumindest gehe ich davon aus, dass entsperrte Versionen unserer Produkte regelmäßig auf Warez-Seiten zu finden sind.

    
rkb 07.04.2009 12:29
quelle
1

Dies ist so eine Dilbert-ähnliche Art, Dinge zu tun. Sag einfach Nein.

Obwohl es verhasst ist, ist dies ein Standardmerkmal in High-End-Spezialsoftware, die Zehntausende von Dollars kostet. Denk an 3D-Scanner und CNC Zeug.

    
shoosh 12.03.2009 10:46
quelle
0

Nachdem ich verschiedene Pakete verwendet habe, die solche Lizenzserver verwenden, kann ich Ihnen sagen, dass es eine sichere Möglichkeit ist, Ihre Software von ihren Benutzern allgemein zu hassen.

    
anon 12.03.2009 10:25
quelle
0

Eine gängige Lizenzierungssoftware ist flexlm . Ich würde jedoch zweimal überlegen, ob ich diese Einschränkungen meinen Benutzern auferlegen würde. Viele Benutzer mögen sie nicht; besonders aus der FOSS / Linux-Umgebung.

    
lothar 07.04.2009 03:46
quelle
0

Wenn Sie vorhaben, selbst etwas zu programmieren, ist ein gängiger Mechanismus, den ich gesehen habe, die Lizenz an eine MAC-Adresse .

    
Bill Lynch 07.04.2009 12:05
quelle