Frage:
Wenn "Sie dem Kunden niemals vertrauen können", warum verlassen sich Unternehmen wie Valve dann ausschließlich auf die clientseitige Überprüfung?
user189790
2016-02-22 06:39:10 UTC
view on stackexchange narkive permalink

In Videospielen wird die meiste Anticheat-Software clientseitig ausgeführt (z. B. PunkBuster oder Valve Anti-Cheat) - aber ist dies nicht eine der ersten Sicherheitsregeln, die dem Client niemals vertrauen? Wenn ja, warum bieten diese Unternehmen dann keine serverseitige Überprüfung für Videospiele an, sondern bestehen weiterhin darauf, dem Kunden zu vertrauen?

Wie erkennt man die Wallhack-Serverseite?
Warum sollte angenommen werden, dass es keine serverseitige Validierung gibt?
@Agent_L: Indem keine Informationen an den Client gesendet werden, die der Wallhack verwenden könnte. Stellen Sie sich vor, Sie haben auf dem Client absolut KEINEN Spielcode ausgeführt, z. B. sendet der Client Eingaben direkt an den Server, der Server rendert die Szene serverseitig und sendet einen MPEG-Stream des Spiels an den Client. Dann wäre es unmöglich zu betrügen.
@sebastiannielsen auf diese Weise werden die Anforderungen an Server (und Client - ich kann 480p im superschnellen (.s) türkischen Internet nicht streamen) viel höher sein.
@sebastiannielsen So funktioniert beispielsweise der Playstation Now-Service von Sony. Sie kauften OnLive, bei dem PC-Spiele über das Netzwerk gestreamt werden konnten. Es funktionierte überraschend gut und war mit voller Grafik vollständig spielbar.
Es gibt auch das Latenzproblem. Hier in Neuseeland beträgt Ihre Ping-Zeit zu fast jedem Ort etwa 300 ms. Viel Spaß beim Spielen eines rasanten Shooters mit 300 ms Eingangsverzögerung. (300 ms Verzögerung beim clientseitigen Rendern können abhängig von den Verzögerungskompensationsalgorithmen des Spiels durchaus spielbar sein.)
Beachten Sie auch, dass einige Spiele (z. B. quellenbasierte) * versuchen *, dem Kunden nur Informationen über andere Spieler zu senden, die sie sehen können, aber nicht perfekt sind.
@immibis CS:GO hat kürzlich speziell eine Art Anti-Wallhack implementiert, die etwas mit der Sichtlinie zu tun hat. Anfangs gab es viele, * viele * Implementierungsfehler (insbesondere bei Sound), und selbst jetzt gibt es Fälle, in denen Personen nicht erscheinen oder sich auf dem Bildschirm "teleportieren". SMAC ist eine weitere Implementierung mit ähnlichen Problemen. Ein Wettkampfschütze macht keinen Spaß, wenn Leute anfangen, um Ecken zu teleportieren.
Das eigentliche Problem ist, dass VAC versucht, GÜLTIGE Eingaben zu finden, die entweder von einem Computer oder einem computergestützten Menschen vorgenommen wurden. Der Server hat die Eingabe bereits validiert. Sie wenden das Zitat falsch an.
@sebastiannielsen. OK. Ich habe meine Frage falsch formuliert. Es sollte lauten: "Wie erkennt man Wallhack-Server ** praktisch **?". Denken Sie daran, dass es sich um Pro-Level-Spiele handelt, bei denen die 60-Hz-Aktualisierung zu langsam ist, um akzeptabel zu sein.
"Wenn eine 60-Hz-Aktualisierung als zu langsam angesehen wird, um akzeptabel zu sein"
Kunden können bis zu einem gewissen Grad auf ** Konsens ** vertraut werden. Wenn sie nicht mindestens * versuchen * würden, die Clients zu sichern, würden Sie so viel mehr Hacking und Betrug sehen und würden das Gegenteil dieser Frage stellen.
Die Anti-Cheating-Technologie sucht nicht nach zufälligen Dingen, die Sie tun. Es wird nach vordefinierten Variablen gesucht, die zum Betrügen verwendet werden können (Gesundheit, Geschwindigkeit usw.). Wenn sie einen Grenzwert überschreiten, wird das System wirksam. Dies gilt nicht für alle Betrugsbekämpfungssysteme, aber die meisten von ihnen verlassen sich darauf.
Neun antworten:
h4ckNinja
2016-02-22 07:00:31 UTC
view on stackexchange narkive permalink

Wenn ja, warum bieten diese Unternehmen dann keine serverseitige Überprüfung für Videospiele an, sondern bestehen weiterhin darauf, dem Kunden zu vertrauen?

Es geht weniger darum, auf Vertrauen zu bestehen der Kunde und mehr, dass es kein anderes tragfähiges Anti-Cheat-Modell gibt. Wie DRM und Anti-Cheat-Software wie PB, die eine Form von DRM verwendet, kann nur wenig getan werden.

DRM-Software verfügt über Abhilfemaßnahmen, die verhindern, dass der Client zu viel stochert, aber dies muss dem Kunden auferlegt werden, um zu verhindern, dass der Kunde Dinge tut, die die Medienunternehmen nicht vom Kunden erwarten.

Die Anti-Cheat-Technologie basiert auf einer ähnlichen Methodik. Informationen über den Client werden gesammelt, an den Server gesendet. Wenn ein Client aufgrund einer Reihe von Überprüfungen für die jeweilige Software als fehlerhaft eingestuft wird, kann er auf dem Server gesperrt werden.

Am Am Ende des Tages kommt es auf das Risikomanagement an. Ja, vertrauen Sie nicht, dass der Client einer der ersten Grundsätze der Sicherheit ist. Um die beim Kunden auftretenden Risiken zu mindern, gibt es eine Kosten-Nutzen-Analyse, die das Risikomanagement darstellt. Lohnt es sich, Kunden zu verlieren und zu betrügen, die ein faires und unterhaltsames Spiel wollen? Oder sollten einige Abhilfemaßnahmen getroffen werden? PB und andere Softwarepakete sind nicht dazu da, das Betrügen vollständig zu stoppen, sondern zielen darauf ab, das Betrügen teurer zu machen.

Es gibt auch eine andere subtilere Möglichkeit, die Clients auf das Betrügen zu beschränken (Wall-Hacks, .. .), meistens nur durch Online-Spiele, aber nicht beschränkt auf. Dies wird erreicht, indem der Client-Seite nicht alle Daten zugeführt werden. Zum Beispiel hat die unwirkliche Engine 3 Überprüfungen, ob sich ein Akteur in Ihrer Nähe befindet. Wenn diese Überprüfung positiv ist, sendet der Server Ihnen den genauen Standort sowie Ihren Gegner. Sozusagen kennt nur der Server alle Positionen, Aktionen und Bewegungen aller Akteure auf der Spielinstanz.

Dies kann in der Dokumentation des unwirklichen Engine 3 / Client Server-Modells im Abschnitt Betrug gelesen werden, der hier zu finden ist: https://udn.epicgames.com/Three/ClientServerModel.html

Bei erweiterten Engines / Netzwerkcode und Client Server-Modellen ist es beispielsweise nicht unbedingt erforderlich, dem Client zu 100% zu vertrauen. Der Server kann im Voraus entscheiden, was der Client wissen soll, wodurch die Möglichkeiten von Hacks effektiv begrenzt werden. Um noch weiter zu gehen, kann der Server selbst entscheiden, was er wissen SOLLTE, um nicht von Clients abgelenkt oder verwirrt zu werden, die gefälschte Pakete senden.

Betrug kann verhindert werden, indem alles auf dem Server ausgeführt wird, einschließlich Rendern. Wenn Sie das Spiel so gestalten würden, dass der Spieler Eingaben an den Server sendet, führt der Server ALLEN Spielcode aus und rendert die Szene auf der Serverseite und sendet dann einen MPEG-Stream zurück an den Client. Dann ist es im Grunde unmöglich zu betrügen. Ja, Sie könnten wahrscheinlich einen abspielenden Bot erstellen, aber dieser Bot hätte das gleiche Problem wie das Dekodieren von Captchas, da die Objekte auf dem Bildschirm keine Metadaten hätten, sondern lediglich ein flaches MPEG-Rahmenbild.
@sebastiannielsen Ich vermute, dass Ihr Ansatz außerhalb der Menge der "realisierbaren" Ansätze liegt. Dies erfordert viel mehr Rechenleistung für den Spieledienst (er muss jetzt zusätzlich zum Server jeden einzelnen Client ausführen). Ich denke, Valve hat entschieden, dass es einfacher ist, Anti-Cheat-Code zu schreiben und Betrug zu tolerieren, als die zusätzliche Verarbeitungsleistung bereitzustellen, um den Spielclient für jeden einzelnen Spieler gleichzeitig auszuführen.
Onlive hat genau dies mit dem Rendern auf dem Server getan. Es ist also nicht wirklich "nicht lebensfähig". Ich denke, wenn Server leistungsfähiger werden, wird serverseitiges Spielen möglicherweise die beste Methode sein, um Betrug zu bekämpfen.
@sebastiannielsen Sicher, es gibt Dienste, die dies tun. Valve gehört einfach nicht dazu. Vielleicht ist "lebensfähig" nicht das richtige Wort, oder zumindest sollte es so verstanden werden, dass es "lebensfähig im Kontext der Einschränkungen eines bestimmten Anbieters" bedeutet. Da die Kosten für die Verarbeitungsleistung weltweit weniger belastend werden, wird dieser Ansatz für mehr Menschen zunehmend praktikabel.
@sebastiannielsen: Natürlich könnten Sie immer noch mit serverseitigem Rendering schummeln, aber Dinge wie Ziel-Hacks müssten eine visuelle Analyse durchführen, anstatt nur Spielerpositionen aus dem Speicher zu lesen. Wo ein Wille ist, ist auch ein Weg.
Auch onlive ist seit fast einem Jahr tot, weil es an Leuten mangelt, die es nutzen wollen, teilweise wegen unvermeidbarer Probleme mit Streaming-Spielen wie Eingabe und Anzeigeverzögerung. (Auch weil es sehr teuer ist, so viel Rendering-Leistung und Streaming-Kapazität zu hosten)
@sebastiannielsen Nicht jeder verfügt über Multi-Megabit-Verbindungen, die ein solches Streaming mit akzeptabler Latenz verarbeiten können. In den USA gibt es immer noch viele Menschen mit 3-MBit- oder langsameren DSL-Verbindungen, ganz zu schweigen vom Rest der Welt. Dies ist keine akzeptable Lösung und wird es nur sein, wenn ein altruistisches Unternehmen damit beginnt, Glasfasern auf magische Weise für Benutzer auf der ganzen Welt bereitzustellen.
@DoktorJ: Das Hauptproblem bei Streaming-Spielen ist die Latenz, nicht die Bandbreite. Sie können HD mit nur 5 MBit / s _ streamen (Netflix 'höchster 1080p-Stream ist nur 8 MBit / s) _, sodass selbst "nur" 3 MBit / s in Ordnung sind. Das eigentliche Problem ist die Latenz, die durch physikalische Grenzen begrenzt ist. Die einzige Lösung besteht darin, dass ein Unternehmen seine Server räumlich verteilt.
Dies ist eine sehr gute Antwort. Fügen wir noch einen weiteren Punkt hinzu: Nicht alle Cheats sind Wall-Hack- oder ESP-Cheats. Es gibt auch Hacks im Ziel-Bot-Stil, bestimmte Bewegungsskripte usw., die in vielen Spielen als Betrug angesehen werden. Und diese können serverseitig nicht erkannt werden. Selbst wenn wir uns dafür entschieden haben, das unrealistische "Alles auf dem Server rendern, Ansicht über Kabel senden" ganz nach unten zu gehen. Pfad, der Client kann diese Art von Hacks weiterhin verwenden, und der Server sieht nur die vom Hack ausgegebenen Aktionsbefehle. Das bedeutet, dass wir auch in diesem Fall einen Cheat-Erkennungsdienst benötigen, der auf dem Client ausgeführt wird.
Anti-weakpasswords
2016-02-22 08:51:49 UTC
view on stackexchange narkive permalink

Bei clientseitiger Anticheat-Software an und für sich geht es nicht um Sicherheit, sondern um das Gameplay (und das Kundenerlebnis).

Daher gelten Sicherheitsregeln bei weitem nicht so genau. Das Vertrauen in den Kunden "Hit Pixel 1056 by 1723" unterscheidet sich stark vom Vertrauen in den Kunden "kann 1000 US-Dollar nach Nigera überweisen" oder darauf, dass der Kunde "auf Bobs E-Mail zugreifen kann".

Beachten Sie, dass ich Finanzielle ausdrücklich ausschließe Transaktionen, nur Gameplay-Cheats wie Aimbots, Big Head-Cheats usw.

Ich höre, einige Leute geben beträchtliche Geldbeträge für Spiele aus ...
@Mehrdad - und die Geldtransaktionen selbst haben nichts mit der Anti-Cheat-Software zu tun, die im Mittelpunkt der OP-Frage steht. Diese Geldtransaktionen werden serverseitigen und Finanzinstitutprüfungen unterzogen.
Was ich damit meinte war, dass wenn Leute Geld verlieren, weil andere Spieler betrügen, sie abgehakt werden; Es würde sich für sie nicht sehr von echtem Geldbetrug unterscheiden, daher spielt Anti-Cheat tatsächlich eine Sicherheitsrolle.
Ich verstehe auch nicht wirklich das Argument, warum dies hier nicht anwendbar ist. Noch mehr, besonders hier ist es anwendbar. Es ist ein Schema. Daher ist das Feld "Client" irrelevant
@Mehrdad: Sofern Sie keine Glücksspiele oder Pflichtspiele mit Geldpreisen spielen, wird dieses Geld an die Spielefirma gezahlt, sodass Sie nicht mehr Geld verlieren, als wenn jemand anderes betrügt. Das Betrügen kann den subjektiven Wert des Spiels beeinträchtigen, aber das Geld ist der Betrag, den Sie ohnehin schon ausgegeben haben.
@LieRyan: Außer es ist eine Art * ist * Geld. [* "Gegenstände in Spielen wie Team Fortress 2 und Counter-Strike: GO können auf dem Sekundärmarkt eine Menge echtes Geld wert sein, ganz zu schweigen von den unerklärlich beliebten virtuellen Sammelkarten, die im sozialen Netzwerk von Steam herumschwirren." *] (Http : //arstechnica.com/gaming/2015/12/steam-tightens-trading-security-amid-77000-monthly-account-hijackings/)
@Mehrdad: Haben Sie Ihre Hüte verloren, wenn ein Betrüger, der einen Zielbot verwendet, Sie auf einem öffentlichen Server immer wieder umbringt? Wenn Sie Ihren Hut in einem Match setzen, dann ist das Glücksspiel und ich habe kurz angesprochen, dass Glücksspiele eine Ausnahme sind. Wenn Sie jedoch das spezifische Spiel haben, können Sie, soweit ich das beurteilen kann, nicht gezwungen werden, sich von Ihren Hüten in TF2 zu trennen. Wenn Sie also den Verdacht haben, dass jemand, gegen den Sie Ihren Hut setzen, betrügt, können Sie Ihren einfach nicht geben Hut für sie, wenn das Match vorbei ist.
@Mehrdad: in den meisten Spielen würde das Spielen mit Betrügern Ihre Spielerfahrung ruinieren, und wenn Sie schlechte Erfahrungen in einem Spiel haben, wird es weniger wahrscheinlich, dass Sie Geld dafür ausgeben. Deshalb ist es für Spieleentwickler wichtig, Betrug zu verhindern. Aber während Zielbot-Betrüger wahrscheinlich Ihren Tag ruinieren würden, würde es Sie nicht finanziell ärmer machen. Ich glaube, deshalb müssen die meisten Spiele nicht so konzipiert sein, dass Betrug vollständig vermieden wird. OTOH, Echtgeld-Glücksspiele ** werden normalerweise entwickelt, um die Möglichkeit von Betrug auf Kundenseite auszuschließen, und preisgekrönte Wettbewerbsspiele werden normalerweise persönlich gespielt.
Diese Antwort ist Unsinn: Mit den Worten "Vertrauen in den Client" wird Pixel 1056 bis 1723 erreicht "wird die Sorge um die Integrität der Nachricht eingestanden. Und Integrität ist eine der Eigenschaften, die Sicherheit bieten soll. Die Tatsache, dass Anticheat die Benutzererfahrung verbessert, schließt sich nicht mit einem Sicherheitsbereich aus
Ich stimme dir nicht zu. Die Sicherheit eines Systems hat wenig mit dem zu tun, was das System schützt. Beispiel: Eine Sicherheit meines tertiären Bankkontos, das niemals mehr als 100 US-Dollar enthält, ist viel weniger wichtig als die Integrität der Starcraft World Tournament-Qualifikationen, deren Preis über 1 Million US-Dollar liegt. Bank-Client und Game-Client erfordern fast die gleiche Sicherheit. Der wirkliche Unterschied besteht darin, dass der Bank-Server alles überprüfen kann, während der Game-Server dies nicht kann.
Falco
2016-02-22 22:34:42 UTC
view on stackexchange narkive permalink

Erstens: Es gibt viele Spiele, die eine 100% ige serverseitige Validierung verwenden und dem Client nicht vertrauen. Ein Beispiel: Online Poker

Sie senden einfach nicht den Wert von Karten an den Kunden, die er nicht kennen kann. Selbst wenn er den Kunden hackt und die Matrix liest, gibt es nichts Verborgenes, das er enthüllen kann, und keine Bewegungen, die er mit dem regulären Kunden nicht machen kann.

Aber viele moderne Spiele sind a viel komplexer. Ein Ego-Shooter zum Beispiel. Hier ist es nicht so einfach zu entscheiden, ob und wie gut Sie einen anderen Spieler sehen können. Man könnte sagen, es ist einfach, wenn zwischen Ihnen beiden eine Mauer ist, können Sie ihn nicht sehen. Und in diesen einfachen Fällen können moderne Spiele den feindlichen Spieler bereits aus Ihrer Sicht ausmerzen, sodass Sie nicht die Position erhalten, an der er sich befindet. Sobald sich der Feind in einer dunklen Ecke befindet und kaum noch sichtbar ist, muss das Spiel seine Position noch an Sie senden, damit Ihr Grafikgerät ihn dort malen kann. Wenn Sie einen Cheat verwenden, der ihn in leuchtenden Farben malt, können Sie ihn leicht erkennen und betrügen. Dies ist schwer zu verhindern, da die Logik, die ihn in dunklen Farben im Schatten malt, für Spiele mit guter Grafik sehr komplex ist. Wenn Sie also das Bild auf dem Server rendern und nur das endgültige Bild senden, wird das Betrügen viel schwieriger, aber auch würde eine Menge Ressourcen auf dem Server erfordern und hätte das ernsthafte Problem der LAG.

DELAY oder LAG: Das zweite große Problem beim Streaming von Spielen ist die Verzögerung. Wenn Sie die Maus bewegen, können Sie sich in einem Ego-Shooter sehr schnell umsehen. Das Senden dieses Befehls über das Internet und das Empfangen des auf Ihrem Bildschirm angezeigten Ergebnisses dauert jedoch länger als das lokale Rendern. Wenn Sie eine schnelle Internetverbindung haben, können Sie mit einem Ping unter 20 ms Glück haben, aber die meisten Verbindungen können sehr instabil sein und die Verzögerung kann manchmal höher sein. Ein Spiel, das so langsam reagiert, wird schrecklich langsam spielen und fast keinen Spaß machen. Im Gegenteil, viele moderne Spiele wenden eine Menge Techniken wie Bewegungsvorhersage, Zeitverzerrung und andere an, damit Sie die wahrgenommene Verzögerung anderer Spieler verringern können, indem Sie Ihr Spiel dazu bringen, viel lokale Logik zu berechnen und die Bewegungen anderer Spieler vorherzusagen, also das Spiel fühlt sich flüssiger an als es tatsächlich ist.

Hardware / Out-of-the-Box-Betrug. Und es gibt immer eine Menge Möglichkeiten zum Betrügen, die von Software nicht einfach besiegt werden können. Was ist mit Doping? (eine echte Sache im Sport) Oder einen Roboter für Sie spielen lassen. Oder eine Webcam über der Schulter, die Feinde auf Ihrem Bildschirm erkennt und Ihnen sagt, wo sie sich befinden? Oder sogar Dinge wie DDoS-Angriffe von einem Botnetz auf Ihr feindliches Team, um deren Kommunikation zu stören?

Es gibt einige Möglichkeiten, serverunterstützte Validierungen durchzuführen. Der Server kann die Richtigkeit des Spielcodes / der Anti-Cheat-Software wie DRM-Schutz testen (kann aber natürlich gefälscht werden). Der Server kann auch die Spiellogik überprüfen, Ihre Bewegungen messen, Statistiken und Daten über Ihr Verhalten sammeln und diese mit anderen Spielern und bestimmten Limits vergleichen und versuchen, zu entscheiden, ob Sie abnormal spielen oder gegen Regeln verstoßen ... aber nichts davon ist perfekt.

Randnotiz - Stereoton erfordert eine 3D-Position der Quelle. Um einen Schrittton abzuspielen, muss Ihr Kunde genau wissen, woher der Schritt kam. Sie könnten das möglicherweise in einen Wallhack umwandeln.
guter Punkt! moderne Spiele bieten einfach zu gute Audio- und Grafikfunktionen, um dies zu ermöglichen ;-)
+1 Latenzkompensation für ein reibungsloses Spielerlebnis ist möglicherweise der Hauptgrund für den Server, dem Client etwas Vertrauen zu schenken. Auf diese Weise akzeptiert der Server in einem Spiel wie einem FPS, in dem Sie den Kopf einer Person im Fadenkreuz haben und darauf schießen, dass Sie einen Kopfschuss erhalten haben, anstatt dem Kunden zu sagen: "Entschuldigung, der Kopf dieser Person war vor 200 ms da, also haben Sie ihn verpasst." Die Kosten für das Rendern auf dem Server können überwunden werden, die Latenz jedoch nicht.
+1 Die einzige Antwort, die das eigentliche Problem festhält. Ich möchte jedoch darauf hinweisen, dass es mit wirklich guter Serverhardware möglich ist, viel mehr Betrugsfälle in Spielen wie CS zu überprüfen, aber die Kosten würden es nahezu unmöglich machen, freie Server zu betreiben.
N. Nowak
2016-02-22 13:03:52 UTC
view on stackexchange narkive permalink

Wenn ja, warum bieten diese Unternehmen dann keine serverseitige Überprüfung für Videospiele an, sondern bestehen weiterhin darauf, dem Kunden zu vertrauen?

Sie tun dies!

Die meisten Online-Spiele haben ab und zu eine Konsistenzprüfung.

Player32517 hat 100 Einheiten in 3 Sekunden verschoben. Ist das möglich?

Die Überprüfung, ob jeder einzelne Zug gültig ist, ist jedoch eine enorme Menge an Berechnungen.

Nehmen Sie zum Beispiel einen beliebigen Schützen:

Ihr durchschnittlicher Gaming-PC beginnt zu kämpfen, wenn Es gibt zu viele Granaden / Feinde auf Ihrem Bildschirm. Diese Last wird auf 20 Computer verteilt.

Stellen Sie sich nun vor, Sie müssten all das erneut auf einem Server berechnen und jede Bewegung überprüfen , jeder Mausschlag, jeder Feuerauslöser für Betrugsmuster. In Echtzeit.

Aus diesem Grund ist es viel billiger oder sogar möglich, von Zeit zu Zeit zu überprüfen, ob Sie wirklich so weit gesprungen sind, sich so schnell bewegt haben oder Ihre Maus genau auf die Feinde gerichtet haben Gehen Sie 3 Sekunden lang, bevor Sie ihn überhaupt hinter dieser Wand sehen können.

Und wenn all dies fehlschlägt, haben Sie immer noch die Community-Berichte mit Videomaterial.

Bearbeiten:

Vielen Dank an Num Lock für den Hinweis:

Die Verzögerung wird nicht durch die Logik, sondern durch das Rendern verursacht. Die Berechnung aller Vektoren für das Licht und die Animationen ist weitaus größer als die Berechnung, ob sich etwas in Reichweite befand, um getroffen zu werden.

Obwohl ich größtenteils zustimme, denke ich immer noch, dass dies halb Mythos und halb Tatsache ist. Während Sie Recht haben, dass der durchschnittliche Gaming-PC mit viel Action zu kämpfen beginnt, wird dies normalerweise nicht durch die Spielelogik selbst verursacht, sondern durch das Rendern von allem (yay zu hübschen Grafiken), was (in den meisten Fällen) nicht der Fall ist. t auf dem Server passieren. Und es gab große Spiele (MMOs um genau zu sein), die für jeden Spieler (10k +) mit jedem Tick alles auf dem Server handhabten, aber Ihr PC würde Schwierigkeiten haben, wenn Sie nur 100 davon sehen würden. (LineageII zum Beispiel) Diese waren jedoch nicht so zeitkritisch.
Die Source-Engine, Valves Codebasis für eine gute Anzahl ihrer eigenen Lieferungen, verfügt über Funktionen, mit denen der Entwickler die Latenz kompensieren, eine Vorhersage interpolieren und jedes vom Client eingegebene Update anhand eines Schwellenwerts überprüfen kann. Dies erfolgt standardmäßig für jede Bewegung und jeden Trigger Pull und unterstützt das Gameplay auf dem Client (Spieler müssen nicht annähernd so viel Verzögerung vorhersagen), verhindert aber auch böswillige Pakete.
Wow, die Antworten auf die Frage sind einfach schrecklich. Diese Antwort ist die Antwort, die der Korrektur am nächsten kommt (Server ** machen ** serverseitige Überprüfung) _, aber die Argumentation ist vollständig erfunden, sie hat nichts mit "einer enormen Menge an Berechnungen" zu tun. Wenn der Benutzer zwischen zwei Paketen behauptet, sich doppelt so schnell wie gewöhnlich bewegt zu haben, liegt das daran, dass sie Speed-Hacking betreiben oder dass das erste Paket extrem langsam angekommen ist? Und wie können Sie Wall-Hacks oder Aimbots auf der Serverseite erkennen, selbst bei unbegrenzter Rechenleistung?
Danikov
2016-02-22 17:00:43 UTC
view on stackexchange narkive permalink

Hier müssen zwei Elemente angesprochen werden.

Erstens ist die clientseitige Cheat-Erkennung selten das einzige Element bei der Cheat-Prävention. Da die Serversoftware für einige Spiele ebenfalls verteilt ist, wird die serverseitige Cheat-Erkennungssoftware möglicherweise nicht vollständig mit ihr verteilt, um zu verhindern, dass sie Reverse Engineering ausgesetzt wird. Sie können aus dem Servercode, den Sie möglicherweise ausführen, und dem Servercode, den sie möglicherweise intern ausführen, keinen Mangel an serverseitiger Cheat-Erkennung ableiten. Aus ähnlichen Gründen zögern Unternehmen möglicherweise auch, ihre Anti-Cheat-Lösungen zu diskutieren: Dunkelheit ist keine schlechte Sache, die man neben einer robusten Lösung haben kann.

Es besteht jedoch auch die Notwendigkeit, auf Kundenseite zu betrügen Erkennung aufgrund der Tatsache, dass Spiele von den Fähigkeiten der Spieler abhängen. Dies bedeutet, dass Betrug auf vielen Ebenen auftreten kann: Hardware, Eingabe und Software. Software ist nur die bequemste und präziseste, es kann sehr wenig getan werden, um sich vor einem kompetenten Roboter zu schützen. Um sich vor softwarebasiertem Betrug zu schützen, muss auf dem Client eine Art residenter Monitor vorhanden sein, damit dieser erkannt werden kann.

Darüber hinaus ist eine Spielsimulation komplex. Wie Sie zu Recht festgestellt haben, hindert wenig jemand daran, einen simulierten Client zu erstellen, der alle vom Spiel verwendeten Protokolle korrekt kopiert und zum richtigen Zeitpunkt willkürlich Eingaben generiert, um zu betrügen. Nur das ist ein großes Unterfangen; Es ist viel einfacher zu versuchen, den vorhandenen Client zu brechen. Gleiches gilt für den Aufbau eines gefälschten Anti-Cheat-Clients. Daher bedeutet clientseitige Sicherheit eher, die Dinge so schwierig wie möglich zu machen, als 100% narrensicher zu sein. Insbesondere Valve aktualisiert regelmäßig die VAC, um in einem anhaltenden Kampf mit Cheat-Entwicklern zu bestehen.

Cephalopod
2016-02-24 01:50:24 UTC
view on stackexchange narkive permalink

Die meisten anderen Antworten konzentrieren sich auf die technischen Aspekte der Betrugsprävention. Ich möchte hinzufügen, dass VAC Betrug verhindert, indem es wirtschaftlich unrentabel wird:

TL; DR: Client-seitig Der Cheat-Schutz funktioniert, weil der Aufwand und die Fähigkeiten, die erforderlich sind, um ihn auszutricksen, hoch sind und die Bestrafung für Fehler schwerwiegend ist.

Das Hacken ist mit viel Versuch und Irrtum verbunden, und selbst wenn Sie vollen Zugriff haben Für die Quelle ist ein erheblicher Arbeitsaufwand erforderlich, um herauszufinden, wie ein Client geändert werden kann, während er vorgibt, dies nicht zu tun. Und all diese Arbeiten werden jedes Mal in Frage gestellt, wenn der Client aktualisiert wird.

Wenn Sie jedoch auch nur den geringsten Fehler machen, besteht die Gefahr, dass Sie für immer von allen VAC-Servern gesperrt werden.

Es macht auch keinen Sinn, Ihren Hack zu verteilen, da Valve auch weiß, wie man nach Cheats googelt, und sobald sie Ihren Hack gefunden haben, fügen sie eine zusätzliche Erkennungslogik hinzu, um alle zu finden, die ihn verwenden. Dies hält Benutzer wiederum davon ab, öffentlich verfügbare Cheat-Tools zu verwenden.

Ich stimme hier nicht wirklich zu. Schwere Bestrafung ist Valves Politik und hat nichts damit zu tun, dass die Cheats auf der Client-Seite entdeckt werden. Es ist jedoch wirklich ein großer Punkt, die Arbeit eines Betrügers bei jedem Update zu ruinieren, da die "Script Kiddies" und "I-just-try" -Guys (theoretisch) in Schach gehalten werden müssen, wenn man sich viel Mühe geben muss.
Cort Ammon
2016-02-23 09:45:41 UTC
view on stackexchange narkive permalink

Die Herausforderung bei einer solchen Sicherheit besteht darin, dass Sie die Berechnung dort durchführen müssen, wo sich die Informationen befinden. Sie müssen entweder die Anti-Cheat-Berechnungen clientseitig ausführen oder die Informationsserverseite verschieben, damit die Berechnungen dort durchgeführt werden können. Bei vielen Spielen kann es extrem teuer sein, alle Informationen an den Server weiterzugeben. Dazu müsste der Client alle Benutzerinteraktionen und die Zeit, zu der sie aufgetreten sind, speichern. Das Versenden all dieser Informationen an den Server, um eine Analyse durchzuführen, ist zu umfangreich. Stattdessen wird die Berechnung an den Client gesendet.

Das heißt nicht, dass dies das Ende ist. Viele Spiele implementieren sowohl clientseitige als auch serverseitige Tests. Einige Tests können basierend auf Informationen durchgeführt werden, die bereits an den Server gesendet wurden. Es ist möglicherweise nicht in der Lage, alle Speed-Hacks zu fangen, wenn jemand im Zickzack ist, aber es könnte jemanden fangen, der es schafft, sich viel schneller von Punkt A nach Punkt B zu bewegen, als es die Spielregeln zulassen.

Es gibt auch eine faszinierende Option: Verpflichtungen. Ein Client kann eine kryptografische Verpflichtung anbieten, die alle Benutzerinteraktionen beschreibt, z. B. einen SHA-1-Hash. Auf Befehl des Servers müssen sie möglicherweise die Daten angeben, die diesen Hash generiert haben. Dieses Muster wird in einigen verteilten Spielen verwendet, die keinen Server haben, um die Spieler ehrlich zu halten. Kunden sind verpflichtet, sich zu Maßnahmen zu verpflichten, die sie in der Vergangenheit ergriffen haben, bevor andere Kunden dann die aktuellen Daten senden. Dies verhindert, dass ein Client seinen Verlauf neu schreibt.

Aron
2016-02-23 12:24:50 UTC
view on stackexchange narkive permalink

Valve führt für alles eine serverseitige VALIDIERUNG durch.

Alle Client-Eingaben sind vollkommen GÜLTIG.

Valve überprüft bereits gültige Benutzerdaten. Zum Beispiel kann der Client dem Server nicht sagen: "Ich habe Sparkles aus dem CT-Spawn geschossen, als er im T-Spawn war."

Außerdem wird überprüft, ob Sie beim Kauf von etwas nicht sind. Ich versuche nicht, diese Waffe auf Kredit zu kaufen. Wenn der Server das nicht getan hätte, würde der Betrüger AWPs für Pistolengeschosse kaufen.

Betrug ist GÜLTIG

Das Problem ist, dass Betrug (zum Beispiel bei CSGO) funktioniert Perfekt gültige Aktion (die Cheats, die ungültige Aktionen ausführen, wie der Spawn Teleport-Fehler, können leicht behoben werden). Das Problem ist, dass Betrüger verschiedene Methoden verwenden, um gültige Eingaben einzugeben, die entweder verbessert oder von einem Computer vorgenommen werden.

Tatsächlich versucht VAC, den Turing-Test auf einen Spieler anzuwenden. Selbst ein Server kann die Identität des Agenten, der die Entscheidungen trifft, nicht überprüfen.

xaxxon
2016-02-24 07:53:45 UTC
view on stackexchange narkive permalink

Serverseitige Überprüfungen stellen sicher, dass die vom Client angeforderten Vorgänge legal sind. Grundsätzlich, damit Sie nicht versuchen, doppelt so schnell zu laufen, wie es Ihnen gestattet ist.

Bei clientseitigen Überprüfungen wird versucht, zu überprüfen, ob die Entscheidung, diese Änderung vorzunehmen, von einem Menschen getroffen wird, nicht von der Computer - z Zielbots, die legale Clientbefehle ausführen (und daher vom Server nicht erkannt werden können), aber dennoch nicht zulässig sind.

Auf der Serverseite können Sie auch große Datenmengen nachbearbeiten, um festzustellen, ob der Player vorhanden ist betrügt, aber das ist etwas, worauf Sie achten müssen, und es ist immer eine unvollkommene Wissenschaft.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...