Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.132 Beiträge
 
Delphi 12 Athens
 
#11

AW: Programm mit Passwort schützen

  Alt 19. Jan 2021, 12:32
Es gibt auch Varianten mit einem Hardwareschlüssel, wie z.B. einem kleinen USB-Stick, anstatt einer Serial/Lizenzdatei.
Bei Google suchenusb security dongle / Bei Google suchenusb license dongle / ...



Ist das Passwort nur für den sicheren Start, oder reicht eine Lizenzprüfung bei Installation?
* also z.B. bei Installation wird ein Key aus Hardware, Passwort und/oder Lizenz generiert, der wird gespeichert (Registry oder Datei) und beim Start wird nur noch geprüft, ob der gespeicherte Key zum aktuellen Hardware-Key gültig ist.
* alternativ kann man diesen Key auch ohne Hardware berechnen, aber dann kann man auch den einmal berechneten Key kopieren und der Raubkopie Sicherheitskopie des Installers beilegen und weitergeben


Du hast auch erstmal grundsätzlich mehrere Möglichkeiten
* [OK ist blöd] festes Passwort, ohne Abhängigkeiten (also Passwort immer und überall gleich)
* Passwort wird berechnet (oder kommt von extern, z.B. in Lizenzdatei verschlüsselt gespeichert) und wird bei Programmstart abgefragt
* * z.B. Passwort ist in einem Lizenz-Key (Serial-Number) oder einer Lizenz-Datei verschlüsselt (bzw. Diese wird zur Berechnung des Passwortes benutzt)
* * oder Passwort wird aus einem Hardware-Key generiert (CPU-ID, HDD-Serial, oder wer weiß was sonst noch)
* Key wird berechnet (oder kommt von extern) und wird bei Programmstart gegen die Hardware geprüft

* Lizenz-Dateien könnte man weitergeben (könnte aber eventuell auffallen, wenn Kunde X eine Lizenz nutzt, die "Kunde Z" heißt)
* oder man könnte einen Hardware-Key generieren lassen, zu euch übermitteln, und damit die Lizenzdatei oder eine Serial generieren

* beim Hardware-Key aufpassen, denn wird der PC getauscht, upgegraded oder repaiert, dann kann/wird sich der berechnete Key ändern (siehe letzter Absatz) und man braucht eine neue Lizenzdatei


* und dann kommt noch dazu, wie "sicher" es sein soll ... falls jemand versucht die Prüfung im Programm zu patchen/deaktivieren oder das Passwort auszulesen (bzw. abgucken wie es berechnet wird)
Hast du ein if not LizenzIstOK then Exit; oder if PasswortDialog <> 'geheimes passwortthen Exit; , dann reicht es oft aus nur ein Bit zu ändern,
und schon entsteht ein if {not} LizenzIstOK then exit;
* * darum gibt es auch "viele" billige/teure Passwort-/Lizenzschutzkomponenten




Und bedenkt bitte auch, wie "wichtig" diese Software für einen (legalen) Käufer in 40 Jahren noch sein könnte.
Ich hatte vor einer Weile eine Software in den Händen, welche eine "uralte" Hardware steuert. (aus Nostalgie und als Backup aufgehoben, wenn/falls die moderne Maschine nicht will)
Der Hersteller/Programmierer gestorben, dessen Frau hatte alle Unterlagen inzwischen entsorgt, auch die gefundenen Nachbesitzer der Nachbesitzer der Firma und auch ein paar Vertriebler waren nicht mehr auffindbar und wenn doch, dann hatten sie nichts mehr.
Die Serials waren an einen Hardware-Key gebunden und der Steuer-PC musste ersetzt werden. (mehrere Serials, je für einen gekauften Teil/Module in der/den EXEen)
Software mit aus Hardware-Key generierter Serial, über eine fremde kommerzielle SerialPrüfKomponente, deren Firma aber auch nicht mehr existierte.
Zum Glück sind wir an eine Vertriebler-CD gekommen, wo eine passwortgeschützte Serial-Generator-EXE mit drauf war, deren Passwort aber niemand mehr kannte,
aber wo glücklicher Weise die Passwort-Prüfung echt schlampig gemacht wurde. (das Passwort wurde für die Serialgenerierung benutzt, also ließ sich nicht auskommentieren, aber am Anfang wurde es Zeichen für Zeichen mit Hardcodierten einzelnen Chars verglichen, damit das Passwort nicht als Ganzes in der EXE steht)
In diesem Fall wurden die Passwörter/Serials nur zur Freischaltung von Modulen benutzt, da alles immer in der EXE drin ist, auch wenn etwas nicht gekauft wurde,
denn ohne Hardware wäre diese Sorftware eh nutzlos und die Hardware lässt sich nicht so "leicht" kopieren. (daher auch oben siehe "dongle")
Witzig: Auch das Hauptmodul mit Serial, was man aber eh immer braucht, also wo es garnicht möglich ist, dass man es nicht gekauft hätte.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (19. Jan 2021 um 12:51 Uhr)
  Mit Zitat antworten Zitat