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?

Empfehlungen für Kopierschutz-Konzept?

Offene Frage von "rai29"
Ein Thema von rai29 · begonnen am 21. Nov 2008 · letzter Beitrag vom 22. Nov 2008
Antwort Antwort
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
blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Empfehlungen für Kopierschutz-Konzept?

  Alt 22. Nov 2008, 00:37
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
Daniel Marschall
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#3

Re: Empfehlungen für Kopierschutz-Konzept?

  Alt 22. Nov 2008, 10:45
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.

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?

Zitat von rai29:
Ich weiß, dass die Rahmenbedingungen zu Ungunsten der Käufer ausgelegt sind. Diese müssen aufgrund anderer Verträge jedoch meine Software verwenden.
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.

Gruss Reinhard
  Mit Zitat antworten Zitat
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
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Empfehlungen für Kopierschutz-Konzept?

  Alt 22. Nov 2008, 12:19
Was ist an einem Dongle auszusetzen?

Ich habe einmal aus Spass bei einem Kunden, der ab und an vergessen hat, das er eine SW von mir nur auf max. 10 PC verwenden durfte, einen kleinen Lizenzlogger eingebaut: Zu jeder Anwendung gibt es eine Lizenzdatei mit einer eindeutigen ID. Beim Programmstart wird die ID zusammen mit der IP sowie dem Anmeldenamen an meinen Logger geschickt, der die Daten erstmal gesammelt hat. Nach einer Weile konnte man sehen, das eine ID immer wieder auf verschiedenen PC unter verschiedenen Useraccounts lief, teilweise sogar gleichzeitig, was eindeutig dem Einstein'schen Prinzip der Singularität widerspricht.
Dann habe ich den Admin und den IT-Leiter nach einer Weile mit den Ergebnissen konfrontiert und wir haben eine gütliche Lösung gefunden. Alle waren zufrieden, keine führte sich ertappt und für mich ist auch noch etwas dabei herausgekommen. Vor allen Dingen: Weitere Aufträge.

Ich habe übrigens den Lizenzserver soweit ausgebaut, das man damit unterschiedliche Lizenzkonzepte (Anzahl der Starts, maximale Laufzeit, bestimmte Version etc.) einbauen konnte. Ob nun einzelne das Konzept umgangen haben, ist mir ehrlich gesagt egal, denn ich habe genügend Geld und Folgeaufträge bekommen.

Ich glaube, es ist taktisch unklug, seinen Geschäftspartnern offen zu mißtrauen. Natürlich soll der Kunde ehrlich sein und genügend Lizenzen kaufen. Viel wichtiger ist jedoch, daß "Vertrauen" die oberste Maxime einer erfolgreichen Geschäftsbeziehung ist.

Vielleicht reicht es, eine Lizenzpauschale in Abhängigkeit der Mitarbeiteranzahl zu vereinbaren: Werden es mehr, sind logischerweise mehr Lizenzen fällig. Vielleicht gibt es auch eine Mitarbeiter-ID, die als Grundlage einer Prämienbezahlung dient. Damit wäre sichergestellt, das man die Software nicht fremden IDs verwendet.

Restriktionen, wie "nur auf einem PC", halte ich für kontraproduktiv, denn sie laden ja geradezu zum cracken ein, und sei es, um die Software auch auf einem zweiten (ErsatZ?) Laptop zu verwenden.

Vielleicht kann dies als Denkanstoß dienen, wie es auch gehen kann.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Empfehlungen für Kopierschutz-Konzept?

  Alt 22. Nov 2008, 12:22
Zitat von rai29:
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.
Mh, klingt ehrlichgesagt nicht sicher. Wenn wir etwas von Softwarepiraten gelernt haben, dann folgendes: ALLES was auf dem Rechner des Benutzers liegt, kann entschlüsselt/geknackt/modifiziert werden. Du kannst nicht einfach sagen, dass du dem Benutzer eine geheime Datenbank hinterlegst, auf die er nicht zugreifen kann. Er braucht je nach Schutzmechanismus lediglich mehr oder weniger Arbeit. Vielleicht gelingt das Erspähen des Client-DB-Passwortes auch einfach nur mit einem Hook oder ähnliches. Schließlich ist der Datenaustausch und der Login-Versuch Localhost<->Localhost idR unverschlüsselt. Das selbe gilt auch für Softwarefeatures: Wenn du eine Software in der Enterprise-Edition auslieferst, die restlichen Features aber lediglich deaktiviert werden, dann genügt eine Workaround oder eine Modifikation und der Benutzer kommt an die Daten ran, die auf seinem System liegen.
Daniel Marschall
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.762 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Empfehlungen für Kopierschutz-Konzept?

  Alt 22. Nov 2008, 12:32
Wenn Deine Software so toll ist und unbedingt verwendet werden muss, dann brauchst Du auch keinen Kopierschutz. Du musst Dir nur merken, wer sie gekauft hat. Wenn einer dann Provision einstreichen möchte, der es nicht gekauft hat, na dann bekommt er eben nix.

So einfach ist das.

Sherlock
Oliver
  Mit Zitat antworten Zitat
rai29

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

Re: Empfehlungen für Kopierschutz-Konzept?

  Alt 22. Nov 2008, 14:34
Danke für alle Antworten. Die Ideen sind wirklich gut.

Warum viel Aufwand betreiben um einen Kopierschutz zu schaffen, wenn Lizenzverstöße auch einfach über einen Logger nachvollzogen werden können..
Ich werde wohl die Idee von alzaimar aufgreifen und Lizenzverstöße "nur" loggen und Verstöße persönlich klären.


Zitat von blackdrake:
Mh, klingt ehrlichgesagt nicht sicher. Wenn wir etwas von Softwarepiraten gelernt haben, dann folgendes: ALLES was auf dem Rechner des Benutzers liegt, kann entschlüsselt/geknackt/modifiziert werden. Du kannst nicht einfach sagen, dass du dem Benutzer eine geheime Datenbank hinterlegst, auf die er nicht zugreifen kann. Er braucht je nach Schutzmechanismus lediglich mehr oder weniger Arbeit. Vielleicht gelingt das Erspähen des Client-DB-Passwortes auch einfach nur mit einem Hook oder ähnliches. Schließlich ist der Datenaustausch und der Login-Versuch Localhost<->Localhost idR unverschlüsselt. [...]
Das Problem mit den Daten auf dem Client-PC scheint sich aber wohl nicht lösen zu lassen. Die Daten müssen dort nämlich auch ohne Verbindung zum Zentralserver verwendbar sein solange die Lizenz gültig ist. Wenn der Zugriff auf die DB selbst wenn Sie verschlüsselt ist, nicht ausreichend abgesichert werden kann, wie wäre es dann mit verschlüsselten Daten in der (offen zugänglichen) Client-DB? Also, die Dateneinträge in der DB zB. nach Serialisierung verschlüsseln. Der clientabhängige Key würde dann zum Entschlüsseln der Daten innerhalb der Anwendung verwendet werden. Solange diese (mit gültiger Lizenzdatei) funktioniert, hätte der Benutzer ja ohnehin Zugriff darauf, so dass dort ein Abfangen vielleicht weniger interessant wäre. Ich denke, es wäre zudem schwerer den Entschlüsselungsmechanismus in der Anwendung zu durchschauen und den Key zu ermitteln.
Was haltet ihr grundsätzlich von der Idee einen für die Funktion (DB-Zugriff) notwendigen Key in der lizenzdatei zu verschlüsseln?


Zitat von Sherlock:
Wenn Deine Software so toll ist und unbedingt verwendet werden muss, dann brauchst Du auch keinen Kopierschutz. Du musst Dir nur merken, wer sie gekauft hat. Wenn einer dann Provision einstreichen möchte, der es nicht gekauft hat, na dann bekommt er eben nix.
Es wäre zumindest möglich die Lizenz-Kosten für die unzureichende Lizenz von der Provision abzuziehen
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#9

Re: Empfehlungen für Kopierschutz-Konzept?

  Alt 22. Nov 2008, 14:40
Zitat von rai29:
Das Problem mit den Daten auf dem Client-PC scheint sich aber wohl nicht lösen zu lassen. Die Daten müssen dort nämlich auch ohne Verbindung zum Zentralserver verwendbar sein solange die Lizenz gültig ist. Wenn der Zugriff auf die DB selbst wenn Sie verschlüsselt ist, nicht ausreichend abgesichert werden kann, wie wäre es dann mit verschlüsselten Daten in der (offen zugänglichen) Client-DB? Also, die Dateneinträge in der DB zB. nach Serialisierung verschlüsseln. Der clientabhängige Key würde dann zum Entschlüsseln der Daten innerhalb der Anwendung verwendet werden. Solange diese (mit gültiger Lizenzdatei) funktioniert, hätte der Benutzer ja ohnehin Zugriff darauf, so dass dort ein Abfangen vielleicht weniger interessant wäre. Ich denke, es wäre zudem schwerer den Entschlüsselungsmechanismus in der Anwendung zu durchschauen und den Key zu ermitteln.
Was haltet ihr grundsätzlich von der Idee einen für die Funktion (DB-Zugriff) notwendigen Key in der lizenzdatei zu verschlüsseln?
Daten auf dem Clienten zwischenzuspeichern, bis eine Onlineverbindung besteht, ist so schon OK. Aber die Daten auf dem Client-PC können niemals geheim bleiben. Wenn du eine ungeschützte Datenbank mit verschlüsselten Daten befüllst, könnte der Nutzer nur die internen Datenströme mitzulesen, den Algorithmus durch RE herausfinden etc. Auf diese weiße ist es Hackern auch gelungen, die Datenströme von WMP mitzulesen und somit für einige Zeit DRM-geschützte Musik dauerhaft zu entschlüsseln. Kurz: Du kannst niemals ein Geheimnis auf einer fremden Maschine speichern oder verwalten und dabei auf der sicheren Seite sein.
Daniel Marschall
  Mit Zitat antworten Zitat
rai29

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

Re: Empfehlungen für Kopierschutz-Konzept?

  Alt 22. Nov 2008, 16:09
Zitat von blackdrake:
[...]Aber die Daten auf dem Client-PC können niemals geheim bleiben. Wenn du eine ungeschützte Datenbank mit verschlüsselten Daten befüllst, könnte der Nutzer nur die internen Datenströme mitzulesen, den Algorithmus durch RE herausfinden etc. Auf diese weiße ist es Hackern auch gelungen, die Datenströme von WMP mitzulesen und somit für einige Zeit DRM-geschützte Musik dauerhaft zu entschlüsseln. Kurz: Du kannst niemals ein Geheimnis auf einer fremden Maschine speichern oder verwalten und dabei auf der sicheren Seite sein.
Das hatte ich befürchtet. Aber der Aufwand schreckt wahrscheinlich den Nicht-Profi genug ab.

Gibt es für die verbleibenden Ideen denn nun Komponenten, die Ihr empfehlen könnt?
- asymetrische Verschlüsselung
- Digitale Signaturen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:28 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