KR20140110639A - 데이터 보호 방법 및 이를 구현하는 전자 장치 - Google Patents

데이터 보호 방법 및 이를 구현하는 전자 장치 Download PDF

Info

Publication number
KR20140110639A
KR20140110639A KR1020130025299A KR20130025299A KR20140110639A KR 20140110639 A KR20140110639 A KR 20140110639A KR 1020130025299 A KR1020130025299 A KR 1020130025299A KR 20130025299 A KR20130025299 A KR 20130025299A KR 20140110639 A KR20140110639 A KR 20140110639A
Authority
KR
South Korea
Prior art keywords
application
key
security
data
area
Prior art date
Application number
KR1020130025299A
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 KR1020130025299A priority Critical patent/KR20140110639A/ko
Priority to US14/191,881 priority patent/US20140258734A1/en
Publication of KR20140110639A publication Critical patent/KR20140110639A/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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • 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
    • 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]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1011Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2107File encryption

Abstract

본 명세서의 개시는 데이터 보호 방법 및 전자 장치에 관한 것으로 더 상세하게는 컴퓨팅 리소스(computing resource) 즉, 전자 장치를 동작시키기 위한 소프트웨어(예, 운영체제)와 하드웨어(예, 메모리, CPU)를 가지는 전자 장치에서 데이터를 안전하게 보호할 수 있도록 한 방법 및 장치에 관한 것이다. 본 개시에 따른 데이터 보호 방법은 데이터 생성 어플리케이션 또는 이를 대신하여 데이터의 암호화를 수행하는 대행 어플리케이션으로부터 어플리케이션 키의 요청을 수신하는 단계; 상기 요청에 응답하여 상기 데이터 생성 어플리케이션에 해당되는 어플리케이션 아이디와 전자 장치의 보안 영역에 저장된 보안키를 이용하여 어플리케이션 키를 생성하는 단계; 및 상기 생성된 어플리케이션 키를 이용하여 데이터를 암호화하는 단계를 포함한다.

Description

데이터 보호 방법 및 이를 구현하는 전자 장치{DATA SECURITY METHOD AND ELECTRONIC DEVICE IMPLEMENTING THE SAME}
본 명세서의 개시는 데이터 보호 방법 및 전자 장치에 관한 것으로 더 상세하게는 컴퓨팅 리소스(computing resource) 즉, 전자 장치를 동작시키기 위한 소프트웨어(예, 운영체제)와 하드웨어(예, 메모리, CPU)를 가지는 전자 장치에서 데이터를 안전하게 보호할 수 있도록 한 방법 및 장치에 관한 것이다.
데이터를 안전하게 보호하기 위해서는 일반적으로 암호 기술(cryptography)이 사용될 수 있다. 즉 데이터가 암호화되고 변조 방지를 위한 인증 코드가 생성됨으로써 데이터가 보호될 수 있다. 이러한 암호 기술에는 암호 키가 사용된다. 즉 데이터의 암호화 및 인증 코드의 생성에는 키가 입력 값으로 사용된다.
어플리케이션들을 가지는 전자 장치는 하나의 키로 모든 어플리케이션의 데이터를 암호화할 수 있다. 그러나 전자 장치 내에서 처리되는 모든 데이터는 하나의 동일한 키로 암호화되므로 보안에 취약할 수 있다. 특히, 어플리케이션들은 서로의 데이터를 무단 열람 및 변조할 수 있다.
보안의 강화를 위해 키는 어플리케이션 별로 다를 수 있다. 예컨대, 장치는 어플리케이션별로 키를 별도로 생성하여 저장하고, 필요한 때에 읽어서 사용할 수 있다. 그러나 이 방법의 경우 어플리케이션의 개수에 비례하여 저장 공간이 소모된다는 단점이 있다.
전자 장치는 사용자로부터 입력 값을 받아서 어플리케이션별로 다른 키를 생성할 수 있다. 그러나 이 방법의 경우 사용자는 값을 입력해야 하므로 사용의 편의성이 떨어진다.
또한 전자 장치는 서버 혹은 다른 장치로부터 네트워크를 통해 키 혹은 임의의 값을 받아서, 이를 어플리케이션의 키로 사용하거나 키를 생성하는데 사용할 수 있다. 그러나 이 방법의 경우 통신이 필요하고, 통신 과정에서 편의성, 성능 및 보안 중 하나 혹은 그 이상의 손실이 초래될 수 있다.
본 개시의 실시예는 전술한 사항을 해결할 수 있는 방법 및 전자 장치를 제안할 수 있다. 즉 본 개시의 실시예에 따르면 본 개시는 안전하고 편리하고 효율적으로 키를 생성할 수 있는 방법 및 전자 장치를 제공할 수 있다.
본 개시에 따른 데이터 보호 방법은 데이터 생성 어플리케이션 또는 이를 대신하여 데이터의 암호화를 수행하는 대행 어플리케이션으로부터 어플리케이션 키의 요청을 수신하는 단계; 상기 요청에 응답하여 상기 데이터 생성 어플리케이션에 해당되는 어플리케이션 아이디와 전자 장치의 보안 영역에 저장된 보안키를 이용하여 어플리케이션 키를 생성하는 단계; 및 상기 생성된 어플리케이션 키를 이용하여 데이터를 암호화하는 단계를 포함한다.
본 개시에 따른 전자 장치는 사용자 입력부; 노말 영역과 보안 영역을 포함하는 메모리; 및 상기 노말 영역에 접근하여 상기 노말 영역의 프로그램을 실행하고, 상기 보안 영역에 접근하여 상기 보안 영역의 프로그램을 실행하고, 상기 사용자 입력부와 상기 메모리를 연결하는 프로세서를 포함하고, 상기 보안 영역의 키 생성 모듈은, 어플리케이션으로부터 어플리케이션 키의 요청을 수신하고, 상기 요청에 응답하여 어플리케이션 아이디 및 보안키를 이용하여 어플리케이션 키를 생성하고, 상기 생성된 어플리케이션 키를 상기 어플리케이션으로 전달하고, 상기 보안키는, 상기 보안 영역에서는 접근 가능하고 상기 노말 영역에서는 접근 불가능한 것을 특징으로 한다.
이상으로 본 개시에 따른 데이터 보호 방법 및 전자 장치에 따르면 본 개시는 안전하고 편리하고 효율적으로 키를 생성할 수 있는 방법 및 전자 장치를 제공할 수 있다.
도 1은 본 개시의 일 실시예에 따른 휴대 단말의 블록 구성도이다.
도 2는 본 개시의 일 실시예에 따른 데이터 보호 장치의 블록 구성도이다.
도 3은 본 개시의 다른 실시예에 따른 데이터 보호 장치의 블록 구성도이다.
도 4는 본 개시의 일 실시예에 따른 데이터 보호 방법을 설명하기 위한 흐름도이다.
도 5는 본 개시의 다른 실시예에 따른 데이터 보호 방법을 설명하기 위한 흐름도이다.
본 개시에서 전자 장치는 어플리케이션들을 가지는 장치로써, 예컨대, 스마트폰, 태블릿 PC, 노트북 PC, 디지털 카메라, 컴퓨터 모니터, PDA(Personal Digital Assistant), 전자수첩, 데스크탑 PC, PMP(Portable Multimedia Player), 미디어 플레이어(Media Player)(예컨대, MP3 플레이어), 음향기기, 손목시계, 게임용 단말기, 가전기기(예, 냉장고, TV, 세탁기) 등을 포함할 수 있다.
본 개시에 따른 전자 장치는 하드웨어 기반 보안 영역(Secure World)을 가질 수 있다. 하드웨어(예, 메모리)는 물리적으로 또는 논리적으로 여러 개의 영역(area)들로 구분될 수 있는데, 이러한 영역들 중 하나가 보안 영역에 해당될 수 있다. 또한 보안 영역은 보안 기술이 적용된 운영체제와, 이에 의해 제어되는 하드웨어와 소프트웨어를 포함하여 구성된다. 보안 영역 내에서는 메모리 덤프(dump), 변조 등과 같은 공격으로부터 안전할 수 있다. 본 개시에서 어플리케이션 키를 생성하기 위한 입력 값(예, 보안키)은 보안 영역 내에 존재하거나 또는 보안 영역에서만 접근할 수 있다. 본 개시에서 어플리케이션 키는 데이터를 암호화하기 위한 암호화 키 또는 데이터를 복호화하기 위한 복호화 키로 사용될 수 있다. 또한 어플리케이션 키는 대칭키일 수도 있다. 여기서 대칭키는 데이터를 암호화할 때 사용되는 키와 데이터를 복호화할 때 사용되는 키가 같은 키를 의미한다.
본 개시에 따른 전자 장치는 보안키 암호화 모듈을 가질 수 있다. 본 모듈은 보안키의 암호화를 수행하고, 보안 영역 내에 존재할 수 있다. 보안 영역의 특성에 의해, 본 모듈은 변조되지 않을 수 있다.
본 개시에 따른 전자 장치는 키 생성 및 데이터 암/복호화 모듈을 가질 수 있다. 본 모듈은 키 생성 및 데이터 암/복호화를 수행하고, 보안 영역 내에 존재할 수 있다. 보안 영역의 특성에 의해, 본 모듈은 변조되지 않을 수 있다. 본 모듈은 키 생성 모듈, 데이터 암/복호화 모듈로 분리되어 구현될 수 있다. 또한 본 모듈은 키 생성 모듈, 데이터 암호화 모듈, 데이터 복호화 모듈로 분리되어 구현될 수 있다. 이러한 세부 모듈의 분리 혹은 결합은 개발자가 편의에 따라 선택할 수 있다. 한편, 키 생성 모듈은 보안 영역 내에 존재하고 데이터 암/복호화 모듈은 노말 영역에 존재할 수도 있다. 여기서 노말 영역은 하드웨어의 영역들 중 어느 하나가 될 수 있다. 또한 노말 영역은 일반적인 운영체제(예, 안드로이드, 리눅스, 윈도우 등)와, 이의 기반 하에 동작하는 하드웨어와 소프트웨어를 포함하여 구성될 수 있다.
본 개시에 따른 전자 장치는 공유 영역(예컨대, 공유 메모리)을 가질 수 있다. 즉 공유 영역은 보안 영역과 노말 영역 간의 데이터 송수신의 통로로 활용될 수 있다.
이하에서 본 개시에 따른 데이터 보호 방법 및 전자 장치에 대해 상세히 설명한다. 이하에서 사용되는 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 본 개시의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 한다. 따라서 아래 설명과 첨부된 도면은 본 개시의 바람직한 실시예에 불과할 뿐이고, 본 개시의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원 시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있다. 또한, 첨부 도면에서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 따라서 본 개시는 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되지 않는다. 본 개시와 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략된다.
도 1은 본 개시의 일 실시예에 따른 휴대 단말의 블록 구성도이다.
도 1을 참조하면, 본 개시의 일 실시예에 따른 휴대 단말(100)은 표시부(110), 키입력부(120), 저장부(130), 무선통신부(140), 오디오처리부(150), 스피커(SPK), 마이크(MIC) 및 제어부(160)를 포함한다.
표시부(111)는 제어부(160)의 제어 하에 데이터를 화면에 표시한다. 즉 제어부(160)가 데이터를 처리(예컨대, 디코딩(decoding))하여 버퍼에 저장하면, 표시부(110)는 버퍼에 저장된 데이터를 아날로그 신호로 변환하여 화면에 표시한다. 표시부(110)에 전원이 공급되면, 표시부(110)는 잠금 이미지를 화면에 표시한다. 잠금 이미지가 표시되고 있는 상태에서 잠금 해제 정보가 검출되면, 제어부(160)는 잠금을 해제한다. 표시부(110)는 제어부(160)의 제어 하에 잠금 이미지 대신 예컨대, 홈 이미지를 표시한다. 홈 이미지는 배경(background) 이미지(예컨대, 사용자에 의해 설정된 사진)와 이 위에 표시되는 다수의 아이콘을 포함할 수 있다. 여기서 아이콘들은 각각 어플리케이션 또는 콘텐츠(예, 사진 파일, 비디오 파일, 녹음 파일, 문서, 메시지 등)를 지시한다. 아이콘들 중 하나 예컨대, 메모 어플리케이션의 아이콘이 터치입력기구에 의해 터치되면, 표시부(110)는 제어부(160)의 제어 하에 메모장을 표시할 수 있다.
표시부(110)는 액정 표시 장치(Liquid Crystal Display : LCD), AMOLED(Active Matrix Organic Light Emitted Diode), 플랙서블 디스플레이(Flexible display) 또는 투명 디스플레이로 이루어질 수 있다.
터치패널(111)은 사용자 입력부의 일례로써, 표시부(110)의 화면에 설치된 터치스크린이다. 구체적으로 터치패널(111)은 표시부(110)의 화면에 위치하는 애드 온 타입(add-on type)이나 표시부(110) 내에 삽입되는 온 셀 타입(on-cell type) 또는 인 셀 타입(in-cell type)으로 구현된다.
터치패널(111)은 화면에 대한 사용자의 제스처에 응답하여 터치이벤트를 발생하고, 터치이벤트를 AD(Analog to Digital) 변환하여 제어부(160)로 전달한다. 여기서 터치이벤트는 하나 이상의 터치 좌표(x, y)를 포함한다. 예컨대, 터치패널(111)의 터치 IC(Integrated Circuit)는 사용자의 터치를 검출하고, 터치에 응답하여 터치 영역을 결정하고, 터치 영역에 포함된 터치 좌표(x, y)를 제어부(160)로 전달한다. 터치패널(111)은 손 제스처를 감지하는 손 터치패널과 펜 제스처를 감지하는 펜 터치패널을 포함하여 구성된 복합 터치패널일 수 있다. 여기서 손 터치패널은 정전용량 방식(capacitive type)으로 구현된다. 물론 손 터치패널은 저항막 방식(resistive type), 적외선 방식 또는 초음파 방식으로 구현될 수도 있다. 또한 손 터치패널은 손 제스처에 의해서만 터치이벤트를 발생하는 것은 아니며, 다른 물체(예, 정전용량 변화를 가할 수 있는 전도성 재질의 물체)에 의해서도 터치이벤트를 생성할 수 있다. 펜 터치패널은 전자 유도 방식(electromagnetic induction type)으로 구성될 수 있다. 이에 따라 펜 터치패널은 자기장을 형성할 수 있도록 특수 제작된 터치용 펜에 의해 터치이벤트를 생성할 수 있다.
키입력부(120)는 사용자 입력부의 또 하나의 예로써, 사용자 설정 및 휴대 단말(100)의 기능 제어와 관련한 키 이벤트를 생성하여 제어부(160)로 전달한다. 키 이벤트는 전원 온/오프 이벤트, 볼륨 조절 이벤트, 화면 온/오프 이벤트, 셔터 이벤트 등을 포함할 수 있다. 제어부(160)는 이러한 키 이벤트에 응답하여 상기한 구성들을 제어한다.
저장부(secondary memory unit; 130)는 디스크, 램(RAM), 롬(ROM) 또는 플래시 메모리 등이다. 특히 저장부(130)는 노말(normal) 영역(131)과 보안(secure) 영역(132)으로 구성될 수 있다. 노말 영역(131)은 물리적으로 보안 영역(132)과 격리되도록 설계될 수 있다. 보안 영역(132)은 노말 영역(131)의 운영체제나 어플리케이션들이 임의대로 접근할 수 없는 영역으로 활용될 수 있다. 노말 영역(131)은 보안 영역(132)에 대해 상대적인 개념으로써 비보안 영역으로 지칭될 수도 있다. 한편 노말 영역(131)은 해당 단말의 메인 운영체제와 이의 기반 하에 동작하는 어플리케이션들이 설치된다는 개념에서 메인 영역으로 지칭될 수도 있다. 그렇다면 상대적으로 보안 영역(132)은 서브 영역으로 지칭될 수도 있다. 이하 설명의 편의상, 노말, 메인, 비보안은 노말로 통칭한다. 또한 보안, 서브는 보안으로 통칭한다.
노말 영역(131)은 노말 프로그램 영역과 노말 데이터 영역으로 구성될 수 있다. 노말 프로그램 영역은 부팅 프로그램, 노말 운영체제, 노말 운영체제의 기반 하에 동작하는 하나 이상의 어플리케이션(이하 노말 어플리케이션)을 저장할 수 있다. 노말 영역의 어플리케이션들은 내재화 어플리케이션(embedded application)과 서드파티 어플리케이션(3rd party application)으로 분류될 수 있다. 예컨대 내재화 어플리케이션은 웹 브라우저(Web browser), 이메일(email) 프로그램, 인스턴트 메신저(instant messenger) 등이다. 휴대 단말(100)로 배터리의 전원이 공급되면 먼저 부팅 프로그램이 제어부(160)의 메인메모리(main memory unit)로 로딩(loading)된다. 이러한 부팅 프로그램은 노말 운영체제를 메인메모리로 로딩한다. 예컨대, 안드로이드, 윈도우 또는 iOS 등이 본 개시의 노말 운영체제로 적용될 수 있다. 노말 데이터 영역은 노말 운영체제 및 노말 어플리케이션에 의해 생성되는 데이터와, 노말 운영체제 및 노말 어플리케이션의 실행에 필요한 데이터와, 무선통신부(140)를 통해 외부장치(예, 서버, 데스크탑 PC, 태블릿 PC 등)로부터 수신한 데이터를 저장할 수 있다.
보안 영역(132)은 보안 프로그램 영역과 보안 데이터 영역으로 구성될 수 있다. 노말 운영체제나 노말 어플리케이션들은 보안 영역(132) 특히, 보안 데이터 영역의 접근이 불가능하다. 보안 프로그램 영역은 보안 운영체제와, 이의 기반 하에 동작하는 하나 이상의 어플리케이션(이하 보안 어플리케이션)과, 운영체제 모니터를 저장할 수 있다. 보안 운영체제는 예컨대, G&D(Giesecke & Devrient) 사의 모비코어(Mobicore)가 본 개시의 보안 운영체제로 적용될 수 있다. 이러한 보안 운영체제는 노말 운영체제의 제어 하에 메인메모리로 로딩될 수 있다. 또는 보안 운영체제는 부팅 프로그램에 의해 메인메모리로 로딩될 수도 있다. 모비코어는 휴대 단말에서 안전하게 인터넷 뱅킹, 전자 결제 등을 할 수 있도록 하는 보안 제품이다. 보안 어플리케이션들은 내재화 어플리케이션과 서드파티 어플리케이션으로 분류될 수 있다. 운영체제 모니터는 노말 운영체제와 보안 운영체제 간의 인터페이스 역할을 한다. 예컨대, ARM(Advance RISC Machine)사의 TrustZone 기술이 본 개시의 운영체제 모니터로 적용될 수 있다. 보안 데이터 영역은 보안 운영체제 및 보안 어플리케이션에 의해 생성되는 데이터와, 보안 운영체제 및 보안 어플리케이션의 실행에 필요한 데이터와, 보안 운영체제 및 보안 어플리케이션에 의해 무선통신부(140)를 통해 외부장치로부터 수신한 데이터를 저장할 수 있다. 설명의 편의상, 이하 노말 데이터 영역의 데이터를 '노말 데이터'라 하고 보안 데이터 영역의 데이터를 '보안 데이터'라 한다.
보안 데이터는 보안 운영체제, 보안 어플리케이션 및 운영체제 모니터에서만 접근 가능하며, 노말 영역에서는 접근이 불가능하다. 즉 노말 영역의 노말 운영체제나 어플리케이션은 직접 보안 데이터에 접근할 수 없으며, 보안 데이터에 접근하기 위해서는 운영체제 모니터를 통해서만이 가능하다. 따라서 보안 데이터는 비인가된 개체(예, 해킹 프로그램)로부터 안전하게 보호될 수 있다.
보안 데이터(예컨대, 해당 휴대 단말(100)의 고유의 값)가, 어플리케이션 키를 생성함에 있어서, 입력 값으로 쓰일 수 있다. 이렇게 입력 값으로 쓰이는 보안 데이터는 보안키(132a), 보호된 디바이스 키(protected device key), 디바이스 고유 키(device unique key) 등으로 지칭될 수 있다.
저장부(130)는 보안키 암호화 모듈을 저장할 수 있다.
보안키 암호화 모듈에서 만들어진 새로운 값(즉, 암호화 모듈의 출력 값)으로부터 그 입력 값(즉, 보안키(132a))이 얻어지거나 추측 되어서는 아니 된다. 따라서, 보안키 암호화 모듈에는 예컨대, 하나의 입력값을 암호화하여 출력하는 암호 순열(Cryptographic permutation) 알고리즘이 적용될 수 있다. 또한 보안키 암호화 모듈에는 해시(hash) 함수 예컨대, 메시지 다이제스트 알고리즘 5(Message Digest algorithm 5; MD5)가 암호 순열 알고리즘과 함께 복합적으로 적용될 수도 있다.
보안키 암호화 모듈은 보안 영역(132)에 저장될 수 있다. 즉 보안키 암호화 모듈은 보안 운영체제의 기반 하에 동작하는 보안 어플리케이션일 수 있다. 그렇다면 보안키 암호화 모듈은 보안 데이터 특히, 보안키(132a)에 대한 접근 권한을 가질 수 있다. 한편, 보안키 암호화 모듈은 노말 영역(131)에 저장될 수도 있다. 즉 보안키 암호화 모듈은 노말 운영체제의 기반 하에 동작하는 어플리케이션일 수도 있다. 이럴 경우 보안키 암호화 모듈은 운영체제 모니터를 통해 보안 운영체제에 보안키(132a)를 요청할 수 있다. 보안 운영체제는 보안키 암호화 모듈이 인가된 개체(authorized entity)인지 여부를 결정할 수 있다. 보안키 암호화 모듈이 인가된 개체로 결정된 경우, 보안 운영체제는 보안키(132a)를 보안키 암호화 모듈로 전달할 수 있다.
저장부(130)는 어플리케이션 대칭적인 키 생성 모듈(application symmetric key generator)(이하, 키 생성 모듈)을 저장할 수 있다.
키 생성 모듈은 어플리케이션 키를 요청하는 요청 메시지를 인가된 개체(authorized entity)로부터 수신할 수 있다. 여기서 인가된 개체는 데이터를 생성한 어플리케이션이 될 수 있다. 이러한 어플리케이션은 어플리케이션 키를 이용하여 데이터를 암호화하고, 암호화된 데이터를 어플리케이션 키를 이용하여 복호화하는 루틴을 포함하여 구성될 수 있다. 물론 이러한 암/복호화 루틴은 별도의 암/복호화 어플리케이션에서 수행될 수도 있다. 즉 데이터 생성 어플리케이션은 암/복호화 어플리케이션에게 데이터의 암호화 또는 복호화를 요청할 수 있다.
키 생성 모듈은 인가된 개체로부터 수신된 요청 메시지에 응답하여 보안키 암호화 모듈에 '암호화된 보안키'를 요청할 수 있다. 또한 키 생성 모듈은 인가된 개체로부터 수신된 요청 메시지에 응답하여, 데이터 생성 어플리케이션에 대응되는 어플리케이션 아이디를 임의의 연산 과정을 통해 계산(또는 미리 정의된 아이디를 메모리에 액세스하여 확인 등)할 수 있다. 이러한 어플리케이션 아이디는 어플리케이션 별로 고유의 값일 수 있다.
어플리케이션 아이디는, 계산될 때마다, 매번 동일하게 획득될 수 있다. 또한, 어플리케이션 아이디는 해당 어플리케이션이 업데이트되더라도, 매번 동일하게 획득될 수 있다. 어플리케이션이 업데이트되기 전에 사용된 어플리케이션 아이디와 동일한 어플리케이션 아이디가 획득될 수 있도록 하는 입력 값 즉, 시드(seed) 값이 제공될 수 있다. 예를 들어, 업데이트되기 전에 사용된 어플리케이션 아이디가 F("STRING")이라면, 업데이트 이후에는 "STRING"이 시드 값으로 제공되어 F("STRING")가 획득될 수 있다. 여기서 F()는 임의의 함수이다. 예컨대, 해시 함수가 될 수 있다.
어플리케이션 아이디는 예컨대, 해당 어플리케이션의 전체 경로(full path)(예컨대, C:\Program files\Office), 해당 어플리케이션의 이름(name), 해당 어플리케이션 저작자(author)의 공개키 인증서(public key certificate) 등이 될 수 있다. 또한, 어플리케이션 아이디는 다음과 같은 연산 방법들에 의해 계산될 수 있다. 물론 다음과 같은 연산 방법들이 본 개시의 기술적 사상을 한정하는 것은 아니다.
(1) 어플리케이션 아이디 = F(전체 경로 ⊙ 이름 ⊙ 인증서)
(2) 어플리케이션 아이디 = F(전체 경로 ◎ 이름 ◎ 인증서)
위에서, F()는 임의의 함수이다. 예컨대, 해시 함수가 될 수 있다. ⊙와 ◎는 임의의 연산을 의미한다. ⊙ 및 ◎는 같은 연산일수도 있고 다른 연산일 수도 있다. ⊙ 및 ◎의 예에는 XOR 연산, 조합(concatenation) 연산 등이 있다.
키 생성 모듈은 보안키(132a)(또는 상기 암호화 모듈에 의해 암호화된 보안키)와 어플리케이션 아이디를 이용하여 어플리케이션 키를 생성하고, 이를 요청한 개체에 전달할 수 있다. 여기서 어플리케이션 키의 생성에는 암호 기능(Cryptographic function)이 적용될 수 있다. 암호 기능은 두 개의 입력 값으로부터 새로운 값을 만들어 출력할 수 있다. 여기서 두 개의 입력 값 중에 하나는 보안키(132a)이거나 보안키 암호화 모듈에 의해 암호화된 보안키일 수 있다. 다른 하나는 어플리케이션 아이디일 수 있다. 암호 기능으로는 예컨대, 시큐어 해시 알고리즘 256(Secure Hash Algorithm 256; SHA-256), 고급 암호 표준 128(Advanced Encryption Standard 128; AES-128) 등이 적용될 수 있다.
한편, 어플리케이션 키의 생성에는 상술한 암호 순열 알고리즘이 적용될 수도 있다. 즉 키 생성 모듈은 보안키(132a)와 어플리케이션 아이디를 하나의 입력 값으로 조합하고, 이렇게 조합된 입력 값을 암호화하여 어플리케이션 키를 생성할 수도 있다.
키 생성 모듈은 보안 영역의 하나의 구성일 수 있다. 즉 키 생성 모듈은 보안 운영체제의 기반 하에 동작하는 보안 어플리케이션일 수 있다. 그렇다면 키 생성 모듈은 보안 데이터 특히, 보안키(132a)에 대한 접근 권한을 가질 수 있다. 한편, 키 생성 모듈은 노말 영역의 하나의 구성일 수 도 있다. 즉 키 생성 모듈은 노말 운영체제의 기반 하에 동작하는 어플리케이션일 수도 있다. 이럴 경우 키 생성 모듈은 운영체제 모니터를 통해 보안 운영체제에 보안키(132a)를 요청할 수 있다. 보안 운영체제는, 키 생성 모듈이 인가된 개체(authorized entity)인지 여부를 결정할 수 있다. 키 생성 모듈이 인가된 개체로 결정된 경우, 보안 운영체제는 보안키(132a)를 키 생성 암호화 모듈로 전달할 수 있다.
무선통신부(140)는 제어부(160)의 제어 하에, 네트워크를 통해 외부장치와 음성 통화, 화상 통화 또는 데이터 통신을 수행한다. 무선통신부(140)는 송신되는 신호의 주파수를 상승변환 및 증폭하는 무선주파수 송신부와, 수신되는 신호의 주파수를 저잡음 증폭 및 하강 변환하는 무선주파수 수신부를 포함한다. 또한 무선 통신부(140)는 이동 통신 모듈(예컨대, 3세대(3-Generation) 이동통신모듈, 3.5(3.5-Generation)세대 이동통신모듈 또는 4(4-Generation)세대 이동통신모듈 등), 디지털 방송 모듈(예컨대, DMB 모듈) 및 근거리 통신 모듈(예, 와이파이(Wi-Fi) 모듈, 블루투스(bluetooth) 모듈, NFC(Near Field Communication) 모듈)을 포함한다.
오디오 처리부(150)는 스피커(SPK) 및 마이크(MIC)와 결합하여 음성 인식, 음성 녹음, 디지털 레코딩(recording) 및 통화를 위한 오디오 신호(예, 음성 데이터)의 입력 및 출력을 수행한다. 오디오 처리부(150)는 제어부(160)로부터 오디오 신호를 수신하고, 수신한 오디오 신호를 아날로그로 D/A 변환하고 증폭한 후 스피커(SPK)로 출력한다. 오디오 처리부(150)는 마이크(MIC)으로부터 수신한 오디오 신호를 디지털로 A/D 변환한 후 제어부(160)로 제공한다. 스피커(SPK)는 오디오 처리부(150)로부터 수신한 오디오 신호를 음파(sound wave)로 변환하여 출력한다. 마이크(MIC)는 사람이나 기타 소리원(sound source)들로부터 전달된 음파를 오디오 신호로 변환한다.
제어부(160)는 휴대 단말(100)의 전반적인 동작 및 휴대 단말(100)의 내부 구성들 간의 신호 흐름을 제어하고, 데이터를 처리하는 기능을 수행하고, 배터리에서 상기 구성들로의 전원 공급을 제어한다.
제어부(160)는 하나 이상의 CPU(central processing unit)로 구성될 수 있다. 주지된 바와 같이 CPU는 자료의 연산 및 비교와, 명령어의 해석 및 실행 등을 수행하는 컴퓨터 시스템의 핵심적인 제어 유닛이다. CPU는 데이터나 명령을 일시 저장하는 각종 레지스터들을 포함한다. 제어부(160)는 하나 이상의 GPU(graphic processing unit)를 더 포함하여 구성될 수 있다. GPU는 CPU를 대신하여, 그래픽과 관련한 자료의 연산 및 비교와, 명령어의 해석 및 실행 등을 수행하는 그래픽 제어 유닛이다. CPU과 GPU는 각각, 두 개 이상의 독립 코어(예, 쿼드 코어(quad-core))가 단일 집적 회로로 이루어진 하나의 패키지(package)로 통합될 수 있다. 즉 CPU들은 하나의 멀티 코어 프로세서로 통합된 것일 수 있다. 또한 다수의 GPU들도 하나의 멀티 코어 프로세서로 통합된 것일 수 있다. 또한 CPU와 GPU는 하나의 칩으로 통합(SoC; System on Chip)된 것일 수 있다. 또한 CPU와 GPU는 멀티 레이어(multi layer)로 패키징(packaging)된 것일 수 있다. 한편 CPU 및 GPU를 포함하는 구성은 AP(Application Processor)라고 지칭될 수 있다. 제어부(160)에서 CPU들 중에 적어도 하나는 보안 영역의 CPU일 수 있다. 또한 제어부(160)에서 GPU들 중에 적어도 하나는 보안 영역의 GPU일 수 있다. 또한 제어부(160)에서 AP들 중에 적어도 하나는 보안 영역의 AP일 수 있다.
제어부(160)는 메인메모리(main memory unit)(161) 예컨대, 램(RAM)을 더 포함하여 구성될 수 있다. 즉 제어부(160)의 CPU, GPU, AP 등은 메인메모리(161)에 접근(access)하여 메인메모리(161)로 로딩된 각종 프로그램과 데이터를 읽을 수 있고, 읽어 온 프로그램의 명령을 해독할 수 있으며, 해독 결과에 따른 기능을 실행할 수 있다. 메인메모리(161)는 저장부(130)로부터 로딩된 각종 프로그램 예컨대, 부팅 프로그램, 운영체제들, 운영체제 모니터 및 어플리케이션들을 저장한다. 특히 메인메모리(161)는 저장부(130)와 대응되게, 노말 영역(161a)과 보안 영역(161b)으로 구성될 수 있다. 즉 메인메모리(161)의 노말 영역(161a)으로는 부팅 프로그램, 노말 운영체제, 노말 어플리케이션, 노말 데이터가 로딩될 수 있다. 메인메모리(161)의 보안 영역(161b)으로는 보안 운영체제, 보안 어플리케이션, 보안 데이터가 로딩될 수 있다.
디지털 기기의 컨버전스(convergence) 추세에 따라 변형이 매우 다양하여 모두 열거할 수는 없으나, 휴대 단말(100)은 카메라, 가속도 센서, GPS(global positioning system) 모듈, 진동 모터, 액세서리, 이어 잭 등과 같이 상기에서 언급되지 않은 구성들을 더 포함할 수 있다. 여기서 액세서리는 휴대 단말(100)로부터 분리가 가능한 휴대 단말(100)의 부속품으로써 예컨대, 터치를 위한 펜이 될 수 있다.
도 2는 본 개시의 일 실시예에 따른 데이터 보호 장치의 블록 구성도이다.
도 2를 참조하면, 본 개시의 일 실시예에 따른 데이터 보호 장치(200)는 보안키 암호화 모듈(210), 어플리케이션 아이디 계산 모듈(220), 어플리케이션 키 생성 모듈(230) 및 데이터 암/복호화 모듈(240)를 포함할 수 있다. 보안키 암호화 모듈(210)는 보안키(132a)를 암호화하여 어플리케이션 키 생성 모듈(230)로 전달한다. 어플리케이션 아이디 계산 모듈(220)는 어플리케이션 아이디를 계산하여 어플리케이션 키 생성 모듈(230)로 전달한다. 어플리케이션 키 생성 모듈(230)는 어플리케이션 키를 요청하는 요청 메시지를 데이터 암/복호화 모듈(240)로부터 수신할 수 있다. 요청 메시지에 응답하여 어플리케이션 키 생성 모듈(230)는 어플리케이션 아이디의 획득을 어플리케이션 아이디 계산 모듈(220)에 요청한다. 또한 요청 메시지에 응답하여 어플리케이션 키 생성 모듈(230)는 보안키 암호화 모듈(210)에 보안키(132a)의 암호화를 요청한다. 어플리케이션 키 생성 모듈(230)는 보안키 암호화 모듈(210) 및 어플리케이션 아이디 계산 모듈(220)로부터 각각, 암호화된 보안키와 어플리케이션 아이디를 수신하고, 이들을 이용하여 어플리케이션 키를 생성하고, 어플리케이션 키를 데이터 암/복호화 모듈(240)에 전달한다. 데이터 암/복호화 모듈(240)은 어플리케이션 키를 이용하여 해당 어플리케이션의 데이터를 암호화하거나 복호화할 수 있다.
본 개시의 일 실시예에 따른 데이터 보호 장치(200)는 휴대 단말(100)의 일부 구성일 수 있다. 특히, 보안키 암호화 모듈(210), 어플리케이션 아이디 계산 모듈(220), 어플리케이션 키 생성 모듈(230) 및 데이터 암/복호화 모듈(240)는 제어부(160)의 메인메모리(161)에 저장된 모듈들일 수 있다. 이에 따라 제어부(160) 예컨대, AP나 CPU 등은 메인메모리(161)에 액세스하여 보안키 암호화 모듈(210), 어플리케이션 아이디 계산 모듈(220), 어플리케이션 키 생성 모듈(230) 및 데이터 암/복호화 모듈(240)를 동작시킬 수 있다. 한편, 상기 구성들 중에서 적어도 하나는 메인메모리(261)의 보안 영역(261b)의 구성일 수 있다. 또한, 데이터 암/복호화 모듈(240)은 인가된 개체이며, 데이터를 생성하는 어플리케이션일 수 있다. 이러한 데이터 생성 어플리케이션은 노말 영역의 하나의 구성일 수 있다. 물론 데이터 생성 어플리케이션은 보안 영역의 하나의 구성일 수도 있다. 또한, 데이터 암/복호화 모듈(240)은 데이터 생성 어플리케이션을 대신하여 데이터를 암/복호화하는 별도의 대행 어플리케이션일 수도 있다. 이러한 대행 어플리케이션은 보안 영역 또는 노말 영역의 하나의 구성일 수 있다.
도 3은 본 개시의 다른 실시예에 따른 데이터 보호 장치의 블록 구성도이다.
도 3을 참조하면, 본 개시의 다른 실시예에 따른 데이터 보호 장치(300)는 어플리케이션 아이디 계산 모듈(310), 어플리케이션 키 생성 모듈(320) 및 데이터 암/복호화 모듈(330)를 포함할 수 있다. 어플리케이션 아이디 계산 모듈(310)는 어플리케이션 아이디를 계산하여 어플리케이션 키 생성 모듈(320)로 전달한다. 어플리케이션 키 생성 모듈(320)는 어플리케이션 키를 요청하는 요청 메시지를 데이터 암/복호화 모듈(330)로부터 수신할 수 있다. 요청 메시지에 응답하여 어플리케이션 키 생성 모듈(320)는 어플리케이션 아이디의 획득을 어플리케이션 아이디 계산 모듈(310)에 요청한다. 어플리케이션 키 생성 모듈(320)는 보안키(132a)를 보안 영역(132)에서 획득할 수 있다. 어플리케이션 키 생성 모듈(320)는 어플리케이션 아이디 계산 모듈(310)로부터 어플리케이션 아이디를 수신하고, 보안키(132a)와 어플리케이션 아이디를 하나의 입력값으로 조합한다. 어플리케이션 키 생성 모듈(320)는 조합된 입력값을 이용하여 어플리케이션 키를 생성하고, 어플리케이션 키를 데이터 암/복호화 모듈(330)에 전달한다. 데이터 암/복호화 모듈(330)는 어플리케이션 키를 이용하여 해당 어플리케이션의 데이터를 암호화하거나 복호화할 수 있다.
본 개시의 다른 실시예에 따른 데이터 보호 장치(300)는 휴대 단말(100)의 일부 구성일 수 있다. 특히, 어플리케이션 아이디 계산 모듈(310), 어플리케이션 키 생성 모듈(320) 및 데이터 암/복호화 모듈(330)는 제어부(160)의 메인메모리(161)에 저장된 모듈들일 수 있다. 이에 따라 제어부(160) 예컨대, AP나 CPU 등은 메인메모리(161)에 액세스하여 어플리케이션 아이디 계산 모듈(310), 어플리케이션 키 생성 모듈(320) 및 데이터 암/복호화 모듈(330)를 동작시킬 수 있다. 한편, 상기 구성들 중에서 적어도 하나는 메인메모리(261)의 보안 영역(261b)의 구성일 수 있다. 또한, 데이터 암/복호화 모듈(330)는 인가된 개체이며, 데이터를 생성하는 어플리케이션일 수 있다. 또한, 데이터 암/복호화 모듈(330)은 데이터 생성 어플리케이션을 대신하여 데이터를 암/복호화하는 대행 어플리케이션일 수도 있다.
도 4는 본 개시의 일 실시예에 따른 데이터 보호 방법을 설명하기 위한 흐름도이다.
도 1, 도 2 및 도 4를 참조하면, 인가된 개체는 데이터를 생성할 수 있다. 여기서 인가된 개체는 휴대 단말(100)에 설치되어 데이터를 생성하는 다양한 어플리케이션들(예컨대, 카메라 어플리케이션, SNS(Social Network Service) 어플리케이션, 인스턴트 메신저, 알람 어플리케이션, 계산기 등)일 수 있다. 이러한 인가된 개체는 데이터 암/복호화 모듈(240)를 포함할 수 있다. 물론, 데이터 암/복호화 모듈(240)는 별도의 어플리케이션일 수도 있다. 데이터 암/복호화 모듈(240)는 데이터가 만들어지면 또는 암호화된 데이터의 복호화가 필요한 경우(예컨대, 표시 목적으로 사진의 복호화가 필요한 경우), 해당 데이터를 생성한 어플리케이션에 대응되는 어플리케이션 키를 어플리케이션 키 생성 모듈(230)에 요청할 수 있다.
단계 410에서 어플리케이션 키 생성 모듈(230)는 인가된 개체 즉, 데이터 암/복호화 모듈(240)로부터 어플리케이션 키의 요청을 수신한다. 이러한 요청에 응답하여 어플리케이션 키 생성 모듈(230)는 어플리케이션 아이디의 획득을 어플리케이션 아이디 계산 모듈(220)에 요청한다. 이에 따라 단계 420에서 어플리케이션 아이디 계산 모듈(220)는 상기 데이터를 생성한 어플리케이션에 대응되는 어플리케이션 키를 계산한다.
어플리케이션 키의 요청에 응답하여, 단계 430에서 어플리케이션 키 생성 모듈(230)는 보안키 암호화 모듈(210)에 보안키(132a)의 암호화를 요청한다. 이에 따라 보안키 암호화 모듈(210)는 보안키(132a)를 암호화하여 어플리케이션 키 생성 모듈(230)에 전달한다. 이에 따라 단계 440에서 어플리케이션 키 생성 모듈(230)는 암호화된 보안키를 보안키 암호화 모듈(210)로부터 수신한다.
단계 450에서 어플리케이션 키 생성 모듈(230)는 암호화된 보안키와 어플리케이션 아이디를 이용하여 어플리케이션 키를 생성한다.
단계 460에서 어플리케이션 키 생성 모듈(230)는 어플리케이션 키를 인가된 개체에 리턴한다. 인가된 개체는 어플리케이션 키를 이용하여 데이터를 암호화하여 저장부(130)의 노말 영역(131) 또는 보안 영역(132)에 저장할 수 있다. 또한 인가된 개체는 저장부(130)의 노말 영역(131) 또는 보안 영역(132)으로부터 읽어 온 '암호화된 데이터'를 어플리케이션 키를 이용하여 복호화할 수 있다. 한편, 어플리케이션 키의 리턴이 완료되었거나 인가된 개체에서 그 쓰임이 완료되어 더 이상 사용되지 않는 경우, 해당 어플리케이션 키는 메모리 예컨대, RAM에서 삭제될 수 있다.
도 5는 본 개시의 다른 실시예에 따른 데이터 보호 방법을 설명하기 위한 흐름도이다.
도 1, 도 3 및 도 5를 참조하면, 단계 510에서 어플리케이션 키 생성 모듈(320)는 인가된 개체 즉, 데이터 암/복호화 모듈(330)로부터 어플리케이션 키의 요청을 수신한다. 이러한 요청에 응답하여 어플리케이션 키 생성 모듈(320)는 어플리케이션 아이디의 획득을 어플리케이션 아이디 계산 모듈(310)에 요청한다. 이에 따라 단계 520에서 어플리케이션 아이디 계산 모듈(310)는 데이터를 생성한 어플리케이션에 대응되는 어플리케이션 키를 계산하여 어플리케이션 키 생성 모듈(320)로 전달한다.
어플리케이션 키가 수신되면 단계 530에서 어플리케이션 키 생성 모듈(320)는 보안키와 어플리케이션 아이디를 이용하여 어플리케이션 키를 생성한다.
단계 540에서 어플리케이션 키 생성 모듈(320)는 어플리케이션 키를 인가된 개체에 리턴한다.
이상으로 본 개시의 실시예들에 따르면 다음과 같은 장점들이 제공될 수 있다.
어플리케이션 키의 생성을 위해, 보안키 이외에 어떠한 값도 메모리에 추가적으로 저장될 필요가 없다. 따라서 보호되어야 하는 저장 공간(예컨대, 보안 영역들(132, 161b))이 최소화될 수 있고 어플리케이션의 개수에 제한 없이 어플리케이션별로 키 생성이 가능하다.
단지 하나의 보안키만으로, 개수의 제한 없이 다수의 어플리케이션 키가 생성될 수 있다.
어플리케이션 키는 각각의 어플리케이션 아이디를 이용하여 만들어지기 때문에 어플리케이션마다 고유하다. 또한 어플리케이션 키는 해당 디바이스의 고유 값(즉, 보안키)로 만들어질 수도 있으므로, 디바이스별로 고유할 수 있다. 따라서, 어플리케이션 아이디, 보안키 또는 이들과 관련된 정보 없이는 어플리케이션 키를 유추하거나 해킹하는 것은 매우 어렵다. 예컨대, 보안키가 저장된 보안 영역에 대한 접근을 획득하는 수준의 매우 고 난도의 해킹 기술이 필요하다.
또한 본 발명에 따른 어플리케이션 키는 사용자로부터 어떠한 입력도 받지 않고도 생성되는 것이 가능하다.
데이터를 암호화 또는 복호화하는데 쓰이는 어플리케이션 키의 시드(seed) 값은 일반적으로 노말 영역에 저장되어 접근이 용이한 값(예컨대, 국제모바일기기 식별코드(International Mobile Equipment Identity; IMEI))이 아니라, 보안 영역에 저장된다. 따라서 노말 영역의 운영체제나 어플리케이션들이 보안 영역에 임의대로 접근할 수 없어 시드 값이 매우 안전하게 보호된다.
어플리케이션 키의 생성을 위해 네트워킹이 필요 없다. 또한 다른 디바이스의 도움도 필요 없다. 즉 어플리케이션 키는 해당 디바이스가 자체적으로 얻을 수 있다. 따라서 어플리케이션 키의 생성 및 그 사용이 효율적이다.
상술한 바와 같은 본 개시에 따른 방법은 다양한 컴퓨터를 통하여 수행될 수 있는 프로그램 명령으로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 여기서 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 포함할 수 있다. 또한 프로그램 명령은 본 개시를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수 있다. 또한 기록매체에는 하드디스크, 플로피디스크 및 자기 테이프와 같은 자기매체(Magnetic Media)와, CD-ROM, DVD와 같은 광기록 매체(Optical Media)와, 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media)와, 롬(ROM)과, 램(RAM)과, 플래시 메모리 등과 같은 하드웨어 장치가 포함될 수 있다. 또한 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라, 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드가 포함될 수 있다. 하드웨어 장치는 본 개시를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있다.
본 개시에 따른 방법 및 장치는 전술한 실시 예에 국한되지 않고 본 개시의 기술 사상이 허용하는 범위에서 다양하게 변형하여 실시할 수가 있다.
100: 휴대 단말
110: 표시부 111: 터치 패널
120: 키입력부 130: 저장부
131: 노말 영역 132: 보안 영역
132a: 보안키 140: 무선통신부
150: 오디오 처리부 160: 제어부
161: 메인메모리 161a: 노말 영역
162b: 보안 영역

Claims (19)

  1. 전자 장치를 동작시키는 방법에 있어서,
    데이터 생성 어플리케이션으로부터 어플리케이션 키의 요청을 수신하는 단계;
    상기 요청에 응답하여 상기 데이터 생성 어플리케이션에 해당되는 어플리케이션 아이디와 상기 전자 장치의 보안 영역에 저장된 보안키를 이용하여 어플리케이션 키를 생성하는 단계; 및
    상기 생성된 어플리케이션 키를 이용하여 데이터를 암호화하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 어플리케이션 키를 생성하는 단계는,
    상기 요청에 응답하여 상기 보안키를 암호화하고, 상기 암호화된 보안키와 상기 어플리케이션 아이디를 이용하여 어플리케이션 키를 생성하는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서,
    상기 어플리케이션 키를 생성하는 단계는,
    상기 요청에 응답하여 상기 데이터 생성 어플리케이션에 해당되는 어플리케이션 아이디를 계산하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 어플리케이션 키를 생성하는 단계는,
    상기 보안 영역 내에서 상기 어플리케이션 키를 생성하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    상기 데이터를 암호화하는 단계는,
    상기 보안 영역 내에서 상기 데이터를 암호화하는 것을 특징으로 하는 방법.
  6. 제 1 항에 있어서,
    상기 어플리케이션 키의 요청을 수신하는 단계는,
    상기 대이터 생성 어플리케이션을 대신하여 데이터의 암호화를 수행하는 대행 어플리케이션으로부터 상기 어플리케이션 키의 요청을 수신하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 전자 장치를 동작시키는 방법에 있어서,
    어플리케이션으로부터 암호화 키 또는 복호화 키의 요청을 수신하는 단계;
    상기 요청에 응답하여 상기 전자 장치의 보안 영역에 저장된 보안키를 이용하여 암호화 키 또는 복호화 키를 생성하는 단계; 및
    상기 생성된 암호화 키 또는 복호화 키를 상기 어플리케이션으로 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제 7 항에 있어서,
    상기 암호화 키 또는 복호화 키를 생성하는 단계는,
    상기 보안키와 데이터 생성 어플리케이션에 해당되는 어플리케이션 아이디를 이용하여 암호화 키 또는 복호화 키를 생성하는 것을 특징으로 하는 방법.
  9. 제 8 항에 있어서,
    상기 어플리케이션 키를 생성하는 단계는,
    상기 요청에 응답하여 상기 보안키를 암호화하고, 상기 암호화된 보안키와 상기 어플리케이션 아이디를 이용하여 어플리케이션 키를 생성하는 것을 특징으로 하는 방법.
  10. 사용자 입력부;
    노말 영역과 보안 영역을 포함하는 메모리; 및
    상기 노말 영역에 접근하여 상기 노말 영역의 프로그램을 실행하고, 상기 보안 영역에 접근하여 상기 보안 영역의 프로그램을 실행하고, 상기 사용자 입력부와 상기 메모리를 연결하는 프로세서를 포함하고,
    상기 보안 영역의 키 생성 모듈은, 어플리케이션으로부터 어플리케이션 키의 요청을 수신하고, 상기 요청에 응답하여 어플리케이션 아이디 및 보안키를 이용하여 어플리케이션 키를 생성하고, 상기 생성된 어플리케이션 키를 상기 어플리케이션으로 전달하고,
    상기 보안키는, 상기 보안 영역에서는 접근 가능하고 상기 노말 영역에서는 접근 불가능한 것을 특징으로 하는 전자 장치.
  11. 제 10 항에 있어서,
    상기 보안 영역은,
    상기 요청에 응답하여 상기 보안키를 암호화하고, 상기 암호화된 보안키를 상기 키 생성 모듈로 전달하는 암호화 모듈을 포함하는 것을 특징으로 하는 전자 장치.
  12. 제 10 항에 있어서,
    상기 보안 영역 또는 상기 노말 영역은,
    상기 요청에 응답하여 데이터 생성 어플리케이션에 해당되는 어플리케이션 아이디를 계산하는 계산 모듈을 포함하는 것을 특징으로 하는 전자 장치.
  13. 제 10 항에 있어서,
    상기 어플리케이션은,
    상기 노말 영역 또는 상기 보안 영역의 하나의 구성이고,
    데이터 생성 어플리케이션 또는 이를 대신하여 데이터의 암호화 및 복호화를 수행하는 대행 어플리케이션인 것을 특징으로 하는 전자 장치.
  14. 제 10 항에 있어서,
    상기 사용자 입력부는 터치스크린을 포함하는 것을 특징으로 하는 전자 장치.
  15. 사용자 입력부;
    노말 영역과 보안 영역을 포함하는 메모리; 및
    상기 노말 영역에 접근하여 상기 노말 영역의 프로그램을 실행하고, 상기 보안 영역에 접근하여 상기 보안 영역의 프로그램을 실행하고, 상기 사용자 입력부와 상기 메모리를 연결하는 프로세서를 포함하고,
    상기 보안 영역의 키 생성 모듈은, 어플리케이션으로부터 암호화 키 또는 복호화 키의 요청을 수신하고, 상기 요청에 응답하여 보안키를 이용하여 암호화 키 또는 복호화 키를 생성하고, 상기 생성된 암호화 키 또는 복호화 키를 상기 어플리케이션으로 전달하고,
    상기 보안키는, 상기 보안 영역에서는 접근 가능하고 상기 노말 영역에서는 접근 불가능한 것을 특징으로 하는 전자 장치.
  16. 제 15 항에 있어서,
    상기 보안 영역의 키 생성 모듈은,
    상기 보안키와 데이터 생성 어플리케이션에 해당되는 어플리케이션 아이디를 이용하여 암호화 키 또는 복호화 키를 생성하는 것을 특징으로 하는 전자 장치.
  17. 제 15 항에 있어서,
    상기 보안 영역은,
    상기 요청에 응답하여 상기 보안키를 암호화하고, 상기 암호화된 보안키를 상기 키 생성 모듈로 전달하는 암호화 모듈을 포함하는 것을 특징으로 하는 전자 장치.
  18. 제 15 항에 있어서,
    상기 어플리케이션은,
    상기 노말 영역 또는 상기 보안 영역의 하나의 구성이고,
    데이터 생성 어플리케이션 또는 이를 대신하여 데이터의 암호화 및 복호화를 수행하는 대행 어플리케이션인 것을 특징으로 하는 전자 장치.
  19. 제 15 항에 있어서,
    상기 사용자 입력부는 터치스크린을 포함하는 것을 특징으로 하는 전자 장치.
KR1020130025299A 2013-03-08 2013-03-08 데이터 보호 방법 및 이를 구현하는 전자 장치 KR20140110639A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130025299A KR20140110639A (ko) 2013-03-08 2013-03-08 데이터 보호 방법 및 이를 구현하는 전자 장치
US14/191,881 US20140258734A1 (en) 2013-03-08 2014-02-27 Data security method and electronic device implementing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130025299A KR20140110639A (ko) 2013-03-08 2013-03-08 데이터 보호 방법 및 이를 구현하는 전자 장치

Publications (1)

Publication Number Publication Date
KR20140110639A true KR20140110639A (ko) 2014-09-17

Family

ID=51489396

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130025299A KR20140110639A (ko) 2013-03-08 2013-03-08 데이터 보호 방법 및 이를 구현하는 전자 장치

Country Status (2)

Country Link
US (1) US20140258734A1 (ko)
KR (1) KR20140110639A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102215231B1 (ko) * 2019-08-05 2021-02-10 충남대학교 산학협력단 안드로이드 어플리케이션에 대한 후킹방지 시스템 및 그 방법

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9626304B2 (en) * 2014-10-21 2017-04-18 Sandisk Technologies Llc Storage module, host, and method for securing data with application information
CN105760719B (zh) * 2014-12-19 2019-11-15 深圳市中兴微电子技术有限公司 一种密文数据解密方法及系统
US10642962B2 (en) 2015-07-28 2020-05-05 Western Digital Technologies, Inc. Licensable function for securing stored data
CN105516083A (zh) * 2015-11-25 2016-04-20 上海华为技术有限公司 一种数据安全管理的方法、装置及系统
CN106453052B (zh) * 2016-10-14 2020-06-19 北京小米移动软件有限公司 消息交互方法及装置
US11349659B2 (en) * 2017-08-29 2022-05-31 Amazon Technologies, Inc. Transmitting an encrypted communication to a user in a second secure communication network
US11368442B2 (en) * 2017-08-29 2022-06-21 Amazon Technologies, Inc. Receiving an encrypted communication from a user in a second secure communication network
US11095662B2 (en) 2017-08-29 2021-08-17 Amazon Technologies, Inc. Federated messaging
CN108494725B (zh) * 2018-01-30 2021-03-30 惠州市德赛西威汽车电子股份有限公司 一种车载can总线报文的加密通信方法
CN111859416A (zh) * 2020-06-23 2020-10-30 天地融科技股份有限公司 一种安全显示控制的方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6889329B1 (en) * 2000-07-28 2005-05-03 Sun Microsystems, Inc. Adding secure external virtual memory to smart cards
US20060093149A1 (en) * 2004-10-30 2006-05-04 Shera International Ltd. Certified deployment of applications on terminals
US8473754B2 (en) * 2006-02-22 2013-06-25 Virginia Tech Intellectual Properties, Inc. Hardware-facilitated secure software execution environment
US8369526B2 (en) * 2008-02-12 2013-02-05 Discretix Technologies Ltd. Device, system, and method of securely executing applications
US8555089B2 (en) * 2009-01-08 2013-10-08 Panasonic Corporation Program execution apparatus, control method, control program, and integrated circuit
JP5550439B2 (ja) * 2010-05-06 2014-07-16 キヤノン株式会社 アプリケーションのインストール方法
US9344275B2 (en) * 2012-05-08 2016-05-17 Arm Technologies Israel Ltd. System, device, and method of secure entry and handling of passwords

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102215231B1 (ko) * 2019-08-05 2021-02-10 충남대학교 산학협력단 안드로이드 어플리케이션에 대한 후킹방지 시스템 및 그 방법

Also Published As

Publication number Publication date
US20140258734A1 (en) 2014-09-11

Similar Documents

Publication Publication Date Title
KR20140110639A (ko) 데이터 보호 방법 및 이를 구현하는 전자 장치
US9652610B1 (en) Hierarchical data security measures for a mobile device
US10078599B2 (en) Application access control method and electronic apparatus implementing the same
US20150312759A1 (en) Mobile device and method of sharing content
CN107431924B (zh) 将设备标识符和用户标识符相关联的设备盗窃防护
US9582656B2 (en) Systems for validating hardware devices
KR20140099325A (ko) 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법
CN104954126B (zh) 敏感操作验证方法、装置及系统
US10733594B1 (en) Data security measures for mobile devices
WO2020125134A1 (zh) 自定义模型防篡改方法、装置、终端设备及存储介质
WO2017028711A1 (zh) 数据处理的方法、穿戴式电子设备和系统
KR102180529B1 (ko) 어플리케이션 접근 제어 방법 및 이를 구현하는 전자 장치
US11023620B2 (en) Cryptography chip with identity verification
US20210034763A1 (en) Splitting Sensitive Data and Storing Split Sensitive Data in Different Application Environments
US20230161885A1 (en) Security architecture system, cryptographic operation method for security architecture system, and computing device
EP3907930B1 (en) File processing method and terminal device
US10423767B2 (en) Content protection system using biometric authentication
KR102133200B1 (ko) 데이터의 보호 방법 및 장치
CN110602689B (zh) 一种设备安全操作的方法和装置
KR20150007034A (ko) 휴대형 전자장치의 어플리케이션 보안 방법
KR20140111466A (ko) 프로세스 인증 방법 및 이를 구현하는 전자 장치
KR20160123574A (ko) 외부 디바이스에게 태스크 실행을 요청하는 디바이스 및 그 방법
KR20140110637A (ko) 데이터 보호 방법 및 이를 구현하는 전자 장치
KR20150091569A (ko) 전자 장치 및 이의 특정 영역에 대한 접근을 제어하는 방법
WO2019127468A1 (zh) 分组应用使用同一密钥共享数据

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid