JP6974604B2 - ユーザインタフェース表示方法及び端末デバイス - Google Patents

ユーザインタフェース表示方法及び端末デバイス Download PDF

Info

Publication number
JP6974604B2
JP6974604B2 JP2020517306A JP2020517306A JP6974604B2 JP 6974604 B2 JP6974604 B2 JP 6974604B2 JP 2020517306 A JP2020517306 A JP 2020517306A JP 2020517306 A JP2020517306 A JP 2020517306A JP 6974604 B2 JP6974604 B2 JP 6974604B2
Authority
JP
Japan
Prior art keywords
operating system
trusted
control
secure
rich
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.)
Active
Application number
JP2020517306A
Other languages
English (en)
Other versions
JP2021501388A (ja
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 JP2021501388A publication Critical patent/JP2021501388A/ja
Application granted granted Critical
Publication of JP6974604B2 publication Critical patent/JP6974604B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; 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/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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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; 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
    • 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/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)

Description

本願は、端末分野に関し、より具体的には、トラステッドユーザインタフェース表示方法及び端末デバイスに関する。
インテリジェント端末の振興と普及によって、モバイル決済が、人々の日常の消費における主な決済方式のうちの1つになっている。モバイル決済とは、ユーザが、消費した商品又はサービスの支払いを、モバイル端末(通常は携帯電話)を用いて行うサービス方式のことである。モバイル決済はユーザに利便性をもたらすが、モバイル決済のセキュリティが常に懸念されている。モバイル決済のアプリケーションは、通常、オープンなリッチ実行環境(Rich Execution Environment、REE)で動作する。REEは汎用動作環境とも呼ばれ、主に、汎用プロセッサで動作するリッチオペレーティングシステム(Rich Operating System、Rich OS)、例えば、Android(登録商標)又はiOS(登録商標)などの端末オペレーティングシステムを含む。そのようなオープンな環境によって、情報漏洩やマルウェア感染のチャネルが設けられるので、モバイル決済のセキュリティ要件を満たすのは困難である。例えばREEでは、アプリケーションによって表示される支払金額又は入力パスワードが、悪意のあるアプリケーションによって奪われ、様々な決済セキュリティ問題を引き起こすことがある。
この問題を解決するために、オープンモバイルターミナルの団体(Open Mobile Terminal Platform, OMTP)が、トラステッド実行環境(Trusted Execution Environment、TEE)の構想を提案した。2010年7月には、GlobalPlatform(GlobalPlatform(登録商標)、GP)が、TEE標準を提案した。TEEは、REEの外側で動作し且つREEから分離された、独立した動作環境である。TEEにある全てのアプリケーションは、専用にカスタマイズされたトラステッドアプリケーション(trusted application、TA)である。TAは、TEEの内部インタフェースを用いて、TEEのハードウェアリソース及びソフトウェアリソースにアクセスしてよい。クライアントアプリケーション(client application、CA)とも呼ばれる、REEにあるアプリケーションは、TEEのハードウェアリソース及びソフトウェアリソースに直接的にアクセスできない。REEにあるCAは、TEEによる識別情報の認証が成功した後にだけ、TEEにより提供されるアプリケーションプログラミングインタフェース(Application Programming Interface、API)を用いて、セキュアストレージ又はセキュアな表示/入力などの、TEEのリソース又はサービスを呼び出すことができる。このように、モバイル決済のシナリオでは、機密情報の入力及び表示が必要である場合、REE側のCAは、TEEにあるセキュアな表示/入力TAを呼び出して、GP仕様書を満たすトラステッドユーザインタフェース(Trusted User Interface、TUI)を表示してよく、これにより、ユーザがユーザの機密情報を入力し、例えば、個人識別番号(Personal Identification Number、PIN)を入力し、TUIを用いて取引情報を確認する。TUIが表示された後に、画面表示領域全体がTEEによって引き継がれ、当該表示領域へのREEのアクセスが完全に遮断されるので、REEにあるCAが悪意を持ってユーザの機密情報を横取りしたり盗んだりすることが防止される。
図1は、ユーザがTUIを用いて送金操作を行う一例を示す。図1に示すように、ユーザは、REE側のモバイルバンキングアプリケーションにログインし、送金金額などの情報を送金インタフェースに入力する。次に、ユーザがPINコードの入力および確認を行うと、アプリケーションは、TEE側にあるセキュアな表示/入力TAを特定のインタフェースを用いて呼び出し、TUIを表示する。ユーザがPINコードを入力し、TUIを用いて取引情報を確認した後に、画面の表示領域がREEに戻される。次に、REE側にあるモバイルバンキングアプリケーションは送金完了ページを表示して、取引処理全体が終了する。REE側にあるCAのUI表示と、TEE側にあるTUI表示とは、2つの独立した処理であることが、図1から分かる。TUIとCAインタフェースとは、密接に関連しているわけではなく、またスタイルに関して矛盾しているわけではない。さらに、TUIは画面全体に表示されて、画面表示領域全体をカバーする。したがって、TUIコントロールは、CAインタフェースにおける表示用のコントロールと互換性を有することはできない。例えば、TUIが表示されると、ユーザはステータスバー又はナビゲーションバーなどを見ることができないので、ユーザ体験に影響を与える。
本願は、ユーザインタフェース表示方法と端末デバイスとを提供し、トラステッドユーザインタフェース(Trusted User Interface、TUI)コントロールとクライアントアプリケーション(client application、CA)インタフェースコントロールとの互換表示を実装して、ユーザ体験を向上させる。
第1態様によれば、本願の一実施形態がユーザインタフェース表示方法を提供し、本方法は、トラステッド実行環境(Trusted Execution Environment, TEE)とリッチ実行環境(Rich Execution Environment, REE)とを含む端末デバイス又は別の類似デバイスに適用されてよい。リッチオペレーティングシステム及びクライアントアプリケーションがREEで動作する。トラステッドオペレーティングシステムがTEEで動作する。アプリケーションのユーザインタフェースが、共通コントロール(非セキュアコントロール)とセキュアコントロールとを含む。本方法は、リッチオペレーティングシステムがユーザインタフェースに共通コントロールをレンダリングして第1サーフェス(surface)を取得する段階と、トラステッドオペレーティングシステムがユーザインタフェースにセキュアコントロールをレンダリングして第2サーフェス(surface)を取得する段階と、トラステッドオペレーティングシステムが第1サーフェスと第2サーフェスとを合成して、セキュアコントロール及びネイティブコントロールの両方のグラフィック表現を含む複合サーフェスを取得する段階と、ディスプレイを用いて複合サーフェスを表示することによって、セキュアコントロール及び非セキュアコントロールの互換表示を実装する段階とを含む。このように、セキュア入力インタフェースが表示されるのと同時に、共通インタフェースコントロールも表示することができるので、ユーザ体験が向上する。
実行可能な一実装例において、リッチオペレーティングシステムは、グラフィック関連のサービス又はコンポーネントを用いて、共通コントロールに対して測定作業、レイアウト作業、及び描画作業を行い、共通コントロールのレンダリングを完了し、共通コントロールのレンダリング後に取得される非セキュアサーフェスをリッチオペレーティングシステムのフレームバッファにバッファリングする。
実行可能な一実装例において、リッチオペレーティングシステムは、通信エージェントを用いて、セキュアコントロールに関する情報をトラステッドオペレーティングシステムに転送する。
実行可能な一実装例において、リッチオペレーティングシステムの通信エージェントは、TEEにより提供されるクライアントインタフェース(Client API)を用いて、セキュアコントロールに関する情報をトラステッドオペレーティングシステムに転送する。
実行可能な一実装例において、トラステッドオペレーティングシステムは、セキュアコントロールに関する情報に基づいて、セキュアコントロールに対して測定(Measure)作業及びをレイアウト(layout)作業を行って、セキュアコントロールのサイズおよび表示位置を決定し、決定されたセキュアコントロールのサイズおよび表示位置に基づくセキュアコントロールを描画して第2サーフェスを取得する。この第2サーフェスは、トラステッドオペレーティングシステムのフレームバッファの中にある。
実行可能な一実装例において、リッチオペレーティングシステムは、通信エージェントを用いて、フレームバッファの中にある第1サーフェスをトラステッドオペレーティングシステムに送信する。トラステッドオペレーティングシステムは、第1サーフェスを取得した後に、第1サーフェスと第2サーフェスとを合成して複合サーフェスを取得する。この複合サーフェスは、トラステッドオペレーティングシステムのフレームバッファの中にある。
実行可能な一実装例において、リッチオペレーティングシステムは、通信エージェントを用いて、リッチオペレーティングシステムのフレームバッファのアドレスをトラステッドオペレーティングシステムに送信する。アドレスを取得した後に、トラステッドオペレーティングシステムは、このアドレスに基づいて、リッチオペレーティングシステムのフレームバッファの中にある第1サーフェスにアクセスし、第1サーフェスと第2サーフェスとを合成して複合サーフェスを取得する。この複合サーフェスは、トラステッドオペレーティングシステムのフレームバッファの中にある。
実行可能な一実装例において、トラステッドオペレーティングシステムは、リッチオペレーティングシステムのフレームバッファにアクセスしてよい。トラステッドオペレーティングシステムのフレームバッファには、リッチオペレーティングシステムがアクセスできない。
実行可能な一実装例において、リッチオペレーティングシステム及び/又はトラステッドオペレーティングシステムには、複数のフレームバッファがある。
実行可能な一実装例において、共通コントロールをレンダリングした後に、リッチオペレーティングシステムは複数のサーフェスを取得する。それぞれのサーフェスは別々のフレームバッファの中にある。リッチオペレーティングシステムは、グラフィック関連のハードウェアを呼び出すことで、複数のサーフェスを第1サーフェスにオフラインで結合する。次いで、トラステッドオペレーティングシステムは、第1サーフェスと第2サーフェスとを合成する。
実行可能な一実装例において、第1サーフェスと第2サーフェスとを合成する段階は、第1サーフェスに含まれる各ピクセルのパラメータと第2サーフェスに含まれる各ピクセルのパラメータとに基づいてパラメータ計算を行い、複合サーフェスの各ピクセルのパラメータを取得する段階を含む。
実行可能な一実装例において、このサーフェスのピクセルのパラメータはRGB値を含むが、これに限定されない。
第2態様によれば、本願の一実施形態が端末デバイスを提供する。本デバイスは、第1態様又は第1態様の任意の実装例による方法を実行するように構成された1つ又は複数の機能ユニットを含む。この機能ユニットは、ソフトウェアモジュールを用いて実装されてもよく、プロセッサなどのハードウェアを用いて実装されてもよく、ソフトウェアと必要なハードウェアとを組み合わせて実装されてもよい。
第3態様によれば、本願の一実施形態が端末デバイスを提供する。本デバイスは、メモリと、プロセッサと、メモリに格納されたコンピュータプログラムとを含む。このコンピュータプログラムを実行すると、プロセッサは、第1態様又は第1態様の任意の実装例による方法の各段階を実施する。
第4態様によれば、本願の一実施形態がコンピュータ可読記憶媒体を提供する。このコンピュータ可読記憶媒体は、コンピュータプログラム(命令)を格納する。プログラム(命令)がプロセッサによって実行されると、第1態様又は第1態様の任意の実装例による方法の各段階が実施される。
本願の前述の技術的解決手段によれば、コントロールレベルのTUIが提供されるので、ユーザインタフェースの非セキュアコントロールは、表示用のTUIセキュアコントロールと互換性があり、セキュア入力インタフェースが表示されるのと同時に、共通インタフェースコントロールも表示することができるので、ユーザ体験が向上する。
本願の実施形態における技術的解決手段をより明確に説明するために、以下では、本願の実施形態を説明するのに必要な添付図面を簡潔に説明する。
トラステッドユーザインタフェース(TUI)を用いた送金操作実行についての概略図である。
本願の一実施形態による端末デバイスの概略図である。
本願の一実施形態によるコントロールの概略図である。
本願の一実施形態によるユーザインタフェースにおけるコントロールのツリー構造である。
本願の一実施形態によるユーザインタフェース表示方法のフローチャートである。
本願の一実施形態による端末デバイスの概略構造図である。
本願の一実施形態による別の端末デバイスの概略構造図である。
本願の一実施形態によるTEEにおけるサーフェス結合器の動作原理図である。
本願の一実施形態による別の端末デバイスの概略構造図である。
本願の一実施形態による別の端末デバイスの概略構造図である。
以下では、本願の実施形態の添付図面を参照して、本願の実施形態における技術的解決手段を詳細に説明する。説明される実施形態は、本願の実施形態の全てではなく、ほんの一部にすぎないことは明らかである。
本願の一実施形態が、トラステッドユーザインタフェース(TUI)とクライアントアプリケーション(CA)のユーザインタフェースとの互換表示を実装するユーザインタフェース表示方法を提供する。本方法は、端末デバイスに適用されてよい。
本願の明細書、特許請求の範囲、及び添付図面において、簡潔にインタフェースと呼ばれる用語「ユーザインタフェース(user interface)」は、ユーザとアプリケーション又はオペレーティングシステムとの間のインタラクション及び情報交換に用いるグラフィカルインタフェースである。このユーザインタフェースは、ウィンドウ、ダイアログボックス、又は表示領域などであってもよい。アプリケーションのユーザインタフェースは、Java(登録商標)又は拡張マークアップ言語(extensible markup language、XML)などの特定のコンピュータ言語を用いて記述されたソースコードである。インタフェースソースコードは、端末デバイスで解析されてレンダリングされ、最終的に、写真、テキスト、又はボタンなどの、ユーザが識別できるコンテンツとして提示される。ビュー(view)は、ユーザインタフェースの視覚要素である。このビューは、コントロール(control)又はウィジェット(widget)とも呼ばれる。代表的なビューには、ボタン(button)、テキストフィールド(text field)、プログレスバー(Progress Bar)、キーボード(keyboard)、写真、及びテキストなどが含まれる。インタフェース内のコントロールの属性及びコンテンツが、タグ又はノードを用いて示される。例えば、XMLは、<Textview>、<ImgView>、又は<ButtonView>などのノードを用いて、インタフェースにコントロールを示す。インタフェースでは、ノードはコントロール又は属性に対応する。ノードは、解析されてレンダリングされた後に、ユーザ可視のコンテンツとして提示される。
本願の実施形態及び特許請求の範囲による端末デバイスは、音声接続及び/又はデータ接続をユーザに提供する、無線端末又は有線端末を含むデバイスである。無線端末は、無線アクセスネットワーク(Radio Access Network、RAN)を通じて、1つ又は複数のコアネットワークと通信してよい。無線端末は、携帯電話(又は「セルラ方式」電話と呼ばれる)などのモバイル端末でも、モバイル端末を有するコンピュータでもよく、例えば、携帯型、ポケットサイズ型、ハンドヘルド型、コンピュータ内蔵型、又は車載型のモバイル装置であってもよい。アプリケーションプログラミングインタフェース(Application Programming Interface、API)とも呼ばれるインタフェースは、コンピュータプログラムコードで実装される特定の機能のカプセル化であり、また抽象的表現である。アプリケーションは、このインタフェースを呼び出すことで、特定の機能を実装してよい。サービスは、ユーザインタフェースを提供せずにバックグランドで実行され得るアプリケーションコンポーネントである。このサービスは、別のアプリケーション又はアプリケーションコンポーネントによって開始され得る。
以下では、本願における端末デバイスを、添付図面を参照してより詳細に説明する。後置用語の「ユニット」及び「モジュール」は、単に説明を容易にするためのものであり、これらの後置用語は、互いに区別する意味又は機能を有していないことに留意されたい。
図2は、本願の一実施形態による端末デバイス100のアーキテクチャ図である。図2に示すように、端末デバイス100は、ハードウェアプラットフォーム110と、ハードウェアプラットフォーム100で動作する2つの分離された動作環境、すなわち、リッチ実行環境(Rich Execution Environment, REE)120及びトラステッド実行環境(Trusted Execution Environment, TEE)140とを含む。2つの動作環境はそれぞれ、独立したハードウェアリソースとオペレーティングシステムとを有する。REE120のハードウェアリソースとTEE140のハードウェアリソースとは、ARM(登録商標)のTrustZoneメカニズムなどのハードウェア分離技術を用いて分離することができる。さらに、REE120のオペレーティングシステムとTEE140のオペレーティングシステムとの間の分離、及びアプリケーション間の分離が、仮想化技術を用いて実装される。このように、TEE140によりアクセスされ得るソフトウェア及びハードウェアリソースが、REE120によりアクセスされ得るソフトウェア及びハードウェアリソースから分離され、アプリケーションによりアクセスされ得るデータ及び機能をTEE140が厳しく制限することによって、TEE140のセキュリティレベルが特定のセキュリティ要件を満たすことができる。したがって、TEE140は一般に、セキュア実行環境とみなされる。REE120は、TEE140の外側にある動作環境である。TEE140と比べて、REE120はセキュリティが低く、攻撃を受けやすい環境である。REE120で動作するアプリケーション、すなわち、クライアントアプリケーション(client application、CA)も信用できないとみなされる。
端末デバイス100のハードウェアプラットフォーム110は、パブリック周辺機器とトラステッド周辺機器とを含む。トラステッド周辺機器には、TEE140のみが制御しアクセスできる、セキュアメモリ、セキュアクロック、又はトラステッドキーボードなどのセキュアエレメント(Secure Element、SE)が含まれる。パブリック周辺機器は、REE120のリッチオペレーティングシステム(Rich Operating System、Rich OS)123が制御しアクセスできるデバイスである。
TEE140で動作するアプリケーション115が、トラステッドアプリケーション(Trusted Application、TA)である。TA115は、REE120のクライアントアプリケーション(client application、CA)113又はTEE140の別のTAに、セキュリティ関連の機能又はサービスを提供してよい。TEE140で動作するトラステッドオペレーティングシステム(Trusted Operating System、Trusted OS)143が、TA115にTEE内部インタフェース145を提供する。TA115は、TEE内部インタフェース145を用いて、セキュリティリソース及びサービスに対するアクセス許可を取得する。セキュリティリソース及びサービスは、キーインジェクション管理、暗号化、セキュアストレージ、セキュアクロック、トラステッドユーザインタフェース(TUI)、及びトラステッドキーボードを含むが、これに限定されない。
リッチオペレーティングシステム123は、トラステッドオペレーティングシステム143よりリッチな特徴を提供する。リッチオペレーティングシステム123は非常にオープンであり、様々なタイプのアプリケーションを受け入れることができるが、リッチオペレーティングシステム123のセキュリティはまた、トラステッドオペレーティングシステム143より低い。リッチオペレーティングシステム123は、Android(登録商標)又はiOS(登録商標)などの端末オペレーティングシステムであってよい。REE120で動作するCA113は、TEEにより提供される外部インタフェース125を用いて、TEE140のTA115により提供されるセキュリティサービスを要求してよい。例えば、モバイル決済又はオンライン銀行送金などのシナリオでは、ユーザの機密情報の入力及び表示が必要な場合、REE120のアプリケーションが、TEEにより提供される外部インタフェース125を用いて、TEE140側のTUI及びトラステッドキーボードサービスを呼び出し、REE側のアプリケーションが悪意を持ってユーザの機密情報を横取りしたり盗んだりするのを防止してよい。
本願の全ての実施形態にあるREE、TEE、CA、TA、リッチOS、及びトラステッドOSなどの用語の定義については、GlobalPlatform(Global Platform(登録商標)、GP)により提案されたTEE関連の標準を参照されたい。本願の実施形態において提供されるユーザインタフェース表示方法は、TEEを有する端末デバイスに加えて、別のタイプのデバイス、例えば、デュアルドメインシステム(セキュリティドメイン及び非セキュリティドメイン)を有する端末デバイス又はコンピュータシステムにも適用されてよいことを理解されたい。
図2で説明される端末デバイス100に基づいて、本願の一実施形態が、ユーザインタフェースを端末デバイス100に表示する方法を提供する。このユーザインタフェースは、リッチオペレーティングシステム123とトラステッドオペレーティングシステム143との連携によって表示される。リッチオペレーティングシステム123は、アプリケーション開発者がユーザインタフェースを開発するための、リッチなネイティブ(native)コントロール(本願の実施形態では、「共通コントロール」又は「非セキュアコントロール」とも呼ばれる)を提供する。一例としてAndroid(登録商標)システムを用いて、図3に示すように、Android(登録商標)が、ボタン(button)、テキストフィールド(EditText)、ラジオボタン(RadioButton)、チェックボックス(CheckBox)、及びトグルボタン(ToggleButton)などの、複数のネイティブコントロールタイプを提供する。これらのネイティブコントロールタイプから得られるコントロールが、共通コントロール(非セキュアコントロール)である。アプリケーション開発者は、ビジュアル開発ツール又はXMLコードを用いてユーザインタフェースを構築できる。例えば、アプリケーション開発者は、これらのコントロールのうちの1つ又は複数が用いられ、且つコントロールの幅、高さ、又はIDなどの、コントロールの属性が設定されるレイアウトファイルで宣言してよい。以下に示すのは、テキストフィールドおよびボタンを含むXMLレイアウトファイルの一例である。
Figure 0006974604
リッチオペレーティングシステム123で提供されるネイティブコントロールに基づいて、カスタマイズされたセキュアコントロールがさらに、本願の本実施形態に追加され、TUI開発に用いられる。カスタマイズされたセキュアコントロールは、TEE140のインタフェースセキュリティ仕様書を満たし、いくつかのカスタマイズされた属性の構成をサポートする。さらに、カスタマイズされたコントロールに対応する処理方法又は機能、例えば、測定、レイアウト、又は描画などの方法が再度記述される必要がある。開発者は、カスタマイズされたセキュアコントロールのインスタンスを.xmlファイルに作成して編集することができる。一実施形態において、以下の表に示すセキュアコントロールがカスタマイズされてよい。
Figure 0006974604
アプリケーション開発者は、アプリケーションのユーザインタフェースを開発する場合、リッチオペレーティングシステム123により提供されるネイティブコントロールを用いてもよく、カスタマイズされたセキュアコントロールを用いてもよい。このように、共通コントロール及びカスタマイズされたセキュアコントロールの両方を含む複合ユーザインタフェースが開発され、開発の難しさを低減させることができる。
さらに、クライアントアプリケーション113がREE120で動作する場合、リッチオペレーティングシステム123は、ユーザインタフェースに含まれるコントロールとコントロールの属性とを、ユーザインタフェースに対応するソースコード及び/又はレイアウトファイルを解析することにより判定する。コントロールの属性は、コントロールのタイプ、コントロールの識別子、コントロールの幅、及びコントロールの高さなどを含むが、これに限定されない。ユーザインタフェースに含まれるコントロールは通常、ツリー構造に体系化される。具体的には、コントロールが互いに親子関係を有する。一例としてAndroid(登録商標)を用いると、Android(登録商標)のコントロールは、ViewGroupコントロール及びビューコントロールという、2つのタイプに分類される。ViewGroupは、親コントロールとして、複数のビューコントロールを含み、ViewGroupに含まれるこれらのコントロールを管理してよい。図4に示すように、ユーザインタフェース全体に含まれるコントロールが、コントロールツリーを論理的に形成する。上位層コントロールは、下位層コントロールのレンダリング処理とインタラクションイベントの転送とを担う。各コントロールツリーの上部には、ViewParentのオブジェクト、すなわち、コントロールツリーのコアがある。インタラクション管理イベントは全て、ViewParentによって集中方式でスケジューリングされる。
また、本願の一実施形態がさらに、共通コントロールとカスタマイズされたセキュアコントロールとを含むユーザインタフェースを互換表示する方法を提供し、本方法は以下に挙げる段階を含む。
段階510:リッチオペレーティングシステム123がユーザインタフェースに共通コントロールをレンダリングして、第1サーフェス(surface)を取得する。
段階530:リッチオペレーティングシステム123は、ユーザインタフェースのセキュアコントロールに関する情報をトラステッドオペレーティングシステム143に転送し、トラステッドオペレーティングシステム143はセキュアコントロールをレンダリングして第2サーフェスを取得する。
段階550:トラステッドオペレーティングシステム143は、第1サーフェスと第2サーフェスとを合成して複合サーフェスを取得する。この複合サーフェスは、共通コントロール及びセキュアコントロールを含む。共通コントロール及びセキュアコントロールを含む複合サーフェスは、本明細書では、共通コントロール及びセキュアコントロールの両方を含むグラフィック表現又はグラフィカルインタフェースであることを理解されたい。
段階570:トラステッドオペレーティングシステム143は、端末デバイス100のディスプレイに複合サーフェスを表示する。
一実施形態において、開発者は、セキュアコントロールを用いる場合、コントロールのサイズなどのセキュアコントロールに関連する情報を.xmlファイルに構成し、通信IDをクライアントアプリケーション113のソースファイル又はインストールパッケージに構成する必要がある。通信IDは、TEEにあるトラステッドアプリケーション115に対応する。セキュアコントロールに関する情報は、通信IDに基づいて、且つTEEにより提供される外部インタフェースを用いて、TEEにある対応するトラステッドアプリケーション115に転送されてよい。トラステッドアプリケーション115はさらに、トラステッドオペレーティングシステム143により提供される関連グラフィックサービス又はコンポーネントに基づいて、セキュアコントロールのレンダリング及び表示を完了する。
一実施形態では、段階510において、リッチオペレーティングシステム123は、共通コントロールに対応する方法を呼び出すことにより、コントロールに対してレンダリング処理を行う。共通コントロールに対応する方法は、ネイティブAPIを用いて、リッチオペレーティングシステム123により提供される。一実施形態では、図5に示すように、コントロールに対応する方法は、測定(measure)作業、レイアウト(layout)作業、及び描画(draw)作業を含む。測定作業は主に、コントロールのサイズ、すなわち、コントロールの幅及び長さを計算するのに用いられる。計算は、レイアウトファイルに構成される、幅及び高さなどの、コントロールの属性に基づいている。レイアウト作業は、コントロールのディスプレイ上の表示位置を設定するのに用いられる。例えば、一実施形態において、あるコントロールの当該コントロールの親コントロールに対する位置が、例えば、当該コントロールの上端、下端、左端、及び右端から、親コントロールの左上隅若しくは右上隅の頂点までの距離、又は当該コントロールの上端、下端、左端、及び右端から、親コントロールの上端、下端、左端、及び右端までの距離が、レイアウト作業を用いて計算されてよい。描画(draw)作業は、コントロールをフレームバッファに描画して第1サーフェスを取得するのに用いられる。測定作業及びレイアウト作業の計算結果が、パラメータの形態で記録されてよい。描画(draw)作業は、これらのパラメータに基づいてコントロールを描画するのに用いられてよい。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は、通信エージェントを用いて、トラステッドオペレーティングシステム143に第1サーフェス(非セキュアサーフェス)を送信してよい。トラステッドオペレーティングシステム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のみが制御でき且つアクセスできるバッファ空間であるが、リッチオペレーティングシステム123とREE120のアプリケーションはアクセスできない。結合モジュール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(登録商標)システムであり、アーキテクチャに関して、カーネル130と、ライブラリ(libraries)150と、アプリケーションフレームワーク(application framework)170とに分割されてよい。カーネル130は、基本的なシステムコンポーネント及びサービス、例えば、電力管理、メモリ管理、スレッド管理、ハードウェアドライバプログラム、及びアクセスプロキシ134を提供するのに用いられる。アクセスプロキシ134は主に、REE120とTEE140との間で通信を実施するのに用いられ、例えば、TEEにより提供されるインタフェースを用いて、REE120側に関する情報をTEE140に送信又は転送するのに用いられる。アクセスプロキシ134は、カーネルモードのプロセス又はスレッドである。例えば、アクセスプロキシ134の機能が、カーネルのTzdriverによって行われてよい。ライブラリ150は、実行可能プログラムが動作しているときに、実行可能プログラムにサポートを提供するプログラムライブラリであり、ブラウザエンジン(webkitなど)及びグラフィック処理エンジン(OpenGL ESなど)などを含む。フレームワーク170は、基本的な共通コンポーネント及びサービスを、ウィンドウ管理及びビュー管理などのアプリケーションに提供するのに用いられる。一実施形態において、フレームワーク170は、ビューマネージャ173及びサーフェス結合器175などを含む。ビューマネージャ173は、ネイティブビューコントロールに対して、すなわち、共通コントロールに対して、測定、レイアウト、及び描画などの作業をクライアントアプリケーション113のユーザインタフェースで行うのに用いられる。サーフェス結合器175は、フレームバッファ132に描画されたサーフェスを結合し、次いで、結合サーフェスを表示のために表示装置に送信するのに用いられる。フレームバッファ132は、カーネルモードでプロセス又はスレッドがアクセスできる記憶領域であり、ビューマネージャ173により描画されたサーフェスをバッファリングするのに用いられる。
一実施形態において、ビューマネージャ173は具体的には、Android(登録商標)システムにより提供されるonMeasure()機能、onLayout()機能、及びonDraw()機能をそれぞれ用いて、ネイティブビューコントロールに対して測定作業、レイアウト作業、及び描画作業を実施してよい。サーフェス結合器175は、SurfaceFlingerサービスをAndroid(登録商標)システムに提供する。ビューマネージャ173は、サーフェスのコントロールをフレームバッファ132に描画する。SurfaceFlingerサービスは、グラフィックライブラリを用いて、フレームバッファの中にあるサーフェスをハードウェアフレームバッファにレンダリングする。
一実施形態において、図7に示すように。トラステッドオペレーティングシステム143は、トラステッドユーザインタフェース(TUI)サービス150と、サーフェス結合器160と、ディスプレイドライバ147と、フレームバッファ142とを含む。アプリケーションフレームワーク170は、クライアントアプリケーション113のユーザインタフェースにおけるカスタマイズされたセキュアコントロールを識別した後に、アクセスプロキシ134を用いて、カスタマイズされたセキュアコントロールに関する情報をTEE140のトラステッドアプリケーション115に転送する。トラステッドアプリケーション115は、TEE内部インタフェース145を通じてTUIサービス150を呼び出すことによって、カスタマイズされたセキュアコントロールに対して測定、レイアウト、及び描画などの作業を行い、次いで、取得されたセキュアサーフェスをフレームバッファ142にバッファリングしてよい。サーフェス結合器160は、セキュアサーフェスと、フレームバッファ132の中にある非セキュアサーフェス(セキュアコントロールを除く)とを合成して、複合サーフェスを取得する。この複合サーフェスはフレームバッファ142の中にある。最終的に、複合サーフェスは、ディスプレイドライバ147を用いてディスプレイ141に表示される。
具体的には、一実施形態において、図8に示すように、リッチオペレーティングシステム123のビューマネージャ173は、ネイティブビューコントロールに対して測定、レイアウト、及び描画などの作業を行い、バックグラウンドサーフェス、ステータスバーサーフェス、及びナビゲーションバーサーフェスなどの1つ又は複数の非セキュアサーフェスを取得する。非セキュアサーフェスは、フレームバッファ132にバッファリングされる。複数の非セキュアサーフェスがある場合、複数のサーフェスは、複数のフレームバッファにバッファリングされてよい。例えば、それぞれの非セキュアサーフェスが、別個のフレームバッファの中にある。セキュア入力フィールドおよびセキュアキーボードライトなどのカスタマイズされたセキュアコントロールに対して、測定、レイアウト、及び描画などの作業を行った後に、TUIサービス150は、取得されたセキュアサーフェスをフレームバッファ142にバッファリングする。サーフェス結合器160は、非セキュアサーフェスとセキュアサーフェスとを合成して、セキュアコントロール及びネイティブコントロールの両方を含む複合サーフェスを取得する。複合サーフェスは、最終的にディスプレイ141を用いて表示されるので、セキュアコントロール及び非セキュアコントロールの互換表示が実装される。任意選択で、複数の非セキュアサーフェスがある場合、サーフェス結合器160が合成を行う前に、リッチオペレーティングシステム123は、まずハードウェアを呼び出して、複数の非セキュアサーフェスをオフラインで結合し、複数の非セキュアサーフェスを1つのサーフェスに結合してよい。次いで、サーフェス結合器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は、1つ又は複数のプロセッサを含んでよい。例えば、処理ユニット250は、アプリケーションプロセッサ、グラフィックプロセッサ、及びデジタル信号プロセッサなどを含んでよい。処理ユニット250が複数のプロセッサを含む場合、複数のプロセッサは同じチップに統合されてもよく、それぞれが互いに独立したチップであってもよい。
メモリ260は、コンピュータプログラムに加えて、さらに他のデータ296を格納する。他のデータ296は、オペレーティングシステム294又はアプリケーション292の動作時に生成された、システムデータ(例えば、オペレーティングシステム294の構成パラメータ)及びユーザデータなどのデータを含んでよい。
メモリ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はさらに、タッチパネルに加えて、物理キーボード、ファンクションキー(音量調節用プレスキー、スイッチ用プレスキーなど)、トラックボール、マウス、又はジョイスティックなどのうちの1つ又は複数を含む別の入力装置を含んでよいが、これに限定されない。
表示装置240は、液晶ディスプレイ(liquid crystal display、LCD)又は有機発光ダイオード(organic light−emitting diode、OLED)などの表示パネルであってよい。いくつかの実施形態において、タッチパネルは、表示装置240をカバーして、タッチディスプレイ画面を形成してよい。
通信サブシステム210は、端末デバイス200の基本的な通信ユニットであり、端末デバイス200のデータを送受信するように構成される。電源220は、前述のコンポーネントに電力を供給するように構成され、具体的には電力管理用チップであってよい。
端末デバイス200が無線端末である場合、通信サブシステム210は、無線モデム(wireless modem)を含み、ベースバンド処理、変調及び復調、信号増幅及びフィルタリング、並びに等化などの機能を主に実装する。一実施形態において、通信サブシステム210は、ベースバンドプロセッサと、無線周波数回路と、アンテナとを含む。無線周波数回路及びアンテナは主に、信号の送受信を担っている。ベースバンドプロセッサは、信号のA/D変換及びD/A変換、並びに信号の符号化及び復号などの、信号処理を担っている。ベースバンドプロセッサは、無線通信標準のうちの1つ又は複数をサポートする。本明細書のおける無線通信標準は、移動体通信用グローバルシステム(global system for mobile communications、GSM(登録商標))、符号分割多元接続(code division multiple access、CDMA)、広帯域符号分割多元接続(wideband code division multiple access、WCDMA(登録商標))、高速パケットアクセス(high speed packet access、HSPA)、及びロングタームエボリューション(long term evolution、LTE)などを含むが、これに限定されない。ベースバンドプロセッサは、独立したチップであってもよく、処理ユニット250に含まれるプロセッサと共に同じチップに統合されてもよい。
任意選択で、端末デバイス200はさらに、1つ又は複数のセンサ280、例えば、加速度センサ及び光学センサを含む。
本願の実施形態において提供されるユーザインタフェース表示方法は、端末デバイス200のソフトウェア、ハードウェア、及び/又はファームウェアの適切な組み合わせで実行されてよい。例えば、図9に示すオペレーティングシステム294は、必要なハードウェアと組み合わせて実装されてよい。
さらに、当業者であれば、端末デバイス200が図9に示すものより少ない又はそれより多いコンポーネントを含んでよいことを理解するであろう。図9に示す端末デバイス200は、単に本願の実施形態において開示される複数の実装例に強く関連したコンポーネントを示すにすぎない。
前述の実施形態において説明されたユーザインタフェース表示方法に基づいて、本願の一実施形態がさらに、端末デバイス400を提供する。図10に示すように、端末デバイス400は、処理回路402と、処理回路402に接続された通信インタフェース404及び記憶媒体406とを含む。
処理回路402は、データを処理し、データアクセス及び記憶装置を制御し、コマンドを送信し、別のコンポーネントを制御して、ある作業を行うように構成される。処理回路402は、1つ又は複数のプロセッサ、1つ又は複数のコントローラ、及び/又はプログラムを実行するように構成され得る別の構造として実装されてよい。処理回路402は具体的には、汎用プロセッサ、デジタル信号プロセッサ(digital signal processor、DSP)、特定用途向け集積回路(application−specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field−programmable gate array、FPGA)、又は別のプログラム可能型論理コンポーネントのうちの少なくとも1つを含んでよい。汎用プロセッサは、マイクロプロセッサ、及び任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンを含んでよい。処理回路402は、コンピューティング素子として、例えば、DSPとマイクロプロセッサとの組み合わせとして実装されてよい。
記憶媒体406は、磁気記憶装置(例えば、ハードディスク、フロッピーディスク、又は磁気ストライプ)、光記憶媒体(例えば、デジタル多用途ディスク(digital versatile disc、DVD))、スマートカード、フラッシュメモリデバイス、RAM、ROM、プログラム可能型リードオンリメモリ(programmable read−only memory、PROM)、消去可能プログラム可能型リードオンリメモリ(erasable programmable read−only memory、EPROM)、レジスタ、及びこれらの任意の組み合わせなどの、非一時的コンピュータ可読記憶媒体(non−transitory computer−readable storage medium)を含んでよい。記憶媒体406は処理回路402に結合されてよく、その結果、処理回路402は、情報の読み出し及び記憶媒体406への情報の書き込みを行うことができる。具体的には、記憶媒体406は処理回路402に統合されてもよく、記憶媒体406と処理回路402とは別々であってもよい。
通信インタフェース404は、回路及び/又はプログラムを含み、端末デバイス400と1つ又は複数のネットワークデバイス(例えば、ルータ、スイッチ、及びアクセスポイントなど)との間の相互通信を実施してよい。通信インタフェース404は、少なくとも1つの受信回路416及び/又は少なくとも1つの送信回路418を含む。一実施形態において、通信インタフェース404は、無線モデムで完全に又は部分的に実装されてよい。
一実施形態において、記憶媒体406はプログラム(命令)420を格納する。処理回路402は、記憶媒体406に格納されたプログラム(命令)420を実行し、本願の任意の方法の実施形態における一部又は全ての段階を実施するように適合する。
本願の一実施形態がさらに、コンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は、本願の任意の方法の実施形態における方法の各段階を実施する、コード、命令、又はプログラムを格納する。
便利で簡潔な説明のために、前述の装置及びユニットの詳細な動作プロセスについては、前述の方法の実施形態における対応するプロセスを参照してよく、詳細は再度ここで説明しないことが、当業者によって明確に理解されるであろう。
本願の実施形態において提供されるユーザインタフェース表示方法は、デュアルドメインシステムを有するデバイスにも適用されてよい。このデバイスは、互いに分離された非セキュリティドメインとセキュリティドメインとを含む。セキュリティドメインのセキュリティレベルは、非セキュリティドメインのセキュリティレベルより高い。前述の実施形態において説明されたTEE及びREEと同様に、非セキュリティドメインで動作するアプリケーションが、特定のインタフェースを用いて、セキュリティドメインにあるサービスを要求してもよい。非セキュリティドメインにあるグラフィックサービス又はコンポーネントが、アプリケーションのユーザインタフェースに含まれる共通コントロールをレンダリングして、1つ又は複数の非セキュアサーフェスを取得する。セキュリティドメインにあるグラフィックサービス又はコンポーネントが、ユーザインタフェースに含まれるカスタマイズされたセキュアコントロールをレンダリングして、1つ又は複数のセキュアサーフェスを取得する。最終的に、セキュリティドメインにあるグラフィックサービス又はコンポーネントが、セキュリティドメインにおいて、セキュアサーフェス及び非セキュアサーフェスを合成した後に、複合サーフェスがディスプレイを用いて表示される。セキュリティドメイン及び非セキュリティドメインにおけるコントロールのレンダリングに関する、またサーフェスの合成に関する具体的な実装詳細については、前述の方法の実施形態を参照されたい。詳細は、再度ここで説明しない。
本願において提供されるいくつかの実施形態では、開示された装置及び方法が別の方式で実装されてよいことを理解されたい。例えば、説明された装置の実施形態は、単なる例にすぎない。例えば、ユニットの分割は、単なる論理的機能の分割にすぎない。実際に実装する際には、他の分割があってもよい。例えば、複数のユニット又はコンポーネントが結合されてもよく、別のシステムに統合されてもよく、又はいくつかの特徴が無視されても、実行されなくてもよい。さらに、示された又は論じられた相互結合又は直接的な結合若しくは通信接続は、いくつかのインタフェースを通じて実装されてよい。装置間又はユニット間の間接的な結合又は通信接続は、電子的形態、機械的形態、又は他の形態で実装されてよい。
さらに、本願の実施形態における各機能ユニットが、1つの処理ユニットに統合されてもよく、これらのユニットが物理的に分離されてもよく、2つ又はそれより多くのユニットが1つのユニットに統合されてもよい。
各機能がソフトウェア機能ユニットの形態で実装されて、独立した製品として販売されるか又は用いられる場合、これらの機能はコンピュータ可読記憶媒体に格納されてよい。そのような理解に基づいて、本質的には本願の技術的解決手段、又は先行技術に寄与する部分、又はこれらの技術的解決手段の一部は、コンピュータソフトウェア製品の形態で実装されてよい。コンピュータソフトウェア製品は、記憶媒体に格納され、コンピュータデバイス(パーソナルコンピュータ、サーバ、又はネットワークデバイスなどであってよい)に命令して、本願の実施形態において説明された方法の段階の全て又は一部を実行させる命令を含む。前述の記憶媒体は、プログラムコードを格納できる、USBフラッシュドライブ、リムーバブルハードディスク、ROM、RAM、又はコンパクトディスクなどの様々な媒体を含む。
(項目1)
ユーザインタフェースを端末デバイスに表示する方法であって、上記端末デバイスは、トラステッド実行環境TEEとリッチ実行環境REEとを備え、リッチオペレーティングシステムとクライアントアプリケーションCAとが上記REEで動作し、トラステッドオペレーティングシステムが上記TEEで動作し、上記CAのユーザインタフェースが共通コントロールとセキュアコントロールとを有し、上記方法は、
上記リッチオペレーティングシステムが、上記共通コントロールを上記ユーザインタフェースにレンダリングして、第1サーフェスを取得する段階と、
上記トラステッドオペレーティングシステムが、上記セキュアコントロールを上記ユーザインタフェースにレンダリングして、第2サーフェスを取得する段階と、
上記トラステッドオペレーティングシステムが、上記第1サーフェスと上記第2サーフェスとを合成して、上記共通コントロールと上記セキュアコントロールとを有する複合サーフェスを取得し、ディスプレイを用いて上記複合サーフェスを表示する段階と
を備える方法。
(項目2)
上記リッチオペレーティングシステムが、上記共通コントロールを上記ユーザインタフェースにレンダリングする上記段階は、
上記共通コントロールに対して測定作業を行い、上記共通コントロールのサイズを決定する段階と、
上記共通コントロールに対してレイアウト作業を行い、上記共通コントロールの表示位置を決定する段階と、
上記共通コントロールの決定された上記サイズと上記表示位置とに基づいて、上記共通コントロールを描画して、上記第1サーフェスを取得する段階であって、上記第1サーフェスは上記リッチオペレーティングシステムのフレームバッファの中にある、段階と
を有する、項目1に記載の方法。
(項目3)
上記方法はさらに、
上記リッチオペレーティングシステムが、上記TEEにより提供されるクライアントインタフェース(Client API)を呼び出すことによって、上記セキュアコントロールに関する情報を上記トラステッドオペレーティングシステムに転送する段階を備える、項目1又は2に記載の方法。
(項目4)
上記トラステッドオペレーティングシステムが、上記セキュアコントロールを上記ユーザインタフェースにレンダリングして、第2サーフェスを取得する上記段階は、
上記トラステッドオペレーティングシステムが、上記セキュアコントロールに関する上記情報に基づいて、上記セキュアコントロールに対して測定及びレイアウト作業を行い、上記セキュアコントロールのサイズ及び表示位置を決定する段階と、
上記セキュアコントロールの決定された上記サイズ及び上記表示位置に基づいて上記セキュアコントロールを描画して、上記第2サーフェスを取得する段階であって、上記第2サーフェスは上記トラステッドオペレーティングシステムのフレームバッファの中にある、段階と
を有する、項目3に記載の方法。
(項目5)
上記トラステッドオペレーティングシステムが、上記第1サーフェスと上記第2サーフェスとを合成して、上記共通コントロールと上記セキュアコントロールとを有する複合サーフェスを取得する上記段階は、
上記トラステッドオペレーティングシステムが、通信エージェントを用いて上記リッチオペレーティングシステムにより送信される上記第1サーフェスを取得する段階と、
上記トラステッドオペレーティングシステムが、上記第2サーフェスを上記第1サーフェスの上に合成して上記複合サーフェスを取得する段階であって、上記複合サーフェスは上記トラステッドオペレーティングシステムの上記フレームバッファの中にある、段階と
を有する、項目2から4のいずれか一項に記載の方法。
(項目6)
上記トラステッドオペレーティングシステムが、上記第1サーフェスと上記第2サーフェスとを合成して、上記共通コントロールと上記セキュアコントロールとを有する複合サーフェスを取得する上記段階は、
上記トラステッドオペレーティングシステムが、上記リッチオペレーティングシステムの上記フレームバッファのアドレスであって、通信エージェントを用いて上記リッチオペレーティングシステムにより送信される、アドレスを取得する段階と、
上記トラステッドオペレーティングシステムが、上記アドレスに基づいて、上記リッチオペレーティングシステムの上記フレームバッファの中にある上記第1サーフェスにアクセスし、上記第1サーフェスと上記第2サーフェスとを合成して上記複合サーフェスを取得する段階であって、上記複合サーフェスは上記トラステッドオペレーティングシステムの上記フレームバッファの中にある、段階と
を有する、項目2から4のいずれか一項に記載の方法。
(項目7)
上記リッチオペレーティングシステムは複数のフレームバッファを有し、上記リッチオペレーティングシステムが上記共通コントロールを上記ユーザインタフェースにレンダリングして第1サーフェスを取得する上記段階は、
上記リッチオペレーティングシステムが、上記共通コントロールを上記ユーザインタフェースにレンダリングして複数の中間サーフェスを取得する段階であって、それぞれの中間サーフェスは独立したフレームバッファの中に別々に存在する、段階と、
上記リッチオペレーティングシステムが、ハードウェアを呼び出すことによって、上記複数の中間サーフェスを上記第1サーフェスに結合する段階と
を有する、項目1から6のいずれか一項に記載の方法。
(項目8)
上記方法はさらに、
上記リッチオペレーティングシステムが、上記ユーザインタフェースに対応するソースコード又はレイアウトファイルを解析して、上記ユーザインタフェースに含まれる上記共通コントロール及び上記セキュアコントロールを決定する段階を備える、項目1から7のいずれか一項に記載の方法。
(項目9)
上記セキュアコントロールはセキュリティラベルを有し、上記リッチオペレーティングシステムは、上記セキュリティラベルに基づいて、上記セキュアコントロールと上記共通コントロールとを区別する、項目1から8のいずれか一項に記載の方法。
(項目10)
互いに分離されたトラステッド実行環境TEEとリッチ実行環境REEとを備える端末デバイスであって、リッチオペレーティングシステムとクライアントアプリケーションCAとが上記REEで動作し、トラステッドオペレーティングシステムが上記TEEで動作し、上記CAのユーザインタフェースが共通コントロールとセキュアコントロールとを有し、
上記リッチオペレーティングシステムは、上記共通コントロールを上記ユーザインタフェースにレンダリングして第1サーフェスを取得するように構成され、
上記トラステッドオペレーティングシステムは、上記セキュアコントロールを上記ユーザインタフェースにレンダリングして第2サーフェスを取得し、上記第1サーフェスと上記第2サーフェスとを合成して、上記共通コントロールと上記セキュアコントロールとを有する複合サーフェスを取得し、ディスプレイを用いて上記複合サーフェスを表示するように構成される、端末デバイス。
(項目11)
上記リッチオペレーティングシステムは、
上記共通コントロールに対して測定作業を行い、上記共通コントロールのサイズを決定するように構成された測定モジュールと、
上記共通コントロールに対してレイアウト作業を行い、上記共通コントロールの表示位置を決定するように構成されたレイアウトモジュールと、
上記共通コントロールの決定された上記サイズと上記表示位置とに基づいて上記共通コントロールを描画し、上記第1サーフェスを取得するように構成された描画コントロールであって、上記第1サーフェスは上記リッチオペレーティングシステムのフレームバッファの中にある、描画コントロールと
を有する、項目10に記載の端末デバイス。
(項目12)
上記リッチオペレーティングシステムはさらに、上記セキュアコントロールに関する情報を上記トラステッドオペレーティングシステムに転送するように構成された通信エージェントを有する、項目10又は11に記載の端末デバイス。
(項目13)
上記トラステッドオペレーティングシステムは、
上記セキュアコントロールに関する上記情報に基づいて、上記セキュアコントロールに対して測定作業を行い、上記セキュアコントロールのサイズ及び表示位置を決定するように構成された測定モジュールと、
上記セキュアコントロールに対してレイアウト作業を行い、上記セキュアコントロールの上記表示位置を決定するように構成されたレイアウトモジュールと、
上記セキュアコントロールの決定された上記サイズと上記表示位置とに基づいて、上記セキュアコントロールを描画して、上記第2サーフェスを取得するように構成された描画モジュールであって、上記第2サーフェスは上記トラステッドオペレーティングシステムのフレームバッファの中にある、描画モジュールと
を有する、項目12に記載の端末デバイス。
(項目14)
上記通信エージェントはさらに、上記リッチオペレーティングシステムの上記フレームバッファの中にある上記第1サーフェスを、上記トラステッドオペレーティングシステムの上記フレームバッファに同期させるように構成され、上記トラステッドオペレーティングシステムはさらに、上記第2サーフェスを上記第1サーフェスの上に合成して上記複合サーフェスを取得するように構成された結合モジュールを有し、上記複合サーフェスは上記トラステッドオペレーティングシステムの上記フレームバッファの中にある、項目12又は13に記載の端末デバイス。
(項目15)
上記通信エージェントはさらに、上記リッチオペレーティングシステムの上記フレームバッファのアドレスを上記トラステッドオペレーティングシステムに転送するように構成され、上記トラステッドオペレーティングシステムはさらに、上記アドレスに基づいて、上記リッチオペレーティングシステムの上記フレームバッファの中にある上記第1サーフェスにアクセスし、上記第1サーフェスと上記第2サーフェスとを合成して上記複合サーフェスを取得するように構成された結合モジュールを有し、上記複合サーフェスは上記トラステッドオペレーティングシステムの上記フレームバッファの中にある、項目12又は13に記載の端末デバイス。
(項目16)
上記セキュアコントロールはセキュリティラベルを有し、上記リッチオペレーティングシステムはさらに、上記セキュリティラベルに基づいて、上記セキュアコントロールと上記共通コントロールとを区別するように構成される、項目10から15のいずれか一項に記載の端末デバイス。
(項目17)
プロセッサと、メモリと、上記メモリに格納され且つ上記プロセッサにより実行され得るコンピュータプログラムとを備える端末デバイスであって、上記プロセッサが上記プログラムを実行すると、項目1から10のいずれか一項に記載の方法の各段階が実施される、端末デバイス。
(項目18)
コンピュータ可読記憶媒体であって、上記コンピュータ可読記憶媒体はコンピュータプログラム(命令)を格納し、上記プログラム(命令)がプロセッサにより実行されると、項目1から10のいずれか一項に記載の方法の各段階が実施される、コンピュータ可読記憶媒体。

