KR101973578B1 - Method and apparatus for verification of integrity of application program - Google Patents

Method and apparatus for verification of integrity of application program Download PDF

Info

Publication number
KR101973578B1
KR101973578B1 KR1020170039959A KR20170039959A KR101973578B1 KR 101973578 B1 KR101973578 B1 KR 101973578B1 KR 1020170039959 A KR1020170039959 A KR 1020170039959A KR 20170039959 A KR20170039959 A KR 20170039959A KR 101973578 B1 KR101973578 B1 KR 101973578B1
Authority
KR
South Korea
Prior art keywords
integrity
time
authentication server
information
terminal
Prior art date
Application number
KR1020170039959A
Other languages
Korean (ko)
Other versions
KR20180110432A (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 KR1020170039959A priority Critical patent/KR101973578B1/en
Publication of KR20180110432A publication Critical patent/KR20180110432A/en
Application granted granted Critical
Publication of KR101973578B1 publication Critical patent/KR101973578B1/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

어플리케이션의 무결성을 검증하기 위한 방법 및 장치가 개시된다. 무결성 검증 방법은 무결성 인증 서버로부터 일회성 키 값을 수신하고, 일회성 키 값, 파일 정보 및 메모리 정보를 이용하여 일회성 해쉬 값을 생성하는 단계, 일회성 키 값 및 일회성 해쉬 값을 무결성 인증 서버로 보내어 무결성을 인증 받는 단계, 무결성 인증 서버가 생성하고 암호화한 무결성 검증 결과 정보를 서비스 서버로 전달하는 단계를 포함할 수 있다.A method and apparatus for verifying the integrity of an application are disclosed. The integrity verification method includes receiving a one-time key value from an integrity authentication server, generating a one-time hash value using the one-time key value, file information, and memory information, and sending the one- Authentication, and transmitting the integrity verification result information generated and encrypted by the integrity authentication server to the service server.

Description

어플리케이션의 무결성 검증 방법 및 장치{METHOD AND APPARATUS FOR VERIFICATION OF INTEGRITY OF APPLICATION PROGRAM}[0001] METHOD AND APPARATUS FOR INTEGRITY OF APPLICATION PROGRAM [0002]

아래의 설명은 어플리케이션의 무결성 검증 기술에 관한 것으로, 어플리케이션이 위조 또는 변조되었는지 여부를 검증하는 기술에 관한 것이다.The following description relates to an application's integrity verification technique, and relates to techniques for verifying whether an application has been tampered with or tampered with.

컴퓨팅 플랫폼은 데스크 탑으로 대표되는 퍼스널 컴퓨터로부터 인터넷을 포함하는 네트워킹 플랫폼으로 진화했고, 다시 모바일 컴퓨팅 플랫폼으로 진화해 왔다. 모바일 단말기의 수는 2011년을 기점으로 전통적인 데스크 탑 또는 노트북의 수를 초과했고, 모바일 컴퓨팅 플랫폼의 중요성은 보다 중요해 졌다.The computing platform has evolved from a personal computer represented by a desktop to a networking platform including the Internet, and has evolved into a mobile computing platform again. The number of mobile handsets exceeded the number of traditional desktops or laptops by 2011, and the importance of mobile computing platforms became more important.

이에 따라 보안 기술의 패러다임도 전환되고 있다. 종래에는 네트워킹 플랫폼에 대한 공격을 방어하기 위하여 라우터 또는 방화벽과 관련된 네트워킹 보안 기술이 중심이었으나, 최근에는 모바일 컴퓨팅 플랫폼에 대한 공격을 방어하는 기술이 중요해지고 있다. 이러한 추세에 따라, 어플리케이션에 대한 해킹 방지 기술에 대한 관심이 점차 증가하고 있다.As a result, the paradigm of security technology is also shifting. Conventionally, a networking security technology related to a router or a firewall has been central to defend against an attack on a networking platform. However, in recent years, a technique for defending an attack against a mobile computing platform has become important. With this trend, there is an increasing interest in anti-hacking techniques for applications.

어플리케이션에 대한 해킹은 크게 어플리케이션에 대한 리버스 엔지니어링을 통해 어플리케이션의 코드를 분석하는 방식과 어플리케이션에 코드를 삽입하거나 어플리케이션의 코드를 변경하는 방식이 있다. 어플리케이션에 대한 해킹은 정당한 어플리케이션 사용자 및 어플리케이션 서비스 제공자에게 큰 위협이 되기 때문에, 이를 효과적으로 막을 수 있는 방안이 요구된다.Application hacking is largely a reverse engineering of the application to analyze the code of the application and a method of inserting the code into the application or changing the code of the application. Hacking an application poses a major threat to legitimate application users and application service providers, and a way to effectively prevent such hacking is required.

본 발명은 단말기에서 실행되는 어플리케이션을 단말기 외부의 별도의 무결성 인증 서버에서 검증함으로써, 단말기 자체에서 무결성이 검증되는 경우 보다 보안성을 더욱 향상시킬 수 있는 방법 및 장치를 제공한다.The present invention provides a method and an apparatus for verifying an application executed in a terminal with a separate integrity authentication server outside the terminal, thereby further improving security than when the integrity is verified in the terminal itself.

본 발명은 인증에 사용되는 키 값 및 해쉬 값을 일회성으로 사용함으로써 고정된 해쉬 값을 사용하는 경우에 비해 보다 높은 보안성을 달성할 수 있는 방법 및 장치를 제공한다. The present invention provides a method and apparatus for achieving higher security than using a fixed hash value by using a key value and a hash value used for authentication one time.

본 발명은 무결성 검증 결과를 타임 스탬프 정보를 이용하여 암호화함으로써 일정한 시간 경과 후에 검증 결과가 재사용되는 문제를 방지할 수 있는 방법 및 장치를 제공한다.The present invention provides a method and an apparatus that can prevent the problem that the verification result is reused after a certain time lapse by encrypting the integrity verification result using the time stamp information.

일 실시예에 따른 단말기에 의해 수행되는 어플리케이션의 무결성 검증 방법은, 무결성 인증 서버로부터 수신한 일회성 키(Key) 값, 무결성 검증 대상인 어플리케이션의 파일 정보 및 상기 어플리케이션의 메모리 정보를 기초로 일회성 해쉬 값(Hash value)을 생성하는 단계, 상기 일회성 키 값 및 상기 일회성 해쉬 값을 상기 무결성 인증 서버로 전송하는 단계, 상기 무결성 인증 서버로부터 암호화된 무결성 검증 결과 정보를 수신하는 단계 및 상기 암호화된 무결성 검증 결과 정보를 상기 어플리케이션을 서비스하는 서비스 서버에 전송하는 단계를 포함할 수 있다.A method of verifying an integrity of an application performed by a terminal according to an exemplary embodiment of the present invention includes: generating a one-time hash value based on a one-time key value received from an integrity authentication server, file information of an application to be subjected to integrity verification, And transmitting the one-time hash value to the integrity authentication server, receiving the encrypted integrity verification result information from the integrity authentication server, and transmitting the encrypted integrity verification result information To the service server that services the application.

상기 무결성 검증 결과 정보는, 상기 무결성 인증 서버에 의해 상기 일회성 키 값 및 상기 일회성 해쉬 값의 검증 결과로서 생성된 무결성 정보 및 상기 무결성 인증 서버의 타임 스탬프 정보를 포함할 수 있다.The integrity verification result information may include integrity information generated as a result of verification of the one-time key value and the one-time hash value by the integrity authentication server, and time stamp information of the integrity authentication server.

상기 타임 스탬프 정보는 상기 무결성 인증 서버가 상기 일회성 키 값 및 상기 일회성 해쉬 값을 검증하는 시각과 관련될 수 있다.The timestamp information may be associated with the time at which the integrity authentication server verifies the one-time key value and the one-time hash value.

상기 무결성 검증 결과 정보는 상기 무결성 인증 서버에 의하여 비대칭 암호화 방식을 통해 암호화될 수 있다.The integrity verification result information may be encrypted by the integrity authentication server through an asymmetric encryption method.

상기 무결성 검증 결과 정보는 상기 서비스 서버에 고유한 비밀키(Private Key)와 구별되는 공개키(Public Key)를 기초로 상기 무결성 인증 서버에 의하여 암호화될 수 있다.The integrity verification result information may be encrypted by the integrity authentication server based on a public key that is distinguished from a private key unique to the service server.

상기 생성하는 단계는, 상기 무결성 인증 서버로부터 수신한 알고리즘 선택 정보에 대응하는 적어도 하나의 알고리즘을 이용하여 상기 일회성 해쉬 값을 생성할 수 있다.The generating step may generate the one-time hash value using at least one algorithm corresponding to algorithm selection information received from the integrity authentication server.

컴퓨터 판독 가능한 기록 매체는 상기 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록할 수 있다.A computer-readable recording medium can record a program for executing the above method on a computer.

일 실시예에 따른 단말기는, 어플리케이션의 무결성 검증하는 단말기에 있어서, 상기 단말기는 적어도 하나의 프로세서를 포함하고, 상기 프로세서는, 무결성 인증 서버로부터 수신한 일회성 키 값, 무결성 검증 대상인 어플리케이션의 파일 정보 및 상기 어플리케이션의 메모리 정보를 기초로 일회성 해쉬 값을 생성하는 동작, 상기 일회성 키 값 및 상기 일회성 해쉬 값을 상기 무결성 인증 서버로 전송하는 동작, 상기 무결성 인증 서버로부터 암호화된 무결성 검증 결과 정보를 수신하는 동작 및 상기 암호화된 무결성 검증 결과 정보를 상기 어플리케이션을 서비스하는 서비스 서버에 전송하는 동작을 실행하도록 구성될 수 있다.The terminal according to an exemplary embodiment of the present invention is a terminal for verifying integrity of an application, the terminal including at least one processor, the processor including: a one-time key value received from an integrity authentication server; Generating a one-time hash value based on memory information of the application, transmitting the one-time key value and the one-time hash value to the integrity authentication server, receiving encrypted integrity verification result information from the integrity authentication server And transmitting the encrypted integrity verification result information to a service server that services the application.

상기 무결성 검증 결과 정보는, 상기 무결성 인증 서버에 의해 상기 일회성 키 값 및 상기 일회성 해쉬 값의 검증 결과로서 생성된 무결성 정보 및 상기 무결성 인증 서버의 타임 스탬프 정보를 포함할 수 있다.The integrity verification result information may include integrity information generated as a result of verification of the one-time key value and the one-time hash value by the integrity authentication server, and time stamp information of the integrity authentication server.

상기 타임 스탬프 정보는 상기 무결성 인증 서버가 상기 일회성 키 값 및 상기 일회성 해쉬 값을 검증하는 시각과 관련될 수 있다.The timestamp information may be associated with the time at which the integrity authentication server verifies the one-time key value and the one-time hash value.

상기 무결성 검증 결과 정보는 상기 무결성 인증 서버에 의하여 비대칭 암호화 방식을 통해 암호화될 수 있다.The integrity verification result information may be encrypted by the integrity authentication server through an asymmetric encryption method.

상기 무결성 검증 결과 정보는 상기 서비스 서버에 고유한 비밀키와 구별되는 공개키를 기초로 상기 무결성 인증 서버에 의하여 암호화될 수 있다.The integrity verification result information may be encrypted by the integrity authentication server based on a public key differentiated from a secret key unique to the service server.

상기 생성하는 동작은, 상기 무결성 인증 서버로부터 수신한 알고리즘 선택 정보에 대응하는 적어도 하나의 알고리즘을 이용하여 상기 일회성 해쉬 값을 생성할 수 있다.The generating operation may generate the one-time hash value using at least one algorithm corresponding to the algorithm selection information received from the integrity authentication server.

일 실시예에 따른 무결성 인증 서버에 의해 수행되는 어플리케이션의 무결성 검증 방법은, 단말기의 요청에 대응하여 상기 단말기로 일회성 키 값을 전송하는 단계, 단말기로부터 수신한 일회성 키 값 및 일회성 해쉬 값을 검증하여 무결성 검증 결과 정보를 생성하는 단계, 상기 무결성 검증 결과 정보를 암호화하는 단계 및 상기 암호화된 무결성 검증 결과 정보를 상기 단말기로 전송하는 단계를 포함하고, 상기 해쉬 값은 상기 일회성 키 값, 무결성 검증 대상인 상기 단말기의 어플리케이션의 파일 정보 및 상기 어플리케이션의 메모리 정보를 기초로 상기 단말기에 의해 생성될 수 있다.A method for verifying an integrity of an application performed by an integrity authentication server according to an exemplary embodiment includes transmitting a one-time key value to the terminal in response to a request from the terminal, verifying a one-time key value and a one- The method comprising: generating integrity verification result information; encrypting the integrity verification result information; and transmitting the encrypted integrity verification result information to the terminal, wherein the hash value includes the one-time key value, The file information of the application of the terminal, and the memory information of the application.

상기 무결성 검증 결과 정보는, 상기 무결성 인증 서버에 의해 상기 일회성 키 값 및 상기 일회성 해쉬 값의 검증 결과로서 생성된 무결성 정보 및 상기 무결성 인증 서버의 타임 스탬프 정보를 포함할 수 있다.The integrity verification result information may include integrity information generated as a result of verification of the one-time key value and the one-time hash value by the integrity authentication server, and time stamp information of the integrity authentication server.

상기 타임 스탬프 정보는 상기 무결성 인증 서버가 상기 일회성 키 값 및 상기 일회성 해쉬 값을 검증하는 시각과 관련될 수 있다.The timestamp information may be associated with the time at which the integrity authentication server verifies the one-time key value and the one-time hash value.

상기 암호화하는 단계는, 상기 무결성 검증 결과 정보를 비대칭 암호화 방식을 통해 암호화할 수 있다.The encrypting step may encrypt the integrity verification result information through an asymmetric encryption method.

상기 무결성 검증 결과 정보는 상기 서비스 서버에 고유한 비밀키와 상이한 공개키를 기초로 상기 무결성 인증 서버에 의하여 암호화될 수 있다.The integrity verification result information may be encrypted by the integrity authentication server based on a public key different from a secret key unique to the service server.

일 실시예에 따른 무결성 인증 서버에 의해 수행되는 어플리케이션의 무결성 검증 방법은, 상기 해쉬 값을 생성하기 위한 적어도 하나의 알고리즘에 관한 알고리즘 선택 정보를 상기 단말기로 전송하는 단계를 더 포함할 수 있다.The method of verifying an integrity of an application performed by an integrity authentication server according to an exemplary embodiment may further include transmitting algorithm selection information related to at least one algorithm for generating the hash value to the terminal.

상기 알고리즘 선택 정보는, 상기 단말기에 주기적으로 전송되거나 또는 상기 단말기가 상기 일회성 키 값을 요청한 경우에 상기 단말기로 전송될 수 있다.The algorithm selection information may be periodically transmitted to the terminal or transmitted to the terminal when the terminal requests the one-time key value.

일 실시예에 따르면, 단말기에서 실행되는 어플리케이션을 단말기 외부의 별도의 무결성 인증 서버에서 검증함으로써, 단말기 자체에서 무결성이 검증되는 경우 보다 보안성을 더욱 향상시킬 수 있다.According to an embodiment, an application executed in a terminal may be verified by a separate integrity authentication server outside the terminal, thereby further improving security than when the integrity is verified in the terminal itself.

일 실시예에 따르면, 인증에 사용되는 키 값 및 해쉬 값을 일회성으로 사용함으로써 고정된 해쉬 값을 사용하는 경우에 비해 보다 높은 보안성을 달성할 수 있다. According to an embodiment, by using a key value and a hash value used for authentication one time, higher security can be achieved as compared with the case of using a fixed hash value.

일 실시예에 따르면, 인증에 사용되는 일회성 키 값을 무결성 인증 서버에서 선택한 일회성 알고리즘을 이용하여 일회성 해쉬 값을 사용함으로써 보다 높은 보안성을 달성할 수 있다. According to one embodiment, higher security can be achieved by using the one-time hash value using the one-time algorithm selected by the integrity authentication server for the one-time key value used for authentication.

일 실시예에 따르면, 무결성 검증 결과를 타임 스탬프 정보를 이용하여 암호화함으로써 일정한 시간 경과 후에 검증 결과가 재사용되는 문제를 방지할 수 있다.According to one embodiment, the integrity verification result is encrypted using the time stamp information, thereby preventing the problem that the verification result is reused after a predetermined time elapses.

도 1은 일 실시예에 따른 단말기에서 실행되는 어플리케이션의 무결성을 검증하기 위한 시스템의 전체적인 구성을 도시한 도면이다.
도 2는 일 실시예에 따른 어플리케이션의 무결성을 검증하는 동작을 도시한 흐름도이다.
도 3은 일 실시예에 따른 어플리케이션의 무결성을 검증하는 단말기의 동작을 도시한 순서도이다.
도 4는 일 실시예에 따른 어플리케이션의 무결성을 검증하는 단말기의 구성을 도시한 도면이다.
도 5는 일 실시예에 따른 어플리케이션의 무결성을 검증하는 무결성 인증 서버의 동작을 도시한 순서도이다.
FIG. 1 is a diagram showing the overall configuration of a system for verifying the integrity of an application executed in a terminal according to an exemplary embodiment. Referring to FIG.
2 is a flow diagram illustrating an operation for verifying the integrity of an application according to one embodiment.
3 is a flowchart illustrating an operation of a terminal for verifying the integrity of an application according to an exemplary embodiment of the present invention.
4 is a diagram illustrating a configuration of a terminal for verifying the integrity of an application according to an embodiment.
5 is a flowchart illustrating an operation of an integrity authentication server for verifying the integrity of an application according to an embodiment.

실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of embodiments are set forth for illustration purposes only and may be embodied with various changes and modifications. Accordingly, the embodiments are not intended to be limited to the particular forms disclosed, and the scope of the present disclosure includes changes, equivalents, or alternatives included in the technical idea.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.The terms first or second, etc. may be used to describe various elements, but such terms should be interpreted solely for the purpose of distinguishing one element from another. For example, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.It is to be understood that when an element is referred to as being "connected" to another element, it may be directly connected or connected to the other element, although other elements may be present in between.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms " comprises ", or " having ", and the like, are used to specify one or more of the described features, numbers, steps, operations, elements, But do not preclude the presence or addition of steps, operations, elements, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.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. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.

이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In the following description of the present invention with reference to the accompanying drawings, the same components are denoted by the same reference numerals regardless of the reference numerals, and a duplicate description thereof will be omitted.

도 1은 일 실시예에 따른 단말기에서 실행되는 어플리케이션의 무결성을 검증하기 위한 시스템의 전체적인 구성을 도시한 도면이다.FIG. 1 is a diagram showing the overall configuration of a system for verifying the integrity of an application executed in a terminal according to an exemplary embodiment. Referring to FIG.

일 실시예에 따르면, 어플리케이션의 무결성을 검증하기 위한 시스템은 단말기(110), 무결성 인증 서버(120) 및 서비스 서버(130)를 포함할 수 있다. 실시예에 따라, 서비스 서버(130) 내에 무결성 인증 서버(120)가 포함될 수도 있다. 단말기(110)는 예를 들어, 스마트 폰이나 태블릿(tablet)과 같은 모바일 장치 또는 테스크 탑이나 노트북과 같은 퍼스널 컴퓨터(PC)를 포함할 수 있다. 서비스 서버(130)는 단말기(110)의 어플리케이션과 연동하여 어플리케이션 서비스를 제공하는 서버이다.According to one embodiment, a system for verifying the integrity of an application may include a terminal 110, an integrity authentication server 120, and a service server 130. Depending on the embodiment, the integrity authentication server 120 may be included within the service server 130. The terminal 110 may include, for example, a mobile device such as a smart phone or a tablet, or a personal computer (PC) such as a desk top or a notebook. The service server 130 is a server that provides an application service in cooperation with an application of the terminal 110.

단말기(110)에서 실행되는 어플리케이션의 무결성은 단말기(110) 외부의 무결성 인증 서버(120)에서 검증될 수 있다. 일 실시예에서, 어플리케이션(application, application software)은 응용 프로그램으로 지칭될 수 있다. 어플리케이션은 앱(APP)으로도 지칭될 수 있다. 어플리케이션은 운영 체제 위에서 사용자가 직접 사용하게 되는 소프트웨어를 의미할 수 있으며, 컴파일러(Compiler)나 링커(Linker) 등의 시스템 소프트웨어를 제외한 소프트웨어를 포함할 수 있다. 어플리케이션의 무결성이 검증되었다는 것은 어플리케이션이 위조 또는 변조되지 않았다는 것으로, 어플리케이션이 별도의 해킹을 받지 않아 원래의 유효한 프로그램 정보를 가진다는 것을 의미할 수 있다.The integrity of the application executed in the terminal 110 may be verified by the integrity authentication server 120 outside the terminal 110. In one embodiment, an application (application software) may be referred to as an application program. An application may also be referred to as an app (APP). An application may refer to software that is directly used by the user on the operating system, and may include software other than system software such as a compiler or a linker. Verifying the integrity of an application means that the application has not been tampered with or tampered with, meaning that the application does not receive any hacking and thus has the original valid program information.

무결성 인증 서버(120)는 일회성 키 값을 단말기(110)에 제공할 수 있고, 단말기(110)는 일회성 키 값을 기초로 일회성 해쉬 값(hash value)을 생성할 수 있다. 무결성 인증 서버(120)는 일회성 키 값과 일회성 해쉬 값을 검증하고, 검증 결과를 타임 스탬프(timestamp) 정보를 이용하여 암호화할 수 있다. 일회성 키 값 및 일회성 해쉬 값에서, 일회성이란 해당 키 값 또는 해쉬 값이 일회의 인증 요청에 대해서만 유효한 것을 의미할 수 있다. 일회의 인증 요청에 대응하여 생성된 키 값 및 해당 키 값을 기초로 생성된 해쉬 값은 다음 인증 요청에 대해서는 유효하지 않을 수 있다. 예를 들어, 단말기(110)가 무결성 인증 서버(120)에 키 값의 생성을 요청할 때마다, 무결성 인증 서버(120)에 의해 생성되는 키 값은 변경될 수 있다.The integrity authentication server 120 may provide a one-time key value to the terminal 110 and the terminal 110 may generate a one-time hash value based on the one-time key value. The integrity authentication server 120 can verify the one-time key value and the one-time hash value, and can encrypt the verification result using the timestamp information. For one-time key values and one-time hash values, a one-time means that the corresponding key value or hash value is valid only for one authentication request. The hash value generated based on the key value and the key value generated in response to the one-time authentication request may not be valid for the next authentication request. For example, whenever the terminal 110 requests the integrity authentication server 120 to generate a key value, the key value generated by the integrity authentication server 120 may be changed.

타임 스탬프 정보는 무결성 인증 서버가 일회성 키 값 및 일회성 해쉬 값을 검증하는 시각(time)과 관련된 정보일 수 있다. 예를 들어, 타임 스탬프 정보는 무결성 검증 결과 정보를 생성하는 시점에 대한 시간 정보 또는 단말기(110)로부터 키 값 및 해쉬 값을 수신한 시점에 대한 시간 정보를 포함할 수도 있다. 다만, 이들은 예시에 불과하며 타임 스탬프 정보는 단말기(110)의 무결성 검증 요청과 관련된 시간 정보를 포함할 수 있다. 무결성 인증 서버(120)는 OTP(one-time programmable) 방식과 같이 타임 스탬프 정보를 기초로 보안성을 개선시킬 수 있다.The timestamp information may be information related to the time at which the integrity authentication server verifies the one-time key value and the one-time hash value. For example, the time stamp information may include time information on the time when the integrity verification result information is generated, or key information from the terminal 110 and time information on the time when the hash value is received. However, these are merely examples, and the time stamp information may include time information related to the integrity verification request of the terminal 110. [ The integrity authentication server 120 can improve the security based on the time stamp information like an OTP (one-time programmable) method.

일 실시예에 따르면, 단말기(110)가 어플리케이션을 실행하는 경우, 단말기(110)는 어플리케이션의 무결성을 검증하기 위하여 무결성 인증 서버(120)로 일회성 키 값을 요청할 수 있다. 단말기(110)는 일회성 키 값, 어플리케이션의 파일 정보 및 어플리케이션의 메모리 정보를 이용하여 일회성 해쉬 값을 생성할 수 있다. 여기서, 파일 정보는 무결성 검증 대상이 되는 어플리케이션의 실행 파일 등에 관한 정보를 포함할 수 있다. 예를 들어, 파일 정보는 어플리케이션의 dex, so 또는 dll 파일 등에 관한 정보를 포함할 수 있다. 메모리 정보는 무결성 검증 대상이 되는 어플리케이션의 실행 파일이 메모리에 로드(load)되었을 때 메모리의 코드 세션과 관련된 정보를 포함할 수 있다. 단말기(110)는 일회성 키 값 및 생성된 일회성 해쉬 값을 무결성 인증 서버(120)로 전송할 수 있다.According to one embodiment, when the terminal 110 executes an application, the terminal 110 may request the one-time key value to the integrity authentication server 120 to verify the integrity of the application. The terminal 110 may generate a one-time hash value using the one-time key value, application file information, and application memory information. Here, the file information may include information about an executable file of an application to be subjected to integrity verification. For example, the file information may include information about an application's dex, so or dll file, and so on. The memory information may include information related to a code session of memory when an executable file of an application to be subjected to integrity verification is loaded into memory. The terminal 110 may transmit the one-time key value and the generated one-time hash value to the integrity authentication server 120. [

무결성 인증 서버(120)는 단말기(110)의 요청에 따라 일회성 키 값을 생성하기 때문에 이미 일회성 키 값을 알고 있다. 이에 기초하여 무결성 인증 서버(120)는 알고 있는 일회성 키 값에 기초하여 단말기(110)이 전송한 일회성 키 값 및 일회성 해쉬 값이 정상인지 여부를 검증할 수 있다. 무결성 인증 서버(120)는 어플리케이션의 무결성을 검증한 결과로서 무결성 검증 결과 정보를 생성할 수 있다. 무결성 인증 서버(120)는 무결성 검증 결과 정보의 재사용을 방지하고, 보안성을 높이기 위하여 무결성 검증 결과 정보에 타임 스탬프 정보를 포함시켜 암호화하고, 암호화된 무결성 검증 결과 정보를 단말기(110)에 전송할 수 있다.The integrity authentication server 120 already knows the one-time key value because it generates the one-time key value at the request of the terminal 110. The integrity authentication server 120 can verify whether the one-time key value and the one-time hash value transmitted by the terminal 110 are normal based on the known one-time key value. The integrity authentication server 120 can generate integrity verification result information as a result of verifying the integrity of the application. The integrity authentication server 120 encrypts the integrity verification result information by including the time stamp information in the integrity verification result information to prevent reuse of the integrity verification result information and to increase security, and transmits the encrypted integrity verification result information to the terminal 110 have.

단말기(110)는 무결성 인증 서버(120)로부터 수신한 암호화된 무결성 검증 결과 정보를 어플리케이션을 서비스하는 서비스 서버(130)에 전송할 수 있다. 서비스 서버(130)는 단말기(110)로부터 수신한 암호화된 무결성 검증 결과 정보를 복호화하고, 타임 스탬프 정보에 기초하여 무결성 검증 결과 정보의 유효성을 판단할 수 있다. 무결성 검증 결과 정보가 유효한 것으로 검증된 경우, 서비스 서버(130)는 무결성 검증 결과의 결과 값에 기초하여 단말기(110)에서 실행되는 어플리케이션이 무결한지 여부를 결정할 수 있다. 해당 어플리케이션이 무결한 것으로 결정된 경우, 서비스 서버(130)는 단말기(110)에서 실행되는 어플리케이션에 대한 서비스를 유지한다. 이와 반대로, 해당 어플리케이션이 무결하지 않은 것으로 결정되거나, 타임 스탬프 정보에 기초하여 무결성 검증 결과 정보가 유효하지 않다고 결정된 경우에는, 단말기(110)에서 실행되는 어플리케이션에 대한 서비스를 종료시킬 수 있다.The terminal 110 may transmit the encrypted integrity verification result information received from the integrity authentication server 120 to the service server 130 that services the application. The service server 130 may decrypt the encrypted integrity verification result information received from the terminal 110 and determine the validity of the integrity verification result information based on the time stamp information. If the integrity verification result information is verified to be valid, the service server 130 can determine whether the application executed in the terminal 110 is integrity based on the result of the integrity verification result. If it is determined that the application is not complete, the service server 130 maintains the service for the application executed in the terminal 110. Conversely, if it is determined that the application is not secure, or if it is determined that the integrity verification result information is invalid based on the time stamp information, the service for the application executed in the terminal 110 can be terminated.

이처럼, 단말기(110)에서 실행되는 어플리케이션이 단말기(110) 외부의 별도의 무결성 인증 서버(120)에서 검증됨으로써, 단말기(110) 자체에서 무결성이 검증되는 경우 보다 보안성이 더욱 향상될 수 있다. 또한, 인증에 사용되는 키 값 및 해쉬 값이 일회성이므로 고정된 해쉬 값에 비해 보다 높은 보안성이 달성될 수 있다. 검증 결과를 타임 스탬프 정보를 이용하여 암호화함으로써 일정한 시간 경과 후에 검증 결과가 재사용되는 문제가 방지될 수 있다.In this way, since the application executed in the terminal 110 is verified by the separate integrity authentication server 120 outside the terminal 110, the security can be further improved as compared with the case where the integrity is verified in the terminal 110 itself. In addition, since the key value and the hash value used for authentication are one-time, higher security can be achieved as compared with the fixed hash value. A problem that the verification result is reused after a lapse of a predetermined time can be prevented by encrypting the verification result using the time stamp information.

도 2는 일 실시예에 따른 어플리케이션의 무결성을 검증하는 동작을 도시한 흐름도이다.2 is a flow diagram illustrating an operation for verifying the integrity of an application according to one embodiment.

일 실시예에 따르면, 단계(201)에서, 단말기(110)는 무결성 검증 대상이 되는 어플리케이션을 실행할 수 있다. 외부의 해킹에 의해 어플리케이션의 코드에 해킹 코드가 삽입되거나 어플리케이션의 코드가 변경되는 것과 같이 어플리케이션이 위조 또는 변조되는 경우, 어플리케이션이 서비스 서버(130)와 연동되어 계속적으로 실행되는 것은 방지되어야 한다. 이를 위하여, 이하의 무결성 검증 방법이 수행될 수 있다.According to one embodiment, at step 201, the terminal 110 may execute an application that is subject to integrity verification. When an application is falsified or altered such as a hacking code is inserted into an application code by external hacking or a code of an application is changed, an application should be prevented from being continuously executed in cooperation with the service server 130. To this end, the following integrity verification method can be performed.

단계(203)에서, 단말기(110)는 무결성 인증 서버(120)에 일회성 키 값을 발급하도록 요청할 수 있다. 단계(205)에서, 무결성 인증 서버(120)는 일회성 키 값을 생성하고, 생성된 일회성 키 값을 무결성 인증 서버(120)의 메모리에 저장할 수 있다. 단계(207)에서, 무결성 인증 서버(120)는 일회성 키 값을 단말기(110)로 전송할 수 있다.In step 203, the terminal 110 may request the integrity authentication server 120 to issue a one-time key value. At step 205, the integrity authentication server 120 may generate a one-time key value and store the generated one-time key value in the memory of the integrity authentication server 120. [ In step 207, the integrity authentication server 120 may send a one-time key value to the terminal 110.

다른 실시예에 따르면, 무결성 인증 서버(120)는 해쉬 값을 생성하기 위한 알고리즘에 관한 알고리즘 선택 정보를 단말기로 전송할 수 있다. 예를 들어, 무결성 인증 서버(120)는 단말기(110)에 일회성 키 값을 전송할 때, 해쉬 값을 생성하기 위한 하나 이상의 알고리즘에 관한 알고리즘 선택 정보도 단말기(110)에 전송할 수 있다. 예를 들어, 무결성 인증 서버(120)는 해쉬 값을 생성하기 위한 여러 알고리즘들 중 특정한 알고리즘을 선택하고, 이에 대한 선택 정보를 단말기(110)에 전송할 수 있다. 무결성 인증 서버(120)가 해쉬 값 생성을 위한 알고리즘을 변경하여 일회성 키를 전달할 때 알고리즘 선택 정보도 같이 전달해 줌으로써 보안성이 보다 향상될 수 있다. 또는, 알고리즘 선택 정보는 주기적으로 단말기(110)에 전송될 수도 있다. According to another embodiment, the integrity authentication server 120 may send algorithm selection information regarding the algorithm for generating a hash value to the terminal. For example, when the integrity authentication server 120 transmits a one-time key value to the terminal 110, it may also send algorithm selection information regarding the one or more algorithms for generating the hash value to the terminal 110. [ For example, the integrity authentication server 120 may select a specific algorithm among the various algorithms for generating a hash value, and transmit selection information therefrom to the terminal 110. When the integrity authentication server 120 changes the algorithm for generating the hash value and transmits the one-time key, the security information can be further improved by transmitting the algorithm selection information. Alternatively, the algorithm selection information may be periodically transmitted to the terminal 110.

단말기(110)는 해쉬 값을 생성하기 위한 알고리즘을 하나 이상 보유할 수 있다. 해쉬 값은 하나의 알고리즘을 이용하거나 여러 개의 알고리즘들을 조합하여 생성될 수 있다. 알고리즘은 MD5, CRC 또는 SHA2 등의 해쉬 알고리즘을 포함할 수 있고, 조합 방식은 XOR, AND 또는 SHIFT 등의 연산자를 이용한 것일 수 있다. 단말기(110)는 이전 인증 요청에 대응하여 해쉬 값을 생성할 때 이용한 알고리즘을 다시 사용할 수도 있다. 이전 인증 요청의 결과로서 어플리케이션이 변조된 것으로 확인된 경우, 무결성 인증 서버(120)는 해쉬 값을 생성하기 위한 알고리즘 또는 알고리즘들의 조합을 결정하고, 알고리즘에 대한 선택 정보를 단말기(110)로 전송하여 해쉬 값을 생성하는데 이용되는 알고리즘의 변경을 요청할 수 있다.The terminal 110 may have one or more algorithms for generating hash values. The hash value can be generated using one algorithm or a combination of several algorithms. The algorithm may include a hash algorithm such as MD5, CRC, or SHA2, and the combining method may be one using an operator such as XOR, AND, or SHIFT. The terminal 110 may reuse the algorithm used when generating the hash value corresponding to the previous authentication request. If it is determined that the application has been tampered with as a result of the previous authentication request, the integrity authentication server 120 determines a combination of algorithms or algorithms for generating a hash value, and transmits selection information for the algorithm to the terminal 110 It may request a change in the algorithm used to generate the hash value.

단계(209)에서, 단말기(110)는 수신한 일회성 키 값, 무결성 검증 대상인 어플리케이션의 파일 정보 및 어플리케이션의 메모리 정보를 기초로 일회성 해쉬 값을 생성할 수 있다. 단말기(110)는 하나 이상의 알고리즘을 이용하여 해쉬 값을 생성할 수 있다. 단계(211)에서, 단말기(110)는 키 값 및 해쉬 값을 무결성 인증 서버(120)로 전송할 수 있다. 여기서, 키 값이 일회성이므로 해쉬 값도 일회성이 된다.In step 209, the terminal 110 may generate a one-time hash value based on the received one-time key value, the file information of the application to be subjected to integrity verification, and the memory information of the application. The terminal 110 may generate a hash value using one or more algorithms. In step 211, the terminal 110 may send the key value and the hash value to the integrity authentication server 120. Here, since the key value is one-time, the hash value is also one-time.

다른 실시예에 따르면, 단말기(110)는 무결성 인증 서버(120)로부터 알고리즘 선택 정보를 수신할 수 있다. 단말기(110)는 알고리즘 선택 정보에 대응하는 하나 이상의 알고리즘을 이용하여 일회성 해쉬 값을 생성할 수 있다.According to another embodiment, the terminal 110 may receive algorithm selection information from the integrity authentication server 120. The terminal 110 may generate one-time hash values using one or more algorithms corresponding to the algorithm selection information.

단계(213)에서, 무결성 인증 서버(120)는 수신한 키 값과 해쉬 값의 유효성을 판단할 수 있다. 단계(215)에서, 무결성 인증 서버(120)는 타임 스탬프 정보를 이용하여 무결성 검증 결과 정보를 생성하고, 무결성 검증 결과 정보를 암호화할 수 있다. 무결성 검증 결과 정보는 일회성 키 값 및 일회성 해쉬 값의 검증 결과로서 생성된 무결성 정보 및 무결성 인증 서버의 타임 스탬프 정보를 포함할 수 있다.In step 213, the integrity authentication server 120 may determine the validity of the received key value and the hash value. In step 215, the integrity authentication server 120 may generate the integrity verification result information using the time stamp information, and may encrypt the integrity verification result information. The integrity verification result information may include integrity information generated as a result of verification of the one-time key value and the one-time hash value, and time stamp information of the integrity authentication server.

무결성 인증 서버(120)는 무결성 검증 결과 정보를 암호화할 수 있다. 무결성 인증 서버(120)는 비대칭 암호화 방식을 이용하여 무결성 검증 결과 정보를 암호화할 수 있다. 예를 들어, 무결성 인증 서버(120)는 서비스 서버에 고유한 비밀키(Private Key)와 상이한 공개키(Public Key)를 기초로 무결성 검증 결과 정보를 암호화할 수 있다. 여기서, 공개키는 무결성 인증 서버(120)에 미리 분배되고, 비밀키는 서비스 서버에 미리 분배될 수 있다. 공개키는 암호화를 위해 사용되고 비밀키는 복호화를 위해 사용될 수 있다. The integrity authentication server 120 can encrypt the integrity verification result information. The integrity authentication server 120 can encrypt the integrity verification result information using the asymmetric encryption method. For example, the integrity authentication server 120 may encrypt the integrity verification result information based on a private key unique to the service server and a public key. Here, the public key is previously distributed to the integrity authentication server 120, and the secret key can be distributed in advance to the service server. The public key is used for encryption and the secret key can be used for decryption.

단계(217)에서, 무결성 인증 서버(120)는 단말기(110)로 암호화된 무결성 검증 결과 정보를 전송할 수 있다. 단계(219)에서, 단말기(110)는 암호화된 무결성 검증 결과 정보를 서비스 서버(130)로 전송할 수 있다. 여기서, 단말기(110)는 암호화된 무결성 검증 결과 정보를 그대로 서비스 서버에 전달할 수 있다.In step 217, the integrity authentication server 120 may transmit encrypted integrity verification result information to the terminal 110. [ In step 219, the terminal 110 may transmit the encrypted integrity verification result information to the service server 130. [ Here, the terminal 110 may directly transmit the encrypted integrity verification result information to the service server.

단계(221)에서, 서비스 서버(130)는 수신한 암호화된 무결성 검증 결과 정보를 복호화할 수 있다. 서비스 서버(130)는 미리 보유하고 있던 비밀키를 이용하여 비대칭 암호화 방식으로 암호화된 무결성 검증 결과 정보를 복호화할 수 있다. 복호화의 결과로서 무결성 정보 및 무결성 인증 서버(120)의 타임 스탬프 정보가 획득될 수 있다.In step 221, the service server 130 may decrypt the received encrypted integrity verification result information. The service server 130 can decrypt the integrity verification result information encrypted with the asymmetric encryption method using the previously stored secret key. Integrity information and timestamp information of the integrity authentication server 120 can be obtained as a result of the decryption.

이처럼, 무결성 인증 서버(120)가 비대칭 암호화 방식을 이용함으로써, 단말기(110)에서 무결성 검증 결과 정보를 복호화하더라도 복호화하는 시간이 오래 걸리게 만들 수 있고, 복호화하여 무결성 검증 결과 정보를 추출하더라도 다시 부호화하는 것이 불가능하기 때문에 해킹의 위험을 줄일 수 있다.As described above, even if the integrity verification result information is decrypted in the terminal 110 by using the asymmetric encryption method, the integrity authentication server 120 can take a long time to decrypt, and even if the integrity verification result information is extracted, It is impossible to reduce the risk of hacking.

서비스 서버(130)는 타임 스탬프 정보의 유효성을 검증할 수 있다. 서비스 서버(130)는 타임 스탬프 정보가 오차 범위 내에 포함되는지를 검증할 수 있다. 예를 들어, 서비스 서버(130)는 타임 스탬프 정보가 현재 시간을 기준으로 이전 30초 이내의 범위에 있는지 판단할 수 있다. 여기서 오차 범위는 타임 스탬프 정보와 관련된 무결성 인증 서버(120)의 동작으로부터 서비스 서버(130)가 타임 스탬프 정보의 유효성을 검증하는 시각까지 걸리는 시간을 고려하여 미리 설정될 수 있다. 이처럼, 검증 결과를 타임 스탬프 정보를 이용하여 암호화함으로써 일정한 시간 경과 후에 검증 결과가 재사용되는 문제가 방지될 수 있다.The service server 130 can verify the validity of the time stamp information. The service server 130 can verify whether the time stamp information is included in the error range. For example, the service server 130 may determine whether the time stamp information is within the range of the previous 30 seconds based on the current time. Here, the error range can be set in advance in consideration of the time taken from the operation of the integrity authentication server 120 related to the time stamp information to the time when the service server 130 verifies the validity of the time stamp information. As described above, the problem that the verification result is reused after a lapse of a predetermined time can be prevented by encrypting the verification result using the time stamp information.

도 3은 일 실시예에 따른 어플리케이션의 무결성을 검증하는 단말기의 동작을 도시한 순서도이다.3 is a flowchart illustrating an operation of a terminal for verifying the integrity of an application according to an exemplary embodiment of the present invention.

일 실시예에 따르면, 단말기의 관점에서 단말기에 의해 수행되는 어플리케이션의 무결성은 다음과 같은 방법으로 검증될 수 있다. 단말기가 어플리케이션을 실행할 경우, 어플리케이션은 실행 파일을 구동하고, 실행 파일의 내용을 메모리로 로드할 수 있다. 메모리에는 해당 실행 파일을 위한 코드 세션이 할당될 수 있다.According to one embodiment, the integrity of an application performed by a terminal in terms of a terminal can be verified in the following manner. When the terminal executes the application, the application can run the executable file and load the contents of the executable file into the memory. The memory may be assigned a code session for the executable file.

일 실시예에 따르면, 단말기는 실행된 어플리케이션을 통해 서비스 서버에 접속하기 위해 어플리케이션이 변조되지 않았다는 인증을 서비스 서버로부터 요청 받을 수 있다. 이 경우, 단말기는 무결성 검증을 위한 일회성 키 값을 무결성 인증 서버로 요청할 수 있다.According to one embodiment, the terminal may be requested from the service server to authenticate that the application has not been tampered with in order to access the service server through the executed application. In this case, the terminal may request the one-time key value for integrity verification to the integrity authentication server.

단말기는 무결성 인증 서버로부터 일회성 키 값을 수신할 수 있다. 여기서, 일회성 키 값은 한 번의 인증 요청에서만 유효할 수 있다. 단계(301)에서 단말기는 일회성 키 값, 파일 정보 및 메모리 정보를 기초로 일회성 해쉬 값을 생성할 수 있다. 단말기는 일회성 키 값, 실행 파일에 관한 파일 정보 및 실행 파일에 할당된 메모리의 코드 세션과 관련된 메모리 정보를 기초로 하나 이상의 알고리즘을 조합하여 일회성 해쉬 값을 생성할 수 있다. The terminal may receive a one-time key value from the integrity authentication server. Here, the one-time key value can be valid only in one authentication request. In step 301, the terminal may generate a one-time hash value based on the one-time key value, file information, and memory information. The terminal may generate one-time hash values by combining one or more algorithms based on the one-time key value, the file information about the executable file, and the memory information associated with the code session of memory allocated to the executable file.

다른 실시예에 따르면, 단말기는 무결성 인증 서버에서 일회성 키 값을 수신할 때 알고리즘 선택 정보도 함께 수신할 수 있다. 알고리즘 선택 정보는 일회성 키 값에 기초하여 해쉬 값을 생성할 때 이용되는 알고리즘에 대한 식별 정보를 포함할 수 있다. 알고리즘 선택 정보는 실시예에 따라 무결성 인증 서버에서 단말기로 주기적으로 전송될 수도 있다. 단말기는 알고리즘 선택 정보를 수신한 경우, 알고리즘 선택 정보에 나타난 알고리즘을 이용하여 해쉬 값을 생성할 수 있다. 이를 통해, 보다 높은 보안성이 달성될 수 있다.According to another embodiment, the terminal may also receive algorithm selection information when receiving a one-time key value at the integrity authentication server. The algorithm selection information may include identification information for the algorithm used when generating the hash value based on the one-time key value. The algorithm selection information may be periodically transmitted from the integrity authentication server to the terminal according to an embodiment. If the terminal receives the algorithm selection information, it can generate a hash value using the algorithm indicated in the algorithm selection information. Through this, higher security can be achieved.

단계(303)에서, 단말기는 일회성 키 값 및 일회성 해쉬 값을 무결성 인증 서버로 전송할 수 있다. 무결성 인증 서버는 일회성 키 값 및 일회성 해쉬 값을 검증하여 어플리케이션이 변조되었는지를 검증할 수 있다. 무결성 인증 서버는 검증 결과로서 무결성 정보를 생성할 수 있다. 또한, 무결성 인증 서버는 타임 스탬프와 같이 현재의 인증 요청과 관련된 타임 스탬프 정보를 생성할 수 있다. 무결성 인증 서버는 무결성 정보 및 타임 스탬프 정보를 포함하는 무결성 검증 결과 정보를 생성하고 암호화할 수 있다.In step 303, the terminal may send a one-time key value and a one-time hash value to the integrity authentication server. The integrity authentication server can verify whether the application is tampered by verifying the one-time key value and the one-time hash value. The integrity authentication server can generate integrity information as the verification result. In addition, the integrity authentication server may generate time stamp information related to the current authentication request, such as a time stamp. The integrity authentication server can generate and encrypt integrity verification result information including integrity information and time stamp information.

단계(305)에서, 단말기는 무결성 인증 서버로부터 암호화된 무결성 검증 결과 정보를 수신할 수 있다. 단계(307)에서, 단말기는 암호화된 무결성 검증 결과 정보를 어플리케이션을 서비스하는 서비스 서버로 전송할 수 있다. 단말기는 단순히 암호화된 무결성 검증 결과 정보를 서비스 서버로 전송하는 역할을 할 수 있다. 단말기에서 암호화된 무결성 검증 결과 정보가 복호화되더라도, 무결성 인증 서버의 암호화 방식이 비대칭 암호화 방식일 경우라면 복호화된 무결성 검증 결과 정보를 다시 동일한 형태로 암호화하는 것이 불가능하다. 따라서, 비대칭 암호화 방식이 이용될 경우 보안성이 향상될 수 있다.In step 305, the terminal may receive the encrypted integrity verification result information from the integrity authentication server. In step 307, the terminal may transmit the encrypted integrity verification result information to the service server that services the application. The terminal may simply transmit the encrypted integrity verification result information to the service server. Even if the encrypted integrity verification result information is decrypted in the terminal, if the encryption scheme of the integrity authentication server is an asymmetric encryption scheme, it is impossible to encrypt the decrypted integrity verification result information again in the same form. Therefore, when an asymmetric encryption scheme is used, security can be improved.

서비스 서버는 비대칭 암호화 방식에 따라 미리 보유하고 있던 비밀키를 이용하여 암호화된 무결성 검증 결과 정보를 복호화할 수 있다. 서비스 서버는 타임 스탬프 정보를 이용하여 금번의 인증 요청에 대응하여 수행된 무결성 검증의 시점으로부터 서비스 서버가 무결성 검증 결과 정보를 확인한 시점까지의 시간 경과를 계산할 수 있다. 서비스 서버는 미리 결정된 임계값과 경과한 시간을 비교하여 무결성 정보가 금번의 인증 요청에 대응한 것인지를 판단할 수 있다. 이를 통하여, 무결성 정보가 재사용되는 문제를 방지할 수 있다. 서비스 서버는 어플리케이션이 변조되었다고 판단한 경우 서비스 종료 메시지를 단말기로 전달하고, 어플리케이션이 진정한 것으로 인정하는 경우 서비스를 단말기에 제공할 수 있다.The service server can decrypt the encrypted integrity verification result information using the secret key previously held according to the asymmetric encryption scheme. The service server can calculate the time lapse from the time of the integrity verification performed in response to the authentication request to the time when the service server confirms the integrity verification result information using the time stamp information. The service server compares the elapsed time with a predetermined threshold value to determine whether the integrity information corresponds to the current authentication request. Through this, it is possible to prevent the problem that the integrity information is reused. If the service server determines that the application has been tampered with, the service server delivers a service termination message to the terminal, and can provide the service to the terminal if the application recognizes that the application is authentic.

도 4는 일 실시예에 따른 어플리케이션의 무결성을 검증하는 단말기의 구성을 도시한 도면이다.4 is a diagram illustrating a configuration of a terminal for verifying the integrity of an application according to an embodiment.

도 4를 참조하면, 단말기(400)는 하나 이상의 프로세서(401), 메모리(403) 및 I/O(input/output) 인터페이스(405)를 포함할 수 있다.4, a terminal 400 may include one or more processors 401, a memory 403, and an input / output (I / O) interface 405.

프로세서(401)는 어플리케이션의 실행 파일을 구동함으로써 어플리케이션을 실행할 수 있다. 프로세서(401)는 실행 파일의 내용을 메모리(403)에 로드하라는 명령을 수행할 수 있다. 프로세서(401)는 하나 이상의 알고리즘을 조합하여, 일회성 키 값, 실행 파일에 관한 파일 정보 및 실행 파일에 할당된 메모리의 코드 세션과 관련된 메모리 정보를 기초로 일회성 해쉬 값을 생성할 수 있다. 여기서, 하나 이상의 알고리즘은 프로세서(401) 스스로 선택한 것일 수도 있고, I/O 인터페이스(405)를 통하여 무결성 인증 서버로부터 수신한 것일 수도 있다. The processor 401 can execute the application by driving an executable file of the application. The processor 401 may execute an instruction to load the contents of the executable file into the memory 403. [ The processor 401 may combine the one or more algorithms to generate a one-time hash value based on the one-time key value, the file information about the executable file, and the memory information associated with the code session of memory allocated to the executable file. Here, one or more algorithms may be ones selected by the processor 401 itself or received from the integrity authentication server via the I / O interface 405. [

I/O 인터페이스(405)는 실행된 어플리케이션을 통해 서비스 서버에 접속하기 위해 어플리케이션이 변조되지 않았다는 인증을 서비스 서버로부터 요청 받을 수 있다. I/O 인터페이스(405)는 일회성 키 값을 요청하는 요청 패킷을 무결성 인증 서버로 전송할 수 있다. I/O 인터페이스(405)는 무결성 인증 서버로부터 일회성 키 값을 수신하여 프로세서(401)로 전달할 수 있다. I/O 인터페이스(405)는 일회성 해쉬 값을 무결성 인증 서버로 전송할 수 있다. I/O 인터페이스(405)는 무결성 인증 서버로부터 암호화된 무결성 검증 결과 정보를 수신하고, 서비스 서버로 암호화된 무결성 검증 결과 정보를 그대로 전달할 수 있다.The I / O interface 405 can be requested from the service server to authenticate that the application has not been tampered with in order to access the service server through the executed application. The I / O interface 405 may send a request packet requesting a one-time key value to the integrity authentication server. The I / O interface 405 may receive the one-time key value from the integrity authentication server and forward it to the processor 401. The I / O interface 405 can send the one-time hash value to the integrity authentication server. The I / O interface 405 receives encrypted integrity verification result information from the integrity authentication server and can transmit the integrity verification result information encrypted to the service server.

메모리(403)는 일회성 키 값, 일회성 해쉬 값, 암호화된 무결성 검증 결과 정보 및 프로세서(401)의 동작을 수행하기 위한 인스트럭션들을 저장할 수 있다. 메모리(403)는 어플리케이션의 실행 파일에 코드 섹션을 할당하고, 실행 파일과 관련된 정보를 저장할 수 있다.The memory 403 may store a one-time key value, a one-time hash value, encrypted integrity verification result information, and instructions for performing operations of the processor 401. [ The memory 403 can allocate a code section to the executable file of the application and store information related to the executable file.

도 5는 일 실시예에 따른 어플리케이션의 무결성을 검증하는 무결성 인증 서버의 동작을 도시한 순서도이다.5 is a flowchart illustrating an operation of an integrity authentication server for verifying the integrity of an application according to an embodiment.

일 실시예에 따르면, 무결성 인증 서버는 단말기에 의해 실행되는 어플리케이션의 무결성을 검증할 수 있다. 단계(501)에서, 무결성 인증 서버는 단말기의 요청에 대응하여 단말기로 일회성 키 값을 전송할 수 있다. According to one embodiment, the integrity authentication server can verify the integrity of the application executed by the terminal. In step 501, the integrity authentication server may send a one-time key value to the terminal in response to the request of the terminal.

다른 실시예에 따르면, 무결성 인증 서버는 단말기에 일회성 키 값을 전송할 때 알고리즘 선택 정보도 함께 전송할 수 있다. 알고리즘 선택 정보는 단말기에 의해 해쉬 값이 생성될 때 이용되는 알고리즘에 대한 정보를 포함할 수 있다. 무결성 인증 서버는 실시예에 따라 알고리즘 선택 정보를 단말기에 주기적으로 전송될 수도 있다. 단말기는 알고리즘 선택 정보를 수신한 경우, 알고리즘 선택 정보에 나타난 알고리즘을 이용하여 해쉬 값을 생성할 수 있다. According to another embodiment, the integrity authentication server may also transmit algorithm selection information when transmitting a one-time key value to the terminal. The algorithm selection information may include information about the algorithm used when the hash value is generated by the terminal. The integrity authentication server may be periodically transmitted to the terminal with algorithm selection information according to an embodiment. If the terminal receives the algorithm selection information, it can generate a hash value using the algorithm indicated in the algorithm selection information.

무결성 인증 서버는 단말기로부터 일회성 키 값 및 일회성 해쉬 값을 수신할 수 있다. 여기서, 해쉬 값은 일회성 키 값, 무결성 검증 대상인 단말기의 어플리케이션의 파일 정보 및 어플리케이션의 메모리 정보를 기초로 단말기에 의해 생성된 것일 수 있다.The integrity authentication server may receive a one-time key value and a one-time hash value from the terminal. Here, the hash value may be generated by the terminal based on the one-time key value, the file information of the application of the terminal whose integrity is verified, and the memory information of the application.

단계(503)에서, 무결성 인증 서버는 수신한 일회성 키 값 및 일회성 해쉬 값을 검증하여 무결성 검증 결과 정보를 생성할 수 있다. 여기서, 무결성 검증 결과 정보는 검증 결과인 무결성 정보와 타임 스탬프 정보를 포함할 수 있다. 무결성 인증 서버가 일회성 키 값 및 일회성 해쉬 값을 검증하는 시각과 관련된 정보일 수 있다.In step 503, the integrity authentication server may verify the received one-time key value and the one-time hash value to generate integrity verification result information. Here, the integrity verification result information may include integrity information and time stamp information, which are verification results. And may be information related to the time at which the integrity authentication server verifies the one-time key value and the one-time hash value.

단계(505)에서, 무결성 인증 서버는 무결성 검증 결과 정보를 암호화할 수 있다. 예를 들어, 무결성 인증 서버는 비대칭 암호화 방식을 이용하여 무결성 검증 결과 정보를 암호화할 수 있다. 무결성 인증 서버는 공개키를 이용하여 무결성 검증 결과 정보를 암호화하고, 서비스 서버는 공개키에 대응하는 비밀키를 이용하여 암호화된 무결성 검증 결과 정보를 복호화할 수 있다.In step 505, the integrity authentication server may encrypt the integrity verification result information. For example, the integrity authentication server can encrypt the integrity verification result information using an asymmetric encryption method. The integrity authentication server encrypts the integrity verification result information using the public key, and the service server can decrypt the encrypted integrity verification result information using the secret key corresponding to the public key.

단계(507)에서, 무결성 인증 서버는 암호화된 무결성 검증 결과 정보를 단말기로 전송할 수 있다. 비대칭 암호화 방식이 이용되는 경우, 단말기에서 암호화된 무결성 검증 결과 정보를 변형하지 않고 무결성 검증 결과 정보를 획득하는 것은 불가능하게 된다. 따라서, 비대칭 암호화 방식이 이용되는 경우, 보안성이 향상될 수 있다.In step 507, the integrity authentication server may send the encrypted integrity verification result information to the terminal. When the asymmetric encryption scheme is used, it is impossible to acquire the integrity verification result information without modifying the encrypted integrity verification result information in the terminal. Therefore, when an asymmetric encryption scheme is used, security can be improved.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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 embodiments described above may be implemented in hardware components, software components, and / or a combination of hardware components and software components. For example, the devices, methods, and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, such as an array, a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also 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 the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The 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 an embodiment may be implemented in the form of a program command 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. Program instructions to be recorded on a computer-readable medium may be those specially designed and constructed for an embodiment or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with reference to the drawings, various technical modifications and variations may be applied to those skilled in the art. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

110: 단말기
120: 무결성 인증 서버
130: 서비스 서버
110: terminal
120: Integrity authentication server
130: service server

Claims (20)

단말기에 의해 수행되는 어플리케이션의 무결성 검증 방법에 있어서,
무결성 인증 서버로부터 수신한 일회성 키(Key) 값, 무결성 검증 대상인 어플리케이션의 파일 정보 및 상기 어플리케이션의 메모리 정보를 기초로 일회성 해쉬 값(Hash value)을 생성하는 단계;
상기 일회성 키 값 및 상기 일회성 해쉬 값을 상기 무결성 인증 서버로 전송하는 단계;
상기 무결성 인증 서버로부터 암호화된 무결성 검증 결과 정보를 수신하는 단계; 및
상기 암호화된 무결성 검증 결과 정보를 상기 어플리케이션을 서비스하는 서비스 서버에 전송하는 단계
를 포함하고,
상기 무결성 인증 서버에 의해, 무결성 검증 결과 정보는 상기 무결성 인증 서버가 상기 일회성 키 값 및 상기 일회성 해쉬 값을 검증하는 시각과 관련된 타임 스탬프 정보를 이용하여 비대칭 암호화 방식을 통해 암호화되는 무결성 검증 방법.
A method for verifying an integrity of an application performed by a terminal,
Generating a one-time hash value based on a one-time key value received from the integrity authentication server, file information of an application to be subjected to integrity verification, and memory information of the application;
Transmitting the one-time key value and the one-time hash value to the integrity authentication server;
Receiving encrypted integrity verification result information from the integrity authentication server; And
And transmitting the encrypted integrity verification result information to a service server that services the application
Lt; / RTI >
Wherein the integrity verification result information is encrypted through the asymmetric encryption method using the time stamp information related to the time at which the integrity authentication server verifies the one-time key value and the one-time hash value by the integrity authentication server.
제1항에 있어서,
상기 무결성 검증 결과 정보는, 상기 무결성 인증 서버에 의해 상기 일회성 키 값 및 상기 일회성 해쉬 값의 검증 결과로서 생성된 무결성 정보 를 포함하는,
무결성 검증 방법.

The method according to claim 1,
Wherein the integrity verification result information includes integrity information generated as a result of verification of the one-time key value and the one-time hash value by the integrity authentication server,
Integrity verification method.

삭제delete 삭제delete 제1항에 있어서,
상기 무결성 검증 결과 정보는 상기 서비스 서버에 고유한 비밀키(Private Key)와 구별되는 공개키(Public Key)를 기초로 상기 무결성 인증 서버에 의하여 암호화되는, 무결성 검증 방법.
The method according to claim 1,
Wherein the integrity verification result information is encrypted by the integrity authentication server based on a public key different from a private key unique to the service server.
제1항에 있어서,
상기 생성하는 단계는,
상기 무결성 인증 서버로부터 수신한 알고리즘 선택 정보에 대응하는 적어도 하나의 알고리즘을 이용하여 상기 일회성 해쉬 값을 생성하는, 무결성 검증 방법.
The method according to claim 1,
Wherein the generating comprises:
Wherein the one-time hash value is generated using at least one algorithm corresponding to algorithm selection information received from the integrity authentication server.
제1항, 제2항, 제5항 및 제6항 중의 어느 한 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체.
A computer-readable recording medium recording a program for executing a method according to any one of claims 1, 2, 5, and 6 on a computer.
어플리케이션의 무결성 검증하는 단말기에 있어서, 상기 단말기는 적어도 하나의 프로세서를 포함하고, 상기 프로세서는,
무결성 인증 서버로부터 수신한 일회성 키 값, 무결성 검증 대상인 어플리케이션의 파일 정보 및 상기 어플리케이션의 메모리 정보를 기초로 일회성 해쉬 값을 생성하는 동작;
상기 일회성 키 값 및 상기 일회성 해쉬 값을 상기 무결성 인증 서버로 전송하는 동작;
상기 무결성 인증 서버로부터 암호화된 무결성 검증 결과 정보를 수신하는 동작; 및
상기 암호화된 무결성 검증 결과 정보를 상기 어플리케이션을 서비스하는 서비스 서버에 전송하는 동작
을 실행하도록 구성되고,
상기 무결성 인증 서버에 의해, 무결성 검증 결과 정보는 상기 무결성 인증 서버가 상기 일회성 키 값 및 상기 일회성 해쉬 값을 검증하는 시각과 관련된 타임 스탬프 정보를 이용하여 비대칭 암호화 방식을 통해 암호화되는, 단말기.
A terminal for verifying the integrity of an application, the terminal comprising at least one processor,
Generating a one-time hash value based on a one-time key value received from the integrity authentication server, file information of an application to be subjected to integrity verification, and memory information of the application;
Transmitting the one-time key value and the one-time hash value to the integrity authentication server;
Receiving encrypted integrity verification result information from the integrity authentication server; And
And transmitting the encrypted integrity verification result information to a service server that services the application
, ≪ / RTI >
Wherein the integrity verification result information is encrypted by the integrity authentication server using an asymmetric encryption method using time stamp information related to the time at which the integrity authentication server verifies the one-time key value and the one-time hash value.
제8항에 있어서,
상기 무결성 검증 결과 정보는, 상기 무결성 인증 서버에 의해 상기 일회성 키 값 및 상기 일회성 해쉬 값의 검증 결과로서 생성된 무결성 정보를 포함하는,
단말기.
9. The method of claim 8,
Wherein the integrity verification result information includes integrity information generated as a result of verification of the one-time key value and the one-time hash value by the integrity authentication server,
terminal.
삭제delete 삭제delete 제8항에 있어서,
상기 무결성 검증 결과 정보는 상기 서비스 서버에 고유한 비밀키와 구별되는 공개키를 기초로 상기 무결성 인증 서버에 의하여 암호화되는, 단말기.
9. The method of claim 8,
Wherein the integrity verification result information is encrypted by the integrity authentication server based on a public key differentiated from a secret key unique to the service server.
제8항에 있어서,
상기 생성하는 동작은,
상기 무결성 인증 서버로부터 수신한 알고리즘 선택 정보에 대응하는 적어도 하나의 알고리즘을 이용하여 상기 일회성 해쉬 값을 생성하는, 단말기.
9. The method of claim 8,
Wherein the generating comprises:
And generates the one-time hash value using at least one algorithm corresponding to algorithm selection information received from the integrity authentication server.
무결성 인증 서버에 의해 수행되는 어플리케이션의 무결성 검증 방법에 있어서,
단말기의 요청에 대응하여 상기 단말기로 일회성 키 값을 전송하는 단계;
단말기로부터 수신한 일회성 키 값 및 일회성 해쉬 값을 검증하여 무결성 검증 결과 정보를 생성하는 단계;
상기 무결성 인증 서버가 상기 일회성 키 값 및 상기 일회성 해쉬 값을 검증하는 시각과 관련된 타임 스탬프 정보를 이용하여 비대칭 암호화 방식을 통해 상기 무결성 검증 결과 정보를 암호화하는 단계; 및
상기 암호화된 무결성 검증 결과 정보를 상기 단말기로 전송하는 단계를 포함하고,
상기 해쉬 값은 상기 일회성 키 값, 무결성 검증 대상인 상기 단말기의 어플리케이션의 파일 정보 및 상기 어플리케이션의 메모리 정보를 기초로 상기 단말기에 의해 생성되는,
무결성 검증 방법.
An integrity verification method of an application executed by an integrity authentication server,
Transmitting a one-time key value to the terminal in response to a request from the terminal;
Generating integrity verification result information by verifying the one-time key value and the one-time hash value received from the terminal;
Encrypting the integrity verification result information through an asymmetric encryption scheme using the time stamp information associated with the time at which the integrity authentication server verifies the one-time key value and the one-time hash value; And
And transmitting the encrypted integrity verification result information to the terminal,
Wherein the hash value is generated by the terminal based on the one-time key value, the file information of the application of the terminal being the integrity verification target, and the memory information of the application,
Integrity verification method.
제14항에 있어서,
상기 무결성 검증 결과 정보는, 상기 무결성 인증 서버에 의해 상기 일회성 키 값 및 상기 일회성 해쉬 값의 검증 결과로서 생성된 무결성 정보를 포함하는,
무결성 검증 방법.
15. The method of claim 14,
Wherein the integrity verification result information includes integrity information generated as a result of verification of the one-time key value and the one-time hash value by the integrity authentication server,
Integrity verification method.
삭제delete 삭제delete 제14항에 있어서,
상기 무결성 검증 결과 정보는 서비스 서버에 고유한 비밀키와 상이한 공개키를 기초로 상기 무결성 인증 서버에 의하여 암호화되는, 무결성 검증 방법.
15. The method of claim 14,
Wherein the integrity verification result information is encrypted by the integrity authentication server based on a public key different from a secret key unique to the service server.
제14항에 있어서,
상기 해쉬 값을 생성하기 위한 적어도 하나의 알고리즘에 관한 알고리즘 선택 정보를 상기 단말기로 전송하는 단계
를 더 포함하는 무결성 검증 방법.
15. The method of claim 14,
Transmitting algorithm selection information related to at least one algorithm for generating the hash value to the terminal
Wherein the integrity verification method further comprises:
제19항에 있어서,
상기 알고리즘 선택 정보는, 상기 단말기에 주기적으로 전송되거나 또는 상기 단말기가 상기 일회성 키 값을 요청한 경우에 상기 단말기로 전송되는, 무결성 검증 방법.
20. The method of claim 19,
Wherein the algorithm selection information is periodically transmitted to the terminal or transmitted to the terminal when the terminal requests the one-time key value.
KR1020170039959A 2017-03-29 2017-03-29 Method and apparatus for verification of integrity of application program KR101973578B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170039959A KR101973578B1 (en) 2017-03-29 2017-03-29 Method and apparatus for verification of integrity of application program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170039959A KR101973578B1 (en) 2017-03-29 2017-03-29 Method and apparatus for verification of integrity of application program

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020190046899A Division KR20190046724A (en) 2019-04-22 2019-04-22 Method and apparatus for verification of integrity of application program

Publications (2)

Publication Number Publication Date
KR20180110432A KR20180110432A (en) 2018-10-10
KR101973578B1 true KR101973578B1 (en) 2019-04-30

Family

ID=63876220

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170039959A KR101973578B1 (en) 2017-03-29 2017-03-29 Method and apparatus for verification of integrity of application program

Country Status (1)

Country Link
KR (1) KR101973578B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102190359B1 (en) * 2019-04-24 2020-12-11 넷마블 주식회사 Method and apparatus for verification of integrity
KR102657620B1 (en) * 2022-11-23 2024-04-16 주식회사 인피니그루 Independently driven, always-on detection in-app control method and system to prevent financial fraud

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100843081B1 (en) * 2006-12-06 2008-07-02 삼성전자주식회사 System and method for providing security

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102089513B1 (en) * 2014-03-19 2020-03-16 한국전자통신연구원 Software Integrity Checking System Based on Mobile Storage and the Method of
KR101814795B1 (en) * 2016-12-29 2018-01-05 주식회사 비즈모델라인 Method for Providing Service by using Duplex Media Authentication

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100843081B1 (en) * 2006-12-06 2008-07-02 삼성전자주식회사 System and method for providing security

Also Published As

Publication number Publication date
KR20180110432A (en) 2018-10-10

Similar Documents

Publication Publication Date Title
EP3458999B1 (en) Self-contained cryptographic boot policy validation
CN109075976B (en) Certificate issuance dependent on key authentication
CN107810617B (en) Secret authentication and provisioning
CN110214440B (en) Computing system, method for transmitting protected data and readable storage medium
CN110249336B (en) Addressing trusted execution environments using signing keys
EP2954448B1 (en) Provisioning sensitive data into third party network-enabled devices
CN112187803B (en) Remote cryptographic service of TPM using server
CN110868291B (en) Data encryption transmission method, device, system and storage medium
CN112514321A (en) Shared secret establishment
KR101739203B1 (en) Password-based user authentication method using one-time private key-based digital signature and homomorphic encryption
CN110235134B (en) Addressing trusted execution environments using clean room provisioning
JP6756056B2 (en) Cryptographic chip by identity verification
JP6188633B2 (en) Computer system, computer, semiconductor device, information processing method, and computer program
KR102364649B1 (en) APPARATUS AND METHOD FOR AUTHENTICATING IoT DEVICE BASED ON PUF
KR101973578B1 (en) Method and apparatus for verification of integrity of application program
US11216571B2 (en) Credentialed encryption
KR101630462B1 (en) Apparatus and Method for Securing a Keyboard
KR20190046724A (en) Method and apparatus for verification of integrity of application program
CN114553566B (en) Data encryption method, device, equipment and storage medium
KR101711024B1 (en) Method for accessing temper-proof device and apparatus enabling of the method
Kim et al. Security analysis and bypass user authentication bound to device of windows hello in the wild
KR102199464B1 (en) Method of authentication among nodes participating in consortium blockchain
WO2022093341A1 (en) Secure key exchange using key-associated attributes
KR102094606B1 (en) Apparatus and method for authentication
JP6779702B2 (en) How to protect your program

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant