Ich bin auf die Idee gekommen, Verschlüsselung zu verwenden, um zu verhindern, dass Benutzer Inhalte in meinem Programm außerhalb des Programms selbst herausfinden. So wie Benutzer möglicherweise Texturen finden, die nie im Spiel verwendet wurden und Teil eines Ostereies sein sollen, während sie die Spieldaten durchgehen. Dies kann es zB für alle ruinieren, wenn es online gepostet wird.
Stellen Sie sich einen geheimen Raum vor, in dem der Spieler die richtigen Zahlen an einer Sicherheitstür im Spiel drücken muss. Wenn dies korrekt ist, sollte dies den richtigen Entschlüsselungsschlüssel generieren und dann diesen Teil des Levels entschlüsseln und die Tür öffnen. Auf diese Weise wird das Osterei auch beim Durchsehen der Spieldaten ansonsten unzugänglich, da der Schlüssel nicht tatsächlich gespeichert ist und auf der Grundlage von Benutzereingaben generiert wird.
Hier ist ein weiteres Beispiel für das, was ich mir vorgestellt habe. Ich habe ein Puzzlespiel mit 20 Levels, die jeweils mit einem anderen Schlüssel verschlüsselt sind. Anstatt den Entschlüsselungsschlüssel mit dem Programm direkt zu speichern, damit jemand das Programm dekompilieren und finden kann, erstelle ich den Verschlüsselungs- / Entschlüsselungsschlüssel basierend auf der Lösung des vorherigen Puzzles. Auf diese Weise müsste der Spieler das Rätsel tatsächlich lösen, bevor er Informationen zum nächsten Level erhält, selbst wenn er die Spieldaten durchblättert.
Der Spieler könnte es, wenn er sich auskennt, "leicht" brachial erzwingen, da die Anzahl der Rätsellösungen wahrscheinlich geringer ist als die Anzahl der Entschlüsselungsschlüssel. Es ist wirklich eine Frage der Komplexität des Puzzles und ist hier nicht sehr wichtig. Obwohl ich habe es eine Antwort schreiben in Bezug auf hier über
Gibt es heute Programme / Spiele, die so etwas gemacht haben? Speichern von verschlüsselten Inhalten in ihren Spielen? Und wenn nicht warum? Gibt es viele Regeln und Vorschriften, entweder im Ladengeschäft oder auf Länderebene? Sieht jemand offensichtliche Fallstricke, die ich vermisse? Wenn ich Dinge wie User-Experience ignoriere, erscheint mir die Idee vernünftig und macht mich neugierig, warum ich das noch nie gesehen habe.
Bearbeiten : Es ist möglicherweise nicht klar, was ich sage, also ist hier ein konkreteres Beispiel.
Angenommen, ich habe eine Funktion, die eine Zeichenfolge von 20 Zeichen umfasst und einen symmetrischen Schlüssel generiert, mit dem ich Inhalte im Spiel verschlüsseln / entschlüsseln kann. Die einzige Möglichkeit für den Benutzer, an diesen Inhalt zu gelangen, besteht darin, diese 20 Zeichen zu kennen und denselben Schlüssel zu generieren. Dieser Schlüssel wird niemals direkt gespeichert und sofort auf der Grundlage von Benutzereingaben generiert. Diese Charaktere würden im Spiel in Büchern versteckt sein, im Dialog mit NPCs, vielleicht sogar außerhalb des Spiels auf der Rückseite der Schachtel.
Bei 2 * 10 ^ 28 möglichen Kombinationen ist es wahrscheinlich wahrscheinlicher, dass die Leute den Inhalt auf die beabsichtigte Weise finden, als wenn sie die Spieldaten durchsehen.
Bearbeiten 2 : Der betreffende Inhalt wird vor dem Versand an den Verbraucher mit einem beliebigen und geheimen Schlüssel verschlüsselt . Dieser Schlüssel wird natürlich nicht mit dem Spiel ausgeliefert. Er oder sie müsste den Schlüssel irgendwie wieder zusammenpuzzeln, wenn er eine Reihe von Hinweisen erhält, die auf dem Schlüssel basieren und die während des Spiels oder irgendwo anders versteckt sind. Dieses System wäre jedoch für den Benutzer transparent, da Sie nicht wissen würden, dass der Inhalt verschlüsselt ist, es sei denn, Sie haben die Spieldaten tatsächlich durchgesehen.
Wie schon erwähnt, hat dies einen offensichtlichen Nachteil, da sein Anwendungsfall begrenzt ist. Sobald eine einzelne Person es herausgefunden hat, kann sie es mit allen anderen teilen, wenn nicht der Schlüssel / die Lösung, dann der Inhalt selbst. Wenn Sie jedoch die Absicht haben, etwas so geheim zu halten, dass es nicht von einer einzelnen Person gelöst werden kann und die Menschen zusammenarbeiten müssen, oder wenn Sie befürchten, dass Ihr Osterei (beabsichtigt) so gut versteckt ist, dass es nicht funktioniert Wahrscheinlicher ist, dass jemand es im Code findet, eher durch das Spiel. Dann denke ich, dass das großartig funktionieren könnte.
Ich persönlich würde empfehlen, es nur einmal pro Spiel zu verwenden und nur für Dinge, die das Kernspiel nicht beeinflussen, z. B. Ostereier, ein geheimes Ende. Jedes Rätsel müsste so kompliziert oder gut versteckt sein, dass es die Leute so verlangsamt, dass sich die Verschlüsselung des Inhalts lohnt. Wenn dieses Rätsel den Fortschritten der Leute im Wege steht, hat wahrscheinlich niemand Spaß.
quelle
Antworten:
Diese Frage stellt sich die Frage, ob es möglich ist (nicht nur kommerziell realisierbar oder eine andere Interpretation), mindestens einen Benutzer zum Lösen eines Puzzles zu zwingen, anstatt bestimmte Spielinhalte durch Hacken freizuschalten.
Meines Wissens ist dies definitiv möglich. In der Tat ist es seltsam für mich, dass andere Antworten sagen, es sei absolut nicht möglich, auch wenn sehr explizit festgestellt wurde, dass der Schlüssel weder generiert noch gespeichert wird, sondern lediglich aus dem Spielstatus eingelesen wird (was Google-Plexes möglich gemacht haben könnte Werte). Das Argument, dass "das Spiel weiß, wie es zu entschlüsseln ist", sodass es nicht funktioniert, würde bedeuten, dass Open-Source-Verschlüsselungs- / Entschlüsselungssoftware (z. B. TrueCrypt) von Natur aus unsicher ist, weil Sie wissen, wie Container zu entschlüsseln sind (geben Sie einfach ein) Eine Zeichenfolge, die auf Tastatureingaben basiert, ist ganz einfach, oder?).
Stellen Sie sich im einfachsten Fall vor, dass das Spiel selbst ein Tastatursimulator ist und die Frage "Wie lautet das Kennwort für meine verschlüsselten Dateien?" Gestellt wird. Wir sind uns alle einig, dass der Quellcode für das Spiel nicht hilfreich ist. Stellen Sie sich nun vor, das Spiel stellt die Fragen "Wie heißt das größte Tier der Erde, das mit dem Namen des kleinsten Tieres verkettet ist?". Ist nicht klar, dass selbst der Quellcode des Spiels nicht helfen würde und Sie das Rätsel noch lösen müssen ?
In Bezug darauf, ob dies möglich ist, ist die Antwort absolut JA, dies ist möglich.
quelle
strings
auf der ausführbaren Datei) ein Rätsel wie "Wie heißt das größte Tier ...?" Möglicherweise muss der Spieler / Hacker noch eine Lösung finden , aber zumindest kann er die gefährliche Reise zu der Stelle im Spiel vermeiden, an der die Frage auftritt. Daher sollten auch die Rätsel selbst etwas versteckt sein (Text als Grafik kann oft ausreichen; ich denke, ich erinnere mich an ein Spiel, bei dem normale 3D-Objekte, wenn sie von einem bestimmten Punkt aus betrachtet werden, perspektivisch zur Lösung eines Rätsels oder eines anderen wichtigen Punkts kombiniert werden Informationen ...)Es wurde versucht. Viele, viele Male. Es gibt eine ganze Unterbranche, die versucht, die Verschlüsselung zu verwenden, um zu verhindern, dass Benutzer nach eigenem Ermessen auf ein Programm zugreifen. Und es geht nie. Die besten Schutzmaßnahmen dauern in der Regel etwa einen Monat, bevor sie geknackt werden, und die Sache mit dem Internet ist, dass es, sobald es einmal geknackt wurde, für immer überall geknackt wird, sobald es jemand veröffentlicht. Die offensichtliche Falle, die Sie vermissen, besteht darin, dass Ihr Programm alle Informationen enthalten muss, die zum Entschlüsseln erforderlich sind, damit es die Daten verwenden kann. Wenn der Computer dies kann, kann dies eine Person tun, die Zugriff auf den Computer hat Das.
Man nennt es "das grundlegende Problem der Kryptographie": Alice möchte eine Nachricht an Bob senden, ohne dass Charlie sie lesen kann, auch wenn er sie in den Griff bekommt. Das Problem bei dem von Ihnen vorgeschlagenen Ansatz ist, dass Bob und Charlie in diesem Fall dieselbe Person sind .
Ich kann den Wunsch verstehen, Ihre Benutzer nicht zu verderben, aber wenn Leute Verderber wollen, werden sie sie finden, und wenn sie es nicht tun, tendieren sie dazu, Verderber aktiv zu meiden. Aber wenn Sie wirklich ein großartiges Spiel machen wollen, gehen Sie den umgekehrten Weg: radikale Offenheit. Schauen Sie sich Dinge wie Neverwinter Nights , Starcraft oder die Elder Scrolls- Reihe an, Spiele, die auch nach ihrer Veröffentlichung noch viele Jahre lang beliebt sind. Sie tun dies, weil sie leistungsstarke Designtools mit dem Spiel liefern, mit denen Benutzer alles untersuchen, herausfinden können, wie es funktioniert, und ihre eigenen Inhalte erstellen und teilen können. Ein Spiel ist nur ein Spiel, bis es zu einer Gemeinschaft wird und Gemeinschaften Bestand haben.
quelle
Ich habe lange genug gewusst, dass, wenn der Inhalt da ist, jemand ihn findet. Wenn Sie es schwieriger machen, ziehen Sie einfach entschlossenere Leute an. Je beliebter Ihr Produkt ist, desto interessanter wird es. Zum Teil, weil es eine Herausforderung ist, zum Teil, weil es so viele Orte gibt, an denen Sie sich durch das Posten dieser Art von Informationen "anrechnen" können.
Wenn der Schlüssel lokal vom Spiel generiert wird, können Sie eine Möglichkeit finden, das Spiel bis zu dem Punkt zu betrügen, an dem der Schlüssel generiert wird, oder einfach den richtigen Code ausgraben. Wenn der Schlüssel von einem Server an Sie gesendet wird, nachdem Sie bestimmte Schritte im Spiel ausgeführt haben, wird jemand Ihren Server dazu verleiten, zu glauben, dass er weit genug gekommen ist.
Am Ende profitiert Ihr Spiel viel mehr von der Zeit, die Sie damit verbringen, es unterhaltsam und ansprechend zu gestalten, als es zu erschweren, die Farbe der nächsten Stufe herauszufinden.
quelle
Der Hauptgrund, warum dies auf gamedev sein sollte, ist, dass diese Verschlüsselung Auswirkungen auf das Gameplay hat.
Sie möchten, dass die Lösung für ein Rätsel der Verschlüsselungsschlüssel für das nächste ist. Das heißt, die tatsächlichen Daten dieser Lösung müssen das nächste Rätsel entschlüsseln. Dies bedeutet, dass der Entschlüsselungsschlüssel nirgendwo in den Daten Ihres Spiels enthalten ist. es wird vom Spieler erzeugt.
Und hier ist die Konsequenz. Die Entschlüsselung erfolgt normalerweise binär. Entweder haben Sie den genauen Entschlüsselungsschlüssel, der zum Entschlüsseln der Daten erforderlich ist, oder Sie tun dies nicht.
Die Konsequenz hieraus ist, dass jedes Spiel, das Sie entwerfen, so eng fokussiert sein muss, dass es für jedes Level nur eine mögliche Lösung gibt . Daher muss Ihre Puzzlemechanik so sorgfältig gestaltet sein, dass der Spieler das Puzzle nicht anders lösen kann als Sie es beabsichtigt haben.
Nehmen Sie zum Beispiel Portal, Test Chamber 10. Du sollst nach links gehen, ein paar Sachen machen, dann nach rechts und ein paar Sachen machen, um eine Plattform abzusenken.
Oder du gibst dir einfach etwas Geschwindigkeit und schleuderst dich auf die Plattform, wenn du direkt hineinkommst.
So sind Puzzlespiele wie Adventures of Lolo, SpaceCHEM und Portal (unter Millionen von anderen) genau richtig. Stattdessen müssen Sie Ihr Spiel so gestalten, dass es unmöglich ist , ein Puzzle mit mehr als einer Lösung zu erstellen. Dies erfordert sehr viel Sorgfalt und in der Regel eine erhebliche Einschränkung des Gameplays.
Ich sage nicht, dass Sie ein solches Spiel nicht erstellen können. Oder dass so ein Spiel nicht gut sein kann. Nur dass ein solches Spiel in gewisser Weise gestaltet werden müsste.
Oh, und du musst dieses Gameplay so gestalten, dass es unmöglich (oder sehr schwierig) ist, mechanisch eine Lösung zu finden.
Natürlich gibt es eine Einschränkung: die Bedeutung von "Lösung". Oder genauer gesagt, welche Elemente einer Lösung berücksichtigen Sie?
In jedem Spiel, in dem sich ein Charakter bewegt, werden Sie wahrscheinlich nicht die genauen Bewegungen des Charakters verwenden, um den Entschlüsselungsschlüssel zu konstruieren. Wenn Sie beispielsweise ein Puzzlespiel haben, in dem der Spieler bestimmte Gegenstände aufheben muss, um das Puzzle zu lösen, können Sie den Schlüssel von der Reihenfolge abhängig machen, in der diese Gegenstände berührt werden.
Dies führt natürlich zu dem oben genannten Problem, bei dem ein Spieler einen Weg findet, um Dinge außerhalb der Reihenfolge zu tun. Was wiederum bedeutet, dass Sie das Puzzle so gestalten müssen, dass es nur eine Reihenfolge gibt, in der Sie möglicherweise Dinge aufnehmen können.
Darüber hinaus müssen alle Elemente, die Sie zum Erstellen des Entschlüsselungsschlüssels verwenden, eine ausreichende Entropie bieten, um die Brute-Force-Entschlüsselung zu erschweren. Bei Verwendung der oben beschriebenen Mechanik für die Abholreihenfolge ist jeder neue Artikel praktisch ein zusätzliches Bit. Wenn eine Ebene nur 8 Elemente enthält, führen Sie eine 8-Bit-Verschlüsselung durch. Welches ist Mist; Die meisten Smartphones schaffen das in Sekunden.
Heutzutage braucht man mindestens 128, um es sogar etwas herausfordernd zu machen. Was nun bedeutet, dass jedes Level viele Dinge enthalten muss, die sich wiederum auf Ihr Spieldesign auswirken.
quelle
The consequence here is that whatever game you design must be so narrowly focused that there is only one possible solution to every level.
Nicht unbedingt: Er könnte den Inhalt für jede mögliche Lösung verschlüsseln und für alle möglichen Lösungen doppelt verschlüsselte Inhalte versenden. Speicherplatz kann mit einer zweistufigen Verschlüsselung gespart werden - der Benutzerschlüssel in der verknüpften Antwort entspricht einer bestimmten Lösung, das Dokument entspricht dem Inhalt.Die Antworten hier sind gut; Ich würde es jedoch aus einer anderen Perspektive betrachten. Was Sie beschreiben, ist eine Funktion . Funktionen haben Kosten und Nutzen. Die Kosten umfassen sowohl die Dollarkosten für die Erstellung des Features als auch die Opportunitätskosten. Das sind: In einer Welt, in der es endliche Dollars und endliche Stunden und endliche Programmierer gibt, bedeutet jede Funktion, die Sie ausführen, eine unendliche Anzahl möglicher Funktionen, die nicht an ihrer Stelle ausgeführt wurden.
Die Frage ist also: Können Sie die Kosten für dieses Feature real angeben? Es gibt keine kostenlosen Funktionen, seien Sie also bezüglich der Kosten realistisch. Sind Sie bereit, tausend Dollar für diese Funktion zu zahlen? Hunderttausend? Eine Million? Welche Funktionen sind Sie bereit zu schneiden, um diese Funktion zu haben?
Ich denke, wenn Sie anfangen, Dinge in Bezug auf Kosten, Nutzen und verpasste Gelegenheiten zu priorisieren, werden Sie feststellen, dass Sie bereits zu viel Zeit damit verbracht haben, über diese Funktion nachzudenken, als dass Sie über Möglichkeiten nachgedacht hätten, das Spiel unterhaltsamer zu machen.
quelle
Das Alice Bob and Eve-Problem veranschaulicht dies gut. Wie Mason in seiner Antwort betonte, kann man Eva kein Geheimnis vorenthalten, wenn Eva auch Bob ist.
Daher würde jede Lösung darin bestehen, dass Bob nicht über alle erforderlichen Informationen verfügt. Sie müssten jede Ebene als eine einzelne Nachricht behandeln, die getrennt voneinander verschlüsselt ist, und eine externe Quelle für die Nachrichten für die nächste Ebene haben, die die Nachrichten ordnungsgemäß verwalten kann.
Aber irgendwann wird das strittig. Wenn jemand das Spiel selbst spielen kann, kann er auch ein Programm schreiben, um das Spiel aufzunehmen. Alles, was Sie tun, ist, sie zu zwingen, von Ihrer externen Quelle (wahrscheinlich einem Server) hin und her zu gehen. Sobald sie wissen, wie die Nachrichten an Ihren Server geschickt werden, ist es die gleiche alte Geschichte.
Aber Sie vergessen hier ein Schlüsselelement. Es ist ein Spiel. Wenn jemand in einem Spiel schummelt, großer Schrei. Sie haben das Spiel nicht für Betrüger geschrieben. Das Gleiche gilt für Komplettlösungen für Quests oder Level-Anleitungen: Die Leute, die die Herausforderung suchen, es selbst herauszufinden, werden die veröffentlichten Lösungen ignorieren. Selbst wenn Sie in der Lage wären, das Knacken des Spiels unmöglich zu machen, ohne es zu spielen (wir wissen, dass es logischerweise unmöglich ist, aber AUCH WENN Sie könnten), würde es nur einen Kerl brauchen, der durchgeht, bevor er alles Nötige veröffentlicht, um es zu schlagen. Sie verzögern also nur das Unvermeidliche.
Verbringen Sie Ihre Zeit mit einem fantastischen Spiel. Es gibt zehn Dinge, die jedes Spiel braucht, und zuletzt war Verschlüsselung keine davon.
quelle
Ich glaube, deine Idee ist sinnlos.
Wenn jemand dein Spiel spielt, entscheidet er sich, es zu spielen, tut er es nicht, um eine Auszeichnung zu gewinnen, er tut es zum Spaß.
Die Benutzer wissen, dass das Spielen so Spaß macht, wie Sie es gemeint haben, und dass sie nicht betrügen , da Ihre Kunden Ihnen bereits als Geschichtenerzähler vertrauen.
Sobald jemand die Lösung für ein Rätsel gefunden hat, dh Ihren Schlüssel, kann er ihn einfach irgendwo im Internet veröffentlichen.
Spieler, die schummeln wollen, können das immer noch.
Wenn Ihr Spiel jedoch mehrere Lösungen enthält, z. B. die geheimen Super Mario Land-Level, können Sie durch die Verschlüsselung Ihrer Assets nicht einfach auf diese Lösungen zugreifen.
Dies scheint zwar ein Argument für Ihre Idee zu sein, ist es am Ende aber nicht.
Selbst mit Verschlüsselung wäre es immer noch möglich zu wissen, dass solche geheimen Lösungen existieren.
Sobald bekannt ist, dass es eine geheime Lösung gibt, ist es irrelevant , die Spieler daran zu hindern, auf die geheimen Vermögenswerte zu schauen, da sie immer noch über das Spiel selbst auf die verborgenen Teile des Spiels zugreifen möchten (ja, auch wenn sie bereits jedes Verborgene gesehen haben) Textur / Clip / Audio / Text).
Sie können das Durchsickern der Existenz geheimer Lösungen verhindern, indem Sie eine unbewusste Technik 1 anwenden. Es wäre jedoch immer noch verdächtig (warum sollten Sie dies tun, wenn es keine geheimen Lösungen gibt?), Würden die Spieler das Interesse verlieren, sie zu finden, und Sie hätten weniger Spieler , nicht mehr.
Immerhin können wir ein paar Stunden länger spielen, nachdem wir ein Spiel abgeschlossen haben, um ein paar Ostereier auszulösen, aber wir werden keine Minute länger spielen, wenn das Auslösen einen titanischen Aufwand erfordern würde!
Was Sie tun möchten, ist wie ein Schreibheft, in dem das nächste Kapitel mit einem Wort des aktuellen Kapitels verschlüsselt wird, um zu verhindern, dass sich die Leser das Ende verderben.
Denken Sie darüber nach, ist es nicht sinnlos?
1 Ganz ähnlich wie VeraCrypt mit Hidden-Volumes.
quelle
Ich werde nicht auf die wirtschaftliche Tragfähigkeit eingehen, aber aus rein technischer Sicht ist es eine amüsante Herausforderung.
Ich möchte zunächst darauf hinweisen, dass alles, was nicht verschlüsselt ist, nicht geschützt werden kann. Sie können den Eingang nicht in ein Geheimnis einschließen, Cracker finden einen Weg um das Tor herum, stattdessen müssen Sie das gesamte Geheimnis zum Tor selbst machen. In Bezug auf die Assets muss dies nicht bedeuten, dass die gesamten Texturen usw. nur der Plan verschlüsselt werden und welche davon verwendet werden und wie dies ausreicht. Aus Leistungsgründen möchten Sie so wenig Daten wie möglich verschlüsseln.
Zweitens haben Sie Recht, wenn der Schlüssel in der Software enthalten ist, wird er von der Software abgezogen. Bei vielen Spielen wird beim Schutz von Inhalten versucht, entweder die Unkenntnis der Sicherheit oder Mechanismen zu verwenden, die sicherstellen, dass die Spielesoftware nicht verändert wurde. Das sind nur Verzögerungstaktiken.
Ihre Idee, die Lösung eines Rätsels als Schlüssel zu verwenden, ist ziemlich interessant. Die Verwendung des direkt bereitgestellten Schlüssels kann jedoch leicht brutal erzwungen werden. Behandeln Sie die Benutzereingabe stattdessen als Kennwort und verwenden Sie ein modernes Kennwort-Hashing-Schema: Der erzeugte Hash ist der Schlüssel.
Selbst dann besteht jedoch ein Fehler in Ihrer Annahme, dass der Schlüssel nicht im Spiel vorhanden ist. Wenn dies nicht der Fall wäre, könnten Sie Ihre Spieler nicht dorthin lenken. Anstatt zu versuchen, den Tresor brutal zu erzwingen, könnte man stattdessen die Spiel-Assets zurückentwickeln und nach Hinweisen suchen. Ein mögliches Rätsel, an das ich denken kann, ist die Verwendung von Texturen zum Codieren von Glyphen. Das Kennwort besteht dann aus einigen der auf der Tastatur verfügbaren Informationen, die von den Orten angezeigt werden, die der Spieler (in der angegebenen Reihenfolge) hätte besuchen müssen:
Und jedes Programm, mit dem die gewinnende Glyphenkombination automatisch extrahiert wird, hat einen verdammt guten Tag.
Drittens ist die nächste Schwierigkeit das Teilen. Sobald die Lösung für ein Geheimnis gefunden ist, wird es aufgedeckt. Im Idealfall sollte jeder Person eine etwas andere Version der Software ausgehändigt werden: eine, bei der der Schlüssel für die jeweilige Version des Spiels eindeutig ist. Ich nehme an, dass es einfacher ist, das Spiel (mit seinen Assets) von den "Geheimnissen" (verschlüsselt) und dem "geheimen Treiber" (dem Schlüsselgenerator, der viele Fragmente der Textur an vielen verschiedenen Stellen platziert) zu trennen , von denen einige die Passwörter bilden).
Der offensichtliche Angriffsvektor ist, entweder den Generator dazu zu verleiten, immer das gleiche Passwort zu wählen, oder den Prüfer dazu zu verleiten, immer das gleiche Passwort zu akzeptieren (indem er beispielsweise die Geheimnisse einer anderen Person herunterlädt).
In diesem Fall besteht eine mögliche Lösung darin, die Dateien mit dem Benutzerkonto zu verknüpfen und das Kennwort zu sperren, wie dies normalerweise empfohlen wird:
Wenn der Benutzer dann bereit ist, ein Kennwort einzureichen, gehen Sie wie folgt vor:
Ziel ist es, die gemeinsame Nutzung von Konten so weit wie möglich zu verhindern:
Und wir sind fast da.
Schließlich könnte ein Cracker auch dort eine modifizierte Version des Spiels veröffentlichen, in der die geheimen Assets entschlüsselt und direkt integriert werden (unter Umgehung Ihres sorgfältigen Überprüfungsschemas).
Die Lösung ist einfach (und macht fast alles überholt 1 ): Vertrauen Sie dem Kunden nicht.
Erstellen Sie eine Rangliste auf Ihrer Website und verfolgen Sie den Fortschritt der Spieler in ihrem Konto. Spieler können behaupten, dass sie das Spiel beendet haben, was sie wollen, aber wenn ihr Konto dies nicht widerspiegelt, weiß jeder, dass sie betrogen haben ...
... das nennt man sozialen Druck;)
1 Mit Ausnahme der Textur-Positionierungsdatei, mit der verhindert wurde, dass ein Programm den Schlüssel errät, und die es dem Benutzer dennoch ermöglicht, ihn abzurufen.
quelle
Es ist eine interessante Idee; eine Variante der Puzzle-Discs und des manuellen Kopierschutzsystems. Ich denke, einige der "ARG" -Spiele funktionieren so, und es wird verstanden, dass die Spieler gemeinsam gegen den Spieledesigner vorgehen.
Sobald die erste Person es entschlüsselt, wird sie es offensichtlich im Internet veröffentlichen.
Generative oder prozedurale Inhalte können auf die gleiche Weise funktionieren: Sie sehen nicht die gleiche Welt wie ein anderer Spieler, es sei denn, Sie teilen einen "Samen".
Ich kann keine rechtlichen Probleme damit feststellen, obwohl Apple es möglicherweise aus dem App Store ablehnt und Sie möglicherweise die Lösung bereitstellen müssen, um es für Spielekonsolen genehmigen zu lassen.
quelle
Über zusätzliche Sicherheitsmaßnahmen nachzudenken ist unterhaltsam, bringt Ihrem Produkt jedoch keinen konkreten Mehrwert - es zeigt, wie geschickt Sie mit den Crackern umgehen, die auf Ihr Produkt treffen. Grundsätzlich wird Ihr Gegner Sie einholen.
Im Gegensatz zu kreativen Entwicklern sind Cracker analytische Menschen, die Ihr Programm intuitiv ausnutzen können. Wenn Entwickler zu übermäßigen Sicherheitsmaßnahmen neigen, leugnen sie, dass der Cracker sein Schutzschema wieder umkehren könnte .
Ob Sie an diesem Hintergrundwettbewerb teilnehmen möchten, das ist Ihre Devise - aber lassen Sie sich nicht von Ihrem Endprodukt ablenken, das dem Kunden gefallen muss. Ein skurriles Verschlüsselungsschema, das das Spiel in eine Schnecke verwandelt, hilft nicht.
quelle
Mason Wheeler hat es richtig: Sie können es nicht tun. Jemand kann Ihr Spiel jederzeit zurückentwickeln, wenn er möchte.
Sie müssen Ihr Spiel ohnehin nicht so "schützen", wie Sie es beschreiben. Sobald eine Person das Osterei findet, ist das Geheimnis aus dem Sack. Wenn jede Kopie des Spiels ein anderes Osterei hat, ist nur die Hacker-Kopie bekannt. Interessiert es Sie wirklich, dass einer von 1000 Hackern das Osterei gefunden hat, ohne das Gameplay durchzuarbeiten?
Das Urheberrecht ist so beschaffen, dass niemand mit Ihrem Spiel Geld verdienen kann, ohne eine ernsthafte Klage zu riskieren. Das Urheberrecht schützt Sie also.
Soweit es zufällige Benutzer betrifft, die Ihre Texturen in den Avatar ihres Forums einfügen, na und? Betrachten wir es als Basiswerbung.
Wenn Sie davon besessen sind, Dinge zu "schützen", werden Sie nur von schwierigen Realitäten wie dem Erstellen des Spiels abgelenkt .
Wenn ich sehe, dass Leute, die kein Produkt haben, über ihre IP-Schutzsysteme für Dinge sprechen, die es nicht gibt, ist dies für mich ein begehbarer Moment, weil es eine große rote Fahne über das gesamte Projekt setzt.
quelle
Einige Möglichkeiten:
Einfache alte Code-Verschleierung . Es wird den Code nicht unmöglich machen, ihn zu dekodieren, aber zumindest wird es schwierig sein.
Serverseitige Lösung. Sie senden einige spezielle Befehle an den Server und der Server kann Ihnen den Code senden ... oder sogar einen DLC herunterladen.
Sie können Steganography verwenden , um ausführbaren Code in anderen Inhalten auszublenden.
Dies macht Ihr Geheimnis nicht 100% sicher, aber es scheint, dass niemand Geld verlieren wird, wenn das Geheimnis gelüftet wird.
quelle
Es ist genauso nutzlos wie jedes andere Schema, in dem Sie sowohl Schlüssel als auch Algorithmus auf dem Client speichern. Wenn Sie fragen, wo der Schlüssel ist, verlasse ich mich auf Benutzereingaben und speichere ihn nicht selbst? Dieser genaue Algorithmus und seine Ressourcen sind der Schlüsselgenerierungsalgorithmus, den Sie soeben im verborgenen Zustand fest in das Spiel einprogrammiert haben. Jeder kann Ihren "nicht existierenden" Schlüssel abrufen, indem er nur ein kleines Programm schreibt, das Ihr Rätsel nach Ihren Regeln löst.
quelle