E.1.2 Netzwerktypen - Institut für Verteilte Systeme
Transcription
E.1.2 Netzwerktypen - Institut für Verteilte Systeme
E. Verteilung im Netz E.1.1 Inhaltsübersicht: Einführung Verteilte Informationen Algorithmen „The Internet sucks“ Sicherheit C-1 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.1.2 Netzwerktypen LAN hohe & feste Bandbreite kurze Latenzen mit geringer Varianz hohe Ausfallsicherheit Internet niedrigere Bandbreite, grössere Paketlaufzeiten, größere Latenz durch Routing und Entfernung, hohe Varianz von Bandbreite und Latenz (ping) Paketverlust nicht ungewöhnlich C-2 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.2. Internet Protocol Format Internet Protocol RFC 791 1981 Vermittlungsschicht nach OSI Modell Zuständig für Weglenkung der Pakete Maximale Paketgröße von 64 Kbyte. IP Header: IHL spezifiziert Länge in 32-bit Worten, Protokollfeld für zuständigen Dienst, TTL = „time to live“, Lebenszeit in Hops, Type of Service (Diffserv ...). Fragmentierung: erlaubt Pufferökonomie in den Subnetzen, Ethernet erlaubt zum Beispiel maximal 1500 Bytes, Fragment-Offset bei zerteilten Datenpaketen, Identifikation zur Fragmentzuordnung. C-3 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.3. Latenz Paketlaufzeit: typischerweise Hin- & Rückweg zwischen 2 Knoten, elektrische Signallaufzeit (~0.7 * Lichtgeschwindigkeit), Store- & Forward-Delay (abhängig von Bitrate, Anz. Hops), Processing und Warteschlangen. Am Beispiel Ulm-Hamburg Ulm: 2000 km / (0.7 * 200'000 km/sec) = 14 msec 300 Bits / (300 Kbits/sec) = 1 msec 26 * 0.5 msec = 13 msec Store & Forward-Verzögerung, Paket vollständig empfangen vor der Weiterleitung, entsteht in jedem Knotenrechner/Router, Einfluss von Paketlänge & Datenrate. Ausbreitungsgeschwindigkeit hier ca. 50%. Asymmetrischer DSL-Anschluss. C-4 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.3.1 Laufzeittests mit „ping“, „tracert“ etc. Tracing route 1 4 ms 4 2 12 ms 11 3 22 ms 15 4 13 ms 16 5 16 ms 15 6 16 ms 16 7 27 ms 27 8 54 ms 46 9 34 ms 31 10 31 ms 31 11 31 ms 31 12 32 ms 34 13 31 ms 31 to ms ms ms ms ms ms ms ms ms ms ms ms ms rzaixsrv5.rrz.uni-hamburg.de [134.100.32.72] 3 ms Hexcore-Peter [192.168.2.1] 11 ms dslb-084-057-128-001.pools.arcor-ip.net [84.57.128.1] 14 ms 88.79.15.149 12 ms 92.79.212.229 14 ms ffm-145-254-19-198.arcor-ip.net [145.254.19.198] 15 ms zr-fra1-ge0-2-0-4.x-win.dfn.de [188.1.56.21] 28 ms zr-han1-te0-0-0-1.x-win.dfn.de [188.1.145.214] 55 ms xr-bre1-te1-1.x-win.dfn.de [188.1.144.86] 31 ms xr-ham1-te1-1.x-win.dfn.de [188.1.144.89] 31 ms gr-ham1-te1-1.x-win.dfn.de [188.1.145.226] 31 ms nixgate-te-xwin.rrz.uni-hamburg.de [188.1.231.82] 31 ms crrz2-te-nixgat.rrz.uni-hamburg.de [134.100.254.173] 32 ms rzaixsrv5.rrz.uni-hamburg.de [134.100.32.72] Tracing route 1 7 ms 5 2 11 ms 11 3 21 ms 11 4 10 ms 11 5 19 ms 19 6 17 ms 18 7 27 ms 24 8 21 ms 22 9 74 ms 22 10 23 ms 23 11 148 ms 147 12 152 ms 149 13 151 ms 148 14 144 ms 146 15 148 ms 154 to ms ms ms ms ms ms ms ms ms ms ms ms ms ms ms adobe.com [192.150.16.117] 4 ms Hexcore-Peter [192.168.2.1] 11 ms dslb-084-057-128-001.pools.arcor-ip.net [84.57.128.1] 20 ms 88.79.15.145 13 ms 92.79.213.117 20 ms 92.79.200.146 18 ms 212.162.17.21 24 ms ae-34-52.ebr2.Dusseldorf1.Level3.net [4.69.139.33] 21 ms ae-46-46.ebr1.Amsterdam1.Level3.net [4.69.143.201] 22 ms ae-1-51.edge4.Amsterdam1.Level3.net [4.69.139.138] 22 ms acr1-so-3-0-0.Amsterdamamx.savvis.net [208.174.49.1] 150 ms cr2-tengig0-7-0-0.dallas.savvis.net [204.70.196.214] 149 ms hr1-tengig-12-0-0.dallasda1.savvis.net [204.70.203.58] 152 ms 216.39.66.26 159 ms 192.150.16.6 165 ms 192.150.16.117 C-5 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.4. User Datagram Protocol Einfachstes Protokoll: Ungesicherte Übertragung einzelner IP-Pakete, keine Garantien für Reihenfolge, keine Garantien für Zustellung, sehr schlank & sehr schnell, paketorientierter Ansatz. Übertragung zwischen Ports: Dienste über „Well known Ports“ bereitstellen, viele Ports pro Rechner möglich 16-Bit Portnummern ... UDP-Header: C-6 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.5. Transmission Control Protocol Bytestrom-orientiertes Protokoll: garantierte Ablieferung und Reihenfolge der Daten, intern wird Datenstrom in IP-Pakete aufgebrochen, evtl. Fragmentierung innerhalb IP. Sliding window protocol: komplexer Mechanismus zur Fehlerbehandlung, Empfänger bestätigt empfangenes Paket, stark schwankende Datenrate & Latenz, behelfsmässige Flusskontrolle. TCP Header: Port Nummern, Vorwärts-Sequenznummer Bestätigungssequenznummer, Sende- und Empfangsport, ... C-7 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.5.1 Nagle's Algorithm: Datenbündelung: ist Nagle's Algorithmus aktiv, so wartet TCP mit dem versenden von einzelnen Daten bis zu einem TimeOut t (z.B. 500ms) um evtl. so mehr Daten mit nur einem Header versenden zu können. Wichtig bei zeichenorientiertem Terminalbetrieb (Telnet). Delayed Acknowledge: verzögert Bestätigungen und hofft darauf, die Bestätigungen Huckepack mit ausgehenden Daten versenden zu können. C-8 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.6. Sockets Abstraktion des Netzwerkes: Behandlung analog zu Dateisystem, öffnen, schliessen, lesen, schreiben. Kommunikationsendpunkte für den Programmierer: werden an einen Port gebunden (bind), verwendbar für eine Vielzahl von Protokollen Unterscheidung zwischen TCP & UDP Sockets C-9 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.6.1 UDP Sockets Broadcast möglich (im LAN). Datagramm-Betrieb: Schreiben & Lesen in Paketgranularität, Fragmentierung innerhalb IP, Verbindungsaufbau entfällt. OS Nutzung: bindet sich an definierten Port close() gibt Puffer frei Pufferung im OS C - 10 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.6.2 TCP Sockets Verbindungsaufbau nötig spezieller Server Socket wartet auf Verbindungsanforderung, erzeugt neuen serverseitigen Socket bindet sich an definierten Port. Charakteristiken: garantierte Ablieferung unstrukturierter Bytestrom Punkt-zu-Punkt Verbindung close() gibt Puffer & Ports frei C - 11 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.7. Dienstorganisation E.7.1 Client-Server Schema Klassischer Ansatz Server übernimmt die komplette Kontrolle und Koordination Geringe Netzlast und Bandbreitenbedarf für Klienten Latenzen gut vorhersagbar Single point of failure. C - 12 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.7.2 Peer-To-Peer Verbindungstopologie: Höherer Bandbreitenbedarf falls kein Multicast, Im LAN durch Broadcast einfacher Vollvermaschte Verbindungen Komplexität: Sehr gute Ausfallsicherheit erreichbar, häufige Abstimmungsverfahren, Hoher Koordinationsaufwand, Latenzen schwer abschätzbar. C - 13 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.7.3 Mischformen Client ist gleichzeitig Server Einige Klienten können als Backup fungieren. mehrere Server zur Lastverteilung ebenfalls möglich C - 14 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.8. Verteilte Informationen E.8.1 Übersicht Einführung Verteilte Informationen Replikation Konsistenz Synchronisierungsarten Algorithmen „The Internet sucks“ Sicherheit C - 15 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.8.2 Replikation Abstraktion, konzeptionelle Sicht: alle Knoten sehen zu jeder Zeit die gleichen Daten und Datenwerte, Datenelemente sind konzeptuell nur einmal vorhanden. Implementierung: jeder Knoten kann eine eigene Sicht besitzen, auf die verteilten Informationen, evtl. verschiedene Versionen, partielle Sichten. Replikate: jeder Knoten kann eigene Replikate besitzen, z.B. zur Leistungssteigerung (paralleles Lesen), oder zur Verbesserung der Ausfallsicherheit Ziel ist, die Replikate konsistent zu halten C - 16 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.8.3 Konsistenzmodelle Definition (Michael Schöttner): „Der Speicherungsmechanismus garantiert gegenüber den zugreifenden Prozessen Regeln, nach welchen er die Schreiboperationen sichtbar werden lässt.“ Ein Konsistenzmodell ist ein Vertrag zwischen Prozess und Speicherungsinstanz, der einen deterministischen Ablauf garantieren soll Die Wahl eines Konsistenzmodells ist immer ein Kompromiss zwischen geschickter Latenzvermeidung und einfacher Programmierung. Daten-zentriert: „Konsistenz aus Sicht des Datenspeichers“ auf verteilten Datenspeicher bezogen, Teilnehmer verwenden Replikate, traditioneller Konsistenzbegriff. Client-zentriert: „Konsistenz aus Sicht des Klienten“, unterschiedliche, aber in sich konsistente Sichten in verschiedenen Klienten, meist seltene und zentrale Aktualisierung, schwächer als Daten-zentriert C - 17 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.9. Zustands-Synchronisierung Verteilter Speicher als Programmierparadigma. Synchronisierungspunkte: beschreiben den diskreten Fortschritt der logischen Zeit im System, dazwischen sind Zustandsabweichungen zulässig/unvermeidlich, zum Synchronisierungzeitpunkt ist das System konsistent. Übertragung des Objektzustandes bei Änderung: evtl. großer Bandbreitenbedarf bei größerer Anzahl von Objekten, entweder den kompletten Zustandes eines Objektes übertragen, oder die Veränderung einzelner Variablen (Diffs), evtl. automatische Hüllenbildung für Objekte. Unterschiedliche Dringlichkeit von Eigenschaften: Interaktionen zwischen entfernten Objekten, Kollisionen, Position, Bewegung, Bewegungsrichtung, Rotation, Verformungen, Texturen, Beleuchtung. C - 18 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.9.1 Eingabe-Synchronisierung Nachrichtenbasierte verteilte Programmierung. Methodenaufrufe übertragen (RMI ...): Tasten, Mausbewegung, Mausklicks, Events … Methodencode ist in jedem Knoten repliziert, Synchronisierungseffekt einer Nachricht. Konsistenz-Eigenschaften: Outfit Objekt-IDs, Meshes, Texturen, Transformationen, Caching spart Bandbreite in Wide-Area Netzen, potentiell geringerer Bandbreitenbedarf. Sit On Umfangreiche Parametrisierung der Methoden: Programmierer sorgt für partielle oder globale Konsistenz, die Semantik der Methoden sollte selbstkorrigierend sein, Prognosen relativ einfach zu erstellen (Dead-Reckon). C - 19 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.10. Zeitskalen zur Synchronisierung E.10.1 Network Time Protocol Network Time Protocol entsprechend RFC1305. Synchronisiert die Uhrzeit (physikalische Zeit). Primäre Server mit Atomuhr synchronisiert. Genauigkeit im Internet bei ca. 10ms. hierarchischer Aufbau: C - 20 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.11. Algorithmen zur Szenensynchronisierung Dead Reckoning Bucket Synchronisation Time Warp Synchronisation Trailing State Synchronisation Area of Interest Management Fallstudie: Age of Empires 2 C - 21 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.11.1 Dead Reckoning Verfahren um Latenzeindrücke zu vermindern (Sprünge vermeiden). Klienten haben evtl. abweichende Sicht auf globale Szenedaten. Standardmässig in allen modernen Spielen verwendet. C - 22 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.11.2 Bucket Synchronisation für „MiMaze“ „MiMaze“, ein Computerspiel: Forschungsprojekt von Laurent Gautier et. al. Labyrinth, ähnlich PACMAN. ADUs – Application Data Units: feste Größe von 52 Byte, davon 16 Byte Payload, Objekt-Zustandes (Position ...) IP-Header, UDP-Header, RTP-Header, Zeitstempel bezüglich NTP. Multicast im LAN mithilfe von RTP. C - 23 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.11.3 Bucket Synchronisierungsverfahren Ähnlich zu Bucket-Buffer zur Jitterkorrektur bei Audiodaten Zeitmanagement: Zeit in diskrete Intervalle unterteilt, Eingaben werden verzögert ausgeführt (ca. 100ms) pro Intervall ein Bucket (40ms bucket interval) Buckets: - ADUs abhängig vom Zeitstempel in Bucket einsortieren - Dead Reckoning für leere Buckets - Bucketrate entspricht Framerate Zustands-Drift bei Paketausfällen. C - 24 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.11.4 TimeWarp Synchronisierung Ereignisse: führen bestehenden Zustand sn über in den Zustand sn+1 , können Nachrichten an andere Knoten auslösen, tragen einen Zeitstempel. Rücksetzbare Zustandsübergänge: Zustand erhält den Zeitstempel des auslösenden Ereignisses. bei jedem Übergang Sicherheitskopie des Zustandes erstellen, Ereignisse werden mit gesichert. C - 25 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.11.5 TimeWarp Synchronisierung, Rollback Zurücksetzen auf Zustand mit Zeitpunkt < e : falls Ereignis e empfangen, welches älter als gegenwärtiger Zustand, Undo-Nachrichten für irrtümlich versendete Nachrichten verschicken, alle Ereignisse nochmal ausführen, kaskadierende Abbrüche möglich! Speicherbetrachtung: spezieller Timer für älteste ausstehende Nachricht um alte Zustände zu entfernen, hoher Speicherbedarf für Checkpoints (z.B. Quake ca. 1MB/Chkpt, 25MB/s/Player) C - 26 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.11.6 Trailing State Synchronisierung mehrere simultane zeitverzögerte Ausführungen move-Befehl zum Zeitpunkt 150 ms rechtzeitig für alle States erhalten. fire-Befehl erreicht Leading State bei 225ms, also zu spät. C - 27 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.11.7 Trailing State Synchronisierung, Rollback zum Zeitpunkt 200ms merkt State S1 das in S0 kein fire-Befehl ausgeführt wurde. Der notwendige Rollback erfolgt durch kopieren von Zustand S1 auf S0 Der Leading State führt alle Befehle ab 200ms erneut aus Befehl kann weggeworfen werden, wenn der letzte Trailing State diesen verarbeitet hat keine Anti-Messages nötig, da Befehle keine Abhängigkeiten erzeugen benutzt für Quake Worlds C - 28 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.11.8 Age of Empires 2 (1999) Eingabe-Synchronisierung, ausgelegt auf hohe Latenzen (bis zu 500 ms). Stark variierende Antwortzeiten sind für den Spieler unangenehm. C - 29 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.11.9 Age of Empires 2 – verzögerte Frameberechnung Verzögerte Frameberechnung (z.B. 300 ms) Dynamische Anpassung der Spielgeschwindingkeit. je nach beobachteter Latenz über das Netzwerk, mit dem Ziel einer gleichförmigen Animation. Niedrige Latenz: Process all Messages 50 ms Frame Frame Frame 50 ms 50 ms 50 ms Frame Frame Frame Frame Frame Frame 50 ms 50 ms 50 ms 50 ms 50 ms 50 ms Hohe Latenz: Process all Messages 50 ms C - 30 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.11.10 Area of Interest Management – SIMS in Second Life Partitionierung von großen Spielwelten, Inseln, SIMS, Regions ... Nötig durch CPU, RAM und Bandbreiten Beschränkung. Statische vs. dynamische Partitionierung C - 31 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.12. Kritikpunkte zum Internet E.12.1 Fünf Internet-Weisheiten aus Coding X-Wing vs. TIE-Fighter First Lesson (Peter Lincroft) „If all players dial into the same phone number, you are not testing the Internet. You are testing the modems and the POP server, but you are not testing the Internet.“ Second Lesson (Peter Lincroft) „TCP is evil. Don’t use TCP for a game. You would rather spend the rest of your life watching Titanic over and over in a theater full of 13 year old girls.“ (TCP stellt keine Pakete zu, die Out-of-Order ankommen sondern wartet bis alles korrekt eingetroffen ist. Wenn Pakete verloren gehen, geht TCP von einer Verstopfung aus und drosselt die Paketrate und erhöht in diesem Fall die TimeOut-Zeit) C - 32 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm Third Lesson (Peter Lincroft) „Use UDP. The solution to this evil protocol seems simple at first. Don’t use TCP, use UDP instead.“ (UDP gibt keine Garantien, Algorithmen zur sicheren Übertragung müssen von Hand imple-mentiert werden; abhängig von benötigten Garantien großer Implementierungsaufwand) Fourth Lesson (Peter Lincroft) „UDP is better than TCP, but it still sucks. We expected packets to be dropped occasionally, but the Internet is much worse than that.“ (Pakete gehen häufig verloren, Laufzeiten variieren stark. Einfache Acknowledge-Protokolle sind meistens überfordert. Double-Send sehr erfolgreich) Fifth Lesson (Peter Lincroft) „Whenever you think the Internet can’t get any worse, it gets worse. “ (Verbindungsabbrüche, extreme Latenzen und häufige Paketverluste können vorkommen. Hohe Varianz von Durchsatz und Verlustrate!) C - 33 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.13. E.13.1 Sicherheit in Spielen und virtuellen Welten Klassifizierung von Cheats Reflex Augmentation Verbesserung der Reflexe durch automatische Hilfestellung Authoritative Clients Klienten, welche uneingeschränkt globale Spieldaten anpassen können Information Exposure kritische Information können eingesehen werden Compromised Server sicherer Server wird kompromittiert Bugs and Design Loopholes Fehler im Quellcode und auch Fehler im Design können Angriffspunkt bieten Environmental weaknesses Probleme treten auf, wenn bestimmte Bedingungen herrschen (z.B. Netzwerklatenz) C - 34 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.13.2 Nine Rules of Security How to Hurt Hackers: The Scoop on Internet Cheating and How You Can Combat It. (Matthew Pritchard) http://www.gamasutra.com/view/feature/3149/how_to_hurt_the_hackers_t he_scoop_.php?page=1 aus Sicht des Spieleentwicklers (Age of Empire 2, Age of Mythologie … ) jeder der Punkte lässt sich auf virtuelle Welten übertragen. Sicherheit ist kritisch für eine Online Welt Rule One (Matthew Pritchard ): „If you built it, they will come – to hack or cheat it.“ Motivation reicht von „Yes, we can“ bis zu finanziellen Interessen es kann jeden treffen Rule Two (Matthew Pritchard ): „Hacking attempts increase with the success of your game.“ Diablo hatte aufgrund von Cheats einen äußerst schlechten Ruf Wettbewerbe bei Age of Empires wurden abgesagt Einzelspieler Cheats gängig und unkritisch Itemverkauf bei Diablo 2 C - 35 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm Chinafarmer bei WoW Rule Three (Matthew Pritchard): „Cheaters actively try to keep developers from learning their cheats.“ Cheats meistens Clan intern öffentliche Verbreitung beraubt Cheater des Vorteils Entwickler könnten Angriffspunkt beheben öffentliches Brandmarken nur eingeschränkt möglich (Anonymität im Netz) Rule Four (Matthew Pritchard): „Your game, along with everything on the cheater's computer, is not secure. The files are not secure. Memory is not secure. Services and drivers are not secure.“ mächtige Tools wie SoftICE erlauben disassemblieren und Laufzeituntersuchung. Spiele entwickeln Gegenmaßnahme durch Process Scanning (WoW) Rule Five (Matthew Pritchard) „Obscurity is not security.“ (Standardsatz der Sicherheit) auch komplizierte Dateiformate/Paketformate werden immer entschlüsselt werden kryptographische Methoden können Abhilfe schaffen. Rule Six (Matthew Pritchard): „Any communication over an open line is vulnerable to intercept, analysis & modification.“ Kommunikation im Internet ist unsicher! „Man in the Middle“ Angriff. C - 36 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm Rule Seven ( Matthew Pritchard): „There is no such thing as a harmless cheat or exploit. Cheaters are incredibly inventive figuring out how to get the most from loopholes or exploit.“ Kleinste Fehler in Design/Programmierung können fatale Folgen haben. Gleiche Problematik mit Sicherheitslücken in jeder Art von Software. Rule Eight ( Matthew Pritchard) „Trust in the server is everything in a client-server game.“ Besonders bei Servern, die von normalen Benutzer gehostet werden können, Nutzerknoten sollen nur eingeschränkte Spielinformationen besitzen, Zentrale Server von Spieleanbietern eher unkritisch, kaum Kontrollmöglichkeiten bezüglich Server, veränderte Server schwer feststellbar. Rule Nine ( Matthew Pritchard) „Honest players would love for a game to tip them off to possible cheating. Cheaters want the opposite.“ Problematisch für Gelegenheitsspieler cheating zu erkennen Meldung des Klienten, wenn veränderte Werte erkannt werden vgl. Quake 3 „pure server“ C - 37 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.14. Reflex Augmentation mit Aim-Bots Cheating Ansatz für Shooter: Proxy puffert Pakete zwischen und analysiert Spielverlauf: Proxy gleicht falsche Schussrichtung durch Injektion von Drehbewegung aus, Spielerverbannung kann auch ehrliche Spieler treffen, schwer zu detektieren. C - 38 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.14.1 Aim-Bots Konter (Gegenmassnahme) Verwürfelte Kommando-IDs: Verwürfelung zum Beispiel mit Pseudozufallszahlen, erschwert Identifizierung und Modifikation. Verschlüsselung der Befehle: erschwert das Lesen der Daten, Befehle aber deterministisch. C - 39 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.14.2 Authoritativer Klient Autoritätsanmaßung! Spieler meldet an andere Spieler falsche Daten, diese akzeptieren die Daten ohne Nachfrage: Risikobereiche: Eingriff in die Netzwerkkommunikation Hacking der lokalen Daten Gepatchte Software z.B. Prüfsummen als Gegenmaßnahme C - 40 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.14.3 Command Model Verifikation z.B. im Sinne einer physikalischen Machbarkeit Meist keine Überprüfung der eingehenden Updates. Meistens Erweiterung bestehender Game Engines. C - 41 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.14.4 Command Request Statt gültigen Kommandos werden Kommandoanfragen verschickt Jeder Knoten prüft ob die Anfrage gültig ist, ungültige Anfragen werden verworfen. Ansatz kann nicht verhindern, dass ein Request generiert wird, der nicht hätte generiert werden dürfen. Zusätzlich Generierung von Checksummen über die Spieldaten. Ein gehackter Knoten sollte abweichende Daten produzieren. C - 42 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.14.5 Information Exposure Risiko: kompromittierter Knoten erlaubt Zugriff/Sichtbarkeit auf versteckte Informationen, Eingriff in das Programm durch Disassemblierer oder Debugger, Bei Stategiespielen ist Aufhebung des „Fog-of-War“ beliebt. Gegenmaßnahmen: Statistiken der Render-Engine über angezeigte Figuren an andere Knoten versenden, evtl. Einbeziehen der Spielelogik und Heuristiken. Unterschied zu Autoritativen Klienten: Spieler-Kommandos unverändert. C - 43 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.14.6 Passive Information Exposure Risiko: Spieldaten werden im laufendem Betrieb ausgelesen kritische Daten werden identifiziert und erlauben Rückschlüsse auf Spielablauf des Gegners Gegenmassnahme: Erkennung evtl. durch Prozess-Scanning Verschlüsselung der Daten im Speicher C - 44 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.14.7 Bugs & Design Issues Age of Empire: Bug ermöglichte es, eine begrenzte Ressource wiederaufzufüllen. HalfLife: Möglichkeit eines schnelleren Nachladens, indem man die Waffe wechselte. Patching ist unverzichtbar im Design heutiger Spiele und virtueller Welten. Fehler können praktisch nur durch Entwickler behoben werden. Fehler sind unvermeidlich. C - 45 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.14.8 Environmental Weaknesses Definition: „Exploitable problems a game may have on particular hardware or operating conditions.“ Beispiele: Grafikkartentreiber patchen, um unsichtbare Gegner zu sehen „construction cancel“ Fehler in Age of Empires & Starcraft Flooding um Spiel abzubrechen C - 46 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm E.14.9 Quellen / Weiterführende Links The Internet Sucks: Or, What I Learned Coding X-Wing vs. TIE Fighter Proceedings of Game Developer's Conference 1999 http://www.gamasutra.com/view/feature/3374/the_internet_sucks_or_what_i_.php? print=0 Bucket Synchronisation, Proceedings of the IEEE International Conference on Multimedia Computing and Systems 1998 Scalable distributed military simulations using the SPEEDES object-oriented simulation framework, In Proc. of Object-Oriented Simulation Conf. (OOS'98), pages 3-23, 1998 An Efficient Synchronization Mechanism for Mirrored Game Architectures, Journal Multimedia Tools and Applications, Volume 23, Number 1 / May, 2004 1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond http://www.gamasutra.com/view/feature/3094/1500_archers_on_a_288_network_.php? print=0 C - 47 Virtuelle Präsenz, Winter 2010, P. Schulthess, ©VS Informatik, Ulm