KR20200052950A - 사용자 인터페이스 디스플레이 방법 및 단말기 디바이스 - Google Patents

사용자 인터페이스 디스플레이 방법 및 단말기 디바이스 Download PDF

Info

Publication number
KR20200052950A
KR20200052950A KR1020207010786A KR20207010786A KR20200052950A KR 20200052950 A KR20200052950 A KR 20200052950A KR 1020207010786 A KR1020207010786 A KR 1020207010786A KR 20207010786 A KR20207010786 A KR 20207010786A KR 20200052950 A KR20200052950 A KR 20200052950A
Authority
KR
South Korea
Prior art keywords
operating system
trusted
security
rich
control
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
KR1020207010786A
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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20200052950A publication Critical patent/KR20200052950A/ko
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • G06Q20/3223Realising banking transactions through M-devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • G06Q20/3227Aspects of commerce using mobile devices [M-devices] using secure elements embedded in M-devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/031Protect user input by software means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Finance (AREA)
  • Stored Programmes (AREA)
  • Development Economics (AREA)
  • Economics (AREA)

Abstract

TUI 디스플레이와 Android 디스플레이 간의 호환성을 위한 솔루션이 제공된다. 리치 운영 체제에 의해 제공되는 네이티브 컨트롤에 기반하여, 커스텀화된 보안 컨트롤이 더 추가되어, TUI 개발이 단순화된다. 또한, 리치 운영 체제는 사용자 인터페이스 내의 네이티브 컨트롤에 대한 드로잉 프로세싱을 수행하고, 프로세싱 후 획득된 비보안 표면을 TEE 측의 신뢰되는 운영 체제의 프레임 버퍼에 동기화시키고, 사용자 인터페이스 내의 보안 컨트롤에 대한 식별된 정보를 TEE 측의 신뢰되는 운영 체제에 전송한다. 신뢰되는 운영 체제는 보안 컨트롤에 대한 정보 및 보안 컨트롤에 대응하는 커스텀화된 메쏘드에 기반하여 보안 컨트롤에 대한 드로잉 프로세싱을 처리하고, 프로세싱 후에 획득된 보안 표면과 비보안 표면을 합성하고, 그 후 합성된 표면을 디스플레이를 사용함으로써 디스플레이한다.

Description

사용자 인터페이스 디스플레이 방법 및 단말기 디바이스
본 출원은 단말기 분야에 관한 것으로, 보다 구체적으로는 신뢰되는 사용자 인터페이스 디스플레이 방법 및 단말기 디바이스에 관한 것이다.
지능형 단말기의 보급과 대중화로 인해, 모바일 결제(mobile payment)는 사람들의 일상 소비의 주요 결제 방식 중 하나가 되었다. 모바일 결제는 사용자가 모바일 단말기(통상적으로 모바일폰)를 사용하여 소비된 상품 또는 서비스에 대해 지불하는 서비스 방식이다. 모바일 결제는 사용자에게 편의성을 제공하지만, 모바일 결제의 보안은 항상 관심사였다. 모바일 결제 애플리케이션은 일반적으로 개방형 리치 실행 환경(rich execution environment)(REE)에서 실행된다. REE는 또한 일반 운영 환경이라고 지칭되기도 하며 주로 범용 프로세서 상에서 실행되는 리치 운영 체제(rich operating system)(Rich OS), 예를 들어, Android® 또는 iOS®과 같은 단말기 운영 체제를 포함한다. 이러한 개방형 환경은 정보 유출 및 멀웨어 전송을 위한 채널을 제공하며, 따라서, 보안을 위한 모바일 결제의 요건을 충족시키기가 어렵다. 예를 들어, REE에서, 애플리케이션에 의해 디스플레이되는 결제 금액 또는 입력된 패스워드가 악성 애플리케이션에 의해 탈취되어, 다양한 결제 보안 문제가 발생할 수 있다.
이 문제를 해결하기 위해, 개방형 모바일 단말기 기구(Open Mobile Terminal Organization)(OMTP)는 신뢰되는 실행 환경(trusted execution environment)(TEE)의 개념을 제안했다. 2010년 7월, 글로벌 플랫폼®(GlobalPlatform®)(GP)은 TEE 표준을 제안했다. TEE는 REE 외부에서 실행되며 REE와는 격리된 독립적인 운영 환경이다. TEE에서의 모든 애플리케이션은 전용으로 커스텀화된 신뢰되는 애플리케이션(trusted applications)(TA)이다. TA는 TEE의 내부 인터페이스를 사용하여 TEE의 하드웨어 및 소프트웨어 리소스에 액세스할 수 있다. 클라이언트 애플리케이션(client application)(CA)이라고 지칭되기도 하는 REE 내의 애플리케이션은 TEE의 하드웨어 및 소프트웨어 리소스에 직접 액세스할 수는 없다. REE 내의 CA는, TEE 신원 인증이 성공한 후에만, TEE가 제공하는 애플리케이션 프로그래밍 인터페이스(application programming interface)(API)를 사용함으로써, 보안 스토리지 또는 보안 디스플레이/입력과 같은 TEE의 리소스 또는 서비스를 호출할 수 있다. 이러한 방식으로, 모바일 결제 시나리오에서, 민감성 정보 입력 및 디스플레이가 필요한 경우, REE 측의 CA는 TEE 내의 보안 디스플레이/입력 TA를 호출하여, GP 사양(specification)을 충족시키는 신뢰되는 사용자 인터페이스(trusted user interface)(TUI)를 디스플레이할 수 있으며, 그에 따라, 사용자는 사용자의 민감성 정보를 입력하고, 예를 들어, TUI를 사용하여, 개인 식별 번호(personal identification number)(PIN)를 입력하고 거래 정보를 확인하게 된다. TUI가 디스플레이된 후에, TEE는 전체 스크린 디스플레이 구역을 차지하게 되고, 그 디스플레이 구역으로의 REE의 액세스는 완전히 차단되며, 이에 의해 REE 내의 CA가 사용자의 민감성 정보를 악의적으로 가로채서 강탈하는 것을 방지하게 된다.
도 1은 사용자가 TUI를 사용하여 이체 동작(transfer operation)을 수행하는 예를 나타낸다. 도 1에 도시된 바와 같이, 사용자는 REE 측의 모바일폰 뱅킹 애플리케이션에 로그인하고 전송 인터페이스에 이체 금액과 같은 정보를 입력한다. 그런 다음, 사용자가 PIN 코드를 입력하고 검증하면, 그 애플리케이션은 특정 인터페이스를 사용함으로써 TEE 측의 보안 디스플레이/입력 TA를 호출하여 TUI를 디스플레이한다. 사용자가 TUI를 사용하여 PIN 코드를 입력하고 거래 정보를 확인한 후, 스크린 디스플레이 구역은 REE로 리턴된다. REE 측의 모바일폰 뱅킹 애플리케이션은 그 후 이체 완료 페이지를 디스플레이하고 전체 거래 프로세스를 종료한다. 도 1로부터 알 수 있는 것은, REE 측의 CA의 UI 디스플레이 및 TEE 측의 TUI 디스플레이는 2 개의 독립적인 프로세스라는 것이다. TUI와 CA 인터페이스는 밀접하게 관련되어 있지 않으며 스타일 측면에서 일치하지도 않는다. 또한, TUI는 전체 스크린으로 디스플레이되며 전체 스크린 디스플레이 구역을 덮는다. 따라서, TUI 컨트롤은 디스플레이할 CA 인터페이스의 컨트롤과는 호환될 수 없다. 예를 들어, TUI가 디스플레이될 때, 사용자는 상태 바(status bar), 내비게이션 바(navigation bar) 등을 볼 수 없고, 이는 사용자 경험에 영향을 줄 수 있다.
본 출원은 사용자 인터페이스 디스플레이 방법과 단말기 디바이스를 제공하여, 신뢰되는 사용자 인터페이스(trusted user interface)(TUI) 컨트롤과 클라이언트 애플리케이션(client application)(CA) 인터페이스 컨트롤의 호환 가능한 디스플레이를 구현하고, 사용자 경험을 향상시킨다.
제 1 양태에 따르면, 본 출원의 일 실시예는 신뢰되는 실행 환경(trusted execution environment)(TEE) 및 리치 실행 환경(rich execution environment)(REE)을 포함하는 단말기 디바이스, 또는 다른 유사한 디바이스에 적용될 수 있는 사용자 인터페이스 디스플레이 방법을 제공한다. 리치 운영 체제(rich operating system) 및 클라이언트 애플리케이션은 REE에서 실행된다. 신뢰되는 운영 체제는 TEE에서 실행된다. 본 출원의 사용자 인터페이스는 공통 컨트롤(common control)(비보안 컨트롤) 및 보안 컨트롤(secure control)을 포함한다. 상기 방법은: 리치 운영 체제에 의해, 사용자 인터페이스 내의 공통 컨트롤을 렌더링하여 제 1 표면(surface)을 획득하는 단계; 신뢰되는 운영 체제에 의해, 사용자 인터페이스 내의 보안 컨트롤을 렌더링하여 제 2 표면(surface)을 획득하는 단계; 및 신뢰되는 운영 체제에 의해, 제 1 표면 및 제 2 표면을 합성하여, 보안 컨트롤 및 네이티브 컨트롤(native control) 모두의 그래픽 표현을 포함하는 합성 표면을 획득하고, 합성 표면을 디스플레이를 사용함으로써 디스플레이하며, 이로써 보안 컨트롤 및 비보안 컨트롤의 호환 가능한 디스플레이를 구현하는 단계를 포함한다. 이러한 방식으로, 보안 입력 인터페이스가 디스플레이되는 것과 동시에, 공통 인터페이스 컨트롤이 또한 디스플레이될 수 있어, 사용자 경험을 향상시킬 수 있다.
가능한 구현예에서, 리치 운영 체제는 그래픽 관련 서비스 또는 컴포넌트를 사용함으로써 공통 컨트롤에 대한 측정(measurement) 동작, 레이아웃(layout) 동작, 및 드로잉(drawing) 동작을 수행하여, 공통 컨트롤의 렌더링을 완료하고, 공통 컨트롤의 렌더링을 완료한 후 획득된 비보안 표면을 리치 운영 체제의 프레임 버퍼에 버퍼링한다.
가능한 구현예에서, 리치 운영 체제는 통신 에이전트를 사용함으로써 보안 컨트롤에 대한 정보를 신뢰되는 운영 체제로 전송한다.
가능한 구현예에서, 리치 운영 체제의 통신 에이전트는 TEE에 의해 제공되는 클라이언트 인터페이스(Client API)를 사용함으로써 보안 컨트롤에 대한 정보를 신뢰되는 운영 체제로 전송한다.
가능한 구현예에서, 신뢰되는 운영 체제는 보안 컨트롤에 대한 정보에 기반하여 보안 컨트롤에 대한 측정(measurement) 동작 및 레이아웃(layout) 동작을 수행하여, 보안 컨트롤의 크기 및 디스플레이 포지션을 결정하고; 상기 보안 컨트롤의 결정된 크기 및 디스플레이 포지션에 기반하여 보안 컨트롤을 드로잉하여, 제 2 표면을 획득하며, 상기 제 2 표면은 상기 신뢰되는 운영 체제의 프레임 버퍼 내에 존재한다.
가능한 구현예에서, 리치 운영 체제는 통신 에이전트를 사용함으로써 프레임 버퍼 내의 제 1 표면을 신뢰되는 운영 체제로 전송한다. 신뢰되는 운영 체제는 제 1 표면을 획득한 후 제 1 표면과 제 2 표면을 합성하여 합성 표면을 획득하고, 상기 합성 표면은 신뢰되는 운영 체제의 프레임 버퍼 내에 존재한다.
가능한 구현예에서, 리치 운영 체제는 통신 에이전트를 사용함으로써 리치 운영 체제의 프레임 버퍼의 어드레스를 신뢰되는 운영 체제로 전송한다. 어드레스를 획득한 후, 신뢰되는 운영 체제는 상기 어드레스에 기반하여 리치 운영 체제의 프레임 버퍼 내의 제 1 표면에 액세스하고, 상기 제 1 표면 및 상기 제 2 표면을 합성하여, 합성 표면을 획득하며, 상기 합성 표면은 신뢰되는 운영 체제의 프레임 버퍼 내에 존재한다.
가능한 구현예에서, 신뢰되는 운영 체제는 리치 운영 체제의 프레임 버퍼에 액세스할 수 있다. 신뢰되는 운영 체제의 프레임 버퍼는 리치 운영 체제에 의해서는 액세스될 수 없다.
가능한 구현예에서, 리치 운영 체제 및/또는 신뢰되는 운영 체제의 복수의 프레임 버퍼가 존재한다.
가능한 구현예에서, 공통 컨트롤을 렌더링한 후, 리치 운영 체제는 복수의 표면을 획득하고, 각각의 표면은 개별 프레임 버퍼 내에 존재한다. 리치 운영 체제는 그래픽 관련 하드웨어를 호출함으로써 복수의 표면을 제 1 표면으로 오프라인 결합한다(offline combines). 그 후, 신뢰되는 운영 체제는 제 1 표면과 제 2 표면을 합성한다.
가능한 구현예에서, 제 1 표면 및 제 2 표면을 합성하는 것은, 제 1 표면에 포함된 각각의 픽셀의 파라미터 및 제 2 표면에 포함된 각각의 픽셀의 파라미터에 기반하여 파라미터 계산을 수행하여, 합성 표면의 각각의 픽셀의 파라미터를 획득하는 것을 포함한다.
가능한 구현예에서, 표면의 픽셀의 파라미터는 RGB 값을 포함하지만 이에 제한되지는 않는다.
제 2 양태에 따르면, 본 출원의 일 실시예는 제 1 양태에 따른 또는 제 1 양태의 임의의 구현예에 따른 방법을 수행하도록 구성된 하나 이상의 기능 유닛을 포함하는 단말기 디바이스를 제공한다. 기능 유닛은 소프트웨어 모듈을 사용하여 구현될 수 있거나, 또는 프로세서와 같은 하드웨어를 사용하여 구현될 수 있거나, 또는 소프트웨어와 필요한 하드웨어를 결합하여 구현될 수 있다.
제 3 양태에 따르면, 본 출원의 일 실시예는 메모리, 프로세서 및 메모리에 저장된 컴퓨터 프로그램을 포함하는 단말기 디바이스를 제공한다. 컴퓨터 프로그램을 실행될 때 프로세서는 제 1 양태 또는 제 1 양태의 임의의 구현예에 따른 방법의 단계들을 구현한다.
제 4 양태에 따르면, 본 출원의 일 실시예는 컴퓨터 판독 가능 저장 매체를 제공한다. 컴퓨터 판독 가능 저장 매체는 컴퓨터 프로그램(명령어)을 저장한다. 프로그램(명령어)이 프로세서에 의해 실행될 때, 제 1 양태 또는 제 1 양태의 임의의 구현예에 따른 방법의 단계가 구현된다.
본 출원의 전술한 기술적 솔루션에 따르면, 컨트롤 레벨 TUI가 제공되어, 사용자 인터페이스 내의 비보안 컨트롤은 디스플레이를 위한 TUI 보안 컨트롤과 호환 가능하고, 동시에 보안 입력 인터페이스가 디스플레이될 때, 공통 인터페이스 컨트롤이 또한 디스플레이될 수 있으므로, 사용자 경험이 향상될 수 있다.
본 출원의 실시예에서의 기술적 솔루션을 보다 명확하게 설명하기 위해, 이하에서는 본 출원의 실시예를 설명하는 데 요구되는 첨부 도면을 간단히 설명한다.
도 1은 신뢰되는 사용자 인터페이스(trusted user interface)(TUI)를 사용함으로써 이체 동작을 수행하는 개략적인 도면이다.
도 2는 본 출원의 일 실시예에 따른 단말기 디바이스의 개략적인 도면이다.
도 3은 본 출원의 일 실시예에 따른 컨트롤의 개략적인 도면이다.
도 4는 본 출원의 일 실시예에 따른 사용자 인터페이스 내의 컨트롤의 트리 구조도이다.
도 5는 본 출원의 일 실시예에 따른 사용자 인터페이스 디스플레이 방법의 흐름도이다.
도 6은 본 출원의 일 실시예에 따른 단말기 디바이스의 개략적인 구조도이다.
도 7은 본 출원의 일 실시예에 따른 다른 단말기 디바이스의 개략적인 구조도이다.
도 8은 본 출원의 일 실시예에 따른 TEE 내의 표면 합성기(surface combiner)의 동작 원리도이다.
도 9는 본 출원의 일 실시예에 따른 다른 단말기 디바이스의 개략적인 구조도이다.
도 10은 본 출원의 일 실시예에 따른 다른 단말기 디바이스의 개략적인 구조도이다.
이하에서는 본 출원의 실시예의 첨부 도면을 참조하여 본 출원의 실시예의 기술적 솔루션을 상세히 설명하고 있다. 명백하게도, 설명되는 실시예는 본 출원의 모든 실시예라기보다는 오히려 일부의 실시예에 불과하다.
본 출원의 일 실시예는 사용자 인터페이스 디스플레이 방법을 제공하여, 신뢰되는 사용자 인터페이스(trusted user interface)(TUI) 및 클라이언트 애플리케이션(client application)(CA)의 사용자 인터페이스의 호환 가능한 디스플레이를 구현한다. 상기 방법은 단말기 디바이스에 적용될 수 있다.
간단히 인터페이스로 지칭되는, 본 출원의 명세서, 청구항 및 첨부 도면에서의 용어 "사용자 인터페이스(user interface)"는 사용자와 애플리케이션 또는 운영 체제 간의 상호 작용 및 정보 교환을 위한 그래픽 인터페이스이다. 사용자 인터페이스는 윈도우(window), 다이얼로그 박스(dialog box), 디스플레이 구역(display area) 등일 수 있다. 애플리케이션의 사용자 인터페이스는 자바(Java) 또는 확장 가능 마크업 언어(extensible markup language)(XML)와 같은 특정 컴퓨터 언어를 사용하여 작성된 소스 코드이다. 인터페이스 소스 코드는 단말기 디바이스 상에서 파싱 및 렌더링되며, 최종적으로 사용자에 의해 식별될 수 있는 컨텐츠로, 예컨대, 픽처, 텍스트, 또는 버튼으로 표시된다. 뷰(view)는 사용자 인터페이스의 시각적 컴포넌트이다. 뷰는 또한 컨트롤(control) 또는 위젯(widget)이라고 지칭되기도 한다. 전형적인 뷰는 버튼(button), 텍스트 필드(text field), 프로그레스 바(progress bar), 키보드(keyboard), 픽처, 텍스트 등을 포함한다. 인터페이스 내의 컨트롤의 속성 및 컨텐츠는 태그(tag) 또는 노드(node)를 사용하여 정의된다. 예를 들어, XML은 <텍스트 뷰(Textview)>, <이미지 뷰(ImgView)>, 또는 <버튼 뷰(ButtonView)>와 같은 노드를 사용함으로써 인터페이스 내의 컨트롤을 정의한다. 노드는 인터페이스 내의 컨트롤 또는 속성에 대응한다. 파싱 및 렌더링된 후, 노드는 사용자가 볼 수 있는 컨텐츠로 포시된다.
본 출원의 실시예 및 청구항에 따른 단말기 디바이스는 무선 단말기 또는 유선 단말기를 포함하여 음성 및/또는 데이터 연결을 사용자에게 제공하는 디바이스이다. 상기 무선 단말기는 무선 액세스 네트워크(radio access network)(RAN)를 통해 하나 이상의 코어 네트워크(core networks)와 통신할 수 있다. 무선 단말기는 모바일 단말기, 예컨대, 모바일폰(또는 "셀룰러(cellular)"폰이라고 지칭됨)일 수 있거나, 또는 모바일 단말기를 갖는 컴퓨터는, 예를 들어, 휴대용, 포켓 크기, 핸드헬드, 컴퓨터 내장, 또는 차량 장착형 모바일 장치일 수 있다. 애플리케이션 프로그래밍 인터페이스(application programing interface)(API)라고 지칭되기도 하는 인터페이스는 컴퓨터 프로그램 코드로 구현된 특정 기능의 캡슐화 및 추상화 표현이다. 애플리케이션은 인터페이스를 호출함으로써 특정 기능을 구현할 수 있다. 서비스는 사용자 인터페이스를 제공하지 않고 백그라운드에서 실행될 수 있는 애플리케이션 컴포넌트이다. 서비스는 다른 애플리케이션 또는 애플리케이션 컴포넌트에 의해 시작될 수 있다.
이하에서는 첨부 도면을 참조하여 본 출원의 단말기 디바이스를 보다 상세히 설명한다. 주목해야 하는 것은, 후치 용어 "유닛(unit)" 및 "모듈(module)"은 설명의 편의를 위한 것일 뿐이며, 이러한 후치 용어가 서로 구별되는 의미 또는 기능을 갖는 것이 아니라는 것이다.
도 2는 본 출원의 일 실시예에 따른 단말기 디바이스(100)의 개략적인 도면이다. 도 2에 도시된 바와 같이, 단말기 디바이스(100)는 하드웨어 플랫폼(110), 및 하드웨어 플랫폼(100) 상에서 실행되는 2 개의 격리된 운영 환경, 즉, 리치 실행 환경(rich execution environment)(REE)(120) 및 신뢰되는 실행 환경(trusted execution environment)(TEE)(140)을 포함한다. 두 운영 환경은 각각 독립적인 하드웨어 리소스와 운영 체제를 갖는다. REE(120)의 하드웨어 리소스와 TEE(140)의 하드웨어 리소스는 ARM® TrustZone 메커니즘과 같은 하드웨어 격리 기술을 사용하여 격리될 수 있다. 또한, REE(120)의 운영 체제와 TEE(140)의 운영 체제 간의 격리 및 애플리케이션 간의 격리는 가상화 기술을 사용하여 구현된다. 이러한 방식으로, TEE(140)에 의해 액세스될 수 있는 소프트웨어 및 하드웨어 리소스는 REE(120)에 의해 액세스될 수 있는 것과는 분리되고, TEE(140)는, TEE(140)의 보안 수준이 특정 보안 요건을 충족시키도록, 애플리케이션에 의해 액세스될 수 있는 데이터 및 기능을 엄격히 제한한다. 따라서, TEE(140)는 일반적으로 보안 실행 환경으로 간주된다. REE(120)는 TEE(140) 외부의 운영 환경이다. TEE(140)와 비교할 때, REE(120)는 낮은 보안성을 가지며, 공격에 취약한 환경이다. REE(120)에서 실행되는 애플리케이션, 즉, 클라이언트 애플리케이션(client application)(CA)은 또한 신뢰되지 않는 것으로 간주된다.
단말기 디바이스(100)의 하드웨어 플랫폼(110)은 공용 주변 장치 및 신뢰되는 주변 장치를 포함한다. 신뢰되는 주변 장치는 보안 메모리, 보안 클럭, 또는 신뢰되는 키보드와 같이, TEE(140)에 의해서만 제어되고 액세스될 수 있는 보안 요소(secure element)(SE)를 포함한다. 공용 주변 장치는 REE(120) 내의 리치 운영 체제(rich operating system)(Rich OS)(123)에 의해 제어되고 액세스될 수 있는 디바이스이다.
TEE(140)에서 실행되는 애플리케이션(115)은 신뢰되는 애플리케이션(trusted application)(TA)이다. TA(115)는 REE(120) 내의 클라이언트 애플리케이션(client application)(CA)(113) 또는 TEE(140) 내의 다른 TA에 대해 보안 관련 기능 또는 서비스를 제공할 수 있다. TEE(140)에서 실행되는 신뢰되는 운영 체제(trusted operating system)( Trusted OS)(143)는 TA(115)를 위한 TEE 내부 인터페이스(145)를 제공한다. TA(115)는 TEE 내부 인터페이스(145)를 사용하여 보안 리소스 및 서비스에 대한 액세스 권한을 획득한다. 보안 리소스 및 서비스는 키 주입 및 관리, 암호화, 보안 스토리지, 보안 클럭, 신뢰되는 사용자 인터페이스(TUI) 및 신뢰되는 키보드를 포함하지만, 이에 제한되는 것은 아니다.
리치 운영 체제(123)는 신뢰되는 운영 체제(143)보다 풍부한 특징(richer features)을 제공한다. 리치 운영 체제(123)는 매우 개방적이고 다양한 타입의 애플리케이션을 허용할 수 있지만, 리치 운영 체제(123)의 보안성은 또한 신뢰되는 운영 체제(143)의 보안성보다 낮다. 리치 운영 체제(123)는 Android® 또는 iOS®와 같은 단말기 운영 체제일 수 있다. REE(120)에서 실행되는 CA(113)는 TEE에 의해 제공되는 외부 인터페이스(125)를 사용함으로써, TEE(140) 내의 TA(115)에 의해 제공되는 보안 서비스를 요청할 수 있다. 예를 들어, 모바일 결제 또는 온라인 은행 이체와 같은 시나리오에서, 만약 사용자의 민감성 정보가 입력되고 디스플레이되어야 하는 경우, REE(120)의 애플리케이션은 TEE에 의해 제공되는 외부 인터페이스(125)를 사용함으로써 TEE(140) 상의 TUI 및 신뢰되는 키보드 서비스를 호출하여, REE 측의 애플리케이션이 사용자의 민감성 정보를 악의적으로 가로채서 강탈하는 것을 방지할 수 있다.
본 출원의 모든 실시예에서 REE, TEE, CA, TA, rich OS, 및 trusted OS와 같은 용어의 정의를 위해, 글로벌 플랫폼®(GlobalPlatform®)(GP)에 의해 제안되는 TEE 관련 표준이 참조된다. TEE를 갖는 단말기 디바이스 이외에, 본 출원의 실시예에서 제공되는 사용자 인터페이스 디스플레이 방법은 또한 다른 타입의 디바이스, 예를 들어, 이중 도메인 시스템(보안 도메인 및 비보안 도메인)을 갖는 단말기 디바이스 또는 컴퓨터 시스템에도 적용될 수 있음을 이해해야 한다.
도 2에서 설명된 단말기 디바이스(100)에 기반하여, 본 출원의 일 실시예는 단말기 디바이스(100) 상에 사용자 인터페이스를 디스플레이하는 방법을 제공한다. 사용자 인터페이스는 리치 운영 체제(123)와 신뢰되는 운영 체제(143) 간의 협력을 통해 디스플레이된다. 리치 운영 체제(123)는 애플리케이션 개발자가 사용자 인터페이스를 개발할 수 있도록 하는 리치 네이티브 컨트롤(rich native controls)(본 출원의 실시예에서 "공통 컨트롤(common control)" 또는 "비보안 컨트롤(non-secure control)"이라고 지칭되기도 함)을 제공한다. 도 3에 도시된 바와 같이, Android® 시스템을 일 예로 사용하면, Android®는 버튼(button), 텍스트 필드(EditText), 라디오 버튼(RadioButton), 체크 박스(CheckBox), 및 토글 버튼(ToggleButton)과 같은 복수의 네이티브 컨트롤 타입을 제공한다. 이러한 네이티브 컨트롤 타입으로부터 파생된 컨트롤은 공통 컨트롤(비보안 컨트롤)이다. 애플리케이션 개발자는 시각적 개발 도구(visual development tool) 또는 XML 코드를 사용하여 사용자 인터페이스를 구성할 수 있다. 예를 들어, 애플리케이션 개발자는 레이아웃 파일에서 이러한 컨트롤 중 하나 이상이 사용되었다고 선언할 수 있고, 컨트롤의 폭, 높이, 또는 ID와 같은, 컨트롤의 속성을 설정할 수 있다. 다음은 텍스트 필드와 버튼이 포함된 XML 레이아웃 파일의 예이다:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<EditText android:id="@+id/edit_message"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/edit_message"/>
<Button android:id="@+id/button_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="sendMessage"/>
</LinearLayout>
리치 운영 체제(123)에 의해 제공되는 네이티브 컨트롤에 기반하여, 커스텀화된 보안 컨트롤이 본 출원의 이 실시예에 더 추가되며, TUI 개발에 사용된다. 커스텀화된 보안 컨트롤은 TEE(140)의 인터페이스 보안 사양을 충족시키며, 일부 커스텀화된 속성의 구성(configuration)을 지원한다. 또한, 커스텀화된 컨트롤에 대응하는 프로세싱 메쏘드 또는 기능, 예를 들어, 측정, 레이아웃, 또는 드로잉과 같은 메쏘드(method)는 재작성될 필요가 있다. 개발자는 .xml 파일로 커스텀화된 보안 컨트롤의 인스턴스를 생성하고 편집할 수 있다. 일 실시예에서, 다음 표에 도시된 보안 컨트롤은 다음과 같이 커스텀화될 수 있다:
Figure pct00001
애플리케이션의 사용자 인터페이스를 개발할 때, 애플리케이션 개발자는 리치 운영 체제(123)에 의해 제공되는 네이티브 컨트롤을 사용할 수 있거나, 커스텀화된 보안 컨트롤을 사용할 수 있다. 이러한 방식으로, 공통 컨트롤 및 커스텀화된 보안 컨트롤 모두를 포함하는 하이브리드 사용자 인터페이스가 개발될 수 있어서 개발의 어려움이 감소될 수 있다.또한, 클라이언트 애플리케이션(113)이 REE(120)에서 실행될 때, 리치 운영 체제(123)는 사용자 인터페이스에 대응하는 소스 코드 및/또는 레이아웃 파일을 파싱함으로써 사용자 인터페이스에 포함된 컨트롤 및 그 컨트롤의 속성을 결정한다. 컨트롤의 속성은 컨트롤 타입, 컨트롤 식별자, 컨트롤 폭, 컨트롤 높이 등을 포함하지만 이에 제한되지는 않는다. 사용자 인터페이스에 포함된 컨트롤은 일반적으로 트리 구조로 조직화된다. 구체적으로, 컨트롤들은 서로 부모-자식 관계를 갖는다. Android를 일 예로 사용하면, Android의 컨트롤들은 뷰 그룹(ViewGroup) 컨트롤과 뷰(view) 컨트롤의 두 가지 타입으로 분류된다. 부모 컨트롤로서, 뷰 그룹(ViewGroup)은 복수의 뷰 컨트롤을 포함할 수 있고, 뷰 그룹(ViewGroup) 내에 포함된 컨트롤을 관리할 수 있다. 도 4에 도시된 바와 같이, 전체 사용자 인터페이스 내에 포함된 컨트롤들은 컨트롤 트리(control tree)를 논리적으로 형성한다. 상위 계층 컨트롤은 하위 계층 컨트롤의 프로세싱 렌더링과 상호 작용 이벤트의 전송을 담당한다. 각 컨트롤 트리의 상단에는 ViewParent 객체, 즉 컨트롤 트리의 핵심이 존재한다. 모든 상호 작용 관리 이벤트는 ViewParent에 의해 중앙 집중식으로 스케줄링된다.
또한, 본 출원의 일 실시예는 다음의 단계를 포함하여 공통 컨트롤 및 커스텀화된 보안 컨트롤을 포함하는 사용자 인터페이스의 호환 가능한 디스플레이를 위한 방법을 추가로 제공한다:
단계(510): 리치 운영 체제(123)는 사용자 인터페이스 내의 공통 컨트롤을 렌더링하여, 제 1 표면(surface)을 획득한다.
단계(530): 리치 운영 체제(123)는 사용자 인터페이스 내의 보안 컨트롤에 대한 정보를 신뢰되는 운영 체제(143)에 전송하고, 신뢰되는 운영 체제(143)는 보안 컨트롤을 렌더링하여 제 2 표면을 획득한다.
단계(550): 신뢰되는 운영 체제(143)는 제 1 표면과 제 2 표면을 합성하여, 합성 표면을 획득하며, 여기서 합성 표면은 공통 컨트롤 및 보안 컨트롤을 포함한다. 본원에서 공통 컨트롤 및 보안 컨트롤을 포함하는 합성 표면은 공통 컨트롤 및 보안 컨트롤 모두를 포함하는 그래픽 표현 또는 그래픽 인터페이스인 것으로 이해해야 한다.
단계(570): 신뢰되는 운영 체제(143)는 합성 표면을 단말기 디바이스(100)의 디스플레이 상에 디스플레이한다.
일 실시예에서, 보안 컨트롤을 사용하는 경우, 개발자는 컨트롤 크기와 같은 보안 컨트롤과 관련된 정보를 .xml 파일로 구성하고, 클라이언트 애플리케이션(113)의 설치 패키지 또는 소스 파일로 통신 ID를 구성할 필요가 있다. 통신 ID는 TEE 내의 신뢰되는 애플리케이션(115)에 대응한다. 보안 컨트롤에 대한 정보는 통신 ID에 기반하여 그리고 TEE에 의해 제공되는 외부 인터페이스를 사용하여, TEE 내의 대응하는 신뢰되는 애플리케이션(115)으로 전송될 수 있다. 신뢰되는 애플리케이션(115)은 신뢰되는 운영 체제(143)에 의해 제공되는 관련 그래픽 서비스 또는 컴포넌트에 기반하여 보안 컨트롤의 렌더링 및 디스플레이를 추가로 완료한다.
일 실시예에서, 단계(510)에서, 리치 운영 체제(123)는 공통 컨트롤에 대응하는 메쏘드를 호출함으로써 컨트롤에 대한 렌더링 프로세싱을 수행한다. 공통 컨트롤에 대응하는 메쏘드는 네이티브 API를 사용함으로써 리치 운영 체제(123)에 의해 제공된다. 일 실시예에서, 도 5에 도시된 바와 같이, 컨트롤에 대응하는 메쏘드는 측정(measurement) 동작, 레이아웃(layout) 동작, 및 드로잉(drawing) 동작을 포함한다. 측정 동작은 주로 컨트롤의 크기, 즉, 컨트롤의 폭과 길이를 계산하는 데 사용된다. 이러한 계산은, 컨트롤을 구성하며 레이아웃 파일로 구성되는, 폭 및 높이와 같은 속성에 기반하고 있다. 레이아웃 동작은 디스플레이 상의 컨트롤의 디스플레이 포지션을 설정하는 데 사용된다. 예를 들어, 일 실시예에서, 컨트롤의 부모 컨트롤에 대한 컨트롤의 포지션은 레이아웃 동작, 예를 들어, 컨트롤의 상단 가장 자리, 하단 가장 자리, 좌측 가장 자리, 및 우측 가장 자리에서 부모 컨트롤의 좌측 상단 코너 또는 우측 상단 코너의 정점까지의 거리, 또는 컨트롤의 상단 가장 자리, 하단 가장 자리, 좌측 가장 자리 및 우측 가장 자리에서 부모 컨트롤의 상단 가장 자리, 하단 가장 자리, 좌측 가장 자리, 및 우측 가장 자리까지의 거리를 사용하여 계산될 수 있다. 드로잉(drawing) 동작은 프레임 버퍼에 컨트롤을 드로잉하여 제 1 표면을 획득하는 데 사용된다. 측정 동작 및 레이아웃 동작의 계산 결과는 파라미터의 형태로 레코딩될 수 있다. 드로잉(drawing) 동작은 이들 파라미터에 기반하여 컨트롤을 드로잉하는 데 사용될 수 있다. OpenGL과 같은 특정 그래픽 라이브러리는 드로잉 프로세스 동안 호출될 수 있다.
일 실시예에서, 보안 라벨이 보안 컨트롤에 추가되어 보안 컨트롤을 식별한다. 클라이언트 애플리케이션 및 리치 운영 체제는 보안 라벨에 기반하여, 사용자 인터페이스 내에 포함된 컨트롤로부터 보안 컨트롤을 식별할 수 있다. 보안 라벨은 컨트롤 이름, 컨트롤 ID, 서명 정보 등일 수 있다.
일 실시예에서, 단계(530)에서, 리치 운영 체제(123) 내의 통신 에이전트는 TEE 외부 인터페이스(125)를 사용함으로써 사용자 인터페이스 내의 커스텀화된 보안 컨트롤에 대한 정보를 신뢰되는 운영 체제(143)로 전송할 수 있다. 커스텀화된 보안 컨트롤의 속성은 레이아웃 파일 또는 코드를 사용함으로써 개발자에 의해 구성된다. TEE 측에 디스플레이하기 위한 요건을 충족시키기 위해, 커스텀화된 컨트롤에 대응하는 메쏘드(측정, 레이아웃 및 드로잉)가 재작성되며, 즉, 개발자에 의해 정의된다. 리치 운영 체제(123)에 의해 전송된 보안 컨트롤에 대한 정보는 폭 또는 높이와 같은 보안 컨트롤의 속성을 포함한다. 신뢰되는 운영 체제(143)는 보안 컨트롤에 대응하는 메쏘드를 호출함으로써 보안 컨트롤 대한 측정, 레이아웃 및 드로잉 프로세싱을 수행하여, 제 2 표면을 획득한다.
일 실시예에서, 단계(510)에서 획득된 제 1 표면(비보안 표면)은 리치 운영 체제(123)의 프레임 버퍼 내에 존재한다. 단계(530)에서 획득된 제 2 표면(보안 표면)은 신뢰되는 운영 체제(143)의 프레임 버퍼 내에 존재한다. 신뢰되는 운영 체제(143)는 리치 운영 체제(123)의 프레임 버퍼에 액세스할 수 있다. 그러나, 신뢰되는 운영 체제(143)의 프레임 버퍼는 리치 운영 체제(123)에 의해서는 액세스될 수 없다. 리치 운영 체제(123) 및 신뢰되는 운영 체제(143)는 각각 복수의 프레임 버퍼를 가질 수 있다. 컨트롤이 렌더링된 후 복수의 표면이 획득되면, 복수의 표면은 상이한 프레임 버퍼 내에 개별적으로 존재할 수 있다.
일 실시예에서, 리치 운영 체제(123)가 공통 컨트롤을 렌더링할 때, 복수의 표면이 생성될 수 있으며, 여기서 각각의 표면은 개별 프레임 버퍼에 존재한다. 리치 운영 체제(123)는 그래픽 관련 하드웨어를 호출하여, 복수의 표면을 제 1 표면으로 오프라인으로 먼저 결합할 수 있다.
일 실시예에서, 신뢰되는 운영 체제(143)는 제 1 표면과 제 2 표면을 합성 표면으로 합성한다. 합성 표면은 공통 컨트롤과 보안 컨트롤 모두를 포함한다. 합성 표면은, 디스플레이 드라이버의 지원과 함께, 디스플레이를 사용하여 디스플레이된다. 본원에서 공통 컨트롤 및 보안 컨트롤을 포함하는 합성 표면은 공통 컨트롤 및 보안 컨트롤 모두를 포함하는 그래픽 표현 또는 그래픽 인터페이스이다.
일 실시예에서, 단계(550)에서, 리치 운영 체제(123)는 통신 에이전트를 사용하여 제 1 표면(비보안 표면)을 신뢰되는 운영 체제(143)에 전송할 수 있다. 신뢰되는 운영 체제(143)는 제 1 표면과 제 2 표면을 추가로 합성하여, 합성 표면을 획득한다. 리치 운영 체제(123)는 또한 통신 에이전트를 사용하여, 제 1 표면이 위치된 프레임 버퍼의 어드레스를 신뢰되는 운영 체제(143)로 전송할 수 있다. 신뢰되는 운영 체제(143)는 상기 어드레스에 기반하여 리치 운영 체제(123)의 프레임 버퍼 내의 제 1 표면에 액세스하여, 표면 합성을 완료할 수 있다.
일 실시예에서, 단계(550)에서, 신뢰되는 운영 체제(143)는 AlphaBlend 알고리즘을 사용하여 제 1 표면(A)과 제 2 표면(B)을 합성하여, 합성 표면(C)을 생성할 수 있다. 합성 표면(C) 내의 각 픽셀의 RGB 값은 다음 공식을 사용하여, 제 1 표면(A)의 대응하는 포지션에서의 픽셀의 RGB 값 및 제 2 표면(B)의 대응하는 포지션에서의 픽셀의 RGB 값에 기반하여 계산된다:
R(C) = (1 - alpha)*R(B) + alpha*R(A)
G(C) = (1 - alpha)*G(B) + alpha*G(A)
B(C) = (1 - alpha)*B(B) + alpha*B(A)
여기서, alpha는 상수이며 투명도를 나타내는 데 사용된다. alpha가 0이면, 완전한 투명도를 나타낸다. alpha가 255이면 완전한 불투명도를 나타낸다.
일 실시예에서, 사용자 인터페이스를 생성할 때, REE 측의 클라이언트 애플리케이션(113)은 리치 운영 체제(123)에 의해 제공되는 인터페이스를 호출하며, 이에 따라, 리치 운영 체제(123)는 사용자 인터페이스의 레이아웃 파일에 기반한 측정 메쏘드, 레이아웃 메쏘드, 및 드로잉 메쏘드를 호출함으로써 사용자 인터페이스 내의 공통 컨트롤에 대한 렌더링 프로세싱을 수행하게 된다. 렌더링 프로세싱 이후에 획득된 비보안 표면(보안 컨트롤을 제외함)은 리치 운영 체제(123)의 프레임 버퍼 내에 버퍼링되고, TEE와 REE 간의 통신 채널에 기반하여 신뢰되는 운영 체제의 프레임 버퍼에 동기화된다. 또한, 리치 운영 체제(123)는 사용자 인터페이스 내의 보안 컨트롤에 대한 식별된 정보를 신뢰되는 운영 체제(143)로 전송한다. 신뢰되는 운영 체제(143)는 보안 컨트롤 대한 정보 및 보안 컨트롤에 대응하는 커스텀화된 메쏘드(측정, 레이아웃, 또는 드로잉)에 기반하여 보안 컨트롤에 대한 렌더링 프로세싱을 수행한다. 렌더링 프로세싱 이후에 획득된 보안 표면(보안 컨트롤만을 포함)은 신뢰되는 운영 체제(143)의 프레임 버퍼 내에 버퍼링된다. 최종적으로, 신뢰되는 운영 체제(143)는 보안 표면과 비보안 표면을 합성하고, 그 후, 디스플레이를 사용하여 합성 표면을 디스플레이한다.
도 6은 리치 운영 체제(123)와 신뢰되는 운영 체제(143)가 서로 협력하여 사용자 인터페이스에서 컨트롤을 프로세싱하는 보다 구체적인 예를 도시한다. 도 6에 따르면, 리치 운영 체제(123)는: 측정 모듈(1231), 레이아웃 모듈(1233), 및 드로잉 모듈(1235)을 포함하며, 각각은 사용자 인터페이스 내의 공통 컨트롤에 대해 측정 동작, 레이아웃 동작, 및 드로잉 동작을 수행하여, 비보안 표면(보안 컨트롤을 제외함)을 획득하도록 구성된다. 컨트롤의 측정, 레이아웃, 및 드로잉에 대한 세부 사항에 대해서는 단계(510)의 설명이 참조된다. 공통 컨트롤이 드로잉된 후 획득된 비보안 표면은 제 1 프레임 버퍼(1237) 내에 존재한다. 제 1 프레임 버퍼(1237)는 리치 운영 체제(123)에 의해 제어되고 액세스될 수 있는 버퍼 공간이다.
또한, 일 실시예에서, 클라이언트 애플리케이션은 리치 운영 체제에 의해 제공되는 통신 에이전트(도면에 미도시됨) 및/또는 TEE에 의해 제공되는 외부 인터페이스를 호출함으로써 사용자 인터페이스 내의 보안 컨트롤에 대한 정보를 신뢰되는 애플리케이션(115)으로 전송한다. 그 후, 신뢰되는 애플리케이션은 신뢰되는 운영 체제(143)의 그래픽 서비스 또는 컴포넌트를 호출하여, 보안 컨트롤의 렌더링을 완료한다. 일 실시예에서, 신뢰되는 운영 체제(143)는: 측정 모듈(1431), 레이아웃 모듈(1433), 드로잉 모듈(1435), 결합 모듈(1439), 및 드라이버 모듈(1441)을 포함한다. 측정 모듈(1431), 레이아웃 모듈(1433), 및 드로잉 모듈(1435)은 각각은 사용자 인터페이스 내의 보안 컨트롤에 대해 측정 동작, 레이아웃 동작, 및 드로잉 동작을 수행하여, 보안 표면(보안 컨트롤만을 포함함)을 획득하도록 구성된다. 측정 모듈(1431), 레이아웃 모듈(1433), 및 드로잉 모듈(1435)은 보안 컨트롤 대한 정보 및 보안 컨트롤에 대응하는 커스텀화된 메쏘드(측정, 레이아웃, 또는 드로잉)에 기반하여 보안 컨트롤에 대한 측정, 레이아웃, 및 드로잉을 수행한다. 보안 컨트롤의 측정, 레이아웃, 및 드로잉에 대한 세부 사항에 대해서는 단계(530)의 설명이 참조된다. 공통 컨트롤이 드로잉된 후 획득된 보안 표면은 제 2 프레임 버퍼(1437) 내에 존재한다. 제 2 프레임 버퍼(1437)는 신뢰되는 운영 체제(143)에 의해서만 제어되고 액세스될 수 있지만 REE(120) 내의 리치 운영 체제(123) 및 애플리케이션에 의해서는 액세스될 수 없는 버퍼 공간이다. 결합 모듈(1439)은 제 1 프레임 버퍼(1237) 내의 비보안 표면과 제 2 프레임 버퍼(1437) 내의 보안 표면을 합성하여, 공통 컨트롤 및 보안 컨트롤을 포함하는 합성 표면을 획득한다. 드라이버 모듈(1441)은 결합 모듈(1439)에 의해 획득된 합성 표면을 디스플레이(141) 상에 디스플레이하도록 구성된다.
일 실시예에서, 리치 운영 체제(123)는 통신 에이전트를 사용함으로써 제 1 표면(비보안 표면)을 신뢰되는 운영 체제(143)에 전송할 수 있다. 신뢰되는 운영 체제(143) 내의 결합 모듈(1439)은 그 후 제 1 표면과 제 2 표면을 합성하여, 합성 표면을 획득하고, 여기서 합성 표면은 제 2 프레임 버퍼(1437) 내에 존재한다. 다른 실시예에서, 대안적으로, 리치 운영 체제(123)는 통신 에이전트를 사용하여, 제 1 표면이 위치된 프레임 버퍼의 어드레스를 신뢰되는 운영 체제(143)로 전송할 수 있다. 신뢰되는 운영 체제(143) 내의 결합 모듈(1439)은 어드레스에 기반하여 제 1 프레임 버퍼 내의 제 1 표면에 액세스할 수 있으며, 그 후, 표면 합성을 구현할 수 있으며, 여기서, 합성된 표면은 제 2 프레임 버퍼(1437) 내에 존재한다.
선택적으로, 일 실시예에서, 리치 운영 체제(123)는, 예를 들어, 사용자 인터페이스 내의 보안 컨트롤에 대한 초기 측정, 레이아웃, 및 드로잉을 전처리하도록 구성된 전처리 모듈(1239)을 더 포함한다. 전처리 결과는 신뢰되는 운영 체제(143)에 동기화된다. 신뢰되는 운영 체제(143)는 전처리 결과에 기반하여 보안 컨트롤에 대한 추가 프로세싱을 수행한다.
솔루션의 특정 구현예에서, 공통 컨트롤에 대해 리치 운영 체제(123)에 의해 수행되는 렌더링 프로세싱 및 보안 컨트롤에 대해 신뢰되는 운영 체제(143)에 의해 수행되는 렌더링 프로세싱은 완전히 직렬 방식으로 수행되지는 않으며, 교차 방식 또는 병렬 방식으로 수행될 수 있음이 이해되어야 한다. 단말기 디바이스(100)는 도 6에 도시된 것보다 더 적거나 더 많은 컴포넌트를 포함할 수 있는 것으로 이해된다. 도 6에 도시된 단말기 디바이스는 본 출원의 실시예에 개시된 복수의 구현예와 더 관련된 컴포넌트를 포함할 뿐이다.
일 실시예에서, 도 7에 도시된 바와 같이, 리치 운영 체제(123)는 안드로이드®(Android®) 시스템이고, 구조도의 측면에서 커널(kernel)(130), 라이브러리(libraries)(150), 및 애플리케이션 프레임워크(application framework)(170)로 분할될 수 있다. 커널(130)은 기본 시스템 컴포넌트 및 서비스, 예를 들어, 전력 관리, 메모리 관리, 스레드 관리, 하드웨어 드라이버 프로그램, 및 액세스 프록시(134)를 제공하는 데 사용된다. 액세스 프록시(134)는 주로 REE(120)와 TEE(140) 간의 통신을 구현하는 데 사용되며, 예를 들어, TEE에 의해 제공되는 인터페이스를 사용하여 REE(120) 측의 정보를 TEE(140)로 전송 또는 전달하는 데 사용된다. 액세스 프록시(134)는 커널 모드의 프로세스 또는 스레드이다. 예를 들어, 액세스 프록시(134)의 기능은 커널 내의 Tzdriver에 의해 수행될 수 있다. 라이브러리(150)는 실행 가능한 프로그램이 실행될 때 실행 가능한 프로그램을 지원하는 프로그램 라이브러리이며, 브라우저 엔진(예컨대, 웹킷(webkit)), 그래픽 프로세싱 엔진(예컨대, OpenGL ES) 등을 포함한다. 프레임워크(170)는 윈도우 관리 및 뷰 관리와 같은 애플리케이션을 위한 기본 공통 컴포넌트 및 서비스를 제공하는 데 사용된다. 일 실시예에서, 프레임워크(170)는 뷰 관리자(173), 표면 결합기(175) 등을 포함한다. 뷰 관리자(173)는 클라이언트 애플리케이션(113)의 사용자 인터페이스 내의 네이티브 뷰 컨트롤, 즉 공통 컨트롤에 대한 측정, 레이아웃, 및 드로잉과 같은 동작을 수행하는 데 사용된다. 표면 결합기(175)는 프레임 버퍼(132) 내로 이끌려진 표면들을 결합하고, 그 후 결합된 표면을 디스플레이를 위해 디스플레이 디바이스로 전송하는 데 사용된다. 프레임 버퍼(132)는 커널 모드에서 프로세스 또는 스레드에 의해 액세스될 수 있는 스토리지 구역이며, 뷰 관리자(173)에 의해 이끌려진 표면을 버퍼링하는 데 사용된다.
일 실시예에서, 뷰 관리자(173)는 안드로이드®(Android®) 시스템에 의해 제공되는 onMeasure(), onLayout(), 및 onDraw() 함수를 사용하여 네이티브 뷰 컨트롤에 대해 제각기 측정 동작, 레이아웃 동작, 및 드로잉 동작을 구체적으로 구현할 수 있다. 표면 결합기(175)는 안드로이드® 시스템을 위한 SurfaceFlinger 서비스를 제공한다. 뷰 관리자(173)는 표면 상의 컨트롤을 프레임 버퍼(132) 내로 이끈다. SurfaceFlinger 서비스는 그래픽 라이브러리를 사용하여 프레임 버퍼 내의 표면을 하드웨어 프레임 버퍼에 렌더링한다.
일 실시예에서, 도 7에 도시된 바와 같이, 신뢰되는 운영 체제(143)는 신뢰되는 사용자 인터페이스(trusted user interface)(TUI) 서비스(150), 표면 결합기(160), 디스플레이 드라이버(147), 및 프레임 버퍼(142)를 포함한다. 클라이언트 애플리케이션(113)의 사용자 인터페이스 내의 커스텀화된 보안 컨트롤을 식별한 후, 애플리케이션 프레임워크(170)는 액세스 프록시(134)를 사용하여 커스텀화된 보안 컨트롤에 대한 정보를 TEE(140) 내의 신뢰되는 애플리케이션(115)으로 전송한다. 신뢰되는 애플리케이션(115)은 TEE 내부 인터페이스(145)를 통해 TUI 서비스(150)를 호출함으로써 커스텀화된 보안 컨트롤에 대한 측정, 레이아웃, 및 드로잉과 같은 동작을 수행하고, 그 후 획득된 보안 표면을 프레임 버퍼(142)에 버퍼링할 수 있다. 표면 결합기(160)는 프레임 버퍼(132) 내에 있는 보안 표면과 비보안 표면(보안 컨트롤을 제외함)을 합성하여, 합성 표면을 획득하고, 여기서 합성 표면은 프레임 버퍼(142)에 존재한다. 최종적으로, 합성 표면은 디스플레이 드라이버(147)를 사용하여 디스플레이(141) 상에 디스플레이된다.
구체적으로, 일 실시예에서, 도 8에 도시된 바와 같이, 리치 운영 체제(123)의 뷰 관리자(173)는 네이티브 뷰 컨트롤에 대한 측정, 레이아웃, 및 드로잉과 같은 동작을 수행하여, 하나 이상의 비보안 표면, 예컨대, 백그라운드 표면, 상태 바 표면, 및 내비게이션 바 표면을 획득한다. 비보안 표면은 프레임 버퍼(132) 내에 버퍼링된다. 복수의 비보안 표면이 존재하는 경우, 복수의 표면은 복수의 프레임 버퍼 내로 버퍼링될 수 있다. 예를 들어, 각각의 비보안 표면은 독립적인 프레임 버퍼 내에 존재한다. TUI 서비스(150)는, 보안 입력 필드 및 보안 키보드 조명과 같은 커스텀화된 보안 컨트롤에 대한 측정, 레이아웃, 및 드로잉과 같은 동작을 수행한 후, 획득된 보안 표면을 프레임 버퍼(142) 내에 버퍼링한다. 표면 결합기(160)는 비보안 표면과 보안 표면을 합성하여, 보안 컨트롤 및 네이티브 컨트롤을 모두 포함하는 합성 표면을 획득한다. 합성 표면은 최종적으로 디스플레이(141)를 사용하여 디스플레이되고, 이에 의해 보안 컨트롤 및 비보안 컨트롤의 호환 가능한 디스플레이가 구현된다. 선택적으로, 복수의 비보안 표면이 존재하는 경우, 표면 결합기(160)가 합성을 수행하기 전에, 리치 운영 체제(123)는 복수의 비보안 표면을 오프라인으로 결합하는 하드웨어를 먼저 호출하여, 복수의 비보안 표면을 하나의 표면으로 결합할 수 있다. 그 후, 표면 결합기(160)는 결합된 표면과 보안 표면을 합성한다.
일 실시예에서, 표면 결합기(160)는 AlphaBlend 알고리즘을 사용하여 비보안 표면과 보안 표면을 합성하여, 합성된 표면을 생성할 수 있다. AlphaBlend 알고리즘의 특정 구현 세부 사항에 대해서는 전술한 실시예가 참조된다.
리치 운영 체제(123) 및 신뢰되는 운영 체제(143)의 컴포넌트들의 전술한 기능은 메모리(105)에 저장된 프로그램을 실행함으로써 프로세서에 의해 구현될 수 있다.
본 기술 분야의 기술자는 단말기 디바이스(100)가 도 7에 도시된 것보다 더 적거나 더 많은 컴포넌트를 포함할 수 있는 것으로 이해할 수 있다. 도 7에 도시된 단말기 디바이스는 본 출원의 실시예에 개시된 복수의 구현예와 더 관련된 컴포넌트를 포함할 뿐이다.
도 9는 본 출원의 일 실시예에 따른 다른 단말기 디바이스(200)의 예를 도시하고 있다. 도 9에 따르면, 단말기 디바이스(200)는 통신 서브 시스템(210), 전원(220), 입력 디바이스(230), 디스플레이 디바이스(240), 프로세싱 유닛(250), 및 메모리(260)를 포함한다. 메모리(260)는 컴퓨터 프로그램 또는 명령어를 저장한다. 컴퓨터 프로그램은 운영 체제(294), 애플리케이션(292) 등을 포함한다. 프로세싱 유닛(250)은 메모리(260) 내에 저장된 컴퓨터 프로그램을 실행하여, 컴퓨터 프로그램에 의해 정의된 방법을 구현하도록 구성된다. 예를 들어, 프로세싱 유닛(250)은 운영 체제(294)를 실행하여, 전술한 실시예에서 설명된 리치 운영 체제 및 신뢰되는 운영 체제의 다양한 기능들을 단말기 디바이스(200)상에 구현한다.
프로세싱 유닛(250)은 하나 이상의 프로세서를 포함할 수 있다. 예를 들어, 프로세싱 유닛(250)은 애플리케이션 프로세서, 그래픽 프로세서, 디지털 신호 프로세서 등을 포함할 수 있다. 프로세싱 유닛(250)이 복수의 프로세서를 포함하는 경우, 복수의 프로세서는 동일한 칩에 통합될 수 있거나, 또는 각각의 프로세서는 서로 독립적인 칩일 수 있다.
메모리(260)는 컴퓨터 프로그램 외에도 다른 데이터(296)를 더 저장한다. 다른 데이터(296)는 시스템 데이터(예를 들어, 운영 체제(294)의 구성 파라미터) 및 사용자 데이터와 같은, 운영 체제(294) 또는 애플리케이션(292)의 실행 동안 생성된 데이터를 포함할 수 있다.
메모리(260)는 일반적으로 내부 메모리 및 외부 메모리를 포함한다. 내부 메모리는 랜덤 액세스 메모리(random access memory)(RAM), 판독 전용 메모리(read-only memory)(ROM), 캐시(cache) 등을 포함하지만 이에 제한되지는 않는다. 외부 메모리는 플래시 메모리(flash memory), 하드 디스크, 범용 직렬 버스(universal serial bus)(USB) 디스크 등을 포함하지만 이에 제한되지는 않는다. 컴퓨터 프로그램은 일반적으로 외부 메모리에 저장된다. 컴퓨터 프로그램을 실행하기 전에, 프로세싱 유닛(250)은 이 프로그램을 외부 메모리로부터 내부 메모리로 로딩한다.
일 실시예에서, 운영 체제(294), 예를 들어, 리치 운영 체제 및 신뢰되는 운영 체제는 본 출원의 실시예에서 제공되는 사용자 인터페이스 디스플레이 방법을 구현하는 데 사용되는 컴퓨터 프로그램을 포함하며, 그에 따라, 프로세싱 유닛(250)은 운영 체제(294)를 실행한 후, 본 출원의 실시예에 따른 사용자 인터페이스 디스플레이 방법의 단계들을 구현하게 된다. 예를 들어, 전술한 실시예에서 설명한 뷰 관리자(173), 표면 결합기(175), TUI 서비스(150), 및 표면 결합기(160)는 컴퓨터 프로그램(명령어)을 사용하여 구현될 수 있다. 컴퓨터 프로그램(명령어)을 로딩 및 실행한 후, 프로세싱 유닛(250)은 이들 모듈의 각각의 기능을 구현한다.
입력 디바이스(230)는 숫자/문자 정보, 터치 동작, 또는 제스처와 같은 사용자 입력 정보를 수신하고 대응하는 입력 신호를 생성하도록 구성된다. 구체적으로, 일 실시예에서, 입력 디바이스(230)는 터치 패널을 포함한다. 터치스크린이라고 지칭되기도 하는 터치 패널은 터치 패널 상에서 사용자의 터치 동작을 수집하고, 사용자의 동작에 응답하기 위해 관련 컴포넌트를 구동하기 위한 터치 신호를 생성할 수 있다. 터치 패널 이외에도, 입력 디바이스(230)는 물리적 키보드, 기능 키(예를 들어, 볼륨 제어 누름 키 또는 스위치 누름 키), 트랙킹 볼, 마우스, 조이스틱 등 중 하나 이상을 포함하지만 이에 제한되지는 않는 다른 입력 디바이스를 추가로 포함할 수 있다.
디스플레이 디바이스(240)는 액정 디스플레이(liquid crystal display)(LCD) 또는 유기 발광 다이오드(organic light emitting diode)(OLED)와 같은 디스플레이 패널일 수 있다. 일부 실시예에서, 터치 패널은 터치 디스플레이 스크린을 형성하도록 디스플레이 디바이스(240)를 덮을 수 있다.
통신 서브 시스템(210)은 단말기 디바이스(200)의 기본 통신 유닛이며, 단말기 디바이스(200)의 데이터를 송신 및 수신하도록 구성된다. 전원(220)은 전술한 컴포넌트에 전력을 공급하도록 구성되며, 구체적으로 전원 관리 칩일 수 있다.
단말기 디바이스(200)가 무선 단말기인 경우, 통신 서브 시스템(210)은 무선 모뎀(wireless modem)을 포함하며, 주로 베이스밴드 프로세싱, 변조 및 복조, 신호 증폭 및 필터링, 및 이퀄라이제이션과 같은 기능을 구현한다. 일 실시예에서, 통신 서브 시스템(210)은 베이스밴드 프로세서, 무선 주파수 회로, 및 안테나를 포함한다. 무선 주파수 회로와 안테나는 주로 신호의 송신 및 수신을 담당한다. 베이스밴드 프로세서는 신호 A/D 및 D/A 변환, 신호 인코딩 및 디코딩과 같은 신호 프로세싱을 담당한다. 베이스밴드 프로세서는 하나 이상의 무선 통신 표준을 지원한다. 본원의 무선 통신 표준은 글로벌 모바일 통신 시스템(global system for mobile communications)(GSM), 코드 분할 다중 액세스(code division multiple access)(CDMA), 광대역 코드 분할 다중 액세스(wideband code division multiple access)(WCDMA), 고속 패킷 액세스(high speed packet access)(HSPA), 롱텀에볼루션(LTE) 등을 포함하지만 이에 제한되지는 않는다. 베이스밴드 프로세서는 독립적인 칩일 수 있거나, 프로세싱 유닛(250)에 포함된 프로세서와 함께 동일한 칩으로 통합될 수 있다.
선택적으로, 단말기 디바이스(200)는 가속도 센서 또는 광 센서와 같은 하나 이상의 센서(280)를 더 포함한다.
본 출원의 실시예에서 제공되는 사용자 인터페이스 디스플레이 방법은 단말기 디바이스(200)의 소프트웨어, 하드웨어, 및/또는 펌웨어의 적절한 조합에 의해 수행될 수 있다. 예를 들어, 도 9에 도시된 운영 체제(294)는 필요한 하드웨어와 조합하여 구현될 수 있다.
또한, 본 기술 분야의 기술자는 단말기 디바이스(200)가 도 9에 도시된 것보다 더 적거나 더 많은 컴포넌트를 포함할 수 있음을 이해할 수 있다. 도 9에 도시된 단말기 디바이스(200)는 본 출원의 실시예에 개시된 복수의 구현예와 더 관련된 컴포넌트을 포함할 뿐이다.
전술한 실시예에서 설명된 사용자 인터페이스 디스플레이 방법에 기반하여, 본 출원의 실시예는 단말기 디바이스(400)를 추가로 제공한다. 도 10에 도시된 바와 같이, 단말기 디바이스(400)는 프로세싱 회로(402), 및 프로세싱 회로(402)에 연결된 통신 인터페이스(404) 및 저장 매체(406)를 포함한다.
프로세싱 회로(402)는 데이터를 프로세싱하고, 데이터 액세스 및 저장을 제어하고, 커맨드를 전달하고, 동작을 수행하는 다른 컴포넌트를 제어하도록 구성된다. 프로세싱 회로(402)는 하나 이상의 프로세서, 하나 이상의 컨트롤러, 및/또는 프로그램을 실행하도록 구성될 수 있는 다른 구조로서 구현될 수 있다. 프로세싱 회로(402)는 구체적으로 범용 프로세서, 디지털 신호 프로세서(digital signal processor)(DSP), 주문형 집적 회로(application-specific integrated circuit)(ASIC), 필드 프로그래머블 게이트 어레이(field-programmable gate array)(FPGA), 또는 다른 프로그래머블 로직 컴포넌트 중 적어도 하나를 포함할 수 있다. 범용 프로세서는 마이크로프로세서, 및 임의의 종래의 프로세서, 컨트롤러, 마이크로 컨트롤러, 또는 상태 머신을 포함할 수 있다. 프로세싱 회로(402)는 컴퓨팅 요소, 예를 들어, DSP와 마이크로프로세서의 조합으로서 구현될 수 있다.
저장 매체(406)는 비 일시적인 컴퓨터 판독 가능 저장 매체(non-transitory computer-readable storage medium), 예컨대, 자기 저장 디바이스(예를 들어, 하드 디스크, 플로피 디스크, 또는 자기 스트라이프), 광학 저장 매체(예를 들어, 디지털 다기능 디스크(digital versatile disc)(DVD)), 스마트 카드, 플래시 메모리 디바이스, RAM, ROM, 및 프로그래머블 판독 전용 메모리(programmable read-only memory)(PROM), 소거 가능 프로그래머블 판독 전용 메모리(erasable programmable read-only memory)(EPROM), 레지스터, 및 이들의 임의의 조합을 포함할 수 있다. 저장 매체(406)는 프로세싱 회로(402)에 연결될 수 있어, 프로세싱 회로(402)는 저장 매체(406)로부터 정보를 판독하고 정보를 저장 매체(406)에 기입할 수 있게 된다. 구체적으로, 저장 매체(406)는 프로세싱 회로(402)에 통합될 수 있거나, 저장 매체(406)와 프로세싱 회로(402)는 분리될 수 있다.
통신 인터페이스(404)는 단말기 디바이스(400)와 하나 이상의 네트워크 디바이스(예를 들어, 라우터, 스위치, 액세스 포인트 등) 간의 상호 통신을 구현하기 위한 회로 및/또는 프로그램을 포함할 수 있다. 통신 인터페이스(404)는 적어도 하나의 수신 회로(416) 및/또는 적어도 하나의 송신 회로(418)를 포함한다. 일 실시예에서, 통신 인터페이스(404)는 무선 모뎀에 의해 완전히 또는 부분적으로 구현될 수 있다.
일 실시예에서, 저장 매체(406)는 프로그램(명령어)(420)을 저장한다. 프로세싱 회로(402)는 저장 매체(406)에 저장된 프로그램(명령어)(420)을 실행하여, 본 출원의 임의의 방법 실시예에서의 일부 또는 모든 단계를 구현하도록 구성된다.
본 출원의 실시예는 컴퓨터 판독 가능 저장 매체를 더 제공한다. 컴퓨터 판독 가능 저장 매체는 본 출원의 임의의 방법 실시예에서의 방법의 단계를 구현하는 코드, 명령어, 또는 프로그램을 저장한다.
편리하고 간단한 설명을 목적으로, 전술한 장치 및 유닛의 상세한 작업 처리에 대해, 전술한 방법 실시예에서의 대응하는 프로세싱이 참조될 수 있으며, 그 세부사항은 여기서 다시 설명되지 않는다는 것이 본 기술 분야의 기술자라면 명확하게 이해될 수 있다.
본 출원의 실시예에서 제공되는 사용자 인터페이스 디스플레이 방법은 또한 이중 도메인 시스템을 갖는 디바이스에도 적용될 수 있다. 이 디바이스는 서로 격리되는 비보안 도메인 및 보안 도메인을 포함한다. 보안 도메인의 보안 레벨은 비보안 도메인의 보안 레벨보다 높다. 전술한 실시예에서 설명된 TEE 및 REE와 유사하게, 비보안 도메인에서 실행되는 애플리케이션은 또한 특정 인터페이스를 사용하여 보안 도메인 내의 서비스를 요청할 수 있다. 비보안 도메인 내의 그래픽 서비스 또는 컴포넌트는 애플리케이션의 사용자 인터페이스 내에 포함된 공통 컨트롤을 렌더링하여, 하나 이상의 비보안 표면을 획득한다. 보안 도메인 내의 그래픽 서비스 또는 컴포넌트는 사용자 인터페이스 내에 포함된 커스텀화된 보안 컨트롤을 렌더링하여, 하나 이상의 보안 표면을 획득한다. 최종적으로, 보안 도메인 합성 내의 그래픽 서비스 또는 컴포넌트가 보안 도메인에서, 보안 표면 및 비보안 표면을 합성한 후, 합성된 표면은 디스플레이를 사용함으로써 디스플레이된다. 보안 도메인 및 비보안 도메인 내의 컨트롤을 렌더링하는 것과 표면을 합성하는 것에 대한 특정 구현 세부 사항에 대해서는 전술한 방법 실시예가 참조된다. 세부 사항은 여기에 다시 기술되지는 않는다.
본 출원에 제공된 몇몇 실시예에서, 개시된 장치 및 방법은 다른 방식으로 구현될 수 있다는 것을 이해해야 한다. 예를 들어, 설명된 장치 실시예는 예에 불과할 뿐이다. 예를 들어, 유닛의 분할은 논리적인 기능 분할에 불과할 뿐이다. 실제 구현예에는 다른 분할이 있을 수 있다. 예를 들어, 복수의 유닛 또는 컴포넌트가 결합될 수 있거나, 또는 다른 시스템 내에 통합될 수 있거나, 또는 일부 특징이 무시되거나 수행되지 않을 수 있다. 또한, 표시되거나 설명된 상호 결합 또는 직접 결합 또는 통신 연결은 일부 인터페이스를 통해 구현될 수 있다. 장치들 또는 유닛들 간의 간접 결합 또는 통신 연결은 전자적, 기계적, 또는 다른 형태로 구현될 수 있다.
또한, 본 출원의 실시예에서의 기능 유닛들은 하나의 프로세싱 유닛 내에 통합될 수 있거나, 또는 유닛들은 물리적으로 분리될 수도 있거나, 또는 두 개 이상의 유닛들은 하나의 유닛으로 통합될 수도 있다.
기능이 소프트웨어 기능 유닛의 형태로 구현되고 독립적인 제품으로서 판매되거나 사용되는 경우, 그 기능은 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 이러한 이해에 기반하여, 본 출원의 필수적인 기술적 솔루션, 또는 선행 기술에 기여하는 부분, 또는 기술적 솔루션의 일부는 컴퓨터 소프트웨어 제품의 형태로 구현될 수 있다. 컴퓨터 소프트웨어 제품은 저장 매체에 저장되며, 컴퓨터 디바이스(퍼스널 컴퓨터, 서버, 네트워크 디바이스 등일 수 있음)가 본 출원의 실시예에 설명된 방법의 모든 단계 또는 일부를 수행하도록 지시하는 명령어를 포함한다. 전술한 저장 매체는 USB 플래시 드라이브, 이동식 하드 디스크, ROM, RAM, 또는 컴팩트 디스크와 같이, 프로그램 코드를 저장할 수 있는 다양한 매체를 포함한다.

Claims (18)

  1. 단말기 디바이스 상에 사용자 인터페이스를 디스플레이하는 방법으로서,
    상기 단말기 디바이스는 신뢰되는 실행 환경(trusted execution environment)(TEE) 및 리치 실행 환경(rich execution environment)(REE)을 포함하고, 리치 운영 체제(rich operating system) 및 클라이언트 애플리케이션(client application)(CA)은 상기 REE에서 실행되고, 신뢰되는 운영 체제(trusted operating system)는 상기 TEE에서 실행되며, 상기 CA의 사용자 인터페이스는 공통 컨트롤 및 보안 컨트롤을 포함하고;
    상기 방법은:
    상기 리치 운영 체제에 의해, 상기 사용자 인터페이스 내의 상기 공통 컨트롤을 렌더링하여, 제 1 표면을 획득하는 단계;
    상기 신뢰되는 운영 체제에 의해, 상기 사용자 인터페이스 내의 상기 보안 컨트롤을 렌더링하여, 제 2 표면을 획득하는 단계; 및
    상기 신뢰되는 운영 체제에 의해, 상기 제 1 표면 및 상기 제 2 표면을 합성하여, 상기 공통 컨트롤 및 상기 보안 컨트롤을 포함하는 합성 표면을 획득하고, 상기 합성 표면을 디스플레이를 사용함으로써 디스플레이하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 리치 운영 체제에 의해, 상기 사용자 인터페이스 내의 상기 공통 컨트롤을 렌더링하는 단계는:
    상기 공통 컨트롤에 대한 측정 동작을 수행하여, 상기 공통 컨트롤의 크기를 결정하는 단계;
    상기 공통 컨트롤에 대한 레이아웃 동작을 수행하여, 상기 공통 컨트롤의 디스플레이 포지션을 결정하는 단계; 및
    상기 공통 컨트롤의 상기 결정된 크기 및 디스플레이 포지션에 기반하여 상기 공통 컨트롤을 드로잉하여, 상기 제 1 표면을 획득하는 단계 - 상기 제 1 표면은 상기 리치 운영 체제의 프레임 버퍼 내에 존재함 - 를 포함하는
    방법.
  3. 제1항 또는 제2항에 있어서,
    상기 리치 운영 체제에 의해, 상기 TEE에 의해 제공되는 클라이언트 인터페이스(client interface)(Client API)를 호출함으로써 상기 보안 컨트롤에 대한 정보를 상기 신뢰되는 운영 체제로 전송하는 단계를 더 포함하는
    방법.
  4. 제3항에 있어서,
    상기 신뢰되는 운영 체제에 의해, 상기 사용자 인터페이스 내의 상기 보안 컨트롤을 렌더링하여, 제 2 표면을 획득하는 단계는:
    상기 신뢰되는 운영 체제에 의해, 상기 보안 컨트롤에 대한 정보에 기반하여 상기 보안 컨트롤에 대한 측정 및 레이아웃 동작을 수행하여, 상기 보안 컨트롤의 크기 및 디스플레이 포지션을 결정하는 단계; 및
    상기 보안 컨트롤의 상기 결정된 크기 및 디스플레이 포지션에 기반하여 상기 보안 컨트롤을 드로잉하여, 상기 제 2 표면을 획득하는 단계 - 상기 제 2 표면은 상기 신뢰되는 운영 체제의 프레임 버퍼 내에 존재함 - 를 포함하는
    방법.
  5. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 신뢰되는 운영 체제에 의해, 상기 제 1 표면 및 상기 제 2 표면을 합성하여, 상기 공통 컨트롤 및 상기 보안 컨트롤을 포함하는 합성 표면을 획득하는 단계는:
    상기 신뢰되는 운영 체제에 의해, 통신 에이전트를 사용함으로써 상기 리치 운영 체제에 의해 전송되는 상기 제 1 표면을 획득하는 단계; 및
    상기 신뢰되는 운영 체제에 의해, 상기 제 1 표면 상에 상기 제 2 표면을 합성하여, 상기 합성 표면을 획득하는 단계 - 상기 합성 표면은 상기 신뢰되는 운영 체제의 상기 프레임 버퍼 내에 존재함 - 를 포함하는
    방법.
  6. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 신뢰되는 운영 체제에 의해, 상기 제 1 표면 및 상기 제 2 표면을 합성하여, 상기 공통 컨트롤 및 상기 보안 컨트롤을 포함하는 합성 표면을 획득하는 단계는:
    상기 신뢰되는 운영 체제에 의해, 통신 에이전트를 사용함으로써 상기 리치 운영 체제의 상기 프레임 버퍼를 구성하며 상기 리치 운영 체제에 의해 전송되는 어드레스를 획득하는 단계; 및
    상기 신뢰되는 운영 체제에 의해, 상기 어드레스에 기반하여 상기 리치 운영 체제의 상기 프레임 버퍼 내의 상기 제 1 표면에 액세스하고, 상기 제 1 표면 및 상기 제 2 표면을 합성하여, 상기 합성 표면을 획득하는 단계 - 상기 합성 표면은 상기 신뢰되는 운영 체제의 상기 프레임 버퍼 내에 존재함 - 를 포함하는
    방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 리치 운영 체제는 복수의 프레임 버퍼를 포함하고;
    상기 리치 운영 체제에 의해, 상기 사용자 인터페이스 내의 상기 공통 컨트롤을 렌더링하여, 제 1 표면을 획득하는 단계는:
    상기 리치 운영 체제에 의해, 상기 사용자 인터페이스 내의 상기 공통 컨트롤을 렌더링하여, 복수의 중간 표면을 획득하는 단계 - 각각의 중간 표면은 독립적인 프레임 버퍼 내에 개별적으로 존재함 -; 및
    상기 리치 운영 체제에 의해, 하드웨어를 호출함으로써 상기 복수의 중간 표면을 상기 제 1 표면으로 결합시키는 단계를 포함하는
    방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 리치 운영 체제에 의해, 상기 사용자 인터페이스에 대응하는 소스 코드 또는 레이아웃 파일을 파싱하여, 상기 사용자 인터페이스 내에 포함되는 상기 공통 컨트롤 및 상기 보안 컨트롤을 결정하는 단계를 더 포함하는
    방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 보안 컨트롤은 보안 라벨을 가지며, 상기 리치 운영 체제는 상기 보안 라벨에 기반하여 상기 보안 컨트롤을 상기 공통 컨트롤과 구별하는
    방법.
  10. 서로 격리된 신뢰되는 실행 환경(trusted execution environment)(TEE)과 리치 실행 환경(rich execution environment)(REE)을 포함하는 단말기 디바이스로서,
    리치 운영 체제(rich operating system)와 클라이언트 애플리케이션(client application)(CA)은 상기 REE에서 실행되고, 신뢰되는 운영 체제(trusted operating system)는 상기 TEE에서 실행되며, 상기 CA의 사용자 인터페이스는 공통 컨트롤 및 보안 컨트롤을 포함하고;
    상기 리치 운영 체제는 상기 사용자 인터페이스 내의 상기 공통 컨트롤을 렌더링하여, 제 1 표면(surface)을 획득하도록 구성되며;
    상기 신뢰되는 운영 체제는: 상기 사용자 인터페이스 내의 상기 보안 컨트롤을 렌더링하여, 제 2 표면을 획득하고; 상기 제 1 표면과 상기 제 2 표면을 합성하여, 상기 공통 컨트롤 및 상기 보안 컨트롤을 포함하는 합성 표면을 획득하고, 상기 합성 표면을 디스플레이를 사용함으로써 디스플레이하도록 구성되는
    단말기 디바이스.
  11. 제10항에 있어서,
    상기 리치 운영 체제는:
    상기 공통 컨트롤에 대한 측정 동작을 수행하여, 상기 공통 컨트롤의 크기를 결정하도록 구성되는 측정 모듈;
    상기 공통 컨트롤에 대한 레이아웃 동작을 수행하여, 상기 공통 컨트롤의 디스플레이 포지션을 결정하도록 구성되는 레이아웃 모듈; 및
    상기 공통 컨트롤의 상기 결정된 크기 및 디스플레이 포지션에 기반하여 상기 공통 컨트롤을 드로잉하여, 상기 제 1 표면을 획득하도록 구성되는 드로잉 모듈 - 상기 제 1 표면은 상기 리치 운영 체제의 프레임 버퍼 내에 존재함 - 을 포함하는
    단말기 디바이스.
  12. 제10항 또는 제11항에 있어서,
    상기 리치 운영 체제는 상기 보안 컨트롤에 대한 정보를 상기 신뢰되는 운영 체제로 전송하도록 구성되는 통신 에이전트를 더 포함하는
    단말기 디바이스.
  13. 제12항에 있어서,
    상기 신뢰되는 운영 체제는:
    상기 보안 컨트롤에 대한 정보에 기반하여 상기 보안 컨트롤에 대한 측정 동작을 수행하여, 상기 보안 컨트롤의 크기 및 디스플레이 포지션을 결정하도록 구성되는 측정 모듈;
    상기 보안 컨트롤에 대한 레이아웃 동작을 수행하여, 상기 보안 컨트롤의 상기 디스플레이 포지션을 결정하도록 구성되는 레이아웃 모듈; 및
    상기 보안 컨트롤의 상기 결정된 크기 및 디스플레이 포지션에 기반하여 상기 보안 컨트롤을 드로잉하여, 상기 제 2 표면을 획득하도록 구성되는 드로잉 모듈 - 상기 제 2 표면은 상기 신뢰되는 운영 체제의 프레임 버퍼 내에 존재함 - 을 포함하는
    단말기 디바이스.
  14. 제12항 또는 제13항에 있어서,
    상기 통신 에이전트는 상기 리치 운영 체제의 상기 프레임 버퍼 내의 상기 제 1 표면을 상기 신뢰되는 운영 체제의 상기 프레임 버퍼와 동기화시키도록 더 구성되고; 상기 신뢰되는 운영 체제는 상기 제 1 표면 상에 상기 제 2 표면을 합성하여, 상기 합성 표면을 획득하도록 구성되는 결합 모듈을 더 포함하고, 상기 합성 표면은 상기 신뢰되는 운영 체제의 상기 프레임 버퍼 내에 존재하는
    단말기 디바이스.
  15. 제12항 또는 제13항에 있어서,
    상기 통신 에이전트는 상기 리치 운영 체제의 상기 프레임 버퍼의 어드레스를 상기 신뢰되는 운영 체제로 전송하도록 더 구성되고; 상기 신뢰되는 운영 체제는 상기 어드레스에 기반하여 상기 리치 운영 체제의 상기 프레임 버퍼 내의 제 1 표면에 액세스하고, 상기 제 1 표면과 상기 제 2 표면을 합성하여, 합성 표면을 획득하도록 구성되는 결합 모듈을 더 포함하고, 상기 합성 표면은 상기 신뢰되는 운영 체제의 상기 프레임 버퍼 내에 존재하는
    단말기 디바이스.
  16. 제10항 내지 제15항 중 어느 한 항에 있어서,
    상기 보안 컨트롤은 보안 라벨을 가지며, 상기 리치 운영 체제는 상기 보안 라벨에 기반하여 상기 보안 컨트롤을 상기 공통 컨트롤과 구별하도록 더 구성되는
    단말기 디바이스.
  17. 프로세서, 메모리, 및 상기 메모리에 저장되고 상기 프로세서에 의해 실행될 수 있는 컴퓨터 프로그램을 포함하는 단말기 디바이스로서,
    상기 프로세서가 상기 프로그램을 실행할 때, 제1항 내지 제10항 중 어느 한 항에 따른 방법의 단계들이 구현되는
    단말기 디바이스.
  18. 컴퓨터 프로그램(명령어)을 저장하는 컴퓨터 판독 가능 저장 매체로서,
    상기 프로그램(명령어)이 프로세서에 의해 실행될 때, 제1항 내지 제10항 중 어느 한 항에 따른 방법의 단계들이 구현되는
    컴퓨터 판독 가능 저장 매체.
