KR101906484B1 - Method for application security and system for executing the method - Google Patents
Method for application security and system for executing the method Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying 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
본 발명의 실시예는 보안 기술과 관련된다.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.
본 발명의 실시예는 어플리케이션 사용에 따른 보안성을 높일 수 있는 어플리케이션 보안 방법 및 이를 수행하기 위한 시스템을 제공하기 위한 것이다. 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
클라이언트 장치(102)는 사용자가 사용하는 통신 장치로서, 클라이언트 장치(102)의 예들은 휴대폰, 스마트폰, 태블릿, 웨어러블 기기, 랩톱 컴퓨터 등 서버 컴퓨팅 장치(104, 106)에 접속 가능한 다양한 유형의 유무선 통신 장치를 포함한다.The
클라이언트 장치(102)는 사용자에 의해 소정 어플리케이션을 서버 컴퓨팅 장치(예를 들어, 검증 서버(104) 또는 관리 서버(106) 또는 도 1에 도시되지 않은 다른 서버 컴퓨팅 장치 등)로부터 다운로드 받을 수 있다. 다운로드 받은 어플리케이션은 클라이언트 장치(102)의 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 어플리케이션은 클라이언트 장치(102)의 프로세서에 의해 실행 가능한 명령어의 소정의 집합을 포함한다. 상기 어플리케이션의 명령어들은 클라이언트 장치(102)의 프로세서에 의해 실행되는 경우, 프로세서로 하여금 예시적인 실시예에 따른 동작을 수행하게 할 수 있다. 상기 컴퓨터 판독 가능 저장 매체에는 클라이언트 장치(102) 상에서 상기 어플리케이션과 같은 명령어 집합을 실행하기 위한 운영 체제의 컴포넌트들을 포함한다. 예를 들어, 이러한 운영체제(Operation System)는 애플(Apple) 사의 iOS 또는 구글(Google) 사의 Android일 수 있다.The
클라이언트 장치(102)가 다운로드 받은 어플리케이션은 온라인 상에서 금융 거래(계좌 이체, 결제 등)와 같이 보안이 필요한 작업을 수행하기 위한 어플리케이션일 수 있다. 예를 들어, 다운로드 받은 어플리케이션은 인터넷 뱅킹 등을 위한 어플리케이션일 수 있다. 그러나, 다운로드 받은 어플리케이션에는 보안 관련 파일이 일부 생략(즉, 일부의 보안 관련 파일만 포함)될 수 있다. 즉, 다운로드 받은 어플리케이션은 온라인 상에서 보안이 필요한 작업을 수행하기 위한 것이나, 보안 관련 파일의 일부가 생략되어 보안 관련 작업을 정상적으로 또는 온전히 수행할 수 없는 상태의 것일 수 있다. 이하, 상기 다운로드 받은 어플리케이션은 보안 미비 어플리케이션이라 지칭될 수 있다. The application downloaded by the
예시적인 실시예에서, 보안 관련 파일은 정적 보안 관련 파일 및 동적 보안 관련 파일을 포함할 수 있다. 보안 미비 어플리케이션은 보안 관련 파일 중 정적 보안 관련 파일만 탑재되고 동적 보안 관련 파일은 탑재되지 않은 것일 수 있다. 여기서, 정적 보안 관련 파일은 보안 미비 어플리케이션의 기본적인 보안을 위한 파일일 수 있다. 정적 보안 관련 파일은 예를 들어, 사용자 인증, 접근 제어, 안티 디버깅(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
구체적으로, 클라이언트 장치(102)는 사용자에 의해 보안 미비 어플리케이션이 실행되는 경우, 보안 미비 어플리케이션에 대한 검증 요청을 검증 서버(104)로 전송할 수 있다. 검증 요청에는 보안 미비 어플리케이션의 식별 정보(예를 들어, 보안 미비 어플리케이션의 아이디 및 보안 미비 어플리케이션의 해쉬값 등)가 포함될 수 있다. 또한, 검증 요청에는 해당 클라이언트 장치(102)에 대해 고유한 암호화 관련 키 값을 생성하기 위한 관리 고유 정보가 더 포함될 수 있다. 예시적인 실시예에서, 관리 고유 정보는 해당 클라이언트 장치(102)의 고유 식별 정보일 수 있다. Specifically, when the non-secured application is executed by the user, the
여기서, 클라이언트 장치(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
클라이언트 장치(102)는 검증 서버(104)로부터 상기 검증 요청에 대한 검증 결과 관련 정보를 수신할 수 있다. 검증 결과 관련 정보에는 상기 검증 요청에 대한 검증 결과, 검증 시간, 및 암호화 관련 키 값이 포함될 수 있다. 여기서, 암호화 관련 키 값은 클라이언트 장치(102)의 고유 식별 정보를 해쉬화 한 값(즉, 해쉬값)일 수 있다. 암호화 관련 키 값은 검증 결과가 검증 성공인 경우에만 포함될 수 있다.The
클라이언트 장치(102)는 검증 결과 관련 정보를 확인하여 검증 결과가 검증 실패인 경우, 보안 미비 어플리케이션을 종료시킬 수 있다. 이때, 클라이언트 장치(102)는 보안 미비 어플리케이션이 종료됨을 사용자에게 알릴 수 있다. 클라이언트 장치(102)는 보안 미비 어플리케이션에 포함된 정적 보안 관련 파일에 기반하여 이러한 동작을 수행할 수 있다. 즉, 정적 보안 관련 파일에는 검증 실패인 경우 보안 미비 어플리케이션을 종료하도록 하는 명령어가 포함될 수 있다.The
이와 같이, 보안 미비 어플리케이션에 대해 검증을 수행하고, 검증이 실패하는 경우, 보안 미비 어플리케이션을 종료시킴으로써, 어플리케이션의 안전성(즉, 보안성)을 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
클라이언트 장치(102)는 관리 서버(106)로부터 암호화된 동적 보안 관련 파일 및 암호화 관련 키 값을 수신할 수 있다. 클라이언트 장치(102)는 암호화 관련 키 값으로 암호화된 동적 보안 관련 파일을 복호화 한 후 동적 보안 관련 파일을 컴퓨터 판독 가능 저장 매체에 로딩하고, 동적 보안 관련 파일을 실행할 수 있다. 클라이언트 장치(102)는 동적 보안 관련 파일을 실행한 후 동적 보안 관련 파일을 삭제할 수 있다. 여기서, 동적 보안 관련 파일은 컴퓨터 판독 가능 저장 매체(즉, 메모리)에 로딩된 상태에서 삭제되므로, 동적 보안 관련 파일이 디컴파일(decompile)되는 것을 원천적으로 방지할 수 있게 된다. 이 경우, 클라이언트 장치(102)의 메모리 자체를 해킹하지 않는 이상, 동적 보안 관련 파일이 제3자에게 유출되지 못하게 된다.The
한편, 동적 보안 관련 파일은 클라이언트 장치(102)의 메모리의 잔여 용량을 확인하고, 메모리의 잔여 용량이 동적 보안 관련 파일 전부를 로딩할 수 없는 경우, 동적 보안 관련 파일들 중 일부만을 메모리에 로딩하기 위한 명령어를 포함할 수 있다. 동적 보안 관련 파일은 메모리의 잔여 용량에 기반하여 동적 보안 관련 파일들 중 기 설정된 우선 순위에 따라 일부의 동적 보안 관련 파일을 메모리에 로딩할 수 있다. 예를 들어, 동적 보안 관련 파일이 백신 프로그램, 가상 키보드 프로그램 등을 포함하는 경우, 키를 입력하는 동안만 사용하는 가상 키보드 프로그램 보다 항상 동작되어야 하는 백신 프로그램을 우선하여 메모리에 로딩시킬 수 있다.On the other hand, the dynamic security-related file checks the remaining capacity of the memory of the
클라이언트 장치(102)는 보안 미비 어플리케이션의 최초 실행 시, 검증 서버(104)를 통해 해당 어플리케이션을 검증하면서 암호화 관련 키 값을 수신하며, 관리 서버(106)로 보안 파일 요청을 전송하여 클라이언트 장치(102)의 고유 식별 정보 및 암호화 관련 키 값을 등록할 수 있다. 또한, 클라이언트 장치(102)는 관리 서버(106)로부터 암호화된 동적 보안 관련 파일을 및 복호화 키를 수신하고, 복호화 키를 이용하여 암호화된 동적 보안 관련 파일을 복호화 시킬 수 있다. 이후에, 클라이언트 장치(102)는 온라인 상에서 금융 거래 또는 결제를 수행하기 위해 보안 미비 어플리케이션을 실행할 때 마다, 검증 서버(104)를 통해 검증을 수행하고, 관리 서버(106)로 동적 보안 파일 요청을 전송할 수 있다. 그러면, 관리 서버(106)는 보안 파일 요청에 포함된 클라이언트 장치(102)의 고유 식별 정보와 매칭된 암호화 관련 키 값을 추출하여 동적 보안 관련 파일을 암호화 하고, 암호화된 동적 보안 관련 파일 및 암호화 관련 키를 클라이언트 장치(102)로 전송하게 된다.The
검증 서버(104)는 각 클라이언트 장치(102)로 배포된 보안 미비 어플리케이션을 검증하는 역할을 할 수 있다. 구체적으로, 검증 서버(104)는 보안 미비 어플리케이션이 위조 또는 변조되었는지 여부를 확인할 수 있다. 검증 서버(104)는 소정 버전(Version)의 보안 미비 어플리케이션이 배포되기 전, 보안 미비 어플리케이션의 식별 정보(예를 들어, 보안 미비 어플리케이션의 아이디 및 보안 미비 어플리케이션의 해쉬값 등)를 저장할 수 있다. The
검증 서버(104)는 보안 미비 어플리케이션을 실행한 각 클라이언트 장치(102)로부터 검증 요청을 수신할 수 있다. 검증 서버(104)는 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보가 기 저장된 보안 미비 어플리케이션의 식별 정보와 일치하는지 여부를 확인하여 검증을 수행할 수 있다. The
구체적으로, 검증 서버(104)는 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보(예를 들어, 보안 미비 어플리케이션의 아이디 및 보안 미비 어플리케이션의 해쉬값)가 기 저장된 보안 미비 어플리케이션의 식별 정보와 일치하는 경우, 검증 성공으로 판단(즉, 해당 보안 미비 어플리케이션이 위조 또는 변조되지 않은 것으로 판단)할 수 있다. 검증 서버(104)는 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보가 기 저장된 보안 미비 어플리케이션의 식별 정보와 일치하지 않는 경우, 검증 실패로 판단(즉, 해당 보안 미비 어플리케이션이 위조 또는 변조된 것으로 판단)할 수 있다. Specifically, the
검증 서버(104)는 클라이언트 장치(102)의 검증 요청에 대응하여 검증 결과 관련 정보를 생성하고, 생성한 검증 결과 관련 정보를 클라이언트 장치(102)로 전송할 수 있다. 검증 결과 관련 정보에는 상기 검증 요청에 대한 검증 결과(즉, 검증 성공 또는 검증 실패), 검증 시간, 및 암호화 관련 키 값 등이 포함될 수 있다. The
검증 서버(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
한편, 검증 서버(104)는 이상 징후 판단 시, 클라이언트 장치(102)의 고유 식별 정보에 기 설정된 더미 관리 정보를 추가한 관리 고유 정보를 해쉬화 한 후, 이를 암호화 관련 키 값으로 설정할 수 있다. 이때, 관리 고유 정보는 클라이언트 장치(102)의 고유 식별 정보의 전단 또는 후단에 더미 관리 정보가 추가된 것일 수 있다. Meanwhile, when the anomaly indication is determined, the
즉, 검증 서버(104)는 평상 시에는 클라이언트 장치(102)의 고유 식별 정보를 관리 고유 정보로 하여 암호화 관련 키 값을 생성하고, 이상 징후 판단 시에는 클라이언트 장치(102)의 고유 식별 정보와 기 설정된 더미 관리 정보가 조합된 관리 고유 정보를 이용하여 암호화 관련 키 값을 생성할 수 있다. That is, the
검증 서버(104)는 각 클라이언트 장치(102) 별로 검증 요청에 따른 로그 정보를 관리할 수 있다. 로그 정보는 검증 요청 수신 시간, 검증 결과, 및 검증 결과 관련 정보 전송 시간 등이 포함될 수 있다. 검증 서버(104)는 검증 요청에 따른 로그 정보를 기반으로 이상 징후 여부를 판단할 수 있다. 예를 들어, 검증 서버(104)는 일정 시간 동안 각 클라이언트들의 검증 요청에 따른 검증 실패의 총 횟수가 기 설정된 제1 횟수를 초과하여 발생하는 경우 이상 징후가 발생한 것으로 판단할 수 있다. 또한, 검증 서버(104)는 소정 클라이언트 장치(102)에 대해 검증 요청에 따른 검증 실패가 기 설정된 제2 횟수를 초과하여 발생하는 경우 이상 징후가 발생한 것으로 판단할 수 있다. 여기서, 제1 횟수 및 제2 횟수는 서비스 가입자의 수 등을 고려하여 적절하게 설정될 수 있다. The
이와 같이, 이상 징후 발생 시 암호화 관련 키 값을 생성하는 규칙을 변경함으로써, 암호화 관련 키 값이 악의적인 제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
또한, 관리 서버(106)는 보안 파일 요청에 포함된 클라이언트 장치(102)의 운영 체제 관련 정보에 기반하여 동적 보안 관련 파일을 클라이언트 장치(102)로 전송할 수 있다. 관리 서버(106)는 운영 체제 종류 별로 운영 체제 버전에 따라 동적 보안 관련 파일들을 저장할 수 있다. 관리 서버(106)는 클라이언트 장치(102)의 운영 체제 관련 정보에 대응하는 동적 보안 관련 파일을 추출한 후, 추출한 동적 보안 관련 파일을 보안 파일 요청에 포함된 암호화 관련 키 값으로 암호화 할 수 있다. 그리고, 암호화된 동적 보안 관련 파일을 암호화 관련 키 값과 함께 클라이언트 장치(102)로 전송할 수 있다. 여기서, 암호화 관련 키 값은 클라이언트 장치(102)의 고유 식별 정보를 기반으로 생성된 것이기 때문에, 동적 보안 관련 파일은 클라이언트 장치(102) 별로 서로 다르게 암호화 및 복호화 되게 된다.The
한편, 관리 서버(106)는 보안 파일 요청을 전송한 클라이언트 장치(102)가 등록된 기기인 경우, 관리 서버(106)는 블록체인(108)으로부터 클라이언트 장치(102)의 고유 식별 정보와 매칭된 암호화 관련 키 값을 수신할 수 있다. 관리 서버(106)는 클라이언트 장치(102)의 운영 체제 관련 정보에 대응하는 동적 보안 관련 파일을 추출한 후, 추출한 동적 보안 관련 파일을 블록체인(108)으로부터 수신한 암호화 관련 키 값으로 암호화 할 수 있다. 그리고, 암호화된 동적 보안 관련 파일을 암호화 관련 키 값과 함께 클라이언트 장치(102)로 전송할 수 있다. 이와 같이, 관리 서버(106)에서 보안 파일 요청을 전송하는 클라이언트 장치(102)가 기 등록되었는지 여부를 확인하고, 해당 클라이언트 장치(102)의 고유 식별 정보와 매칭되는 암호화 관련 키 값을 이용하여 동적 보안 관련 파일을 암호화 함으로써, 어플리케이션의 안전성(즉, 보안성)을 2차 보장할 수 있게 된다.On the other hand, when the
블록체인(108)은 클라이언트 장치(102) 별로 암호화 관련 키 값을 관리할 수 있다. 블록체인(108)은 클라이언트 장치(102)를 블록체인(108)에 등록할 수 있다. 구체적으로, 블록체인(108)은 관리 서버(106)로부터 클라이언트 장치(102)의 고유 식별 정보를 수신한 경우, 상기 고유 식별 정보를 기반으로 해당 클라이언트 장치(102)의 등록 여부를 확인할 수 있다. 해당 클라이언트 장치(102)가 등록되지 않은 기기인 경우, 블록체인(108)은 관리 서버(106)로부터 암호화 관련 키 값을 수신하고, 클라이언트 장치(102)의 고유 식별 정보와 암호화 관련 키 값을 매칭하여 해당 클라이언트 장치(102)를 등록할 수 있다. The
즉, 클라이언트 장치(102)는 최초 보안 파일 요청 시 보안 파일 요청에 클라이언트 장치(102)의 고유 식별 정보와 함께 암호화 관련 키 값을 포함시킬 수 있다. 여기서, 클라이언트 장치(102)는 검증 서버(104)에서 검증 성공인 경우에만 암호화 관련 키 값을 수신하여 전송하기 때문에, 블록체인(108)은 검증된 클라이언트 장치(102)를 등록하게 된다.That is, the
한편, 해당 클라이언트 장치(102)가 등록된 기기인 경우, 블록체인(108)은 해당 클라이언트 장치(102)의 고유 식별 정보와 매칭된 암호화 관련 키 값을 추출하고, 추출한 암호화 관련 키 값을 관리 서버(106)로 전송할 수 있다. On the other hand, when the
블록체인(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
복수 개의 분산 노드(108b)는 클라이언트 장치(102) 별로 고유 식별 정보와 암호화 관련 키 값을 매칭하여 저장할 수 있다. 복수 개의 분산 노드(108b)는 블록체인 기술에 기반하여 클라이언트 장치(102) 별로 고유 식별 정보와 암호화 관련 키 값을 저장할 수 있다. 이 경우, 암호화 관련 키 값의 무결성을 확보할 수 있게 되며, 암호화 관련 키 값이 해킹 또는 도용되는 것을 방지할 수 있게 된다.The plurality of distributed
본 발명의 실시예에 의하면, 클라이언트 장치(102)로 보안 미비 어플리케이션을 배포하고, 보안 미비 어플리케이션의 실행 시마다 암호화된 동적 보안 관련 파일을 전송해줌으로써, 클라이언트 장치(102) 내에 탑재된 어플리케이션의 보안 노출을 최소화 할 수 있고, 해당 어플리케이션의 보안 관련 파일이 악의적인 제3자에 의해 탈취되거나 도용되는 것을 방지할 수 있게 된다.According to the embodiment of the present invention, security-poor applications are distributed to the
또한, 검증 서버(104)에서 보안 미비 어플리케이션의 검증을 수행하고, 그에 따라 암호화 관련 키 값을 클라이언트 장치(102)로 전송해줌으로써, 해당 어플리케이션의 위조 또는 변조 여부에 대한 무결성 여부를 확인할 수 있게 된다. 또한, 암호화 관련 키 값을 클라이언트 장치(102)의 고유 식별 정보를 기반으로 생성함으로써, 각 클라이언트 장치(102) 마다 서로 다르게 암호화 및 복호화가 이루어지도록 할 수 있으며, 그로 인해 어플리케이션 사용에 따른 보안성을 높일 수 있게 된다.In addition, the
또한, 클라이언트 장치(102)로 보안 미비 어플리케이션을 배포함으로써, 클라이언트 장치(102)로 배포하는 어플리케이션의 크기를 최소화 할 수 있고, 동적 보안 관련 파일이 변경 또는 업데이트되는 경우에도 어플리케이션을 다시 다운로드 받을 필요가 없으며, 어플리케이션 실행 시 업데이트된 동적 보안 관련 파일을 자동으로 수신하여 실행할 수 있게 된다.In addition, by distributing the security-critical application to the
한편, 여기서는 블록체인(108)이 각 클라이언트 장치(102) 별로 고유 식별 정보를 암호화 관련 키 값과 매칭하여 저장하는 것으로 설명하였으나, 이에 한정되는 것은 아니며 관리 서버(106)가 각 클라이언트 장치(102) 별로 고유 식별 정보를 암호화 관련 키 값과 매칭하여 저장할 수도 있다.However, the present invention is not limited to this. The
또한, 여기서는 보안 미비 어플리케이션이 정적 보안 관련 파일은 탑재되고, 동적 보안 관련 파일은 탑재되지 않은 것으로 설명하였으나, 정적 보안 관련 파일 및 동적 보안 관련 파일이 모두 탑재되지 않은 것일 수도 있다. 즉, 보안 미비 어플리케이션은 보안 관련 파일 자체가 탑재되지 않을 것을 수 있다. 이 경우, 클라이언트 장치(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
도 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
다음으로, 클라이언트 장치(102)는 보안 미비 어플리케이션과 관련된 검증 요청을 검증 서버(104)로 전송한다(S 103). 클라이언트 장치(102)는 사용자에 의해 보안 미비 어플리케이션이 실행되는 경우, 검증 요청을 검증 서버(104)로 전송할 수 있다. 클라이언트 장치(102)에서 보안 미비 어플리케이션이 최초 실행되는 경우, 클라이언트 장치(102)는 보안 미비 어플리케이션의 식별 정보 및 클라이언트 장치(102)의 고유 식별 정보를 포함하는 검증 요청을 검증 서버(104)로 전송할 수 있다. Next, the
다음으로, 검증 서버(104)는 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보와 기 저장된 보안 미비 어플리케이션의 식별 정보를 비교하여 검증을 수행한다(S 105). Next, the
단계 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
다음으로, 검증 서버(104)는 검증 결과 관련 정보를 클라이언트 장치(102)로 전송한다(S 109). 검증 결과 관련 정보에는 검증 요청에 대응하는 검증 결과 값, 검증 시간, 및 암호화 관련 키 값 등이 포함될 수 있다. 단계 S 105의 수행 결과, 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보와 기 저장된 보안 미비 어플리케이션의 식별 정보가 일치하지 않는 경우, 검증 서버(104)는 검증 결과 관련 정보에 암호화 관련 키 값을 포함시키지 않을 수 있다. 또한, 검증 서버(104)는 클라이언트 장치(102)의 검증 요청에 따른 로그 정보를 관리할 수 있다.Next, the
도 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
다음으로, 관리 서버(106)는 보안 파일 요청에 포함된 클라이언트 장치(102)의 고유 식별 정보를 추출한 후, 추출한 클라이언트 장치(102)의 고유 식별 정보를 블록체인(108)으로 전송한다(S 203). Next, the
다음으로, 블록체인(108)은 클라이언트 장치(102)의 고유 식별 정보와 매칭되는 암호화 관련 키 값이 있는 경우(즉, 해당 클라이언트 장치(102)가 등록되어 있는 경우), 해당 암호화 관련 키 값을 추출하여 관리 서버(106)로 전송한다(S 205). 한편, 클라이언트 장치(102)의 고유 식별 정보와 매칭되는 암호화 관련 키 값이 없는 경우(즉, 해당 클라이언트 장치(102)가 등록되어 있지 않는 경우), 블록체인(108)은 관리 서버(106)로부터 암호화 관련 키 값을 수신하고, 클라이언트 장치(102)의 고유 식별 정보와 암호화 관련 키 값을 매칭하여 해당 클라이언트 장치(102)를 등록할 수 있다.Next, the
다음으로, 관리 서버(106)는 보안 파일 요청에 포함된 클라이언트 장치(102)의 운영 체제 관련 정보에 대응하는 동적 보안 관련 파일을 추출한다(S 207). 즉, 관리 서버(106)는 클라이언트 장치(102)의 운영 체제 종류 및 운영 체제 버전에 대응하는 동적 보안 관련 파일을 추출할 수 있다. Next, the
다음으로, 관리 서버(106)는 추출한 동적 보안 관련 파일을 블록체인(108)으로부터 수신한 암호화 관련 키 값을 이용하여 암호화 하고(S 209), 암호화된 동적 보안 관련 파일 및 암호화 관련 키 값(즉, 복호화 키 값)을 클라이언트 장치(102)로 전송한다(S 211). Next, the
다음으로, 클라이언트 장치(102)는 수신한 복호화 키를 이용하여 암호화된 동적 보안 관련 파일을 복호화 한다(S 213). 그리고, 복호화 된 동적 보안 관련 파일을 메모리에 로딩하여 동적 보안 관련 파일을 실행한 후 삭제한다(S 215). Next, the
도 4는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되는 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.4 is a block diagram illustrating and illustrating a
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 클라이언트 장치(예를 들어, 클라이언트 장치(102))일 수 있다. 또한, 컴퓨팅 장치(12)는 서버 컴퓨팅 장치(예를 들어, 검증 서버(104) 또는 관리 서버(106))일 수 있다.The illustrated
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.The
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.The computer-
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.The
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.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.
상기 검증 요청은,
상기 보안 미비 어플리케이션의 식별 정보 및 상기 클라이언트 장치의 고유 식별 정보를 포함하는, 어플리케이션 보안 시스템.
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.
상기 검증 서버는,
상기 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보와 기 저장된 보안 미비 어플리케이션의 식별 정보를 비교하여 검증을 수행하고, 검증 결과에 따라 상기 클라이언트 장치의 고유 식별 정보를 기반으로 암호화 관련 키 값을 생성하며, 상기 검증 결과 및 상기 암호화 관련 키 값을 포함하는 검증 결과 관련 정보를 상기 클라이언트 장치로 전송하는, 어플리케이션 보안 시스템.
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.
상기 검증 서버는,
이상 징후 발생 시 상기 클라이언트 장치의 고유 식별 정보 및 기 설정된 더미 관리 정보가 조합된 관리 고유 정보를 기반으로 암호화 관련 키 값을 생성하는, 어플리케이션 보안 시스템.
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.
상기 검증 서버는,
일정 시간 동안 각 클라이언트들의 검증 요청에 따른 검증 실패의 총 횟수가 기 설정된 제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.
상기 검증 서버는,
상기 클라이언트 장치에 대해 검증 요청에 따른 검증 실패가 기 설정된 제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.
상기 보안 파일 요청은,
상기 클라이언트 장치의 고유 식별 정보, 상기 암호화 관련 키 값, 및 상기 클라이언트 장치의 운영 체제 관련 정보를 포함하는, 어플리케이션 보안 시스템.
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.
상기 관리 서버는,
상기 클라이언트 장치의 운영 체제 관련 정보에 대응하는 동적 보안 관련 파일을 추출하고, 상기 추출한 동적 보안 관련 파일을 상기 암호화 관련 키 값을 이용하여 암호화 하며, 상기 암호화 된 동적 보안 관련 파일 및 상기 암호화 관련 키 값을 상기 클라이언트 장치로 전송하는, 어플리케이션 보안 시스템.
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.
상기 보안 파일 요청은,
상기 클라이언트 장치의 고유 식별 정보, 상기 클라이언트 장치의 고유 식별 정보를 기반으로 생성되는 암호화 관련 키 값, 및 상기 클라이언트 장치의 운영 체제 관련 정보 중 적어도 하나를 포함하는, 어플리케이션 보안 시스템.
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.
상기 어플리케이션 보안 시스템은,
상기 관리 서버로부터 각 클라이언트 장치의 고유 식별 정보 및 암호화 관련 키 값을 수신하고, 각 클라리언트 장치의 고유 식별 정보를 해당 암호화 관련 키 값과 각각 매칭하여 저장하는 블록체인을 더 포함하는, 어플리케이션 보안 시스템.
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.
상기 관리 서버는,
상기 보안 파일 요청에 포함된 상기 클라이언트 장치의 고유 식별 정보를 상기 블록체인으로 전송하고,
상기 블록체인은, 상기 클라이언트 장치의 고유 식별 정보와 매칭된 암호화 관련 키 값을 추출하여 상기 관리 서버로 전송하며,
상기 관리 서버는, 상기 클라이언트 장치의 운영 체제 관련 정보에 대응하는 동적 보안 관련 파일을 추출하고, 상기 추출한 동적 보안 관련 파일을 상기 블록체인으로부터 수신한 암호화 관련 키 값을 이용하여 암호화 하며, 상기 암호화 된 동적 보안 관련 파일 및 상기 암호화 관련 키 값을 상기 클라이언트 장치로 전송하는, 어플리케이션 보안 시스템.
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.
상기 정적 보안 관련 파일은,
상기 보안 미비 어플리케이션의 실행 시 상기 검증 요청을 상기 검증 서버로 전송하기 위한 명령어; 및
상기 검증 결과 관련 정보의 확인 결과, 상기 보안 미비 어플리케이션에 대한 검증이 실패한 경우, 상기 보안 미비 어플리케이션을 종료시키는 명령어를 포함하는, 어플리케이션 보안 시스템.
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.
상기 검증 요청은,
상기 보안 미비 어플리케이션의 식별 정보 및 상기 클라이언트 장치의 고유 식별 정보를 포함하는, 어플리케이션 보안 방법.
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.
상기 검증 결과 관련 정보는,
상기 검증 요청에 포함된 보안 미비 어플리케이션의 식별 정보와 기 저장된 보안 미비 어플리케이션의 식별 정보를 비교하여 검증을 수행한 검증 결과 및 상기 클라이언트 장치의 고유 식별 정보를 기반으로 생성한 암호화 관련 키 값을 포함하는, 어플리케이션 보안 방법.
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.
상기 보안 파일 요청은,
상기 클라이언트 장치의 고유 식별 정보, 상기 암호화 관련 키 값, 및 상기 클라이언트 장치의 운영 체제 관련 정보를 포함하는, 어플리케이션 보안 방법.
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.
상기 정적 보안 관련 파일은,
상기 보안 미비 어플리케이션의 실행 시 상기 검증 요청을 전송하기 위한 명령어; 및
상기 검증 결과 관련 정보의 확인 결과, 상기 보안 미비 어플리케이션에 대한 검증이 실패한 경우, 상기 보안 미비 어플리케이션을 종료시키는 명령어를 포함하는, 어플리케이션 보안 방법.
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.
상기 암호화 관련 키 값을 생성하는 단계는,
상기 검증의 결과가 검증 성공인 경우, 상기 클라이언트 장치의 고유 식별 정보를 해쉬화 하여 생성하는, 어플리케이션 보안 방법.
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.
상기 암호화 관련 키 값을 생성하는 단계는,
각 클라이언트 장치의 검증 요청에 따른 로그 정보를 기반으로 이상 징후 여부를 판단하는 단계; 및
상기 이상 징후 발생 시, 상기 클라이언트 장치의 고유 식별 정보 및 기 설정된 더미 관리 정보가 조합된 관리 고유 정보를 기반으로 암호화 관련 키 값을 생성하는 단계를 포함하는, 어플리케이션 보안 방법.
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.
상기 보안 파일 요청은,
상기 클라이언트 장치의 고유 식별 정보 및 상기 클라이언트 장치의 운영 체제 관련 정보를 포함하고,
상기 암호화된 동적 보안 관련 파일을 상기 클라이언트 장치로 전송하는 단계는,
상기 클라이언트 장치의 운영 체제 관련 정보와 대응하는 동적 보안 관련 파일을 추출하는 단계; 및
상기 추출한 동적 보안 관련 파일을 상기 수신한 암호화 관련 키 값으로 암호화하는 단계를 포함하는, 어플리케이션 보안 방법.
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.
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)
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)
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)
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 |
-
2017
- 2017-03-07 KR KR1020170028955A patent/KR101906484B1/en active IP Right Grant
-
2018
- 2018-02-28 WO PCT/KR2018/002420 patent/WO2018164408A1/en active Application Filing
Patent Citations (1)
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 |