(57)【特許請求の範囲】
【請求項１】
画像を表示し、入力を受信するように適合されたタッチスクリーンと、
前記タッチスクリーンに通信可能に結合された処理回路と
を備えるデバイスであって、前記処理回路が、
前記タッチスクリーン上の入力を処理するタッチスクリーンドライバを有するセキュア実行環境を実装すること、
表示される前記画像を前記タッチスクリーンに送るディスプレイドライバを有する非セキュア実行環境を実装すること、
第1のキーパッド画像を、前記タッチスクリーンによって表示されるように、前記セキュア実行環境から前記ディスプレイドライバに提供すること、
前記セキュア実行環境において、前記タッチスクリーンドライバから第1の入力位置座標を受信すること、および
前記セキュア実行環境において、前記セキュア実行環境内で実装された第１のキーパッド画像マッピングを使用して、前記第1の入力位置座標を、文字、シンボル、および/または、前記タッチスクリーンにおいて表示された前記第1のキーパッド画像を変更するための要求のうちの少なくとも1つに変換すること
を行うように適合された、デバイス。
【請求項２】
前記処理回路が、
前記第1のキーパッド画像を提供するより前に、前記第1のキーパッド画像を前記セキュア実行環境において生成すること
を行うようにさらに適合される、請求項1に記載のデバイス。
【請求項３】
前記処理回路が、
前記第1のキーパッド画像を提供するより前に、前記第1のキーパッド画像を、前記セキュア実行環境に関連付けられたセキュアメモリから得ること
を行うようにさらに適合される、請求項1に記載のデバイス。
【請求項４】
前記セキュア実行環境において記憶または処理されたデータが、前記非セキュア実行環境に関連付けられたアプリケーションによって無許可アクセスされる恐れがない、請求項1に記載のデバイス。
【請求項５】
前記セキュア実行環境が、前記非セキュア実行環境から独立している、請求項4に記載のデバイス。
【請求項６】
前記非セキュア実行環境が、前記セキュア実行環境と比較して非セキュアである、請求項4に記載のデバイス。
【請求項７】
前記非セキュア実行環境が、ハイレベルオペレーティングシステムを実装する、請求項4に記載のデバイス。
【請求項８】
前記タッチスクリーンドライバからの前記第1の入力位置座標が、前記非セキュア実行環境をバイパスする、請求項4に記載のデバイス。
【請求項９】
前記セキュア実行環境において、前記第1の入力位置座標を変換することが、前記セキュア実行環境において、前記第1の入力位置座標を、前記タッチスクリーンにおいて表示された前記第1のキーパッド画像を変更するための前記要求に変換することを含み、前記処理回路が、
複数のキーパッド画像を得ることであり、前記複数のキーパッド画像が、前記第1のキーパッド画像および第2のキーパッド画像を含むこと、
前記複数のキーパッド画像を、前記セキュア実行環境から、前記非セキュア実行環境に関連付けられたディスプレイドライバに提供すること、および
前記第1の入力位置座標を受信するより前に、前記第1のキーパッド画像を表示するための第1の要求を、前記ディスプレイドライバへ送信すること
を行うようにさらに適合される、請求項4に記載のデバイス。
【請求項１０】
前記処理回路が、
前記セキュア実行環境において、前記第1の入力位置座標を、前記タッチスクリーンにおいて表示された前記第1のキーパッド画像を変更するための前記要求に変換した後、前記第2のキーパッド画像を表示するための第2の要求を、前記ディスプレイドライバへ送信すること、
前記第1のキーパッド画像に対応する第1のキーパッド画像マッピングを、前記第2のキーパッド画像に対応する第2のキーパッド画像マッピングに更新すること、
前記セキュア実行環境において、前記タッチスクリーンドライバから第2の入力位置座標を受信すること、および
前記第2のキーパッド画像マッピングを使用して、前記セキュア実行環境において、前記第2の入力位置座標を、文字またはシンボルに変換すること
を行うようにさらに適合される、請求項9に記載のデバイス。
【請求項１１】
前記処理回路が、
複数のキーパッド画像を得ることであり、前記複数のキーパッド画像が前記第1のキーパッド画像を含むこと、および
前記第1のキーパッド画像を、前記非セキュア実行環境に関連付けられた前記ディスプレイドライバに提供するより前に、前記複数のキーパッド画像のうちの前記第1のキーパッド画像を選択すること
を行うようにさらに適合される、請求項4に記載のデバイス。
【請求項１２】
前記セキュア実行環境において、前記第1の入力位置座標を変換することが、前記セキュア実行環境において、前記第1の入力位置座標を、前記タッチスクリーンにおいて表示された前記第1のキーパッド画像を変更するための前記要求に変換することを含み、前記処理回路が、
前記複数のキーパッド画像のうちの第2のキーパッド画像を、前記セキュア実行環境から、前記非セキュア実行環境に関連付けられた前記ディスプレイドライバに提供すること、
前記第1のキーパッド画像に対応する第1のキーパッド画像マッピングを、前記第2のキーパッド画像に対応する第2のキーパッド画像マッピングに更新すること、
前記セキュア実行環境において、前記タッチスクリーンドライバから第2の入力位置座標を受信すること、および
前記第2のキーパッド画像マッピングを使用して、前記セキュア実行環境において、前記第2の入力位置座標を、文字またはシンボルに変換すること
を行うようにさらに適合される、請求項11に記載のデバイス。
【請求項１３】
タッチスクリーンを使用した安全な入力のためのデバイスにおいて動作可能な方法であって、
前記タッチスクリーン上の入力を処理するタッチスクリーンドライバを有するセキュア実行環境を実装するステップと、
表示される画像を前記タッチスクリーンに送るディスプレイドライバを有する非セキュア実行環境を実装するステップと、
第1のキーパッド画像を、前記タッチスクリーンによって表示されるように、前記セキュア実行環境から前記ディスプレイドライバに提供するステップと、
前記セキュア実行環境において、前記タッチスクリーンドライバから第1の入力位置座標を受信するステップと、
前記セキュア実行環境において、前記セキュア実行環境内で実装された第１のキーパッド画像マッピングを使用して、前記第1の入力位置座標を、文字、シンボル、および/または、前記タッチスクリーンにおいて表示された前記第1のキーパッド画像を変更するための要求のうちの少なくとも1つに変換するステップと
を含む方法。
【請求項１４】
前記第1のキーパッド画像を提供するより前に、前記第1のキーパッド画像を前記セキュア実行環境において生成するステップ
をさらに含む、請求項13に記載の方法。
【請求項１５】
前記第1のキーパッド画像を提供するより前に、前記第1のキーパッド画像を、前記セキュア実行環境に関連付けられたセキュアメモリから得るステップ
をさらに含む、請求項13に記載の方法。
【請求項１６】
前記セキュア実行環境において記憶または処理されたデータが、前記非セキュア実行環境に関連付けられたアプリケーションによって無許可アクセスされる恐れがない、請求項13に記載の方法。
【請求項１７】
前記セキュア実行環境が、前記非セキュア実行環境から独立している、請求項16に記載の方法。
【請求項１８】
前記非セキュア実行環境が、前記セキュア実行環境と比較して非セキュアである、請求項16に記載の方法。
【請求項１９】
前記非セキュア実行環境が、ハイレベルオペレーティングシステムを実装する、請求項16に記載の方法。
【請求項２０】
前記タッチスクリーンドライバからの前記第1の入力位置座標が、前記非セキュア実行環境をバイパスする、請求項16に記載の方法。
【請求項２１】
前記セキュア実行環境において、前記第1の入力位置座標を変換するステップが、前記セキュア実行環境において、前記第1の入力位置座標を、前記タッチスクリーンにおいて表示された前記第1のキーパッド画像を変更するための前記要求に変換するステップを含み、前記方法が、
複数のキーパッド画像を得るステップであり、前記複数のキーパッド画像が、前記第1のキーパッド画像および第2のキーパッド画像を含むステップと、
前記複数のキーパッド画像を、前記セキュア実行環境から、前記非セキュア実行環境に関連付けられたディスプレイドライバに提供するステップと、
前記第1の入力位置座標を受信するより前に、前記第1のキーパッド画像を表示するための第1の要求を、前記ディスプレイドライバへ送信するステップと
をさらに含む、請求項16に記載の方法。
【請求項２２】
前記セキュア実行環境において、前記第1の入力位置座標を、前記タッチスクリーンにおいて表示された前記第1のキーパッド画像を変更するための前記要求に変換した後、前記第2のキーパッド画像を表示するための第2の要求を、前記ディスプレイドライバへ送信するステップと、
前記第1のキーパッド画像に対応する第1のキーパッド画像マッピングを、前記第2のキーパッド画像に対応する第2のキーパッド画像マッピングに更新するステップと、
前記セキュア実行環境において、前記タッチスクリーンドライバから第2の入力位置座標を受信するステップと、
前記第2のキーパッド画像マッピングを使用して、前記セキュア実行環境において、前記第2の入力位置座標を、文字またはシンボルに変換するステップと
をさらに含む、請求項21に記載の方法。
【請求項２３】
複数のキーパッド画像を得るステップであり、前記複数のキーパッド画像が前記第1のキーパッド画像を含むステップと、
前記第1のキーパッド画像を、前記非セキュア実行環境に関連付けられた前記ディスプレイドライバに提供するより前に、前記複数のキーパッド画像のうちの前記第1のキーパッド画像を選択するステップと
をさらに含む、請求項16に記載の方法。
【請求項２４】
前記セキュア実行環境において、前記第1の入力位置座標を変換するステップが、前記セキュア実行環境において、前記第1の入力位置座標を、前記タッチスクリーンにおいて表示された前記第1のキーパッド画像を変更するための前記要求に変換するステップを含み、前記方法が、
前記複数のキーパッド画像のうちの第2のキーパッド画像を、前記セキュア実行環境から、前記非セキュア実行環境に関連付けられた前記ディスプレイドライバに提供するステップと、
前記第1のキーパッド画像に対応する第1のキーパッド画像マッピングを、前記第2のキーパッド画像に対応する第2のキーパッド画像マッピングに更新するステップと、
前記セキュア実行環境において、前記タッチスクリーンドライバから第2の入力位置座標を受信するステップと、
前記第2のキーパッド画像マッピングを使用して、前記セキュア実行環境において、前記第2の入力位置座標を、文字またはシンボルに変換するステップと
をさらに含む、請求項23に記載の方法。
【請求項２５】
タッチスクリーン上の入力を処理するタッチスクリーンドライバを有するセキュア実行環境を実装するための手段と、
表示される画像を前記タッチスクリーンに送るディスプレイドライバを有する非セキュア実行環境を実装するための手段と、
第1のキーパッド画像を、タッチスクリーンによって表示されるように、前記セキュア実行環境から前記ディスプレイドライバに提供するための手段と、
前記セキュア実行環境において、前記タッチスクリーンドライバから第1の入力位置座標を受信するための手段と、
前記セキュア実行環境において、前記セキュア実行環境に関連付けられた第１のキーパッド画像マッピングを使用して、前記第1の入力位置座標を、文字、シンボル、および/または、前記タッチスクリーンにおいて表示された前記第1のキーパッド画像を変更するための要求のうちの少なくとも1つに変換するための手段と
を備えるデバイス。
【請求項２６】
前記第1のキーパッド画像を提供するより前に、前記第1のキーパッド画像を前記セキュア実行環境において生成するための手段
をさらに備える、請求項25に記載のデバイス。
【請求項２７】
前記第1のキーパッド画像を提供するより前に、前記第1のキーパッド画像を、前記セキュア実行環境に関連付けられたセキュアメモリから得るための手段
をさらに備える、請求項25に記載のデバイス。
【請求項２８】
前記セキュア実行環境において記憶または処理されたデータが、前記非セキュア実行環境に関連付けられたアプリケーションによって無許可アクセスされる恐れがない、請求項25に記載のデバイス。
【請求項２９】
前記セキュア実行環境が、前記非セキュア実行環境から独立している、請求項28に記載のデバイス。
【請求項３０】
前記非セキュア実行環境が、前記セキュア実行環境と比較して非セキュアである、請求項28に記載のデバイス。
【請求項３１】
前記非セキュア実行環境が、ハイレベルオペレーティングシステムを実装する、請求項28に記載のデバイス。
【請求項３２】
前記タッチスクリーンドライバからの前記第1の入力位置座標が、前記非セキュア実行環境をバイパスする、請求項28に記載のデバイス。
【請求項３３】
前記セキュア実行環境において、前記第1の入力位置座標を変換するための手段が、前記セキュア実行環境において、前記第1の入力位置座標を、前記タッチスクリーンにおいて表示された前記第1のキーパッド画像を変更するための前記要求に変換するための手段を含み、前記デバイスが、
複数のキーパッド画像を得るための手段であり、前記複数のキーパッド画像が、前記第1のキーパッド画像および第2のキーパッド画像を含む手段と、
前記複数のキーパッド画像を、前記セキュア実行環境から、前記非セキュア実行環境に関連付けられたディスプレイドライバに提供するための手段と、
前記第1の入力位置座標を受信するより前に、前記第1のキーパッド画像を表示するための第1の要求を、前記ディスプレイドライバへ送信するための手段と
をさらに備える、請求項28に記載のデバイス。
【請求項３４】
前記セキュア実行環境において、前記第1の入力位置座標を、前記タッチスクリーンにおいて表示された前記第1のキーパッド画像を変更するための前記要求に変換した後、前記第2のキーパッド画像を表示するための第2の要求を、前記ディスプレイドライバへ送信するための手段と、
前記第1のキーパッド画像に対応する第1のキーパッド画像マッピングを、前記第2のキーパッド画像に対応する第2のキーパッド画像マッピングに更新するための手段と、
前記セキュア実行環境において、前記タッチスクリーンドライバから第2の入力位置座標を受信するための手段と、
前記第2のキーパッド画像マッピングを使用して、前記セキュア実行環境において、前記第2の入力位置座標を、文字またはシンボルに変換するための手段と
をさらに備える、請求項33に記載のデバイス。
【請求項３５】
複数のキーパッド画像を得るための手段であり、前記複数のキーパッド画像が前記第1のキーパッド画像を含む手段と、
前記第1のキーパッド画像を、前記非セキュア実行環境に関連付けられた前記ディスプレイドライバに提供するより前に、前記複数のキーパッド画像のうちの前記第1のキーパッド画像を選択するための手段と
をさらに備える、請求項28に記載のデバイス。
【請求項３６】
前記セキュア実行環境において、前記第1の入力位置座標を変換するための手段が、前記セキュア実行環境において、前記第1の入力位置座標を、前記タッチスクリーンにおいて表示された前記第1のキーパッド画像を変更するための前記要求に変換するための手段を含み、前記デバイスが、
前記複数のキーパッド画像のうちの第2のキーパッド画像を、前記セキュア実行環境から、前記非セキュア実行環境に関連付けられた前記ディスプレイドライバに提供するための手段と、
前記第1のキーパッド画像に対応する第1のキーパッド画像マッピングを、前記第2のキーパッド画像に対応する第2のキーパッド画像マッピングに更新するための手段と、
前記セキュア実行環境において、前記タッチスクリーンドライバから第2の入力位置座標を受信するための手段と、
前記第2のキーパッド画像マッピングを使用して、前記セキュア実行環境において、前記第2の入力位置座標を、文字またはシンボルに変換するための手段と
をさらに備える、請求項35に記載のデバイス。
【請求項３７】
タッチスクリーンを使用した安全な入力のためのデバイスにおいて動作可能な1つまたは複数の命令を有するプロセッサ可読記憶媒体であって、前記命令が、少なくとも1つのプロセッサによって実行されたとき、
前記タッチスクリーン上の入力を処理するタッチスクリーンドライバを有するセキュア実行環境を実装すること、
表示される画像を前記タッチスクリーンに送るディスプレイドライバを有する非セキュア実行環境を実装すること、
第1のキーパッド画像を、前記タッチスクリーンによって表示されるように、前記セキュア実行環境から前記ディスプレイドライバに提供すること、
前記セキュア実行環境において、前記タッチスクリーンドライバから第1の入力位置座標を受信すること、および
前記セキュア実行環境において、前記セキュア実行環境に関連付けられた第１のキーパッド画像マッピングを使用して、前記第1の入力位置座標を、文字、シンボル、および/または、前記タッチスクリーンにおいて表示された前記第1のキーパッド画像を変更するための要求のうちの少なくとも1つに変換すること
を前記プロセッサに行わせる、プロセッサ可読記憶媒体。
【請求項３８】
前記セキュア実行環境において記憶または処理されたデータが、前記非セキュア実行環境に関連付けられたアプリケーションによって無許可アクセスされる恐れがない、請求項37に記載のプロセッサ可読記憶媒体。
【請求項３９】
前記セキュア実行環境において、前記第1の入力位置座標を変換することが、前記セキュア実行環境において、前記第1の入力位置座標を、前記タッチスクリーンにおいて表示された前記第1のキーパッド画像を変更するための前記要求に変換することを含み、前記命令が、前記プロセッサによって実行されたとき、
複数のキーパッド画像を得ることであり、前記複数のキーパッド画像が、前記第1のキーパッド画像および第2のキーパッド画像を含むこと、
前記複数のキーパッド画像を、前記セキュア実行環境から、前記非セキュア実行環境に関連付けられたディスプレイドライバに提供すること、および
前記第1の入力位置座標を受信するより前に、前記第1のキーパッド画像を表示するための第1の要求を、前記ディスプレイドライバへ送信すること
を前記プロセッサにさらに行わせる、請求項38に記載のプロセッサ可読記憶媒体。
【請求項４０】
前記第1のキーパッド画像を提供することが、前記第1のキーパッド画像を、前記非セキュア実行環境に関連付けられたディスプレイドライバに提供することを含み、前記命令が、前記プロセッサによって実行されたとき、
複数のキーパッド画像を得ることであり、前記複数のキーパッド画像が前記第1のキーパッド画像を含むこと、および
前記第1のキーパッド画像を、前記非セキュア実行環境に関連付けられた前記ディスプレイドライバに提供するより前に、前記複数のキーパッド画像のうちの前記第1のキーパッド画像を選択すること
を前記プロセッサにさらに行わせる、請求項39に記載のプロセッサ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
本特許出願は、その開示全体が参照により本明細書に明確に組み込まれる、2011年5月27日に出願された「Secure Input Via a Touch Screen」と題する米国仮特許出願第61/491,086号の優先権を主張する。
【０００２】
様々な特徴は、入力デバイスを使用して入力された情報を安全にすることに関し、より詳細には、タッチスクリーン入力デバイスを介して入力された情報へのアクセスを保護することに関する。
【背景技術】
【０００３】
多数の電子デバイスは、入力デバイスと出力デバイスの両方の働きをすることができる、タッチスクリーンなどの多目的デバイスのほうを選んで、専用の入力デバイスの使用を減らしている。このことは、しばしば、電子デバイスのサイズをより小さくすることを可能にし、かつ/または、ディスプレイサイズの増大を可能にする。タッチスクリーンはまた、タッチスクリーン上に表示されたキーパッド画像(すなわち、入力デバイス)の外観および/または構成が変更されることを可能にするので、より大きい柔軟性をも提供する。
【０００４】
タッチスクリーンドライバを用いて、特定の入力シンボル(たとえば、「a」の文字)のために画面上のどこにタッチするべきかをユーザが知ることを可能にする入力デバイス画像を、画面上に表示することが必要である。従来のキーボードまたはキーパッドとは反対に、タッチスクリーンキーボードまたはキーパッドを実装することは、入力(タッチスクリーン)および出力(ディスプレイ)という、2つの構成要素を含む。キーボード/キーパッドを実装するとき、タッチスクリーンは、入力デバイスとして動作する。しかしながら、どのキーが押下されたかについてのフィードバックをユーザに与えるために、ある種類の視覚フィードバックが与えられる。たとえば、押下されたキーの値が、タッチポイントの上に表示されることがあり、または、キーの陰影が、そのキーが押圧されたという印象を与えるために変化することがある。このタイプのキーボード/キーパッド、および任意の付随する視覚フィードバックは、しばしば、Android(登録商標)およびiOS(登録商標)など、ハイレベルオペレーティングシステム(HLOS)によって制御される。したがって、HLOSは、ユーザインターフェース(UI)を制御し、タッチスクリーンドライバからイベントを受信することができる。
【０００５】
しかしながら、HLOSは、タッチスクリーン上で入力された情報への無許可アクセスを可能にする、攻撃またはハッキングを受けやすいことがある。トラステッド実行環境(TEE:trusted execution environment)を提供する実行環境システム(たとえば、プロセッサ)では、直接ハードウェアからTEEへの入力パスを有することが必要であり得る。このことは、入力デバイスの制御をHLOSからTEEへ移し、HLOSが、ユーザによって入力された入力へのアクセスを有さないように、かつ、入力が代わりにTEEにとってのみアクセス可能であるようにすることによって達成される。典型的な物理キーボード/キーパッドの場合、このことはかなり簡単であり、その理由は、ユーザが典型的に見る視覚フィードバックが、ディスプレイ入力エリア内の隠蔽文字(たとえば、「*」)の外観、および、キーが押圧されたことを示すキーボード/キーパッドの物理的な触覚フィードバックのみであるからである。
【０００６】
しかしながら、入力デバイスがタッチスクリーンである場合、状況はより複雑であり、その理由は、HLOSにおいて動作するアプリケーションがキーボード/キーパッドを表示する場合でも、タッチスクリーンのためのドライバがTEEにおいて実行されるからである。また、タッチスクリーンが典型的に与える出力は、ディスプレイのどこでタッチされているか(たとえば、座標または画面位置)のみである。(タッチスクリーンドライバの複雑さに応じて、スワイプする動きなど、いくつかの入力ジェスチャーもまた与えられ得る。)画面位置座標の、対応するアクションへのマッピングは、典型的には、ディスプレイを制御し、何のアクションおよび/またはキーに特定の画面座標が対応するかを知ることができる、HLOSによって処理される。TEE上で実行されたタッチスクリーンドライバが、HLOSによって画面上に表示されたキー間のマッピングを有することになっていたとしても、そのようなアーキテクチャはなお安全な入力を提供しないことがあり、その理由は、Android(登録商標)など、いくつかのHLOSが、ユーザがデフォルトのタッチスクリーンキーボード/キーパッドを別のキーボード/キーパッドで置き換えることを可能にするからである。そのような場合、TEEは、あるマッピング情報がHLOSによって提供されなければ、キーボード/キーパッドマッピングを知ることができない。HLOSを安全であると見なすことができないので、TEEは、HLOSによって提供されたそのようなマッピング情報に依拠することができない。
【０００７】
したがって、タッチスクリーンを使用した入力デバイスを実装するための安全な方法が必要である。
【発明の概要】
【課題を解決するための手段】
【０００８】
1つの特徴は、画像を表示し、入力を受信するように適合されたタッチスクリーンと、タッチスクリーンに通信可能に結合された処理回路とを備えるデバイスを提供し、処理回路が、タッチスクリーンドライバを有するセキュア実行環境を実装すること、第1のキーパッド画像を、タッチスクリーンによって表示されるように、セキュア実行環境から提供すること、セキュア実行環境において、タッチスクリーンドライバから第1の入力位置座標を受信すること、ならびに、セキュア実行環境において、第1の入力位置座標を、文字、シンボル、および/または、タッチスクリーンにおいて表示された第1のキーパッド画像を変更するための要求のうちの少なくとも1つに変換することを行うように適合される。本開示の一態様によれば、処理回路は、セキュア実行環境において、セキュア実行環境内で実装された第1のキーパッド画像マッピングを使用して、第1の入力位置座標を、文字、シンボル、および/または、タッチスクリーンにおいて表示された第1のキーパッド画像を変更するための要求のうちの少なくとも1つに変換することを行うようにさらに適合される。処理回路は、第1のキーパッド画像を提供するより前に、第1のキーパッド画像をセキュア実行環境において生成することを行うようにさらに適合され得る。一態様によれば、処理回路は、第1のキーパッド画像を提供するより前に、第1のキーパッド画像を、セキュア実行環境に関連付けられたセキュアメモリから得ることを行うようにさらに適合される。別の態様によれば、セキュア実行環境は、第1のキーパッド画像をタッチスクリーンへ送るディスプレイドライバを含む。
【０００９】
本開示の一態様によれば、処理回路は、非セキュア実行環境を実装することを行うようにさらに適合され、セキュア実行環境において記憶または処理されたデータが、非セキュア実行環境に関連付けられたアプリケーションによって無許可アクセスされる恐れがない。セキュア実行環境は、非セキュア実行環境から独立し得る。一態様によれば、非セキュア実行環境は、セキュア実行環境と比較して非セキュアである。非セキュア実行環境は、ハイレベルオペレーティングシステムとして実装され得る。一態様によれば、タッチスクリーンドライバからの第1の入力位置座標は、非セキュア実行環境をバイパスすることができる。別の態様によれば、セキュア実行環境において、第1の入力位置座標を変換することは、セキュア実行環境において、第1の入力位置座標を、タッチスクリーンにおいて表示された第1のキーパッド画像を変更するための要求に変換することを含み、処理回路は、複数のキーパッド画像を得ることであり、複数のキーパッド画像が、第1のキーパッド画像および第2のキーパッド画像を含むこと、複数のキーパッド画像を、セキュア実行環境から、非セキュア実行環境に関連付けられたディスプレイドライバに提供すること、ならびに、第1の入力位置座標を受信するより前に、第1のキーパッド画像を表示するための第1の要求を、ディスプレイドライバへ送信することを行うようにさらに適合される。その上、処理回路は、セキュア実行環境において、第1の入力位置座標を、タッチスクリーンにおいて表示された第1のキーパッド画像を変更するための要求に変換した後、第2のキーパッド画像を表示するための第2の要求を、ディスプレイドライバへ送信すること、第1のキーパッド画像に対応する第1のキーパッド画像マッピングを、第2のキーパッド画像に対応する第2のキーパッド画像マッピングに更新すること、セキュア実行環境において、タッチスクリーンドライバから第2の入力位置座標を受信すること、および、第2のキーパッド画像マッピングを使用して、セキュア実行環境において、第2の入力位置座標を、文字またはシンボルに変換することを行うようにさらに適合され得る。
【００１０】
別の態様によれば、第1のキーパッド画像を提供することは、第1のキーパッド画像を、非セキュア実行環境に関連付けられたディスプレイドライバに提供することを含み得る。したがって、処理回路は、複数のキーパッド画像を得ることであり、複数のキーパッド画像が第1のキーパッド画像を含むこと、および、第1のキーパッド画像を、非セキュア実行環境に関連付けられたディスプレイドライバに提供するより前に、複数のキーパッド画像のうちの第1のキーパッド画像を選択することを行うようにさらに適合され得る。一態様によれば、セキュア実行環境において、第1の入力位置座標を変換することは、セキュア実行環境において、第1の入力位置座標を、タッチスクリーンにおいて表示された第1のキーパッド画像を変更するための要求に変換することを含み、処理回路は、複数のキーパッド画像のうちの第2のキーパッド画像を、セキュア実行環境から、非セキュア実行環境に関連付けられたディスプレイドライバに提供すること、第1のキーパッド画像に対応する第1のキーパッド画像マッピングを、第2のキーパッド画像に対応する第2のキーパッド画像マッピングに更新すること、セキュア実行環境において、タッチスクリーンドライバから第2の入力位置座標を受信すること、および、第2のキーパッド画像マッピングを使用して、セキュア実行環境において、第2の入力位置座標を、文字またはシンボルに変換することを行うようにさらに適合され得る。
【００１１】
別の特徴は、タッチスクリーンを使用した安全な入力のためのデバイスにおいて動作可能な方法を提供し、この方法は、タッチスクリーンドライバを有するセキュア実行環境を実装するステップと、第1のキーパッド画像を、タッチスクリーンによって表示されるように、セキュア実行環境から提供するステップと、セキュア実行環境において、タッチスクリーンドライバから第1の入力位置座標を受信するステップと、セキュア実行環境において、第1の入力位置座標を、文字、シンボル、および/または、タッチスクリーンにおいて表示された第1のキーパッド画像を変更するための要求のうちの少なくとも1つに変換するステップとを含む。本開示の一態様によれば、この方法は、セキュア実行環境において、セキュア実行環境内で実装された第1のキーパッド画像マッピングを使用して、第1の入力位置座標を、文字、シンボル、および/または、タッチスクリーンにおいて表示された第1のキーパッド画像を変更するための要求のうちの少なくとも1つに変換するステップ
をさらに含む。この方法は、第1のキーパッド画像を提供するより前に、第1のキーパッド画像をセキュア実行環境において生成するステップをさらに含む。一態様によれば、この方法は、第1のキーパッド画像を提供するより前に、第1のキーパッド画像を、セキュア実行環境に関連付けられたセキュアメモリから得るステップをさらに含む。別の態様によれば、セキュア実行環境は、第1のキーパッド画像をタッチスクリーンへ送るディスプレイドライバを含む。
【００１２】
別の特徴は、タッチスクリーンドライバを有するセキュア実行環境を実装するための手段と、第1のキーパッド画像を、タッチスクリーンによって表示されるように、セキュア実行環境から提供するための手段と、セキュア実行環境において、タッチスクリーンドライバから第1の入力位置座標を受信するための手段と、セキュア実行環境において、第1の入力位置座標を、文字、シンボル、および/または、タッチスクリーンにおいて表示された第1のキーパッド画像を変更するための要求のうちの少なくとも1つに変換するための手段とを備えるデバイスを提供する。本開示の一態様によれば、このデバイスは、セキュア実行環境において、セキュア実行環境に関連付けられた第1のキーパッド画像マッピングを使用して、第1の入力位置座標を、文字、シンボル、および/または、タッチスクリーンにおいて表示された第1のキーパッド画像を変更するための要求のうちの少なくとも1つに変換するための手段をさらに備える。このデバイスは、第1のキーパッド画像を提供するより前に、第1のキーパッド画像をセキュア実行環境において生成するための手段をさらに備える。一態様によれば、このデバイスは、第1のキーパッド画像を提供するより前に、第1のキーパッド画像を、セキュア実行環境に関連付けられたセキュアメモリから得るための手段をさらに備える。別の態様によれば、セキュア実行環境は、第1のキーパッド画像をタッチスクリーンへ送るディスプレイドライバを含む。
【００１３】
別の特徴は、タッチスクリーンを使用した安全な入力のためのデバイスにおいて動作可能な1つまたは複数の命令を有するプロセッサ可読媒体を提供し、命令が、少なくとも1つのプロセッサによって実行されたとき、セキュア実行環境を実装すること、第1のキーパッド画像を、タッチスクリーンによって表示されるように、セキュア実行環境から提供すること、セキュア実行環境において、タッチスクリーンドライバから第1の入力位置座標を受信すること、ならびに、セキュア実行環境において、第1の入力位置座標を、文字、シンボル、および/または、タッチスクリーンにおいて表示された第1のキーパッド画像を変更するための要求のうちの少なくとも1つに変換することをプロセッサに行わせる。
【図面の簡単な説明】
【００１４】
【図１】タッチスクリーンキーパッドの安全な入力を実施することができるデバイスのブロック図である。
【図２】タッチスクリーンキーパッドを使用した安全な入力の流れ図である。
【図３Ａ】タッチスクリーンキーパッドを使用した安全な入力の流れ図である。
【図３Ｂ】タッチスクリーンキーパッドを使用した安全な入力の流れ図である。
【図４Ａ】タッチスクリーンキーパッドを使用した安全な入力の流れ図である。
【図４Ｂ】タッチスクリーンキーパッドを使用した安全な入力の流れ図である。
【図５】タッチスクリーンから入力を安全に得るためのデバイスの処理回路において動作可能な方法の流れ図である。
【図６Ａ】タッチスクリーンから入力を安全に得るためのデバイスの処理回路において動作可能な方法の流れ図である。
【図６Ｂ】タッチスクリーンから入力を安全に得るためのデバイスの処理回路において動作可能な方法の流れ図である。
【図７Ａ】タッチスクリーンから入力を安全に得るためのデバイスの処理回路において動作可能な方法の流れ図である。
【図７Ｂ】タッチスクリーンから入力を安全に得るためのデバイスの処理回路において動作可能な方法の流れ図である。
【図８】タッチスクリーンから入力を安全に得るためのデバイスの処理回路において動作可能な方法の流れ図である。
【図９】タッチスクリーンキーパッドの安全な入力を実施することができるモバイルデバイスのブロック図である。
【図１０】タッチスクリーンキーパッドを使用した安全な入力の流れ図である。
【図１１Ａ】モバイルデバイスの処理回路内で動作可能なタッチスクリーンキーパッドを使用した安全な入力の流れ図である。
【図１１Ｂ】モバイルデバイスの処理回路内で動作可能なタッチスクリーンキーパッドを使用した安全な入力の流れ図である。
【図１２Ａ】タッチスクリーンから入力を安全に得るためのモバイルデバイスの処理回路において動作可能な方法の流れ図である。
【図１２Ｂ】タッチスクリーンから入力を安全に得るためのモバイルデバイスの処理回路において動作可能な方法の流れ図である。
【図１３】タッチスクリーンから入力を安全に得るためのモバイルデバイスの処理回路において動作可能な方法の流れ図である。
【図１４】タッチスクリーンキーパッドの安全な入力を実施することができるデバイスのブロック図である。
【図１５】タッチスクリーンキーパッドを使用した安全な入力の流れ図である。
【図１６Ａ】タッチスクリーンキーパッドを使用した安全な入力の流れ図である。
【図１６Ｂ】タッチスクリーンキーパッドを使用した安全な入力の流れ図である。
【図１７Ａ】タッチスクリーンから入力を安全に得るためのデバイスの処理回路において動作可能な方法の流れ図である。
【図１７Ｂ】タッチスクリーンから入力を安全に得るためのデバイスの処理回路において動作可能な方法の流れ図である。
【図１８】タッチスクリーンを使用した安全な入力のためのデバイスにおいて動作可能な方法の流れ図である。
【発明を実施するための形態】
【００１５】
以下の説明では、本開示の様々な態様の完全な理解を提供するために具体的な詳細が与えられる。ただし、態様はこれらの具体的な詳細なしに実施され得ることを当業者は理解されよう。たとえば、態様が不要な詳細で不明瞭になるのを避けるために、回路をブロック図で示すことがある。他の場合には、本開示の態様を不明瞭にしないように、よく知られている回路、構造および技法を詳細に示さないことがある。
【００１６】
「例示的な」という言葉は、「例、事例、または例示として機能すること」を意味するように本明細書で使用される。「例示的」として本明細書で説明するいかなる実装形態または態様も、必ずしも本開示の他の態様よりも好ましいまたは有利なものと解釈すべきではない。同様に、「態様」という用語は、本開示のすべての態様が、論じられた特徴、利点または動作モードを含むことを必要とするとは限らない。「キーパッド」という言葉は、たとえば、英字キー、英数字キー、数字キー、および/またはシンボルキーを有する様々なタイプのキーボード、ならびに他のタイプの入力デバイスを指すように本明細書で使用される。
概観
【００１７】
タッチスクリーンから入力を安全に得るための方法および装置が提供される。セキュア実行環境は、(たとえば、プロセッサにおいて)実装されてもよく、ただし、セキュア実行環境は、タッチスクリーン入力ドライバを含み得る。キーパッド画像が、表示のために、セキュア実行環境からタッチスクリーンへ送られ得る。入力位置が、タッチスクリーンドライバからセキュア実行環境において受信され得る。入力位置は、セキュア実行環境において、文字、シンボル、または、タッチスクリーンにおいて表示されたキーパッド画像を変更するための要求に変換され得る。セキュア実行環境は、受信された入力位置座標を文字セットおよび/またはアクションにマップする、キーパッド画像マッピングを実装することができる。
【００１８】
本開示の一態様では、ディスプレイドライバを含む非セキュア実行環境は、たとえば、セキュア実行環境を実装する同じプロセッサにおいて実装され得る。セキュア実行環境において記憶または処理されたデータは、非セキュア実行環境に関連付けられたアプリケーションによって無許可アクセスされる恐れがない。セキュア実行環境は、キーパッド画像を非セキュア実行環境へ送り、キーパッド画像をタッチスクリーンによって表示させることができる。セキュア実行環境は、非セキュア実行環境から独立していることができ、非セキュア実行環境は、セキュア実行環境と比較して非セキュアであり得る。本開示の別の態様では、セキュア実行環境はまた、キーパッド画像をタッチスクリーンに提供するディスプレイドライバを実装することもできる。
【００１９】
タッチスクリーンを介した安全な入力のための第1の例示的な実装形態
図1は、本開示の一態様による、タッチスクリーンキーパッドの安全な入力を実施することができるデバイス100のブロック図を示す。デバイス100は、処理回路102、メモリ回路104、および/またはタッチスクリーン106を含み得る。処理回路102、メモリ回路104、およびタッチスクリーン106は、通信可能に、かつ/または電気的に共に結合され得る。処理回路102は、1つまたは複数の処理デバイス(たとえば、プロセッサ)として実装されてもよく、第1の実行環境108および第2の実行環境112を動作させるように適合され得る。第1の実行環境108および第2の実行環境112は、単一のプロセッサ上で互いに並列に実行することができる。別の例として、第1および第2の実行環境108、112は、処理回路102を構成する異なるプロセッサまたはプロセッサコア上で並列に実行することができる。メモリ回路104は、1つまたは複数のメモリデバイス(たとえば、RAM、ROM、揮発性メモリ、不揮発性メモリ、ハードディスクドライブなど)として実装され得る。メモリ回路104は、第2の実行環境112に関連付けられないアプリケーションによって容易にアクセスまたは変更することができない、セキュアメモリ部分105を含み得る。タッチスクリーン106は、入力を受信し、また視覚出力を表示するようにも適合される、電子的視覚ディスプレイであり得る。タッチスクリーン106は、そのディスプレイエリア内で人間および/またはスタイラスタッチの存在および位置を検出することによって、入力デバイスとして働くことができる。タッチスクリーン106は、限定はしないが、抵抗性タッチスクリーン、表面弾性波タッチスクリーン(surface acoustic touchscreen)、容量性(たとえば、表面、投影、相互、または自己)タッチスクリーン、赤外線タッチスクリーン、光イメージングタッチスクリーン、分散信号タッチスクリーン、および/または音響パルス認識タッチスクリーンであり得る。
【００２０】
第1の実行環境108(本明細書では「非セキュア実行環境」とも呼ぶ)は、1つまたは複数のアプリケーションを実行することができるハイレベルオペレーティングシステム(HLOS)であり得る。第1の実行環境108は、第1の実行環境108における情報が意図しないパーティまたはアプリケーションによってアクセスされ得るという点で、「非セキュア」と見なされ得る。たとえば、悪意のあるエンティティが、データおよび/または情報(たとえば、パスワード、ユーザアカウント情報など)への無許可アクセスを得るために、第1の実行環境108に関連付けられたメモリスタック、メモリ空間、バッファ、レジスタ、および/またはデータ経路インターフェースをスヌープすることができるアプリケーションをインストールすることがある。
【００２１】
対照的に、第2の実行環境112(本明細書では「セキュア実行環境」とも呼ぶ)は、非セキュア実行環境108において動作するアプリケーション(たとえば、HLOSにおいて動作するアプリケーション)によって容易にアクセス可能ではない、トラステッド実行環境であり得る。したがって、セキュア実行環境112は、セキュア実行環境112に関連付けられたデータまたは情報を明らかにすることができる、スヌーピングまたは無許可アクセスから保護される。非セキュア実行環境108は、規定のセットのインターフェースを使用してセキュア実行環境112と対話することができる。セキュア実行環境112の機能性は、典型的には、セキュア実行環境112ベンダー/ディストリビュータによって提供されるものに限定され、したがって、セキュア実行環境112が強固に制御されるので、セキュア実行環境112において任意のアプリケーションをインストールすることは、大変困難である。セキュア実行環境の1つの非限定的な例は、Gieseke & Devrient GmbHによって作成されたMobicore(登録商標)である。
【００２２】
図1に示した例では、セキュア実行環境112は、タッチスクリーンドライバ114(たとえば、入力ドライバ、タッチスクリーン入力ドライバなど)を実行して、タッチスクリーン106によって生成された出力を処理することができる。たとえば、タッチスクリーンドライバは、ユーザによる画面タッチに応答して、タッチスクリーン106によって生成された電子信号を受信し、ユーザがタッチしたタッチスクリーン106上の位置に対応する画面位置座標を生成する。したがって、本開示の一態様によれば、タッチスクリーンドライバ114は、厳密にセキュア実行環境112内に含まれ、かつ/またはセキュア実行環境112内で実行され得る(たとえば、セキュアメモリ105内に記憶されたタッチスクリーンドライバ114)。タッチスクリーン入力デバイスの安全な実装形態を提供するために、セキュア実行環境112は、少なくとも1つのキーパッド画像116を非セキュア実行環境108のディスプレイドライバ110に提供することができる。ディスプレイドライバ110は、キーパッド画像116をタッチスクリーン106において表示させる。本開示の一態様によれば、セキュア実行環境112は、キーパッド画像116を生成する。別の態様では、キーパッド画像116は、メモリ回路104のセキュアメモリ部分105内に記憶され、セキュア実行環境112によってセキュアメモリ105から取り出される。
【００２３】
タッチスクリーン106に送信されたキーパッド画像116は次いで、タッチスクリーン106によって表示される。表示されたキーパッド画像120が次いで、ユーザによってデータ(たとえば、ユーザ情報、アカウント情報、パスワードなど)を入力するために操作され得る。たとえば、指またはスタイラスを使用して、ユーザは、ユーザが入力/選択することを望む所望のシンボルまたはキーに対応する、タッチスクリーン106の一部分にタッチすることができる。タッチスクリーンドライバ114は次いで、どこでタッチスクリーン106がタッチ(たとえば、キーパッド押下)を検知したかの位置情報(たとえば、座標)を、セキュア実行環境112に提供する。位置情報(たとえば、座標)は、したがって、非セキュア実行環境108をバイパスし、非セキュア実行環境108内で実行されるアプリケーションに知られないことが可能である。セキュア実行環境112内で実装されたキーパッドマッピング118機能(たとえば、ルックアップテーブル)が次いで、位置情報を特定の文字、シンボル、または他の入力に変換する。たとえば、位置情報は、特定の文字またはシンボルにマップする座標を含み得る。別の例として、位置情報は、スワイプジェスチャーなどのジェスチャーを表す、一連の座標を含み得る。本開示の少なくとも1つの態様では、キーパッドマッピング118が非セキュア実行環境108に知られておらず、その理由は、キーパッドマッピング118が厳密にセキュア実行環境112に常駐しているからである。したがって、非セキュア実行環境108内で実行されるアプリケーションは、キーパッドマッピング118へのアクセスを有することができない。
【００２４】
セキュア実行環境112は、キーパッド画像116を提供する(たとえば、セキュア実行環境112は、キーパッド画像116のソースであり得る)ので、セキュア実行環境112は、位置座標のセットによって画定されたキーパッド画像における各文字および/またはシンボルを知っている。タッチスクリーンドライバ114から位置情報を受信すると、キーパッドマッピング118機能は、そのような位置情報が対応するキー、シンボル、またはジェスチャーを確認することができる。したがって、非セキュア実行環境108によって提供されるキーパッド画像および/またはキーパッドマッピングに依拠する代わりに、デバイス100は、セキュア実行環境112によって提供されるキーパッド画像116および/またはキーパッドマッピング118を利用して、タッチスクリーン入力デバイスがセキュア実行環境112内に内蔵されており、非セキュア実行環境108の信頼性に依拠しないことを保証する。
【００２５】
図2は、本開示の一態様による、タッチスクリーンキーパッドを使用した安全な入力の流れ図200を示す。ステップ202で、セキュア実行環境112が、少なくとも1つのキーパッド画像を生成し、かつ/または(たとえば、セキュアメモリ105から)得る。ステップ204で、セキュア実行環境112が、キーパッド画像を、非セキュア実行環境108内で動作するディスプレイドライバ110に提供/送信する。ステップ206で、非セキュア実行環境108のディスプレイドライバ110が、キーパッド画像をタッチスクリーンディスプレイ106に提供する。ステップ208で、タッチスクリーン106が、キーパッド画像を表示する。ステップ210で、タッチスクリーン106が、少なくとも1つのキーパッド画像入力選択をユーザから受信する。行われた選択は、タッチスクリーンディスプレイ106に関連付けられた1つまたは複数の位置座標に対応する。ステップ212で、タッチスクリーンドライバ114が、選択に関連付けられた位置座標を、セキュア実行環境112へ送信/提供する。ステップ214で、セキュア実行環境112が、キーパッド画像マッピング118を使用して、選択に関連付けられた位置座標を、対応するユーザにより所望されたシンボル、キー、および/またはアクションに変換する。
【００２６】
図3Aおよび図3Bは、本開示の一態様による、タッチスクリーンキーパッドを使用した安全な入力の流れ図300を示す。ステップ302で、セキュア実行環境112が、複数のキーパッド画像を生成し、かつ/または(たとえば、セキュアメモリ105から)得る。たとえば、複数のキーパッド画像は、数字0〜9の個人識別番号(PIN)キーパッド、QWERTY型キーボード、QWERTY型キーパッドの「シフト」バージョン、標準電話キーパッド、および/または、他のシンボルをもつ追加のキーパッドを含み得る。ステップ304で、セキュア実行環境112が、複数のキーパッド画像を、非セキュア実行環境108内で動作するディスプレイドライバ110に提供/送信する。一態様によれば、複数のキーパッド画像が、非セキュア実行環境108内で実行する安全なタッチスクリーンキーパッド入力を要求するアプリケーションに提供される。ステップ306で、セキュア実行環境112が、提供された複数のキーパッド画像のうちの第1のキーパッド画像を表示するために、第1の要求を非セキュア実行環境108のディスプレイドライバ110に提供/送信する。要求は、複数のキーパッド画像のうちのどれをタッチスクリーン106が表示するべきかを指定する。一態様によれば、第1の要求が定期的に送られてもよく、または代替的に、必要に応じて送られてもよい。ステップ308で、非セキュア実行環境108のディスプレイドライバ110が、第1のキーパッド画像をタッチスクリーンディスプレイ106に提供する。ステップ310で、タッチスクリーン106が、第1のキーパッド画像を表示する。ステップ312で、タッチスクリーン106が、第1のキーパッド画像入力選択をユーザから受信する。この例では、第1の選択は、キーパッド画像を複数のキーパッド画像のうちの別のキーパッド画像に変更するための、ユーザによる要求に対応する。ステップ314で、タッチスクリーンドライバ114が、第1の選択に関連付けられたタッチスクリーン位置座標を、セキュア実行環境112へ送信/提供する。ステップ316で、セキュア実行環境112が、第1のキーパッド画像マッピングを使用して、第1の選択に関連付けられた位置座標を、キーパッド画像をユーザによって所望された別のキーパッド画像に変更するための要求に変換する。
【００２７】
ステップ318で、セキュア実行環境112が、複数のキーパッド画像のうちの所望の、第2のキーパッド画像を表示するために、第2の要求を非セキュア実行環境108のディスプレイドライバ110に提供/送信する。第2の要求は、複数のキーパッド画像のうちのどれをタッチスクリーン106が表示するべきかを指定する。一態様によれば、第2の要求が定期的に送られてもよく、または代替的に、必要に応じて送られてもよい。ステップ320で、非セキュア実行環境108のディスプレイドライバ110が、第2のキーパッド画像をタッチスクリーンディスプレイ106に提供する。図3Bを参照すると、ステップ322で、タッチスクリーン106が、第2のキーパッド画像を表示する。ステップ324で、タッチスクリーン106が、第2のキーパッド画像入力選択をユーザから受信する。この例では、第2の選択は、ユーザによって所望されたシンボル/文字に対応する。ステップ326で、タッチスクリーンドライバ114が、第2の選択に関連付けられたタッチスクリーン位置座標を、セキュア実行環境112へ送信/提供する。ステップ328で、セキュア実行環境112が、そのキーパッド画像マッピングを、第1のキーパッド画像マッピングから、ステップ320でタッチスクリーン106に提供された第2のキーパッド画像に対応する(たとえば、それに関連付けられた)第2のキーパッド画像マッピングに更新する。一態様によれば、更新ステップ328は、ステップ316の後、すなわち、位置座標を、第1のキーパッド画像を変更するための要求に変換した後、行われてもよい。別の態様によれば、更新ステップ328は、ステップ318、320、322、および324のうちのいずれか1つの直後に行われてもよい。ステップ330で、セキュア実行環境112が、第2のキーパッド画像マッピングを使用して、第2の選択に関連付けられた位置座標を、対応するユーザにより所望されたシンボル/文字に変換する。このようにして、セキュア実行環境112は、非セキュア実行環境108(たとえば、非セキュア実行環境108内で実行する安全なタッチスクリーンキーパッド入力を要求するアプリケーション)へ、すべてのキーパッド画像を一括して送信し、次いで、後に、必要に応じて、または定期的に、キーパッド画像を変更するための要求を送る。
【００２８】
図4Aおよび図4Bは、本開示の一態様による、タッチスクリーンキーパッドを使用した安全な入力の流れ図400を示す。ステップ402で、セキュア実行環境112が、複数のキーパッド画像を生成し、かつ/または(たとえば、セキュアメモリ105から)得る。たとえば、複数のキーパッド画像は、数字0〜9の個人識別番号(PIN)キーパッド、QWERTY型キーボード、QWERTY型キーパッドの「シフト」バージョン、標準電話キーパッド、および/または、他のシンボルをもつ追加のキーパッドを含み得る。ステップ404で、セキュア実行環境112が、第1のキーパッド画像を、非セキュア実行環境108内で動作するディスプレイドライバ110に提供/送信する。一態様によれば、第1のキーパッド画像が、非セキュア実行環境108内で実行する安全なタッチスクリーンキーパッド入力を要求するアプリケーションに提供される。ステップ406で、非セキュア実行環境108のディスプレイドライバ110が、第1のキーパッド画像をタッチスクリーンディスプレイ106に提供する。ステップ408で、タッチスクリーン106が、第1のキーパッド画像を表示する。ステップ410で、タッチスクリーン106が、第1のキーパッド画像入力選択をユーザから受信する。この例では、第1の選択は、キーパッド画像を複数のキーパッド画像のうちの別のキーパッド画像に変更するための、ユーザによる要求に対応する。ステップ412で、タッチスクリーンドライバ114が、第1の選択に関連付けられたタッチスクリーン位置座標を、セキュア実行環境112へ送信/提供する。ステップ414で、セキュア実行環境112が、第1のキーパッド画像マッピングを使用して、第1の選択に関連付けられた位置座標を、キーパッド画像をユーザによって所望された別のキーパッド画像に変更するための要求に変換する。
【００２９】
ステップ416で、セキュア実行環境112が、複数のキーパッド画像のうちの所望の、第2のキーパッド画像を表示するために、第2のキーパッド画像を非セキュア実行環境108のディスプレイドライバ110に提供/送信する。ステップ418で、非セキュア実行環境108のディスプレイドライバ110が、第2のキーパッド画像をタッチスクリーンディスプレイ106に提供する。ステップ420で、タッチスクリーン106が、第2のキーパッド画像を表示する。図4Bを参照すると、ステップ422で、タッチスクリーン106が、第2のキーパッド画像入力選択をユーザから受信する。この例では、第2の選択は、ユーザによって所望されたシンボル/文字に対応する。ステップ424で、タッチスクリーンドライバ114が、第2の選択に関連付けられたタッチスクリーン位置座標を、セキュア実行環境112へ送信/提供する。ステップ426で、セキュア実行環境112が、そのキーパッド画像マッピングを、第1のキーパッド画像マッピングから、ステップ418でタッチスクリーン106に提供された第2のキーパッド画像に対応する(たとえば、それに関連付けられた)第2のキーパッド画像マッピングに更新する。一態様によれば、更新ステップ426は、ステップ414の後、すなわち、位置座標を、第1のキーパッド画像を変更するための要求に変換した後、行われてもよい。別の態様によれば、更新ステップ426は、ステップ416、418、420、および422のうちのいずれか1つの直後に行われてもよい。ステップ428で、セキュア実行環境112が、第2のキーパッド画像マッピングを使用して、第2の選択に関連付けられた位置座標を、対応するユーザにより所望されたシンボル/文字に変換する。このようにして、セキュア実行環境112は、キーパッド画像を、非セキュア実行環境108(たとえば、非セキュア実行環境108内で実行する安全なタッチスクリーンキーパッド入力を要求するアプリケーション)へ、その特定のキーパッド画像の必要性が生じるとき、タッチスクリーン106上で表示するために送信する。
【００３０】
セキュア実行環境112は、いつキーパッド画像変更が行われるかを知っているので、そのキーパッド画像マッピングを適切なマップに更新することができる。これにより、セキュア実行環境112は、ユーザインターフェースドライバを記憶かつ/または実行する必要なしに、どのキーが押下されているかを知ることが可能になる。むしろ、ユーザインターフェースドライバは、非セキュア実行環境108によって実行され(たとえば、ハイレベルオペレーティングシステムによって実行され)得る。ユーザインターフェースドライバをセキュア実行環境112において記憶かつ/または実行することは、いくつかの適用例では望ましくないことがあり、その理由は、セキュア実行環境112では、実装することが高価になり得る、セキュアメモリ105などのリソースが制限され得るからである。
【００３１】
図5は、本開示の一態様による、タッチスクリーン106から入力を安全に得るためのデバイス100の処理回路102(図1参照)において動作可能な方法の流れ図500を示す。処理回路102は、非セキュア実行環境108(たとえば、ハイレベルオペレーティングシステム)およびセキュア実行環境112(たとえば、トラステッド実行環境)など、2つ以上の別々の処理システムまたは環境を含み得る。図5を参照すると、ステップ502で、セキュア実行環境が、少なくとも1つのキーパッド画像を生成し、かつ/または(たとえば、セキュアメモリから)得る。ステップ504で、セキュア実行環境が、キーパッド画像を、非セキュア実行環境内で動作するディスプレイドライバに提供する。ステップ506で、ディスプレイドライバが、キーパッド画像をタッチスクリーンディスプレイに提供する。ステップ508で、タッチスクリーンが、キーパッド画像を表示する。ステップ510で、タッチスクリーンが、タッチスクリーンディスプレイに関連付けられた1つまたは複数の位置座標を指定する、少なくとも1つのキーパッド画像入力選択を受信する。ステップ512で、タッチスクリーンドライバが、選択に関連付けられた位置座標を、セキュア実行環境に提供する。ステップ514で、セキュア実行環境が、キーパッド画像マッピングを使用することによって、選択に関連付けられた位置座標を、対応するユーザにより所望されたシンボル、キー、および/またはアクションに変換する。
【００３２】
図6Aおよび図6Bは、本開示の一態様による、タッチスクリーン106から入力を安全に得るためのデバイス100の処理回路102(図1参照)において動作可能な方法の流れ図600を示す。処理回路102は、非セキュア実行環境108(たとえば、ハイレベルオペレーティングシステム)およびセキュア実行環境112(たとえば、トラステッド実行環境)など、2つ以上の別々の処理システムまたは環境を含み得る。図6Aを参照すると、ステップ602で、セキュア実行環境が、複数のキーパッド画像を生成し、かつ/または(たとえば、セキュアメモリから)得る。たとえば、複数のキーパッド画像は、数字0〜9の個人識別番号(PIN)キーパッド、QWERTY型キーボード、QWERTY型キーパッドの「シフト」バージョン、標準電話キーパッド、および/または、他のシンボルをもつ追加のキーパッドを含み得る。ステップ604で、セキュア実行環境が、複数のキーパッド画像を、非セキュア実行環境内で動作するディスプレイドライバに提供する。一態様によれば、複数のキーパッド画像が、非セキュア実行環境内で実行する安全なタッチスクリーンキーパッド入力を要求するアプリケーションに提供される。ステップ606で、セキュア実行環境が、提供された複数のキーパッド画像のうちの第1のキーパッド画像を表示するために、第1の要求をディスプレイドライバに提供する。要求は、複数のキーパッド画像のうちのどれをタッチスクリーン106が表示するべきかを指定する。一態様によれば、第1の要求が定期的に送られてもよく、または代替的に、必要に応じて送られてもよい。
【００３３】
ステップ608で、ディスプレイドライバが、第1のキーパッド画像をタッチスクリーンディスプレイに提供する。ステップ610で、タッチスクリーンが、第1のキーパッド画像を表示する。ステップ612で、タッチスクリーンが、第1のキーパッド画像入力選択をユーザから受信する。この例では、第1の選択は、キーパッド画像を複数のキーパッド画像のうちの別のキーパッド画像に変更するための、ユーザによる要求に対応する。ステップ614で、タッチスクリーンドライバが、第1の選択に関連付けられたタッチスクリーン位置座標を、セキュア実行環境に提供する。ステップ616で、セキュア実行環境が、第1のキーパッド画像マッピングを使用して、第1の選択に関連付けられた位置座標を、キーパッド画像をユーザによって所望された別のキーパッド画像に変更するための要求に変換する。
【００３４】
図6Bを参照すると、ステップ618で、セキュア実行環境が、複数のキーパッド画像のうちの第2のキーパッド画像を表示するために、第2の要求をディスプレイドライバに提供する。第2の要求は、複数のキーパッド画像のうちのどれをタッチスクリーンが表示するべきかを指定する。一態様によれば、第2の要求が定期的に送られてもよく、または代替的に、必要に応じて送られてもよい。ステップ620で、ディスプレイドライバが、第2のキーパッド画像をタッチスクリーンディスプレイに提供する。ステップ622で、タッチスクリーンが、第2のキーパッド画像を表示する。ステップ624で、タッチスクリーンが、第2のキーパッド画像入力選択をユーザから受信する。この例では、第2の選択は、ユーザによって所望されたシンボル/文字に対応する。ステップ626で、タッチスクリーンドライバが、第2の選択に関連付けられたタッチスクリーン位置座標を、セキュア実行環境に提供する。ステップ628で、セキュア実行環境が、そのキーパッド画像マッピングを、第1のキーパッド画像マッピングから、第2のキーパッド画像に対応する(たとえば、それに関連付けられた)第2のキーパッド画像マッピングに更新する。一態様によれば、更新ステップ628は、ステップ616の後、すなわち、位置座標を、第1のキーパッド画像を変更するための要求に変換した後、行われてもよい。別の態様によれば、更新ステップ628は、ステップ618、620、622、および624のうちのいずれか1つの直後に行われてもよい。ステップ630で、セキュア実行環境が、第2のキーパッド画像マッピングを使用して、第2の選択に関連付けられた位置座標を、対応するユーザにより所望されたシンボル/文字に変換する。
【００３５】
図7Aおよび図7Bは、本開示の一態様による、タッチスクリーン106から入力を安全に得るためのデバイス100の処理回路102(図1参照)において動作可能な方法の流れ図700を示す。処理回路102は、非セキュア実行環境108(たとえば、ハイレベルオペレーティングシステム)およびセキュア実行環境112(たとえば、トラステッド実行環境)など、2つ以上の別々の処理システムまたは環境を含み得る。図7Aを参照すると、ステップ702で、セキュア実行環境が、複数のキーパッド画像を生成し、かつ/または(たとえば、セキュアメモリから)得る。たとえば、複数のキーパッド画像は、数字0〜9の個人識別番号(PIN)キーパッド、QWERTY型キーボード、QWERTY型キーパッドの「シフト」バージョン、標準電話キーパッド、および/または、他のシンボルをもつ追加のキーパッドを含み得る。ステップ704で、セキュア実行環境が、第1のキーパッド画像を、非セキュア実行環境内で動作するディスプレイドライバに提供する。一態様によれば、第1のキーパッド画像が、非セキュア実行環境内で実行する安全なタッチスクリーンキーパッド入力を要求するアプリケーションに提供される。ステップ706で、ディスプレイドライバが、第1のキーパッド画像をタッチスクリーンディスプレイに提供する。ステップ708で、タッチスクリーンが、第1のキーパッド画像を表示する。ステップ710で、タッチスクリーンが、第1のキーパッド画像入力選択をユーザから受信する。この例では、第1の選択は、キーパッド画像を複数のキーパッド画像のうちの別のキーパッド画像に変更するための、ユーザによる要求に対応する。ステップ712で、タッチスクリーンドライバが、第1の選択に関連付けられたタッチスクリーン位置座標を、セキュア実行環境に提供する。ステップ714で、セキュア実行環境が、第1のキーパッド画像マッピングを使用して、第1の選択に関連付けられた位置座標を、キーパッド画像をユーザによって所望された別のキーパッド画像に変更するための要求に変換する。
【００３６】
図7Bを参照すると、ステップ716で、セキュア実行環境が、複数のキーパッド画像のうちの第2のキーパッド画像を表示するために、第2のキーパッド画像をディスプレイドライバに提供する。ステップ718で、ディスプレイドライバが、第2のキーパッド画像をタッチスクリーンディスプレイに提供する。ステップ720で、タッチスクリーンが、第2のキーパッド画像を表示する。ステップ722で、タッチスクリーンが、第2のキーパッド画像入力選択をユーザから受信する。この例では、第2の選択は、ユーザによって所望されたシンボル/文字に対応する。ステップ724で、タッチスクリーンドライバが、第2の選択に関連付けられたタッチスクリーン位置座標を、セキュア実行環境に提供する。ステップ726で、セキュア実行環境が、そのキーパッド画像マッピングを、第1のキーパッド画像マッピングから、第2のキーパッド画像に対応する(たとえば、それに関連付けられた)第2のキーパッド画像マッピングに更新する。一態様によれば、更新ステップ726は、ステップ714の後、すなわち、位置座標を、第1のキーパッド画像を変更するための要求に変換した後、行われてもよい。別の態様によれば、更新ステップ726は、ステップ716、718、720、および722のうちのいずれか1つの直後に行われてもよい。ステップ728で、セキュア実行環境が、第2のキーパッド画像マッピングを使用して、第2の選択に関連付けられた位置座標を、対応するユーザにより所望されたシンボル/文字に変換する。
【００３７】
図8は、本開示の一態様による、タッチスクリーン106から入力を安全に得るためのデバイス100の処理回路102(図1参照)において動作可能な方法の流れ図800を示す。処理回路102は、非セキュア実行環境108(たとえば、ハイレベルオペレーティングシステム)およびセキュア実行環境112(たとえば、トラステッド実行環境)など、2つ以上の別々の処理システムまたは環境を含み得る。図8を参照すると、ステップ802で、セキュア実行環境が、1つまたは複数のキーパッド画像と、1つまたは複数の対応するキーパッドマッピングとを記憶することができる。ステップ804で、非セキュア実行環境が、ユーザインターフェースドライバを実行することができ、セキュア実行環境が、タッチスクリーン入力ドライバを実行することができる。ステップ806で、非セキュア実行環境において実行されたアプリケーションからの指示において、タッチスクリーンからの出力がセキュア実行環境へ直接経路指定される。ステップ808で、セキュア実行環境が、キーパッド画像をタッチスクリーンによって表示させる非セキュア実行環境に、キーパッド画像を提供する。ステップ810で、タッチスクリーンに表示されたキーパッド画像からキーを選択する際のユーザによるアクションにおいて、セキュア実行環境が、画面位置情報をタッチスクリーンドライバから受信する。画面位置情報は、選択されたキーに対応する。ステップ812で、セキュア実行環境が、キーパッド画像マッピングを使用して、画面位置情報を対応するキーまたは文字に変換する。ステップ814で、セキュア実行環境が後に、タッチスクリーン上で表示するために、置き換えキーパッド画像を非セキュア実行環境へ送ることによって使用されるキーパッドを変更することができる。
【００３８】
タッチスクリーンを介した安全な入力のための第2の例示的な実装形態
図9は、本開示の一態様による、タッチスクリーンキーパッドの安全な入力を実施することができるモバイルデバイス900のブロック図を示す。モバイルデバイス900(たとえば、携帯電話、スマートフォン、ラップトップコンピュータ、タブレット、ワイヤレス通信デバイスなど)は、処理回路902、メモリ回路904、タッチスクリーン906、および/またはワイヤレス通信インターフェース907を含み得る。処理回路902、メモリ回路904、タッチスクリーン906、およびワイヤレス通信インターフェース907は、通信可能に、かつ/または電気的に共に結合され得る。処理回路902は、1つまたは複数の処理デバイス(たとえば、プロセッサ)として実装されてもよく、ハイレベルオペレーティングシステム908およびトラステッド実行環境912を動作させるように適合されてもよい。ハイレベルオペレーティングシステム908およびトラステッド実行環境912は、単一のプロセッサ上で互いに並列に実行することができる。別の例として、ハイレベルオペレーティングシステム908およびトラステッド実行環境912は、処理回路902を構成する異なるプロセッサまたはプロセッサコア上で並列に実行することができる。メモリ回路904は、1つまたは複数のメモリデバイス(たとえば、RAM、ROM、揮発性メモリ、不揮発性メモリ、ハードディスクドライブなど)として実装され得る。メモリ回路904は、トラステッド実行環境912に関連付けられないアプリケーションによって容易にアクセスまたは変更することができない、セキュアメモリ部分914を含み得る。タッチスクリーン906は、入力を受信し、また視覚出力を表示するようにも適合される、電子的視覚ディスプレイであり得る。タッチスクリーン906は、そのディスプレイエリア内で人間および/またはスタイラスタッチの存在および位置を検出することによって、入力デバイスとして働くことができる。タッチスクリーン906は、限定はしないが、抵抗性タッチスクリーン、表面弾性波タッチスクリーン、容量性(たとえば、表面、投影、相互、または自己)タッチスクリーン、赤外線タッチスクリーン、光イメージングタッチスクリーン、分散信号タッチスクリーン、および/または音響パルス認識タッチスクリーンであり得る。ワイヤレス通信インターフェース907は、モバイル
デバイス900を、それを通してデータを送信かつ/または受信することができるワイヤレスネットワークに、通信可能に結合する働きをすることができる。
【００３９】
ハイレベルオペレーティングシステム(HLOS)908(本明細書では「非セキュア実行環境」とも呼ぶ)は、1つまたは複数のアプリケーションを実行することができる。HLOS908は、HLOS908における情報が意図しないパーティまたはアプリケーションによってアクセスされ得るという点で、「非セキュア」と見なされ得る。たとえば、悪意のあるエンティティが、データおよび/または情報(たとえば、パスワード、ユーザアカウント情報など)への無許可アクセスを得るために、HLOS908に関連付けられたメモリスタック、メモリ空間、バッファ、レジスタ、および/またはデータ経路インターフェースをスヌープすることができるアプリケーションをインストールすることがある。
【００４０】
対照的に、トラステッド実行環境(TEE)912(本明細書では「セキュア実行環境」とも呼ぶ)は、HLOS908において動作するアプリケーションによって容易にアクセス可能ではない。したがって、TEE912は、TEE912に関連付けられたデータまたは情報を明らかにすることができる、スヌーピングまたは無許可アクセスから保護される。HLOS908は、規定のセットのインターフェースを使用してTEE912と対話することができる。TEE912の機能性は、典型的には、TEE912ベンダー/ディストリビュータによって提供されるものに限定され、したがって、TEE912が強固に制御されるので、TEE912において任意のアプリケーションをインストールすることは、大変困難である。TEEの1つの非限定的な例は、Gieseke & Devrient GmbHによって作成されたMobicore(登録商標)である。
【００４１】
図9に示した例では、TEE912は、タッチスクリーンドライバ918(たとえば、入力ドライバ)を実行して、タッチスクリーン906によって生成された出力を処理することができる。たとえば、タッチスクリーンドライバは、ユーザによる画面タッチに応答して、タッチスクリーン906によって生成された電子信号を受信し、ユーザがタッチしたタッチスクリーン906上の位置に対応する画面位置座標を生成する。したがって、本開示の一態様によれば、タッチスクリーンドライバ918は、厳密にトラステッド実行環境912内に含まれ、かつ/またはトラステッド実行環境912内で実行され得る(たとえば、セキュアメモリ914内に記憶されたタッチスクリーンドライバ918)。タッチスクリーン入力デバイスの安全な実装形態を提供するために、TEE912は、少なくとも1つのキーパッド画像916を、HLOS908で実行されたディスプレイドライバ910に提供することができる。ディスプレイドライバ910は、キーパッド画像916をタッチスクリーン906において表示させる。本開示の一態様によれば、TEE912は、キーパッド画像916を生成する。別の態様では、キーパッド画像916は、メモリ回路904のセキュアメモリ部分914内に記憶され、TEE912によってセキュアメモリ914から取り出される。
【００４２】
タッチスクリーン906に送信されたキーパッド画像916は次いで、タッチスクリーン906によって表示される。表示されたキーパッド画像920が次いで、ユーザによってデータ(たとえば、ユーザ情報、アカウント情報、パスワードなど)を入力するために操作され得る。たとえば、指またはスタイラスを使用して、ユーザは、ユーザが入力/選択することを望む所望のシンボルまたはキーに対応する、タッチスクリーン906の一部分にタッチすることができる。タッチスクリーンドライバ918は次いで、どこでタッチスクリーン906がタッチ(たとえば、キーパッド押下)を検知したかの位置情報(たとえば、座標)を、TEE912に提供する。位置情報(たとえば、座標)は、したがって、HLOS908をバイパスし、HLOS908内で実行されるアプリケーションに知られないことが可能である。TEE912内で実装されたキーパッドマッピング919機能(たとえば、ルックアップテーブル)は、位置情報を特定の文字、シンボル、または他の入力に変換する。たとえば、位置情報は、特定の文字またはシンボルにマップする座標を含み得る。別の例として、位置情報は、スワイプジェスチャーなどのジェスチャーを表す、一連の座標を含み得る。本開示の少なくとも1つの態様では、キーパッドマッピング919がHLOS908に知られておらず、その理由は、キーパッドマッピング919が厳密にTEE912に常駐しているからである。したがって、HLOS908内で実行されるアプリケーションは、キーパッドマッピング919へのアクセスを有することができない。
【００４３】
TEE912は、キーパッド画像916を提供する(たとえば、TEE912は、キーパッド画像916のソースであり得る)ので、TEE912は、位置座標のセットによって画定されたキーパッド画像における各文字および/またはシンボルを知っている。タッチスクリーンドライバ918から位置情報を受信すると、TEE912は、キーパッドマッピング919を使用して、そのような位置情報が対応するキー、シンボル、および/またはジェスチャーを確認する。したがって、HLOS908によって提供されるキーパッド画像および/またはキーパッドマッピングに依拠する代わりに、モバイルデバイス900は、TEE912においてキーパッド画像916および/またはタッチスクリーンドライバ918を利用して、タッチスクリーン入力デバイスがTEE912内に内蔵されており、HLOS908の信頼性に依拠しないことを保証する。その上、このプロセスは、TEE912が、ユーザインターフェースドライバを記憶かつ/または実行する必要なしに、どのキーが押下されているかを知ることを可能にする。むしろ、ユーザインターフェースドライバは、HLOS908によって実行され得る。ユーザインターフェースドライバをTEE912において記憶かつ/または実行することは、いくつかの適用例では望ましくないことがあり、その理由は、TEE912では、実装することが高価になり得る、セキュアメモリ914などのリソースが制限され得るからである。
【００４４】
図10は、本開示の一態様による、タッチスクリーンキーパッドを使用した安全な入力の流れ図1000を示す。ステップ1002で、TEE912が、少なくとも1つのキーパッド画像を生成し、かつ/または(たとえば、セキュアメモリ914から)得る。ステップ1004で、TEE912が、複数のキーパッド画像が生成された/得られた場合、随意にキーパッド画像を選択する。ステップ1006で、TEE912が、選択されたキーパッド画像を、HLOS908内で動作するディスプレイドライバ910に提供/送信する。ステップ1008で、HLOS908のディスプレイドライバ910が、そのキーパッド画像をタッチスクリーンディスプレイ906に提供する。ステップ1010で、タッチスクリーン906が、キーパッド画像を表示する。ステップ1012で、タッチスクリーン906が、少なくとも1つのキーパッド画像入力選択をユーザから受信する。行われた選択は、タッチスクリーンディスプレイ906に関連付けられた1つまたは複数の位置座標に対応する。ステップ1014で、タッチスクリーンドライバ918が、選択に関連付けられた位置座標を、TEE912へ送信/提供する。ステップ1016で、TEE912が、キーパッド画像マッピング919を使用して、選択に関連付けられた位置座標を、対応するユーザにより所望されたシンボル、キー、および/またはアクションに変換する。
【００４５】
図11Aおよび図11Bは、本開示の一態様による、モバイルデバイス900の処理回路902内で動作可能なタッチスクリーンキーパッドを使用した安全な入力の流れ図1100を示す。ステップ1102で、TEE912が、複数のキーパッド画像を生成し、かつ/または(たとえば、セキュアメモリ914から)得る。たとえば、複数のキーパッド画像は、数字0〜9の個人識別番号(PIN)キーパッド、QWERTY型キーボード、QWERTY型キーパッドの「シフト」バージョン、標準電話キーパッド、および/または、他のシンボルをもつ追加のキーパッドを含み得る。ステップ1104で、TEE912が、複数のキーパッド画像を、HLOS908内で動作するディスプレイドライバ910に提供/送信する。一態様によれば、複数のキーパッド画像が、HLOS908内で実行する安全なタッチスクリーンキーパッド入力を要求するアプリケーションに提供される。ステップ1106で、TEE912が、提供された複数のキーパッド画像のうちの第1のキーパッド画像を表示するために、第1の要求をHLOS908のディスプレイドライバ910に提供/送信する。要求は、複数のキーパッド画像のうちのどれをタッチスクリーン906が表示するべきかを指定する。一態様によれば、第1の要求が定期的に送られてもよく、または代替的に、必要に応じて送られてもよい。ステップ1108で、HLOS908のディスプレイドライバ910が、第1のキーパッド画像をタッチスクリーンディスプレイ906に提供する。ステップ1110で、タッチスクリーン906が、第1のキーパッド画像を表示する。ステップ1112で、タッチスクリーン906が、第1のキーパッド画像入力選択をユーザから受信する。この例では、第1の選択は、キーパッド画像を複数のキーパッド画像のうちの別のキーパッド画像に変更するための、ユーザによる要求に対応する。ステップ1114で、タッチスクリーンドライバ918が、第1の選択に関連付けられたタッチスクリーン位置座標を、TEE912へ送信/提供する。ステップ1116で、TEE912が、第1のキーパッド画像マッピングを使用して、第1の選択に関連付けられた位置座標を、キーパッド画像をユーザによって所望された別のキーパッド画像に変更するための要求に変換する。
【００４６】
ステップ1118で、TEE912が、複数のキーパッド画像のうちの所望の、第2のキーパッド画像を表示するために、第2の要求をHLOS908のディスプレイドライバ910に提供/送信する。第2の要求は、複数のキーパッド画像のうちのどれをタッチスクリーン906が表示するべきかを指定する。一態様によれば、第2の要求が定期的に送られてもよく、または代替的に、必要に応じて送られてもよい。ステップ1120で、ディスプレイドライバ910が、第2のキーパッド画像をタッチスクリーンディスプレイ906に提供する。図11Bを参照すると、ステップ1122で、タッチスクリーン906が、第2のキーパッド画像を表示する。ステップ1124で、タッチスクリーン906が、第2のキーパッド画像入力選択をユーザから受信する。この例では、第2の選択は、ユーザによって所望されたシンボル/文字に対応する。ステップ1126で、タッチスクリーンドライバ918が、第2の選択に関連付けられたタッチスクリーン位置座標を、TEE912へ送信/提供する。ステップ1128で、TEE912が、そのキーパッド画像マッピングを、第1のキーパッド画像マッピングから、ステップ1120でタッチスクリーン906に提供された第2のキーパッド画像に対応する(たとえば、それに関連付けられた)第2のキーパッド画像マッピングに更新することができる。一態様によれば、更新ステップ1128は、ステップ1116、1118、1120、1122、および1124のうちのいずれか1つの後に行われてもよい。ステップ1130で、TEE912が、第2のキーパッド画像マッピングを使用して、第2の選択に関連付けられた位置座標を、対応するユーザにより所望されたシンボル/文字に変換する。このようにして、TEE912は、HLOS908(たとえば、HLOS908内で実行する安全なタッチスクリーンキーパッド入力を要求するアプリケーション)へ、すべてのキーパッド画像を一括して送信し、次いで、後に、必要に応じて、または定期的に、キーパッド画像を変更するための要求を送る。
【００４７】
図12Aおよび図12Bは、本開示の一態様による、タッチスクリーン906から入力を安全に得るためのモバイルデバイス900の処理回路902において動作可能な方法の流れ図1200を示す。図12Aを参照すると、ステップ1202で、TEEが、複数のキーパッド画像を生成し、かつ/または(たとえば、セキュアメモリから)得る。たとえば、複数のキーパッド画像は、数字0〜9の個人識別番号(PIN)キーパッド、QWERTY型キーボード、QWERTY型キーパッドの「シフト」バージョン、標準電話キーパッド、および/または、他のシンボルをもつ追加のキーパッドを含み得る。ステップ1204で、TEEが、第1のキーパッド画像を、HLOS内で動作するディスプレイドライバに提供する。一態様によれば、第1のキーパッド画像が、HLOS内で実行する安全なタッチスクリーンキーパッド入力を要求するアプリケーションに提供される。ステップ1206で、ディスプレイドライバが、第1のキーパッド画像をタッチスクリーンディスプレイに提供する。ステップ1208で、タッチスクリーンが、第1のキーパッド画像を表示する。ステップ1210で、タッチスクリーンが、第1のキーパッド画像入力選択をユーザから受信する。この例では、第1の選択は、キーパッド画像を複数のキーパッド画像のうちの別のキーパッド画像に変更するための、ユーザによる要求に対応する。ステップ1212で、タッチスクリーンドライバが、第1の選択に関連付けられたタッチスクリーン位置座標を、TEEに提供する。ステップ1214で、TEEが、第1のキーパッド画像マッピングを使用して、第1の選択に関連付けられた位置座標を、キーパッド画像をユーザによって所望された別のキーパッド画像に変更するための要求に変換する。
【００４８】
図12Bを参照すると、ステップ1216で、TEEが、複数のキーパッド画像のうちの第2のキーパッド画像を表示するために、第2のキーパッド画像をディスプレイドライバに提供する。ステップ1218で、ディスプレイドライバが、第2のキーパッド画像をタッチスクリーンディスプレイに提供する。ステップ1220で、タッチスクリーンが、第2のキーパッド画像を表示する。ステップ1222で、タッチスクリーンが、第2のキーパッド画像入力選択をユーザから受信する。この例では、第2の選択は、ユーザによって所望されたシンボル/文字に対応する。ステップ1224で、タッチスクリーンドライバが、第2の選択に関連付けられたタッチスクリーン位置座標を、TEEに提供する。ステップ1226で、TEEが、キーパッド画像マッピングを、第1のキーパッド画像マッピングから、第2のキーパッド画像に対応する(たとえば、それに関連付けられた)第2のキーパッド画像マッピングに更新することができる。加えて、または代替として、TEEは、位置座標からシンボルへの変換を行ういかなるルックアップテーブルを更新してもよい。一態様によれば、更新ステップ1226は、ステップ1214、1216、1218、1220、および1222のうちのいずれか1つの後に行われてもよい。ステップ1228で、TEEが、第2のキーパッド画像マッピングを使用して、第2の選択に関連付けられた位置座標を、対応するユーザにより所望されたシンボル/文字に変換する。
【００４９】
図13は、本開示の一態様による、タッチスクリーン906から入力を安全に得るためのモバイルデバイス900の処理回路902において動作可能な方法の流れ図1300を示す。ステップ1302で、タッチスクリーン入力ドライバを含む、トラステッド実行環境(たとえば、第2の実行環境)が(たとえば、プロセッサ902上で)実装される。ステップ1304で、画像をタッチスクリーンに出力するためにディスプレイドライバを含む、ハイレベルオペレーティングシステム(たとえば、第1の実行環境)が(たとえば、プロセッサ902上で)実装される。ステップ1306で、複数のキーパッド画像が、トラステッド実行環境において得られ得る。ステップ1308で、キーパッド画像が、トラステッド実行環境において複数のキーパッド画像から選択され得る。ステップ1310で、選択されたキーパッド画像が、キーパッド画像をタッチスクリーンによって表示させるために、トラステッド実行環境からハイレベルオペレーティングシステムへ送られ得る。その後、ステップ1312で、入力位置が、タッチスクリーンドライバからトラステッド実行環境において受信され得る。ステップ1314で、入力位置が、トラステッド実行環境において(たとえば、マッピングまたはルックアップテーブルを介して)、文字またはシンボルに変換され得る。ステップ1316で、第2のキーパッド画像をタッチスクリーンによって表示させるために、第2のキーパッド画像をトラステッド実行環境からハイレベルオペレーティングシステムへ送ることによって、キーパッド画像が第2のキーパッド画像で置き換えられ得る。
【００５０】
タッチスクリーンを介した安全な入力のための第3の例示的な実装形態
図14は、本開示の一態様による、タッチスクリーンキーパッドの安全な入力を実施することができるデバイス1400のブロック図を示す。デバイス1400は、限定はしないが、モバイルデバイス、携帯電話、スマートフォン、ラップトップコンピュータ、タブレット、および/または任意の他のワイヤレス通信デバイスであり得る。デバイス1400は、処理回路1402、メモリ回路1404、タッチスクリーン1406、および/またはワイヤレス通信インターフェース1408を含み得る。処理回路1402、メモリ回路1404、タッチスクリーン1406、およびワイヤレス通信インターフェース1408は、通信可能に、かつ/または電気的に共に結合され得る。処理回路1402は、1つまたは複数の処理デバイス(たとえば、プロセッサ)として実装されてもよく、非セキュア実行環境1410およびセキュア実行環境1412を動作させるように適合されてもよい。非セキュア実行環境1410およびセキュア実行環境1412は、単一のプロセッサ上で互いに並列に実行することができる。別の例として、非セキュアおよびセキュア実行環境1410、1412は、処理回路1402を構成する異なるプロセッサまたはプロセッサコア上で並列に実行することができる。メモリ回路1404は、1つまたは複数のメモリデバイス(たとえば、RAM、ROM、揮発性メモリ、不揮発性メモリ、ハードディスクドライブなど)として実装され得る。メモリ回路1404は、セキュア実行環境1412に関連付けられないアプリケーションによって容易にアクセスまたは変更することができない、セキュアメモリ部分1405を含み得る。タッチスクリーン1406は、入力を受信し、また視覚出力を表示するようにも適合される、電子的視覚ディスプレイであり得る。タッチスクリーン1406は、そのディスプレイエリア内で人間および/またはスタイラスタッチの存在および位置を検出することによって、入力デバイスとして働くことができる。タッチスクリーン1406は、限定はしないが、抵抗性タッチスクリーン、表面弾性波タッチスクリーン、容量性(たとえば、表面、投影、相互、または自己)タッチスクリーン、赤外線タッチスクリーン、光イメージングタッチスクリーン、分散信号タッチスクリーン、および/または音響パルス認識タッチスクリーンであり得る。ワイヤレス
通信インターフェース1408は、デバイス1400を、それを通してデータを送信かつ/または受信することができるワイヤレスネットワークに、通信可能に結合する働きをすることができる。
【００５１】
非セキュア実行環境1410(本明細書では「第1の実行環境」とも呼ぶ)は、たとえば、1つまたは複数のアプリケーションを実行するハイレベルオペレーティングシステムであり得る。非セキュア実行環境1410は、非セキュア実行環境1410における情報が意図しないパーティまたはアプリケーションによってアクセスされ得るという点で、「非セキュア」と見なされ得る。たとえば、悪意のあるエンティティが、データおよび/または情報(たとえば、パスワード、ユーザアカウント情報など)への無許可アクセスを得るために、非セキュア実行環境1410に関連付けられたメモリスタック、メモリ空間、バッファ、レジスタ、および/またはデータ経路インターフェースをスヌープすることができるアプリケーションをインストールすることがある。
【００５２】
対照的に、セキュア実行環境1412(本明細書では「第2の実行環境」とも呼ぶ)は、たとえば、非セキュア実行環境1410において動作するアプリケーションによって容易にアクセス可能ではない、トラステッド実行環境であり得る。したがって、セキュア実行環境1412は、セキュア実行環境1412に関連付けられたデータまたは情報を明らかにすることができる、スヌーピングまたは無許可アクセスから保護される。非セキュア実行環境1410は、規定のセットのインターフェースを使用してセキュア実行環境1412と対話することができる。セキュア実行環境1412の機能性は、典型的には、セキュア実行環境1412ベンダー/ディストリビュータによって提供されるものに限定され、したがって、セキュア実行環境1412が強固に制御されるので、セキュア実行環境1412において任意のアプリケーションをインストールすることは、大変困難である。セキュア実行環境の1つの非限定的な例は、Gieseke & Devrient GmbHによって作成されたMobicore(登録商標)である。
【００５３】
図14に示した例では、セキュア実行環境1412は、タッチスクリーンドライバ1418(たとえば、タッチスクリーン入力ドライバ)を実行して、タッチスクリーン1406によって生成された出力を処理することができ、また、ディスプレイドライバ1416を実行して、タッチスクリーン1406によって表示された画像を制御することもできる。たとえば、タッチスクリーンドライバは、ユーザによる画面タッチに応答して、タッチスクリーン1406によって生成された電子信号を受信し、ユーザがタッチしたタッチスクリーン1406上の位置に対応する画面位置座標を生成する。図示の例では、タッチスクリーンドライバ1418およびディスプレイドライバ1416は、厳密にセキュア実行環境1412内に含まれ、かつ/またはセキュア実行環境1412内で実行され(たとえば、セキュアメモリ1405内に記憶され)得る。タッチスクリーン入力デバイスの安全な実装形態を提供するために、セキュア実行環境1412は、少なくとも1つのキーパッド画像1414をディスプレイドライバ1416に提供することができる。ディスプレイドライバ1416は、キーパッド画像1414をタッチスクリーン1406において表示させる。本開示の一態様によれば、セキュア実行環境1412は、キーパッド画像1414を生成する。別の態様では、キーパッド画像1414は、メモリ回路1404のセキュアメモリ部分1405内に記憶され、セキュア実行環境1412によってセキュアメモリ1405から取り出される。
【００５４】
タッチスクリーン1406に送信されたキーパッド画像1414は次いで、タッチスクリーン1406によって表示される。表示されたキーパッド画像1420が次いで、ユーザによって、データ(たとえば、ユーザ情報、アカウント情報、パスワードなど)を入力するために、操作され得る(たとえば、キーを押下するか、または他のジェスチャーを行う)。たとえば、指またはスタイラスを使用して、ユーザは、ユーザが入力/選択することを望む所望のシンボルまたはキーに対応する、タッチスクリーン1406の一部分にタッチすることができる。タッチスクリーンドライバ1418は次いで、どこでタッチスクリーン1406がタッチ(たとえば、キーパッド押下)を検知したかの位置情報(たとえば、座標)を、セキュア実行環境1412に提供する。位置情報(たとえば、座標)は、したがって、非セキュア実行環境1410をバイパスし、非セキュア実行環境1410内で実行されるアプリケーションに知られないことが可能である。セキュア実行環境1412は、位置情報を特定の文字、シンボル、または他の入力に変換するキーパッドマッピング1419機能(たとえば、ルックアップテーブル)を含む。たとえば、位置情報は、特定の文字またはシンボルにマップする座標を含み得る。別の例として、位置情報は、スワイプジェスチャーなどのジェスチャーを表す、一連の座標を含み得る。本開示の少なくとも1つの態様では、キーパッドマッピング1419が非セキュア実行環境1410に知られておらず、その理由は、キーパッドマッピング1419が厳密にセキュア実行環境1412に常駐しているからである。したがって、非セキュア実行環境1410内で実行されるアプリケーションは、キーパッドマッピング1419へのアクセスを有することができない。
【００５５】
セキュア実行環境1412は、キーパッド画像1414を提供する(たとえば、セキュア実行環境1412は、キーパッド画像1414のソースであり得る)ので、セキュア実行環境1412は、位置座標のセットによって画定されたキーパッド画像における各文字および/またはシンボルを知っている。タッチスクリーンドライバ1418から位置情報を受信すると、セキュア実行環境1412は、キーパッドマッピング1419(たとえば、関数および/またはルックアップテーブル)を使用して、そのような位置情報が対応するキー、シンボル、および/またはジェスチャーを確認する。したがって、非セキュア実行環境1410によって提供されるキーパッド画像および/またはキーパッドマッピングに依拠する代わりに、デバイス1400は、セキュア実行環境1412においてキーパッド画像1414、ディスプレイドライバ1416、および/またはタッチスクリーンドライバ1418を利用して、タッチスクリーン入力デバイスが内蔵されており、非セキュア実行環境1410の信頼性に依拠しないことを保証する。その上、このプロセスは、セキュア実行環境1412が、ユーザインターフェースドライバを記憶かつ/または実行する必要なしに、どのキーが押下されているかを知ることを可能にする。むしろ、ユーザインターフェースドライバは、非セキュア実行環境1410によって実行され得る。ユーザインターフェースドライバをセキュア実行環境1412において記憶かつ/または実行することは、いくつかの適用例では望ましくないことがあり、その理由は、セキュア実行環境1412では、実装することが高価になり得る、セキュアメモリ1405などのリソースが制限され得るからである。
【００５６】
図15は、本開示の一態様による、タッチスクリーンキーパッドを使用した安全な入力の流れ図1500を示す。ステップ1502で、セキュア実行環境1412が、少なくとも1つのキーパッド画像を生成し、かつ/または(たとえば、セキュアメモリ1405から)得る。ステップ1504で、セキュア実行環境1412が、複数のキーパッド画像が生成された/得られた場合、随意にキーパッド画像を選択する。ステップ1506で、セキュア実行環境1412が、選択されたキーパッド画像を、セキュア実行環境1412内で動作するディスプレイドライバ1416に提供/送信する。ステップ1508で、ディスプレイドライバ1416が、キーパッド画像をタッチスクリーンディスプレイ1406に提供する。ステップ1510で、タッチスクリーン1406が、キーパッド画像を表示する。ステップ1512で、タッチスクリーン1406が、少なくとも1つのキーパッド画像入力選択をユーザから受信する。行われた選択は、タッチスクリーンディスプレイ1406に関連付けられた1つまたは複数の位置座標に対応する。ステップ1514で、タッチスクリーンドライバ1418が、選択に関連付けられた位置座標を、セキュア実行環境1412へ送信/提供する。ステップ1516で、セキュア実行環境1412が、キーパッドマッピング1419を使用して、選択に関連付けられた位置座標を、対応するユーザにより所望されたシンボル、キー、および/またはアクションに変換する。
【００５７】
図16Aおよび図16Bは、本開示の一態様による、タッチスクリーンキーパッドを使用した安全な入力の流れ図1600を示す。ステップ1602で、セキュア実行環境1412が、複数のキーパッド画像を生成し、かつ/または(たとえば、セキュアメモリ1405から)得る。たとえば、複数のキーパッド画像は、数字0〜9の個人識別番号(PIN)キーパッド、QWERTY型キーボード、QWERTY型キーパッドの「シフト」バージョン、標準電話キーパッド、および/または、他のシンボルをもつ追加のキーパッドを含み得る。ステップ1604で、セキュア実行環境1412が、複数のキーパッド画像から第1のキーパッド画像を選択し、第1のキーパッド画像を、セキュア実行環境1412内で動作するディスプレイドライバ1416に提供/送信する。一態様によれば、第1のキーパッド画像が、セキュア実行環境1412内で実行する安全なタッチスクリーンキーパッド入力を要求するアプリケーションに提供される。ステップ1606で、セキュア実行環境1412のディスプレイドライバ1416が、第1のキーパッド画像をタッチスクリーンディスプレイ1406に提供する。ステップ1608で、タッチスクリーン1406が、第1のキーパッド画像を表示する。ステップ1610で、タッチスクリーン1406が、第1のキーパッド画像入力選択をユーザから受信する。この例では、第1の選択は、キーパッド画像を複数のキーパッド画像のうちの別のキーパッド画像に変更するための、ユーザによる要求に対応する。ステップ1612で、タッチスクリーンドライバ1418が、第1の選択に関連付けられたタッチスクリーン位置座標を、セキュア実行環境1412へ送信/提供する。ステップ1614で、セキュア実行環境1412が、第1のキーパッド画像マッピングを使用して、第1の選択に関連付けられた位置座標を、キーパッド画像をユーザによって所望された別のキーパッド画像に変更するための要求に変換する。
【００５８】
ステップ1616で、セキュア実行環境1412が、複数のキーパッド画像から第2のキーパッド画像を選択し、第2のキーパッド画像を表示するために、第2のキーパッド画像をディスプレイドライバ1416に提供/送信する。ステップ1618で、ディスプレイドライバ1416が、第2のキーパッド画像をタッチスクリーンディスプレイ1406に提供する。ステップ1620で、タッチスクリーン1406が、第2のキーパッド画像を表示する。図16Bを参照すると、ステップ1622で、タッチスクリーン1406が、第2のキーパッド画像入力選択をユーザから受信する。この例では、第2の選択は、ユーザによって所望されたシンボル/文字に対応する。ステップ1624で、タッチスクリーンドライバ1418が、第2の選択に関連付けられたタッチスクリーン位置座標を、セキュア実行環境1412へ送信/提供する。ステップ1626で、セキュア実行環境1412が、キーパッド画像マッピングを、第1のキーパッド画像マッピングから、第2のキーパッド画像に対応する(たとえば、それに関連付けられた)第2のキーパッド画像マッピングに更新することができる。加えて、または代替として、セキュア実行環境1412は、位置座標からシンボルへの変換を行ういかなるルックアップテーブルを更新してもよい。一態様によれば、更新ステップ1626は、ステップ1614、1616、1618、1620、および1622のうちのいずれか1つの後に行われてもよい。ステップ1628で、セキュア実行環境1412が、第2のキーパッド画像マッピングを使用して、第2の選択に関連付けられた位置座標を、対応するユーザにより所望されたシンボル/文字に変換する。
【００５９】
図17Aおよび図17Bは、本開示の一態様による、タッチスクリーン1406から入力を安全に得るためのデバイス1400の処理回路1402において動作可能な方法の流れ図1700を示す。ステップ1702で、セキュア実行環境が、複数のキーパッド画像を生成し、かつ/または(たとえば、セキュアメモリから)得る。ステップ1704で、セキュア実行環境が、複数のキーパッド画像から第1のキーパッド画像を選択し、第1のキーパッド画像を、セキュア実行環境内で動作するディスプレイドライバに提供する。一態様によれば、第1のキーパッド画像が、セキュア実行環境内で実行する安全なタッチスクリーンキーパッド入力を要求するアプリケーションに提供される。ステップ1706で、セキュア実行環境のディスプレイドライバが、第1のキーパッド画像をタッチスクリーンディスプレイに提供する。ステップ1708で、タッチスクリーンが、第1のキーパッド画像を表示する。ステップ1710で、タッチスクリーンが、第1のキーパッド画像入力選択をユーザから受信する。この例では、第1の選択は、キーパッド画像を複数のキーパッド画像のうちの別のキーパッド画像に変更するための、ユーザによる要求に対応する。ステップ1712で、タッチスクリーンドライバが、第1の選択に関連付けられたタッチスクリーン位置座標を、セキュア実行環境に提供する。ステップ1714で、セキュア実行環境が、第1のキーパッド画像マッピングを使用して、第1の選択に関連付けられた位置座標を、キーパッド画像をユーザによって所望された別のキーパッド画像に変更するための要求に変換する。
【００６０】
図17Bを参照すると、ステップ1716で、セキュア実行環境が、複数のキーパッド画像から第2のキーパッド画像を選択し、第2のキーパッド画像を表示するために、第2のキーパッド画像をディスプレイドライバに提供する。ステップ1718で、ディスプレイドライバが、第2のキーパッド画像をタッチスクリーンディスプレイに提供する。ステップ1720で、タッチスクリーンが、第2のキーパッド画像を表示する。ステップ1722で、タッチスクリーンが、第2のキーパッド画像入力選択をユーザから受信する。この例では、第2の選択は、ユーザによって所望されたシンボル/文字に対応する。ステップ1724で、タッチスクリーンドライバが、第2の選択に関連付けられたタッチスクリーン位置座標を、セキュア実行環境へ送信する。ステップ1726で、セキュア実行環境が、キーパッド画像マッピングを、第1のキーパッド画像マッピングから、第2のキーパッド画像に対応する(たとえば、それに関連付けられた)第2のキーパッド画像マッピングに更新することができる。加えて、または代替として、セキュア実行環境は、位置座標からシンボルへの変換を行ういかなるルックアップテーブルを更新してもよい。一態様によれば、更新ステップ1726は、ステップ1714、1716、1718、1720、および1722のうちのいずれか1つの後に行われてもよい。ステップ1728で、セキュア実行環境が、第2のキーパッド画像マッピングを使用して、第2の選択に関連付けられた位置座標を、対応するユーザにより所望されたシンボル/文字に変換する。
【００６１】
図18は、本開示の一態様による、タッチスクリーンを使用した安全な入力のためのデバイスにおいて動作可能な方法の流れ図1800を示す。ステップ1802で、デバイスが、タッチスクリーンドライバを有するセキュア実行環境を実装する。ステップ1804で、デバイスが、第1のキーパッド画像を、タッチスクリーンによって表示されるように、セキュア実行環境から提供する。ステップ1806で、デバイスが、セキュア実行環境において、タッチスクリーンドライバから第1の入力位置座標を受信する。ステップ1808で、デバイスが、セキュア実行環境において、第1の入力位置座標を、文字、シンボル、および/または、タッチスクリーンにおいて表示された第1のキーパッド画像を変更するための要求のうちの少なくとも1つに変換する。
【００６２】
図1、図2、図3A、図3B、図4A、図4B、図5、図6A、図6B、図7A、図7B、図8、図9、図10、図11A、図11B、図12A、図12B、図13、図14、図15、図16A、図16B、図17A、図17B、および/または図18に示す構成要素、ステップ、特徴および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、特徴または機能に再構成され、かつ/もしくは組み合わせられ、または、いくつかの構成要素、ステップ、もしくは機能で具現化され得る。また、本発明から逸脱することなく追加の要素、構成要素、ステップ、および/または機能が追加され得る。図1、図9、および/または図14に示す装置、デバイス、および/または構成要素は、図2、図3A、図3B、図4A、図4B、図5、図6A、図6B、図7A、図7B、図8、図10、図11A、図11B、図12A、図12B、図13、図15、図16A、図16B、図17A、図17B、および/または図18に記載した方法、特徴、またはステップのうちの1つまたは複数を実行するように構成され得る。本明細書で説明するアルゴリズムは、ソフトウェアでも効率的に実装され得、および/またはハードウェアにも組み込まれ得る。
【００６３】
その上、本開示の一態様では、図1に示す処理回路102は、図2、図3A、図3B、図4A、図4B、図5、図6A、図6B、図7A、図7B、図8、および図18に記載したアルゴリズム、方法、および/またはステップを行うように特に設計かつ/または配線接続される専用プロセッサ(たとえば、特定用途向け集積回路(ASIC))であり得る。したがって、そのような専用プロセッサ(ASIC)は、図2、図3A、図3B、図4A、図4B、図5、図6A、図6B、図7A、図7B、図8、および図18に記載したアルゴリズム、方法、および/またはステップを実行するための手段の一例であり得る。メモリ回路104、105はまた、プロセッサ102の専用プロセッサ(たとえば、ASIC)によって実行されるとき、図2、図3A、図3B、図4A、図4B、図5、図6A、図6B、図7A、図7B、図8、および図18に記載したアルゴリズム、方法、および/またはステップを専用プロセッサに行わせる、プロセッサ102可読命令を記憶することもできる。本開示の別の態様では、図9に示す処理回路902は、図10、図11A、図11B、図12A、図12B、図13、および図18に記載したアルゴリズム、方法、および/またはステップを行うように特に設計かつ/または配線接続される専用プロセッサ(たとえば、ASIC)であり得る。したがって、そのような専用プロセッサ(ASIC)は、図10、図11A、図11B、図12A、図12B、図13、および図18に記載したアルゴリズム、方法、および/またはステップを実行するための手段の一例であり得る。メモリ回路904、914はまた、プロセッサ902の専用プロセッサ(たとえば、ASIC)によって実行されるとき、図10、図11A、図11B、図12A、図12B、図13、および図18に記載したアルゴリズム、方法、および/またはステップを専用プロセッサに行わせる、プロセッサ902可読命令を記憶することもできる。本開示のさらに別の態様では、図14に示す処理回路1402は、図15、図16A、図16B、図17A、図17B、および図18に記載したアルゴリズム、方法、および/またはステップを行うように特に設計かつ/または配線接続される専用プロセッサ(たとえば、特定用途向け集積回路(ASIC))であり得る。したがって、そのような専用プロセッサ(ASIC)は、図15、図16A、図16B、図17A、図17B、および図18に記載したアルゴリズム、方法、および/またはステップを実行するための手段の一例であり得る。メモリ回路1404、1405はまた、プロセッサ1402の専用プロセッサ(たとえば、ASIC)によって実行されるとき、図15、図16A、図16B、図17A、図17B、および図18に記載したアルゴリズム、方法、および/またはステップを専用プロセッサに行わせる、プロセッサ1402可読命令を記憶することもできる。
【００６４】
また、本開示の態様は、フローチャート、流れ図、構造図またはブロック図として示されるプロセスとして説明され得ることに留意されたい。フローチャートは動作を逐次プロセスとして説明し得るが、動作の多くは並行してまたは同時に実行され得る。加えて、動作の順序は並び替えられ得る。プロセスは、その動作が完了したときに終了する。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応するとき、プロセスの終了は、関数呼出しまたはメイン関数に対する関数のリターンに対応する。
【００６５】
その上、記憶媒体は、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、ならびに/または、情報を記憶するための他の機械可読媒体、およびプロセッサ可読媒体、および/もしくはコンピュータ可読媒体を含む、データを記憶するための1つまたは複数のデバイスを表し得る。「機械可読媒体」、「コンピュータ可読媒体」、および/または「プロセッサ可読媒体」という用語は、ポータブルもしくは固定記憶デバイス、光記憶デバイス、ならびに、命令および/もしくはデータを記憶、含有または搬送することが可能な様々な他の媒体などの非一時的媒体を含むことができるが、これらに限定されない。したがって、本明細書で説明する様々な方法は、「機械可読媒体」、「コンピュータ可読媒体」および/または「プロセッサ可読媒体」に記憶され、1つまたは複数のプロセッサ、機械および/またはデバイスによって実行され得る命令および/またはデータによって、完全にまたは部分的に実装され得る。
【００６６】
さらに、本開示の態様は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実装されるとき、必要なタスクを実行するプログラムコードまたはコードセグメントは、記憶媒体または他のストレージなどの機械可読媒体に記憶され得る。プロセッサは必要なタスクを実行し得る。コードセグメントは、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造もしくはプログラムステートメントの任意の組合せを表し得る。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容をパスおよび/または受信することによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の好適な手段を介してパス、転送、または送信され得る。
【００６７】
本明細書で開示する例に関して説明する様々な例示的な論理ブロック、モジュール、回路、要素、および/または構成要素は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せで実装または実行することができる。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティング構成要素の組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、いくつかのマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
【００６８】
本明細書で開示する例に関して説明する方法またはアルゴリズムは、ハードウェアで、プロセッサによって実行可能なソフトウェアモジュールで、または両方の組合せで、処理ユニット、プログラム命令、または他の指示の形態で直接実施され得、単一のデバイスに含まれるかまたは複数のデバイスにわたって分散され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体中に常駐し得る。記憶媒体は、プロセッサがその記憶媒体から情報を読み取り、その記憶媒体に情報を書き込むことができるようにプロセッサに結合され得る。代替として、記憶媒体はプロセッサと一体であり得る。
【００６９】
さらに、本明細書で開示する態様に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。
【００７０】
本明細書で説明する本発明の様々な特徴は、本発明から逸脱することなく様々なシステムで実装され得る。上記の本開示の態様は例にすぎず、本発明を限定するものと解釈すべきではないことに留意されたい。本開示の態様の説明は、例示的なものであり、特許請求の範囲を限定するものではない。したがって、本教示は、他のタイプの装置、ならびに多くの代替形態、変更形態、および変形形態に容易に適用され得ることが当業者には明らかであろう。
【符号の説明】
【００７１】
100、1400  デバイス
102、902、1402  処理回路、プロセッサ
104、904、1404  メモリ回路
105、914、1405  セキュアメモリ部分、セキュアメモリ、メモリ回路
106、906、1406  タッチスクリーン、タッチスクリーンディスプレイ
108、1410  非セキュア実行環境、第1の実行環境
110、910、1416  ディスプレイドライバ
112、1412  セキュア実行環境、第2の実行環境
114、918、1418  タッチスクリーンドライバ
116、916、1414  キーパッド画像
118、919  キーパッドマッピング、キーパッド画像マッピング
120、920、1420  表示されたキーパッド画像
900  モバイルデバイス
907、1408  ワイヤレス通信インターフェース
908  ハイレベルオペレーティングシステム(HLOS)、非セキュア実行環境
912  トラステッド実行環境(TEE)、セキュア実行環境
1419  キーパッドマッピング
【図１】
0005788592.tif 000002
【図２】
0005788592.tif 000003
【図３Ａ】
0005788592.tif 000004
【図３Ｂ】
0005788592.tif 000005
【図４Ａ】
0005788592.tif 000006
【図４Ｂ】
0005788592.tif 000007
【図５】
0005788592.tif 000008
【図６Ａ】
0005788592.tif 000009
【図６Ｂ】
0005788592.tif 000010
【図７Ａ】
0005788592.tif 000011
【図７Ｂ】
0005788592.tif 000012
【図８】
0005788592.tif 000013
【図９】
0005788592.tif 000014
【図１０】
0005788592.tif 000015
【図１１Ａ】
0005788592.tif 000016
【図１１Ｂ】
0005788592.tif 000017
【図１２Ａ】
0005788592.tif 000018
【図１２Ｂ】
0005788592.tif 000019
【図１３】
0005788592.tif 000020
【図１４】
0005788592.tif 000021
【図１５】
0005788592.tif 000022
【図１６Ａ】
0005788592.tif 000023
【図１６Ｂ】
0005788592.tif 000024
【図１７Ａ】
0005788592.tif 000025
【図１７Ｂ】
0005788592.tif 000026
【図１８】
0005788592.tif 000027