KR20170140630A - Method and server for authenticating an application integrity - Google Patents

Method and server for authenticating an application integrity Download PDF

Info

Publication number
KR20170140630A
KR20170140630A KR1020160073173A KR20160073173A KR20170140630A KR 20170140630 A KR20170140630 A KR 20170140630A KR 1020160073173 A KR1020160073173 A KR 1020160073173A KR 20160073173 A KR20160073173 A KR 20160073173A KR 20170140630 A KR20170140630 A KR 20170140630A
Authority
KR
South Korea
Prior art keywords
application
information
mobile terminal
integrity authentication
integrity
Prior art date
Application number
KR1020160073173A
Other languages
Korean (ko)
Other versions
KR102013983B1 (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 KR1020160073173A priority Critical patent/KR102013983B1/en
Publication of KR20170140630A publication Critical patent/KR20170140630A/en
Application granted granted Critical
Publication of KR102013983B1 publication Critical patent/KR102013983B1/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)

Abstract

According to the present invention, provided are an application integrity authenticating method and a server thereof. The application integrity authenticating method of the present invention comprises the steps of: receiving, by an integrity authentication server, an authentication request for an application from a mobile terminal having the application installed therein; generating, by the authentication server, query information on the application in response to the authentication request; transmitting the query information to the mobile terminal; receiving response information generated in response to the query information from the mobile terminal, wherein the response information is generated by the mobile terminal on the basis of a unique value for the application and the query information; and determining whether to convert the application on the basis of the unique value included in the response information.

Description

애플리케이션 무결성 인증 방법 및 인증 서버 {METHOD AND SERVER FOR AUTHENTICATING AN APPLICATION INTEGRITY}[0001] METHOD AND SERVER FOR AUTHENTICATING AN APPLICATION INTEGRITY [0002]

본 발명은 애플리케이션의 고의 변환 여부를 확인하여 애플리케이션의 무결성(integrity)를 인증하는 방법 및 인증 서버에 관한 것이다. The present invention relates to a method and an authentication server for verifying the integrity of an application by verifying whether or not the application has been tampered with.

스마트폰, 즉, 이동 단말기 기능이 고도화되면서, 단순히 전화 기능이 아니라, DMB, 워드 프로세서, MP3 플레이어, 비디오 플레이어, 카메라등 다양한 기능을 가지게 되었다. 그에 따라, 이동 단말기는 기존의 PC, 카메라, MP3 플레이어등의 독립적 기능 기기들의 이용률을 넘어서고 있으며, 이러한 추세는 지속될 것으로 보인다. As the function of a smart phone, that is, a mobile terminal, becomes more advanced, it has various functions such as a DMB, a word processor, an MP3 player, a video player, and a camera. Accordingly, the mobile terminal has exceeded the utilization rates of independent functional devices such as a conventional PC, a camera, and an MP3 player, and this trend is likely to continue.

이동 단말기가 점점 생활에서 중요한 역할을 수행하면서 이동 단말기는 사용자가 필요한 다양한 개인 정보가 저장되게 되었으며, 그와 함께, 이동 단말기의 분실 또는 해킹등이 발생될 경우, 이동 단말기의 사용자의 개인 정보가 외부에 그대로 노출되는 위험성이 점점 증대하고 있다. 특히, 은행 및 결제와 관련된 기능의 경우, 개인 정보가 노출되면 개인 신상 정보를 노출하는 수준에서 끝나는 것이 아니라, 개인의 금융 재산이 피해를 볼 수 있는 가능성도 우려된다. 따라서, 은행 및 결제와 관련된 애플리케이션의 경우, 다른 기능의 애플리케이션보다는 추가 인증등 보안 기능이 보다 강화된 경우가 많다.The mobile terminal plays an important role in life more and more, and various personal information necessary for the user is stored in the mobile terminal. In addition, when the mobile terminal is lost or hacked, the personal information of the user of the mobile terminal is stored in the external The risk of being exposed to the environment is increasing. In particular, in the case of functions related to banking and settlement, exposure of personal information does not end at the level of exposing personally identifiable information, but also the possibility that personal financial property may be damaged. Thus, for banking and billing-related applications, security features, such as additional authentication, are often more intensive than other functional applications.

이동 단말기는 사용할 애플리케이션이 미리 프리로드되어 있거나, 사용자가 추가적으로 애플리케이션을 다운로드하여 사용한다. 즉, 이동 단말기의 기능 수행은 애플리케이션의 활용을 기본으로 한다. 따라서, 이동 단말기를 안전하게 보호하기 위해서는 애플리케이션의 보안이 매우 중요하다. 최근에, 애플리케이션을 통해서 해킹을 시도하는 일부 해커의 경우, 제조사가 정상적으로 만든 애플리케이션을 일부 변형시켜서 일반 사용자의 이동 단말기에 다운로드되도록 유도하는 경우가 종종 발생한다. 이동 단말기에 변형된 애플리케이션이 설치된 경우, 그를 통하여 해커가 원하는 개인 정보등을 빼낼 위험이 있다. The mobile terminal may be preloaded with an application to be used in advance, or the user may additionally download and use the application. That is, the function of the mobile terminal is based on utilization of the application. Therefore, the security of the application is very important for safely protecting the mobile terminal. Recently, in some hackers attempting to hack through an application, a manufacturer often makes some modifications to a normally created application to be downloaded to a general user's mobile terminal. When a modified application is installed in the mobile terminal, there is a risk that the hacker may extract personal information desired by the user.

구체적으로, 정상적으로 제작된 애플리케이션을 리버스 엔지니어링(Reverse Engineering)방식을 통하여 애플리케이션의 원 소스를 확인한 후, 원 소스를 해커가 원하는 내용으로 수정한 후 다시 앱 스토어(App Store)에 올려서, 불특정 다수 사용자가 다운로드하고 설치하도록 유도하여 악용하는 피해 사례가 점점 증가하고 있다.Specifically, after checking the original source of the application through the reverse engineering method of the normally produced application, the original source is modified to the content desired by the hacker, and then the application is put back into the App Store, More and more cases are being exploited to download and install.

이러한 악용 피해를 줄이기 위한 대책으로 애플리케이션의 무결성을 인증할 수 있는 기술에 대한 필요성이 존재한다.There is a need for a technology that can certify the integrity of an application as a countermeasure to reduce the exploitation damage.

종래 기술의 예로, 중앙 서버에서 다양한 애플리케이션들의 해시 값을 미리 저장해두고, 이동 단말기가 단말기에 설치된 애플리케이션의 무결성 여부를 확인을 구하는 경우 중앙 서버에서 확인하는 방식이 있다. 여기에서, 이동 단말기는 설치된 애플리케이션의 해시 값을 구하여, 중앙 서버에 해시 값을 보낸다. 중앙 서버는 수신된 해시 값과 기 저장된 해시 값을 비교하여 애플리케이션의 무결성을 확인한다.As an example of the prior art, there is a method of storing a hash value of various applications in advance in a central server and checking the integrity of an application installed in the terminal in a central server. Here, the mobile terminal obtains the hash value of the installed application and sends the hash value to the central server. The central server compares the received hash value with the previously stored hash value to verify the integrity of the application.

하지만, 애플리케이션의 해시 값은 다양한 방법으로 제 3자에게 취득될 가능성이 있다. 예를 들어, 정적으로 역공학을 통해서 해시 값을 연산하는 로직을 파악하여 우회하여 해시 값을 취득할 수도 있고, 서버와의 통신을 도청하여 해시 값을 그대로 이용할 수 있는 문제점은 여전히 상존한다.However, the hash value of an application may be acquired by a third party in a variety of ways. For example, it is possible to obtain the hash value by bypassing the logic for computing the hash value statically through reverse engineering, and there is still a problem that the hash value can be used as it is by eavesdropping on communication with the server.

본 발명은 이동 단말기의 애플리케이션 인증 요청이 있는 경우, 인증을 전담하는 인증 서버를 통하여 애플리케이션의 변환 여부, 즉, 애플리케이션 무결성을 확인할 수 있다.When there is an application authentication request of the mobile terminal, the present invention can confirm whether the application is converted, that is, the application integrity through the authentication server dedicated to authentication.

또한, 본 발명은 애플리케이션 무결성이 인증된 경우, OTP 토큰을 생성하여, 무결성 검증 결과를 재차 보호할 수 있다. Further, the present invention can generate an OTP token and re-protect the integrity verification result when the application integrity is authenticated.

본 발명의 일 실시예에 따르면, 인증 서버가 애플리케이션이 설치된 이동 단말기로부터 상기 애플리케이션에 대한 인증 요청을 수신하는 단계; 상기 인증 서버가 상기 인증 요청에 응답하여 상기 애플리케이션에 대한 질의 정보를 생성하는 단계; 상기 질의 정보를 상기 이동 단말기에 송신하는 단계; 상기 질의 정보에 대응하여 생성된 응답 정보를 상기 이동 단말기로부터 수신하는 단계로써, 상기 응답 정보는 상기 이동 단말기에 의해서 상기 질의 정보와 상기 애플리케이션에 대한 고유 값을 기반으로 생성되는, 상기 수신 단계; 및 상기 응답 정보에 포함된 상기 고유 값에 기반하여 상기 애플리케이션의 변환 여부를 판단하는 단계를 포함하는, 애플리케이션 무결성 인증 방법이 제공된다.According to an embodiment of the present invention, an authentication server receives an authentication request for the application from a mobile terminal in which an application is installed; The authentication server generating query information for the application in response to the authentication request; Transmitting the query information to the mobile terminal; Receiving response information generated corresponding to the inquiry information from the mobile terminal, wherein the response information is generated based on the inquiry information and the eigenvalues for the application by the mobile terminal; And determining whether to convert the application based on the eigenvalues included in the response information.

또한, 애플리케이션 무결성 인증 방법은, 상기 애플리케이션이 변환되지 않은 것으로 판단한 경우, OTP(One Time Password)토큰을 생성하는 단계; 및 상기 OTP 토큰을 상기 이동 단말기에 송신하는 단계를 더 포함하며, 상기 OTP 토큰은 상기 인증 서버가 상기 OTP 토큰을 생성할 시점의 시각 정보인 타임 스탬프 정보를 포함할 수 있다. In addition, the application integrity authentication method may further include: generating an OTP (token) token if the application is determined not to be transformed; And transmitting the OTP token to the mobile terminal, wherein the OTP token may include time stamp information that is time information of when the authentication server generates the OTP token.

또한, 추가적으로, 상기 OTP 토큰은 서비스 서버와 공유되는 제 1 암호화 키를 더 포함할 수 있다. 상기 OTP 토큰은 상기 서비스 서버의 현재 시각과 상기 타임 스탬프를 이용하여 유효성 여부가 확인될 수도 있다. Additionally, in addition, the OTP token may further comprise a first encryption key that is shared with the service server. The OTP token may be validated using the current time of the service server and the timestamp.

또한, 애플리케이션 무결성 인증 방법은, 상기 인증 서버에 사전 저장된 애플리케이션에 대한 고유 값과 상기 응답 정보에 포함된 상기 고유 값을 비교하여 변환 여부를 판단하는 단계를 더 포함할 수 있다. The application integrity authentication method may further include a step of comparing the eigenvalue of the application previously stored in the authentication server with the eigenvalue included in the response information to determine whether to convert the eigenvalue.

또한, 상기 판단 단계는, 상기 응답 정보를 암호화 키로 복호화하는 단계를 더 포함하며, 상기 응답 정보는 상기 질의 정보와 상기 고유 값을 해시 함수에 대한 입력 값으로 사용하여 생성된 제 1 해시 값을 상기 암호화 키로 암호화한 값일 수 있다. The response information may further include a first hash value generated by using the query information and the eigenvalue as an input value to the hash function, And may be a value encrypted with an encryption key.

상기 질의 값은 난수 함수를 통해서 생성된 난수 값을 포함할 수 있다. The query value may include a random number value generated through a random number function.

본 발명의 다른 실시예에 따르면, 애플리케이션이 설치된 이동 단말기로부터 상기 애플리케이션에 대한 인증 요청을 수신하는 통신부; 상기 애플리케이션에 대한 정보를 저장부; 및 상기 인증 요청에 따라 상기 애플리케이션에 대한 변환 여부를 판단하는 제어부를 포함하며, 상기 제어부는, 상기 수신된 인증 요청에 응답하여 상기 저장된 정보를 활용하여 상기 애플리케이션에 대한 질의 정보를 생성하고, 상기 통신부로 하여금 상기 질의 정보를 상기 이동 단말기에 송신하게 하고, 상기 질의 정보에 대응하여 생성된 응답 정보를 상기 이동 단말기로부터 수신한 경우, 상기 응답 정보에 포함된 애플리케이션에 대한 고유 값에 기반하여 상기 애플리케이션의 변환 여부를 판단하는, 애플리케이션 무결성 인증 서버를 제공할 수 있다.According to another embodiment of the present invention, there is provided a communication system including: a communication unit for receiving an authentication request for an application from a mobile terminal installed with an application; A storage unit for storing information on the application; And a controller for determining whether or not the application is converted according to the authentication request, wherein the controller generates query information for the application using the stored information in response to the received authentication request, To transmit the inquiry information to the mobile terminal, and when the response information generated in response to the inquiry information is received from the mobile terminal, determining, based on the unique value for the application included in the response information, It is possible to provide an application integrity authentication server for judging whether or not the conversion is performed.

또한, 애플리케이션 무결성 인증 서버의 제어부는 상기 애플리케이션이 변환되지 않은 것으로 판단한 경우, OTP(One Time Password)토큰을 생성하고, 상기 OTP 토큰을 상기 이동 단말기에 송신하도록 상기 통신부를 제어하며, 상기 OTP 토큰은 상기 인증 서버가 상기 OTP 토큰을 생성할 시점의 시각 정보인 타임 스탬프 정보를 포함할 수 있다.If the application integrity authentication server determines that the application has not been converted, the control unit of the application integrity authentication server controls the communication unit to generate an OTP token and transmit the OTP token to the mobile terminal, And time stamp information which is time information of a time when the authentication server generates the OTP token.

상기 OTP 토큰은 서비스 서버와 공유되는 제 1 암호화 키를 더 포함할 수 있으며, 상기 OTP 토큰은 상기 서비스 서버의 현재 시각과 상기 타임 스탬프를 이용하여 유효성 여부가 확인될 수 있다.The OTP token may further include a first encryption key that is shared with the service server, and the OTP token may be validated using the current time of the service server and the time stamp.

또한, 애플리케이션 무결성 인증 서버의 저장부는 상기 애플리케이션에 대한 고유 값을 사전 저장하고, 상기 제어부는 상기 저장부에 사전 저장된 고유 값과 상기 응답 정보에 포함된 상기 고유 값을 비교하여 변환 여부를 판단할 수 있다.Also, the storage unit of the application integrity authentication server may store the eigenvalues for the application in advance, and the control unit may compare the eigenvalues pre-stored in the storage unit with the eigenvalues included in the response information, have.

상기 응답 정보는 상기 질의 정보와 상기 고유 값을 해시 함수에 대한 입력 값으로 사용하여 생성된 제 1 해시 값을 암호화 키로 암호화한 값일 수 있으며, 상기 제어부는, 상기 응답 정보를 상기 암호화 키로 복호화할 수 있다.The response information may be a value obtained by encrypting the first hash value generated by using the query information and the eigenvalue as an input value to the hash function using an encryption key, and the control unit may decode the response information using the encryption key have.

본 발명의 또 다른 실시예에 따르면, 애플리케이션에 대한 무결성 인증 요청을 무결성 인증 서버에 송신하는 무선 통신부; 및 상기 무선 통신부를 제어하는 제어부를 포함하며, 상기 제어부는, 상기 무선 통신부를 통하여 상기 무결성 인증 요청에 상응하는 질의 정보를 수신한 경우, 상기 애플리케이션에 대한 고유 값을 확인하고, 상기 고유 값과 상기 질의 정보에 기반하여 응답 정보를 생성하여 상기 무결성 인증 서버에 송신하도록 제어하는, 이동 단말기를 제공할 수도 있다.According to another embodiment of the present invention, there is provided a security authentication system including: a wireless communication unit for transmitting an integrity authentication request for an application to an integrity authentication server; And a control unit for controlling the wireless communication unit. When receiving the inquiry information corresponding to the integrity authentication request through the wireless communication unit, the control unit confirms the eigenvalue for the application, And generates response information based on the query information and transmits the generated response information to the integrity authentication server.

상기 응답 정보는 상기 질의 정보와 상기 고유 값을 해시 함수에 대한 입력 값으로 사용하여 생성된 제 1 해시 값을 암호화 키로 암호화될 수 있다. The response information may be encrypted with an encryption key using a first hash value generated by using the query information and the eigenvalue as input values to the hash function.

또한 상기 이동 단말기의 상기 제어부는, 상기 무결성 인증 서버로부터 무결성 인증 결과로 OTP(One Time Password)토큰을 수신한 경우, 상기 OTP 토큰을 상기 애플리케이션과 관련된 서비스 서버에 송신할 수도 있다.The control unit of the mobile terminal may transmit the OTP token to the service server associated with the application when receiving an OTP (One Time Password) token from the integrity authentication server as a result of the integrity authentication.

본 발명의 적어도 하나의 실시형태에 관련된 애플리케이션 인증 서버 및 인증 방법은 애플리케이션 인증을 전담하는 전담 서버를 통하여 보안이 강화된 상태에서 애플리케이션 인증을 확인할 수 있다.The application authentication server and the authentication method according to at least one embodiment of the present invention can confirm the application authentication with security enhanced through a dedicated server dedicated to application authentication.

또한, 본 발명은 무결성 인증 서버가 무결성 인증시 성공 인증 정보를 가진 OTP 토큰을 생성하여 서비스 서버에 제공함으로써, 이동 단말기와 연계된 서비스 서버가 애플리케이션의 무결성 인증 결과를 용이하게 확인할 수 있는 효과를 제공할 수 있다.In addition, the present invention provides an effect that the integrity authentication server can generate an OTP token having success authentication information at the time of integrity authentication and provide the OTP token to the service server so that the service server associated with the mobile terminal can easily confirm the integrity authentication result of the application can do.

도 1은 애플리케이션의 설치 파일 구조를 나타내는 도면.
도 2는 리버스 엔지니어링(Reverse Engineering) 방식을 나타내는 도면.
도 3은 본 발명에 따른 무결성 인증 시스템을 도시한 도면.
도 4는 본 발명에 따른 무결성 인증 서버를 도시한 도면.
도 5은 본 발명에 따른 이동 단말기를 도시한 도면.
도 6는 본 발명의 일 실시예에 따른 무결성 인증 방식에 대한 전체 흐름을 도시하는 도면.
도 7은 본 발명의 일 실시예에 따른 무결성 인증 방식 중 질의/응답 동작의 흐름을 도시하는 도면.
도 8는 본 발명의 일 실시예에 따른 무결성 인증 방식 중 OTP 생성/전달의 흐름을 도시하는 도면.
1 is a diagram showing an installation file structure of an application;
2 is a diagram illustrating a reverse engineering method;
3 is a diagram illustrating an integrity authentication system according to the present invention.
4 is a diagram illustrating an integrity authentication server according to the present invention.
5 illustrates a mobile terminal according to the present invention.
FIG. 6 is a flowchart showing an overall flow of an integrity authentication method according to an embodiment of the present invention; FIG.
7 illustrates a flow of a query / response operation among the integrity authentication methods according to an embodiment of the present invention;
FIG. 8 is a flow chart illustrating an OTP generation / transfer among integrity authentication schemes according to an embodiment of the present invention; FIG.

이하, 본 발명과 관련된 이동 단말기에 대하여 도면을 참조하여 보다 상세하게 설명한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. Hereinafter, a mobile terminal related to the present invention will be described in detail with reference to the drawings. The suffix "module" and " part "for the components used in the following description are given or mixed in consideration of ease of specification, and do not have their own meaning or role.

본 명세서에서 설명되는 이동 단말기에는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션 등이 포함될 수 있다. 그러나, 본 명세서에 기재된 실시형태에 따른 구성은 이동 단말기에만 적용 가능한 경우를 제외하면, 디지털 TV, 데스크탑 컴퓨터 등과 같은 고정 단말기에도 적용될 수도 있음을 본 기술분야의 당업자라면 쉽게 알 수 있을 것이다.The mobile terminal described in this specification may include a mobile phone, a smart phone, a laptop computer, a digital broadcasting terminal, a PDA (Personal Digital Assistants), a PMP (Portable Multimedia Player), and navigation. However, it will be readily apparent to those skilled in the art that the configuration according to the embodiments described herein may be applied to a fixed terminal such as a digital TV, a desktop computer, or the like, except when applicable only to a mobile terminal.

한편, 본 명세서에서 사용되는 용어인 "무결성(integrity)" 은 데이터 또는 애플리케이션의 정확성과 일관성을 유지하고, 데이터 또는 애플리케이션에 결손과 부정합이 없음을 보증하는 것을 의미한다. 본 발명에서는, 애플리케이션의 변환 여부를 확인하여, 최종적으로 애플리케이션의 무결성 여부를 확인할 수 있다.The term "integrity" as used herein, on the other hand, means to maintain the accuracy and consistency of data or applications and to ensure that there is no deficiency or inconsistency in data or applications. In the present invention, it is possible to confirm whether or not the application is converted, and finally confirm whether the application is integrity or not.

도 1은 애플리케이션의 설치 파일 구조의 일 예를 나타내는 도면이다.1 is a diagram showing an example of an installation file structure of an application.

본 명세서는 설명의 편의를 위해서 안드로이드 OS 를 기준으로 설명하고 있으나, 본 발명은 다른 모바일 OS인 iOS, Windows Mobile(WM)등에도 적용될 수 있다.Although the present invention is described on the basis of the Android OS for convenience of explanation, the present invention can be applied to iOS, Windows Mobile (WM) and the like which are other mobile OSs.

도 1은 안드로이드 애플리케이션의 설치 파일의 일 예로서, APK(Android Package File)을 도시한다. APK는 JAR 포맷의 변형된 형태로서 표준 zip 압축 포맷으로 되어 있다. 1 shows an APK (Android Package File) as an example of an installation file of an Android application. The APK is a modified version of the JAR format and has a standard zip compression format.

AndroidManifest.xml 파일은 최상위 폴더에 위치하며, 애플리케이션 구동에 필요한 권한(Permission)정보를 포함한다. 또한, 주요 컴포넌트(Component)에 대한 동작 설정 정보도 포함한다. The AndroidManifest.xml file is located in the top-level folder and contains the permission information required to run the application. It also contains operational configuration information for the major components.

Classes.dex 파일은 DEX 파일로서 애플리케이션을 실행하는 데 필요한 모든 코드를 포함한다. Java 언어로 작성된 파일이 컴파일된 클래스(Class)파일을 DX 도구를 이용하여 변환한 파일이다. The Classes.dex file contains all the code necessary to run the application as a DEX file. A file created in Java language is a file converted from a compiled class file by using the DX tool.

Res 폴더는 레이아웃, 문자열 등을 정의한 파일로 구성된다. lib 폴더에는 컴파일된 네이티브 라이브러리들이 포함되며, assets 폴더에는 추가로 필요한 파일들을 포함시킬 수 있다.The Res folder consists of files that define layout, strings, and so on. The lib folder contains compiled native libraries, and the assets folder can contain additional files.

도 2는 리버스 엔지니어링의 흐름 및 리패키징을 도시한 도면이다.Figure 2 is a diagram illustrating flow and repackaging of reverse engineering.

리버스 엔지니어링(Reverse Engineering ; 역공학)은 소프트웨어 공학의 한 분야로, 이미 만들어진 시스템을 역으로 추적하여 처음의 문서나 설계기법 등의 자료를 얻어 내는 일을 의미한다.Reverse Engineering (Reverse Engineering) is a field of software engineering, which means tracing an already created system backwards to get the initial documentation or design techniques.

이하에서는, 리버스 엔지니어링이 애플리케이션에 적용되는 일 예를 설명한다.Hereinafter, an example in which reverse engineering is applied to an application will be described.

먼저 APK 파일(201)을 apktool을 이용하여 압축 해제(Unpack)을 하면 도 2에서 보는 바와 같이 내용물인 native library(205)와 smail code(206)이 추출되며, DEX 형태를 디스어셈블(Disassemble)한 파일이 있는 smail 디렉토리가 추가적으로 생성된다.First, when the APK file 201 is unpacked using apktool, native libraries 205 and smail codes 206 are extracted as shown in FIG. 2, and the DEX form is disassembled An additional smail directory with the files is created.

APK 파일(201)을 unzip 압축 해제시 classes.dex 파일(202)을 얻을 수 있다. classes.dex 파일(202)을 dex2jar 프로그램을 이용하여 jar 파일 형식인 classes_x.jar(203)으로 변환한다. Jar 파일은 JD-GUI 와 같은 JAVA 컴파일러 도구를 이용하면 Java source 파일(204)로 변환이 가능하다. Java source 파일 형태로는 외부에서 분석이 용이하기 때문에 리버스 엔지니어링은 이 형태에서 주로 이루어진다. The classes.dex file 202 can be obtained when the APK file 201 is unzipped and decompressed. The classes.dx file 202 is converted into the classes_x.jar (203), which is a jar file format, using the dex2jar program. Jar files can be converted to Java source files (204) using JAVA compiler tools such as JD-GUI. Reverse engineering is mainly done in this form because the Java source file format is easy to analyze from the outside.

변조된 Apk(207)로 진행하는 과정을 리패키징(Repackaging)이라고 하며 이 과정에서 해커들의 변조 앱으로 재생성되게 된다. 상기 두가지 방식으로 분해를 진행했는데, 역순으로 진행하면 재조합이 된다. 첫 번째 apktool을 이용한 경우 smail 코드를 직접 수정해야 하는데, 이 경우 직접 코드를 분석하기 어렵기 때문에 두번째 방식으로 java 소스 코드를 분석하여 공격 지점을 찾아내고 이에 대응하는 smail 코드를 수정하여 변조 Apk(207)을 생성한다. The process of proceeding to the modulated Apk 207 is called repackaging and is regenerated as a modulating app of the hackers in this process. The decomposition was carried out in the above two ways, but the reverse order is followed. If you use the first apktool, you need to modify the smail code directly. In this case, it is difficult to analyze the code directly. In the second method, you analyze the java source code to find the attack point and modify the corresponding smail code to modify the Apk 207 ).

한편, 두번째 방식으로 java 소스코드를 분해한 경우에는 그 역순으로 java 소스 코드를 수정하고 역으로 컴파일 및 조립하여 class.dex 파일을 만들고 나머진 원본을 압축하면 변조된 Apk(207)이 생성된다. On the other hand, if the Java source code is disassembled in the second method, the Java source code is modified in the reverse order, and the class.dex file is created by inverse compiling and assembling, and the rest is compressed to generate the modified Apk (207).

한편, smail code(206)는 디스어셈블러에 의해서 생성되는 데, Java source 파일(204)과 동일한 구조를 가지지만, 가독성에 문제가 있다. 따라서, 이 단계를 거치는 경우가 많은 것은 아니나, Java source 파일(204)의 난독화가 많이 이루어져 디컴파일이 불가능한 경우에는 smail code(206)을 직접 수정하기도 한다. 그 후, apktool 을 이용하여 생성된 파일을 수정하고 다시 내용을 apktool을 이용하여 패키지화시키면 변조된 APK 파일(207)을 생성할 수 있다. 또한, 설치가능한 형태로 만들기 위해서 jarsigner 도구를 이용하여 앱 서명을 추가하기도 한다.On the other hand, the smail code 206 is generated by the disassembler, and has the same structure as the Java source file 204, but has a problem in readability. Therefore, although this step is not often performed, the smail code 206 may be directly modified if the Java source file 204 is obfuscated and decompilation is impossible. Thereafter, the modified APK file 207 can be generated by modifying the generated file using apktool and re-packaging the contents using apktool. You can also add app signatures using the jarsigner tool to make it installable.

이하에서는, 해시 값(Hash)에 대한 설명이다. Hereinafter, the hash value (Hash) is described.

해시 값은 해시 함수를 통해서 구해지는 값이다. 해시 함수는 임의의 길이를 갖는 임의의 데이터에 대해서 고정된 길이의 데이터로 매핑하는 함수이다. 즉, 해시 함수를 적용하여 계산된 고정된 길이의 데이터를 해시 값이라고 한다. 해시 값은 다른 표현으로 해시 코드, 체크썸(checksum)이라고 불릴 수도 있다. 본 발명에서는 애플리케이션의 무결성을 인증할 수 있는 애플리케이션에 대한 고유 값으로 해석될 수 있다. The hash value is the value obtained through the hash function. The hash function is a function for mapping data of fixed length to arbitrary data having an arbitrary length. That is, a fixed length of data calculated by applying a hash function is called a hash value. The hash value may be referred to as a hash code, a checksum, in a different representation. In the present invention, it can be interpreted as a unique value for an application that can authenticate the integrity of an application.

변조된 APK, 즉 무결성에 흠결이 있는 애플리케이션으로 구동되는 것을 막기 위해서, 해시 값을 이용하여 앱의 무결성 인증을 수행하는 것이 일반적이다. It is common to perform an integrity verification of an app using a hash value in order to prevent it from being run with a modulated APK, that is, an application with a defect in integrity.

여기에서, 해시 값은 실행중인 애플리케이션의 APK 파일에 대해서 계산되며, 서버로 안전하게 전송한 후 서버에서 보관 중인 원본 APK 파일의 해시 값과 비교하는 방식으로 이루어진다.Here, the hash value is calculated for the APK file of the running application, and is safely transmitted to the server and then compared with the hash value of the original APK file stored in the server.

해시 값은 보안 분야에서 일반적으로 사용될 수 있다. 해시 값이 구해진 경우, 해시 값으로부터 원래의 데이터를 복원하는 것은 불가능하다. 즉, 해시 함수는 일방향 함수의 특징을 가진다. 따라서, 동일한 해시 값을 가지는 원래의 데이터가 오직 하나만 존재할 수 있다. 따라서 비밀 번호처럼 데이터의 무결성을 인증할 때 사용될 수 있다.Hash values are commonly used in the security field. When a hash value is obtained, it is impossible to restore the original data from the hash value. That is, the hash function has a characteristic of a one-way function. Thus, there can be only one original data with the same hash value. It can be used to authenticate the integrity of the data, such as a password.

한편, 해시 값과 더불어 애플리케이션을 등록할 때 사용되는 서명(signature)을 이용하여 무결성 인증을 수행할 수도 있다. 서명은 인증서 정보에 대한 내용을 포함하며, 애플리케이션에 지문(fingerprint)을 남기는 방식으로 애플리케이션에 포함될 수도 있다. 따라서, 변조된 애플리케이션의 경우에 동일한 인증서를 가지고 있지 않으면 원본과 차이가 발생되어 무결성 인증을 할 수도 있다. In addition, integrity authentication may be performed using a signature used when registering an application together with the hash value. The signature includes the content of the certificate information and may be included in the application in such a way as to leave a fingerprint in the application. Therefore, in the case of a modulated application, if there is not the same certificate, a difference from the original may be generated and integrity authentication may be performed.

도 3은 본 발명에 따른 애플리케이션 무결성 인증 시스템을 도시한 도면이다.3 is a diagram showing an application integrity authentication system according to the present invention.

본 발명에 따른 애플리케이션 무결성 인증 시스템(300)은 인증 서버(301), 이동 단말기(302) 및 서비스 서버(303)로 구성될 수 있다. 하지만, 무결성 인증 시스템(300)이 반드시 그에 한정되지는 않으며, 서비스 서버(303)의 기능과 인증 서버(301)는 하나의 서버에서 운영될 수도 있다.The application integrity authentication system 300 according to the present invention may be configured with an authentication server 301, a mobile terminal 302, and a service server 303. However, the integrity authentication system 300 is not necessarily limited to this, and the functions of the service server 303 and the authentication server 301 may be operated in one server.

인증 서버(301)는 이동 단말기(302)에 설치된 애플리케이션의 무결성을 인증하는 역할을 수행한다. 이동 단말기(302)로부터 애플리케이션 인증 요청을 받은 경우, 일정한 로직에 따라서 애플리케이션의 무결성을 판단하고, 그 결과를 다시 이동 단말기(302)에 송부한다.The authentication server 301 serves to authenticate the integrity of an application installed in the mobile terminal 302. When the application authentication request is received from the mobile terminal 302, the integrity of the application is determined according to a certain logic, and the result is transmitted to the mobile terminal 302 again.

이동 단말기는(302)는 주로 스마트폰을 의미하나, 그에 한정되지는 않으며, 안드로이드 OS, 애플운영체제(iOS)등 모바일 OS를 기반으로 동작하는 모든 단말기를 의미한다. 사용자가 이동 단말기(302)에 설치된 애플리케이션에 대해서 무결성 인증을 하기를 원하는 경우, 이동 단말기(302)는 인증 서버(301)에 무결성 인증 요청을 한다. 무결성 인증 결과를 수신한 경우, 그 결과를 서비스 서버(303)에 전달한다.The mobile terminal 302 mainly refers to a smart phone, but it is not limited thereto and means all terminals operating on a mobile OS such as an Android OS and an Apple OS (iOS). When the user desires to perform integrity authentication on an application installed in the mobile terminal 302, the mobile terminal 302 requests the authentication server 301 for an integrity authentication. When the integrity authentication result is received, the result is transmitted to the service server 303.

