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-Key: 333997

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

Printed on: April 19, 2024 at 14:04 o'clock

Mitglied: 132692
132692 Apr 03, 2017 updated at 15:10:00 (UTC)
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.
Member: it-frosch
it-frosch Apr 03, 2017 at 15:07:11 (UTC)
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
Member: em-pie
em-pie Apr 03, 2017 at 15:17:16 (UTC)
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
Member: FilaBras
FilaBras Apr 03, 2017 at 15:19:29 (UTC)
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
Member: DerWoWusste
DerWoWusste Apr 03, 2017 at 15:19:57 (UTC)
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.
Member: StefanKittel
StefanKittel Apr 03, 2017 at 15:26:23 (UTC)
Goto Top
- Seriennummern (Mainboard, HDD, RAM, etc) oder/und MAC-Adressen
- Onlineprüfung beim Start
Member: StefanKittel
StefanKittel Apr 03, 2017 at 15:27:50 (UTC)
Goto Top
Oder ein Lizenzserver im LAN an den sich die PCs anmelden.
Der hat dann 1 Dongle oder eine Onlineanbindung
Member: StefanKittel
StefanKittel Apr 03, 2017 at 15:28:31 (UTC)
Goto Top
Oder/Und anzeige des Names des Kunden im sichtbaren Bereich.
Mitglied: 132692
132692 Apr 03, 2017 updated at 15:33:35 (UTC)
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.
Member: sabines
sabines Apr 03, 2017 at 16:00:18 (UTC)
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
Member: DerWoWusste
DerWoWusste Apr 03, 2017 at 16:36:27 (UTC)
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.
Member: StefanKittel
StefanKittel Apr 03, 2017 updated at 16:52:17 (UTC)
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
Member: StefanKittel
StefanKittel Apr 03, 2017 at 17:02:08 (UTC)
Goto Top
Mitglied: 108012
108012 Apr 03, 2017 at 17:26:08 (UTC)
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
Mitglied: 117471
117471 Apr 03, 2017 at 18:35:30 (UTC)
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
Member: umount
umount Apr 03, 2017 at 20:08:15 (UTC)
Goto Top
Hallo,

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

StarForce Home

Grüße

Yannick
Member: DerWoWusste
DerWoWusste Apr 04, 2017 at 07:25:36 (UTC)
Goto Top
Moin.

Vielen Dank an alle - ich gebe die Ideen und Vorschläge so weiter und werde ggf. Rückfragen übermitteln.
Member: Vancouverona
Vancouverona Apr 06, 2017 at 09:32:00 (UTC)
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.
Member: StefanKittel
StefanKittel Apr 06, 2017 updated at 09:53:32 (UTC)
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
Mitglied: 117471
117471 Apr 06, 2017 at 11:29:56 (UTC)
Goto Top
Huhu,

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

Gruß,
Jörg
Member: Vancouverona
Vancouverona Apr 06, 2017 at 13:33:00 (UTC)
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
Member: Lochkartenstanzer
Lochkartenstanzer Apr 06, 2017 at 13:44:27 (UTC)
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
Member: Vancouverona
Vancouverona Apr 06, 2017 at 14:08:51 (UTC)
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
Member: kaeptenblei
kaeptenblei Apr 10, 2017 at 11:42:10 (UTC)
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ß
Member: DerWoWusste
DerWoWusste Apr 11, 2017 at 07:33:16 (UTC)
Goto Top
Schau ich mir an, vielen Dank!