KR20150017844A - 페이지 구성 방법 및 이를 지원하는 전자 장치 - Google Patents

페이지 구성 방법 및 이를 지원하는 전자 장치 Download PDF

Info

Publication number
KR20150017844A
KR20150017844A KR1020130093950A KR20130093950A KR20150017844A KR 20150017844 A KR20150017844 A KR 20150017844A KR 1020130093950 A KR1020130093950 A KR 1020130093950A KR 20130093950 A KR20130093950 A KR 20130093950A KR 20150017844 A KR20150017844 A KR 20150017844A
Authority
KR
South Korea
Prior art keywords
security
module
application
app
data
Prior art date
Application number
KR1020130093950A
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 KR1020130093950A priority Critical patent/KR20150017844A/ko
Priority to US14/455,268 priority patent/US9432195B2/en
Publication of KR20150017844A publication Critical patent/KR20150017844A/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/60Protecting data
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/606Protecting data by securing the transmission between two devices or processes
    • 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/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/067Network architectures or network communication protocols for network security for supporting key management in a packet data network using one-time keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Telephone Function (AREA)
  • Storage Device Security (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 개시의 한 실시예는 비보안 실행 모듈 기반으로 일반 앱을 실행하는 동작, 상기 일반 앱 운용과 관련한 제1 보안 앱을 보안 실행 모듈 기반으로 실행하는 동작, 상기 제1 보안 앱에서 생성된 데이터를 암호화하여 메시지를 생성하는 생성 동작, 상기 암호화된 메시지를 상기 일반 앱에 전달하는 동작, 상기 일반 앱이 앱 운용과 관련되며 상기 보안 실행 모듈 기반으로 실행되는 제2 보안 앱에 상기 암호화된 메시지를 전달하는 동작을 포함하는 데이터 보안 운용 방법 및 이를 지원하는 전자 장치의 구성을 개시한다.

Description

페이지 구성 방법 및 이를 지원하는 전자 장치{Controlling Method For Input Status and Electronic Device supporting the same}
다양한 실시예에서 설명하는 기술은 전자 장치의 페이지 구성에 관한 것이다.
전자 장치는 특정 기능을 지원하는 어플리케이션 설치를 지원할 수 있다. 예컨대 전자 장치는 문서 작성과 관련한 기능을 지원할 수 있다. 전자 장치는 사용자 운용에 따른 데이터를 저장할 수 있다. 예컨대 전자 장치는 금융과 관련된 어플리케이션을 운용할 수 있다. 금융과 관련된 어플리케이션 운용 중에는 데이터의 보안 문제가 중요하게 고려될 수 있다.
최근 전자 장치는 데이터 보안과 관련하여 보안 실행 환경 및 비보안 실행 환경을 포함하도록 설계되고 있다. 보안 실행 환경(Trusted execution environment : TEE)은 보안 앱(Trusted applications : TA)이 실행되는 환경이다. 보안 앱은 비보안 실행 환경(Non-Trusted execution environment : NTEE)에서의 프로세싱을 위해 보안 앱에서 사용되는 데이터나 보안 앱 실행에 영향을 받는 패스를 비보안 실행 환경의 앱이 접근하지 못하거나 사용할 수 없도록 제한하고 있다.
한편, 비보안 실행 환경에서의 기능 실행은 보안 실행 환경 내에서의 다중의 보안 앤들의 위치나 데이터 활용을 요구할 수 있다. 이러한 환경에서, 보안 앱들은 그들 내에서 데이터 교환이 요구될 수 있다. 그러나 현재 제공되는 전자 장치들의 보안 실행 환경은 보안 앱들 간의 직접적인 데이터 교환을 허용하지 않고 있다. 따라서 특정 보안 앱이 비보안 실행 환경에서 수행되는 일반 앱과 데이터를 교환한 이후에, 일반 앱이 보안 실행 환경에서의 다른 보안 앱에 데이터를 전달하는 형태로 데이터 라우팅을 설계하고 있다.
문제는 보안 앱에서 운용되는 데이터가 일반 앱을 통해 다른 보안 앱에 전달되기 때문에, 일반 앱에 접근 가능한 특정 장치나 사용자는 보안 앱들에서 이용되는 데이터들을 스니핑하거나, 복사하거나, 의도치 않은 또 다른 보안 앱에 데이터를 전송하는 왜곡을 발생시킬 수 있다.
따라서 개시되는 다양한 실시예는 보안 앱들 간에 안전한 데이터 송수신을 수행할 수 있는 기술을 제공한다.
다양한 실시예 중 한 실시예는 비보안 실행 모듈 기반으로 일반 앱을 실행하는 동작, 상기 일반 앱 운용과 관련한 제1 보안 앱을 보안 실행 모듈 기반으로 실행하는 동작, 상기 제1 보안 앱에서 생성된 데이터를 암호화하여 메시지를 생성하는 생성 동작, 상기 암호화된 메시지를 상기 일반 앱에 전달하는 동작, 상기 일반 앱이 앱 운용과 관련되며 상기 보안 실행 모듈 기반으로 실행되는 제2 보안 앱에 상기 암호화된 메시지를 전달하는 동작을 포함하는 데이터 보안 운용 방법을 개시한다.
다양한 실시예 중 한 실시예는 일반 앱 실행을 지원하는 비보안 실행 모듈, 상기 일반 앱 운용과 관련한 제1 보안 앱 및 제2 보안 앱의 실행을 지원하는 보안 실행 모듈을 포함하고, 상기 보안 실행 모듈은 상기 제1 보안 앱에서 생성된 데이터를 암호화하여 암호화된 메시지를 생성하고, 상기 암호화된 메시지를 상기 일반 앱을 통해 상기 제2 보안 앱에 전달하도록 제어하는 전자 장치의 구성을 개시한다.
개시되는 다양한 실시예에 따르면, 데이터 암호화 전달을 기반으로 보안 앱들 간에 안전한 데이터 전달을 수행할 수 있다.
개시되는 다양한 실시예에 따르면, 암호화된 데이터 운용을 기반으로 보안 앱들 간에 송수신되는 데이터를 신뢰할 수 있다.
도 1은 한 실시예에 따른 전자 장치의 구성을 개략적으로 나타낸 도면이다.
도 2는 한 실시예에 따른 제어 모듈의 실행 모듈들을 보다 상세히 나타낸 도면이다.
도 3은 한 실시예에 따른 보호 모듈의 구성을 나타낸 도면이다.
도 4는 한 실시예에 따른 제어 모듈이 적용되는 전자 장치의 구성을 나타낸 도면이다.
도 5는 한 실시예에 따른 데이터 보안 운용 방법을 설명하기 위한 도면이다.
이하, 본 개시의 실시예를 첨부된 도면에 의거하여 상세히 설명한다.
실시예를 설명함에 있어서 본 개시가 속하는 기술분야에 익히 알려져 있고 본 개시와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 또한, 실질적으로 동일한 구성과 기능을 가진 구성 요소들에 대해서는 상세한 설명을 생략하도록 한다.
마찬가지의 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 따라서 본 개시는 첨부한 도면에 그려진 상대적인 크기나 간격에 의해 제한되어지지 않는다.
본 개시에 따른 전자 장치는 통신 기능이 포함된 장치일 수 있다. 이러한 전자 장치는 예를 들면, 스마트 폰(smartphone), 태블릿 PC(tablet personal computer), 이동전화기(mobile phone), 화상전화기, 전자북 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), PDA(personal digital assistant), PMP(portable multimedia player), 카메라(camera), 웨어러블 장치(wearable device), 스마트 가전(smart white appliance)(예: 냉장고, 에어컨, 청소기, 인공 지능 로봇, TV, DVD(digital video disk) 플레이어, 오디오, 오븐, 전자레인지, 세탁기, 공기 청정기, 전자 액자 등), 각종 의료기기(예: MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 초음파기 등), 네비게이션(navigation) 장치,GPS 수신기(global positioning system receiver), EDR(event data recorder), FDR(flight data recorder), 셋톱 박스(set-top box), TV 박스(예를 들면, 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 전자 사전, 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(electronic equipment for ship, 예를 들면, 선박용 항법 장치, 자이로콤파스 등), 항공 전자기기(avionics), 보안기기, 전자 의복, 캠코더(camcorder), 게임 콘솔(game consoles), HMD(head-mounted display), 평판표시장치(flat panel display device), 전자 앨범, 통신 기능을 포함한 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 입력장치(electronic signature receiving device) 또는 프로젝터(projector) 등의 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 본 개시에 따른 전자 장치는 전술한 기기들에 한정되지 않음은 당업자에게 자명하다.
도 1은 한 실시예에 따른 전자 장치의 구성을 개략적으로 나타낸 도면이다.
도 1을 참조하면, 본 개시의 한 실시예에 따른 전자 장치 10은 제어 모듈 60 및 저장 모듈 50을 포함할 수 있다.
제어 모듈 60은 비보안 실행 모듈 30 및 보안 실행 모듈 40을 포함할 수 있다. 그리고 제어 모듈 60의 액세스가 가능한 저장 모듈 50이 제어 모듈 60 내에 포함되거나 또는 제어 모듈 60과 연결되는 형태로 마련될 수 있다.
상기 전자 장치 10은 제어 모듈 60 제어에 대응하여 다양한 앱(Application : App, 이하 앱)을 운용할 수 있다. 예컨대 전자 장치 10은 파일 재생 앱, 방송 수신 앱, 카메라 앱 등 다양한 앱의 운용을 지원할 수 있다. 한 실시예에 따르면, 전자 장치 10은 별도의 보안 운용이 요구되지 않는 비보안 앱 또는 일반 앱의 운용을 지원할 수 있다. 또한 전자 장치 10은 보안 운용이 요구되는 보안 앱의 운용을 지원할 수 있다. 전자 장치 10은 보안 운용이 요구되는 복수개의 보안 앱 운용을 지원할 수도 있다.
전자 장치 10에서 시스템 운용은 두 개의 실행 환경이 동시에 존재할 수 있도록 지원한다. 제1 실행 환경은 비보안 실행 환경이다. 비보안 실행 환경은 일반 운영체제 실행 환경으로 구현될 수 있다. 예컨대 비보안 실행 환경은 리눅스나 안드로이드 등의 운영체제로 구현될 수 있다. 대조적으로, 보안 실행 환경은 특정 하드웨어 배열에 의해 구현될 수 있다. 예컨대 ARM A8, A9, A15 또는 TrustZone 하드웨어 배열을 가지는 CPU가 베리어를 형성할 수 있다. 이러한 환경에서 비보안 실행 환경은 보안 실행 환경의 리소스나 코드, 하드웨어를 액세스할 수 없다.
비보안 실행 환경은 리눅스나 안드로이드와 같은 상용 운영체제 구현을 위해 요구되는 모든 하드웨어를 포함할 수 있다. 예컨대 비보안 실행 환경은 메모리, 스토리지, 타이머들, 다른 공통 하드웨어 모듈들을 포함할 수 있다. 또한 전자 장치 10의 사용자 데이터 입력이나 장치의 사용자 데이터 출력을 위한 사용자 인터페이스 처리 모듈들을 포함할 수 있다. 사용자 입력 장치는 마우스, 터치스크린, 키보드, 다양한 타입들의 스위치들이나 버튼들을 포함할 수 있다. 선호 입력 장치는 터치 스크린과 키보드일 수 있다.
이하 설명에서는 비보안 실행 환경을 지원하는 제어 모듈을 비보안 실행 모듈로서 명명하여 설명하기로 한다. 또한 보안 실행 환경을 지원하는 제어 모듈을 보안 실행 모듈로서 명명하여 설명하기로 한다.
비보안 실행 모듈 30은 비보안 실행 환경(Non-Trusted execution environment)에서 적어도 하나의 일반 앱의 운용을 수행할 수 있다. 비보안 실행 모듈 30은 저장 모듈 50을 액세스할 수 있다. 비보안 실행 모듈 30은 저장 모듈 50에 저장된 적어도 하나의 일반 앱에 대응하는 앱 루틴이나 명령어들을 로딩하고, 실행할 수 있다. 비보안 실행 모듈 30은 일반 앱 운용 과정에서 보안이 필요한 실행 루틴의 처리가 필요할 수 있다. 비보안 실행 모듈 30은 보안 실행 루틴의 처리가 필요한 경우, 보안 실행 모듈 40에 이를 요청할 수 있다. 예컨대, 비보안 실행 모듈 30에서 동작 중인 일반 앱 33은 필요에 따라 보안 실행 모듈 40에 보안 처리를 요청할 수 있다. 비보안 실행 모듈 30은 보안 실행 모듈 40의 보안 처리에 따른 결과를 수신하고 이후 추가적인 일반 앱 운용에 대한 데이터 처리를 수행할 수 있다.
한 실시예에 따르면, 웹 브라우저는 일반 앱으로서 비보안 실행 모듈 30을 통해 운용될 수 있다. 웹 브라우저는 사전 정의된 주소 정보 또는 입력되는 특정 주소 정보에 해당하는 서버 장치 접속을 수행할 수 있다. 한편 서버 장치는 웹 브라우저 기반의 전자 장치 접근을 허용할 수 있다. 그리고 서버 장치는 금융 결제와 관련된 루틴 처리가 요구되는 경우 전자 장치 10에 보안 처리를 요청할 수 있다. 일반 앱인 웹 브라우저는 보안 실행 모듈 40에 금율 결제와 관련된 보안 처리를 요청할 수 있을 것이다.
보안 실행 모듈 40은 비보안 실행 모듈 30 활성화 동작과 병행하여 활성화될 수 있다. 또는 보안 실행 모듈 40은 비보안 실행 모듈 30 요청에 의하여 활성화될 수 있다. 보안 실행 모듈 40은 비보안 실행 모듈 30 동작에서 일반 앱의 운용 중에 보안 처리가 요청되는 경우 해당 보안 처리를 지원할 수 있다. 또는 보안 실행 모듈 40은 비보안 실행 모듈 30의 보안 처리 요청에 대응하여 활성화되고 요청에 대응하는 보안 처리를 수행할 수 있다.
한 실시예에 따르면, 보안 실행 모듈 40은 복수개의 보안 앱들을 운용할 수 있다. 보안 실행 모듈 40은 복수개의 보안 앱들 간의 데이터 전달을 비보안 실행 모듈 30에서 운용 되는 일반 앱을 통하여 수행할 수 있다. 이 동작에서 보안 실행 모듈 40은 전달되는 데이터에 대한 신뢰 확보를 위하여 암호화를 수행할 수 있다.
상술한 비보안 실행 모듈 30 및 보안 실행 모듈 40에 대하여 도 2를 참조하여 보다 상세히 설명하기로 한다.
도 2는 한 실시예에 따른 제어 모듈의 실행 모듈들을 나타낸 도면이다. 도 2에서 설명하는 제어 모듈 60의 실행 모듈들은 하드웨어 프로세서, 펌웨어, 미들웨어, 소프트웨어 프로세서 중 적어도 하나의 조합으로 구성될 수 있다.
도 2를 참조하면, 제어 모듈 60의 비보안 실행 모듈 30은 비보안측 통신 모듈 31 및 일반 앱 33을 포함할 수 있다.
비보안 실행 모듈 30은 보안 실행 모듈 40로 데이터를 전송할 수 있는 비보안측 통신 모듈 31을 포함할 수 있다. 비보안측 통신 모듈 31은 비보안 실행 모듈 30로부터 보안 실행 모듈 40의 특정 구성에 데이터를 전송할 수 있다. 비보안측 통신 모듈 31은 ARM TrustZone 기반 하드웨어를 위한 통신 모듈로 구현될 수 있다. 비보안측 통신 모듈 31은 비보안 실행 모듈 30에서 보안 실행 모듈 40로의 데이터 통신을 위한 각각의 드라이버를 가지는 운영체제 커널로 구현될 수 있다.
일반 앱 33은 보안 앱 43_1 예컨대 소스 보안 앱의 데이터를 보안 앱 43_2 예컨대 목적지 보안 앱에 전송할 것을 요청할 수 있다. 일반 앱 33은 비보안측 통신 모듈 31과 보안측 통신 모듈 41을 이용하여 보안 앱 43_1 사이의 연결을 셋업할 수 있다.
일반 앱 33은 비보안측 통신 모듈 31과 보안측 통신 모듈 41을 통하여 보안 앱 43_2와의 연결을 형성할 수 있다. 그리고 일반 앱 33은 메시지(보안 앱 43_1로부터 수신된 또는 이전 저장 모듈 50에 저장된)를 보안 앱 43_2에 전송한다. 일반 앱 33은 보안 앱 43_2로부터 메시지를 수신하거나 보안 앱 43_2에 메시지를 전송할 수 있다. 일반 앱 33은 휘발성 또는 비휘발성 메모리 타입 저장 모듈 50에 메시지를 저장할 수 있다.
한편, 제어 모듈 60의 보안 실행 모듈 40은 보안측 통신 모듈 41, 적어도 하나의 보안 앱들 43_1, 43_2, 보호 모듈 45 및 영구 암호화 키 47을 포함할 수 있다.
보안 실행 모듈 40은 비보안 실행 모듈 30과의 데이터 송수신을 위하여 보안측 통신 모듈 41을 포함할 수 있다. 보안측 통신 모듈 41은 보안 실행 모듈 40 내측의 마이크로커널 또는 다른 운영체제를 기반으로 구현될 수 있다. 보안측 통신 모듈 41은 비보안측 통신 모듈 31로부터 데이터를 수신하고 적어도 하나의 보안 앱들 43_1, 43_2에 데이터를 전송한다.
적어도 하나의 보안 앱들 43_1, 43_2는 보안 실행 모듈 40에서 운용되는 보안 앱들일 수 있다. 보안 앱들 43_1, 43_2는 비보안 실행 모듈 30에서 동작하는 일반 앱 33의 요청에 대응하여 보안 처리를 수행할 수 있다. 또한 보안 앱들 43_1, 43_2는 보안 처리 동작에서 상호 간에 데이터 교환이 요구되는 경우, 일반 앱 33을 통하여 데이터 교환을 수행할 수 있다. 한 실시예에 따르면, 일반 앱 33 동작 중에서 특정 보안 처리가 필요한 태스크가 요청될 수 있다. 그러면 일반 앱 33은 보안 처리를 비보안측 통신 모듈 31과 보안측 통신 모듈 41을 통하여 보안 앱 43_1에 요청할 수 있다. 보안 앱 43_1은 보안 처리를 수행하고, 수행 결과를 출력할 수 있다. 이 동작에서 보안 앱 43_1의 수행 결과가 다른 앱 예컨대 보안 앱 43_2에 전달할 필요가 발생할 수 있다. 그러면 보안 앱 43_1은 수행 결과를 암호화하고 일반 앱 33을 거쳐 보안 앱 43_2에 전달할 수 있다. 한편 적어도 하나의 보안 앱들 43_1, 43_2는 유니크 식별자 TAID(Trusted Application ID)를 가진다.
한 실시예에 따르면, 보안 앱 43_1은 일반 앱 33의 요청에 의하여 보안 처리를 수행하는 앱일 수 있다. 그리고 보안 앱 43_1은 보안 처리 결과를 보안 앱 43_2에 전송하는 소스 앱일 수 있다.
보안 앱 43_1은 보안 처리 결과를 보안 앱 43_2에 전달하기 위하여 다음과 같은 동작을 수행할 수 있다. 보안 앱 43_1은 보안 앱 43_2의 고유 식별자 예컨대, 보안 앱 43_2의 TAID를 획득한다. 다른 실시예에 따르면, 비보안 실행 모듈 30에서 동작하는 일반 앱 33이 보안 앱 43_1에게 보안 앱 43_2의 TAID를 알려줄 수 있다. 이 동작 지원과 관련하여, 일반 앱 33은 보안 앱 43_2와의 통신 연결을 셋업할 수 있다. 일반 앱 33은 보안 앱 43_2에 TAID를 요청하고, 이를 수신하여 보안 앱 43_1에 전달할 수 있다. 또는 일반 앱 33과 관련하여 실행되는 보안 앱들의 TAID를 보호 모듈 45가 수집하고, 이를 공유하도록 지원할 수도 있다.
보안 앱 43_1은 보안 앱 43_2의 TAID, 키 선택기 데이터(데이터 보호를 위한 키 선택 지시자 : 임시 암호화 키, 영구 암호화 키 또는 데이터를 위한 일회용 키 등) 등을 포함하는 특정 정보를 보호 모듈 45에 제공하면서 데이터를 보안 앱 43_2에 전달하기 위해 보호 모듈 45에 데이터 암호화를 요청할 수 있다.
보안 앱 43_1은 보호 모듈 45로부터 암호화된 데이터를 수신하면 비보안 실행 모듈 30을 통해 보안 앱 43_2에 전송할 메시지를 생성할 수 있다. 메시지는 보안 앱 43_2의 TAID, 키 선택기 데이터, random nonce 및 암호화된 데이터를 포함할 수 있다. 보안 앱 43_1은 보안측 통신 모듈 41과 비보안측 통신 모듈 31을 통해 비보안 실행 모듈 30에서의 일반 앱 33에 메시지를 전송할 수 있다.
보안 앱 43_2는 메시지에 저장된 데이터를 복호화하기 위해 보호 모듈 45를 호출할 수 있다. 여기서 메시지는 일반 앱 33이 전달한 메시지일 수 있다. 일반 앱 33이 전달하는 메시지는 보안 앱 43_1이 생성한 메시지일 수 있다. 보안 앱 43_2는 데이터를 소비할 수 있다. 추가로 보안 앱 43_2는 보안 앱 43_1의 TAID가 인증(acceptable)될 수 있는지 검사하고, 데이터 소비 또는 폐기를 결정할 수 있다.
보호 모듈 45는 메시지 보호를 위하여 보안 앱들 43_1, 43_2에 의해 사용될 수 있다. 보호 모듈 45는 보안 실행 모듈 40 운용 시작에 대응하여 랜덤하게 임시 암호화 키를 생성하고 키 스토리지 45_3의 이전 정보를 재작성할 수 있다. 보호 모듈은 보안 실행 모듈 40 내에 암호화되어 저장된 영구 암호화 키를 액세스 할 수 있다.
영구 암호화 키(Permanent key) 47은 보안 실행 모듈 40이 실행되는 장치에서 유니크한 값을 가질 수 있다. 그래서 다른 보안 실행 모듈 장치는 다른 영구키를 가질 수 있다. 영구 암호화 키 47은 보호 모듈 45에 의해 액세스될 수 있다. 보안 앱들 43_1, 43_2는 영구 암호화 키 47을 액세스할 수 없다. 비보안 실행 모듈 30 구성들 역시 영구 키 액세스 할 수 없다.
도 3은 한 실시예에 따른 보호 모듈 45의 구성을 나타낸 도면이다.
도 3을 참조하면, 보호 모듈 45는 암호화 모듈(Ciphering Module) 45_1, 키 스트로지(Key Storage) 45_3, 키 트래킹 모듈(Key Tracking Module) 45_5를 포함할 수 있다.
암호화 모듈 45_1은 암호 알고리즘을 사용하여 데이터를 암호화하거나, 암호화된 데이터를 복호화하기 위해 보호 모듈 45에서 이용될 수 있다. 암호화 모듈 45_1에서 운용되는 암호 알고리즘은 AES(Advanced Encryption Standard) 알고리즘일 수 있다. 한 실시예에 따르면, 암호 알고리즘은 AES GCM 모드와 같이 특정 운용 모드에서의 사용을 위해 준비될 수 있다.
키 스토리지 45_3은 임시 암호화 키를 저장하기 위한 구성이다. 임시 암호화 키는 특정 보안 앱에 의해 데이터 암호화 또는 복호화를 위해 사용될 수 있다. 임시 암호화 키는 보안 실행 모듈 40의 부트(Boot) 타임 때마다 생성될 수 있다. 한 실시예에 따르면, 보안 실행 모듈 40의 다음 부트 동작이 수행되면, 이전 임시 암호화 키는 새로운 것으로 교체될 수 있다. 임시 암호화 키는 예컨대 랜덤 넘버 생성기 등과 같은 하이 엔트로피(High Entropy)를 가지는 소스를 이용하여 생성될 수 있다.
키 트래킹 모듈 45_5는 보안 앱의 TAID, Random nonce 및 임시 암호화 키를 포함하는 열들로 구성된 테이블을 포함한다. 임시 암호화 키 생성 시 테이블은 갱신될 수 있다.
상술한 구성을 가지는 보호 모듈 45는 보안 앱 43_1로부터의 암호화 요청을 수신하면 일정 동작을 수행할 수 있다. 한 실시예에 따르면, 보호 모듈 45는 보안 앱 43_1의 고유 식별자 예컨대 TAID를 획득하고 유효한 보안 앱 43_2의 고유 식별자 예컨대 TAID를 획득한다. 보안 앱 43_2의 TAID가 보안 실행 모듈 40 내에 존재하지 않는다면, 보호 모듈 45는 보안 앱 43_1의 데이터 보호를 위한 요청을 거절할 수 있다. 보호 모듈 45는 일정 정보를 엔트리에 추가하여 키 트래킹 모듈 45_5 내의 테이블 엔트리를 생성할 수 있다. 여기서 일정 정보는 보안 앱 43_2의 TAID, 보안 앱 43_1ID, random nonce, 키 선택기 데이터 기반의 암호화 키를 포함할 수 있다.
보안 앱 43_1에 의해 임시 암호화 키가 선택되면 임시 암호화 키는 보호 모듈 45의 데이터 암호화를 위한 키로 세팅될 수 있다. 보안 앱 43_1에 의해 영구 암호화 키 47이 선택되면, 보호 모듈 45는 데이터 암호화를 위한 키를 영구 암호화 키로 세팅할 수 있다. 보안 앱 43_1에 의해 일회성 키가 선택되면, 보호 모듈 45는 랜덤 키를 생성하고, 생성된 랜덤 키를 암호화 키로서 세팅할 수 있다. 임시 암호화 키, 영구 암호화 키 47, 랜덤 키 중 어느 하나를 선택하는 것은 보안 앱 43_1에 정의된 방식에 따라 결정될 수 있다. 또는 수행되는 보안 처리의 등급에 따라 특정 키가 선택될 수 있다. 예컨대 보안 처리 등급이 일정 등급 이상이면 영구 암호화 키 47이 암호화 키로 세팅될 수 있다. 보안 처리 등급이 일정 등급 이하이면 랜덤 키가 암호화 키로 세팅될 수 있다. 보호 모듈 45는 암호화 키가 세팅되면, 보안 앱 43_2의 TAID, 보안 앱 43_1의 TAID, random nonce 및 암호화 키를 사용한 데이터를 암호화를 수행할 수 있다. 보호 모듈 45는 데이터 암호화가 완료되면, 보안 앱 43_1에 random nonce 및 암호화 키를 리턴할 수 있다.
보안 앱 43_2는 데이터 복호화 요청을 위하여 일반 앱 33이 전달한 메시지를 보호 모듈 45에 전달할 수 있다. 보호 모듈 45는 보안 앱 43_2로부터 데이터 복호화 요청을 수신하면 복호화와 관련한 동작을 수행할 수 있다. 예컨대, 보호 모듈 45는 보안 앱 43_2의 TAID를 획득할 수 있다. TAID 획득이 수행되면, 보호 모듈 45는 키 선택기 데이터를 기반으로 일정 동작을 수행한다. 한 실시예에 따르면, 보호 모듈 45는 보안 앱 43_2가 제공한 메시지에 일회용 키가 포함된 경우, 메시지에 포함된 보안 앱 43_2의 TAID와 random nonce를 매칭하는 엔트리들을 위한 키 트래킹 모듈 45_5 내의 테이블을 검색한다. 엔트리가 존재하지 않으면, 보호 모듈 45는 데이터 없음(No Data) 및 에러를 보안 앱 43_2에 리턴할 수 있다. 엔트리가 존재하면, 보호 모듈 45는 엔트리로부터의 개별 임시 암호화 키를 선택하고, 메시지 복호화를 위해 암호화 모듈 45_1을 사용할 수 있다.
다른 실시예에 따르면, 보호 모듈 45는 영구 암호화 키 47이 보안 앱 43_2가 제공한 메시지 내에 포함되면, 영구 암호화 키 47을 선택하고, 메시지 복호화를 위해 암호화 모듈 45_1을 사용할 수 있다. 또 다른 실시예에 따르면, 보호 모듈 45는 임시 암호화 키가 메시지 내에 포함되면, 키 스토리지 45_3로부터 임시 암호화 키를 선택하고, 메시지 복호화를 위해 암호화 모듈 45_1을 운용할 수 있다.
메시지 복호가 완료되면, 보호 모듈 45는 메시지로부터 수집된 보안 앱 43_2의 TAID와 메시지 복호를 요청한 보안 앱의 TAID를 비교한다. 고유 식별자들이 매칭되지 않으면, 보호 모듈 45는 데이터 없음(No data)을 리턴하고, 보안 앱 43_2에 에러를 안내한다.
일회용 키 및 임시 암호화 키 사용의 경우, 보호 모듈 45는 메시지로부터 추출된 random nonce가 복호된 random nonce와 일치하는지를 추가 검사할 수 있다. random nonce들이 일치하지 않으면, 보호 모듈 45는 No data를 리턴하고, 보안 앱 43_2에 에러를 전송한다. 일회용 키 사용의 경우, 보호 모듈 45는 키 트래킹 모듈 45_5로부터 막 사용된 암호화 키와 개별 엔트리를 삭제할 수 있다. 보호 모듈 45는 복호화된 데이터를 리턴하고 보안 앱 43_2에 보안 앱 43_1의 TAID를 전달할 수 있다.
도 4는 한 실시예에 따른 제어 모듈이 적용되는 다른 형태의 전자 장치의 구성을 나타낸 도면이다.
도 4를 참조하면, 전자 장치 100은 통신부 110, 입력 모듈 120, 오디오 처리 모듈 130, 표시 모듈 140, 저장 모듈, 150 및 제어 모듈 160을 포함할 수 있다.
이와 같은 구성을 포함하는 전자 장치 100은 앞서 도 1 내지 도 3에서 설명한 전자 장치 10의 구성을 포함하는 형태이거나 전자 장치 10의 구성들이 변형된 형태가 적용될 수 있다. 한 실시예에 따르면, 전자 장치 10의 제어 모듈 60은 전자 장치 100의 제어 모듈 160과 동일한 구성일 수 있으며, 전자 장치 100의 특정 사용자 기능 지원을 위하여 추가 지원 기능을 가질 수 있다.
통신부 110은 전자 장치 100의 통신 기능을 지원하는 구성일 수 있다. 통신부 110은 타 전자 장치와 통신 채널을 형성하거나 서버 장치와의 접속을 위한 통신 채널을 형성할 수 있다. 예컨대 통신부 110은 금융이나 증권, 상품 구매나 상품 판매 등과 관련된 서비스를 제공하는 서버 장치와 통신 채널을 형성할 수 있다. 이때 통신부 110은 서버 장치와의 통신 채널 형성을 기지국을 통해 수행할 수 있다. 통신부 110은 이동통신 기능을 지원하는 형태의 통신 모듈이거나 또는 무선 또는 유선 AP(Access Point) 접속 가능한 통신 모듈일 수 있다. 통신부 110은 인터넷 기반 통신 채널을 형성할 수 있다.
통신부 110은 전자 장치 100이 연결되는 타 장치 특성에 따라 통신 비보안 채널 또는 통신 보안 채널을 형성할 수 있다. 통신 보안 채널은 보안된 데이터가 송수신되는 통신 채널일 수 있다. 예컨대 통신부 110은 앞서 설명한 보안 앱들이 운용되는 경우 통신 보안 채널을 형성할 수 있다. 통신 보안 채널은 물리적으로 동일한 채널일 수 있으며, 다만 송수신되는 데이터가 보안 되어 송수신되는 형태로 구현될 수 있다.
통신부 110은 일반 앱 운용을 위한 통신 채널 형성을 지원할 수 있다. 통신부 110은 형성된 통신 채널을 기반으로 일반 앱 운용을 위해 필요한 데이터들의 송수신을 지원할 수 있다. 또한 통신부 110은 보안 앱 운용을 위해 필요한 데이터들을 타 전자 장치 또는 서버 장치와 송수신하도록 지원할 수 있다.
입력 모듈 120은 전자 장치 100의 입력 신호 생성을 지원할 수 있다. 입력 모듈 120은 전자 장치 100에 입력 이벤트를 생성할 수 있는 적어도 하나의 형태를 포함할 수 있다. 예컨대 입력 모듈 120은 하드웨어 물리키 형태인 키 버튼을 포함할 수 있다. 키 버튼은 사이드 키, 홈 키, 전원 키 등 다양한 키를 포함할 수 있다. 입력 모듈 120은 터치 패널, 터치 시트 등을 포함할 수 있다. 이에 따라 입력 모듈 120은 터치 기능의 표시 모듈 140을 포함할 수 있다. 입력 모듈 120은 오디오 음성 인식 기능이 지원되면 오디오 처리 모듈 130을 포함할 수 있다. 다양한 센서의 센서 신호가 입력 신호로 처리되는 경우 입력 모듈 120은 적어도 하나의 센서를 포함할 수 있다. 적어도 하나의 센서는 가속도 센서나 조도 센서, 근접 센서, 자이로 센서나 습도 센서 등 다양한 센서를 포함할 수 있다. 입력 모듈 120은 일반 앱 활성화를 요청하는 입력 신호, 일반 앱 운용 과정에서 보안 앱 활성화를 요청하는 입력 신호, 일반 앱 및 보안 앱 종료를 요청하는 입력 신호 등을 사용자 조작에 따라 생성할 수 있다.
오디오 처리 모듈 130은 전자 장치 100 운용과 관련된 오디오 신호의 출력과 오디오 신호의 수집을 지원할 수 있다. 이를 위하여 오디오 처리 모듈 130은 스피커와 마이크를 포함할 수 있다. 오디오 처리 모듈 130은 일반 앱 운용과정에서 발생하는 오디오 신호의 처리를 지원할 수 있다. 오디오 처리 모듈 130은 일반 앱 운용 과정에서 보안 앱 호출이 필요한 경우 그에 대한 안내음이나 효과음 출력을 지원할 수 있다. 또한 오디오 처리 모듈 130은 보안 앱들 간의 데이터 전달이 필요한 경우 그에 대한 안내음이나 효과음 출력을 지원할 수 있다.
표시 모듈 140은 전자 장치 100 운용과 관련한 다양한 화면을 출력할 수 있다. 예컨대 표시 모듈 140은 대기 화면, 메뉴 화면, 특정 기능 수행 화면을 출력할 수 있다. 예컨대 표시 모듈 140은 파일 재생 기능, 방송 수신 기능, 파일 검색 기능 등에 대응하는 화면을 출력할 수 있다. 표시 모듈 140은 일반 앱 운용 시 일반 앱 운용과 관련한 화면을 출력할 수 있다.
예컨대 일반 앱이 웹 서버 장치 접속 앱인 경우 표시 모듈 140은 웹 서버 장치가 제공하는 서버 페이지를 수신하여 출력할 수 있다. 표시 모듈 140은 보안 앱 운용과 관련한 화면을 출력할 수 있다. 예컨대 표시 모듈 140은 제어 모듈 160의 제어에 따라 일반 앱 운용 화면 상에 보안 앱과 관련된 이미지나 텍스트 중 적어도 일부를 오버레이 시켜 출력할 수 있다. 또는 표시 모듈 140은 보안 운용과 관련한 화면을 전체 화면으로 출력할 수 있다.
표시 모듈 140이 입력 기능을 가지는 경우 보안 앱이 운용되는 동안 표시 모듈 140의 제어권은 보안 실행 모듈 163이 가질 수 있다. 그리고 보안 앱 운용이 종료되면 표시 모듈 140의 제어권은 비보안 실행 모듈 161이 가질 수 있다. 표시 모듈 140은 제1 보안 앱에서 제2 보안 앱으로 데이터가 전달되는 상황에 대응하는 이미지나 텍스트 중 적어도 하나를 출력할 수 있다. 일반 앱 운용 과정에서 보안 앱이 호출되고 운용되는 경우, 보안 앱 운용의 결과는 일반 앱 운용과 관련한 화면과 함께 표시 모듈 140에 출력될 수 있다. 표시 모듈 140은 보안 앱 운용 결과와 일반 앱 운용 화면이 서로 구분되도록 표시할 수 있다.
저장 모듈 150은 전자 장치 100 운용과 관련한 다양한 응용 프로그램과 데이터를 저장할 수 있다. 저장 모듈 150은 도 1에서 설명한 저장 모듈 50과 동일한 구성 도는 저장 모듈 50의 변형된 형태일 수 있다. 저장 모듈 150은 예컨대 적어도 하나의 일반 앱들을 포함할 수 있다. 일반 앱들은 보안 실행 모듈 163의 운용 없이 프로세싱되는 앱일 수 있다. 일반 앱들은 실행 과정에서 보안 앱의 운용을 요청할 수 있다.
제어 모듈 160은 전자 장치 100 운용과 관련한 신호의 처리와 전달을 제어할 수 있다. 제어 모듈 160은 비보안 실행 모듈 161 및 보안 실행 모듈 163을 포함할 수 있다. 여기서 비보안 실행 모듈 161은 도 1 등에서 설명한 비보안 실행 모듈 30과 동일한 형태 또는 비보안 실행 모듈 30의 변형된 형태일 수 있다. 비보안 실행 모듈 161은 일반 앱의 운용을 지원할 수 있다. 그리고 비보안 실행 모듈 161은 일반 앱 운용 동작에서 보안 앱 호출을 위하여 보안 실행 모듈 163과 통신할 수 있다. 비보안 실행 모듈 161은 일반 앱 운용과 관련된 화면 출력을 수행할 수 있다. 비보안 실행 모듈 161은 보안 앱의 수행 결과가 보안 처리와 관련이 없는 경우 보안 앱으로부터 해당 결과를 전달 받아 일반 앱의 운용 화면에 출력하도록 제어할 수 있다.
비보안 실행 모듈 161은 보안 앱들 간의 데이터 전송을 지원하기 위하여 일반 앱의 운용을 제어할 수 있다. 예컨대 비보안 실행 모듈 161은 제1 보안 앱이 전달한 메시지를 제2 보안 앱에 전달할 수 있다. 이를 위하여 비보안 실행 모듈 161은 제2 보안 앱의 고유 식별자에 대한 정보를 사전에 수집하거나 보안 실행 모듈 163에 요청할 수 있다. 또한 비보안 실행 모듈 161은 제2 보안 앱의 메시지를 제1 보안 앱에 전달할 수도 있다. 또한 비보안 실행 모듈 161은 제2 보안 앱의 앱 운용 결과가 보안 처리가 필요하지 않은 경우, 제2 보안 앱으로부터 해당 결과를 수신하고, 수신된 결과를 표시 모듈 140에 출력하도록 제어할 수 있다.
보안 실행 모듈 163은 도 1 등에서 설명한 보안 실행 모듈 40과 동일한 구성 또는 보안 실행 모듈 40의 변형된 형태일 수 있다. 보안 실행 모듈 163은 전자 장치 100 부팅 과정에서 비보안 실행 모듈 161이 부팅되는 동작에서 부팅될 수 있다. 또는 보안 실행 모듈 163은 보안 처리가 요구되는 상황에서 비보안 실행 모듈 161의 요청에 의하여 부팅될 수 있다. 보안 실행 모듈 163은 앞서 언급한 바와 같이 부팅 과정에서 임시 암호화 키를 생성할 수 있다. 또한 보안 실행 모듈 163은 암호화에 사용할 또는 복호화에 사용할 영구 암호화 키를 저장할 수 있다. 보안 실행 모듈 163은 제어 모듈 160 내에 배치되면 물리적으로 비보안 실행 모듈 161과 독립적인 형태로 구현될 수 있다.
보안 실행 모듈 163은 적어도 하나의 보안 앱 운용을 지원할 수 있다. 예컨대 보안 실행 모듈 163은 비보안 실행 모듈 161에서의 일반 앱 운용에 따라 요청되는 특정 보안 앱의 운용을 지원할 수 있다. 이 동작에서 보안 실행 모듈 163은 일반 앱의 보안 처리 기능을 지원하기 위한 복수개의 보안 앱들을 운용할 수 있다. 한 실시예에 따르면, 보안 실행 모듈 163은 패스워드 입력 처리 보안 앱, 입력되는 특정 코드의 보안 처리를 위한 보안 앱, 서버 장치와의 통신 보안 채널 제어를 위한 보안 앱 등을 동시 활성화하고 운용할 수 있다. 이 동작에서 보안 앱들은 순차적인 보안 처리 성공이 수행되는 경우 다음 보안 앱을 운용하도록 설계될 수 있다. 결과적으로 보안 앱들 간에는 데이터 전송이 요구될 수 있다. 보안 앱들 간의 데이터 전송을 위하여 보안 실행 모듈 163은 일반 앱에 암호화된 데이터를 전달하고, 일반 앱은 해당 데이터를 수신해야 하는 보안 앱에 암호화된 데이터를 전달할 수 있다.
상술한 바와 같이 전자 장치 100은 보안 앱들 간의 데이터 전달 과정에서 데이터를 암호화하여 전달함으로써, 데이터에 대한 신뢰성을 확보할 수 있다.
도 5는 한 실시예에 따른 데이터 보안 운용을 위한 전자 장치 운용 방법을 설명하기 위한 도면이다.
도 5를 참조하면, 동작 501에서, 전자 장치 100의 제어 모듈 160은 입력 이벤트에 따라 일반 앱 33을 활성화할 수 있다. 예컨대 제어 모듈 160은 일반 앱 33 운용과 관련하여 웹 서버 장치 접속을 위한 통신 채널 형성을 수행할 수 있다. 그리고 제어 모듈 160은 웹 서버 장치가 제공하는 특정 서버 페이지를 수신하여 이를 표시 모듈 140에 출력하도록 제어할 수 있다.
동작 503에서, 일반 앱 33은 운용 중에 보안 앱 운용을 필요로 할 수 있다. 이 동작에서 일반 앱 33은 보안 앱 운용이 요구되지 않는 경우 비보안 실행 모듈 161 기반의 앱 운용을 지원할 수 있다. 예컨대 일반 앱 33은 입력 모듈 120에서 발생하는 입력 신호 및 비보안 실행 모듈 161의 제어, 웹 서버 장치의 지원 등에 대응하여 앱 운용을 제어할 수 있다.
한편 동작 503에서, 보안 앱 운용이 필요하면, 동작 504에서 보안 실행 모듈 163에 보안 앱 운용을 요청할 수 있다. 보안 실행 모듈은 보안 앱 운용 요청을 일반 앱 33으로부터 수신하면, 동작 505에서 제1 보안 앱 43_1 활성화를 제어할 수 있다. 예컨대, 일반 앱 33은 특정 기능 수행 동작에서 보안 앱 호출을 수행할 수 있다. 보안 앱 호출 요청은 비보안측 통신 모듈 31을 통하여 보안측 통신 모듈 41에 전달될 수 있다. 그러면 보안 실행 모듈 163은 일반 앱 33이 요청한 보안 앱 운용을 확인하고, 제1 보안 앱 43_1을 활성화하도록 제어할 수 있다. 여기서 보안 실행 모듈 163은 다수개의 보안 앱 활성화가 필요한 경우, 다수개의 보안 앱 활성화를 수행할 수 있다.
동작 507에서, 제1 보안 앱 43_1 운용 중 다른 보안 앱 예컨대 제2 보안 앱 43_2로의 데이터 전달이 요청될 수 있다. 동작 507에서 보안 앱들 간의 데이터 전달이 필요하면, 제1 보안 앱 43_1은 동작 509에서 앱 운용 중에 생성된 데이터를 포함하는 암호화된 메시지를 생성할 수 있다. 제1 보안 앱 43_1은 생성된 데이터를 보호 모듈 45에 전달하고, 보호 모듈 45는 수신된 데이터와 기타 정보들을 이용하여 암호화된 메시지를 생성할 수 있다. 암호화된 메시지는 제1 보안 앱 43_1에 전달되거나 또는 보호 모듈 45이 일반 앱 33에 전달할 수 있다.
여기서 제1 보안 앱 43_1이 생성하는 암호화된 메시지는 소스 보안 앱의 고유 식별자, 데이터를 수신할 목적지 보안 앱의 고유 식별자, 암호화된 데이터를 포함할 수 있다. 추가로 암호화된 메시지는 random nonce를 포함할 수 있다. 동작 507에서 보안 앱들 간 데이터 전달이 요구되지 않으면, 제1 보안 앱 43_1은 요청된 보안 처리만을 수행할 수 있다. 그리고 스케줄 정보에 따라 앱 운용을 종료할 수 있다.
암호화된 메시지가 생성되면, 동작 510에서 제1 보안 앱 43_1은 암호화된 메시지를 일반 앱 33에 전달한다. 제1 보안 앱 43_1로부터 암호화된 메시지를 수신한 일반 앱 33은 동작 511에서 암호화된 메시지를 제2 보안 앱 43_2에 전달할 수 있다.
제2 보안 앱 43_2는 일반 앱 33으로부터 암호화된 메시지를 수신하면, 동작 512에서 암호화된 메시지를 복호화할 수 있다. 이때 제2 보안 앱 43_2는 보호 모듈에 복호화를 요청할 수 있다. 보호 모듈 45는 암호화 키의 종류에 대응하여 앞서 설명한 바와 같이 다양한 프로세싱을 수행할 수 있다. 메시지 복호화가 완료되면 제2 보안 앱 43_2는 동작 513에서 복호된 데이터를 소비할 수 있다. 예컨대 제2 보안 앱 43_2는 복호된 데이터를 기반으로 다른 보안 처리를 수행할 수 있다. 이후 제2 보안 앱 43_2는 보안 처리가 완료되면 일반 앱 33에 앱 운용을 요청할 수 있다.
이상에서 설명한 바와 같이 본 개시의 다양한 실시예에 따른 데이터 보안 운용 방법 및 이를 지원하는 전자 장치는 보안 앱들 간의 데이터 전달 동작에서 데이터의 신뢰성을 확보할 수 있다. 이에 따라 본 개시의 다양한 실시예들은 전자 장치에서의 보다 안전한 기능 수행을 지원할 수 있다.
한편 상술한 장치는 그 제공 형태에 따라 다양한 추가 모듈을 더 포함할 수 있다. 즉 상기 장치는 통신 장치인 경우 상기 장치의 유선통신방식 또는 무선통신방식에 의한 데이터 송수신을 위한 인터페이스, 인터넷 네트워크와 통신하여 인터넷 기능을 수행하는 인터넷통신모듈 및 디지털 방송 수신과 재생 기능을 수행하는 디지털방송모듈 등과 같이 상기에서 언급되지 않은 구성들을 더 포함할 수도 있다. 이러한 구성 요소들은 디지털 기기의 컨버전스(convergence) 추세에 따라 변형이 매우 다양하여 모두 열거할 수는 없으나, 상기 언급된 구성 요소들과 동등한 수준의 구성 요소가 상기 디바이스에 추가로 더 포함되어 구성될 수 있다. 또한 본 개시의 장치는 그 제공 형태에 따라 상기한 구성에서 특정 구성들이 제외되거나 다른 구성으로 대체될 수도 있음은 물론이다. 이는 본 기술분야의 통상의 지식을 가진 자에겐 쉽게 이해될 수 있을 것이다.
한편, 본 명세서와 도면을 통해 본 개시의 바람직한 실시예들에 대하여 설명하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 개시의 기술 내용을 쉽게 설명하고 기술의 이해를 돕기 위한 일반적인 의미에서 사용된 것일 뿐, 본 개시의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예외에도 본 개시의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.
10, 100 : 전자 장치 110 : 통신 모듈
120 : 입력 모듈 130 : 오디오 처리 모듈
140 : 표시 모듈 50, 150 : 저장 모듈
60, 160 : 제어 모듈 30, 161 : 비보안 실행 모듈
40, 163 : 보안 실행 모듈

Claims (18)

  1. 비보안 실행 모듈 기반으로 일반 앱을 실행하는 동작;
    상기 일반 앱 운용과 관련한 제1 보안 앱을 보안 실행 모듈 기반으로 실행하는 동작;
    상기 제1 보안 앱에서 생성된 데이터를 암호화하여 메시지를 생성하는 생성 동작;
    상기 암호화된 메시지를 상기 일반 앱에 전달하는 동작;
    상기 일반 앱이 앱 운용과 관련되며 상기 보안 실행 모듈 기반으로 실행되는 제2 보안 앱에 상기 암호화된 메시지를 전달하는 동작;을 포함하는 데이터 보안 운용 방법.
  2. 제1항에 있어서,
    상기 제2 보안 앱에 전달된 암호화된 메시지를 복호화하는 동작;
    상기 복호된 메시지에 포함된 데이터를 상기 제2 보안 앱에서 소비하는 동작;을 더 포함하는 데이터 보안 운용 방법.
  3. 제1항에 있어서,
    상기 생성 동작은
    상기 제1 보안 앱이 상기 제2 보안 앱의 고유 식별자를 수집하는 동작;
    키 선택기 데이터를 수집하는 동작;
    상기 데이터와 상기 제2 보안 앱의 고유 식별자, 상기 제1 보안 앱의 고유 식별자, 상기 키 선택기 데이터를 포함하는 메시지를 암호화하는 동작;을 포함하는 데이터 보안 운용 방법.
  4. 제3항에 있어서,
    상기 암호화하는 동작은
    상기 메시지에 random nonce를 추가하여 상기 메시지를 암호화하는 동작;을 더 포함하는 데이터 보안 운용 방법.
  5. 제3항에 있어서,
    상기 키 선택기 데이터를 수집하는 동작은
    영구 암호화된 키, 임시 암호화 키, 일회용 키 중 어느 하나를 선택하는 동작;을 포함하는 데이터 보안 운용 방법.
  6. 제5항에 있어서,
    상기 키 선택기 데이터를 수집하는 동작은
    보안 처리 등급에 따라 상기 키들 중 어느 하나를 선택하는 동작;을 더 포함하는 데이터 보안 운용 방법.
  7. 제1항에 있어서,
    상기 생성 동작은
    상기 제1 보안 앱의 고유 식별자, 상기 제2 보안 앱의 고유 식별자, 키 선택기 데이터 기반의 암호화 키, random nonce를 포함하는 테이블 엔트리를 생성하는 동작;을 더 포함하는 데이터 보안 운용 방법.
  8. 제7항에 있어서,
    상기 암호화된 메시지에 일회용 키가 포함된 경우, 상기 메시지에 포함된 제2 보안 앱의 고유 식별자와 random nonce를 상기 테이블 엔트리와 매칭 확인하는 동작;
    상기 테이블 엔트리가 존재하지 않으면, 에러를 출력하는 동작;
    상기 테이블 엔트리가 존재하면, 테이블 엔트리로부터 수집된 개별 임시 암호화 키로 메시지 복호화를 수행하는 동작;을 더 포함하는 데이터 보안 운용 방법.
  9. 제1항에 있어서,
    상기 일반 앱이 제2 보안 앱의 고유 식별자를 수집하는 동작;
    상기 일반 앱이 상기 제2 보안 앱의 고유 식별자를 상기 제1 보안 앱에 전달하는 동작;을 더 포함하는 데이터 보안 운용 방법.
  10. 일반 앱 실행을 지원하는 비보안 실행 모듈;
    상기 일반 앱 운용과 관련한 제1 보안 앱 및 제2 보안 앱의 실행을 지원하는 보안 실행 모듈;을 포함하고,
    상기 보안 실행 모듈은
    상기 제1 보안 앱에서 생성된 데이터를 암호화하여 암호화된 메시지를 생성하고, 상기 암호화된 메시지를 상기 일반 앱을 통해 상기 제2 보안 앱에 전달하도록 제어하는 데이터 보안 운용을 지원하는 전자 장치.
  11. 제10항에 있어서,
    상기 보안 실행 모듈은
    상기 제2 보안 앱에 전달된 암호화된 메시지를 복호화하고 상기 복호된 메시지에 포함된 데이터를 상기 제2 보안 앱에서 소비하도록 제어하는 데이터 보안 운용을 지원하는 전자 장치.
  12. 제10항에 있어서,
    상기 보안 실행 모듈이
    상기 데이터, 상기 제2 보안 앱의 고유 식별자, 상기 제1 보안 앱의 고유 식별자, 키 선택기 데이터를 포함하는 메시지를 암호화하는 데이터 보안 운용을 지원하는 전자 장치.
  13. 제12항에 있어서,
    상기 보안 실행 모듈이
    상기 메시지에 random nonce를 추가하여 상기 메시지를 암호화하는 데이터 보안 운용을 지원하는 전자 장치.
  14. 제12항에 있어서,
    상기 키 선택기 데이터가
    영구 암호화된 키, 임시 암호화 키, 일회용 키 중 어느 하나인 데이터 보안 운용을 지원하는 전자 장치.
  15. 제14항에 있어서,
    상기 보안 실행 모듈이
    보안 처리 등급에 따라 상기 영구 암호화된 키, 상기 임시 암호화 키, 상기 일회용 키 중 어느 하나를 선택하는 데이터 보안 운용을 지원하는 전자 장치.
  16. 제10항에 있어서,
    상기 보안 실행 모듈이
    상기 제1 보안 앱의 고유 식별자, 상기 제2 보안 앱의 고유 식별자, 키 선택기 데이터 기반의 암호화 키, random nonce를 포함하는 테이블 엔트리를 생성하는 데이터 보안 운용을 지원하는 전자 장치.
  17. 제16항에 있어서,
    상기 보안 실행 모듈이
    상기 암호화된 메시지에 일회용 키가 포함된 경우, 상기 메시지에 포함된 제2 보안 앱의 고유 식별자와 random nonce를 상기 테이블 엔트리와 매칭 확인하고, 상기 테이블 엔트리가 존재하지 않으면, 에러를 출력하도록 제어하며,
    상기 테이블 엔트리가 존재하면, 테이블 엔트리로부터 수집된 개별 임시 암호화 키로 메시지 복호화를 수행하는 데이터 보안 운용을 지원하는 전자 장치.
  18. 제10항에 있어서,
    상기 일반 앱이 제2 보안 앱의 고유 식별자를 수집하여 상기 제1 보안 앱에 전달하는 데이터 보안 운용을 지원하는 전자 장치.
KR1020130093950A 2013-08-08 2013-08-08 페이지 구성 방법 및 이를 지원하는 전자 장치 KR20150017844A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130093950A KR20150017844A (ko) 2013-08-08 2013-08-08 페이지 구성 방법 및 이를 지원하는 전자 장치
US14/455,268 US9432195B2 (en) 2013-08-08 2014-08-08 Method of operating data security and electronic device supporting the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130093950A KR20150017844A (ko) 2013-08-08 2013-08-08 페이지 구성 방법 및 이를 지원하는 전자 장치

Publications (1)

Publication Number Publication Date
KR20150017844A true KR20150017844A (ko) 2015-02-23

Family

ID=52449662

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130093950A KR20150017844A (ko) 2013-08-08 2013-08-08 페이지 구성 방법 및 이를 지원하는 전자 장치

Country Status (2)

Country Link
US (1) US9432195B2 (ko)
KR (1) KR20150017844A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160112316A (ko) * 2015-03-18 2016-09-28 삼성전자주식회사 애플리케이션 보호 방법 및 장치
KR20190107098A (ko) * 2017-01-19 2019-09-18 이베이 인크. 암호학 기반 가장 추적
KR102215231B1 (ko) * 2019-08-05 2021-02-10 충남대학교 산학협력단 안드로이드 어플리케이션에 대한 후킹방지 시스템 및 그 방법

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105527630B (zh) * 2015-05-21 2018-01-09 深圳华大北斗科技有限公司 一种集成数据安全功能的卫星导航芯片及其应用方法
US10467421B2 (en) * 2015-10-23 2019-11-05 Oracle International Corporation Establishing trust between containers
CN105530261B (zh) * 2015-12-23 2019-02-12 北京奇虎科技有限公司 隐私信息的保护方法及装置
US11424931B2 (en) * 2016-01-27 2022-08-23 Blackberry Limited Trusted execution environment
US10599409B2 (en) 2016-02-02 2020-03-24 Blackberry Limited Application lifecycle operation queueing
JP6736305B2 (ja) * 2016-02-18 2020-08-05 キヤノン株式会社 情報処理システム、情報処理装置、サーバ装置、情報処理システムの制御方法、及びプログラム
US11503070B2 (en) * 2016-11-02 2022-11-15 Microsoft Technology Licensing, Llc Techniques for classifying a web page based upon functions used to render the web page
CN108090376B (zh) * 2016-11-23 2021-01-12 厦门雅迅网络股份有限公司 基于TrustZone的CAN总线数据防护方法及系统
CN108989651A (zh) * 2018-09-05 2018-12-11 深圳市中科智库互联网信息安全技术有限公司 可信摄像机
US11204693B2 (en) 2018-09-07 2021-12-21 Samsung Electronics Co., Ltd. Screenshot based TUI process for in-app purchase authentication
CN109803153B (zh) * 2019-01-15 2021-06-04 网宿科技股份有限公司 一种直播视频的白板绘制方法及装置
US11652626B2 (en) * 2020-02-18 2023-05-16 International Business Machines Corporation Safeguarding cryptographic keys from modification or deletion
CN111538995B (zh) * 2020-04-26 2021-10-29 支付宝(杭州)信息技术有限公司 一种数据存储方法、装置及电子设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7243230B2 (en) 2001-11-16 2007-07-10 Microsoft Corporation Transferring application secrets in a trusted operating system environment
JP4688426B2 (ja) * 2004-03-09 2011-05-25 富士通株式会社 無線通信システム
US20060064759A1 (en) * 2004-09-22 2006-03-23 Wildlife Acoustics, Inc. Method and apparatus for controlling access to downloadable content
CA2587474C (en) * 2004-11-11 2016-08-09 Certicom Corp. New trapdoor one-way function on elliptic curves and their applications to shorter signatures and asymmetric encryption
US8554826B2 (en) * 2005-08-30 2013-10-08 General Electric Company Method and system for XML message based transactions on a medical diagnostic system
US7765399B2 (en) * 2006-02-22 2010-07-27 Harris Corporation Computer architecture for a handheld electronic device
WO2008046161A1 (en) * 2006-10-19 2008-04-24 Fruitful Technologies Pty Ltd An interactive system and process
US20120079282A1 (en) * 2010-06-28 2012-03-29 Lionstone Capital Corporation Seamless end-to-end data obfuscation and encryption
EP2656648B1 (en) * 2010-12-21 2018-05-09 Koninklijke KPN N.V. Operator-assisted key establishment
US9473485B2 (en) * 2011-03-21 2016-10-18 Blue Cedar Networks, Inc. Secure single sign-on for a group of wrapped applications on a computing device and runtime credential sharing
US20140133656A1 (en) * 2012-02-22 2014-05-15 Qualcomm Incorporated Preserving Security by Synchronizing a Nonce or Counter Between Systems

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160112316A (ko) * 2015-03-18 2016-09-28 삼성전자주식회사 애플리케이션 보호 방법 및 장치
KR20190107098A (ko) * 2017-01-19 2019-09-18 이베이 인크. 암호학 기반 가장 추적
KR102215231B1 (ko) * 2019-08-05 2021-02-10 충남대학교 산학협력단 안드로이드 어플리케이션에 대한 후킹방지 시스템 및 그 방법

Also Published As

Publication number Publication date
US20150046712A1 (en) 2015-02-12
US9432195B2 (en) 2016-08-30

Similar Documents

Publication Publication Date Title
US9432195B2 (en) Method of operating data security and electronic device supporting the same
KR102451109B1 (ko) 디바이스 익명성을 제공하는 키 증명문 생성
CN107431924B (zh) 将设备标识符和用户标识符相关联的设备盗窃防护
US10581833B2 (en) Electronic device and method for processing secure information
KR101874081B1 (ko) 개선된 보안 기능 기반의 클라우드 서비스 시스템 및 이를 지원하는 방법
US9424439B2 (en) Secure data synchronization
US9122879B2 (en) Method and apparatus for protecting digital content using device authentication
US10454910B2 (en) Management apparatus, computer program product, system, device, method, information processing apparatus, and server
KR101837678B1 (ko) 신뢰실행환경 기반의 컴퓨팅 장치
EP3817322A1 (en) Method for upgrading service application range of electronic identity card, and terminal device
WO2015144066A1 (en) Sensitive operation verification method, apparatus, and system
CN111475832B (zh) 一种数据管理的方法以及相关装置
US10198600B2 (en) Transparent execution of secret content
KR101748732B1 (ko) 임시 키를 이용한 전자 장치의 컨텐츠 공유 방법 및 이를 적용한 전자 장치
KR102100456B1 (ko) 전자장치에서 디지털 저작권 관리 서비스를 제공하기 위한 장치 및 방법
US11233661B2 (en) Device and method for authenticating application in execution environment in trust zone
CN113821821A (zh) 安全架构系统、安全架构系统的密码运算方法和计算设备
KR20140108607A (ko) 보안 데이터 운용 방법 및 이를 지원하는 단말기
KR101875863B1 (ko) 암호화된 해시값에 기반하여 클라우드 접속 허가를 결정하는 클라우드 시스템, 및 클라우드 접속 방법과 클라우드 단말에 설치된 소켓 데몬 장치
US20140181527A1 (en) Unsecure network socket communication
KR20150047789A (ko) 단말기 잠금 제어 장치 및 방법

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination