Ich nehme an, dies bestaetigt meine Vermutung, dass das ein Kopierschutz werden soll? Es gibt gute Gruende, warum es so lange gedauert hat, funktionierende Kopierschuetze zu entwickeln. Und der Stand der Technik ist extrem aufwaendig fuer den Betreiber und wird dir sicher nicht gefallen. Jedenfalls kannst du davon ausgehen, dass du nicht ploetzlich ueber den heiligen Gral stolpern wirst, den alle andeen in Jahrzehnten einfach die ganze Zeit uebersehen haben.
Navy schrieb:
Dazu hätte ich eine Frage: So etwas ist doch niemals sicher, oder? Wer es will, der kann doch immer einen weg finden, den "Schutz" zu umgehen. Ich habe mich jetzt dazu entschieden, die Zeit über das Internet zu lesen. Aber auch diese Methode kann umgangen werden, oder?
Klar, sehr einfach sogar. Was ist denn dieses "Internet"? Im Prinzip eine Socketverbindung zu einem rechner, den du entweder anhand einer IP-Adresse oder eines DNS-Eintrags identifiziert. Aber der Administrator des Rechners kann bestimmen, wie solche Verbindungsversuche aufgeloest werden. Letztlich ist es nicht schwer, die Verbindungsversuche deines Programms an einen Rechner im lokalen Netz oder gar an den lokalen Rechner selbst weiter zu leiten.
Um dies zu verhindern, wird es kompliziert, aber es ist prinzipiell moeglich fuer dein Programm, deinen Server zu identifizieren, indem du Kryptographie benutzt. Natuerlich muss dann auch die gesamte weitere Kommunikation verschluesselt sein, sonst spielt der boeswillige Nutzer einfach den Man-in-the-middle und schiebt dir die falsche Uhrzeit rein.
Aber was haelt den boeswilligen Nutzer davon ab, einfach dein Programm zu aendern, ihm zum Beispiel den eigenen public-key als den deines Servers unterzuschieben. Oder gar die ganze Abfrage zu entfernen? Dein Programm muss also essentielle Daten aus dem Netz nachladen, ohne die es nicht funktioniert. Aber der boeswillige Nutzer wird einfach ein Speicherabbild deines Programms machen und somit an diese Daten kommen, um dein Programm fortan ohne Netzverbindungstarten zu koennen.
Folglich duerfen diese Daten den Server nie verlassen. Dein ausgeliefertes Programm ist nur ein Client, die eigentliche Anwendung laueft auf dem Server, dieser sendet nur die Ergebnisse. Dies ist der Stand der Technik und die einzige als sicher geltende Methode (ausser der Angreifer verschafft sich Zugriff auf den Server und klaut dort dein Hauptanwendung, aber das ist viel mehr kriminelle Energie als das Manipulieren des eigenen Rechners). Du brauchst also "nur" einen eigenen Server (oder ein ganzes Netz davon) mit genuegend Rechenkapazitaet und Zuverlaessigkeit fuer alle deine Kunden. Und wohl noch wichtiger: Du brauchst Kunden, die diese Gaengelung mitmachen.
Vielleicht eine bessere Idee: Rechtsmittel . Gib jedem Kunden eine individuelle, identifizierbare Executable (irgendwelche subtilen Unterschiede). Wenn diese irgendwo anders auftaucht, dann kannst du nachweisen, wer diese weiter gegeben hat.