KR20130058527A - System and method for security of application, communication terminal therefor - Google Patents

System and method for security of application, communication terminal therefor Download PDF

Info

Publication number
KR20130058527A
KR20130058527A KR1020110124584A KR20110124584A KR20130058527A KR 20130058527 A KR20130058527 A KR 20130058527A KR 1020110124584 A KR1020110124584 A KR 1020110124584A KR 20110124584 A KR20110124584 A KR 20110124584A KR 20130058527 A KR20130058527 A KR 20130058527A
Authority
KR
South Korea
Prior art keywords
application
communication terminal
verification
verification value
identifier
Prior art date
Application number
KR1020110124584A
Other languages
Korean (ko)
Other versions
KR101322402B1 (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 KR1020110124584A priority Critical patent/KR101322402B1/en
Publication of KR20130058527A publication Critical patent/KR20130058527A/en
Application granted granted Critical
Publication of KR101322402B1 publication Critical patent/KR101322402B1/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • 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/31User authentication
    • G06F21/42User authentication using separate channels for security data
    • G06F21/43User authentication using separate channels for security data wireless channels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Abstract

PURPOSE: An application security system, a method thereof, and a communication terminal thereof are provided to change verification logic before completing reverse engineering, thereby fundamentally preventing forgery of an application. CONSTITUTION: An update management unit(113) provides an application verification module to a communication terminal and updates the application verification module corresponding to access of the communication terminal. An identifier management unit(111) manages an application identifier downloaded in the communication terminal. A hash value generation unit(115) generates a challenge for verifying an application corresponding to the access of the communication terminal and transmits the same to the communication terminal. A verification value generation unit(117) generates a verification value by using the identifier and the challenge. A comparison unit(119) compares the verification value with a verification value which is received from the communication terminal. [Reference numerals] (101) Control unit; (103) Communication network interface; (105) Operator interface; (107) Storage unit; (111) Identifier management unit; (113) Update management unit; (115) Hash value generation unit; (117) Verification value generation unit; (119) Comparison unit

Description

어플리케이션 보안 시스템 및 방법, 이를 위한 통신 단말기{System and Method for Security of Application, Communication Terminal Therefor}System and Method for Security of Application, Communication Terminal Therefor}

본 발명은 통신 서비스 보안 시스템에 관한 것으로, 보다 구체적으로는 어플리케이션 보안 시스템 및 방법과 이를 위한 통신 단말기에 관한 것이다.The present invention relates to a communication service security system, and more particularly to an application security system and method and a communication terminal for the same.

일명 스마트 폰이라 지칭되는 휴대용 통신 단말기는 서비스 이용자가 날로 증가하고 있으며, 이를 위한 다양한 어플리케이션이 계속해서 개발되고 있다.Portable communication terminals, also known as smart phones, are increasingly used by users of services, and various applications for this are continuously being developed.

스마트 폰과 같은 휴대용 통신 단말기는 브라우저 기반이 아닌 전용 어플리케이션 기반의 서비스를 제공하며, 사용자는 자신이 사용하고 있는 휴대용 통신 단말기의 OS에서 지원되는 다양한 어플리케이션을 유료 또는 무료로 다운로드받아 사용할 수 있다.A portable communication terminal such as a smart phone provides a service based on a dedicated application rather than a browser, and a user can download and use various applications supported by the OS of the portable communication terminal used for a fee or free of charge.

현재 상용화 되어 있는 휴대용 정보 단말기는 대표적으로, iOS 운영체제를 기반으로 하는 단말기와 안드로이드 운영체제를 기반으로 하는 단말기로 나눌 수 있다. 휴대용 정보 단말기 제조사들은 단말기를 제조할 때 특정 기능들에 대한 접근이나 변경이 불가능하도록 운영체제를 잠금 상태로 하여 단말기를 출시하는데, 최근 이러한 잠금장치를 해제하는 이른바 해킹 또는 루팅 행위가 일삼아지고 있다.Currently, portable information terminals that are commercially available can be divided into terminals based on the iOS operating system and terminals based on the Android operating system. Portable information terminal manufacturers release terminals by locking the operating system to prevent access or modification of specific functions when manufacturing the terminal. Recently, so-called hacking or rooting actions are released.

이와 같이 휴대용 정보 단말기를 해킹 또는 루팅하는 이유는 출고 상태 그대로의 단말기에 대한 폐쇄성을 보다 자유롭게 하고자 하는 욕구와, 유료 어플리케이션을 크랙하여 무료로 다운로드받고자 하는 목적이 가장 큰 것으로 보여진다.The reason for hacking or rooting the portable information terminal as described above seems to have the greatest desire to freely close the terminal as it is and the purpose of cracking the paid application for free download.

그런데, 이와 같이 해킹 또는 루팅된 휴대용 정보 단말기는 보안 문제에 매우 취약하여 타인에게 개인정보가 유출될 수 있다. 또한, 해킹 또는 루팅된 휴대용 정보 단말기에 설치된 뱅킹 어플리케이션에는 해킹 또는 루팅된 단말기임을 식별할 수 있는 코드가 삽입되기 때문에 뱅킹 어플리케이션을 사용할 수 없게 된다.By the way, the hacked or rooted portable information terminal is very vulnerable to security problems can leak personal information to others. In addition, a banking application installed in a hacked or rooted portable information terminal is inserted with a code for identifying a hacked or rooted terminal, so that the banking application cannot be used.

하지만, 최근 들어 해킹 또는 루팅된 단말기에서도 뱅킹 서버에 접속하여 금융 거래를 수행할 수 있도록 하는 어플리케이션이 무단, 불법으로 배포되고 있는 상황이다. 실제로, 위변조된 뱅킹 어플리케이션을 정상 어플리케이션처럼 위조하여 다운로드 사이트에 등록한 후, 이를 다운로드받은 사용자가 금융 서비스를 이용하는 경우 어플리케이션 변조자의 관련 계좌로 송금이 이루어지게 하는 범죄가 발생한 사실이 있다.However, recently, applications that allow users to access banking servers and perform financial transactions even in hacked or rooted terminals are being distributed illegally and illegally. Indeed, there is a crime that a forged banking application is registered as a normal application, forged and downloaded to a download site, and then the user who downloads the banking application transfers money to an associated account of an application modulator.

그러나 개개인의 단말기에 대해 해킹 또는 루팅이 이루어지지 못하게 하는 것은 거의 불가능하며, 위변조된 어플리케이션의 무분별한 배포를 차단하는 것 또한 한계가 있어 휴대용 정보 단말기를 통한 금융 범죄는 점차 심화될 것으로 예견된다.However, it is almost impossible to prevent hacking or rooting of individual terminals. Blocking indiscriminate distribution of forged applications is also limited, so financial crime through portable information terminals is expected to intensify.

1. 대한민국 등록특허공보 제10-10194581. Republic of Korea Patent Publication No. 10-1019458 2. 대한민국 등록특허공보 제10-09630892. Republic of Korea Patent Publication No. 10-0963089

본 발명은 어플리케이션의 위변조 여부를 확인할 수 있는 어플리케이션 보안 시스템 및 방법을 제공하는 데 그 기술적 과제가 있다.The present invention has a technical problem to provide an application security system and method that can determine whether the forgery of the application.

본 발명의 다른 기술적 과제는 어플리케이션이 접속할 때마다 어플리케이션 검증 로직을 변경하여 어플리케이션의 위변조를 방지할 수 있는 어플리케이션 보안 시스템 및 방법을 제공하는 데 있다.Another technical problem of the present invention is to provide an application security system and method that can prevent the forgery of the application by changing the application verification logic each time the application is connected.

본 발명의 또 다른 기술적 과제는 실행하고자 하는 어플리케이션에 대한 검증을 수행하는 통신 단말기를 제공하는 데 있다.Another technical problem of the present invention is to provide a communication terminal that performs verification of an application to be executed.

상술한 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 의한 어플리케이션 보안 시스템은 통신망을 통해 통신 단말기와 접속되며, 상기 통신 단말기로 어플리케이션 검증 모듈을 제공하고, 통신 단말기가 접속함에 따라 상기 어플리케이션 검증 모듈을 업데이트하는 업데이트 관리부; 및 상기 통신 단말기로 다운로드될 어플리케이션 식별자를 관리하는 식별자 관리부;를 포함하고, 상기 통신 단말기로 상기 어플리케이션의 검증값을 요청하고 수신하며, 상기 식별자에 기초한 검증값을 생성하여 상기 통신 단말기로부터 수신된 검증값과 비교할 수 있다.Application security system according to an embodiment of the present invention for achieving the above technical problem is connected to a communication terminal through a communication network, provides an application verification module to the communication terminal, the application verification module as the communication terminal is connected Update management unit for updating the; And an identifier manager for managing an application identifier to be downloaded to the communication terminal, requesting and receiving a verification value of the application from the communication terminal, generating a verification value based on the identifier, and verifying the received information from the communication terminal. Can be compared with a value.

한편, 본 발명의 일 실시예에 의한 어플리케이션 보안 방법은 어플리케이션을 실행시켜 지정된 서버로 접속하는 통신 단말기로서, 식별자를 포함하는 어플리케이션이 저장되는 저장부; 및 상기 서버로부터 전송되어 설치되며, 상기 서버에 접속하여 업데이트되는 어플리케이션 검증 모듈;을 포함하고, 상기 어플리케이션 검증 모듈은, 상기 어플리케이션이 실행됨에 따라 검증값을 생성하여 상기 서버로 전송할 수 있다.On the other hand, the application security method according to an embodiment of the present invention is a communication terminal for executing an application to connect to a designated server, the storage unit for storing the application including the identifier; And an application verification module transmitted from the server, installed in the server, and updated to access the server. The application verification module may generate a verification value and transmit the verification value to the server as the application is executed.

다른 한편, 본 발명의 일 실시예에 의한 통신 단말기는 통신망을 통해 통신 단말기와 접속되며, 상기 통신 단말기로 어플리케이션 검증 모듈을 다운로드하는 어플리케이션 보안 시스템에서의 어플리케이션 보안 방법으로서, 상기 어플리케이션 보안 시스템이 어플리케이션에 식별자를 부가하고 저장하는 단계; 상기 통신 단말기가 접속함에 따라 상기 어플리케이션 검증 모듈을 업데이트하는 단계; 상기 어플리케이션 검증 모듈이 업데이트된 통신 단말기로 검증값을 요청하는 단계; 및 상기 통신 단말기가 상기 업데이트한 상기 어플리케이션 검증 모듈을 통해 검증값을 생성하여 전송함에 따라, 상기 어플리케이션 보안 시스템이 검증값을 생성하는 단계; 상기 어플리케이션 보안 시스템이 상기 통신 단말기로부터 수신한 검증값과 상기 어플리케이션 보안 시스템에서 생성한 검증값을 비교하는 단계;를 포함할 수 있다.On the other hand, a communication terminal according to an embodiment of the present invention is an application security method in an application security system that is connected to a communication terminal through a communication network and downloads an application verification module to the communication terminal, wherein the application security system is applied to an application. Adding and storing the identifier; Updating the application verification module as the communication terminal connects; Requesting, by the application verification module, a verification value from an updated communication terminal; And generating, by the application security system, a verification value as the communication terminal generates and transmits a verification value through the updated application verification module. And comparing, by the application security system, a verification value received from the communication terminal with a verification value generated by the application security system.

본 기술은 어플리케이션에 대한 검증값을 생성하는 검증 로직을 주기적으로 업데이트한다. 어플리케이션 크래커들은 어플리케이션을 위변조하기 위해 리버스 엔지니어링 방식을 이용하는데, 본 기술에서와 같이 검증 로직을 주기적으로 업데이트하게 되면 리버스 엔지니어링이 완료 되기 전 검증 로직이 변경되므로 어플리케이션이 위변조되는 것을 원천적으로 방지할 수 있다.The technique periodically updates the validation logic to generate validation values for the application. Application crackers use a reverse engineering approach to forge an application, and periodically updating the validation logic, as in this technique, prevents the application from being forged because the validation logic changes before the reverse engineering is completed. .

도 1은 본 발명에 의한 어플리케이션 보안 시스템의 접속 관계를 설명하기 위한 도면,
도 2는 도 1에 도시한 어플리케이션 보안 시스템의 일 예시도,
도 3은 본 발명의 일 실시예에 의한 통신 단말기의 구성도,
도 4는 본 발명의 일 실시예에 의한 어플리케이션 보안 방법을 설명하기 위한 흐름도이다.
1 is a view for explaining the connection relationship of the application security system according to the present invention,
2 is an exemplary diagram of an application security system shown in FIG. 1;
3 is a block diagram of a communication terminal according to an embodiment of the present invention;
4 is a flowchart illustrating an application security method according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 보다 구체적으로 설명하기로 한다.Hereinafter, an embodiment of the present invention will be described in more detail with reference to the accompanying drawings.

도 1은 본 발명에 의한 어플리케이션 보안 시스템의 접속 관계를 설명하기 위한 도면이다.1 is a view for explaining the connection relationship of the application security system according to the present invention.

도 1을 참조하면, 본 발명에 의한 어플리케이션 보안 시스템(10)은 무선 또는 유선 통신망(20)을 통해 사용자의 통신 단말기(30) 및 어플리케이션 제조자 서버(40)와 접속된다.Referring to FIG. 1, an application security system 10 according to the present invention is connected to a user's communication terminal 30 and an application manufacturer server 40 through a wireless or wired communication network 20.

사용자는 통신 단말기(30)를 통해 어플리케이션 보안 시스템(10) 또는 어플리케이션 제공 서버(40)에 등록된 다양한 종류의 무료 또는 유료 어플리케이션을 통신 단말기(30)에 다운로드받아 사용할 수 있다. 또한, 통신 단말기(30)에는 어플리케이션 검증 모듈이 플러그-인 형태로 설치되어 주기적으로 업데이트되며, 이를 통해 어플리케이션 보안 시스템(10)과 연동하여 통신 단말기(30)에 설치된 어플리케이션에 대한 검증이 수행되도록 한다.The user may download and use various kinds of free or paid applications registered in the application security system 10 or the application providing server 40 to the communication terminal 30 through the communication terminal 30. In addition, the application verification module is installed in the communication terminal 30 in a plug-in form, and is periodically updated, through which the verification of the application installed in the communication terminal 30 is performed in connection with the application security system 10. .

어플리케이션 제공 서버(40)는 각종 어플리케이션을 등록하여 두고 통신 단말기(30)의 요청에 따라 지정된 과정을 통해 어플리케이션을 다운로드하여 줄 수 있다. 이러한 어플리케이션은 어플리케이션 제공 서버(40)에서 자체 제작된 어플리케이션이거나, 외부 어플리케이션 제조사나 개인으로부터 위탁된 어플리케이션일 수 있다.The application providing server 40 may register various applications and download the applications through a designated process according to a request of the communication terminal 30. Such an application may be an application produced by the application providing server 40 or an application entrusted by an external application manufacturer or an individual.

어플리케이션 보안 시스템(10)은 자체 제작된 어플리케이션을 통신망(20)을 통해 통신 단말기(30)로 제공할 수 있다. 또한, 어플리케이션 보안 시스템(10)은 어플리케이션 보안 시스템(10) 또는 어플리케이션 제공 서버(40)에 어플리케이션이 등록되기 전에 모든 어플리케이션, 또는 특정(유료 또는 금융 관련) 어플리케이션에 대해 식별자 정보를 부여하고 관리한다.The application security system 10 may provide a self-made application to the communication terminal 30 through the communication network 20. In addition, the application security system 10 assigns and manages identifier information for all applications or a specific (paid or finance related) application before the application is registered in the application security system 10 or the application providing server 40.

어플리케이션 보안 시스템(10)에서 관리하는 어플리케이션 식별자는 어플리케이션 ID를 포함할 수 있다.The application identifier managed by the application security system 10 may include an application ID.

또한, 어플리케이션 보안 시스템(10)은 통신 단말기(30)로부터 어플리케이션 식별자가 전송되면 해당 어플리케이션 식별자를 전송한 통신 단말기(300)의 어플리케이션 검증 모듈 또는 검증 로직을 업데이트한다. 아울러, 어플리케이션 검증 모듈(또는 로직)이 최신의 것으로 확인되면 어플리케이션 보안 시스템(10)은 해당 통신 단말기(30)로 검증값을 요청하고, 통신 단말기(30)가 최신 버전의 어플리케이션 검증 모듈을 통해 검증값을 생성하고 반환함에 따라 해당 어플리케이션에 대한 검증을 수행한다.In addition, when the application identifier is transmitted from the communication terminal 30, the application security system 10 updates the application verification module or the verification logic of the communication terminal 300 transmitting the corresponding application identifier. In addition, when the application verification module (or logic) is confirmed to be up-to-date, the application security system 10 requests the verification value to the corresponding communication terminal 30, and the communication terminal 30 is verified through the latest version of the application verification module. As the value is created and returned, the application is verified.

본 발명의 일 실시예에서, 어플리케이션 보안 시스템(10)은 금융 관련 어플리케이션을 통신 단말기(30)로 제공하고, 사용자가 통신 단말기(30)에 설치된 금융 관련 어플리케이션을 실행시켜 접속할 수 있는 뱅킹 서버일 수 있다. 이 경우, 어플리케이션 보안 시스템(10)은 자신이 제공하는 금융 관련 어플리케이션을 개발할 때 식별자를 부가하여 통신 단말기(30)로 제공함은 물론, 금융 관련 어플리케이션을 검증하기 위한 어플리케이션 검증 모듈을 통신 단말기(30)에 설치하도록 한다. 상술하였듯이, 어플리케이션 검증 모듈은 통신 단말기(30)에 플러그-인 형태로 설치될 수 있고, 어플리케이션이 실행될 때마다 그 버전을 확인하여 최신 버전으로 업데이트될 수 있다.In one embodiment of the present invention, the application security system 10 may be a banking server that provides a financial-related application to the communication terminal 30, the user can run by connecting to the financial-related application installed in the communication terminal 30 have. In this case, the application security system 10 adds an identifier to the communication terminal 30 when developing a financial related application provided by the application security system, and provides an application verification module for verifying the financial related application. Install it in As described above, the application verification module may be installed in the communication terminal 30 in a plug-in form, and may be updated to the latest version by checking the version every time the application is executed.

그리고, 통신 단말기(30)가 해당 어플리케이션을 실행시켜 접속하면 통신 단말기(30)로 식별자 기반의 검증값을 반환할 것을 요청한다. 이에 따라 통신 단말기(30)는 최신 버전의 어플리케이션 검증 모듈을 통해 검증값을 생성하고 반환하게 되며, 어플리케이션 보안 시스템(10)은 이미 알고 있는 식별자를 이용하여 검증값을 검증함으로써 해당 금융 관련 어플리케이션에 대한 검증을 수행할 수 있다.When the communication terminal 30 executes the application and accesses the request, the communication terminal 30 requests the communication terminal 30 to return the verification value based on the identifier. Accordingly, the communication terminal 30 generates and returns a verification value through the latest version of the application verification module, and the application security system 10 verifies the verification value by using an already known identifier for the corresponding financial related application. Verification can be performed.

그리고, 통신 단말기(30)에서 어플리케이션을 통한 서비스 요청이 있는 경우 어플리케이션 보안 시스템(10)은 통신 단말기(30)로 어플리케이션 ID 및/또는 인증정보를 기반으로 한 검증값을 전송할 것을 요청하고, 어플리케이션 보안 시스템(10)에서 이미 알고 있는 어플리케이션 ID 및/또는 인증정보를 이용, 서비스를 요청한 어플리케이션에 대한 위변조 여부를 확인하게 된다.In addition, when there is a service request through the application in the communication terminal 30, the application security system 10 requests the communication terminal 30 to transmit a verification value based on the application ID and / or authentication information, and the application security. By using the application ID and / or authentication information already known in the system 10 to determine whether the forgery for the application requesting the service.

더욱이, 통신 단말기(30)는 검증값을 생성하기 위한 어플리케이션 검증 모듈을 어플리케이션 보안 시스템(10)으로부터 다운로드받아 플러그-인 형태로 설치하고 있음은 물론, 어플리케이션이 실행될 때마다 어플리케이션 검증 모듈 또는 어플리케이션 검증 모듈 내의 검증값 생성 로직을 업데이트하게 된다.Furthermore, the communication terminal 30 downloads and installs an application verification module for generating a verification value from the application security system 10 in a plug-in form, as well as an application verification module or an application verification module every time the application is executed. This will update the verification value generation logic in the.

어플리케이션 크래커들은 주로 소프트웨어 실행코드를 역분석하는 리버스 엔지니어링(Reverse engineering)을 통해 어플리케이션의 중요 기능을 위변조한다. 하지만 본 발명에서와 같이 검증 로직을 업데이트하는 경우, 나아가 인증정보를 생성하기 위한 어플리케이션 실행 모듈(라이브러리)를 난독화하여 어플리케이션에 포함시키는 경우, 해커나 크래커들이 리버스 엔지니어링을 통해 인증정보를 알아낸다 하더라도, 인증정보를 알아낸 후의 검증값 생성 로직이 이미 신규 버전으로 업데이트되었기 때문에 어플리케이션에 대한 위조 또는 변조 행위를 할 수 없게 된다.Application crackers often forge critical functions of an application through reverse engineering, which reversely analyzes software executable code. However, in the case of updating the verification logic as in the present invention, in addition to obfuscating the application execution module (library) for generating authentication information in the application, even if hackers or crackers find out the authentication information through reverse engineering In addition, since the verification value generation logic after acquiring the authentication information has already been updated to the new version, the application cannot be forged or tampered with.

도 2는 도 1에 도시한 어플리케이션 보안 시스템의 일 예시도이다.FIG. 2 is an exemplary diagram of the application security system shown in FIG. 1.

도 2를 참조하면, 본 발명의 일 실시예에 의한 어플리케이션 보안 시스템(10)은 제어부(101), 통신망 인터페이스(103), 운용자 인터페이스(105), 저장부(107), 데이터베이스(109), 식별자 관리부(111), 업데이트 관리부(113), 해쉬값 생성부(115), 검증값 생성부(117) 및 비교부(119)를 포함한다.Referring to FIG. 2, the application security system 10 according to an embodiment of the present invention includes a control unit 101, a communication network interface 103, an operator interface 105, a storage unit 107, a database 109, and an identifier. The management unit 111, the update management unit 113, the hash value generating unit 115, the verification value generating unit 117, and the comparing unit 119 are included.

제어부(101)는 어플리케이션 보안 시스템(10)의 동작에 관여하는 다양한 기능을 주관하여 처리하고, 통신망 인터페이스(103)는 통신망(20)을 통해 통신 단말기(30) 및 어플리케이션 제공 서버(40)가 접속될 수 있도록 한다. 운용자 인터페이스(105)는 운용자가 어플리케이션 보안 시스템(10)에 접속하여 유지, 보수 등의 관리를 수행할 수 있는 입출력 경로를 제공한다.The control unit 101 manages and processes various functions related to the operation of the application security system 10, and the communication network interface 103 is connected to the communication terminal 30 and the application providing server 40 through the communication network 20. To be possible. The operator interface 105 provides an input / output path through which the operator can access the application security system 10 to perform maintenance, maintenance, and the like.

저장부(107)에는 어플리케이션 보안 시스템(10)이 동작하는 데 필요한 프로그램, 제어 신호, 데이터 등이 저장되며, 데이터베이스(109)에는 통신 단말기(30) 및 어플리케이션 제공 서버(40)와 송수신하는 데이터 중 지정된 정보, 예를 들어 어플리케이션 식별자 등이 저장될 수 있다.The storage unit 107 stores a program, a control signal, data, and the like necessary for the operation of the application security system 10, and the database 109 stores data transmitted / received with the communication terminal 30 and the application providing server 40. Designated information, for example an application identifier, may be stored.

식별자 관리부(111)는 어플리케이션 제공 서버(40)에 등록될 어플리케이션, 바람직하게는 유료 어플리케이션이나 금융 서비스 관련 어플리케이션 각각의 식별자를 데이터베이스(109)에 저장 및 관리한다. 어플리케이션 식별자는 어플리케이션 ID를 포함할 수 있으며, 이는 어플리케이션 개발시 부여될 수 있다.The identifier manager 111 stores and manages an identifier of each application to be registered in the application providing server 40, preferably a paid application or a financial service related application, in the database 109. The application identifier may include an application ID, which may be given at application development.

식별자가 부가된 어플리케이션은 통신망(20)을 통해 사용자의 통신 단말기(30)로 다운로드되어질 수 있다. 그리고, 이러한 통신 단말기(30)가 해당 어플리케이션을 실행하여 어플리케이션 보안 시스템(10)으로 접속하면, 업데이트 관리부(113)는 통신 단말기(30)가 신규 버전의 어플리케이션 검증 모듈, 또는 검증 로직을 설치하도록 한다. 만약, 통신 단말기(30)에 어플리케이션 검증 모듈이 설치되어 있지 않다면, 업데이트 관리부(113)는 통신 단말기(30)로 어플리케이션 검증 모듈을 다운로드하여 설치하도록 한다. 그리고, 통신 단말기(30)에 어플리케이션 검증 모듈이 설치되어 있으나 신규 버전이 아닌 경우에는 검증 로직을 업데이트하도록 한다.The application to which the identifier is added may be downloaded to the user's communication terminal 30 through the communication network 20. When the communication terminal 30 executes the corresponding application and accesses the application security system 10, the update manager 113 causes the communication terminal 30 to install a new version of the application verification module or the verification logic. . If the application verification module is not installed in the communication terminal 30, the update manager 113 downloads and installs the application verification module to the communication terminal 30. If the application verification module is installed in the communication terminal 30 but is not a new version, the verification logic is updated.

통신 단말기(30)의 어플리케이션 검증 모듈이 업데이트되고, 통신 단말기(30)로부터 어플리케이션 식별자가 전송됨에 따라, 해쉬값 생성부(115)는 어플리케이션 검증을 위한 챌린지를 무작위로 생성하여 통신 단말기(30)로 제공한다.As the application verification module of the communication terminal 30 is updated and an application identifier is transmitted from the communication terminal 30, the hash value generator 115 randomly generates a challenge for application verification to the communication terminal 30. to provide.

여기에서, 통신 단말기(30)는 특정 어플리케이션을 실행함에 의해 직접 어플리케이션 보안 시스템(10)으로 접속하거나, 또는 타 서비스 제공자 서버에 접속한 후 어플리케이션 인증을 위해 어플리케이션 보안 시스템(10)으로 리다이렉션될 수 있다. 만약, 어플리케이션 보안 시스템(10)이 뱅킹 서버이고, 금융 관련 서비스를 제공하기 위해 어플리케이션을 배포하였다면, 통신 단말기(30)는 해당 어플리케이션을 통해 직접 어플리케이션 보안 시스템(10)으로 접속할 수 있음은 물론이다.Here, the communication terminal 30 may be directly connected to the application security system 10 by executing a specific application, or may be redirected to the application security system 10 for application authentication after accessing another service provider server. . If the application security system 10 is a banking server and distributes an application to provide financial related services, the communication terminal 30 may directly access the application security system 10 through the corresponding application.

검증값 생성부(117)는 해쉬값 생성부(115)에서 생성한 챌린지를 이용, 통신 단말기(30)와 동일한 방식으로 어플리케이션 식별자에 대한 암호화를 수행하여 검증값을 도출한다.The verification value generator 117 derives the verification value by performing encryption on the application identifier in the same manner as the communication terminal 30 using the challenge generated by the hash value generator 115.

통신 단말기(30)가 챌린지, 식별자 및 인증정보를 기반으로 검증값을 생성하는 경우, 검증값 생성부(117) 또한 챌린지, 식별자 및 인증정보를 기반으로 검증값을 생성함은 물론이다. 인증정보는 통신 단말기(30)에서 실행되는 어플리케이션의 형상, 즉 어플리케이션 실행모듈의 라이이브러리로부터 계산되는 것으로, 통신 단말기(30)와 검증값 생성부(117)가 동일한 방식으로 인증정보를 계산해낼 수 있다. 그리고, 이러한 인증정보는 통신 단말기(30)에서 어플리케이션이 실행될 때마다 실시간으로 생성하며, 어플리케이션의 위변조를 검증하는 기본값이 된다.When the communication terminal 30 generates the verification value based on the challenge, the identifier and the authentication information, the verification value generator 117 also generates the verification value based on the challenge, the identifier and the authentication information. The authentication information is calculated from the shape of the application executed in the communication terminal 30, that is, the library of the application execution module, and the communication terminal 30 and the verification value generator 117 may calculate the authentication information in the same manner. have. The authentication information is generated in real time whenever the application is executed in the communication terminal 30, and becomes a default value for verifying forgery of the application.

자바 기반의 언어와 같이 소스 복원이 용이한 언어로 작성된 어플리케이션의 경우 인증정보를 생성해 내기 위한 어플리케이션 실행 모듈 즉, 라이브러리는 난독화하여 등록하는 것이 바람직하다. 난독화 과정을 통해 어플리케이션 실행 모듈에 대한 소스 복원이 불가능하도록 처리할 수 있으며, 따라서 어플리케이션이 크랙되는 것을 더욱 효율적으로 방지할 수 있다.In the case of an application written in a language such as a Java-based language that can be easily restored, it is preferable to register the application execution module, that is, the library, to obfuscate the authentication information. The obfuscation process makes it impossible to restore the source to the application execution module, thereby preventing the application from being cracked more efficiently.

아울러, 비교부(119)는 통신 단말기(30)가 전송한 검증값과, 검증값 생성부(117)에서 도출한 검증값을 비교하여, 해당 어플리케이션의 정품 여부를 확인한다.In addition, the comparison unit 119 compares the verification value transmitted from the communication terminal 30 with the verification value derived from the verification value generating unit 117 to confirm whether the corresponding application is genuine.

도 3은 본 발명의 일 실시예에 의한 통신 단말기의 구성도이다.3 is a block diagram of a communication terminal according to an embodiment of the present invention.

도시한 것과 같이, 본 발명의 일 실시예에 의한 통신 단말기(30)는 제어부(301), 통신모듈(303), 사용자 인터페이스(305), 저장부(307) 및 어플리케이션 실행모듈(309)을 포함한다.As shown, the communication terminal 30 according to an embodiment of the present invention includes a control unit 301, a communication module 303, a user interface 305, a storage unit 307, and an application execution module 309. do.

제어부(301)는 통신 단말기(30)의 전체적인 동작을 제어하며, 통신모듈(303)은 통신 단말기(30)가 통신망(20)에 접속할 수 있는 환경을 제공한다.The controller 301 controls the overall operation of the communication terminal 30, and the communication module 303 provides an environment in which the communication terminal 30 can be connected to the communication network 20.

사용자 인터페이스(305)는 사용자의 명령을 입력받는 입력부 및 통신 단말기(30)의 상태나 이벤트 처리 현황 등을 출력하는 출력부를 포함한다.The user interface 305 includes an input unit for receiving a command of a user and an output unit for outputting a state of the communication terminal 30 or an event processing status.

저장부(307)에는 통신 단말기(30)가 동작하는 데 필요한 각종 제어 프로그램, 제어 신호, 데이터 등이 저장되며, 통신모듈(303)을 통해 다운로드받은 어플리케이션(309) 또한 저장부(307)에 저장될 수 있다. 이때, 저장부(307)에 저장되는 각각의 어플리케이션(309)은 어플리케이션 보안 시스템(10)에서 이미 알고 있는 식별자를 포함하고 있음은 물론이다.The storage unit 307 stores various control programs, control signals, data, etc. necessary for the communication terminal 30 to operate, and the application 309 downloaded through the communication module 303 is also stored in the storage unit 307. Can be. In this case, each application 309 stored in the storage unit 307 includes an identifier already known by the application security system 10.

어플리케이션 실행모듈(311)은 사용자가 실행하고자 하는 어플리케이션을 저장부(307)로부터 호출하여 실행한다.The application execution module 311 calls and executes an application to be executed by the user from the storage unit 307.

이에 더하여, 본 발명에 의한 통신 단말기(30)에는 어플리케이션 보안 시스템(10)으로부터 다운로드 받은 어플리케이션 검증 모듈(313)이 플러그-인 형태로 설치된다. 그리고, 어플리케이션 검증 모듈(313)은 통신 단말기(30)가 어플리케이션 보안 시스템(10)에 접속될 때마다, 또는 지정된 주기로 업데이트된다. 이 때, 업데이트되는 내용은 어플리케이션 검증 모듈(313)에 포함된 검증 로직일 수도 있고, 어플리케이션 검증 모듈(313) 전체일 수도 있다.In addition, the application verification module 313 downloaded from the application security system 10 is installed in the communication terminal 30 according to the present invention in a plug-in form. The application verification module 313 is updated each time the communication terminal 30 is connected to the application security system 10 or at a designated cycle. In this case, the updated content may be verification logic included in the application verification module 313 or may be the entire application verification module 313.

한편, 저장부(307)에 저장되는 어플리케이션, 특히 유료 어플리케이션이나 금융 서비스 관련 어플리케이션(309)은 파라미터 검증 로직(3091)을 포함할 수 있다. 파라미터 검증 로직(3091)은 어플리케이션 개발시 부가되는 것으로, 어플리케이션이 실행된 후 통신망(20)을 통해 전송하는 파라미터에 대한 무결성을 확인하는 역할을 한다.On the other hand, the application stored in the storage unit 307, in particular, a paid application or financial service-related application 309 may include a parameter verification logic (3091). The parameter verification logic 3031 is added during application development. The parameter verification logic 3031 checks the integrity of the parameter transmitted through the communication network 20 after the application is executed.

본 발명의 다른 실시예에서, 저장부(307)에 저장되는 어플리케이션은 그 식별자에 인증정보(3093)가 부가된 형태일 수 있다. 상술하였듯이, 인증정보(3093)는 어플리케이션(309)이 실행될 때 어플리케이션 검증 모듈(313)이 어플리케이션 실행 모듈(라이브러리, 311)을 암호화함으로써 생성되며, 또한 어플리케이션 실행 모듈(라이브러리. 311)은 어플리케이션 보안 시스템(10)에서 이미 알고 있는 값이다. 나아가, 인증정보(3093)를 생성해 내기 위한 어플리케이션 실행 모듈(라이브러리, 311)은 해당 어플리케이션이 소스 복원이 가능한 언어로 작성되어 있는 경우, 난독화 처리 후 부가되어질 수 있다.In another embodiment of the present invention, the application stored in the storage unit 307 may be in the form of the authentication information 3093 added to the identifier. As described above, the authentication information 3093 is generated by the application verification module 313 encrypting the application execution module (library) 311 when the application 309 is executed, and the application execution module (library. 311) is an application security system. This is a known value in (10). In addition, the application execution module (library) 311 for generating the authentication information 3093 may be added after the obfuscation process when the application is written in a language capable of restoring the source.

어플리케이션(309)이 실행되면, 어플리케이션 검증 모듈(313)은 어플리케이션 보안 시스템(10)과 연동하여 검증 로직을 업데이트하고, 어플리케이션 식별자를 어플리케이션 보안 시스템(10)으로 전송한다. 그리고, 어플리케이션 보안 시스템(10)으로부터 챌린지가 수신됨에 따라, 어플리케이션 검증 모듈(313)은 어플리케이션 실행 모듈(311)로부터 생성된 인증정보(3093), 식별자 및 챌린지를 이용하여 검증값을 생성하고 어플리케이션 보안 시스템(10)으로 전송한다. 이때, 검증값을 생성하는 검증 로직이 업데이트되어 있기 때문에 리버스 엔지니어링에 의한 실행코드 분석을 무력화할 수 있다.When the application 309 is executed, the application verification module 313 updates the verification logic in association with the application security system 10 and transmits the application identifier to the application security system 10. Then, as the challenge is received from the application security system 10, the application verification module 313 generates a verification value by using the authentication information 3093, the identifier, and the challenge generated from the application execution module 311, and applies the application security. To the system 10. At this time, since the verification logic for generating the verification value is updated, execution code analysis by reverse engineering can be disabled.

또한, 이러한 과정은 어플리케이션 검증 모듈(313) 업데이트를 통해 최신 버전으로 업데이트된 어플리케이션 검증 모듈(313)이 챌린지, 식별자 및 인증정보(3093)를 이용하여 검증값을 생성할 수 있다.In addition, in this process, the application verification module 313 updated to the latest version through the application verification module 313 may generate a verification value using the challenge, the identifier, and the authentication information 3093.

도 4는 본 발명의 일 실시예에 의한 어플리케이션 보안 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating an application security method according to an embodiment of the present invention.

설명의 편의를 위하여, 도 4에서는 어플리케이션 보안 시스템(10)이 금융 관련 서비스를 제공하는 뱅킹 서버이며 식별자가 부가된 금융 관련 어플리케이션을 개발하여 사용자에게 제공하는 경우를 예로 들어 설명한다. 여기에서, 어플리케이션 식별자는 어플리케이션 ID, 또는 어플리케이션 ID에 인증정보가 포함된 구성일 수 있다.For convenience of description, FIG. 4 illustrates an example in which the application security system 10 is a banking server that provides a financial service, and develops and provides a financial related application with an identifier to a user. Here, the application identifier may be an application ID or a configuration in which authentication information is included in the application ID.

먼저, 어플리케이션 보안 시스템(10)은 어플리케이션 개발시 부가된 식별자(어플리케이션 ID, 인증정보)를 저장한다(S101). 그리고, 이러한 어플리케이션은 통신 단말기(30)로 다운로드될 수 있다.First, the application security system 10 stores an identifier (application ID, authentication information) added during application development (S101). Such an application may be downloaded to the communication terminal 30.

통신 단말기(30)가 어플리케이션(309)을 실행하면(S103) 어플리케이션(309)과 어플리케이션 검증 모듈(313)이 상호 연동하게 된다(S105). 그리고, 어플리케이션 검증 모듈(313)이 어플리케이션 보안 시스템(10)과 통신 경로를 형성, 업데이트 관리부(113)에 의해 검증 로직이 업데이트된다(S107).When the communication terminal 30 executes the application 309 (S103), the application 309 and the application verification module 313 interoperate with each other (S105). In addition, the application verification module 313 forms a communication path with the application security system 10, and the verification logic is updated by the update manager 113 (S107).

