Nothing Special   »   [go: up one dir, main page]

KR20220081068A - 암복호화 키를 이용한 어플리케이션 보안 장치 및 방법 - Google Patents

암복호화 키를 이용한 어플리케이션 보안 장치 및 방법 Download PDF

Info

Publication number
KR20220081068A
KR20220081068A KR1020200170515A KR20200170515A KR20220081068A KR 20220081068 A KR20220081068 A KR 20220081068A KR 1020200170515 A KR1020200170515 A KR 1020200170515A KR 20200170515 A KR20200170515 A KR 20200170515A KR 20220081068 A KR20220081068 A KR 20220081068A
Authority
KR
South Korea
Prior art keywords
identification information
application
encryption
decryption key
string
Prior art date
Application number
KR1020200170515A
Other languages
English (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 KR1020200170515A priority Critical patent/KR20220081068A/ko
Publication of KR20220081068A publication Critical patent/KR20220081068A/ko

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Technology Law (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Telephone Function (AREA)

Abstract

어플리케이션 보호를 위한 암복호화 키를 생성하는 방법과 장치가 개시된다. 암호화 키 생성방법은 어플리케이션을 배포하는 서버에 있는 어플리케이션으로부터 앱 식별정보를 추출하는 단계와, 어플리케이션을 수용하는 기기의 SIM 카드 정보로부터 사용자 식별정보를 추출하는 단계와, 앱 식별정보와 사용자 식별정보에 기반하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성하는 단계와, 문자열, 숫자열, 또는 임의의 바이트 조합에 해쉬함수를 적용하여 암호화 키를 생성하는 단계를 포함한다. 암호화 키 생성장치는 어플리케이션의 적어도 하나의 파일에서 추출되는 앱 식별정보와 어플리케이션을 수용하는 기기의 SIM 카드 정보로부터 추출되는 사용자 식별정보를 생성하는 규칙을 저장하는 키 생성 로직부와, 상기 규칙과 SIM 카드 정보를 기반으로 암호화 키를 생성하는 암호화 키 생성부와, 복호화 키를 생성하는 복호화 키 생성부를 포함한다.

Description

암복호화 키를 이용한 어플리케이션 보안 장치 및 방법{Application security device and method using encryption/decryption key}
본 발명은 어플리케이션(Application) 불법도용을 방지하기 위한 기술에 관한 것으로, 더 상세하게는 암복호화 키를 이용한 어플리케이션 보안 장치 및 방법에 관한 것이다.
데이터 전송 시, 타인의 불법적인 방법에 의해 데이터가 손실되거나 변경되는 것을 방지하기 위한 기술로서 데이터를 쉽게 조작할 수 없도록 다른 형태로 변환하여 전송하고 데이터를 수신하는 쪽에서는 이를 원래의 형태대로 복원하는 방법이 연구되어 왔다.
이를 암호화 및 복호화라고 하며, 암호화 방식은 크게 대칭형 암호화 방식의 비밀키 암호화 기법(Symmetric Key Cryptography)과 비대칭형 암호화 방식의 공개키 암호화 기법(Asymmetric Key Cryptography)으로 나뉘어진다.
비밀키(Private Key) 암호화 기법은 동일한 키로 암호화와 복호화를 수행하는 방법으로 보안 유지와 키 관리에 어려움이 있으나 알고리즘이 간단해 암호화 속도가 빠르고 용량이 작아 경제적이다.
즉, 하나의 비밀키로 암호화 및 복호화를 해야 하므로 비밀 통신을 하는 당사자들만이 키를 안전하게 공유해야 한다. 그래서 이 방법을 비밀키 암호 시스템(Secret Key Cryptosystem)이라고도 한다. 대표적인 알고리즘으로 DES(Data Encryption Standard)와, DES의 단점을 일부 보완한 Triple DES와 AES(Advanced Encryption
Standard) 등이 있다.
공개키(Public Key) 암호화 기법은 공개되는 공개키와 본인만 사용하는 비밀키(Private Key)로 구성되는 것으로 공개키와 비밀키를 별도로 관리하기 때문에 키 관리가 용이하며 암호화와 사용자 인증이 동시에 이뤄진다는 특징이 있다. 이는 전자 문서의 디지털서명, 부인봉쇄에 사용된다. 그러나 알고리즘이 복잡해 속도가 느리다는 단점을 가지고 있다.
즉, 각 사용자 주체마다 두 개의 키가 존재하여, 각 사용자마다 키쌍(Key Pair)인 공개키(Public Key)와 개인키(Private Key)를 유지해야 한다. 대표적인 알고리즘으로는 RSA(Rivest Shamir Adleman), ECC(Elliptic Curve Cryptosystem) 등이 있다.
한편, 스마트폰 어플리케이션 분야에서는 최근 앱 마켓의 성장과 함께 앱 불법 복제 및 사용에 의한 피해도 급격히 증가하고 있다. 불법 복제된 앱 실행을 차단하여, 앱 저작권 침해에 따른 피해를 줄이기 위해 Google의 LVL(License Verification Library), SKT의 ARM(Application DRM) 등의 라이브러리가 제공되었다. 하지만 안드로이드 앱은 안드로이드 운영체제의 개방성으로 인하여 역컴파일에 의한 변조 및 재패키징이 용이하기 때문에 라이브러리 수준의 불법 실행 차단 기술들이 우회될 가능성이 높다고 할 수 있다.
이를 개선하기 위하여, Google은 앱 개발자들에게 코드 난독화 도구인 ProGuard를 사용할 것을 권유하였다. 하지만 이는 앱을 역분석하는데 소요되는 시간은 지연시켰으나 완전히 차단하지는 못하였다.
암호화 기반의 앱 역분석 방지 기법은 꾸준히 연구되었으나 암복호화에 사용된 키가 노출되면 그 기법 또한 무력화될 수 있다. 더구나 하나의 스마트폰을 통해 구매한 앱들이 동일한 키로 암호화되므로 일단 키가 노출되고 나면, 해당 스마트폰의 모든 앱들이 복호화되어 불법 복제될 수 있다. 따라서, 서버에서 생성한 비밀키를 스마트폰에 저장하여 관리하는 추가적인 키 관리 기술을 필요로 하게 된다.
이를 위하여 MTM(Mobile Trusted Module)을 통한 안전한 저장소(Secure Storage)를 사용한 개인키 관리방법이 있지만, 커널과 하드웨어의 수정 및 지원이 필요하기 때문에 적용상 한계점이 존재한다.
본 발명의 목적은 소프트웨어(Software)의 고유 식별정보인 버스마크(Birthmark)와 기기의 고유한 식별정보를 기반으로 하여 암호화 키를 생성하는 방법을 제공하는 것에 있다.
또한, 본 발명의 다른 목적은 소프트웨어(Software)의 고유 식별정보인 버스마크(Birthmark)와 기기의 고유한 식별정보를 기반으로 하여 복호화 키를 생성하는 방법을 제공하는 것에 있다.
또한, 본 발명의 또 다른 목적은 상기 암복호화 키를 생성하는 방법을 수행할 수 있는 키 생성장치를 제공하는 것에 있다.
상술한 본 발명의 목적을 달성하기 위한 일 측면에 따른 암호화 키 생성방법은, 어플리케이션을 배포하는 서버에 있는 어플리케이션으로부터 앱 식별정보를 추출하는 단계와, 어플리케이션을 수용하는 기기의 SIM 카드 정보로부터 사용자 식별정보를 추출하는 단계와, 앱 식별정보와 사용자 식별정보에 기반하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성하는 단계와, 문자열, 숫자열, 또는 임의의 바이트 조합에 해쉬 함수를 적용하여 암호화 키를 생성하는 단계를 포함하여 구성될 수 있다.
여기에서, 상기 어플리케이션은 APK(Android Package) 파일 형식일 수 있다.
여기에서, 상기 앱 식별정보를 추출하는 단계는, 어플리케이션의 매니페스트 파일에서 앱 식별정보를 추출할 수 있다.
또한, 상기 앱 식별정보를 추출하는 단계는, 어플리케이션의 실행파일(Executable File)을 제외한 적어도 하나의 파일에서 앱 식별정보를 추출할 수 있다.
여기에서, 상기 사용자 식별정보를 추출하는 단계는, SIM 카드의 IMSI(International Mobile Station Identity) 정보를 기반으로 사용자 식별정보를 추출할 수 있다.
또한, 상술한 본 발명의 다른 목적을 달성하기 위한 일 측면에 따른 복호화 키 생성방법은, 어플리케이션을 수용한 기기에 있는 어플리케이션으로부터 앱 식별정보를 추출하는 단계와, 기기의 SIM 카드 정보로부터 사용자 식별정보를 추출하는 단계와, 앱 식별정보와 사용자 식별정보에 기반하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성하는 단계와, 문자열, 숫자열, 또는 임의의 바이트 조합에 해쉬 함수를 적용하여 복호화 키를 생성하는 단계를 포함하여 구성될 수 있다.
여기에서, 상기 어플리케이션은 APK(Android Package) 파일 형식일 수 있다.
여기에서, 상기 앱 식별정보를 추출하는 단계는, 어플리케이션의 매니페스트 파일에서 앱 식별정보를 추출할 수 있다.
또한, 상기 앱 식별정보를 추출하는 단계는, 어플리케이션 실행시, 어플리케이션의 실행파일(Executable File)을 제외한 적어도 하나의 파일에서 앱 식별정보를 추출할 수 있다.
여기에서, 상기 사용자 식별정보를 추출하는 단계는, SIM 카드의 IMSI(International Mobile Station Identity) 정보를 기반으로 사용자 식별정보를 추출할 수 있다.
또한, 상술한 본 발명의 또 다른 목적을 달성하기 위한 일 측면에 따른 키 생성장치는, 어플리케이션의 적어도 하나의 파일에서 추출되는 앱 식별정보와 어플리케이션을 수용하는 기기의 SIM 카드 정보로부터 추출되는 사용자 식별정보를 생성하는 규칙을 저장하는 키 생성 로직부와, 키 생성 로직부가 저장하는 규칙과 SIM 카드 정보를 기반으로 암호화 키를 생성하는 암호화 키 생성부와, 키 생성 로직부가 저장하는 규칙과 SIM 카드 정보를 기반으로 복호화 키를 생성하는 복호화 키 생성부를 포함하여 구성될 수 있다.
여기에서, 상기 키 생성 로직부는, 어플리케이션에서 암호화의 대상이 되는 파일 및 앱 식별정보를 추출할 적어도 하나의 파일을 선택하는 규칙을 미리 설정하고 있을 수 있다.
여기에서, 상기 암호화 키 생성부는, 규칙에 기반하여 어플리케이션을 배포하는 서버에 있는 어플리케이션의 적어도 하나의 파일에서 앱 식별정보를 추출하는 제1 앱 식별정보 추출부와, 추출된 앱 식별정보와 사용자 식별정보에 기반하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성하는 제1 스트링 데이터 생성부와, 문자열, 숫자열, 또는 임의의 바이트 조합에 해쉬 함수를 적용하여 암호화 키를 생성하는 제1 해쉬코드 생성부를 포함하여 구성될 수 있다.
나아가, 상기 제1 앱 식별정보 추출부는, 어플리케이션의 매니페스트 파일에서 앱 식별정보를 추출할 수 있다.
또 나아가, 상기 제1 스트링 데이터 생성부는, SIM 카드의 IMSI(International Mobile Station Identity) 정보를 기반으로 하여 추출된 사용자 식별정보를 사용하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성할 수 있다.
여기에서, 상기 복호화 키 생성부는, 규칙에 기반하여 어플리케이션을 수용한 기기에 있는 어플리케이션의 적어도 하나의 파일에서 앱 식별정보를 추출하는 제2 앱 식별정보 추출부와, 추출된 앱 식별정보와 사용자 식별정보에 기반하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성하는 제2 스트링 데이터 생성부와, 문자열, 숫자열, 또는 임의의 바이트 조합에 해쉬 함수를 적용하여 복호화 키를 생성하는 제2 해쉬코드 생성부를 포함하여 구성될 수 있다.
나아가, 상기 제2 앱 식별정보 추출부는, 어플리케이션의 매니페스트 파일에서 앱 식별정보를 추출할 수 있다.
또 나아가, 상기 제2 스트링 데이터 생성부는, SIM 카드의 IMSI(International Mobile Station Identity) 정보를 기반으로 하여 추출된 사용자 식별정보를 사용하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성할 수 있다.
상기와 같은 본 발명에 따른 암복호화 키 생성방법을 사용하면, 키의 저장 및 전송과정에서 키가 유출될 가능성을 원천적으로 봉쇄할 수 있고, 복호화 키가 유출되어 어플리케이션의 불법도용이 이루어지더라도 그 피해를 최소화할 수 있다는 장점이 있다.
또한, 상기와 같은 본 발명에 따른 키 생성장치를 사용하면, 각 소프트웨어와 기기마다 다른 암복호화 키를, 필요할 때마다 생성할 수 있으므로 키의 저장과 전송에 추가적인 기술과 자원을 필요로 하지 않는다는 장점이 있다.
이는 또한, 기기 고유정보만을 기반으로 하여 암호화 키를 생성하는 경우, 모든 어플리케이션이 동일한 키로 암호화될 수 있는 단점을 극복한 것이다.
도 1은 본 발명의 일 실시예에 따른 어플리케이션의 암호화 키 생성 환경의 구성요소들을 설명하기 위한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 어플리케이션의 암호화 키 생성방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 어플리케이션의 복호화 키 생성방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 어플리케이션의 식별정보를 추출하는 방법과 암복호화 키 생성방법을 설명하기 위한 예시도이다.
도 5는 본 발명의 일 실시예에 따른 암복호화 키 생성방법을 설명하기 위한 예시도이다.
도 6은 본 발명의 일 실시예에 따른 키 생성장치를 설명하기 위한 블록도이다.
도 7은 본 발명의 일 실시예에 따른 키 생성 로직부의 암복호화 키 생성 프로토콜을 설명하기 위한 예시도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
먼저, 본 출원에서 사용되는 용어를 간략히 설명하면 다음과 같다.
APK(Android Application Package)는 구글(Google)의 안드로이드 운영체제(Android Operating System) 상에서 어플리케이션이나 미들웨어를 설치(Installation)하고 컨텐츠를 배포(Distribution)하기 위하여 사용되는 파일형태(File Format)이다. 즉, APK 파일은 윈도 운영체제(Windows Operating System)에서의 MSI(Microsoft
Installer) 파일과 유사하다.
APK 파일(예를 들어, sampleapk)을 만들기 위한 프로그램이 구동되면, 모든 구성부분이 되는 파일들이 하나의 APK 파일로 패키징된다. APK 파일은 프로그램의 실행코드(예를 들어, sampledex), 리소스(resources), 매니페스트 파일(Manifest File) 등을 모두 포함하고 있다.
또한 상기 사용된 용어로서 매니페스트 파일을 설명하면 다음과 같다. 하나의 어플리케이션(Application) 안에는 여러 개의 소프트웨어 컴포넌트(Software Components)들이 존재하게 된다. 특정한 소프트웨어 컴포넌트를 시작하기 위해서는 어플리케이션 안에 해당 소프트웨어 컴포넌트가 존재하는지를 먼저 파악해야 하는데, 매니페스트 파일은 어플리케이션 내에 존재하는 소프트웨어 컴포넌트들의 목록을 가지고 있어, 이들을 매니페스트 파일 하나로 관리할 수 있게끔 한 것이다.
즉 소프트웨어 패키징(Software Packaging)에 있어서, 컨텐츠의 배포 목록을 파일 형태로 만들어 놓은 것이 매니페스트 파일이라고 볼 수 있으며, 배포되는 파일들의 정보를 단순히 열거하고 있다.
본 발명에서 사용되는 용어로서 버스마크(Birthmark)란 어플리케이션(Application) 프로그램(Program)을 식별할 수 있는 고유한 특징정보로서, 소프트웨어(Software) 버스마크(Birthmark)를 일컫는 것이다. 소프트웨어 개발자 등이 추가한 정보 등 추가적인 정보 없이 어플리케이션 프로그램 자체만으로 고유하게 추출할 수 있다는 것이 특징이다.
SIM(Subscriber Identification Module)은 가입자 식별 모듈을 일컫는 것으로 GSM(Global System for Mobilecommunications) 단말기의 필수 요소이다. 주로 IC 카드(Integrated Circuit Card) 형태로 구현될 수 있다.
SIM 카드는 보통 단말기 뒤에 들어가는 슬롯이 있고, 이에 끼워 넣는 작은 카드이다.
IMSI(International Mobile Station Identity)는 국제 이동국 식별 번호를 일컫는 것으로GSM 서비스 가입 시에 이동 단말기에 할당되는 고유한 15자리 식별 번호이다. 이 번호는 이동 국가 코드, 이동 네트워크 코드, 이동 가입자 식별 번호 및 국가 이동 가입자 식별 번호로 구성된다.
프로토콜(Protocol)이란 정보기기, 즉 컴퓨터 상호간 정보교환이 필요한 경우, 이를 원활하게 하기 위하여 정한 여러 가지 통신규칙과 방법에 대한 약속을 일컫는다. 구체적으로는 상호간의 접속이나 데이터 전달방식, 통신방식, 주고받을 자료의 형식, 오류검출방식, 코드변환방식, 전송속도 등에 대하여 정하는 것을 말한다.
스트링(String) 데이터(Data)란 데이터 타입이 문자열이나 비트열 같은 스트링값을 가지는 데이터를 말한다.
해쉬 함수(Hash Function)란 주어진 원문에서 고정된 길이의 난수를 생성하는 연산기법이다. 생성된 값은 해쉬값 혹은 해쉬코드라고 한다. 통신회선을 통해서 데이터를 주고받을 때, 송신측과 수신측의 양쪽 끝에서 데이터의 해쉬값을 구해서 비교하면, 전송 도중 조작 여부를 확인할 수 있다. 해쉬값에서 원문을 재현할 수는 없기 때문에 통신의 암호화 수단에 사용되고 있다.
도 1은 본 발명의 일 실시예에 따른 어플리케이션(110)의 암호화 키 생성 환경의 구성요소들을 설명하기 위한 개념도이다. 도 1을 참조하여 암호화 키 생성 환경에서의 구성요소들을 간략하게 살펴보면 다음과 같다.
어플리케이션을 배포하는 서버(100)는 어플리케이션을 수용하는 기기(200)에 배포할 어플리케이션(110)을 준비하고 있다. 키 생성장치(300)는 어플리케이션을 배포하는 서버(100)로부터 어플리케이션(110)의 식별정보를 추출할 수 있다. 또한 키 생성장치(300)는 어플리케이션을 수용하는 기기(200)의 SIM 카드(210) 정보로부터 사용자 식별정보를 추출할 수 있다.
키 생성장치(300)는 상기 추출한 앱 식별정보와 사용자 식별정보에 기반하여 암호화 키를 생성할 수 있고, 생성된 암호화 키는 서버(100)에 송신될 수 있다.
암호화 키를 수신한 서버(100)는 암호화 키를 이용하여 배포할 어플리케이션(110)에서 암호화의 대상이 되는 파일을 암호화하여 어플리케이션을 기기(200)에 송신하고, 기기(200)는 암호화된 어플리케이션을 수신할 수 있다.
도 2는 본 발명의 일 실시예에 따른 어플리케이션의 암호화 키 생성방법을 설명하기 위한 흐름도이다. 도 2를 참조하여 암호화 키 생성 방법을 상세하게 살펴보면 다음과 같다.
암호화 키 생성방법은, 어플리케이션을 배포하는 서버(100)에 있는 어플리케이션(110)으로부터 앱 식별정보를 추출하는 단계(S210)와, 어플리케이션(110)을 수용하는 기기(200)의 SIM 카드(210) 정보로부터 사용자 식별정보를 추출하는 단계(S220)와, 앱 식별정보와 사용자 식별정보에 기반하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성하는 단계(S230)와, 문자열, 숫자열, 또는 임의의 바이트 조합에 해쉬 함수를 적용하여 암호화 키를 생성하는 단계(S240)를 포함하여 구성될 수 있다.
배포되는 어플리케이션(110)은 APK(Android Package) 파일 형식일 수 있다. APK 파일에는 실행파일인 Classesdex, META-INF, res, resourcesarsc, AndroidManifestxml등이 포함되어 있다.
앱 식별정보를 추출하는 단계(S210)는, 어플리케이션(110)의 적어도 하나의 파일에서 앱 식별정보를 추출할 수 있다. 특히 그 중 매니페스트 파일은 어플리케이션(110) 내에 존재하는 소프트웨어 컴포넌트들의 목록을 가지고 있어, 이들을 매니페스트 파일 하나로 관리할 수 있으므로, 매니페스트 파일에서 앱 식별정보를 추출할 수 있다.
또한, 앱 식별정보를 추출하는 단계(S210)는, 어플리케이션(110)의 실행파일(Executable File)을 제외한 적어도 하나의 파일에서 앱 식별정보를 추출할 수 있다. 실행파일은 중요 알고리즘 및 비즈니스 로직이 포함되어 있으므로 어플리케이션(110)의 암호화 단계에서 암호화의 대상파일이 될 수 있다. 복호화 키를 생성하는 단계에서는 암호화된 앱에서 추출된 버스마크, 즉, 앱 식별정보를 기반으로 복호화 키를 생성해야 하므로 앱의 구성요소 중 암호화의 대상파일인 실행파일을 제외한 적어도 하나의 파일에서 앱 식별정보를 추출할 수 있다.
APK 파일의 실행파일인 Classesdex파일을 암호화하는 경우, 암호화된 앱에서 추출된 앱 식별정보를 기반으로 복호화 키를 생성해야 하므로, 앱의 구성요소 중 암호화 대상인 Classesdex 파일을 제외한 다른 구성요소로부터 앱 식별정보를 추출할 수 있다.
사용자 식별정보를 추출하는 단계(S220)는, SIM 카드(210) 정보로부터 사용자 식별정보를 추출할 수 있다.
특히, IMSI(International Mobile Station Identity) 정보는 WCDMA 및 LTE 망에서 사용되며, 국가 코드, 이동통신 사업자 코드, 전화번호 정보를 가진 총 15 Digit 숫자로 구성되므로 이를 기반으로 사용자 식별정보를 추출할 수 있다.
사용자 식별정보는 어플리케이션을 수용하는 기기(200)로부터 수신 받거나, 어플리케이션을 배포하는 서버(100)에서 관리 중인 정보를 사용할 수 있다.
앱 식별정보와 사용자 식별정보에 기반하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성하는 단계(S230)는, 앱 식별정보와 사용자 식별정보를 결합하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성할 수 있다.
문자열, 숫자열, 또는 임의의 바이트 조합에 해쉬 함수를 적용하여 암호화 키를 생성하는 단계(S240)는, MD5(Message Digest Algorithm 5) 해쉬 함수를 사용할 수 있다. MD5 해쉬 함수를 통해 128bits의 암호화 키를 생성할 수 있다.
도 3은 본 발명의 일 실시예에 따른 어플리케이션(110)의 복호화 키 생성방법을 설명하기 위한 흐름도이다. 도3을 참조하여 복호화 키 생성 방법을 상세하게 살펴보면 다음과 같다.
복호화 키 생성방법은, 어플리케이션을 수용한 기기(200)에 있는 어플리케이션으로부터 앱 식별정보를 추출하는 단계(S310)와, 어플리케이션을 수용하는 기기(200)의 SIM 카드(210) 정보로부터 사용자 식별정보를 추출하는 단계(S320)와, 앱 식별정보와 사용자 식별정보에 기반하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성하는 단계(S330)와, 문자열, 숫자열, 또는 임의의 바이트 조합에 해쉬 함수를 적용하여 암호화 키를 생성하는 단계(S340)를 포함하여 구성될 수 있다.
기기(200)가 수용한 어플리케이션은 APK(Android Package) 파일 형식일 수 있다. APK 파일에는 실행파일인 Classesdex, META-INF, res, resourcesarsc, AndroidManifestxml등이 포함되어 있다.
앱 식별정보를 추출하는 단계(S310)는, 어플리케이션의 적어도 하나의 파일에서 앱 식별정보를 추출할 수 있다.
특히 그 중 매니페스트 파일은 어플리케이션 내에 존재하는 소프트웨어 컴포넌트들의 목록을 가지고 있어, 이들을 매니페스트 파일 하나로 관리할 수 있으므로, 매니페스트 파일에서 앱 식별정보를 추출할 수 있다.
또한, 앱 식별정보를 추출하는 단계(S310)는, 어플리케이션의 실행파일(Executable File)을 제외한 적어도 하나의 파일에서 앱 식별정보를 추출할 수 있다. 실행파일이 암호화된 대상파일인 경우, 복호화 키를 생성하는 단계에서는 암호화된 앱에서 추출된 버스마크, 즉, 앱 식별정보를 기반으로 복호화 키를 생성해야 하므로 앱의 구성요소 중 암호화의 대상파일이었던 실행파일을 제외한 적어도 하나의 파일에서 앱 식별정보를 추출할 수 있다.
APK 파일의 실행파일인 Classesdex파일이 암호화된 경우, 암호화된 앱에서 추출된 앱 식별정보를 기반으로 복호화 키를 생성해야 하므로, 앱의 구성요소 중 암호화 대상이었던 Classesdex 파일을 제외한 다른 구성요소로부터 앱 식별정보를 추출할 수 있다.
사용자 식별정보를 추출하는 단계(S320)는, SIM 카드(210) 정보로부터 사용자 식별정보를 추출할 수 있다.
특히, IMSI(International Mobile Station Identity) 정보는 WCDMA 및 LTE 망에서 사용되며, 국가 코드, 이동통신 사업자 코드, 전화번호 정보를 가진 총 15 Digit 숫자로 구성되므로 이를 기반으로 사용자 식별정보를 추출할 수 있다.
사용자 식별정보는 어플리케이션을 수용하는 기기(200)로부터 수신 받을 수 있으나, 어플리케이션을 배포하는 서버(100)에서 관리 중인 정보를 사용할 수도 있다.
앱 식별정보와 사용자 식별정보에 기반하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성하는 단계(S330)는, 앱 식별정보와 사용자 식별정보를 결합하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성할 수 있다.
문자열, 숫자열, 또는 임의의 바이트 조합에 해쉬 함수를 적용하여 복호화 키를 생성하는 단계(S340)는, MD5(Message Digest Algorithm 5) 해쉬 함수를 사용할 수 있다. MD5 해쉬 함수를 통해 128bits의 복호화 키를 생성할 수 있다. 해쉬 함수는 암호화 키를 생성할 때와 마찬가지로, 앱 식별정보와 사용자 식별정보를 기반으로한 문자열, 숫자열, 또는 임의의 바이트 조합이 Unique한 경우, 암호화 키와 동일한 복호화 키를 생성할 수 있다.
암호화 키와 동일한 복호화 키를 생성할 수 있으므로, 키 자체를 암호화하여 저장하거나 키를 전송할 필요는 없다. 따라서 어플리케이션을 수용하는 기기(200)에서 키를 관리할 수 있는 추가적인 기술은 불필요하다. 또한 암복호화에 사용된 키는 메모리 수준에서 생성 및 사용되고 파일로 존재하지 않는다.
도 4는 본 발명의 일 실시예에 따른 어플리케이션의 식별정보를 추출하는 방법과 암복호화 키 생성방법을 설명하기 위한 예시도이고, 도 5는 본 발명의 일 실시예에 따른 암복호화 키 생성방법을 설명하기 위한 예시도이다.
도 4와 도 5를 참조하여 어플리케이션의 식별정보를 추출하는 방법과 암복호화 키 생성방법의 실시예를 간략하게 살펴보면 다음과 같다.
도 4의 실시예를 보면, APK의 AndroidManifestxml 파일에서 앱 식별정보를 추출할 수 있다.
AndroidManifestxml에는 앱이 시스템에서 사용할 권한과 Activity, Activity-Alias, Service, Broadcast Receiver, Content Provider, Uses-library와 같은 앱의 주요 컴포넌트와 같은 특징정보들을 명시하고 있다.
이 중 버스마크인 앱 식별정보는 각 컴포넌트의 갯수를 사용할 수 있다.
도 5의 실시예를 보면, 어플리케이션의 암복호화를 위한 키는 버스마크인 앱 식별정보와 사용자를 식별할 수 있는 IMSI 정보를 결합하여 생성한다. 따라서, 어플리케이션 또는 사용자가 다른 경우 서로 다른 키가 생성된다.
도 6은 본 발명의 일 실시예에 따른 키 생성장치(300)를 설명하기 위한 블록도이고 도 7은 본 발명의 일 실시예에 따른 키 생성 로직부(310)의 암복호화 키 생성 프로토콜을 설명하기 위한 예시도이다. 도 6 내지 도 7을 참조하여 키 생성장치(300)의 구성요소들을 상세하게 살펴보면 다음과 같다.
키 생성장치(300)는, 어플리케이션의 적어도 하나의 파일에서 추출되는 앱 식별정보와 어플리케이션(110)을 수용하는 기기(200)의 SIM 카드(210) 정보로부터 추출되는 사용자 식별정보를 생성하는 규칙을 저장하는 키 생성 로직부(310)와, 키 생성 로직부(310)가 저장하는 규칙과 SIM 카드(210) 정보를 기반으로 암호화 키를 생성하는 암호화 키 생성부(320)와, 키 생성 로직부(310)가 저장하는 규칙과 SIM 카드(210) 정보를 기반으로 복호화 키를 생성하는 복호화 키 생성부(330)를 포함하여 구성될 수 있다.
키 생성 로직부(310)는, 어플리케이션(110)에서 암호화의 대상이 되는 파일 및 앱 식별정보를 추출할 적어도 하나의 파일을 선택하는 규칙을 미리 설정할 수 있다.
도 7을 참조하여 살펴보면, 앱 식별정보를 생성하는 규칙은 어플리케이션을 배포하는 서버(100)와 배포될 어플리케이션을 수용하는 기기(200) 간에 미리 약속되어 있을 수 있다. 도 7의 실시예에 따르면, 앱 식별정보를 추출할 대상파일은 APK 파일 내의 AndroidManifestxml로 설정되어 있다. AndroidManifestxml에는 앱이 시스템에서 사용할 권한과 Activity, Activity-Alias, Service, Broadcast Receiver, Content Provider, Useslibrary와 같은 앱의 주요 컴포넌트와 같은 특징정보들을 명시하고 있다. 이 중 앱 식별정보는 각 컴포넌트의 갯수를 추출하여 사용할 수 있다. 추출되는 데이터는 8자리의 숫자열이다.
사용자 식별정보를 추출할 대상정보는 어플리케이션 수용하는 기기(200)의 SIM 카드(210)의 IMSI 정보이다.
IMSI 정보의 데이터 형식은 15자리의 숫자열이다.
또한, 암복호화 방법에 대하여도 규칙이 설정될 수 있다. 암호화의 대상이 되는 파일은 APK 파일 내에 실행파일인 Classesdex이다. 해쉬 함수는 MD5 또는 SHA(Secure Hash Algorithm)가 사용될 수 있다.
암호화 키 생성부(320)는, 상기 규칙에 기반하여 어플리케이션을 배포하는 서버(100)에 있는 어플리케이션(110)의 적어도 하나의 파일에서 상기 앱 식별정보를 추출하는 제1 앱 식별정보 추출부(321)와, 추출된 앱 식별정보와 사용자 식별정보에 기반하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성하는 제1 스트링 데이터 생성부(322)와, 문자열, 숫자열, 또는 임의의 바이트 조합에 해쉬 함수를 적용하여 암호화 키를 생성하는 제1 해쉬코드 생성부(323)를 포함하여 구성될 수 있다.
제1 앱 식별정보 추출부(321)는, 어플리케이션(110)의 매니페스트 파일에서 앱 식별정보를 추출할 수 있다. 매니페스트 파일은 어플리케이션(110) 내에 존재하는 소프트웨어 컴포넌트들의 목록을 가지고 있어, 이들을 매니페스트 파일 하나로 관리할 수 있으므로, 매니페스트 파일에서 앱 식별정보를 추출할 수 있다.
또한, 앱 식별정보 추출부는, 어플리케이션(110)의 실행파일(Executable File)을 제외한 적어도 하나의 파일에서 앱 식별정보를 추출할 수 있다. 실행파일은 중요 알고리즘 및 비즈니스 로직이 포함되어 있으므로 어플리케이션(110)의 암호화 단계에서 암호화의 대상파일이 될 수 있다. 복호화 키를 생성하는 단계에서는 암호화된 앱에서 추출된 버스마크, 즉, 앱 식별정보를 기반으로 복호화 키를 생성해야 하므로 앱의 구성요소 중 암호화의 대상파일인 실행파일을 제외한 적어도 하나의 파일에서 앱 식별정보를 추출할 수 있다.
제1 스트링 데이터 생성부(322)는, SIM 카드(210)의 IMSI(International Mobile Station Identity) 정보를 기반으로 하여 추출된 사용자 식별정보를 사용하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성할 수 있다.
제1 해쉬코드 생성부(323)는, MD5(Message Digest Algorithm 5) 또는 SHA 해쉬 함수를 사용할 수 있다. 해쉬 함수를 통해 128bits의 암호화 키를 생성할 수 있다.
복호화 키 생성부(330)는, 상기 규칙에 기반하여 어플리케이션을 수용한 기기(200)에 있는 어플리케이션의 적어도 하나의 파일에서 앱 식별정보를 추출하는 제2 앱 식별정보 추출부(331)와, 추출된 앱 식별정보와 사용자 식별정보에 기반하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성하는 제2 스트링 데이터 생성부(332)와, 문자열, 숫자열, 또는 임의의 바이트 조합에 해쉬 함수를 적용하여 복호화 키를 생성하는 제2 해쉬코드 생성부(333)를 포함하여 구성될 수 있다.
제2 앱 식별정보 추출부(331)는, 어플리케이션의 매니페스트 파일에서 앱 식별정보를 추출할 수 있다. 매니페스트 파일은 어플리케이션 내에 존재하는 소프트웨어 컴포넌트들의 목록을 가지고 있어, 이들을 매니페스트 파일 하나로 관리할 수 있으므로, 매니페스트 파일에서 앱 식별정보를 추출할 수 있다.
또한, 앱 식별정보 추출부는, 어플리케이션의 실행파일(Executable File)을 제외한 적어도 하나의 파일에서 앱 식별정보를 추출할 수 있다. 어플리케이션(110) 암호화 단계에서, 실행파일이 암호화의 대상파일이 되어 암호화 되어 있는 경우, 복호화 키를 생성하는 단계에서는 암호화된 앱에서 추출된 버스마크, 즉, 앱 식별정보를 기반으로 복호화 키를 생성해야 하므로 앱의 구성요소 중 암호화의 대상파일인 실행파일을 제외한 적어도 하나의 파일에서 앱 식별정보를 추출할 수 있다.
제2 스트링 데이터 생성부(332)는, SIM 카드(210)의 IMSI(International Mobile Station Identity) 정보를 기반으로 하여 추출된 사용자 식별정보를 사용하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성할 수 있다.
제2 해쉬코드 생성부(333)는, 암호화 단계에서 사용된 MD5(Message Digest Algorithm 5) 또는 SHA 해쉬 함수를 사용할 수 있다. 해쉬 함수를 통해 암호화 키와 동일한 복호화 키를 생성할 수 있다.
도 6의 실시예에서 묘사된 키 생성장치(300)는 어플리케이션을 배포하는 서버(100)와 어플리케이션을 수용하는 기기(200)와 독립되어 구성되어 있지만, 키 생성장치(300)는 서버(100) 내에 포함되어 구성될 수 있고, 서버(100)와 기기(200)에 모두 포함되어 구성될 수도 있다.
또한, 키 생성장치(300)를 구성하는 키 생성 로직부(310)와 암호화 키 생성부(320)와 복호화 키 생성부(330)가 각각 서버(100)와 기기(200)에 분리되어 존재할 수 있다. 예를 들어, 앱 식별정보와 사용자 식별정보의 생성규칙을 저장하고 있는 키 생성 로직부(310)는 어플리케이션을 배포하는 서버(100)와 배포될 어플리케이션을 수용하는 기기(200)에 모두 존재할 수 있다. 한편 어플리케이션을 암호화하는 암호화 키 생성부(320)는 어플리케이션(110)을 배포하는 서버(100)에 포함되어 구성될 수 있고, 복호화 키 생성부(330)는 어플리케이션을 수용하는 기기(200)에 포함되어 구성될 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 서버 110: 어플리케이션
200: 기기 210: SIM 카드
300: 키 생성장치 310: 키 생성 로직부
320: 암호화 키 생성부 321: 제1 앱 식별정보 추출부
322: 제1 스트링 데이터 생성부 323: 제1 해쉬코드 생성부
330: 복호화 키 생성부 331: 제2 앱 식별정보 추출부
332: 제2 스트링 데이터 생성부 333: 제2 해쉬코드 생성부

Claims (17)

  1. 어플리케이션을 배포하는 서버에서 수행되는 암복호화 키를 이용한 어플리케이션 보안 방법에 있어서,
    상기 어플리케이션의 배포 시에 암호화되는 대상파일을 제외한 상기 어플리케이션의 나머지 파일들 중 적어도 하나의 파일에서 앱 식별정보를 추출하는 단계;
    상기 어플리케이션을 수용하는 기기의 사용자 식별정보가 저장되어 있지 않을 때, 상기 기기로부터 상기 사용자 식별정보를 수신하는 단계;
    상기 앱 식별정보와 상기 사용자 식별정보에 기반하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성하는 단계;
    상기 문자열, 숫자열, 또는 임의의 바이트 조합에 해쉬 함수를 적용하여 암호화 키를 생성하는 단계; 및
    상기 암호화 키로 상기 어플리케이션을 암호화하는 단계를 포함하며,
    상기 앱 식별정보는 상기 어플리케이션의 각 컴포넌트의 개수에 기반하여 추출되는, 암복호화 키를 이용하는 어플리케이션 보안 방법.
  2. 청구항 1에 있어서,
    상기 암호화하는 단계 후에 실행파일이 암호화된 어플리케이션을 상기 기기에 전송하는 단계를 더 포함하며,
    상기 기기는 상기 서버와 미리 약속된 앱 식별정보 추출 규칙에 기반하여 상기 어플리케이션에서 앱 식별정보를 추출하고, 추출한 앱 식별정보와 상기 사용자 식별정보에 기반하는 복호화키로 상기 어플리케이션을 복호화하는 것을 특징으로 하는, 암복호화 키를 이용하는 어플리케이션 보안 방법.
  3. 청구항 2에 있어서,
    상기 기기는 상기 실행파일이 암호화된 어플리케이션의 매니페스트 파일에서 상기 앱 식별정보를 추출하는 것을 특징으로 하는, 암복호화 키를 이용하는 어플리케이션 보안 방법.
  4. 청구항 1에 있어서,
    상기 사용자 식별정보를 상기 기기로부터 수신하는 단계는 상기 기기의 SIM 카드의 IMSI(International Mobile Station Identity) 정보를 기반으로 추출된 상기 사용자 식별정보를 상기 기기로부터 수신하는 것을 특징으로 하는, 암복호화 키를 이용하는 어플리케이션 보안 방법.
  5. 어플리케이션을 수용하는 기기에서 수행되는 암복호화 키를 이용한 어플리케이션 보안 방법에 있어서,
    어플리케이션을 암호화하여 배포하는 서버로부터 수신한 상기 어플리케이션의 파일들 중 암호화되지 않은 적어도 하나의 파일에서 앱 식별정보를 추출하는 단계;
    상기 기기의 사용자 식별정보를 추출하는 단계;
    상기 앱 식별정보와 상기 사용자 식별정보에 기반하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성하는 단계;
    상기 문자열, 숫자열, 또는 임의의 바이트 조합에 해쉬 함수를 적용하여 복호화 키를 생성하는 단계; 및
    상기 복호화 키로 상기 어플리케이션을 복호화하는 단계를 포함하며,
    상기 앱 식별정보는 상기 어플리케이션의 각 컴포넌트의 개수에 기반하여 추출되는, 암복호화 키를 이용하는 어플리케이션 보안 방법.
  6. 청구항 5에 있어서,
    상기 서버로부터 수신한 상기 어플리케이션은 실행파일이 암호화된 APK(Android Package) 파일 형식인 것을 특징으로 하는, 암복호화 키를 이용하는 어플리케이션 보안 방법.
  7. 청구항 6에 있어서,
    상기 앱 식별정보를 추출하는 단계는 실행파일이 암호화된 상기 어플리케이션의 매니페스트 파일에서 상기 앱식별정보를 추출하는 것을 특징으로 하는, 암복호화 키를 이용하는 어플리케이션 보안 방법.
  8. 청구항 5에 있어서,
    상기 앱 식별정보를 추출하는 단계는 상기 어플리케이션의 실행파일(Executable File)을 제외한 적어도 하나의 파일에서 상기 앱 식별정보를 추출하는 것을 특징으로 하는, 암복호화 키를 이용하는 어플리케이션 보안 방법.
  9. 청구항 5에 있어서,
    상기 사용자 식별정보를 추출하는 단계는 상기 기기의 SIM 카드의 IMSI(International Mobile Station Identity) 정보를 기반으로 상기 사용자 식별정보를 추출하는 것을 특징으로 하는, 암복호화 키를 이용하는 어플리케이션 보안 방법.
  10. 네트워크를 통해 암호화된 어플리케이션을 수용하는 기기에 연결되고 상기 어플리케이션을 배포하는 서버의 어플리케이션 보안 장치로서,
    상기 서버에 있는 암호화 대상 어플리케이션의 적어도 하나의 파일 내의 앱 식별정보를 생성하는 규칙과 상기 기기의 사용자 식별정보를 생성하는 규칙을 저장하는 키 생성 로직부; 및
    상기 규칙에 따라 추출된 상기 앱 식별정보와 상기 사용자 식별정보를 기반으로 암호화 키를 생성하는 암호화키 생성부를 포함하고,
    상기 서버는 상기 암호화 키를 이용하여 상기 어플리케이션을 암호화하며,
    상기 앱 식별정보는 상기 어플리케이션의 컴포넌트의 개수에 기반하여 추출되는, 암복호화 키를 이용하는 어플리케이션 보안 장치.
  11. 청구항 10에 있어서,
    상기 암호화 키 생성부는,
    상기 규칙에 기반하여 상기 어플리케이션의 적어도 하나의 파일에서 상기 앱 식별정보를 추출하는 제1 앱 식별정보 추출부;
    상기 추출된 앱 식별정보와 상기 기기로부터 수신한 상기 사용자 식별정보에 기반하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성하는 제1 스트링 데이터 생성부; 및
    상기 문자열, 숫자열, 또는 임의의 바이트 조합에 해쉬 함수를 적용하여 상기 암호화 키를 생성하는 제1 해쉬코드 생성부를 포함하는 것을 특징으로 하는,
    암복호화 키를 이용하는 어플리케이션 보안 장치.
  12. 청구항 11에 있어서,
    상기 제1 앱 식별정보 추출부는, 실행파일이 암호화된 상기 어플리케이션의 매니페스트 파일에서 상기 앱 식별 정보를 추출하는 것을 특징으로 하는, 암복호화 키를 이용하는 어플리케이션 보안 장치.
  13. 청구항 11에 있어서,
    상기 제1 스트링 데이터 생성부는, 상기 기기의 SIM 카드의 IMSI(International Mobile Station Identity) 정보를 기반으로 하여 상기 기기로부터 추출되고 수신된 상기 사용자 식별정보를 사용하여 문자열, 숫자열, 또는
    임의의 바이트 조합을 생성하는 것을 특징으로 하는, 암복호화 키를 이용하는 어플리케이션 보안 장치.
  14. 네트워크를 통해 암호화된 어플리케이션을 배포하는 서버에 연결되고 상기 어플리케이션을 수용하는 기기의 어플리케이션 보안 장치로서,
    상기 서버로부터 수신되고 암호화 대상파일이 암호화된 어플리케이션에서 암호화되지 않은 적어도 하나의 파일내의 앱 식별정보와 상기 기기의 사용자 식별정보를 생성하는 규칙을 저장하는 키 생성 로직부; 및
    상기 규칙에 따라 추출된 상기 앱 식별정보와 상기 사용자 식별정보를 기반으로 복호화 키를 생성하는 복호화키 생성부를 포함하고,
    상기 기기는 상기 복호화 키를 이용하여 상기 어플리케이션을 복호화하며,
    상기 앱 식별정보는 상기 어플리케이션의 각 컴포넌트의 개수에 기반하여 추출되는, 암복호화 키를 이용하는 어플리케이션 보안 장치.
  15. 청구항 14에 있어서,
    상기 복호화 키 생성부는,
    상기 규칙에 기반하여 상기 암호화된 어플리케이션의 적어도 하나의 파일에서 상기 앱 식별정보를 추출하는 제2앱 식별정보 추출부;
    상기 앱 식별정보와 상기 사용자 식별정보에 기반하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성하는 제2 스트링 데이터 생성부; 및
    상기 문자열, 숫자열, 또는 임의의 바이트 조합에 해쉬 함수를 적용하여 복호화 키를 생성하는 제2 해쉬코드 생성부를 포함하는 것을 특징으로 하는,
    암복호화 키를 이용하는 어플리케이션 보안 장치.
  16. 청구항 15에 있어서,
    상기 제2 앱 식별정보 추출부는, 실행파일이 암호화된 상기 어플리케이션의 매니페스트 파일에서 상기 앱 식별정보를 추출하는 것을 특징으로 하는, 암복호화 키를 이용하는 어플리케이션 보안 장치.
  17. 청구항 15에 있어서,
    상기 제2 스트링 데이터 생성부는, 상기 기기의 SIM 카드의 IMSI(International Mobile Station Identity) 정보를 기반으로 하여 추출된 상기 사용자 식별정보를 사용하여 문자열, 숫자열, 또는 임의의 바이트 조합을 생성하는 것을 특징으로 하는, 암복호화 키를 이용하는 어플리케이션 보안 장치.
KR1020200170515A 2020-12-08 2020-12-08 암복호화 키를 이용한 어플리케이션 보안 장치 및 방법 KR20220081068A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200170515A KR20220081068A (ko) 2020-12-08 2020-12-08 암복호화 키를 이용한 어플리케이션 보안 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200170515A KR20220081068A (ko) 2020-12-08 2020-12-08 암복호화 키를 이용한 어플리케이션 보안 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20220081068A true KR20220081068A (ko) 2022-06-15

Family

ID=81987281

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200170515A KR20220081068A (ko) 2020-12-08 2020-12-08 암복호화 키를 이용한 어플리케이션 보안 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20220081068A (ko)

Similar Documents

Publication Publication Date Title
US9866376B2 (en) Method, system, and device of provisioning cryptographic data to electronic devices
US10454674B1 (en) System, method, and device of authenticated encryption of messages
US11936776B2 (en) Secure key exchange electronic transactions
US10880100B2 (en) Apparatus and method for certificate enrollment
EP2095288B1 (en) Method for the secure storing of program state data in an electronic device
US20140089659A1 (en) Method and apparatus for key provisioning of hardware devices
US11831753B2 (en) Secure distributed key management system
CN104836784B (zh) 一种信息处理方法、客户端和服务器
US20230325516A1 (en) Method for file encryption, terminal, electronic device and computer-readable storage medium
US10103884B2 (en) Information processing device and information processing method
CN112822177B (zh) 数据传输方法、装置、设备和存储介质
CN111970114B (zh) 文件加密方法、系统、服务器和存储介质
CN109274644A (zh) 一种数据处理方法、终端和水印服务器
CN111614621A (zh) 物联网通信方法和系统
CN111181944B (zh) 通信系统及信息发布方法、装置、介质、设备
CN116455572B (zh) 数据加密方法、装置及设备
KR20140071775A (ko) 암호키 관리 시스템 및 방법
KR20220081068A (ko) 암복호화 키를 이용한 어플리케이션 보안 장치 및 방법
KR20130109560A (ko) 모바일 디바이스의 데이터베이스 암호화 방법
KR101649780B1 (ko) 암복호화 키를 이용하는 어플리케이션 보안 방법 및 장치
US20240171556A1 (en) Network Time Protocol Key Encryption
JP2018026651A (ja) プログラムを保護する方法
CN117909961A (zh) 基于金融软件供应链的程序发布方法及装置
CN116938463A (zh) 应用运行环境的可信性检测方法、设备及介质
KR20150051253A (ko) 애플리케이션 데이터 보안 시스템 및 그 방법