Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#13

Re: Gedankenspiel: möglichst sicherer Kopierschutz?

  Alt 20. Okt 2006, 13:28
Zitat von Olli:
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 von Olli:
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 von Olli:
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 von Olli:
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 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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat