KR101906484B1 - Method for application security and system for executing the method - Google Patents

Method for application security and system for executing the method Download PDF

Info

Publication number
KR101906484B1
KR101906484B1 KR1020170028955A KR20170028955A KR101906484B1 KR 101906484 B1 KR101906484 B1 KR 101906484B1 KR 1020170028955 A KR1020170028955 A KR 1020170028955A KR 20170028955 A KR20170028955 A KR 20170028955A KR 101906484 B1 KR101906484 B1 KR 101906484B1
Authority
KR
South Korea
Prior art keywords
client device
security
verification
file
encryption
Prior art date
Application number
KR1020170028955A
Other languages
Korean (ko)
Other versions
KR20180102387A (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 KR1020170028955A priority Critical patent/KR101906484B1/en
Priority to PCT/KR2018/002420 priority patent/WO2018164408A1/en
Publication of KR20180102387A publication Critical patent/KR20180102387A/en
Application granted granted Critical
Publication of KR101906484B1 publication Critical patent/KR101906484B1/en

Links

Images

Classifications

    • 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/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information

Abstract

어플리케이션 보안 방법 및 이를 수행하기 위한 시스템이 개시된다. 예시적인 실시예에 따른 어플리케이션 보안 시스템은, 정적 보안 관련 파일 및 동적 보안 관련 파일 중 상기 정적 보안 관련 파일이 탑재된 보안 미비 어플리케이션을 다운로드 받고, 보안 미비 어플리케이션에 대한 검증 요청을 전송하며, 검증 요청에 대응하는 검증 결과 관련 정보에 따라 상기 동적 보안 관련 파일에 대한 보안 파일 요청을 전송하는 클라이언트 장치, 클라이언트 장치로부터 상기 검증 요청을 수신하고, 보안 미비 어플리케이션에 대한 검증을 수행하며, 검증 결과 관련 정보를 클라이언트 장치로 전송하는 검증 서버, 및 클라이언트 장치로부터 보안 파일 요청을 수신하고, 암호화된 동적 보안 관련 파일을 클라이언트 장치로 전송하는 관리 서버를 포함한다.An application security method and a system for performing the same are disclosed. The application security system according to the exemplary embodiment downloads a security-critical application in which the static-security-related file and the dynamic security-related file are loaded, transmits a verification request for the security-critical application, Receiving a verification request from a client device, a client device transmitting a security file request for the dynamic security-related file according to a corresponding verification result related information, performing verification of an unsecured application, And a management server that receives the secure file request from the client device and transmits the encrypted dynamic security-related file to the client device.

Description

어플리케이션 보안 방법 및 이를 수행하기 위한 시스템{METHOD FOR APPLICATION SECURITY AND SYSTEM FOR EXECUTING THE METHOD}METHOD FOR APPLICATION SECURITY AND SYSTEM FOR EXECUTING THE METHOD,

본 발명의 실시예는 보안 기술과 관련된다.Embodiments of the invention relate to security technology.

최근, 스마트 폰의 사용이 급증함에 따라 스마트 폰에 설치되는 어플리케이션을 활용한 응용 사례가 증가하고 있다. 예를 들어, 스마트 폰에 설치되는 어플리케이션을 이용하여 금융 거래 또는 결제 등을 수행하는 사례가 증가하고 있다. 그러나, 금융 거래 또는 결제 등을 수행하는 어플리케이션을 부정한 목적의 제3 자가 도용하거나 해킹할 수 있다는 문제점이 있다.In recent years, as the use of smart phones has soared, applications using applications installed on smart phones have increased. For example, financial transactions or settlements are increasingly performed using applications installed in a smart phone. However, there is a problem that an application for performing a financial transaction or settlement can be hijacked by a third party who has an illegal purpose.

한국공개특허공보 제10-2012-0100549호(2012.09.12)Korean Patent Publication No. 10-2012-0100549 (2012.12.12)

본 발명의 실시예는 어플리케이션 사용에 따른 보안성을 높일 수 있는 어플리케이션 보안 방법 및 이를 수행하기 위한 시스템을 제공하기 위한 것이다. An embodiment of the present invention is to provide an application security method capable of enhancing security according to application use and a system for performing the method.

개시되는 일 실시예에 따른 어플리케이션 보안 시스템은, 정적 보안 관련 파일 및 동적 보안 관련 파일 중 상기 정적 보안 관련 파일이 탑재된 보안 미비 어플리케이션을 다운로드 받고, 상기 보안 미비 어플리케이션에 대한 검증 요청을 전송하며, 상기 검증 요청에 대응하는 검증 결과 관련 정보에 따라 상기 동적 보안 관련 파일에 대한 보안 파일 요청을 전송하는 클라이언트 장치; 상기 클라이언트 장치로부터 상기 검증 요청을 수신하고, 상기 보안 미비 어플리케이션에 대한 검증을 수행하며, 상기 검증 결과 관련 정보를 상기 클라이언트 장치로 전송하는 검증 서버; 및 상기 클라이언트 장치로부터 상기 보안 파일 요청을 수신하고, 암호화된 동적 보안 관련 파일을 상기 클라이언트 장치로 전송하는 관리 서버를 포함한다.The application security system according to an exemplary embodiment of the present invention downloads a security-critical application on which the static security-related file and a dynamic security-related file are loaded, transmits a verification request for the security-critical application, A client device for transmitting a security file request for the dynamic security related file according to verification result related information corresponding to the verification request; A verification server for receiving the verification request from the client device, performing verification of the unsecured application, and transmitting the verification result related information to the client device; And a management server receiving the secure file request from the client device and transmitting the encrypted dynamic security-related file to the client device.

상기 검증 요청은, 상기 보안 미비 어플리케이션의 식별 정보 및 상기 클라이언트 장치의 고유 식별 정보를 포함할 수 있다.The verification request may include identification information of the unsecured application and unique identification information of the client apparatus.

상기 검증 서버는, 상기 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보와 기 저장된 보안 미비 어플리케이션의 식별 정보를 비교하여 검증을 수행하고, 검증 결과에 따라 상기 클라이언트 장치의 고유 식별 정보를 기반으로 암호화 관련 키 값을 생성하며, 상기 검증 결과 및 상기 암호화 관련 키 값을 포함하는 검증 결과 관련 정보를 상기 클라이언트 장치로 전송할 수 있다.Wherein the verification server compares the identification information of the unsecured application included in the verification request with the identification information of the previously stored unsecured application and verifies the identification information based on the identification information of the client device, Generating a key value, and transmitting the verification result-related information including the verification result and the encryption-related key value to the client apparatus.

상기 검증 서버는, 이상 징후 발생 시 상기 클라이언트 장치의 고유 식별 정보 및 기 설정된 더미 관리 정보가 조합된 관리 고유 정보를 기반으로 암호화 관련 키 값을 생성할 수 있다.The verification server may generate an encryption-related key value based on management unique information in which unique identification information of the client apparatus and predetermined dummy management information are combined when an abnormal symptom occurs.

상기 검증 서버는, 일정 시간 동안 각 클라이언트들의 검증 요청에 따른 검증 실패의 총 횟수가 기 설정된 제1 횟수를 초과하는 경우 상기 이상 징후가 발생한 것으로 판단할 수 있다.The verification server may determine that the abnormal symptom occurs when the total number of verification failures in accordance with the verification request of each client for a predetermined time exceeds a predetermined first number.

상기 검증 서버는, 상기 클라이언트 장치에 대해 검증 요청에 따른 검증 실패가 기 설정된 제2 횟수를 초과하는 경우 상기 이상 징후가 발생한 것으로 판단할 수 있다.The verification server may determine that the abnormal symptom occurs when the verification failure according to the verification request exceeds the second predetermined number of times.

상기 보안 파일 요청은, 상기 클라이언트 장치의 고유 식별 정보, 상기 암호화 관련 키 값, 및 상기 클라이언트 장치의 운영 체제 관련 정보를 포함할 수 있다.The secure file request may include unique identification information of the client device, the encryption related key value, and operating system related information of the client device.

상기 관리 서버는, 상기 클라이언트 장치의 운영 체제 관련 정보에 대응하는 동적 보안 관련 파일을 추출하고, 상기 추출한 동적 보안 관련 파일을 상기 암호화 관련 키 값을 이용하여 암호화 하며, 상기 암호화 된 동적 보안 관련 파일 및 상기 암호화 관련 키 값을 상기 클라이언트 장치로 전송할 수 있다.The management server extracts a dynamic security related file corresponding to the operating system related information of the client device and encrypts the extracted dynamic security related file using the encryption related key value, And transmit the encryption-related key value to the client device.

상기 보안 파일 요청은, 상기 클라이언트 장치의 고유 식별 정보, 상기 클라이언트 장치의 고유 식별 정보를 기반으로 생성되는 암호화 관련 키 값, 및 상기 클라이언트 장치의 운영 체제 관련 정보 중 적어도 하나를 포함할 수 있다.The secure file request may include at least one of the unique identification information of the client device, the encryption related key value generated based on the unique identification information of the client device, and the operating system related information of the client device.

상기 어플리케이션 보안 시스템은, 상기 관리 서버로부터 각 클라이언트 장치의 고유 식별 정보 및 암호화 관련 키 값을 수신하고, 각 클라리언트 장치의 고유 식별 정보를 해당 암호화 관련 키 값과 각각 매칭하여 저장하는 블록체인을 더 포함할 수 있다.The application security system further includes a block chain for receiving the unique identification information and the encryption-related key value of each client device from the management server, and for matching unique identification information of each client device with the corresponding encryption-related key value can do.

상기 관리 서버는, 상기 보안 파일 요청에 포함된 상기 클라이언트 장치의 고유 식별 정보를 상기 블록체인으로 전송하고, 상기 블록체인은, 상기 클라이언트 장치의 고유 식별 정보와 매칭된 암호화 관련 키 값을 추출하여 상기 관리 서버로 전송하며, 상기 관리 서버는, 상기 클라이언트 장치의 운영 체제 관련 정보에 대응하는 동적 보안 관련 파일을 추출하고, 상기 추출한 동적 보안 관련 파일을 상기 블록체인으로부터 수신한 암호화 관련 키 값을 이용하여 암호화 하며, 상기 암호화 된 동적 보안 관련 파일 및 상기 암호화 관련 키 값을 상기 클라이언트 장치로 전송할 수 있다.Wherein the management server transmits unique identification information of the client device included in the security file request to the block chain, and the block chain extracts an encryption-related key value matched with the unique identification information of the client device, Wherein the management server extracts a dynamic security-related file corresponding to the operating system-related information of the client device, and transmits the extracted dynamic security-related file to the management server using an encryption-related key value received from the block chain And may transmit the encrypted dynamic security association file and the encryption related key value to the client device.

상기 클라이언트 장치는, 상기 암호화 관련 키 값을 기반으로 상기 암호화 된 동적 보안 관련 파일을 복호화 하며, 상기 동적 보안 관련 파일은, 상기 클라이언트 장치의 메모리의 잔여 용량에 따라 상기 동적 보안 관련 파일 중 일부를 상기 메모리에 로딩시키기 위한 명령어를 포함할 수 있다.Wherein the client device decrypts the encrypted dynamic security-related file based on the encryption-related key value, wherein the dynamic security-related file includes a part of the dynamic security-related files in accordance with the remaining capacity of the memory of the client device And may include instructions for loading into memory.

상기 정적 보안 관련 파일은, 상기 보안 미비 어플리케이션의 실행 시 상기 검증 요청을 상기 검증 서버로 전송하기 위한 명령어; 및 상기 검증 결과 관련 정보의 확인 결과, 상기 보안 미비 어플리케이션에 대한 검증이 실패한 경우, 상기 보안 미비 어플리케이션을 종료시키는 명령어를 포함할 수 있다.Wherein the static security related file includes: a command for transmitting the verification request to the verification server when the security-critical application is executed; And terminating the security-critical application when verification of the security-less application fails as a result of the verification-result-related information check.

개시되는 일 실시예에 따른 어플리케이션 보안 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 정적 보안 관련 파일 및 동적 보안 관련 파일 중 상기 정적 보안 관련 파일이 탑재된 보안 미비 어플리케이션을 다운로드 하는 단계; 상기 보안 미비 어플리케이션에 대한 검증 요청을 전송하는 단계; 상기 검증 요청에 대응하는 검증 결과 관련 정보를 수신하고, 상기 검증 결과 관련 정보에 따라 상기 동적 보안 관련 파일에 대한 보안 파일 요청을 전송하는 단계; 상기 보안 파일 요청에 대응하여 암호화된 동적 보안 관련 파일 및 암호화 관련 키 값을 수신하는 단계; 및 상기 암호화된 보안 관련 파일을 상기 암호화 관련 키 값을 이용하여 복호화 하는 단계를 포함한다.A method for securing an application according to an embodiment disclosed is a method performed in a computing device having one or more processors and a memory for storing one or more programs executed by the one or more processors, Downloading a security-critical application on which the static security-related file is installed, among the dynamic security-related files; Transmitting a verification request for the unsecured application; Receiving a verification result related information corresponding to the verification request, and transmitting a security file request for the dynamic security related file according to the verification result related information; Receiving an encrypted dynamic security-related file and an encryption-related key value corresponding to the secure file request; And decrypting the encrypted security-related file using the encryption-related key value.

상기 검증 요청은, 상기 보안 미비 어플리케이션의 식별 정보 및 상기 클라이언트 장치의 고유 식별 정보를 포함할 수 있다.The verification request may include identification information of the unsecured application and unique identification information of the client apparatus.

상기 검증 결과 관련 정보는, 상기 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보와 기 저장된 보안 미비 어플리케이션의 식별 정보를 비교하여 검증을 수행한 검증 결과 및 상기 클라이언트 장치의 고유 식별 정보를 기반으로 생성한 암호화 관련 키 값을 포함할 수 있다.The verification result related information is generated based on the verification result of the verification by comparing the identification information of the unsecured application included in the verification request with the identification information of the previously stored unsecured application and based on the unique identification information of the client apparatus Encryption-related key values may be included.

상기 보안 파일 요청은, 상기 클라이언트 장치의 고유 식별 정보, 상기 암호화 관련 키 값, 및 상기 클라이언트 장치의 운영 체제 관련 정보를 포함할 수 있다.The secure file request may include unique identification information of the client device, the encryption related key value, and operating system related information of the client device.

상기 동적 보안 관련 파일은, 상기 클라이언트 장치의 메모리의 잔여 용량을 확인하기 위한 명령어; 상기 메모리의 잔여 용량과 상기 동적 보안 관련 파일의 용량을 비교하기 위한 명령어; 상기 비교 결과에 따라 상기 동적 보안 관련 파일 중 일부를 상기 메모리에 로딩시키기 위한 명령어를 포함할 수 있다.The dynamic security related file includes: a command for confirming a remaining capacity of the memory of the client apparatus; Comparing the remaining capacity of the memory with the capacity of the dynamic security association file; And loading some of the dynamic security related files into the memory according to the comparison result.

상기 정적 보안 관련 파일은, 상기 보안 미비 어플리케이션의 실행 시 상기 검증 요청을 전송하기 위한 명령어; 및 상기 검증 결과 관련 정보의 확인 결과, 상기 보안 미비 어플리케이션에 대한 검증이 실패한 경우, 상기 보안 미비 어플리케이션을 종료시키는 명령어를 포함할 수 있다.Wherein the static security-related file includes: a command for transmitting the verification request when the security-critical application is executed; And terminating the security-critical application when verification of the security-less application fails as a result of the verification-result-related information check.

개시되는 다른 실시예에 따른 어플리케이션 보안 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 클라이언트 장치로부터 정적 보안 관련 파일 및 동적 보안 관련 파일 중 상기 정적 보안 관련 파일이 탑재된 보안 미비 어플리케이션에 대한 검증 요청을 수신하는 단계; 상기 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보와 기 저장된 보안 미비 어플리케이션의 식별 정보를 비교하여 검증을 수행하는 단계; 및 상기 검증 요청에 대응하는 검증 결과 관련 정보를 생성하여 상기 클라이언트 장치로 전송하는 단계를 포함하고, 상기 검증 요청은, 상기 보안 미비 어플리케이션의 식별 정보 및 상기 클라이언트 장치의 고유 식별 정보를 포함하며, 상기 검증 결과 관련 정보를 생성하는 단계는, 상기 검증의 결과에 따라 상기 클라이언트 장치의 고유 식별 정보를 기반으로 암호화 관련 키 값을 생성하는 단계를 포함할 수 있다.An application security method according to another disclosed embodiment is a method performed in a computing device having one or more processors and a memory storing one or more programs executed by the one or more processors, Receiving a verification request for a security-critical application on which the static security-related file is installed among the related file and the dynamic security-related file; Performing verification by comparing identification information of an unsecured application included in the verification request with identification information of a previously stored unsecured application; And generating verification-related information corresponding to the verification request and transmitting the verification-related information to the client device, wherein the verification request includes identification information of the unsecured application and unique identification information of the client device, The generating of the verification result related information may include generating an encryption related key value based on the unique identification information of the client apparatus according to a result of the verification.

상기 암호화 관련 키 값을 생성하는 단계는, 상기 검증의 결과가 검증 성공인 경우, 상기 클라이언트 장치의 고유 식별 정보를 해쉬화 하여 생성할 수 있다.The generating of the encryption-related key value may be performed by hashing the unique identification information of the client apparatus when the result of the verification is a verification success.

상기 암호화 관련 키 값을 생성하는 단계는, 각 클라이언트 장치의 검증 요청에 따른 로그 정보를 기반으로 이상 징후 여부를 판단하는 단계; 및 상기 이상 징후 발생 시, 상기 클라이언트 장치의 고유 식별 정보 및 기 설정된 더미 관리 정보가 조합된 관리 고유 정보를 기반으로 암호화 관련 키 값을 생성하는 단계를 포함할 수 있다.The step of generating the encryption-related key value may include: determining whether an abnormal symptom is present based on log information according to a verification request of each client apparatus; And generating an encryption-related key value based on the management unique information in which the unique identification information of the client apparatus and predetermined dummy management information are combined when the anomaly occurs.

개시되는 또 다른 실시예에 따른 어플리케이션 보안 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 정적 보안 관련 파일 및 동적 보안 관련 파일 중 상기 정적 보안 관련 파일이 탑재된 보안 미비 어플리케이션을 다운로드 받은 클라이언트 장치로부터 상기 동적 보안 관련 파일에 대한 보안 파일 요청을 수신하는 단계; 상기 보안 파일 요청에 포함된 상기 클라이언트 장치의 고유 식별 정보를 추출하는 단계; 상기 추출한 상기 클라이언트 장치의 고유 식별 정보를 블록체인으로 전송하는 단계; 상기 블록체인으로부터 상기 클라이언트 장치의 고유 식별 정보와 매칭되는 암호화 관련 키 값을 수신하는 단계; 및 상기 동적 보안 관련 파일을 상기 수신한 암호화 관련 키 값으로 암호화 하고, 암호화된 동적 보안 관련 파일 및 상기 암호화 관련 키 값을 상기 클라이언트 장치로 전송하는 단계를 포함한다.A method of securing an application according to another disclosed embodiment is a method performed in a computing device having one or more processors and a memory storing one or more programs executed by the one or more processors, And receiving a security file request for the dynamic security-related file from a client device that has downloaded the security-related application on which the static security-related file is installed, from among the dynamic security-related files; Extracting unique identification information of the client device included in the secure file request; Transmitting the unique identification information of the extracted client device to a block chain; Receiving an encryption-related key value from the block chain that matches the unique identification information of the client device; And encrypting the dynamic security-related file with the received encryption-related key value, and transmitting the encrypted dynamic security-related file and the encryption-related key value to the client device.

상기 보안 파일 요청은, 상기 클라이언트 장치의 고유 식별 정보 및 상기 클라이언트 장치의 운영 체제 관련 정보를 포함하고, 상기 암호화된 동적 보안 관련 파일을 상기 클라이언트 장치로 전송하는 단계는, 상기 클라이언트 장치의 운영 체제 관련 정보와 대응하는 동적 보안 관련 파일을 추출하는 단계; 및 상기 추출한 동적 보안 관련 파일을 상기 수신한 암호화 관련 키 값으로 암호화하는 단계를 포함할 수 있다.Wherein the secure file request includes unique identification information of the client device and operating system related information of the client device and wherein the step of transmitting the encrypted dynamic security related file to the client device comprises: Extracting a dynamic security-related file corresponding to the information; And encrypting the extracted dynamic security-related file with the received encryption-related key value.

본 발명의 실시예에 의하면, 클라이언트 장치로 보안 미비 어플리케이션을 배포하고, 보안 미비 어플리케이션의 실행 시마다 암호화된 보안 관련 파일을 전송해줌으로써, 클라이언트 장치 내에 탑재된 어플리케이션의 보안 노출을 최소화 할 수 있고, 해당 어플리케이션의 보안 관련 파일이 악의적인 제3자에 의해 탈취되거나 도용되는 것을 방지할 수 있게 된다.According to the embodiment of the present invention, the security exposure of the application installed in the client device can be minimized by distributing the security-less application to the client device and transmitting the encrypted security-related file each time the security-less application is executed, It is possible to prevent a security-related file of an application from being hijacked or stolen by a malicious third party.

또한, 검증 서버에서 보안 미비 어플리케이션의 검증을 수행하고, 그에 따라 암호화 관련 키 값을 클라이언트 장치로 전송해줌으로써, 해당 어플리케이션의 위조 또는 변조 여부에 대한 무결성 여부를 확인할 수 있게 된다. 또한, 암호화 관련 키 값을 클라이언트 장치의 고유 식별 정보를 기반으로 생성함으로써, 각 클라이언트 장치 마다 서로 다르게 암호화 및 복호화가 이루어지도록 할 수 있으며, 그로 인해 어플리케이션 사용에 따른 보안성을 높일 수 있게 된다.Further, the verification server verifies the security-less application and transmits the encryption-related key value to the client device, thereby confirming integrity of whether the application is falsified or tampered. In addition, by generating the encryption-related key value based on the unique identification information of the client device, encryption and decryption can be performed differently for each client device, thereby enhancing the security of application use.

또한, 클라이언트 장치로 보안 미비 어플리케이션을 배포함으로써, 클라이언트 장치로 배포하는 어플리케이션의 크기를 최소화 할 수 있고, 보안 관련 파일이 변경 또는 업데이트되는 경우에도 어플리케이션을 다시 다운로드 받을 필요가 없으며, 어플리케이션 실행 시 업데이트된 보안 관련 파일을 자동으로 수신하여 실행할 수 있게 된다.In addition, by distributing the security-critical application to the client device, the size of the application distributed to the client device can be minimized. Even when the security-related file is changed or updated, there is no need to download the application again. Security-related files can be automatically received and executed.

도 1은 본 발명의 일 실시예에 따른 어플리케이션 보안 시스템의 구성을 나타낸 도면
도 2는 본 발명의 일 실시예에 따른 어플리케이션 보안 방법에서 위변조 여부를 검증하는 과정을 나타낸 흐름도
도 3은 본 발명의 일 실시예에 따른 어플리케이션 보안 방법에서 동적 보안 관련 파일을 수신하는 과정을 나타낸 흐름도
도 4는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
1 is a block diagram of a configuration of an application security system according to an embodiment of the present invention;
FIG. 2 is a flowchart illustrating a process of verifying whether a user forged or falsified in an application security method according to an embodiment of the present invention.
3 is a flowchart illustrating a process of receiving a dynamic security-related file in an application security method according to an embodiment of the present invention.
4 is a block diagram illustrating and illustrating a computing environment including a computing device suitable for use in the exemplary embodiments.

이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. The following detailed description is provided to provide a comprehensive understanding of the methods, apparatus, and / or systems described herein. However, this is merely an example and the present invention is not limited thereto.

본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intention or custom of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification. The terms used in the detailed description are intended only to describe embodiments of the invention and should in no way be limiting. Unless specifically stated otherwise, the singular forms of the expressions include plural forms of meanings. In this description, the expressions "comprising" or "comprising" are intended to indicate certain features, numbers, steps, operations, elements, parts or combinations thereof, Should not be construed to preclude the presence or possibility of other features, numbers, steps, operations, elements, portions or combinations thereof.

이하의 설명에 있어서, 신호 또는 정보의 "전송", "통신", "송신", "수신" 기타 이와 유사한 의미의 용어는 일 구성요소에서 다른 구성요소로 신호 또는 정보가 직접 전달되는 것뿐만이 아니라 다른 구성요소를 거쳐 전달되는 것도 포함한다. 특히 신호 또는 정보를 일 구성요소로 "전송" 또는 "송신"한다는 것은 그 신호 또는 정보의 최종 목적지를 지시하는 것이고 직접적인 목적지를 의미하는 것이 아니다. 이는 신호 또는 정보의 "수신"에 있어서도 동일하다. 또한 본 명세서에 있어서, 2 이상의 데이터 또는 정보가 "관련"된다는 것은 하나의 데이터(또는 정보)를 획득하면, 그에 기초하여 다른 데이터(또는 정보)의 적어도 일부를 획득할 수 있음을 의미한다. In the following description, terms such as " transmission ", "transmission "," transmission ", "reception ", and the like, of a signal or information refer not only to the direct transmission of signals or information from one component to another But also through other components. In particular, "transmitting" or "transmitting" a signal or information to an element is indicative of the final destination of the signal or information and not a direct destination. This is the same for "reception" of a signal or information. Also, in this specification, the fact that two or more pieces of data or information are "related" means that when one piece of data (or information) is acquired, at least a part of the other data (or information) can be obtained based thereon.

도 1은 본 발명의 일 실시예에 따른 어플리케이션 보안 시스템의 구성을 나타낸 도면이다. 1 is a block diagram of an application security system according to an embodiment of the present invention.

도 1을 참조하면, 어플리케이션 보안 시스템(100)은 클라이언트 장치(102), 검증 서버(104), 관리 서버(106), 및 블록체인(Blockchain)(108)을 포함할 수 있다. 여기서, 클라이언트 장치(102)는 통신 네트워크를 통해 검증 서버(104) 및 관리 서버(106)와 각각 통신 가능하게 연결된다. 또한, 관리 서버(106)는 통신 네트워크를 통해 블록체인(108)과 통신 가능하게 연결된다. 몇몇 실시예들에서, 통신 네트워크는 인터넷, 하나 이상의 로컬 영역 네트워크(local area networks), 광역 네트워크(wire area networks), 셀룰러 네트워크, 모바일 네트워크, 그 밖에 다른 종류의 네트워크들, 또는 이러한 네트워크들의 조합을 포함할 수 있다.Referring to FIG. 1, an application security system 100 may include a client device 102, a verification server 104, a management server 106, and a block chain 108. Here, the client device 102 is communicably connected to the verification server 104 and the management server 106 via a communication network. In addition, the management server 106 is communicatively coupled to the block chain 108 via a communications network. In some embodiments, the communication network may be an Internet, one or more local area networks, a wire area networks, a cellular network, a mobile network, other types of networks, .

클라이언트 장치(102)는 사용자가 사용하는 통신 장치로서, 클라이언트 장치(102)의 예들은 휴대폰, 스마트폰, 태블릿, 웨어러블 기기, 랩톱 컴퓨터 등 서버 컴퓨팅 장치(104, 106)에 접속 가능한 다양한 유형의 유무선 통신 장치를 포함한다.The client device 102 is a communications device used by a user and examples of the client device 102 include various types of wired and wireless capable of being connected to a server computing device 104, 106, such as a cell phone, smart phone, tablet, wearable device, And a communication device.

클라이언트 장치(102)는 사용자에 의해 소정 어플리케이션을 서버 컴퓨팅 장치(예를 들어, 검증 서버(104) 또는 관리 서버(106) 또는 도 1에 도시되지 않은 다른 서버 컴퓨팅 장치 등)로부터 다운로드 받을 수 있다. 다운로드 받은 어플리케이션은 클라이언트 장치(102)의 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 어플리케이션은 클라이언트 장치(102)의 프로세서에 의해 실행 가능한 명령어의 소정의 집합을 포함한다. 상기 어플리케이션의 명령어들은 클라이언트 장치(102)의 프로세서에 의해 실행되는 경우, 프로세서로 하여금 예시적인 실시예에 따른 동작을 수행하게 할 수 있다. 상기 컴퓨터 판독 가능 저장 매체에는 클라이언트 장치(102) 상에서 상기 어플리케이션과 같은 명령어 집합을 실행하기 위한 운영 체제의 컴포넌트들을 포함한다. 예를 들어, 이러한 운영체제(Operation System)는 애플(Apple) 사의 iOS 또는 구글(Google) 사의 Android일 수 있다.The client device 102 may be downloaded by a user from a server computing device (e.g., verification server 104 or management server 106 or other server computing device not shown in FIG. 1). The downloaded application may be stored in a computer readable storage medium of the client device 102. The application includes a predetermined set of instructions executable by the processor of the client device 102. The instructions of the application, when executed by the processor of the client device 102, may cause the processor to perform operations according to exemplary embodiments. The computer-readable storage medium includes components of the operating system for executing a set of instructions, such as the application, on the client device 102. For example, such an operating system could be Apple's iOS or Google's Android.

클라이언트 장치(102)가 다운로드 받은 어플리케이션은 온라인 상에서 금융 거래(계좌 이체, 결제 등)와 같이 보안이 필요한 작업을 수행하기 위한 어플리케이션일 수 있다. 예를 들어, 다운로드 받은 어플리케이션은 인터넷 뱅킹 등을 위한 어플리케이션일 수 있다. 그러나, 다운로드 받은 어플리케이션에는 보안 관련 파일이 일부 생략(즉, 일부의 보안 관련 파일만 포함)될 수 있다. 즉, 다운로드 받은 어플리케이션은 온라인 상에서 보안이 필요한 작업을 수행하기 위한 것이나, 보안 관련 파일의 일부가 생략되어 보안 관련 작업을 정상적으로 또는 온전히 수행할 수 없는 상태의 것일 수 있다. 이하, 상기 다운로드 받은 어플리케이션은 보안 미비 어플리케이션이라 지칭될 수 있다. The application downloaded by the client device 102 may be an application for performing a job requiring security such as financial transaction (account transfer, payment, etc.) on-line. For example, the downloaded application may be an application for Internet banking or the like. However, some of the security related files may be omitted (that is, only some security related files are included) in the downloaded application. That is, the downloaded application may be for carrying out a task requiring security on-line, but may be a state in which a part of the security-related file is omitted and the security-related work can not be performed normally or completely. Hereinafter, the downloaded application may be referred to as an unsecured application.

예시적인 실시예에서, 보안 관련 파일은 정적 보안 관련 파일 및 동적 보안 관련 파일을 포함할 수 있다. 보안 미비 어플리케이션은 보안 관련 파일 중 정적 보안 관련 파일만 탑재되고 동적 보안 관련 파일은 탑재되지 않은 것일 수 있다. 여기서, 정적 보안 관련 파일은 보안 미비 어플리케이션의 기본적인 보안을 위한 파일일 수 있다. 정적 보안 관련 파일은 예를 들어, 사용자 인증, 접근 제어, 안티 디버깅(Anti Debugging), 및 소스 난독화 기능 등을 수행하기 위한 것일 수 있다. 사용자 인증은 보안 미비 어플리케이션의 실행 시 비밀 번호, 생체 인증, 공인 인증, 핀 번호 등을 통한 사용자 인증을 수행하는 것을 의미할 수 있다. 접근 제어는 후술하는 검증 요청에 따른 결과가 검증 실패인 경우 보안 미비 어플리케이션을 종료시키는 것을 의미할 수 있다. 동적 보안 관련 파일은 보안 미비 어플리케이션의 추가적인 보안을 위한 파일일 수 있다. 동적 보안 관련 파일은 예를 들어, 키보드 보안, 루팅 탐지, 및 백신 프로그램 등을 포함할 수 있다. 본 발명의 실시예에서, 정적 보안 관련 파일은 보안 미비 어플리케이션에 탑재된 보안 관련 파일을 의미하고, 동적 보안 관련 파일은 보안 미비 어플리케이션에 탑재되지 않고, 외부에서 별도로 수신하여야 하는 보안 관련 파일을 의미할 수 있다. In an exemplary embodiment, the security-related files may include static security-related files and dynamic security-related files. An unsecured application may only include static security related files and not dynamic security related files. Here, the static security-related file may be a file for basic security of the security-less application. The static security related files may be, for example, for performing user authentication, access control, anti-debugging, and source obfuscation functions. User authentication may mean performing user authentication through password, biometric authentication, authorized authentication, pin number, etc. when executing a security-less application. The access control may mean to terminate the unsecured application if the result of the verification request described below is a verification failure. Dynamic security-related files may be files for additional security of non-security applications. Dynamic security related files may include, for example, keyboard security, routing detection, and anti-virus programs. In the embodiment of the present invention, a static security-related file means a security-related file installed in a security-less application, a dynamic security-related file means a security-related file that is not loaded in a security- .

이와 같이, 클라이언트 장치(102)는 보안 관련 파일이 일부 생략(즉, 동적 보안 관련 파일이 생략)된 어플리케이션(보안 미비 어플리케이션)을 다운로드 받기 때문에, 보안 미비 어플리케이션이 실행되는 경우 동적 보안 관련 파일을 외부로부터 수신하여야 한다. Thus, since the client device 102 downloads an application (security-critical application) in which a security-related file is partially omitted (that is, a dynamic security-related file is omitted), the dynamic- Lt; / RTI >

구체적으로, 클라이언트 장치(102)는 사용자에 의해 보안 미비 어플리케이션이 실행되는 경우, 보안 미비 어플리케이션에 대한 검증 요청을 검증 서버(104)로 전송할 수 있다. 검증 요청에는 보안 미비 어플리케이션의 식별 정보(예를 들어, 보안 미비 어플리케이션의 아이디 및 보안 미비 어플리케이션의 해쉬값 등)가 포함될 수 있다. 또한, 검증 요청에는 해당 클라이언트 장치(102)에 대해 고유한 암호화 관련 키 값을 생성하기 위한 관리 고유 정보가 더 포함될 수 있다. 예시적인 실시예에서, 관리 고유 정보는 해당 클라이언트 장치(102)의 고유 식별 정보일 수 있다. Specifically, when the non-secured application is executed by the user, the client device 102 may transmit a verification request for the unsecured application to the verification server 104. [ The verification request may include identification information of the unsecured application (for example, the ID of the unsecured application and the hash value of the unsecured application). In addition, the verification request may further include management specific information for generating a cryptographic key value unique to the client device (102). In an exemplary embodiment, the management specific information may be unique identification information of the client device 102. [

여기서, 클라이언트 장치(102)의 고유 식별 정보는 클라이언트 장치(102)의 운영 체제에 따라 달라질 수 있다. 예를 들어, 클라이언트 장치(102)의 운영 체제가 Android인 경우, 클라이언트 장치(102)의 고유 식별 정보로는 UUID(Universally Unique Identifier), IMEI(International Mobile Equipment Identifier, SIM 카드의 시리얼 번호, 클라이언트 장치(102)의 기기 고유값 등이 될 수 있다. 다른 예로, 클라이언트 장치(102)의 운영 체제가 iOS인 경우, 클라이언트 장치(102)의 고유 식별 정보는 UUID(Universally Unique Identifier)가 될 수 있다. 클라이언트 장치(102)의 고유 식별 정보는 최초 전송하는 검증 요청에 포함될 수 있다. Here, the unique identification information of the client device 102 may vary depending on the operating system of the client device 102. [ For example, when the operating system of the client device 102 is an Android, the unique identification information of the client device 102 includes a Universally Unique Identifier (UUID), an International Mobile Equipment Identifier (IMEI) The device unique value of the client device 102. In another example, when the operating system of the client device 102 is iOS, the unique identification information of the client device 102 may be a Universally Unique Identifier (UUID). The unique identification information of the client device 102 may be included in the verification request that is initially transmitted.

클라이언트 장치(102)는 검증 서버(104)로부터 상기 검증 요청에 대한 검증 결과 관련 정보를 수신할 수 있다. 검증 결과 관련 정보에는 상기 검증 요청에 대한 검증 결과, 검증 시간, 및 암호화 관련 키 값이 포함될 수 있다. 여기서, 암호화 관련 키 값은 클라이언트 장치(102)의 고유 식별 정보를 해쉬화 한 값(즉, 해쉬값)일 수 있다. 암호화 관련 키 값은 검증 결과가 검증 성공인 경우에만 포함될 수 있다.The client device 102 may receive verification result related information for the verification request from the verification server 104. [ The verification result related information may include a verification result of the verification request, a verification time, and an encryption-related key value. Here, the encryption-related key value may be a value obtained by hashing the unique identification information of the client device 102 (i.e., a hash value). The encryption-related key value may be included only if the verification result is a verification success.

클라이언트 장치(102)는 검증 결과 관련 정보를 확인하여 검증 결과가 검증 실패인 경우, 보안 미비 어플리케이션을 종료시킬 수 있다. 이때, 클라이언트 장치(102)는 보안 미비 어플리케이션이 종료됨을 사용자에게 알릴 수 있다. 클라이언트 장치(102)는 보안 미비 어플리케이션에 포함된 정적 보안 관련 파일에 기반하여 이러한 동작을 수행할 수 있다. 즉, 정적 보안 관련 파일에는 검증 실패인 경우 보안 미비 어플리케이션을 종료하도록 하는 명령어가 포함될 수 있다.The client device 102 can confirm the verification result related information and terminate the security missing application if the verification result is a verification failure. At this time, the client device 102 may notify the user that the security-critical application is terminated. The client device 102 may perform this operation based on static security related files included in the non-secure application. That is, the static security-related file may include an instruction to terminate the security-critical application if the verification fails.

이와 같이, 보안 미비 어플리케이션에 대해 검증을 수행하고, 검증이 실패하는 경우, 보안 미비 어플리케이션을 종료시킴으로써, 어플리케이션의 안전성(즉, 보안성)을 1차 보장할 수 있게 된다. 즉, 다운로드 받은 어플리케이션의 위조 또는 변조 여부를 검증한 후 실행하게 됨으로써, 다운로드 받은 어플리케이션의 무결성을 확인할 수 있게 된다.In this manner, verification of the insecure application is performed, and when the verification fails, the insecure application (i.e., security) is firstly guaranteed by terminating the insecure application. That is, it is possible to verify the integrity of the downloaded application by verifying whether the downloaded application is falsified or altered and then executing it.

한편, 클라이언트 장치(102)는 수신한 검증 결과가 검증 성공인 경우, 보안 파일 요청을 관리 서버(106)로 전송할 수 있다. 여기서, 보안 파일 요청에는 클라이언트 장치(102)의 고유 식별 정보 및 암호화 관련 키 값이 포함될 수 있다. 즉, 클라이언트 장치(102)는 관리 서버(106)로 보안 파일 요청을 전송할 때, 검증 서버(104)로부터 수신한 암호화 관련 키 값을 보안 파일 요청에 포함시킬 수 있다. 클라이언트 장치(102)는 암호화 관련 키 값을 관리 서버(106)로 전송한 후에 이를 삭제할 수 있다. 여기서, 암호화 관련 키 값은 보안 파일 요청을 최초 전송할 때 포함될 수 있다. 또한, 보안 파일 요청에는 클라이언트 장치(102)의 운영 체제 관련 정보가 추가로 포함될 수 있다. 여기서, 운영 체제 관련 정보는 운영 체제 종류 정보 및 운영 체제 버전 정보가 포함될 수 있다. On the other hand, if the received verification result is a verification success, the client device 102 can transmit a security file request to the management server 106. Here, the secure file request may include the unique identification information of the client device 102 and the encryption-related key value. That is, when the client device 102 transmits the security file request to the management server 106, the client device 102 may include the encryption-related key value received from the verification server 104 in the security file request. The client device 102 may delete the encryption related key value after sending it to the management server 106. [ Here, the encryption-related key value may be included when the security file request is first transmitted. In addition, the security file request may further include information related to the operating system of the client device 102. [ Here, the operating system related information may include operating system type information and operating system version information.

클라이언트 장치(102)는 관리 서버(106)로부터 암호화된 동적 보안 관련 파일 및 암호화 관련 키 값을 수신할 수 있다. 클라이언트 장치(102)는 암호화 관련 키 값으로 암호화된 동적 보안 관련 파일을 복호화 한 후 동적 보안 관련 파일을 컴퓨터 판독 가능 저장 매체에 로딩하고, 동적 보안 관련 파일을 실행할 수 있다. 클라이언트 장치(102)는 동적 보안 관련 파일을 실행한 후 동적 보안 관련 파일을 삭제할 수 있다. 여기서, 동적 보안 관련 파일은 컴퓨터 판독 가능 저장 매체(즉, 메모리)에 로딩된 상태에서 삭제되므로, 동적 보안 관련 파일이 디컴파일(decompile)되는 것을 원천적으로 방지할 수 있게 된다. 이 경우, 클라이언트 장치(102)의 메모리 자체를 해킹하지 않는 이상, 동적 보안 관련 파일이 제3자에게 유출되지 못하게 된다.The client device 102 may receive encrypted dynamic security related files and encryption related key values from the management server 106. The client device 102 may decrypt the dynamic security-related file encrypted with the encryption-related key value, then load the dynamic security-related file into the computer-readable storage medium, and execute the dynamic security-related file. The client device 102 may delete the dynamic security related file after executing the dynamic security related file. Here, the dynamic security-related file is deleted while being loaded in the computer-readable storage medium (i.e., memory), so that the dynamic security-related file can be prevented from being decompiled. In this case, unless the memory of the client device 102 itself is hacked, the dynamic security-related file can not be leaked to a third party.

한편, 동적 보안 관련 파일은 클라이언트 장치(102)의 메모리의 잔여 용량을 확인하고, 메모리의 잔여 용량이 동적 보안 관련 파일 전부를 로딩할 수 없는 경우, 동적 보안 관련 파일들 중 일부만을 메모리에 로딩하기 위한 명령어를 포함할 수 있다. 동적 보안 관련 파일은 메모리의 잔여 용량에 기반하여 동적 보안 관련 파일들 중 기 설정된 우선 순위에 따라 일부의 동적 보안 관련 파일을 메모리에 로딩할 수 있다. 예를 들어, 동적 보안 관련 파일이 백신 프로그램, 가상 키보드 프로그램 등을 포함하는 경우, 키를 입력하는 동안만 사용하는 가상 키보드 프로그램 보다 항상 동작되어야 하는 백신 프로그램을 우선하여 메모리에 로딩시킬 수 있다.On the other hand, the dynamic security-related file checks the remaining capacity of the memory of the client device 102 and, if the remaining capacity of the memory can not load all dynamic security-related files, loading only a part of the dynamic security- Lt; / RTI > Dynamic security related files can load some dynamic security related files into memory according to a predetermined priority among dynamic security related files based on the remaining capacity of memory. For example, if a dynamic security-related file includes a vaccine program, a virtual keyboard program, etc., a vaccine program that should always be operated rather than a virtual keyboard program used only during key input can be loaded into the memory first.

클라이언트 장치(102)는 보안 미비 어플리케이션의 최초 실행 시, 검증 서버(104)를 통해 해당 어플리케이션을 검증하면서 암호화 관련 키 값을 수신하며, 관리 서버(106)로 보안 파일 요청을 전송하여 클라이언트 장치(102)의 고유 식별 정보 및 암호화 관련 키 값을 등록할 수 있다. 또한, 클라이언트 장치(102)는 관리 서버(106)로부터 암호화된 동적 보안 관련 파일을 및 복호화 키를 수신하고, 복호화 키를 이용하여 암호화된 동적 보안 관련 파일을 복호화 시킬 수 있다. 이후에, 클라이언트 장치(102)는 온라인 상에서 금융 거래 또는 결제를 수행하기 위해 보안 미비 어플리케이션을 실행할 때 마다, 검증 서버(104)를 통해 검증을 수행하고, 관리 서버(106)로 동적 보안 파일 요청을 전송할 수 있다. 그러면, 관리 서버(106)는 보안 파일 요청에 포함된 클라이언트 장치(102)의 고유 식별 정보와 매칭된 암호화 관련 키 값을 추출하여 동적 보안 관련 파일을 암호화 하고, 암호화된 동적 보안 관련 파일 및 암호화 관련 키를 클라이언트 장치(102)로 전송하게 된다.The client device 102 receives the encryption-related key value while verifying the application through the verification server 104 at the first execution of the unsecured application, transmits the security file request to the management server 106, ) And the encryption-related key value. In addition, the client device 102 may receive the encrypted dynamic security-related file and the decryption key from the management server 106, and may decrypt the encrypted dynamic security-related file using the decryption key. Thereafter, each time the client device 102 executes an unsecured application to perform a financial transaction or settlement online, it performs verification via the verification server 104 and sends a dynamic security file request to the management server 106 Lt; / RTI > Then, the management server 106 extracts the encryption-related key value matched with the unique identification information of the client device 102 included in the security file request, encrypts the dynamic security-related file, Key to the client device 102.

검증 서버(104)는 각 클라이언트 장치(102)로 배포된 보안 미비 어플리케이션을 검증하는 역할을 할 수 있다. 구체적으로, 검증 서버(104)는 보안 미비 어플리케이션이 위조 또는 변조되었는지 여부를 확인할 수 있다. 검증 서버(104)는 소정 버전(Version)의 보안 미비 어플리케이션이 배포되기 전, 보안 미비 어플리케이션의 식별 정보(예를 들어, 보안 미비 어플리케이션의 아이디 및 보안 미비 어플리케이션의 해쉬값 등)를 저장할 수 있다. The verification server 104 may be responsible for verifying unsecured applications distributed to each client device 102. Specifically, the verification server 104 can confirm whether or not the unsecured application has been falsified or altered. The verification server 104 may store identification information of an unsecured application (for example, the ID of the unsecured application and the hash value of the unsecured application, etc.) before the secured unsaved application of the predetermined version is distributed.

검증 서버(104)는 보안 미비 어플리케이션을 실행한 각 클라이언트 장치(102)로부터 검증 요청을 수신할 수 있다. 검증 서버(104)는 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보가 기 저장된 보안 미비 어플리케이션의 식별 정보와 일치하는지 여부를 확인하여 검증을 수행할 수 있다. The verification server 104 may receive a verification request from each client device 102 that has executed the unsecured applications. The verification server 104 can verify whether the identification information of the unsecured application included in the verification request matches the identification information of the previously stored unsecured application.

구체적으로, 검증 서버(104)는 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보(예를 들어, 보안 미비 어플리케이션의 아이디 및 보안 미비 어플리케이션의 해쉬값)가 기 저장된 보안 미비 어플리케이션의 식별 정보와 일치하는 경우, 검증 성공으로 판단(즉, 해당 보안 미비 어플리케이션이 위조 또는 변조되지 않은 것으로 판단)할 수 있다. 검증 서버(104)는 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보가 기 저장된 보안 미비 어플리케이션의 식별 정보와 일치하지 않는 경우, 검증 실패로 판단(즉, 해당 보안 미비 어플리케이션이 위조 또는 변조된 것으로 판단)할 수 있다. Specifically, the verification server 104 determines whether the identification information of the unsecured application included in the verification request (for example, the ID of the unsecured application and the hash value of the unsecured application) matches the identification information of the unsecured application , It can be judged that the verification is successful (that is, it is judged that the unsecured application is not falsified or tampered). If the identification information of the non-secured application included in the verification request does not match with the identification information of the previously stored unsecured application, the verification server 104 determines that the verification fails (that is, the corresponding non-secured application is falsified or tampered )can do.

검증 서버(104)는 클라이언트 장치(102)의 검증 요청에 대응하여 검증 결과 관련 정보를 생성하고, 생성한 검증 결과 관련 정보를 클라이언트 장치(102)로 전송할 수 있다. 검증 결과 관련 정보에는 상기 검증 요청에 대한 검증 결과(즉, 검증 성공 또는 검증 실패), 검증 시간, 및 암호화 관련 키 값 등이 포함될 수 있다. The verification server 104 may generate the verification result related information in response to the verification request of the client device 102 and may transmit the generated verification result related information to the client device 102. [ The verification result related information may include a verification result of the verification request (i.e., verification success or verification failure), a verification time, and an encryption-related key value.

검증 서버(104)는 상기 검증 요청에 관리 고유 정보(예를 들어, 클라이언트 장치(102)의 고유 식별 정보)가 포함되어 있는 경우, 클라이언트 장치(102)의 고유 식별 정보를 해쉬화 한 후, 클라이언트 장치(102)의 고유 식별 정보의 해쉬값을 암호화 관련 키 값으로 설정할 수 있다. 여기서, 암호화 관련 키 값은 관리 서버(106)에서 보안 관련 파일을 암호화 하기 위한 암호화 키 값 및 클라이언트 장치(102)에서 암호화된 보안 관련 파일을 복호화 하기 위한 복호화 키 값일 수 있다. 이때, 암호화 키 값 및 복호화 키 값은 동일한 것일 수 있다. 검증 서버(104)는 검증 결과가 검증 성공인 경우에만, 검증 결과 관련 정보에 암호화 관련 키 값을 포함시켜 전송할 수 있다. When the verification request includes management specific information (for example, unique identification information of the client device 102), the verification server 104 hashes the unique identification information of the client device 102, The hash value of the unique identification information of the device 102 can be set as the encryption-related key value. Here, the encryption-related key value may be an encryption key value for encrypting the security-related file in the management server 106 and a decryption key value for decrypting the security-related file encrypted in the client device 102. At this time, the encryption key value and the decryption key value may be the same. The verification server 104 can transmit the encryption-related key value to the verification result related information only when the verification result is successful.

한편, 검증 서버(104)는 이상 징후 판단 시, 클라이언트 장치(102)의 고유 식별 정보에 기 설정된 더미 관리 정보를 추가한 관리 고유 정보를 해쉬화 한 후, 이를 암호화 관련 키 값으로 설정할 수 있다. 이때, 관리 고유 정보는 클라이언트 장치(102)의 고유 식별 정보의 전단 또는 후단에 더미 관리 정보가 추가된 것일 수 있다. Meanwhile, when the anomaly indication is determined, the verification server 104 may hash the management specific information added with the predetermined dummy management information in the unique identification information of the client device 102, and then set the management specific information as an encryption related key value. At this time, the management specific information may be the dummy management information added to the front end or the rear end of the unique identification information of the client device 102.

즉, 검증 서버(104)는 평상 시에는 클라이언트 장치(102)의 고유 식별 정보를 관리 고유 정보로 하여 암호화 관련 키 값을 생성하고, 이상 징후 판단 시에는 클라이언트 장치(102)의 고유 식별 정보와 기 설정된 더미 관리 정보가 조합된 관리 고유 정보를 이용하여 암호화 관련 키 값을 생성할 수 있다. That is, the verification server 104 normally generates the encryption-related key value by using the unique identification information of the client device 102 as the management unique information, and when determining the anomalous indications, the unique identification information of the client device 102, The encryption-related key value can be generated using the management specific information in which the set dummy management information is combined.

검증 서버(104)는 각 클라이언트 장치(102) 별로 검증 요청에 따른 로그 정보를 관리할 수 있다. 로그 정보는 검증 요청 수신 시간, 검증 결과, 및 검증 결과 관련 정보 전송 시간 등이 포함될 수 있다. 검증 서버(104)는 검증 요청에 따른 로그 정보를 기반으로 이상 징후 여부를 판단할 수 있다. 예를 들어, 검증 서버(104)는 일정 시간 동안 각 클라이언트들의 검증 요청에 따른 검증 실패의 총 횟수가 기 설정된 제1 횟수를 초과하여 발생하는 경우 이상 징후가 발생한 것으로 판단할 수 있다. 또한, 검증 서버(104)는 소정 클라이언트 장치(102)에 대해 검증 요청에 따른 검증 실패가 기 설정된 제2 횟수를 초과하여 발생하는 경우 이상 징후가 발생한 것으로 판단할 수 있다. 여기서, 제1 횟수 및 제2 횟수는 서비스 가입자의 수 등을 고려하여 적절하게 설정될 수 있다. The verification server 104 can manage the log information according to the verification request for each client device 102. [ The log information may include the time of receiving the verification request, the verification result, and the information transmission time related to the verification result. The verification server 104 can determine whether an abnormal symptom is present based on the log information according to the verification request. For example, the verification server 104 may determine that an abnormal symptom occurs when the total number of verification failures in accordance with the verification requests of the clients for a predetermined time exceeds a predetermined first number. In addition, the verification server 104 may determine that an abnormal symptom occurs when a verification failure in response to the verification request occurs to a predetermined client device 102 in excess of the second predetermined number of times. Here, the first number of times and the second number of times may be appropriately set in consideration of the number of service subscribers.

이와 같이, 이상 징후 발생 시 암호화 관련 키 값을 생성하는 규칙을 변경함으로써, 암호화 관련 키 값이 악의적인 제3자에게 노출되는 것을 방지할 수 있게 된다.Thus, by changing the rule for generating an encryption-related key value when an anomaly occurs, it is possible to prevent the encryption-related key value from being exposed to a malicious third party.

관리 서버(106)는 클라이언트 장치(102)로부터 보안 파일 요청을 수신할 수 있다. 관리 서버(106)는 보안 파일 요청을 전송한 클라이언트 장치(102)가 등록된 기기인지 여부를 확인하고, 등록되지 않은 기기인 경우 해당 클라이언트 장치(102)를 블록체인(108)에 등록할 수 있다. 구체적으로, 관리 서버(106)는 보안 파일 요청에서 클라이언트 장치(102)의 고유 식별 정보를 추출하고, 추출한 클라이언트 장치(102)의 고유 식별 정보를 블록체인(108)에 전송하여 해당 클라이언트 장치(102)의 등록 여부를 조회할 수 있다. 해당 클라이언트 장치(102)가 등록되어 있지 않은 경우, 관리 서버(106)는 보안 파일 요청에 포함된 암호화 관련 키 값을 블록체인(108)으로 전송하여 해당 클라이언트 장치(102)가 등록되도록 할 수 있다. 이때, 블록체인(108)은 클라이언트 장치(102)의 고유 식별 정보를 상기 암호화 관련 키 값과 매칭하여 등록할 수 있다. The management server 106 may receive a secure file request from the client device 102. The management server 106 can check whether the client device 102 that transmitted the security file request is a registered device and register the client device 102 in the block chain 108 if the device is not registered . Specifically, the management server 106 extracts the unique identification information of the client device 102 in the secure file request, and transmits the unique identification information of the extracted client device 102 to the block chain 108 so that the corresponding client device 102 ) Can be inquired. If the client device 102 is not registered, the management server 106 may transmit the encryption-related key value contained in the security file request to the block chain 108 so that the client device 102 is registered . At this time, the block chain 108 may register unique identification information of the client device 102 with the encryption-related key value.

또한, 관리 서버(106)는 보안 파일 요청에 포함된 클라이언트 장치(102)의 운영 체제 관련 정보에 기반하여 동적 보안 관련 파일을 클라이언트 장치(102)로 전송할 수 있다. 관리 서버(106)는 운영 체제 종류 별로 운영 체제 버전에 따라 동적 보안 관련 파일들을 저장할 수 있다. 관리 서버(106)는 클라이언트 장치(102)의 운영 체제 관련 정보에 대응하는 동적 보안 관련 파일을 추출한 후, 추출한 동적 보안 관련 파일을 보안 파일 요청에 포함된 암호화 관련 키 값으로 암호화 할 수 있다. 그리고, 암호화된 동적 보안 관련 파일을 암호화 관련 키 값과 함께 클라이언트 장치(102)로 전송할 수 있다. 여기서, 암호화 관련 키 값은 클라이언트 장치(102)의 고유 식별 정보를 기반으로 생성된 것이기 때문에, 동적 보안 관련 파일은 클라이언트 장치(102) 별로 서로 다르게 암호화 및 복호화 되게 된다.The management server 106 may also send dynamic security related files to the client device 102 based on operating system related information of the client device 102 included in the secure file request. The management server 106 can store dynamic security related files according to the operating system version for each operating system type. The management server 106 may extract the dynamic security related file corresponding to the operating system related information of the client device 102 and then encrypt the extracted dynamic security related file with the encryption related key value included in the security file request. The encrypted dynamic security-related file may then be transmitted to the client device 102 along with the encryption-related key value. Here, since the encryption-related key value is generated based on the unique identification information of the client device 102, the dynamic security-related file is encrypted and decrypted differently for each client device 102.

한편, 관리 서버(106)는 보안 파일 요청을 전송한 클라이언트 장치(102)가 등록된 기기인 경우, 관리 서버(106)는 블록체인(108)으로부터 클라이언트 장치(102)의 고유 식별 정보와 매칭된 암호화 관련 키 값을 수신할 수 있다. 관리 서버(106)는 클라이언트 장치(102)의 운영 체제 관련 정보에 대응하는 동적 보안 관련 파일을 추출한 후, 추출한 동적 보안 관련 파일을 블록체인(108)으로부터 수신한 암호화 관련 키 값으로 암호화 할 수 있다. 그리고, 암호화된 동적 보안 관련 파일을 암호화 관련 키 값과 함께 클라이언트 장치(102)로 전송할 수 있다. 이와 같이, 관리 서버(106)에서 보안 파일 요청을 전송하는 클라이언트 장치(102)가 기 등록되었는지 여부를 확인하고, 해당 클라이언트 장치(102)의 고유 식별 정보와 매칭되는 암호화 관련 키 값을 이용하여 동적 보안 관련 파일을 암호화 함으로써, 어플리케이션의 안전성(즉, 보안성)을 2차 보장할 수 있게 된다.On the other hand, when the management server 106 is a device in which the client device 102 that transmitted the security file request is registered, the management server 106 acquires the unique identification information of the client device 102 from the block chain 108 It is possible to receive the encryption-related key value. The management server 106 may extract the dynamic security related file corresponding to the operating system related information of the client device 102 and then encrypt the extracted dynamic security related file with the encryption related key value received from the block chain 108 . The encrypted dynamic security-related file may then be transmitted to the client device 102 along with the encryption-related key value. In this manner, the management server 106 checks whether the client device 102 that has transmitted the security file request has been registered in advance, and determines whether the client device 102 is dynamic by using the encryption-related key value that matches the unique identification information of the client device 102 By encrypting the security-related file, the security of the application (i.e., security) can be secondarily guaranteed.

블록체인(108)은 클라이언트 장치(102) 별로 암호화 관련 키 값을 관리할 수 있다. 블록체인(108)은 클라이언트 장치(102)를 블록체인(108)에 등록할 수 있다. 구체적으로, 블록체인(108)은 관리 서버(106)로부터 클라이언트 장치(102)의 고유 식별 정보를 수신한 경우, 상기 고유 식별 정보를 기반으로 해당 클라이언트 장치(102)의 등록 여부를 확인할 수 있다. 해당 클라이언트 장치(102)가 등록되지 않은 기기인 경우, 블록체인(108)은 관리 서버(106)로부터 암호화 관련 키 값을 수신하고, 클라이언트 장치(102)의 고유 식별 정보와 암호화 관련 키 값을 매칭하여 해당 클라이언트 장치(102)를 등록할 수 있다. The block chain 108 may manage the encryption-related key value for each client device 102. The block chain 108 may register the client device 102 with the block chain 108. Specifically, when receiving the unique identification information of the client device 102 from the management server 106, the block chain 108 can confirm whether or not the corresponding client device 102 is registered based on the unique identification information. If the client device 102 is an unregistered device, the block chain 108 receives the encryption-related key value from the management server 106 and matches the unique identification information of the client device 102 with the encryption- So that the client device 102 can be registered.

즉, 클라이언트 장치(102)는 최초 보안 파일 요청 시 보안 파일 요청에 클라이언트 장치(102)의 고유 식별 정보와 함께 암호화 관련 키 값을 포함시킬 수 있다. 여기서, 클라이언트 장치(102)는 검증 서버(104)에서 검증 성공인 경우에만 암호화 관련 키 값을 수신하여 전송하기 때문에, 블록체인(108)은 검증된 클라이언트 장치(102)를 등록하게 된다.That is, the client device 102 may include the encryption-related key value in addition to the unique identification information of the client device 102 in the security file request in the initial security file request. Here, the block chain 108 registers the verified client device 102 because the client device 102 receives and transmits the encryption-related key value only when verification is successful at the verification server 104.

한편, 해당 클라이언트 장치(102)가 등록된 기기인 경우, 블록체인(108)은 해당 클라이언트 장치(102)의 고유 식별 정보와 매칭된 암호화 관련 키 값을 추출하고, 추출한 암호화 관련 키 값을 관리 서버(106)로 전송할 수 있다. On the other hand, when the client device 102 is a registered device, the block chain 108 extracts an encryption-related key value matched with the unique identification information of the corresponding client device 102, (106).

블록체인(108)은 API 서버(108a) 및 복수 개의 분산 노드(108b)를 포함할 수 있다. API(Application Program Inerface) 서버(108a)는 관리 서버(106)와 블록체인(108) 간 인터페이스를 제공할 수 있다. API 서버(108a)는 관리 서버(106)로부터 클라이언트 장치(102)의 고유 식별 정보를 수신하여 해당 클라이언트 장치(102)의 등록 여부를 확인할 수 있다. 또한, API 서버(108a)는 소정 클라이언트 장치(102)의 고유 식별 정보 및 암호화 관련 키 값을 복수 개의 분산 노드(108b)에 저장할 수 있다. 또한, API 서버(108a)는 클라이언트 장치(102)의 고유 식별 정보와 매칭되는 암호화 관련 키 값을 복수 개의 분산 노드(108b)로부터 추출하여 관리 서버(106)로 전달할 수 있다. The block chain 108 may include an API server 108a and a plurality of distributed nodes 108b. An API (Application Program Interface) server 108a can provide an interface between the management server 106 and the block chain 108. [ The API server 108a can receive the unique identification information of the client device 102 from the management server 106 and confirm whether or not the corresponding client device 102 is registered. In addition, the API server 108a may store the unique identification information of the predetermined client device 102 and the encryption-related key value in a plurality of distribution nodes 108b. In addition, the API server 108a can extract the encryption-related key value matching the unique identification information of the client device 102 from the plurality of distribution nodes 108b and transmit it to the management server 106. [

복수 개의 분산 노드(108b)는 클라이언트 장치(102) 별로 고유 식별 정보와 암호화 관련 키 값을 매칭하여 저장할 수 있다. 복수 개의 분산 노드(108b)는 블록체인 기술에 기반하여 클라이언트 장치(102) 별로 고유 식별 정보와 암호화 관련 키 값을 저장할 수 있다. 이 경우, 암호화 관련 키 값의 무결성을 확보할 수 있게 되며, 암호화 관련 키 값이 해킹 또는 도용되는 것을 방지할 수 있게 된다.The plurality of distributed nodes 108b may store the unique identification information and the encryption-related key value for each client device 102 by matching. The plurality of distributed nodes 108b may store the unique identification information and the encryption-related key value for each client device 102 based on the block-chain technology. In this case, the integrity of the encryption-related key value can be ensured, and the encryption-related key value can be prevented from being hacked or stolen.

본 발명의 실시예에 의하면, 클라이언트 장치(102)로 보안 미비 어플리케이션을 배포하고, 보안 미비 어플리케이션의 실행 시마다 암호화된 동적 보안 관련 파일을 전송해줌으로써, 클라이언트 장치(102) 내에 탑재된 어플리케이션의 보안 노출을 최소화 할 수 있고, 해당 어플리케이션의 보안 관련 파일이 악의적인 제3자에 의해 탈취되거나 도용되는 것을 방지할 수 있게 된다.According to the embodiment of the present invention, security-poor applications are distributed to the client device 102 and the encrypted dynamic security-related files are transmitted each time the security-critical applications are executed. Thus, Can be minimized and the security-related files of the application can be prevented from being hijacked or stolen by a malicious third party.

또한, 검증 서버(104)에서 보안 미비 어플리케이션의 검증을 수행하고, 그에 따라 암호화 관련 키 값을 클라이언트 장치(102)로 전송해줌으로써, 해당 어플리케이션의 위조 또는 변조 여부에 대한 무결성 여부를 확인할 수 있게 된다. 또한, 암호화 관련 키 값을 클라이언트 장치(102)의 고유 식별 정보를 기반으로 생성함으로써, 각 클라이언트 장치(102) 마다 서로 다르게 암호화 및 복호화가 이루어지도록 할 수 있으며, 그로 인해 어플리케이션 사용에 따른 보안성을 높일 수 있게 된다.In addition, the verification server 104 performs verification of an insecure application, and transmits the encryption-related key value to the client device 102, thereby confirming integrity of whether the corresponding application is falsified or altered . In addition, by generating the encryption-related key value based on the unique identification information of the client device 102, encryption and decryption can be performed differently for each client device 102, .

또한, 클라이언트 장치(102)로 보안 미비 어플리케이션을 배포함으로써, 클라이언트 장치(102)로 배포하는 어플리케이션의 크기를 최소화 할 수 있고, 동적 보안 관련 파일이 변경 또는 업데이트되는 경우에도 어플리케이션을 다시 다운로드 받을 필요가 없으며, 어플리케이션 실행 시 업데이트된 동적 보안 관련 파일을 자동으로 수신하여 실행할 수 있게 된다.In addition, by distributing the security-critical application to the client device 102, it is possible to minimize the size of the application distributed to the client device 102, and even when the dynamic security-related file is changed or updated, When the application is executed, updated dynamic security related files are automatically received and executed.

한편, 여기서는 블록체인(108)이 각 클라이언트 장치(102) 별로 고유 식별 정보를 암호화 관련 키 값과 매칭하여 저장하는 것으로 설명하였으나, 이에 한정되는 것은 아니며 관리 서버(106)가 각 클라이언트 장치(102) 별로 고유 식별 정보를 암호화 관련 키 값과 매칭하여 저장할 수도 있다.However, the present invention is not limited to this. The management server 106 may store the unique identification information for each client device 102 in the client device 102, The unique identification information may be matched with the encryption-related key value and stored.

또한, 여기서는 보안 미비 어플리케이션이 정적 보안 관련 파일은 탑재되고, 동적 보안 관련 파일은 탑재되지 않은 것으로 설명하였으나, 정적 보안 관련 파일 및 동적 보안 관련 파일이 모두 탑재되지 않은 것일 수도 있다. 즉, 보안 미비 어플리케이션은 보안 관련 파일 자체가 탑재되지 않을 것을 수 있다. 이 경우, 클라이언트 장치(102)는 관리 서버(106)로부터 암호화된 정적 보안 관련 파일 및 암호화된 동적 보안 관련 파일을 수신한 후, 복호화 하여 실행할 수 있다.In addition, although the security-related application includes static security-related files and does not include dynamic security-related files, it may be that static security-related files and dynamic security-related files are not loaded. That is, the security-related application may not mount the security-related file itself. In this case, the client device 102 can receive the encrypted static security-related file and the encrypted dynamic security-related file from the management server 106, decrypt and execute the file.

도 2는 본 발명의 일 실시예에 따른 어플리케이션 보안 방법에서 위변조 여부를 검증하는 과정을 나타낸 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.FIG. 2 is a flowchart illustrating a process of verifying whether a forgery or falsification has occurred in an application security method according to an embodiment of the present invention. In the illustrated flow chart, the method is described as being divided into a plurality of steps, but at least some of the steps may be performed in reverse order, combined with other steps, performed together, omitted, divided into detailed steps, One or more steps may be added and performed.

도 2를 참조하면, 클라이언트 장치(102)는 보안 미비 어플리케이션을 다운로드 받는다(S 101). 보안 미비 어플리케이션은 온라인 상에서 금융 거래 또는 결제 등과 같이 보안이 필요한 작업을 수행하기 위한 것이나, 보안 관련 파일 중 정적 보안 관련 파일만 포함되고 동적 보안 관련 파일이 생략되어 보안 관련 작업을 정상적으로 또는 온전히 수행할 수 없는 상태의 것일 수 있다. 예시적인 실시예에서, 클라이언트 장치(102)는 검증 서버(104) 또는 관리 서버(106) 등과 같은 서버 컴퓨팅 장치로부터 보안 미비 어플리케이션을 다운로드 받을 수 있다. Referring to FIG. 2, the client device 102 downloads a security-critical application (S 101). Security application is intended to perform security-related tasks such as financial transactions or payments online. However, only security-related files are included, and dynamic security-related files are omitted. It may be in a non-existent state. In an exemplary embodiment, the client device 102 may download an unsecured application from a server computing device, such as the verification server 104 or the management server 106, or the like.

다음으로, 클라이언트 장치(102)는 보안 미비 어플리케이션과 관련된 검증 요청을 검증 서버(104)로 전송한다(S 103). 클라이언트 장치(102)는 사용자에 의해 보안 미비 어플리케이션이 실행되는 경우, 검증 요청을 검증 서버(104)로 전송할 수 있다. 클라이언트 장치(102)에서 보안 미비 어플리케이션이 최초 실행되는 경우, 클라이언트 장치(102)는 보안 미비 어플리케이션의 식별 정보 및 클라이언트 장치(102)의 고유 식별 정보를 포함하는 검증 요청을 검증 서버(104)로 전송할 수 있다. Next, the client device 102 transmits a verification request related to the unsecured application to the verification server 104 (S103). The client device 102 may send a verification request to the verification server 104 when an unsecured application is executed by the user. When the unsecured application is first executed in the client device 102, the client device 102 transmits a verification request including the identification information of the unsecured application and the unique identification information of the client device 102 to the verification server 104 .

다음으로, 검증 서버(104)는 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보와 기 저장된 보안 미비 어플리케이션의 식별 정보를 비교하여 검증을 수행한다(S 105). Next, the verification server 104 compares the identification information of the unsecured application included in the verification request with the identification information of the previously stored unsecured application to perform verification (S 105).

단계 S 105의 수행 결과, 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보와 기 저장된 보안 미비 어플리케이션의 식별 정보가 일치하는 경우, 검증 서버(104)는 검증 요청에 포함된 클라이언트 장치(102)의 고유 식별 정보를 기반으로 암호화 관련 키 값을 생성한다(S 107). 예를 들어, 검증 서버(104)는 클라이언트 장치(102)의 고유 식별 정보를 해쉬화 하여 암호화 관련 키 값을 생성할 수 있다. If the identification information of the security-critical application included in the verification request coincides with the identification information of the previously-stored security-less application as a result of the execution of step S 105, the verification server 104 transmits the unique ID of the client device 102 included in the verification request And generates an encryption-related key value based on the identification information (S 107). For example, the verification server 104 may generate an encryption-related key value by hashing the unique identification information of the client device 102.

다음으로, 검증 서버(104)는 검증 결과 관련 정보를 클라이언트 장치(102)로 전송한다(S 109). 검증 결과 관련 정보에는 검증 요청에 대응하는 검증 결과 값, 검증 시간, 및 암호화 관련 키 값 등이 포함될 수 있다. 단계 S 105의 수행 결과, 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보와 기 저장된 보안 미비 어플리케이션의 식별 정보가 일치하지 않는 경우, 검증 서버(104)는 검증 결과 관련 정보에 암호화 관련 키 값을 포함시키지 않을 수 있다. 또한, 검증 서버(104)는 클라이언트 장치(102)의 검증 요청에 따른 로그 정보를 관리할 수 있다.Next, the verification server 104 transmits the verification result related information to the client device 102 (S 109). The verification result related information may include a verification result value corresponding to the verification request, a verification time, and an encryption-related key value. If the identification information of the security-critical application included in the verification request does not match the identification information of the previously-stored security-less application as a result of the execution of step S 105, the verification server 104 stores the encryption-related key value in the verification- . In addition, the verification server 104 can manage the log information according to the verification request of the client device 102.

도 3은 본 발명의 일 실시예에 따른 어플리케이션 보안 방법에서 동적 보안 관련 파일을 수신하는 과정을 나타낸 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.3 is a flowchart illustrating a process of receiving a dynamic security-related file in an application security method according to an exemplary embodiment of the present invention. In the illustrated flow chart, the method is described as being divided into a plurality of steps, but at least some of the steps may be performed in reverse order, combined with other steps, performed together, omitted, divided into detailed steps, One or more steps may be added and performed.

도 3을 참조하면, 클라이언트 장치(102)는 보안 미비 어플리케이션의 검증 결과가 검증 성공인 경우, 보안 파일 요청을 관리 서버(106)로 전송한다(S 201). 보안 파일 요청에는 클라이언트 장치(102)의 고유 식별 정보, 암호화 관련 키 값, 및 클라이언트 장치(102)의 운영 체제 관련 정보가 포함될 수 있다. 한편, 클라이언트 장치(102)는 보안 미비 어플리케이션의 검증 결과가 검증 실패인 경우, 보안 미비 어플리케이션을 종료시킬 수 있다. Referring to FIG. 3, when the verification result of the unsecured application is successful, the client device 102 transmits a security file request to the management server 106 (S 201). The secure file request may include unique identification information of the client device 102, encryption related key value, and operating system related information of the client device 102. On the other hand, if the verification result of the insecure application is a verification failure, the client device 102 can terminate the insecure insecure application.

다음으로, 관리 서버(106)는 보안 파일 요청에 포함된 클라이언트 장치(102)의 고유 식별 정보를 추출한 후, 추출한 클라이언트 장치(102)의 고유 식별 정보를 블록체인(108)으로 전송한다(S 203). Next, the management server 106 extracts the unique identification information of the client device 102 included in the security file request, and then transmits the unique identification information of the extracted client device 102 to the block chain 108 (S 203 ).

다음으로, 블록체인(108)은 클라이언트 장치(102)의 고유 식별 정보와 매칭되는 암호화 관련 키 값이 있는 경우(즉, 해당 클라이언트 장치(102)가 등록되어 있는 경우), 해당 암호화 관련 키 값을 추출하여 관리 서버(106)로 전송한다(S 205). 한편, 클라이언트 장치(102)의 고유 식별 정보와 매칭되는 암호화 관련 키 값이 없는 경우(즉, 해당 클라이언트 장치(102)가 등록되어 있지 않는 경우), 블록체인(108)은 관리 서버(106)로부터 암호화 관련 키 값을 수신하고, 클라이언트 장치(102)의 고유 식별 정보와 암호화 관련 키 값을 매칭하여 해당 클라이언트 장치(102)를 등록할 수 있다.Next, the block chain 108 sends a corresponding encryption key value to the client device 102 if there is an encryption-related key value that matches the unique identification information of the client device 102 (i.e., if the client device 102 is registered) And transmits it to the management server 106 (S 205). On the other hand, if there is no encryption-related key value matching the unique identification information of the client device 102 (that is, if the corresponding client device 102 is not registered), the block chain 108 is transferred from the management server 106 Related key value, and registers the corresponding client device 102 by matching the unique identification information of the client device 102 with the encryption-related key value.

다음으로, 관리 서버(106)는 보안 파일 요청에 포함된 클라이언트 장치(102)의 운영 체제 관련 정보에 대응하는 동적 보안 관련 파일을 추출한다(S 207). 즉, 관리 서버(106)는 클라이언트 장치(102)의 운영 체제 종류 및 운영 체제 버전에 대응하는 동적 보안 관련 파일을 추출할 수 있다. Next, the management server 106 extracts a dynamic security-related file corresponding to the operating system-related information of the client device 102 included in the security file request (S 207). That is, the management server 106 can extract dynamic security-related files corresponding to the operating system type and the operating system version of the client device 102.

다음으로, 관리 서버(106)는 추출한 동적 보안 관련 파일을 블록체인(108)으로부터 수신한 암호화 관련 키 값을 이용하여 암호화 하고(S 209), 암호화된 동적 보안 관련 파일 및 암호화 관련 키 값(즉, 복호화 키 값)을 클라이언트 장치(102)로 전송한다(S 211). Next, the management server 106 encrypts the extracted dynamic security-related file using the encryption-related key value received from the block chain 108 (S 209), and transmits the encrypted dynamic security-related file and the encryption-related key value , Decryption key value) to the client device 102 (S211).

다음으로, 클라이언트 장치(102)는 수신한 복호화 키를 이용하여 암호화된 동적 보안 관련 파일을 복호화 한다(S 213). 그리고, 복호화 된 동적 보안 관련 파일을 메모리에 로딩하여 동적 보안 관련 파일을 실행한 후 삭제한다(S 215). Next, the client device 102 decrypts the encrypted dynamic security-related file using the received decryption key (S 213). Then, the decrypted dynamic security-related file is loaded into the memory, and the dynamic security-related file is executed and deleted (S 215).

도 4는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되는 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.4 is a block diagram illustrating and illustrating a computing environment 10 that includes a computing device suitable for use in the exemplary embodiments. In the illustrated embodiment, each of the components may have different functions and capabilities than those described below, and may include additional components in addition to those described below.

도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 클라이언트 장치(예를 들어, 클라이언트 장치(102))일 수 있다. 또한, 컴퓨팅 장치(12)는 서버 컴퓨팅 장치(예를 들어, 검증 서버(104) 또는 관리 서버(106))일 수 있다.The illustrated computing environment 10 includes a computing device 12. In one embodiment, computing device 12 may be a client device (e.g., client device 102). The computing device 12 may also be a server computing device (e.g., verification server 104 or management server 106).

컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.The computing device 12 includes at least one processor 14, a computer readable storage medium 16, The processor 14 may cause the computing device 12 to operate in accordance with the exemplary embodiment discussed above. For example, processor 14 may execute one or more programs stored on computer readable storage medium 16. The one or more programs may include one or more computer-executable instructions, which when executed by the processor 14 cause the computing device 12 to perform operations in accordance with the illustrative embodiment .

컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.The computer-readable storage medium 16 is configured to store computer-executable instructions or program code, program data, and / or other suitable forms of information. The program 20 stored in the computer-readable storage medium 16 includes a set of instructions executable by the processor 14. In one embodiment, the computer-readable storage medium 16 may be any type of storage medium such as a memory (volatile memory such as random access memory, non-volatile memory, or any suitable combination thereof), one or more magnetic disk storage devices, Memory devices, or any other form of storage medium that can be accessed by the computing device 12 and store the desired information, or any suitable combination thereof.

통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.Communication bus 18 interconnects various other components of computing device 12, including processor 14, computer readable storage medium 16.

컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.The computing device 12 may also include one or more input / output interfaces 22 and one or more network communication interfaces 26 that provide an interface for one or more input / output devices 24. The input / output interface 22 and the network communication interface 26 are connected to the communication bus 18. The input / output device 24 may be connected to other components of the computing device 12 via the input / output interface 22. The exemplary input and output device 24 may be any type of device, such as a pointing device (such as a mouse or trackpad), a keyboard, a touch input device (such as a touch pad or touch screen), a voice or sound input device, An input device, and / or an output device such as a display device, a printer, a speaker, and / or a network card. The exemplary input and output device 24 may be included within the computing device 12 as a component of the computing device 12 and may be coupled to the computing device 12 as a separate device distinct from the computing device 12 It is possible.

이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, . Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by equivalents to the appended claims, as well as the appended claims.

100 : 어플리케이션 보안 시스템
102 : 클라이언트 장치
104 : 검증 서버
106 : 관리 서버
108 : 블록체인
108a : API 서버
108b : 분산 노드
100: Application Security System
102: Client device
104: verification server
106: management server
108: Block Chain
108a: API server
108b: Distributed node

Claims (24)

정적 보안 관련 파일 및 동적 보안 관련 파일 중 상기 정적 보안 관련 파일이 탑재된 보안 미비 어플리케이션을 다운로드 받고, 상기 보안 미비 어플리케이션에 대한 검증 요청을 전송하며, 상기 검증 요청에 대응하는 검증 결과 관련 정보에 따라 상기 동적 보안 관련 파일에 대한 보안 파일 요청을 전송하는 클라이언트 장치;
상기 클라이언트 장치로부터 상기 검증 요청을 수신하고, 상기 보안 미비 어플리케이션에 대한 검증을 수행하며, 상기 검증 결과 관련 정보를 상기 클라이언트 장치로 전송하는 검증 서버; 및
상기 클라이언트 장치로부터 상기 보안 파일 요청을 수신하고, 암호화된 동적 보안 관련 파일을 상기 클라이언트 장치로 전송하는 관리 서버를 포함하며,
상기 클라이언트 장치는, 상기 관리 서버로부터 상기 암호화 된 동적 관련 파일 및 암호화 관련 키 값을 수신하고, 상기 암호화 관련 키 값을 기반으로 상기 암호화 된 동적 보안 관련 파일을 복호화 하며,
상기 동적 보안 관련 파일은, 상기 클라이언트 장치의 메모리의 잔여 용량을 확인하여 상기 메모리의 잔여 용량이 상기 동적 보안 관련 파일 전부를 로딩할 수 없는 경우, 상기 동적 보안 관련 파일들 중 기 설정된 우선 순위에 따라 일부의 동적 보안 관련 파일을 상기 메모리에 로딩시키기 위한 명령어를 포함하는, 어플리케이션 보안 시스템.
Wherein the secure security application is downloaded from a static security related file and a dynamic security related file and transmits a verification request for the non secure application, A client device for sending a secure file request for dynamic security related files;
A verification server for receiving the verification request from the client device, performing verification of the unsecured application, and transmitting the verification result related information to the client device; And
And a management server that receives the secure file request from the client device and transmits the encrypted dynamic security-related file to the client device,
Wherein the client device receives the encrypted dynamic related file and the encryption related key value from the management server and decrypts the encrypted dynamic security related file based on the encryption related key value,
Wherein the dynamic security related file is configured to check the remaining capacity of the memory of the client device and to update the dynamic security related files according to a predetermined priority among the dynamic security related files when the remaining capacity of the memory can not load all of the dynamic security related files. And loading some dynamic security related files into the memory.
청구항 1에 있어서,
상기 검증 요청은,
상기 보안 미비 어플리케이션의 식별 정보 및 상기 클라이언트 장치의 고유 식별 정보를 포함하는, 어플리케이션 보안 시스템.
The method according to claim 1,
The verification request includes:
An identification information of the security-critical application, and unique identification information of the client apparatus.
청구항 2에 있어서,
상기 검증 서버는,
상기 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보와 기 저장된 보안 미비 어플리케이션의 식별 정보를 비교하여 검증을 수행하고, 검증 결과에 따라 상기 클라이언트 장치의 고유 식별 정보를 기반으로 암호화 관련 키 값을 생성하며, 상기 검증 결과 및 상기 암호화 관련 키 값을 포함하는 검증 결과 관련 정보를 상기 클라이언트 장치로 전송하는, 어플리케이션 보안 시스템.
The method of claim 2,
Wherein the verification server comprises:
A verification unit configured to compare the identification information of the unsecured application included in the verification request with the identification information of the previously stored unsecured application and to generate an encryption related key value based on the unique identification information of the client apparatus according to the verification result And transmits verification result related information including the verification result and the encryption related key value to the client device.
청구항 3에 있어서,
상기 검증 서버는,
이상 징후 발생 시 상기 클라이언트 장치의 고유 식별 정보 및 기 설정된 더미 관리 정보가 조합된 관리 고유 정보를 기반으로 암호화 관련 키 값을 생성하는, 어플리케이션 보안 시스템.
The method of claim 3,
Wherein the verification server comprises:
And generates an encryption-related key value based on management unique information in which unique identification information of the client apparatus and predetermined dummy management information are combined when an abnormal symptom occurs.
청구항 4에 있어서,
상기 검증 서버는,
일정 시간 동안 각 클라이언트들의 검증 요청에 따른 검증 실패의 총 횟수가 기 설정된 제1 횟수를 초과하는 경우 상기 이상 징후가 발생한 것으로 판단하는, 어플리케이션 보안 시스템.
The method of claim 4,
Wherein the verification server comprises:
And determines that the abnormal symptom occurs when a total number of verification failures according to a verification request of each client for a predetermined time exceeds a predetermined first number.
청구항 4에 있어서,
상기 검증 서버는,
상기 클라이언트 장치에 대해 검증 요청에 따른 검증 실패가 기 설정된 제2 횟수를 초과하는 경우 상기 이상 징후가 발생한 것으로 판단하는, 어플리케이션 보안 시스템.
The method of claim 4,
Wherein the verification server comprises:
And determines that the abnormal symptom occurs when a verification failure based on the verification request for the client device exceeds a second predetermined number of times.
청구항 3에 있어서,
상기 보안 파일 요청은,
상기 클라이언트 장치의 고유 식별 정보, 상기 암호화 관련 키 값, 및 상기 클라이언트 장치의 운영 체제 관련 정보를 포함하는, 어플리케이션 보안 시스템.
The method of claim 3,
Wherein the secure file request comprises:
The unique identification information of the client device, the encryption related key value, and operating system related information of the client device.
청구항 7에 있어서,
상기 관리 서버는,
상기 클라이언트 장치의 운영 체제 관련 정보에 대응하는 동적 보안 관련 파일을 추출하고, 상기 추출한 동적 보안 관련 파일을 상기 암호화 관련 키 값을 이용하여 암호화 하며, 상기 암호화 된 동적 보안 관련 파일 및 상기 암호화 관련 키 값을 상기 클라이언트 장치로 전송하는, 어플리케이션 보안 시스템.
The method of claim 7,
The management server includes:
Extracts a dynamic security-related file corresponding to the operating system-related information of the client device, encrypts the extracted dynamic security-related file using the encryption-related key value, and encrypts the encrypted dynamic security- To the client device.
청구항 1에 있어서,
상기 보안 파일 요청은,
상기 클라이언트 장치의 고유 식별 정보, 상기 클라이언트 장치의 고유 식별 정보를 기반으로 생성되는 암호화 관련 키 값, 및 상기 클라이언트 장치의 운영 체제 관련 정보 중 적어도 하나를 포함하는, 어플리케이션 보안 시스템.
The method according to claim 1,
Wherein the secure file request comprises:
And at least one of the unique identification information of the client device, the encryption-related key value generated based on the unique identification information of the client device, and the operating system-related information of the client device.
청구항 9에 있어서,
상기 어플리케이션 보안 시스템은,
상기 관리 서버로부터 각 클라이언트 장치의 고유 식별 정보 및 암호화 관련 키 값을 수신하고, 각 클라리언트 장치의 고유 식별 정보를 해당 암호화 관련 키 값과 각각 매칭하여 저장하는 블록체인을 더 포함하는, 어플리케이션 보안 시스템.
The method of claim 9,
The application security system comprises:
Further comprising a block chain for receiving the unique identification information and the encryption-related key value of each client device from the management server, and for matching and storing the unique identification information of each client device with the corresponding encryption-related key value.
청구항 10에 있어서,
상기 관리 서버는,
상기 보안 파일 요청에 포함된 상기 클라이언트 장치의 고유 식별 정보를 상기 블록체인으로 전송하고,
상기 블록체인은, 상기 클라이언트 장치의 고유 식별 정보와 매칭된 암호화 관련 키 값을 추출하여 상기 관리 서버로 전송하며,
상기 관리 서버는, 상기 클라이언트 장치의 운영 체제 관련 정보에 대응하는 동적 보안 관련 파일을 추출하고, 상기 추출한 동적 보안 관련 파일을 상기 블록체인으로부터 수신한 암호화 관련 키 값을 이용하여 암호화 하며, 상기 암호화 된 동적 보안 관련 파일 및 상기 암호화 관련 키 값을 상기 클라이언트 장치로 전송하는, 어플리케이션 보안 시스템.
The method of claim 10,
The management server includes:
Transmitting unique identification information of the client apparatus included in the secure file request to the block chain,
Wherein the block chain extracts an encryption-related key value matched with the unique identification information of the client apparatus and transmits the encryption-related key value to the management server,
The management server extracts a dynamic security related file corresponding to the operating system related information of the client device and encrypts the extracted dynamic security related file using an encryption related key value received from the block chain, Dynamic security related file and the encryption related key value to the client device.
삭제delete 청구항 1에 있어서,
상기 정적 보안 관련 파일은,
상기 보안 미비 어플리케이션의 실행 시 상기 검증 요청을 상기 검증 서버로 전송하기 위한 명령어; 및
상기 검증 결과 관련 정보의 확인 결과, 상기 보안 미비 어플리케이션에 대한 검증이 실패한 경우, 상기 보안 미비 어플리케이션을 종료시키는 명령어를 포함하는, 어플리케이션 보안 시스템.
The method according to claim 1,
The static security-
Transmitting the verification request to the verification server when the security-critical application is executed; And
And terminating the security-critical application when verification of the security-less application fails as a result of checking the verification result-related information.
하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 클라이언트 장치에서 수행되는 방법으로서,
정적 보안 관련 파일 및 동적 보안 관련 파일 중 상기 정적 보안 관련 파일이 탑재된 보안 미비 어플리케이션을 다운로드 하는 단계;
상기 보안 미비 어플리케이션에 대한 검증 요청을 전송하는 단계;
상기 검증 요청에 대응하는 검증 결과 관련 정보를 수신하고, 상기 검증 결과 관련 정보에 따라 상기 동적 보안 관련 파일에 대한 보안 파일 요청을 전송하는 단계;
상기 보안 파일 요청에 대응하여 암호화된 동적 보안 관련 파일 및 암호화 관련 키 값을 수신하는 단계; 및
상기 암호화된 동적 보안 관련 파일을 상기 암호화 관련 키 값을 이용하여 복호화 하는 단계를 포함하며,
상기 복호화 하는 단계는,
상기 클라이언트 장치의 메모리의 잔여 용량을 확인하는 단계; 및
상기 메모리의 잔여 용량이 상기 동적 보안 관련 파일 전부를 로딩할 수 없는 경우, 상기 동적 보안 관련 파일들 중 기 설정된 우선 순위에 따라 일부의 동적 보안 관련 파일을 상기 메모리에 로딩시키는 단계를 포함하는, 어플리케이션 보안 방법.
One or more processors, and
A method performed in a client device having a memory for storing one or more programs executed by the one or more processors,
Downloading a security-critical application on which the static security-related file is mounted, among the static security-related file and the dynamic security-related file;
Transmitting a verification request for the unsecured application;
Receiving a verification result related information corresponding to the verification request, and transmitting a security file request for the dynamic security related file according to the verification result related information;
Receiving an encrypted dynamic security-related file and an encryption-related key value corresponding to the secure file request; And
And decrypting the encrypted dynamic security-related file using the encryption-related key value,
Wherein the step of decrypting comprises:
Checking the remaining capacity of the memory of the client device; And
Loading the dynamic security related files into the memory according to a predetermined priority among the dynamic security related files when the remaining capacity of the memory can not load all of the dynamic security related files, Security method.
청구항 14에 있어서,
상기 검증 요청은,
상기 보안 미비 어플리케이션의 식별 정보 및 상기 클라이언트 장치의 고유 식별 정보를 포함하는, 어플리케이션 보안 방법.
15. The method of claim 14,
The verification request includes:
An identification information of the security-critical application, and unique identification information of the client device.
청구항 15에 있어서,
상기 검증 결과 관련 정보는,
상기 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보와 기 저장된 보안 미비 어플리케이션의 식별 정보를 비교하여 검증을 수행한 검증 결과 및 상기 클라이언트 장치의 고유 식별 정보를 기반으로 생성한 암호화 관련 키 값을 포함하는, 어플리케이션 보안 방법.
16. The method of claim 15,
The verification result related information may include,
A verification result obtained by comparing the identification information of the unsecured application included in the verification request with the identification information of the previously stored unsecured application and an encryption related key value generated based on the unique identification information of the client device , Application security method.
청구항 16에 있어서,
상기 보안 파일 요청은,
상기 클라이언트 장치의 고유 식별 정보, 상기 암호화 관련 키 값, 및 상기 클라이언트 장치의 운영 체제 관련 정보를 포함하는, 어플리케이션 보안 방법.
18. The method of claim 16,
Wherein the secure file request comprises:
The unique identification information of the client device, the encryption related key value, and operating system related information of the client device.
삭제delete 청구항 14에 있어서,
상기 정적 보안 관련 파일은,
상기 보안 미비 어플리케이션의 실행 시 상기 검증 요청을 전송하기 위한 명령어; 및
상기 검증 결과 관련 정보의 확인 결과, 상기 보안 미비 어플리케이션에 대한 검증이 실패한 경우, 상기 보안 미비 어플리케이션을 종료시키는 명령어를 포함하는, 어플리케이션 보안 방법.
15. The method of claim 14,
The static security-
An instruction for transmitting the verification request when the security-critical application is executed; And
And terminating the unsecured application when verification of the unsecured application fails as a result of the verification result related information.
하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
클라이언트 장치로부터 정적 보안 관련 파일 및 동적 보안 관련 파일 중 상기 정적 보안 관련 파일이 탑재된 보안 미비 어플리케이션에 대한 검증 요청을 수신하는 단계;
상기 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보와 기 저장된 보안 미비 어플리케이션의 식별 정보를 비교하여 검증을 수행하는 단계; 및
상기 검증 요청에 대응하는 검증 결과 관련 정보를 생성하여 상기 클라이언트 장치로 전송하는 단계를 포함하고,
상기 검증 요청은, 상기 보안 미비 어플리케이션의 식별 정보 및 상기 클라이언트 장치의 고유 식별 정보를 포함하며,
상기 검증 결과 관련 정보를 생성하는 단계는,
상기 검증의 결과에 따라 상기 클라이언트 장치의 고유 식별 정보를 기반으로 암호화 관련 키 값을 생성하는 단계를 포함하고,
상기 클라이언트 장치는, 상기 암호화 관련 키 값을 기반으로 암호화 된 상기 동적 보안 관련 파일을 복호화 하며,
상기 동적 보안 관련 파일은, 상기 클라이언트 장치의 메모리의 잔여 용량을 확인하여 상기 메모리의 잔여 용량이 상기 동적 보안 관련 파일 전부를 로딩할 수 없는 경우, 상기 동적 보안 관련 파일들 중 기 설정된 우선 순위에 따라 일부의 동적 보안 관련 파일을 상기 메모리에 로딩시키기 위한 명령어를 포함하는, 어플리케이션 보안 방법.
One or more processors, and
A method performed in a computing device having a memory storing one or more programs executed by the one or more processors,
Receiving, from the client apparatus, a verification request for a security-related file containing the static security-related file and the dynamic security-related file;
Performing verification by comparing identification information of an unsecured application included in the verification request with identification information of a previously stored unsecured application; And
Generating verification-result-related information corresponding to the verification request and transmitting the information to the client device,
Wherein the verification request includes identification information of the unsecured application and unique identification information of the client apparatus,
The step of generating the verification result related information includes:
And generating an encryption-related key value based on the unique identification information of the client apparatus according to a result of the verification,
The client device decrypts the dynamic security-related file encrypted based on the encryption-related key value,
Wherein the dynamic security related file is configured to check the remaining capacity of the memory of the client device and to update the dynamic security related files according to a predetermined priority among the dynamic security related files when the remaining capacity of the memory can not load all of the dynamic security related files. And loading some dynamic security related files into the memory.
청구항 20에 있어서,
상기 암호화 관련 키 값을 생성하는 단계는,
상기 검증의 결과가 검증 성공인 경우, 상기 클라이언트 장치의 고유 식별 정보를 해쉬화 하여 생성하는, 어플리케이션 보안 방법.
The method of claim 20,
The step of generating the encryption-related key value comprises:
And generates a hash of the unique identification information of the client apparatus when the result of the verification is a verification success.
청구항 20에 있어서,
상기 암호화 관련 키 값을 생성하는 단계는,
각 클라이언트 장치의 검증 요청에 따른 로그 정보를 기반으로 이상 징후 여부를 판단하는 단계; 및
상기 이상 징후 발생 시, 상기 클라이언트 장치의 고유 식별 정보 및 기 설정된 더미 관리 정보가 조합된 관리 고유 정보를 기반으로 암호화 관련 키 값을 생성하는 단계를 포함하는, 어플리케이션 보안 방법.
The method of claim 20,
The step of generating the encryption-related key value comprises:
Determining whether an abnormal symptom is present based on log information according to a verification request of each client device; And
And generating an encryption-related key value based on the management unique information in which the unique identification information of the client apparatus and the predetermined dummy management information are combined when the abnormal symptom occurs.
하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
정적 보안 관련 파일 및 동적 보안 관련 파일 중 상기 정적 보안 관련 파일이 탑재된 보안 미비 어플리케이션을 다운로드 받은 클라이언트 장치로부터 상기 동적 보안 관련 파일에 대한 보안 파일 요청을 수신하는 단계;
상기 보안 파일 요청에 포함된 상기 클라이언트 장치의 고유 식별 정보를 추출하는 단계;
상기 추출한 상기 클라이언트 장치의 고유 식별 정보를 블록체인으로 전송하는 단계;
상기 블록체인으로부터 상기 클라이언트 장치의 고유 식별 정보와 매칭되는 암호화 관련 키 값을 수신하는 단계; 및
상기 동적 보안 관련 파일을 상기 수신한 암호화 관련 키 값으로 암호화 하고, 암호화된 동적 보안 관련 파일 및 상기 암호화 관련 키 값을 상기 클라이언트 장치로 전송하는 단계를 포함하고,
상기 클라이언트 장치는, 상기 암호화 관련 키 값을 기반으로 상기 암호화 된 동적 보안 관련 파일을 복호화 하며,
상기 동적 보안 관련 파일은, 상기 클라이언트 장치의 메모리의 잔여 용량을 확인하여 상기 메모리의 잔여 용량이 상기 동적 보안 관련 파일 전부를 로딩할 수 없는 경우, 상기 동적 보안 관련 파일들 중 기 설정된 우선 순위에 따라 일부의 동적 보안 관련 파일을 상기 메모리에 로딩시키기 위한 명령어를 포함하는, 어플리케이션 보안 방법.
One or more processors, and
A method performed in a computing device having a memory storing one or more programs executed by the one or more processors,
Receiving a security file request for the dynamic security-related file from a client device that has downloaded the security-related file containing the static security-related file and the static security-related file and the dynamic security-related file;
Extracting unique identification information of the client device included in the secure file request;
Transmitting the unique identification information of the extracted client device to a block chain;
Receiving an encryption-related key value from the block chain that matches the unique identification information of the client device; And
Encrypting the dynamic security-related file with the received encryption-related key value, and transmitting the encrypted dynamic security-related file and the encryption-related key value to the client device,
Wherein the client device decrypts the encrypted dynamic security related file based on the encryption related key value,
Wherein the dynamic security related file is configured to check the remaining capacity of the memory of the client device and to update the dynamic security related files according to a predetermined priority among the dynamic security related files when the remaining capacity of the memory can not load all of the dynamic security related files. And loading some dynamic security related files into the memory.
청구항 23에 있어서,
상기 보안 파일 요청은,
상기 클라이언트 장치의 고유 식별 정보 및 상기 클라이언트 장치의 운영 체제 관련 정보를 포함하고,
상기 암호화된 동적 보안 관련 파일을 상기 클라이언트 장치로 전송하는 단계는,
상기 클라이언트 장치의 운영 체제 관련 정보와 대응하는 동적 보안 관련 파일을 추출하는 단계; 및
상기 추출한 동적 보안 관련 파일을 상기 수신한 암호화 관련 키 값으로 암호화하는 단계를 포함하는, 어플리케이션 보안 방법.
24. The method of claim 23,
Wherein the secure file request comprises:
The unique identification information of the client apparatus and the operating system related information of the client apparatus,
Wherein the transmitting the encrypted dynamic security-related file to the client device comprises:
Extracting a dynamic security related file corresponding to the operating system related information of the client device; And
Encrypting the extracted dynamic security-related file with the received encryption-related key value.
KR1020170028955A 2017-03-07 2017-03-07 Method for application security and system for executing the method KR101906484B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170028955A KR101906484B1 (en) 2017-03-07 2017-03-07 Method for application security and system for executing the method
PCT/KR2018/002420 WO2018164408A1 (en) 2017-03-07 2018-02-28 Application security method and system for performing same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170028955A KR101906484B1 (en) 2017-03-07 2017-03-07 Method for application security and system for executing the method

Publications (2)

Publication Number Publication Date
KR20180102387A KR20180102387A (en) 2018-09-17
KR101906484B1 true KR101906484B1 (en) 2018-10-10

Family

ID=63447796

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170028955A KR101906484B1 (en) 2017-03-07 2017-03-07 Method for application security and system for executing the method

Country Status (2)

Country Link
KR (1) KR101906484B1 (en)
WO (1) WO2018164408A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102473312B1 (en) * 2022-02-10 2022-12-05 (주)라바웨이브 System and method for protecting leaked information

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010097512A (en) * 2008-10-17 2010-04-30 Dainippon Printing Co Ltd Application download system and method of portable terminal

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140073242A (en) * 2012-12-06 2014-06-16 (주)이디커뮤니케이션즈 Mobile authentication system and method with double security
KR20140082408A (en) * 2012-12-24 2014-07-02 숭실대학교산학협력단 Method and apparatus for managing application
KR101409175B1 (en) * 2013-12-16 2014-06-20 주식회사 시큐브 Security file access control apparatus and method of smart terminal
KR101633965B1 (en) * 2014-01-09 2016-06-27 주식회사 이베이코리아 User security authentication system in internet and method thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010097512A (en) * 2008-10-17 2010-04-30 Dainippon Printing Co Ltd Application download system and method of portable terminal

Also Published As

Publication number Publication date
KR20180102387A (en) 2018-09-17
WO2018164408A1 (en) 2018-09-13

Similar Documents

Publication Publication Date Title
KR102217501B1 (en) Mobile device with trusted execution environment
US10547625B2 (en) Software tampering detection and reporting process
CN107438849B (en) System and method for verifying integrity of electronic device
US7457960B2 (en) Programmable processor supporting secure mode
US20150310427A1 (en) Method, apparatus, and system for generating transaction-signing one-time password
CN111625829A (en) Application activation method and device based on trusted execution environment
CN106936588B (en) Hosting method, device and system of hardware control lock
JP4226556B2 (en) Program execution control device, OS, client terminal, server, program execution control system, program execution control method, program execution control program
CN111404696A (en) Collaborative signature method, security service middleware, related platform and system
KR101642267B1 (en) System for preventing forgery of application and method therefor
US20110154436A1 (en) Provider Management Methods and Systems for a Portable Device Running Android Platform
KR102543267B1 (en) Method and apparatus for white box cryptography
KR101473656B1 (en) Method and apparatus for security of mobile data
CN110602051B (en) Information processing method based on consensus protocol and related device
KR101906484B1 (en) Method for application security and system for executing the method
US20240113898A1 (en) Secure Module and Method for App-to-App Mutual Trust Through App-Based Identity
US20190199694A1 (en) Individual encryption of control commands
CN114244620A (en) Board card network access verification method and device and board card control center
CN107862209B (en) File encryption and decryption method, mobile terminal and device with storage function
CN116781359B (en) Portal security design method using network isolation and cryptograph
KR101296402B1 (en) Registration method for mobile otp device using encrypted seed
WO2018017019A1 (en) Personal security device and method
Park et al. Analyzing security of Korean USIM-based PKI certificate service
Sitawarin iOS Security
JP2018088574A (en) Method for protecting program image

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant