derwowusste
Goto Top

Kopierschutz für Einsteiger

Servus.

Ein Softwareentwickler bei uns bittet mich um Unterstützung, um zu verhindern, dass ein Kunde seine Software nicht auf mehr als den lizenzierten Rechnern einsetzt.
Mit Dongels und Co. wie Sentinel HASP hatte ich schon häufig zu tun, jedoch standen wir dabei bislang immer nur auf der Seite der Lizenznehmer.

Der Aufwand an Zeit und Geld, um diese Software zu schützen, soll sich in Grenzen halten, da dem Kunden kaum zugetraut wird, Illegales zu tun.
Ich denke, dass es nicht einfach sein wird und von der Anwendung abhängt. Über die müsste ich dann erst einmal Infos einholen. Bislang ist nur klar, dass Software samt Schutz auf Windows 10 laufen soll.

Frage: gibt es da Hoffnung, etwas zu finden, ohne eine Wissenschaft draus zu machen und ohne größere Summen (>1000€) auszugeben?

Content-ID: 333997

Url: https://administrator.de/contentid/333997

Ausgedruckt am: 22.11.2024 um 20:11 Uhr

132692
132692 03.04.2017 aktualisiert um 17:10:00 Uhr
Goto Top
Hi.
Euer Programmierer berechnet mit seiner Software auf dem Zielsystem anhand der Hardware (z.B. Harddisk und Motherboard Seriennummern) einen Hash den euch der Kunde übermitteln muss (Dialog). Dann berechnet Ihr anhand dieses Hashes ein passendes Gegenstück das die Software anhand eures Algorithmus akzeptiert und übermittelt dieses an den Kunden welcher es eintippt,fertig.
Sollte von Ottonormaluser ohne Assembler Kenntnisse nicht umgehbar sein.

Genausogut könnte man es mit Zertifikaten lösen die den Hash im Zertifikat enthalten und nur von euch erstellt werden können welche eure Software dann auf den Hash im CN prüft.

Gruß p.
it-frosch
it-frosch 03.04.2017 um 17:07:11 Uhr
Goto Top
Hallo DWW,

kann der Entwickler nicht in seiner Software die Seriennummer eines angesteckten USB Sticks immer wieder abfragen und dieser USB Stick wird dem Anwender als "Dongel" verkauft?

grüße vom it-frosch
em-pie
em-pie 03.04.2017 um 17:17:16 Uhr
Goto Top
Moin,

könnte er nicht hergehen und sich selbst einen Kopierschutz schreiben?

  • Für die Software wird ein Lizenzschlüssel von ihm generiert und (zentral) in der Applikation hinterlegt.
  • Dann wird für jeden lizensierten Rechner noch die HardwareID abgefragt
  • Aus dem Lizenzschlüssel, der Hardware-ID und einem Salt generiert er sich dann einen neuen kryptischen Key (Hash) und legt diese zentral auf einem Speicher (in Form einer Datei, z.B. PC-001.lic) ab.
Beim starten der Applikation wird dann geprüft, ob der vorhandene Hash mit denen zur Laufzeit erzeugten Daten übereinstimmt.
Einzig für den Kunden unbekannt wäre dann das Salt

Diese Variante wäre dann allerdings nicht benutzer- sondern hardwarebezogen.
Wenn nur angegeben werden soll "Die Applikation darf 47x gelcihzeitig gestartet werden, es ist aber egal von welchem Arbeitsplatz aus" müsste man das ggf. mit hinterlegten Usernamen anstelle von Hardware-IDs erledigen...
ODer mit Countern arbeiten, welche hoch-/ runterzählen, jenachdem, wie viele User gerade angemeldet sind.

Gruß
em-pie
FilaBras
FilaBras 03.04.2017 um 17:19:29 Uhr
Goto Top
Hi,

wir machen es so wie von "pattern" beschrieben. Hat leider den unschönen Nebeneffekt, dass im virtuellen Umfeld es zu Problemen kommen kann, wenn für die VM LoadBalancing gemacht wird und dann plötzlich der Hash nicht mehr stimmt, da muss man manchmal wieder Komponenten aus dem Hash rausnehmen. Wobei man sich auch nicht sicher sein kann, ob der Kunde jetzt nicht einfach nur die VM geklont hat, um sich auf diese Weise eine Kopie zu erstellen. Ist auch etwas Vertrauenssache.

VG
DerWoWusste
DerWoWusste 03.04.2017 um 17:19:57 Uhr
Goto Top
@132692
Hi. Ja, das ist auch hier der erste Gedanke gewesen und Kommandos wie
wmic baseboard get serialnumber
sind ja auch wunderbar ohne Adminrechte lauffähig. Ich frage mich nur, ob diese beiden Infos nicht denkbar einfach zu fälschen sind.
StefanKittel
StefanKittel 03.04.2017 um 17:26:23 Uhr
Goto Top
- Seriennummern (Mainboard, HDD, RAM, etc) oder/und MAC-Adressen
- Onlineprüfung beim Start
StefanKittel
StefanKittel 03.04.2017 um 17:27:50 Uhr
Goto Top
Oder ein Lizenzserver im LAN an den sich die PCs anmelden.
Der hat dann 1 Dongle oder eine Onlineanbindung
StefanKittel
StefanKittel 03.04.2017 um 17:28:31 Uhr
Goto Top
Oder/Und anzeige des Names des Kunden im sichtbaren Bereich.
132692
132692 03.04.2017 aktualisiert um 17:33:35 Uhr
Goto Top
Ja aber die User müssten ja erst mal wissen was du an der
Hardware wie prüfst und wie du den Hash generierst und wie sollen sie das wissen ohne eure Software zu dekompilieren und den Assembler Code zu studieren??
Ist doch wie bei Microsofts Aktivierung, die legen auch nicht offen welche Bestandteile sie zur Aktivierung heranziehen.
sabines
sabines 03.04.2017 um 18:00:18 Uhr
Goto Top
Moin,

um wie viele Kunden geht es?
Wenn's nur wenige sind, kann man spezielle Infos auch hardkodieren, so dass andere damit wenig anfangen können.

Gruss
DerWoWusste
DerWoWusste 03.04.2017 um 18:36:27 Uhr
Goto Top
@132692
Ja aber die User müssten ja erst mal wissen was...
Das sehe ich ein. Dann werde ich das mal vorschlagen.
@sabines
Nicht so viele, weniger als 5.
StefanKittel
StefanKittel 03.04.2017 aktualisiert um 18:52:17 Uhr
Goto Top
Du kannst z.B. recht einfach eine Lizenzdatei erzeugen.
Eine Ini- oder XML-Datei mit Informationen über den Kunden.
Dazu eine Prüfsumme dieser Lizenzinformationen. Z.B. eine MD5 und dann noch ein bisschen XOR, einene Substring am Anfang und Ende und dann wieder ein MD5.

Solange der Kunde nicht ein paar Lizenzschlüssel zum probieren hat findet der das ohne Debugger nicht raus.

Viele Grüße

Stefan
StefanKittel
StefanKittel 03.04.2017 um 19:02:08 Uhr
Goto Top
108012
108012 03.04.2017 um 19:26:08 Uhr
Goto Top
Hallo,

Vorschlag:
Kann der Programmierer, nicht ein TPM Modul auf dem Mainboard, worauf die Anwendung laufen soll, mit einbeziehen?
Das wäre dann in der Regel schnell und günstig zu erledigen!

Alternative:
Den PC oder die PCs mit der Software in ein VLAN packen und dann dort einen Dongle Server mit ins Netzwerk bringen oder
installieren und dort kommt dann der USB Dongle rein und nur die beiden PCs können darauf zugreifen. Kostet aber mehr
und man muss ans Netzwerk ran! Aber die Dongle-Server von SEH sind mittels einer Klappe bzw. Abdeckung die zu
verschließen ist ausgestattet. SEH Oster Bundle & myUTN80

Gruß
Dobby
117471
117471 03.04.2017 um 20:35:30 Uhr
Goto Top
Hallo,

letztendlich stellt sich natürlich die Frage der Fingerprints. Intel hatte mal so 'ne Prozessor-ID (im Pentibumm IV?), das Feature ist aber nach reichlich Diskussionen wieder verschwunden.

Ich würde ein möglichst eindeutiges Kriterium (z.B. die MAC-Adresse) nehmen und ggf. mit einem privaten Key signieren. Die Software beinhaltet dann den Public Key, mit dem die Signatur geprüft wird.

Vielleicht kann man das sogar mit einem Bestellprozess verbinden: Der Kunde installiert das Programm, dieses generiert ggf. einen Request und beim Unterschreiben sieht man ja letztendlich, ob man die MAC-Adresse schon auf 'm Zettel hat.

Gruß,
Jörg
umount
umount 03.04.2017 um 22:08:15 Uhr
Goto Top
Hallo,

Schau dir mal den StarForce Kopierschutz an, die haben sogar eine Variante für E-Mails.

StarForce Home

Grüße

Yannick
DerWoWusste
DerWoWusste 04.04.2017 um 09:25:36 Uhr
Goto Top
Moin.

Vielen Dank an alle - ich gebe die Ideen und Vorschläge so weiter und werde ggf. Rückfragen übermitteln.
Vancouverona
Vancouverona 06.04.2017 um 11:32:00 Uhr
Goto Top
Einfache Lösung, wenn die Software auf einem PC laufen soll, also nicht in einer virtualisierten Umgebung:

Hardware: USB WLAN Stick
Software: Fragt beim Start und bei passender Gelegenheit im Programmablauf die MAC-Adresse des Sticks ab.

Damit kann die Software an jedem Computer benutzt werden, solange der Stick da drin steckt.
StefanKittel
StefanKittel 06.04.2017 aktualisiert um 11:53:32 Uhr
Goto Top
Fällt aber auch eher unter Verschleierung. Und keine Gute.
Es gibt genug Netzwerkkarten wo Du die MAC verändern kannst.

Keine Gute, denn...
Der Kunde bekommt von Dir einen "USB-Dongle" und schaut im Internet was das ist.
->WLAN Stick
Da man darauf keine Daten speichern kann, kann es nur die MAC sein.

Stefan
117471
117471 06.04.2017 um 13:29:56 Uhr
Goto Top
Huhu,

vor allem müsste er dann auch noch Treiber für das Ding installieren...

Gruß,
Jörg
Vancouverona
Vancouverona 06.04.2017 um 15:33:00 Uhr
Goto Top
Auf die Nichtänderbarkeit der MAC-Adresse kann ich als Lieferant achten.

Und solange der Kunde nicht weiß, welche Informationen der Netzwerkkarte ich als "Schlüssel" benutze und wie ich diesen Schlüssel "errechne", sollte das für die meisten Anwendungsfälle reichen.

LG
Jörg
Lochkartenstanzer
Lochkartenstanzer 06.04.2017 um 15:44:27 Uhr
Goto Top
Zitat von @Vancouverona:

Auf die Nichtänderbarkeit der MAC-Adresse kann ich als Lieferant achten.

Zusätzlich zu der Mac kann man auch die Seriennummer auswerten.

lks
Vancouverona
Vancouverona 06.04.2017 um 16:08:51 Uhr
Goto Top
Zitat von @Lochkartenstanzer:

Zitat von @Vancouverona:

Auf die Nichtänderbarkeit der MAC-Adresse kann ich als Lieferant achten.

Zusätzlich zu der Mac kann man auch die Seriennummer auswerten.

lks

Alles, was die Netzwerkkarte als Information so von sich gibt ist nutzbar, solange der Kunde nicht weiss, was ich davon wie benutze...

Vielleicht bilde ich ja einen Hash aus den drei letzten Byte der MAC, den letzten vier Ziffern der Seriennummer und den ersten drei Buchstaben des Herstellers...

Dazu noch ein bisschen salzen, damit's schmeckt...

Für den Entwickler ist das einfach. Der Kunde braucht zu viel Zeit, um herauszufinden, wie es gemacht wurde und begreift hoffentlich, dass die zweite Lizenz billiger ist, als sein Zeiteinsatz für's hacken...

LG Jörg
kaeptenblei
kaeptenblei 10.04.2017 um 13:42:10 Uhr
Goto Top
Hallo DerWoWusste,

schau dir hier:
https://www.protect-software.com/de/loesungen-de/kopierschutz-fuer-softw ...

Ich nutze zwar die Software-Version von denen nicht, aber die "Content-Version" , um PDFs, HTML und anderen Dateinen gegen kopieren zu schützen. Da kann man z.B. die Dateien an einen USB-Stick dongeln - DAS geht wirklich einfach face-smile

Da gibt es auch eine Demo-Version.
Kaufen muss man das Programm bei denen nicht, aber die Lizenzen pro Stick oder Download.

Gruß
DerWoWusste
DerWoWusste 11.04.2017 um 09:33:16 Uhr
Goto Top
Schau ich mir an, vielen Dank!