KR101436536B1 - 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템 - Google Patents
파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템 Download PDFInfo
- Publication number
- KR101436536B1 KR101436536B1 KR1020130070480A KR20130070480A KR101436536B1 KR 101436536 B1 KR101436536 B1 KR 101436536B1 KR 1020130070480 A KR1020130070480 A KR 1020130070480A KR 20130070480 A KR20130070480 A KR 20130070480A KR 101436536 B1 KR101436536 B1 KR 101436536B1
- Authority
- KR
- South Korea
- Prior art keywords
- file
- core
- user client
- program
- general
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000004891 communication Methods 0.000 claims abstract description 15
- 238000012795 verification Methods 0.000 claims description 11
- 230000002265 prevention Effects 0.000 claims description 7
- 238000000926 separation method Methods 0.000 claims description 4
- 238000001514 detection method Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
Images
Classifications
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- 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
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2125—Just-in-time application of countermeasures, e.g., on-the-fly decryption, just-in-time obfuscation or de-obfuscation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템에 관한 것이다. 본 발명에 따른 파일 서버는, 프로그램 파일을 위·변조 행위로부터 보호할 필요가 있는 핵심 코드로 구성된 핵심 파일과 일반 파일로 분리하는 파일 분리부; 상기 핵심 파일 및 일반 파일에 대해서 각각 선택적으로 난독화하거나 비밀키를 이용하여 암호화하는 암호화부; 상기 난독화 또는 암호화된 일반 파일을 사용자 클라이언트에 전송하는 통신부; 및 상기 난독화 또는 암호화된 핵심 파일을 저장하는 저장부를 포함하며, 상기 통신부는, 상기 사용자 클라이언트의 요청에 따라 상기 난독화 또는 암호화된 핵심 파일을 상기 사용자 클라이언트에 전송한다.
본 발명에 따르면 난독화 기법을 클라이언트와 서버에 분산적으로 적용함으로써 역공학 난이도를 높일 수 있다. 또한, 위·변조 탐지 루틴이 서버에서 배포하는 소프트웨어 프로그램에 삽입되므로, 위·변조 탐지 루틴의 신뢰성을 더욱 높일 수 있다. 또한, 암호화된 핵심 코드의 복호화 비밀키를 동적으로 생성하고, SMS 등의 별도의 채널로 전송함으로써 네트워크 상에서의 키노출을 막을 수 있다.
본 발명에 따르면 난독화 기법을 클라이언트와 서버에 분산적으로 적용함으로써 역공학 난이도를 높일 수 있다. 또한, 위·변조 탐지 루틴이 서버에서 배포하는 소프트웨어 프로그램에 삽입되므로, 위·변조 탐지 루틴의 신뢰성을 더욱 높일 수 있다. 또한, 암호화된 핵심 코드의 복호화 비밀키를 동적으로 생성하고, SMS 등의 별도의 채널로 전송함으로써 네트워크 상에서의 키노출을 막을 수 있다.
Description
본 발명은 파일서버 및 그것을 이용한 프로그램 파일의 전송 방법 그리고 프로그램 파일 변조 방지 시스템에 관한 것으로서, 더욱 상세하게는 클라이언트-서버를 기반으로 하여 핵심 코드 부분의 변조를 방지하지 위한 서버, 시스템 및 그 방법에 관한 것이다.
소프트웨어 저작권 보호기술은 주로 암호화 기술에 따른 DRM(Digital Rights Management), 워터마킹, 핑거프린팅 등의 기술이 개발되었으며, 소스코드에 대한 저작권 보호기술의 경우에도 주로 암호화 기술을 이용하여 권한 없는 사용자의 접근이나 이용을 차단하여 보호한다.
보안 취약점 분석자들은 각종 보안 문제 분석에 역공학(Reverse engineering) 기술을 적극 활용하고 있다. 역공학은 소스코드 없이 윈도우즈 실행 파일(Portable Executable)이나, 자바 바이트코드 등을 직접 분석해서 프로그램이 어떤 기능을 수행하는지 파악하여 취약점을 찾아내는 기술이다. 필요하면 직접 프로그램 바이너리를 수정해 불법적인 일을 수행하게 만들기도 한다. 이에 대한 대응으로 코드를 복잡하게 만들어 알아보기 힘들게 하는 코드 난독화(Code Obfuscation) 기술이 발전하였다.
이러한 코드 난독화를 이용하여 원본 소스코드를 난독화된 소스코드로 변환하여도 원본 소스코드에 대한 관리소홀로 인하여 원본 소스코드가 유출되는 경우가 많고, 난독화된 소스코드를 복원할 때 필요한 복원정보를 단말기에 저장하고 있어서 쉽게 난독화된 소스코드를 복원시킬 수 있는 등의 소스코드의 관리가 어려운 문제점이 있다.
본 발명의 배경이 되는 기술은 대한민국 공개특허공보 제10-2011-0072111호(2011.06.29 공개)에 기재되어 있다.
본 발명이 해결하고자 하는 과제는, 클라이언트-서버를 기반으로 하여 핵심 코드 부분의 변조를 방지하지 위한 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템을 제공하는 것이다.
상기한 바와 같은 목적을 달성하기 위한 본 발명의 하나의 실시예에 따른 파일 서버는, 프로그램 파일을 위·변조 행위로부터 보호할 필요가 있는 핵심 코드로 구성된 핵심 파일과 일반 파일로 분리하는 파일 분리부; 상기 핵심 파일 및 일반 파일에 대해서 각각 선택적으로 난독화하거나 비밀키를 이용하여 암호화하는 암호화부; 상기 난독화 또는 암호화된 일반 파일을 사용자 클라이언트에 전송하는 통신부; 및 상기 난독화 또는 암호화된 핵심 파일을 저장하는 저장부를 포함하며, 상기 통신부는, 상기 사용자 클라이언트의 요청에 따라 상기 난독화 또는 암호화된 핵심 파일을 상기 사용자 클라이언트에 전송한다.
또한, 상기 통신부는, 상기 비밀키를 상기 클라이언트에 추가적으로 전송할 수 있다.
또한, 상기 통신부는, 상기 비밀키를 SMS 또는 MMS를 이용하여 상기 사용자 클라이언트에 전송할 수 있다.
또한, 상기 사용자 클라이언트는, 상기 비밀키를 이용하여 암호화된 파일을 복호화하는 복호화부, 상기 핵심 파일을 상기 일반 파일과 결합하여 상기 프로그램 파일로 복구하는 파일 결합부, 그리고 상기 복구된 프로그램 파일을 실행시키는 실행부를 포함할 수 있다.
또한, 상기 사용자 클라이언트는, 상기 핵심 파일에 포함된 위·변조 검증 루틴을 이용하여 상기 프로그램 파일의 위·변조 여부를 검증하는 위·변조 검증부; 를 더 포함할 수 있다.
또한, 상기 프로그램 파일은 안드로이드 OS 용의 APK(Android Package) 파일이거나, 상기 일반 파일은 스텁(Stub) Dex 파일이거나, 상기 핵심 파일은 핵심 Dex 파일일 수 있다.
본 발명의 실시예에 따르면, 파일 서버가 사용자 클라이언트에 프로그램 파일을 전송하는 방법에 있어서, 상기 프로그램 파일을 위·변조 행위로부터 보호할 필요가 있는 핵심 코드로 구성된 핵심 파일과 일반 파일로 분리하는 단계;
상기 핵심 파일 및 일반 파일에 대해서 각각 선택적으로 난독화하거나 비밀키를 이용하여 암호화하는 단계; 및 상기 난독화 또는 암호화된 일반 파일은 상기 사용자 클라이언트에 전송하고, 상기 난독화 또는 암호화된 핵심 파일은 서버측에 저장한 후에, 상기 사용자 클라이언트의 요청에 따라 상기 난독화 또는 암호화된 핵심 파일을 상기 사용자 클라이언트에 전송하는 단계: 를 포함한다.
본 발명의 실시예에 따른 프로그램 파일 변조 방지 시스템은, 프로그램 파일을 위·변조 행위로부터 보호할 필요가 있는 핵심 코드로 구성된 핵심 파일과 일반 파일로 분리하여, 상기 핵심 파일 및 일반 파일에 대해서 각각 선택적으로 난독화하거나 비밀키를 이용하여 암호화하며, 상기 난독화 또는 암호화된 일반 파일은 사용자 클라이언트에 전송하고, 상기 난독화 또는 암호화된 핵심 파일은 서버측 저장부에 저장한 후에, 상기 사용자 클라이언트의 요청에 따라 상기 난독화 또는 암호화된 핵심 파일을 상기 사용자 클라이언트에 전송하는 파일 서버; 및 상기 파일 서버로부터 비밀키를 수신하여 상기 핵심 파일 및 일반 파일을 복호화하고, 상기 핵심 파일을 상기 일반 파일과 결합하여 상기 프로그램 파일로 복구하고, 상기 핵심 파일에 포함된 위·변조 검증 루틴을 이용하여 상기 프로그램 파일의 위·변조 여부를 검증하거나 하고, 상기 복구된 프로그램을 실행시키는 사용자 클라이언트; 를 포함한다.
본 발명에 따르면, 현재에 존재하는 난독화 기법을 클라이언트와 서버에 분산적으로 적용함으로써 역공학 난이도를 높일 수 있다. 또한, 위·변조 탐지 루틴이 서버에서 배포하는 프로그램에 삽입되므로, 위·변조 탐지 루틴의 신뢰성을 더욱 높일 수 있다. 또한, 암호화된 핵심 코드의 복호화 비밀키를 동적으로 생성하고, SMS 등의 별도의 채널로 전송함으로써 네트워크 상에서의 키노출을 막을 수 있다.
도 1은 본 발명의 하나의 실시예에 따른 프로그램 파일 변조 방지 시스템에 대한 개략적인 구성도이다.
도 2는 본 발명의 하나의 실시예에 따른 파일 서버의 구성도이다.
도 3은 본 발명의 하나의 실시예에 따른 사용자 클라이언트의 구성도이다.
도 4는 본 발명의 하나의 실시예에 따른 프로그램 파일 전송 방법에 관한 순서도이다.
도 5는 본 발명의 하나의 실시예에 따른 파일 분리에 관한 구성도이다.
도 2는 본 발명의 하나의 실시예에 따른 파일 서버의 구성도이다.
도 3은 본 발명의 하나의 실시예에 따른 사용자 클라이언트의 구성도이다.
도 4는 본 발명의 하나의 실시예에 따른 프로그램 파일 전송 방법에 관한 순서도이다.
도 5는 본 발명의 하나의 실시예에 따른 파일 분리에 관한 구성도이다.
이하에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
먼저 본 발명의 하나의 실시예에 따른 파일 서버 및 프로그램 파일 변조 방지 시스템에 대하여 설명한다.
도 1은 본 발명의 하나의 실시예에 따른 프로그램 파일 변조 방지 시스템에 대한 개략적인 구성도이다.
도 1을 참조하면 프로그램 파일 변조 방지 시스템은 파일 서버(100)와 사용자 클라이언트(200)를 포함한다. 이때, 도 1의 각 구성요소들은 네트워크(network, 300)를 통해 연결된다. 예를 들어, 도 1에 도시된 바와 같이, 네트워크(300)를 통하여 파일 서버(100)와 사용자 클라이언트(200)가 연결될 수 있다.
파일 서버(100)는 사용자 클라이언트(200)로 전달할 파일(데이터 또는 프로그램)을 저장하고 있는 서버로서, 다른 사용자 클라이언트들이 함께 파일을 공유할 수 있도록 한다. 파일 서버(100)는 PC, 워크스테이션과 같은 단말 형태로 구현이 가능하다.
사용자 클라이언트(200)는 네트워크(300)를 통하여 원격지의 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 랩톱(Laptop) 등을 포함할 수 있다.
또한, 사용자 클라이언트(200)는 네트워크(300)를 통해 원격지의 서버에 접속할 수 있는 단말로 구현될 수 있다. 사용자 클라이언트(200)는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(smartphone), 스마트 패드(smartpad), 타블렛 PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.
그리고 네트워크(300)는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크(300)의 일 예는, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 3G, 4G, LTE, Wi-Fi 등이 포함되나 이에 한정되지는 않는다.
도 2는 본 발명의 실시예에 따른 파일 서버의 구성도이다.
도 2를 참조하면, 파일 서버(100)는 파일 분리부(110), 암호화부(120), 통신부(130) 및 저장부(140)를 포함한다.
파일 분리부(110)는 프로그램 파일을 핵심 파일과 일반 파일로 분리한다. 여기서 프로그램 파일은 핵심 파일과 일반 파일로 구성된다. 핵심 파일이란 핵심 코드를 포함하는 파일로서, 여기서 핵심 코드란 프로그램의 위·변조를 방지하는데 핵심이 되는 코드를 말한다.
암호화부(120)는 분리된 핵심 파일과 일반 파일에 대해서 각각 선택적으로 난독화 또는 암호화한다.
통신부(130)는 난독화 또는 암호화된 일반 파일 또는 핵심 파일을 사용자 클라이언트(200)에 전송한다.
저장부(140)는 난독화 또는 암호화된 핵심 파일을 파일 서버 내에서 저장한다.
도 3은 본 발명의 실시예에 따른 사용자 클라이언트의 구성도이다.
도 3을 참조하면, 사용자 클라이언트(200)는 복호화부(210), 결합부(220), 검증부(230) 및 실행부(240)를 포함한다.
복호화부(210)는 파일 서버(100)로부터 전송 받은 일반 파일 또는 핵심 파일을 복호화하고, 결합부(220)는 파일 서버(100)측에서 분리되어 전송된 핵심 파일과 일반 파일을 결합한다.
검증부(230)는 복호화된 핵심 파일에 포함된 위·변조 루틴을 이용하여 위·변조 여부를 검증하고, 실행부(240)는 위·변조를 마친 프로그램 파일을 실행한다.
이하에서는 도 4 및 도 5를 참조하여 본 발명의 실시예에 따른 프로그램 파일 전송 방법에 대하여 상세히 설명한다.
도 4는 본 발명의 실시예에 따른 프로그램 파일 전송 방법에 관한 순서도이고, 도 5는 도 4에 따른 프로그램 파일 전송 방법을 예시적으로 나타낸 순서도이다. 특히, 도 5는 안드로이드 OS용의 APK 파일을 분리하는 과정을 예시적으로 설명한 것이다.
도 4를 참조하면, 파일 분리부(100)는 프로그램 파일을 핵심 파일과 일반 파일로 코드로 분리한다(S410). 여기서 핵심 파일이란 핵심 코드로 구성된 파일이며, 핵심 코드는 위·변조의 대상이 되는 코드를 말한다.
파일 분리부(110)는 안드로이드OS용의 APK 파일을 스텁(Stub) Dex 파일과 핵심 Dex 파일로 분리한다. 여기서 스텁 Dex 파일은 Activity class 및 General class로 구성되고, 핵심 Dex 파일은 Core1 class 및 Core2 class로 구성된다.
일반 코드와 핵심 코드를 분리하는 기준, 그리고, 이에 따라 일반 파일과 핵심 파일을 분리하는 기준은 위·변조의 목표가 되는 핵심 코드의 범위에 따라 선택적으로 설정될 수 있다.
또한, 파일 분리부(110)는 분리된 일반 파일인 스텁 Dex 파일 내부에 Stub class 라는 부분을 추가한다. Stub class는 분리된 Dex 파일들이 다시 결합하기 위해 필요한 분리 정보를 포함하고 있다.
암호화부(120)는 분리된 핵심 파일과 일반 파일에 대해서 각각 선택적으로 난독화 또는 암호화한다(S420). 이 경우 암호화부는(120) 비밀키를 사용하여 파일을 암호화할 수 있다. 즉, 암호화부(120)는 각각의 분리된 Dex 파일에 대하여 재명명 난독화, 흐름 제어 난독화, 문자열 난독화, 클래스 암호화를 선택적으로 진행할 수 있다. 이 과정에서 핵심 파일인, 핵심 Dex 파일 내부에 위·변조 검증 루틴인 Tamper Detection이 추가될 수 있다. Tamper Detection은 사용자 클라이언트에서 프로그램 파일의 위·변조 여부를 검증하는데 이용된다.
통신부(130)는 S420에서 난독화 또는 암호화된 일반 파일을 사용자 클라이언트(200)에 전송하며, 또한, 파일 서버(100)는 난독화 또는 암호화된 핵심 파일을 저장부(140)에 저장한다(S430).
도 4 및 도 5에서 Activity class, General class 및 Stub class로 구성된 일반 파일인 Stub Dex 파일은 통신부(130)에 의해 사용자 클라이언트(Client)로 전송되며, Core1 class, Core2 class 및 Tamper Detection으로 구성된 핵심 파일인 핵심 Dex 파일은 파일 서버(Server)의 저장부(140)에 저장된다.
파일 서버(100)의 통신부(130)는 핵심 파일에 대한 사용자 클라이언트(200)의 요청이 있는 경우, 요청의 식별자에 상응하는 Dex 파일 및 상기 암호화에 사용된 비밀키를 사용자 클라이언트(200)에 전송한다. 즉, 통신부(130)는 암호화에 사용된 비밀키를 인터넷이나 SMS 통신 채널을 이용하여 사용자 클라이언트에 전송한다. 이때 전송부(130)는 핵심 루틴의 클래스가 포함된 핵심 파일인 핵심Dex 파일을 사용자 클라이언트에게 전송하는데, 전송되는 핵심 Dex 파일은 상기 비밀키를 이용하여 암호화된 파일이다. 핵심 Dex 파일에는 클라이언트 시그니처 검증 루틴과 핵심 루틴이 포함된다.
복호화부(200)는 파일 서버로부터 전송받은 핵심 Dex 파일을, 상기 비밀키를 이용하여 복호화를 한다(S440).
결합부(220)는 파일 서버(100)측에서 분리된 핵심 파일과 일반 파일을 결합함으로써 핵심 파일과 일반 파일을 분리 이전의 프로그램 파일로 복구한다(S450).
검증부(230)는 핵심 파일 부분에 포함된 위·변조 검증 루틴에 해당되는Tamper Detection 을 이용하여 프로그램 파일의 위·변조 여부를 검증한다(S460).
마지막으로 실행부(240)는 핵심 파일과 일반 파일이 결합되어 복구된 프로그램 파일을 실행한다(S470). 여기서, 사용자가 실행을 요청하는 경우 프로그램 파일이 실행되며, 프로그램 파일의 결합과 동시에 프로그램 파일이 자동으로 실행될 수도 있다.
이와 같이 본 발명의 실시예에 따르면, 현재에 존재하는 난독화 기법을 클라이언트와 서버에 분산적으로 적용함으로써 역공학 난이도를 높일 수 있다. 또한, 위조 또는 변조 탐지 루틴이 서버에서 배포하는 소프트웨어 프로그램에 삽입되므로, 위조 또는 변조 탐지 루틴의 신뢰성을 더욱 높일 수 있다. 또한, 암호화된 핵심 코드의 복호화 비밀키를 동적으로 생성하고, SMS 등의 별도의 채널로 전송함으로써 네트워크 상에서의 키노출을 막을 수 있다.
이제까지 본 발명에 대하여 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 따라서 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허청구범위에 기재된 내용 및 그와 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
100: 파일 서버 110: 파일 분리부
120: 암호화부 130: 통신부
140: 저장부 200: 사용자 클라이언트
210: 복호화부 220: 파일 결합부
230: 위·변조 검증부 240: 실행부
300: 네트워크
120: 암호화부 130: 통신부
140: 저장부 200: 사용자 클라이언트
210: 복호화부 220: 파일 결합부
230: 위·변조 검증부 240: 실행부
300: 네트워크
Claims (13)
- 프로그램 파일을 위·변조 행위로부터 보호할 필요가 있는 핵심 코드로 구성된 핵심 파일과 일반 파일로 분리하는 파일 분리부;
상기 핵심 파일 및 일반 파일에 대해서 각각 선택적으로 난독화하거나 비밀키를 이용하여 암호화하는 암호화부;
상기 난독화 또는 암호화된 일반 파일을 사용자 클라이언트에 전송하는 통신부; 및
상기 난독화 또는 암호화된 핵심 파일을 저장하는 저장부를 포함하며,
상기 통신부는,
상기 사용자 클라이언트의 요청에 따라 상기 난독화 또는 암호화된 핵심 파일을 상기 사용자 클라이언트에 전송하는 파일 서버. - 제 1항에 있어서,
상기 통신부는,
상기 비밀키를 추가적으로 상기 사용자 클라이언트에 전송하는 파일 서버. - 제 2항에 있어서,
상기 통신부는,
상기 비밀키를 SMS 또는 MMS를 이용하여 상기 사용자 클라이언트에 전송하는 파일 서버. - 제 2항에 있어서,
상기 사용자 클라이언트는,
상기 비밀키를 이용하여 암호화된 파일을 복호화하는 복호화부;
상기 핵심 파일을 상기 일반 파일과 결합하여 상기 프로그램 파일로 복구하는 파일 결합부; 및
상기 복구된 프로그램 파일을 실행시키는 실행부를 포함하는 파일 서버. - 제 4항에 있어서,
상기 사용자 클라이언트는,
상기 핵심 파일에 포함된 위·변조 검증 루틴을 이용하여 상기 프로그램 파일의 위·변조 여부를 검증하는 위·변조 검증부; 를 더 포함하는 파일 서버. - 제 1항에 있어서,
상기 프로그램 파일은 안드로이드 OS 용의 APK(Android Package) 파일이거나, 상기 일반 파일은 스텁(Stub) Dex 파일이거나, 상기 핵심 파일은 핵심 Dex 파일인 파일 서버. - 파일 서버가 사용자 클라이언트에 프로그램 파일을 전송하는 방법에 있어서,
상기 프로그램 파일을 위·변조 행위로부터 보호할 필요가 있는 핵심 코드로 구성된 핵심 파일과 일반 파일로 분리하는 단계;
상기 핵심 파일 및 일반 파일에 대해서 각각 선택적으로 난독화하거나 비밀키를 이용하여 암호화하는 단계; 및
상기 난독화 또는 암호화된 일반 파일은 상기 사용자 클라이언트에 전송하고, 상기 난독화 또는 암호화된 핵심 파일은 서버측에 저장한 후에, 상기 사용자 클라이언트의 요청에 따라 상기 난독화 또는 암호화된 핵심 파일을 상기 사용자 클라이언트에 전송하는 단계: 를 포함하는 프로그램 파일 전송 방법. - 제 7항에 있어서,
상기 난독화 또는 암호화된 핵심 파일을 상기 사용자 클라이언트에 전송하는 단계에서,
상기 비밀키를 상기 사용자 클라이언트에 추가적으로 전송하는 프로그램 파일 전송 방법. - 제 8항에 있어서,
상기 비밀키를 SMS 또는 MMS 를 이용하여 상기 사용자 클라이언트에 전송하는 프로그램 파일 전송 방법. - 제 8항에 있어서,
상기 사용자 클라이언트는,
상기 비밀키를 이용하여 상기 핵심 파일 및 일반 파일을 복호화하고, 상기 핵심 파일을 상기 일반 파일과 결합하여 상기 프로그램 파일로 복구하고, 상기 복구된 프로그램 파일을 실행하는 프로그램 파일 전송 방법. - 제 10항에 있어서,
상기 사용자 클라이언트는,
상기 핵심 파일에 포함된 위·변조 검증 루틴을 이용하여 상기 프로그램 파일의 위·변조 여부를 검증하는 프로그램 파일 전송 방법. - 제 7항에 있어서,
상기 프로그램 파일은 안드로이드 OS 용의 APK 파일이거나, 상기 일반 코드는 스텁(Stub) Dex 파일이거나, 상기 핵심 파일은 핵심 Dex 파일인 프로그램 파일 전송 방법. - 프로그램 파일을 위·변조 행위로부터 보호할 필요가 있는 핵심 코드로 구성된 핵심 파일과 일반 파일로 분리하여, 상기 핵심 파일 및 일반 파일에 대해서 각각 선택적으로 난독화하거나 비밀키를 이용하여 암호화하며, 상기 난독화 또는 암호화된 일반 파일은 사용자 클라이언트에 전송하고, 상기 난독화 또는 암호화된 핵심 파일은 서버측 저장부에 저장한 후에, 상기 사용자 클라이언트의 요청에 따라 상기 난독화 또는 암호화된 핵심 파일을 상기 사용자 클라이언트에 전송하는 파일 서버; 및
상기 파일 서버로부터 비밀키를 수신하여 상기 핵심 파일 및 일반 파일을 복호화하고, 상기 핵심 파일을 상기 일반 파일과 결합하여 상기 프로그램 파일로 복구하고, 상기 핵심 파일에 포함된 위·변조 검증 루틴을 이용하여 상기 프로그램 파일의 위·변조 여부를 검증하거나 하고, 상기 복구된 프로그램을 실행시키는 사용자 클라이언트; 를 포함하는 프로그램 파일 변조 방지 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130070480A KR101436536B1 (ko) | 2013-06-19 | 2013-06-19 | 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130070480A KR101436536B1 (ko) | 2013-06-19 | 2013-06-19 | 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101436536B1 true KR101436536B1 (ko) | 2014-09-01 |
Family
ID=51759043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130070480A KR101436536B1 (ko) | 2013-06-19 | 2013-06-19 | 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101436536B1 (ko) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101516313B1 (ko) * | 2014-10-24 | 2015-05-11 | (주)지란지교시큐리티 | 소프트웨어 변조 탐지 방법 |
KR101532763B1 (ko) * | 2013-12-26 | 2015-07-02 | 주식회사 엔젠소프트 | 어플리케이션 불법복제 방지 시스템 및 방법 |
KR20160071060A (ko) * | 2014-12-11 | 2016-06-21 | 단국대학교 산학협력단 | 애플리케이션의 소스 코드 보호 방법 및 이를 수행하는 장치 |
KR20160118920A (ko) * | 2015-04-04 | 2016-10-12 | 홍동철 | Apk 파일 보호 방법, 이를 수행하는 apk 파일 보호 시스템, 및 이를 저장하는 기록매체 |
KR20160139914A (ko) * | 2015-05-29 | 2016-12-07 | 삼성에스디에스 주식회사 | 소프트웨어의 변조 여부 탐지 시스템 및 방법 |
KR20180004501A (ko) * | 2016-07-04 | 2018-01-12 | (주)아이티아이즈 | 파일 관리 및 데이터 암호화를 기반으로 한 보안 시스템을 구현하는 방법 및 파일 관리 및 데이터 암호화를 기반으로 한 보안 시스템 |
KR101825402B1 (ko) | 2017-03-06 | 2018-02-06 | 올댓소프트 코. | 애플리케이션 코드의 코드 분리 인증을 수행하는 모바일 장치 및 이를 포함하는 모바일 시스템 |
US10509616B2 (en) | 2015-07-14 | 2019-12-17 | Samsung Electronics Co., Ltd. | Method for operating electronic device, and electronic device |
KR20210133353A (ko) * | 2020-04-28 | 2021-11-08 | 주식회사 락인컴퍼니 | 프로그램 보안 적용방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006164184A (ja) | 2004-12-10 | 2006-06-22 | Ntt Docomo Inc | プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法 |
KR20110072111A (ko) * | 2009-12-22 | 2011-06-29 | 한국저작권위원회 | 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법 |
JP4969572B2 (ja) | 2007-06-15 | 2012-07-04 | 株式会社日立ソリューションズ | ファイル処理システム及び方法、並びに、ファイル処理プログラム |
KR20130048807A (ko) * | 2011-11-03 | 2013-05-13 | 한국전자통신연구원 | 클라우드 컴퓨팅 시스템 및 이를 위한 클라우드 서버관리 방법 |
-
2013
- 2013-06-19 KR KR1020130070480A patent/KR101436536B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006164184A (ja) | 2004-12-10 | 2006-06-22 | Ntt Docomo Inc | プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法 |
JP4969572B2 (ja) | 2007-06-15 | 2012-07-04 | 株式会社日立ソリューションズ | ファイル処理システム及び方法、並びに、ファイル処理プログラム |
KR20110072111A (ko) * | 2009-12-22 | 2011-06-29 | 한국저작권위원회 | 소프트웨어 소스코드의 유출을 방지하기 위한 시스템 및 방법 |
KR20130048807A (ko) * | 2011-11-03 | 2013-05-13 | 한국전자통신연구원 | 클라우드 컴퓨팅 시스템 및 이를 위한 클라우드 서버관리 방법 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101532763B1 (ko) * | 2013-12-26 | 2015-07-02 | 주식회사 엔젠소프트 | 어플리케이션 불법복제 방지 시스템 및 방법 |
KR101516313B1 (ko) * | 2014-10-24 | 2015-05-11 | (주)지란지교시큐리티 | 소프트웨어 변조 탐지 방법 |
KR20160071060A (ko) * | 2014-12-11 | 2016-06-21 | 단국대학교 산학협력단 | 애플리케이션의 소스 코드 보호 방법 및 이를 수행하는 장치 |
KR101638257B1 (ko) | 2014-12-11 | 2016-07-20 | 단국대학교 산학협력단 | 애플리케이션의 소스 코드 보호 방법 및 이를 수행하는 장치 |
KR20160118920A (ko) * | 2015-04-04 | 2016-10-12 | 홍동철 | Apk 파일 보호 방법, 이를 수행하는 apk 파일 보호 시스템, 및 이를 저장하는 기록매체 |
KR102433011B1 (ko) | 2015-04-04 | 2022-08-19 | 홍동철 | Apk 파일 보호 방법, 이를 수행하는 apk 파일 보호 시스템, 및 이를 저장하는 기록매체 |
KR20160139914A (ko) * | 2015-05-29 | 2016-12-07 | 삼성에스디에스 주식회사 | 소프트웨어의 변조 여부 탐지 시스템 및 방법 |
US10509616B2 (en) | 2015-07-14 | 2019-12-17 | Samsung Electronics Co., Ltd. | Method for operating electronic device, and electronic device |
KR101919488B1 (ko) * | 2016-07-04 | 2018-11-19 | (주)아이티아이즈 | 파일 관리 및 데이터 암호화를 기반으로 한 보안 시스템을 구현하는 방법 및 파일 관리 및 데이터 암호화를 기반으로 한 보안 시스템 |
KR20180004501A (ko) * | 2016-07-04 | 2018-01-12 | (주)아이티아이즈 | 파일 관리 및 데이터 암호화를 기반으로 한 보안 시스템을 구현하는 방법 및 파일 관리 및 데이터 암호화를 기반으로 한 보안 시스템 |
KR101825402B1 (ko) | 2017-03-06 | 2018-02-06 | 올댓소프트 코. | 애플리케이션 코드의 코드 분리 인증을 수행하는 모바일 장치 및 이를 포함하는 모바일 시스템 |
KR20210133353A (ko) * | 2020-04-28 | 2021-11-08 | 주식회사 락인컴퍼니 | 프로그램 보안 적용방법 |
KR102358101B1 (ko) * | 2020-04-28 | 2022-02-08 | 주식회사 락인컴퍼니 | 프로그램 보안 적용방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101436536B1 (ko) | 파일 서버 및 그것을 이용한 프로그램 파일의 전송 방법, 그리고 프로그램 파일 변조 방지 시스템 | |
CN105426708B (zh) | 一种Android系统的应用程序的加固方法 | |
CN102196375B (zh) | 保护带外消息 | |
CN103797489A (zh) | 用于安全地将程序执行绑定到且节点锁定到受信任的签名授权机构的系统和方法 | |
Piao et al. | Server‐based code obfuscation scheme for APK tamper detection | |
CN103457733A (zh) | 一种云计算环境数据共享方法和系统 | |
US20240031129A1 (en) | Data encryption method, data decryption method, terminal, and storage medium | |
US20160330030A1 (en) | User Terminal For Detecting Forgery Of Application Program Based On Hash Value And Method Of Detecting Forgery Of Application Program Using The Same | |
CN105320535A (zh) | 一种安装包的校验方法、客户端、服务器及系统 | |
Backes et al. | X-pire 2.0: a user-controlled expiration date and copy protection mechanism | |
CN109510702A (zh) | 一种基于计算机特征码的密钥存储及使用的方法 | |
CN104426849A (zh) | 一种实现数据安全保护的方法及系统 | |
EP3720042B1 (en) | Method and device for determining trust state of tpm, and storage medium | |
KR20170022023A (ko) | 프로그램 실행 코드를 난독화하기 위한 장치 및 방법, 난독화된 프로그램 실행 코드를 복구하여 실행하기 위한 장치 및 방법 | |
CN112115430A (zh) | 一种apk的加固方法、电子设备及存储介质 | |
CN105187379B (zh) | 基于多方互不信任的密码拆分管理方法 | |
KR101414186B1 (ko) | 실시간 데이터 유출 방지 방법 | |
CN103605927A (zh) | 一种基于嵌入式Linux系统实现加密和解密方法 | |
CN103532712A (zh) | 数字媒体文件保护方法、系统及客户端 | |
KR101532763B1 (ko) | 어플리케이션 불법복제 방지 시스템 및 방법 | |
KR101286767B1 (ko) | 동적 해싱을 이용한 애플리케이션 프로그램 검증 방법 | |
Goulao et al. | Shareiff: A sticky policy middleware for self-destructing messages in android applications | |
KR20130109560A (ko) | 모바일 디바이스의 데이터베이스 암호화 방법 | |
Sarode et al. | Data Encryption Security in Mobile and Cloud Computing Environments | |
KR101673610B1 (ko) | 애플리케이션에 대한 리소스 보호 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170828 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180827 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190826 Year of fee payment: 6 |