KR101703847B1 - 휴대용 단말에서 컨텐츠를 보호하는 방법, 상기 방법을 컴퓨터 프로그램으로 기록하기 위한 기록매체, 및 휴대단말 보안 시스템 - Google Patents

휴대용 단말에서 컨텐츠를 보호하는 방법, 상기 방법을 컴퓨터 프로그램으로 기록하기 위한 기록매체, 및 휴대단말 보안 시스템 Download PDF

Info

Publication number
KR101703847B1
KR101703847B1 KR1020140113741A KR20140113741A KR101703847B1 KR 101703847 B1 KR101703847 B1 KR 101703847B1 KR 1020140113741 A KR1020140113741 A KR 1020140113741A KR 20140113741 A KR20140113741 A KR 20140113741A KR 101703847 B1 KR101703847 B1 KR 101703847B1
Authority
KR
South Korea
Prior art keywords
file
security
contents
mobile terminal
mobile
Prior art date
Application number
KR1020140113741A
Other languages
English (en)
Other versions
KR20160027369A (ko
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 KR1020140113741A priority Critical patent/KR101703847B1/ko
Publication of KR20160027369A publication Critical patent/KR20160027369A/ko
Application granted granted Critical
Publication of KR101703847B1 publication Critical patent/KR101703847B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Abstract

본 발명은 모바일 단말에서 복수개의 컨텐츠를 보호하는 방법에 있어서, 상기 복수개의 컨텐츠를 상기 모바일 단말에 저장할 때, 상기 복수개의 컨텐츠의 파일 및 폴더 구조의 엔트리가 저장된 헤더부분과 상기 복수개의 컨텐츠의 파일바이너리 값이 저장된 바디부분으로 분리하여 저장하되, 상기 복수개의 파일바이너리가 부분 암호화되는 것을 특징으로 하는 모바일 단말에서 복수개의 컨텐츠를 보호하는 방법을 제공한다.

Description

휴대용 단말에서 컨텐츠를 보호하는 방법, 상기 방법을 컴퓨터 프로그램으로 기록하기 위한 기록매체, 및 휴대단말 보안 시스템 {A Method for securing contents in mobile environment, Recording medium for storing the method, and Security sytem for mobile terminal}
본 발명은 휴대용 단말에서 복수개의 컨텐츠 파일을 보안하는 방법에 관한 것이다.
최근 정보화 사회가 발달함에 따라 스마트폰 등의 휴대용 단말의 사용이 급증하고 있다. 이에 따라 휴대용 단말에서의 각종 컨텐츠를 보안하는 방법에 대한 요구도 커지고 있는 상황이다.
예를 들어, 클라우드 서비스가 제공되는 환경이 구축되어 있는 업무환경에서 특히 문제가 심각할 수 있다. 따라서, 휴대용 단말의 보안 문제에 대해 클라우드 서비스가 제공되는 환경을 예로 들어 설명한다.
클라우드 서비스란, 웹 기반 애플리케이션을 활용하여 대용량 데이터베이스를 인터넷 가상 공간에서 분산 처리하고 이 데이터를 데스크탑 PC, 휴대전화, 노트북 PC, PDA등 다양한 단말기에서 불러오거나 가공할 수 있게 하는 환경이다.
이때, 사용자는 운영체제(Operation System), 스토리지(Storage), 어플리케이션(Application), 보안(Security) 등의 필요한 자원을 사용자 소유의 단말에 직접 설치하여 사용하는 것이 아니라, 가상화 기술을 통해 생성된 가상 공간상의 게스트머신(이는 가상공간상의 논리적 장비의 개념으로, 운영체제와 보안 등을 포함하는 일종의 가상머신으로 이해될 수 있다)을 원하는 시점에 원하는 만큼 골라서 사용하게 되므로, 사용자는 각 컴퓨팅 자원의 구입비용을 지불하는 것이 아니라 사용량에 기반하여 대가를 지불하므로 경제적이다.
또한, 사용자는 어떠한 장소에서든 네트워크 접속과 기본적인 연산기능을 수행하는 단말을 통해 클라우드 망에 접속하여 대용량의 저장장치와 고성능 컴퓨팅 리소스가 필요한 작업들을 수행하고 고도화된 서비스들도 제공받을 수 있는 장점이 있다.
그러나, 이러한 클라우딩 컴퓨팅 환경에서는 휴대용 단말에 일시적으로 영구적으로 저장되는 컨텐츠에 대한 외부의 해킹 공격 등의 보안 위협이 가장 핵심 이슈로 부각되고 있다. 또한, 구태여 클라우드 환경이 아니라 하더라도 휴대용 단말 환경에서는 보안이 결정적인 이슈로 대두되고 있다.
그럼에도 휴대용 단말에서의 보안에 대해서는 효과적인 방안이 마련된 것이 없고 많은 연구가 필요한 실정이다.
본 발명은 전술한 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 휴대전화, 테블릿 pc, 등 다양한 휴대용 단말에서 각종 컨텐츠를 보호하기 위해 보안 파일을 구성하는 것이다.
상술한 문제점을 해결하기 위한 기술적 수단으로서, 본 발명의 일측면은 휴대용 단말에서 복수개의 컨텐츠를 보호하여 저장하기 위한 보안 파일에 있어서, 상기 복수개의 컨텐츠의 파일 및 폴더 구조의 엔트리가 저장된 헤더부분; 및 상기 복수개의 컨텐츠의 파일바이너리 값이 저장된 바디부분을 포함하고, 상기 복수개의 파일바이너리가 부분 암호화되는 것을 특징으로 하는 보안 파일을 제공한다.
바람직하게는, 복수개의 컨텐츠 각각은 시초부 중간, 말단부를 구비하고 있다.
또한. 상기 복수개의 컨텐츠 각각의 파일 바이너리는 서로 다른 파일바이너리와 뒤섞는 것이 보안성과 동작 속도를 모두 만족시킬 수 있는 방법일 수 있다.
본 발명의 다른 측면은 휴대용 단말에서 복수개의 컨텐츠를 보호하는 방법에 있어서, 상기 복수개의 컨텐츠를 상기 휴대용 단말에 저장할 때, 상기 복수개의 컨텐츠의 파일 및 폴더 구조의 엔트리가 저장된 헤더부분과 상기 복수개의 컨텐츠의 파일바이너리 값이 저장된 바디부분으로 분리하여 저장하되, 상기 복수개의 파일바이너리가 부분 암호화되는 것을 특징으로 하는 휴대용 단말에서 복수개의 컨텐츠를 보호하는 방법을 제공한다.
본 발명의 또 다른 측면은 상술한 방법을 컴퓨터 프로그램으로 기록하기 위한 기록매체를 제공하는 것이다.
본 발명에 의하면, 사용자 단말에 저장되는 파일을 효과적으로 보안 상태를 유지하게 하면서도 사용자가 손쉽게 해당 파일을 이용할 수 있는 효과가 있다.
본 발명에 의하면, 안드로이드, IOS 오퍼레이팅 등이 탑재된 휴대용 단말에 있어서도 윈도우즈의 가상 디스크 드라이버와 같은 기능을 이용하지 않더라도 효과적으로 보안 효과를 진행할 수 있다.
또한, 본 발명에 의하면, 보안파일을 부분적으로 암호화함으로써 암호화 속도를 향상시키면서, 컨텐츠의 파일 바이너리들을 서로 Suffle 함으로서 보안성을 유지할 수 있게 된다.
도 1은 본 발명의 실시예가 적용되는 휴대용 단말 보안 시스템 전체의 개략적인 구성도이다.
도 2는 본 발명의 클라우드 컴퓨팅 시스템에서 휴대용 단말에 탑재된 모바일 어플리케이션(1100)의 개략적인 구성도이다.
도 3은 도 2의 모바일 어플리케이션(1100)을 휴대 단말에 설치하는 과정을 설명한 흐름도이다.
도 4는 본 발명의 보안파일의 구조를 설명하기 위한 도면이다.
도 5는 본 발명의 보안파일을 부분 암호화하는 방법을 도시한 그림이다.
도 6은 도 2의 모바일 어플리케이션(1100)을 이용하여 파일 읽기를 실행하는 과정을 예로 들어 설명하기 위한 흐름도이다.
이하, 첨부 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다. 그러나, 다음에 예시하는 본 발명의 실시예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시예에 한정되는 것은 아니다. 본 발명의 실시예는 당업계에서 통상의 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되어지는 것이다.
도 1은 본 발명의 실시예가 적용되는 휴대용 단말 보안 시스템 전체의 개략적인 구성도이다.
도 1을 참조하면, 휴대 단말 보안 시스템은 다수의 휴대단말(1000, 2000)이 네트워크를 통해 서버(10)와 접속되어 있다.
휴대 단말들(1000, 2000)은 네트워크 환경에서 네트워크 상의 서버(10) 자원을 이용하는 주체로, 모바일 어플리케이션(1100, 2100)을 구비하는 것으로 도시되어 있다.
서버(10)는 네트워크상에서 복수의 휴대 단말들(1000, 2000)과 연결되어 휴대 단말들(1000, 2000)에게 각종 컨텐츠의 제공, 클라우딩 서비스 제공 등의 서비스를 제공하는 주체이다.
클라우딩 서비스 환경을 예로 들면, 서버는 시스템 자원(이는 OS, CPU, 메모리, 저장장치 등을 포함하는 개념이다)을 휴대용 단말에 제공하는 물리적 장비로, 복수의 서버가 네트워크상에서 복수의 휴대 단말들(1000, 2000)과 연결되며, 이때 클라우드 서버(10)는 다수의 서버들을 포함하는 개념으로 도시된 것이다. 예컨대, 가상화 기술을 통해 생성된 가상 공간상의 게스트 머신을 통해 휴대 단말들(1000, 2000)이 시스템 자원을 사용할 수 있도록 분배하게 된다. 이러한 사항들은 공지의 일반적인 개념들로 이해될 수 있다.
도 2는 본 발명의 클라우드 컴퓨팅 시스템에서 휴대용 단말에 탑재된 모바일 어플리케이션(1100)의 개략적인 구성도이다.
도 2를 참조하면, 모바일 어플리케이션(1100)은 인증 모듈(1110), 통신 모듈(1120), 제어모듈(1130), 보안모듈(1140), 디스플레이 모듈(1150) 등을 구비한다. 통신모듈(1120)은 서버(10)와의 통신하는 기능을 수행한다.
제어모듈(1130)은 각종 어플리케이션의 주된 기능을 수행하기 위한 모듈이다. 예를 들어, 모바일 어플리케이션이 이메일 어플리케이션이라고 하면, 이메일을 송신, 수신, 편집, 디스플레이 등의 일반적인 기능을 수행하는 것으로 이해할 수 있다.
또한, 모바일 어플리케이션이 클라우드 서비스를 제공하기 위한 어플리케이션이라면, 클라우드 서버로부터 자료를 다운받아오는 기능, 저장하는 기능, 각종 편집을 수행하는 기능 등을 포함하여 클라우드 서비스를 수행하기 위한 다양한 기능들을 구비한다.
보안모듈(1140)은 본 발명의 주된 보안 기능을 수행하는 모듈로, 휴대용 단말에 해당 파일의 파일이름과 바이너리 데이터를 가져와서 보안파일을 만든다.
인증모듈(1110)은 사용자가 로그인을 진행하면, 이 과정에서 서버(10)와 통신하여 사용자를 인증하기 위한 모듈이다.
디스플레이 모듈(1150)은 사용자 단말에 UI를 제공하는 모듈로 예를 들어 사용자가 실행 아이콘을 클릭하여 실행시키면 로그인을 위한 화면이 제공된다.
도 3은 도 2의 모바일 어플리케이션(1100)을 휴대 단말에 설치하는 과정을 설명한 흐름도이다.
사용자는 사용자 단말(1000)에 설치용 어플리케이션을 다운받아 모바일 어플리케이션의 설치를 개시한다(S1110). 모바일 어플리케이션(1100)의 설치가 완료되면, 사용자 단말(1000)에는 아이콘이 생성된다(S1120). 사용자가 해당 아이콘을 클릭하여 실행시키면 로그인을 위한 화면이 제공된다(S1130). 사용자가 로그인을 진행하면, 이 과정에서 모바일 어플리케이션(1100)의 인증모듈(1110)은 통신부(1131)를 통해 서버(10)와 통신하여 사용자를 인증하게 된다(S1140). 사용자의 인증이 완료되면, 모바일 어플리케이션(1100)은 본 모바일 어플리케이션을 실행한다. 이 과정에서 보안 파일이 생성한다(S1150). 그런 다음, 모바일 어플리케이션(1100)은 실행되어 실행화면이 제공된다(S1160).
한편, 도 4는 본 발명의 보안파일의 구조를 설명하기 위한 도면이다.
도 4를 참조하면, 보안파일은 헤더부분과 바디 부분을 가지고 있으며, 헤더부분(a 영역)에는 파일 및 폴더구조의 엔트리가, 바디부분(b 영역)에는 파일 바이너리 값이 있다.
한편, 보안파일의 헤더영역과 바디영역은 모두 암호화되어 저장되어 있다. 헤더 부분에 있는 구체적인 정보로는 메타데이터(파일 이름, 논리적인 구조경로, 바이너리의 위치, 암호화되기 전 바이너리 사이즈, 암호화된 바이너리의 해쉬값 등)이다.
또한, 암호화는 미국의 연방 표준 알고리즘으로서 Advanced Encryption Standard (AES) 알고리즘을 사용할 수 있으나 특별히 한정되지 않은 다양한 종류의 암호화 알고리즘이 도입가능하다.
보안 파일을 이러한 구조로 생성하는 것은 문서, 비디오, 이메일 정보 등의 컨텐츠를 다운 받아서 저장할 때 이를 보호하기 위한 것이다.
예를 들어, 모바일 어플리케이션이 이메일 어플리케이션이고, 해당 이메일들이 보안파일의 컨텐츠로 저장되어 있다. 이 경우, 사용자가 이메일 리스트를 보기를 원하는 경우 보안파일을 복호화한 후 파일 헤더영역을 읽어와 사용자에게 보여준다. 또한, 사용자가 열기를 요청할 경우 해당 파일의 헤더 영역을 읽어 파일 바이너리 영역의 위치를 얻어와 그 위치에 접근하여 열기를 한다.
한편, 보안파일은 스마트폰 디바이스에 존재하는 통상의 뷰어 프로그램, 메일 프로그램, 동영상, 사진 등의 컨텐츠 재생 프로그램 등의 프로그램과 함께 내장하여 사용하는 것 이외에 별도로 분리되어 사용하는 것도 가능하다. 예를 들어, 별도로 분리된 컨텐츠 보안파일이 만들어지고 각종 어플리케이션들이 필요한 경우 보안 파일에서 해당 컨텐츠를 불러오는 것이 가능하다.
보안파일을 MS의 윈도우즈 가상디스크 드라이버 기술을 사용하지 않고 구현할 수 있는 장점이 있다. MS의 윈도우 가상드라이버는 보안 파일을 윈도우 EXPLORER에 보여지기 위해 암호화와 변환을 수행해 주는 드라이버이다. 본 발명에서는 예를 들어, 안드로이드, IOS 등의 모바일 OS에서 보안파일을 임의로 정해진 포맷을 읽기 때문에 MS 가상디스크 드라이버 기능을 사용하지 않을 수 있다. 이는 MS 가상디스크 드라이버 기능을 사용하지 못하는 OS 시스템에 상술한 보안 파일 구조와 보안 기능을 적용할 수 있게 된다.
본 발명의 실시예에 따른 암호화, 복호화 방식 등 기타 상세한 내용은 본 출원인의 한국특허출원 제2013-23961호 (2013. 3. 6. 출원), 제2013-48330호 (2013. 4. 30. 출원)이 본 명세서에 병합될 수 있다.
본 실시예에 따르면, 복수개의 컨텐츠들인 파일 바이너리들이 바디부분(b 영역)에 저장된다. 또한, (a) 영역과 (b) 영역은 서로 다른 별도의 암호화키로 암호화가 되어 키들에 대한 복제 방어를 제공할 수 있는데, 하나의 키를 사용하는 것 보다 2개의 키를 이용하여 만든 파일이 더욱 안전할 수 있다.
PKI (Pubic Key Infrastructure) 방식은 별도의 인증서 (예를 들어, 공인인증서)를 생성하여 키교환하는 방식이다. 여기서, 키란 메세지를 열고 잠그는 상 수(constant)를 의미한다. 이 방식은 키 교환의 위험성이 최근에 보고됨에 따라 위험성이 높아져 문제가 되고 있다. 최근 한국 정부기관에서는 인증서 교환 과정을 거치지 않고 키를 생성하고 관리할 수 있는 방안에 대해 요청하고 있다. 본 발명의 키 생성 방식은 이러한 문제점을 해결할 수 있다.
사용자 단말기(예를 들어, 모바일 어플리케이션)에서는 인증정보(ID, PW, 기기 고유값, MAC, 전화번호 등)을 이용하여 2개의 소수를 생성한다. 이 2개의 소수를 이용하여 RSA 키쌍 공개키와 개인키를 생성한다. 그런 다음, 다시 생성된 공개키와 개인키를 병합하여 AES(Advanced Encryption Standard) 개인키1을 생성한다. 다른 방식으로는 AES(Advanced Encryption Standard) 개인키1은 RSA 개인키와 인증정보을 이용하여 셍성할 수 있다. 또한, RSA 개인키와 AES 개인키1을 병합하여 AES 개인키2를 생성한다.
AES 개인키 1은 상술한 보안 파일의 헤더의 암호화에 쓰이고, AES 개인키 2는 보안 파일의 바디를 암호화 할 때 사용한다. 이 때 대칭키 알고리즘의 키의 취약성이 노출이 될 수 있으므로 RSA 공개키로 암호화를 진행한다. 키 변경과 분실에 대응하기 위한 것이다.
한편, 클라우드 서버에서 키 관리하는 방법은 모바일 어플리케이션 인증시 요청 받은 정보(ID, PW, 기기고유값, MAC,전화번호 등)를 사용자 단말과 동일하게 2 개의 소수를 생성하여 키를 관리한다.
클라우드 서버(키 관리 서버)에서는 관리자가 비밀번호 관리 주기를 설정한다. 그 주기로 설정 된 값, 예를 들어 1달이라고 가정할 경우, 뒤에는, 사용자 또는 타의에 의해 비밀번호가 변경되면서, 인증시 요청 정보도 같이 변경되어 기존에 암호화 되어 있던 AES 개인키 1, 2로 복호화된다. 그리고, 상술한 방식으로 새로 생성된 AES키들로 재 암호화 된다. 키의 폐기는 인증정보가 폐기가 되면 같이 폐기가 된다.
AES키를 사용자 단말기에 저장하는 이유는 키 변경시 복원을 해야 되기 때문이다. 또한, RSA 키쌍을 생성하는 이유는 저장된 키를 암호화하기 위함이다.
위와 같은 방식에 의하면, 키 교환이 필요 없으며, 인증서 교환도 필요 없다. 이는 네트워크 스니핑이나 스푸핑에 의한 키 노출에 대해 보안이 강한 효과가 있다. 또한 최근 발견 된 HeartBleed 이슈같은 보안사고가 나오더라도 보안에 취약하지 않게 된다.
한편, 보안 파일은 특정한 OS에 속하지 않기 때문에 다양한 종류의 OS에 적용가능하다. 또한, 상술한 보안파일은 root admin privilege (rooting)를 요구하지 않고 생성가능하다. 따라서, 복잡한 인스톨레이션 과정을 거치지 않고 간단한 인스톨레이션 과정으로 보안파일을 생성할 수 있다.
도 5는 본 발명의 보안파일을 부분 암호화하는 방법을 도시한 그림이다.
보안파일에 임의의 파일이 저장되는 경우, 파일과 관련된 메타데이터는 수집되어 헤더영역(a)에 저장된다. 또한, 파일 바이너리는 시초부(beginning), 중간부(middle), 그리고 말단부(end)로 분리되고 약 10%에서 최대 100% 비율로 부분적으로 암호화를 수행한다. 부분적인 암호화를 수행하는 경우는 암/복호화 속도가 현저히 향상될 수 있다. 암호화가 수행되면, 바디영역(b)은 암호화된 파일 바이너리에 의해 업데이트된다.
도 5를 참조하면, 컨텐츠1과 컨텐츠2는 각각 시초부(beginning), 중간부(middle), 그리고 말단부(end)를 구비하는데 이 각 부분들은 부분적으로만 암호화된다. 바람직하게는, 10% 내지 90%로 부분적으로 암호화를 수행할 수 있다. 암호화되는 정도가 적으면 속도는 향상될 수 있지만 보안성에 문제가 생길 여지가 있고, 암호화 되는 부분이 많으면 속도는 느려지지만 보안성은 향상된다. 따라서, 필요에 따라 적절한 암호화를 수행하는 것이 바람직한데, 30 내지 70% 정도의 부분 암호화가 바람직하다.
한편, 부분적인 암호화로 인해서는 암호화되지 않은 파일의 부분이 위험에 노출될 가능성이 있다. 이러한 문제점을 해결하기 위해서 파일 바이너리들은 서로 다른 파일 바이너리들과 뒤섞여진다(shuffle). 이러한 과정에 의해서 보안의 레벨은 높아질 수 있게 된다.
이하, 뒤섞는 방식을 상세히 설명한다. 뒤섞기에 필요한 별도의 S-BOX가 존재하며, 이를 이용하여 셔플을 한다. 셔플은 암호화 운용모드인 CBC (Cipher-block chaining) 알고리즘에서의 S-BOX와 방식을 변경하여 적용할 수 있다. 이는 암호화 운용모드를 사용 시 속도에 대한 지연을 없애기 위한 목적이다.
또한, 별도의 S-BOX를 사용하는 이유는 알고리즘이 노출될 경우 복호화가 가능하기 때문에 알고리즘을 숨기기 위한 목적으로 생성하는 것이 바람직하다. 이 S-BOX 또한 단말기와 서버의 인증정보를 가지고 생성하게 된다. 따라서, 인증정보가 변경되면 S-BOX가 변경되고, 각각 단말기마다 다른 S-BOX를 가지게 되어 한 쪽의 단말기가 크랙이 되었다고 하더라도 다른 단말기는 다시 분석해야 하기 때문에 기밀성이 높다고 할 수 있다.
도 5를 참조하면 셔플 과정은 블록 단위로 셔플하되 컨텐츠1의 끝점일 경우 컨텐츠2와 셔플을 수행한다. 셔플 후 별도의 S-BOX를 이용하여 버퍼 값을 치환한다.
한편, 사용자에 의해 파일이 삭제되면, 해당 파일의 메타 정보는 보안파일의 헤더 영역(a)에서 제거된다. 동시에 바디영역(b)에서는 파일 바이너리가 삭제되고(empty) 바디 영역(b)이 업데이트된다. 만약 파일 바이너리가 부분적인 암호화가 되면 뒤섞인 파일 바이너리 부분은 회복되고(restore), 해당 저장이 삭제된다.
파일이 새로운 이름으로 변경되면, 오직 헤더의 메타데이터 정보만 새로 변경된다. 한편, 수정의 경우는 바이너리 영역을 새로 변경할 수 있다.
전체 파일 바디를 복호화할 필요 없이 헤더 영역에 있는 로직 구조는 리스팅을 위해 읽혀진다. 뷰어 동작은 파일을 여는 과정이 아니므로, 리스트 파일 헤더들은 파일/폴더들을 리스팅하는 속도를 증가시킬 수 있다.
보안파일을 이용하여 보안을 구현하는 경우는 추가적인 보안 작업이 요구되는 부분이 있을 수 있다.
첫째로, 파일이 오픈된 경우, 예컨대 문서 파일, 스크린 캡쳐와 클립보드에 의한 복사 작업이 금지하는 것이 좋다.
둘째로, 파일 공유의 경우, 해당 파일이 다른 이름으로 보안파일 외부에 저장되는 것을 방지하는 것이 바람직하다.
셋째로, 파일 공유의 경우, 이메일이나 다른 온라인 수단을 통해서 파일이 공유되는 것을 방지해야 한다.
첫 번째 요구를 충족시키기 위하여, 별도의 서비스가 스크린 캡쳐와 클립보드 Activity를 방지하기 위해 제공될 필요가 있다. 각각의 스마트폰 제조사는 스크린 캡쳐에 관한한 별도의 특별한 시스템을 가지고 있다. 대표적인 OS인 안드로이드와 IOS는 양자 공히 기본적으로 스크린 캡쳐를 제공한다. 하드웨어 제조사들은 그러한 캡쳐 방식을 지원한다.
스크린 캡쳐의 다양한 방식들로부터 컨텐츠를 보호하기 위해서 앱의 여분의 서비스 타입을 구동함으로써 투명한 "Activity"를 액티브한다. 좀 더 상세히 설명하면, 안드로이드의 경우, 만약 유저들이 윈도우 뷰어에 연관된 Activity를 등록하고 그 Activity를 스마트폰 디스플레이와 거의 동일한 사이즈로 확대할 수 있다. 이런 방식에 의하면, 유저들이 캡쳐 동작을 수행하면, 이미 등록된 뷰 이미지가 캡쳐되고 보호되어야할 컨텐츠 정보는 스크린 캡쳐되지 않게 된다.
이하, 캡쳐 방지 코드를 아래와 같다.
Figure 112014082564622-pat00001

모바일 환경에서, 클립보드가 작동하는 방식은 컨텐츠가 복사될 때 복사된 컨텐츠는 클립보드의 메니저로 보내지고, 매니저는 복사된 컨텐츠를 모바일 디바이스의 앱에 전송한다. 만약 우리가 클립보드로부터 데이터를 이용하면 우리는 클립보드 매니저에 의해 전송된 데이터를 이용한다. 이러한 클립보드에 의한 복사에 보안 도입이 필요하다.
클립보드에 복사된 컨텐츠를 보호할 필요가 있을 때, 다음 방법이 사용된다. 일단 클립보드 매니저로부터 다른 앱으로 전송되도록 하는 카피를 받으면, 모바일 어플리케이션에서 빈 버퍼나 경고 메시지로 클립보드에 응답한다. 클립보드에 데이터를 보낼 때는 3-7번 연속해서 데이터를 보내는 것이 좋다. 복수개의 클립보드들을 저장하는 디바이스들도 있기 때문이다. 다른 앱에서 클립보드를 사용하고자 하는 경우 클립보드에서 카피된 데이터가 아니라 우리가 교체한 데이터가 전달될 것이다.
두 번째 조건을 위해서는 내부 또는 외부 메모리에 저장된 파일을 모니터링하고 보호하기 위해 지속적인 관찰수단이 필요하다. 이러한 이벤트가 발생하면 파일은 관찰수단에 의해 삭제된다.
세 번째 조건에 대해서는 파일들은 보안파일 내부에 삽입되어 있기 때문에 이메일 또는 온라인으로 어떠한 형태의 파일 공유도 이루어질 수 없다. 보안 파일에 접근할 수 있는 유일한 방식은 보안파일 인터페이스를 통해서다.
본 발명에 의한 시스템의 보안성을 확인하기 위해, OS의 web Sandbox를 무력화한 후 보안파일에 접근을 시도하였다. 보안파일에 접근하기 위해 시도하였을 때, 파일 바이너리 공간 또는 가상공간의 로지컬 파일 경로에 접근이 불가능함을 확인하였다. 보안성이 유지되고 있는 것이다. 한편, 부분 암호화/복호화에 따른 속도를 측정하였다. 테이블 1은 기존 방식과 본 제안 방식 사이의 속도 비교를 나타내고 있다.
Table 1.
Figure 112014082564622-pat00002
동일한 조건에서 10, 20, 30 파일들을 사용하여 암호화 속도를 비교하였다. 파일당 키 생성을 위한 기존 방식은 본 제안 방식 보다 덜 효과적이었다. 많은 파일들이 생성될 수로, 더 큰 차이가 발생하였다. 50개의 다른 파일들이 동시에 암호화될 대 기존 방식과 제안 방식의 최대 시간 갭은 38초였다. 이것은 암호화 속도가 개선되었음을 의미한다.
도 6은 도 2의 모바일 어플리케이션(1100)을 이용하여 파일 읽기를 실행하는 과정을 예로 들어 설명하기 위한 흐름도이다.
도 6을 참조하면, 사용자는 해당 폴더를 확인한 후(S1210), 해당 폴더에서 임의의 파일을 선택할 수 있다. 해당 폴더는 보안 파일의 헤더영역의 정보를 가공하여 컨텐츠 리스트를 확인하도록 구성한다.
여기서는 임의의 문서 파일(111.doc)을 클릭했다고 하자(S1230). 이 경우, 모바일 어플리케이션(1100)은 해당 파일을 오픈할지 저장할 지 여부를 선택하기 위한 이벤트를 띄울 수 있다(S1240).
먼저, 사용자가 해당 파일을 오픈하기를 선택한 경우, 예컨대, 안드로이드는 "data/data/xxx.xxxx(Application File name)/" 영역에, 아이폰인 경우는 "xxx.xxxxprivate/var/mobile/Applications/(Application File name)/Document"에 임시파일을 저장한다. 임시파일은 암호화되어 있지 않은 상태이므로 시스템 영역에 저장함으로써 해킹을 방지하기 위함이다.
그런 다음, 모바일 어플리케이션(1100)은 문서 파일(111.doc)을 여는 기능을 수행한다. 필요에 따라서는 모바일 어플리케이션(1100)은 open하는 파일의 형식에 맞는 어플리케이션과 연동하여 구동할 수도 있다(S1260).
즉, 문서 파일(111.doc)의 열기를 하는 경우는 모바일 어플리케이션(1100)은 사용자의 휴대 단말 내부에 설치된 문서 어플리케이션과 연동하여 구동한다. 사용자는 문서 어플리케이션을 사용하여 문서를 확인할 수 있게 된다.
만약, 열기가 필요한 문서가 doc파일이라면, 아래와 같은 코드를 이용하여 구현할 수 있다.
File_extend.equals, intent.setDataAndType 등의 명령어들은 자바의 명령어들이고, 파일의 확장자가 doc 또는 docx라면 msword에 연동이 가능한 뷰어를 화면에 보여준다.
한편, 문서 어플리케이션이 구동되는 동안 모바일 어플리케이션(1100)의 보안모듈(1140)은 해당 문서 어플리케이션이 저장되는지 종료되는 지 여부를 실시간으로 모니터링한다(S1270). 모니터링 결과, 문서 어플리케이션이 저장, 종료를 수행하는 경우는 필요한 조치를 수행한다(S1280).
실시간 모니터링은 안드로이드를 예로 들어 설명하면, 안드로이드의 "FileObserver" 클래스를 사용한다. 아래 코드를 예시한다.
fileobserver(NotifyEvent, 감시 경로)
위와 같이 설정 후 OnEvent()함수를 안드로이드 운영체제에서 호출 해준다다. 이러한 방식은 CallBack이라 한다.
OnEvent(NotifyEvent, 변경된 파일 경로)
위의 함수를 통하여 변경 된 경로와 위의 이벤트 종류의 알림을 전달 받게 된다.
위와 같이 설정 후 OnEvent()함수를 안드로이드 운영체제에서 호출 해준다다. 이러한 방식은 CallBack이라 한다.
OnEvent(NotifyEvent, 변경된 파일 경로)
한편, 문서 어플리케이션이 종료되는 경우는 시스템 영역에 저장한 임시파일을 삭제한다. 문서 어플리케이션이 해당 사용자 단말의 임의의 장소에 저장을 시도하는 경우는 모바일 어플리케이션(1100)이 다른 장소에 저장이 불가능하도록 구현하거나 저장된 파일을 기억하고 있다가 문서 어플리케이션이 종료되는 경우 임시파일을 삭제하며, 열린 문서가 수정이 되었다면 보안파일을 업데이터하고 서버로 동기화 요청을 하도록 할 수 있다. 또 다른 방식으로는, 문서 어플리케이션이 보안파일에 저장하는 경우는 저장이 가능하도록 구현하는 것도 가능하다.
본 실시예는 모바일 어플리케이션이 클라우드 서버를 통해서 컨텐츠를 다운로드 받고 이를 보호하는 것을 기준으로 설명하였으나, 모바일 단말에 복수의 컨텐츠를 보호하기 위한 것이면 한정되지 않은 다양한 형태로 적용가능하다.
이상, 본 발명의 일 실시예에 대하여 설명하였으나, 해당 기술 분야에서 통상의 지식을 가진 자라면 특허청구범위에 기재된 본 발명의 사상으로부터 벗어나지 않는 범위 내에서, 구성 요소의 부가, 변경, 삭제 또는 추가 등에 의해 본 발명을 다양하게 수정 및 변경시킬 수 있을 것이며, 이 또한 본 발명의 권리범위 내에 포함된다고 할 것이다.

Claims (7)

  1. 적어도 하나의 휴대단말이 네트워크를 통해 서버와 접속되어 있는 휴대 단말 보안 시스템에 있어서,
    상기 휴대단말은 모바일 어플리케이션을 구비하고, 상기 모바일 어플리케이션은 복수개의 컨텐츠를 보호하기 위한 보안파일을 구비하되,
    상기 보안 파일은,
    복수개의 컨텐츠의 파일 이름, 폴더 구조, 바이너리의 위치, 암호화되기 전 바이너리 사이즈를 포함하는 메타데이터가 저장된 헤더 부분; 및
    상기 복수개의 컨텐츠의 파일 바이너리 값이 저장된 바디 부분을 포함하고, 상기 복수개의 파일 바이너리는 부분 암호화 되고, 서로 다른 파일 바이너리들과 뒤섞여지며,
    상기 헤더부분과 상기 바디부분은 서로 다른 별도의 암호화키로 암호화가 되는 것을 특징으로 하는 휴대 단말 보안 시스템.
  2. 제1 항에 있어서,
    상기 복수개의 컨텐츠 각각은 시초부, 중간부, 말단부를 구비하는 것을 특징으로 하는 휴대 단말 보안 시스템.
  3. 삭제
  4. 모바일 단말에서 복수개의 컨텐츠를 보호하는 모바일 단말에서 복수개의 컨텐츠를 보호하는 모바일 단말용 보안방법에 있어서,
    상기 복수개의 컨텐츠를 상기 모바일 단말에 저장할 때, 상기 복수개의 컨텐츠의 컨텐츠의 파일 이름, 폴더 구조, 바이너리의 위치, 암호화되기 전 바이너리 사이즈를 포함하는 메타데이터가 저장된 헤더 부분과 상기 복수개의 컨텐츠의 파일바이너리 값이 저장된 바디부분으로 분리하여 저장하되,
    상기 복수개의 파일바이너리가 부분 암호화되고, 서로 다른 파일 바이너리들과 뒤섞여지는 것을 특징으로 하는 모바일 단말에서 복수개의 컨텐츠를 보호하며,
    상기 헤더부분과 상기 바디부분은 서로 다른 별도의 암호화키로 암호화가 되는 모바일 단말에서 복수개의 컨텐츠를 보호하는 모바일 단말용 보안방법.
  5. 제4 항에 있어서,
    상기 복수개의 컨텐츠 각각은 시초부, 중간부, 말단부를 구비하는 것을 특징으로 하는 모바일 단말에서 복수개의 컨텐츠를 보호하는 모바일 단말용 보안방법.
  6. 삭제
  7. 제4 항 또는 제5 항 중 어느 한 항에 의한 방법을 수행하는 컴퓨터 프로그램이 기록된 컴퓨터 판독가능 기록매체
KR1020140113741A 2014-08-29 2014-08-29 휴대용 단말에서 컨텐츠를 보호하는 방법, 상기 방법을 컴퓨터 프로그램으로 기록하기 위한 기록매체, 및 휴대단말 보안 시스템 KR101703847B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140113741A KR101703847B1 (ko) 2014-08-29 2014-08-29 휴대용 단말에서 컨텐츠를 보호하는 방법, 상기 방법을 컴퓨터 프로그램으로 기록하기 위한 기록매체, 및 휴대단말 보안 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140113741A KR101703847B1 (ko) 2014-08-29 2014-08-29 휴대용 단말에서 컨텐츠를 보호하는 방법, 상기 방법을 컴퓨터 프로그램으로 기록하기 위한 기록매체, 및 휴대단말 보안 시스템

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020160168873A Division KR20160146623A (ko) 2016-12-12 2016-12-12 휴대용 단말에서 컨텐츠를 보호하는 방법, 상기 방법을 컴퓨터 프로그램으로 기록하기 위한 기록매체, 및 휴대단말 보안 시스템

Publications (2)

Publication Number Publication Date
KR20160027369A KR20160027369A (ko) 2016-03-10
KR101703847B1 true KR101703847B1 (ko) 2017-02-23

Family

ID=55538754

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140113741A KR101703847B1 (ko) 2014-08-29 2014-08-29 휴대용 단말에서 컨텐츠를 보호하는 방법, 상기 방법을 컴퓨터 프로그램으로 기록하기 위한 기록매체, 및 휴대단말 보안 시스템

Country Status (1)

Country Link
KR (1) KR101703847B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010051030A (ja) 2002-01-02 2010-03-04 Sony Electronics Inc 部分暗号化データの復号及びデコード

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101439923B1 (ko) * 2007-08-10 2014-09-17 에스케이플래닛 주식회사 콘텐츠의 선택적인 부분 암호화를 위한 drm 시스템 및방법
KR20130064521A (ko) * 2011-12-08 2013-06-18 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 관리 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010051030A (ja) 2002-01-02 2010-03-04 Sony Electronics Inc 部分暗号化データの復号及びデコード

Also Published As

Publication number Publication date
KR20160027369A (ko) 2016-03-10

Similar Documents

Publication Publication Date Title
US11159310B2 (en) Digital security bubble
JP6609010B2 (ja) 複数許可データセキュリティ及びアクセス
US9832016B2 (en) Methods, systems and computer program product for providing verification code recovery and remote authentication
US10462114B2 (en) System and associated software for providing advanced data protections in a defense-in-depth system by integrating multi-factor authentication with cryptographic offloading
EP3127274B1 (en) Methods and apparatus to securely share data
US9135464B2 (en) Secure storage system for distributed data
US9202076B1 (en) Systems and methods for sharing data stored on secure third-party storage platforms
US9203815B1 (en) Systems and methods for secure third-party data storage
US9961048B2 (en) System and associated software for providing advanced data protections in a defense-in-depth system by integrating multi-factor authentication with cryptographic offloading
EP3082123B1 (en) File storage system, file storage apparatus, and user terminal
WO2021164166A1 (zh) 一种业务数据保护方法、装置、设备及可读存储介质
CN103546547A (zh) 一种云存储文件加密系统
US20220158829A1 (en) Computer system, device, and method for securing sensitive data in the cloud
WO2013097209A1 (zh) 一种加密方法、解密方法和相关装置及系统
WO2020000765A1 (zh) 离线数据存储方法、装置、计算机设备及存储介质
KR20160146623A (ko) 휴대용 단말에서 컨텐츠를 보호하는 방법, 상기 방법을 컴퓨터 프로그램으로 기록하기 위한 기록매체, 및 휴대단말 보안 시스템
CN108154037B (zh) 进程间的数据传输方法和装置
US20160063264A1 (en) Method for securing a plurality of contents in mobile environment, and a security file using the same
KR101703847B1 (ko) 휴대용 단말에서 컨텐츠를 보호하는 방법, 상기 방법을 컴퓨터 프로그램으로 기록하기 위한 기록매체, 및 휴대단말 보안 시스템
CN108985079A (zh) 数据验证方法和验证系统
Rajcan Securing Data in Motion in ZeroMQ and Data at Rest on Windows Platform
KR101520191B1 (ko) 컴퓨터 시스템 보안을 강화하는 장치 및 방법
KR20150051253A (ko) 애플리케이션 데이터 보안 시스템 및 그 방법
CN113342896A (zh) 一种基于云端融合的科研数据安全保护系统及其工作方法
CN116264505A (zh) 密钥管理系统和方法、电子设备和计算机可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
A107 Divisional application of patent
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191205

Year of fee payment: 4