검증 로직에 대한 업데이트가 완료되면, 어플리케이션 검증 모듈(313)은 실행된 어플리케이션(309)으로부터 어플리케이션 ID를 추출하여 어플리케이션 보안 시스템(10)으로 전송하고(S109), 어플리케이션(309)과 어플리케이션 보안 시스템(10)이 상호 접속된다(S111).When the update of the verification logic is completed, the application verification module 313 extracts the application ID from the executed application 309 and transmits it to the application security system 10 (S109), and the application 309 and the application security system ( 10 are interconnected (S111).

어플리케이션 ID를 수신한 어플리케이션 보안 시스템(10)의 해쉬값 생성부(115)는 무작위로 챌린지를 생성하여(S113) 어플리케이션 검증 모듈(313)로 전송한다(S115, S117).The hash value generator 115 of the application security system 10 having received the application ID randomly generates a challenge (S113) and transmits the challenge to the application verification module 313 (S115 and S117).

이에 따라, 어플리케이션 검증 모듈(313)은 단계 S107에 의해 신규 버전으로 업데이트된 검증 로직을 이용, 어플리케이션 실행 모듈(311)의 라이브러리로부터 인증정보를 생성하고, 단계 S117에서 수신한 챌린지, 그리고 인증정보와 어플리케이션(309)에 포함된 식별자를 기반으로 하여 검증값을 생성한다(S119). 생성된 검증값은 어플리케이션(309)을 통해(S121) 어플리케이션 보안 시스템(10)으로 전송된다(S125). 이때 어플리케이션(309) 내의 파라미터 검증 로직(3091)이 어플리케이션 보안 시스템(10)으로 전송하고자 하는 데이터의 무결성을 검증하기 위하여 파라미터에 대한 체크섬을 생성하여(S123) 검증값과 함께 전송하는 것도 가능하다.Accordingly, the application verification module 313 generates authentication information from the library of the application execution module 311 using the verification logic updated to the new version in step S107, and the challenge received in step S117, and the authentication information and the authentication information. A verification value is generated based on the identifier included in the application 309 (S119). The generated verification value is transmitted to the application security system 10 through the application 309 (S121). In this case, in order to verify the integrity of data to be transmitted to the application security system 10, the parameter verification logic 3091 in the application 309 may generate a checksum for the parameter (S123) and transmit the same together with the verification value.

한편, 검증값을 수신한 어플리케이션 보안 시스템(10)의 검증값 생성부(117)는 단계 S113에서 생성한 챌린지 및 이미 알고 있는 식별자와 인증정보를 이용하여, 통신 단말기(30)와 동일한 방법으로 검증값을 생성한다(S127). 그리고, 비교부(119)는 단계 S125에서 통신 단말기(30)로부터 수신한 검증값 및, 단계 S127에서 검증값 생성부(117)에 의해 생성한 검증값이 동일한지 비교한다(S129). 비교 결과 두 검증값이 동일한 경우에는 위변조되지 않은 정품 어플리케이션인 것으로 판단, 이후의 서비스를 제공한다.On the other hand, the verification value generation unit 117 of the application security system 10 receiving the verification value is verified in the same manner as the communication terminal 30, using the challenge generated in step S113 and the identifier and authentication information already known. A value is generated (S127). Then, the comparison unit 119 compares the verification value received from the communication terminal 30 in step S125 and the verification value generated by the verification value generating unit 117 in step S127 (S129). As a result of the comparison, when the two verification values are the same, it is determined that the genuine application is not forged, and the subsequent service is provided.

본 발명의 일 실시예에서, 어플리케이션 검증 모듈(313)은 어플리케이션 실행 모듈(311)에 해쉬 알고리즘을 적용하여 1차 해쉬값을 생성하고, 1차 해쉬값 및 단계 S117에서 수신한 챌린지에 대해 다시 해쉬 알고리즘을 적용하여 2차 해쉬값을 생성하여 검증값으로 반환할 수 있다.In one embodiment of the present invention, the application verification module 313 generates a first hash value by applying a hash algorithm to the application execution module 311, and again hashes the first hash value and the challenge received in step S117. By applying the algorithm, the second hash value can be generated and returned as the verification value.

다른 실시예에서, 1차 및 2차 해쉬값을 생성한 후, 2차 해쉬값에 대한 3차 해쉬값 생성 및 2차 해쉬값에 대한 4차 해쉬값을 생성하여 3차 해쉬값과 4차 해쉬값을 합하고, 합해진 값에 대한 5차 해쉬값 및 6차 해쉬값을 각각 생성한 다음, 5차 해쉬값과 6차 해쉬값을 더하여 검증값으로 반환하는 것도 가능하다. 이러한 검증 로직은 일 실시예일뿐이며, 검증 로직이 업데이트되게 되면 이러한 검증 방식 또한 변경되게 됨은 물론이다.In another embodiment, after generating the first and second hash values, the third and fourth hash values are generated by generating the third hash value for the second hash value and the fourth hash value for the second hash value. It is also possible to sum the values, generate a fifth-order hash value and a sixth-order hash value for the summed values, and then add the fifth-order hash value and the sixth-order hash value and return them as verification values. This verification logic is only one embodiment, and if the verification logic is updated, the verification scheme is also changed.

하기 [표 1]은 검증값 생성 절차의 일 예이다.Table 1 below is an example of a verification value generation procedure.

단계step 실행 로직Execution logic 1One hApp = SHA2(어플리케이션실행모듈)h App = SHA2 (Application Execution Module) 22 c2 = Challenge + hApp c2 = Challenge + h App 33 md1 = SHA2(c2)md1 = SHA2 (c2) 44 md2 = MD5(c2)md2 = MD5 (c2) 55 md3 = md1 + md2md3 = md1 + md2 66 md4 = SHA(md3)md4 = SHA (md3) 77 md5 = MD5(md3)md5 = MD5 (md3) 88 Response = md4 + md5Response = md4 + md5

아울러, 어플리케이션 보안 시스템(10)의 검증값 생성부(117)가 단계 S127에서 검증값을 생성하는 데 있어서 어플리케이션 검증 모듈(313)과 동일한 방식을 이용할 수 있음은 물론이다.In addition, the verification value generation unit 117 of the application security system 10 may use the same method as the application verification module 313 in generating the verification value in step S127.

결국, 본 발명에서는 검증값을 생성하기 위한 검증 로직이 지정된 주기로 업데이트되므로 역공학에 의해 어플리케이션의 실행 코드를 분석하였더라도 그 분석 결과가 무용해져 어플리케이션의 위변조를 방지할 수 있다.As a result, in the present invention, since the verification logic for generating the verification value is updated at a predetermined period, even if the execution code of the application is analyzed by reverse engineering, the analysis result is obsolete, thereby preventing the forgery of the application.

또한, 본 발명에서는 어플리케이션이 실행되어 서비스를 요청함에 따라 실시간으로 생성한 챌린지를 이용하여 어플리케이션의 위변조 여부를 확인하며, 이러한 챌린지는 어플리케이션이 실행될 때 마다, 또는 해당 어플리케이션에서 특정 이벤트가 발생할 때마다 무작위로 생성할 수 있다. 이러한 의미에서, 본 발명에 의한 어플리케이션 보안 알고리즘은 One Time Password(OTP) 방식이라 볼 수 있다.In addition, the present invention checks whether the application is forged or altered using a challenge generated in real time as the application is executed and requests a service, and the challenge is randomized whenever the application is executed or whenever a specific event occurs in the corresponding application. Can be generated as In this sense, the application security algorithm according to the present invention can be regarded as a One Time Password (OTP) method.

더욱이, 어플리케이션 식별자로서 어플리케이션 실행 모듈의 라이브러리로부터 계산되는 인증정보를 이용할 수 있고, 이러한 라이브러리는 소스 복원이 불가능한 언어 또는 난독화 과정을 통해 삽입되어 통신 단말기에 제공될 수 있다. 따라서 역공학을 통해 어플리케이션을 위변조하고자 하는 크래커들이 어플리케이션에 포함된 인증정보의 소스 코드에 접근하기 어렵다. 또한, 비록 소스 코드에 접근한다 하더라도 구 버전의 검증 로직에 의한 분석 결과이므로, 역공학에 의해 분석한 인증정보는 실제 인증정보와는 다른 값이 될 것이며, 결국 어플리케이션에 대한 위변조를 원천적으로 방지할 수 있다.Furthermore, authentication information calculated from a library of an application execution module may be used as an application identifier, and such a library may be inserted into a communication terminal and inserted through a language or an obfuscation process that cannot be restored. Therefore, it is difficult for crackers to forge an application through reverse engineering to access the source code of authentication information included in the application. In addition, even if the source code is accessed, it is the result of analysis by the old version of the verification logic, so that the authentication information analyzed by reverse engineering will be different from the actual authentication information, which will prevent the forgery of the application. Can be.

본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.It will be understood by those skilled in the art that the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. It is therefore to be understood that the embodiments described above are to be considered in all respects only as illustrative and not restrictive. The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.

10 : 어플리케이션 보안 시스템
101 : 제어부
103 : 통신망 인터페이스
105 : 운용자 인터페이스
107 : 저장부
109 : 데이터베이스
111 : 식별자 관리부
113 : 업데이트 관리부
115 : 해쉬값 생성부
117 : 검증값 생성부
119 : 비교부
30 : 통신 단말기
301 : 제어부
303 : 통신모듈
305 : 사용자 인터페이스
307 : 저장
309 : 어플리케이션
3091 : 파라미터 검증 로직
3093 : 인증정보
311 : 어플리케이션 실행모듈
313 : 어플리케이션 검증모듈
10: application security system
101:
103: communication network interface
105: operator interface
107: storage unit
109: database
111: identifier management unit
113: update management unit
115: hash value generation unit
117: verification value generation unit
119: comparison unit
30: communication terminal
301: control unit
303: communication module
305: user interface
307: save
309: Application
3091: Parameter Verification Logic
3093: Certification Information
311: application execution module
313 application verification module

Claims (20)

통신망을 통해 통신 단말기와 접속되며,
상기 통신 단말기로 어플리케이션 검증 모듈을 제공하고, 통신 단말기가 접속함에 따라 상기 어플리케이션 검증 모듈을 업데이트하는 업데이트 관리부; 및
상기 통신 단말기로 다운로드될 어플리케이션 식별자를 관리하는 식별자 관리부;를 포함하고, 상기 통신 단말기로 상기 어플리케이션의 검증값을 요청하고 수신하며, 상기 식별자에 기초한 검증값을 생성하여 상기 통신 단말기로부터 수신된 검증값과 비교하는 어플리케이션 보안 시스템.
Connected to a communication terminal through a communication network,
An update management unit providing an application verification module to the communication terminal and updating the application verification module as the communication terminal is connected; And
And an identifier manager for managing an application identifier to be downloaded to the communication terminal, requesting and receiving a verification value of the application from the communication terminal, generating a verification value based on the identifier, and verifying the verification value received from the communication terminal. Application security system to compare with.
제 1 항에 있어서,
상기 통신 단말기가 어플리케이션을 실행하여 접속함에 따라, 상기 어플리케이션을 검증하기 위한 챌린지를 생성하여 상기 통신 단말기로 전송하는 해쉬값 생성부;
상기 식별자 및 상기 챌린지를 이용하여 검증값을 생성하는 검증값 생성부; 및
상기 통신 단말기로부터 검증값이 수신됨에 따라, 상기 검증값 생성부에서 생성한 검증값과 상기 통신 단말기로부터 수신한 검증값을 비교하는 비교부;
를 포함하는 어플리케이션 보안 시스템.
The method of claim 1,
A hash value generation unit for generating a challenge for verifying the application and transmitting the challenge to the communication terminal as the communication terminal executes and accesses an application;
A verification value generator configured to generate a verification value using the identifier and the challenge; And
A comparison unit comparing the verification value generated by the verification value generating unit with the verification value received from the communication terminal as the verification value is received from the communication terminal;
Application security system comprising a.
제 1 항 또는 제 2 항 중 어느 하나의 항에 있어서,
상기 식별자는 어플리케이션 ID, 또는 상기 어플리케이션 ID 및 인증정보를 포함하는 어플리케이션 보안 시스템.
The method according to claim 1 or 2,
The identifier includes an application ID or the application ID and authentication information.
제 3 항에 있어서,
상기 인증정보는 상기 어플리케이션에 포함된 라이브러리로부터 생성되는 어플리케이션 보안 시스템.
The method of claim 3, wherein
And the authentication information is generated from a library included in the application.
제 4 항에 있어서,
상기 라이브러리는 난독화되어 상기 어플리케이션에 부가되는 어플리케이션 보안 시스템.
The method of claim 4, wherein
The library is obfuscated and added to the application.
제 2 항에 있어서,
상기 해쉬값 생성부는, 상기 통신 단말기가 어플리케이션을 실행하여 접속할 때마다, 또는 상기 어플리케이션에서 지정된 이벤트가 발생할 때마다 상기 챌린지를 생성하고 상기 통신 단말기로 전송하여 검증값을 요청하는 어플리케이션 보안 시스템.
3. The method of claim 2,
The hash value generation unit generates a challenge and transmits the challenge to the communication terminal whenever the communication terminal executes an application and connects or whenever an event specified in the application occurs and requests a verification value.
제 1 항에 있어서,
상기 업데이트 관리부는, 상기 통신 단말기가 접속할 때마다, 또는 기 설정된 주기로 상기 어플리케이션 검증 모듈을 업데이트하는 어플리케이션 보안 시스템.
The method of claim 1,
The update management unit updates the application verification module every time the communication terminal accesses or at a predetermined cycle.
어플리케이션을 실행시켜 지정된 서버로 접속하는 통신 단말기로서,
식별자를 포함하는 어플리케이션이 저장되는 저장부; 및
상기 서버로부터 전송되어 설치되며, 상기 서버에 접속하여 업데이트되는 어플리케이션 검증 모듈;을 포함하고,
상기 어플리케이션 검증 모듈은, 상기 어플리케이션이 실행됨에 따라 검증값을 생성하여 상기 서버로 전송하는 통신 단말기.
A communication terminal that runs an application and connects to a designated server,
A storage unit for storing an application including an identifier; And
And an application verification module transmitted from the server and installed, and updated to access the server.
The application verification module, and generates a verification value and transmits to the server as the application is executed.
제 8 항에 있어서,
상기 어플리케이션 검증 모듈은 플러그-인 형태로 설치되는 통신 단말기.
The method of claim 8,
The application verification module is installed in the plug-in communication terminal.
제 8 항에 있어서,
상기 식별자는 어플리케이션 ID, 또는 상기 어플리케이션 ID 및 인증정보를 포함하는 통신 단말기.
The method of claim 8,
And the identifier includes an application ID or the application ID and authentication information.
제 10 항에 있어서,
상기 어플리케이션은 상기 인증정보를 생성하기 위한 라이브러리를 포함하는 통신 단말기.
11. The method of claim 10,
The application includes a library for generating the authentication information.
제 11 항에 있어서,
상기 라이브러리는 난독화되어 상기 어플리케이션에 부가되는 것을 특징으로 하는 통신 단말기.
The method of claim 11,
And the library is obfuscated and added to the application.
제 8 항에 있어서,
상기 어플리케이션 검증 모듈은, 상기 서버에 의해 업데이트된 후 상기 검증값을 생성하는 통신 단말기.
The method of claim 8,
And the application verification module generates the verification value after being updated by the server.
제 8 항에 있어서,
상기 어플리케이션 검증 모듈은 상기 서버로부터 챌린지를 수신함에 따라, 상기 식별자 및 상기 챌린지를 기반으로 검증값을 생성하여 상기 서버로 전송하는 통신 단말기.
The method of claim 8,
The application verification module, upon receiving a challenge from the server, generates a verification value based on the identifier and the challenge and transmits the verification value to the server.
통신망을 통해 통신 단말기와 접속되며, 상기 통신 단말기로 어플리케이션 검증 모듈을 다운로드하는 어플리케이션 보안 시스템에서의 어플리케이션 보안 방법으로서,
상기 어플리케이션 보안 시스템이 어플리케이션에 식별자를 부가하고 저장하는 단계;
상기 통신 단말기가 접속함에 따라 상기 어플리케이션 검증 모듈을 업데이트하는 단계;
상기 어플리케이션 검증 모듈이 업데이트된 통신 단말기로 검증값을 요청하는 단계; 및
상기 통신 단말기가 상기 업데이트한 상기 어플리케이션 검증 모듈을 통해 검증값을 생성하여 전송함에 따라, 상기 어플리케이션 보안 시스템이 검증값을 생성하는 단계;
상기 어플리케이션 보안 시스템이 상기 통신 단말기로부터 수신한 검증값과 상기 어플리케이션 보안 시스템에서 생성한 검증값을 비교하는 단계;
를 포함하는 어플리케이션 보안 방법.
An application security method in an application security system connected to a communication terminal through a communication network and downloading an application verification module to the communication terminal,
The application security system adding and storing an identifier to an application;
Updating the application verification module as the communication terminal connects;
Requesting, by the application verification module, a verification value from an updated communication terminal; And
Generating, by the application security system, a verification value as the communication terminal generates and transmits a verification value through the updated application verification module;
Comparing, by the application security system, a verification value received from the communication terminal with a verification value generated by the application security system;
Application security method comprising a.
제 15 항에 있어서.
상기 검증값을 요청하는 단계는, 상기 통신 단말기가 상기 어플리케이션 보안 시스템에 접속한 어플리케이션 식별자를 전송함에 따라, 상기 어플리케이션 보안 시스템이 상기 통신 단말기로 챌린지를 전송하는 단계인 어플리케이션 보안 방법.
The method of claim 15.
The requesting of the verification value may include: transmitting, by the application security system, a challenge to the communication terminal as the communication terminal transmits an application identifier connected to the application security system.
제 16 항에 있어서,
상기 검증값을 생성하는 단계는, 상기 통신 단말기가 상기 챌린지 및 상기 식별자를 기반으로 생성한 검증값을 전송함에 따라, 상기 어플리케이션이 상기 저장된 식별자 및 상기 챌린지를 이용하여 검증값을 생성하는 단계인 어플리케이션 보안 방법.
17. The method of claim 16,
The generating of the verification value may include: generating, by the application, a verification value using the stored identifier and the challenge as the communication terminal transmits a verification value generated based on the challenge and the identifier. Security method.
제 15 항에 있어서,
상기 식별자는 어플리케이션 ID, 또는 상기 어플리케이션 ID 및 인증정보를 포함하는 어플리케이션 보안 방법.
The method of claim 15,
The identifier includes an application ID, or the application ID and authentication information.
제 18 항에 있어서,
상기 인증정보는 상기 어플리케이션에 포함된 라이브러리로부터 생성되는 어플리케이션 보안 방법
The method of claim 18,
Application authentication method is the authentication information is generated from a library included in the application
제 19 항에 있어서,
상기 라이브러리는 난독화되어 상기 어플리케이션에 부가되는 어플리케이션 보안 방법.
The method of claim 19,
And the library is obfuscated and added to the application.
KR1020110124584A 2011-11-25 2011-11-25 System and Method for Security of Application, Communication Terminal Therefor KR101322402B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110124584A KR101322402B1 (en) 2011-11-25 2011-11-25 System and Method for Security of Application, Communication Terminal Therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110124584A KR101322402B1 (en) 2011-11-25 2011-11-25 System and Method for Security of Application, Communication Terminal Therefor

Publications (2)

Publication Number Publication Date
KR20130058527A true KR20130058527A (en) 2013-06-04
KR101322402B1 KR101322402B1 (en) 2013-11-21

Family

ID=48857778

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110124584A KR101322402B1 (en) 2011-11-25 2011-11-25 System and Method for Security of Application, Communication Terminal Therefor

Country Status (1)

Country Link
KR (1) KR101322402B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101532765B1 (en) * 2013-10-02 2015-07-02 주식회사 엔젠소프트 System and method for application counterfeit prevention
US11429950B2 (en) 2015-04-24 2022-08-30 Huawei Technologies Co., Ltd. Mobile payment apparatus and method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160139914A (en) * 2015-05-29 2016-12-07 삼성에스디에스 주식회사 System and method for detecting software tampering

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040070159A (en) * 2004-07-20 2004-08-06 정재환 System for protecting specification application program and method for employing thereof
KR20070105989A (en) * 2005-02-25 2007-10-31 마츠시타 덴끼 산교 가부시키가이샤 Secure processing device and secure processing system
KR20080073114A (en) * 2007-02-05 2008-08-08 주식회사 엘지씨엔에스 System and method for update of security information
KR101012872B1 (en) * 2009-09-16 2011-02-08 주식회사 팬택 Security apparatus and method for open platform

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101532765B1 (en) * 2013-10-02 2015-07-02 주식회사 엔젠소프트 System and method for application counterfeit prevention
US11429950B2 (en) 2015-04-24 2022-08-30 Huawei Technologies Co., Ltd. Mobile payment apparatus and method

Also Published As

Publication number Publication date
KR101322402B1 (en) 2013-11-21

Similar Documents

Publication Publication Date Title
KR100711722B1 (en) Software authentication apparatus for mobile communication terminal and the method thereof
CN110933163B (en) Block chain contract deployment method, device, equipment and storage medium
EP1479187B1 (en) Controlling access levels in phones by certificates
US8417964B2 (en) Software module management device and program
US9262598B1 (en) Digital rights management for applications
CN103186725B (en) software authorization method and device
WO2015184891A1 (en) Security management and control method, apparatus, and system for android system
CN101194229B (en) Updating of data instructions
US20070300057A1 (en) Dynamic Web Services Systems and Method For Use of Personal Trusted Devices and Identity Tokens
US10268845B2 (en) Securing of the loading of data into a nonvolatile memory of a secure element
EP1579617A2 (en) Methods and apparatus for managing secured software for a wireless device
US20200244469A1 (en) Method for handling data in a secure container
US9514288B2 (en) Information processing device, information processing method, program and storage medium
US9858061B2 (en) Tamperproof installation of building control software in approved runtime environments
US20030059049A1 (en) Method and apparatus for secure mobile transaction
CN111222160A (en) Intelligent contract execution method and system
KR101097103B1 (en) Method and system for preventing outflow in software source code
US20060075401A1 (en) Patch installation control
US11574046B2 (en) Protecting a software program against tampering
US20120174090A1 (en) Patch and dot release licensing
US20150235039A1 (en) Information processing device, information processing method, program and storage medium
KR101322402B1 (en) System and Method for Security of Application, Communication Terminal Therefor
CN111953634B (en) Access control method and device for terminal equipment, computer equipment and storage medium
CN114329358A (en) Application signature method and system, transaction terminal and service platform
CN107689934B (en) Method, server and client for guaranteeing information security

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161017

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171018

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181004

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20191021

Year of fee payment: 7