Autor Thema: Lizenzcode generieren  (Gelesen 4551 mal)

Offline Lloyd

  • Aktives Mitglied
  • ***
  • Beiträge: 211
Lizenzcode generieren
« am: 04.05.11 - 17:33:57 »
Hallo,
ich habe eine Datenbank die ich an verschiedene Kunden vertreiben möchte.
Aktuell quäle ich mich mit der Frage einer vernünftigen Lizenzcodegenerierung.

- nehme ich etwas eindeutiges wie beispielsweise die Maildömäne (da können größere Kunden aber ne Menge von haben, also aufwendig und schlecht) ?
- nehme ich eine Anzahl an Personen die darauf Zugriff haben sollen ?
- mache ich das Serverabhängig (da kann ein großer Kunde aber auch ne Menge von haben, was widerum aufwändig ist ) ?
- ...

Ich bin mir sicher dass ihr in euren Anwendungen jede Menge Gehirnschmalz in eine vernünftige Lizenzcodeberechnung investiert habt und man solche Sachen natürlich nicht preis gibt.

Aus diesem Grund will ich auch keinen Beispielcode haben, sondern wäre über einem Denkanstoß oder Beispiel Algorithmus sehr dankbar.

Nice to have wäre wenn man auch ein Datum für einen Demozeitraum mit Lizenzschlüssel freischalten könnte.

Bin für jede Hinweis wie man so etwas angeht dankbar.
Gruss
Lloyd

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Lizenzcode generieren
« Antwort #1 am: 04.05.11 - 17:50:18 »
Ich habe sowas mal über den Server gemacht. Bei mehreren Servern gibt es dann für jeden Server einen eigenen Lizenzschlüssel, der dann in das Feld Lizenzschlüssel (Mehrfachwert) eingetragen werden kann. Darin war auch das Ablaufdatum verschlüsselt.

Also, beim Check wird jeder Lizenzschlüssel mittels Servernamen entschlüsselt, passt einer und das Datum ist noch gültig, prima, sonst weitersuchen. Kein gültiger Schlüssel, keine Ausführung des Codes.

Wie man mit lokalen Datenbanken umgeht, müsste man prüfen. In meinem Fall war vor allem ein periodischer Agent geschützt und der Großteil der restlichen Anwendung offen, so hatte ich kein Problem mit lokalen Datenbanken.

Vorstellbar wäre auch, die Organisation des Users als Grundlage zu nehmen.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Lizenzcode generieren
« Antwort #2 am: 04.05.11 - 20:52:27 »
Meine Schlüssel sind etwas komplexer. Man kann angeben (jeweils optional):
- Organisation
- Servername
- Benutzeranzahl
- Ablaufdatum,
dazu kommt noch ein Code für das betroffene Programm selber. Plus Prüfziffern und so.

Nicht benötigte Angaben (eine unbegrenzte Firmenlizenz braucht ja nur die Domain) werden durch einen wiederum codierten Füllcode ersetzt. Organisation und Servernamen werden als Hashcode gespeichert. Damit ist der Schlüssel auch immer identisch lang - egal, was da in Wirklichkeit alles drin steckt.
Lokal oder Server ist bei diesem Verfahren natürlich auch vollkommen wurscht.

Hierfür braucht es natürlich auch eine Datenbank, die Codes generiert und bei der Verwaltung hilft.

Zu bedenken ist aber die nicht immer einfache Möglichkeit, die User-Anzahl überhaupt ermitteln zu können. Das ist schon ein ganz eigenes Feld der Debatte (wenn man nicht dumpf die User im DD auslesen will, was ja in der Regel nicht der Wirklichkeit eines Lizenzschlüssels entspricht!).

Bernhard
« Letzte Änderung: 04.05.11 - 20:55:58 von koehlerbv »

Offline Lloyd

  • Aktives Mitglied
  • ***
  • Beiträge: 211
Re: Lizenzcode generieren
« Antwort #3 am: 05.05.11 - 10:02:14 »
Wie verschlüsselt Ihr euren Lizenzcode? Die Notesinterne Verschlüsselung ist dafür eher ungeeignet, oder?
Ich kann zwar so Sachen wie die Notes-Domäne, den Servernamen auslesen und im Quelltext abgleichen, aber wie stellt Ihr das mit einem Ablaufdatum an? Ich müßte das nach meinem jetzigen Kenntnisstand im Quelltext fest hinterlegen, dann bin ich aber nicht wirklich flexibel. Habt Ihr dafür einen Lösungsansatz?
Gruss
Lloyd

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: Lizenzcode generieren
« Antwort #4 am: 05.05.11 - 10:10:18 »
Also ich habe halte es ähnlich wie der Bernhard,

-Organisation
-UserAnzahl
-Lizenztyp (Demo oder Full)
-Gültigkeitsdatum
-Geheimer Schlüssel

Die ganzen Sachen kodier ich dann (geheim) und erstelle einen MD5Hashwert

Die Informationen packe ich zusammen in eine Datei und lasse diese von meinem Programm auslesen, der dann prüft, ob die gegebenen Daten(der geheime Schlüssel steht natürlich in einer ausgeblendeten Skriptbibliothek) zum Hashwert passen. Diese Überprüfung findet jeden Tag statt und sagt dem Benutzer Bescheid, wenn Dinge nicht mehr passen. Wenn was nicht mehr passt stellen meine Funktionen ihre Arbeit auch komplett ein.
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Offline Lloyd

  • Aktives Mitglied
  • ***
  • Beiträge: 211
Re: Lizenzcode generieren
« Antwort #5 am: 05.05.11 - 10:15:52 »
Hi,
mir ist das mit dem Gültigkeitsdatum (für eine Demoversion) noch nicht ganz klar. Wie kann ich so etwas anstellen?
Auf meiner Seite habe ich einen Lizenzgenerator in Form einer Notes DB. Hier gebe ich dann Organisation, Servername, ... ein und lasse einen geeigneten Lizenzcode erzeugen, den ich dann mit der Notes Verschüsselung verschlüssel. Aber das mit dem Ablaufdatum krieg ich nicht hin. Ich kann ja einen mit Notes verschlüsselten String nicht wieder entschlüsseln und somit das Datum extrahieren und abgleichen.

Hier bräuchte ich nochmal einen Anschups.
Gruss
Lloyd

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Lizenzcode generieren
« Antwort #6 am: 05.05.11 - 10:33:35 »
Genau deshalb verwende ich keine noteseigene Verschlüsselung, sondern habe mir eine eigene Methode ausgedacht. Das ist sicher keine Verschlüsselung im wissenschaftlichen Sinne, ich nenne sie auch nur "Verschüttelung". Vorteil ist, dass ich hin- und herrechnen kann, also auch wieder entschlüsseln kann. So bekomme ich auch das Ablaufdatum zurück.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Lizenzcode generieren
« Antwort #7 am: 05.05.11 - 10:47:56 »
Das Ablaufdatum (ganz normale Datumsseriennummer wie von Notes verwendet) dampfe ich auf fünf Stellen ein, die liegen dann verstreut über den 20-Byte-Key. Der Gesamtkey wird mit einem eigenen Verfahren kodiert (und entsprechend dekodiert).
Deshalb kann man diesen Wert auch wieder extrahieren und zurück in eine Datumsseriennummer wandeln.

Bernhard

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: Lizenzcode generieren
« Antwort #8 am: 05.05.11 - 16:36:28 »
entweder du machst es so wie Peter oder Bernhardt oder gibst die Sachen in Klartext mit und kodierst einen Hashwert dazu den du ebenfalls bei fügst und deine Routine zum überprüfen nimmt die Sachen aus dem Klartext bildet einen Hashwert und prüft ihn gegen deinen mitgegebenen. Stimmen die Beiden überein stimmen die Angaben und die Lizenz ist gültig.

In meinem Beispiel hättest du dann ein xml File mit ein paar öffentlichen Daten und dem Hashwert. Der Hashwert selbst beinhaltet natürlich noch einen Teil private Sachen die deine Routine beim überprüfen aber kennt.
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

Offline Lloyd

  • Aktives Mitglied
  • ***
  • Beiträge: 211
Re: Lizenzcode generieren
« Antwort #9 am: 06.05.11 - 07:52:15 »
Danke euch allen für die Informationen. Ich denke ich werde ein Misch Masch aus allen Vorschlägen ausprobieren.
Gruss
Lloyd

Offline bikerboy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.155
  • Geschlecht: Männlich
Re: Lizenzcode generieren
« Antwort #10 am: 09.05.11 - 13:23:49 »
Musst du ja auch, sonst könnte man es ja knacken  :)
Robert Kreutzer

Anwendungsentwicklung

"Jeder Idiot kann was kompliziertes bauen, es Bedarf eines Genie für etwas einfaches"

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz