Einzelnen Beitrag anzeigen

rai29

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

Re: Empfehlungen für Kopierschutz-Konzept?

  Alt 22. Nov 2008, 11:35
Zitat von Reinhard Kern:
Zitat von rai29:
// 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).
Hallo,

du hast eine völlig falsche Einstellung Kunden gegenüber; meinetwegen hast du Rechte am Programmcode, nicht aber an den Daten, die gehören den Kunden - Löschen ist kriminell.

Es wird zwar immer wieder vorgeschlagen, bei Lizenzverletzungen die gesammelten Daten zu löschen oder die Festplatte zu formatieren oder den Monitor explodieren zu lassen, aber das ist nun mal alles strafbar, und das völlig zu recht.
Hallo Reinhard,

Bei der Anwendung handelt es sich um eine Art Vertriebssystem. Mein Kunde B ist der Betreiber des Systems. Dieser stellt seinen "Vertriebsassistenten" C und D seine Software und seine (zB. Kunden)Daten zur Verfügung. Die für die Client- Software zu zahlende Lizenzgebühr wird größtenteils an mich, den Anbieter A, weitergereicht wird. Da C und D durch Verwendung des Systems Gewinne (in Form von Provisionen von B) erwirtschaften, lohnt sich für diese die Investition für die Softwarelizenz. Die Nutzung der (Client-)Software ist vertraglich zwischen B und C bzw. B und D geregelt.

Mein direkter Kunde ist der Betreiber des Servers B, auf dem wiederum meine Sever-Software läuft. B stellt seinen Lizenznehmern (C und D) seine Daten zur Verfügung. B hat dann selbstverständlich (vertraglich geregelt) das Recht C und D den Zugriff auf seine Daten wieder zu entziehen. zB. durch Löschen. Gesteuert würde das Ganze vom Zentralserver aus, der bei meinem Kunden (B) steht.

Zitat von Reinhard Kern:
Zitat von rai29:
Dabei werden alte Programmversionen von der Synchronisation ausgeschlossen. Der Anwender ist somit zum Update gezwungen und kann daher evtl. gecrackte Dateien nicht lange nutzen.
Du hast wirklich nichts anderes im Kopf als deinen Kunden (!) den grösstmöglichen Ärger zu bereiten. Was ist nach den Betriebsferien? Neue Lizenz kaufen oder was?
Die Updates werden kostenfrei online zur Verfügung gestellt. Ein Programmkomponente der Client-Software prüft nach dem wohl bekannten Schema regelmäßig auf das Vorhandensein neuer Versionen, lädt diese herunter und installiert sie. (auf Benutzerwunsch) Dies kann natürlich sofort geschehen, wenn die Synchronisation aufgrund einer veralteten Version abgelehnt wurde. Eine Onlineverbindung steht ja für die Synchronisation zur Verfügung.

Zitat von Reinhard Kern:
Dass ein Kunde ein Programm verwenden MUSS, ist in 99,99 % der Fälle eine Fehleinschätzung, die durch Grössenwahn des Programmierers verursacht ist.
Ich gebe dir grundsätzlich Recht. Aber in diesem Fall sieht die Sache ander aus: Da die Käufer der (Client-)Software nicht direkt meine Kunden, sondern selbst Vertriebspartner (=Kunden) meines Kunden sind, können sie von diesem vertraglich verpflichtet werden dessen (also meine) Software zu verwenden. Oder sehe ich das falsch?
Ich als Anbieter A stelle für die Nutzer der Client-Software C und D nur den Support zur Verfügung.

Zitat von blackdrake:
Hierzu könnte ich was sagen:

Zitat von rai29:
Eine Frage wäre, ob man aus einer (gültigen) Lizenzdatei und dem dekompilierten Programm nicht den DB-Key ermitteln kann
Ich würde sagen, ja. Ich würde auch bei einer sicheren (SSL?) Verbindung nicht direkt auf die Datenbank zugreifen. Hier wäre wieder die technische Seite gefragt, welche Datenbank denn zum Einsatz kommt.

Möchtest du x Kunden haben, sollte es rein theoretisch auch 50 unabhängige Datenbanken geben, z.B. verschiedene MySQL-Nutzer. Ist ein Kunde gehackt oder findet dieser mittels Packet-Loggern oder was auch immer den DB-Key heraus, kannst du individuell den MySQL-Zugang für diesen Kunden sperren.

Je nach dem, was das für Daten sind - global oder kundenbezogen - sollte natürlich der MySQL-Zugang von Kunde X nicht auf Kundendaten von Kunde Y zugreifen dürfen - also auf keinen Fall zentralen DB-Zugriff, der alle Daten zur Verfügung stellt, sofern Daten nutzerspezifisch sind.

Hättest du eine exotische Datenbank, bei der es wirklich nur 1 Zugang gäbe, würde ich raten, einen Serverdienst einzurichten, der Anfragen aus einem eigenen Protokoll annimmt und nur die Datenbankverbindung durchreicht, wenn der Kunde eine gültige Lizenz hat - dann wäre ein gehacktes DB-Passwort nicht mehr möglich, da die Lizenz für den Serverdienst das Passwort wäre und das "echte" Passwort geheim bleibt.

Gruß
blackdrake
Hallo blackdrake!
Danke für deine Anmerkung. Vielleicht habe ich mich etwas undeutlich ausgedrückt.

Es gibt zwei Datenbanken:
Eine auf dem Server. Auf diese hat der Client keinen direkten Zugriff. Die Daten-Synchronisation erfolg über eine spezielle Schnittstelle (meine Software). Die andere DB beim Client ist aus meiner Sicht die gefährdete. Diese DB liegt nur lokal beim Client (zB Access-DB) und kann dort mit einem Client-abhängigen Key verschlüsslt werden. Da den Benutzern C und D der Client-Software die Daten nicht gehören, sollte der Zugriff nur mit gültiger Lizenz möglich sein. Daher wird nach meiner Idee der Key für die Client-DB vom Server festgelegt und dem Client nur in der Lizenzdatei verschlüsselt zur Verfügung gestellt. (Alle Clients haben verschiedene Keys) Damit ist ohne Lizenzdatei kein Zugriff auf die lokale DB möglich und die Software wäre (auch nach Umgehen eines anderen Kopierschutzes) nicht nutzbar. Ich befürchte halt, dass man aus einer abgelaufenen Lizenz(datei) und dem Programmcode den Key für die Client-DB ermitteln kann.

Gruß
Rai
  Mit Zitat antworten Zitat