Claims (22)

  1. ユーザインタフェースを端末デバイスに表示する方法であって、前記端末デバイスは、トラステッド実行環境(TEE)とリッチ実行環境(REE)とを備え、リッチオペレーティングシステムとクライアントアプリケーション(CA)とが前記REEで動作し、トラステッドオペレーティングシステムが前記TEEで動作し、前記CAのユーザインタフェースが共通コントロールとセキュアコントロールとを有し、前記方法は、
    前記リッチオペレーティングシステムが、前記共通コントロールを前記ユーザインタフェースにレンダリングして、第1サーフェスを取得する段階と
    前記リッチオペレーティングシステムが、前記セキュアコントロールに関する情報を前記トラステッドオペレーティングシステムに転送する段階であって、前記セキュアコントロールに関する前記情報は、通信IDに基づいて、且つ前記TEEにより提供される外部インタフェースを用いて、前記TEEにある前記通信IDに対応する前記トラステッドオペレーティングシステムのトラステッドアプリケーションに転送される、段階と、
    前記トラステッドオペレーティングシステムの前記トラステッドアプリケーションが、前記セキュアコントロールを前記ユーザインタフェースにレンダリングして、第2サーフェスを取得する段階と、
    前記トラステッドオペレーティングシステムが、前記第1サーフェスと前記第2サーフェスとを合成して、前記共通コントロールと前記セキュアコントロールとを有する複合サーフェスを取得し、ディスプレイを用いて前記複合サーフェスを表示する段階と
    を備える方法。
  2. 前記セキュアコントロールに関する前記情報を前記トラステッドオペレーティングシステムに転送する段階は、
    記リッチオペレーティングシステムが、前記TEEにより提供されるクライアントインタフェース(Client API)を呼び出すことによって、前記セキュアコントロールに関する情報を前記トラステッドオペレーティングシステムに転送する段階を含む、請求項1に記載の方法。
  3. 前記トラステッドオペレーティングシステムの前記トラステッドアプリケーションが、前記セキュアコントロールを前記ユーザインタフェースにレンダリングして、第2サーフェスを取得する前記段階は、
    前記トラステッドオペレーティングシステムが、前記セキュアコントロールに関する前記情報に基づいて、前記セキュアコントロールに対して測定及びレイアウト作業を行い、前記セキュアコントロールのサイズ及び表示位置を決定する段階と、
    前記セキュアコントロールの決定された前記サイズ及び前記表示位置に基づいて前記セキュアコントロールを描画して、前記第2サーフェスを取得する段階であって、前記第2サーフェスは前記トラステッドオペレーティングシステムのフレームバッファの中にある、段階と
    を有する、請求項2に記載の方法。
  4. 前記トラステッドオペレーティングシステムが、前記第1サーフェスと前記第2サーフェスとを合成して、前記共通コントロールと前記セキュアコントロールとを有する複合サーフェスを取得する前記段階は、
    前記トラステッドオペレーティングシステムが、通信エージェントを用いて前記リッチオペレーティングシステムにより送信される前記第1サーフェスを取得する段階と、
    前記トラステッドオペレーティングシステムが、前記第2サーフェスを前記第1サーフェスの上に合成して前記複合サーフェスを取得する段階であって、前記複合サーフェスは前記トラステッドオペレーティングシステムのフレームバッファの中にある、段階と
    を有する、請求項2又は3に記載の方法。
  5. 前記トラステッドオペレーティングシステムが、前記第1サーフェスと前記第2サーフェスとを合成して、前記共通コントロールと前記セキュアコントロールとを有する複合サーフェスを取得する前記段階は、
    前記トラステッドオペレーティングシステムが、前記リッチオペレーティングシステムのフレームバッファのアドレスであって、通信エージェントを用いて前記リッチオペレーティングシステムにより送信される、アドレスを取得する段階と、
    前記トラステッドオペレーティングシステムが、前記アドレスに基づいて、前記リッチオペレーティングシステムの前記フレームバッファの中にある前記第1サーフェスにアクセスし、前記第1サーフェスと前記第2サーフェスとを合成して前記複合サーフェスを取得する段階であって、前記複合サーフェスは前記トラステッドオペレーティングシステムの前記フレームバッファの中にある、段階と
    を有する、請求項2又は3に記載の方法。
  6. 前記リッチオペレーティングシステムが、前記共通コントロールを前記ユーザインタフェースにレンダリングする前記段階は、
    前記共通コントロールに対して測定作業を行い、前記共通コントロールのサイズを決定する段階と、
    前記共通コントロールに対してレイアウト作業を行い、前記共通コントロールの表示位置を決定する段階と、
    前記共通コントロールの決定された前記サイズと前記表示位置とに基づいて、前記共通コントロールを描画して、前記第1サーフェスを取得する段階であって、前記第1サーフェスは前記リッチオペレーティングシステムのフレームバッファの中にある、段階と
    を有する、請求項1から5のいずれか一項に記載の方法。
  7. 前記リッチオペレーティングシステムは複数のフレームバッファを有し、前記リッチオペレーティングシステムが前記共通コントロールを前記ユーザインタフェースにレンダリングして第1サーフェスを取得する前記段階は、
    前記リッチオペレーティングシステムが、前記共通コントロールを前記ユーザインタフェースにレンダリングして複数の中間サーフェスを取得する段階であって、それぞれの中間サーフェスは独立したフレームバッファの中に別々に存在する、段階と、
    前記リッチオペレーティングシステムが、ハードウェアを呼び出すことによって、前記複数の中間サーフェスを前記第1サーフェスに結合する段階と
    を有する、請求項1から6のいずれか一項に記載の方法。
  8. 前記方法はさらに、
    前記リッチオペレーティングシステムが、前記ユーザインタフェースに対応するソースコード又はレイアウトファイルを解析して、前記ユーザインタフェースに含まれる前記共通コントロール及び前記セキュアコントロールを決定する段階を備える、請求項1から7のいずれか一項に記載の方法。
  9. 前記セキュアコントロールはセキュリティラベルを有し、前記リッチオペレーティングシステムは、前記セキュリティラベルに基づいて、前記セキュアコントロールと前記共通コントロールとを区別する、請求項1から8のいずれか一項に記載の方法。
  10. 前記通信IDは、前記クライアントアプリケーションのソースファイルに設定される、請求項1から9のいずれか一項に記載の方法。
  11. 前記共通コントロール及び前記セキュアコントロールは、ツリー構造に体系化される、請求項1から10のいずれか一項に記載の方法。
  12. 互いに分離されたトラステッド実行環境(TEE)とリッチ実行環境(REE)とを備える端末デバイスであって、リッチオペレーティングシステムとクライアントアプリケーション(CA)とが前記REEで動作し、トラステッドオペレーティングシステムが前記TEEで動作し、前記CAのユーザインタフェースが共通コントロールとセキュアコントロールとを有し、
    前記リッチオペレーティングシステムは、前記共通コントロールを前記ユーザインタフェースにレンダリングして第1サーフェスを取得し、前記セキュアコントロールに関する情報を前記トラステッドオペレーティングシステムに転送するように構成され、前記セキュアコントロールに関する前記情報は、通信IDに基づいて、且つ前記TEEにより提供される外部インタフェースを用いて、前記TEEにある前記通信IDに対応する前記トラステッドオペレーティングシステムのトラステッドアプリケーションに転送され、
    前記トラステッドオペレーティングシステムの前記トラステッドアプリケーションは、前記セキュアコントロールを前記ユーザインタフェースにレンダリングして第2サーフェスを取得するように構成され、前記トラステッドオペレーティングシステムは、前記第1サーフェスと前記第2サーフェスとを合成して、前記共通コントロールと前記セキュアコントロールとを有する複合サーフェスを取得し、ディスプレイを用いて前記複合サーフェスを表示するように構成される、端末デバイス。
  13. 前記リッチオペレーティングシステムは、
    前記共通コントロールに対して測定作業を行い、前記共通コントロールのサイズを決定するように構成された測定モジュールと、
    前記共通コントロールに対してレイアウト作業を行い、前記共通コントロールの表示位置を決定するように構成されたレイアウトモジュールと、
    前記共通コントロールの決定された前記サイズと前記表示位置とに基づいて前記共通コントロールを描画し、前記第1サーフェスを取得するように構成された描画モジュールであって、前記第1サーフェスは前記リッチオペレーティングシステムのフレームバッファの中にある、描画モジュールと
    を有する、請求項12に記載の端末デバイス。
  14. 前記リッチオペレーティングシステムはさらに、前記セキュアコントロールに関する情報を前記トラステッドオペレーティングシステムに転送するように構成された通信エージェントを有する、請求項12又は13に記載の端末デバイス。
  15. 前記トラステッドオペレーティングシステムは、
    前記セキュアコントロールに関する前記情報に基づいて、前記セキュアコントロールに対して測定作業を行い、前記セキュアコントロールのサイズを決定するように構成された測定モジュールと、
    前記セキュアコントロールに対してレイアウト作業を行い、前記セキュアコントロールの表示位置を決定するように構成されたレイアウトモジュールと、
    前記セキュアコントロールの決定された前記サイズと前記表示位置とに基づいて、前記セキュアコントロールを描画して、前記第2サーフェスを取得するように構成された描画モジュールであって、前記第2サーフェスは前記トラステッドオペレーティングシステムのフレームバッファの中にある、描画モジュールと
    を有する、請求項14に記載の端末デバイス。
  16. 前記通信エージェントはさらに、前記リッチオペレーティングシステムのフレームバッファの中にある前記第1サーフェスを、前記トラステッドオペレーティングシステムの前記フレームバッファに同期させるように構成され、前記トラステッドオペレーティングシステムはさらに、前記第2サーフェスを前記第1サーフェスの上に合成して前記複合サーフェスを取得するように構成された結合モジュールを有し、前記複合サーフェスは前記トラステッドオペレーティングシステムの前記フレームバッファの中にある、請求項14又は15に記載の端末デバイス。
  17. 前記通信エージェントはさらに、前記リッチオペレーティングシステムのフレームバッファのアドレスを前記トラステッドオペレーティングシステムに転送するように構成され、前記トラステッドオペレーティングシステムはさらに、前記アドレスに基づいて、前記リッチオペレーティングシステムの前記フレームバッファの中にある前記第1サーフェスにアクセスし、前記第1サーフェスと前記第2サーフェスとを合成して前記複合サーフェスを取得するように構成された結合モジュールを有し、前記複合サーフェスは前記トラステッドオペレーティングシステムの前記フレームバッファの中にある、請求項14又は15に記載の端末デバイス。
  18. 前記セキュアコントロールはセキュリティラベルを有し、前記リッチオペレーティングシステムはさらに、前記セキュリティラベルに基づいて、前記セキュアコントロールと前記共通コントロールとを区別するように構成される、請求項12から17のいずれか一項に記載の端末デバイス。
  19. 前記通信IDは、前記クライアントアプリケーションのソースファイルに設定される、請求項12から18のいずれか一項に記載の端末デバイス。
  20. 前記共通コントロール及び前記セキュアコントロールは、ツリー構造に体系化される、請求項12から19のいずれか一項に記載の端末デバイス。
  21. プロセッサと、メモリと、前記メモリに格納され且つ前記プロセッサにより実行され得るコンピュータプログラムとを備える端末デバイスであって、前記プロセッサが前記コンピュータプログラムを実行すると、請求項1から11のいずれか一項に記載の方法の各段階が実施される、端末デバイス。
  22. 請求項1から11のいずれか一項に記載の方法をプロセッサに実行させるコンピュータプログラム。
JP2020517306A 2018-06-20 2019-05-17 ユーザインタフェース表示方法及び端末デバイス Active JP6974604B2 (ja)

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 (2)

Publication Number Publication Date
JP2021501388A JP2021501388A (ja) 2021-01-14
JP6974604B2 true JP6974604B2 (ja) 2021-12-01

Family

ID=68920741

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020517306A Active JP6974604B2 (ja) 2018-06-20 2019-05-17 ユーザインタフェース表示方法及び端末デバイス

Country Status (6)

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

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210166227A1 (en) * 2019-11-28 2021-06-03 Qualcomm Incorporated Secure User Interface With Improved User Experience
CN111148070B (zh) * 2019-12-31 2021-06-15 华为技术有限公司 V2x通信方法、装置及车辆
CN111625237B (zh) * 2020-04-30 2023-05-30 上海艾麒信息科技有限公司 文字视觉变形方法、系统及介质
CN112540761A (zh) * 2020-12-11 2021-03-23 网易(杭州)网络有限公司 控件的显示控制方法和装置
CN113032080B (zh) * 2021-03-31 2023-06-27 广州虎牙科技有限公司 页面实现方法、应用程序、电子设备及存储介质
CN115686700A (zh) * 2021-07-30 2023-02-03 华为技术有限公司 渲染方法及电子设备

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 画像処理装置
WO2005078571A2 (en) * 2004-02-09 2005-08-25 Palmsource, Inc. A method and graphics subsystem for a computing device
WO2013081406A1 (en) * 2011-12-02 2013-06-06 Samsung Electronics Co., Ltd. Method and apparatus for securing touch input
KR101925806B1 (ko) * 2011-12-02 2018-12-07 삼성전자 주식회사 보안 방법 및 장치
US9124419B2 (en) * 2012-05-08 2015-09-01 Discretix Technologies Ltd. Method, device, and system 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技术的移动平台可信用户界面框架
US10929526B2 (en) * 2016-03-01 2021-02-23 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
EP3678021B1 (en) 2023-07-26
JP2021501388A (ja) 2021-01-14
KR20200052950A (ko) 2020-05-15
CN110618847A (zh) 2019-12-27
EP3678021A4 (en) 2020-12-30
EP3678021A1 (en) 2020-07-08
US20200234275A1 (en) 2020-07-23
WO2019242440A1 (zh) 2019-12-26

Similar Documents

Publication Publication Date Title
JP6974604B2 (ja) ユーザインタフェース表示方法及び端末デバイス
EP3069544B1 (en) Protecting privacy in web-based immersive augmented reality
US11762634B2 (en) Systems and methods for seamlessly integrating multiple products by using a common visual modeler
US20160350543A1 (en) Electronic device and method of accessing kernel data
US20150088982A1 (en) Load balanced inter-device messaging
US20120278750A1 (en) Method and apparatus for presenting a window in a system having two operating system environments
US20120137233A1 (en) Method and Apparatus for Enabling Generation of Multiple Independent User Interface Elements from a Web Page
US9842091B2 (en) Switching to and from native web applications
KR101512010B1 (ko) 셸 애플리케이션들 및 서브애플리케이션들의 인터페이스들의 조합
KR20130121692A (ko) 동적 입력 장치의 맥락 제어
US20170011010A1 (en) Method for displaying web content and electronic device supporting the same
US20120005267A1 (en) Platform independent information handling system, communication method, and computer program product thereof
CN104704468A (zh) Web应用程序的跨系统安装
EP3207458A1 (en) Input signal emulation
US20190087185A1 (en) Electronic device and control method thereof
WO2019052417A1 (zh) 页面加载方法、装置、电子设备及存储介质
CN106663090A (zh) 在编译期间将呈现元数据转换成浏览器可渲染格式
US10637827B2 (en) Security network system and data processing method therefor
US20090328066A1 (en) Untrusted component hosting
WO2023134376A1 (zh) 信息处理方法和装置
US11893199B2 (en) Systems and methods for viewing incompatible web pages via remote browser instances
CN114924837A (zh) 数据处理方法、电子设备和可读存储介质
CN116149639A (zh) 一种组件开发的方法、装置、电子设备和存储介质
TWI556167B (zh) 用於多重本機軟體應用程式使用者介面組成之系統及方法
WO2019095855A1 (zh) 支付凭证信息生成方法及装置、设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200428

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200428

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210810

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211104

R150 Certificate of patent or registration of utility model

Ref document number: 6974604

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150