AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm mit Passwort schützen

Ein Thema von Kegasetu · begonnen am 19. Jan 2021 · letzter Beitrag vom 21. Jan 2021
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von himitsu
himitsu

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

AW: Programm mit Passwort schützen

  Alt 19. Jan 2021, 13: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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

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

Registriert seit: 14. Okt 2006
Ort: Nürnberg
719 Beiträge
 
Delphi XE5 Professional
 
#12

AW: Programm mit Passwort schützen

  Alt 19. Jan 2021, 13:57
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 /
Ich habe mit dem Matrix-Dongle http://www.matrixlock.de/techndat.htm gute Erfahrungen gemacht. Die bereitgestellte Zusatzsoftware ermöglicht auch die komplette Verschlüsselung von .Exe oder .DLL, welche ohne angeschlossenen Dongle dann verschlüsselt bleiben nicht debugbar und nicht ausführbar sind.
Gruß, Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
Kegasetu

Registriert seit: 26. Sep 2013
85 Beiträge
 
#13

AW: Programm mit Passwort schützen

  Alt 19. Jan 2021, 14:12
Wie wäre es denn mit einer Überprüfung, ob das richtige Medium eingelegt ist? Es braucht keinen großen Schutz, ich glaube kaum, dass jemand sich da so viel Mühe macht. und wenn doch, dann hat er halt eine Kopie. Das heißt ja nicht, dass gleich der "Markt" damit überschwemmt wird.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Programm mit Passwort schützen

  Alt 19. Jan 2021, 14:37
Also diese Dongles sind so, dass darauf ein Mikroprozessor ist, welcher eine Verschlüsselung macht.
Entweder um damit einfach/billig einen SerialKey/Lizenzdaten zu prüfen oder z.B. Programmcode/Daten sind verschlüsselt und kurz vor Ausführung wird das darüber entschlüsselt.
Im Prinzip gibt es auch programmierbare Dongles, da kann man "wichtigen" Programmcode/Berechnungen/Daten direkt in den Dongle einbauen, welches sich dann praktisch auch nicht (einfach) kopieren lässt.

Aber ja, man kann auch vom USB-Stick/CD/Festplatte die Serial auslesen, sie für den Installer verwenden und dort darauf prüfen.
* bei USB-Stick die Serial der Hardware (der USB-Schnittselle/Firmware)
* die Serial der Partition bzs. von einer CD, die kann kopiert werden, aber im einfachten/billigsten Fall "kann" man auch Diese nehmen


Und ja, es geht mit viel oder wenig Aufwand Vieles zu machen.
Kommt halt drauf an wie "sehr" man etwas schützen will/muss.



An irgendeine Hardware gebunden, da lässt es sich einfacher schützen, da Diese (meistens) nicht einfach kopiert werden kann.
Ansonsten kann man bei if PasswortDialog <> 'geheimes passwortthen Exit; anfangen und muß einen immer größeren/komplexeren Aufwand betreiben, je mehr man verzweifelt versuchen will es zu schützen. (effektiv ist aber praktisch ALLES knackbar, mit entsprechend ausreichend Aufwand/Zeit)

Im Falle der oben erwähnten Software wurde schon vor mir zuerst versucht die komplette Festplatte zu kopieren, also installiertes Programm inkl. Win95 und der Treiber,
da Anfangs nichtmal mehr ein funktionierender Installer vorlag ... CD war teilweise nicht mehr lesbar, in vielen CD-Laufwerken.
Aber da die Serials an die Hardware des PCs gebunden waren, anstatt an die Hardware der Maschiene, lief es natürlich nicht, auf dem neuen PC.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (19. Jan 2021 um 14:56 Uhr) Grund: schlechtschreibung
  Mit Zitat antworten Zitat
Kegasetu

Registriert seit: 26. Sep 2013
85 Beiträge
 
#15

AW: Programm mit Passwort schützen

  Alt 19. Jan 2021, 15:15
Das mit der Hardware liest sich nicht schlecht. Der Aufwand zum Schützten muss wirklich nicht so weit ausgelegt werden. Im Grunde muss nur verhindert werden, dass das Ding wie eine Minecraft.exe weitergereicht wird
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
155 Beiträge
 
#16

AW: Programm mit Passwort schützen

  Alt 19. Jan 2021, 15:49
Vielleicht sollte man ein oder zwei Schritte zurücktreten, und sich das Ganze genauer angucken.

Um was für eine Software handelt es sich? Ist es eine Massensoftware wie MS Office oder Photoshop, dann lohnt es sich in den Schutz zu investieren. Was ist da sbesondere an dieser Software? Sie ist begeht, also erden Keys auch im Internet weitergegeben.

Kommen wir aber zu einen kleinen Software, die nur paar Dutzend Furmen nutzen werden. Solche Keys findet man nicht im Internet, weil sich kaum einer interessiert. Warum sollte einer in einem Warez-Board Software oder Keys für das korrekte justieren einer Glühbirne, in einer Arbeitsumgebung anbieten? Solche Software interessiert keinen, höhstens paar Firmen.

Worauf ich hinauswill - ist der perfekte Schutz tatsächlich nötig? Der perfekte Schutz ist nur für Massensoftware wichtig. Keine Firma setzt einen Hacker für paar Stunden an einen Software, um die zu hacken, wenn die Software einen bruchteil davon kostet.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Programm mit Passwort schützen

  Alt 19. Jan 2021, 19:36
Die "billigste" Variante:
* HardwarKey berechnen (z.B. ID/Serial von CPU/MainBoard/... zuammenfassen und als Hash darstellen > CRC32 oder z.B. die ersten X Zeichen eines MD5)
* * oder z.B. die SID des Windows-Benutzers oder die ID/ProduktKey des Windows als HardwareKey SoftwareKey verwenden
* Kunde sagt euch den Key und ihr könnt den mit einem Key neu verschlüsseln (etwas anhängen und neuer Hash erstellt) ... das ist dann die Serial für die Installation
* Bei Programmstart wird wieder der HardwarKey berechnet, mit dem "geheimen" Zusatz neu gehasht und das Ergebnis wird mit der gespeicherten Serial verglichen

Das kann auch der Installer automatisch machen, also HardwareKey mit den Kundenlogindaten zu eurem Server und der rückt dann entsprechend den CheckKey/Serial raus und speichert ihn, welchen dann das Programm beim Start mit dem HardwareKey vergleichen kann. (hier müsste dann in euren Server noch was rein, was z.B. die Installationen zählt und bei zuviel sperrt ... siehe Delphiinstallationen, da ist auch nach X-Mal erstmal Schluss)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

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

Registriert seit: 26. Sep 2013
85 Beiträge
 
#18

AW: Programm mit Passwort schützen

  Alt 20. Jan 2021, 08:25
Die "billigste" Variante:
* HardwarKey berechnen (z.B. ID/Serial von CPU/MainBoard/... zuammenfassen und als Hash darstellen > CRC32 oder z.B. die ersten X Zeichen eines MD5)
* * oder z.B. die SID des Windows-Benutzers oder die ID/ProduktKey des Windows als HardwareKey SoftwareKey verwenden
* Kunde sagt euch den Key und ihr könnt den mit einem Key neu verschlüsseln (etwas anhängen und neuer Hash erstellt) ... das ist dann die Serial für die Installation
* Bei Programmstart wird wieder der HardwarKey berechnet, mit dem "geheimen" Zusatz neu gehasht und das Ergebnis wird mit der gespeicherten Serial verglichen

Das kann auch der Installer automatisch machen, also HardwareKey mit den Kundenlogindaten zu eurem Server und der rückt dann entsprechend den CheckKey/Serial raus und speichert ihn, welchen dann das Programm beim Start mit dem HardwareKey vergleichen kann. (hier müsste dann in euren Server noch was rein, was z.B. die Installationen zählt und bei zuviel sperrt ... siehe Delphiinstallationen, da ist auch nach X-Mal erstmal Schluss)
Der Server ist vor allem für innere Angelegenheiten. Dort darf auf keinen Fall was drankommen, deswegen lasse ich da lieber die Finger von.

Ich glaube ich mache das so, ich erstelle eine Demoversion die für alle frei ist und dann noch eine Version die auf einem Harddrive ist. Das kostet zwar mehr, aber bei den wenigen Kopien die benötigt werden ist das verkraftbar.

Nun meine Frage, wie kann ich sicherstellen, dass auch wirklich meine CD eingelegt ist und nicht eine Kopie?

Danke für den ganzen Input!
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: Programm mit Passwort schützen

  Alt 20. Jan 2021, 08:33
Nun meine Frage, wie kann ich sicherstellen, dass auch wirklich meine CD eingelegt ist und nicht eine Kopie?
Das kann man nicht sicherstellen. Was machst du eigentlich bei Usern, die kein CD/DVD-Laufwerk haben? Das kommt immer häufiger vor.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#20

AW: Programm mit Passwort schützen

  Alt 20. Jan 2021, 09:04
Nun meine Frage, wie kann ich sicherstellen, dass auch wirklich meine CD eingelegt ist und nicht eine Kopie?
Das kann man nicht sicherstellen. Was machst du eigentlich bei Usern, die kein CD/DVD-Laufwerk haben? Das kommt immer häufiger vor.
Theoretisch gibt es Möglichkeiten auch für CD/DVD einen Kopierschutz zu realisieren.
Aber in 2021 ist das ein Ausschlußkriterium für eine Software.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:33 Uhr.
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