KR102514062B1 - 트러스트존 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치 - Google Patents

트러스트존 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치 Download PDF

Info

Publication number
KR102514062B1
KR102514062B1 KR1020180023897A KR20180023897A KR102514062B1 KR 102514062 B1 KR102514062 B1 KR 102514062B1 KR 1020180023897 A KR1020180023897 A KR 1020180023897A KR 20180023897 A KR20180023897 A KR 20180023897A KR 102514062 B1 KR102514062 B1 KR 102514062B1
Authority
KR
South Korea
Prior art keywords
trustzone
area
image
image resource
security
Prior art date
Application number
KR1020180023897A
Other languages
English (en)
Other versions
KR20190102869A (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 KR1020180023897A priority Critical patent/KR102514062B1/ko
Priority to US16/285,511 priority patent/US10867069B2/en
Priority to CN201980015312.0A priority patent/CN111771183A/zh
Priority to PCT/KR2019/002299 priority patent/WO2019168315A1/en
Priority to EP19760872.2A priority patent/EP3732559B1/en
Publication of KR20190102869A publication Critical patent/KR20190102869A/ko
Application granted granted Critical
Publication of KR102514062B1 publication Critical patent/KR102514062B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • 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/6218Protecting 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
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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/451Execution arrangements for user interfaces
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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
    • 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/82Protecting input, output or interconnection devices
    • G06F21/83Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
    • 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/82Protecting input, output or interconnection devices
    • G06F21/84Protecting input, output or interconnection devices output devices, e.g. displays or monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0202Constructional details or processes of manufacture of the input device
    • G06F3/0219Special purpose keyboards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/02Non-photorealistic rendering
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2358/00Arrangements for display data security
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/18Use of a frame buffer in a display terminal, inclusive of the display panel

Abstract

본 개시의 실시예에 따른 트러스트존 그래픽 렌더링 방법은 일반 영역(NWD: Normal World) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)으로 구별되는 동작 시스템(OS)에서의 트러스트존 그래픽 렌더링 방법이다.
본 개시의 실시예에 따른 트러스트존 그래픽 렌더링 방법은 상기 일반 영역 내에서, 트러스트존 UI(user interface)의 생성에 이용되는 이미지 자원(image resource)을 생성하는 단계; 상기 일반 영역에서 상기 보안 영역으로, 상기 이미지 자원을 전송하는 단계; 및 상기 보안 영역에서, 복수개의 오브젝트들을 포함하는 상기 이미지 자원을 오브젝트 단위로 분리 및 편집하여 상기 트러스트존 UI 를 생성하는 단계를 포함한다.

Description

트러스트존 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치{METHOD FOR TRUSTZONE GRAPHIC RENDERING AND DISPLAY APPARATUS THEREOF}
본원 발명은 트러스트존 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치에 대한 것이다.
구체적으로, 본원 발명은 트러스트존에 대응되는 보안 영역에서 트러스트존 UI(trustzone user interface) 화면을 생성하기 위한 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치에 대한 것이다.
컴퓨터, 스마트 폰, 태블릿 PC, PDA 등과 같은 전자 장치들이 사용자와 밀접하게 이용되고 있다. 사용자가 개인적으로 이용하는 전자 장치가 널리 보급 및 이용되면서, 전술한 전자 장치에 입력 또는 저장되는 사용자의 개인 정보 또는 사용자 관련 정보 또한 증가하고 있다.
또한, 사용자가 다양한 업무를 전자 장치 또는 서버 장치를 통하여 수행하게 되면서, 전자 장치 또는 서버 장치로, 사용자의 개인 정보 또는 사용자 관련 정보를 입력하여야 하는 경우가 증가하고 있다.
이하에서는, 소정의 업무 또는 소정의 동작을 수행하는 전자 장치 또는 서버 장치를 '컴퓨팅 장치'라고 칭하도록 하겠다. 사용자의 개인 정보 또는 사용자 관련 정보를 컴퓨팅 장치에 입력 또는 저장하는데 있어서, 사용자의 개인 정보 또는 사용자 관련 정보를 해킹으로부터 보호하는 것이 중요하다.
그에 따라서, 사용자의 개인 정보 또는 사용자 관련 정보를 해킹으로부터 보호하기 위한 보안 기술들이 개발되고 있다.
이러한 보안 기술들 중 하나로, 트러스트존(Trustzone)을 이용한 보안 방법을 예로 들 수 있다.
트러스트존은 하드웨어 보안 기술 중 하나로, 메모리 등의 하드웨어를 일반 영역(NWD: Normal World) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)으로 분할하고, 일반 영역(NWD)에서 보안 영역(SWD)의 자원에 접근하는 것을 불가능하게 함으로써, 보안 영역(SWD)을 통하여 입력받아 보안 영역(SWD) 내에 저장된 데이터들을 보호하는 기술이다.
일반적으로, 보안 영역(SWD)의 메모리 용량은 일반 영역(NWD)에 비하여 매우 작다. 따라서, 보안 영역(SWD)에서는 일반 영역(NWD)에 비하여 저장할 수 있는 자원의 용량에 한계가 있으며, 처리할 수 있는 업무의 양 및 속도에도 한계가 있다. 또한, 보안 영역(SWD)에서 소정 동작을 수행하는데 있어서, 보안 영역(SWD)에는 소정 동작의 수행에 도움이 되는 프로그램, 도구, 및/또는 자원 등이 부족하여 일반 영역(NWD)에서 소정 동작을 수행하는데 비하여 처리 속도가 늦다는 문제가 있다.
그러므로, 전술한 문제점을 극복하여 보안 영역(SWD) 및 일반 영역(NWD)으로 구별되는 동작 시스템(OS: Operating System)에서, 보안 유지가 필요한 동작, 예를 들어, 트러스트존의 그래픽 렌더링 동작 등을 용이하게 빠르게 수행할 수 있도록 하는 방법 및 장치를 제공할 필요가 있다.
본 개시의 실시예는 트러스트존 UI 의 생성에 있어서 보안 성능을 높이면서도 용이하게 빠르게 트러스트존 UI 를 생성할 수 있도록 하는 트러스트존 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치의 제공을 목적으로 한다.
구체적으로, 본 개시의 실시예는 트러스트존에 대응되는 보안 영역(Secure World)의 메모리 용량 한계를 극복하고, 트러스트존 UI를 생성 또는 변경하는 데서 발생하는 시간 지연을 감소시킬 수 있는 트러스트존 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치의 제공을 목적으로 한다.
본 개시의 실시예에 따른 트러스트존 그래픽 렌더링 방법은 일반 영역(NWD: Normal World) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)으로 구별되는 동작 시스템(OS)에서의 트러스트존 그래픽 렌더링 방법이다.
본 개시의 실시예에 따른 트러스트존 그래픽 렌더링 방법은 상기 일반 영역 내에서, 트러스트존 UI(user interface)의 생성에 이용되는 이미지 자원(image resource)을 생성하는 단계; 상기 일반 영역에서 상기 보안 영역으로, 상기 이미지 자원을 전송하는 단계; 및 상기 보안 영역에서, 복수개의 오브젝트들을 포함하는 상기 이미지 자원을 오브젝트 단위로 분리 및 편집하여 상기 트러스트존 UI 를 생성하는 단계를 포함한다.
또한, 상기 이미지 자원을 생성하는 단계는 상기 일반 영역 내에서, 상기 일반 영역에 존재하는 적어도 하나의 그래픽 툴키트(graphic toolkit)를 이용하여, 상기 이미지 자원을 생성하는 단계를 포함할 수 있다.
또한, 상기 트러스트존 UI는 사용자와의 상호작용(interaction)을 통하여 데이터를 입력 또는 출력할 수 있는, UI 화면, 상기 UI 화면에 대응되는 이미지 데이터 및 상기 UI 화면을 생성하기 위해 이용되는 이미지 자원 중 적어도 하나를 포함할 수 있다.
또한, 상기 트러스트존 UI 는 보안 키패드 또는 보안 키보드 중 적어도 하나를 포함할 수 있다.
또한, 상기 이미지 자원은 소정 화면으로 출력되는 이미지의 적어도 일 부분에 대응되는 이미지 데이터를 포함할 수 있다.
또한, 본 개시의 실시예에 따른 트러스트존 그래픽 렌더링 방법은 상기 보안 영역에서 상기 이미지 자원을 수신하면, 상기 일반 영역 및 상기 동작 시스템의 외부에서 접근(access)할 수 없는 상기 보안 영역의 메모리 내에 상기 이미지 자원을 저장하는 단계를 더 포함할 수 있다.
상기 트러스트존 UI를 생성하는 단계는 상기 보안 영역의 메모리 내에 저장된 상기 이미지 자원을 로딩하는 단계; 및 상기 로딩된 이미지 자원에 포함되는 상기 복수개의 오브젝트들 중 편집이 필요한 적어도 하나의 오브젝트를 분리하고, 분리된 상기 적어도 하나의 오브젝트를 편집함으로써 상기 트러스트존 UI 를 생성하는 단계를 포함할 수 있다.
또한, 상기 트러스트존 UI를 생성하는 단계는 분리된 상기 적어도 하나의 오브젝트를 삭제 또는 변경하거나, 또는 적어도 하나의 오브젝트를 상기 분리된 적어도 하나의 오브젝트에 추가함으로써, 상기 트러스트존 UI 를 생성하는 단계를 포함할 수 있다.
또한, 상기 이미지 자원을 생성하는 단계는 상기 일반 영역 내에서 실행되는 폰트 엔진(font engine)을 이용하여, 소정 언어에 대응되는 상기 이미지 자원을 생성하는 단계를 포함할 수 있다.
또한, 본 개시의 실시예에 따른 트러스트존 그래픽 렌더링 방법은 상기 트러스트존 UI 를 상기 보안 영역 내에 포함되는 프레임 버퍼에 저장하는 단계; 및 상기 프레임 버퍼에서 로딩된 상기 트러스트존 UI 를 디스플레이 하는 단계를 더 포함할 수 있다.
또한, 상기 트러스트존 UI는 상기 보안 영역 내에서만 접근 및 저장될 수 있다.
본 개시의 실시예에 따른 디스플레이 장치는 디스플레이; 하나 이상의 인스트럭션을 포함하는 메모리; 및 일반 영역(NWD: Normal World) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)으로 구별되는 동작 시스템(OS)을 실행하기 위하여 상기 하나 이상의 인스트럭션을 수행하는 적어도 하나의 프로세서를 포함하는 제어부를 포함한다. 상기 적어도 하나의 프로세서는 상기 일반 영역 내에서 트러스트존 UI의 생성에 이용되는 이미지 자원(image resource)을 생성하고, 상기 일반 영역에서 상기 보안 영역으로 상기 이미지 자원을 전송하며, 상기 보안 영역에서 복수개의 오브젝트들을 포함하는 상기 이미지 자원을 오브젝트 단위로 분리 및 편집하여 상기 트러스트존 UI 를 생성하도록 동작한다.
또한, 상기 적어도 하나의 프로세서는 상기 일반 영역 내에서, 상기 일반 영역에 존재하는 적어도 하나의 그래픽 툴키트(graphic toolkit)를 이용하여, 상기 이미지 자원을 생성할 수 있다.
또한, 상기 트러스트존 UI 는 사용자와의 상호작용(interaction)을 통하여 데이터를 입력 또는 출력할 수 있는, UI 화면, 상기 UI 화면에 대응되는 이미지 데이터 및 상기 UI 화면을 생성하기 위해 이용되는 이미지 자원 중 적어도 하나를 포함할 수 있다.
또한, 상기 적어도 하나의 프로세서는 상기 보안 영역에서 상기 이미지 자원을 수신하면, 상기 일반 영역 및 상기 동작 시스템의 외부에서 접근(access)할 수 없는 상기 보안 영역의 메모리 내에 상기 이미지 자원을 저장할 수 있다.
또한, 상기 적어도 하나의 프로세서는 상기 보안 영역의 메모리 내에 저장된 상기 이미지 자원을 로딩하고, 상기 로딩된 이미지 자원에 포함되는 상기 복수개의 오브젝트들 중 편집이 필요한 적어도 하나의 오브젝트를 분리하고, 분리된 상기 적어도 하나의 오브젝트를 편집하여 상기 트러스트존 UI 를 생성할 수 있다.
또한, 상기 적어도 하나의 프로세서는 분리된 상기 적어도 하나의 오브젝트를 삭제 또는 변경하거나, 또는 적어도 하나의 오브젝트를 상기 분리된 적어도 하나의 오브젝트에 추가함으로써, 상기 트러스트존 UI 를 생성할 수 있다.
또한, 상기 적어도 하나의 프로세서는 상기 트러스트존 UI 를 상기 보안 영역 내에 포함되는 프레임 버퍼에 저장하고, 상기 프레임 버퍼에서 로딩된 상기 트러스트존 UI 가 상기 디스플레이 상으로 출력되도록 제어할 수 있다.
또한, 상기 적어도 하나의 프로세서는 상기 일반 영역 내에서 실행되는 폰트 엔진(font engine)을 이용하여, 소정 언어에 대응되는 상기 이미지 자원을 생성할 수 있다.
또한, 상기 트러스트존 UI 는 보안 키패드 또는 보안 키보드 중 적어도 하나를 포함할 수 있다.
본 개시의 실시예에서는, 일반 영역에서 보안 영역으로 트러스트존 UI 에 대응되는 탬플릿을 이미지 자원으로서 전송하고, 보안 영역에서 수신된 이미지 자원을 이용하여 오브젝트 별로 분리 및 편집을 수행하여 트러스트존 UI를 생성한다. 그에 따라서, 트러스트존 UI 가 변경될 때마다, 완전히 새로운 이미지 생성을 위한 렌더링을 수행할 필요 없이 변경 대상이 되는 오브젝트 만을 편집함으로써, 트러스트존 UI의 유지 및 보수에 소요되는 시간 및 메모리 용량을 감소시킬 수 있다. 그에 따라서, 빠르고 편리하게 의도하는 트러스트존 UI 를 생성할 수 있다.
도 1은 일반 영역과 보안 영역으로 구별되는 동작 시스템(OS)을 나타내는 블록도이다.
도 2a는 정보의 보안 입력을 위하여 출력되는 보안 키보드를 나타내는 일 도면이다.
도 2b는 정보의 보안 입력을 위하여 출력되는 보안 키보드를 나타내는 다른 도면이다.
도 3은 숫자의 보안 입력을 위하여 출력되는 보안 키패드를 나타내는 일 도면이다.
도 4는 본 개시의 실시예에 따른 디스플레이 장치를 나타내는 블록도이다.
도 5는 본 개시의 다른 실시예에 다른 디스플레이 장치를 나타내는 블록도이다.
도 6은 본 개시의 실시예에 따른 디스플레이 장치의 제어부의 동작을 설명하기 위한 도면이다.
도 7은 본 개시의 실시예에 따라, 트러스트존 UI 를 생성하기 위한 동작을 설명하기 도면이다.
도 8a은 보안 키패드에 대응되는 이미지 자원을 설명하기 위한 도면이다.
도 8b는 보안 키보드에 대응되는 이미지 자원을 설명하기 위한 도면이다.
도 9a 및 도 9b는 보안 키보드의 편집 동작을 상세히 설명하기 위한 도면들이다.
도 10은 본 개시의 실시예에 따른 트러스트존 그래픽 렌더링 방법을 나타내는 흐름도이다.
본 개시의 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다.
또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다.
또한, 본 명세서에 기재된 "...부", "모듈" , 장치 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. "부", "모듈"은 어드레싱될 수 있는 저장 매체에 저장되며 프로세서에 의해 실행될 수 있는 프로그램에 의해 구현될 수도 있다.
예를 들어, 부, "모듈", 장치 는 소프트웨어 구성 요소들, 객체 지향 소프트웨어 구성 요소들, 클래스 구성 요소들 및 태스크 구성 요소들과 같은 구성 요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들에 의해 구현될 수 있다.
전술한 바와 같이, 컴퓨터, 스마트 폰, 태블릿 PC, PDA 등과 같은 전자 장치들이 사용자와 밀접하게 이용되고 있다. 사용자가 개인적으로 이용하는 전자 장치가 널리 보급 및 이용되면서, 전술한 전자 장치에 입력 또는 저장되는 사용자의 개인 정보 또는 사용자 관련 정보 또한 증가하고 있다. 여기서, 사용자의 개인 정보 또는 사용자 관련 정보는 사용자의 주민 등록 번호 등과 같은 개인의 고유 식별 정보, 사용자가 설정한 비밀 번호, 사용자의 신용 카드 번호 등과 같이, 보안 유지가 필수적인 정보들이 포함될 수 있다.
전자 장치는 소정의 업무 또는 소정의 동작을 수행하기 위해서, 사용자의 개인 정보 또는 사용자 관련 정보를 입력, 처리 및/또는 저장할 수 있다. 전자 장치에 입력, 처리 및/또는 저장되는 사용자의 개인 정보 또는 사용자 관련 정보는 해킹으로부터 보호해야 할 정보들 포함될 수 있다.
사용자가 전자 장치를 통하여 실행되는 인터넷 뱅킹 어플리케이션을 이용하는 경우, 사용자는 인터넷 뱅킹 어플리케이션으로 사용자 아이디 및 사용자 비밀번호를 입력하여 사용자 인증을 하여야 한다. 이러한 경우, 사용자 아이디 및 사용자 비밀번호는 해킹으로부터 보호되어야 할 정보들이 된다. 이하에서는, 사용자의 개인 정보 또는 사용자 관련 정보 등과 같이 보안의 필요성이 있는 정보들을 통틀어 '사용자 정보'라 하겠다.
따라서, 사용자 정보를 입력, 처리 및/또는 저장하는 모든 과정에서 보안이 요구되며, 사용자 정보가 입력, 처리 및/또는 저장하는 과정에서 사용자 정보가 외부의 유해한 요소(예를 들어, 멀웨어(Malware) 등)에 의하여 유출되지 않도록 보호해야 할 필요가 있다.
전술한 바와 같이, 소정의 정보, 예를 들어, 사용자 정보를 보호하여 보안 성능을 향상시키기 위한 방법으로 트러스트존(Trustzone)을 설정하여 이용하는 방법을 예로 들 수 있다.
트러스트존 설정 방법은 소정의 프로세서에 탑재된 하드웨어의 보안을 위한 기술로, 소정의 프로세서를 실행하는 동작 시스템(OS: Operating System)을 일반 영역(NWD: Normal World) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)으로 구별한다. 구체적으로, 트러스트존 설정 방법은 동작 시스템(OS)이 존재하는 하드웨어(예를 들어, 메모리 장치 등)를 일반 영역(NWD) 및 보안 영역(SWD)으로 분할하고, 일반 영역(NWD)에서 보안 영역(SWD)으로 접근하는 것이 불가능하도록 한다. 트러스트존 설정 방법에 따르면, 보안 영역(SWD)으로 입력, 처리, 및/또는 저장되는 데이터 또는 자원을 보호할 수 있다.
보안 성능을 향상시키기 위한 일 방법인 트러스트존 설정 방법은 이하에서 도 1을 참조하여 설명한다.
도 1은 일반 영역과 보안 영역으로 구별되는 동작 시스템(OS)을 나타내는 블록도이다.
도 1을 참조하면, 동작 시스템(OS)(100)은 일반 영역(NWD: Normal World)(110) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)(130)으로 구별될 수 있다. 여기서, 일반 영역(110)은 REE(Rich Execution Environment) 영역에 대응되며, 보안 영역(130)은 TEE(Trusted Execution Environment) 영역에 대응된다. REE 영역은 TEE 영역에 비하여 상대적으로 보안에 취약하다.
사용자 정보를 입력받아 처리하기 위한 UI(user interface) 어플리케이션이 REE 영역에서 동작하는 경우를 예로 들자. 이 경우, 멀웨어 등과 같은 외부 공격자가 UI 화면 캡쳐 등의 방법을 통하여 어플리케이션으로 입력되는 사용자 정보를 탈취할 수 있다. 이러한 REE 영역에서 발생할 수 있는 보안 취약점을 해결하기 위해서, TEE 영역에 대응되는 보안 영역(130)을 이용하는 트러스트존 설정 방법을 이용할 수 있다.
트러스트존 설정 방법에 따르면, 일반 영역(110)은 보안 영역(130)에 존재하는 자원(resource)에 접근할 수 없다. 여기서, 자원(resource)은 i) 동작 시스템(OS)으로 입력되는 데이터, ii) 동작 시스템(OS) 내에서 생성, 처리, 및/또는 저장되는 다양한 형태의 데이터들을 의미할 수 있다. 구체적으로, 동작 시스템(OS)을 실행하는 프로세서에서 사용자 정보를 입력, 처리 및/또는 저장하는 과정에서 발생할 수 있는 사용자 정보의 유출 등과 같은 보안 문제를 극복하기 위해서, 사용자 정보를 입력, 처리 및/또는 저장하기 위한 적어도 하나의 동작이 보안 영역(130)에서 수행되도록 할 수 있다.
구체적인 예로, 사용자 정보를 UI 화면를 통하여 입력받을 때, UI 화면의 생성에 이용되는 UI 어플리케이션을 보안 영역(130)에서 실행할 수 있다.
도 1을 참조하면, 사용자 정보를 입력받는 UI 화면의 예로는, 보안 키보드(secure keyboard)(160)를 포함하는 보안 키보드 UI 화면이 있을 수 있다.
전자 장치, 예를 들어, 사용자의 모바일 폰에서 실행되는 인터넷 뱅킹 어플리케이션을 예로 들면, 먼저 사용자는 인터넷 뱅킹 어플리케이션에 사용자 인증을 위한 정보를 입력하여야 한다. 구체적으로, 인터넷 뱅킹 어플리케이션은 사용자 인증을 위한 정보를 입력받기 위해 보안 키보드(160)를 포함하는 UI 화면이 디스플레이(150) 상으로 출력되도록 할 수 있다. 여기서, 사용자 인증을 위한 정보는 사용자의 아이디 및 사용자 아이디에 대응되는 비밀 번호 등이 될 수 있을 것이며, 보안을 유지하여야 할 필요가 있는 정보가 된다.
도 1을 참조하면, 보안 키보드(160)를 포함하는 UI 화면을 디스플레이하기 위해서는, 일반 영역(110)의 메모리(미도시)에 저장되어 있는 이미지 자원을 그래픽 클라이언트 어플리케이션(Graphic Client Application)(111)이 로딩한 뒤, 로딩된 이미지 자원을 보안 영역(130)으로 전송한다. 구체적으로, 그래픽 클라이언트 어플리케이션(111)은 로딩된 이미지 자원은 그래픽 트러스티드 어플리케이션(Graphic Trusted Application)(131)으로 전송된다.
그래픽 트러스티드 어플리케이션(131)은 그래픽 장치(133)를 이용하여, 전송받은 이미지 자원에 대응되는 이미지를 프레임 버퍼(135)에 직접 픽셀 단위로 그려주는 방식으로 동작할 수 있다다. 여기서, 프레임 버퍼(135)는 트러스트존에 대응되는 보안 영역(130) 내에서만 접근이 가능하며, 일반 영역(110)에서는 프레임 버퍼(135)에 접근할 수 없다.
또는, 보안 키보드(160)를 포함하는 UI 화면을 디스플레이하기 위해서는, 보안 영역(130)의 그래픽 트러스티드 어플리케이션(131)은 필요한 이미지를 직접 생성할 수 있다. 구체적으로, 그래픽 트러스티드 어플리케이션(131)은 그래픽 장치(133)를 이용하여 필요한 이미지를 직접 프레임 버퍼(135)에 그려주는 방식으로 생성할 수 있다.
그러나, 보안 영역(130) 내에서 트러스트존 UI를 생성하는데 있어서는 이하와 같은 문제가 존재한다.
트러스트존에 대응되는 보안 영역(130)은 일반 영역(110)에 비하여 메모리 사용량에 제한이 있으며, 그래픽 생성 및/또는 렌더링에 이용되는 어플리케이션, 장치, 프로그램 또는 도구들에 제한이 있다. 구체적으로, 트러스트존의 경우 일반 영역(110)에 비하여 메모리 용량이 매우 작으며, 경량화 동작 시스템(OS)인 보안 OS(secure OS)를 사용한다. 따라서, 보안 영역(130)은 일반 영역(110)에서 사용하는 그래픽 렌더링 기술이나 도구(예를 들어, 폴트 엔진 등)을 지원받지 못하거나, 일반 영역(110)에서 사용하는 그래픽 렌더링 기술이나 도구(예를 들어, 폴트 엔진 등)를 사용하는데 실행 시간 및 메모리 용량 상의 어려움이 있다.
구체적으로, 보안 영역(130)에서 생성되는 이미지는 다국어(Multi language) 지원이 어렵다. 다국어를 지원해야 하는 트러스트존 UI의 경우, 다국어 지원 국가의 개수만큼 이미지들을 미리 만들어 두어야 한다. 예를 들어, 20개국의 언어를 지원하여 20 개국의 언어 중 어느 하나의 언어에 따른 UI 화면을 출력하기 위해서는, 보안 영역(130)의 그래픽 장치(133)는 20개의 언어 각각에 대응되는 20 개의 UI 화면을 모두 미리 생성하고 있어야 한다. 그에 따라서, 20개의 이미지들을 모두 생성 및 저장하는 데에서 메모리 자원의 소모가 발생하게 된다. 또한, 지원되는 다국어에 변경이 발생하면, 변경된 다국어 지원 국가 수만큼 이미지를 매번 수정해야 한다. 그에 따라서, 다국어 변경을 위한 유지 및 보수에 비용 및 시간이 발생하게 된다.
또한, 미리 복수개의 이미지들을 저장하는데 있어서, 생성된 복수개의 이미지들을 로딩하여 보안 영역(130) 내의 메모리(미도시)(예를 들어, 플래시 저장소(flash storage)) 내에 미리 저장해 두어야 한다. 따라서, 보안 영역(130) 내의 메모리 사용량이 증가하게 되는 문제가 발생한다. 보안 영역(130)은 일반 영역(110)에 비하여 메모리 용량이 작은 값을 가지므로, 보안 영역(130) 내의 메모리(미도시)에 이미 생성되어 있는 복수개의 이미지들을 저장하게 되면, 남아있는 메모리 용량이 감소하게 된다. 따라서, 보안 영역(130) 내의 사용 가능한 메모리 용량이 줄어들어 후속하여 수행되어야 하는 동작들의 실행 속도가 늦어지거나 불가능하게 되는 등의 문제가 발생하게 된다.
또한, 트러스트존 UI가 변경될 경우, 상기의 변경에 맞춰서 트러스트존 UI의 보수에 있어서 문제가 발생할 수 있다. 구체적으로, 보안 영역(130)에서 필요한 모든 이미지들을 미리 생성하고 있는 구조이므로, UI 화면 내의 일부분만 변경되고 나머지 부분들을 그대로 유지되더라도, 해당 UI 화면에 대응되는 이미지를 새롭게 만들어야 한다. 따라서, UI 화면 내에 일부 변경만이 필요하더라도 이전의 이미지를 이용하지 못하고 새로운 이미지를 재 생성하여야 하므로, 새로운 이미지 재 생성을 위한 시간 지연이 발생하게 된다.
본 개시의 실시예에서는, 전술한 문제점들을 극복하기 위해서, 트러스트존 UI 의 생성에 있어서 보안 성능을 높이면서도 용이하게 빠르게 트러스트존 UI 를 생성할 수 있도록 하는 트러스트존 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치를 개시한다. 또한, 본 개시의 실시예에 따른 트러스트존 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치는 이하에서 도 2a 내지 도 10을 참조하여 상세히 설명하도록 하겠다.
본 개시의 실시예에서 생성되는 트러스트존 UI는 사용자와의 상호작용(interaction)을 통하여 데이터를 입력 또는 출력할 수 있도록 하는 UI(user interface)에 대응되는 것으로, 다양한 형태의 이미지, 데이터, 및 자원 중 적어도 하나를 포함할 수 있다.
구체적으로, 트러스트존 UI 는 UI 화면, UI 화면에 대응되는 이미지 데이터 및 UI 화면을 생성하기 위해 이용되는 이미지 자원 중 적어도 하나를 포함할 수 있다. 구체적으로, 트러스트존 UI는 보안을 유지할 필요가 있는 UI와 관련된 다양항 형태의 화면, 이미지 데이터, 및 자원 중 적어도 하나를 포함할 수 있다.
예를 들어, 트러스트존 UI는 도 2a 및 도 2b 도시된 보안 키보드가 될 수 있다. 또한, 트러스트존 UI는 도 3에 도시된 보안 키패드가 될 수 있다.
도 2a는 정보의 보안 입력을 위하여 출력되는 보안 키보드를 나타내는 일 도면이다.
도 2b는 정보의 보안 입력을 위하여 출력되는 보안 키보드를 나타내는 다른 도면이다.
도 2a를 참조하면, 보안 키보드(210)는 패스워드를 입력하기 위한 키들이 배치되는 영역(205) 및 패스워드를 입력 및 표시하는 영역(211)을 포함할 수 있다. 영역(205) 내에는 정보의 입력을 위한, 문자, 숫자, 기호 및 도형 중 적어도 하나에 대응되는 복수개의 키들이 배치될 수 있다. 영역(205) 내에 배치되는 키들은 보안 키보드(210)가 지원하는 언어에 따라서 달라질 수 있다. 도 2a 및 도 2b에서는, 보안 키보드(210)가 지원하는 언어가 영어인 경우를 예로 들어 도시하였다. 상세하게, 보안 키보드(210)의 영역(205)에 알파벳 문자들에 대응되는 키들이 배치되고, 'secure Keyboard', 'Enter your Password', 'Show Password' 등의 표시가 포함되어 있는 경우를 예로 들어 도시하였다.
멀웨어(Malware) 등의 외부 공격자가 화면 캡쳐 등의 방식으로 입력되는 정보를 탈취하는 것을 방지하기 위해서, 보안 키보드(secure keyboard)는 출력 시점 마다 키의 배치를 변경하여 출력할 수 있다.
즉, 보안 키보드에 대응되는 트러스트존 UI 의 경우, 출력 시점, 실행 시점, 및 생성 시점 중 적어도 하나에 따라서 변경될 필요가 있다.
도 2a는 t1 시점에서 출력되는 보안 키보드(210)를 나타내는 도면이고, 도 2b는 t1 시점에 후속하는 t2 시점에서 출력되는 보안 키보드(250)를 나타내는 도면이다.
도 2a 및 도 2b를 참조하면, 보안 키보드(210)의 출력 시점이 변경됨에 따라서 보안 키보드(210)의 소정 영역(220)에서의 키 배치가 변경될 수 있다.
도 2a를 참조하면, t1 시점에 출력되는 보안 키보드(210)의 소정 영역(220)에는 시계방향으로 'y'(221), 'u'(222), null(223), 'h'(226), 'g'(225) 및 null(224) 키들이 순차적으로 배치된다.
도 2a 및 도 2b를 참조하면, 도 2a의 영역(220)은 도 2b의 영역(260)에 동일 대응된다. 도 2b의 보안 키보드(250)에 있어서 영역(260)을 제외한 나머지 부분은 도 2a 의 보안 키보드(210)와 동일하므로, 도 2a 에서와 중복되는 설명은 생략한다.
도 2b를 참조하면, t2 시점에서 출력되는 보안 키보드(250)의 영역(260)에는 시계방향으로 'y'(261), null(262), 'u'(263), null(266), 'h'(225), 및 'g'(224) 키들이 순차적으로 배치된다.
보안 키보드의 출력시점이 t1 에서 t2 로 변경됨에 따라서, 영역(220)의 'u'(222) 키는 영역(260)의 null(262)로 변경된다. 그리고, 영역(220)의 null(223) 키는 영역(260)의 'u'(263)로 변경된다. 그리고, 영역(220)의 'h'(226), 'g'(225) 및 null(224)는 각각 영역(260)의 null(266), 'h'(225), 및 'g'(224)로 변경된다.
또한, 보안을 유지하며 입력, 처리 및/또는 저장하여야 하는 데이터를 위한 UI 로 보안 키패드를 예로 들 수 있다.
도 3은 숫자의 보안 입력을 위하여 출력되는 보안 키패드를 나타내는 일 도면이다.
도 3을 참조하면, 보안 키패드(310)는 보안 키패드 임을 알리는 'secure NumberPad'(311), 패스워드를 입력 및 표시하는 영역(312) 및 숫자들을 입력하기 위한 키들이 배치되는 영역(313)을 포함할 수 있다.
보안 키패드(310)는 도 2a 및 도 2b 에서 설명한 보안 키보드에서와 유사하게, 출력되는 시점에 따라서 영역(313)에 배치되는 키들의 위치가 변경될 수 있다.
또한, 보안 키패드(310)에 포함되는 키가 선택되면, 선택되어지지 않은 키들과 구별되어 표시될 수 있다. 예를 들어, 숫자 '5'에 대응되는 키(320)가 선택되면, 선택된 키(320)는 도 3 에 도시된 바와 같이 확대되어 표시되어서, 선택되지 않은 다른 키들과 다른 형태로 표시될 수 있다.
본 개시의 실시예에서는, 도 2a 및 도 2b 에서 설명한 보안 키보드 또는 도 3에서 설명한 보안 키패드를 포함하는 UI 화면에서와 같이, 보안이 요구되는 UI 화면을 트러스트존에 대응되는 보안 영역(SWD)에서 렌더링하여 출력하는 방법 및 장치를 개시한다. 구체적으로, 본 개시의 실시예에서는 UI 화면의 구성이 계속적으로 변경될 필요가 있는 경우, 이러한 변경에 대응되는 트러스트존 UI 의 생성을 빠르고 용이하게 수행할 수 있도록 하는 방법 및 장치를 개시한다.
이하에서는, 보안 성능을 유지할 필요가 있는 데이터를 입력받을 때 이용되며, 트러스트존(trustzone)에 대응되는 보안 영역에서 렌더링되는 UI 를 '트러스트존 UI'(turstzone user interface)라 칭하겠다. 본 개시의 실시예에 따른 트러스트존 UI 는 도 2a 및 도 2b 에서 설명한 보안 키보드, 도 3에서 설명한 보안 키패드를 포함할 수 있다.
여기서, '트러스트존 UI'는 UI 화면에 대응되는 이미지 자체, UI 화면에 대응되는 이미지에 대응되는 자원(resource), 또는 UI 화면에 대응되는 이미지에 대응되는 데이터를 포함할 수 있다.
본 개시의 실시예에 따른 전자 장치는 그래픽 렌더링(graphic rendering)을 수행하여 트러스트존 UI 를 생성할 수 있는 모든 장치가 될 수 있으며, 다양한 형태를 가질 수 있다.
구체적으로, 본 개시의 실시예에 따른 전자 장치는 일반 영역(NWD: Normal World) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)으로 구별되는 동작 시스템(OS)을 실행하기 위하여 하나 이상의 인스트럭션(instruction)을 수행하는 적어도 하나의 프로세서를 포함하며, 트러스트존에 대응되는 영역에서 UI 생성 또는 편집에 필요한 렌더링(rendering)을 수행할 수 있는 모든 장치가 될 수 있다.
구체적으로, 본 개시의 실시예에 따른 전자 장치는 TV 등과 같은 디스플레이 장치, 컴퓨터, 스마트 폰, 휴대폰, 태블릿 PC, 디지털 카메라, 캠코더, 노트북 컴퓨터(laptop computer), 데스크 탑, 전자책 단말기, 디지털 방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어, 또는 착용형 기기(wearable device) 등을 포함할 수 있다.
또한, 본 개시의 실시예에 따른 전자 장치는 UI 렌더링을 수행할 수 있는 서버 장치를 포함할 수 있다. 이 경우, 서버 장치는 외부의 디스플레이 장치와 유선 또는 무선의 네트워크를 통하여 연결될 수 있으며, 생성한 트러스트존 UI를 외부의 디스플레이 장치로 전송할 수 있을 것이다. 그러면, 외부의 디스플레이 장치는 트러스트존 UI 를 디스플레이하여, 사용자와 상호 작용을 통하여 소정 정보가 입력되도록 동작할 수 있을 것이다.
이하에서는, 본 개시의 실시예에 따른 전자 장치가 트러스트존 UI 를 출력하는 디스플레이를 포함하는 디스플레이 장치인 경우를 예로 들어 설명한다. 따라서, 도 4 및 도 5에서 '디스플레이 장치'라 칭하였지만, 도 4 및 도 5에 도시된 디스플레이 장치(400, 500)은 전술한 다양한 전자 장치 또는 서버 장치의 형태를 가질 수 있다.
도 4는 본 개시의 실시예에 따른 디스플레이 장치를 나타내는 블록도이다.
도 4를 참조하면, 본 개시의 실시예에 따른 디스플레이 장치(400)는 제어부(410), 메모리(420) 및 디스플레이(430)를 포함하며, 트러스트존 UI 생성에 필요한 그래픽 렌더링(graphic rendering)을 수행할 수 있다.
구체적으로, 디스플레이 장치(400)는 디스플레이(430), 하나 이상의 인스트럭션을 포함하는 메모리(420), 및 메모리(420)에 저장된 하나 이상의 인스트럭션을 수행하는 프로세서(미도시)를 적어도 하나 포함하는 제어부(410)를 포함한다.
제어부(410)는 일반 영역(NWD: Normal World) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)으로 구별되는 동작 시스템(OS)을 실행하기 위하여 하나 이상의 인스트럭션을 수행하는 적어도 하나의 프로세서(미도시)를 포함한다. 구체적으로, 제어부(410)는 메모리(420)에 저장되는 하나 이상의 인스트럭션을 수행함으로써, 동작 시스템(OS)을 실행할 수 있다.
디스플레이 장치(400)에 있어서, 제어부(410)는 디스플레이 장치(400)의 전반적인 동작을 제어할 수 있다. 구체적으로, 제어부(410)는 디스플레이 장치(400)의 전반적인 동작 및 디스플레이 장치(400)의 내부 구성요소들 사이의 신호 흐름을 제어하고, 데이터를 처리하는 기능을 수행한다.
본 개시의 실시예에 따르면, 제어부(410)는 트러스트존 UI 를 렌더링하기 위한 동작들을 수행할 수 있다. 구체적으로, 제어부(410)는 이미지 자원을 이용하여 트러스트존 UI를 생성 또는 편집하기 위한 동작들이 수행할 수 있다.
본 개시의 실시예에서, 제어부(410)에 포함되는 적어도 하나의 프로세서는 도 1을 참조하여 설명한 바와 같이, 일반 영역(NWD: Normal World) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)으로 구분될 수 있다.
또한, 제어부(410)를 형성하는 하드웨어(미도시)는 일반 영역(NWD: Normal World) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)으로 구분되어 형성될 수 있다. 여기서, 하드웨어(미도시)는 제어부(410)에 포함되는 적어도 하나의 프로세서를 형성하는 그래픽 프로세서(Graphic Processing Unit, 미도시), CPU(Central Processing Unit) 등을 포함할 수 있다. 또한, 프로세서(미도시)는 코어(core, 미도시)와 GPU(미도시)를 통합한 SoC(System On Chip) 등의 구현될 수 있다. 예를 들어, 제어부(410)를 형성하는 하드웨어, 예를 들어, SoC 는 일반 영역(NWD: Normal World) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)으로 구분되어 형성될 수 있다.
또한, 제어부(410)를 형성하는 소프트웨어(미도시)(예를 들어, 동작 시스템(OS) 등)는 일반 영역(NWD: Normal World) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)으로 구분되어 형성될 수 있다.
구체적으로, 제어부(410)에 포함되는 적어도 하나의 프로세서는 일반 영역(NWD) 내에서 트러스트존 UI의 생성에 이용되는 이미지 자원(image resource)을 생성하고, 일반 영역(NWD)에서 보안 영역(SWD)으로 이미지 자원을 전송하고, 보안 영역(SWD)에서 복수개의 오브젝트들을 포함하는 이미지 자원을 오브젝트 단위로 분리 및 편집하여 트러스트존 UI 를 생성하도록 동작한다.
여기서, 편집은 이미지 자원 내에 포함되는 오브젝트들의 위치, 크기, 모양, 색상, 형태, 배치, 모양, 및 적용 언어 중 적어도 하나를 변화시키는 것을 의미할 수 있다. 구체적으로, 오브젝트 단위로 분리 및 편집하는 예로는, 이미지 자원이 복수개의 오브젝트들을 포함할 때, 복수개의 오브젝트에 포함되는 적어도 두 개의 오브젝트 간의 위치를 변경하여, 오브젝트들의 위치를 재배열시키는 경우가 될 수 있다.
여기서, 트러스트존 UI는 사용자와의 상호작용(interaction)을 통하여 데이터를 입력 또는 출력할 수 있도록 하는 UI(user interface)에 대응되는 것으로, 다양한 형태의 이미지, 데이터, 및 자원 중 적어도 하나를 포함할 수 있다.
예를 들어, 트러스트존 UI는 도 2a 및 도 2b를 참조하여 설명한 보안 키보드가 될 수 있다. 또 다른 예로, 트러스트존 UI는 도 3을 참조하여 설명한 보안 키패드가 될 수 있다. 또 다른 예로, 트러스트존 UI는 사용자가 보안을 유지하며 수행해야 할 환경 설정, 시스템 설정, 동작 설정, 또는 방법 설정 등을 수행하기 위해서 데이터를 입력 또는 출력할 수 있도록 하는 UI에 대응될 수 있다. 또 다른 예로, 트러스트존 UI는 보안을 유지할 필요가 있는 데이터를 입력, 처리 및/또는 출력할 수 있도록 하는 UI에 대응될 수 있다.
구체적으로, 제어부(410)가 일반 영역(NWD) 내에서 트러스트존 UI의 생성에 이용되는 이미지 자원(image resource)을 생성하는데 있어서, 이미지 자원은 소정 화면으로 출력되는 이미지의 적어도 일 부분에 대응되는 이미지 데이터를 포함할 수 있다. 예를 들어, 트러스트존 UI가 보안 키패드에 대응되는 UI일 경우, 제어부(410)의 일반 영역(NWD)에서 생성되는 이미지 자원은 UI 화면 중 보안 키패드 부분에 대응되는 이미지 데이터가 될 수 있다.
또한, 제어부(410)가 생성하는 이미지 자원은 하나의 단일 이미지 또는 단일 이미지에 대응되는 데이터뿐 만 아니라, 복수의 이미지 또는 복수의 이미지에 대응되는 데이터를 포함할 수 있다. 예를 들어, 제어부(410)가 일반 영역(NWD) 내에서 생성하는 이미지 자원은 보안 키패드에 대응되는 이미지 및 보안 키보드에 대응되는 이미지를 포함할 수 있을 것이다.
또한, 제어부(410)는 일반 영역(NWD) 내에서, 일반 영역(NWD)에 존재하는 적어도 하나의 그래픽 툴키트(graphic toolkit)를 이용하여, 이미지 자원을 생성할 수 있다.
또한, 제어부(410)는 일반 영역(NWD) 내에서 실행되는 폰트 엔진(font engine)을 이용하여, 소정 언어에 대응되는 이미지 자원을 생성할 수 있다. 구체적으로, 트러스트존 UI 가 영어에 의해서 지원되는 보안 키보드인 경우, 제어부(410)는 폰튼 엔진을 통하여 이미지 자원에 적용되는 언어를 영어로 설정함으로써, 영어가 적용된 보안 키보드에 대응되는 이미지 자원을 생성할 수 있다.
일반적으로, 일반 영역(NWD)에는 보안 영역(SWD)에 비하여 상대적으로 많은 메모리가 할당되어 있다. 따라서, 제어부(410)에 있어서 일반 영역(NWD)은 보안 영역(SWD)에 비하여 메모리의 용량으로 인한 제약이 없다. 반대로, 보안 영역(SWD)은 일반 영역(NWD)에 비하여 적은 양의 메모리 용량으로 인하여 그래픽 렌더링을 위한 도구 등을 저장하는데 제약이 있다.
또한, 일반 영역(NWD)에는 다양한 형태의 그래픽 툴키트(toolkit)가 존재할 수 있다. 구체적으로, 그래픽 렌더링(graphic rendering)을 위한 그래픽 툴 키트의 예로는 ELF(Enlightenment Foundation Library), GTK(GIMP toolkit), QT toolkit 등이 포함될 수 있다. 또한, 일반 영역(NWD)에는 그래픽 렌더링을 위한 폰트 엔진이 존재한다. 따라서, 다국어 지원이 필요한 트러스트존 UI 에 있어서, 폰트 엔진을 이용하면 트러스트존 UI에 지원 및 적용되는 언어를 빠르고 간편하게 설정 또는 변경할 수 있다. 만약, 폰트 엔진을 이용하지 않는 경우, 트러스트존 UI 에 적되는 언어를 영어에서 한국어로 변경하고자 한다면, 트러스트존 UI 에 존재하는 문자를 하나하나 영어에서 대응되는 한국으로 변경하여야만 한다. 그러나, 폰트 엔진을 이용하면, 트러스트존 UI 에 존재하는 문자의 언어 종류를 일괄적으로 빠르게 변경할 수 있다.
일반 영역(NWD)은 그래픽 렌더링을 위한 기술, 도구 등이 모두 지원되는 환경이라 할 수 있다. 이에 비하여, 보안 영역(SWD)은 전술한 메모리 용량 제한으로 인하여, 그래픽 렌더링을 위한 기술, 도구 등의 지원에 제한이 있으며, 일반 영역(NWD)에서 지원되는 기술 또는 도구 등이 대부분 지원되지 않는다. 구체적으로, 보안 영역(SWD)에서는 메모리 용량의 제한으로 인하여, 그래픽 툴키트 및 폰트 엔진이 존재하지 않을 수 있다.
따라서, 본 개시의 실시예에서는 트러스트존 UI 생성에 이용되는 템플릿이라 할 수 있는 이미지 자원을 일반 영역(NWD)에서 생성할 수 있다. 그에 따라서, 일반 영역(NWD)에 존재하는 그래픽 렌더링을 위한 기술 또는 도구, 또는 다국어 시스템을 지원하는 폰트 엔진 등을 이용하여 빠르고 용이하게 이미지 자원을 생성할 수 있다.
또한, 제어부(410)는 보안 영역(SWD)으로 수신된 이미지 자원에 포함되는 복수개의 오브젝트들 중 적어도 하나의 오브젝트를 오브젝트 별로 분리 및 편집하여, 트러스트존 UI를 생성할 수 있다.
여기서, 오브젝트는 트러스트존 UI를 통하여 입력하고자 하는 정보의 최소 의미 단위에 대응되는 키라 할 수 있다. 또한, 오브젝트는 트러스트존 UI에 포함되는 문자, 숫자, 도형 및 기호를 구분하는 최소 단위가 될 수 있다. 또한, 오브젝트는 터르스트존 UI 에 포함되는 동작 수행 키들 각각이 될 수 있다. 또한, 트러스트존 UI에 포함되는 의미 있는 하나의 단어 또는 문장이 될 수 있다.
계속하여, 제어부(410)는 보안 영역(SWD)에서, 복수개의 오브젝트들을 포함하는 이미지 자원을 오브젝트 단위로 분리 및 편집할 수 있다.
도 2a 및 도 2b를 참조하여 설명한 바와 같이, 보안 입력을 위하여 보안 키보드 등은 UI 를 출력 시점마다 보안 키보드의 형태를 변경하여 출력할 필요가 있다. 이러한 경우, 제어부(410)은 변경된 트러스트존 UI에 대응되는 이미지를 전체적으로 새롭게 생성하는 것이 아니라, 이미지 자원에 포함되는 탬플릿 이미지에서 변경되는 부분에 대응되는 적어도 하나의 오브젝트만을 수정함으로써, 변경된 트러스트존 UI에 대응되는 이미지가 생성될 수 있도록 한다.
구체적으로, 제어부(410)는 보안 영역(SWD)에 수신 및 저장된 이미지 자원에 포함되는 복수개의 오브젝트들 중 변경이 필요한 적어도 하나의 오브젝트 만을 오브젝트 단위로 분리하여, 편집할 수 있다. 여기서, 오브젝트 단위의 편집은, 이미지 자원에 포함되었던 오브젝트들 중 적어도 하나의 오브젝트에 있어서, 위치, 크기, 색상, 형태, 배치, 모양, 및 적용 언어 중 적어도 하나에 변경이 생기는 모든 경우를 의미할 수 있다.
구체적으로, 오브젝트 단위의 편집으로는 i) UI 에 포함되는 복수개의 오브젝트들 중 적어도 두 개의 위치를 변경하여, 적어도 두개의 오브젝트들을 재배열하는 경우 ii) 분리된 적어도 하나의 오브젝트를 삭제 또는 변경하는 경우, iii) 적어도 하나의 오브젝트를 분리된 적어도 하나의 오브젝트에 추가하는 경우, iv) 적어도 하나의 오브젝트를 신설하여 기존에 존재하는 적어도 하나의 오브젝트에 추가하는 경우 등을 예로 들 수 있다.
또한, 제어부(410)는 전술한 동작 및 후술하는 동작을 수행하는 적어도 하나의 프로그램이 저장된 메모리 및 저장된 적어도 하나의 프로그램을 실행하는 적어도 하나의 프로세서(processor)를 포함할 수 있다.
구체적으로, 제어부(410)는 디스플레이 장치(400)의 외부에서부터 입력되는 신호 또는 데이터를 저장하거나, 디스플레이 장치(400)에서 수행되는 다양한 작업에 대응되는 저장 영역으로 사용되는 RAM(미도시), 디스플레이 장치(400)의 제어를 위한 제어 프로그램이 저장된 ROM(미도시) 및 적어도 하나의 프로세서 (Processor)(미도시)를 포함할 수 있다. 또한, 제어부(410)에 포함되는 비휘발성 메모리 장치인 ROM(미도시)으로는 플래시 메모리(flash memory) 가 포함될 수 있다.
프로세서(미도시)는 비디오에 대응되는 그래픽 처리를 위한 그래픽 프로세서(Graphic Processing Unit, 미도시)를 포함할 수 있다. 프로세서(미도시)는 코어(core, 미도시)와 GPU(미도시)를 통합한 SoC(System On Chip)로 구현될 수 있다. 프로세서(미도시)는 싱글 코어, 듀얼 코어, 트리플 코어, 쿼드 코어 및 그 배수의 코어를 포함할 수 있다.
메모리(420)는 하나 이상의 인스트럭션을 포함한다. 구체적으로, 메모리(420)는 제어부(410)에 포함되는 적어도 하나의 프로세서(미도시)에 의해서 수행 또는 실행되는 하나 이상의 인스트럭션을 포함한다. 구체적으로, 제어부(410)에 포함되는 프로세서(미도시)는 메모리(420)에 저장되어 있는 적어도 하나의 인스트럭션을 실행시켜서, 트러스트존 UI 의 렌더링을 위한 동작이 수행되도록 제어할 수 있다.
본 개시의 실시예에서, 메모리(420)는 전술한 동작들을 수행하기 위한 인스트럭션들을 포함하는 프로그램을 적어도 하나 저장하고 있을 수 있다. 또는, 메모리(420)는 전술한 동작들을 수행하기 위한 인스트럭션들을 포함하는 프로그램을 실행하는 프로세서(미도시)를 적어도 하나 저장하고 있을 수 있다.
또한, 메모리(420)는 제어부(410) 내에 포함되는 형태로 구현될 수도 있다. 이 경우, 제어부(410)는 메모리(420) 및 적어도 하나의 프로세서(미도시)를 포함하여, 디스플레이 장치(400)에서 수행되는 동작들을 제어할 수 있으며, 소정 동작이 수행되도록 디스플레이 장치(300) 내에 포함되는 다른 구성들을 제어할 수 있다.
또한, 메모리(420)는 소정 데이터, 및 소정 동작을 수행하기 위한 인스트럭션들을 포함하는 프로그램들 중 적어도 하나를 포함할 수 있다.
또한, 메모리(420)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
디스플레이(430)는 비디오 데이터를 사용자가 시각적으로 인식할 수 있도록, 내부적으로 포함되는 디스플레이 패널을 통하여, 비디오 데이터에 대응되는 이미지를 출력할 수 있다.
본 개시의 실시예에서, 디스플레이(430)는 제어부(410)에 포함되는 적어도 하나의 프로세서(미도시)에 의해서 렌더링된 트러스트존 UI 에 대응되는 이미지를 디스플레이 할 수 있다.
제어부(410)에 포함되는 적어도 하나의 프로세서에 의해서 수행되는 동작들은 이하에서 도 6 내지 도 10을 참조하여 상세히 설명한다.
도 5는 본 개시의 다른 실시예에 다른 디스플레이 장치를 나타내는 블록도이다.
도 5에 도시된 디스플레이 장치(500), 적어도 하나의 프로세서를 포함하는 제어부(501), 메모리(570), 및 디스플레이(530)는 각각 도 4에서 도시된 디스플레이 장치(400), 적어도 하나의 프로세서를 포함하는 제어부(410), 메모리(420) 및 디스플레이(430)에 대응될 수 있다. 따라서, 디스플레이 장치(500)를 설명하는데 있어서, 도 1 내지 도 4에서와 중복되는 설명은 생략한다.
도 5에 도시된 바와 같이, 디스플레이 장치(500)는, 적어도 하나의 프로세서를 포함하는 제어부(501), 메모리(570), 및 디스플레이(530) 이외에, 사용자 입력부(520), 출력부(525), 센싱부(540), 통신부(550), 및 A/V 입력부(560), 및 카메라(564)를 더 포함할 수도 있다.
사용자 입력부(520)는, 사용자가 디스플레이 장치(500)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(520)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.
일 실시예에 따른 사용자 입력부(520)는, 트러스트존 UI 를 통하여 소정 정보를 입력받을 수 있다. 예를 들어, 디스플레이(530)에 출력되는 트러스트존 UI의 소정의 영역, 구체적으로, 소정 키가 배치되는 영역을 터치하는 입력을 포함할 수 있으나, 이에 한정되지 않는다. 사용자 입력부(520)는 소정 키가 배치되는 영역이 터치되면, 이를 감지하여 소정 키에 대응되는 데이터를 입력받을 수 있다.
출력부(525)는, 오디오 신호 또는 비디오 신호 또는 진동 신호를 출력할 수 있으며, 출력부(525)는 디스플레이(530), 음향 출력부(531), 및 진동 모터(532)를 포함할 수 있다.
디스플레이(530)는 디스플레이 장치(500)에서 처리되는 정보를 표시 출력한다. 예를 들어, 일 실시예에 따른 디스플레이(530)는, 트러스트존 UI를 출력할 수 있다.
음향 출력부(531)는 통신부(550)로부터 수신되거나 메모리(510)에 저장된 오디오 데이터를 출력한다. 또한, 음향 출력부(531)는 디스플레이 장치(500)에서 수행되는 기능(예를 들어, 호신호 수신음, 메시지 수신음, 알림음)과 관련된 음향 신호를 출력한다.
제어부(501)는 디스플레이 장치(500)의 전반적인 동작 및 디스플레이 장치(500)의 내부 구성 요소들 사이의 신호 흐름을 제어하고, 데이터를 처리하는 기능을 수행한다. 제어부(501)는 사용자의 입력이 있거나 기설정되어 저장된 조건을 만족하는 경우, 메모리(510) 또는 제어부(501)의 내부적으로 포함되는 메모리(미도시)에 저장된 동작 시스템(OS: Operation System) 및 다양한 애플리케이션을 실행할 수 있다.
일 실시예에 따른 제어부(501)는, 메모리(510)에 저장된 하나 이상의 인스트럭션을 수행함으로써, 일반 영역(NWD) 내에서 트러스트존 UI의 생성에 이용되는 이미지 자원(image resource)을 생성하고, 일반 영역(NWD)에서 보안 영역(SWD)으로 이미지 자원을 전송하고, 보안 영역(SWD)에서 복수개의 오브젝트들을 포함하는 이미지 자원을 오브젝트 단위로 분리 및 편집하여 트러스트존 UI 를 생성하도록 동작할 수 있다.
센싱부(540)는, 디스플레이 장치(500)의 상태 또는 디스플레이 장치(500) 주변의 상태를 감지하고, 감지된 정보를 제어부(501)로 전달할 수 있다.
센싱부(540)는, 지자기 센서(Magnetic sensor)(541), 가속도 센서(Acceleration sensor)(542), 온/습도 센서(543), 적외선 센서(544), 자이로스코프 센서(545), 위치 센서(예컨대, GPS)(546), 기압 센서(547), 근접 센서(548), 및 초음파 센서(549) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 각 센서들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.
통신부(550)는, 디스플레이 장치(500)가 다른 장치와 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 다른 장치는 디스플레이 장치(500)와 같은 컴퓨팅 장치이거나, 센싱 장치일 수 있으나, 이에 제한되지 않는다. 예를 들어, 통신부(550)는, 근거리 통신부(551), 이동 통신부(552), 방송 수신부(553)를 포함할 수 있다.
근거리 통신부(short-range wireless communication unit)(551)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
이동 통신부(552)는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.
방송 수신부(553)는, 방송 채널을 통하여 외부로부터 방송 신호 및/또는 방송 관련된 정보를 수신한다. 방송 채널은 위성 채널, 지상파 채널을 포함할 수 있다. 구현 예에 따라서 디스플레이 장치(500)가 방송 수신부(553)를 포함하지 않을 수도 있다.
A/V(Audio/Video) 입력부(560)는 오디오 신호 또는 비디오 신호 입력을 위한 것으로, 이에는 카메라(564)와 마이크로폰(562) 등이 포함될 수 있다. 카메라(561)는 화상 통화모드 또는 촬영 모드에서 이미지 센서를 통해 정지영상 또는 동영상 등의 화상 프레임을 얻을 수 있다. 이미지 센서를 통해 캡쳐된 이미지는 제어부(501) 또는 별도의 이미지 처리부(미도시)를 통해 처리될 수 있다.
마이크로폰(562)은, 외부의 음향 신호를 입력 받아 전기적인 음성 데이터로 처리한다. 예를 들어, 마이크로폰(562)은 외부 장치 또는 사용자로부터 음향 신호를 수신할 수 있다. 마이크로폰(562)은 사용자의 음성 입력을 수신할 수 있다. 마이크로폰(562)는 외부의 음향 신호를 입력 받는 과정에서 발생 되는 잡음(noise)를 제거하기 위한 다양한 잡음 제거 알고리즘을 이용할 수 있다.
메모리(510)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈로 분류할 수 있는데, 예를 들어, UI 모듈(571), 터치 스크린 모듈(572), 알림 모듈(573) 등으로 분류될 수 있다.
UI 모듈(571)은, 애플리케이션 별로 디스플레이 장치(500)와 연동되는 특화된 UI, GUI 등을 제공할 수 있다. 터치 스크린 모듈(572)은 사용자의 터치 스크린 상의 터치 제스처를 감지하고, 터치 제스처에 관한 정보를 제어부(501)로 전달할 수 있다. 일 실시예에 따른 터치 스크린 모듈(572)은 터치 코드를 인식하고 분석할 수 있다. 터치 스크린 모듈(572)은 컨트롤러를 포함하는 별도의 하드웨어로 구성될 수도 있다.
본 개시의 실시예에서, UI 모듈(571)은 UI 를 생성 또는 편집하기 위해 소정의 동작을 수행하는 프로그램을 포함할 수 있다. 구체적으로, UI 모듈(571)은 트러스트존 UI 를 생성 또는 편집하기 위해서 소정의 동작을 수행하는 프로그램을 포함하는 프로세서(미도시)를 포함할 수 있다.
알림 모듈(573)은 디스플레이 장치(500)의 이벤트 발생을 알리기 위한 신호를 발생할 수 있다. 디스플레이 장치(500)에서 발생되는 이벤트의 예로는 호 신호 수신, 메시지 수신, 키 신호 입력, 일정 알림 등이 있다. 알림 모듈(573)은 디스플레이(230)를 통해 비디오 신호 형태로 알림 신호를 출력할 수도 있고, 음향 출력부(522)를 통해 오디오 신호 형태로 알림 신호를 출력할 수도 있고, 진동 모터(523)를 통해 진동 신호 형태로 알림 신호를 출력할 수도 있다.
이하에서는, 트러스트존 UI의 생성을 위하여, 디스플레이 장치(400)의 제어부(410)에서 수행되는 동작들을 도 6 내지 도 9b를 참조하여 상세히 설명한다.
도 6은 본 개시의 실시예에 따른 디스플레이 장치의 제어부의 동작을 설명하기 위한 도면이다.
도 7은 본 개시의 실시예에 따라, 트러스트존 UI 를 생성하기 위한 동작을 설명하기 도면이다.
도 8a은 보안 키패드에 대응되는 이미지 자원을 설명하기 위한 도면이다.
도 8b는 보안 키보드에 대응되는 이미지 자원을 설명하기 위한 도면이다.
도 9a 및 도 9b는 보안 키보드의 편집 동작을 상세히 설명하기 위한 도면들이다.
도 6에 도시된 제어부(610) 및 디스플레이(690)는 각각 도 4에 도시된 제어부(410) 및 디스플레이(430)에 동일 대응될 수 있다. 또한, 도 6에 도시된 제어부(610) 및 디스플레이(690)는 각각 도 5에 도시된 제어부(501) 및 디스플레이(530)에 동일 대응될 수 있다. 또한, 도 6에 도시된 일반 영역(NWD: Normal World)(620) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)(650)은 각각 도 1에서 설명한 일반 영역(110) 및 보안 영역(130)에 대응될 수 있다. 따라서, 제어부(610)를 설명하는데 있어서, 도 1 내지 도 5에서와 중복되는 설명은 생략한다.
또한, 도 6 및 도 7에 있어서, 동일한 구성은 동일한 도면 기호로 도시하였다. 예를 들어, 도 6 및 도 7에 있어서, 일반 영역(NWD)은 모두 도면 기호 '620'을 사용하여 도시하였으며, 보안 영역(SWD)은 도면 기호 '650'을 사용하여 도시하였다.
도 6을 참조하면, 제어부(610)는 도 1을 참조하여 설명한 바와 같이, 일반 영역(NWD: Normal World)(620) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)(650)으로 구분될 수 있다. 구체적으로, 제어부(610)에 포함되는 적어도 하나의 프로세서(미도시)는 도 1을 참조하여 설명한 바와 같이, 일반 영역(NWD: Normal World)(620) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)(650)으로 구분될 수 있다. 여기서, 제어부(610), 구체적으로, 적어도 하나의 프로세서(미도시)는 동작 시스템(OS)를 탑재할 수 있다. 따라서, 제어부(610)에 탑재된 동작 시스템(OS)은 일반 영역(NWD: Normal World) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)으로 구분될 수 있다.
도 6을 참조하면, 일반 영역(620)에는 그래픽 클라이언트 어플리케이션(Graphic Client Application)(621) 및 버퍼(625)가 존재할 수 있다. 또한, 보안 영역(650)에는 그래픽 트러스티드 어플리케이션(Graphic Trusted Application)(655), 버퍼(미도시), 그래픽 장치(681) 및 프레임 버퍼(683)가 존재할 수 있다. 참고로, 도 6에서는 일반 영역(620) 내에 존재하는 메모리로 버퍼(625)를 예로 들어 도시 및 설명하나, 이외의 다양한 형태의 메모리가 포함될 수도 있을 것이다. 또한, 도 6에서는 보안 영역(650) 내에 존재하는 메모리로 버퍼(미도시) 및 프레임 버퍼(683)를 예로 들어 도시 및 설명하나, 이외의 다양한 형태의 메모리가 포함될 수 있을 것이다.
도 6 및 도 7을 참조하면, 본 개시의 실시예에서는, 일반 영역(620)에서 트러스트존 UI 생성에 필요한 이미지 자원을 생성한다(S711). 여기서, 일반 영역(620)에서 생성되는 이미지 자원은 트러스트존 UI에 대응되는 탬플릿(template) 이미지가 될 수 있다.
트러스트존 UI는 사용자와의 상호작용(interaction)을 통하여 데이터를 입력 또는 출력할 수 있는, UI 화면, UI 화면에 대응되는 이미지 데이터 및 UI 화면을 생성하기 위해 이용되는 이미지 자원 중 적어도 하나를 포함할 수 있다. 예를 들어, 트러스트존 UI는 도 2a 및 도 2b를 참조하여 설명한 보안 키보드가 될 수 있다. 또 다른 예로, 트러스트존 UI는 도 3을 참조하여 설명한 보안 키패드가 될 수 있다.
이하에서는, 본 개시의 실시예에서 생성 및/또는 편집되는 트러스트존 UI가 보안 키보드에 대응되는 UI인 경우를 예로 들어서 설명한다.
도 6 및 도 7을 참조하면, 제어부(610)에 포함되는 적어도 하나의 프로세서(미도시)는 일반 영역(620)에 존재하는 그래픽 클라이언트 어플리케이션(Graphic CA: Graphic Client Application)(621)을 이용하여 트러스트존 UI 생성에 이용되는 이미지 자원을 생성한다(S711).
여기서, 그래픽 클라이언트 어플리케이션(630)은 그래픽 트러스티드 어플리케이션(Graphic Trusted Application)(655)와 쌍(pair)을 이루며 존재하며, 그래픽 클라이언트 어플리케이션(Graphic CA)(621)은 그래픽 트러스티드 어플리케이션(Graphic TA: Graphic Trusted Application)(655)으로 이미지 자원을 전송할 수 있다.
구체적으로, 제어부(610)는 일반 영역(620)에 존재하는 그래픽 렌더링을 위한 도구, 예를 들어, 이미지 자원 생성기(image resource generator)(미도시)는 일반 영역(620)에 존재 및/또는 지원되는 그래픽 툴키트를 이용하여 트러스트존 UI 생성에 이용되는 이미지 자원을 생성할 수 있다.
제어부(610)의 일반 영역(620)에서 생성된 이미지 자원은 이하에서 도 8a 및 도 8b 를 참조하여 상세히 설명한다.
이미지 자원은 트러스트존 UI 생성에 이용되는 자원으로, 트러스트존 UI 에 대응되는 이미지 자체가 될 수 있다.
구체적으로, 트러스트존 UI 가 숫자의 보안 입력을 위한 보안 키패드인 경우, 이미지 자원은 도 8a 에 도시된 바와 같이 보안 키패드(810)를 나타내는 탬플릿 이미지를 포함할 수 있다.
또한, 이미지 자원은 트러스트존 UI의 탬플릿이라 할 수 있으므로, 도 3에서의 숫자 '5'에 대응되는 키(320)의 표시와 같이 선택되는 키와 선택되지 않는 키들의 구별 등이 나타나지 않도록 생성할 수 있다. 예를 들어, 도 3에 도시된 보안 키패드(310)와 도 8a 에 도시된 보안 키패드(810)를 비교하면, 보안 키패드(810)에 포함되는 키들은 선택 또는 강조 표시가 나타나지 않는다.
또한, 트러스트존 UI 가 문자, 숫자, 도형 및 기호 중 적어도 하나를 포함하는 정보의 보안 입력을 위한 보안 키보드인 경우, 이미지 자원은 도 8b 에 도시된 바와 같이 보안 키보드를 나타내는 탬플릿 이미지(850)를 포함할 수 있다.
또한, 제어부(610)에서 생성된 이미지 자원은 복수개의 오브젝트들을 포함할 수 있다. 여기서, 오브젝트는 트러스트존 UI를 통하여 입력하고자 하는 정보의 최소 의미 단위에 대응되는 키라 할 수 있다. 또한, 오브젝트는 트러스트존 UI에 포함되는 문자, 숫자, 도형 및 기호를 구분하는 최소 단위가 될 수 있다. 또한, 오브젝트는 터르스트존 UI 에 포함되는 동작 수행 키들 각각이 될 수 있다. 또한, 트러스트존 UI에 포함되는 의미있는 하나의 단어 또는 문장이 될 수 있다.
예를 들어, 도 8a 에 도시된 보안 키패드(810)에 있어서, 0 내지 9 숫자들 각각이 하나의 오브젝트가 될 수 있으며, 동작 수행 키인 'Cancel', 'Done', '복귀키' 등 각각이 하나의 오브젝트가 될 수 있다. 또한, 의미 있는 하나의 문장인 'Secure Numberpad' 가 하나의 오브젝트가 될 수 있다.
또한, 보안 키패드 및 보안 키보드에 대응되는 탬플릿 이미지들은 도 8a 및 도 8b 에 도시된 형태 이외에도, 다양한 형태를 가질 수 있다.
또한, 생성되는 이미지 자원은 일반 영역(620)에 존재하는 메모리, 예를 들어, 버퍼(621) 상에 저장될 수 있다(S712).
구체적으로, 버퍼(621)는 2차원 캔버스 버퍼(2D canvas buffer)가 될 수 있다. 제어부(610)는 일반 영역(620)에 존재하는 이미지 자원 생성기(image resource generator)(미도시)를 이용하여 2차원 캔버스 버퍼에 트러스트존 UI 에 대응되는 탬플릿(template)을 그리는 방식으로 이미지 자원을 생성할 수 있다.
예를 들어, 일반 영역(620)에서 생성된 이미지 자원은 보안 키보드(623)의 이미지, 보안 키보드(623)에 대응되는 이미지를 생성하기 위한 데이터, 보안 키보드(623)에 대응되는 이미지 데이터 등을 포함할 수 있다. 또한, 이미지 자원으로 생성된 보안 키보드(623)의 이미지는 트러스트존 UI 에 대응되는 템플릿 이미지가 될 수 있다.
전술한 바와 같이, 일반 영역(NWD)에는 다양한 형태의 그래픽 툴키트(toolkit)가 존재할 수 있다. 구체적으로, 그래픽 렌더링(graphic rendering)을 위한 그래픽 툴 키트의 예로는 ELF(Enlightenment Foundation Library), GTK(GIMP toolkit), QT toolkit 등이 포함될 수 있다.
일반 영역(NWD)은 그래픽 렌더링을 위한 기술, 도구 등이 모두 지원되는 환경이라 할 수 있다. 이에 비하여, 보안 영역(SWD)은 전술한 메모리 용량 제한으로 인하여, 그래픽 렌더링을 위한 기술, 도구 등의 지원에 제한이 있으며, 일반 영역(NWD)에서 지원되는 기술 또는 도구 등이 대부분 지원되지 않는다.
따라서, 본 개시의 실시예에서는 트러스트존 UI 생성에 이용되는 템플릿이라 할 수 있는 이미지 자원을 일반 영역(NWD)에서 생성할 수 있다. 그에 따라서, 일반 영역(NWD)에 존재하는 그래픽 렌더링을 위한 기술 또는 도구 등을 이용하여 빠르고 용이하게 이미지 자원을 생성할 수 있다.
이미지 자원이 생성되면, 제어부(610)는 이미지 자원을 일반 영역(620)에서 보안 영역(650)으로 전송한다(S713). 구체적으로, 그래픽 클라이언트 어플리케이션(630)은 버퍼(621)에 저장되어 있는 이미지 자원을 로딩(loading)하고, 로딩된 이미지 자원을 그래픽 트러스티드 어플리케이션(655)으로 전송할 수 있다. 구체적으로, 그래픽 클라이언트 어플리케이션(630)와 그래픽 트러스티드 어플리케이션(655)은 각각 공유 메모리(shared memory)(미도시)를 포함할 수 있으며, 내부적으로 포함되는 공유 메모리(미도시)를 이용하여 이미지 자원을 송수신할 수 있다.
또한, 제어부(610)는 보안 영역(650)으로 수신된 이미지 자원을 보안 영역(650) 내의 메모리인 버퍼(미도시)에 저장할 수 있다. 여기서, 버퍼(미도시)에서 저장되는 이미지 자원은 보안 키보드(623)에 대응되는 데이터가 될 수 있으며, 도 6에서 도시된 보안 키보드(670)로 표현되어 있다. 즉, 보안 키보드(670)에 대응되는 데이터는 그래픽 클라이언트 어플리케이션(621)에서 전송되는 보안 키보드(623)에 대응되는 이미지 자원이 된다. 따라서, 키보드(670)는 키보드(623)와 동일 대응될 수 있다.
구체적으로, 제어부(610)는 보안 영역(650)에서 이미지 자원을 수신하면, 일반 영역(620) 및 제어부(610)에 탑재된 동작 시스템(OS)의 외부에서 접근(access)할 수 없는 보안 영역(650)의 메모리 내에 이미지 자원을 저장할 수 있다. 여기서, 보안 영역(650)의 메모리, 예를 들어, 버퍼(미도시) 내에 저장되는 이미지 자원은 보안 키보드(670)에 대응되는 데이터가 될 수 있다.
제어부(610)는 보안 영역(650)에서, 복수개의 오브젝트들을 포함하는 이미지 자원을 오브젝트 단위로 분리 및 편집할 수 있다(S714). 구체적으로, 보안 영역(650) 내에 포함되는 그래픽 장치(681)는 그래픽 렌더링을 수행할 수 있다. 그래픽 장치(681)은 이미지 자원을 이용하여 오브젝트 단위로 분리 및 편집 동작을 수행하여, 트러스트존 UI 에 대응되는 이미지 또는 데이터를 생성할 수 있다. 그리고, 생성된 트러스트존 UI에 대응되는 이미지 또는 데이터를 프레임 버퍼(683)에 저장할 수 있다.
구체적으로, 제어부(610)는 보안 영역(650)에서, 이미지 자원인 보안 키보드(670)을 편집하여 보안 키보드(691)에 대응되는 트러스트존 UI를 생성할 수 있다. 즉, 편집 전의 보안 키보드는 보안 키보드(670)가 되며, 편집 후의 보안 키보드는 보안 키보드(691)가 될 수 있다. 예를 들어, 보안 키보드(670) 내의 소정 영역(671)에 포함되는 오브젝트들을 재배열하여, 보안 키보드(691)을 생성할 수 있다. 따라서, 보안 키보드(691)의 소정 영역(692)에 배치되는 오브젝트들의 배열은 보안 키보드(670) 내의 소정 영역(671)에 포함되는 오브젝트들의 배열과 달라질 수 있다.
오브젝트 단위의 분리 및 편집은 이하에서 도 9a 및 도 9b를 참조하여 상세히 설명한다.
도 2a 및 도 2b를 참조하여 설명한 바와 같이, 보안 입력을 위하여 보안 키보드 등은 UI 를 출력 시점마다 보안 키보드의 형태를 변경하여 출력할 필요가 있다. 이러한 경우, 제어부(610)은 변경된 트러스트존 UI에 대응되는 이미지를 전체적으로 새롭게 생성하는 것이 아니라, 이미지 자원에 포함되는 탬플릿 이미지에서 변경되는 부분에 대응되는 적어도 하나의 오브젝트만을 수정함으로써, 변경된 트러스트존 UI에 대응되는 이미지가 생성될 수 있도록 한다.
구체적으로, 제어부(610)는 보안 영역(650)에 수신 및 저장된 이미지 자원에 포함되는 복수개의 오브젝트들 중 변경이 필요한 적어도 하나의 오브젝트 만을 오브젝트 단위로 분리할 수 있다.
도 9a에 도시된 보안 키보드(910)는 도 8b 에서 도시한 보안 키보드를 나타내는 탬플릿 이미지(850)에 대응된다. 즉, 보안 키보드(910)는 이미지 자원에 포함되는 템플릿에 동일 대응될 수 있다. 또한, 보안 키보드(910)는 도 6에서 설명한 보안 키보드(671)와 동일 대응될 수 있다.
도 9a에 도시된 보안 키보드(910)에 있어서, 제어부(610)는 소정 영역(911)에 포함되는 키들의 배치를 변경하여 트러스트존 UI를 생성하고 하는 경우, 변경되는 부분에 대응되는 적어도 하나의 오브젝트만을 분리하고, 분리된 오브젝트들을 수정함으로써, 원하는 형태를 갖는 트러스트존 UI를 생성할 수 있다. 여기서, 소정 영역(911)은 도 6에서 설명한 소정 영역(671)과 동일 대응될 수 있다.
이하에서는 도 9a 에 도시된 보안 키보드(910)의 영역(911)을 도 9b 에 도시된 보안 키보드(950)의 영역(951)에서와 같이 변경하고자 하는 경우, 제어부(610)에서 수행되는 동작들을 설명한다.
참고로, 도 9 a 에 도시된 영역(911)은 도 9b 에 도시된 영역(951)에 동일 대응되는 영역이다. 또한, 도 9b에 도시된 보안 키보드(950)는 도 6에서 설명한 보안 키보드(690)에 동일 대응될 수 있다. 그리고, 소정 영역(951)은 도 6에서 설명한 소정 영역(692)에 동일 대응될 수 있다.
도 9 a 및 도 9b를 참조하면, 제어부(610)는 변경대상이 되는 오브젝트들 오브젝트 단위로 분리할 수 있다. 구체적으로, 제어부(610)는 이미지 자원인 보안 키보드(910)에 있어서, 변경 대상이 되는 오브젝트들인 'r'(921), 't'(922), 'y'(923), 'u'(924), null(925), null(928), 'g'(929), 및 'h'(930)을 각각 분리할 수 있다. 그리고, 분리된 오브젝트 각각을 변경하고자 하는 사항에 맞춰서 변경할 수 있다.
구체적으로, 보안 키보드(910)의 'r'(921), 't'(922), 'y'(923), 'u'(924), null(925), null(928), 'g'(929), 및 'h'(930)를 각각 null(961), 'r'(962), 't'(963), 'y'(964), 'u'(965), 'g'(968), 'h'(969) 및 null(970)으로 변경할 수 있다. 즉, 보안 키보드(910)에 포함되는 적어도 하나의 오브젝트인, 'r'(921), 't'(922), 'y'(923), 'u'(924), null(925), null(928), 'g'(929), 및 'h'(930)의 배치 위치가 변경되도록, 오브젝트 단위의 편집을 수행할 수 있다. 그에 따라서, 트러스트존 UI 에 대응되는 보안 키보드(950)를 생성할 수 있다.
전술한 오브젝트 단위의 분리 편집으로 인하여 생성된 보안 키보드(950)가 트러스트존 UI에 대응되는 이미지가 될 수 있다.
도 9a 및 도 9b에서는 오브젝트 단위로 분리 및 편집하는 예로, 오브젝트들의 배치 위치가 변경되는 경우를 예로 들어 설명하였다. 그러나, 오브젝트 단위의 편집은, 이미지 자원에 포함되었던 오브젝트들 중 적어도 하나의 오브젝트에 있어서, 색상, 형태, 배치, 모양, 및 적용 언어 중 적어도 하나에 변경이 생기는 모든 경우를 의미할 수 있다.
구체적으로, 오브젝트 단위의 편집으로는 i) 분리된 적어도 하나의 오브젝트를 삭제 또는 변경하는 경우, ii) 적어도 하나의 오브젝트를 분리된 적어도 하나의 오브젝트에 추가하는 경우, iii) 적어도 하나의 오브젝트를 신설하여 기존에 존재하는 적어도 하나의 오브젝트에 추가하는 경우 등을 예로 들 수 있다.
계속하여, 제어부(610)는 전술한 오브젝트 별 분리 및 편집을 통하여 생성된 트러스트존 UI(670)를 보안 영역(650) 내에 포함되는 프레임 버퍼(683)에 저장할 수 있다(S716). 그리고, 프레임 버퍼(683)에서 로딩된 트러스트존 UI 를 디스플레이(690)를 통하여 디스플레이 할 수 있다. 여기서, 디스플레이(690)는 도 4에 도시된 디스플레이(430)에 동일 대응될 수 있다.
또한, 동작 시스템(OS)의 관점에서, 제어부(610)는 사용자 공간(user null)(611)와 커널 공간(kernel null)(613)으로 구분될 수 있다. 또한, 사용자 공간(611)에서 수행되는 동작들을 사용자 모드(user mode)라고 칭할 수 있으며, 커널 공간(613)에서 수행되는 동작들을 커널 모드(Kernel mode)라고 칭할 수 있다.
구체적으로, 사용자 모드(user mode)에서는, 해당 영역에서 주어진 메모리 영역 이외에 다른 프로세서나 메모리 영역에 접근할 수 없는 모드를 뜻한다. 예를 들어, 보안 영역(650)의 사용자 공간(612) 내에서 그래픽 렌더링 동작을 수행될 때, 그래픽 트러스티드 어플리케이션(655)은 보안 영역(650)의 사용자 공간(612) 내에 존재하는 메모리(미도시)에 접근하여 그래픽 렌더링 동작을 수행할 수 있다. 그러나, 사용자 공간(612) 이외의 공간, 예를 들어, 일반 영역(620)에 포함되는 버퍼(621)에 접근할 수 없게 된다.
커널 모드(kernel mode)에서는, 해당 영역 이외에 다른 프로세서나 메모리 영역에 접근할 수 있는 모드를 뜻한다. 예를 들어, 그래픽 장치(graphic device)(681)는 사용자 공간(612) 내에 존재하는 메모리(미도시)에 접근하여 이미지 자원을 가져와 편집할 수 있다.
전술한 바와 같이, 본 개시의 실시예에서는 트러스트존 UI 의 탬플릿에 대응되는 이미지 자원을 획득한 보안 영역(650)에서 이미지 자원에 포함되는 적어도 하나의 오브젝트들을 분리하여 편집함으로써, 트러스트존 UI 가 변경될 때마다 그에 맞춰 변경될 트러스트존 UI에 대응되는 이미지를 새롭게 생성할 필요가 없이, 빠르게 의도하는 트러스트존 UI 를 생성할 수 있다.
종래에는 트러스트존 UI를 생성하기 위해서, 보안 영역(650)에서 복수개의 오브젝트 이미지들 각각을 모두 저장하고 있다가, 기 저장되어 있는 오브젝트 이미지들을 렌더링하여 의도하는 트러스트존 UI를 생성하였었다. 이 경우, 보안 영역(650)에 복수개의 오브젝트 이미지들 각각을 모두 저장하고 있어야 해서, 보안 영역(650) 내부에 포함되는 메모리, 예를 들어, 플래시 저장소(flash storage)의 사용량이 증가하는 문제가 있었다. 또한, 플래시 저장소(flash storage)의 사용량이 증가되어 다른 업무를 처리하여야 하는데 필요한 메모리 용량이 부족해지는 문제가 있었다. 또한, 다국어를 지원하는 트러스트존 UI 를 생성하기 위해서는, 지원되는 다국어의 언어 종류 개수에 맞춰서, 오브젝트 이미지들의 세트를 모두 저장하고 있어야만 했다. 그에 따라서, 전술한 플래시 저장소(flash storage)의 사용량이 증가의 문제가 더욱 심각하게 발생하였다.
또한, 트러스트존 UI 가 변경될 때마다, 매번 오브젝트 이미지들을 이용하여 완전한 이미지 생성을 위한 렌더링을 수행하여야 하므로, 동작 실행 시간이 증가하게 되는 문제가 있었다.
전술한 바와 같이, 본 개시의 실시예에서는, 일반 영역(620)에서 보안 영역(650)으로 트러스트존 UI 에 대응되는 탬플릿을 이미지 자원으로서 전송하고, 보안 영역(650)에서 수신된 이미지 자원을 이용하여 오브젝트 별로 분리 및 편집을 수행하여 트러스트존 UI를 생성한다. 그에 따라서, 트러스트존 UI 가 변경될 때마다, 완전히 새로운 이미지 생성을 위한 렌더링을 수행할 필요 없이 변경 대상이 되는 오브젝트 만을 편집함으로써, 트러스트존 UI의 유지 및 보수에 소요되는 시간 및 메모리 용량을 감소시킬 수 있다. 그에 따라서, 빠르고 편리하게 의도하는 트러스트존 UI 를 생성할 수 있다.
도 10은 본 개시의 실시예에 따른 트러스트존 그래픽 렌더링 방법을 나타내는 흐름도이다. 도 10에 도시된 트러스트존 그래픽 렌더링 방법에서 수행되는 동작들은 도 1 내지 도 9b를 참조하여 설명한 본 개시의 실시예에 따른 디스플레이 장치(400, 500)에서 수행되는 동작들에 동일 대응될 수 있다. 따라서, 도 10에 도시된 트러스트존 그래픽 렌더링 방법(1000)을 설명하는데 있어서, 도 1 내지 도 9a 에서와 중복되는 설명은 생략한다.
트러스트존 그래픽 렌더링 방법(1000)을 설명하는데 있어서, 도 4에 도시된 디스플레이 장치(400) 및 도 6에 도시된 제어부(610)를 참조하도록 하겠다.
도 10을 참조하면, 트러스트존 그래픽 렌더링 방법(1000)은 일반 영역(NWD: Normal World) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)으로 구별되는 동작 시스템(OS)에서의 트러스트존 그래픽 렌더링 방법이다.
트러스트존 그래픽 렌더링 방법(1000)은 일반 영역(620) 내에서, 트러스트존 UI(user interface)의 생성에 이용되는 이미지 자원(image resource)을 생성한다(S1010 단계). S1010 단계의 동작은 제어부(610)에 포함되는 적어도 하나의 프로세서에 의해서 수행될 수 있다. 또한, S1010 단계의 동작은 도 7의 S711 단계 동작에 대응될 수 있다.
계속하여, 일반 영역(620)에서 보안 영역(650)으로, S1010 단계에서 생성된 이미지 자원을 전송한다(S1020). S1020 단계의 동작은 제어부(610)에 포함되는 적어도 하나의 프로세서에 의해서 수행될 수 있다. 또한, S1020 단계의 동작은 도 7의 S713 단계 동작에 대응될 수 있다.
계속하여, 보안 영역(650)에서, 복수개의 오브젝트들을 포함하는 이미지 자원을 오브젝트 단위로 분리 및 편집하여 트러스트존 UI 를 생성한다(S1030). S1030 단계의 동작은 제어부(610)에 포함되는 적어도 하나의 프로세서에 의해서 수행될 수 있다. 또한, S1030 단계의 동작은 도 7의 S714 및 S715 단계 동작에 대응될 수 있다.
상술한 실시예는, 일부 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 인스트럭션을 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 인스트럭션, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 인스트럭션, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다. 또한, 일부 실시예는 컴퓨터에 의해 실행되는 컴퓨터 프로그램과 같은 컴퓨터에 의해 실행 가능한 인스트럭션을 포함하는 컴퓨터 프로그램 또는 컴퓨터 프로그램 제품 (computer program product)으로도 구현될 수 있다.
본 개시에서 설명된 특정 실행들은 일 실시예 일 뿐이며, 어떠한 방법으로도 본 개시의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 및 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다.
400: 디스플레이 장치
410: 제어부
420: 메모리
430: 디스플레이

