Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Gedankenspiel: möglichst sicherer Kopierschutz? (https://www.delphipraxis.net/79272-gedankenspiel-moeglichst-sicherer-kopierschutz.html)

Phoenix 19. Okt 2006 13:03


Gedankenspiel: möglichst sicherer Kopierschutz?
 
Ich weiss, das Thema gabs schon zigfach, und ich weiss auch: Einen sicheren Kopierschutz kann es nicht geben. Was jedoch geht, ist den Aufwand für den Angreifer möglichst hoch zu setzen.

Mir geht es darum eine, Idee auf Durchführbarkeit zu prüfen, wie man dieses Ziel mit möglichst wenig eigenem Aufwand realisieren könnte.

Was will ich erreichen?
Ziel soll es sein, eine Lizenz auf einen bestimmten Rechner festzulegen. Das Kopieren der Software soll ohne Funktionalitätseinbussen nicht möglich sein.

Wie will ich es erreichen?
Basis des mir vorschwebenden Verfahrens soll ein Public Key Kryptosystem sein.

Dabei gelten folgende Randbedingungen:
  • Wir befinden uns in der .NET - Welt
  • Der Private Key soll abhängig vom Rechner jedes mal neu berechnet und NIE irgendwo abgelegt werden
    Das heisst: Der Key muss auf einem Rechner jedes mal berechnet werden und immer das gleiche Ergebnis geben. Wird die Software auf einem anderen Rechner ausgeführt ändert sich entsprechend der Key.
  • Ein Teil der Software muss mit dem Public Key des Rechners verschlüsselt abgelegt werden
    Dies erfordert freilich ein eigenes, nur für diesen Rechner verschlüsseltes Assembly.
  • Eine 'Aktivierung' der Lizenz soll über das Internet möglich sein

Idee: Mit einem gültigen (gekauften) Lizenzschlüssel kann einmalig(!) von der Software das verschlüsselte Assembly per Webservice abgerufen werden. Hierzu wird der Public Key und der Lizenzschlüssel übertragen und das verschlüsselte Assembly zurückgeliefert. Ist der Key verbraucht muss ein neuer Key angefordert werden (z.B. wenn die Software von einem Rechner auf einen anderen Umgezogen wird).

Keygens greifen nicht, da ein erzeugter Key in einer Datenbank eingetragen wird und beim abrufen des Assemblys durch den Webservice geprüft und danach gelöscht wird. Somit wird sichergestellt, dass nur gültige und bezahlte Keys auch ein Assembly bekommen.

Das Assembly mit den entsprechenden Funktionalitäten liegt also nur für den entsprechenden Rechner verschlüsselt auf der Platte. Die Applikation liest das Assembly ein, entschlüsselt es mit dem Private Key und läd es. Diese Prozedur ist zwingend, ein unverschlüsseltes Assembly kann nicht geladen werden.

Die Applikation selber ist ein signiertes Assembly, so dass Modifikationen an der Executable dazu führen, dass die Anwendung nicht mehr gestartet werden kann.


Was haltet ihr von diesem Konzept? Insbesondere spreche ich freilich unsere Spezialisten an ;-)

chaosben 19. Okt 2006 13:18

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Eines vorneweg ... ich bin kein Experte, bloß weil ich als erster antworte :-D

Mir ist hier
Zitat:

Zitat von Phoenix
Der Private Key soll abhängig vom Rechner jedes mal neu berechnet und NIE irgendwo abgelegt werden

folgender "Umweg" eingefallen:

Ich (bin einer Böser ;) ) und kaufe mir die Software einmal. Per Debugging bekomme ich heraus wo der private Schlüssel generiert wird. Per DLL-Injection erhalte ich Zugriff auf den Prozess und lese den generierten Schlüssel aus. Dieser wird gespeichet und zusammen mit einem Runtime-Patch (wieder per DLL-Injection) immer "als Konstante" zurückgegeben. -> Imho: geknackt.

Oder?

Ghostwalker 19. Okt 2006 13:46

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Das erste Problem, das ich sehe, ist ermstmal einen Rechner eindeutig zu identifizieren. Woran machst du fest, das es genau dieser Rechner ist ? Wenn ich das Mainboard austausche ist es dann ein neuer Rechner oder noch der Alte ?


Der Kopierschutz sollte ja auch noch für den "ehrlichen" Kunden tragbar sein. Ich entsinne mich nur des Chaos, als XP auf den Markt kam....

Luckie 19. Okt 2006 13:48

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Ein weiteres Problem ist die unbedingt nötige Internetverbindung. Habe ich keine, kann ich das Programm nicht nutzen.

markusj 19. Okt 2006 14:18

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Zitat:

Zitat von Phoenix
Keygens greifen nicht, da ein erzeugter Key in einer Datenbank eingetragen wird und beim abrufen des Assemblys durch den Webservice geprüft und danach gelöscht wird. Somit wird sichergestellt, dass nur gültige und bezahlte Keys auch ein Assembly bekommen.

Risiko: Ein Key kann doppelt von dir Ausgegeben werden, keine eindeutige Zuordnung Key-Kunde ... Besser wäre ein "Used"-Flag, welches gesetzt wird.

mfG

Markus

Phoenix 19. Okt 2006 15:04

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Zitat:

Zitat von chaosben
Per DLL-Injection erhalte ich Zugriff auf den Prozess und lese den generierten Schlüssel aus. Dieser wird gespeichet und zusammen mit einem Runtime-Patch (wieder per DLL-Injection) immer "als Konstante" zurückgegeben. -> Imho: geknackt.

Soweit ich weiss, ist das bei .NET - Programmen nicht möglich. Oder gibts da Gegenbeweise?

Zitat:

Zitat von Luckie
Ein weiteres Problem ist die unbedingt nötige Internetverbindung. Habe ich keine, kann ich das Programm nicht nutzen.

Das ist kalkuliertes Risiko. Alternativ kann man sich eine schriftliche Aktivierung vorstellen, bei der der Kunde seinen Lizenzkey und seinen Public Key ausdruckt und einschickt und ihm das für ihn verschlüsselte Assembly auf CD zugeschickt wird.

Zitat:

Zitat von markusj
Risiko: Ein Key kann doppelt von dir Ausgegeben werden, keine eindeutige Zuordnung Key-Kunde ... Besser wäre ein "Used"-Flag, welches gesetzt wird.

Das ändert m.M.n. nichts an der Sicherheit des Systems. Durch das löschen bin ich mir zu 100% sicher, dass die nächste Aktivierungsanfrage keinen Datensatz mehr finden wird und demnach auch keine Aktivierung zulässt.

Nicolai1234 19. Okt 2006 15:20

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Zitat:

Zitat von Luckie
Ein weiteres Problem ist die unbedingt nötige Internetverbindung. Habe ich keine, kann ich das Programm nicht nutzen.

Da ist die Frage, bis wann man darauf noch Rücksicht nimmt. (natürlich unter Berücksichtigung der Zielgruppe)


Zitat:

Zitat von Ghostwalker
Das erste Problem, das ich sehe, ist ermstmal einen Rechner eindeutig zu identifizieren. Woran machst du fest, das es genau dieser Rechner ist ? Wenn ich das Mainboard austausche ist es dann ein neuer Rechner oder noch der Alte ?

Evtl. könnte man das am Key des OS festmachen. Das wäre wenigstens für alle XP User relativ sicher. Natürlich gibt es auch da viele illegale Kopien, aber das wird auch immer weniger (jedenfalls wenn ich mich da in meinem Bekannten-/Freundeskreis umgucke)

Khabarakh 19. Okt 2006 15:36

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Nett, hab mir selbst auch schon einmal überlegt, ob .Net nicht eine/die Lösung des Schwarzkopierens (ich hoffe, niemand wird hier das Wort "Raubkopieren" verwenden -.- ) sein könnte.


Zitat:

Zitat von Phoenix
Zitat:

Zitat von Luckie
Ein weiteres Problem ist die unbedingt nötige Internetverbindung. Habe ich keine, kann ich das Programm nicht nutzen.

Das ist kalkuliertes Risiko. Alternativ kann man sich eine schriftliche Aktivierung vorstellen, bei der der Kunde seinen Lizenzkey und seinen Public Key ausdruckt und einschickt und ihm das für ihn verschlüsselte Assembly auf CD zugeschickt wird.

Vielleicht gäbe es in Zukunft auch die Möglichkeit, die Signierung gleich beim Kauf durchzuführen (Public-Key mitgebracht auf einem Blatt/Magnetkarte/RFID-Chip/... ;) ). Wobei wie schon von Nicolai erwähnt in dieser Zukunft das Signieren per Internet sowieso kein Problem mehr darstellen könnte.

Phoenix 19. Okt 2006 16:08

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Offtopic:
Zitat:

Zitat von Khabarakh
(ich hoffe, niemand wird hier das Wort "Raubkopieren" verwenden -.- )

Warum eigentlich nicht? Wer meine Software illegal vervielfältigt 'raubt' mir meine Einnahmen. Das entzieht mir letzlich die Lebensgrundlage. Wenn das zu viele machen und ich nichts mehr verdiene muss ich mir überlegen, ob es sich noch lohnt das weiterzumachen. Meine Pläne gegen später vielleicht sogar mal Mitarbeiter einzustellen wären dann für die Katz' (nein, nicht Du, Sakura). Das vernichtet letzlich sogar Arbeitsplätze. Von daher sehe ich nicht ein, das hier auf die leichte Schulter zu nehmen und als Kavaliersdelikt abzustempeln. Das ist m.E. eine massive Straftat und sollte auch so behandelt werden. Schliesslich steht da meine Existenz auf dem Spiel.

Ende Offtopic ;-)

Olli 19. Okt 2006 16:16

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Zitat:

Zitat von Phoenix
Der Private Key soll abhängig vom Rechner jedes mal neu berechnet und NIE irgendwo abgelegt werden
Das heisst: Der Key muss auf einem Rechner jedes mal berechnet werden und immer das gleiche Ergebnis geben. Wird die Software auf einem anderen Rechner ausgeführt ändert sich entsprechend der Key.

Woraus willst du ihn berechnen? Der Computername kann sich genau wie eine SID oder die Hardware jederzeit ändern. Allerdings bist du mit der SID noch auf einer relativ sicheren Seite.

Zitat:

Zitat von Phoenix
Ein Teil der Software muss mit dem Public Key des Rechners verschlüsselt abgelegt werden
Dies erfordert freilich ein eigenes, nur für diesen Rechner verschlüsseltes Assembly.

Wer hat überhaupt den Private und den Public Key? Wenn ich die Software einmal entschlüsselt habe (und die muß ja entschlüsselt werden um zu laufen), ist der Schutz dahin, weil ich dann theoretisch auch eigene Assemblies erstellen könnte, oder?

Zitat:

Zitat von Phoenix
Keygens greifen nicht, da ein erzeugter Key in einer Datenbank eingetragen wird und beim abrufen des Assemblys durch den Webservice geprüft und danach gelöscht wird. Somit wird sichergestellt, dass nur gültige und bezahlte Keys auch ein Assembly bekommen.

Ab wann gilt ein Assembly als übertragen? Verbindungen können abbrechen.

Zitat:

Zitat von Phoenix
Das Assembly mit den entsprechenden Funktionalitäten liegt also nur für den entsprechenden Rechner verschlüsselt auf der Platte. Die Applikation liest das Assembly ein, entschlüsselt es mit dem Private Key und läd es. Diese Prozedur ist zwingend, ein unverschlüsseltes Assembly kann nicht geladen werden.

Nochmal, wo sind Public und Private Key gelagert?

Zitat:

Zitat von Phoenix
Die Applikation selber ist ein signiertes Assembly, so dass Modifikationen an der Executable dazu führen, dass die Anwendung nicht mehr gestartet werden kann.

Das verlagert nur das Problem.

Zitat:

Zitat von Phoenix
Offtopic:

Zitat:

Zitat von Phoenix
Warum eigentlich nicht? Wer meine Software illegal vervielfältigt 'raubt' mir meine Einnahmen. Das entzieht mir letzlich die Lebensgrundlage. Wenn das zu viele machen und ich nichts mehr verdiene muss ich mir überlegen, ob es sich noch lohnt das weiterzumachen. Meine Pläne gegen später vielleicht sogar mal Mitarbeiter einzustellen wären dann für die Katz' (nein, nicht Du, Sakura). Das vernichtet letzlich sogar Arbeitsplätze. Von daher sehe ich nicht ein, das hier auf die leichte Schulter zu nehmen und als Kavaliersdelikt abzustempeln. Das ist m.E. eine massive Straftat und sollte auch so behandelt werden. Schliesslich steht da meine Existenz auf dem Spiel.

Lassen wir mal die Kirche im Dorf. Es mag ja sein, daß es eine unangenehme Sache ist, wenn deine Software raubkopiert wird - insbesondere bei einem kleinen Unternehmen. Das Problem ist wohl immer wieder (finde ich zumindest) das Preis-Leistungs-Verhältnis. Oft genug werden popelige Programme für vergleichsweise hohe Summen vertickt, wohingegen gute andere Software zum Teil komplett frei erhältlich ist (OpenOffice.org, GIMP, VMWare Server, Virtual PC ...). Klar muß da eine Abwägung geschehen, aber es ist eben manchmal besser 1000 Stück für 10 Euro zu verkaufen als 10 Stück für 100 Euro. Auch wird zu oft der Privatanwender vernachlässigt und ihm werden keine kostengünstigeren Alternativen angeboten.

Zuguterletzt ist auch die Frage welche Zielgruppe du bedienst. Wird dein Programm sowieso nur von Autohäusern eingesetzt, wird selten ein Cracker auch nur dein Programm als mögliches Ziel ansehen. Cracker machen es aus Spaß und um sich einen Namen in der Szene zu machen ... mit Programmen die keine weite Verbreitung haben, ist das nicht möglich. Nehmen wir aber mal an, dein Programm wäre ein Massenprodukt und auch für diesen Einsatz bestimmt. Ist es wirklich so cool und so dramatisch neu, daß es ein lohnendes Ziel für einen Cracker sein könnte?

Das ist eben das Problem bei etwas was immateriell ist und deshalb beliebig oft ohne Qualitätsverlust kopiert werden kann. "Massive Straftat" halte ich doch für starken Tobak ...

Zitat:

Zitat von Phoenix
Ende Offtopic ;-)


Daniel G 19. Okt 2006 16:25

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Antwort Offtopic: Es geht um das Wort "Raubkopie" an sich. Nach dem StGb ist ein Raub:

Zitat:

§ 249

Raub

(1) Wer mit Gewalt gegen eine Person oder unter Anwendung von Drohungen mit gegenwärtiger Gefahr für Leib oder Leben eine fremde bewegliche Sache einem anderen in der Absicht wegnimmt, die Sache sich oder einem Dritten rechtswidrig zuzueignen, wird mit Freiheitsstrafe nicht unter einem Jahr bestraft.

(2) In minder schweren Fällen ist die Strafe Freiheitsstrafe von sechs Monaten bis zu fünf Jahren
Mit anderen Worten: Wenn ich den Verkäufer mit vorgehaltener Waffe dazu zwingen würde, mir eine Kopie einer Software auszuhändigen, dann hätte ich eine "Raubkopie".

In diesem Falle sollte man wohl eher von einer "illegalen Kopie" sprechen.

[Antwort Offtopic Ende]

Olli 19. Okt 2006 16:30

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Zitat:

Zitat von Daniel G
Mit anderen Worten: Wenn ich den Verkäufer mit vorgehaltener Waffe dazu zwingen würde, mir eine Kopie einer Software auszuhändigen, dann hätte ich eine "Raubkopie".

In diesem Falle sollte man wohl eher von einer "illegalen Kopie" sprechen.

Diese Dramatisierung wird ja gerade gern als Rechtfertigung für drakonische Strafforderungen benutzt (siehe UrhG-Reform(en)).

Phoenix 20. Okt 2006 12:28

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Zitat:

Zitat von Olli
Zitat:

Zitat von Phoenix
Ein Teil der Software muss mit dem Public Key des Rechners verschlüsselt abgelegt werden
Dies erfordert freilich ein eigenes, nur für diesen Rechner verschlüsseltes Assembly.

Wer hat überhaupt den Private und den Public Key? Wenn ich die Software einmal entschlüsselt habe (und die muß ja entschlüsselt werden um zu laufen), ist der Schutz dahin, weil ich dann theoretisch auch eigene Assemblies erstellen könnte, oder?

Niemand. Der Key muss bei jedem Programmstart neu erstellt werden. Die Basis für die Berechnung (z.B. der Seed für die Zufallszahlen) ist z.B. dann die SID des Rechners. Somit gibt es keinen irgendwo hinterlegten Key, der ausgetauscht werden könnte.


Zitat:

Zitat von Olli
Zitat:

Zitat von Phoenix
Keygens greifen nicht, da ein erzeugter Key in einer Datenbank eingetragen wird und beim abrufen des Assemblys durch den Webservice geprüft und danach gelöscht wird. Somit wird sichergestellt, dass nur gültige und bezahlte Keys auch ein Assembly bekommen.

Ab wann gilt ein Assembly als übertragen? Verbindungen können abbrechen.

Hrm. Gute Frage. z.B. Wenn die Software die die Aktivierung vornimmt dass empfangene Assembly entschlüsseln und laden kann und dies dem System meldet. Dann kann zwar theoretisch diese Meldung abgefangen werden, aber da der public Key schon beim Webservice zu der Aktivierungsnummer hinterlegt ist kann man dann nur noch das mit diesem Key verschlüsselte Assembly mehrfach herunterladen. Das hilft auf einem anderen Rechner dann schon nicht mehr.

Zitat:

Zitat von Olli
Zitat:

Zitat von Phoenix
Das Assembly mit den entsprechenden Funktionalitäten liegt also nur für den entsprechenden Rechner verschlüsselt auf der Platte. Die Applikation liest das Assembly ein, entschlüsselt es mit dem Private Key und läd es. Diese Prozedur ist zwingend, ein unverschlüsseltes Assembly kann nicht geladen werden.

Nochmal, wo sind Public und Private Key gelagert?

Wie oben schon gesagt: Nirgends, damit niemand den Key austauschen kann ;-)
Deswegen ist es aber auch wichtig, eine Möglichkeit zu finden die Berechnung des Schlüssels von der aktuellen Hardware abhängig zu machen. Ginge da was mit diesen TPM-Chips?

Zitat:

Zitat von Olli
Zitat:

Zitat von Phoenix
Die Applikation selber ist ein signiertes Assembly, so dass Modifikationen an der Executable dazu führen, dass die Anwendung nicht mehr gestartet werden kann.

Das verlagert nur das Problem.

Inwiefern? Wenn sich die Anwendung nicht mehr starten lässt wenn sie modifiziert wurde ist das Ziel doch erreicht. In die Schlüsselgenerierung und das Entschlüsseln der/des Assemblys mit der teuren Funktionalität kann nicht eingegriffen werden. Somit ist das unterjubeln von prä-Entschlüsselten Assemblys auch nicht möglich.

Zitat:

Zitat von Olli
Das Problem ist wohl immer wieder (finde ich zumindest) das Preis-Leistungs-Verhältnis. Oft genug werden popelige Programme für vergleichsweise hohe Summen vertickt, wohingegen gute andere Software zum Teil komplett frei erhältlich ist (OpenOffice.org, GIMP, VMWare Server, Virtual PC ...). Klar muß da eine Abwägung geschehen, aber es ist eben manchmal besser 1000 Stück für 10 Euro zu verkaufen als 10 Stück für 100 Euro. Auch wird zu oft der Privatanwender vernachlässigt und ihm werden keine kostengünstigeren Alternativen angeboten.

Zuguterletzt ist auch die Frage welche Zielgruppe du bedienst. Wird dein Programm sowieso nur von Autohäusern eingesetzt, wird selten ein Cracker auch nur dein Programm als mögliches Ziel ansehen. Cracker machen es aus Spaß und um sich einen Namen in der Szene zu machen ... mit Programmen die keine weite Verbreitung haben, ist das nicht möglich. Nehmen wir aber mal an, dein Programm wäre ein Massenprodukt und auch für diesen Einsatz bestimmt. Ist es wirklich so cool und so dramatisch neu, daß es ein lohnendes Ziel für einen Cracker sein könnte?[/quote]

Das ist ne andere Sache. Was, wenn ich das System nicht für eigene Software haben will sondern z.b. als Kopierschutzsystem vermarkten will? Oder es einfach - so es denn relativ sicher ist - einfach so für andere zur Verfügung stelle. Vielleicht will ich aber damit auch nur sicherstellen, dass die 1000 Leute meine 10€ - Shareware auch wirklich kaufen und nicht einfach nen Key runterladen. Im übrigen suche ich auch noch ein Thema für meine Diplomarbeit. Würde sich auch anbieten.

Deswegen möchte ich das mal durchspielen und mögliche Angriffspunkte aufdecken. Will heissen: Ob es sich überhaupt lohnt und die theoretische Möglichkeit bietet ein System zu entwickeln, dass einen erheblichen und am besten pro Installation individuellen Knackaufwand bieten würde.

dino 20. Okt 2006 14:13

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
was heisst hier einen sicheren Kopierschutz wird es nie geben?

bau mal ein Notebook, welche keine wechsellafwercke hat und in de Luft fliegt, wenn man versucht ans innere zu kommen...

sorry für so ne antwort, aber das hier ist ein Gedankenspiel :)

Phoenix 20. Okt 2006 14:20

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Zitat:

Zitat von dino
sorry für so ne antwort, aber das hier ist ein Gedankenspiel

:roll: :wall:

Meflin 20. Okt 2006 14:21

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Zitat:

Zitat von dino
was heisst hier einen sicheren Kopierschutz wird es nie geben?
bau mal ein Notebook, welche keine wechsellafwercke hat und in de Luft fliegt, wenn man versucht ans innere zu kommen...
sorry für so ne antwort, aber das hier ist ein Gedankenspiel :)

*klatschklatsch* und was ist daran ein Kopierschutz?

sorry für sone Nachfrage :wall:


dino 20. Okt 2006 14:27

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
was auf dem notebook drauf ist kann nicht kopiert werden :)

Phoenix 20. Okt 2006 14:32

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
:roll: Klar. Und wie willst Du die gekaufte Software dann auf dem Notebook installieren?
Oder soll jeder für ein 10 € - Shareprogramm ein eigenes Notebook für 1000 € kaufen das er für nichts anderes verwenden kann, weil er keine neue Software installieren kann?

Bitte Ontopic und Konstruktiv bleiben. Danke.

Meflin 20. Okt 2006 14:32

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Zitat:

Zitat von dino
was auf dem notebook drauf ist kann nicht kopiert werden :)

Strg + C, Strg + V -> Internet

Aber ich glaube weitere Antworten wären darauf sinnlos :roll:


dino 20. Okt 2006 15:09

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
achso konstruktiv... okok war ja nicht wirklich ernst gemeint...
mit der Idee ein kleines Mp3 Stick zu bauen, welches man nur ausführen kann, wenn man ein Programm hat, welches es lesen kann, wobei der mp3Stick ne art dos hat, an das man nicht drankommt und welches sich ohne irgend ein windows startet und das Programm ausführt brauch ich ja auch nicht zu kommen, da das an der Aufgabenstellung vorbei geht.

ich o´poste hier in "Gedankenspiel: möglichst sicherer Kopierschutz?" lieber nichts mehr

Olli 20. Okt 2006 15:39

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Zitat:

Zitat von Phoenix
Niemand. Der Key muss bei jedem Programmstart neu erstellt werden. Die Basis für die Berechnung (z.B. der Seed für die Zufallszahlen) ist z.B. dann die SID des Rechners. Somit gibt es keinen irgendwo hinterlegten Key, der ausgetauscht werden könnte.

Dann brauche ich also nur den Algorithmus knacken und bin aus dem Schneider?!

Zitat:

Zitat von Phoenix
Hrm. Gute Frage. z.B. Wenn die Software die die Aktivierung vornimmt dass empfangene Assembly entschlüsseln und laden kann und dies dem System meldet. Dann kann zwar theoretisch diese Meldung abgefangen werden, aber da der public Key schon beim Webservice zu der Aktivierungsnummer hinterlegt ist kann man dann nur noch das mit diesem Key verschlüsselte Assembly mehrfach herunterladen. Das hilft auf einem anderen Rechner dann schon nicht mehr.

Korrekt, aber sobald ich die Assembly einmal habe, brauche ich sie nur entschlüsseln (mußt du ja machen) und dann unverschlüsselt ablegen. Da deine unverschlüsselte Assembly natürlich eine verschlüsselte Assembly erwartet, muß ich nur noch die unverschlüsselte mit dem vom zuvor geknackten Algo erlangten Schlüssel neu verschlüsseln. Voila, ich habe ein lauffähiges Programm auf einem anderen Rechner.

Zitat:

Zitat von Phoenix
Wie oben schon gesagt: Nirgends, damit niemand den Key austauschen kann ;-)

Wozu dann überhaupt die Trennung nach privatem und öffentlichem Schlüssel? Weil der öffentliche übertragen wird?

Zitat:

Zitat von Phoenix
Deswegen ist es aber auch wichtig, eine Möglichkeit zu finden die Berechnung des Schlüssels von der aktuellen Hardware abhängig zu machen. Ginge da was mit diesen TPM-Chips?

Im Prinzip ja ...

Zitat:

Zitat von Phoenix
Inwiefern? Wenn sich die Anwendung nicht mehr starten lässt wenn sie modifiziert wurde ist das Ziel doch erreicht. In die Schlüsselgenerierung und das Entschlüsseln der/des Assemblys mit der teuren Funktionalität kann nicht eingegriffen werden. Somit ist das unterjubeln von prä-Entschlüsselten Assemblys auch nicht möglich.

Statische Analyse! Ich brauche doch deinen Code nicht laufenlassen. Stattdessen analysiere ich ihn und schreibe mir etwas gleichwertiges.

Zitat:

Zitat von Phoenix
Das ist ne andere Sache. Was, wenn ich das System nicht für eigene Software haben will sondern z.b. als Kopierschutzsystem vermarkten will?

Dann hast du ein Problem, weil dann die Zielgruppe größer und damit dein "Schutz" attraktiver für Cracker wird.

Zitat:

Zitat von Phoenix
Oder es einfach - so es denn relativ sicher ist - einfach so für andere zur Verfügung stelle. Vielleicht will ich aber damit auch nur sicherstellen, dass die 1000 Leute meine 10€ - Shareware auch wirklich kaufen und nicht einfach nen Key runterladen.

Dann sind die 1000 Leute einfach nur verblödet. 10 EUR kann sich notfalls sogar der Hartz-IVler leisten. Deswegen ja dieser Ansatz: bei moderaten Preisen ist der Aufwand größer einen Kopierschutz zu implementieren und zu warten als das Produkt eigentlich wert ist (also für den einzelnen Käufer). Abgesehen davon kannst du doch sehr gut mit der Moralschiene punkten, denke ich. Wenn du den Käufern erklärst, daß sie Arbeitsplätze vernichten wenn sie das Programm raubkopieren ... allerdings lasse ich mir als ehrlicher Käufer auch nicht gern Antiraubkopierer-Spots bei DVDs aufdrücken. Kann also auch den gegenteiligen Effekt haben, je nachdem wie man es angeht.

Achja, das Programm zu personalisieren (also so wie du das Modell erklärt hast - die Schwächen ignoriert!) dürfte einen abschreckenden Effekt haben, weil du dann ja theoretisch zurückverfolgen könntest, auf wen die Kopie zurückgeht. Bei einem geklauten Laptop hilft die Zurückverfolgung allerdings auch nicht mehr viel ...

Alternativ nutzt den Placebo-Effekt, daß du einfach behauptest einen tollen Schutz mit Wasserzeichen (oder irgendeinem anderen PR-Schlagwort) eingebaut zu haben, wodurch du illegale Kopien zurückverfolgen könntest. Dadurch wird die moralische Schranke wieder höhergelegt.

Zitat:

Zitat von Phoenix
Deswegen möchte ich das mal durchspielen und mögliche Angriffspunkte aufdecken. Will heissen: Ob es sich überhaupt lohnt und die theoretische Möglichkeit bietet ein System zu entwickeln, dass einen erheblichen und am besten pro Installation individuellen Knackaufwand bieten würde.

IMO verlagerst du nur das Problem, behebst es aber nicht. Solange du dem Anwender vertrauen mußt (und das tust du, weil er ja den privaten Schlüssel hat - ob nun explizit oder implizit ist irrelevant), bist du gea....t, weil du ihm ja nicht vertraust, weshalb du Schutzmaßnahmen entwirfst, diese Schutzmaßnahmen aber bereits eine Trust Relationship beinhalten (intrinsisch). Da gibt es auch nichts zu deuteln. Solange du nicht die Kommunikation vom Benutzer wegsperren kannst (bspw. mit TPM) wird es da auch keine wirklich sichere Alernative geben.

Wie du anfänglich sagtest, man kann die Hürden erhöhen, aber wirklich sicherer wird's davon nicht ...

Zitat:

Zitat von dino
bau mal ein Notebook, welche keine wechsellafwercke hat und in de Luft fliegt, wenn man versucht ans innere zu kommen...

Dann übertrage ich meine Dateien wahlweise über USB, Firewire, COM, LPT oder eben stinknormales Netzwerk (RJ-45).

Zitat:

Zitat von dino
mit der Idee ein kleines Mp3 Stick zu bauen, welches man nur ausführen kann, wenn man ein Programm hat, welches es lesen kann, wobei der mp3Stick ne art dos hat, an das man nicht drankommt und welches sich ohne irgend ein windows startet und das Programm ausführt brauch ich ja auch nicht zu kommen, da das an der Aufgabenstellung vorbei geht.

Interessante Theorien. Wie willst du nun verhindern, daß jemand dein DOS reverst und das von dir bspw. proprietär entwickelte Dateisystem ausliest und die ganz Geschichte in einem Emulator laufen läßt?

malo 20. Okt 2006 16:13

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Mal ne andere Frage... was ist, wenn ich dein Programm gekauft und installiert habe, und dann aus irgendeinem Grund das Programm neu installieren muss... Du sagtest ja, dass der Key nur einmal übertragen werden kann. Muss ich das Programm dann nochmal bezahlen?

Oder was ist mit ausgetauschter Hardware... Ich baue meinen PC um. Verfällt dann meine Lizenz?

Phoenix 20. Okt 2006 16:26

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Zitat:

Zitat von Olli
Zitat:

Zitat von Phoenix
Niemand. Der Key muss bei jedem Programmstart neu erstellt werden. Die Basis für die Berechnung (z.B. der Seed für die Zufallszahlen) ist z.B. dann die SID des Rechners. Somit gibt es keinen irgendwo hinterlegten Key, der ausgetauscht werden könnte.

Dann brauche ich also nur den Algorithmus knacken und bin aus dem Schneider?!

Zitat:

Zitat von Phoenix
Hrm. Gute Frage. z.B. Wenn die Software die die Aktivierung vornimmt dass empfangene Assembly entschlüsseln und laden kann und dies dem System meldet. Dann kann zwar theoretisch diese Meldung abgefangen werden, aber da der public Key schon beim Webservice zu der Aktivierungsnummer hinterlegt ist kann man dann nur noch das mit diesem Key verschlüsselte Assembly mehrfach herunterladen. Das hilft auf einem anderen Rechner dann schon nicht mehr.

Korrekt, aber sobald ich die Assembly einmal habe, brauche ich sie nur entschlüsseln (mußt du ja machen) und dann unverschlüsselt ablegen. Da deine unverschlüsselte Assembly natürlich eine verschlüsselte Assembly erwartet, muß ich nur noch die unverschlüsselte mit dem vom zuvor geknackten Algo erlangten Schlüssel neu verschlüsseln. Voila, ich habe ein lauffähiges Programm auf einem anderen Rechner.

Das klingt plausibel. Und das gefällt mir gar nicht. :pale:

Ja, jetzt wo Du es sagst leuchtet es ein: Wenn man irgendwie an die Keys gelangen kann die generiert werden ist das System ausgetrickst. Tja.

Das verschiebt also die Problemstellung etwas. Wie kann man verhindern, dass jemand an die Keys kommt?

Insider2004 20. Okt 2006 16:34

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Wie so Kopierschutz? 95% aller Programme sind es gar nicht wert kopiert zu werden.

:mrgreen:

Balu der Bär 20. Okt 2006 16:47

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
@Insider2004: Wieso der :mrgreen: am Ende? Entspricht doch den Tatsachen.

Aus meiner Perspektive bringen Kopierschütze außer Arbeit und Mühe nichts. Erstens schrecken mich Programme die über's Internet aktiviert oder ähnliches müssen generell ab. Beim Betriebssystem ist das etwas anderes, aber bei einem normalen Programm das man vlt einmal am Tag startet sehe ich keinen Sinn dahinter. Sicherlich, jeder Programmierer will seine Software schützen und verkaufen, schließlich muss man ja irgendwie zu Geld kommen. Trotzdem sind aufwendige Kopierschutzmaßnahmen für viele Leute nichts als ein Ärgernis. Angenommen ich installiere mein Betriebssystem neu, dann darf ich den halben Tag damit verbringen Software zu aktivieren bzw freizuschalten über das Internet. Dafür habe ich a) nicht die Zeit und b) keine Lust. Manche Leuten verzichten dann lieber auf die Software, als an aufwendigen Kopierschützen zu scheitern. Weiterhin frage ich mich, warum du verbieten möchtest das ich dein Programm parallel auch auf meinem Notebook installiere? Es soll ja Menschen geben die nicht immer an ein und demselben Rechner arbeiten. ;) Zweitens kannst du, Phoenix, wie du bereits schon in der Art sagtest, dir so viele Mühe geben wie du willst, alles kann gecrackt oder umgangen werden. Ob dein Programm es allerdings wert ist das sich Cracker damit befassen kann ich nicht sagen, da ich es nicht kenne. Selbst große Firmen wie MS oder Adobe geben jährlich tausende von Dollar aus um Kopierschütze zu entwickeln, bereits am Releasetag der entsprechenden Software gibt es bereits Mittel und Möglichkeit den Schutz zu umgehen. Selbst MS hat mittlerweile eingestanden das Raubkopien in gewissem Maße gut für Softwarefirmen sind, sie steigern a) die Bekanntheit und b) die Verbreitung einer Software. Der Kampf gegen Cracker wird höchstwahrscheinlich immer ein verlorener bleiben. Ja ich weiß, du möchtest es Crackern möglichst schwer machen, aber manche Leuten möchten behaupten je stärker der Kopierschutz desto stärker der Wille und das Engagement diesen zu brechen. Je nachdem um was für eine Software es sich handelt würde ich mir also genau überlegen, was für einen Kopierschutz ich tatsächlich einsetzen werde. Just my 50 Cents.

OldGrumpy 20. Okt 2006 17:00

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
@Phoenix: Du versuchst gerade die Quadratur des Kreises, allerdings siebendimensional ;)
Es geht einfach nicht, fertig. Zumindest heute, und mit Hardware die noch dem User gehört und auch das macht (mehr oder weniger) was der User will.
Tausende Entwickler vor Dir waren auch schon auf der Suche nach diesem heiligen Gral. Und mehr oder weniger alle sind zu dem Schluss gekommen, dass es mehr Sinn macht, dem Kunden entsprechenden Mehrwert durch Support, Goodies, Nachlässe für Upgrades, usw. zu bieten - oder sind bankrott gegangen. :)

Es gibt auf dem Markt momentan nicht ein Produkt, das nicht schon geknackt wäre, punktum. Kann ich auch gut verstehen, ich hab von kleinauf schon Sachen auseinandergenommen und wieder zusammengebaut, weil mich immer schon interessiert hat, wie ein "Ding" funktioniert, wie es tickt. Ruhm und Ehre sind mir ziemlich schnuppe, für mich ist das Analysieren fremden Codes (nicht falsch verstehen, ich bin kein Cracker, aber ich schau mir halt immer wieder gerne an, wie andere das Problem X angehen und lösen) in etwa so wie für andere ein Museumsbesuch oder ein gutes Buch (dem ich dann aber auch nicht abgeneigt bin *g*). Geistige Nahrung sozusagen :)

Mein Rat wäre wirklich, dass Du die Energie nicht in einen eh nutzlosen Kopierschutz steckst, sondern in die Verbesserung Deiner Software. Gerade als "kleiner Krauter" ist man enorm auf zufriedene Kunden angewiesen, und Kunden die man gängelt, sind in der Regel schnell nicht mehr so zufrieden :)

Und eh jetzt irgendwelche Vermutungen aufkommen, mein Windows ist legal, als Officepaket nehm ich Open Office, Mails schreib ich mit Thunderbird und sogar mein mIRC und WinRAR sind registriert :)
Tools die ich nicht nur als Trial ausprobiere, kaufe ich in der Regel. Einzige Ausnahme bisher ist Numega SoftICE, das wurde mir mal von einem Arbeitgeber gestellt, und ist inzwischen auch nicht mehr kaufbar :) Ich arbeite aber auch seit geraumer Zeit mehr mit WinDBG :)

So, genug offtopic, nochmal in Kürze: Schreib lieber ne Arbeit über die Abwägungen Pro/Kontra Kopierschutz. Das ist IMHO ein sehr weites Feld in dem viele Faktoren zu betrachten und abzuwägen sind. Und was das illegale Einsetzen von Software angeht, so ist das IMHO eher ein moralisches Problem. Manche Leute würdens noch "raubkopieren" wenns umsonst wär. Welchen Sinn machts zum Beispiel, Sachen wie die Nokia PhoneSuite in P2P-Börsen zu stellen? Alle jemals relevanten Versionen gibts bei Nokia direkt zum kostenlosen Download, sogar ganz ohne Viren und Trojaner :mrgreen:
Schnellerer Download kanns nicht sein :)

Denk mal drüber nach, vielleicht erscheint Dir das Thema ja auch interessant. Dann liefer ich gerne weitere Ideen, Ansichten usw. :)

Nachtrag: Ich seh gerade, Balu sieht das ähnlich :)

Christian Seehase 20. Okt 2006 17:25

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Moin Sebastian,

was mir bei diesen ganzen rechnerspezifischen Ideen nicht gefällt:
In Unternehmen, die ihre Software automatisiert verteilen, ist so eine Software i.d.R. nicht einsetzbar, ausser man benötigt davon vielleicht nur eine handvoll Kopien, die dann zur Not manuell installiert werden können.
Bei Software die nahezu auf jeden Rechner soll, ist so eine Personalisierung indiskutabel.
Lass nur mal einen Rechner ausfallen. Dann bekommt der Anwender einen neuen Rechner hingestellt, und seine Pakete installiert, was mit Deiner Software dann nicht ginge, da sie an den Rechner gebunden ist.
Für welche Software entscheidet man sich dann:
Für eine, die Vergleichbares leistet, aber nicht solchen zusätzlichen administratven Aufwand, bis hin zur manuellen Installation, nach sich zieht, denn das ist dann, indirekt, das Geld, was der Kunde für Deinen Kopierschutz zusätzlich aufwenden muss.
Da hierzu wohl die Bereitschaft nur in Sonderfällen da sein dürfte, hast Du durch den Kopierschutz genau das erreicht, was Du vermeiden wolltest: Weniger Umsatz.

Kael 20. Okt 2006 18:10

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Ein anderes Problem...

Wer eine Software verkauft, ist auch (in gewissem Maße) für dessen (kurzfristiges aber auch langfristiges) Funktionieren verantwortlich. Was ist, wenn der Autorisierungsserver down ist und man bei der Installation keinen Freigabeschlüssel geliefert bekommt... darf einen der Käufer dann verklagen? Oder darf er die Software zurückgeben? Was ist, wenn die Firma über den Kopf geht oder der Programmierer einen Autounfall hat... sind dann alle Käufer in den Arsch gekniffen?

Die optimale Lösung ist mE immer noch eine personalisierte Version... man erhält einen "dicken" Lizenz Key (in Form einer DLL oder EXE), in dem verschlüsselt Name und Anschrift des Käufers hinterlegt sind (sowie Anzahl der gekauften Lizenzen... die im Firmennetzwerk vernetzten Computer können sich gegebenenfalls über ihre jeweils nutzbaren Lizenzen einigen). Bei Wahl von "Help/About" kann man sich das dann anschauen... und so als Programm-Verkäufer gegebenenfalls den Übeltäter/Verteiler finden.

Natürlich ist da noch die Gefahr der Key-Generatoren... aber wer (mit halbwegs Gehirn im Kopf) startet eine KEYGEN.EXE, die er von einer ominösen Web-Sites heruntergeladen hat? ;-)

Übrigens... natürlich der Key als DLL oder EXE, weil man genauso bescheuert sein muß, um sich eine fremde DLL oder EXE auf den Rechner zu kopieren. Wenn man auf Nummer Sicher gehen will, dann kann man als Programm-Verkäufer ja noch einige "gepatchte" DLLs oder EXEs unter vierdutzend verschiedenen Namen (z.B. Crack-DLL für Programm-X) im e-Mule-Netz lancieren -- um das Angebot an Cracks ein wenig zu verwässern. Diese könnten dann (bei unerlaubter Anwendung) den illegalen Programmnutzer verwarnen... oder ihm (wenn man bösartiger gelagert ist) gleich die Festplatte leerfegen! Das schreckt ab! ;-)

OldGrumpy 20. Okt 2006 18:20

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Letzteres wäre Computersabotage und zumindest sehr fragwürdig :) Bleibt natürlich das Problem, das nachzuweisen, aber strafbar isses auf jeden Fall.

Olli 20. Okt 2006 19:49

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Zitat:

Zitat von Balu der Bär
Selbst MS hat mittlerweile eingestanden das Raubkopien in gewissem Maße gut für Softwarefirmen sind, sie steigern a) die Bekanntheit und b) die Verbreitung einer Software.

... wobei ich das bei größeren Firmen auch eher glauben würde ...

Zitat:

Zitat von OldGrumpy
Es gibt auf dem Markt momentan nicht ein Produkt, das nicht schon geknackt wäre, punktum.

Doch. Sogar einige. Die Windows-XP-Aktivierung wurde noch nicht geknackt, sondern bisher nur umgangen (und da sind meines Wissens aktuell alle Löcher gestopft). IDA 5.0 ist meines Wissens nach auch noch nicht geknackt, was unter anderem daran liegt, daß der Entwickler es nicht als Demo rausgibt und außerdem ältere Versionen inzwischen frei verfügbar sind.

Zitat:

Zitat von OldGrumpy
Tools die ich nicht nur als Trial ausprobiere, kaufe ich in der Regel. Einzige Ausnahme bisher ist Numega SoftICE, das wurde mir mal von einem Arbeitgeber gestellt, und ist inzwischen auch nicht mehr kaufbar :) Ich arbeite aber auch seit geraumer Zeit mehr mit WinDBG :)

Wurde sogar eingestellt, wie CompuWare inzwischen verlautbaren ließ. Aber das nur so nebenbei. WinDbg finde ich auch um Längen besser, zumal bei KM-Code.

Zitat:

Zitat von OldGrumpy
Welchen Sinn machts zum Beispiel, Sachen wie die Nokia PhoneSuite in P2P-Börsen zu stellen?

OpenOffice.org wird auch ganz offiziell über P2P verteilt ... genau wie diverse Linux-Distros. Das ist mehr ein Problem von dir: du meinst P2P impliziert Raubkopieren ...

Zitat:

Zitat von Christian Seehase
In Unternehmen, die ihre Software automatisiert verteilen, ist so eine Software i.d.R. nicht einsetzbar, ausser man benötigt davon vielleicht nur eine handvoll Kopien, die dann zur Not manuell installiert werden können.
Bei Software die nahezu auf jeden Rechner soll, ist so eine Personalisierung indiskutabel.
Lass nur mal einen Rechner ausfallen. Dann bekommt der Anwender einen neuen Rechner hingestellt, und seine Pakete installiert, was mit Deiner Software dann nicht ginge, da sie an den Rechner gebunden ist.

Guter Einwand.

Zitat:

Zitat von Kael
Wer eine Software verkauft, ist auch (in gewissem Maße) für dessen (kurzfristiges aber auch langfristiges) Funktionieren verantwortlich. Was ist, wenn der Autorisierungsserver down ist und man bei der Installation keinen Freigabeschlüssel geliefert bekommt... darf einen der Käufer dann verklagen? Oder darf er die Software zurückgeben? Was ist, wenn die Firma über den Kopf geht oder der Programmierer einen Autounfall hat... sind dann alle Käufer in den Arsch gekniffen?

Jap. Was wölltest du auch machen, wenn niemand mehr greifbar ist.

Zitat:

Zitat von Kael
... und so als Programm-Verkäufer gegebenenfalls den Übeltäter/Verteiler finden.

... nicht bei gestohlenen Laptops.

Zitat:

Zitat von Kael
Natürlich ist da noch die Gefahr der Key-Generatoren... aber wer (mit halbwegs Gehirn im Kopf) startet eine KEYGEN.EXE, die er von einer ominösen Web-Sites heruntergeladen hat? ;-)

Jeder der einen Disassembler hat und was davon versteht oder diverse virtuelle Maschinen zu laufen hat ...

Nochmal zum Thema
Übrigens sind Dongles auch keine Alternative. Alle Dongles die ich kenne, benutzen irgendwie einen KM-Treiber (ansonsten müßte man ja auch immer als Admin arbeiten und bei manchen ginge es selbst dann nicht). Man kann mit einfachsten Mitteln einen Filtertreiber schreiben, der die Kommunikation des eigentlichen Treibers "ausspäht" und dann die Funktionalität des ursprünglichen Treibers selbst implementieren (zumeist werden solche Hersteller ohnehin öffentlich verfügbare PK-Algorithmen benutzen). Der Witz dran ist, daß damit sogar verschlüsselte Kommunikation zwischen Dongle und Treiber knackbar ist. Das nur als anschauliches Beispiel.

Kael 20. Okt 2006 20:37

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
@ Olli:

Natürlich kann jeder mit Disassembler und genügend Know-How sich das Programm patchen... aber von potentiellen illegalen Nutzern sind das weniger als 1% (es sei denn, das Zielprogramm ist eine z.B. Programmentwicklungsumgebung und die Zielgruppe wird dahingehend stark eingeschränkt ;-)

Der Normalnutzer ist auf Patches/Cracks aus ominösen Quellen angewiesen...

Und sich "nur" eine VM zu infizieren... um dann nach vielleicht erst zehn Tagen zu erkenne, daß der Crack doch mehr tut, als nur das Programm freizuschalten... das ist auch kein Gewinn.


@ OldGrumpy:

Was ist Computersabotage? Die Änderung einer DLL in einem Programm ist gemäß der meisten Lizenzbedingungen nicht erlaubt. Wenn man dabei zu Schaden kommt, ist man selbst schuld. Oder man muß beweisen, daß der Programmierer des Programmes die Schuld trägt -- immerhin ist der Schadcode ja in der DLL.
Wenn man mag, kann der "Patch" auch nur das zugehörige Programmverzeichnis löschen. Dann muß der Nutzer das Programm noch einmal neu installieren... und den nächsten Patch ausprobieren. Und vielleicht zeigt der ja einen Dialog an mit der Warnung "der nächste Patch löscht die Festplatte!"...

alzaimar 20. Okt 2006 21:15

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Zitat:

Zitat von dino
bau mal ein Notebook, welche keine wechsellafwercke hat und in de Luft fliegt, wenn man versucht ans innere zu kommen...

Gähn, dann find ich ne Möglichkeit, an das Innere zu kommen, ohne das es in die Luft fliegt. Davon lebt ein ganzer Berufsstand (Bombenentschärer).

@Phoenix: Dein Konzept hat den üblichen 'Denkfehler', bzw. Schwachstelle im Konzept: Den Rechner eindeutig zu identifizieren. Du kannst doch jeden Rechner 100% klonen, ok, das ist kniffelig. Weiterhin ich will *meine* Software auf meinem Laptop und meinem Heim-PC und meinem Arbeits-PC verwenden dürfen. Nur nicht gleichzeitig, das geht ja nicht ;-).

Ich habe nur einen Ansatz, die im Intranet bzw. in Firmennetzen so funktioniert, das die Umgehung für den Kunden empfindliche Geldstrafen nach sich ziehen würde, da ich beweisen kann, wer wann betrogen hat. Ob ich dagegen vorgehe, entscheide ich in Abwägung zwischen dem Nutzen (Strafzahlungen) oder den weiteren Geschäften mit dem Kunden. Wenn in einer Weltfirma 1000 Mitarbeiter meine SW illegalerweise nutzen und die kostet pro Installation 1000 Euro, wäre ich geneigt, den Kunden zu verlieren :mrgreen:

Olli 20. Okt 2006 22:00

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Zitat:

Zitat von Kael
Was ist Computersabotage? Die Änderung einer DLL in einem Programm ist gemäß der meisten Lizenzbedingungen nicht erlaubt.

Man muß auch keine Dateien ändern nur um das Programm zur Laufzeit zu patchen ... Stichwort: Loader.

Aber ansonsten finde ich - wie der "AlteMürrische" auch schon - deine Vorschläge doch eher fragwürdig.

Zitat:

Zitat von alzaimar
Wenn in einer Weltfirma 1000 Mitarbeiter meine SW illegalerweise nutzen und die kostet pro Installation 1000 Euro, wäre ich geneigt, den Kunden zu verlieren :mrgreen:

Kann ich irgendwie nicht verstehen :gruebel: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:

Hobby-Programmierer 21. Okt 2006 01:14

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Moin, Moin :),
Zitat:

Zitat von Olli
Zitat:

Zitat von OldGrumpy
Es gibt auf dem Markt momentan nicht ein Produkt, das nicht schon geknackt wäre, punktum.

Doch. Sogar einige. Die Windows-XP-Aktivierung wurde noch nicht geknackt, sondern bisher nur umgangen (und da sind meines Wissens aktuell alle Löcher gestopft).

[OT]
Das stimmt nicht so ganz! In einschlägigen Foren gibt es genug Tipps sich Keys selbst zu erzeugen und diese mit nem per nLite selbstgebasteltem Windows zu installieren und zu registrieren. Dann nur noch ein bestimmtes Update ablehnen und Microsoft wird nie meckern!!
Alternativ zu empfehlen ist aber: Man fährt zum nächsten Wertstoffhof, schaut in den Container mit den PC's und schwupp gibts ne gültige Lizenz. :mrgreen:[/OT]
Zum Thema Kopierschutz kann ich mich den meisten nur anschliessen. Lieber die Zeit und Energie darauf zu verwenden das Programm zu erweitern/ verbessern und anständigen Support zb. per Mail zu leisten.

Ghostwalker 21. Okt 2006 06:12

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
OT:

Zitat:

Welchen Sinn machts zum Beispiel, Sachen wie die Nokia PhoneSuite in P2P-Börsen zu stellen? Alle jemals relevanten Versionen gibts bei Nokia direkt zum kostenlosen Download, sogar ganz ohne Viren und Trojaner Mr. Green
Warum macht das keinen Sinn ? Es entlastet den Nokia-Server und verhindert, das man (in Stoßzeiten), ewig warten muß. P2P-Börsen werden zwar sehr viel für die Verbreitung illegaler Waren (nicht nur Soft auch MP3's und DVD usw.) genutzt. Allerdings ist du Idee dahinter, die, das man sich nicht unbedingt nen teuren Webspace holen muß, wenn man sein Freeware-Programm in Umlauf bringen will.


Zum Topic:

Wie du Eingangs erwähnt hast, gibts keinen wirklichen Schutz. Selbst die Kopiersicherungen mit Hardwareeinsatz (Dongle, EPROM) sind geknackt worden. Von daher finde ich den Einsatz eines Kopierschutzes sinnlos. Das Geld und die Zeit sollte man lieber in die Qualität der Software selbst
stecken.

Das Cracker es nur auf Software für die Massen abgesehen haben, ist ein Trugschluß. Ich habs selbst
hab erlebt, das sie sich auch auf Software stürzen, die nur für eine sehr eingeschränkte Zielgruppe nützlich war (Software für bestimmte Handwerker).

Phoenix 21. Okt 2006 09:44

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Das bedeutet letzlich, dass ich - um wirklich sicher zu gehen, dass niemand, und wenn dann nur eindeutig identifizierbare Personen, das Programm kopieren - wichtige / elementare Funktionalität in einen Webservice auslagern muss und die Authorisierung des Benutzers über ein Zertifkat regele, das ich für den einzelnen Benutzer ausstelle.

Ohne sich korrekt am Webservice anzumelden läuft die Software nicht bzw. die wirklich wichtige Funktionalität steht einfach nicht zur Verfügung. Da über das Zertifikat der Lizenzinhaber identifizierbar ist kann man auch auswerten, ob einer sein Zertifikat evtl. weitergegeben hat und dieses dann sperren.

Phoenix 21. Okt 2006 09:54

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
So, direkt im Anschluss nochmal etwas abgesetzt was zu meiner Motivation:

Wie gesagt, ich suche noch ein Thema für meine Diplomarbeit. Das kam mir als mögliche Idee in den Sinn. Mein Dekan wäre sicher begeistert und ich kannmir gut vorstellen er würde das auch betreuuen.

Da ein Konzept was hier mal auf Schwachstellen abgeklopft wurde diese auch aufdeckt war meine Intention ;-)

Sinnfrei finde ich das nicht. Wenn man es schafft, den Aufwand der zum Knacken notwendig ist zum großen Teil auf die individuelle Installation zu verschieben, dann macht das ein 'ich knack jetzt einmal und verbreite das dann' - Angriff keinen Sinn. Das passiert dann vielleicht ne Handvoll mal damit die sehen dass sie es überhaupt können, aber das wars dann auch schon. Den Aufwand für eine einzelne Installation wird sich kaum einer machen, wenn die Software billig genug ist.

Das bedeutet es geht mir einfach darum, den Aufwand so hoch zu stecken dass es einfacher ist, eine Lizenz für max. X € auch zu kaufen. Es gibt im übrigen zur Zeit noch keine Software die ich so gesichert verkaufen würde. Bis jetzt habe ich ja das Glück, mit Individualprodukten gut zu laufen von denen ich weiss, dass sie eigentlich nur bei diesem einen Kunden Sinn machen und von daher gar nicht interessant zum Kopieren sind.

Der_Unwissende 21. Okt 2006 10:06

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Hi,
Was ich nicht verstehe sind die Hinweise, dass die Zeit lieber in die Qualität der SW gesteckt werden sollte. Wenn die Qualität nicht eh an erster Stelle steht, dann würde keiner die SW kaufen! Von einem festen Zeitplan kann hier (denke ich) eh abgesehen werden (es ging doch nur um ein Gedankenspiel für einen Kopierschutz).
Jedenfalls sollte man solange es Probleme bei der Qualität gibt die SW einfach nicht auf den Markt bringen, auch das führt nicht gerade zu einem Zulauf von Käufern und wenn jmd. SW testet und merkt dass die Qualität nicht stimmt, dann kauft er nicht das Produkt in der Hoffnung dass ServicePack 84 die gröbsten Fehler behebt.

Wieso glaubst du jetzt eigentlich, dass man nicht ein Zertifikat fälschen kann oder dass das eines der Probleme behebt? Klar, jede Firma hat es gern, dass der Start der SW erstmal eine Internetverbindung aufbaut. Von einer Privatperson mit Modem oder ISDN Kanal (zeitabgerechnet versteht sich, eventuell mit Einwahlgeb.) mal ganz zu schweigen.
Was verstehst du eigentlich unter wichtige Funktionalität in einen Webservice auslagern? Ich meine allein die Zeit, die es kostet, dass jmd. seine Daten verpackt, verschickt, dein Server die wichtige Funktionalität anwendet und die Antwort zurück schickt...
Damit wärst du schon beim angesprochenen Server (glaube jmd. ging in die Richtung fremde HW zu der der Benutzer keinen Zugang hat) und auf dem läuft deine SW. Jeder kann sich dann (z.B. über ein Webinterface) anmelden und arbeiten. Dann ist sichergestellt, dass keiner die SW kopieren kann (ohne eine Lücke in der Serverkonfiguration zu nutzen).

Es bleibt auch hier nur zu sagen, dass es keine schöne Möglichkeit gibt. Ein guter Kopierschutz existiert nicht. Je sicherer die Dinger werden sollen, desto mehr verliert die Software an Komfort (wie zentrales Verteilen über einen Server). Typische abschreckende Beispiele (oder Gedankenspiele ;-)) wären hier wohl Adobes Nummer einfach mal Daten in den Bootsektor zu schreiben oder die bekannten Rootkits auf CDs und DVDs.
Bei dem Bootsektor hat man schonmal das Problem, dass die SW somit an diese Festplatte gebunden ist und Adobe davon ausgeht, dass die entsprechende Stelle unbenutzt ist. Was bei einer aktuellen Windows Installation noch nahezu garantiert wird, kann mit Bootmanager schnell anders aussehen. Zudem könnte jmd. auf die gleiche Idee kommen und schon kracht es.
Die Nummer mit den Rootkits ist auch wieder so ein Ansatz. Kannst ja die wichtigen Dateien vor dem Benutzer verstecken. Merkt das ein Virenscanner, dann wird keiner an der Seriösität einer kleinen unbekannten Firma zweifeln, man wird sich sicher sein, dass es ein Virus ist. Aber auch die Möglichkeit ein Sicherheitsloch zu nutzen, dass ggf. mal gestopft wird oder einfach eines für Schadsoftware zu öffnen (die dann das eigene Rootkit ausnutzen) ist unheimlich attraktiv für den Kauf einer SW. Es sollte glaube ich mit einem der DVD-Rootkits ja auch das kopieren von DVDs auf dem Rechner unterbunden werden, hat ja soweit gut geklappt, dummerweise wurde dort aber das Kopieren von jeglichen DVDs unterbunden, auch solche für die man selbst Rechteinhaber ist. War jedenfalls öffentlichkeitswirksam! Ob es dir helfen würde ist dann eher fraglich.
An sich fände ich es aber lustig, wenn jetzt ein Rootkit, dass irgendeine SW vor bösen Re-engineering schützen möchte anspringt, wenn der Delphi-Debugger läuft.

Gruß Der Unwissende

Ghostwalker 21. Okt 2006 10:51

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Zitat:

Was ich nicht verstehe sind die Hinweise, dass die Zeit lieber in die Qualität der SW gesteckt werden sollte. Wenn die Qualität nicht eh an erster Stelle steht, dann würde keiner die SW kaufen! Von einem festen Zeitplan kann hier (denke ich) eh abgesehen werden (es ging doch nur um ein Gedankenspiel für einen Kopierschutz).
Was ich damit aussagen wollte ist, das es sehr viele Firmen gibt, die unheimlich viel Aufwand treiben, für einen Kopierschutz, die SW an sich aber vor Bug's nur so strotzt (viele Spielehersteller z.B. aber auch MS ist da denk ich ein gutes Beispiel).

Zitat:

Jedenfalls sollte man solange es Probleme bei der Qualität gibt die SW einfach nicht auf den Markt bringen, auch das führt nicht gerade zu einem Zulauf von Käufern und wenn jmd. SW testet und merkt dass die Qualität nicht stimmt, dann kauft er nicht das Produkt in der Hoffnung dass ServicePack 84 die gröbsten Fehler behebt.
Da stimm ich dir vollkommen zu, so sollte es sein. Nur ist es leider nicht so. Die Leute kaufen, ärgern sich und warten auf einen Patch/Servicepack.

Die Überlegung von mir ist einfach die: Warum soll ich mir Gedanken über einen Kopierschutz machen, wenn dieser eh geknackt wird, und die SW trotzdem kopiert wird. Da überleg ich mir doch lieber, wie ich Kunden/potenzielle Kunden über andere Wege dazu bekomme, meine SW zu kaufen :)

Wenn es schon ein Kopierschutz geben muß, dann sollte auch darauf geachtet werden, das die Kunden damit auch klar kommen. Wie schon weiter vorn angemerkt, nützt es nichts, wenn ein Kopierschutz super toll das Kopieren umständlich macht, der "ehrliche" Nutzer aber einen riesen Akt machen muß, um die Software zum laufen zu bringen.

Christian Seehase 21. Okt 2006 13:22

Re: Gedankenspiel: möglichst sicherer Kopierschutz?
 
Moin Sebastian,

Zitat:

Zitat von Phoenix
Es gibt im übrigen zur Zeit noch keine Software die ich so gesichert verkaufen würde.

Und es gibt keine Software die ich so gesichert kaufen würde.

[EDIT]
Eine Software (Spiel), die ohne Internetverbindung nicht starten wollte habe ich sogar schon mal zurückgegeben.
[/EDIT]


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:20 Uhr.
Seite 1 von 2  1 2      

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