Laden...

Vorgehensweise bei Lizensierung von Programmen

Erstellt von CB.NET vor 18 Jahren Letzter Beitrag vor 18 Jahren 4.492 Views
CB.NET Themenstarter:in
726 Beiträge seit 2003
vor 18 Jahren
Vorgehensweise bei Lizensierung von Programmen

Hallo,
nachdem nun meine Application fast fertig ist, muss ich als nächstes ein Lizenzmodell implementieren..

Lizenzen gibt es folgende:

  • Einzelplatz
  • Lizence für 3 Rechner
  • Lizenz für 10 REchner

die Lizensierung soll per Webservice abgewickelt werden.

wie kann ich beispielsweise verhindern, dass bei der 3er lizenz das programm auf einen 4ten pc installiert werden kann ?

lizensiere ich nach hardware (schlüssel) kann der user die software ja nicht bei ausfall eines PCs das prog auf einen anderen rechner installieren !
Ich kann ja auch nicht bei jedem PStart den Webservice abfragen, ob Programm lizenz hat oder nicht

wie haltet ihr es denn bei euch mit den Lizenzen ?

1.549 Beiträge seit 2004
vor 18 Jahren

wie kann ich beispielsweise verhindern, dass bei der 3er lizenz das programm auf einen 4ten pc installiert werden kann ?

Vertrauen!!

Wenn dein Programm für den einsatz in Firmen ist müsste vertrauen Ausreichen.
Wenn du es An privat weitergiebst kannst du ja jeden aufruf des Webservice mit einem schlüssel speichern und dann die 4. Freischaltung verhindern wenn der User dann ein Problem hat (neu Instalation, Absturtz...) kann er peer lizens dazu gezwungen werden dir den Sachverhalt zu schildern worauf hin du entweder
eine neue Key herausrückst oder den alten erneut freischaltest

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

4.221 Beiträge seit 2005
vor 18 Jahren

Lieber ein paar unverbesserliche die das Programm ohne Bezahlung verwenden als verärgerte Kunden

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

S
8.746 Beiträge seit 2005
vor 18 Jahren

Es gibt fertige Lizenzierungslösungen am Markt, die im Prinzip das alles können.

Leider sind die Dinger unbezahlbar teuer. Meist werden Umsatzmodelle gemacht, d.h. 2-5% vom Umsatz geht an die Lizenztool-Bude.

Dann gibts noch ein paar kleine Tools, die deutlich billiger sind (100-300 €), aber bei weitem nicht so viel können.

Das einzige, was ich kenne uns so halbwegs deine Anforderungen erfüllt, ist Armadillo (heisst jetzt SoftwarePassport glaub ich). Ist von Sillicon Realms.

http://siliconrealms.com/index.shtml

Die Lizenzen kann man dort auch irgendwie übers Internet beziehen, allerdings über einen Lizenz-Provider, der dann auch die ganze Auftragsabwicklung und Bezahlung übernimmt.

Es wäre aber auch möglich, dass du einen eigenen Lizenzserver baust und dann über WebService dort die Lizenzen abholst.

Der Spass ist auch vergleichsweise billig (paar hundert Euronen).

Nachteil: Unterstützt kein .NET !!!! Aber auch hier gibt es Tricks. Lagere ein wenig Code in eine Win32-DLL aus und lizenziere die.

Deine Frage bezüglich der Maschinenbindung ist einfach zu beantworten: Das funktioniert im Prinzip wie bei Microsoft und Windows. Das System holt sich aus der Hardware eine Kombination von Daten, die für die Maschine mit hoher Wahrscheinlichkeit eindeutig sind. Aus diesen Daten wird eine Lizenz generiert, die dann nur auf dieser Maschine lauffähig ist. Wenn der Rechner kaputt ist, dann muss der User tatsächlich eine neue Lizenz anfordern (auf Kulanz). Wenn dem User dreimal im Jahr das Teil kaputt geht würde ich Betrug vermuten. Dagegen helfen aber nur Dongles.

Wenn du sogenannte Netzwerk-Lizenzen machst, dann sind das üblicherweise sogenannte Floating-Lizenzen. Wenn du 5 solcher Floating-Lizenzen vergibst, kann der Kunde 5 Rechner gleichzeitig mit dem Programm laufen lassen. Welcher Rechner ist egal.

Dann gibt es noch sogenannte Mobile-Lizenzen (insbesondere für Software im Aussendienst). Hier entnehmen die Rechner bei Bedarf eine Lizenz aus einem Lizenz-Pool und können diese solange verwenden bis sie zurückgegeben werden.

Dieses Modell ist allerdings nur bei den High-End-Systemen verfügbar.

Was immer geht sind Trial-Lizenzen, Lizenzen die nach einem Jahre ablaufen etc.! Das bringen alle Tools mit.

Mein Tipp: Mache notfalls Abstriche beim Lizenz-Modell, wenn du kein preiswertes Tool findest. Selber machen ist unbezahlbar.

Was die Sicherheit angeht: Laut einem fürehndem Lizenztool-Anbieter werden 95% aller lizenzierten Anwendungen NICHT gegen Hackerangriffe geschützt (obwohl durchaus möglich). D.h. hier wird reine Lizenzierung eingesetzt, ohne die Prüffunktionen explizit zu schützen!

CB.NET Themenstarter:in
726 Beiträge seit 2003
vor 18 Jahren

danke für deine sehr umfangreiche Antwort

Original von svenson
Es gibt fertige Lizenzierungslösungen am Markt, die im Prinzip das alles können.
Leider sind die Dinger unbezahlbar teuer. Meist werden Umsatzmodelle gemacht, d.h. 2-5% vom Umsatz geht an die Lizenztool-Bude.
Dann gibts noch ein paar kleine Tools, die deutlich billiger sind (100-300 €), aber bei weitem nicht so viel können.
Das einzige, was ich kenne uns so halbwegs deine Anforderungen erfüllt, ist Armadillo (heisst jetzt SoftwarePassport glaub ich).

danke für den Link, aber wahrscheinlich kommt auch dies nicht in Frage ( Kosten).

Deine Frage bezüglich der Maschinenbindung ist einfach zu beantworten: Das funktioniert im Prinzip wie bei Microsoft und Windows. Das System holt sich aus der Hardware eine Kombination von Daten, die für die Maschine mit hoher Wahrscheinlichkeit eindeutig sind. Aus diesen Daten wird eine Lizenz generiert, die dann nur auf dieser Maschine lauffähig ist.

das habe ich jetzt per WMI Implementiert, und bei Hardware-Änderungen muss der User eine neue Lizenz beantragen.
Ist nur die Frage, ob diese ganze Sache nicht zu restriktiv ist ??

Wenn du sogenannte Netzwerk-Lizenzen machst, dann sind das üblicherweise sogenannte Floating-Lizenzen. Wenn du 5 solcher Floating-Lizenzen vergibst, kann der Kunde 5 Rechner gleichzeitig mit dem Programm laufen lassen. Welcher Rechner ist egal.

das habe ich jetzt per DB geregelt. Es wird hier der DB-Zugriff überprüft, bei Überschreitung der max. UserZahl wird das z.B. 6. geöffnete Programm geschlossen(bei 5 Lizenzen)

Dann gibt es noch sogenannte Mobile-Lizenzen (insbesondere für Software im Aussendienst). Hier entnehmen die Rechner bei Bedarf eine Lizenz aus einem Lizenz-Pool und können diese solange verwenden bis sie zurückgegeben werden.

da hab ich noch keine Ahnung, ob ich nun einen DB-Pool nehme oder irgendwie anders generiere

Was immer geht sind Trial-Lizenzen, Lizenzen die nach einem Jahre ablaufen etc.! Das bringen alle Tools mit.

eine Trial würde ich folgendermaßen bauen:
da hab ich eine Funktion, die mir den Tag der DB-Installation ausliest und dann die Trial-Days dazuaddiert , und schon habe ich das Ablaufsdatum, welches natürlich bei jedem Start geprüft werden muss...

S
8.746 Beiträge seit 2005
vor 18 Jahren

Wegen der Preis für kommerzielle Lösungen:

Ich kann mir gar nicht vorstellen, dass man das für eine paar hundert Euro selbst machen kann. Das wäre bei meinem Stundenlohn nicht mal nen halber Tag Arbeit... aber nun gut. Bedenke, dass du auch Tools zur Schlüsselgenerierung, etc. brauchst!

Maschinenbindung:

Ja, wäre restriktiv. Armadillo erlaubt es bis zu 6 Mermale heranzuziehen, wobei man angeben kann, WIEVIELE davon sich ändern dürfen, OHNE dass die Lizenz verfällt (bei Microsoft ist das EINE Komponente).

Trials:

Achtung: Ein beliebter Trick ist es, die Uhrzeit vorzustellen, bevor du die Software installierst. Dann läuft die Trial ewig. Gute System erkennen das aber, wobei mir unklar ist, wie die das machen, aber es funktioniert!

1.549 Beiträge seit 2004
vor 18 Jahren

Achtung: Ein beliebter Trick ist es, die Uhrzeit vorzustellen, bevor du die Software installierst. Dann läuft die Trial ewig. Gute System erkennen das aber, wobei mir unklar ist, wie die das machen, aber es funktioniert!

würde sagen giebt es 3 Möglichkeiten

  1. im Programm wird ein datum gespeichert wenn bei der instalation ein Höheres datum eingestellt ist ist es ein Betrungsversuch.

  2. wenn das Programm irgendetwas online zu suchen hat kann es sich ja das "echte" Datum aus dem netz ziehen

  3. bei der installation wird das Datum Gespeichert wenn dann beim Start des Programmes ein datum vorliegt das Niedriger ist als das der Installation, betrug

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

S
8.746 Beiträge seit 2005
vor 18 Jahren

Original von S.H.-Teichhof

Achtung: Ein beliebter Trick ist es, die Uhrzeit vorzustellen, bevor du die Software installierst. Dann läuft die Trial ewig. Gute System erkennen das aber, wobei mir unklar ist, wie die das machen, aber es funktioniert!

  1. bei der installation wird das Datum Gespeichert wenn dann beim Start des Programmes ein datum vorliegt das Niedriger ist als das der Installation, betrug

Ich denke nur 3 wäre praktikabel. Wir haben bei unseren Versuchen natürlich genau dieses Vorgehen angenommen und versucht das auszuhebeln.

Also, bei einer 30-Tage Trial die Uhrzeit einfach auf einen Tag nach der Installation zurückgesetzt: Hat das Tool erkannt und abgewiesen. Zugleich haben wir alle Registry-Einträge (da könnte das der Zeitpunkt des letzten Laufes drin sein) den das Programm erzeugt, auf diesen Zeitpunkt zurückgerollt. Auch kein Effekt. Da wußten wir auch nicht mehr weiter und waren zufrieden. 🙂

In jedem Fall nicht so einfach auszuhebeln wie man denkt.

Eigentlich wollte ich damit nur deutlich machen, wie aufwändig es ist, eine halbwegs sichere Lösung an den Start zu bekommen. Vom Schutz gegen Kernel-Debugger, CopyMem oder ähnliches wollen wir gar nicht reden.