Claims (20)

  1. 일반 영역(NWD: Normal World) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)으로 구별되는 동작 시스템(OS)에서의 트러스트존 그래픽 렌더링 방법에 있어서,
    상기 일반 영역 내에서, 트러스트존 UI(user interface)의 생성에 이용되는 이미지 자원(image resource)을 생성하는 단계, 여기서, 상기 이미지 자원은 복수개의 오브젝트들을 포함함;
    상기 일반 영역에서 상기 보안 영역으로, 상기 이미지 자원을 전송하는 단계; 및
    상기 보안 영역에서, 상기 이미지 자원을 오브젝트 단위로 분리하고, 상기 복수개의 오브젝트들 중 변경되는 적어도 하나의 오브젝트를 편집하고, 상기 복수개의 오브젝트들 중에서 변경되지 않는 하나 이상의 오브젝트는 렌더링하지 않음으로써 상기 트러스트존 UI 를 생성하는 단계를 포함하는 것을 특징으로 하는 트러스트존 그래픽 렌더링 방법.
  2. 제1항에 있어서, 상기 이미지 자원을 생성하는 단계는
    상기 일반 영역 내에서, 상기 일반 영역에 존재하는 적어도 하나의 그래픽 툴키트(graphic toolkit)를 이용하여, 상기 이미지 자원을 생성하는 단계를 포함하는 것을 특징으로 하는 트러스트존 그래픽 렌더링 방법.
  3. 제1항에 있어서, 상기 트러스트존 UI는
    사용자와의 상호작용(interaction)을 통하여 데이터를 입력 또는 출력할 수 있는, UI 화면, 상기 UI 화면에 대응되는 이미지 데이터 및 상기 UI 화면을 생성하기 위해 이용되는 이미지 자원 중 적어도 하나를 포함하는 것을 특징으로 하는 트러스트존 그래픽 렌더링 방법.
  4. 제3항에 있어서, 상기 트러스트존 UI 는
    보안 키패드 또는 보안 키보드 중 적어도 하나를 포함하는 것을 특징으로 하는 트러스트존 그래픽 렌더링 방법.
  5. 제1항에 있어서, 상기 이미지 자원은
    소정 화면으로 출력되는 이미지의 적어도 일 부분에 대응되는 이미지 데이터를 포함하는 것을 특징으로 하는 트러스트존 그래픽 렌더링 방법.
  6. 제1항에 있어서,
    상기 보안 영역에서 상기 이미지 자원을 수신하면, 상기 일반 영역 및 상기 동작 시스템의 외부에서 접근(access)할 수 없는 상기 보안 영역의 메모리 내에 상기 이미지 자원을 저장하는 단계를 더 포함하는 것을 특징으로 하는 트러스트존 그래픽 렌더링 방법.
  7. 제6항에 있어서, 상기 트러스트존 UI를 생성하는 단계는
    상기 보안 영역의 메모리 내에 저장된 상기 이미지 자원을 로딩하는 단계; 및
    상기 로딩된 이미지 자원에 포함되는 상기 복수개의 오브젝트들 중 편집이 필요한 적어도 하나의 오브젝트를 분리하고, 분리된 상기 적어도 하나의 오브젝트를 편집함으로써 상기 트러스트존 UI 를 생성하는 단계를 포함하는 것을 특징으로 하는 트러스트존 그래픽 렌더링 방법.
  8. 제7항에 있어서, 상기 트러스트존 UI를 생성하는 단계는
    분리된 상기 적어도 하나의 오브젝트를 삭제 또는 변경하거나, 또는 적어도 하나의 오브젝트를 상기 분리된 적어도 하나의 오브젝트에 추가함으로써, 상기 트러스트존 UI 를 생성하는 단계를 포함하는 것을 특징으로 하는 트러스트존 그래픽 렌더링 방법.
  9. 제1항 있어서, 상기 이미지 자원을 생성하는 단계는
    상기 일반 영역 내에서 실행되는 폰트 엔진(font engine)을 이용하여, 소정 언어에 대응되는 상기 이미지 자원을 생성하는 단계를 포함하는 것을 특징으로 하는 트러스트존 그래픽 렌더링 방법.
  10. 제1항에 있어서,
    상기 트러스트존 UI 를 상기 보안 영역 내에 포함되는 프레임 버퍼에 저장하는 단계; 및
    상기 프레임 버퍼에서 로딩된 상기 트러스트존 UI 를 디스플레이 하는 단계를 더 포함하는 것을 특징으로 하는 트러스트존 그래픽 렌더링 방법.
  11. 제1항에 있어서, 상기 트러스트존 UI는
    상기 보안 영역 내에서만 접근 및 저장되는 것을 특징으로 하는 트러스트존 그래픽 렌더링 방법.
  12. 디스플레이;
    하나 이상의 인스트럭션을 포함하는 메모리; 및
    일반 영역(NWD: Normal World) 및 트러스트존(Trustzone)에 대응되는 보안 영역(SWD: Secure World)으로 구별되는 동작 시스템(OS)을 실행하기 위하여 상기 하나 이상의 인스트럭션을 수행하는 적어도 하나의 프로세서를 포함하는 제어부를 포함하며,
    상기 적어도 하나의 프로세서는
    상기 일반 영역 내에서 트러스트존 UI의 생성에 이용되는 이미지 자원(image resource)을 생성하고, 여기서, 상기 이미지 자원은 복수개의 오브젝트들을 포함함, 상기 일반 영역에서 상기 보안 영역으로 상기 이미지 자원을 전송하며, 상기 보안 영역에서 상기 이미지 자원을 오브젝트 단위로 분리하고, 상기 복수개의 오브젝트들 중 변경되는 적어도 하나의 오브젝트를 편집하고, 상기 복수개의 오브젝트들 중에서 변경되지 않는 하나 이상의 오브젝트는 렌더링하지 않음으로써 상기 트러스트존 UI 를 생성하도록 동작하는 것을 특징으로 하는 디스플레이 장치.
  13. 제12항에 있어서, 상기 적어도 하나의 프로세서는
    상기 일반 영역 내에서, 상기 일반 영역에 존재하는 적어도 하나의 그래픽 툴키트(graphic toolkit)를 이용하여, 상기 이미지 자원을 생성하는 것을 특징으로 하는 디스플레이 장치.
  14. 제12항에 있어서, 상기 트러스트존 UI 는
    사용자와의 상호작용(interaction)을 통하여 데이터를 입력 또는 출력할 수 있는, UI 화면, 상기 UI 화면에 대응되는 이미지 데이터 및 상기 UI 화면을 생성하기 위해 이용되는 이미지 자원 중 적어도 하나를 포함하는 것을 특징으로 하는 디스플레이 장치.
  15. 제12항에 있어서, 상기 적어도 하나의 프로세서는
    상기 보안 영역에서 상기 이미지 자원을 수신하면, 상기 일반 영역 및 상기 동작 시스템의 외부에서 접근(access)할 수 없는 상기 보안 영역의 메모리 내에 상기 이미지 자원을 저장하는 것을 특징으로 하는 디스플레이 장치.
  16. 제12항에 있어서, 상기 적어도 하나의 프로세서는
    상기 보안 영역의 메모리 내에 저장된 상기 이미지 자원을 로딩하고, 상기 로딩된 이미지 자원에 포함되는 상기 복수개의 오브젝트들 중 편집이 필요한 적어도 하나의 오브젝트를 분리하고, 분리된 상기 적어도 하나의 오브젝트를 편집하여 상기 트러스트존 UI 를 생성하는 것을 특징으로 하는 디스플레이 장치.
  17. 제16항에 있어서, 상기 적어도 하나의 프로세서는
    분리된 상기 적어도 하나의 오브젝트를 삭제 또는 변경하거나, 또는 적어도 하나의 오브젝트를 상기 분리된 적어도 하나의 오브젝트에 추가함으로써, 상기 트러스트존 UI 를 생성하는 것을 특징으로 하는 디스플레이 장치.
  18. 제12항에 있어서, 상기 적어도 하나의 프로세서는
    상기 트러스트존 UI 를 상기 보안 영역 내에 포함되는 프레임 버퍼에 저장하고, 상기 프레임 버퍼에서 로딩된 상기 트러스트존 UI 가 상기 디스플레이 상으로 출력되도록 제어하는 것을 특징으로 하는 디스플레이 장치.
  19. 제12항에 있어서, 상기 적어도 하나의 프로세서는
    상기 일반 영역 내에서 실행되는 폰트 엔진(font engine)을 이용하여, 소정 언어에 대응되는 상기 이미지 자원을 생성하는 것을 특징으로 하는 디스플레이 장치.
  20. 제12항에 있어서, 상기 트러스트존 UI 는
    보안 키패드 또는 보안 키보드 중 적어도 하나를 포함하는 것을 특징으로 하는 디스플레이 장치.