서비스 서버(303)는 하나의 애플리케이션에 대한 것일 수도 있으나, 여러 애플리케이션들에 대한 기능을 함께 수행할 수도 있다. 서비스 서버(303)는 이동 단말기(302)에 설치된 애플리케이션이 외부 네트워크와의 연결이 필요한 경우나, 애플리케이션 사용에 대해서 외부 인증 (개인 인증 또는 애플리케이션 인증) 이 필요한 경우, 애플리케이션 동작에 필요한 정보를 송수신한다. 무결성 인증과 관련하여, 이동 단말기(302)가 인증 서버(301)로부터 무결성 인증 결과를 수신한 경우, 이동 단말기(302)는 그 무결성 인증 결과를 서비스 서버(303)에 송신한다. 서비스 서버(303)는 그 결과에 상응하는 정보 또는 피드백을 이동 단말기(302)에 송신한다.The service server 303 may be for one application, but may also perform functions for several applications together. The service server 303 transmits and receives information required for application operation when an application installed in the mobile terminal 302 needs to be connected to an external network or when external authentication (personal authentication or application authentication) is required for application use . When the mobile terminal 302 receives the integrity authentication result from the authentication server 301 in connection with the integrity authentication, the mobile terminal 302 transmits the integrity authentication result to the service server 303. [ The service server 303 transmits information or feedback corresponding to the result to the mobile terminal 302.

도 4는 본 발명에 따른 무결성 인증 서버(301)의 일 예를 도시한 도면이다.FIG. 4 is a diagram illustrating an example of an integrity authentication server 301 according to the present invention.

무결성 인증 서버(301)는 저장부(401), 통신부(402), 제어부(403)를 포함할 수 있다.The integrity authentication server 301 may include a storage unit 401, a communication unit 402, and a control unit 403. [

통신부(402)는 다수의 이동 단말기(401)와 통신할 수 있으며, 그로부터 정보를 송수신할 수 있다. 또한, 통신부(402)는 필요에 따라서 외부 네트워크에 연결될 수도 있으다. 통신부(402)는 외부 네트워크를 통하여 무결성 인증에 필요한 외부 정보를 수시로 수신할 수도 있다. 예를 들어, 통신부(402)는 외부 네트워크를 통하여 다수의 애플리케이션들에 대한 해시 값 등에 대한 정보를 수신할 수도 있다. 통신부(402)는 이동 단말기(401)에 질의(challenge) 값을 송신할 수 있으며, 그에 대한 응답(response) 값을 수신할 수 있다. 또한, 통신부(402)는 추후 설명할 OTP 값을 포함한 무결성 인증 결과 정보를 이동 단말기(401)에 송신할 수도 있다. 경우에 따라서 통신부(402)는 OTP 값을 포함한 무결성 인증 결과 정보를 서비스 서버(403)에 직접 송신할 수도 있다.The communication unit 402 can communicate with a plurality of mobile terminals 401 and can transmit and receive information therefrom. Further, the communication unit 402 may be connected to an external network as needed. The communication unit 402 may periodically receive external information necessary for integrity authentication through an external network. For example, the communication unit 402 may receive information on a hash value or the like for a plurality of applications through an external network. The communication unit 402 can transmit a challenge value to the mobile terminal 401 and receive a response value therefor. The communication unit 402 may also transmit the integrity authentication result information including the OTP value to be described later to the mobile terminal 401. [ In some cases, the communication unit 402 may directly transmit the integrity authentication result information including the OTP value to the service server 403. [

저장부(401)는 애플리케이션의 무결성 인증에 필요한 다양한 정보를 저장할 수 있다. 예를 들어, 애플리케이션의 프로파일 정보를 저장할 수 있다. 또한, 애플리케이션 각각의 해시 값을 저장할 수 있다. 무결성 인증 서버(301)는 하나의 애플리케이션의 인증만을 위한 것일 수도 있지만, 다수의 애플리케이션들의 무결성을 인증하기 위한 서버일 수도 있다. 따라서, 다수의 애플리케이션들의 앱 해시 값을 저장부(401)에 저장할 수도 있다. 저장부(401)는 통신부(402) 및 제어부(403)와 연결되어 애플리케이션들의 프로파일 정보들을 일정한 시간 주기로 갱신할 수도 있다.The storage unit 401 may store various information necessary for the integrity authentication of the application. For example, you can store profile information for your application. In addition, the hash value of each application can be stored. The integrity authentication server 301 may be for authentication of only one application, but may also be a server for authenticating the integrity of a plurality of applications. Accordingly, the application hash value of a plurality of applications may be stored in the storage unit 401. [ The storage unit 401 may be connected to the communication unit 402 and the control unit 403 to update profile information of applications at a predetermined time period.

제어부(403)는 무결성 인증 서버(301)의 전체적인 동작을 제어한다. 구체적으로, 제어부(403)는 저장부(401) 및 통신부(403)의 동작을 제어할 수도 있다. 또한, 제어부(403)는 이동 단말기(302)로부터 수신된 다양한 정보를 기반으로 무결성 인증을 수행할 수 있다. 구체적으로, 제어부(403)는 이동 단말기(302)로부터 수신된 응답 값에 포함된 무결성 검증과 관련된 신호들을 이용하여 무결성 인증을 할 수 있으며, 그 결과에 따라서 성공/실패 신호를 생성할 수 있다. 또한, 제어부(403)는 무결성 인증 성공시 OTP 값을 생성할 수 있다. The control unit 403 controls the overall operation of the integrity authentication server 301. [ Specifically, the control unit 403 may control the operations of the storage unit 401 and the communication unit 403. [ In addition, the control unit 403 may perform integrity authentication based on various information received from the mobile terminal 302. Specifically, the control unit 403 can perform integrity authentication using signals related to integrity verification included in the response value received from the mobile terminal 302, and generate a success / failure signal according to the result. In addition, the control unit 403 can generate an OTP value when the integrity authentication succeeds.

한편, 무결성 인증 서버(301)에 대해서 설명하였으나, 서비스 서버(303)도 역시 저장부, 통신부, 제어부를 포함할 수도 있다. 본 발명의 다른 예로, 서비스 서버와 무결성 인증 서버는 하나의 서버로 구현될 수도 있다.Meanwhile, although the integrity authentication server 301 has been described, the service server 303 may also include a storage unit, a communication unit, and a control unit. In another example of the present invention, the service server and the integrity authentication server may be implemented as a single server.

소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시형태들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다. 적절한 프로그램 언어로 쓰여진 소프트웨어 어플리케이션으로 소프트웨어 코드가 구현될 수 있다. 상기 소프트웨어 코드는 저장부에 저장되고, 제어부에 의해 실행될 수 있다.According to a software implementation, embodiments such as the procedures and functions described herein may be implemented in separate software modules. Each of the software modules may perform one or more of the functions and operations described herein. Software code can be implemented in a software application written in a suitable programming language. The software code is stored in the storage unit and can be executed by the control unit.

도 5는 본 발명의 일 실시형태와 관련된 이동 단말기의 블록 구성도(block diagram)이다. 5 is a block diagram of a mobile terminal according to an embodiment of the present invention.

이동 단말기(302)는 무선 통신부(501), 제어부(502), 메모리(503), 사용자 입력부(504), 및 출력부(505)를 포함할 수도 있다. 도 5에 도시된 구성요소들이 필수적인 것은 아니어서, 그보다 많은 구성 요소들을 갖거나 그보다 적은 구성요소들을 갖는 이동 단말기가 구현될 수도 있다.The mobile terminal 302 may include a wireless communication unit 501, a control unit 502, a memory 503, a user input unit 504, and an output unit 505. The components shown in Fig. 5 are not essential, and a mobile terminal having more or fewer components may be implemented.

무선 통신부(501)는 이동 단말기(302)와 외부 네트워크 사이 또는 이동 단말기(302)와 이동 단말기(302)가 위치한 네트워크 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 예를 들어, 무선 통신부는 방송 수신 모듈, 이동통신 모듈, 무선 인터넷 모듈, 근거리 통신 모듈 및 위치정보 모듈 등을 포함할 수 있다. 무선 통신부(501)는 외부 App store 로부터 애플리케이션을 다운로드할 수 있다. 또한, 무선 통신부(501)는 무결성 인증 서버(301)와 다양한 정보를 송수신할 수 있다. 무선 통신부(501)는 인증을 위하여 또는 애플리케이션 구동을 위한 다양한 정보를 서비스 서버(303)와 송수신할 수도 있다.The wireless communication unit 501 may include one or more modules for enabling wireless communication between the mobile terminal 302 and the external network or between the mobile terminal 302 and the network in which the mobile terminal 302 is located. For example, the wireless communication unit may include a broadcast receiving module, a mobile communication module, a wireless Internet module, a short distance communication module, and a location information module. The wireless communication unit 501 can download the application from the external App store. In addition, the wireless communication unit 501 can transmit / receive various information to / from the integrity authentication server 301. [ The wireless communication unit 501 may transmit / receive various information for authentication or application driving to / from the service server 303.

제어부(controller, 502)는 통상적으로 이동 단말기의 전반적인 동작을 제어한다. 예를 들어 음성 통화, 데이터 통신, 화상 통화 등을 위한 관련된 제어 및 처리를 수행한다. 또한, 무결성 인증 서버(301)로부터 전달받은 질의(challenge) 값에 응답하여 여러 정보를 이용하여 응답(response) 값을 생성할 수도 있다.The controller 502 typically controls the overall operation of the mobile terminal. For example, voice communication, data communication, video communication, and the like. In addition, a response value may be generated using a variety of information in response to a challenge value transmitted from the integrity authentication server 301.

메모리(503)는 제어부(502)의 처리 및 제어를 위한 프로그램이 저장될 수도 있고, 입/출력되는 데이터들(예를 들어, 전화번호부, 메시지, 오디오, 정지영상, 동영상 등)의 임시 저장을 위한 기능을 수행할 수도 있다. 상기 메모리부(503)에는 상기 데이터들 각각에 대한 사용 빈도(예를 들면, 각 전화번호, 각 메시지, 각 멀티미디어에 대한 사용빈도)도 함께 저장될 수 있다. 또한, 상기 메모리부(503)에는 상기 터치스크린 상의 터치 입력시 출력되는 다양한 패턴의 진동 및 음향에 관한 데이터를 저장할 수 있다. 메모리는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.The memory 503 may store a program for processing and controlling the control unit 502 and temporarily store the input / output data (e.g., telephone directory, message, audio, still image, For example. The memory unit 503 may store the frequency of use of each of the data (for example, each telephone number, each message, and frequency of use for each multimedia). In addition, the memory unit 503 may store data on vibration and sound of various patterns outputted when a touch is input on the touch screen. The memory may be a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (for example, SD or XD memory), a random access (ROM), electrically erasable programmable read-only memory (EEPROM), programmable read-only memory (PROM), magnetic memory, magnetic disk, optical disk Or a storage medium of at least one type.

사용자 입력부(504)는 사용자가 단말기의 동작 제어를 위한 입력 데이터를 발생시킨다. 사용자 입력부는 키 패드(key pad), 돔 스위치(dome switch), 터치 패드(정압/정전), 조그 휠, 조그 스위치 등으로 구성될 수 있다. The user input unit 504 generates input data for controlling the operation of the terminal. The user input unit may include a key pad, a dome switch, a touch pad (static / static), a jog wheel, a jog switch, and the like.

출력부(505)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시키기 위한 것으로, 이에는 디스플레이부, 음향 출력 모듈, 알람부, 햅틱 모듈 등이 포함될 수 있다. 디스플레이부(505)는 이동 단말기(302)에서 처리되는 정보를 표시할 수 있다. 예를 들어, 출력부(505)는 무결성 인증 실패로 애플리케이션이 변조된 것으로 확인된 경우, 오류 메시지를 다양한 방식으로 출력할 수 있다.The output unit 505 is for generating an output related to a visual, auditory or tactile sense. The output unit 505 may include a display unit, an audio output module, an alarm unit, a haptic module, and the like. The display unit 505 may display information processed by the mobile terminal 302. [ For example, the output unit 505 may output an error message in various manners if an integrity authentication failure indicates that the application has been tampered with.

여기에 설명되는 다양한 실시형태는 예를 들어, 소프트웨어, 하드웨어 또는 이들의 조합된 것을 이용하여 컴퓨터 또는 이와 유사한 장치로 읽을 수 있는 기록매체 내에서 구현될 수 있다.The various embodiments described herein may be embodied in a recording medium readable by a computer or similar device using, for example, software, hardware, or a combination thereof.

하드웨어적인 구현에 의하면, 여기에 설명되는 실시형태는 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays, 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적인 유닛 중 적어도 하나를 이용하여 구현될 수 있다. 일부의 경우에 본 명세서에서 설명되는 실시형태들이 제어부 자체로 구현될 수 있다.In accordance with a hardware implementation, the embodiments described herein may be implemented as application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays May be implemented using at least one of a processor, controllers, micro-controllers, microprocessors, and other electronic units for performing other functions. In some cases, The embodiments to be described can be implemented by the control unit itself.

소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시형태들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다. 적절한 프로그램 언어로 쓰여진 소프트웨어 어플리케이션으로 소프트웨어 코드가 구현될 수 있다. 상기 소프트웨어 코드는 메모리에 저장되고, 제어부에 의해 실행될 수 있다.According to a software implementation, embodiments such as the procedures and functions described herein may be implemented in separate software modules. Each of the software modules may perform one or more of the functions and operations described herein. Software code can be implemented in a software application written in a suitable programming language. The software code is stored in a memory and can be executed by the control unit.

도 6는 본 발명의 일 실시예에 따른 무결성 인증 방식에 대한 전체 흐름을 도시하는 도면이다.FIG. 6 is a diagram illustrating an overall flow of an integrity authentication method according to an embodiment of the present invention.

무결성 인증 서버(301)는 먼저 서비스 서버(303)로부터 애플리케이션 프로파일 정보를 수신받는다 (S601). 애플리케이션 프로파일 정보는 애플리케이션 해시 값 (이하, 앱 해시 값), 패키지 정보, 애플리케이션 버전, 앱 서명키, 단말 USIM, 애플리케이션 이름을 포함할 수 있다. 무결성 인증 서버(301)는 서비스 서버(303)로부터 수신한 프로파일 정보들을 저장한다. 특히, 무결성 인증 서버(301)는 애플리케이션에 대한 앱 해시 값을 저장한다 (S602).The integrity authentication server 301 first receives the application profile information from the service server 303 (S601). The application profile information may include an application hash value (hereinafter referred to as an app hash value), package information, an application version, an app signature key, a terminal USIM, and an application name. The integrity authentication server 301 stores profile information received from the service server 303. In particular, the integrity authentication server 301 stores an app hash value for the application (S602).

이동 단말기(302)가 애플리케이션을 구동하는 경우, 이동 단말기(302)는 구동하는 애플리케이션에 대한 무결성 인증 요청을 무결성 인증 서버(301)에 송신한다 (S603). 무결성 인증 서버(301)는 무결성 인증 요청을 수신한 경우, 애플리케이션에 대한 질의 (Challenge) 값을 생성한다 (S604). 무결성 인증 서버(301)는 질의 값을 이동 단말기(302)를 송신한다. When the mobile terminal 302 starts the application, the mobile terminal 302 transmits an integrity authentication request for the application to be executed to the integrity authentication server 301 (S603). When the integrity authentication server 301 receives the integrity authentication request, it generates a challenge value for the application (S604). The integrity authentication server 301 transmits the query value to the mobile terminal 302.

이동 단말기(302)는 질의 값을 수신받은 경우, 질의 값에 대한 응답 (Response) 값을 생성한다 (S606). 응답 값을 생성시, 이동 단말기(302)는 애플리케이션의 앱 해시 값을 이용하여 생성한다. 이동 단말기(302)는 응답 값을 다시 무결성 인증 서버(301)에 송신한다.If the mobile terminal 302 receives the query value, it generates a response value to the query value (S606). Upon generating the response value, the mobile terminal 302 generates using the app hash value of the application. The mobile terminal 302 transmits the response value again to the integrity authentication server 301. [

무결성 인증 서버(301)는 응답 값을 분석하여 애플리케이션에 대한 무결성을 검증한다 (S608). 무결성 인증 서버(301)는 무결성 검증 후 무결성 인증 결과를 생성한다 (S609). 무결성 인증 서버(301)는 무결성 인증 결과를 이동 단말기(302)에 송신한다. 이동 단말기(302)는 인증 결과에 따라서 동작한다 (S611). 예를 들어, 이동 단말기(302)는 인증에 실패한 경우, 오류 메시지를 생성할 수 있다. 이동 단말기(302)는 인증 결과를 서비스 서버(303)에 송신한다 (S612). 본 발명에서는, 인증 결과 생성시, OTP 값을 포함할 수 있다. 이동 단말기(302)는 무결성 인증 서버(301)로부터 인증 결과를 수신한 직후 바로 서비스 서버(303)에 전달할 수 있다. 또는 선택적으로, 이동 단말기(302)가 애플리케이션을 통하여 서비스 서버(303)에 접속할 필요가 있을 때 인증 결과를 서비스 서버(303)에 송신할 수 있다.The integrity authentication server 301 analyzes the response value to verify the integrity of the application (S608). The integrity authentication server 301 generates an integrity authentication result after integrity verification (S609). The integrity authentication server (301) transmits the integrity authentication result to the mobile terminal (302). The mobile terminal 302 operates according to the authentication result (S611). For example, the mobile terminal 302 may generate an error message if authentication fails. The mobile terminal 302 transmits the authentication result to the service server 303 (S612). In the present invention, the OTP value may be included in the generation of the authentication result. The mobile terminal 302 may transmit the authentication result to the service server 303 immediately after receiving the authentication result from the integrity authentication server 301. [ Or optionally, to the service server 303 when the mobile terminal 302 needs to connect to the service server 303 through the application.

이하에서는, 본 발명의 무결성 인증 방식 중 질의/응답 부분의 흐름에 대한 설명이다.Hereinafter, the flow of the query / response part among the integrity authentication methods of the present invention will be described.

도 7을 참조하면, 무결성 인증 방식 중 질의/응답 동작의 흐름이 도시된다. Referring to FIG. 7, a flow of a query / response operation among the integrity authentication methods is shown.

질의/응답 인증은 암호학에서 널리 사용되는 방식이며, 이의 구현 방식에 따라 ㄷ다양한 방식으로 구현될 수 있다. Query / response authentication is widely used in cryptography, and can be implemented in a variety of ways, depending on how it is implemented.

질의/응답의 내용(Payload)을 암호화시키는 방식에 따라서 해쉬 함수, 대칭키, 비대칭키, 전자서명 등의 다양한 방식을 선택하거나 조합하여 실시할 수 있다. Various methods such as a hash function, a symmetric key, an asymmetric key, and an electronic signature can be selected or combined according to a method of encrypting the contents of a query / response (payload).

한편, 서버가 단말 간의 인증 참여 방식에 따라 단 방향 및 양 방향 인증이 있을 수 있다. 무결성 인증 서버(301)가 이동 단말기(302)에 대한 인증만 실시한 경우가 단 방향의 예가 될 수 있으며, 이동 단말기(302)에서도 추가적으로 무결성 인증 서버(301)의 유효성을 검증하게 강화시킨 것이 양 방향 인증의 예가 될 수 있다. 양 방향 인증의 경우 공유하는 비밀키를 이용하여 난수(Nounce)를 이동 단말기(302)에서도 질의(Challenge)값을 생성하여 서버(301)와 주고 받도록 할 수 있다. On the other hand, the server may have unidirectional and bi-directional authentication depending on the manner in which the terminal participates in authentication. The case in which the integrity authentication server 301 performs only authentication with respect to the mobile terminal 302 may be an example of a single direction and the mobile terminal 302 may additionally be enhanced to verify the validity of the integrity authentication server 301 in both directions It can be an example of authentication. In the case of bi-directional authentication, a random number (Nounce) may be generated in the mobile terminal 302 using a shared secret key to be exchanged with the server 301.

도 7에서 설명되는 질의/응답 동작은 도 6에서 설명된 질의/응답 생성과 관련된 단계인 S603~S610 을 보다 구체적으로 설명된다.The query / response operation described in FIG. 7 will be described in more detail with reference to steps S603 to S610 that are associated with the query / response generation described in FIG.

이동 단말기(302)는 애플리케이션을 구동한다 (S701). 해당 애플리케이션은 이동 단말기(302)에 설치된 애플리케이션이다. 본 발명은 애플리케이션을 구동할 때마다 동작할 수도 있으나, 바람직하게는, 애플리케이션을 설치한 후 최초 구동시 동작할 수 있다. 이동 단말기(302)는 무선 통신부(501)를 통하여 애플리케이션에 대한 무결성 인증 요청을 송신한다 (S702).The mobile terminal 302 starts the application (S701). The application is an application installed in the mobile terminal 302. The present invention may operate every time the application is run, but preferably it may operate upon initial startup after the application is installed. The mobile terminal 302 transmits an integrity authentication request for the application through the wireless communication unit 501 (S702).

무결성 인증 서버(301)는 무결성 인증 요청을 수신한 경우, 난수 함수를 이용하여 난수를 생성한다 (S703). 난수 함수를 통해서 생성된 난수를 임의 값(Nonce) 으로 불릴 수도 있다. 여기에서, 임의 값은 1회적으로 사용되는 값이며, 생성될 때마다 다른 값이 생성될 수 있다. 무결성 인증 서버(301)는 서버(301)에 사전 등록된 애플리케이션에 대한 프로파일 정보 (앱 해시값, 단말 USIM, 애플리케이션 이름, 패키지 정보, 회사 명, 애플리케이션 버전, 앱 서명키) 및 난수 함수로 생성된 난수 값인 임의 값을 입력 값으로 하여, 해시 함수를 구동시킨다. 무결성 인증 서버(301)는 해시 함수를 통하여 질의 값을 생성한다 (S704). 본 발명에서는, 바람직하게는, 무결성 인증 서버(301)는 임의 값, 패키지 정보, 애플리케이션 버전, 비밀키 (Pre Shared Key) 등을 해시 함수의 입력 값으로 사용하여 질의 값을 생성할 수 있다. 생성된 질의 값은 이동 단말기(302)에 송신된다 (S705).When the integrity authentication server 301 receives the integrity authentication request, the integrity authentication server 301 generates a random number using the random number function (S703). A random number generated through a random number function may be referred to as a random value (Nonce). Here, the arbitrary value is a value used one time, and another value can be generated each time it is generated. The integrity authentication server 301 receives profile information (an application hash value, a terminal USIM, an application name, package information, a company name, an application version, an application signing key) for the application pre-registered in the server 301, A random value, which is a random number, is used as an input value to drive a hash function. The integrity authentication server 301 generates a query value through a hash function (S704). In the present invention, preferably, the integrity authentication server 301 may generate a query value using an arbitrary value, package information, application version, secret key (Pre Shared Key), etc. as an input value of a hash function. The generated query value is transmitted to the mobile terminal 302 (S705).

이동 단말기(302)는 질의 값을 수신한 경우, 애플리케이션에 대한 앱 해시 값을 계산한다 (S706). 선택적으로 이동 단말기(302)는 저장된 앱 해시 값을 로딩할 수도 있다. 질의/응답 (Challenge-Response) 인증은 임의 값 (일회 사용 숫자) 을 이용하여 질문으로 사용하고, 인증 대상이 되는 값 (앱 해시 값)을 응답으로 사용하여, 재사용공격(Replay attack) 을 방지하는 데 의의가 있다. 한편, 응답 값은 네트워크 상에서 세션 해킹에 의한 평문 (Plain Text) 노출 우려가 있기 때문에 해시 함수를 이용하거나 암호화를 이용하여 값을 분석할 수 없도록 하는 것이 일반적이다.When the mobile terminal 302 receives the query value, it calculates an app hash value for the application (S706). Optionally, the mobile terminal 302 may load the stored app hash value. Challenge-Response authentication uses a random value (one-time number) as a question, and uses a value (app hash value) to be authenticated as a response to prevent a replay attack There is significance to this. On the other hand, since the response value is likely to be exposed by plaintext due to session hacking on the network, it is general that the value can not be analyzed using a hash function or encryption.

보다 구체적으로, 이동 단말기(302)는 계산된 앱 해시 값과 질의 값을 해시 함수에 대한 입력으로 사용하여, 중간 해시 값을 생성한다. 이를 통하여, 제 3자가 앱 해시 값을 훔치는 것을 추가적으로 방지할 수 있다. More specifically, the mobile terminal 302 generates the intermediate hash value using the computed app hash value and the query value as inputs to the hash function. This further prevents the third party from stealing the app hash value.

이동 단말기 (302) 는 중간 해시 값을 앱 서명키로 암호화한다 (S707). 여기에서, 앱 해시 값은 애플리케이션에 특화된 암호화 키로, 애플리케이션을 나타낼 수 있다. 앱 서명키는 애플리케이션을 개발할 때 최종적으로 앱 스토어 (App Store) 에 업로드하기 전에 애플리케이션에 개발자 자신의 키 (Signing key)로 서명 (Sigining) 을 하는데 이용할 수 있다. 앱 서명키는 애플리케이션이 앱 스토어를 통해서 유통될 때 자신이 개발한 애플리케이션이 진본임을 확인하는 데 이용될 수 있다. 앱 서명키는 상기 설명한 바와 같이 애플리케이션 프로파일 정보를 송신할 때, 무결성 인증 서버(301)에 같이 저장될 수 있다. 이동 단말기(302)는 암호화된 값에 기반하여 응답 값을 생성한다 (S708). 암호화시, 대칭키 방식을 사용한다. 따라서, 이동 단말기(302) 및 무결성 인증 서버(301)는 암호화/복호화에 필요한 암호화 키로 동일한 앱 서명키를 사용할 수도 있다. 하지만, 선택적으로 비대칭키를 이용할 수도 있다. 따라서, 이동 단말기(302)는 앱 서명키를 사용하지만, 무결성 인증 서버(301)는 다른 암호화 키를 사용할 수도 있고, 그 반대도 가능하다. The mobile terminal 302 encrypts the intermediate hash value with the app signature key (S707). Here, the app hash value can represent an application with an application specific encryption key. The app signing key can be used to sign the application with the signing key of the developer before final uploading to the App Store when developing the application. The app signing key can be used to verify that the application developed by the application is genuine when the application is distributed through the app store. The application signing key may be stored in the integrity authentication server 301 when transmitting the application profile information as described above. The mobile terminal 302 generates a response value based on the encrypted value (S708). When encrypting, use a symmetric key method. Accordingly, the mobile terminal 302 and the integrity authentication server 301 may use the same application signing key as the encryption key required for encryption / decryption. However, optionally an asymmetric key may be used. Thus, the mobile terminal 302 uses the app signing key, but the integrity authentication server 301 may use another encryption key, or vice versa.

비대칭키를 이용하여 실시를 하는 경우, 대칭키의 경우보다 처리 속도는 상대적으로 느리다는 단점이 있지만 키 관리가 용이하다는 이점이 있다. 주로 RSA 알고리즘을 이용하여 구현하며, 공개키(Public Key)와 비밀키(Private Key)의 쌍을 생성하고 공개키는 노출시킨다. When the asymmetric key is used, the processing speed is relatively slower than that of the symmetric key, but there is an advantage that the key management is easy. It is mainly implemented using the RSA algorithm, generates a pair of a public key and a private key, and exposes a public key.

본 발명에 적용할 경우, 이동 단말기(302)는 서버가 공개한 공개키를 이용하여 암호화하고 서버(301)에서 비밀키를 사용하여 응답 값을 복호화하여 볼 수 있다. When the present invention is applied to the present invention, the mobile terminal 302 encrypts the public key using the public key disclosed by the server, and decrypts the response value using the private key in the server 301. [

한편, 하이브리드(Hybrid) 기법을 사용하기도 하는데, 먼저 이동 단말기(302)와 무결성 인증 서버(301)는 비대칭키 암호 기법으로 대칭키 암호에 사용할 비밀키(Secret Key)를 공유한다. 즉, 이동 단말기(302)는 임의로 "대칭키 암호 비밀키"(대칭키 암호에 사용할 키)를 만들어 무결성 인증 서버(301)가 공개한 공개키로 암호화 시켜 전송하면, 무결성 인증 서버(301)에서 자신의 비밀키로 복호화 시켜 "대칭키 암호 비밀"을 얻고, 이후 질의/응답 과정에서 대칭키 암호에 비밀키로 사용하게 된다. Meanwhile, a hybrid technique is also used. First, the mobile terminal 302 and the integrity authentication server 301 share a secret key to be used for the symmetric key cryptography as an asymmetric key cryptosystem. That is, when the mobile terminal 302 arbitrarily creates a "symmetric key cryptographic secret key" (a key to be used for symmetric key cryptography) and encrypts it with the public key disclosed by the integrity authentication server 301, To obtain a "symmetric key cryptographic secret ", and thereafter used as a secret key in the symmetric key cryptography in the query / response process.

다만 이러한 방식을 사용할 때는 처리 속도가 민감한 경우 문제가 될 수 있다. 애플리케이션 구동시 이러한 과정이 길어질 경우 서비스 고객들이 수용하지 못할 수도 있기 때문이다. 하지만, 보안이 더 중요한 경우에는 고려할 수 있다. However, using this approach can be problematic if the processing speed is sensitive. This is because service customers may not be able to accommodate such a long process when running applications. However, it can be considered when security is more important.

또한, 암호화시, 화이트 박스 (Whitebox) 암호화 방식을 사용하여 앱 서명키를 보관할 수 있다. 화이트 박스 암호화 방식이란 암호화 알고리즘의 암호화 키에 대한 유추를 불가능하게 위해서, 암호화 키를 소프트웨어로 구현된 암호화 알고리즘에 섞는 방법이다. 따라서, 공격자가 알고리즘 내부 동작을 분석하더라도 앱 서명키와 같은 암호화 키가 용이하게 유추되지 못하도록 할 수 있다. Also, when encrypting, you can keep your app signing key using Whitebox encryption. The white-box encryption method is a method of mixing an encryption key with a software-implemented encryption algorithm in order to make it impossible to deduce the encryption key of the encryption algorithm. Therefore, even if the attacker analyzes the operation of the algorithm, the encryption key such as the application signature key can be prevented from being easily inferred.

한편 응답 값은 해시 함수를 이용하여 생성되는 대신에, 선택적으로 앱 서명키로 앱 해시 값을 암호화하여 생성될 수도 있다.Alternatively, instead of being generated using a hash function, the response value may be generated by selectively encrypting the app hash value with the app signature key.

이동 단말기(302)는 무결성 인증 서버(301)에 생성된 응답 값을 송신한다 (S709).The mobile terminal 302 transmits the generated response value to the integrity authentication server 301 (S709).

무결성 인증 서버(301)는 응답 값을 복호화한다 (S710). 여기에서, 무결성 인증 서버(301)는 저장된 앱 서명키를 이용하여 응답 값을 복호화한다. 복호화의 결과로 무결성 인증 서버(301)는 중간 해시 값을 얻을 수 있다. 무결성 인증 서버(301)는 자신이 송신한 임의 값 정보를 이미 알고 있기에, 무결성 인증 서버(301)는 중간 해시 값과 임의 값을 알고 있다. 여기에서, 중간 해시 값을 통하여 입력 값을 바로 확인하기는 어렵다. 하지만, 입력 값인 임의 값과 결과 값인 중간 해시 값을 알고 있으며, 해시 함수도 이미 알고 있기 때문에, 무결성 인증 서버(301)의 제어부(403)는 앱 해시 값을 유추할 수 있다. 즉, 여러 경우의 수를 확인하면, 제어부(403)는 임의 값과 중간 해시 값을 통하여 이동 단말기(302)가 송신한 앱 해시 값을 확인할 수 있다.The integrity authentication server 301 decrypts the response value (S710). Here, the integrity authentication server 301 decrypts the response value using the stored app signing key. As a result of the decryption, the integrity authentication server 301 can obtain the intermediate hash value. Since the integrity authentication server 301 already knows the arbitrary value information transmitted by itself, the integrity authentication server 301 knows the intermediate hash value and an arbitrary value. Here, it is difficult to directly check the input value through the intermediate hash value. However, since the arbitrary value as the input value and the intermediate hash value as the result value are known and the hash function is already known, the control unit 403 of the integrity authentication server 301 can infer the app hash value. That is, when the number of cases is confirmed, the control unit 403 can confirm the app hash value transmitted from the mobile terminal 302 through the arbitrary value and the intermediate hash value.

무결성 인증 서버(301), 즉, 제어부(403)는 앱 해시 값을 비교한다 (S711). 무결성 인증 서버(301)의 저장부(401)는 애플리케이션에 대한 앱 해시 값을 저장하고 있다. 여기에서, 제어부(403)는 응답 값으로부터 확인된 앱 해시 값과 저장부(401)에 저장된 앱 해시 값의 비교를 통하여 애플리케이션의 무결성 여부를 확인할 수 있다. 앱 해시 값이 동일하다면, 애플리케이션의 변환이 없는 것으로 판단할 수 있다. 하지만, 그 반대로 앱 해시 값이 동일하지 않다면, 애플리케이션의 변환이 있던 것으로 판단할 수 있으며, 공격자에 의한 변환이 있는 것으로 추정될 수 있다.The integrity authentication server 301, i.e., the control unit 403 compares the app hash values (S711). The storage unit 401 of the integrity authentication server 301 stores an application hash value for the application. Here, the control unit 403 can confirm whether the application is integrity by comparing the app hash value confirmed from the response value with the app hash value stored in the storage unit 401. If the app hash values are the same, it can be determined that there is no conversion of the application. However, conversely, if the app hash values are not the same, it can be determined that the application has been transformed, and it can be assumed that there is a transformation by the attacker.

앱 해시 값의 비교를 통하여 무결성 인증 판단을 수행한다 (S712). 무결성이 인증된 경우, 제어부(403)는 성공의 표시로 OTP 토큰을 생성한다 (S713). 무결성 인증 결과를 이용하여 결과 값을 생성하며 (S714), 해당 결과 값을 이동 단말기 (302) 에 송신한다.The integrity authentication determination is performed through comparison of the hash values of the apps (S712). If the integrity is authenticated, the control unit 403 generates an OTP token as an indication of success (S713). Generates the resultant value using the integrity authentication result (S714), and transmits the resultant value to the mobile terminal 302. [

도 8는 본 발명의 일 실시예에 따른 무결성 인증 방식 중 OTP 생성/전달의 흐름을 도시하는 도면이다.FIG. 8 is a diagram illustrating a flow of OTP generation / delivery among integrity authentication schemes according to an embodiment of the present invention.

도 7의 S713에서, 무결성 인증의 결과로 OTP 토큰을 생성한다. 여기에서, 토큰 방식은 시간 동기화를 사용한다. 시간 동기화 방식은 MAC 응답 값 (해시 함수를 이용)을 계산할 때, 비밀키 (Pre Shared Key) 에 현재 시간을 추가적으로 입력하는 방식이다. 즉, 상호 다른 주체 (예를 들어, 서버와 사용자) 가 공통된 시간을 가진다는 점에 착안하여 동기화할 수 있다. 여기에서, 일회용 토큰은 시간을 수정할 수는 없으며, 일정 시간 (예를 들어, 1분) 에 한번씩 암호가 바뀌게 만들 수 있다. 여기에서, 서버는 사용자와 시간에 오차가 날 수 있으므로, 이를 보정하기 위해서 일정 범위 내의 시간으로 확인되면 유효한 토큰으로 인정할 수 있다.In step S713 of FIG. 7, an OTP token is generated as a result of the integrity authentication. Here, the token scheme uses time synchronization. The time synchronization method is a method of additionally inputting a current time to a secret key (Pre Shared Key) when calculating a MAC response value (using a hash function). That is, they can synchronize with each other, taking into account that different subjects (for example, servers and users) have a common time. Here, the disposable token can not modify the time, and can change the password one time at a time (for example, one minute). Here, since the server may have an error with the user, it may be recognized as a valid token if it is confirmed within a certain range in order to correct the error.

이하에서는, 도 8을 참조하여, 무결성 인증 방식 중 OTP 생성/전달 방식을 설명한다.Hereinafter, an OTP generation / transmission scheme among the integrity authentication schemes will be described with reference to FIG.

무결성 인증 서버(301)는 비밀키를 생성하고 (S801) 서비스 서버(303)는 비밀키를 저장한다 (S802). 여기에서 비밀키는 무결성 인증 서버(301)와 서비스 서버(303)가 서로를 확인시키는 역할을 수행할 수 있다. The integrity authentication server 301 generates a secret key (S801) and the service server 303 stores the secret key (S802). Here, the secret key may perform the role of the integrity authentication server 301 and the service server 303 to confirm each other.

무결성 인증 서버(301)는 도 7의 S715에서 무결성 인증 결과 값에 OTP 토큰 뿐만 아니라, 애플리케이션 고유 정보, 단말 고유 정보 (USIM, ESIM)을 전송할 수 있다. The integrity authentication server 301 may transmit not only the OTP token but also the application specific information and the terminal specific information (USIM, ESIM) to the integrity authentication result value in S715 of FIG.

OTP 토큰 값은 서비스 서버와 타임 스탬프 (현재 시간), 비밀키 (PreShared Key) 값의 조합으로 해시 함수를 통하여 생성된 해시 값일 수 있다. 추가적으로 입력으로 앱 서명키 또는 성공 여부 정보 (O X) 가 포함될 수도 있다. OTP 토큰 값을 생성하는 방식은 다양한 방식이 있을 수 있으며, 해시 함수를 이용하는 것은 그중의 한가지 방식일 수 있다. 예를 들어, OTP 토큰 값을 특정 암호화 키로 암호화하여 생성될 수 있다. 중요한 것은 OTP 토큰 값은 OTP 토큰이 생성된 타임 스탬프에 대한 정보는 반드시 포함할 필요가 있다.The OTP token value may be a hash value generated through a hash function in combination with the service server and a time stamp (current time) and a secret key (PreShared key) value. In addition, an app signature key or success or failure information (O X) may be included as an input. There are various ways of generating the OTP token value, and using a hash function may be one of them. For example, it can be generated by encrypting the OTP token value with a specific encryption key. Importantly, the OTP token value must include information about the timestamp for which the OTP token was generated.

이동 단말기(302)는 무결성 인증 결과를 확인하고 (S803), 무결성 인증 결과를 서비스 서버(303)에 송신할 수 있다 (S802). 여기에서, 이동 단말기(302)는 해당 OTP 토큰 값에 대한 인증을 수행하지는 않으며, 무결성 인증 결과를 그대로 서비스 서버(303)에 전달한다. 바람직하게는, 이동 단말기(302)는 무결성 인증 서버(301)로부터 결과 값을 수신한 후 바로 또는 일정 시간 이내에서 서비스 서버(303)에 송신되나, 반드시 그에 국한되는 것은 아니다. OTP 토큰 값은 무결성 검증이 성공된 경우에만 생성되는 것으로 이동 단말기(302)가 서비스 서버(303)에 접속할 때 반드시 사용된다.The mobile terminal 302 confirms the integrity authentication result (S803), and transmits the integrity authentication result to the service server 303 (S802). Here, the mobile terminal 302 does not perform authentication for the corresponding OTP token value, and passes the integrity authentication result to the service server 303 as it is. Preferably, the mobile terminal 302 is transmitted to the service server 303 immediately after receiving the result value from the integrity authentication server 301 or within a predetermined time, but is not necessarily limited thereto. The OTP token value is generated only when the integrity verification is successful, and is used when the mobile terminal 302 accesses the service server 303. [

서비스 서버(303)은 OTP 토큰에 대한 인증 동작을 수행한다 (S805). OTP 토큰 값이 해시 함수를 이용한 해시 값인 경우에는 서비스 서버(303)는 비밀키와 서비스 서버의 현재 시각의 정보를 이용하여 OTP 토큰 값에 포함된 타임 스탬프와의 일치 여부를 확인할 수 있다. 비밀키와 서비스 서버의 현재 시각 정보를 해시 함수에 대입한 값이 OTP 토큰 값에 해당되는 지를 확인하여 OTP 토큰에 대한 인증 동작을 수행할 수 있다. 해당 토큰에 포함된 타임 스탬프와 현재 시각을 비교한다. 만약 일정 시간 범위 내에 있는 것으로 확인된 경우, 정상으로 판단하여 OTP 토큰을 인증한다. 하지만, 일정 시간 범위 내를 벗어난 것으로 확인된 경우, OTP 토큰을 인증을 부정한다. 인증이 부정된 경우, 서비스 서버(303)는 이동 단말기(302) 또는 애플리케이션이 유효하지 않은 것으로 판단하고, 3번에 걸쳐서 재시도를 수행할 수 있으나, 그 횟수에 국한되지는 않는다.The service server 303 performs an authentication operation for the OTP token (S805). When the OTP token value is a hash value using the hash function, the service server 303 can confirm whether or not the OTP token value matches the time stamp included in the OTP token value using the secret key and the current time information of the service server. The authentication operation for the OTP token can be performed by checking whether the value obtained by substituting the secret key and the current time information of the service server into the hash function corresponds to the OTP token value. Compare the current time with the timestamp included in the token. If it is confirmed that it is within the predetermined time range, it is determined to be normal and the OTP token is authenticated. However, if it is confirmed that it is out of the predetermined time range, the authentication of the OTP token is denied. If the authentication is denied, the service server 303 may determine that the mobile terminal 302 or the application is invalid and perform the retry three times, but the number is not limited to this number.

OTP 토큰이 인증된 경우, 이동 단말기(302)의 사용자를 인증할 수 있다 (S806). 사용자가 인증된 경우, 서비스 서버(303)에 대한 애플리케이션 로그인을 허용한다. 또한, 이동 단말기(302)에 성공 여부에 대해서 응답한다(S807). 이동 단말기(302)는 성공 여부에 따라서 동작한다 (S808). 성공한 경우에 애플리케이션을 정상적으로 구동하나, 실패한 경우에는, 이동 단말기(302)는 오류 메시지를 생성하여 표시할 수 있다.If the OTP token is authenticated, the user of the mobile terminal 302 can be authenticated (S806). If the user is authenticated, the application server 303 allows the application login. It also responds to the mobile terminal 302 whether it succeeded (S807). The mobile terminal 302 operates according to the success or failure (S808). If the application succeeds, the application normally runs. If the application fails, the mobile terminal 302 can generate and display an error message.

한편, 선택적으로, 서비스 서버(303)는 성공 및 실패에 대한 데이터를 저장할 수 있다. 이를 통하여 앱 개발자에게 성공 및 실패에 대한 데이터를 시각적으로 제공할 수도 있다.Alternatively, the service server 303 may optionally store data for success and failure. This allows the app developer to visually provide data about success and failure.

본 발명에서는, 상기 설명한 바와 같이, 무결성 인증에 성공한 경우에만 생성되는 OTP 토큰 값을 통하여 무결성 인증 서버와 서비스 서버가 보다 명확하게 무결성 결과를 확인할 수 있다.In the present invention, as described above, the integrity authentication server and the service server can more clearly check the integrity result through the OTP token value generated only when the integrity authentication is successful.

301 무결성 인증 서버
302 이동 단말기
303 서비스 서버
301 Integrity Authentication Server
302 mobile terminal
303 service server

Claims (17)

애플리케이션 무결성 인증 방법에 있어서,
인증 서버가 애플리케이션이 설치된 이동 단말기로부터 상기 애플리케이션에 대한 인증 요청을 수신하는 단계;
상기 인증 서버가 상기 인증 요청에 응답하여 상기 애플리케이션에 대한 질의 정보를 생성하는 단계;
상기 질의 정보를 상기 이동 단말기에 송신하는 단계;
상기 질의 정보에 대응하여 생성된 응답 정보를 상기 이동 단말기로부터 수신하는 단계로써, 상기 응답 정보는 상기 이동 단말기에 의해서 상기 질의 정보와 상기 애플리케이션에 대한 고유 값을 기반으로 생성되는, 상기 수신 단계; 및
상기 응답 정보에 포함된 상기 고유 값에 기반하여 상기 애플리케이션의 변환 여부를 판단하는 단계를 포함하는, 애플리케이션 무결성 인증 방법.
In an application integrity authentication method,
The authentication server receiving an authentication request for the application from a mobile terminal in which the application is installed;
The authentication server generating query information for the application in response to the authentication request;
Transmitting the query information to the mobile terminal;
Receiving response information generated corresponding to the inquiry information from the mobile terminal, wherein the response information is generated based on the inquiry information and the eigenvalues for the application by the mobile terminal; And
And determining whether to convert the application based on the eigenvalues included in the response information.
제 1 항에 있어서,
상기 애플리케이션이 변환되지 않은 것으로 판단한 경우,
OTP(One Time Password)토큰을 생성하는 단계; 및
상기 OTP 토큰을 상기 이동 단말기에 송신하는 단계를 더 포함하며,
상기 OTP 토큰은 상기 인증 서버가 상기 OTP 토큰을 생성할 시점의 시각 정보인 타임 스탬프 정보를 포함하는,
애플리케이션 무결성 인증 방법.
The method according to claim 1,
If it is determined that the application has not been converted,
Generating an OTP (One Time Password) token; And
Further comprising transmitting the OTP token to the mobile terminal,
Wherein the OTP token includes time stamp information which is time information of when the authentication server generates the OTP token,
Application integrity authentication method.
제 2 항에 있어서,
상기 OTP 토큰은 서비스 서버와 공유되는 제 1 암호화 키를 더 포함하는,
애플리케이션 무결성 인증 방법
3. The method of claim 2,
Wherein the OTP token further comprises a first encryption key shared with a service server,
Application Integrity Authentication Methods
제 3 항에 있어서,
상기 OTP 토큰은 상기 서비스 서버의 현재 시각과 상기 타임 스탬프 정보를 이용하여 유효성 여부가 확인되는,
애플리케이션 무결성 인증 방법.
The method of claim 3,
Wherein the OTP token is validated using the current time of the service server and the timestamp information,
Application integrity authentication method.
제 1 항에 있어서,
상기 판단 단계에서,
상기 인증 서버에 사전 저장된 애플리케이션에 대한 고유 값과 상기 응답 정보에 포함된 상기 고유 값을 비교하여 변환 여부를 판단하는 단계를 더 포함하는,
애플리케이션 무결성 인증 방법.
The method according to claim 1,
In the determination step,
Further comprising the step of comparing the eigenvalue of the application pre-stored in the authentication server with the eigenvalue contained in the response information,
Application integrity authentication method.
제 1 항에 있어서,
상기 판단 단계는,
상기 응답 정보를 제 2 암호화 키로 복호화하는 단계를 더 포함하는,
상기 응답 정보는 상기 질의 정보와 상기 고유 값을 해시 함수에 대한 입력 값으로 사용하여 생성된 제 1 해시 값을 상기 제 2 암호화 키로 암호화한 값인,
애플리케이션 무결성 인증 방법.
The method according to claim 1,
Wherein,
And decrypting the response information with a second encryption key.
Wherein the response information is a value obtained by encrypting the first hash value generated by using the query information and the eigenvalue as an input value to the hash function with the second encryption key,
Application integrity authentication method.
제 1 항에 있어서,
상기 질의 정보는 난수 함수를 통해서 생성된 난수 값을 포함하는,
애플리케이션 무결성 인증 방법.
The method according to claim 1,
Wherein the query information includes a random number value generated through a random number function,
Application integrity authentication method.
애플리케이션 무결성 인증 서버에 있어서,
애플리케이션이 설치된 이동 단말기로부터 상기 애플리케이션에 대한 인증 요청을 수신하는 통신부;
상기 애플리케이션에 대한 정보를 저장부; 및
상기 인증 요청에 따라 상기 애플리케이션에 대한 변환 여부를 판단하는 제어부를 포함하며,
상기 제어부는,
상기 수신된 인증 요청에 응답하여 상기 저장된 정보를 활용하여 상기 애플리케이션에 대한 질의 정보를 생성하고,
상기 통신부로 하여금 상기 질의 정보를 상기 이동 단말기에 송신하게 하고,
상기 질의 정보에 대응하여 생성된 응답 정보를 상기 이동 단말기로부터 수신한 경우, 상기 응답 정보에 포함된 애플리케이션에 대한 고유 값에 기반하여 상기 애플리케이션의 변환 여부를 판단하는,
애플리케이션 무결성 인증 서버.
In an application integrity authentication server,
A communication unit for receiving an authentication request for the application from a mobile terminal in which the application is installed;
A storage unit for storing information on the application; And
And a controller for determining whether the application is converted according to the authentication request,
Wherein,
Generating query information for the application using the stored information in response to the received authentication request,
The communication unit causes the inquiry information to be transmitted to the mobile terminal,
Determining whether the application is converted based on the eigenvalue of the application included in the response information when the response information generated in response to the inquiry information is received from the mobile terminal,
Application Integrity Authentication Server.
제 8 항에 있어서,
상기 제어부는,
상기 애플리케이션이 변환되지 않은 것으로 판단한 경우,
OTP(One Time Password)토큰을 생성하고, 상기 OTP 토큰을 상기 이동 단말기에 송신하도록 상기 통신부를 제어하며,
상기 OTP 토큰은 상기 애플리케이션 무결성 인증 서버가 상기 OTP 토큰을 생성할 시점의 시각 정보인 타임 스탬프 정보를 포함하는,
애플리케이션 무결성 인증 서버.
9. The method of claim 8,
Wherein,
If it is determined that the application has not been converted,
Generates an OTP (One Time Password) token, controls the communication unit to transmit the OTP token to the mobile terminal,
Wherein the OTP token includes timestamp information, which is time information of when the application integrity authentication server generates the OTP token,
Application Integrity Authentication Server.
제 9 항에 있어서,
상기 OTP 토큰은 서비스 서버와 공유되는 제 1 암호화 키를 더 포함하는,
애플리케이션 무결성 인증 서버.
10. The method of claim 9,
Wherein the OTP token further comprises a first encryption key shared with a service server,
Application Integrity Authentication Server.
제 10 항에 있어서,
상기 OTP 토큰은 상기 서비스 서버의 현재 시각과 상기 타임 스탬프를 이용하여 유효성 여부가 확인되는,
애플리케이션 무결성 인증 서버.
11. The method of claim 10,
Wherein the OTP token is validated using the current time of the service server and the timestamp,
Application Integrity Authentication Server.
제 8 항에 있어서,
상기 저장부는 상기 애플리케이션에 대한 고유 값을 사전 저장하고,
상기 제어부는 상기 저장부에 사전 저장된 고유 값과 상기 응답 정보에 포함된 상기 고유 값을 비교하여 변환 여부를 판단하는,
애플리케이션 무결성 인증 서버.
9. The method of claim 8,
The storage unit may store the unique value for the application in advance,
Wherein the control unit compares the eigenvalues pre-stored in the storage unit with the eigenvalues included in the response information,
Application Integrity Authentication Server.
제 8 항에 있어서,
상기 응답 정보는 상기 질의 정보와 상기 고유 값을 해시 함수에 대한 입력 값으로 사용하여 생성된 제 1 해시 값을 제 2 암호화 키로 암호화한 값인,
애플리케이션 무결성 인증 서버.
9. The method of claim 8,
Wherein the response information is a value obtained by encrypting the first hash value generated by using the query information and the eigenvalue as an input value for the hash function with the second encryption key,
Application Integrity Authentication Server.
제 8 항에 있어서,
상기 제어부는,
상기 응답 정보를 상기 제 2 암호화 키로 복호화하는,
애플리케이션 무결성 인증 서버.
9. The method of claim 8,
Wherein,
Decrypting the response information with the second encryption key,
Application Integrity Authentication Server.
애플리케이션에 대한 무결성 인증 요청을 무결성 인증 서버에 송신하는 무선 통신부; 및
상기 무선 통신부를 제어하는 제어부를 포함하며,
상기 제어부는,
상기 무선 통신부를 통하여 상기 무결성 인증 요청에 상응하는 질의 정보를 수신한 경우, 상기 애플리케이션에 대한 고유 값을 확인하고, 상기 고유 값과 상기 질의 정보에 기반하여 응답 정보를 생성하여 상기 무결성 인증 서버에 송신하도록 제어하는,
이동 단말기.
A wireless communication unit for transmitting an integrity authentication request for an application to an integrity authentication server; And
And a control unit for controlling the wireless communication unit,
Wherein,
When the inquiry information corresponding to the integrity authentication request is received through the wireless communication unit, generates a response information based on the eigenvalue and the inquiry information, and transmits the response information to the integrity authentication server Lt; / RTI >
Mobile terminal.
제 15 항에 있어서,
상기 응답 정보는 상기 질의 정보와 상기 고유 값을 해시 함수에 대한 입력 값으로 생성된 제 1 해시 값을 암호화 키로 암호화하는,
이동 단말기.
16. The method of claim 15,
Wherein the response information encrypts the query information and the eigenvalue with the encryption key using a first hash value generated as an input value for the hash function,
Mobile terminal.
제 15 항에 있어서,
상기 제어부는,
상기 무결성 인증 서버로부터 무결성 인증 결과로 OTP(One Time Password)토큰을 수신한 경우, 상기 OTP 토큰을 상기 애플리케이션과 관련된 서비스 서버에 송신하는,
이동 단말기.
16. The method of claim 15,
Wherein,
And transmitting the OTP token to the service server associated with the application when an OTP (One Time Password) token is received from the integrity authentication server as a result of the integrity authentication,
Mobile terminal.
KR1020160073173A 2016-06-13 2016-06-13 Method and server for authenticating an application integrity KR102013983B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160073173A KR102013983B1 (en) 2016-06-13 2016-06-13 Method and server for authenticating an application integrity

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160073173A KR102013983B1 (en) 2016-06-13 2016-06-13 Method and server for authenticating an application integrity

Publications (2)

Publication Number Publication Date
KR20170140630A true KR20170140630A (en) 2017-12-21
KR102013983B1 KR102013983B1 (en) 2019-10-21

Family

ID=60936092

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160073173A KR102013983B1 (en) 2016-06-13 2016-06-13 Method and server for authenticating an application integrity

Country Status (1)

Country Link
KR (1) KR102013983B1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190078058A (en) * 2017-12-26 2019-07-04 삼성에스디에스 주식회사 Message system, method for activating application, and user terminal executing the same
WO2020111517A1 (en) 2018-11-28 2020-06-04 Samsung Electronics Co., Ltd. Server and method for identifying integrity of application
KR20210046979A (en) * 2019-10-21 2021-04-29 주식회사 시큐센 Method to Provide Application Security Service Based on Cloud Computing
WO2021225329A1 (en) * 2020-05-06 2021-11-11 네이버클라우드 주식회사 Method and system for detecting forgery of mobile application by using user identifier and signature collection
KR20210135907A (en) * 2020-05-06 2021-11-16 네이버클라우드 주식회사 Method and system for detecting forgery of mobile application using collecting user identifier and signature
WO2023216891A1 (en) * 2022-05-09 2023-11-16 华为技术有限公司 Communication method and network element device
KR102657620B1 (en) * 2022-11-23 2024-04-16 주식회사 인피니그루 Independently driven, always-on detection in-app control method and system to prevent financial fraud

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120090711A (en) * 2011-02-08 2012-08-17 (주)바이너리소프트 System and method for verifying counterfeit or falsification of application for mobile
KR20140004819A (en) * 2012-06-20 2014-01-14 (주)쉬프트웍스 Method for detecting fake and falsification of application by using android obfuscation
KR101570314B1 (en) * 2014-10-07 2015-11-18 (주)이스톰 Sevice verification method using one time password

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120090711A (en) * 2011-02-08 2012-08-17 (주)바이너리소프트 System and method for verifying counterfeit or falsification of application for mobile
KR20140004819A (en) * 2012-06-20 2014-01-14 (주)쉬프트웍스 Method for detecting fake and falsification of application by using android obfuscation
KR101570314B1 (en) * 2014-10-07 2015-11-18 (주)이스톰 Sevice verification method using one time password

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190078058A (en) * 2017-12-26 2019-07-04 삼성에스디에스 주식회사 Message system, method for activating application, and user terminal executing the same
WO2020111517A1 (en) 2018-11-28 2020-06-04 Samsung Electronics Co., Ltd. Server and method for identifying integrity of application
EP3850512A4 (en) * 2018-11-28 2021-11-10 Samsung Electronics Co., Ltd. Server and method for identifying integrity of application
US11308238B2 (en) 2018-11-28 2022-04-19 Samsung Electronics Co., Ltd. Server and method for identifying integrity of application
KR20210046979A (en) * 2019-10-21 2021-04-29 주식회사 시큐센 Method to Provide Application Security Service Based on Cloud Computing
WO2021225329A1 (en) * 2020-05-06 2021-11-11 네이버클라우드 주식회사 Method and system for detecting forgery of mobile application by using user identifier and signature collection
KR20210135907A (en) * 2020-05-06 2021-11-16 네이버클라우드 주식회사 Method and system for detecting forgery of mobile application using collecting user identifier and signature
WO2023216891A1 (en) * 2022-05-09 2023-11-16 华为技术有限公司 Communication method and network element device
KR102657620B1 (en) * 2022-11-23 2024-04-16 주식회사 인피니그루 Independently driven, always-on detection in-app control method and system to prevent financial fraud

Also Published As

Publication number Publication date
KR102013983B1 (en) 2019-10-21

Similar Documents

Publication Publication Date Title
EP3458999B1 (en) Self-contained cryptographic boot policy validation
KR102013983B1 (en) Method and server for authenticating an application integrity
KR101712784B1 (en) System and method for key management for issuer security domain using global platform specifications
JP5852265B2 (en) COMPUTER DEVICE, COMPUTER PROGRAM, AND ACCESS Permission Judgment Method
CN102165457B (en) The safety of ticket authorization is installed and is guided
US11258591B2 (en) Cryptographic key management based on identity information
TW201837776A (en) Method and system for protecting data keys in trusted computing
US8495383B2 (en) Method for the secure storing of program state data in an electronic device
CN110326266B (en) Data processing method and device
CN110688660B (en) Method and device for safely starting terminal and storage medium
CN102177678B (en) Trusted and confidential remote TPM initialization
JP6476167B2 (en) Self-authentication device and self-authentication method
CN111401901B (en) Authentication method and device of biological payment device, computer device and storage medium
KR20070059891A (en) Application authentication security system and method thereof
KR20140089703A (en) Method and apparatus for security of mobile data
KR101711024B1 (en) Method for accessing temper-proof device and apparatus enabling of the method
KR20190070691A (en) Program executing authority authentication method and system
KR20190128534A (en) Method for combining trusted execution environments for functional extension and method for applying fido u2f for supporting business process
CN110781492A (en) Data processing method, device, equipment and storage medium
CN113194090B (en) Authentication method, authentication device, terminal device and computer readable storage medium
WO2023145240A1 (en) Information processing device and information processing system
KR101810946B1 (en) Method of electronic signature using certificate based on trust zone
JP2023154299A (en) Secure component, device, execution platform, and process execution management method
KR100480377B1 (en) Environment enactment and method for network apparatus in using smart card
CN117579331A (en) Remote proving method, device, electronic equipment and storage medium

Legal Events

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