Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Seriennummersystem - gut und schön aber wie Infos speichern? (https://www.delphipraxis.net/149836-seriennummersystem-gut-und-schoen-aber-wie-infos-speichern.html)

TheMiller 31. Mär 2010 16:20


Seriennummersystem - gut und schön aber wie Infos speichern?
 
Hallo,

ich habe mir ein Seriennummernsystem gebaut, mit dem ich zwischen registrierten und unregistrierten Usern unterscheiden kann (klar) und mit dem ich zwischen Updateberechtigungen unterscheiden kann.

Das Programm prüft die Seriennummer und schaut, ob man zB Updates laden darf.
Mein Root-Server im Internet stellt die Updates bereit, und gibt diese raus, sofern er auch eine gültige Update-Lizenz errechnet hat. (Die SN wird also mit an den Server gesendet).

Meine Frage ist nun, wie ich die Seriennummer im Programm (oder im Programmverzeichnis), Registry o.Ä speicher. Sollte die Seriennummer verschlüsselt sein, und wenn ja, wie kann mein Server-Skript die Verschlüsselung rückgängig machen und die SN zu prüfen? Sollte ich von der SN einen MD5-Hash ablegen? Wie macht man das?

Ich möchte auch, dass einige Funktionen nur für registrierte User zugänglich sind. Eine Überprüfung mit

if (registered) then

ist ziemlich sinnlos. Wie könnte ich das bewerkstelligen.

PS: Die beiden Fragen hängen ja auf Grund der Speicherung und Verschlüsselung zusammen. Deswegen mache ich nur einen Post auf.

Vielen Dank!

s.h.a.r.k 31. Mär 2010 16:32

Re: Seriennummersystem - gut und schön aber wie Infos speich
 
Das mit dem verschlüsselt Speichern kann man schon machen, nur ob es auf der Client-Seite unbedingt nötig ist, weiß ich nicht und wage ich zu bezweifeln. Warum lässt du deine Software nicht schon von vorn herein wissen, welchen "Status" sie hat und welche Funktionen diese ausführen darf? Das hängt ja scheinbar vom Serial ab und die Logik kannst du deinem Programm ja mitgeben, oder? (wenn jemand sowas hacken will, dann schafft er es auch, wenn eine verschlüsselung im spiel ist :) )

Die Funktionalität mit dem Root-Server kannst du ja belassen. So müssen aber beide den selben Algorithmus haben, um feststellen zu können, was der Client darf bzw. was er für Updates bekommt.

Zitat:

Zitat von DJ-SPM
Ich möchte auch, dass einige Funktionen nur für registrierte User zugänglich sind. Eine Überprüfung mit

if (registered) then

ist ziemlich sinnlos. Wie könnte ich das bewerkstelligen.

Warum ist das sinnlos? Du könntest diverse Methoden auch nur optisch ausblenden, aber genau verstehe ich hierbei nicht, auf was du hinaus willst? Plugins vielleicht?

TheMiller 31. Mär 2010 16:40

Re: Seriennummersystem - gut und schön aber wie Infos speich
 
Das hört sich doch soweit ganz gut an - dann speichere ich die Registrierungsdetails in einem Record. Man sollte dann halt einfach auf seine Daten aufpassen.

Server und Programm haben den gleichen Algorithmus. Ich möchte damit verhindern, dass Leute an Updates rankommen, die da nicht ran sollen. Immerhin kann niemand die Prüfung am Server beeinflussen - im Windows-Programm schon.

Visuell ausblenden ist eine gute Idee. Ich wollte die Anzahl der Einträge begrenzen.

Mit Status meinst du, ich sollte das Programm bei Start prüfen lassen, ob es registriert ist, oder nicht? Angenommen, ich würde es tun, würde ich bei Start eine Boolean-Variable haben, in der dann true oder false steht. Das kann man aber sehr leicht manipulieren. Gibt es da nichts Besseres?

Danke

Meflin 31. Mär 2010 16:47

Re: Seriennummersystem - gut und schön aber wie Infos speich
 
Welchen Sinn sollte es haben, die Seriennummer zu verschlüsseln? Der Client kennt sie doch sowieso. Wenn er sie also (unberechtigt) weitergeben will, wird ihn daran nichts hindern, auch eine Verschlüsselung nicht.

TheMiller 31. Mär 2010 16:49

Re: Seriennummersystem - gut und schön aber wie Infos speich
 
Das meinte ich auch nicht. Ich dachte eher, dass nicht der X oder Y an den PC geht und die SN sich abschreibt/ausliest.

p80286 31. Mär 2010 16:53

Re: Seriennummersystem - gut und schön aber wie Infos speich
 
Du könntest z.B. eine Schlüsseldatei mit anlegen, deren MD5 gebildet wird und dann....
und dann wird noch etwas Maschinen/Benutzerspezifisches dazu gepackt.

Und dann wirf noch ein paar programmtechnische Nebelkerzen....

aber letztendlich läuft es immer auf
"if true then"
hinaus.

Gruß
K-H

TheMiller 31. Mär 2010 16:56

Re: Seriennummersystem - gut und schön aber wie Infos speich
 
ok. Das wollte ich hören. Ich rätsel die ganzen Tage schon - aber mir fiel auch nichts anderes ein.

So werde ich es dann auch machen.

Dann baue ich mir am besten eine Funktion, die das "if true then" UND die Nebelkerzen beinhaltet. Und die rufe ich dann immer auf, ja?

p80286 31. Mär 2010 17:02

Re: Seriennummersystem - gut und schön aber wie Infos speich
 
Zitat:

Zitat von DJ-SPM
ok. Das wollte ich hören. Ich rätsel die ganzen Tage schon - aber mir fiel auch nichts anderes ein.

So werde ich es dann auch machen.

Dann baue ich mir am besten eine Funktion, die das "if true then" UND die Nebelkerzen beinhaltet. Und die rufe ich dann immer auf, ja?

Ich denke ja, aber bitte keine Pascal-Nebelkerzen, sondern Assembler!

Gruß
K-H

Edith:
Wie wäre es mit der Verwndung von Alt.DataStreams?

TheMiller 31. Mär 2010 17:04

Re: Seriennummersystem - gut und schön aber wie Infos speich
 
hm... ich habe weder von "Assembler"-Nebelkerzen, noch von Alt.DataStreams Ahnung ;)

TheMiller 31. Mär 2010 18:34

Re: Seriennummersystem - gut und schön aber wie Infos speich
 
Eine Frage noch... Kann man die Variablennamen in einem Disassembler, Debugger etc. betrachten? Also, ich möchte den Key in einer globalen Variable speichern, um ihn nicht immer wieder aus der Datei lesen zu müssen. Kann ich die Variable "key" nennen, oder ist das verdächtig?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:54 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz