KR20120081360A - Method for game client authentication using random code - Google Patents
Method for game client authentication using random code Download PDFInfo
- Publication number
- KR20120081360A KR20120081360A KR1020110002667A KR20110002667A KR20120081360A KR 20120081360 A KR20120081360 A KR 20120081360A KR 1020110002667 A KR1020110002667 A KR 1020110002667A KR 20110002667 A KR20110002667 A KR 20110002667A KR 20120081360 A KR20120081360 A KR 20120081360A
- Authority
- KR
- South Korea
- Prior art keywords
- game
- random code
- game client
- client
- game server
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000004364 calculation method Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011835 investigation Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/71—Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/532—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing using secure communication, e.g. by encryption, authentication
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
본 발명은 각 사용자 컴퓨터에 설치되어 실행되는 게임 클라이언트를 인증하는 방법에 관한 것으로서, 특히 게임 클라이언트 없이 패킷만을 처리하는 방식으로 온라인 게임을 비정상적으로 이용하는 로봇 프로그램((Non-Client BOT)을 효과적으로 감시하기 위한 것이다.
The present invention relates to a method for authenticating a game client installed and executed in each user computer, and more particularly, to effectively monitor a robot program ((Non-Client BOT) that abnormally uses an online game by processing a packet without a game client. It is for.
통신망과 컴퓨터 관련 기술이 발전하면서 다양한 종류의 온라인 게임 서비스가 제공되고 있는데, 게임 내 재화의 가치가 높아지면서 비정상적인 방법으로 온라인 게임을 이용하는 사례가 늘고 있다.As the network and computer related technologies are developed, various kinds of online game services are being provided. As the value of the goods in the game increases, the use of online games in an abnormal way is increasing.
게임 내 재화를 획득하기 위하여 온라인 게임을 비정상적으로 이용하는 방법은 다양하다.There are a variety of ways to use online games abnormally to obtain in-game goods.
예를 들자면, USB 디바이스를 이용하여 마치 사용자가 키보드나 마우스를 통해 어떤 명령을 입력하는 것처럼 위장하는 하드웨어적 처리 방법, 특정 기능을 수행하는 프로그램(악성모듈)을 메모리의 온라인 게임 프로세스에 로딩시켜 게임 함수를 호출하는 소프트웨어적 처리 방법을 들 수 있다.For example, using a USB device, a hardware processing method that pretends to be a user entering a command through a keyboard or mouse, and a program (a malicious module) that performs a specific function is loaded into an online game process in memory. A software method of calling a function is one.
또한, 게임 클라이언트 없이 로봇 프로그램을 이용하여 게임 서버와 주고 받는 패킷 데이터만을 처리하는 방법이 사용되기도 하는데, 이러한 로봇 프로그램을 논 클라이언트 봇(Non-Client BOT) 이라고 부른다.In addition, a method of processing only packet data exchanged with a game server using a robot program without a game client may be used. Such a robot program is referred to as a non-client bot.
논 클라이언트 봇은 게임 서버에 접속하여 스스로 사냥이나 채집 등 게임 내 활동을 수행함으로써 게임 내 재화의 획득을 시도한다.The non-client bot attempts to acquire in-game goods by connecting to the game server and performing in-game activities such as hunting and gathering by itself.
로봇 프로그램에 의해 게임이 진행되면, 정상적으로 게임을 이용하는 사용자들이 게임 내에서 좋은 게임 아이템을 얻을 기회가 부당하게 박탈되고, 게임 진행을 방해 받으며, 게임 서버에 과도한 부하가 걸리는 등 여러 가지 문제점이 발생하게 된다. 또한, 게임에 대한 흥미를 감소시켜 사용자들이 게임의 이용을 피하게 하고 민원을 발생시키는 주요 요인이 될 수 있다.
When the game is progressed by the robot program, users who normally use the game have various problems such as unjustly deprived of the opportunity to obtain good game items in the game, interrupted the game progress, and excessive load on the game server. do. It can also be a major factor in reducing the interest in the game, allowing users to avoid using the game and generate complaints.
이에 본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 게임 클라이언트 없이 게임 서버와 주고 받는 패킷 데이터만을 처리하는 방식으로 온라인 게임을 진행하는 로봇 프로그램(Non-Client BOT)을 효과적으로 감시할 수 있도록 하는데 그 목적이 있다.
Accordingly, the present invention has been made in order to solve the above problems, so that it can effectively monitor the robot program (Non-Client BOT) to play the online game by processing only the packet data exchanged with the game server without a game client. Its purpose is to.
상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 랜덤 코드를 이용한 게임 클라이언트 인증 방법은, 사용자 컴퓨터에 설치된 게임 클라이언트와 통신망을 통해 통신하면서 온라인 게임 서비스를 제공하는 게임 서버가 랜덤 코드(Random Code)의 인자인 연산 데이터를 생성하여 상기 게임 클라이언트로 전송하는 단계; 상기 게임 클라이언트가 상기 게임 서버로부터 수신된 연산 데이터를 인자로 자신이 가지고 있는 랜덤 코드를 실행하여 그 결과 값을 산출하고, 산출된 결과 값을 상기 게임 서버로 전송하는 단계; 및 상기 게임 서버가 상기 게임 클라이언트로 전송하였던 연산 데이터를 인자로 상기 게임 클라이언트가 가지고 있는 랜덤 코드를 실행하여 결과 값을 산출하고, 산출된 결과 값이 상기 게임 클라이언트로부터 수신된 결과 값과 서로 일치하는지의 여부를 조사하는 단계를 포함하여 이루어진다.In order to achieve the above object, in the game client authentication method using the random code according to the present invention, a game server that provides an online game service while communicating with a game client installed on a user computer through a communication network (Random Code) Generating operation data which is a factor of and transmitting the operation data to the game client; Executing, by the game client, a random code possessed by the game client with the calculation data received from the game server, calculating a result value, and transmitting the calculated result value to the game server; And calculating a result value by executing a random code possessed by the game client based on the arithmetic data transmitted from the game server to the game client, and whether the calculated result value matches the result value received from the game client. Including whether the step is made.
상기 게임 클라이언트가 가지고 있는 랜덤 코드는 상기 게임 서버가 전송해 주는 것으로서, 상기 게임 클라이언트는 상기 게임 서버로부터 수신된 랜덤 코드를 저장하여 보관한다.
The random code possessed by the game client is transmitted by the game server, and the game client stores and stores the random code received from the game server.
상기 게임 클라이언트는 상기 게임 서버로부터 새로운 랜덤 코드가 수신되면 보관 중인 랜덤 코드를 새로운 랜덤 코드로 갱신할 수 있다.When a new random code is received from the game server, the game client may update the stored random code with the new random code.
상기 게임 클라이언트는 상기 게임 서버로부터 연산 데이터가 수신되었을 때 랜덤 코드가 존재하지 않으면 상기 게임 서버로 오류 메시지를 전송할 수 있다.
The game client may transmit an error message to the game server if a random code does not exist when operation data is received from the game server.
상기 게임 서버는 상기 게임 클라이언트로 랜덤 코드를 전송하는 경우 연산 데이터를 함께 전송할 수 있다.The game server may transmit operation data together when transmitting a random code to the game client.
상기 게임 서버는 상기 산출된 결과 값과 상기 수신된 결과 값이 일치하면 정상적인 게임 클라이언트가 온라인 게임을 진행하는 것으로 판단할 수 있다.The game server may determine that a normal game client plays an online game when the calculated result value and the received result value match.
상기 게임 서버는 상기 게임 클라이언트로부터 오류 메시지가 수신되면, 로봇 프로그램이 온라인 게임을 진행하는 것으로 판단할 수 있다.When the game server receives an error message from the game client, the game server may determine that the robot program is playing an online game.
또한, 상기 게임 서버는 상기 산출된 결과 값과 상기 수신된 결과 값이 일치하지 않거나, 상기 게임 클라이언트로부터 일정 시간 동안 결과 값이 수신되지 않으면, 로봇 프로그램이 온라인 게임을 진행하는 것으로 판단할 수 있다.
The game server may determine that the robot program is playing an online game if the calculated result value does not match the received result value or if the result value is not received from the game client for a predetermined time.
상기 랜덤 코드와 연산 데이터는 상기 사용자 컴퓨터에서 상기 게임 클라이언트가 실행되는 상태일 때만 올바른 결과 값을 산출할 수 있도록 구성될 수 있다.The random code and the operation data may be configured to calculate a correct result value only when the game client is running in the user computer.
이러한 실시예에서 상기 연산 데이터는 상기 게임 클라이언트가 실행되었을 때 상기 사용자 컴퓨터의 메모리에 생성되는 프로세스 영역 중 특정 영역의 메모리 주소를 포함할 수 있다.In this embodiment, the operation data may include a memory address of a specific area of a process area generated in a memory of the user computer when the game client is executed.
이때 상기 랜덤 코드는 상기 특정 영역의 메모리 주소에 저장되어 있는 데이터 값을 연산하여 그 결과 값을 산출하도록 구성될 수 있다.
In this case, the random code may be configured to calculate a data value by calculating a data value stored in a memory address of the specific region.
본 발명에 따르면, 게임 서버는 고정되지 않은 임의의 랜덤 코드와 그 인자인 연산 데이터를 생성하여 게임 클라이언트로 전송하고, 그 결과 값을 수신하여 올바른 것인지를 조사하는 방식으로 게임 클라이언트를 인증한다.According to the present invention, the game server authenticates the game client in such a way that it generates a random code which is not fixed and operation data which is an argument thereof and transmits it to the game client, and receives the result value to check whether it is correct.
현재 온라인 게임이 게임 클라이언트를 통해 이루어지고 있다면, 게임 클라이언트로부터 정상적인 결과 값이 수신될 수 있다.If an online game is currently being played through a game client, a normal result may be received from the game client.
그러나 온라인 게임이 로봇 프로그램(Non-Client BOT)을 통해 이루어지고 있다면, 게임 서버가 전송해 주었던 랜덤 코드와 연산 데이터에 대한 올바른 결과 값이 수신될 수 없다. 즉, 로봇 프로그램은 게임 서버가 전송하는 랜덤 코드나 연산 데이터를 인식하지 못할 것이므로 응답을 할 수 없다.However, if the online game is played through a non-client BOT, the correct result value for the random code and operation data transmitted by the game server cannot be received. That is, the robot program cannot respond because it will not recognize the random code or operation data transmitted by the game server.
로봇 프로그램이 랜덤 코드와 연산 데이터를 인식할 수 있다고 하더라도, 랜덤 코드와 연산 데이터를 반드시 게임 클라이언트가 실행되고 있는 상태이어야만 올바른 결과 값이 산출될 수 있도록 구성한다면, 로봇 프로그램은 잘못된 결과 값을 응답하게 된다.Even if the robot program can recognize the random code and the operation data, if the random code and the operation data are configured so that the correct result can be calculated only when the game client is running, the robot program will respond with the incorrect result. do.
그러므로 논 클라이언트 봇(Non-Client BOT)을 효과적으로 감시할 수 있다.Thus, non-client bots can be effectively monitored.
특히, 랜덤 코드는 일정 기간 동안 유지시키고 연산 데이터만을 인증시마다 변동시키면, 게임 클라이언트의 인증을 위해 필요로 하는 데이터 통신량을 줄일 수 있어 네트워크 부하를 감소시킬 수 있다.
In particular, if the random code is maintained for a certain period and only the operation data is changed at each authentication time, the amount of data communication required for authentication of the game client can be reduced, thereby reducing the network load.
도 1은 온라인 게임을 서비스하는 시스템의 개요,
도 2는 사용자 컴퓨터의 구체적인 예,
도 3은 게임 서버가 게임 클라인언트로 랜덤 코드를 전송해 주는 방법을 설명하는 각 실시예,
고 4는 랜덤 코드의 갱신을 설명하는 예,
도 5는 본 발명에 따른 랜덤 코드를 이용한 게임 클라이언트 인증 방법의 일 실시예를 설명하는 흐름도,
도 6은 게임 서버에서의 감시 과정에 관한 구체적인 예,
도 7은 랜덤 코드와 연산 데이터에 관한 구체적인 예이다.1 is an overview of a system for servicing an online game;
2 is a specific example of a user computer;
3 is a diagram illustrating each method for transmitting a random code to a game client by a game server;
4 illustrates an example of updating a random code.
5 is a flowchart illustrating an embodiment of a game client authentication method using a random code according to the present invention;
6 illustrates a specific example of a monitoring process in a game server;
7 is a specific example of a random code and operation data.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1을 참조하자면, 온라인 게임 서비스는 유선 인터넷망이나 무선 인터넷망 등 각종 통신망(15)을 통해 제공되며, 사용자 컴퓨터(10)에 설치되는 게임 클라이언트(11)는 통신망(15)을 통해 게임 서버(17)와 서로 통신하면서 온라인 게임을 진행한다.Referring to FIG. 1, an online game service is provided through
온라인 게임의 종류는 다양할 수 있으며, 구체적인 예로서 여러 사용자가 동시 다발적으로 참여할 수 있는 MMORPG(Massively Multi-player Online Role Playing Game) 유형의 게임을 들 수 있다.There may be various types of online games, and a specific example may be a game of a Massively Multi-player Online Role Playing Game (MMORPG) type, in which several users may participate simultaneously.
각 사용자가 온라인 게임을 이용하기 위해 사용하는 사용자 컴퓨터(10)는 데스크 탑 컴퓨터나 노트북 컴퓨터와 같은 개인용 컴퓨터(PC: Personal Computer)뿐 아니라 스마트폰이나 태블릿 피시(PC) 등 통신망(15)을 통해 온라인 게임 서비스를 이용할 수 있는 임의의 기기일 수 있다.The
사용자 컴퓨터(10)에는 사용자가 온라인 게임을 이용할 수 있도록 해주는 게임 클라이언트(11)가 설치된다.The
게임 클라이언트(11)는 통신망(15)을 통해 다운로드되어 설치될 수 있고 최신 버젼으로 유지되며, 게임 관련 공지사항의 디스플레이, 게임 화면 처리, 사운드 효과 처리, 게임을 위한 각종 사용자 인터페이스의 제공 등 사용자측에서 수행되어야 할 다양한 역할을 담당한다.The
게임 클라이언트(11)는 기본적으로 게임 서버(17)와 통신하면서 온라인 게임을 진행시키는 역할을 수행하며, 게임 클라이언트(11)와 게임 서버(17)의 역할 분담은 필요에 따라 다양하게 구성될 수 있다.
The
본 발명과 관련하여, 게임 클라이언트(11)는 게임 서버(17)로부터 랜덤 코드가 수신되면 해당 랜덤 코드를 저장하여 보관한다.In connection with the present invention, the
또한, 연산 데이터가 수신되면 연산 데이터를 인자로 랜덤 코드를 실행하여 그 결과 값을 산출하고, 산출된 결과 값을 게임 서버(17)로 전송한다.In addition, when the calculation data is received, a random code is executed with the calculation data as a factor to calculate the result value, and the calculated result value is transmitted to the
랜덤 코드란 컴퓨터 장치에서 실행되어 결과 값을 산출할 수 있는 컴퓨터 프로그램 코드를 말한다.Random code is computer program code that can be executed on a computer device to produce a result value.
연산 데이터란 랜덤 코드의 인자(parameter)로서 랜덤 코드가 결과 값을 연산하기 위해 사용하는 정보를 말한다. 연산 데이터의 내용과 종류는 필요에 따라 얼마든지 다양하게 구성할 수 있다. 예컨대 연산 데이터는 숫자나 문자일 수도 있고, 메모리의 특정 영역을 가리키는 주소일 수도 있다.The operation data is a parameter of the random code and refers to information used by the random code to calculate a result value. The content and type of operation data can be variously configured as needed. For example, the operation data may be a number or a character or an address indicating a specific area of the memory.
사용자 컴퓨터(10)에는 게임 클라이언트(11) 대신 로봇 프로그램(12)이 설치될 수 있다.The
이하에서 로봇 프로그램(12)이란 논 클라이언트 봇(Non-Client BOT)을 의미하며, 로봇 프로그램(12)은 게임 클라이언트 없이 게임 서버(17)와 주고 받는 패킷 데이터를 처리하는 방식으로 온라인 게임을 비정상적으로 진행한다.
Hereinafter, the
도 2는 사용자 컴퓨터(10)의 구체적인 예를 보인 것이다.2 shows a specific example of the
각 요소들은 다양한 구조의 시스템 버스(10-1)를 통해 서로 연결될 수 있으며, 중앙처리장치(CPU: Central Processing Unit,10-2)의 총괄적인 제어하에 서로 데이터를 주고 받으면서 그 역할을 수행한다.Each element may be connected to each other through a system bus (10-1) of various structures, and performs the role while exchanging data with each other under the overall control of the central processing unit (CPU) (10-2).
메모리(10-3)는 램(RAM: Random Access Memory)으로서, 중앙처리장치(10-2)가 즉시 액세스할 컴퓨터 프로그램이나 데이터를 저장한다.The memory 10-3 is a random access memory (RAM), and stores computer programs or data that the central processing unit 10-2 immediately accesses.
입력장치 인터페이스(10-4)는 입력장치(10-5)와 연결되어 사용자가 사용자 컴퓨터(10)로 각종 명령이나 정보를 입력할 수 있도록 한다. 사용자 컴퓨터(10)는 입력장치 인터페이스(10-4)를 통해 키보드, 마우스, 키패드, 터치 스크린 등 다양한 종류의 입력장치(10-5)와 연결될 수 있다.
The input device interface 10-4 is connected to the input device 10-5 so that a user can input various commands or information to the
디스플레이 어댑터(10-6)는 다양한 디스플레이 장치(10-7)를 통해 출력할 비디오 정보를 처리하며, 사운드 카드(10-8)는 오디오 정보를 처리하여 스피커(10-9)를 통해 출력한다.The display adapter 10-6 processes the video information to be output through the various display devices 10-7, and the sound card 10-8 processes the audio information and outputs it through the speaker 10-9.
네트워크 인터페이스(10-11)는 사용자 컴퓨터(10)가 유선 인터넷망이나 무선 인터넷망 등 각종 통신망(15)과 연결되어 통신할 수 있도록 한다.
The network interface 10-11 allows the
저장매체(10-10)는 비휘발성의 성질을 가지며, 사용자 컴퓨터(10)에 의해 액세스될 수 있는 내장형, 외장형, 분리형, 비분리형의 다양한 형태를 가질 수 있다.The storage medium 10-10 is nonvolatile and may have various forms of internal, external, removable, and non-removable types that can be accessed by the
저장매체(10-10)에는 마이크로소프트사의 윈도우즈(Windows)와 같은 운영체제(OS: Operating System,14)나 게임 클라이언트(11)와 같은 각종 컴퓨터 프로그램과 데이터가 저장된다.The storage medium 10-10 stores various computer programs and data such as an operating system (OS) 14 such as Microsoft's Windows or a
어느 사용자가 로봇 프로그램을 이용하여 온라인 게임을 비정상적으로 이용하고자 하는 경우 저장매체(10-10)에는 게임 클라이언트 대신 로봇 프로그램(12)이 설치될 수 있다.When a user wants to use an online game abnormally using a robot program, the
사용자가 게임 클라이언트(11)나 로봇 프로그램(12)을 실행시키면, 중앙처리장치(10-2)는 해당 코드를 메모리(10-3)에 로딩하여 순차적으로 처리한다.
When the user executes the
도 3은 게임 클라이언트(11)가 랜덤 코드를 유지하게 되는 과정을 보인 것으로서, 랜덤 코드는 게임 서버(17)가 게임 클라이언트(11)로 전송해 준다.3 illustrates a process in which the
도 3a를 참조하자면, 게임 서버(17)는 랜덤 코드를 생성하여 게임 클라이언트(11)로 전송해 주고, 게임 클라이언트(11)는 게임 서버(17)로부터 수신된 랜덤 코드를 저장하여 보관한다. 게임 서버(17)는 어느 게임 클라이언트로 어떤 랜덤 코드를 전송하였는지에 관한 정보를 유지한다.Referring to FIG. 3A, the
도 3b를 참조하자면, 게임 서버(17)는 랜덤 코드를 생성하여 게임 클라이언트(11)로 전송해 줄 때, 게임 클라이언트(11)의 인증도 함께 수행하기 위하여 연산 데이터를 함께 전송할 수 있다.Referring to FIG. 3B, when the
게임 클라이언트(11)는 게임 서버(17)로부터 수신된 랜덤 코드를 저장하여 보관하고, 게임 서버(17)는 어느 게임 클라이언트로 어떤 랜덤 코드와 연산 데이터를 전송하였는지에 관한 정보를 유지한다.The
도 3b의 예에서 게임 클라이언트(11)는 연산 데이터를 수신 하였으므로, 랜덤 코드를 저장하여 보관하는 동작 이외에도 도 5를 참조하여 설명하는 바와 같이 게임 클라이언트의 인증과 관련된 처리를 수행하게 된다.
In the example of FIG. 3B, since the
게임 서버(17)가 게임 클라이언트(11)로 전송하는 랜덤 코드는 패킷에 담겨 전송되며, 이 패킷의 헤더(Header)에는 해당 패킷에 실린 데이터가 랜덤 코드라는 정보가 실려 있다.The random code transmitted from the
게임 클라이언트(11)는 통신망(15)을 통해 게임 서버(17)로부터 수신되는 패킷의 헤더를 분석하여 해당 패킷이 랜덤 코드를 전송하는 패킷임을 인식할 수 있으며, 수신된 랜덤 코드를 저장하여 보관한다.
The
게임 서버(17)가 랜덤 코드를 언제 전송할 것인지와, 게임 클라이언트(11)가 게임 서버(17)로부터 수신된 랜덤 코드를 어떠한 방법으로 보관하도록 할 것인지는 필요에 따라 다양하게 구성될 수 있다.When the
예를 들자면, 게임 서버(17)는 사용자 컴퓨터(10)로 게임 클라이언트(11)를 업데이트할 때, 게임 클라이언트(11)가 접속하였을 때, 사용자가 로그인 하였을 때 등 다양한 시점에 랜덤 코드를 전송해 줄 수 있다.For example, the
또한, 게임 클라이언트(11)는 랜덤 코드를 저장매체(10-10)에 저장할 수도 있고, 메모리(10-3)에만 저장할 수도 있다. 후자의 경우 게임 클라이언트(11)의 실행이 종료되면 랜덤 코드도 삭제되며, 이후에 다시 수신해야 한다.
In addition, the
랜덤 코드는 일정 기간 그대로 유지되는 것이지만, 게임 서버(17)는 게임 클라이언트(11)가 가지고 있는 랜덤 코드를 필요에 따라 얼마든지 바꿀 수 있다.Although the random code is maintained for a certain period of time, the
도 4를 참조하자면, 게임 클라이언트(11)는 게임 서버(17)로부터 새로운 랜덤 코드가 수신되는 경우(S211), 기존에 보관하고 있던 랜덤 코드를 새로 수신된 랜덤 코드로 갱신한다(S212).
Referring to FIG. 4, when a new random code is received from the game server 17 (S211), the
도 5를 참조하여, 본 발명에 따른 랜덤 코드를 이용한 게임 클라이언트 인증 방법의 일 실시예를 설명하기로 한다.5, an embodiment of a game client authentication method using a random code according to the present invention will be described.
먼저 게임 서버(17)는 연산 데이터를 생성하여(S231), 게임 클라이언트(11)로 전송한다(S232). 이때 게임 서버(17)는 게임 클라이언트(11)로 전송해 준 연산 데이터에 관한 정보를 유지한다.First, the
연산 데이터는 게임 클라이언트의 인증이 필요할 때마다 전송되는 것으로서, 도 3b에서 설명한 예와 같이 랜덤 코드와 함께 전송될 수도 있다.The operation data is transmitted whenever authentication of the game client is required, and may be transmitted with a random code as in the example described with reference to FIG. 3B.
게임 서버(17)는 게임 클라이언트(11)의 인증을 수행할 때마다 서로 다른 연산 데이터를 생성하는 것이 바람직하다.The
게임 서버(17)가 게임 클라이언트(11)로 전송하는 연산 데이터는 패킷에 담겨 전송되며, 이 패킷의 헤더(Header)에는 해당 패킷에 실린 데이터가 연산 데이터라는 정보가 실려 있다. 게임 클라이언트(11)는 통신망(15)을 통해 게임 서버(17)로부터 수신되는 패킷의 헤더를 분석하여 해당 패킷이 연산 데이터를 전송하는 패킷임을 인식할 수 있다.The operation data transmitted from the
게임 클라이언트(11)는 게임 서버(17)로부터 연산 데이터가 수신되었을 때 랜덤 코드가 존재하지 않으면 게임 서버(17)로 오류 메시지를 전송할 수 있다.
The
게임 클라이언트(11)는 게임 서버(17)로부터 연산 데이터가 수신되면, 수신된 연산 데이터를 인자로 자신이 가지고 있는 랜덤 코드를 실행하여 그 결과 값을 산출하고(S233), 산출된 결과 값을 게임 서버(17)로 전송한다(S234).
When the
게임 서버(17)는 게임 클라이언트(11)로부터 결과 값이 수신되면, 단계 S232를 통해 전송하였던 연산 데이터를 인자로 해당 게임 클라이언트(11)가 현재 가지고 있는 랜덤 코드를 실행하여 그 결과 값을 산출한다(S235).When the
그리고 게임 서버(17)는 단계 S235에서 산출된 결과 값과, 단계 S234를 통해 게임 클라이언트(11)로부터 수신된 결과 값을 비교하여, 서로 일치하는지의 여부를 조사한다(S236).The
이때 랜덤 코드는 컴퓨터 장치에서 실행되어 그 결과 값을 산출할 수 있는 컴퓨터 프로그램 코드이기 때문에, 연산 데이터가 같다면 그 결과 값은 동일하게 산출되어야 한다.
At this time, since the random code is computer program code that can be executed in a computer device to calculate a result value, the result value should be calculated equally if the arithmetic data is the same.
게임 서버(17)는 단계 S236에서의 조사 결과에 따라 현재 사용자 컴퓨터(10)에서 온라인 게임을 진행하는 프로그램이 정상적인 게임 클라이언트(11)인지 아니면 로봇 프로그램(12) 인지의 여부를 알 수 있다.The
즉, 게임 서버(17)는 단계 S236에서의 조사 결과 두 값이 서로 일치하면 정상적인 게임 클라이언트(11)에 의해 온라인 게임이 진행되는 것으로 판단하고(S237,S238), 두 값이 서로 일치하지 않으면 로봇 프로그램이 온라인 게임을 진행하는 것으로 판단한다(S237,S239).
That is, the
만일 로봇 프로그램이 온라인 게임을 진행하는 경우라면, 게임 서버(17)로부터 수신되는 랜덤 코드나 연산 데이터를 인식하지 못할 가능성이 크다.If the robot program is playing an online game, it is highly unlikely to recognize the random code or calculation data received from the
예컨대, 로봇 프로그램(12)이 랜덤 코드를 전송하는 패킷의 헤더를 알 수 없을 때는 게임 서버(17)로부터 수신되는 패킷을 인식할 수 없을 것이므로 랜덤 코드를 수신하지 못한다. 그러므로 로봇 프로그램(12)은 랜덤 코드를 실행하거나 그 결과 값을 게임 서버(17)로 전송할 수 없다.For example, when the
도 6을 참조하여, 게임 서버(17)에서의 감시 과정에 관한 구체적인 예를 살펴보기로 한다.Referring to FIG. 6, a specific example of a monitoring process in the
게임 서버(17)는 도 5의 단계 S232를 통해 연산 데이터를 전송한 후 이에 관한 응답이 수신되기를 기다린다(S251).The
만일 일정 시간이 경과되기 전에 랜덤 코드에 관한 결과 값이 수신되면, 도 5의 단계 S215로 진행한다(S254).If a result value relating to the random code is received before a predetermined time elapses, the process proceeds to step S215 of FIG. 5 (S254).
그러나 일정 시간이 경과되기 전에 오류 메시지가 수신되거나(S253), 연산 데이터에 대한 결과 값이 수신되지 않은 상태로 일정 시간이 경과하면(S252), 도 5의 단계 S239로 진행한다.However, if an error message is received before a predetermined time elapses (S253), or if a predetermined time elapses without receiving a result value for the operation data (S252), the process proceeds to step S239 of FIG.
여기서 게임 서버(17)가 랜덤 코드를 전송한 후 그 결과 값을 기다리는 시간은 필요에 따라 합리적인 시간으로 설정할 수 있다.
Here, the time waiting for the result after the
게임 서버(17)는 로봇 프로그램이 온라인 게임을 진행하는 것으로 판단된 경우 다양한 조치를 취할 수 있다.The
예를 들자면, 로봇 프로그램이 동작하는 사용자 컴퓨터를 통해 접속한 유저의 아이디(ID), 유저 캐릭터 식별정보, 해당 사용자 컴퓨터의 IP 주소, 게임 이용 일시 등의 정보를 로그 정보로서 저장할 수 있다.For example, the user's ID (ID), user character identification information, IP address of the user's computer, and game usage date and the like, which are connected through the user computer on which the robot program operates, may be stored as log information.
이러한 로그 정보는 이후 해당 사용자에 대한 게임 이용 금지나 경고 등의 제재를 가하는데 있어 기초 자료로 활용될 수 있다.
This log information can be used as basic data in applying sanctions such as prohibiting game use or warning to the user.
한편, 로봇 프로그램(12)도 게임 서버(17)로부터 수신되는 랜덤 코드와 연산 데이터를 인식할 수 있다면, 그 결과 값을 산출할 수 있다.On the other hand, if the
이러한 상황에 대처하기 위한 하나의 방안으로서, 랜덤 코드와 연산 데이터는 사용자 컴퓨터(10)에서 게임 클라이언트(11)가 실행되는 상태일 때만 올바른 결과 값을 산출할 수 있도록 구성될 수 있다.As a way to cope with such a situation, the random code and the calculation data may be configured to calculate the correct result value only when the
도 7을 참조하자면, 연산 데이터(71)는 게임 클라이언트(11)가 실행되었을 때 사용자 컴퓨터의 메모리(10-3)에 생성되는 게임 프로세스 영역(75) 중 특정 영역(77)의 메모리 주소를 포함할 수 있다.Referring to FIG. 7, the
그리고 랜덤 코드(72)는 연산 데이터(71)가 지시하는 특정 영역(77)의 메모리 주소에 저장되어 있는 데이터 값을 연산하여 그 결과 값을 산출하도록 구성될 수 있다. 이때 특정 영역(77)의 메모리 주소에 저장된 데이터의 해쉬(Hash) 값을 연산에 이용하도록 구성될 수도 있다.The
예컨대 연산 데이터(71)를 게임 클라이언트(11)의 실행에 따라 메모리(10-3)에 생성되는 게임 프로세스 영역(75) 중 특정 4 바이트(Byte)의 주소(Address)로 설정하고, 랜덤 코드(72)는 이 메모리 주소에 저장되어 있는 4 바이트(Byte) 데이터를 연산에 사용하도록 구성할 수 있다.For example, the
그러면 로봇 프로그램(12)이 랜덤 코드와 연산 데이터를 인식할 수 있다고 하더라도 게임 클라이언트(11)가 실행되고 있지 않기 때문에 올바른 결과 값을 산출할 수 없다.Then, even if the
이와 같이 랜덤 코드나 연산 데이터를 게임 클라이언트(11)가 실행되는 상태일 때만 올바른 결과 값을 산출할 수 있도록 구성한다면, 게임 서버(17)는 연산 데이터가 지시하는 값을 알거나, 게임 클라이언트(11)를 실행하고 있어야 한다.As such, if the random code or the calculation data is configured to calculate the correct result only when the
상술한 실시예는 본 발명의 이해를 돕기 위한 것이며, 본 발명은 상술한 실시예에 한정되지 않고 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 당업자에 의해 다양하게 변형하여 실시할 수 있는 것임은 물론이다.
It is to be understood that the present invention is not limited to the above-described embodiment, and various changes and modifications may be made by those skilled in the art without departing from the technical spirit of the present invention. to be.
10: 사용자 컴퓨터 11: 게임 클라이언트
12: 로봇 프로그램 15: 통신망
17: 게임 서버 10-2: 중앙처리장치(CPU)
10-3: 메모리10: User Computer 11: Game Client
12: robot program 15: communication network
17: Game Server 10-2: Central Processing Unit (CPU)
10-3: memory
Claims (9)
상기 게임 클라이언트가 상기 게임 서버로부터 수신된 연산 데이터를 인자로 자신이 가지고 있는 랜덤 코드를 실행하여 그 결과 값을 산출하고, 산출된 결과 값을 상기 게임 서버로 전송하는 단계; 및
상기 게임 서버가 상기 게임 클라이언트로 전송하였던 연산 데이터를 인자로 상기 게임 클라이언트가 가지고 있는 랜덤 코드를 실행하여 결과 값을 산출하고, 산출된 결과 값이 상기 게임 클라이언트로부터 수신된 결과 값과 서로 일치하는지의 여부를 조사하는 단계를 포함하여 이루어지고,
상기 게임 클라이언트가 가지고 있는 랜덤 코드는 상기 게임 서버가 전송해 주며, 상기 게임 클라이언트는 상기 게임 서버로부터 수신된 랜덤 코드를 보관하는 것을 특징으로 하는 랜덤 코드를 이용한 게임 클라이언트 인증 방법.Generating, by a game server providing an online game service while communicating with a game client installed in a user computer through a communication network, arithmetic data which is a factor of a random code and transmitting it to the game client;
Executing, by the game client, a random code possessed by the game client with the calculation data received from the game server, calculating a result value, and transmitting the calculated result value to the game server; And
The game server calculates a result value by executing a random code possessed by the game client based on the arithmetic data transmitted to the game client, and determines whether the calculated result value coincides with the result value received from the game client. Including whether to investigate whether
The random code possessed by the game client is transmitted by the game server, and the game client stores the random code received from the game server.
상기 게임 클라이언트는 상기 게임 서버로부터 새로운 랜덤 코드가 수신되면 보관 중인 랜덤 코드를 새로운 랜덤 코드로 갱신하는 것을 특징으로 하는 랜덤 코드를 이용한 게임 클라이언트 인증 방법.The method of claim 1,
The game client authentication method using a random code, characterized in that when the new random code is received from the game server updates the stored random code with a new random code.
상기 게임 클라이언트는 상기 게임 서버로부터 연산 데이터가 수신되었을 때 랜덤 코드가 존재하지 않으면 상기 게임 서버로 오류 메시지를 전송하는 것을 특징으로 하는 랜덤 코드를 이용한 게임 클라이언트 인증 방법.The method of claim 1,
And the game client transmits an error message to the game server if a random code does not exist when the operation data is received from the game server.
상기 게임 서버는 상기 게임 클라이언트로 랜덤 코드를 전송하는 경우 연산 데이터를 함께 전송하는 것을 특징으로 하는 랜덤 코드를 이용한 게임 클라이언트 인증 방법.The method of claim 1,
When the game server transmits a random code to the game client, the game client authentication method using a random code, characterized in that for transmitting.
상기 게임 서버는 상기 산출된 결과 값과 상기 수신된 결과 값이 일치하면 정상적인 게임 클라이언트가 온라인 게임을 진행하는 것으로 판단하는 것을 특징으로 하는 랜덤 코드를 이용한 게임 클라이언트 인증 방법.The method of claim 1,
And the game server determines that a normal game client proceeds to an online game when the calculated result value and the received result value coincide with each other.
상기 게임 서버는 상기 게임 클라이언트로부터 오류 메시지가 수신되면, 로봇 프로그램이 온라인 게임을 진행하는 것으로 판단하는 것을 특징으로 하는 랜덤 코드를 이용한 게임 클라이언트 인증 방법.The method of claim 3, wherein
When the game server receives an error message from the game client, the game server authentication method using a random code, characterized in that the robot program determines that the online game.
상기 게임 서버는 상기 산출된 결과 값과 상기 수신된 결과 값이 일치하지 않거나, 상기 게임 클라이언트로부터 일정 시간 동안 결과 값이 수신되지 않으면, 로봇 프로그램이 온라인 게임을 진행하는 것으로 판단하는 것을 특징으로 하는 랜덤 코드를 이용한 게임 클라이언트 인증 방법.The method of claim 1,
The game server randomly characterized in that the robot program proceeds to the online game, if the calculated result value and the received result value does not match, or if the result value is not received from the game client for a predetermined time Game client authentication method using code.
상기 랜덤 코드와 연산 데이터는 상기 사용자 컴퓨터에서 상기 게임 클라이언트가 실행되는 상태일 때만 올바른 결과 값을 산출할 수 있도록 구성되는 것을 특징으로 하는 랜덤 코드를 이용한 게임 클라이언트 인증 방법.The method of claim 1,
The random code and the operation data is a game client authentication method using a random code, characterized in that configured to calculate the correct result only when the game client is running on the user computer.
상기 연산 데이터는 상기 게임 클라이언트가 실행되었을 때 상기 사용자 컴퓨터의 메모리에 생성되는 프로세스 영역 중 특정 영역의 메모리 주소를 포함하고,
상기 랜덤 코드는 상기 특정 영역의 메모리 주소에 저장되어 있는 데이터 값을 연산하여 그 결과 값을 산출하도록 구성되는 것을 특징으로 하는 랜덤 코드를 이용한 게임 클라이언트 인증 방법.The method of claim 8,
The operation data includes a memory address of a specific area of a process area created in a memory of the user computer when the game client is executed,
The random code is a game client authentication method using a random code, characterized in that for calculating a result value by calculating a data value stored in the memory address of the particular area.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110002667A KR20120081360A (en) | 2011-01-11 | 2011-01-11 | Method for game client authentication using random code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110002667A KR20120081360A (en) | 2011-01-11 | 2011-01-11 | Method for game client authentication using random code |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20120081360A true KR20120081360A (en) | 2012-07-19 |
Family
ID=46713526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110002667A KR20120081360A (en) | 2011-01-11 | 2011-01-11 | Method for game client authentication using random code |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20120081360A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101527098B1 (en) * | 2013-08-28 | 2015-06-09 | 고려대학교 산학협력단 | Server and method for attesting application in smart device using random executable code |
US9569618B2 (en) | 2013-08-28 | 2017-02-14 | Korea University Research And Business Foundation | Server and method for attesting application in smart device using random executable code |
-
2011
- 2011-01-11 KR KR1020110002667A patent/KR20120081360A/en not_active Application Discontinuation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101527098B1 (en) * | 2013-08-28 | 2015-06-09 | 고려대학교 산학협력단 | Server and method for attesting application in smart device using random executable code |
US9569618B2 (en) | 2013-08-28 | 2017-02-14 | Korea University Research And Business Foundation | Server and method for attesting application in smart device using random executable code |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11524237B2 (en) | Systems and methods for distributing the generation of nonplayer characters across networked end user devices for use in simulated NPC gameplay sessions | |
US8713157B2 (en) | System for collecting computer application usage data of targeted application programs executed on a plurality of client devices | |
US9352215B2 (en) | Information processing system, information processing method, information storage medium, and program | |
EP2635356B1 (en) | Detecting lag switch cheating in game | |
US10232252B2 (en) | Information processing system, information processing method, program, and information storage medium | |
US20200311239A1 (en) | Audio-based device authentication system | |
JP6092951B2 (en) | Online game synchronization method and server device | |
KR20090119925A (en) | Method and apparatus for monitoring user game-playing behavior and reporting game play data in a gaming environment | |
CN110490590B (en) | Activity record query method, device, equipment and storage medium based on block chain | |
JP6400807B1 (en) | GAME SYSTEM AND COMPUTER PROGRAM USED FOR THE SAME | |
CN111939556A (en) | Method, device and system for detecting abnormal operation of game | |
KR20120081360A (en) | Method for game client authentication using random code | |
JP6412667B1 (en) | Server, method, and program for providing game | |
CN114338051B (en) | Method, device, equipment and medium for acquiring random number by block chain | |
KR102521679B1 (en) | Method and apparatus for delegating game play | |
JP2019037784A (en) | Game system and computer program used therefor | |
KR101211855B1 (en) | Method for Game Client Authentication using Random Code | |
KR20120045233A (en) | Method and computer readable recording medium for detecting malicious module of on-line game | |
KR20120039108A (en) | Method and system for bad user monitoring of on-line game system | |
KR20210078141A (en) | Method and apparatus for providing payment service | |
KR101447850B1 (en) | Game service method for real time match game and system thereof | |
JP7148814B2 (en) | Game program and game system | |
TWI842905B (en) | Apparatus and method for on-line service access control | |
US20240149170A1 (en) | Game data verification method and apparatus, device, computer-readable storage medium, and computer program product | |
KR101819987B1 (en) | Game service system, mobile apparatus and method for providing sub game thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |