(57)【特許請求の範囲】
【請求項１】
装置のコンピュータにより実行される方法であって、
タッチパネルのうちのセキュア領域における一連の入力エントリを保護するステップであって、前記入力エントリの座標を、前記セキュア領域内の別の座標に再配置することにより、前記一連の入力エントリを保護することを含むステップを有する方法。
【請求項２】
前記再配置することは、前記一連の入力エントリの２次元入力座標をシャッフルすることを含む、請求項１に記載の方法。
【請求項３】
前記シャッフルすることは、ソープ（Ｔｈｏｒｐ）又はクヌース（Ｋｎｕｔｈ）シャッフル法のうちの何れかを利用することを含む、請求項２に記載の方法。
【請求項４】
前記一連の入力エントリをシャッフルするステップを含む請求項２に記載の方法。
【請求項５】
前記シャッフルするステップは、前記タッチパネルの何処が触れられたかを示す座標をシャッフルするステップを含む、請求項４に記載の方法。
【請求項６】
コンピュータに処理を実行させる命令を有するコンピュータプログラムであって、前記処理は、
タッチパネルのうちのセキュア領域における一連の入力エントリを保護するステップであって、前記入力エントリの座標を、前記セキュア領域内の別の座標に再配置することにより、前記一連の入力エントリを保護することを含むステップを有する、コンピュータプログラム。
【請求項７】
前記再配置することは、前記一連の入力エントリの２次元入力座標をシャッフルすることを含む、請求項６に記載のコンピュータプログラム。
【請求項８】
前記シャッフルすることは、ソープ又はクヌースシャッフル法のうちの何れかを利用することを含む、請求項７に記載のコンピュータプログラム。
【請求項９】
前記処理は、前記一連の入力エントリをシャッフルするステップを含む、請求項７に記載のコンピュータプログラム。
【請求項１０】
前記シャッフルするステップは、前記タッチパネルの何処が触れられたかを示す座標をシャッフルするステップを含む、請求項９に記載のコンピュータプログラム。
【請求項１１】
前記処理は、前記入力エントリが前記セキュア領域で得られたか否かを検出するステップを含む、請求項６に記載のコンピュータプログラム。
【請求項１２】
前記処理は、前記入力エントリが前記セキュア領域で得られた場合にのみシャッフルを行うステップを含む、請求項１１に記載のコンピュータプログラム。
【請求項１３】
前記再配置することは、極座標、３次元座標又はジェスチャ座標のうちの何れかをシャッフルすることを含む、請求項６に記載のコンピュータプログラム。
【請求項１４】
前記処理は、前記入力エントリを復元するために対称鍵を共有するステップを含む、請求項６に記載のコンピュータプログラム。
【請求項１５】
セキュアエントリモードを利用して、タッチパネルのうちのセキュア領域で２次元入力がなされたか否かを検出する検出部と、
前記タッチパネルのうちのセキュア領域における一連の入力エントリを保護するセキュリティエンジンであって、前記入力エントリの座標を、前記セキュア領域内の別の座標に再配置することにより、前記一連の入力エントリを保護する、セキュリティエンジンと、
を有する装置。
【請求項１６】
前記セキュリティエンジンは、前記セキュアエントリモードを利用せずになされた入力をシャッフルしない、請求項１５に記載の装置。
【請求項１７】
前記セキュリティエンジンは、スモールドメイン暗号化セキュリティエンジンである、請求項１５に記載の装置。
【請求項１８】
前記セキュリティエンジンは、ソープ又はクヌースシャッフル法のうちの何れかを利用してシャッフルすることにより前記再配置を行う、請求項１５に記載の装置。
【請求項１９】
請求項６〜１４のうち何れか１項に記載のコンピュータプログラムを記憶する記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は一般にコンピュータに関連し、特にマルウェア(malware)からコンピュータ入力データを保護することに関連する。
【背景技術】
【０００２】
マルウェアはユーザに無断でコンピュータに設定されたソフトウェアである。マルウェアは、秘密情報やセキュリティ情報を入手するために、悪意のある者や良心的でない者により使用されるおそれがある。秘密情報は、銀行口座その他のアクセスが制限又は規制されたファイルやウェブページから情報を漏洩させるために使用されるおそれがある。例えば、ユーザが銀行口座にアクセスするためにコードを入力する場合に、マルウェアは、タッチスクリーン上でのキー入力を捕捉し、そのキー入力(又は入力の仕方)を利用して、そのユーザの銀行口座から、マルウェアを仕掛けた者の銀行口座に金銭を移すおそれがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第2011-0025610号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一側面による実施の形態の課題は、マルウェアからキー入力を保護するための方法及び装置等を提供することである。
【課題を解決するための手段】
【０００５】
一側面による方法は、
スモールドメイン暗号化エンジンを利用して一連の入力エントリを保護するステップを有する方法である。
【図面の簡単な説明】
【０００６】
【図１】本発明の一実施形態を示す概略図。
【図２】本発明の一実施形態によるシャッフルアルゴリズムを示すフローチャート。
【図３】本発明の一実施形態による非シャッフルアルゴリズムを示すフローチャート。
【発明を実施するための形態】
【０００７】
一実施形態では、スモールドメイン暗号化エンジン(small  domain  cryptographic  engine)を利用して、重要な2以上の次元の入力データがタッチスクリーンインタフェースのようなインタフェースにより安全に入力される。他のインタフェースは、ジェスチャ認識インタフェース、マウスカーソル入力インタフェース又はその他のアプリケーションを含み、入力を座標に変換する任意の手段を含んでよい。スモールドメイン暗号化エンジンは、2以上の次元の入力データエントリを分かりにくくするために使用されるコンピュータソフトウェア又はハードウェアである。スモールドメインは、あるドメインサイズ、或る数のデータ要素、10億個未満の入力ドメイン又は範囲を有する(アドバンスト暗号化標準又はエーイーエス(Advanced  Encryption  Standard：AES)のような従来の暗号化アルゴリズムよりもかなり小規模である)。
【０００８】
一実施形態において、タッチスクリーン入力を保護するための技法は、ユーザの体感品質を損なわない。言い換えれば、ユーザは何か異なったことが実行されていることに気付かず、ユーザは何らかの異なった仕方でデータを入力する必要はない。
【０００９】
一実施形態において、ホストに基づくオペレーティングシステムは、タッチ入力イベントを通信するために標準的なドライバスタックを利用できる。更に、一実施形態において、タッチイベントが秘密情報であることを理解せずに、タッチイベントを通知する前提のオペレーティングシステムフレームワークの機能が発揮される。場合によっては、アプリケーション開発者は、標準的なグラフィックユーザインタフェース開発ツールを利用して本技術を適切に理解し、安全に入力する機能を様々なオペレーティングシステム(例えば、アンドロイド(Android)(登録商標)、ミーゴ(Meego)(登録商標)及びiOS(登録商標)等)に統合できるようにセキュア領域の自動寸法調整(オートサイジング)を行うことができる。
【００１０】
一実施形態において、タッチ入力が画面のセキュア領域で受信されると、タッチ入力の座標(群)は、利用可能な様々なシャッフルアルゴリズムのうちの何れかを用いてシャッフルされる。シャッフルアルゴリズムは、タッチ画面接触点の座標等のような入力データの順序を変更する。シャッフルされたタッチ入力は、その後、ホストソフトウェアに提供される。ホストソフトウェアがタッチ入力を利用しなければならない場合、ホストソフトウェアはセキュアエンジンを利用して、タッチ入力をシャッフル前の状態に戻す。
【００１１】
図1において、タッチパネル10は、一実施形態では左下隅の(0,0)から右上隅の(1920,1080)にわたる座標のタッチ入力空間を有する。タッチパネル座標をもたらす他の手段が使用されてもよい。タッチパネルにユーザ(すなわち、ユーザの指)が触れた場所の座標は、未処理座標(raw  coordinate)として送られてもよい。未処理座標はセキュリティエンジン12に与えられ、一実施形態においてセキュリティエンジンはマイクロコントローラ及びファームウェアを含む。一実施形態において、座標は、集積回路間バス(I2Cバス)を介してタッチパネルからセキュリティエンジンに送られる。
【００１２】
セキュリティエンジンは、タッチ入力がタッチパネルの現在の表示のセキュア領域内で入力されたか否かを判別する。セキュリティエンジンはそれをホストソフトウェア14に通知する。セキュア領域がアクセスされている場合、タッチパネルのアクセスされた場所の座標は、シャッフルアルゴリズムを用いてセキュリティエンジンによりシャッフルされる(シャッフルアルゴリズムの2つ具体例として、例えば、クヌース(Knuth)シャッフル法、ソープ(Thorp)シャッフル法等が挙げられる)。
【００１３】
一実施形態において、セキュリティエンジン12はセキュアハードウェアコントローラを含み、セキュアハードウェアコントローラは、個別素子でもよいし、或いは独立した環境をなすように形成されたプロセッサの一部分である。別の例として、セキュリティエンジンはソフトウェアに基づくセキュアコントローラであってもよく、例えば、組み込まれたオペレーティングシステムを形成するために仮想化を行うことにより、独立したソフトウェアセキュア環境を形成してもよい。一実施形態においてセキュリティエンジンはタッチスクリーンの一部分であってもよい。
【００１４】
一実施形態において、座標がスクリーンのセキュア領域内に含まれていると判断された場合、ハードウェアタッチスクリーン10はホストソフトウェア14に直接的にそのまま情報を提供するのではななく、データストリームを処理する安全な環境に再配置される。座標がスクリーンのセキュア領域内に入っていた場合、直交座標ならばX及びY座標のうちの双方又は一方に、暗号化シャッフル処理が適用される。暗号化シャッフル処理又はスモールドメイン暗号化処理は、小規模のデータセット(データ群)について強力な暗号化を可能にするが、暗号化される内容と復号化される内容とは厳密に1対1に対応するという性質(対応関係)がある。
【００１５】
暗号化シャッフルは、一実施形態では、シャッフルする順序を決めるキー関数(keying  function)としてアドバンスト暗号化標準(AES)を利用してもよい。一実施形態において、シャッフルは、画面上の保護領域におけるタッチイベントの座標(群)を、同じ保護領域内にある新たな座標(群)に再配置する。「再配置する」は、配置し直す、並べ直す、整列し直す、整列順序を変える、異なる順列にする等と言及されてもよい。例えば、再配置された座標は、キー(鍵)が未知である限り、真の座標に戻すことは困難である(少なくとも自明ではない)。再配置される座標の領域を、スクリーンの安全な入/出力部分内に維持することにより、再配置される座標は、ソフトウェアスタックを経由し、そしてスクリーンの他の部分でなされるタッチイベントとまさに同様に現れる。従ってマルウェアにとってセキュアデータ入力を得るためにセキュア座標を捕捉することは非常に困難になる。
【００１６】
一実施形態において、各々の座標は、新しく暗号化された座標に対応付けられる又はマッピングされる。従って、一実施形態において、近くで生じた複数のタッチイベントは完全に関連のない(かけ離れた)座標に対応付けられる。一実施形態では、仮想キーボードで同じキーを複数回押すと、シャッフルされた座標群の中でかなりばらばらの異なる座標をもたらす。別の実施形態では、入力座標がタッチスクリーンの仮想キー画像からずれている場合、入力座標は仮想キーの中心に変換又は変更されるように調整されてもよい。
【００１７】
真の入力をデコード(復号)する必要がある例えば金融機関のようなセキュアサービス(部)は、例えば、図1に示されているシステムのセキュリティエンジン12を利用して次のように処理を行う。対称鍵(シンメトリックキー)が、セキュリティエンジン12の一部であるマイクロコントローラ等のようなセキュリティコントローラとともに共有され、対称鍵は変換の仕方を決定するのに使用される。次に、セキュア環境で使用されることが既知である暗号化シャッフルに基づいて、同じマッピングテーブルが用意又は使用される。タッチスクリーンを押した際の真の座標を得るために逆変換が実行される。仮想キーボード、ピンパッド、署名された物理的署名、その他の何らかの手段によるユーザが行ったデー入力の仕方(タイプ)に基づいて、タッチイベントが解釈されてもよい。
【００１８】
上記の具体例は標準的な直交座標に関連しているが、同じ技法は例えば極座標のような任意の座標系に使用可能であり、極座標の場合は画面上の円形部分を保護領域としてもよいし、或いは本技法をセキュアなジェスチャ入力に使用できるようにする3次元座標が使用されてもよい。
【００１９】
更に、入力が(将来)セキュアになるユーザを保証するために(現時点では秘密でないが将来秘密情報になる場合)、スクリーン上に固有のインジケータが形成され、将来セキュア入力データが暗号化による保護処理に委ねられることを(そのインジケータにより)示してもよい。例えば、セキュア環境の制御の下で仮想キーボードは、安全な実行環境において安全に用意される固有の画像ウォーターマーク(image  watermark)を含むことが可能である。
【００２０】
一実施形態では、画面データはランダム化される必要がないので、ユーザは自然な入力の体感を得る。更に、一実施形態では、セキュアなイベント及び非セキュアなイベントの自由な混合が許容され、セキュアな環境で必要とされるデータのみが、セキュリティ領域として関連付けられている画面領域に由来する。開発者の観点からは、同じタッチスクリーンイベントアプリケーションプログラムインタフェース及びフレームワークが、ハードウェアとやり取りするように使用されてよい。唯一の相違は、ホストソフトウェアが、セキュア領域内の座標はデコードの際にセキュアアプリケーションに送られるべきであることを知っていなければならない点である。
【００２１】
セキュリティエンジンはシャッフルされたタッチイベントをドライバ16に出力し、ドライバ16はそのデータを非信用コード22に与える。非信用コード22は漏洩してしまうかもしれないことが想定されている。
【００２２】
或いは、セキュア領域に至らないタッチパネル入力は、経路18を介して(セキュリティエンジン12を迂回又はバイパスして)、ホストソフトウェアスタック14内のオペレーティングシステムドライバ20に直接的にルーティングされてもよい。サーバ24は秘密データをホストソフトウェア14に送信してもよい。一実施形態において、未処理座標は、オンチップ(内蔵)手段又は類似する他の手段に接続されたオンチップ処理部により処理されてもよいことに留意を要する。
【００２３】
一実施形態において、本発明の一例を実現するための擬似コードは次のとおりである：
【００２４】
【数１】
0005940677.tif 000002
図2において、キー入力座標をシャッフルするためのシーケンス26は、ソフトウェア、ファームウェア及び/又はハードウェアにより実現されてもよい。ファームウェア及びソフトウェアによる実施形態の場合、1つ以上の有形のコンピュータ可読媒体に保存されたコンピュータにより実行可能な命令により、シーケンスは実現されてもよい。コンピュータ可読媒体は、コンピュータが読み取ることが可能な記憶媒体であり、例えば磁気メモリ、光学メモリ、又は半導体メモリ等である。図1に示す実施形態の場合、一例として、ソフトウェア又はファームウェアのシーケンスはセキュリティエンジン12に保存されていてもよい。
【００２５】
シャッフルシーケンス26は、ブロック28により示されているように、接触座標(ユーザがタッチした座標)を受信することにより始まる。菱形のブロック30において、その座標はセキュアエントリモード(安全入力モード)を用いた結果であるか否かが確認される。セキュアエントリは、セキュア又は秘密であるように示される任意のデータ入力である。セキュアエントリモードの具体例は、ディスプレイのセキュア領域内でのタッチ入力であってもよい。セキュアエントリモードの他の具体例は、セキュア(秘密)であるとしてエントリを指定する入力選択又は入力指定を行うことを含む。座標がセキュアエントリとして指定された場合、その座標はブロック32に示されているようにセキュリティエンジンでシャッフルされる。そして、ブロック34に示されているように、入力がシャッフルされている場合、(図1においてドライバ20に至る経路18を迂回して)シャッフルされた座標は、ホストソフトウェア14(図1)に至る。入力がシャッフルされない場合、一実施形態では、シャッフルされていない入力もホストソフトウェア14に与えられる。
【００２６】
図3に示されているシーケンス36は、入力キーイベントをシャッフルしないキーイベントの受信部により使用される。例えば、ウェブサイトのサーバは、キーイベントを受信し、そのキーイベントをデコード(復号)する必要がある。受信部は、図1に示されているのと同様な装置及びセキュリティエンジン12(図1)に対応するセキュリティエンジンを使用してもよい。シーケンス36はファームウェア、ソフトウェア及び/又はハードウェアにおり実現されてよい。ファームウェア及びソフトウェアによる実施形態の場合、1つ以上の有形のコンピュータ可読媒体(例えば磁気メモリ、光学メモリ、又は半導体メモリ等)に保存されたコンピュータにより実行可能な命令として、シーケンスは実現されてもよい。この場合においても、ソフトウェア又はファームウェアのシーケンスはセキュリティエンジン12(図1)に保存されていてもよい。
【００２７】
シーケンスはブロック38に示されているようにセキュリティコントローラと対称鍵を共有することにより始まる。ブロック40に示されているように、鍵のシーケンス(キーシーケンス)を形成した際に使用されたのと同じマッピングテーブルが、シャッフルされた結果をもたらすために使用された暗号化されたシャッフルに基づいて用意又は使用される。ブロック42において逆変換が実行される。そして、ブロック44に示されているように、データエントリのタイプに基づいてタッチイベントが解釈される。
【００２８】
本明細書を通じて、「一実施形態」又は「実施形態」は、その実施形態に関連して説明されている特定の性質、構造又は特徴が、本発明に包含される少なくとも1つの実施形態に含まれることを意味する。「一実施形態」又は「実施形態」という語句が登場する場合、それらは必ずしも同じ実施形態を指しているとは限らない。更に、特定の性質、構造又は特徴が、説明された特定の実施形態以外の適切な他の形式に使用されてもよく、そのような全ての形式は本願の特許請求の範囲内に包含されてもよい。
【００２９】
以上、本発明は限られた数の実施形態に関連して説明されてきたが、当業者はそれらに対する適切な様々な修正や変形を認めるであろう。添付の特許請求の範囲は、そのような修正や変形の全てが本発明の真の精神及び範囲内に属するように、意図されている。
【図１】
0005940677.tif 000003
【図２】
0005940677.tif 000004
【図３】
0005940677.tif 000005