KR1020207010786A 2018-06-20 2019-05-17 사용자 인터페이스 디스플레이 방법 및 단말기 디바이스 Ceased KR20200052950A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810637260.8A CN110618847A (zh) 2018-06-20 2018-06-20 一种用户界面的显示方法和终端设备
CN201810637260.8 2018-06-20
PCT/CN2019/087338 WO2019242440A1 (zh) 2018-06-20 2019-05-17 一种用户界面的显示方法和终端设备

Publications (1)

Publication Number Publication Date
KR20200052950A true KR20200052950A (ko) 2020-05-15

Family

ID=68920741

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207010786A Ceased KR20200052950A (ko) 2018-06-20 2019-05-17 사용자 인터페이스 디스플레이 방법 및 단말기 디바이스

Country Status (6)

Country Link
US (1) US20200234275A1 (ko)
EP (1) EP3678021B1 (ko)
JP (1) JP6974604B2 (ko)
KR (1) KR20200052950A (ko)
CN (1) CN110618847A (ko)
WO (1) WO2019242440A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12112321B2 (en) * 2019-11-28 2024-10-08 Qualcomm Incorporated Systems and methods for implementing a secure user interface
CN111148070B (zh) * 2019-12-31 2021-06-15 华为技术有限公司 V2x通信方法、装置及车辆
CN111625237B (zh) * 2020-04-30 2023-05-30 上海艾麒信息科技有限公司 文字视觉变形方法、系统及介质
US11741219B2 (en) * 2020-09-08 2023-08-29 Truepic Inc. Protocol and system for tee-based authenticating and editing of mobile-device captured visual and audio media
JP7587691B2 (ja) * 2020-09-29 2024-11-20 華為技術有限公司 アプリケーションインターフェースレイアウト方法および電子デバイス
CN112540761B (zh) * 2020-12-11 2024-06-25 网易(杭州)网络有限公司 控件的显示控制方法和装置
CN115048148A (zh) * 2021-03-09 2022-09-13 华为技术有限公司 一种应用运行方法及电子设备
CN113032080B (zh) * 2021-03-31 2023-06-27 广州虎牙科技有限公司 页面实现方法、应用程序、电子设备及存储介质
CN115480762B (zh) * 2021-05-31 2025-12-30 华为技术有限公司 显示视图控件的方法及装置
CN115686700B (zh) * 2021-07-30 2025-11-28 华为技术有限公司 渲染方法及电子设备
JP7829829B2 (ja) * 2021-10-27 2026-03-16 日本電気株式会社 安全なエンクレーブマイグレーションのための方法およびホストシステム
CN113821803B (zh) * 2021-11-24 2022-02-15 飞腾信息技术有限公司 安全架构系统、安全管理方法和计算设备
CN114356324B (zh) * 2021-12-16 2025-01-03 阿里巴巴(中国)有限公司 界面处理方法、装置、设备和存储介质
CN118797752A (zh) * 2022-01-17 2024-10-18 荣耀终端有限公司 信息处理方法和装置
CN114611098B (zh) * 2022-03-24 2026-02-27 联想(北京)有限公司 信息处理方法、装置及电子设备
CN115107515B (zh) * 2022-06-30 2026-01-23 亿咖通(湖北)技术有限公司 一种仪表信息显示方法、装置、设备和存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020044A (ja) * 1998-07-03 2000-01-21 Hitachi Ltd 画像処理装置
WO2005079039A1 (en) * 2004-02-09 2005-08-25 Palmsource, Inc. A system and method of format negotiation in a computing device
KR101925806B1 (ko) * 2011-12-02 2018-12-07 삼성전자 주식회사 보안 방법 및 장치
US20130145475A1 (en) * 2011-12-02 2013-06-06 Samsung Electronics Co., Ltd. Method and apparatus for securing touch input
US20130301830A1 (en) * 2012-05-08 2013-11-14 Hagai Bar-El Device, system, and method of secure entry and handling of passwords
JP2013242644A (ja) * 2012-05-18 2013-12-05 Panasonic Corp 仮想計算機システム、制御方法、およびプログラム
CN104133670B (zh) * 2014-06-30 2017-06-09 中国科学院信息工程研究所 一种基于虚拟隔离技术的智能终端安全gui生成方法
CN104809413A (zh) * 2015-05-13 2015-07-29 上海瓶钵信息科技有限公司 基于TrustZone技术的移动平台可信用户界面框架
EP3424194B1 (en) * 2016-03-01 2020-12-02 Qualcomm Incorporated User interface for tee execution of a device
CN107292807B (zh) * 2016-03-31 2020-12-04 阿里巴巴集团控股有限公司 一种图形合成方法、窗口设置方法及系统
CN107066888B (zh) * 2017-04-21 2020-04-21 北京豆荚科技有限公司 可扩展的可信用户接口、方法和电子设备
KR102514062B1 (ko) * 2018-02-27 2023-03-24 삼성전자주식회사 트러스트존 그래픽 렌더링 방법 및 그에 따른 디스플레이 장치

Also Published As

Publication number Publication date
JP2021501388A (ja) 2021-01-14
CN110618847A (zh) 2019-12-27
WO2019242440A1 (zh) 2019-12-26
US20200234275A1 (en) 2020-07-23
EP3678021A4 (en) 2020-12-30
EP3678021A1 (en) 2020-07-08
EP3678021B1 (en) 2023-07-26
JP6974604B2 (ja) 2021-12-01

Similar Documents

Publication Publication Date Title
KR20200052950A (ko) 사용자 인터페이스 디스플레이 방법 및 단말기 디바이스
JP6553083B2 (ja) 複数ログインによるブラウザ・ベースの本人情報
US20150088982A1 (en) Load balanced inter-device messaging
EP3069544B1 (en) Protecting privacy in web-based immersive augmented reality
JP6053786B2 (ja) Arm(登録商標)トラストゾーン実施のためのファームウェア基盤トラステッドプラットフォームモジュール(tpm)
KR101741293B1 (ko) 동적 입력 장치의 맥락 제어 기법
KR102327782B1 (ko) 전자 장치 및 커널 데이터 접근 방법
US20160344745A1 (en) Method and protocol for secure device deployment using a partially-encrypted provisioning file
US9842091B2 (en) Switching to and from native web applications
US20130185351A1 (en) System and method for remotely operating a wireless device using a server and client architecture
US10885229B2 (en) Electronic device for code integrity checking and control method thereof
CN113018868B (zh) 云游戏登录方法、装置和系统
CN104133670B (zh) 一种基于虚拟隔离技术的智能终端安全gui生成方法
CN115017497B (zh) 信息处理方法、装置及存储介质
US20150121516A1 (en) Authenticating input in trusted execution mode
US10733005B1 (en) Providing access to mobile applications by heterogeneous devices
US11847718B2 (en) Per-window digital watermark for desktop applications
EP3550462B1 (en) Security system and method for protecting against malicious code
US20180145948A1 (en) Security network system and data processing method therefor
US12475267B2 (en) Information processing method and apparatus for obtaining a display result by a terminal device
Chai et al. TEEI-A Mobile Security Infrastructure for TEE Integration
CN116700694B (zh) 小程序引擎
US20250103177A1 (en) Application clone-based interface display method and related apparatus
Danisevskis Accelerated secure GUI for virtualized mobile handsets
Liu Enhanced Password Security on Mobile Devices.

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
PA0105 International application

Patent event date: 20200414

Patent event code: PA01051R01D

Comment text: International Patent Application

PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20200414

Comment text: Request for Examination of Application

PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20210329

Patent event code: PE09021S01D

AMND Amendment
E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20211029

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20210329

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I

X091 Application refused [patent]
AMND Amendment
PX0901 Re-examination

Patent event code: PX09011S01I

Patent event date: 20211029

Comment text: Decision to Refuse Application

Patent event code: PX09012R01I

Patent event date: 20210614

Comment text: Amendment to Specification, etc.

Patent event code: PX09012R01I

Patent event date: 20200414

Comment text: Amendment to Specification, etc.

PX0601 Decision of rejection after re-examination

Comment text: Decision to Refuse Application

Patent event code: PX06014S01D

Patent event date: 20220126

Comment text: Amendment to Specification, etc.

Patent event code: PX06012R01I

Patent event date: 20211222

Comment text: Decision to Refuse Application

Patent event code: PX06011S01I

Patent event date: 20211029

Comment text: Amendment to Specification, etc.

Patent event code: PX06012R01I

Patent event date: 20210614

Comment text: Notification of reason for refusal

Patent event code: PX06013S01I

Patent event date: 20210329

Comment text: Amendment to Specification, etc.

Patent event code: PX06012R01I

Patent event date: 20200414

X601 Decision of rejection after re-examination