DE60311625T2 - Auf dem Challenge-Response Prinzip basierendes Detektionsverfahren zwischen einem Server und einem Client und dazugehörige Speichermedia - Google Patents

Auf dem Challenge-Response Prinzip basierendes Detektionsverfahren zwischen einem Server und einem Client und dazugehörige Speichermedia Download PDF

Info

Publication number
DE60311625T2
DE60311625T2 DE60311625T DE60311625T DE60311625T2 DE 60311625 T2 DE60311625 T2 DE 60311625T2 DE 60311625 T DE60311625 T DE 60311625T DE 60311625 T DE60311625 T DE 60311625T DE 60311625 T2 DE60311625 T2 DE 60311625T2
Authority
DE
Germany
Prior art keywords
computing device
server
client
client computing
game
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60311625T
Other languages
English (en)
Other versions
DE60311625D1 (de
Inventor
Ling Tony Chen
Michael Courage
Dinarte Morais
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of DE60311625D1 publication Critical patent/DE60311625D1/de
Publication of DE60311625T2 publication Critical patent/DE60311625T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Pinball Game Machines (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Description

  • Diese Erfindung betrifft eine Servercomputervorrichtung im Allgemeinen, die eine Bedingung überprüft, die auf einer Clientcomputervorrichtung existiert, und betrifft ausdrücklicher eine Servercomputervorrichtung, die eine Abfrage (challenge) an eine Clientcomputervorrichtung ausgibt und eine von der Clientcomputervorrichtung erhaltene Antwort mit einer erwarteten Antwort vergleicht.
  • Hintergrund der Erfindung
  • Das Spielen von elektronischen Spielen über das Internet mit mehreren Spielern ist ein zunehmend beliebter Zeitvertreib geworden. Obwohl Spiele, die dafür entworfen wurden, um auf Personalcomputern (PCs) und auf geeigneten elektronischen Spielesystemen wie dem XBOXTM Spielesystem der Microsoft-Corporation zu laufen, auch dafür entworfen sind, mehreren Spielern zu ermöglichen, in einer lokalen Sitzung zu spielen, bieten über das Internet gespielte Spiele den Benutzern die Gelegenheit, ihre Fertigkeiten mit einem viel breiteren Spektrum von Spielern zu vergleichen und jederzeit zu spielen. Mehrpersonenspiele über ein Netzwerk werden normalerweise dadurch durchgeführt, dass jedem aus einer Vielzahl von Clientcomputervorrichtungen ermöglicht wird, sich an eine Servercomputervorrichtung über das Netzwerk anzuschließen, so dass die Servercomputervorrichtung Spiel-Interaktion zwischen den Spielern einer Vielzahl von verschiedenen Spielen erleichtert. Um die folgende Diskussion zu vereinfachen, wird der Ausdruck "Client" statt Clientcomputervorrichtung verwendet, und der Ausdruck "Server" wird statt Servercomputervorrichtung verwendet, wobei aber das umfassendere Konzept dieser Begriffe zur Anwendung kommen soll.
  • Idealerweise sollte nur die Fertigkeit von Spielern, die an Online-Spielen teilnehmen, bestimmen, wer ein Spiel gewinnt. Jedoch sind Online-Spieler berüchtigt, kreative Wege zu entwickeln, während des Online-Spiels zu betrügen, so dass das Geschick eines Spielers beim Spielen eines Spiels nicht unbedingt bestimmt, wer das Spiel gewinnt. Zum Beispiel kann Spielesoftware modifiziert werden (indem man zum Beispiel ein Haifischprogramm (Game Shark program) verwendet), um einem Spieler mehrere Leben, mehr Energie, mehr Schutz und andere Attribute zu liefern, so dass der Spieler einen wesentlichen Vorteil Spielern gegenüber hat, die eine unveränderte Version des Spielprogramms verwenden. Gegen eine andere Person zu spielen, die auf diese Weise betrügt, kann sehr frustrierend sein und wird nicht unterhaltsam sein, da das Spiel oft nicht mehr vom kunstfertigeren Spieler gewonnen wird, sondern stattdessen von dem Spieler gewonnen wird, der durch das Verwenden eines modifizierten Spielprogramms betrügt. Folglich wäre es für einen Server einer Spiele-Seite wünschenswert, in der Lage zu sein, herauszufinden, ob ein Spieler ein modifiziertes Spielprogramm verwendet, so dass der Server Vorkehrungen, um die Verwendung eines solchen modifizierten Programms im Online-Spiel durch einen Spieler, der mit dem Server verbunden ist, zu verhindern, treffen kann.
  • Geeignete elektronische Spielsysteme können auch modifiziert werden, um einem Spieler zu ermöglichen zu betrügen, wenn er Online-Spiele spielt. Es ist für einen Spieler zum Beispiel möglich, ein Austausch-Speichermodul, das ein modifiziertes Basic Input Output System (BIOS) enthält, in eine Spielekonsole einzubauen, mit der das originale BIOS ersetzt wird, womit dem System Funktionsweisen und Änderungen möglich sind, die nicht gestattet wären, wenn das System mit dem originalen BIOS betrieben würde. Das modifizierte BIOS kann erlauben, dass unautorisierte Kopien oder Raubkopien von Spielen gespielt werden, und kann einem Benutzer erlauben, Zonenbeschränkungen zu umgehen, die Spiele betreffen, die auf der Spielekonsole gespielt werden können. Noch wesentlicher kann die Verwendung eines modifizierten Chips in einer Spielekonsole andere Arten an Betrugsverhalten während des Spiels ermöglichen.
  • US-2002/144138 A1 bezieht sich auf eine Methode für die sichere Verteilung von elektronischen Medien über ein Netzwerk, das das Risiko der Piraterie reduziert. Bei einer Ausführungsform kann eine Methode vom Server durchgeführt werden, die prüft, ob eine Client Anmelde-Komponente und/oder eine den Client repräsentierende Komponente, die beide im Speicher des Client gespeichert sind, manipuliert wurden. Dazu sendet der Server ein Prüfprogramm zum Client, das vom Client ausgeführt werden muss. Das Prüfprogramm erzeugt ein Hash der Client Anmelde-Komponente und der den Client repräsentierenden Komponente und gibt den Hash an den Server zurück. Anschließend wertet der Server den vom Client erhaltenen Hash vor dem Verteilen von angeforderten elektronischen Medien aus.
  • WO 02/065258 A2 bezieht sich auf eine Methode, einen Apparat und ein Computerprogrammprodukt zur Authentisierung eingebetteter Software im Speicher eines Antworters (responder) über einen ungesicherten Kanal. Die Methode umfasst die Schritte:
    Übertragen der Überprüfungsanfrage vom Abfrager (challenger) zum Antworter, dann Verarbeiten der im Antworter eingebetteten Software unter Benutzung einer Hash-Funktion um einen Hashwert (hash digest) zu produzieren. Anschließend wird der Hashwert (hash digest) zurück an den Abfrager gesendet und mit einem Prüfungs-Hashwert (hash digest) im Abfrager verglichen.
  • Es wäre daher wünschenswert, Änderungen herauszufinden, die an einem elektronischen Spielesystem gemacht worden sind, wenn das Spielesystem sich bei einer Spiele-Seite anmeldet um ein Mehrpersonenspiel zu spielen, und/oder während ein solches Spiel gespielt wird, um einem Server der Seite zu ermöglichen eine entsprechende Maßnahme zu ergreifen. Jedoch kann jede Abfrage, wenn ausreichend Zeit und Ressourcen gegeben sind, vereitelt werden.
  • Nach einer allgemeineren Überlegung wäre es darüberhinaus wünschenswert, einen Server zu befähigen, ein Client-Gerät in Hinsicht jeder gewünschten Bedingung auf dem Client abzufragen (to challenge), wenn der Benutzer des Client-Geräts versucht, sich in einen auf dem Server angebotenen Dienst anzumelden oder anzuschließen, und den Server zu befähigen, zu entscheiden, ob eine Charakteristik oder Bedingung des Clients anders ist, als erwartet. Es wird offensichtlich sein, dass dieses Verfahren sich nicht auf eine vom Server gelieferte Spiele-Funktion oder auf Spiel-Clients beschränkt. Wenn die von einem Client zurückgegebene Antwort nicht wie erwartet ist, dann sollte der Server in der Lage sein, automatisch entsprechende Maßnahmen zu ergreifen. Zum Beispiel könnte der Server die gegenwärtige Sitzung mit dem Client einfach beenden und könnte eine Kennzeichnung des Client in einer Datenbank aufzeichnen, um den Client daran zu hindern, den erbrachten Dienst jemals wieder auf dem Server zu nutzen, selbst wenn die vom Client zum Server in einer zukünftigen Sitzung zurückgegebene Antwort wie erwartet ist.
  • Dieses Ziel wird vom Gegenstand der unabhängigen Ansprüche erreicht. Bevorzugte Ausführungsformen sind der Gegenstand der abhängigen Ansprüche.
  • Ein Schlüsselaspekt der vorliegenden Erfindung ist, dass ein Benutzer eines Client sich mit einem Server verbinden will, der einen vom Benutzer gewünschten Dienst erbringt. In einer ersten Anwendung der Erfindung wird der Server für eine Spiele-Seite (site) verwendet, um den Dienst zu erbringen, Spielern zu ermöglichen, an Mehrpersonenspielen über das Internet teilzunehmen, aber es sollte klar sein, dass die vorliegende Erfindung nicht auf diese Anwendung beschränkt ist. Mit Hilfe eines Client versucht der Benutzer, sich beim vom Server erbrachten Dienst anzumelden. Im Einklang mit der Methode der vorliegenden Erfindung sendet der Server während des Anmeldeprozesses, und/oder später während des Spiels, eine "Abfrage" an den Client in der Form eines oder mehrerer Codesegmente, die einen oder mehrere Parameter enthalten. Die Abfrage enthält normalerweise auch Maschinenanweisungen, die den Client veranlassen, einem bestimmten Verfahren zu folgen, um eine für eine Bedingung auf dem Client bezeichnende Antwort zu bestimmen. Zum Beispiel kann es in der Spiele-Anwendung dieser Erfindung sein, dass der Server ermittelt, ob der Client mit einem modifizierten BIOS läuft oder modifizierte Spielesoftware verwendet oder eine Raubkopie eines Spiels. Die Antwort, die vom Client bestimmt wird, wird somit auf die auf dem Client ermittelte Bedingung bezogen. Diese Antwort wird dann dem Server zurückgeschickt und wird mit einer erwarteten Antwort verglichen.
  • Wenn die Antwort zur erwarteten Antwort passt, wird der gewünschte Dienst dem Client vom Server erbracht. Wenn jedoch die Antwort nicht zur erwarteten Antwort passt oder überhaupt keine Antwort zurückgegeben wird, kann eine entsprechende vordefinierte Aktion automatisch vom Server ausgeführt werden. Zum Beispiel kann der Server die Antwort einfach aufzeichnen, um zukünftig darauf Bezug zu nehmen, oder er kann die laufende Sitzung automatisch beenden, und/oder er kann den Client oder den Benutzer für immer daran hindern, jemals wieder an den Diensten, die vom Server angeboten werden, teilzuhaben, z.B. daran, jemals wieder Online-Spiele unter Benutzung der Spiele-Dienste des Servers zu spielen.
  • Die vom Client um die Antwort zu bestimmen realisierten Maschinenanweisungen können den Client veranlassen, einen Ein-Weg Hash Algorithmus auf einen bestimmten Teil des Speichers auf dem Client, wie einen Teil des mit dem BIOS geladenen Speichers oder einen Teil des Speichers, der Code für eine Anwendung wie ein Spiel speichert, anzuwenden. Alternativ können die Maschinenanweisungen den Client veranlassen, den Ein-Weg Hash Algorithmus auf einen Teil eines dem Client zugänglichen nichtflüchtigen Speichers anzuwenden. Da eine Raubkopie eines Spiel-Programms normalerweise nur Teile des ursprünglichen nichtflüchtigen Mediums enthält, worauf das Programm gespeichert war, können die Maschinenanweisungen den Client veranlassen, den Ein-Weg Hash auf Teile des nichtflüchtigen Mediums, worauf Zufalls-Daten gespeichert wurden (aber nicht das Spiel-Programm) anzuwenden, um zu bestimmen, ob auf eine berechtigte Kopie der Spielesoftware vom Client zugegriffen wird.
  • Die genannten Teile des Speichers (oder des nichtflüchtigen Mediums) können geändert werden, wenn der Client anschließend wieder versucht, sich beim Server anzumelden. Durch das Ändern sowohl der dabei verwendeten Parameter, um die Antwort zu bestimmen, und/oder der genannten Teile des Speichers (oder des nichtflüchtigen Mediums), und/oder der Details des Ein-Weg Hash Algorithmus, der verwendet wird, um die Antwort zu produzieren, wird es für einen Benutzer des Client sehr schwierig sein, eine falsche Antwort zu liefern, die zu einer erwarteten Antwort passt.
  • Um eine Bit für Bit Raubkopie eines nichtflüchtigen Speichers, mit dem ein Spiel verbreitet ist, zu ermitteln, können die dem Client gelieferten Maschinenanweisungen bewirken, dass er versucht, einen Teil des nichtflüchtigen Speichermediums zu lesen, das auf allen berechtigten Kopien unlesbar gemacht worden ist. Wenn die Antwort nicht anzeigt, dass der Versuch, den Teil zu lesen, erfolglos war, dann passt die Antwort nicht zur erwarteten Antwort, und es ist offensichtlich, dass der Client auf eine Raubkopie der Spielesoftware zugreift.
  • Andere Aspekte der vorliegenden Erfindung beziehen sich auf einen Server oder eine Gruppe von Servern, die verwendet werden, um einen Dienst für eine Vielzahl von Clients zu erbringen, die über ein Netzwerk an den Server angeschlossen sind, so dass der Server eine Bedingung auf einem Client wahrnehmen kann. Der Server umfasst einen Speicher, in welchen eine Vielzahl von Maschinenanweisungen gespeichert sind, eine Netzwerkschnittstelle für die Verbindung zur Vielzahl von Clients und einen Prozessor, der an den Speicher und die Netzwerkschnittstelle gekoppelt ist. Der Prozessor führt die Maschinenanweisungen aus und führt eine Vielzahl von Funktionen aus, die generell mit den Schritten der oben beschriebenen Methode übereinstimmen. Ein anderer Aspekt der vorliegenden Erfindung bezieht sich auf ein Speichermedium, worauf Maschinenanweisungen, um die vom Server gemachten Schritte auszuführen, gespeichert sind.
  • Es ist beabsichtigt, dass sich der überall in dieser Offenlegung und in den folgenden Ansprüchen verwendete Ausdruck "Server" auf eine einzelne Server-Computervorrichtung oder auf eine Vielzahl von Computervorrichtungen bezieht. Somit wird vom Ausdruck "Server" auch angenommen, sich auf eine Gruppe von Computervorrichtungen zu beziehen, die in Tandemanordnung arbeiten, um den Dienst zu erbringen, den der Client wünscht. Die bestimmte Server-Computervorrichtung, die die Abfrage sendet und die vom Client erhaltene Antwort beurteilt, muss nicht unbedingt dieselbe Computervorrichtung sein, die den Dienst tatsächlich liefert. Eine Störung beim Passieren des Abfrage-Antwort Prozesses kann jedoch verursachen, dass dem Client der weitere Zugang zu irgendeinem der Server-Computervorrichtungen in der Gruppe versagt wird (nicht nur zu dem, der die Abfrage sendet und/oder die Antwort beurteilt). Weiterhin wird angenommen, dass der Ausdruck "Server", wie hier verwendet, sich auch allgemeiner auf Netzwerk Computervorrichtungen beziehen kann, wie Router oder Switches. Ein Router oder Switch würde die Abfrage ausgeben und nur Pakete von diesem Client an andere Server hinter dem Router/Switch weiterleiten, wenn die richtige (d.h. erwartete) Antwort vom Client zurückgegeben wurde.
  • Kurze Beschreibung der Zeichnungen
  • Die vorhergehenden Aspekte und viele der zugehörigen Vorteile dieser Erfindung werden leichter eingeschätzt werden, wenn diese unter Bezug auf die folgende detaillierte Beschreibung besser verstanden werden und wenn sie in Verbindung mit den begleitenden Zeichnungen gesehen werden, wobei:
  • 1 ein funktionelles Blockdiagramm einer Computervorrichtung für allgemeine Zwecke in der Form eines konventionellen Personalcomputers (PC) ist zum Gebrauch in einem exemplarischen System, worin die vorliegende Erfindung realisiert ist;
  • 2A ein schematisches Diagramm einer grundlegenden Netzwerkumgebung ist, in welcher viele Clients an einen Server angeschlossen sind;
  • 2B schematisch erläutert, wie eine Vielzahl von Servern normalerweise ein Serverrechnersystem einschließt;
  • 2C schematisch verschiedene Arten von Clients erläutert, mit denen die vorliegende Erfindung verwendet werden kann;
  • 3 eine isometrische Sicht auf eine exemplarisches Client elektronisches Spielesystem ist, das eine Spielekonsole und Unterstützung für bis zu vier Benutzereingabegeräte umfasst;
  • 4 ein funktionelles Blockdiagramm ist, das funktionelle Bauteile des Client Spielesystems der 3 zeigt;
  • 5 ein schematisches Diagramm einer exemplarischen Spiele Netzwerkumgebung ist, in welchem viele Client Spielekonsolen an einen Spieleserver angeschlossen sind, wobei eine Client Spielekonsole davon ausgeschlossen ist, sich an den Spieleserver anzuschließen;
  • 6 ein Flussdiagramm ist, das die in der vorliegenden Erfindung realisierten allgemeinen logischen Schritte erläutert;
  • 7 ein Flussdiagramm ist, das auf dem Flussdiagramm der 6 basiert und potentielle Serverantworten auf fehlgeschlagene Abfragen und die Verwendung von fakultativen anschließenden Abfragen erläutert; und
  • 8 ein Flussdiagramm ist, das die bevorzugte Logik erläutert, die verwendet wird, um die vorliegende Erfindung in der Spiele Netzwerkumgebung der 5 zu realisieren.
  • Beschreibung der bevorzugten Ausführungsform
  • Eine bevorzugte Ausführungsform der vorliegenden Erfindung in Hinsicht auf das Kontrollieren des Zugangs zu einem Server durch einen Client ist nachfolgend beschrieben.
  • Wie oben bemerkt, kann der Client zum Beispiel ein allgemein üblicher Personalcomputer (PC), ein Mobiltelefon, ein persönlicher Datenassistent (PDA), oder nahezu jede andere Form einer Computervorrichtung sein, die sich über ein verdrahtetes oder drahtloses Netzwerk mit einem Server verbinden kann. Somit wird vom Ausdruck Client angenommen, sowohl existierende Computervorrichtungen oder -systeme zu umfassen, die verwendet werden, um sich an einen Server über ein Netzwerk anzuschließen, als auch Computervorrichtungen zu umfassen, die zukünftig entwickelt werden, um auf einen Server über eine Netzwerkverbindung zuzugreifen. In einer ersten bevorzugten Form der Erfindung ist der Client eine Spielekonsole, und der Server wird in einem Online Spiele System verwendet, das Multiplayer-Spiele über das Internet erleichtert. Jene, die in diesen Fertigkeiten geschult sind, erkennen jedoch, dass die vorliegende Erfindung auch in vielen anderen Umgebungen realisiert werden kann, in denen ein Client versucht, Zugang zu einem Server zu gewinnen. Der Client und der Server können über das Internet oder über einen anderen Typ von Netzwerk, wie ein lokales Netz (LAN), ein Intranet oder ein Weitverkehrsnetz (WAN) verbunden werden.
  • Von einem Server wird gegenwärtig angenommen, ein oder mehrere Computervorrichtungen zu umfassen, die Serverfunktionen ausführen. Aber es wird angenommen, dass der Ausdruck "Server" so gemeint ist, nahezu jede(s) Computervorrichtung oder -system zu umfassen, die Serverfunktionen ausführt, einschließlich Computervorrichtungen, die zukünftig entwickelt werden, um Serverfunktionen auszuführen. Der "Server" könnte sogar einer der Clients sein, der eine Anforderung zur Verbindung in einer Peer-to-Peer-Sitzung, die er von einem anderen Client erhalten hat, behandelt. Der Client, der eine Abfrage sendet, könnte das dem anderen Client zugesandte Codesegment selbst generieren oder er könnte mit einer entsprechenden Abfrage und erwarteten Antwort von einem anderen Server beliefert werden oder der Peer-to-Peer-Client, der als Server auftritt, könnte die Abfrage selbst ausführen, um die von dem anderen Client erwartete Antwort zu bestimmen.
  • Exemplarische Computervorrichtung
  • 1 und die folgende Diskussion sollen eine kurze, allgemeine Beschreibung einer geeigneten EDV-Umgebung liefern, in welcher Software, die die Methode der vorliegenden Erfindung realisiert, realisiert werden kann. Die vorliegende Erfindung kann auf einem einzelnen Server ausgeübt werden, aber kann auch auf vielen Computervorrichtungen ausgeübt werden, die als Server dienen. Sowohl der Client als auch der Server können je die in 1 gezeigten funktionellen Bauteile enthalten. Indem die vorliegende Erfindung eindeutig auf einem Client realisiert werden kann, der ein Universal-PC ist, stellt der Client in einer ersten Anwendung der vorliegenden Erfindung eine Spielekonsole dar, wie unten beschrieben. Dennoch wird die folgende Diskussion eines Universal-PCs mit Rücksicht auf die Verwendung des PCs als einem Server oder als einem Client geführt.
  • Obwohl nicht erforderlich, wird die vorliegende Erfindung im allgemeinen Kontext von Computer-ausführbaren Anweisungen beschrieben, wie Programmmodulen, die von einem PC und/oder einer Spielekonsole ausgeführt werden. Im Allgemeinen enthalten Programmmodule Anwendungsprogramme wie Computersimulationen, Routinen, Objekte, Komponenten, Funktionen, Datenstrukturen usw. die besondere Aufgaben ausführen oder bestimmte abstrakte Datentypen realisieren. Außerdem werden jene, die in entsprechenden Fertigkeiten geschult sind, anerkennen, dass diese Erfindung mit anderen Rechnersystemkonfigurationen umgesetzt werden kann, besonders in dezentralen EDV-Umgebungen, wo Aufgaben von entfernten Verarbeitungseinheiten ausgeführt werden, die über ein Datenübertragungsnetz verbunden sind. In einer dezentralen EDV-Umgebung können Programmmodule sich entweder in einer der lokalen oder in entfernten Speichervorrichtungen befinden oder in beiden.
  • Unter Bezug auf 1 enthält ein exemplarisches System zum Gebrauch als Servercomputer eine Universal-Computervorrichtung in der Form eines konventionellen PCs 20. PC 20 wird gezeigt mit einer Verarbeitungseinheit 21, einem Systemspeicher 22 und einem Systembus 23. Der Systembus verbindet verschiedene Systemkomponenten einschließlich des Systemspeichers mit Verarbeitungseinheit 21 und er kann von irgend einer von verschiedenen Arten von Busstrukturen sein, einschließlich eines Speicherbus oder einer Speichersteuerung, Steuerung eines peripheren Bus und eines lokalen Bus unter Benutzung irgendeiner Busarchitektur aus einer Vielfalt von Busarchitekturen. Der Systemspeicher enthält Lesespeicher (ROM) 24 und Random Access Memory (RAM) 25. Ein Basis-Eingabe-Ausgabe-System 26 (BIOS) ist in ROM 24 gespeichert, das die Grundroutinen enthält, die helfen, Information zwischen Elementen innerhalb des PCs 20 zu übertragen, wie z.B. während des Hochfahrens. PC 20 enthält weiterhin ein Festplattenlaufwerk 27 für das Lesen von und das Schreiben auf eine (nicht gezeigte) Festplatte und kann ein magnetisches Laufwerk 28 für das Lesen von oder das Schreiben auf eine entfernbare magnetische Platte 29 und ein optisches Laufwerk 30 für das Lesen von oder das Schreiben auf eine entfernbare optische Platte 31, wie eine CD-ROM oder andere optische Medien, enthalten. Festplattenlaufwerk 27, magnetisches Laufwerk 28 und optisches Laufwerk 30 werden mit Systembus 23 durch eine Festplattenlaufwerkschnittstelle 32, eine magnetische Laufwerksschnittstelle 33 beziehungsweise eine optische Laufwerksschnittstelle 34 verbunden. Die Laufwerke und ihre zugehörigen computerlesbaren Medien bieten für PC 20 nichtflüchtiges Speichern von computerlesbaren Maschinenanweisungen, Datenstrukturen, Programmmodulen und andere Daten. Auch wenn die hier beschriebene exemplarische Umgebung eine Festplatte, eine entfernbare magnetische Platte 29 und eine entfernbare optische Platte 31 enthält, wird es von jemandem, der in der Technik geschult ist, verstanden werden, dass in der exemplarischen Funktionsumgebung auch andere Typen von computerlesbaren Medien, die Daten, auf die ein Computer zugreifen kann, speichern können, verwendet werden können, wie Magnetkassetten, Flash Speicherkarten, Digital Versatile Discs (DVDs), Bernoulli Einsätze, RAMs, ROMs, und dergleichen.
  • Eine Anzahl von Programmmodulen können auf der Festplatte, auf der magnetischen Platte 29, auf der optischen Platte 31, in ROM 24 oder in RAM 25 gespeichert werden, einschließlich eines Betriebssystems 35, eines oder mehrerer Anwendungsprogramme 36, anderer Programmmodule 37 und Programmdaten 38. Ein Benutzer kann Befehle und Information in PC 20 durch Eingabevorrichtungen wie eine Tastatur 40 und eine Zeigevorrichtung 42 eingeben. Zeigevorrichtung 42 kann eine Maus, einen Stift, eine drahtlose Fernbedienung oder einen anderen Zeiger umfassen. (Nicht gezeigte) andere Eingabevorrichtungen können Joystick, Gamepad, Rad, Pedal, Mikrophon, Satellitenschüssel, Scanner, digitale Kamera, digitaler Videorekorder umfassen oder dergleichen. Diese und andere Eingabe/Ausgabe (E/A) Vorrichtungen werden meist mit der Verarbeitungseinheit 21 durch eine Ein/Ausgabe-Schnittstelle 46 verbunden, die an den Systembus 23 gekoppelt ist. Der Ausdruck Ein/Ausgabe-Schnittstelle soll jede Schnittstelle umfassen, die spezifisch für einen seriellen Port, einen parallelen Port, einen Spiele-Port, einen Tastaturport verwendet wird, und/oder einen seriellen Universalbus (USB). Ein Monitor 47 oder ein anderer Typ von Anzeigeeinheit wird auch mit dem Systembus 23 durch eine entsprechende Schnittstelle wie einen Videoadapter 48 verbunden und kann verwendet werden, um Anwendungsprogramme, Webseiten, eine simulierte Umgebung, und/oder andere Information anzuzeigen. Zusätzlich zum Monitor sind PCs häufig an (nicht gezeigte) andere periphere Ausgabegeräte wie Lautsprecher (durch eine Soundkarte oder andere Audioschnittstelle (nicht gezeigt)) und Drucker gekoppelt.
  • Wie oben aufgezeigt, ist die Erfindung in einer vernetzten Umgebung realisiert, in welcher PC 20 mit einem oder mehreren Clients, wie einem entfernten Computer 49, logisch verbunden ist. Der entfernte Computer 49 kann ein anderer PC, ein Router, ein Netzwerk-PC, ein Peer-Gerät, ein Satellit oder ein anderer gewöhnlicher Netzwerkknoten sein, der einen Client umfasst. Der entfernte Computer 49 ist in einer bevorzugten Anwendung der vorliegenden Erfindung eine Spielekonsole, wie unten detaillierter beschrieben wird. Der entfernte Computer 49 kann viele oder alle Elemente enthalten, die oben in Verbindung mit PC 20 beschrieben wurden, kann die unten in Verbindung mit einer Spielekonsole beschriebenen Elemente enthalten oder kann typische Elemente von anderen elektronischen Geräten enthalten, die als Client dienen können. Um 1 nicht unnötigerweise komplex zu machen, wird der entfernte Computer 49 mit nur einer externen Speichervorrichtung 50 gezeigt. Die in 1 gezeigten logischen Verbindungen enthalten ein lokales Netz (LAN) 51 und ein Weitverkehrsnetz (WAN) 52, das das Internet umfassen kann. Solche Netzwerkumgebungen sind gebräuchlich in Büros, in firmenweiten Computernetzen, in Intranetzen, und im Hinblick auf mit dem Internet verbundene Computervorrichtungen.
  • Wenn PC 20 in einer LAN Netzwerkumgebung verwendet wird, wird er mit LAN 51 durch eine Netzwerkschnittstelle oder -adapter 53 verbunden. Wenn PC 20 in einer WAN Netzwerkumgebung verwendet wird, enthält er normalerweise ein Modem 54, oder andere Mittel wie ein Kabelmodem, eine Digital Subscriber Line (DSL) Schnittstelle, oder eine Integrated Service Digital Network (ISDN) Schnittstelle, um Datenübertragung über WAN 52 herzustellen. Ein Typ eines gewöhnlich für Kommunikation zwischen entfernten Computervorrichtungen verwendeten WAN ist das Internet. Das Modem 54, das intern oder extern sein kann, ist an den Systembus 23 angeschlossen oder an den Bus über die Ein/Ausgabe-Geräteschnittstelle 46 gekoppelt, d.h. durch einen seriellen Port. In einer vernetzten Umgebung können die in Bezug auf PC 20 gezeigten Programmmodule oder Teile davon in der entfernten Speichervorrichtung gespeichert werden. Man wird verstehen, dass die gezeigten Netzwerkverbindungen exemplarisch sind und andere Mittel, eine Datenübertragungsverbindung zwischen den Computern herzustellen, verwendet werden können, wie drahtlose Kommunikation und Breitbandnetzwerkverbindungen.
  • Mindestens erforderliche vernetzte Umgebung
  • Wie oben bemerkt, ist ein Schlüsselaspekt der vorliegenden Erfindung, dass ein Benutzer eines Client sich über ein Netzwerk wie das Internet mit einem Server verbinden will, der einen Dienst oder Daten zur Verfügung stellt, die vom Benutzer gewünscht werden. Somit ist, um die vorliegende Erfindung zu realisieren, eine Netzwerkumgebung einschließlich eines Client und eines Servers erforderlich. 2A erläutert schematisch ein Grundnetzwerk 280, einschließlich eines Servers 282a, und mehrere Clients 284a bis 284h. Während zwar eine Netzwerkumgebung zwischen einem Server und einem einzelnen Client existieren kann, enthalten die meisten Netzwerkumgebungen mehrere Clients und oft auch mehrere Server. Es ist beabsichtigt, dass das Netzwerk 280 ein beliebiges aus einer großen Vielfalt von Datendatenübertragungsnetzen darstellen soll und sowohl öffentliche Teile (z.B. das Internet), wie auch private Teile (z.B. ein privates LAN und/oder WAN) enthalten können soll. Es ist auch beabsichtigt, dass das Netzwerk 280 unter Verwendung von beliebigen oder mehreren aus einer großen Vielfalt von konventionellen Datenübertragungskonfigurationen einschließlich sowohl verdrahteter als auch drahtloser Typen realisiert werden können soll. Irgendeines aus einer großen Vielfalt von Datenübertragungsprotokollen kann verwendet werden, um Daten über das Netzwerk 280 zu übermitteln, einschließlich sowohl öffentlicher als auch privater Protokolle. Beispiele für solche Protokolle sind TCP/IP, IPX/SPX, NetBEUI usw.
  • 2B erläutert schematisch einen exemplarischen Server 282b. Wie oben bemerkt, enthalten Server im Allgemeinen viele der Bauteile des PCs 20, der im Detail oben beschrieben wurde. Es ist gemeint, dass Server, die im Einklang mit der vorliegenden Erfindung verwendet werden als ein Serverrechnersystem 282c realisiert werden können, das mehrere einzelne Server enthält, die sich die Aufgabe teilen, verbundenen Clients einen Dienst zu erbringen. Jemand, der in der Technik in üblicher Weise geschult ist, wird erkennen, dass einzelne Server in einem Serverrechnersystem Aufgaben gleichmäßig verteilen (wie in einem System mit ausbalancierter Last), oder das Serverrechnersystem kann bestimmten Servern bestimmte Aufgaben zuteilen.
  • Da eine bevorzugte Ausführungsform der vorliegenden Erfindung mit einem Client gebraucht wird, der eine mit einem Netzwerk verbundene Spielekonsole ist und mit einem Server, der ein Online Spieleserver ist, wird noch einmal ausdrücklich betont, dass die vorliegende Erfindung mit anderen Arten von Clients auch sinnvoll eingesetzt werden kann. 2C zeigt schematisch mehrere verschiedene Arten von Clients, die benutzt werden können, um auf einen Server zuzugreifen, beinhaltend, ohne darauf beschränkt zu sein, einen Laptopcomputer 284i, einen Arbeitsplatzrechner 284J, einen PC 284k, einen PDA 284l, eine Spielekonsole 284m, ein internetfähiges Funk-Telefon 284n, und einen internetfähigen Pager 284o. 2C zeigt auch, dass auch Server 282b oder Serverrechnersystem 282c als Client betrachtet werden können, wenn der Server von einem Benutzer verwendet wird, der wünscht, auf einen von einem anderen Server erbrachten Dienst zuzugreifen.
  • Da es ausdrücklich so gemeint ist, dass die gegenwärtige Erfindung realisiert werden kann, um den Zugriff auf einen Server durch eine Anzahl verschiedener Typen von Clients zu kontrollieren, wird eine bevorzugte Ausführungsform der gegenwärtigen Erfindung realisiert, um den Zugriff zu kontrollieren von mit einem Netzwerk verbundenen Spielekonsolen auf einen Server, der Spielen ermöglicht. Die gegenwärtige Erfindung ist aber nicht auf Clients, die Spielekonsolen sind, beschränkt und ist nicht auf einen Server beschränkt, der Spielen ermöglicht. Andere Arten von Clients und Server, die verschiedene Funktionen ausführen, sind in der vorliegenden Erfindung einbezogen.
  • Exemplarischer Client
  • 3 erläutert ein exemplarisches elektronisches Spielesystem 100, das eine Spielekonsole 102 und Unterstützung für bis zu vier Benutzereingabevorrichtungen umfasst, wie die Steuerungen 104a und 104b. Natürlich können auch Spielekonsolen verwendet werden, die nur eine einzelne Benutzereingabevorrichtung oder zusätzliche Benutzereingabevorrichtungen unterstützen. Spielekonsole 102 ist mit einem (in dieser Abbildung nicht gezeigten) internen Festplattenlaufwerk bestückt und enthält ein Laufwerk für tragbare Medien 106, das verschiedene Formen von tragbaren optischen Speichermedien unterstützt, repräsentiert durch eine optischen Speicherplatte 108. Beispiele für geeignete tragbare Speichermedien sind DVD Platten und Compact Disk-Read-Only Memory (CD-ROM) Platten. In diesem Spielesystem werden Spielprogramme für den Gebrauch mit der Spielekonsole bevorzugt auf DVD verteilt, aber es ist auch daran gedacht, dass stattdessen andere Speichermedien auf diesem oder anderen Typen von Clients in Verbindung mit der vorliegenden Erfindung verwendet werden können.
  • Auf der Vorderseite der Spielekonsole 102 sind vier Ports 110 für die Verbindung zu unterstützten Steuerungen, obwohl die Anzahl und Anordnung der Ports modifiziert werden kann. Eine Einschalttaste 112 und eine Auswurftaste 114 sind auch auf der Vorderseite der Spielekonsole 102 angeordnet. Eine Einschalttaste 112 kontrolliert die Zufuhr des elektrischen Stroms zur Spielekonsole und eine Auswurftaste 114 öffnet und schließt abwechselnd eine Ablage (nicht gezeigt) des Laufwerks für tragbare Medien 106, um das Einlegen und Entnehmen von Speicherplatte 108 zu ermöglichen, so dass die digitalen Daten auf der Platte gelesen werden können, um von der Spielekonsole verwendet werden zu können.
  • Die Spielekonsole 102 ist mit einem Fernseher oder einem anderen Anzeigemonitor oder- schirm (nicht gezeigt) durch audio/visuelle (A/V)-Schnittstellen Kabel verbunden. Ein Netzkabelstecker 122 übermittelt elektrischen Strom an die Spielekonsole, wenn er mit einer konventionellen Wechselstromnetzquelle (nicht gezeigt) verbunden ist. Die Spielekonsole 102 enthält einen Ethernet-Datenverbindungsanschluss 124, um Daten über ein Netzwerk zu übertragen und zu erhalten (z.B. durch eine Peer-to-Peer-Verbindung zu einer anderen Spielekonsole oder durch eine Verbindung zu einem Hub oder einem Switch (nicht gezeigt)) oder über das Internet zum Beispiel durch eine Verbindung zu einer xDSL-Schnittstelle, zu einem Kabelmodem oder zu einer anderen Breitbandschnittstelle (nicht gezeigt). Andere Arten von Spielekonsolen können miteinander kommunizierend mit Hilfe eines konventionellen Telefonmodems verbunden werden.
  • Jede Steuerung 104a und 104b ist mit der Spielekonsole 102 über eine Leitung (oder alternativ durch eine drahtlose Schnittstelle) gekoppelt. In der dargestellten Realisierung sind die Steuerungen mit seriellem Universalport (USB) kompatibel und sind mit der Spielekonsole 102 durch USB-Kabel 130 verbunden. Die Spielekonsole 102 kann mit irgendeiner aus einer großen Vielfalt von Vorrichtungen ausgerüstet sein, mit denen der Benutzer mit der Spielsoftware interagiert und sie steuert. Wie in 3 gezeigt, ist jede Steuerung 104a und 104b mit zwei Daumentasten 132a und 132b bestückt, mit einem D-Feld 134, mit Tasten 136 und mit zwei Auslösertasten 138. Diese Steuerungen sind lediglich typisch, und andere Spieleingabe- und Steuervorrichtungen können zum Gebrauch mit Spielekonsole 102 jene ersetzen oder zu denen hinzugefügt werden, die in 3 gezeigt werden.
  • Eine entfernbare Funktionseinheit 140 kann wahlweise in Steuerung 104 eingesetzt werden, um Zusatzmerkmale und -funktionen zu liefern. Zum Beispiel ermöglicht eine tragbare Speichereinheit (MU) Benutzern, Spiele Parameter zu speichern und sie für das Spiel auf anderen Spielekonsolen zu transportieren, indem sie die tragbare MU in eine an die andere Spielekonsole angeschlossene Steuerung einsetzt. Eine andere entfernbare Funktionseinheit umfasst eine Stimmenkommunikationseinheit, die einem Benutzer ermöglicht, verbal mit anderen Benutzern lokal und/oder über ein Netzwerk zu kommunizieren. Mit der Stimmenkommunikationseinheit ist ein Kopfhörer 142 verbunden, der ein Galgenmikrophon 144 enthält. In der beschriebenen Realisierung ist jede Steuerung so konfiguriert, dass sie zwei entfernbare Funktionseinheiten aufnehmen kann, obwohl auch mehrere oder weniger als zwei entfernbare Funktionseinheiten oder -module stattdessen verwendet werden können.
  • Das Spielesystem 100 ist fähig, zum Beispiel Spiele, Musik und Videos abzuspielen. Es ist daran gedacht, dass andere Funktionen realisiert werden können, unter Verwendung digitaler Daten, die auf dem Festplattenlaufwerk gespeichert sind oder von einer optischen Speicherplatte 108 in Laufwerk 106 gelesen werden, oder unter Verwendung digitaler Daten, die aus einer Online-Quelle oder aus einer MU erhalten wurden. Zum Beispiel ist das Spielesystem 100 dazu fähig, abzuspielen:
    • • Spieletitel, die auf CD- und DVD-Platten oder auf dem Festplattenlaufwerk gespeichert sind oder von einer Online-Quelle heruntergeladen wurden;
    • • Digitale Musik, die auf einer CD im Laufwerk für tragbare Medien 106 oder in einer Datei auf dem Festplattenlaufwerk (z.B. WINDOWS MEDIA AUDIOTM (WMA) Format) gespeichert ist oder aus Online-Streaming Quellen im Internet oder in anderen Netzwerken stammt; und
    • • Digitale AV-Daten wie Filme, die auf einer DVD im Laufwerk für tragbare Medien 106 oder in einer Datei auf dem Festplattenlaufwerk (z.B. in einem Active Streaming Format) gespeichert sind oder aus Online-Streaming Quellen im Internet oder in anderen Netzwerken.
  • 4 zeigt funktionale Komponenten des Spielesystems 100 detaillierter. Die Spielekonsole 102 enthält eine zentrale Verarbeitungseinheit (CPU) 200 und eine Speichersteuerung 202, die den Prozessorzugriff auf einen Read-Only Memory (ROM) 204, einen Random Access Memory (RAM) 206, ein Festplattenlaufwerk 208 und ein Laufwerk für tragbare Medien 106 erleichtert. CPU 200 ist mit einem Level 1 Cache 210 und einem Level 2 Cache 212 ausgerüstet, zwischenzeitlich Daten zu speichern, um die Anzahl von erforderlichen Speicherzugriffszyklen zu reduzieren und dadurch Verarbeitungsgeschwindigkeit und Durchsatz zu verbessern. CPU 200, Speichersteuerung 202 und verschiedene Speichervorrichtungen werden über einen oder mehrere Busse zusammengeschaltet, einschließlich serielle und parallele Busse, einen Speicherbus, einen peripheren Bus und einen Prozessor- oder lokalen Bus mit Hilfe von irgendeiner aus einer Vielfalt von Busarchitekturen. Diese Architekturen können beispielsweise ein Industry Standard Architecture (ISA) Bus, ein Micro Channel Architecture (MCA) Bus, ein Enhanced ISA (EISA) Bus, ein Video Electronics Standards Association (VESA) lokaler Bus, und ein Peripheral Component Interconnect (PCI) Bus sein.
  • Als Beispiel für eine geeignete Realisierung der Spielekonsole, sind CPU 200, Speichersteuerung 202, ROM 204 und RAM 206 integriert in ein gemeinsames Modul 214. In dieser Realisierung ist ROM 204 als ein Flash-ROM ausgeführt, das mit Speichersteuerung 202 durch einen PCI-Bus und einen ROM Bus verbunden ist (keiner von beiden wird gezeigt). RAM 206 ist als mehrfache Double Data Rate Synchronous Dynamic RAMs (DDR SDRAMs) ausgeführt, die von der Speichersteuerung 202 über separate (nicht gezeigte) Busse unabhängig kontrolliert werden. Festplattenlaufwerk 208 und Laufwerk für tragbare Medien 106 sind mit der Speichersteuerung durch den PCI-Bus und einen Advanced Technology Attachment (ATA) Bus 216 verbunden.
  • Eine Einheit für die Verarbeitung dreidimensionaler (3D) Graphik (GPU) 220 und ein Videoencoder 222 bilden eine Vieoverarbeitungsleitung für Hochgeschwindigkeits- und hochauflösende Graphikverarbeitung. Die Daten werden von Graphikverarbeitungseinheit 220 zu Videoencoder 222 über einen (nicht gezeigten) digitalen Videobus übertragen. Eine Audioverarbeitungseinheit 224 und ein Audio Encoder/Decoder (CODEC) 226 bilden eine entsprechende Audioverarbeitungsleitung für HIFI- und Stereoaudiodatenverarbeitung. Audiodaten werden zwischen Audioverarbeitungseinheit 224 und AudioCODEC 226 über eine (nicht gezeigte) Kommunikationsverbindung übertragen. Die Video- und Audioverarbeitungsleitung, gibt Daten an einen A/V Port 228 zur Übertragung auf den Fernseher oder anderen Anzeigemonitor aus. In der gezeigten Realisierung sind Video- und Audioverarbeitungskomponenten 220228 auf Modul 214 montiert.
  • Von Modul 214 wird auch eine USB Hoststeuerung 230 und eine Netzwerkschnittstelle 232 realisiert. USB Hoststeuerung 230 ist gekoppelt mit CPU 200 und Speichersteuerung 202 über einen Bus (z.B. den PCI-Bus) und dient als ein Host für periphere Steuerungen 104a bis 104d. Netzwerkschnittstelle 232 liefert Zugang zu einem Netzwerk (z.B. dem Internet, Heimnetzwerk usw.) und kann irgendeine aus einer großen Vielfalt von verschiedenen drahtgebundenen oder drahtlosen Schnittstellenkomponenten sein, einschließlich einer Ethernet-Karte, einer Telefonmodemschnittstelle, eines Bluetooth-Moduls, einer Kabelmodemschnittstelle, einer xDSL-Schnittstelle und dergleichen.
  • Die Spielekonsole 102 hat zwei Doppelsteuerungsunterstützungsuntereinheiten 240a und 240b, wobei jede Untereinheit zwei Spielsteuerungen 104a bis 104d unterstützt. Eine Frontplatten Ein/Ausgabe-Untereinheit 242 unterstützt die Funktion von Einschalttaste 112 und Auswurftaste 114 wie auch die irgendwelcher Leuchtdioden (LEDs) oder anderer Indikatoren, die auf der äußeren Oberfläche der Spielekonsole angeordnet sind.
  • Untereinheiten 240a, 240b und 242 sind an Modul 214 über eine oder mehrere Kabelverbände 244 gekoppelt.
  • Acht Funktionseinheiten 140a140h sind dargestellt, als wären sie mit vier Steuerungen 104a104d verbindbar, d.h. zwei Funktionseinheiten für jede Steuerung. Jede Funktionseinheit 140 bietet zusätzliche Funktionen oder Speicher an, auf dem Spiele, Spiele Parameter und andere Daten gespeichert werden können. Wenn eine MU in eine Steuerung eingeführt wird, kann auf die MU von der Speichersteuerung 202 zugegriffen werden. Ein Modul für die Stromversorgung des Systems 250 liefert den Bauteilen des Spielesystems 100 die erforderlichen Spannungen und Ströme. Ein Lüfter 252 kühlt die Bauteile und Schaltkreise innerhalb der Spielekonsole 102.
  • Um die bevorzugte Ausführungsform der vorliegenden Erfindung zu realisieren, wird für die Ausführung durch CPU 200 eine Spielsoftwareanwendung 260, die Maschinenanweisungen enthält und auf einer DVD oder anderen Speichermedien gespeichert ist (oder über das Netzwerk heruntergeladen wurde), in RAM 206 und/oder Cache 210, 212 geladen. Teile der Softwareanwendung 260 können nur wenn nötig in den RAM geladen werden, oder die ganze Softwareanwendung kann (je nach ihrer Größe) in den RAM 206 geladen werden. Die Softwareanwendung 260 wird unten detaillierter beschrieben.
  • Das Spielesystem 100 kann als ein selbständiges System durch das einfache Verbinden des Systems mit einem Fernseher oder einem anderem Anzeigemonitor bedient werden. In diesem selbständigen Modus ermöglicht das Spielesystem 100 einem oder mehreren Benutzern, Spiele zu spielen, Filme zu sehen oder Musik zu hören. Das Spielesystem 100 kann jedoch, durch die Möglichkeit der Verbindung mit dem Internet oder anderen Netzwerken, was durch die Netzwerkschnittstelle 232 erreicht wird, mit einem anderen Spielesystem verbunden oder als Bestandteil einer größeren Netzwerkspielgemeinschaft bedient werden, um Online-Mehrpersoneninteraktion in Spielen zu ermöglichen, die über das Internet oder andere Netzwerke gespielt werden, mit Spielern, die andere Spielesysteme verwenden.
  • Wenn ein Benutzer wünscht, sich an einen Server anzuschließen, um vernetzt zu spielen, eine Tätigkeit, die sich zunehmender Beliebtheit erfreut, versucht das Spielesystem 100 auf einen (nicht in dieser Abbildung gezeigten) Server durch die oben beschriebene Netzwerkverbindung zuzugreifen. Wie unten detaillierter beschrieben wird, fragt der Server jedes Spielesystem ab, das versucht, Zugang zum Server zu gewinnen. Auf Grundlage einer Antwort auf die vom Server empfangene Abfrage an das Client Spielesystem, führt der Server eine entsprechende vorher festgelegte Aktion aus.
  • Exemplarisches Spiele-Netzwerk-Svs
  • Eine bevorzugte Ausführungsform der vorliegenden Erfindung wird in Verbindung mit dem XBOX LIVETM Online-Spiele-Netzwerk der Microsoft Corporation realisiert. 5 zeigt ein exemplarisches Spiele-Netzwerk 300, das mehrere Spielesysteme 100a bis 100s enthält, von denen jedes logisch mit einem serverbasierten Online-Spiele-Dienst 302 verbunden ist, im Folgenden einfach als Spieleserver 302 bezeichnet. Es ist beabsichtigt, dass jedes Spielesystem einen Client darstellen soll. Wie oben in Verbindung mit 2B beschrieben, kann Spieleserver 302 ein einzelner Server sein oder, was wahrscheinlicher ist, aus einer Vielzahl von in einem Serverrechnersystem gruppierten Servern bestehen. Das Netzwerk 300 ist ähnlich dem Netzwerk 280 und kann unter Verwendung irgendeiner oder mehrerer aus einer großen Vielfalt von üblichen Datenübertragungskonfigurationen, einschließlich sowohl drahtgebundener als auch drahtloser Typen, realisiert werden. Ein beliebiges aus der großen Vielfalt von Datenübertragungsprotokollen kann verwendet werden, um Daten über das Netzwerk 300 zu übermitteln und es kann sowohl öffentliche als auch private Protokolle enthalten. Beispiele für solche Protokolle sind TCP/IP, IPX/SPX, NetBEUI usw.
  • Im allgemeinen liefert der Spieleserver 302 spielbezogene Dienste an die mit ihm verbundenen Clients (z.B. den Benutzern jedes Spielesystems 100), wie die kommunikative Verbindung der Clients miteinander um das Spielen zwischen den Spielern zu ermöglichen, die Unterstützung durch einen Server und/oder das Hosting von Online-Spielen, die Unterstützung durch einen Server von herunterladbaren spielbezogenen Dateien, das Hosting von Spiel-Wettbewerben, die Unterstützung durch einen Server von spielbezogenen AN Streaming-Dateien, das Ermöglichen des Austauschs von textbasierten oder Sprachnachrichten zwischen den Teilnehmern während des Spiels und dergleichen. Es wird jedoch ausdrücklich betont, dass die vorliegende Erfindung nicht auf die Anwendung mit nur diesen oder anderen spielbezogenen Serverfunktionen beschränkt ist, da viele andere Arten von Diensten vom Server geliefert werden können.
  • Es wird darauf hingewiesen, dass das Netzwerk 300 das Spielesystem 100t enthält, das noch nicht mit dem Spieleserver 302 verbunden ist. Beim Beschreiben einer bevorzugten Ausführungsform der vorliegenden Erfindung, wird das Einrichten einer Netzwerkverbindung zwischen dem Spielesystem 100t und dem Spieleserver 302 unten detaillierter beschrieben. 5 zeigt auch das universell verstandene Symbol für "Nein", das über einem Spielesystem 100u liegt, wo sich eine unterbrochene Linie zwischen dem Spielesystem 100u und dem Spieleserver 302 befindet, die anzeigt, dass die Netzwerkverbindung zwischen dem Spielesystem 100u und dem Spieleserver 302 beendet worden ist. Wie unten detaillierter beschrieben wird, besonders, wenn die vorliegende Erfindung in einer Spiele-Netzwerkumgebung realisiert wird, ist eine vorgegebene Aktion eines Servers, wenn die Abfrage an einen Client scheitert, sowohl sofort eine gegenwärtige Netzwerkverbindung zwischen diesem Client und dem Server zu beenden, und/oder anschließend weitere Versuche dieses speziellen Clients abzulehnen, eine Netzwerkverbindung mit dem Server herzustellen. Auf diese Weise scheiterte im Beispiel von 5 das Spielesystem 100u daran, richtig auf eine von dem Spieleserver 302 ausgegebene Abfrage zu antworten, und die logische Netzwerkverbindung zwischen dem Spielesystem 100u und dem Spieleserver 302 ist durch den Spieleserver 302 beendet worden. Weiterhin wird in diesem Beispiel der Spieleserver 302 ein identifizierendes Kennzeichen (z.B. eine Seriennummer) für das Spielesystem 100u intern vermerken und wird zukünftige Versuche des Spielesystems 100u, eine logische Netzwerkverbindung zu dem Spieleserver 302 herzustellen, ablehnen, wenn er das identifizierende Kennzeichen bei dem nächsten Versuch von dem Spielesystem 100u eine Verbindung zum Spieleserver aufzubauen erkennt.
  • Überblick über den logischen Prozess
  • In 6 erläutert ein Flussdiagramm 320 die logischen Schritte, die in der vorliegenden Erfindung verwendet werden, um einen Client abzufragen, bevor man dem Client ermöglicht, auf einen Server zuzugreifen. In Block 322 sendet ein Client eine Anforderung zu einem Server. Die vorliegende Erfindung ermöglicht dem Server, eine Bedingung auf einem Client zu überprüfen, bevor er dem Client erlaubt, auf einen Dienst oder Daten zuzugreifen, die vom Server zur Verfügung gestellt werden. In einem konventionellen Netz kann ein Server die Eingabe von einem Benutzernamen und einem Kennwort fordern, aber er wird nicht versuchen, eine Bedingung auf einem Client zu überprüfen, bevor er dem Client Zugang zu einem vom Server erbrachten Dienst erlaubt. Die vorliegende Erfindung ermöglicht jedoch einem Server, zuerst eine Bedingung in Hinsicht auf eine Hardware und/oder Softwarekonfiguration auf dem Client zu überprüfen. Dementsprechend ist die vorliegende Erfindung nur in jenen Situationen nützlich, in denen der Benutzer eines Client einen Dienst oder eine Information, die vom Server zur Verfügung gestellt wird, wünscht und versucht, eine logische Verbindung mit oder durch den Server herzustellen. Wenn der Benutzer den Dienst, der vom Server erbracht wird, nicht will, und nie versucht, sich an den Server anzuschließen, hat der Server nicht die Gelegenheit, die Bedingung auf dem Client zu überprüfen.
  • Es wird angenommen, dass Block 322 meistens den Versuch eines Client darstellt, sich bei einem Server anzumelden. Es ist jedoch beabsichtigt, dass Block 322 jede anschließende Anforderung eines Client (nach einem erfolgreichen Anmelden) darstellt auf einen Dienst oder eine Information zuzugreifen, oder weiterhin darauf zuzugreifen, der/die vom Server verwaltet wird. In jeder einzelnen Sitzung, die eine logische Netzwerkverbindung zwischen einem Client und einem Server einschließt, kann das bedeuten, dass Block 322 unmittelbar auf die Einrichtung solch einer logischen Verbindung oder jederzeit im Anschluss an die Einrichtung solch einer logischen Verbindung zum Tragen kommt. Unter gewissen Umständen kann es sinnvoll sein, wie mit zusätzlichen Details nachfolgend beschrieben, sowohl bei einem ersten Anmeldeversuch als auch ein- oder mehrmals während einer Übertragungssitzung zwischen einem Client und einem Server, einen Client abzufragen.
  • In Block 324 sendet der Server eine Abfrage an den Client. Während Details der bevorzugten Formen von Abfragen, die von Servern Clients zugesendet werden, unten detaillierter erörtert werden, bedeutet die Abfrage nicht einfach, dass ein Server einen Client auffordert, Kenntnis von einem Kennwort zu liefern oder von irgendeiner anderen Zugangsberechtigungsinformation, die er benötigt, um in der Lage zu sein, Zugang zum System zu erhalten. Die Abfrage ist auf das Überprüfen eines Merkmals oder einer Bedingung des Client ausgerichtet, um zu bestimmen, ob die Bedingung auf dem Client so ist, wie vom Server erwartet. Es wird in Betracht gezogen, eine Vielzahl von verschiedenen Abfragen vorzugenerieren und für einen Server verfügbar zu machen, wobei jede Abfrage mit einer entsprechenden erwarteten Antwort verbunden ist. Verschiedene Abfragen können dieselbe Bedingung auf dem Client testen. Der Server kann dann eine der vielen vorgenerierten Abfragen wählen, um sie dem Client zuzusenden. Für jede dieser vorgenerierten Abfragen wird der Server eine erwartete Antwort auf Grundlage von bekannten Merkmalen einer Bedingung, von der erwartet wird, dass sie auf dem Client erfüllt ist, berechnet haben. Bedingungen, die durch solche Abfragen überprüft werden können, sind zum Beispiel das BIOS, das der Client verwendet, die Hardwarekonfiguration des Client und die Software, die der Client verwendet.
  • In Block 326 verarbeitet der Client die vom Server erhaltene Abfrage. Wie oben bemerkt, ist die Abfrage keine Anforderung der Kenntnis eines Kennworts oder irgendeiner anderen Zugangsberechtigungsinformation, die eingegeben werden muss, und erfordert keine Aktion von einem Benutzer des Client. Vorzugsweise hat die Abfrage die Form eines ausführbaren Codesegments, das vom Server dem Client zugesendet wird. Der Client führt das vom Server erhaltene Codesegment aus und sendet dann die durch das Ausführen des Codes generierte Antwort zur Auswertung zurück zum Server. In mindestens einer bevorzugten Ausführungsform enthält die Abfrage den Code, der geeignet ist, um einen Ein-Weg Hash Algorithmus, wie SHA-1 oder MD5 von einem bestimmten Teil des Speichers auf dem Client oder von einem bestimmten Teil einer DVD oder eines anderen nichtflüchtigen Speichers, zu dem der Client Zugriff hat, zu realisieren. Die Abfrage enthält vorzugsweise auch einen oder mehrere Parameter, die das erwartete Ergebnis beeinflussen.
  • In Block 328 wird die vom Client berechnete Antwort an den Server gesendet. In Block 330 überprüft der Server die vom Client berechnete Antwort. An dieser Stelle kann der Server, basiert auf der vom Client erhaltenen Antwort, eine aus einer Anzahl von vordefinierten Aktionen, basierend auf der Antwort, die vom Client erhalten wird, ausführen, wie in Block 331 angezeigt ist. Wenn ein Client daran scheitert, die erwartete Antwort auf eine Abfrage an den Server zu senden, oder wenn vom Client keine Antwort empfangen wurde, kann der Server auf viele verschiedene Weisen reagieren. Zum Beispiel kann der Server lediglich den Vorfall zum Zweck der Nachverfolgung protokollieren. Unter anderen Umständen kann der Server die Anforderung vom Client ablehnen und die logische Netzwerkverbindung zwischen dem Client und dem Server beenden. Eine andere Option wäre für den Server, die logische Verbindung mit dem Client zu beenden. Außerdem kann der Server zukünftige Versuche vom Clientgerät oder Benutzer ablehnen, eine logische Netzwerkverbindung mit dem Server herzustellen.
  • Um die Client- oder Benutzeridentität genau zu bestimmen, um zukünftige Serververbindungen mit dem Client oder Benutzer abzulehnen, kann der hier beschriebene Abfrage- und Antwortprozess ausgeführt werden, nachdem ein Authentisierungsprozess (einschließlich Zugangsberechtigungsinformationen, wie ein Kennwort, Smartcard, usw.) schon verwendet wurde, um das Client Gerät und/oder den Benutzer zu identifizieren. Durch das Durchführen des Abfrage/Antwortprozesses nach dem Authentisierungsprozess, kann die Identität des Clientgeräts und/oder Benutzers genau bestimmt werden, und so kann der Server gezielt die genau authentisierte Identität als Clientidentität (sei es ein Clientgerät oder ein Benutzer) dauerhaft sperren.
  • 7 zeigt veränderte Schritte gegenüber 6 im Flussdiagramm 320a, das die Schritte 330 und 331 weglässt, aber die Schritte 322, 324, 326 und 328 hinzufügt. Der Client sendet eine Anforderung zu einem Server, der Server sendet eine Abfrage an den Client, der Client verarbeitet die Abfrage, und der Client sendet die berechnete Antwort an den Server. Im Flussdiagramm 320a wird die Antwort des Client in einem Entscheidungsblock 332 analysiert, um zu bestimmen, ob der Server die Antwort akzeptiert. Wenn der Server in Entscheidungsblock 332 bestimmt, dass der Client eine falsche Antwort zurückgegeben hat (die nicht zur erwarteten Antwort passt), lehnt der Server die Anforderung des Client in einem Block 336 ab. Vorzugsweise wird die logische Netzwerkverbindung zwischen dem Client und dem Server in dieser Ausführungsform an diesem Punkt beendet. Es ist möglich, dass eine Bedingung, die auf dem Client existiert, modifiziert (z.B. korrigiert) werden kann, so dass eine anschließende Abfrage des Servers vom Client verarbeitet werden kann, so dass der Client dann eine Antwort liefert, die zur erwarteten Antwort passt. Oder, es kann besser sein, einem Client jede zukünftige Verbindung mit dem Server zu verbieten, wenn die Antwort des Client nicht zur erwarteten Antwort in einem einzelnen Fall passt. Dann werden, wie in einem fakultativen Block 338 aufgezeigt, wenn der Server die Anforderung des Client in Block 336 abgelehnt hat, alle zukünftigen Anforderungen von dieser Clientgeräte- oder Benutzeridentität in einem Block 338 ignoriert.
  • Gehen wir noch einmal zu Entscheidungsblock 332: wenn die Antwort des Client vom Server akzeptiert wird, dann wird die Anforderung des Client in einem Block 334 verarbeitet. Als eine weitere Alternative kann der Abfrageprozess zu einer anschließenden Zeit während der gegenwärtigen Sitzung wiederholt werden, wenn der Client eine Anforderung zum Server sendet. Da es wahrscheinlich nicht möglich sein wird, eine Abfrage als Antwort auf jede Anforderung eines Client an einen Server zu senden, ist es möglich, wieder eine Abfrage an einen Client, der eine anschließende Anforderung stellt, zu senden, was mit den gestrichelten Linien, die die Blöcke 334 und 322 verbinden, angezeigt wird.
  • Abfragen können auch anschließend zu zufälligen Zeiten vom Server an den Client ausgegeben werden, um zu bestimmen, ob der Client nach dem Durchlaufen der Anfangsabfrage eine Bedingung geändert hat. Zum Beispiel, wenn die geprüfte Bedingung eine Bestimmung ist, ob der Client modifizierte Software verwendet, könnte es dem Client gelingen, eine Anfangsabfrage zu überstehen, aber er könnte anschließend beginnen, modifizierte Software zu verwenden. Durch Ausgabe einer oder mehrerer anschließender Abfragen während der Sitzung, kann solch eine Änderung an der verwendeten Software erkannt werden. Flussdiagramm 320a zeigt somit diese fakultative anschließende Abfrage mit der gestrichelten Linie, die die Blöcke 334 und 324 verbindet.
  • Bevorzugter Prozess für das Realisieren von Abfragen in einem Spiele-Netzwerk
  • 8 gibt ein Flussdiagramm 340 wieder, das die logische Abfolge der sowohl von dem Client als auch von dem Server ausgeführten Schritte im Spiele-Netzwerk der 5 zeigt. In der folgenden Diskussion wird angenommen, dass das Spielesystem 100t versucht, auf den Spieleserver 302 zuzugreifen (beide in 5 gezeigt). Es wird jedoch darauf hingewiesen, dass der unten beschriebene logische Prozess auch mit anderen netzwerkfähigen Spielesystemen verwendet werden kann, und dass die vorliegende Erfindung nicht auf die Verwendung mit dem Spielesystem 100 eingegrenzt ist.
  • In Hinsicht auf 8 sind die von der Spielekonsole ausgeführten logischen Schritte in einem mit einer gestrichelten Linie gezeichneten Kasten 342 gruppiert, während die vom Spieleserver ausgeführten logischen Schritte in einem mit einer gestrichelten Linie gezeichneten Kasten 344 gruppiert sind. Bevor eine Spielekonsole versucht, sich beim Spieleserver anzumelden, müssen mehrere Schritte ausgeführt werden. Gemäß Kasten 342 muss ein Benutzer einer Spielekonsole ein kompatibles Spiel erhalten, wie im Block 352 aufgezeigt. Das Spiel muss das Netzwerkspiel unterstützen. Entweder die Spielekonsole oder das Spiel enthalten auch einen öffentlichen Schlüssel zum Gebrauch dafür, der Spielekonsole zu ermöglichen, vom Spieleserver erhaltene Abfragen hinsichtlich ihrer Herkunft von einer vertrauenswürdigen Quelle zu authentisieren. Alle XBOXTM-Spielekonsolen enthalten einen öffentlichen Schlüssel entsprechend dem privaten Schlüssel, der von den XBOX LIVETM Spieleservern für das digitale Signieren der an die Spielekonsole gesendeten Abfragen verwendet wird. In einem Block 354 wählt ein Benutzer ein netzwerkfähiges Spiel aus und führt die Spiele-Disk (eine einseitige Double Layer-DVD-Platte für netzwerkfähige XBOXTM-Spiele) ein in die Spielekonsole. Vom Spiel-Startmenü wählt ein Benutzer eine Netzwerkspieloption in einem Block 356, der bewirkt, dass die Spielekonsole versucht, sich beim Spieleserver anzumelden, wie im Block 358 gezeigt.
  • Wenn wir jetzt zu den logischen Schritte kommen, die vom Server ausgeführt werden, wie in mit einer gestrichelten Linie gezeichneten Kasten 344 gezeigt, werden bevorzugt auch mehrere logische Prozesse ausgeführt vor dem Ausgeben einer Abfrage hinsichtlich einer Anmelde-Anforderung einer Spielekonsole bei der gegenwärtigen Erfindung. Im Block 346 wird mindestens eine Abfrage bevorzugt auf Grundlage von erwarteten Konsolenmerkmalen erstellt. Es wird darauf hingewiesen, dass Abfragen aus dem Stegreif („on the fly") erstellt werden könnten, was aber die Echtzeitleistung des Spieleservers wahrscheinlich unerwünscht reduzieren würde. Vorzugsweise wird eine Vielzahl von Abfragen vorab erstellt, so dass der Spieleserver verschiedene Abfragen wählen kann, um sie zu verschiedenen Zeiten auszugeben.
  • Mehrere verschiedene Arten von Abfragen sind in dieser bevorzugten Ausführungsform realisiert. Die erste Art der Abfrage wird eine Codeabfrage genannt. Eine Codeabfrage ist ein Segment ausführbaren Codes, das vom Spieleserver an die Spielekonsole gesendet wird. Die Spielekonsole führt das Codesegment aus, das aus vielen Maschinenanweisungen besteht und bewirkt, dass die Spielekonsole eine Antwort berechnet, die an den Spieleserver für den Vergleich mit einer erwarteten Antwort zurückgegeben wird. Abfragen sind so erstellt, dass der Spieleserver festlegt, was die richtige oder erwartete Antwort sein soll. In Bezug auf das Spielesysteme 100, wie oben beschrieben, sind die Merkmale von solchen Spielesystemen sehr genau definiert. Jede Änderung an der Konfiguration des Spielesystems 100, wie das Hinzufügen eines modifizierten Chips (d.h. eines "mod Chip"), die vorgenommen wird, um eine Änderung am Original-BIOS zu erzielen, kann leicht mit einer entsprechenden Abfrage wahrgenommen werden.
  • Besonders in Bezug auf Spielekonsolen kann eine Abfrage wahrnehmen, ob das ROM/Kernel Image der Spielekonsole modifiziert worden ist. Solche Änderungen werden gemacht, um Client Codeänderungen zu ermöglichen, und können einem Benutzer auch ermöglichen, modifizierte Spiele-Software zu verwenden um während des Spiels zu betrügen. Wenn ausreichend Zeit und Ressourcen gegeben sind, kann fast jede Abfrage vereitelt werden, wenn sie wiederholt ohne jede Änderung verwendet wird. Durch die Verwendung vieler verschiedener Abfragen, wobei entweder Parameter, die mit der Abfrage gesendet werden, und/oder der Inhalt des Codesegments und/oder der Teil des Speichers, der vom Codesegment untersucht wird, geändert werden, wird es jedoch sehr schwierig, eine modifizierte Spielekonsole zu verwenden, die nicht erkannt wird. Auch wenn ein Schalter verwendet wird, um den Original-BIOS-Chip in den Stromkreis der Spielekonsole wiedereinzuschalten, kann es, wenn man ein einziges Mal vergisst, den Originalchip wiedereinzuschalten, dazu führen, dass der Spielekonsole danach für immer verboten wird, sich an den Spieleserver für Online-Spiele anzuschließen. Durch das Verwenden mehrerer verschiedener Abfragen und das Erstellen von neuen Abfragen als Antwort auf die Abhilfen (work-arounds), die ausgegeben werden, um alte Abfragen zu umgehen, kann der Spieleserver wirksam Spielekonsolebenutzern, die durch das Modifizieren ihrer Spielekonsolen betrügen wollen, einen Schritt voraus bleiben.
  • Viele verschiedene Codeabfragen können vorab erstellt werden, und der Administrator des Spieleservers kann die allmähliche Freigabe dieser vorab erstellten Codeabfragen so kontrollieren, dass wahrscheinlich jeder organisierte Versuch, die Abfragen zu umgehen, vereitelt wird. Vorzugsweise wird die bestimmte zu irgendeiner gegebenen Zeit verwendete Abfrage zufällig aus einem Pool von verfügbaren Abfragen gewählt. Auf diese Weise werden zuvor gebrauchte Abfragen zufällig wieder verwendet, was es sehr schwierig macht, die erwartete Antwort vorwegzunehmen, die an den Spieleserver gesendet werden muss. Zum Beispiel kann eine neue Abfrage für jeden Tag des Jahres freigegeben werden. An dem Tag, an dem eine neue Abfrage zuerst gebraucht wird, ist es für eine Spielekonsole, die versucht, auf den Spieleserver zuzugreifen, wahrscheinlicher, auf die neue Abfrage zu stoßen, obwohl zuvor ausgegebene Abfragen auch an diesem Tag vom Spieleserver ausgegeben werden können, aber mit einer geringeren Häufigkeit. Eine solche zeitlich geplante, aber zufallsverteilte Freigabe von neuen und alten Abfragen führt zu unvorhersagbaren neuen Abfragen, auf die man so häufig stoßen wird, dass es sehr schwierig wird, eine Abfrage, die vom Spieleserver ausgegeben wurde, auf die man noch nicht gestoßen ist, oder die man nicht kennt, zu vermeiden.
  • Zusätzlich zu dem Erstellen einer Vielzahl von verschiedenen Codeabfragen kann jede Codeabfrage mit mehreren verschiedenen Parametern ausgegeben werden, die die Antwort verändern, je nachdem wie die Spielekonsole rechnet. Zum Beispiel wird eine bevorzugte Codeabfrage sein, einen Ein-Weg Hash vom Inhalt des Speichers auszuführen, der das BIOS der Spielekonsole enthält. Wie oben bemerkt, sind der SHA-1 Hash Algorithmus oder der MD5 Hash Algorithmus Beispiele für Ein-Weg Hash Algorithmen, die vorteilhaft verwendet werden können. Weil das BIOS der Spielekonsole bekannt ist und der Spiel-Code für jedes Spiel bekannt ist, hat der Spieleserver das erforderliche Wissen, was das Ergebnis der Anwendung eines Ein-Weg Hash Algorithmus auf einen bestimmten Teil des Speichers der Spielekonsole oder auf einen bestimmten Teil des Datenabschnitts des Speichers oder auf einen bestimmten Teil einer DVD sein muss, wenn die Spielekonsole versucht, sich beim Spieleserver anzumelden. Wenn dies die einzige Form der Codeabfrage wäre, die jemals vom Spieleserver ausgegeben würde, könnte ein entschlossener Benutzer erfolgreich den verwendeten Ein-Weg Hash Algorithmus bestimmen, und könnte bestimmen, was die erwartete Antwort, erzeugt von einer unveränderten Spielekonsole, wäre. Um diese Codeabfrage zu vereiteln, würde eine modifizierte Spielekonsole angewiesen, auf jede Abfrage mit der vorherbestimmten Antwort zu antworten.
  • Jedoch kann der Spieleserver durch das Modifizieren der mit der Codeabfrage von Zeit zu Zeit gesendeten Parameter die Schwierigkeiten bedeutend steigern, zu bestimmen, was die erwartete Antwort sein soll. Zum Beispiel ändert sich die erwartete Antwort, wenn die Spielekonsole angewiesen wird, den Hash Algorithmus über einen anderen Teil des Speichers auszuführen. Durch das einfache Ändern des Beginn- und Endbereichs im Speicher der Spielekonsole, worauf ein Hash ausgeführt werden soll, wie in der vom Spieleserver ausgegebenen Abfrage vorgegeben ist, wird die erwartete Antwort erheblich verändert. Sogar das Ändern eines einzigen Bit im Teil des Speichers der Spielekonsole, worauf ein Hash ausgeführt wird, verursacht eine wesentliche Änderung im Ergebnis des Ein-Weg Hash Algorithmus.
  • Ein anderer Parameter, der verwendet werden kann, um die Schwierigkeit zu steigern, eine Codeabfrage basierend auf einem Ein-Weg Hash des Speichers der Spielekonsole zu überwinden, sollte verschiedene Startwert-Initialisierungsvektoren enthalten, um den Ein-Weg Hash eingangs zu speisen. Die verschiedenen Abfragen können auf diese Weise verschiedene initialisierende Vektoren enthalten, die in einem Teil des Speichers enthalten sind, auf den ein Hash ausgeführt werden soll, um das erwartete Ergebnis zu ändern. Auch kann der Hash-Code in verschiedenen Abfragen modifiziert werden. Zum Beispiel könnte der Code fordern, dass eine XOR Operation auf einen Teil des Speichers ausgeführt wird, bevor ein Hash durchgeführt wird.
  • Es wird darauf hingewiesen, dass der Speicherbereichsparameter, der Startwert-/Initialisierungsparameter und die Änderungen am Code, die realisiert sind, wie oben diskutiert, lediglich exemplarisch für die verschiedenen Parameter sind, die in den vom Spieleserver gesendeten Abfragen verwendet werden können und es ist nicht beabsichtigt, dass sie die Erfindung einschränken. Durch das Einfügen von Parametern in eine Codeabfrage kann der Spieleserver deutlich das Ziel erreichen, die Anzahl von an eine Spielekonsole gesendeten verschiedenen Codeabfragen zu steigern.
  • Andere Teile des Speichers der Spielekonsolen können auch bei Codeabfragen verwendet werden, die verlangen, dass eine Spielekonsole einen Ein-Weg Hash berechnet. Der Hash kann auf dem RAM Speicher, dem ROM Speicher, der Festplatte, oder dem DVD-Platten Speicher der Spielekonsole, oder auf Kombinationen von allen basieren, oder auf ausgewählten Teilen eines jeden solchen Speichers. Eine Spielekonsole, die unveränderten Inhalt im Speicher enthält, gibt eine berechnete Antwort zurück, die zur vom Spieleserver erwarteten Antwort passt, weil der Spieleserver weiß, was im RAM Speicher, im ROM Speicher, auf der Festplatte oder auf dem DVD-Platten Speicher einer Spielekonsole sein sollte. Im Kontext von Spielekonsolen und der Spielesoftware ist solches Wissen leicht bestimmbar. Eine falsche Antwort von einer Spielekonsole enthüllt, dass eine Änderung an einem oder mehreren der RAM Speicher, ROM Speicher, Festplatte oder DVD-Platten Speicher der Spielekonsole (je nachdem welcher Speicher im Einklang mit der Abfrage einem Hash unterzogen wurde) vorgenommen wurde. Einen Ein-Weg Hash zu verwenden, macht es unmöglich, nur ein einziges Bit des erwarteten Inhalts zu ändern, ohne dass es wahrgenommen würde.
  • Die Teile der Spielekonsolen, die von solchen Codeabfragen geprüft werden können, sind praktisch unbegrenzt. Bevorzugt werden Codeabfragen erstellt, um ausdrücklich Codesegmente des Spiels zu überprüfen, die modifiziert worden sein könnten. Segmente des Spiel-Codes können auch überprüft werden, um sich zu vergewissern, dass keine Vorrichtungen des Haifisch-Typs verwendet werden, um Werte wie "die Anzahl von Leben, die Sie übrig haben" oder "die verfügbare Größe einer Energie-Säule" zu modifizieren. Die Festplatte der Spielekonsole kann auch überprüft werden, um wahrzunehmen, ob eine Änderung an ausgewählten Dateien gemacht worden ist, wie Änderungen an einem Videotreiber, die dem Spieler der Spielekonsole erlauben, durch Wände zu sehen. Eine an die Hardware der Spielekonsole gerichtete Codeabfrage kann bestimmen, ob die Hardware der Spielekonsole modifiziert worden ist, etwa durch hinzuzufügen einer zusätzlichen oder einer größeren Festplatte.
  • Eine andere Form der Abfrage wird eine DVD-Abfrage genannt. Eine DVD-Abfrage prüft, dass Zufalls-Regionen der originalen, berechtigten Kopie des Softwaremediums, worauf das Spiel verteilt wurde, vorhanden sind und sich nicht von dem unterscheiden, was der Spieleserver erwartet. Das Ziel dieser Abfrage ist nicht so sehr, Spielekonsolebenutzer zu erkennen, die ihre Spielekonsole modifiziert haben, um zu betrügen, sondern vielmehr das Vorhandensein von Raub-Software zu überprüfen. Raub-Software ist von einer berechtigten DVD auf Compact Disc kopiert, wobei nur die wesentlichen Teile des Spiel-Programms, das auf der ursprünglichen berechtigten DVD war, gespeichert werden. Es ist viel billiger, Daten einer DVD auf eine CD-ROM zu kopieren, und die Ausrüstung, um Daten auf CD-ROM zu kopieren, ist viel weiter verbreitet und breiter verfügbar. Da Dual Layer DVDs im Vergleich zu CDs bedeutend mehr Daten aufnehmen können (9 Gigabyte gegen etwa 700 Megabyte), sind viele Spiele nicht ausreichend groß, eine DVD völlig zu füllen. Der Freiraum solch einer DVD ist mit Zufalls-Bytes gefüllt. Raubkopien von auf CD-ROM kopierten Spiele-DVDs enthalten diese zusätzlichen Zufalls-Bytes nicht.
  • Eine DVD-Abfrage fordert die Spielekonsole auf, einen Ein-Weg Hash von einem Segment auf der DVD zu berechnen (wobei dieses Segment wenigstens einen Anteil der auf der DVD enthaltenen Zufalls-Bytes enthält). Wenn eine Spielekonsole eine unberechtigte, auf eine CD-ROM gebrannte Kopie statt der Original-DVD verwendet, wird die von der Spielekonsole berechnete Antwort falsch sein, und die Abfrage erkennt die Gegenwart der Raub-Kopie anstatt der originalen, berechtigten Kopie des Spiel auf DVD.
  • Eine Möglichkeit, um diese Abfrage zu umgehen, wäre, eine genaue Kopie der DVD auf einer Festplatte in der Spielekonsole abzulegen. Jedoch kann eine entsprechende Codeabfrage verwendet werden, um Hardwareänderungen wahrzunehmen, wie das Hinzufügen einer großen Festplatte und eines modifizierten BIOS, was es einem Online-Spiel erlauben würde, online gespielt zu werden. Dementsprechend ist es besser, eine Code-Abfrage, um eine modifizierte Spielekonsole zu erkennen, mit einer DVD-Abfrage, um Raub-Software zu erkennen, zu verbinden.
  • Es wird darauf hingewiesen, dass dieser Mechanismus nicht verwendbar ist, um raubkopierte DVD-Platten zu ermitteln, die eine Bit-für-Bit Kopie eines vollständigen Original-DVD-Image darstellen. Die hierzu benötigte Ausrüstung jedoch, um eine einseitige Dual Layer DVD mit 9 Gigabyte Volumen herzustellen, ist so kostspielig, dass damit die meisten Menschen davon abgehalten werden, solche Kopien anzufertigen. Sollten die Kosten der benötigten Ausrüstung zu einem gewissen Zeitpunkt so stark fallen, dass das Duplizieren von DVDs einfach wird, kann eine andere DVD-Abfrage eingesetzt werden, auf Basis von absichtlich während des Herstellungsprozesses von Spiele-DVDs in berechtigte DVDs eingebauten Fehlern. Solche Originalplatten können mit absichtlichen Fehlern in bestimmten nicht-kritischen Bereichen der Platte hergestellt werden. Jene Fehler liefern einen Speicherlese-Fehler, wenn ein Versuch gemacht wird, diesen Teil der Platte zu lesen. Eine Abfrage könnte absichtlich nach dem Vorhandensein von Lese-Fehlern suchen, die erwartet würden, wenn das originale, berechtigte Medium gelesen wird, und wenn keine Lese-Fehler in den Bereichen auftreten, von denen bekannt ist, dass sie Fehler enthalten, dann würde das erwartete Ergebnis nicht erzielt und der Spieleserver würde entsprechende Maßnahmen ergreifen.
  • Wenn eine Abfrage ausgeführt wird, sollte die bestimmte zu verwendende Byte-Region, auf die der Ein-Weg Hash ausgeführt werden soll, Teil der vom Spieleserver in der Abfrage erhaltenen Parameter sein. Der Code (d.h. der Ein-Weg Hash Algorithmus), um die Antwort tatsächlich zu berechnen, kann im ROM auf der Spielekonsole gespeichert werden (oder könnte auf den Spiele-Medien d.h. auf der Spiele-DVD gespeichert werden), statt in der vom Spieleserver gesendete Abfrage enthalten zu sein. Während dieser Ansatz die Größe jeder vom Spieleserver ausgegebenen Abfrage reduzieren würde, zeigt er ein Problem, da der Code, um den Ein-Weg Hash Algorithmus zu realisieren, jetzt relativ leicht von einem Hacker entdeckt werden kann. Dennoch wäre es durch das Wechseln von in der Abfrage gesendeten anderen Parametern immer noch für eine Spielekonsole schwierig, ein gefälschtes erwartetes Ergebnis zurückzuschicken anstelle eines unmittelbar berechneten Ergebnisses, das nicht zum erwarteten Ergebnis passt.
  • DVD-Abfragen können in Verbindung mit Codeabfragen innerhalb derselben Abfrage-Antwort-Folge verwendet werden, um sowohl Änderungen an der Spielekonsole als auch Piraterie in einer einzelnen Abfrage- und Antwort-Folge wahrzunehmen. Die DVD-Abfrage und die Codeabfrage können zusammen verwendet werden, um zu ermitteln, ob irgendwelche Veränderungen an dem Code, der die Spielekonsole kontrolliert, gemacht wurden, was dazu führen könnte, die DVD-Abfrage zu umgehen, indem auf Daten eines anderen Mediums als DVD ein Hash ausgeführt wird, wie z.B. auf eine Bit-für-Bit Kopie des Spieleprogramms, die auf der Festplatte gespeichert ist. Während die Daten von der Festplatte verwendet werden könnten, um die DVD-Abfrage erfolgreich zu vereiteln, nimmt die Codeabfrage die Änderung an dem BIOS wahr, die es der Spielekonsole ermöglicht, ein Spiel von auf der Festplatte gespeicherter statt auf der DVD gespeicherter Software zu spielen. Damit wird verhindert, dass die veränderte Spielekonsole die kombinierte Abfrage überwindet.
  • Die oben beschriebene DVD-Abfrage ist ausdrücklich dafür entworfen, unberechtigte Kopien von Software zu ermitteln, und ist eindeutig auf Nicht-Spieleumgebungen anwendbar, wo die Entdeckung von Software-Piraterie gewünscht ist. Jedoch tritt die Entdeckung unbefugter Software mit dieser Methode nicht zutage, es sei denn, der Benutzer der Software wünscht Zugang zu einem Server, der die vorliegende Erfindung realisiert. Obwohl die Codeabfragen und die DVD-Abfragen, die oben beschrieben wurden, Ein-Weg Hash Algorithmen verwenden, können Abfragen auf anderen Verfahren basieren, durchgeführt von ausführbarem Code, der vom Server an den Client gesendet wurde, und sind somit nicht auf Hash Algorithmen beschränkt. Die Verwendung von Ein-Weg Hash Algorithmen ist lediglich beispielhaft und schränkt die gegenwärtige Erfindung nicht ein.
  • Beziehen wir uns noch einmal auf Flussdiagramm 340: in einem Block 348 wird jede vorab erstellte Abfrage mit einem privaten Schlüssel signiert. Die Verwendung des privaten Schlüssels wird, obwohl nicht erforderlich, bevorzugt. In der vorliegenden Erfindung wird ein Codesegment vom Server an den Client gesendet. Im Allgemeinen, wenn irgendeine Computervorrichtung ausführbaren Code von einer Außenquelle erhält, will der Benutzer dieser Computervorrichtung sicher sein, dass die Außenquelle vertrauenswürdig ist. Da jede Abfrage mit einem privaten Schlüssel signiert wird, der ausschließlich nur dem Spieleserver zugänglich ist, und jedes Spiel, das zur Benutzung in Verbindung mit dem Spieleserver (oder der Spielekonsole) freigegeben ist, den entsprechenden öffentlichen Schlüssel enthält, kann der Benutzer der Spielekonsole sicher sein, dass der ausführbare Code, den er vom Spieleserver empfangen hat, von einer vertrauenswürdigen Quelle stammt. Im Block 350 können Parameter für jede Abfrage gesetzt werden, um zusätzliche Abfragen zu generieren und Antworten für jede Abfrage und jede Abfrage, die von solchen Parametern modifiziert ist, ist definiert.
  • Beziehen wir uns noch einmal auf Block 358: die Spielekonsole versucht, sich beim Spieleserver anzumelden. Als Reaktion wählt der Spieleserver eine der vorerstellten Abfragen und eine Gruppe von Parametern in einem Block 360. In einem Block 362 sendet der Spieleserver die signierte Abfrage an die Spielekonsole. In einem Block 364, verwendet die Spielekonsole den öffentlichen Schlüssel, der im Speicher der Spielekonsole enthalten ist, um sicherzustellen, dass die Unterschrift des Spieleserver authentisiert ist, bevor sie die vom Spieleserver an die Spielekonsole gesandte Abfrage ausführt. Wenn die Signatur nicht mit dem öffentlichen Schlüssel authentisch ist, wird der Abfrage-Code vorzugsweise nicht ausgeführt. Jedoch wird die Tatsache, dass die Signaturüberprüfung fehlschlug, dem Server stillschweigend als Teil der Antwort zurückgeschickt. Der Grund dafür, dies zu tun, ist, dass ein Scheitern der richtigen Authentisierung der Signatur des Abfrage-Codes normalerweise ein Hinweis auf die Anwesenheit eines veränderten BIOS (d.h. dass der öffentliche Schlüssel verändert wurde) ist, und dieses Ergebnis sollte als eine falsche Antwort betrachtet werden, so wie jede andere Antwort, die mit der erwarteten Antwort nicht übereinstimmt. Im Block 366 führt die Spielekonsole den Code mit den in die Abfrage einbezogenen Parametern aus, um eine Antwort zu berechnen. Im Block 368 sendet die Spielekonsole die berechnete Antwort auf den Spieleserver.
  • Im Entscheidungsblock 370 beurteilt der Spieleserver die Antwort der Spielekonsole und bestimmt, ob die Antwort zu einer erwarteten Antwort passt. Die erwartete Antwort wird von der jeweiligen Abfrage bestimmt, die in Block 360 gewählt wurde. Daher muss der Server die jeweilige Abfrage aufzeichnen, die zwischen Block 360 und Block 370 gewählt wurde. Wenn keine Antwort vom Client empfangen wird, behandelt der Server das Ausbleiben einer Antwort, als ob er eine falsche Antwort vom Client erhalten hätte. Jedoch ist es aufgrund der Möglichkeit, dass der Client ungewollt genau zu diesem Zeitpunkt vom Server getrennt werden könnte, besser, zugunsten des Client weitere Möglichkeiten einzuräumen, bis mehrmals keine Antwort aufgetreten ist. Obwohl nicht im Flussdiagramm aufgezeigt, kann der Server alle aufeinander folgenden Versäumnisse eines bestimmten Client, auf eine Abfrage zu antworten, aufzeichnen, so dass, wenn der Client in einer vordefinierten Anzahl von Fällen zu antworten versäumt hat, eine vordefinierte Aktion vom Server ergriffen wird. In einem Block 374 hat der Spieleserver bestimmt, dass die Spielekonsole die erwartete Antwort geliefert hat, und die Spielekonsole wird beim Spieleserver angemeldet, was dem Benutzer der Spielekonsole ermöglicht, Netzwerkspiel zu erfahren.
  • Ein fakultativer logischer Schritt ist mit Entscheidungsblock 376 gekennzeichnet, worin der Spieleserver an irgendeinem Punkt während des Spiels bestimmt, ob eine neue Abfrage an die Spielekonsole ausgegeben werden soll. Wenn keine neue Abfrage ausgegeben werden soll, endet der logische Prozess. Wenn es bestimmt worden ist, dass eine neue Abfrage ausgegeben werden soll, kehrt die Logik zurück zum Block 360, und eine neue Abfrage wird vom Spieleserver an die Spielekonsole gesendet. Derzeit ist es nicht vorstellbar, dass ein Benutzer von einer Konfiguration auf eine Alternativkonfiguration während des Spiels umschalten kann, ohne das System neu zu starten. Jedoch wenn eine Abhilfe entwickelt sein sollte, um einen Wechsel der Konfigurationen während des Spiels („hot swap") zu ermöglichen, könnte eine solche Abhilfe dadurch vereitelt werden, dass Abfragen während einer Spielsitzung zufällig gesendet werden, um jede Änderung an der Spiel- oder Spielekonsolenkonfiguration zu erkennen. Beziehen wir uns noch einmal auf den Entscheidungsblock 370: wenn der Spieleserver bestimmt, dass die Spielekonsole eine falsche Antwort zurückgegeben hat, dann führt der Spieleserver eine vordefinierte Aktion im Block 372 aus. Sobald die vordefinierte Aktion ausgeführt ist, ist der logische Prozess vorbei.
  • In einer bevorzugten Ausführungsform soll die vordefinierte Aktion die logische Verbindung zwischen der Spielekonsole und dem Spieleserver sofort sperren. Weiterhin zeichnet der Spieleserver bevorzugt die Kennzeichnung der Spielekonsole auf, der der Zugang versagt worden ist, und verweigert, irgendwelche zukünftigen Anmeldeversuche von dieser bestimmten Spielekonsole zu akzeptieren. Es ist davon auszugehen, dass dieser Ansatz besonders wirkungsvoll ist, Benutzer davon abzuhalten, ihre Spielekonsole zu modifizieren, selbst wenn die Änderung einen Schalter enthält, der ihnen ermöglicht, ihre Spielekonsole selektiv entweder in eine Originalkonfiguration zu überführen, die eine Abfrage überstehen würde, oder in eine andere modifizierte Konfiguration zu überführen. Es wird erwartet, dass ein häufiger Benutzer des Spieleservers irgendwann vergisst, solch einen Schalter richtig in die Originalkonfigurations-Position zu schalten. Irgend ein solcher Fehler würde zum dauerhaften Verbot für diese Spielekonsole führen, auf den Spieleserver zuzugreifen. Es wird darauf hingewiesen, dass jedoch auch andere vordefinierte Aktionen ausgeführt werden können. Zum Beispiel kann der Spieleserver lediglich das Aufkommen von modifizierten Spielekonsolen protokollieren, die über einen Zeitraum versuchen, Zugang zum Spieleserver zu erhalten, um das Ausmaß von modifizierten Konsolen zu bestimmen, die im Netzwerk verwendet werden. Der Spieleserver kann dem Benutzer der Spielekonsole eine oder mehrere Warnungen erteilen, dass der Zugang von modifizierten Konsolen nicht erlaubt ist, bevor die Spielekonsole vom Spieleserver dauerhaft ausgeschlossen wird. Nach dem Erhalten solch einer Warnung kann der Spielekonsolebenutzer der Spielekonsole dauerhaft ihre Originalkonfiguration zurückgeben und danach auf den Spieleserver zugreifen.
  • Obwohl die gegenwärtige Erfindung beschrieben worden ist, sie in Verbindung mit den bevorzugten Ausführungsformen praktisch umzusetzen und den Modifikationen hierzu, verstehen jene, die in diesen Fertigkeiten im üblichen Maße geschult sind, dass viele andere Modifikationen an der Erfindung gemacht werden können.

Claims (24)

  1. Verfahren, das eine Server-Computervorrichtung (282a) in die Lage versetzt, einen Zustand auf einer Client-Computervorrichtung (100, 284) zu erfassen, wobei es die folgenden Schritte umfasst: (a) Senden einer Abfrage (324) von der Server-Computervorrichtung (282a) zu der Client-Computervorrichtung (100, 284); (b) automatisches Bestimmen einer Antwort auf die Abfrage (324) auf der Client-Computervorrichtung (100, 284) durch Bestimmen einer Charakteristik oder Bedingung des Client bezüglich eines angegebenen Abschnitts eines Speichers, der für die Client-Computervorrichtung (100, 284) zugänglich ist; (c) Senden der Antwort von der Client-Computervorrichtung (100, 284) zu der Server-Computervorrichtung (282a); (d) Vergleichen der von der Client-Computervorrichtung (100, 284) empfangenen Antwort mit einer erwarteten Antwort auf der Server-Computervorrichtung (282a); (e) Auslösen einer vordefinierten Aktion auf der Server-Computervorrichtung (282a), wenn die von der Client-Computervorrichtung (100, 284) empfangene Antwort nicht mit der erwarteten Antwort übereinstimmt oder wenn keine Antwort empfangen wird, wobei dies anzeigt, dass eine erwartete Bedingung auf der Client-Computervorrichtung (100, 284) nicht existiert; (f) Zulassen weiterer Interaktion mit der Client-Computervorrichtung (100, 284), wenn die von der Client-Computervorrichtung (100, 284) empfangene Antwort mit der erwarteten Antwort übereinstimmt, wobei diese anzeigt, dass eine erwartete Bedingung der Client-Computervorrichtung (100, 284) existiert, und gekennzeichnet durch (g) Ändern der durch die Server-Computervorrichtung (282a) zu der Client-Computervorrichtung (100, 284) gesendeten Abfrage (324), wobei die Abfrage (324) so geändert wird, dass sie einen anderen angegebenen Abschnitt des Speichers anzeigt, und die geänderte Abfrage von der Server-Computervorrichtung (282a) zu der Client-Computervorrichtung (100, 284) entweder zu einer anderen Zeit während einer einzelnen Verbindungs-Session zwischen der Server-Computervorrichtung (282a) und der Client-Computervorrichtung (100, 284) oder während einer folgenden Verbindungs-Session zwischen der Server-Computervorrichtung (282a) und der Client-Computervorrichtung (100, 284) gesendet wird.
  2. Verfahren nach Anspruch 1, wobei Bestimmen einer Charakteristik oder einer Bedingung des Clients bezüglich eines angegebenen Speicherabschnitts einen Einweg-Hashing-Algorithmus des angegebenen Speicherabschnitts umfasst.
  3. Verfahren nach Anspruch 1, wobei die Abfrage (324) einen Code zum Implementieren eines Einweg-Hashing-Algorithmus und Befehle umfasst, die angeben, welcher Speicherabschnitt, der für die Client-Computervorrichtung (100, 284) zugänglich ist, Hashing unter Verwendung des Einweg-Hashing-Algorithmus unterzogen werden soll, um die zu der Server-Computervorrichtung (282a) zu sendende Antwort zu bestimmen.
  4. Verfahren nach Anspruch 1, wobei die Abfrage (324) Befehle umfasst, die angeben, welcher Abschnitt des Speichers, der für die Client-Computervorrichtung (100, 284) zugänglich ist Hashing unter Verwendung eines Einweg-Hashing-Algorithmus, der bereits auf der Client-Computervorrichtung (100, 284) resident ist, unterzogen werden soll, um die zu der Server-Computervorrichtung (282a) zu sendende Antwort zu bestimmen.
  5. Verfahren nach Anspruch 4, wobei eine Anfrage (324) Befehle, die angeben, welcher Abschnitt des Speichers, der für die Client-Computervorrichtung (100, 284) zugänglich ist, Hashing unterzogen werden soll, sowie wenigstens einen Parameter umfasst, der zum weiteren Modifizieren der erwarteten Antwort konfiguriert ist.
  6. Verfahren nach einem der vorangehenden Ansprüche, wobei der angegebene Speicherabschnitt zum Speichern von Maschinenbefehlen zum Spielen eines elektronischen Spiels verwendet wird und das Bestimmen einer Charakteristik oder einer Bedingung des Clients anzeigt, dass die Maschinenbefehle zum Spielen des Spiels nicht modifiziert worden sind, um einem Benutzer der Client-Computervor richtung (100, 284) beim Spielen des elektronischen Spiels einen Vorteil zu verschaffen.
  7. Verfahren nach einem der Ansprüche 1 bis 4, wobei die Maschinebefehle zum Spielen eines elektronischen Spiels mit der Client-Computervorrichtung (100, 284) in einem ersten Abschnitt eines nichtflüchtigen Speicher-Mediums gespeichert sind, und der angegebene Speicherabschnitt ein anderer Abschnitt des nichtflüchtigen Speichermediums ist.
  8. Verfahren nach Anspruch 7, wobei erwartet wird, dass der andere Abschnitt des nichtflüchtigen Speichers für die Client-Computervorrichtung (100, 284) nicht lesbar ist, um zu bestätigen, dass der nichtflüchtige Speicher eine authorisierte Kopie der Maschinenbefehle zum Spielen eines elektronischen Spiels enthält.
  9. Verfahren nach Anspruch 1, wobei der angegebene Abschnitt des Speichers wenigstens einen Teil eines Grund-Eingabe-Ausgabe-Systems für die Client-Computervorrichtung (100, 284) speichert und die erwartete Bedingung nicht erfüllt ist, wenn ein modifiziertes Grund-Eingabe/Ausgabe-System auf der Client-Computervorrichtung (100, 284) verwendet worden ist.
  10. Verfahren nach Anspruch 1, wobei der angegebene Abschnitt des Speichers einen Abschnitt eines nichtflüchtigen Speichermediums enthält, das für die Client-Computervorrichtung (100, 284) zugänglich ist, und wobei die erwartete Bedingung erfüllt ist, wenn der Abschnitt des nichtflüchtigen Speichermediums für die Client-Computervorrichtung (100, 284) nicht lesbar ist.
  11. Verfahren nach einem der vorangehenden Ansprüche 1, das des Weiteren den Schritt umfasst, in dem die Client-Computervorrichtung (100, 284) eine zweite Antwort bezüglich einer Bedingung eines nichtflüchtigen Speichermediums bestimmt, das für die Client-Computervorrichtung (100, 284) zugänglich ist, nachdem eine erste Antwort für die Bedingung auf der Client-Computervorrichtung (100, 284) bestimmt worden ist, wobei die Antwort, die zur der Server-Computervorrichtung (282a) gesendet wird, die erste Antwort und die zweite Antwort umfasst.
  12. Verfahren nach einem der vorangehenden Ansprüche, wobei die weitere Interaktion zwischen der Server-Computervorrichtung (282a) und der Client-Computervorrichtung (100, 284) den Schritt umfasst, in dem ein Benutzer der Client-Computer vorrichtung (100, 284) in die Lage versetzt wird, am Spielen eines elektronischen Spiels online mit wenigstens einem anderen Benutzer einer anderen Client-Computervorrichtung (100, 284) teilzunehmen.
  13. Verfahren nach Anspruch 12, wobei die Schritte von Anspruch 1, während des Spielens des elektronischen Spiels ausgeführt werden.
  14. Verfahren nach einem der vorangehenden Ansprüche, wobei die Server-Computervorrichtung (282a) einen Netzwerk-Spieldienst bereitstellt.
  15. Verfahren nach Anspruch 14, wobei die vordefinierte Aktion an der Server-Computervorrichtung (282a) den Schritt umfasst, in dem die Server-Computervorrichtung (282a) veranlasst wird, anschließend wenigstens die Client-Computervorrichtung (100, 284) oder einen Benutzer der Client-Computervorrichtung (100, 284) von der Teilnahme an aktuellen oder folgenden elektronischen Spielen über das Netzwerk unter Verwendung der Server-Computervorrichtung (282a) auszuschließen.
  16. Verfahren nach einem der vorangehenden Ansprüche, wobei die vordefinierte Aktion auf der Server-Computervorrichtung (282a) darin besteht, eine Verbindung der Client-Computervorrichtung (100, 284) mit der Server-Computervorrichtung (282a) zu beenden, wenn die von der Client-Computervorrichtung (100, 284) empfangene Antwort nicht mit der erwarteten Antwort übereinstimmt, oder wenn keine Antwort empfangen wird, wobei dies anzeigt, dass eine erwartete Bedingung auf der Client-Computervorrichtung (100, 284) nicht erfüllt ist.
  17. Server-Computervorrichtung (282a), die eingesetzt wird, um einen Dienst für eine Vielzahl von Client-Computervorrichtungen (100, 284) bereitzustellen, die über ein Netzwerk mit der Server-Computervorrichtung (282a) verbunden sind, wobei die Server-Computervorrichtung (282a) eine Bedingung auf einer Client-Computervorrichtung (100, 284) erfasst und sie umfasst: (a) einen Speicher (24, 27, 29, 31), in dem eine Vielzahl von Maschinenbefehlen gespeichert sind; (b) eine Netzwerkschnittstelle (53) zur Verbindung mit der Vielzahl von Client-Computervorrichtungen (100, 284); (c) einen Prozessor (21), der mit dem Speicher (24, 27, 29, 31) und mit den Netzwerkschnittstellen (53) verbunden ist, wobei der Prozessor (21) so eingerichtet ist, dass er: (I) eine Abfrage (324) zu einer Client-Computervorrichtung (100, 284) sendet, wobei die Abfrage (324) die Client-Computervorrichtung (100, 284) veranlasst, eine Charakteristik oder eine Bedingung des Client bezüglich eines angegebenen Abschnitts eines Speichers, der für die Client-Computervorrichtung (100, 284) zugänglich ist, zu bestimmen, um eine von der Client-Computervorrichtung (100, 284) zu der Server-Computervorrichtung (282a) zu sendende Antwort zu bestimmen; (II) eine Antwort von der Client-Computervorrichtung (100, 284) empfängt, die die Bedingung an der Client-Computervorrichtung (100, 284) anzeigt; (III) die Antwort mit einer erwarteten Antwort (330) für die Client-Computervorrichtung (100, 284) vergleicht; und (IV) eine vordefinierte Aktion (331) ausführt, wenn die Antwort nicht mit der erwarteten Antwort übereinstimmt oder wenn die Antwort nicht empfangen wird und ansonsten den Dienst für die Client-Computervorrichtung (100, 284) über das Netzwerk bereitstellt; dadurch gekennzeichnet, dass der Prozessor (21) die Maschinenbefehle ausführt, um weiterhin die Funktion zu erfüllen, die einschließen: (V) Ändern der Abfrage mit der Zeit, so dass die Client-Computervorrichtung (100, 284) eine Charakteristik oder eine Bedingung des Client bezüglich eines anderen angegebenen Abschnitts des Speichers immer dann bestimmt, wenn die Abfrage geändert wird, um so die erwartete Antwort zu ändern.
  18. Server nach Anspruch 17, wobei die Abfrage (324) einen Code zum Implementieren eines Einweg-Hashing-Algorithmus und Befehle umfasst, die angeben, welcher Speicherabschnitt, der für die Client-Computervorrichtung zugänglich ist, Hashing unter Verwendung des Einweg-Hashing-Algorithmus unterzogen werden soll, um die zu der Server-Computervorrichtung (282a) zu sendende Antwort zu bestimmen.
  19. Server nach Anspruch 17 oder 18, wobei die Abfrage (324) Befehle umfasst, die angeben, welcher Abschnitt des Speichers, der für die Client-Computervorrichtung (100, 284) zugänglich ist, Hashing unter Verwendung eines Einweg-Hashing-Algorithmus unterzogen werden soll, der bereits auf der Client-Computervorrichtung (100, 284) resident ist, um die zu der Server-Computervorrichtung (282a) zu sendende Antwort zu bestimmen.
  20. Server nach einem der Ansprüche 17 bis 19, wobei die Abfrage (324) Befehle, die angeben, welcher Abschnitt des Speichers, der für die Client-Computervorrichtung (100, 284) zugänglich ist, Hashing unterzogen werden soll, sowie wenigstens einen Parameter umfasst, der zum weiteren Modifizieren der erwarteten Antwort konfiguriert ist.
  21. Server nach Anspruch 20, wobei der wenigstens eine Parameter, der in der Abfrage (324) enthalten ist, mit der Zeit geändert wird, so dass sich die erwartete Antwort ändert.
  22. Server nach einem der Ansprüche 17 bis 21, wobei die durch die Client-Computervorrichtung (100, 284) bestimmte Antwort anzeigt, ob ein Grund-Eingabe/Ausgabe-System, das an der Client-Computervorrichtung (100, 284) eingesetzt wird, gegenüber einem erwarteten Zustand modifiziert worden ist.
  23. Server nach einem der Ansprüche 17 bis 22, wobei die durch die Client-Computervorrichtung (100, 284) bestimmte Antwort anzeigt, ob ein ausführbarer Code, der in einem nichtflüchtigen Speicher gespeichert ist, der für die Client-Computervorrichtung (100, 284) zugänglich ist, modifiziert worden ist, so dass sie sich von einem erwarteten Zustand unterscheidet.
  24. Speichermedium zur Verwendung mit einer Server-Computervorrichtung (282a), das Maschinenbefehle zum Implementieren der Schritte (a), (d), (g) und einem der Schritte (e) oder (f) nach Anspruch 1 aufweist.
DE60311625T 2002-11-09 2003-09-19 Auf dem Challenge-Response Prinzip basierendes Detektionsverfahren zwischen einem Server und einem Client und dazugehörige Speichermedia Expired - Lifetime DE60311625T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US293228 2002-11-09
US10/293,228 US7287052B2 (en) 2002-11-09 2002-11-09 Challenge and response interaction between client and server computing devices

Publications (2)

Publication Number Publication Date
DE60311625D1 DE60311625D1 (de) 2007-03-22
DE60311625T2 true DE60311625T2 (de) 2007-11-22

Family

ID=32107671

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60311625T Expired - Lifetime DE60311625T2 (de) 2002-11-09 2003-09-19 Auf dem Challenge-Response Prinzip basierendes Detektionsverfahren zwischen einem Server und einem Client und dazugehörige Speichermedia

Country Status (5)

Country Link
US (2) US7287052B2 (de)
EP (1) EP1418725B1 (de)
JP (1) JP2004164640A (de)
AT (1) ATE353516T1 (de)
DE (1) DE60311625T2 (de)

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10204229B4 (de) * 2002-01-31 2006-11-09 J. S. Staedtler Gmbh & Co. Kg Drucker oder sonstiges automatisches Drucksystem mit zusätzlichem Steuergerät und Steuergerät hierfür
US7386878B2 (en) * 2002-08-14 2008-06-10 Microsoft Corporation Authenticating peer-to-peer connections
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US8549574B2 (en) 2002-12-10 2013-10-01 Ol2, Inc. Method of combining linear content and interactive content compressed together as streaming interactive video
US9108107B2 (en) 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US8366552B2 (en) 2002-12-10 2013-02-05 Ol2, Inc. System and method for multi-stream video compression
US9061207B2 (en) 2002-12-10 2015-06-23 Sony Computer Entertainment America Llc Temporary decoder apparatus and method
US8711923B2 (en) 2002-12-10 2014-04-29 Ol2, Inc. System and method for selecting a video encoding format based on feedback data
US9446305B2 (en) 2002-12-10 2016-09-20 Sony Interactive Entertainment America Llc System and method for improving the graphics performance of hosted applications
US9077991B2 (en) 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
US8526490B2 (en) 2002-12-10 2013-09-03 Ol2, Inc. System and method for video compression using feedback including data related to the successful receipt of video content
US9138644B2 (en) * 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US10201760B2 (en) 2002-12-10 2019-02-12 Sony Interactive Entertainment America Llc System and method for compressing video based on detected intraframe motion
US9192859B2 (en) 2002-12-10 2015-11-24 Sony Computer Entertainment America Llc System and method for compressing video based on latency measurements and other feedback
US8964830B2 (en) 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
US9314691B2 (en) 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
US7203965B2 (en) * 2002-12-17 2007-04-10 Sony Corporation System and method for home network content protection and copy management
US8230084B2 (en) * 2002-12-17 2012-07-24 Sony Corporation Network management in a media network environment
EP1441275A1 (de) * 2003-01-21 2004-07-28 Hewlett-Packard Company Rechnerkomponente
US20050108333A1 (en) * 2003-10-31 2005-05-19 Martin Scholz Blocking input with delayed message
US9191215B2 (en) * 2003-12-30 2015-11-17 Entrust, Inc. Method and apparatus for providing authentication using policy-controlled authentication articles and techniques
US9281945B2 (en) * 2003-12-30 2016-03-08 Entrust, Inc. Offline methods for authentication in a client/server authentication system
US8230486B2 (en) * 2003-12-30 2012-07-24 Entrust, Inc. Method and apparatus for providing mutual authentication between a sending unit and a recipient
US8966579B2 (en) * 2003-12-30 2015-02-24 Entrust, Inc. Method and apparatus for providing authentication between a sending unit and a recipient based on challenge usage data
US8060915B2 (en) 2003-12-30 2011-11-15 Entrust, Inc. Method and apparatus for providing electronic message authentication
US8612757B2 (en) * 2003-12-30 2013-12-17 Entrust, Inc. Method and apparatus for securely providing identification information using translucent identification member
US20050149740A1 (en) * 2003-12-31 2005-07-07 Kotzin Michael D. Method and apparatus for device authentication
US7493371B1 (en) * 2004-03-31 2009-02-17 Network Appliance, Inc. Using a client-server connection protocol to establish a peer-to-peer connection
US20050286535A1 (en) * 2004-06-29 2005-12-29 Shrum Edgar V Jr Verification of consumer equipment connected to packet networks based on hashing values
US20060135259A1 (en) * 2004-12-17 2006-06-22 Nokia Corporation System, game server, terminal, and method for game event notification in a multiplayer game
KR100807817B1 (ko) * 2004-12-17 2008-02-27 엔에이치엔(주) 버스형 네트워크 구조의 통신 네트워크 시스템에서서브시스템 사이의 로드를 조절하는 방법
US7637806B2 (en) * 2004-12-20 2009-12-29 Rampart Studios, Llc Method for dynamic content generation in a role-playing game
US8302199B2 (en) * 2005-04-06 2012-10-30 Valve Corporation Anti-cheat facility for use in a networked game environment
US7949138B2 (en) * 2005-06-30 2011-05-24 Microsoft Corporation Secure instant messaging
US7949873B2 (en) * 2005-06-30 2011-05-24 Microsoft Corporation Secure instant messaging
GB0514492D0 (en) * 2005-07-14 2005-08-17 Ntnu Technology Transfer As Secure media streaming
US20070055740A1 (en) * 2005-08-23 2007-03-08 Luciani Luis E System and method for interacting with a remote computer
US7747683B2 (en) * 2005-12-29 2010-06-29 Pike Ltd. Method and system for operating applications for remote terminal devices
US20070219654A1 (en) * 2006-03-14 2007-09-20 Viditotus Llc Internet-based advertising via web camera search contests
US7480656B2 (en) 2006-03-20 2009-01-20 Sony Computer Entertainment America Inc. Active validation of network devices
US7753795B2 (en) * 2006-03-20 2010-07-13 Sony Computer Entertainment America Llc Maintaining community integrity
US8622837B2 (en) 2006-03-20 2014-01-07 Sony Computer Entertainment America Llc Managing game metrics and authorizations
US8771061B2 (en) 2006-03-20 2014-07-08 Sony Computer Entertainment America Llc Invalidating network devices with illicit peripherals
US8676882B2 (en) * 2007-02-27 2014-03-18 Sony Corporation System and method for preloading content segments to client devices in an electronic network
US8392594B2 (en) * 2007-01-30 2013-03-05 Sony Corporation System and method for effectively providing content to client devices in an electronic network
US20080305869A1 (en) * 2006-09-05 2008-12-11 Cognisafe Ltd. Prevention of cheating in on-line interaction
US7942739B2 (en) 2006-11-15 2011-05-17 Cfph, Llc Storing information from a verification device and accessing the information from a gaming device to verify that the gaming device is communicating with a server
US8012015B2 (en) 2006-11-15 2011-09-06 Cfph, Llc Verifying whether a gaming device is communicating with a gaming server
JP5675106B2 (ja) * 2006-11-15 2015-02-25 シーエフピーエイチ, エル.エル.シー. ゲームサーバと通信しているゲーム機を決定する装置および方法
US7942738B2 (en) 2006-11-15 2011-05-17 Cfph, Llc Verifying a gaming device is in communications with a gaming server
US10068421B2 (en) 2006-11-16 2018-09-04 Cfph, Llc Using a first device to verify whether a second device is communicating with a server
US7942740B2 (en) 2006-11-15 2011-05-17 Cfph, Llc Verifying a first device is in communications with a server by storing a value from the first device and accessing the value from a second device
US7942741B2 (en) 2006-11-15 2011-05-17 Cfph, Llc Verifying whether a device is communicating with a server
US7942742B2 (en) 2006-11-15 2011-05-17 Cfph, Llc Accessing identification information to verify a gaming device is in communications with a server
US20080182659A1 (en) * 2007-01-30 2008-07-31 Microsoft Corporation In-play detection of altered game data
US20100029370A1 (en) * 2007-02-15 2010-02-04 Orbis Technology Limited Response time derivation and game
US8856782B2 (en) 2007-03-01 2014-10-07 George Mason Research Foundation, Inc. On-demand disposable virtual work system
US8121942B2 (en) 2007-06-25 2012-02-21 Visa U.S.A. Inc. Systems and methods for secure and transparent cardless transactions
US7938727B1 (en) * 2007-07-19 2011-05-10 Tim Konkle System and method for providing interactive content for multiple networked users in a shared venue
US8262472B2 (en) 2007-09-21 2012-09-11 Microsoft Corporation Comprehensive single page view of user's gaming achievements
WO2009055342A1 (en) * 2007-10-26 2009-04-30 Sony Computer Entertainment America Inc. On-line monitoring of resources
US8979647B2 (en) * 2007-10-26 2015-03-17 Microsoft Technology Licensing, Llc Method of providing player status and ability to join games
US8197313B2 (en) 2007-10-29 2012-06-12 Microsoft Corporation User to user game referrals
US8307439B2 (en) * 2007-11-30 2012-11-06 Intel Corporation Add-in card based cheat detection platform for online applications
US8561178B2 (en) * 2007-11-30 2013-10-15 Intel Corporation Chipset based cheat detection platform for online applications
US7792960B2 (en) * 2007-11-30 2010-09-07 Intel Corporation Detecting automation cheating in online applications
US9168457B2 (en) 2010-09-14 2015-10-27 Sony Computer Entertainment America Llc System and method for retaining system state
US9067150B2 (en) * 2008-01-19 2015-06-30 Lamplight Games System and method for providing interactive content for multiple networked users in a shared venue using short messaging service communication
US8137199B2 (en) * 2008-02-11 2012-03-20 Microsoft Corporation Partitioned artificial intelligence for networked games
US8245315B2 (en) * 2008-09-10 2012-08-14 Qualcomm Incorporated Remote diagnosis of unauthorized hardware change
US9098698B2 (en) 2008-09-12 2015-08-04 George Mason Research Foundation, Inc. Methods and apparatus for application isolation
BRPI0921124A2 (pt) * 2008-11-06 2016-09-13 Visa Int Service Ass sistema para autenticar um consumidor, método implementado por computador, meio legível por computador, e, computador servidor.
WO2010107149A1 (en) * 2009-03-19 2010-09-23 Ahnlab., Inc. Method and apparatus for detecting automatic input event generated by hardware device
US8935773B2 (en) * 2009-04-09 2015-01-13 George Mason Research Foundation, Inc. Malware detector
TW201039170A (en) * 2009-04-28 2010-11-01 Thomson Licensing System and method for detecting genuine copies of pre-recorded digital media
US8839422B2 (en) 2009-06-30 2014-09-16 George Mason Research Foundation, Inc. Virtual browsing environment
US9636589B2 (en) 2010-11-02 2017-05-02 Sony Interactive Entertainment America Llc Detecting lag switch cheating in game
US20120297457A1 (en) * 2010-11-15 2012-11-22 Brian Schulte Interactive Malware Detector
US20120324557A1 (en) * 2011-06-17 2012-12-20 Raytheon Bbn Technologies Corp System and method for remote integrity verification
US8529343B2 (en) * 2011-07-27 2013-09-10 Cyber Holdings, Inc. Method for monitoring computer programs
WO2013082437A1 (en) 2011-12-02 2013-06-06 Invincia, Inc. Methods and apparatus for control and detection of malicious content using a sandbox environment
US8851987B2 (en) * 2011-12-12 2014-10-07 Steelseries Aps Method and apparatus for adapting to gaming venue states
JP5516925B2 (ja) * 2012-01-12 2014-06-11 日本電気株式会社 信頼度計算装置、信頼度計算方法、及びプログラム
WO2013137901A1 (en) * 2012-03-16 2013-09-19 Empire Technology Development Llc Random data generation
US9817951B2 (en) 2012-04-06 2017-11-14 Comcast Cable Communications, Llc System and method for analyzing a device
US9887983B2 (en) 2013-10-29 2018-02-06 Nok Nok Labs, Inc. Apparatus and method for implementing composite authenticators
US9396320B2 (en) 2013-03-22 2016-07-19 Nok Nok Labs, Inc. System and method for non-intrusive, privacy-preserving authentication
US10270748B2 (en) 2013-03-22 2019-04-23 Nok Nok Labs, Inc. Advanced authentication techniques and applications
US9565022B1 (en) 2013-07-02 2017-02-07 Impinj, Inc. RFID tags with dynamic key replacement
JP2015154818A (ja) * 2014-02-20 2015-08-27 任天堂株式会社 据置型のゲーム装置、ゲーム装置、ゲームシステム、コンピュータプログラム及び速度制御方法
JP5838248B1 (ja) * 2014-09-24 2016-01-06 株式会社 ディー・エヌ・エー ユーザに所定のサービスを提供するシステム及び方法
TWI602076B (zh) * 2016-05-13 2017-10-11 矽統科技股份有限公司 音訊處理編碼鎖定方法與收音裝置
US10769635B2 (en) 2016-08-05 2020-09-08 Nok Nok Labs, Inc. Authentication techniques including speech and/or lip movement analysis
JP6930884B2 (ja) * 2017-09-20 2021-09-01 Necプラットフォームズ株式会社 Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラム
US11868995B2 (en) 2017-11-27 2024-01-09 Nok Nok Labs, Inc. Extending a secure key storage for transaction confirmation and cryptocurrency
US11831409B2 (en) 2018-01-12 2023-11-28 Nok Nok Labs, Inc. System and method for binding verifiable claims
US11044200B1 (en) 2018-07-06 2021-06-22 F5 Networks, Inc. Methods for service stitching using a packet header and devices thereof
US10715471B2 (en) * 2018-08-22 2020-07-14 Synchronoss Technologies, Inc. System and method for proof-of-work based on hash mining for reducing spam attacks
US11792024B2 (en) 2019-03-29 2023-10-17 Nok Nok Labs, Inc. System and method for efficient challenge-response authentication
US11240270B1 (en) * 2019-08-13 2022-02-01 Wells Fargo Bank, N.A. Secure electronic transactions using transport layer security (SETUTLS)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5970143A (en) * 1995-11-22 1999-10-19 Walker Asset Management Lp Remote-auditing of computer generated outcomes, authenticated billing and access control, and software metering system using cryptographic and other protocols
US6108420A (en) * 1997-04-10 2000-08-22 Channelware Inc. Method and system for networked installation of uniquely customized, authenticable, and traceable software application
JPH11276704A (ja) * 1998-02-02 1999-10-12 Shinko Electric Co Ltd 遊戯装置の記憶装置、遊技装置の記憶装置の書込装置及び遊技装置の記憶装置の書込方法並びに遊戯装置の制御装置及びその制御方法
US6330588B1 (en) 1998-12-21 2001-12-11 Philips Electronics North America Corporation Verification of software agents and agent activities
US8347086B2 (en) 2000-12-18 2013-01-01 Citibank, N.A. System and method for automatically detecting and then self-repairing corrupt, modified of non-existent files via a communication medium
US7072942B1 (en) * 2000-02-04 2006-07-04 Microsoft Corporation Email filtering methods and systems
US20020002706A1 (en) * 2000-05-26 2002-01-03 Sprunk Eric J. Authentication and authorization epochs
AU2001237019A1 (en) 2001-02-13 2002-08-28 Qualcomm Incorporated Method and apparatus for authenticating embedded software in a remote unit over a communications channel
US20020133575A1 (en) * 2001-02-22 2002-09-19 Viola Networks Ltd. Troubleshooting remote internet users
GB2374165A (en) 2001-04-02 2002-10-09 Global Knowledge Network Secure distribution of electronic media
EP1519775B1 (de) * 2002-07-05 2013-03-20 Mudalla Technology, Inc. Gesichertes spielprogrammladen

Also Published As

Publication number Publication date
ATE353516T1 (de) 2007-02-15
DE60311625D1 (de) 2007-03-22
US7287052B2 (en) 2007-10-23
US20040093372A1 (en) 2004-05-13
JP2004164640A (ja) 2004-06-10
EP1418725A2 (de) 2004-05-12
US20080039209A1 (en) 2008-02-14
EP1418725A3 (de) 2004-12-08
US7801952B2 (en) 2010-09-21
EP1418725B1 (de) 2007-02-07

Similar Documents

Publication Publication Date Title
DE60311625T2 (de) Auf dem Challenge-Response Prinzip basierendes Detektionsverfahren zwischen einem Server und einem Client und dazugehörige Speichermedia
US7794315B2 (en) Role play system
AU2004201602B2 (en) Method and apparatus for associating game data
KR100638071B1 (ko) 다중-사용자 애플리케이션 프로그램 인터페이스
DE60308099T2 (de) Gesicherter Schlüsselaustausch mit gegenseitigen Authentifizierung
US7464272B2 (en) Server control of peer to peer communications
US7311608B1 (en) Online game invitations using friends list
US7452278B2 (en) Web access to secure data
US7765401B2 (en) Multiple user authentication for online console-based gaming
US8032502B2 (en) Validation of network devices
KR101130495B1 (ko) 네트워크 세션의 가입자들 간의 상호 작용 제한
JP4309180B2 (ja) ゲームシステムのランキング決定方法、ゲームシステムの統計システムおよび記録媒体
US7627753B2 (en) Secure digital data format and code enforced policy
US8856268B2 (en) Sharing of console and web-based games and gaming profiles
CN104246698B (zh) 弹性操作系统电脑
DE102017202423A1 (de) Gesteuerte sichere Codeauthentifizierung
US7428638B1 (en) Architecture for manufacturing authenticatable gaming systems
US7681246B1 (en) System and method for server side data signing
US20080182660A1 (en) Decreasing Bad Behavior With Player-Managed Online Gaming
WO2008070427A1 (en) Transfer of content to closed systems
KR20090093456A (ko) 온라인 게임에 있어서의 앨범 서비스 방법 및 그 시스템

Legal Events

Date Code Title Description
8364 No opposition during term of opposition