KR102190359B1 - Method and apparatus for verification of integrity - Google Patents
Method and apparatus for verification of integrity Download PDFInfo
- Publication number
- KR102190359B1 KR102190359B1 KR1020190047754A KR20190047754A KR102190359B1 KR 102190359 B1 KR102190359 B1 KR 102190359B1 KR 1020190047754 A KR1020190047754 A KR 1020190047754A KR 20190047754 A KR20190047754 A KR 20190047754A KR 102190359 B1 KR102190359 B1 KR 102190359B1
- Authority
- KR
- South Korea
- Prior art keywords
- value
- user terminal
- functions
- authentication
- authentication value
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2109—Game 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
무결성 검증 방법 및 장치가 개시된다. 무결성 검증 방법은 서버에 일회성 키 값에 대한 생성 요청 데이터를 전송하는 단계, 생성 요청 데이터의 전송에 응답하여, 서버로부터 일회성 키 값을 수신하는 단계, 키 값과 사용자 단말의 식별 값에 기초하여, 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하고, 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성하는 단계, 인증 값을 서버에 전송하는 단계 및 인증 값의 전송에 응답하여, 서버로부터 무결성 검증 결과에 대한 검증 결과 정보를 수신하는 단계를 포함한다.An integrity verification method and apparatus are disclosed. The integrity verification method includes transmitting generation request data for a one-time key value to a server, receiving a one-time key value from a server in response to transmission of the generation request data, based on the key value and the identification value of the user terminal, Selecting some of the authentication value generation functions from among the plurality of authentication value generation functions, generating an authentication value using the selected part of the authentication value generating functions, transmitting the authentication value to the server, and responding to the transmission of the authentication value Thus, it includes the step of receiving verification result information about the integrity verification result from the server.
Description
아래 실시예들은 무결성 검증 기술에 관한 것이다.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
도 1을 참조하면, 무결성 검증 시스템은 서버(110), 네트워크(120) 및 사용자 단말(130)을 포함할 수 있다. 서버(110)와 사용자 단말(130)은 네트워크(120)(예를 들어, 인터넷 통신망, 유무선의 근거리 통신망 또는 광역 데이터 통신망 등)를 통해 서로 통신할 수 있다.Referring to FIG. 1, the integrity verification system may include a
일 실시예에서 사용자 단말(130)은 네트워크(120)를 통해 서버(110)에 일회성 키 값에 대한 생성 요청 데이터와 사용자 단말(130)의 식별 값을 전송하여 일회성 키 값에 대한 생성 요청을 할 수 있다. 서버(110)는 사용자 단말(130)로부터의 일회성 키 값에 대한 생성 요청에 응답하여 랜덤으로 일회성 키 값을 생성하여 네트워크(120)를 통해 사용자 단말에(130)에 전송할 수 있다. 여기서, 사용자 단말(130)은 애플리케이션 및 프로그램을 실행시킬 수 있는 컴퓨팅 장치로서, 예를 들어 셀룰러 폰, 스마트 폰, 퍼스널 컴퓨터, 랩탑, 노트북, 넷북, 태블릿 또는 휴대 정보 단말기(personal digital assistant; PDA)일 수 있다.In one embodiment, the
서버(110)와 사용자 단말(130)은 일회성 키 값과 사용자 단말의 식별 값에 기초하여 동일한 방법으로 인증 값을 생성할 수 있다. 일 실시예에서 서버(110)와 사용자 단말(130)은 1,500개의 인증 값 생성을 위한 함수들 중에서 일부의 인증 값 생성 함수들을 선택하고, 선택된 함수들을 이용하여 인증 값을 생성할 수 있다. 서버(110)는 사용자 단말(130)에서 생성된 인증 값을 사용자 단말(130)로부터 수신하여 서버(110)에서 생성된 인증 값과 동일한지 여부를 판단할 수 있다. 두 개의 인증 값이 동일하다면 사용자 단말(130)은 무결한 것으로 결정되고, 두 개의 인증 값이 다르다면 사용자 단말(130)은 무결하지 않은 것으로 결정될 수 있다.The
위 실시예에서 인증 값을 생성하기 위하여, 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
단계(220)에서 사용자 단말은 생성 요청 데이터의 전송에 응답하여, 서버로부터 일회성 키 값을 수신할 수 있다. 여기서, 일회성 키 값은 키 값으로도 칭해질 수 있다.In
사용자 단말은 단계(220)에서 수신한 키 값과 사용자 단말의 식별 값에 기초하여, 단계(230)에서 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하고, 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성할 수 있다. 여기서 복수의 인증 값 생성 함수들은 부호 발생기 또는 코드 제너레이터(code generator)를 통해서 생성될 수 있다. 실시예에 따라 각각의 함수들은 각각의 함수들에 대응하는 고유 값을 가질 수 있다.The user terminal selects some authentication value generation functions from among the plurality of authentication value generation functions in
일 실시예에서 사용자 단말은 일회성 키 값 및 식별 값에 기초하여 선택될 함수들의 개수를 결정할 수 있다. 사용자 단말은 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
단계(250)에서 사용자 단말은 인증 값의 전송에 응답하여, 서버로부터 무결성 검증 결과에 대한 검증 결과 정보를 수신할 수 있다. 사용자 단말은 검증 결과 정보에 기초하여 게임, 애플리케이션 및 프로그램 중 적어도 하나에 대해 접속이 허용되거나 접속이 차단될 수 있다.In
도 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
단계(320)에서 서버는 일회성 키 값을 사용자 단말에 전송할 수 있다.In
단계(330)에서 서버는 사용자 단말로부터 사용자 단말에 의해 생성된 인증 값을 수신하는 경우, 키 값과 사용자 단말의 식별 값에 기초하여, 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하고, 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성할 수 있다. 서버는 도 2의 단계(230)에서 사용자 단말이 인증 값을 생성하는 로직과 동일한 로직을 통해 인증 값을 생성할 수 있다.In
일 실시예에서 서버는 일회성 키 값 및 식별 값에 기초하여 부호 발생기로 생성된 복수의 인증 값 생성을 위한 함수들 중에서, 선택될 함수들의 개수를 결정할 수 있다. 서버는 일회성 키 값의 특정 부분과 식별 값의 특정 부분을 결합할 수 있다. 서버는 결합된 값에 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
단계(350)에서 서버는 무결성 검증 결과에 대한 검증 결과 정보를 사용자 단말에 전송할 수 있다. 일 실시예에서 사용자 단말이 무결하지 않은 것으로 결정된 경우, 서버는 무결성 검증 결과에 대한 검증 결과 정보를 사용자 단말에 전송하며, 사용자 단말의 접속을 차단시킬 수 있다.In
도 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
사용자 단말(405)로부터 요청 데이터를 수신한 서버(410)는 요청 데이터에 응답하여 단계(420)에서 일회성 키 값을 생성할 수 있다. 여기서 일회성 키 값은 랜덤 방식으로 생성될 수 있다. 서버(410)는 식별 값과 식별 값에 대응하는 일회성 키 값을 데이터베이스에 저장할 수 있다.The
단계(425)에서 서버(410)는 단계(420)에서 생성한 일회성 키 값을 사용자 단말(405)로 전송할 수 있다. 단계(430)에서 사용자 단말(405)는 단계(425)에서 서버(410)로부터 수신한 일회성 키 값, 식별 값에 기초하여 인증 값 생성에 이용할 함수들의 개수를 결정할 수 있고, 결정된 개수에 기초하여 복수의 함수들 중에서 인증 값 생성에 이용할 함수들을 선택할 수 있으며, 선택된 함수들을 통해 인증 값을 생성할 수 있다.In
단계(435)에서 사용자 단말(405)은 단계(430)에서 생성한 인증 값을 서버(410)로 전송할 수 있다. 단계(440)에서 서버(410)는 사용자 단말(405)이 인증 값을 생성하기 위해 수행한 로직과 동일한 로직을 통해 인증 값을 생성할 수 있다.In
서버(410)는 단계(440)에서 키 값과 식별 값에 기초하여, 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하고, 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성할 수 있다.The
단계(445)에서 서버는(410)는 사용자 단말(405)로부터 수신한 인증 값과 서버(410)에서 생성된 인증 값에 기초하여 사용자 단말(405)의 무결성 검증 결과를 결정할 수 있다. 서버(410)는 사용자 단말(405)에서 생성된 인증 값과 서버(410)에서 생성된 인증 값을 비교하여 두 개의 인증 값이 동일한지 여부를 확인할 수 있고, 비교 결과에 기초하여 사용자 단말(405)의 무결성을 검증 결과를 결정할 수 있다.In
일 실시예에서 두 개의 인증 값이 동일하다면 사용자 단말(405)은 무결한 것으로 결정될 수 있고, 다른 실시예에서 두 개의 인증 값이 다르다면 사용자 단말(405)은 무결하지 않은 것으로 결정될 수 있다.In an embodiment, if the two authentication values are the same, the
서버(410)는 단계(450)에서 무결성 검증 결과에 대한 검증 결과 정보를 사용자 단말(405)에 전송할 수 있고, 사용자 단말(405)은 서버(410)로부터 무결성 검증 결과에 대한 검증 결과 정보를 수신할 수 있다.The
도 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
도 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
만약 해쉬 값(635)에서 더 이상 8byte의 특정 부분을 추출할 수 없을 경우, 원래의 해쉬 값(635)에 SHA256 함수를 적용시킨 값을 결합시켜 계속해서 8byte의 특정 부분을 추출할 수 있다.If a specific part of 8 bytes can no longer be extracted from the
이러한 방법으로 추출된 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
다른 실시예에서 선택된 함수에 기초하여 사용자 단말 및 서버는 인증 값을 생성할 수 있다. 예를 들어, 무결성 확인이 필요한 파일 및 메모리 영역의 해쉬 값이 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
첫 번째 함수의 수행에 따른 결과 값은 입력 값과 해쉬 값인 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 intrinsic 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
메모리(830)는 프로세서(820)에 연결되고, 프로세서(820)에 의해 실행가능한 인스트럭션들, 프로세서(820)가 연산할 데이터 또는 프로세서(820)에 의해 처리된 데이터를 저장할 수 있다. 메모리(830)는 비일시적인 컴퓨터 판독가능 매체, 예컨대 고속 랜덤 액세스 메모리 및/또는 비휘발성 컴퓨터 판독가능 저장 매체(예컨대, 하나 이상의 디스크 저장 장치, 플래쉬 메모리 장치, 또는 기타 비휘발성 솔리드 스테이트 메모리 장치)를 포함할 수 있다.The
통신 인터페이스(810)는 외부 장치(예를 들어, 게임 사용자 단말)와 통신하기 위한 인터페이스를 제공한다. 통신 인터페이스(810)는 유선 또는 무선 네트워크를 통해 외부 장치와 통신할 수 있다.The
데이터베이스(840)는 서버(800)가 무결성 검증 방법을 수행하는데 필요한 데이터를 저장할 수 있다. 예를 들어, 데이터베이스(840)는 사용자 단말의 식별 값 및 식별 값에 대응하는 일회성 키 값이 저장될 수 있고, 인증 값을 생성할 수 있는 복수의 함수들이 저장될 수 있다.The
프로세서(820)는 서버(800) 내에서 실행하기 위한 기능 및 인스트럭션들을 실행하고, 서버(800)의 전체적인 동작을 제어한다. 프로세서(820)는 도 3 및 도 4에서 설명된 서버의 동작과 관련된 하나 이상의 동작을 수행할 수 있다.The
예를 들어, 프로세서(820)는 사용자 단말로부터 일회성 키 값에 대한 생성 요청 데이터를 수신하는 경우, 일회성 키 값을 생성하고, 일회성 키 값을 사용자 단말에 전송하고, 사용자 단말로부터 사용자 단말에 의해 생성된 인증 값을 수신하는 경우, 키 값과 사용자 단말의 식별 값에 기초하여, 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택할 수 있다. 프로세서(820)는 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성하고, 사용자 단말로부터 수신한 인증 값과 생성된 인증 값에 기초하여 사용자 단말의 무결성 검증 결과를 결정하고, 무결성 검증 결과에 대한 검증 결과 정보를 사용자 단말에 전송할 수 있다.For example, the
프로세서(820)는 일회성 키 값 및 식별 값에 기초하여 선택될 함수들의 개수를 결정할 수 있고, 일회성 키 값, 식별 값 및 개수에 기초하여 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택할 수 있다. 또한, 프로세서(820)는 무결성 검증이 필요한 파일의 해쉬 값, 무결성 검증이 필요한 메모리 영역의 해쉬 값 및 선택된 함수들의 고유 값에 기초하여 인증 값을 생성할 수 있다.The
프로세서(820)는 사용자 단말로부터 수신한 인증 값과 생성된 인증 값의 일치 여부에 기초하여 무결성 검증 결과를 결정할 수 있다. 사용자 단말로부터 수신한 인증 값과 생성된 인증 값이 일치하지 않는 경우, 프로세서(820)는 사용자 단말이 무결하지 않은 것으로 결정할 수 있다.The
도 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
메모리(920)는 프로세서(910)에 연결되고, 프로세서(910)에 의해 실행가능한 인스트럭션들, 프로세서(910)가 연산할 데이터 또는 프로세서(910)에 의해 처리된 데이터를 저장할 수 있다. 메모리(920)는 비일시적인 컴퓨터 판독가능 매체, 예컨대 고속 랜덤 액세스 메모리 및/또는 비휘발성 컴퓨터 판독가능 저장 매체(예컨대, 하나 이상의 디스크 저장 장치, 플래쉬 메모리 장치, 또는 기타 비휘발성 솔리드 스테이트 메모리 장치)를 포함할 수 있다.The
통신 인터페이스(930)는 외부 장치(예를 들어, 게임 서버 및 서버)와 통신하기 위한 인터페이스를 제공한다. 통신 인터페이스(930)는 유선 또는 무선 네트워크를 통해 외부 장치와 통신할 수 있다.The
사용자 입력 인터페이스(940)는 사용자에 의해 입력되는 사용자 입력을 수신한다. 디스플레이(950)는 서버로부터 수신한 알림을 출력할 수 있다. 일 예에서, 디스플레이(950)는 모니터 또는 터치 스크린 디스플레이일 수 있다.The
프로세서(910)는 도 2 및 도 4에서 설명된 사용자 단말의 동작과 관련된 하나 이상의 동작을 수행할 수 있다. 예를 들어, 프로세서(910)는 서버에 일회성 키 값에 대한 생성 요청 데이터를 전송하고, 생성 요청 데이터의 전송에 응답하여, 서버로부터 일회성 키 값을 수신하고, 키 값과 사용자 단말의 식별 값에 기초하여, 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택할 수 있다. 또한, 프로세서(910)는 선택된 일부의 인증 값 생성 함수들을 이용하여 인증 값을 생성하고, 인증 값을 서버에 전송하고, 인증 값의 전송에 응답하여, 서버로부터 무결성 검증 결과에 대한 검증 결과 정보를 수신할 수 있다.The
프로세서(910)는 사용자 단말의 식별 값을 서버에 더 전송하고, 일회성 키 값 및 식별 값에 기초하여 선택될 함수들의 개수를 결정할 수 있다. 또한, 프로세서(910)는 일회성 키 값, 식별 값 및 개수에 기초하여 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하고, 무결성 검증이 필요한 파일의 해쉬 값, 무결성 검증이 필요한 메모리 영역의 해쉬 값 및 선택된 함수들의 고유 값에 기초하여 인증 값을 생성할 수 있다.The
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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
Including,
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,
The step of determining the number of functions,
Extracting a predetermined specific part from each of the one-time key value and the identification value and combining them to generate a combined value;
Generating a hash value by applying a hash function to the combined value, and
Determining the number of authentication value generating functions based on the hash value, the maximum number of functions to be performed, and the minimum number of functions to be performed
Containing,
Integrity verification method.
상기 요청데이터를 전송하는 단계는,
상기 사용자 단말의 상기 식별 값을 상기 서버에 더 전송하는 단계
를 포함하는,
무결성 검증 방법.
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.
상기 인증 값을 생성하는 단계는,
상기 일회성 키 값, 상기 식별 값 및 상기 개수에 기초하여 상기 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하는 단계
를 포함하는,
무결성 검증 방법.
The method of claim 1,
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.
상기 인증 값을 생성하는 단계는,
무결성 검증이 필요한 파일의 해쉬(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
Including,
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,
The step of determining the number of functions,
Extracting a predetermined specific part from each of the one-time key value and the identification value and combining them to generate a combined value;
Generating a hash value by applying a hash function to the combined value, and
Determining the number of authentication value generating functions based on the hash value, the maximum number of functions to be performed, and the minimum number of functions to be performed
Containing,
Integrity verification method.
상기 인증 값을 생성하는 단계는,
상기 일회성 키 값, 상기 식별 값 및 상기 개수에 기초하여 상기 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하는 단계
를 포함하는,
무결성 검증 방법.
The method of claim 6,
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.
상기 인증 값을 생성하는 단계는,
무결성 검증이 필요한 파일의 해쉬 값, 무결성 검증이 필요한 메모리 영역의 해쉬 값 및 상기 선택된 함수들의 고유 값에 기초하여 상기 인증 값을 생성하는 단계
를 포함하는,
무결성 검증 방법.
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.
상기 무결성 검증 결과를 결정하는 단계는,
상기 사용자 단말로부터 수신한 인증 값과 상기 생성된 인증 값의 일치 여부에 기초하여 상기 무결성 검증 결과를 결정하는 단계
를 포함하는,
무결성 검증 방법.
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.
상기 사용자 단말로부터 수신한 인증 값과 상기 생성된 인증 값이 일치하지 않는 경우, 상기 사용자 단말이 무결하지 않은 것으로 결정하는,
무결성 검증 방법.
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.
A computer-readable recording medium storing a program for performing the method of any one of claims 1 to 2, 4 to 6, and 8 to 11.
메모리 및 프로세서를 포함하고,
상기 메모리는 상기 프로세서에 의해 실행 가능한 인스트럭션들(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 for the integrity verification result from the server,
The processor,
Determining the number of functions to be selected based on the one-time key value and the identification value,
The processor,
Extracting and combining a predetermined specific part from each of the one-time key value and the identification value to generate a combined value,
A hash value is generated by applying a hash function to the combined value,
Determining the number of authentication value generating functions based on the hash value, the maximum number of functions to be performed, and the minimum number of functions to be performed,
User terminal.
상기 프로세서는,
상기 일회성 키 값, 상기 식별 값 및 상기 개수에 기초하여 상기 복수의 인증 값 생성 함수들 중 일부의 인증 값 생성 함수들을 선택하는,
사용자 단말.
The method of claim 13,
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.
상기 프로세서는,
무결성 검증이 필요한 파일의 해쉬 값, 무결성 검증이 필요한 메모리 영역의 해쉬 값 및 상기 선택된 함수들의 고유 값에 기초하여 상기 인증 값을 생성하는,
사용자 단말.
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,
The processor,
Determining the number of functions to be selected based on the one-time key value and the identification value,
The processor,
Extracting and combining a predetermined specific part from each of the one-time key value and the identification value to generate a combined value,
A hash value is generated by applying a hash function to the combined value,
Determining the number of authentication value generating functions based on the hash value, the maximum number of functions to be performed, and the minimum number of functions to be performed,
server.
상기 프로세서는,
무결성 검증이 필요한 파일의 해쉬 값, 무결성 검증이 필요한 메모리 영역의 해쉬 값 및 상기 선택된 함수들의 고유 값에 기초하여 상기 인증 값을 생성하는,
서버.
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.
상기 프로세서는,
상기 사용자 단말로부터 수신한 인증 값과 상기 생성된 인증 값의 일치 여부에 기초하여 상기 무결성 검증 결과를 결정하는,
서버.
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.
상기 프로세서는,
상기 사용자 단말로부터 수신한 인증 값과 상기 생성된 인증 값이 일치하지 않는 경우, 상기 사용자 단말이 무결하지 않은 것으로 결정하는,
서버.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.
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 KR20200124436A (en) | 2020-11-03 |
KR102190359B1 true 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010531506A (en) | 2007-06-26 | 2010-09-24 | G3−ビジョン リミテッド | Communication device, authentication system and method, and carrier medium |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100843081B1 (en) * | 2006-12-06 | 2008-07-02 | 삼성전자주식회사 | System and method for providing security |
KR101799517B1 (en) * | 2015-10-08 | 2017-11-20 | 주식회사 안랩 | A authentication server and method thereof |
KR101973578B1 (en) * | 2017-03-29 | 2019-04-30 | 넷마블 주식회사 | Method and apparatus for verification of integrity of application program |
-
2019
- 2019-04-24 KR KR1020190047754A patent/KR102190359B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010531506A (en) | 2007-06-26 | 2010-09-24 | G3−ビジョン リミテッド | Communication device, authentication system and method, and carrier medium |
Also Published As
Publication number | Publication date |
---|---|
KR20200124436A (en) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102182894B1 (en) | USER DEVICE PERFORMING PASSWROD BASED AUTHENTICATION AND PASSWORD Registration AND AUTHENTICATION METHOD THEREOF | |
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 | |
CN110445769B (en) | Access method and device of business system | |
EP3005216B1 (en) | Protecting anti-malware processes | |
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 | |
US9104838B2 (en) | Client token storage for cross-site request forgery protection | |
KR102008668B1 (en) | Security system and method for protecting personal information of file stored in external storage device | |
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 | |
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 | |
KR20200106435A (en) | Method and apparatus for authenticating user | |
KR20200141967A (en) | Method and apparatus for verification of integrity | |
KR101973578B1 (en) | Method and apparatus for verification of integrity of application program | |
KR20200017038A (en) | Apparatus and method for message authentication | |
KR102094606B1 (en) | Apparatus and method for authentication | |
US10552600B2 (en) | Securing a media storage device using application authority assignment | |
KR20210072711A (en) | Method and apparatus for mutual authentication between internet of things device and trusted server | |
RU2633186C1 (en) | Personal device for authentication and data protection | |
KR101745821B1 (en) | Method and system for secure booting | |
US20230259606A1 (en) | Asset Access Control Method, Apparatus, Device, and Medium | |
US20240004986A1 (en) | Cla certificateless authentication of executable programs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |