KR20200124436A - Method and apparatus for verification of integrity - Google Patents

Method and apparatus for verification of integrity Download PDF

Info

Publication number
KR20200124436A
KR20200124436A KR1020190047754A KR20190047754A KR20200124436A KR 20200124436 A KR20200124436 A KR 20200124436A KR 1020190047754 A KR1020190047754 A KR 1020190047754A KR 20190047754 A KR20190047754 A KR 20190047754A KR 20200124436 A KR20200124436 A KR 20200124436A
Authority
KR
South Korea
Prior art keywords
value
user terminal
authentication value
integrity verification
authentication
Prior art date
Application number
KR1020190047754A
Other languages
Korean (ko)
Other versions
KR102190359B1 (en
Inventor
김주용
이승희
Original Assignee
넷마블 주식회사
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 넷마블 주식회사 filed Critical 넷마블 주식회사
Priority to KR1020190047754A priority Critical patent/KR102190359B1/en
Publication of KR20200124436A publication Critical patent/KR20200124436A/en
Application granted granted Critical
Publication of KR102190359B1 publication Critical patent/KR102190359B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/71Game security or game management aspects using secure communication between game devices and game servers, e.g. by encrypting game data or authenticating players
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2109Game systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Telephonic Communication Services (AREA)

Abstract

Disclosed are an integrity verification method capable of preventing tampering of an authentication value and a device thereof. The integrity verification method comprises the steps of: transmitting generation request data for a one-time key value to a server; receiving the one-time key value from the server in response to the transmission of the generation request data; selecting some authentication value generation functions among a plurality of authentication value generation functions based on the key value and an identification value of the user terminal, and generating an authentication value using the selected some authentication value generation functions; transmitting the authentication value to the server; and receiving verification result information on the integrity verification result from the server, in response to the transmission of the authentication value.

Description

무결성 검증 방법 및 장치{METHOD AND APPARATUS FOR VERIFICATION OF INTEGRITY}Integrity verification method and apparatus {METHOD AND APPARATUS FOR VERIFICATION OF INTEGRITY}

아래 실시예들은 무결성 검증 기술에 관한 것이다.The following embodiments relate to an integrity verification technique.

게임에 대하여 악의적인 사용자들이 불법적인 방법으로 게임에 접근하여, 게임 상의 정상적인 운영 및 정상적인 플레이를 방해하고, 부당한 이득을 취하는 경우가 계속해서 발생하고 있다. 이는 게임 운영자뿐만 아니라 게임 유저들에게도 악영향을 끼칠 수 있다.Malicious users about the game access the game in an illegal way, interfere with the normal operation and normal play of the game, and take an unfair advantage over and over again. This can adversely affect not only game operators but also game users.

게임 운영자는 무결성 검증을 통해, 게임 유저의 계정과 관련된 인증 정보를 변조하여 게임에 접근을 시도하는 악의적인 사용자들의 접근을 방지할 수 있다. 그러나, 기존의 무결성 검증 방법은 고정된 로직(Logic)을 통해 인증 값을 생성하여, 무결성을 검증하기 때문에, 고정된 로직이 유출되면 수많은 악의적인 사용자들의 접근을 막을 수 없다는 한계가 있다.The game operator can prevent malicious users from attempting to access the game by falsifying authentication information related to the game user's account through integrity verification. However, since the existing integrity verification method generates an authentication value through a fixed logic to verify integrity, there is a limit in that it cannot prevent a number of malicious users from accessing when a fixed logic is leaked.

악의적인 사용자들의 변조 및 우회를 통해 게임에 대한 부당한 접근 방법은 정당한 게임 유저 및 게임 운영자에게 큰 위협이 되기 때문에, 이를 효과적으로 막을 수 있는 방안이 요구된다.Since an unfair approach to a game through alteration and bypass of malicious users poses a great threat to legitimate game users and game operators, a method to effectively prevent this is required.

일 실시예에 따른 사용자 단말에 의해 수행되는 무결성 검증 방법은, 서버에 일회성 키(Key) 값에 대한 생성 요청 데이터를 전송하는 단계; 상기 생성 요청 데이터의 전송에 응답하여, 상기 서버로부터 일회성 키 값을 수신하는 단계; 상기 키 값과 상기 사용자 단말의 식별 값에 기초하여, 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하고, 상기 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성하는 단계; 상기 인증 값을 상기 서버에 전송하는 단계; 및 상기 인증 값의 전송에 응답하여, 상기 서버로부터 무결성 검증 결과에 대한 검증 결과 정보를 수신하는 단계를 포함할 수 있다.An integrity verification method performed by a user terminal according to an embodiment includes the steps of transmitting generation request data for a one-time key value to a server; Receiving a one-time key value from the server in response to the transmission of the generation request data; Selecting some authentication value generating functions from among a plurality of authentication value generating functions based on the key value and the identification value of the user terminal, and generating an authentication value using the selected partial authentication value generating functions; Transmitting the authentication value to the server; And receiving verification result information on the integrity verification result from the server in response to the transmission of the authentication value.

상기 요청데이터를 전송하는 단계는, 상기 사용자 단말의 상기 식별 값을 상기 서버에 더 전송하는 단계를 포함할 수 있다.Transmitting the request data may include further transmitting the identification value of the user terminal to the server.

상기 인증 값을 생성하는 단계는, 상기 일회성 키 값 및 상기 식별 값에 기초하여 선택될 함수들의 개수를 결정하는 단계를 포함할 수 있다.The generating of the authentication value may include determining the number of functions to be selected based on the one-time key value and the identification value.

상기 인증 값을 생성하는 단계는, 상기 일회성 키 값, 상기 식별 값 및 상기 개수에 기초하여 상기 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하는 단계를 포함할 수 있다.The generating of the authentication value may include selecting some authentication value generating functions from among the plurality of authentication value generating functions based on the one-time key value, the identification value, and the number.

상기 인증 값을 생성하는 단계는, 무결성 검증이 필요한 파일의 해쉬(Hash) 값, 무결성 검증이 필요한 메모리 영역의 해쉬 값 및 상기 선택된 함수들의 고유 값에 기초하여 상기 인증 값을 생성하는 단계를 포함할 수 있다.The step of generating the authentication value may include generating the authentication value based on a hash value of a file requiring integrity verification, a hash value of a memory area requiring integrity verification, and unique values of the selected functions. I can.

일 실시예에 따른 서버에 의해 수행되는 무결성 검증 방법은, 사용자 단말로부터 일회성 키 값에 대한 생성 요청 데이터를 수신하는 경우, 일회성 키 값을 생성하는 단계; 상기 일회성 키 값을 상기 사용자 단말에 전송하는 단계; 상기 사용자 단말로부터 상기 사용자 단말에 의해 생성된 인증 값을 수신하는 경우, 상기 키 값과 상기 사용자 단말의 식별 값에 기초하여, 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하고, 상기 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성하는 단계; 상기 사용자 단말로부터 수신한 인증 값과 상기 생성된 인증 값에 기초하여 상기 사용자 단말의 무결성 검증 결과를 결정하는 단계; 및 상기 무결성 검증 결과에 대한 검증 결과 정보를 상기 사용자 단말에 전송하는 단계를 포함할 수 있다.An integrity verification method performed by a server according to an embodiment includes: generating a one-time key value when receiving data requesting generation of a one-time key value from a user terminal; Transmitting the one-time key value to the user terminal; When receiving the authentication value generated by the user terminal from the user terminal, based on the key value and the identification value of the user terminal, select some authentication value generation functions from among a plurality of authentication value generation functions, Generating an authentication value using the selected partial authentication value generating functions; Determining an integrity verification result of the user terminal based on an authentication value received from the user terminal and the generated authentication value; And transmitting verification result information on the integrity verification result to the user terminal.

상기 인증 값을 생성하는 단계는, 상기 일회성 키 값 및 상기 식별 값에 기초하여 선택될 함수들의 개수를 결정하는 단계를 포함할 수 있다.The generating of the authentication value may include determining the number of functions to be selected based on the one-time key value and the identification value.

상기 인증 값을 생성하는 단계는, 상기 일회성 키 값, 상기 식별 값 및 상기 개수에 기초하여 상기 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하는 단계를 포함할 수 있다.The generating of the authentication value may include selecting some authentication value generating functions from among the plurality of authentication value generating functions based on the one-time key value, the identification value, and the number.

상기 인증 값을 생성하는 단계는, 무결성 검증이 필요한 파일의 해쉬 값, 무결성 검증이 필요한 메모리 영역의 해쉬 값 및 상기 선택된 함수들의 고유 값에 기초하여 상기 인증 값을 생성하는 단계를 포함할 수 있다.The generating of the authentication value may include generating the authentication value based on a hash value of a file requiring integrity verification, a hash value of a memory region requiring integrity verification, and unique values of the selected functions.

상기 무결성 검증 결과를 결정하는 단계는, 상기 사용자 단말로부터 수신한 인증 값과 상기 생성된 인증 값의 일치 여부에 기초하여 상기 무결성 검증 결과를 결정하는 단계를 포함할 수 있다.The determining of the integrity verification result may include determining the integrity verification result based on whether the authentication value received from the user terminal matches the generated authentication value.

상기 사용자 단말로부터 수신한 인증 값과 상기 생성된 인증 값이 일치하지 않는 경우, 상기 사용자 단말이 무결하지 않은 것으로 결정할 수 있다.If the authentication value received from the user terminal and the generated authentication value do not match, it may be determined that the user terminal is not innocent.

일 실시예에 따른 무결성 검증 방법을 수행하는 사용자 단말은, 메모리 및 프로세서를 포함하고, 상기 메모리는 상기 프로세서에 의해 실행 가능한 인스트럭션들(instructions)을 저장하고, 상기 인스트럭션들이 상기 프로세서에 의해 실행될 때, 상기 프로세서는, 서버에 일회성 키 값에 대한 생성 요청 데이터를 전송하고, 상기 생성 요청 데이터의 전송에 응답하여, 상기 서버로부터 일회성 키 값을 수신하고, 상기 키 값과 상기 사용자 단말의 식별 값에 기초하여, 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하고, 상기 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성하고, 상기 인증 값을 상기 서버에 전송하고, 상기 인증 값의 전송에 응답하여, 상기 서버로부터 무결성 검증 결과에 대한 검증 결과 정보를 수신할 수 있다.The user terminal performing the integrity verification method according to an embodiment includes a memory and a processor, the memory stores instructions executable by the processor, and when the instructions are executed by the processor, The processor transmits the generation request data for the one-time key value to the server, in response to the transmission of the generation request data, receives the one-time key value from the server, based on the key value and the identification value of the user terminal Thus, some authentication value generation functions are selected among a plurality of authentication value generation functions, an authentication value is generated using the selected partial authentication value generation functions, the authentication value is transmitted to the server, and the authentication value In response to the transmission of, the verification result information for the integrity verification result may be received from the server.

상기 프로세서는, 상기 일회성 키 값 및 상기 식별 값에 기초하여 선택될 함수들의 개수를 결정할 수 있다.The processor may determine the number of functions to be selected based on the one-time key value and the identification value.

상기 프로세서는, 상기 일회성 키 값, 상기 식별 값 및 상기 개수에 기초하여 상기 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택할 수 있다.The processor may select some authentication value generation functions from among the plurality of authentication value generation functions based on the one-time key value, the identification value, and the number.

상기 프로세서는, 무결성 검증이 필요한 파일의 해쉬 값, 무결성 검증이 필요한 메모리 영역의 해쉬 값 및 상기 선택된 함수들의 고유 값에 기초하여 상기 인증 값을 생성할 수 있다.The processor may generate the authentication value based on a hash value of a file requiring integrity verification, a hash value of a memory region requiring integrity verification, and unique values of the selected functions.

일 실시예에 따른 무결성 검증 방법을 수행하는 서버는, 메모리 및 프로세서를 포함하고, 상기 메모리는 상기 프로세서에 의해 실행 가능한 인스트럭션들을 저장하고, 상기 인스트럭션들이 상기 프로세서에 의해 실행될 때, 상기 프로세서는, 사용자 단말로부터 일회성 키 값에 대한 생성 요청 데이터를 수신하는 경우, 일회성 키 값을 생성하고, 상기 일회성 키 값을 상기 사용자 단말에 전송하고, 상기 사용자 단말로부터 상기 사용자 단말에 의해 생성된 인증 값을 수신하는 경우, 상기 키 값과 상기 사용자 단말의 식별 값에 기초하여, 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하고, 상기 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성하고, 상기 사용자 단말로부터 수신한 인증 값과 상기 생성된 인증 값에 기초하여 상기 사용자 단말의 무결성 검증 결과를 결정하고, 상기 무결성 검증 결과에 대한 검증 결과 정보를 상기 사용자 단말에 전송할 수 있다.The server performing the integrity verification method according to an embodiment includes a memory and a processor, the memory storing instructions executable by the processor, and when the instructions are executed by the processor, the processor is When receiving the generation request data for the one-time key value from the terminal, generating a one-time key value, transmitting the one-time key value to the user terminal, and receiving the authentication value generated by the user terminal from the user terminal In case, based on the key value and the identification value of the user terminal, some authentication value generation functions are selected from among a plurality of authentication value generation functions, and an authentication value is generated using the selected partial authentication value generation functions. , Based on the authentication value received from the user terminal and the generated authentication value, an integrity verification result of the user terminal may be determined, and verification result information on the integrity verification result may be transmitted to the user terminal.

상기 프로세서는, 무결성 검증이 필요한 파일의 해쉬 값, 무결성 검증이 필요한 메모리 영역의 해쉬 값 및 상기 선택된 함수들의 고유 값에 기초하여 상기 인증 값을 생성할 수 있다.The processor may generate the authentication value based on a hash value of a file requiring integrity verification, a hash value of a memory region requiring integrity verification, and unique values of the selected functions.

상기 프로세서는, 상기 사용자 단말로부터 수신한 인증 값과 상기 생성된 인증 값의 일치 여부에 기초하여 상기 무결성 검증 결과를 결정할 수 있다.The processor may determine the integrity verification result based on whether the authentication value received from the user terminal matches the generated authentication value.

상기 프로세서는, 상기 사용자 단말로부터 수신한 인증 값과 상기 생성된 인증 값이 일치하지 않는 경우, 상기 사용자 단말이 무결하지 않은 것으로 결정할 수 있다.When the authentication value received from the user terminal and the generated authentication value do not match, the processor may determine that the user terminal is not integrity.

일 실시예에 따르면, 복수의 함수들 중, 랜덤으로 일부의 함수만 호출하여 인증 값을 생성하므로, 복수의 함수들을 모두 변조해야 인증 값의 변조가 가능하기 때문에, 인증 값의 변조를 방지할 수 있다.According to an embodiment, since authentication values are generated by randomly calling only some functions among a plurality of functions, alteration of the authentication value is possible only when all of the plurality of functions are modulated, so that the alteration of the authentication value can be prevented. have.

일 실시예에 따르면, 복수의 함수들 각각이 가지고 있는 고유의 값이 인증 값에 포함되기 때문에 함수 우회를 방지할 수 있다.According to an embodiment, since a unique value of each of a plurality of functions is included in the authentication value, function bypass can be prevented.

일 실시예에 따르면, 무작위로 함수를 호출하여 순서를 부여하고, 일회성 키 값 및 사용자 단말에 대응하는 식별 값을 조합하여 인증 값을 생성하므로 일회성 및 차별성을 보장할 수 있다.According to an embodiment, since a function is called at random to assign an order, and an authentication value is generated by combining a one-time key value and an identification value corresponding to a user terminal, one-time and differentiation can be guaranteed.

일 실시예에 따르면, 선택되는 함수의 개수에 따라 인증 값이 달라질 수 있으므로, 선택되는 함수의 개수를 고정시키거나 변경시키는 등의 우회를 통한 변조를 방지할 수 있다.According to an embodiment, since the authentication value may vary depending on the number of selected functions, it is possible to prevent alteration through bypass such as fixing or changing the number of selected functions.

일 실시예에 따르면, 함수가 적용되는 순서에 따라 인증 값이 변경되므로 함수의 순서를 고정시키거나 변경시키는 등의 우회를 방지할 수 있다.According to an embodiment, since the authentication value is changed according to the order in which functions are applied, it is possible to prevent bypass such as fixing or changing the order of functions.

일 실시예에 따르면, 일회성 키 값 및 사용자 단말에 대응하는 식별 값을 서버 및 사용자 단말이 공유하고, 동일한 로직으로 인증 값을 생성하기 때문에, 인증 값을 고정시키거나 변경시키는 등의 우회를 방지할 수 있다.According to an embodiment, since the one-time key value and the identification value corresponding to the user terminal are shared by the server and the user terminal, and the authentication value is generated with the same logic, bypass such as fixing or changing the authentication value can be prevented. I can.

도 1은 일 실시예에 따른 무결성 검증 시스템의 전체적인 구성을 도시하는 도면이다.
도 2는 일 실시예에 따른 사용자 단말에서 수행되는 무결성 검증 방법을 설명하기 위한 흐름도이다.
도 3은 일 실시예에 따른 서버에서 수행되는 무결성 검증 방법을 설명하기 위한 흐름도이다.
도 4는 일 실시예에 따른 무결성 검증 방법을 설명하기 위한 흐름도이다.
도 5는 일 실시예에 따른 인증 값을 생성할 함수들의 개수를 결정하는 일례를 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 인증 값을 생성할 함수들을 선택하는 일례를 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 인증 값을 생성할 함수들을 생성하는 일례를 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 서버의 구성을 도시하는 도면이다.
도 9는 일 실시예에 따른 사용자 단말의 구성을 도시하는 도면이다.
1 is a diagram illustrating an overall configuration of an integrity verification system according to an embodiment.
2 is a flowchart illustrating an integrity verification method performed in a user terminal according to an embodiment.
3 is a flowchart illustrating an integrity verification method performed in a server according to an embodiment.
4 is a flowchart illustrating an integrity verification method according to an exemplary embodiment.
5 is a diagram for describing an example of determining the number of functions to generate an authentication value according to an embodiment.
6 is a diagram illustrating an example of selecting functions to generate an authentication value according to an embodiment.
7 is a diagram for describing an example of generating functions to generate an authentication value according to an embodiment.
8 is a diagram illustrating a configuration of a server according to an embodiment.
9 is a diagram illustrating a configuration of a user terminal according to an embodiment.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings. However, since various changes may be made to the embodiments, the scope of the rights of the patent application is not limited or limited by these embodiments. It should be understood that all changes, equivalents, or substitutes to the embodiments are included in the scope of the rights.

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for illustrative purposes only and should not be interpreted as limiting. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof, does not preclude in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this application. Does not.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are assigned to the same components regardless of the reference numerals, and redundant descriptions thereof will be omitted. In describing the embodiments, when it is determined that a detailed description of related known technologies may unnecessarily obscure the subject matter of the embodiments, the detailed description thereof will be omitted.

도 1은 일 실시예에 따른 무결성 검증 시스템의 전체적인 구성을 도시하는 도면이다.1 is a diagram illustrating an overall configuration of an integrity verification system according to an embodiment.

무결성 검증 시스템은 서버(110)가 사용자 단말(130)의 식별 값에 대응하는 랜덤(random) 형태의 일회성 키 값을 발급하고, 서버(110) 및 사용자 단말(130)이 각각 인증 값을 생성하여, 서버(110)는 서버(110) 및 사용자 단말(130)에서 생성된 두 개의 인증 값이 동일한지 여부를 판단하고 판단 결과에 기초하여 사용자 단말(130)의 무결성을 검증할 수 있다.In the integrity verification system, the server 110 issues a one-time key value in a random form corresponding to the identification value of the user terminal 130, and the server 110 and the user terminal 130 each generate an authentication value. , The server 110 may determine whether the two authentication values generated by the server 110 and the user terminal 130 are the same, and verify the integrity of the user terminal 130 based on the determination result.

도 1을 참조하면, 무결성 검증 시스템은 서버(110), 네트워크(120) 및 사용자 단말(130)을 포함할 수 있다. 서버(110)와 사용자 단말(130)은 네트워크(120)(예를 들어, 인터넷 통신망, 유무선의 근거리 통신망 또는 광역 데이터 통신망 등)를 통해 서로 통신할 수 있다.Referring to FIG. 1, the integrity verification system may include a server 110, a network 120, and a user terminal 130. The server 110 and the user terminal 130 may communicate with each other through a network 120 (eg, an Internet communication network, a wired or wireless local area communication network, or a wide area data communication network).

일 실시예에서 사용자 단말(130)은 네트워크(120)를 통해 서버(110)에 일회성 키 값에 대한 생성 요청 데이터와 사용자 단말(130)의 식별 값을 전송하여 일회성 키 값에 대한 생성 요청을 할 수 있다. 서버(110)는 사용자 단말(130)로부터의 일회성 키 값에 대한 생성 요청에 응답하여 랜덤으로 일회성 키 값을 생성하여 네트워크(120)를 통해 사용자 단말에(130)에 전송할 수 있다. 여기서, 사용자 단말(130)은 애플리케이션 및 프로그램을 실행시킬 수 있는 컴퓨팅 장치로서, 예를 들어 셀룰러 폰, 스마트 폰, 퍼스널 컴퓨터, 랩탑, 노트북, 넷북, 태블릿 또는 휴대 정보 단말기(personal digital assistant; PDA)일 수 있다.In one embodiment, the user terminal 130 transmits the generation request data for the one-time key value and the identification value of the user terminal 130 to the server 110 through the network 120 to make a one-time key value generation request. I can. The server 110 may generate a one-time key value randomly in response to a request for generating a one-time key value from the user terminal 130 and transmit it to the user terminal 130 through the network 120. Here, the user terminal 130 is a computing device capable of executing applications and programs, for example, a cellular phone, a smart phone, a personal computer, a laptop, a notebook, a netbook, a tablet, or a personal digital assistant (PDA). Can be

서버(110)와 사용자 단말(130)은 일회성 키 값과 사용자 단말의 식별 값에 기초하여 동일한 방법으로 인증 값을 생성할 수 있다. 일 실시예에서 서버(110)와 사용자 단말(130)은 1,500개의 인증 값 생성을 위한 함수들 중에서 일부의 인증 값 생성 함수들을 선택하고, 선택된 함수들을 이용하여 인증 값을 생성할 수 있다. 서버(110)는 사용자 단말(130)에서 생성된 인증 값을 사용자 단말(130)로부터 수신하여 서버(110)에서 생성된 인증 값과 동일한지 여부를 판단할 수 있다. 두 개의 인증 값이 동일하다면 사용자 단말(130)은 무결한 것으로 결정되고, 두 개의 인증 값이 다르다면 사용자 단말(130)은 무결하지 않은 것으로 결정될 수 있다.The server 110 and the user terminal 130 may generate the authentication value in the same manner based on the one-time key value and the identification value of the user terminal. In an embodiment, the server 110 and the user terminal 130 may select some authentication value generation functions from among 1,500 authentication value generation functions, and generate an authentication value using the selected functions. The server 110 may receive the authentication value generated by the user terminal 130 from the user terminal 130 and determine whether the authentication value is the same as the authentication value generated by the server 110. If the two authentication values are the same, the user terminal 130 may be determined to be innocent, and if the two authentication values are different, the user terminal 130 may be determined to be innocent.

위 실시예에서 인증 값을 생성하기 위하여, 1,500개의 함수들 중에서 임의로 일부의 함수들을 선택하기 때문에, 본 발명의 무결성 검증 방법은 변조된 함수로 인한 변조 해킹 이슈를 해결할 수 있다.In the above embodiment, since some functions are arbitrarily selected from among 1,500 functions in order to generate an authentication value, the integrity verification method of the present invention can solve a tampering hacking issue caused by a modulated function.

이하에서는, 도면들을 참조하여 무결성 검증 방법을 보다 자세히 설명한다.Hereinafter, an integrity verification method will be described in more detail with reference to the drawings.

도 2는 일 실시예에 따른 사용자 단말에서 수행되는 무결성 검증 방법을 설명하기 위한 흐름도이다.2 is a flowchart illustrating an integrity verification method performed in a user terminal according to an embodiment.

도 2를 참조하면, 단계(210)에서 사용자 단말은 서버에 일회성 키 값에 대한 생성 요청 데이터를 전송할 수 있다. 사용자 단말은 단계(210)에서 사용자 단말의 식별 값을 서버에 더 전송할 수 있다. 여기서, 사용자 단말의 식별 값은 사용자 단말의 고유한 아이디(ID: identification)을 의미할 수 있다. 또한, 실시예에 따라 식별 값은 사용자 단말의 식별 값을 의미할 수 있고, 사용자 계정의 식별 값을 의미할 수 있다. 식별 값은, 사용자 단말의 식별 값으로, 사용자 단말을 식별할 수 있고, 사용자 계정 식별 값으로, 사용자의 계정 정보를 식별할 수 있다.Referring to FIG. 2, in step 210, the user terminal may transmit data for a one-time key value generation request to the server. The user terminal may further transmit the identification value of the user terminal to the server in step 210. Here, the identification value of the user terminal may mean a unique ID (ID) of the user terminal. In addition, according to an embodiment, the identification value may refer to an identification value of a user terminal or an identification value of a user account. The identification value is an identification value of the user terminal, and may identify the user terminal, and as a user account identification value, the user's account information may be identified.

단계(220)에서 사용자 단말은 생성 요청 데이터의 전송에 응답하여, 서버로부터 일회성 키 값을 수신할 수 있다. 여기서, 일회성 키 값은 키 값으로도 칭해질 수 있다.In step 220, the user terminal may receive a one-time key value from the server in response to transmission of the generation request data. Here, the one-time key value may also be referred to as a key value.

사용자 단말은 단계(220)에서 수신한 키 값과 사용자 단말의 식별 값에 기초하여, 단계(230)에서 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하고, 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성할 수 있다. 여기서 복수의 인증 값 생성 함수들은 부호 발생기 또는 코드 제너레이터(code generator)를 통해서 생성될 수 있다. 실시예에 따라 각각의 함수들은 각각의 함수들에 대응하는 고유 값을 가질 수 있다.The user terminal selects some authentication value generation functions from among the plurality of authentication value generation functions in step 230 based on the key value received in step 220 and the identification value of the user terminal, and selects some authentication values. You can create an authentication value using generation functions. Here, the plurality of authentication value generation functions may be generated through a code generator or a code generator. Depending on the embodiment, each function may have a unique value corresponding to each function.

일 실시예에서 사용자 단말은 일회성 키 값 및 식별 값에 기초하여 선택될 함수들의 개수를 결정할 수 있다. 사용자 단말은 16진법으로 표현된 일회성 키 값과 식별 값 각각에서 미리 정해진 특정 부분을 추출하고 결합할 수 있다. 사용자 단말은 결합된 값에 SHA(Secure Hash Algorithm)256해쉬 함수를 적용하여 해쉬 값을 생성할 수 있다. 사용자 단말은 해쉬 값에서 미리 정해진 특정 부분을 추출할 수 있고 추출된 특정 부분을 10진법으로 변환할 수 있다. 사용자 단말은 10진법으로 변환된 해쉬 값 및 함수의 총 개수에 기초하여, 복수의 함수들 중에서 인증 값 생성에 이용할 함수들의 개수를 결정할 수 있다.In an embodiment, the user terminal may determine the number of functions to be selected based on the one-time key value and the identification value. The user terminal may extract and combine a predetermined specific part from each of the one-time key value and the identification value expressed in hexadecimal notation. The user terminal may generate a hash value by applying a SHA(Secure Hash Algorithm) 256 hash function to the combined value. The user terminal can extract a predetermined specific portion from the hash value and convert the extracted specific portion into a decimal system. The user terminal may determine the number of functions to be used for generating an authentication value from among a plurality of functions based on the hash value converted to the decimal system and the total number of functions.

사용자 단말은 일회성 키 값, 사용자 단말의 식별 값 및 인증 값 생성에 이용할 함수들의 개수에 기초하여 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택할 수 있다. 예를 들어, 사용자 단말은 일회성 키 값의 특정 부분과 사용자 단말의 식별 값의 특정 부분이 결합된 값에 SHA256 해쉬 함수를 적용하여 해쉬 값을 생성할 수 있다. 사용자 단말은 해쉬 값의 앞 부분에서부터 8byte씩 순차적으로 특정 부분을 추출하고, 추출된 특정 부분에 SHA256 함수를 적용하여 인증 값 생성에 이용될 함수를 선택하기 위한 값을 추출할 수 있으며, 추출된 값에 대응하는 함수의 고유 값을 가진 인증 값 생성에 이용될 함수를 선택할 수 있다.The user terminal may select some of the authentication value generation functions from among the plurality of authentication value generation functions based on the one-time key value, the identification value of the user terminal, and the number of functions to be used to generate the authentication value. For example, the user terminal may generate a hash value by applying a SHA256 hash function to a value in which a specific part of a one-time key value and a specific part of the identification value of the user terminal are combined. The user terminal can sequentially extract a specific part by 8 bytes from the front part of the hash value, and apply the SHA256 function to the extracted specific part to extract the value to select the function to be used for generating the authentication value. You can select a function to be used to generate an authentication value with a unique value of the function corresponding to.

사용자 단말은 무결성 검증이 필요한 파일의 해쉬 값, 무결성 검증이 필요한 메모리 영역의 해쉬 값 및 선택된 함수들의 고유 값에 기초하여 인증 값을 생성할 수 있다.The user terminal may generate an authentication value based on a hash value of a file requiring integrity verification, a hash value of a memory area requiring integrity verification, and unique values of selected functions.

단계(240)에서 사용자 단말은 인증 값을 서버에 전송할 수 있다. 서버는 사용자 단말로부터 수신한 인증 값과, 서버가 사용자 단말과 동일한 로직으로 생성한 인증 값이 동일한지 여부에 기초하여 무결성 검증 결과를 결정할 수 있다.In step 240, the user terminal may transmit the authentication value to the server. The server may determine an integrity verification result based on whether the authentication value received from the user terminal and the authentication value generated by the server using the same logic as the user terminal are the same.

단계(250)에서 사용자 단말은 인증 값의 전송에 응답하여, 서버로부터 무결성 검증 결과에 대한 검증 결과 정보를 수신할 수 있다. 사용자 단말은 검증 결과 정보에 기초하여 게임, 애플리케이션 및 프로그램 중 적어도 하나에 대해 접속이 허용되거나 접속이 차단될 수 있다.In step 250, the user terminal may receive verification result information about the integrity verification result from the server in response to transmission of the authentication value. The user terminal may be allowed or blocked access to at least one of a game, an application, and a program based on the verification result information.

도 3은 일 실시예에 따른 서버에서 수행되는 무결성 검증 방법을 설명하기 위한 흐름도이다.3 is a flowchart illustrating an integrity verification method performed in a server according to an embodiment.

도 3을 참조하면, 단계(310)에서 서버는 사용자 단말로부터 일회성 키 값에 대한 생성 요청 데이터를 수신하는 경우, 일회성 키 값을 생성할 수 있다. 일 실시예에서 서버는 사용자 단말로부터 일회성 키 값에 대한 생성 요청 데이터와 함께 사용자 단말의 식별 값을 더 수신할 수 있다. 서버는 랜덤 방식으로 생성된 일회성 키 값과, 일회성 키 값에 대응하는 식별 값을 데이터베이스에 저장할 수 있다.Referring to FIG. 3, in step 310, when the server receives data for requesting generation of a one-time key value from a user terminal, it may generate a one-time key value. In an embodiment, the server may further receive the identification value of the user terminal together with the generation request data for the one-time key value from the user terminal. The server may store a one-time key value generated in a random manner and an identification value corresponding to the one-time key value in the database.

단계(320)에서 서버는 일회성 키 값을 사용자 단말에 전송할 수 있다.In step 320, the server may transmit a one-time key value to the user terminal.

단계(330)에서 서버는 사용자 단말로부터 사용자 단말에 의해 생성된 인증 값을 수신하는 경우, 키 값과 사용자 단말의 식별 값에 기초하여, 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하고, 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성할 수 있다. 서버는 도 2의 단계(230)에서 사용자 단말이 인증 값을 생성하는 로직과 동일한 로직을 통해 인증 값을 생성할 수 있다.In step 330, when the server receives the authentication value generated by the user terminal from the user terminal, based on the key value and the identification value of the user terminal, the server performs some authentication value generation functions among the plurality of authentication value generation functions. Select and use some of the selected authentication value generation functions to generate an authentication value. The server may generate the authentication value through the same logic as that of the user terminal generating the authentication value in step 230 of FIG. 2.

일 실시예에서 서버는 일회성 키 값 및 식별 값에 기초하여 부호 발생기로 생성된 복수의 인증 값 생성을 위한 함수들 중에서, 선택될 함수들의 개수를 결정할 수 있다. 서버는 일회성 키 값의 특정 부분과 식별 값의 특정 부분을 결합할 수 있다. 서버는 결합된 값에 SHA256 해쉬 함수를 적용하여 해쉬 값을 생성할 수 있다. 서버는 해쉬 값에서 특정 부분을 추출하여 16진법으로 된 해쉬 값의 특정 부분을 10진법으로 변환할 수 있다. 서버는 10진법으로 변환된 해쉬 값 및 함수의 총 개수에 기초하여 인증 값 생성에 이용할 함수들의 개수를 결정할 수 있다.In an embodiment, the server may determine the number of functions to be selected from among functions for generating a plurality of authentication values generated by a code generator based on the one-time key value and the identification value. The server may combine a specific part of a one-time key value with a specific part of an identification value. The server can generate a hash value by applying the SHA256 hash function to the combined value. The server can extract a specific part from the hash value and convert the specific part of the hash value in hexadecimal to decimal. The server may determine the number of functions to be used for generating the authentication value based on the hash value converted to the decimal system and the total number of functions.

일 실시예에서, 서버는 일회성 키 값, 식별 값 및 개수에 기초하여 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택할 수 있다. 서버는 키 값의 특정 부분과 식별 값의 특정 부분이 결합된 값에 SHA256 해쉬 함수를 적용하여 해쉬 값을 생성할 수 있다. 서버는 첫 번째로 선택할 함수를 결정하는 과정에서, 해쉬 값의 맨 앞부분에서부터 8byte를 추출하고, 두번째로 선택할 함수를 결정하는 과정에서는 해쉬 값의 맨 앞부분에서부터 한 칸 우측으로 이동한 부분부터 8byte를 추출할 수 있다. 서버는 이 과정을 선택할 함수들의 개수만큼 반복할 수 있다. 서버는 8byte씩 추출된 해쉬 값의 특정 부분들에 기초하여 인증 값 생성에 이용할 함수들을 순서대로 선택할 수 있다.In an embodiment, the server may select some of the authentication value generation functions from among the plurality of authentication value generation functions based on the one-time key value, the identification value, and the number. The server can generate a hash value by applying the SHA256 hash function to a value in which a specific part of a key value and a specific part of an identification value are combined. In the process of determining the first function to select, the server extracts 8 bytes from the top of the hash value, and in the process of determining the second function to select, the server extracts 8 bytes from the part shifted one space to the right from the top of the hash value. can do. The server can repeat this process as many times as the number of functions to select. The server may sequentially select functions to be used for generating authentication values based on specific parts of the hash value extracted by 8 bytes.

서버는 무결성 검증이 필요한 파일의 해쉬 값, 무결성 검증이 필요한 메모리 영역의 해쉬 값 및 선택된 함수들의 고유 값에 기초하여 인증 값을 생성할 수 있다.The server may generate an authentication value based on a hash value of a file requiring integrity verification, a hash value of a memory area requiring integrity verification, and unique values of selected functions.

단계(340)에서 서버는 사용자 단말로부터 수신한 인증 값과 생성된 인증 값에 기초하여 사용자 단말의 무결성 검증 결과를 결정할 수 있다. 서버는 일 실시예에서 사용자 단말로부터 수신한 인증 값과 생성된 인증 값의 일치 여부에 기초하여 무결성 검증 결과를 결정할 수 있다. 서버는 사용자 단말로부터 수신한 인증 값과 생성된 인증 값이 일치할 경우에는 사용자 단말이 무결한 것으로 결정할 수 있다. 반면에, 사용자 단말로부터 수신한 인증 값과 생성된 인증 값이 일치하지 않는 경우, 사용자 단말이 무결하지 않은 것으로 결정할 수 있다.In step 340, the server may determine an integrity verification result of the user terminal based on the authentication value received from the user terminal and the generated authentication value. In an embodiment, the server may determine the integrity verification result based on whether the authentication value received from the user terminal matches the generated authentication value. When the authentication value received from the user terminal and the generated authentication value match, the server may determine that the user terminal is innocent. On the other hand, when the authentication value received from the user terminal and the generated authentication value do not match, it may be determined that the user terminal is not innocent.

단계(350)에서 서버는 무결성 검증 결과에 대한 검증 결과 정보를 사용자 단말에 전송할 수 있다. 일 실시예에서 사용자 단말이 무결하지 않은 것으로 결정된 경우, 서버는 무결성 검증 결과에 대한 검증 결과 정보를 사용자 단말에 전송하며, 사용자 단말의 접속을 차단시킬 수 있다.In step 350, the server may transmit verification result information about the integrity verification result to the user terminal. In one embodiment, when it is determined that the user terminal is not innocent, the server transmits the verification result information on the integrity verification result to the user terminal, and may block the access of the user terminal.

도 4는 일 실시예에 따른 무결성 검증 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating an integrity verification method according to an exemplary embodiment.

도 4를 참조하면 단계(415)에서 사용자 단말(405)은 서버(410)에 일회성 키 값의 생성을 요청하기 위한 요청 데이터를 전송할 수 있다. 사용자 단말(405)은 서버(410)에 요청 데이터와 함께 사용자 단말(405)에 대응하는 식별 값을 전송할 수도 있다.Referring to FIG. 4, in step 415, the user terminal 405 may transmit request data for requesting generation of a one-time key value to the server 410. The user terminal 405 may transmit an identification value corresponding to the user terminal 405 together with the requested data to the server 410.

사용자 단말(405)로부터 요청 데이터를 수신한 서버(410)는 요청 데이터에 응답하여 단계(420)에서 일회성 키 값을 생성할 수 있다. 여기서 일회성 키 값은 랜덤 방식으로 생성될 수 있다. 서버(410)는 식별 값과 식별 값에 대응하는 일회성 키 값을 데이터베이스에 저장할 수 있다.The server 410 receiving the request data from the user terminal 405 may generate a one-time key value in step 420 in response to the request data. Here, the one-time key value may be generated in a random manner. The server 410 may store the identification value and a one-time key value corresponding to the identification value in the database.

단계(425)에서 서버(410)는 단계(420)에서 생성한 일회성 키 값을 사용자 단말(405)로 전송할 수 있다. 단계(430)에서 사용자 단말(405)는 단계(425)에서 서버(410)로부터 수신한 일회성 키 값, 식별 값에 기초하여 인증 값 생성에 이용할 함수들의 개수를 결정할 수 있고, 결정된 개수에 기초하여 복수의 함수들 중에서 인증 값 생성에 이용할 함수들을 선택할 수 있으며, 선택된 함수들을 통해 인증 값을 생성할 수 있다.In step 425, the server 410 may transmit the one-time key value generated in step 420 to the user terminal 405. In step 430, the user terminal 405 may determine the number of functions to be used for generating the authentication value based on the one-time key value and identification value received from the server 410 in step 425, and based on the determined number. Functions to be used for generating an authentication value can be selected from among a plurality of functions, and an authentication value can be generated through the selected functions.

단계(435)에서 사용자 단말(405)은 단계(430)에서 생성한 인증 값을 서버(410)로 전송할 수 있다. 단계(440)에서 서버(410)는 사용자 단말(405)이 인증 값을 생성하기 위해 수행한 로직과 동일한 로직을 통해 인증 값을 생성할 수 있다.In step 435, the user terminal 405 may transmit the authentication value generated in step 430 to the server 410. In step 440, the server 410 may generate the authentication value through the same logic as the logic performed by the user terminal 405 to generate the authentication value.

서버(410)는 단계(440)에서 키 값과 식별 값에 기초하여, 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하고, 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성할 수 있다.The server 410 selects some authentication value generation functions from among the plurality of authentication value generation functions, based on the key value and the identification value in step 440, and uses the selected authentication value generation functions to generate the authentication value. Can be generated.

단계(445)에서 서버는(410)는 사용자 단말(405)로부터 수신한 인증 값과 서버(410)에서 생성된 인증 값에 기초하여 사용자 단말(405)의 무결성 검증 결과를 결정할 수 있다. 서버(410)는 사용자 단말(405)에서 생성된 인증 값과 서버(410)에서 생성된 인증 값을 비교하여 두 개의 인증 값이 동일한지 여부를 확인할 수 있고, 비교 결과에 기초하여 사용자 단말(405)의 무결성을 검증 결과를 결정할 수 있다.In step 445, the server 410 may determine an integrity verification result of the user terminal 405 based on the authentication value received from the user terminal 405 and the authentication value generated by the server 410. The server 410 may compare the authentication value generated in the user terminal 405 with the authentication value generated in the server 410 to check whether the two authentication values are the same, and based on the comparison result, the user terminal 405 ) Can determine the integrity of the verification result.

일 실시예에서 두 개의 인증 값이 동일하다면 사용자 단말(405)은 무결한 것으로 결정될 수 있고, 다른 실시예에서 두 개의 인증 값이 다르다면 사용자 단말(405)은 무결하지 않은 것으로 결정될 수 있다.In an embodiment, if the two authentication values are the same, the user terminal 405 may be determined to be innocent, and in another embodiment, if the two authentication values are different, the user terminal 405 may be determined to be innocent.

서버(410)는 단계(450)에서 무결성 검증 결과에 대한 검증 결과 정보를 사용자 단말(405)에 전송할 수 있고, 사용자 단말(405)은 서버(410)로부터 무결성 검증 결과에 대한 검증 결과 정보를 수신할 수 있다.The server 410 may transmit verification result information about the integrity verification result to the user terminal 405 in step 450, and the user terminal 405 receives verification result information about the integrity verification result from the server 410 can do.

도 5는 일 실시예에 따른 인증 값을 생성할 함수들의 개수를 결정하는 일례를 설명하기 위한 도면이다.5 is a diagram for describing an example of determining the number of functions to generate an authentication value according to an embodiment.

도 5를 참조하면, 일회성 키 값(510)에서 미리 정해진 기준에 기초하여 선택된 키 값의 특정 부분의 값(515)과 사용자 단말의 식별 값(520)에서 미리 정해진 기준에 기초하여 선택된 식별 값의 특정 부분의 값(525)은 결합될 수 있다. 키 값의 특정 부분의 값(515)과 식별 값의 특정 부분의 값(525)이 결합된 값(530)에 SHA256 해쉬 함수를 적용하면 해쉬 값(535)이 생성될 수 있다. 16진법인 해쉬 값(535)의 미리 정해진 특정 부분인 D351C142를 10진법으로 변환하면 3545350466가 될 수 있다. 사용자 단말 또는 서버는 3545350466를 최대 수행할 함수 개수의 값에서 최소 수행할 함수 개수의 값을 뺀 값으로 나눈 나머지 값에 최소 수행할 함수 개수의 값을 더하여 인증 값 생성에 이용할 함수의 개수를 결정할 수 있다. 예를 들어, 최대 수행할 함수 개수가 20이고, 최소 수행할 함수 개수가 5인 경우, 인증 값을 생성하는 데에 이용할 함수의 개수는 16개가 될 수 있다.5, a value 515 of a specific part of a key value selected based on a predetermined criterion in a one-time key value 510 and an identification value selected based on a predetermined criterion in an identification value 520 of a user terminal The values 525 of specific parts can be combined. A hash value 535 may be generated by applying the SHA256 hash function to a value 530 in which the value 515 of the specific part of the key value and the value 525 of the specific part of the identification value are combined. When D351C142, which is a predetermined specific part of the hash value 535, which is hexadecimal, is converted to decimal, it may be 3545350466. The user terminal or server can determine the number of functions to be used for generating authentication values by dividing 3545350466 by the value of the maximum number of functions to be performed and the value of the minimum number of functions to be performed, and adding the value of the minimum number of functions to be performed. have. For example, when the maximum number of functions to be executed is 20 and the minimum number of functions to be executed is 5, the number of functions to be used to generate the authentication value may be 16.

도 6은 일 실시예에 따른 인증 값을 생성할 함수들을 선택하는 일례를 설명하기 위한 도면이다.6 is a diagram illustrating an example of selecting functions to generate an authentication value according to an embodiment.

도 6을 참조하면, 일회성 키 값(610)에서 미리 정해진 기준에 기초하여 선택된 키 값의 특정 부분의 값(615)과 사용자 단말의 식별 값(620)에서 미리 정해진 기준에 기초하여 선택된 식별 값의 특정 부분의 값(625)은 결합될 수 있다. 키 값의 특정 부분의 값(615)과 식별 값의 특정 부분의 값(625)이 결합된 값(630)에 SHA256 해쉬 함수를 적용하면 해쉬 값(635)이 생성될 수 있다. 사용자 단말 또는 서버는 첫 번째로 이용할 함수를 결정하기 위하여 해쉬 값(635)의 맨 앞부분부터 8byte에 해당하는 만큼을 추출할 수 있다. 추출된 값은 첫 번째로 이용할 함수를 결정하기 위한 해쉬 값의 특정 부분의 값(640)이 될 수 있다. 사용자 단말 또는 서버는 두 번째로 이용할 함수를 결정하기 위한 해쉬 값의 특정 부분의 값(645)으로 해쉬 값(635)의 맨 앞부분에서 우측으로 한 칸 이동한 부분부터 8byte에 해당하는 만큼을 추출할 수 있다. 선택될 함수가 16개인 경우, 사용자 단말 또는 서버는 이와 같은 방법으로 열여섯 번째로 이용할 함수를 결정하기 위한 해쉬 값의 특정 부분의 값(650)으로 맨 앞부분에서 우측으로 15칸 이동한 부분부터 8byte에 해당하는 만큼을 추출할 수 있다.Referring to FIG. 6, a value of a specific part of a key value selected based on a predetermined criterion in a one-time key value 610 and an identification value selected based on a predetermined criterion in an identification value 620 of a user terminal. Values 625 of specific parts can be combined. A hash value 635 may be generated by applying the SHA256 hash function to a value 630 in which the value 615 of the specific part of the key value and the value 625 of the specific part of the identification value are combined. The user terminal or the server may extract an amount corresponding to 8 bytes from the front part of the hash value 635 to determine the function to be used first. The extracted value may be a value 640 of a specific portion of a hash value for determining a function to be used first. The user terminal or server extracts 8 bytes from the portion shifted one space to the right from the front part of the hash value (635) as the value (645) of a specific part of the hash value to determine the function to be used second. I can. If there are 16 functions to be selected, the user terminal or the server is the value 650 of the specific part of the hash value to determine the function to be used the sixteenth in this way, 8 bytes from the part moved 15 spaces from the front part to the right. You can extract as much as it corresponds to.

만약 해쉬 값(635)에서 더 이상 8byte의 특정 부분을 추출할 수 없을 경우, 원래의 해쉬 값(635)에 SHA256 함수를 적용시킨 값을 결합시켜 계속해서 8byte의 특정 부분을 추출할 수 있다.If a specific part of 8 bytes can no longer be extracted from the hash value 635, a specific part of 8 bytes can be continuously extracted by combining the value obtained by applying the SHA256 function to the original hash value 635.

이러한 방법으로 추출된 16개의 해쉬 값들을 16진법에서 10진법으로 변환할 수 있다. 첫 번째로 이용할 함수는, 첫 번째로 이용할 함수를 결정하기 위한 해쉬 값의 특정 부분의 값(640)을 10진법으로 변환한 값을 총 함수의 개수로 나눈 나머지와 고유 값이 동일한 함수가 될 수 있다. 예를 들어, 첫 번째로 이용할 함수를 결정하기 위한 해쉬 값의 특정 부분의 값(640)은 31141CD1인데, 이를 10진법으로 변환하면 823401681가 될 수 있다. 823401681를 총 함수의 개수인 1500으로 나눈 나머지는 681이 될 수 있다. 이 경우, 첫 번째로 이용할 함수는 함수의 고유 값이 681인 함수가 될 수 있다. 또한, 두 번째로 이용할 함수를 결정하기 위한 해쉬 값의 특정 부분의 값(645)은 1141CD13인데, 이를 10진법으로 변환하면 289525011가 될 수 있다. 289525011를 총 함수의 개수인 1500으로 나눈 나머지는 1011이 될 수 있다. 이 경우 두 번째로 이용할 함수는 함수의 고유 값이 1011인 함수가 될 수 있다. 이와 같은 방법으로 사용자 단말과 서버는 16개의 함수를 선택할 수 있다. 열여섯 번째로 이용할 함수를 결정하기 위한 해쉬 값의 특정 부분의 값(650)은 88F52C7E인데, 이를 10진법으로 변환하면 2297769086가 될 수 있다. 2297769086를 총 함수의 개수인 1500으로 나눈 나머지는 86이 될 수 있다. 이 경우, 열여섯 번째로 이용할 함수는 함수의 고유 값이 86인 함수가 될 수 있다.The 16 hash values extracted in this way can be converted from hexadecimal to decimal. The first function to be used can be a function having the same eigenvalue as the remainder obtained by dividing the value (640) of a specific part of the hash value for determining the function to be used first, converted to base decimal, by the total number of functions. have. For example, the value 640 of the specific part of the hash value for determining the function to be used first is 31141CD1, which may be 823401681 by converting it into a decimal system. The remainder of 823401681 divided by 1500, which is the total number of functions, may be 681. In this case, the function to be used first may be a function whose intrinsic value is 681. In addition, the value 645 of the specific part of the hash value for determining the function to be used second is 1141CD13, which may be 289525011 by converting it into a decimal system. The remainder of dividing 289525011 by 1500, which is the total number of functions, may be 1011. In this case, the second function to be used may be a function whose intrinsic value is 1011. In this way, the user terminal and the server can select 16 functions. The value 650 of the specific part of the hash value for determining the function to be used as the sixteenth is 88F52C7E, which may be 2297769086 by converting it to base 10. Dividing 2297769086 by 1500, the total number of functions, the remainder can be 86. In this case, the function to be used sixteenth may be a function whose intrinsic value is 86.

다른 실시예에서 선택된 함수에 기초하여 사용자 단말 및 서버는 인증 값을 생성할 수 있다. 예를 들어, 무결성 확인이 필요한 파일 및 메모리 영역의 해쉬 값이 1234이고, 인증 값 생성에 이용될 함수의 개수가 3으로 결정되며, 첫 번째 함수로 8번 함수, 두 번째 함수로 11번 함수, 세 번째 함수로 2번 함수가 선택되었을 경우, 인증 값은 다음과 같은 방법으로 생성될 수 있다.In another embodiment, the user terminal and the server may generate an authentication value based on the selected function. For example, the hash value of the file and memory area requiring integrity check is 1234, and the number of functions to be used to generate the authentication value is determined as 3, the first function is the 8th function, the second function is the 11th function, When function 2 is selected as the third function, the authentication value can be generated in the following way.

첫 번째 함수의 수행에 따른 결과 값은 입력 값과 해쉬 값인 1234를 더한 값에 함수의 고유 값인 8을 곱하여 산출될 수 있다. 여기서 입력 값은 이전 함수의 수행에 따른 결과 값이 현재 함수의 입력 값이지만 첫 번째 함수의 이전 함수는 존재하지 않기 때문에 입력 값은 0이 될 수 있다. 따라서 첫 번째 함수의 수행에 따른 결과 값은 9872가 될 수 있다.A result value according to the execution of the first function may be calculated by multiplying a value obtained by adding an input value and a hash value of 1234 by 8, which is an inherent value of the function. Here, as for the input value, the result of the execution of the previous function is the input value of the current function, but since the previous function of the first function does not exist, the input value may be 0. Therefore, the result value according to the execution of the first function may be 9872.

두 번째 함수의 수행에 따른 결과 값은 입력 값인 9872에 해쉬 값인 1234를 더한 값에 함수의 고유 값인 11을 곱한 122166이 될 수 있다.The result of the execution of the second function may be 122166 obtained by multiplying a value obtained by adding a hash value of 1234 to an input value of 9872 and an inherent value of the function of 11.

세 번째 함수의 수행에 따른 결과 값은 입력 값인 122166에 해쉬 값인 1234를 더한 값에 함수의 고유 값인 2를 곱한 246800이 될 수 있다. 이 경우, 인증 값은 246800이 될 수 있다.The result of the execution of the third function may be 246800 obtained by multiplying a value obtained by adding a hash value of 1234 to an input value of 122166 and a function's intrinsic value of 2. In this case, the authentication value may be 246800.

도 7은 일 실시예에 따른 인증 값을 생성할 함수들을 생성하는 일례를 설명하기 위한 도면이다.7 is a diagram for describing an example of generating functions to generate an authentication value according to an embodiment.

도 7을 참조하면, 총 m*n개의 인증 값을 생성하기 위한 복수의 함수가 생성될 수 있다. 같은 동작을 하지만 로직이 다른 함수 n개를 m번 복제하여 n*m개의 함수가 생성될 수 있다. 각각의 함수들은 고유의 값을 가지고 있어, 하나의 함수는 다른 함수들과 구분이 될 수 있고, 인증 값 생성에 적용될 수 있다. 일 실시예에서 한 함수를 통해 산출된 결과 값은 다음 함수를 통해 산출될 결과 값의 입력 값으로 적용되는 체인(chain) 형태를 가질 수 있다. 또한 마지막으로 산출된 결과 값은 인증 값이 될 수 있다.Referring to FIG. 7, a plurality of functions for generating a total of m*n authentication values may be generated. The same operation, but n*m functions can be created by duplicating n functions with different logic m times. Since each function has its own value, one function can be distinguished from other functions and can be applied to the creation of authentication values. In an embodiment, a result value calculated through one function may have a chain form applied as an input value of a result value calculated through the next function. Also, the finally calculated result value may be an authentication value.

도 8은 일 실시예에 따른 서버의 구성을 도시하는 도면이다.8 is a diagram illustrating a configuration of a server according to an embodiment.

도 8을 참조하면, 서버(800)는 통신 인터페이스(810), 프로세서(820), 메모리(830)를 포함할 수 있다. 실시예에 따라, 서버(800)는 데이터베이스(840)를 더 포함할 수도 있다.Referring to FIG. 8, the server 800 may include a communication interface 810, a processor 820, and a memory 830. According to an embodiment, the server 800 may further include a database 840.

메모리(830)는 프로세서(820)에 연결되고, 프로세서(820)에 의해 실행가능한 인스트럭션들, 프로세서(820)가 연산할 데이터 또는 프로세서(820)에 의해 처리된 데이터를 저장할 수 있다. 메모리(830)는 비일시적인 컴퓨터 판독가능 매체, 예컨대 고속 랜덤 액세스 메모리 및/또는 비휘발성 컴퓨터 판독가능 저장 매체(예컨대, 하나 이상의 디스크 저장 장치, 플래쉬 메모리 장치, 또는 기타 비휘발성 솔리드 스테이트 메모리 장치)를 포함할 수 있다.The memory 830 is connected to the processor 820 and may store instructions executable by the processor 820, data to be calculated by the processor 820, or data processed by the processor 820. Memory 830 includes non-transitory computer-readable media, such as high-speed random access memory and/or non-volatile computer-readable storage media (e.g., one or more disk storage devices, flash memory devices, or other non-volatile solid state memory devices). Can include.

통신 인터페이스(810)는 외부 장치(예를 들어, 게임 사용자 단말)와 통신하기 위한 인터페이스를 제공한다. 통신 인터페이스(810)는 유선 또는 무선 네트워크를 통해 외부 장치와 통신할 수 있다.The communication interface 810 provides an interface for communicating with an external device (eg, a game user terminal). The communication interface 810 may communicate with an external device through a wired or wireless network.

데이터베이스(840)는 서버(800)가 무결성 검증 방법을 수행하는데 필요한 데이터를 저장할 수 있다. 예를 들어, 데이터베이스(840)는 사용자 단말의 식별 값 및 식별 값에 대응하는 일회성 키 값이 저장될 수 있고, 인증 값을 생성할 수 있는 복수의 함수들이 저장될 수 있다.The database 840 may store data necessary for the server 800 to perform the integrity verification method. For example, the database 840 may store an identification value of a user terminal and a one-time key value corresponding to the identification value, and a plurality of functions capable of generating an authentication value may be stored.

프로세서(820)는 서버(800) 내에서 실행하기 위한 기능 및 인스트럭션들을 실행하고, 서버(800)의 전체적인 동작을 제어한다. 프로세서(820)는 도 3 및 도 4에서 설명된 서버의 동작과 관련된 하나 이상의 동작을 수행할 수 있다.The processor 820 executes functions and instructions for execution in the server 800 and controls the overall operation of the server 800. The processor 820 may perform one or more operations related to the operation of the server described in FIGS. 3 and 4.

예를 들어, 프로세서(820)는 사용자 단말로부터 일회성 키 값에 대한 생성 요청 데이터를 수신하는 경우, 일회성 키 값을 생성하고, 일회성 키 값을 사용자 단말에 전송하고, 사용자 단말로부터 사용자 단말에 의해 생성된 인증 값을 수신하는 경우, 키 값과 사용자 단말의 식별 값에 기초하여, 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택할 수 있다. 프로세서(820)는 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성하고, 사용자 단말로부터 수신한 인증 값과 생성된 인증 값에 기초하여 사용자 단말의 무결성 검증 결과를 결정하고, 무결성 검증 결과에 대한 검증 결과 정보를 사용자 단말에 전송할 수 있다.For example, the processor 820 generates a one-time key value, transmits the one-time key value to the user terminal, and generates a one-time key value from the user terminal by the user terminal when receiving data requested for generation of the one-time key value from the user terminal. When receiving the authenticated authentication value, some authentication value generating functions may be selected from among a plurality of authentication value generating functions based on the key value and the identification value of the user terminal. The processor 820 generates an authentication value using some selected authentication value generation functions, determines the integrity verification result of the user terminal based on the authentication value received from the user terminal and the generated authentication value, and determines the integrity verification result. Information about the verification result can be transmitted to the user terminal.

프로세서(820)는 일회성 키 값 및 식별 값에 기초하여 선택될 함수들의 개수를 결정할 수 있고, 일회성 키 값, 식별 값 및 개수에 기초하여 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택할 수 있다. 또한, 프로세서(820)는 무결성 검증이 필요한 파일의 해쉬 값, 무결성 검증이 필요한 메모리 영역의 해쉬 값 및 선택된 함수들의 고유 값에 기초하여 인증 값을 생성할 수 있다.The processor 820 may determine the number of functions to be selected based on the one-time key value and the identification value, and some authentication value generation functions among the plurality of authentication value generation functions based on the one-time key value, the identification value, and the number. You can choose. Also, the processor 820 may generate an authentication value based on a hash value of a file requiring integrity verification, a hash value of a memory region requiring integrity verification, and unique values of selected functions.

프로세서(820)는 사용자 단말로부터 수신한 인증 값과 생성된 인증 값의 일치 여부에 기초하여 무결성 검증 결과를 결정할 수 있다. 사용자 단말로부터 수신한 인증 값과 생성된 인증 값이 일치하지 않는 경우, 프로세서(820)는 사용자 단말이 무결하지 않은 것으로 결정할 수 있다.The processor 820 may determine an integrity verification result based on whether the authentication value received from the user terminal matches the generated authentication value. If the authentication value received from the user terminal and the generated authentication value do not match, the processor 820 may determine that the user terminal is not intact.

도 9는 일 실시예에 따른 사용자 단말의 구성을 도시하는 도면이다.9 is a diagram illustrating a configuration of a user terminal according to an embodiment.

도 9을 참조하면, 사용자 단말(900)은 프로세서(910), 메모리(920) 및 통신 인터페이스(930)를 포함한다. 실시예에 따라, 사용자 단말(900)은 사용자 입력 인터페이스(940) 및 디스플레이(950)를 더 포함할 수 있다.Referring to FIG. 9, the user terminal 900 includes a processor 910, a memory 920, and a communication interface 930. Depending on the embodiment, the user terminal 900 may further include a user input interface 940 and a display 950.

메모리(920)는 프로세서(910)에 연결되고, 프로세서(910)에 의해 실행가능한 인스트럭션들, 프로세서(910)가 연산할 데이터 또는 프로세서(910)에 의해 처리된 데이터를 저장할 수 있다. 메모리(920)는 비일시적인 컴퓨터 판독가능 매체, 예컨대 고속 랜덤 액세스 메모리 및/또는 비휘발성 컴퓨터 판독가능 저장 매체(예컨대, 하나 이상의 디스크 저장 장치, 플래쉬 메모리 장치, 또는 기타 비휘발성 솔리드 스테이트 메모리 장치)를 포함할 수 있다.The memory 920 is connected to the processor 910 and may store instructions executable by the processor 910, data to be calculated by the processor 910, or data processed by the processor 910. Memory 920 includes non-transitory computer-readable media, such as high-speed random access memory and/or non-volatile computer-readable storage media (e.g., one or more disk storage devices, flash memory devices, or other non-volatile solid state memory devices). Can include.

통신 인터페이스(930)는 외부 장치(예를 들어, 게임 서버 및 서버)와 통신하기 위한 인터페이스를 제공한다. 통신 인터페이스(930)는 유선 또는 무선 네트워크를 통해 외부 장치와 통신할 수 있다.The communication interface 930 provides an interface for communicating with external devices (eg, a game server and a server). The communication interface 930 may communicate with an external device through a wired or wireless network.

사용자 입력 인터페이스(940)는 사용자에 의해 입력되는 사용자 입력을 수신한다. 디스플레이(950)는 서버로부터 수신한 알림을 출력할 수 있다. 일 예에서, 디스플레이(950)는 모니터 또는 터치 스크린 디스플레이일 수 있다.The user input interface 940 receives a user input input by a user. The display 950 may output a notification received from the server. In one example, display 950 may be a monitor or a touch screen display.

프로세서(910)는 도 2 및 도 4에서 설명된 사용자 단말의 동작과 관련된 하나 이상의 동작을 수행할 수 있다. 예를 들어, 프로세서(910)는 서버에 일회성 키 값에 대한 생성 요청 데이터를 전송하고, 생성 요청 데이터의 전송에 응답하여, 서버로부터 일회성 키 값을 수신하고, 키 값과 사용자 단말의 식별 값에 기초하여, 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택할 수 있다. 또한, 프로세서(910)는 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성하고, 인증 값을 서버에 전송하고, 인증 값의 전송에 응답하여, 서버로부터 무결성 검증 결과에 대한 검증 결과 정보를 수신할 수 있다.The processor 910 may perform one or more operations related to the operation of the user terminal described in FIGS. 2 and 4. For example, the processor 910 transmits the generation request data for the one-time key value to the server, receives the one-time key value from the server in response to the transmission of the generation request data, and determines the key value and the identification value of the user terminal. Based on the authentication value generating functions, some authentication value generating functions may be selected. In addition, the processor 910 generates an authentication value using some of the selected authentication value generation functions, transmits the authentication value to the server, and in response to the transmission of the authentication value, the processor 910 receives the verification result information for the integrity verification result from the server. Can receive.

프로세서(910)는 사용자 단말의 식별 값을 서버에 더 전송하고, 일회성 키 값 및 식별 값에 기초하여 선택될 함수들의 개수를 결정할 수 있다. 또한, 프로세서(910)는 일회성 키 값, 식별 값 및 개수에 기초하여 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하고, 무결성 검증이 필요한 파일의 해쉬 값, 무결성 검증이 필요한 메모리 영역의 해쉬 값 및 선택된 함수들의 고유 값에 기초하여 인증 값을 생성할 수 있다.The processor 910 may further transmit the identification value of the user terminal to the server and determine the number of functions to be selected based on the one-time key value and the identification value. In addition, the processor 910 selects some of the authentication value generation functions from among the plurality of authentication value generation functions based on the one-time key value, identification value, and number, and the hash value of the file requiring integrity verification, and the memory requiring integrity verification. An authentication value may be generated based on the hash value of the domain and the unique values of the selected functions.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the devices and components described in the embodiments are, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA). , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions, such as one or more general purpose computers or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications executed on the operating system. In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of software. For the convenience of understanding, although it is sometimes described that one processing device is used, one of ordinary skill in the art, the processing device is a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to behave as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodyed in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operation of the embodiment, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described by the limited embodiments and drawings, various modifications and variations are possible from the above description by those of ordinary skill in the art. For example, the described techniques are performed in a different order from the described method, and/or components such as a system, structure, device, circuit, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims fall within the scope of the following claims.

110, 410, 800: 서버
120: 네트워크
130, 405, 900: 사용자 단말
810, 930: 통신 인터페이스
820, 910: 프로세서
830, 920: 메모리
840: 데이터베이스
940: 사용자 입력 인터페이스
950: 통신 인터페이스
110, 410, 800: server
120: network
130, 405, 900: user terminal
810, 930: communication interface
820, 910: processor
830, 920: memory
840: database
940: user input interface
950: communication interface

Claims (20)

사용자 단말에 의해 수행되는 무결성 검증 방법에 있어서,
서버에 일회성 키(Key) 값에 대한 생성 요청 데이터를 전송하는 단계;
상기 생성 요청 데이터의 전송에 응답하여, 상기 서버로부터 일회성 키 값을 수신하는 단계;
상기 키 값과 상기 사용자 단말의 식별 값에 기초하여, 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하고, 상기 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성하는 단계;
상기 인증 값을 상기 서버에 전송하는 단계; 및
상기 인증 값의 전송에 응답하여, 상기 서버로부터 무결성 검증 결과에 대한 검증 결과 정보를 수신하는 단계
를 포함하는,
무결성 검증 방법.
In the integrity verification method performed by a user terminal,
Transmitting generation request data for a one-time key value to a server;
Receiving a one-time key value from the server in response to the transmission of the generation request data;
Selecting some authentication value generating functions from among a plurality of authentication value generating functions based on the key value and the identification value of the user terminal, and generating an authentication value using the selected partial authentication value generating functions;
Transmitting the authentication value to the server; And
In response to the transmission of the authentication value, receiving verification result information on the integrity verification result from the server
Containing,
Integrity verification method.
제1항에 있어서,
상기 요청데이터를 전송하는 단계는,
상기 사용자 단말의 상기 식별 값을 상기 서버에 더 전송하는 단계
를 포함하는,
무결성 검증 방법.
The method of claim 1,
Transmitting the request data,
Further transmitting the identification value of the user terminal to the server
Containing,
Integrity verification method.
제1항에 있어서,
상기 인증 값을 생성하는 단계는,
상기 일회성 키 값 및 상기 식별 값에 기초하여 선택될 함수들의 개수를 결정하는 단계
를 포함하는,
무결성 검증 방법.
The method of claim 1,
The step of generating the authentication value,
Determining the number of functions to be selected based on the one-time key value and the identification value
Containing,
Integrity verification method.
제3항에 있어서,
상기 인증 값을 생성하는 단계는,
상기 일회성 키 값, 상기 식별 값 및 상기 개수에 기초하여 상기 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하는 단계
를 포함하는,
무결성 검증 방법.
The method of claim 3,
The step of generating the authentication value,
Selecting some of the authentication value generation functions among the plurality of authentication value generation functions based on the one-time key value, the identification value, and the number
Containing,
Integrity verification method.
제4항에 있어서,
상기 인증 값을 생성하는 단계는,
무결성 검증이 필요한 파일의 해쉬(Hash) 값, 무결성 검증이 필요한 메모리 영역의 해쉬 값 및 상기 선택된 함수들의 고유 값에 기초하여 상기 인증 값을 생성하는 단계
를 포함하는,
무결성 검증 방법.
The method of claim 4,
The step of generating the authentication value,
Generating the authentication value based on a hash value of a file requiring integrity verification, a hash value of a memory area requiring integrity verification, and unique values of the selected functions
Containing,
Integrity verification method.
서버에 의해 수행되는 무결성 검증 방법에 있어서,
사용자 단말로부터 일회성 키 값에 대한 생성 요청 데이터를 수신하는 경우, 일회성 키 값을 생성하는 단계;
상기 일회성 키 값을 상기 사용자 단말에 전송하는 단계;
상기 사용자 단말로부터 상기 사용자 단말에 의해 생성된 인증 값을 수신하는 경우, 상기 키 값과 상기 사용자 단말의 식별 값에 기초하여, 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하고, 상기 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성하는 단계;
상기 사용자 단말로부터 수신한 인증 값과 상기 생성된 인증 값에 기초하여 상기 사용자 단말의 무결성 검증 결과를 결정하는 단계; 및
상기 무결성 검증 결과에 대한 검증 결과 정보를 상기 사용자 단말에 전송하는 단계
를 포함하는,
무결성 검증 방법.
In the integrity verification method performed by the server,
Generating a one-time key value when receiving request data for a one-time key value from a user terminal;
Transmitting the one-time key value to the user terminal;
When receiving the authentication value generated by the user terminal from the user terminal, based on the key value and the identification value of the user terminal, select some authentication value generation functions from among a plurality of authentication value generation functions, Generating an authentication value using the selected partial authentication value generating functions;
Determining an integrity verification result of the user terminal based on an authentication value received from the user terminal and the generated authentication value; And
Transmitting verification result information on the integrity verification result to the user terminal
Containing,
Integrity verification method.
제6항에 있어서,
상기 인증 값을 생성하는 단계는,
상기 일회성 키 값 및 상기 식별 값에 기초하여 선택될 함수들의 개수를 결정하는 단계
를 포함하는,
무결성 검증 방법.
The method of claim 6,
The step of generating the authentication value,
Determining the number of functions to be selected based on the one-time key value and the identification value
Containing,
Integrity verification method.
제7항에 있어서,
상기 인증 값을 생성하는 단계는,
상기 일회성 키 값, 상기 식별 값 및 상기 개수에 기초하여 상기 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하는 단계
를 포함하는,
무결성 검증 방법.
The method of claim 7,
The step of generating the authentication value,
Selecting some of the authentication value generation functions among the plurality of authentication value generation functions based on the one-time key value, the identification value, and the number
Containing,
Integrity verification method.
제8항에 있어서,
상기 인증 값을 생성하는 단계는,
무결성 검증이 필요한 파일의 해쉬 값, 무결성 검증이 필요한 메모리 영역의 해쉬 값 및 상기 선택된 함수들의 고유 값에 기초하여 상기 인증 값을 생성하는 단계
를 포함하는,
무결성 검증 방법.
The method of claim 8,
The step of generating the authentication value,
Generating the authentication value based on a hash value of a file requiring integrity verification, a hash value of a memory area requiring integrity verification, and unique values of the selected functions
Containing,
Integrity verification method.
제6항에 있어서,
상기 무결성 검증 결과를 결정하는 단계는,
상기 사용자 단말로부터 수신한 인증 값과 상기 생성된 인증 값의 일치 여부에 기초하여 상기 무결성 검증 결과를 결정하는 단계
를 포함하는,
무결성 검증 방법.
The method of claim 6,
The step of determining the integrity verification result,
Determining the integrity verification result based on whether the authentication value received from the user terminal matches the generated authentication value
Containing,
Integrity verification method.
제10항에 있어서,
상기 사용자 단말로부터 수신한 인증 값과 상기 생성된 인증 값이 일치하지 않는 경우, 상기 사용자 단말이 무결하지 않은 것으로 결정하는,
무결성 검증 방법.
The method of claim 10,
If the authentication value received from the user terminal and the generated authentication value do not match, determining that the user terminal is not integrity,
Integrity verification method.
제1항 내지 제11항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
A computer-readable recording medium storing a program for performing the method of claim 1.
무결성 검증 방법을 수행하는 사용자 단말에 있어서,
메모리 및 프로세서를 포함하고,
상기 메모리는 상기 프로세서에 의해 실행 가능한 인스트럭션들(instructions)을 저장하고,
상기 인스트럭션들이 상기 프로세서에 의해 실행될 때, 상기 프로세서는,
서버에 일회성 키 값에 대한 생성 요청 데이터를 전송하고,
상기 생성 요청 데이터의 전송에 응답하여, 상기 서버로부터 일회성 키 값을 수신하고,
상기 키 값과 상기 사용자 단말의 식별 값에 기초하여, 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하고, 상기 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성하고,
상기 인증 값을 상기 서버에 전송하고,
상기 인증 값의 전송에 응답하여, 상기 서버로부터 무결성 검증 결과에 대한 검증 결과 정보를 수신하는,
사용자 단말.
In the user terminal performing the integrity verification method,
Including memory and processor,
The memory stores instructions executable by the processor,
When the instructions are executed by the processor, the processor,
Sends the request data for the one-time key value to the server,
In response to the transmission of the generation request data, receiving a one-time key value from the server,
Based on the key value and the identification value of the user terminal, some authentication value generation functions are selected from among a plurality of authentication value generation functions, and an authentication value is generated using the selected partial authentication value generation functions,
Transmit the authentication value to the server,
In response to the transmission of the authentication value, receiving verification result information on the integrity verification result from the server,
User terminal.
제13항에 있어서,
상기 프로세서는,
상기 일회성 키 값 및 상기 식별 값에 기초하여 선택될 함수들의 개수를 결정하는,
사용자 단말.
The method of claim 13,
The processor,
Determining the number of functions to be selected based on the one-time key value and the identification value,
User terminal.
제14항에 있어서,
상기 프로세서는,
상기 일회성 키 값, 상기 식별 값 및 상기 개수에 기초하여 상기 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하는,
사용자 단말.
The method of claim 14,
The processor,
Selecting some of the authentication value generation functions among the plurality of authentication value generation functions based on the one-time key value, the identification value, and the number,
User terminal.
제15항에 있어서,
상기 프로세서는,
무결성 검증이 필요한 파일의 해쉬 값, 무결성 검증이 필요한 메모리 영역의 해쉬 값 및 상기 선택된 함수들의 고유 값에 기초하여 상기 인증 값을 생성하는,
사용자 단말.
The method of claim 15,
The processor,
Generating the authentication value based on a hash value of a file requiring integrity verification, a hash value of a memory region requiring integrity verification, and unique values of the selected functions,
User terminal.
무결성 검증 방법을 수행하는 서버에 있어서,
메모리 및 프로세서를 포함하고,
상기 메모리는 상기 프로세서에 의해 실행 가능한 인스트럭션들을 저장하고,
상기 인스트럭션들이 상기 프로세서에 의해 실행될 때, 상기 프로세서는,
사용자 단말로부터 일회성 키 값에 대한 생성 요청 데이터를 수신하는 경우, 일회성 키 값을 생성하고,
상기 일회성 키 값을 상기 사용자 단말에 전송하고,
상기 사용자 단말로부터 상기 사용자 단말에 의해 생성된 인증 값을 수신하는 경우, 상기 키 값과 상기 사용자 단말의 식별 값에 기초하여, 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하고, 상기 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성하고,
상기 사용자 단말로부터 수신한 인증 값과 상기 생성된 인증 값에 기초하여 상기 사용자 단말의 무결성 검증 결과를 결정하고,
상기 무결성 검증 결과에 대한 검증 결과 정보를 상기 사용자 단말에 전송하는,
서버.
In the server that performs the integrity verification method,
Including memory and processor,
The memory stores instructions executable by the processor,
When the instructions are executed by the processor, the processor,
When receiving the request data for the one-time key value from the user terminal, the one-time key value is generated,
Transmit the one-time key value to the user terminal,
When receiving the authentication value generated by the user terminal from the user terminal, based on the key value and the identification value of the user terminal, select some authentication value generation functions from among a plurality of authentication value generation functions, Generate an authentication value using the selected partial authentication value generation functions,
Determine an integrity verification result of the user terminal based on the authentication value received from the user terminal and the generated authentication value,
Transmitting verification result information on the integrity verification result to the user terminal,
server.
제17항에 있어서,
상기 프로세서는,
무결성 검증이 필요한 파일의 해쉬 값, 무결성 검증이 필요한 메모리 영역의 해쉬 값 및 상기 선택된 함수들의 고유 값에 기초하여 상기 인증 값을 생성하는,
서버.
The method of claim 17,
The processor,
Generating the authentication value based on a hash value of a file requiring integrity verification, a hash value of a memory region requiring integrity verification, and unique values of the selected functions,
server.
제17항에 있어서,
상기 프로세서는,
상기 사용자 단말로부터 수신한 인증 값과 상기 생성된 인증 값의 일치 여부에 기초하여 상기 무결성 검증 결과를 결정하는,
서버.
The method of claim 17,
The processor,
Determining the integrity verification result based on whether the authentication value received from the user terminal matches the generated authentication value,
server.
제 19항에 있어서,
상기 프로세서는,
상기 사용자 단말로부터 수신한 인증 값과 상기 생성된 인증 값이 일치하지 않는 경우, 상기 사용자 단말이 무결하지 않은 것으로 결정하는,
서버.
The method of claim 19,
The processor,
If the authentication value received from the user terminal and the generated authentication value do not match, determining that the user terminal is not integrity,
server.
KR1020190047754A 2019-04-24 2019-04-24 Method and apparatus for verification of integrity KR102190359B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190047754A KR102190359B1 (en) 2019-04-24 2019-04-24 Method and apparatus for verification of integrity

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190047754A KR102190359B1 (en) 2019-04-24 2019-04-24 Method and apparatus for verification of integrity

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020200168590A Division KR20200141967A (en) 2020-12-04 2020-12-04 Method and apparatus for verification of integrity

Publications (2)

Publication Number Publication Date
KR20200124436A true KR20200124436A (en) 2020-11-03
KR102190359B1 KR102190359B1 (en) 2020-12-11

Family

ID=73197944

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190047754A KR102190359B1 (en) 2019-04-24 2019-04-24 Method and apparatus for verification of integrity

Country Status (1)

Country Link
KR (1) KR102190359B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080051753A (en) * 2006-12-06 2008-06-11 삼성전자주식회사 System and method for providing security
JP2010531506A (en) * 2007-06-26 2010-09-24 G3−ビジョン リミテッド Communication device, authentication system and method, and carrier medium
KR20170042137A (en) * 2015-10-08 2017-04-18 주식회사 안랩 A authentication server and method thereof
KR20180110432A (en) * 2017-03-29 2018-10-10 넷마블 주식회사 Method and apparatus for verification of integrity of application program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080051753A (en) * 2006-12-06 2008-06-11 삼성전자주식회사 System and method for providing security
JP2010531506A (en) * 2007-06-26 2010-09-24 G3−ビジョン リミテッド Communication device, authentication system and method, and carrier medium
KR20170042137A (en) * 2015-10-08 2017-04-18 주식회사 안랩 A authentication server and method thereof
KR20180110432A (en) * 2017-03-29 2018-10-10 넷마블 주식회사 Method and apparatus for verification of integrity of application program

Also Published As

Publication number Publication date
KR102190359B1 (en) 2020-12-11

Similar Documents

Publication Publication Date Title
US9871821B2 (en) Securely operating a process using user-specific and device-specific security constraints
US9747450B2 (en) Attestation using a combined measurement and its constituent measurements
US10771264B2 (en) Securing firmware
US20140223580A1 (en) Method of and apparatus for processing software using hash function to secure software, and computer-readable medium storing executable instructions for performing the method
EP3005216B1 (en) Protecting anti-malware processes
CN110445769B (en) Access method and device of business system
JP6073320B2 (en) Authority-dependent platform secret to digitally sign
US11165780B2 (en) Systems and methods to secure publicly-hosted cloud applications to run only within the context of a trusted client application
US11336444B2 (en) Hardware security module for verifying executable code, device having hardware security module, and method of operating device
US11664970B2 (en) Providing access to a hardware resource based on a canary value
US20220382874A1 (en) Secure computation environment
US10771462B2 (en) User terminal using cloud service, integrated security management server for user terminal, and integrated security management method for user terminal
JP6584500B2 (en) Representing operating system context in a trusted platform module
JP6174247B2 (en) Program integrity verification method using hash
KR102190359B1 (en) Method and apparatus for verification of integrity
KR20200141967A (en) Method and apparatus for verification of integrity
US10419224B2 (en) Preventing monoculture in application distribution
US10552600B2 (en) Securing a media storage device using application authority assignment
KR20200106435A (en) Method and apparatus for authenticating user
KR20200017038A (en) Apparatus and method for message authentication
KR20200011666A (en) Apparatus and method for authentication
US20240169071A1 (en) Device risk-based trusted device verification and remote access processing system
EP4167111B1 (en) Method and apparatus for preparing unique software
US20240004986A1 (en) Cla certificateless authentication of executable programs
US20230259606A1 (en) Asset Access Control Method, Apparatus, Device, and Medium

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant