AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Empfehlungen für Kopierschutz-Konzept?
Thema durchsuchen
Ansicht
Themen-Optionen

Empfehlungen für Kopierschutz-Konzept?

Offene Frage von "rai29"
Ein Thema von rai29 · begonnen am 21. Nov 2008 · letzter Beitrag vom 22. Nov 2008
 
rai29

Registriert seit: 24. Sep 2005
12 Beiträge
 
#1

Empfehlungen für Kopierschutz-Konzept?

  Alt 21. Nov 2008, 21:35
Hallo an Alle!

..Ja, ich weiß.. Das Thema Kopierschutz wurde hier schon 1000mal durchgekaut, aber ich würde die Profis unter Euch gern einmal um eine Empfehlung für mein konkretes Projekt bitten. Und dazu habe ich im ganzen Forum noch nicht die richtige Antwort gefunden. Es geht auch vielmehr um das Gesamt-Konzept als den technischen Kopierschutz.

Folgende Infos zur Anwendung:
- Die Anwendung dient zum Zugriff auf und Bearbeiten von bestimmten Daten, die auf einem Zentralserver liegen. Da der Zugriff auf den Zentralserver jedoch nicht immer zur Verfügung steht (zB. auf Laptops) werden die Daten beim Client lokal repliziert.
- Die Nutzer sind Firmen mit ggf. eigenen IT-Fachleuten, die durchaus einfache Cracking-Kenntnisse besitzen könnten. Die Anzahl der Anwender wird maximal etwa 50 betragen.
- Das Programm wird ohne Daten auf CD geliefert. Diese werden durch Synchronisation mit dem als sicher zu betrachtenden Zentral-Server (via Internet, sichere Verbindung) erhalten.
- Der Datenaustausch ist eine Kernfunktion der Anwendung. Für die Funktion des Programms ist eine regelmäßige Synchronisation mit diesem Server erforderlich. Dabei werden regulär auch (veraltete) Daten nach Vorgabe des Servers gelöscht. // Hier könnte meiner Meinung nach der Kopierschutz ansetzen und bei Feststellung einer Verletzung der Lizenz alle Daten löschen (und evtl. danach den Dienst einstellen). Diese können im Zweifel ja später durch erneute Synchronisation wiederhergestellt werden.
- Das Programm erhält regelmäßig Updates (via Internet). Dabei werden alte Programmversionen von der Synchronisation ausgeschlossen. Der Anwender ist somit zum Update gezwungen und kann daher evtl. gecrackte Dateien nicht lange nutzen.

Ich benötige für das Programm also eine Art Kopierschutz, der folgendes leistet:
- Das Programm darf mit einer Lizenz nur einmal auf einem Rechner installiert werden.
- Die Aktivierung erfolgt nach der Installation per Lizenzdatei mit asynchroner Verschlüsselung und Signatur. (eMail oder online)
- Die Lizenz (Lizenzdatei) soll an den PC gebunden sein, z.B. per HardwareIDs. Das Programm soll jedoch nach Änderung von nur einer relevanten Hardwarekomponente ersteinaml nur eine erneute Aktivierung erfordern (und weiter funktionieren) und erst nach Änderung von zwei Komponenten den Dienst verweigern.
- Aktivierung (und Deinstallation/Deaktivierung) dürfen eine Onlineverbindung voraussetzen.
- Da die Lizenz eine Gebühr je Arbeitsplatz vorsieht und die Kunden das Programm erst nach dem Kauf (mindestsens) einer Lizenz erhalten (kein Internet Download), soll der Kopierschutz hauptsächlich gegen das Klonen (verwendern derselben Lizenz auf mehreren PCs) schützen.
- Der Administrator (am Server) soll soweit wie möglich auch Kontrolle über die bereits übertragenen Daten haben. Der Nutzer soll nach Ablauf der Lizenz keinerlei Zugriff mehr auf die Daten haben.

Ich weiß, dass die Rahmenbedingungen zu Ungunsten der Käufer ausgelegt sind. Diese müssen aufgrund anderer Verträge jedoch meine Software verwenden. Der Kopierschutz soll nur sicherstellen, dass für jeden PC einen eigene Lizenz gekauft wird. Es soll auch das weitergeben der Software untereinander verhindert werden.

Nun zu meiner Idee:
Da der zentrale Server sicher ist, ist nur die Client-Anwendung für den Kopierschutz interessant.
Die Replikation der Daten soll auf dem Client in einer verschlüsselten Datenbank gespeichert werden. Damit wird ein Zugriff ohne funktionierendes (z.B. mangels Lizenz) Programm verhindert.
Damit die Datenbank nicht einfach auf einen anderen PC übertragen und mit der dortigen Lizenz verwendet werden, sollte der Datenbank-Schlüssel bzw. -Passwort ebenfalls von Arbeitsplatz zu Arbeitsplatz verschieden sein.
Ich möchte den DB-Key bzw. -Passwort zudem nicht hardcoden sondern aus der Lizenzdatei berechnen lassen. Eine ungültige Lizenzdatei verhindert so erstmal den Zugriff auf die Daten(bank). Abgelaufene Lizenzdateien sollen automatisch gelöscht werden. // Eine Frage wäre, ob man aus einer (gültigen) Lizenzdatei und dem dekompilierten Programm nicht den DB-Key ermitteln kann
Als weitere Schutztechniken würde ich dann nur den aus dem Forum bekannten Debugger-Schutz (Hier im Forum suchenisDebuggerPresent) und eine UPX-Komprimierung einbauen.

Was haltet Ihr von dem Konzept? Was könnt Ihr mir dazu für Tipps geben? Könnt Ihr evtl. Komponenten empfehlen, die mir einen Teil der Arbeit abnehmen.

Danke schonmal

[Edit: Tippfehler beseitigt]
  Mit Zitat antworten Zitat
 


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:29 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