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

Method and server for authenticating an application integrity Download PDF

Info

Publication number
KR102013983B1
KR102013983B1 KR1020160073173A KR20160073173A KR102013983B1 KR 102013983 B1 KR102013983 B1 KR 102013983B1 KR 1020160073173 A KR1020160073173 A KR 1020160073173A KR 20160073173 A KR20160073173 A KR 20160073173A KR 102013983 B1 KR102013983 B1 KR 102013983B1
Authority
KR
South Korea
Prior art keywords
application
mobile terminal
information
value
hash value
Prior art date
Application number
KR1020160073173A
Other languages
Korean (ko)
Other versions
KR20170140630A (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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)

Abstract

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

Description

애플리케이션 무결성 인증 방법 및 인증 서버 {METHOD AND SERVER FOR AUTHENTICATING AN APPLICATION INTEGRITY}Application integrity authentication method and authentication server {METHOD AND SERVER FOR AUTHENTICATING AN APPLICATION INTEGRITY}

본 발명은 애플리케이션의 고의 변환 여부를 확인하여 애플리케이션의 무결성(integrity)를 인증하는 방법 및 인증 서버에 관한 것이다. The present invention relates to a method and an authentication server for authenticating an application's integrity by checking whether an application is intentionally converted.

스마트폰, 즉, 이동 단말기 기능이 고도화되면서, 단순히 전화 기능이 아니라, DMB, 워드 프로세서, MP3 플레이어, 비디오 플레이어, 카메라등 다양한 기능을 가지게 되었다. 그에 따라, 이동 단말기는 기존의 PC, 카메라, MP3 플레이어등의 독립적 기능 기기들의 이용률을 넘어서고 있으며, 이러한 추세는 지속될 것으로 보인다. As smart phones, that is, mobile terminal functions, have been advanced, they have various functions such as DMB, word processors, MP3 players, video players, and cameras, not just telephone functions. Accordingly, the mobile terminal has exceeded the utilization rate of independent functional devices such as PCs, cameras and MP3 players, and this trend is expected to continue.

이동 단말기가 점점 생활에서 중요한 역할을 수행하면서 이동 단말기는 사용자가 필요한 다양한 개인 정보가 저장되게 되었으며, 그와 함께, 이동 단말기의 분실 또는 해킹등이 발생될 경우, 이동 단말기의 사용자의 개인 정보가 외부에 그대로 노출되는 위험성이 점점 증대하고 있다. 특히, 은행 및 결제와 관련된 기능의 경우, 개인 정보가 노출되면 개인 신상 정보를 노출하는 수준에서 끝나는 것이 아니라, 개인의 금융 재산이 피해를 볼 수 있는 가능성도 우려된다. 따라서, 은행 및 결제와 관련된 애플리케이션의 경우, 다른 기능의 애플리케이션보다는 추가 인증등 보안 기능이 보다 강화된 경우가 많다.As mobile terminals increasingly play an important role in life, various personal information required by the user is stored. In addition, when a mobile terminal is lost or hacked, personal information of the user of the mobile terminal is stored externally. The risk of exposure to public health 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 there is also concern that a person's financial property may be damaged. Therefore, in the case of applications related to banking and payment, security functions such as additional authentication are often strengthened than applications of other functions.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

본 발명의 또 다른 실시예에 따르면, 애플리케이션에 대한 무결성 인증 요청을 무결성 인증 서버에 송신하는 무선 통신부; 및 상기 무선 통신부를 제어하는 제어부를 포함하며, 상기 제어부는, 상기 무선 통신부를 통하여 상기 무결성 인증 요청에 상응하는 질의 정보를 수신한 경우, 상기 애플리케이션에 대한 고유 값을 확인하고, 상기 고유 값과 상기 질의 정보에 기반하여 응답 정보를 생성하여 상기 무결성 인증 서버에 송신하도록 제어하는, 이동 단말기를 제공할 수도 있다.According to another embodiment of the invention, the wireless communication unit for transmitting an integrity authentication request for the application to the integrity authentication server; And a control unit for controlling the wireless communication unit, wherein the control unit, when receiving the query information corresponding to the integrity authentication request through the wireless communication unit, checks a unique value for the application, and checks the unique value and the unique value. It is also possible to provide a mobile terminal, which controls to generate response information based on the query information and transmit it 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 unique value as input values for a hash function.

또한 상기 이동 단말기의 상기 제어부는, 상기 무결성 인증 서버로부터 무결성 인증 결과로 OTP(One Time Password)토큰을 수신한 경우, 상기 OTP 토큰을 상기 애플리케이션과 관련된 서비스 서버에 송신할 수도 있다.The control unit of the mobile terminal may transmit the OTP token to a service server associated with the application when receiving an One Time Password (OTP) 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 application authentication in a state where security is enhanced through a dedicated server dedicated to application authentication.

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

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

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

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

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

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

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

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

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

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

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

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

리버스 엔지니어링(Reverse Engineering ; 역공학)은 소프트웨어 공학의 한 분야로, 이미 만들어진 시스템을 역으로 추적하여 처음의 문서나 설계기법 등의 자료를 얻어 내는 일을 의미한다.Reverse engineering is a discipline in software engineering that involves tracking back already created systems to obtain data such as 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, unpacking the APK file 201 using apktool extracts the native library 205 and the smail code 206 as contents, and disassembles the DEX form as shown in FIG. 2. An additional smail directory is created with the files.

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

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

한편, 두번째 방식으로 java 소스코드를 분해한 경우에는 그 역순으로 java 소스 코드를 수정하고 역으로 컴파일 및 조립하여 class.dex 파일을 만들고 나머진 원본을 압축하면 변조된 Apk(207)이 생성된다. On the other hand, in the case of disassembling the java source code in the second manner, the java source code is modified in the reverse order, reversely compiled and assembled to create a class.dex file, and the remaining original is compressed to generate a modulated 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 there is a problem in readability. Therefore, this step is not often performed, but when the Java source file 204 is obfuscated so much that decompilation is impossible, the smail code 206 may be directly modified. Thereafter, the modified APK file 207 can be generated by modifying the file generated by using apktool and packaging the contents again by using apktool. You can also add app signatures using the jarsigner tool to make them installable.

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

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

변조된 APK, 즉 무결성에 흠결이 있는 애플리케이션으로 구동되는 것을 막기 위해서, 해시 값을 이용하여 앱의 무결성 인증을 수행하는 것이 일반적이다. In order to prevent running a tampered APK, i.e. an application that has a flaw in its integrity, it is common to perform an app's integrity authentication using a hash value.

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

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

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

도 3은 본 발명에 따른 애플리케이션 무결성 인증 시스템을 도시한 도면이다.3 is a diagram illustrating 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 composed of an authentication server 301, a mobile terminal 302, and a service server 303. However, the integrity authentication system 300 is not necessarily limited thereto, and the function of the service server 303 and the authentication server 301 may be operated in one server.

인증 서버(301)는 이동 단말기(302)에 설치된 애플리케이션의 무결성을 인증하는 역할을 수행한다. 이동 단말기(302)로부터 애플리케이션 인증 요청을 받은 경우, 일정한 로직에 따라서 애플리케이션의 무결성을 판단하고, 그 결과를 다시 이동 단말기(302)에 송부한다.The authentication server 301 authenticates the integrity of the 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 certain logic, and the result is sent back to the mobile terminal 302.

이동 단말기는(302)는 주로 스마트폰을 의미하나, 그에 한정되지는 않으며, 안드로이드 OS, 애플운영체제(iOS)등 모바일 OS를 기반으로 동작하는 모든 단말기를 의미한다. 사용자가 이동 단말기(302)에 설치된 애플리케이션에 대해서 무결성 인증을 하기를 원하는 경우, 이동 단말기(302)는 인증 서버(301)에 무결성 인증 요청을 한다. 무결성 인증 결과를 수신한 경우, 그 결과를 서비스 서버(303)에 전달한다.The mobile terminal 302 mainly means a smartphone, but is not limited thereto, and refers to all terminals operating based on a mobile OS such as an Android OS and an Apple operating system (iOS). If the user wants to perform integrity authentication on an application installed in the mobile terminal 302, the mobile terminal 302 makes an integrity authentication request to the authentication server 301. 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. The service server 303 transmits and receives information necessary for the operation of the application when an application installed in the mobile terminal 302 needs to connect with an external network or when external authentication (personal authentication or application authentication) is required for application use. . In connection with the integrity authentication, when the mobile terminal 302 receives the integrity authentication result from the authentication server 301, the mobile terminal 302 transmits the integrity authentication result to the service server 303. The service server 303 sends the information or feedback corresponding to the result to the mobile terminal 302.

도 4는 본 발명에 따른 무결성 인증 서버(301)의 일 예를 도시한 도면이다.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 may communicate with a plurality of mobile terminals 401, and may transmit and receive information therefrom. In addition, the communication unit 402 may be connected to an external network as needed. The communication unit 402 may occasionally receive external information required for integrity authentication through an external network. For example, the communication unit 402 may receive information about hash values and the like for a plurality of applications through an external network. The communication unit 402 may transmit a challenge value to the mobile terminal 401 and receive a response value thereto. In addition, the communication unit 402 may 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 authenticating the application. For example, profile information of an application may be stored. It can also store hash values for each application. The integrity authentication server 301 may be only for authentication of one application, but may also be a server for authenticating the integrity of multiple applications. Accordingly, app hash values 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 the applications at a predetermined time period.

제어부(403)는 무결성 인증 서버(301)의 전체적인 동작을 제어한다. 구체적으로, 제어부(403)는 저장부(401) 및 통신부(403)의 동작을 제어할 수도 있다. 또한, 제어부(403)는 이동 단말기(302)로부터 수신된 다양한 정보를 기반으로 무결성 인증을 수행할 수 있다. 구체적으로, 제어부(403)는 이동 단말기(302)로부터 수신된 응답 값에 포함된 무결성 검증과 관련된 신호들을 이용하여 무결성 인증을 할 수 있으며, 그 결과에 따라서 성공/실패 신호를 생성할 수 있다. 또한, 제어부(403)는 무결성 인증 성공시 OTP 값을 생성할 수 있다. The controller 403 controls the overall operation of the integrity authentication server 301. In detail, the controller 403 may control operations of the storage unit 401 and the communication unit 403. In addition, the controller 403 may perform integrity authentication based on various information received from the mobile terminal 302. In detail, the controller 403 may 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 controller 403 may generate an OTP value upon successful integrity authentication.

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

소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시형태들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다. 적절한 프로그램 언어로 쓰여진 소프트웨어 어플리케이션으로 소프트웨어 코드가 구현될 수 있다. 상기 소프트웨어 코드는 저장부에 저장되고, 제어부에 의해 실행될 수 있다.By 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 functions and operations described herein. Software code may be implemented in software applications written in a suitable programming language. The software code may be stored in a storage unit and executed by a controller.

도 5는 본 발명의 일 실시형태와 관련된 이동 단말기의 블록 구성도(block diagram)이다. 5 is a block diagram of a mobile terminal according to one 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, so that 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 that enable 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 range communication module, and a location information module. The wireless communication unit 501 may download an application from an external app store. In addition, the wireless communication unit 501 may transmit and receive various information with the integrity authentication server 301. The wireless communication unit 501 may transmit and receive various information with the service server 303 for authentication or application driving.

제어부(controller, 502)는 통상적으로 이동 단말기의 전반적인 동작을 제어한다. 예를 들어 음성 통화, 데이터 통신, 화상 통화 등을 위한 관련된 제어 및 처리를 수행한다. 또한, 무결성 인증 서버(301)로부터 전달받은 질의(challenge) 값에 응답하여 여러 정보를 이용하여 응답(response) 값을 생성할 수도 있다.The controller 502 typically controls the overall operation of the mobile terminal. For example, perform related control and processing for voice calls, data communications, video calls, and the like. In addition, a response value may be generated using various pieces of information in response to a challenge value received 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 stores the input / output data (for example, a phone book, a message, an audio, a still image, a video, etc.). It can also perform a function. The memory unit 503 may also store a frequency of use of each of the data (eg, a phone number, a message, and a frequency of use of each multimedia). In addition, the memory unit 503 may store data regarding vibration and sound of various patterns output when a touch input on the touch screen is performed. The memory can be a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (e.g. SD or XD memory), RAM (Random Access) Memory, RAM), Static Random Access Memory (SRAM), Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Programmable Read-Only Memory (PROM), Magnetic Memory, Magnetic Disk, Optical Disk It may include at least one type of storage medium.

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

출력부(505)는 시각, 청각 또는 촉각 등과 관련된 출력을 발생시키기 위한 것으로, 이에는 디스플레이부, 음향 출력 모듈, 알람부, 햅틱 모듈 등이 포함될 수 있다. 디스플레이부(505)는 이동 단말기(302)에서 처리되는 정보를 표시할 수 있다. 예를 들어, 출력부(505)는 무결성 인증 실패로 애플리케이션이 변조된 것으로 확인된 경우, 오류 메시지를 다양한 방식으로 출력할 수 있다.The output unit 505 is used to generate an output related to sight, hearing, or tactile sense, and may include a display unit, a sound output module, an alarm unit, and a haptic module. 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 ways when it is determined that the application is tampered with due to the integrity authentication failure.

여기에 설명되는 다양한 실시형태는 예를 들어, 소프트웨어, 하드웨어 또는 이들의 조합된 것을 이용하여 컴퓨터 또는 이와 유사한 장치로 읽을 수 있는 기록매체 내에서 구현될 수 있다.The various embodiments described herein can be implemented 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), 기타 기능 수행을 위한 전기적인 유닛 중 적어도 하나를 이용하여 구현될 수 있다. 일부의 경우에 본 명세서에서 설명되는 실시형태들이 제어부 자체로 구현될 수 있다.According to a hardware implementation, embodiments described herein include application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), and the like. It may be implemented using at least one of processors, controllers, micro-controllers, microprocessors, and electrical units for performing other functions. The described embodiments can be implemented by the controller itself.

소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시형태들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다. 적절한 프로그램 언어로 쓰여진 소프트웨어 어플리케이션으로 소프트웨어 코드가 구현될 수 있다. 상기 소프트웨어 코드는 메모리에 저장되고, 제어부에 의해 실행될 수 있다.By 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 functions and operations described herein. Software code may be implemented in software applications written in a suitable programming language. The software code may be stored in a memory and executed by a controller.

도 6는 본 발명의 일 실시예에 따른 무결성 인증 방식에 대한 전체 흐름을 도시하는 도면이다.6 is a diagram showing the overall flow for the 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 application profile information from the service server 303 (S601). The application profile information may include an application hash value (hereinafter, app hash value), package information, application version, app signing key, terminal USIM, and application name. The integrity authentication server 301 stores profile information received from the service server 303. In particular, the integrity authentication server 301 stores the app hash value for the application (S602).

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

이동 단말기(302)는 질의 값을 수신받은 경우, 질의 값에 대한 응답 (Response) 값을 생성한다 (S606). 응답 값을 생성시, 이동 단말기(302)는 애플리케이션의 앱 해시 값을 이용하여 생성한다. 이동 단말기(302)는 응답 값을 다시 무결성 인증 서버(301)에 송신한다.When the mobile terminal 302 receives the query value, the mobile terminal 302 generates a response value for the query value (S606). When generating the response value, the mobile terminal 302 generates using the app hash value of the application. The mobile terminal 302 sends the response value back 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 verifies the integrity of the application by analyzing the response value (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, when generating an authentication result, it may include an OTP value. The mobile terminal 302 may transfer the authentication result from the integrity authentication server 301 to the service server 303 immediately after receiving the authentication result. Alternatively, the mobile terminal 302 may send an authentication result to the service server 303 when the mobile terminal 302 needs to connect to the service server 303 through an application.

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

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

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

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

한편, 서버가 단말 간의 인증 참여 방식에 따라 단 방향 및 양 방향 인증이 있을 수 있다. 무결성 인증 서버(301)가 이동 단말기(302)에 대한 인증만 실시한 경우가 단 방향의 예가 될 수 있으며, 이동 단말기(302)에서도 추가적으로 무결성 인증 서버(301)의 유효성을 검증하게 강화시킨 것이 양 방향 인증의 예가 될 수 있다. 양 방향 인증의 경우 공유하는 비밀키를 이용하여 난수(Nounce)를 이동 단말기(302)에서도 질의(Challenge)값을 생성하여 서버(301)와 주고 받도록 할 수 있다. Meanwhile, the server may have one-way and two-way authentication according to a method for participating in authentication between terminals. An example of a unidirectional example is when the integrity authentication server 301 only performs authentication on the mobile terminal 302, and the mobile terminal 302 further strengthens the validity of the integrity authentication server 301 in both directions. This can be an example of authentication. In the case of two-way authentication, a random value may be generated in the mobile terminal 302 by using a shared secret key to exchange a message 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 related to the query / response generation described in FIG. 6.

이동 단말기(302)는 애플리케이션을 구동한다 (S701). 해당 애플리케이션은 이동 단말기(302)에 설치된 애플리케이션이다. 본 발명은 애플리케이션을 구동할 때마다 동작할 수도 있으나, 바람직하게는, 애플리케이션을 설치한 후 최초 구동시 동작할 수 있다. 이동 단말기(302)는 무선 통신부(501)를 통하여 애플리케이션에 대한 무결성 인증 요청을 송신한다 (S702).The mobile terminal 302 drives an 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, may be operated when the application is first installed 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 a random number function (S703). Random numbers generated through random functions can also be called nonce. Here, the random value is a value that is used once, and a different value may be generated each time it is generated. The integrity authentication server 301 is generated with profile information (app hash value, terminal USIM, application name, package information, company name, application version, app signing key) and random number function for the application pre-registered in the server 301. The hash function is driven by using a random value as an input value. 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 by using an arbitrary value, package information, an application version, a pre-shared key, and the like 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 also load the stored app hash value. Challenge-Response authentication uses random values (one-time use numbers) as questions and uses the value to be authenticated (app hash value) as a response to prevent replay attacks. It is meaningful to have. On the other hand, since the response value may be exposed to plain text by session hacking on the network, it is generally not possible to analyze the value by using a hash function or by using encryption.

보다 구체적으로, 이동 단말기(302)는 계산된 앱 해시 값과 질의 값을 해시 함수에 대한 입력으로 사용하여, 중간 해시 값을 생성한다. 이를 통하여, 제 3자가 앱 해시 값을 훔치는 것을 추가적으로 방지할 수 있다. More specifically, the mobile terminal 302 generates the intermediate hash value by using the calculated app hash value and the query value as inputs to the hash function. This may further prevent third parties 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 signing key (S707). Here, the app hash value is an encryption key specific to the application and may represent the application. The app signing key can be used to sign an application with the developer's own signing key before the application is finally uploaded to the App Store. The app signing key can be used to verify that the application you developed is authentic when the application is distributed through the app store. The app signing key may be stored together with 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 the symmetric key method. Accordingly, the mobile terminal 302 and the integrity authentication server 301 may use the same app signing key as an encryption key for encryption / decryption. However, you can optionally use asymmetric keys. Thus, mobile terminal 302 uses an app signing key, while integrity authentication server 301 may use a different encryption key and vice versa.

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

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

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

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

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

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

이동 단말기(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 may obtain an intermediate hash value. Since the integrity authentication server 301 already knows the random value information transmitted by the integrity authentication server 301, the integrity authentication server 301 knows the intermediate hash value and the random value. Here, it is difficult to directly check the input value through the intermediate hash value. However, since the random value that is an input value and the intermediate hash value that is a 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, if the number of cases is confirmed, the controller 403 may check the app hash value transmitted by the mobile terminal 302 through an arbitrary value and an intermediate hash value.

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

앱 해시 값의 비교를 통하여 무결성 인증 판단을 수행한다 (S712). 무결성이 인증된 경우, 제어부(403)는 성공의 표시로 OTP 토큰을 생성한다 (S713). 무결성 인증 결과를 이용하여 결과 값을 생성하며 (S714), 해당 결과 값을 이동 단말기 (302) 에 송신한다.Integrity authentication is determined by comparing the app hash values (S712). If the integrity is authenticated, the controller 403 generates an OTP token as an indication of success (S713). A result value is generated using the integrity authentication result (S714), and the result value is transmitted to the mobile terminal 302.

도 8는 본 발명의 일 실시예에 따른 무결성 인증 방식 중 OTP 생성/전달의 흐름을 도시하는 도면이다.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 S713 of FIG. 7, an OTP token is generated as a result of integrity authentication. Here, the token method uses time synchronization. In the time synchronization method, when calculating the MAC response value (using a hash function), the current time is additionally input to the pre-shared key. In other words, it is possible to synchronize based on the fact that mutually different subjects (for example, a server and a user) have a common time. Here, the one-time token cannot modify the time, but can cause the password to change once every certain time (eg 1 minute). In this case, since the server may have an error in time with the user, it may be recognized as a valid token if it is identified as a time within a certain range to correct this.

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

무결성 인증 서버(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). In this case, the secret key may play a role in which the integrity authentication server 301 and the service server 303 identify each other.

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

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

이동 단말기(302)는 무결성 인증 결과를 확인하고 (S803), 무결성 인증 결과를 서비스 서버(303)에 송신할 수 있다 (S802). 여기에서, 이동 단말기(302)는 해당 OTP 토큰 값에 대한 인증을 수행하지는 않으며, 무결성 인증 결과를 그대로 서비스 서버(303)에 전달한다. 바람직하게는, 이동 단말기(302)는 무결성 인증 서버(301)로부터 결과 값을 수신한 후 바로 또는 일정 시간 이내에서 서비스 서버(303)에 송신되나, 반드시 그에 국한되는 것은 아니다. OTP 토큰 값은 무결성 검증이 성공된 경우에만 생성되는 것으로 이동 단말기(302)가 서비스 서버(303)에 접속할 때 반드시 사용된다.The mobile terminal 302 checks 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 on the corresponding OTP token value, and transfers 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, or within a predetermined time after receiving the result value from the integrity authentication server 301, but is not necessarily limited thereto. The OTP token value is generated only when the integrity verification succeeds and is used when the mobile terminal 302 connects to 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 on the OTP token (S805). If the OTP token value is a hash value using a hash function, the service server 303 may check whether the OTP token value matches the time stamp included in the OTP token value using information of the current time of the service server. The authentication operation on the OTP token can be performed by checking whether the value of the secret key and the current time information of the service server corresponds to the OTP token value. Compare the current time with the time stamp included in the token. If it is determined to be within a certain time range, it is judged as normal and authenticates the OTP token. However, if it is found out of a certain time range, the OTP token is denied authentication. If the authentication is denied, the service server 303 determines that the mobile terminal 302 or the application is invalid and may retry three times, but is not limited to the number of times.

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

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

본 발명에서는, 상기 설명한 바와 같이, 무결성 인증에 성공한 경우에만 생성되는 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)

애플리케이션 무결성 인증 방법에 있어서,
인증 서버가 애플리케이션이 설치된 이동 단말기로부터 상기 애플리케이션에 대한 인증 요청을 수신하는 단계;
상기 인증 서버가 상기 인증 요청에 응답하여 상기 애플리케이션에 대한 질의 정보를 생성하는 단계로써, 상기 질의 정보는 사전 등록된 상기 애플리케이션에 대한 애플리케이션 프로파일 정보 및 임의 값을 해시 함수에 입력하여 생성된 정보인, 상기 생성 단계;
상기 질의 정보를 상기 이동 단말기에 송신하는 단계;
상기 질의 정보에 대응하여 생성된 응답 정보를 상기 이동 단말기로부터 수신하는 단계로써, 상기 응답 정보는 상기 이동 단말기에 의해서 상기 질의 정보와 상기 애플리케이션에 대한 고유 값인 앱 해시 값을 기반으로 해시 함수를 통해서 생성된 중간 해시 값을 암호화한 값인, 상기 수신 단계;
상기 응답 정보를 복호화하여 상기 중간 해시 값을 생성하는 단계;
상기 중간 해시 값과 상기 질의 정보를 기초로 상기 이동 단말기에 설치된 애플리케이션에 대한 앱 해시 값을 확인하는 단계로써, 해시 함수에 대한 제 1 입력 값인 상기 질의 정보와, 상기 제 1 입력 값 및 제 2 입력 값에 대한 해시 함수의 결과인 상기 중간 해시 값을 이용하여 해시 함수에 대한 제 2 입력 값을 유추하고, 상기 유추된 제 2 입력 값을 상기 앱 해시 값으로 확인하는, 상기 확인 단계;
상기 확인된 앱 해시 값과 상기 인증 서버에 저장된 앱 해시 값을 비교하여 애플리케이션의 변환 여부를 판단하는 단계; 및
상기 이동 단말기의 애플리케이션이 변환되지 않은 것으로 판단한 경우, 상기 인증 서버가 상기 이동 단말기에 OTP (One Time Password)를 송신하는 단계로써, 상기 이동 단말기는 상기 OTP 토큰을 이용하여 서비스 서버의 애플리케이션 서비스에 접속하는 것을 특징으로 하는, 상기 송신 단계를 포함하는,
애플리케이션 무결성 인증 방법.
In the application integrity authentication method,
An authentication server receiving an authentication request for the application from a mobile terminal in which the application is installed;
Generating, by the authentication server, query information for the application in response to the authentication request, wherein the query information is information generated by inputting application profile information and an arbitrary value for the pre-registered application into a hash function. Generating step;
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 through a hash function based on an app hash value which is a unique value for the query information and the application. Receiving the encrypted intermediate hash value;
Decoding the response information to generate the intermediate hash value;
Identifying an app hash value for an application installed in the mobile terminal based on the intermediate hash value and the query information, wherein the query information, the first input value, and the second input are first input values to a hash function; Identifying the second input value for the hash function using the intermediate hash value that is a result of the hash function for the value, and identifying the inferred second input value as the app hash value;
Determining whether to convert an application by comparing the identified app hash value with an app hash value stored in the authentication server; And
If it is determined that the application of the mobile terminal is not converted, the authentication server sends a one time password (OTP) to the mobile terminal, the mobile terminal accesses the application service of the service server using the OTP token Characterized in that, the transmitting step,
Application integrity authentication method.
제 1 항에 있어서,
상기 OTP 토큰을 송신하는 단계는,
상기 인증 서버가 애플리케이션이 변환되지 않은 것으로 판단한 경우 OTP(One Time Password)토큰을 생성하는 단계를 포함하며,
상기 OTP 토큰은 상기 인증 서버가 상기 OTP 토큰을 생성할 시점의 시각 정보인 타임 스탬프 정보를 포함하며,
상기 OTP 토큰은 상기 서비스 서버와 공유되는 제 1 암호화 키를 더 포함하는,
애플리케이션 무결성 인증 방법..
The method of claim 1,
The step of transmitting the OTP token,
Generating an One Time Password (OTP) token if the authentication server determines that the application has not been converted;
The OTP token includes time stamp information that is time information when the authentication server generates the OTP token,
The OTP token further comprises a first encryption key shared with the service server,
Application Integrity Authentication Method ..
제 2 항에 있어서,
상기 인증 요청을 수신하는 단계 이전에,
상기 인증 서버가 상기 서비스 서버로부터 상기 애플리케이션 프로파일 정보를 수신하는 단계를 더 포함하며,
상기 애플리케이션 프로파일 정보는 상기 앱 해시 값, 패키지 정보, 애플리케이션 버전, 앱 서명키, 상기 이동 단말기 정보, 애플리케이션 명칭 중 적어도 하나를 포함하는,
애플리케이션 무결성 인증 방법.
The method of claim 2,
Prior to receiving the authentication request,
The authentication server further receiving the application profile information from the service server,
The application profile information includes at least one of the app hash value, package information, an application version, an app signature key, the mobile terminal information, and an application name.
Application integrity authentication method.
제 1 항에 있어서,
상기 서비스 서버는 상기 이동 단말기로부터 상기 OTP 토큰을 수신하여 인증된 경우에 한하여, 상기 이동 단말기의 서비스 서버에 대한 애플리케이션 서비스 접속을 허용하는,
애플리케이션 무결성 인증 방법.
The method of claim 1,
The service server allows an application service access to a service server of the mobile terminal only when the service server receives the OTP token from the mobile terminal and is authenticated.
Application integrity authentication method.
제 1 항에 있어서,
상기 OTP 토큰을 송신하는 단계에서,
상기 인증 서버는 상기 OTP 토큰과 함께 상기 애플리케이션 고유 정보 및 상기 이동 단말기 고유 정보 중 적어도 하나를 송신하는 것을 특징으로하는,
애플리케이션 무결성 인증 방법.
The method of claim 1,
In the step of transmitting the OTP token,
Wherein the authentication server transmits at least one of the application specific information and the mobile terminal specific information together with the OTP token.
Application integrity authentication method.
삭제delete 삭제delete 애플리케이션 무결성 인증 서버에 있어서,
애플리케이션이 설치된 이동 단말기로부터 상기 애플리케이션에 대한 인증 요청을 수신하는 통신부;
상기 애플리케이션에 대한 정보를 저장부; 및
상기 인증 요청에 따라 상기 애플리케이션에 대한 변환 여부를 판단하는 제어부를 포함하며,
상기 제어부는,
상기 수신된 인증 요청에 응답하여 상기 저장된 정보를 활용하여 상기 애플리케이션에 대한 질의 정보를 생성하며,
상기 통신부로 하여금 상기 질의 정보를 상기 이동 단말기에 송신하게 하고,
상기 질의 정보에 대응하여 생성된 응답 정보를 상기 이동 단말기로부터 수신한 경우, 상기 응답 정보를 복호화하여 중간 해시 값을 생성하고, 상기 중간 해시 값과 상기 질의 정보를 기초로 상기 이동 단말기에 설치된 애플리케이션에 대한 앱 해시 값을 확인하며,
상기 확인된 앱 해시 값과 상기 인증 서버에 저장된 앱 해시 값을 비교하여 애플리케이션의 변환 여부를 판단하며,
상기 애플리케이션이 변환되지 않은 것으로 판단한 경우 상기 이동 단말기에 OTP (One Time Password)를 송신하도록 상기 통신부를 제어하는 것을 특징으로 하며,
상기 질의 정보는 사전 등록된 상기 애플리케이션에 대한 애플리케이션 프로파일 정보 및 임의 값을 입력 값으로 해시 함수를 통해서 생성된 정보이며,
상기 응답 정보는 상기 이동 단말기에 의해서 상기 질의 정보와 상기 애플리케이션에 대한 고유 값인 앱 해시 값을 기반으로 해시 함수를 통해서 생성된 중간 해시 값을 암호화한 값이며,
상기 앱 해시 값을 확인하는 과정에서는, 상기 해시 함수에 대한 제 1 입력인 상기 질의 정보와, 상기 제 1 입력 및 제 2 입력에 대한 해시 함수의 결과인 상기 중간 해시 값을 이용하여 상기 제 2 입력을 유추하고, 상기 유추된 제 2 입력을 상기 앱 해시 값으로 확인하며,
상기 이동 단말기는 상기 OTP 토큰을 수신한 경우 상기 OTP 토큰을 이용하여 서비스 서버의 애플리케이션 서비스에 접속하는 것을 특징으로하는,
애플리케이션 무결성 인증 서버.
An application integrity authentication server,
A communication unit receiving an authentication request for the application from a mobile terminal in which the application is installed;
A storage unit for storing information about the application; And
And a controller for determining whether to convert the application according to the authentication request.
The control unit,
Generate query information for the application by using the stored information in response to the received authentication request,
Cause the communication unit to transmit the query information to the mobile terminal;
When the response information generated in response to the query information is received from the mobile terminal, the response information is decoded to generate an intermediate hash value, and to the application installed in the mobile terminal based on the intermediate hash value and the query information. Checks the app hash value for
The application hash value stored in the authentication server is compared with the checked app hash value to determine whether to convert the application,
If it is determined that the application is not converted, characterized in that for controlling the communication unit to transmit an One Time Password (OTP) to the mobile terminal,
The query information is information generated through a hash function using application profile information and an arbitrary value of the pre-registered application as input values,
The response information is a value obtained by encrypting an intermediate hash value generated by the mobile terminal through a hash function based on the query information and an app hash value that is a unique value for the application.
In the checking of the app hash value, the second input is performed using the query information, which is a first input to the hash function, and the intermediate hash value, which is a result of a hash function of the first and second inputs. Inferring, confirming the inferred second input as the app hash value,
When the mobile terminal receives the OTP token, the mobile terminal uses the OTP token to access the application service of the service server,
Application Integrity Authentication Server.
제 8 항에 있어서,
상기 제어부는,
상기 애플리케이션이 변환되지 않은 것으로 판단한 경우,
OTP(One Time Password) 토큰을 생성하고, 상기 OTP 토큰을 상기 이동 단말기에 송신하도록 상기 통신부를 제어하며,
상기 OTP 토큰은 상기 애플리케이션 무결성 인증 서버가 상기 OTP 토큰을 생성할 시점의 시각 정보인 타임 스탬프 정보를 포함하며,
상기 OTP 토큰은 상기 서비스 서버와 공유되는 제 1 암호화 키를 더 포함하는,
애플리케이션 무결성 인증 서버.
The method of claim 8,
The control unit,
If it is determined that the application has not been converted,
Generating an One Time Password (OTP) token, controlling the communication unit to transmit the OTP token to the mobile terminal,
The OTP token includes time stamp information which is time information when the application integrity authentication server generates the OTP token,
The OTP token further comprises a first encryption key shared with the service server,
Application Integrity Authentication Server.
제 9 항에 있어서,
상기 통신부는 상기 이동 단말기로부터 인증 요청을 수신하기 이전에 상기 서비스 서버로부터 상기 애플리케이션 프로파일 정보를 수신하며,
상기 애플리케이션 프로파일 정보는 상기 앱 해시 값, 패키지 정보, 애플리케이션 버전, 앱 서명키, 상기 이동 단말기 정보, 애플리케이션 명칭 중 적어도 하나를 포함하는,
애플리케이션 무결성 인증 서버.
The method of claim 9,
The communication unit receives the application profile information from the service server before receiving the authentication request from the mobile terminal,
The application profile information includes at least one of the app hash value, package information, an application version, an app signature key, the mobile terminal information, and an application name.
Application Integrity Authentication Server.
제 8 항에 있어서,
상기 서비스 서버는 상기 이동 단말기로부터 상기 OTP 토큰을 수신하여 인증된 경우에 한하여, 상기 이동 단말기의 상기 서비스 서버에 대한 애플리케이션 서비스 접속을 허용하는,
애플리케이션 무결성 인증 서버.
The method of claim 8,
The service server allows an application service access to the service server of the mobile terminal only when it is authenticated by receiving the OTP token from the mobile terminal.
Application Integrity Authentication Server.
제 8 항에 있어서,
상기 제어부는,
상기 OTP 토큰을 상기 이동 단말기에서 송신할 때 상기 OTP 토큰과 함께, 상기 애플리케이션 고유 정보 및 상기 이동 단말기 고유 정보 중 적어도 하나를 송신하는 것을 특징으로 하는,
애플리케이션 무결성 인증 서버.
The method of claim 8,
The control unit,
When the OTP token is transmitted from the mobile terminal, at least one of the application specific information and the mobile terminal unique information is transmitted together with the OTP token.
Application Integrity Authentication Server.
삭제delete 삭제delete 애플리케이션에 대한 무결성 인증 요청을 무결성 인증 서버에 송신하는 무선 통신부; 및
상기 무선 통신부를 제어하는 제어부를 포함하며,
상기 제어부는,
상기 무선 통신부를 통하여 상기 무결성 인증 요청에 상응하는 질의 정보를 수신한 경우, 상기 애플리케이션에 대한 고유 값을 확인하고, 상기 고유 값과 상기 질의 정보에 기반하여 응답 정보를 생성하여 상기 무결성 인증 서버에 송신하도록 제어하고,
상기 무결성 인증 서버로부터 무결성 인증 결과로 OTP(One Time Password)토큰을 수신한 경우, 상기 OTP 토큰을 상기 애플리케이션과 관련된 서비스 서버에 송신하도록 제어하며,
상기 서비스 서버는 상기 OTP 토큰을 정상적으로 인증한 경우에 한하여 이동 단말기의 애플리케이션 서비스 접속을 허용하는,
이동 단말기.
A wireless communication unit which transmits an integrity authentication request for an application to an integrity authentication server; And
A control unit for controlling the wireless communication unit,
The control unit,
When the query information corresponding to the integrity authentication request is received through the wireless communication unit, the unique value for the application is checked, and response information is generated based on the unique value and the query information and transmitted to the integrity authentication server. Control it,
When receiving an One Time Password (OTP) token from the integrity authentication server as a result of integrity authentication, the OTP token is controlled to be transmitted to a service server associated with the application.
The service server allows the mobile terminal to access the application service only when the OTP token is normally authenticated.
Mobile terminal.
삭제delete 삭제delete
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 KR20170140630A (en) 2017-12-21
KR102013983B1 true 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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11308238B2 (en) 2018-11-28 2022-04-19 Samsung Electronics Co., Ltd. Server and method for identifying integrity of application

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102274055B1 (en) * 2017-12-26 2021-07-06 삼성에스디에스 주식회사 Message system, method for activating application, and user terminal executing the same
KR102286512B1 (en) * 2019-10-21 2021-08-05 주식회사 시큐센 Method to Provide Application Security Service Based on Cloud Computing
KR102348312B1 (en) * 2020-05-06 2022-01-11 네이버클라우드 주식회사 Method and system for detecting forgery of mobile application using collecting user identifier and signature
JP7445017B2 (en) * 2020-05-06 2024-03-06 ネイバー クラウド コーポレーション Mobile application forgery/alteration detection method using user identifier and signature collection, computer program, computer readable recording medium, and computer device
CN117082507A (en) * 2022-05-09 2023-11-17 华为技术有限公司 Communication method and network element equipment
KR102666161B1 (en) * 2022-11-23 2024-05-17 주식회사 인피니그루 Electronic device, system and method for preventing voice phishing with app always-on detection

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101570314B1 (en) * 2014-10-07 2015-11-18 (주)이스톰 Sevice verification method using one time password

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101253341B1 (en) * 2011-02-08 2013-04-10 (주)바이너리소프트 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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101570314B1 (en) * 2014-10-07 2015-11-18 (주)이스톰 Sevice verification method using one time password

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11308238B2 (en) 2018-11-28 2022-04-19 Samsung Electronics Co., Ltd. Server and method for identifying integrity of application

Also Published As

Publication number Publication date
KR20170140630A (en) 2017-12-21

Similar Documents

Publication Publication Date Title
KR102013983B1 (en) Method and server for authenticating an application integrity
EP3458999B1 (en) Self-contained cryptographic boot policy validation
JP5852265B2 (en) COMPUTER DEVICE, COMPUTER PROGRAM, AND ACCESS Permission Judgment Method
KR101712784B1 (en) System and method for key management for issuer security domain using global platform specifications
US11258591B2 (en) Cryptographic key management based on identity information
CN106936588B (en) Hosting method, device and system of hardware control lock
JP6476167B2 (en) Self-authentication device and self-authentication method
CN111401901B (en) Authentication method and device of biological payment device, computer device and storage medium
KR20150059347A (en) Mobile terminal, terminal and method for authentication using security cookie
CN113553572A (en) Resource information acquisition method and device, computer equipment and storage medium
CN115374405A (en) Software authorization method, license authorization method, device, equipment and storage medium
KR20070059891A (en) Application authentication security system and method thereof
CN109960935B (en) Method, device and storage medium for determining trusted state of TPM (trusted platform Module)
KR101711024B1 (en) Method for accessing temper-proof device and apparatus enabling of the method
US20240113898A1 (en) Secure Module and Method for App-to-App Mutual Trust Through App-Based Identity
KR20190070691A (en) Program executing authority authentication method and system
KR20240045160A (en) Method and system for providing encrypted and authenticated firmware with root-of-trust based security
KR101885146B1 (en) Method and apparatus for protecting an application
WO2023145240A1 (en) Information processing device and information processing system
CN107862209A (en) A kind of file encryption-decryption method, mobile terminal and the device with store function
KR101810946B1 (en) Method of electronic signature using certificate based on trust zone
CN117714058A (en) Encryption and decryption algorithm switching method and device for financial business equipment and computer equipment
CN118349988A (en) Unified authentication method, device, equipment and storage medium for application program
CN116680755A (en) GPU firmware protection method and device, electronic equipment and storage medium
CN117176367A (en) Application sharing method based on block chain, file sharing method and device

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