KR1020180023897A 2018-02-27 2018-02-27 트러스트존 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치 KR102514062B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020180023897A KR102514062B1 (ko) 2018-02-27 2018-02-27 트러스트존 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치
US16/285,511 US10867069B2 (en) 2018-02-27 2019-02-26 Trustzone graphic rendering method and display device using the same
CN201980015312.0A CN111771183A (zh) 2018-02-27 2019-02-26 信任区图形渲染方法和使用该方法的显示设备
PCT/KR2019/002299 WO2019168315A1 (en) 2018-02-27 2019-02-26 Trustzone graphic rendering method and display device using the same
EP19760872.2A EP3732559B1 (en) 2018-02-27 2019-02-26 Trustzone graphic rendering method and display device using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180023897A KR102514062B1 (ko) 2018-02-27 2018-02-27 트러스트존 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치

Publications (2)

Publication Number Publication Date
KR20190102869A KR20190102869A (ko) 2019-09-04
KR102514062B1 true KR102514062B1 (ko) 2023-03-24

Family

ID=67685108

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180023897A KR102514062B1 (ko) 2018-02-27 2018-02-27 트러스트존 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치

Country Status (5)

Country Link
US (1) US10867069B2 (ko)
EP (1) EP3732559B1 (ko)
KR (1) KR102514062B1 (ko)
CN (1) CN111771183A (ko)
WO (1) WO2019168315A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107835185B (zh) * 2017-11-21 2020-10-02 广州大学 一种基于ARM TrustZone的移动终端安全服务方法及装置
CN108614968B (zh) * 2018-05-04 2020-11-24 飞天诚信科技股份有限公司 一种在通用平台下安全交互的方法及智能终端
CN110618847A (zh) * 2018-06-20 2019-12-27 华为技术有限公司 一种用户界面的显示方法和终端设备
CN112711452B (zh) 2019-10-24 2023-11-03 华为技术有限公司 一种图像显示方法与电子设备
US20210166227A1 (en) * 2019-11-28 2021-06-03 Qualcomm Incorporated Secure User Interface With Improved User Experience
CN113791898B (zh) * 2021-08-24 2022-07-26 电子科技大学 一种基于TrustZone的可信微内核操作系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120005592A1 (en) * 2010-06-30 2012-01-05 Joshi Shrinivas B Method and Apparatus for Providing Metadata-Based User Interfaces
WO2017115174A1 (en) * 2015-12-28 2017-07-06 Mobeewave, Inc. System for and method of authenticating a user on a device

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011018431A1 (de) 2011-04-21 2012-10-25 Giesecke & Devrient Gmbh Verfahren zur Anzeige von Informationen auf einer Anzeigeeinrichtung eines Endgeräts
KR101925806B1 (ko) * 2011-12-02 2018-12-07 삼성전자 주식회사 보안 방법 및 장치
WO2013081406A1 (en) * 2011-12-02 2013-06-06 Samsung Electronics Co., Ltd. Method and apparatus for securing touch input
WO2014021919A2 (en) 2012-08-03 2014-02-06 North Carolina State University Methods, systems, and computer readable medium for active monitoring, memory protection and integrity verification of target devices
KR101625065B1 (ko) * 2014-07-11 2016-06-08 (주)케이스마텍 휴대단말기에서의 사용자 인증방법
US9768959B2 (en) * 2014-10-27 2017-09-19 Acxiom Corporation Computer security system and method to protect against keystroke logging
KR102275712B1 (ko) * 2014-10-31 2021-07-09 삼성전자주식회사 렌더링 방법, 렌더링 장치 및 전자 장치
CN106200891B (zh) 2015-05-08 2019-09-06 阿里巴巴集团控股有限公司 显示用户界面的方法、装置及系统
KR102411608B1 (ko) * 2015-07-27 2022-06-21 삼성전자주식회사 보안 네트워크 시스템 및 그 데이터 처리 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120005592A1 (en) * 2010-06-30 2012-01-05 Joshi Shrinivas B Method and Apparatus for Providing Metadata-Based User Interfaces
WO2017115174A1 (en) * 2015-12-28 2017-07-06 Mobeewave, Inc. System for and method of authenticating a user on a device

Also Published As

Publication number Publication date
WO2019168315A1 (en) 2019-09-06
CN111771183A (zh) 2020-10-13
EP3732559B1 (en) 2024-03-27
US20190266345A1 (en) 2019-08-29
EP3732559A4 (en) 2021-02-24
EP3732559A1 (en) 2020-11-04
KR20190102869A (ko) 2019-09-04
US10867069B2 (en) 2020-12-15

Similar Documents

Publication Publication Date Title
KR102514062B1 (ko) 트러스트존 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치
US20200348810A1 (en) Display Management for Native User Experiences
EP2735133B1 (en) Method and apparatus for providing data entry content to a remote environment
EP2735132B1 (en) Method and apparatus for triggering a remote data entry interface
US9432195B2 (en) Method of operating data security and electronic device supporting the same
US11762983B2 (en) Payment application isolation method and apparatus, and terminal
CN112149144A (zh) 聚合密码引擎
US9411966B1 (en) Confidential data access and storage
KR101757407B1 (ko) 바이너리 병합 장치, 방법 및 컴퓨터 프로그램
CN108780400B (zh) 数据处理方法及电子设备
US10637827B2 (en) Security network system and data processing method therefor
EP3327605B1 (en) Electronic device and method of controlling same
CN110633045B (zh) 一种数据处理方法及电子设备
CN116982045A (zh) 用于控制剪贴板的方法和用于执行该方法的电子装置
US20170351865A1 (en) Computing device to generate a security indicator
US20180218132A1 (en) Application portability via application(s) installed on a portable storage device
Singh A Review of the Android Operating System's Evolution
KR20240013671A (ko) 파티션의 일부분을 위한 마운트 동작을 수행하기 위한전자 장치, 방법, 및 비일시적 컴퓨터 판독가능 저장 매체
CN117131519A (zh) 一种信息的保护方法及设备
CN114911542A (zh) 基于图形用户界面系统的终端控制方法和引擎架构
CN114741713A (zh) 数据库加密方法、装置、电子设备和存储介质
CN110287734A (zh) 安全通信节点的设置方法、装置、终端及存储介质
KR20210151077A (ko) 메모리상에서 실행 가능 이미지를 적재하는 방법 및 시스템
KR20200058147A (ko) 전자 장치 및 그의 제어 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E701 Decision to grant or registration of patent right
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant