(57)【要約】【課題】処理プラットフォームの入力デバイスを介して入力される機密データをデータロガーなどから保護する方法および装置を提供することを目的とする。【解決手段】本願にかかる方法は、処理プラットフォームの入力デバイスを介して入力された機密データをデータロガーから保護する方法であって、この機密データは、リモートアプリケーションを対象とするユーザアカウントデータであり、前記方法は、セキュリティエンティティと前記リモートアプリケーションとの間で実行されるセキュアなパスワード認証鍵合意プロトコルでパスワードとして前記機密データを使用することを含み、前記セキュリティエンティティは、前記入力デバイス、または、この入力デバイスとのセキュアな通信にインストールされる。【選択図】図２
2008269610.tif 000002
【特許請求の範囲】
【請求項１】
処理プラットフォームの入力デバイスを介して入力された機密データをデータロガーから保護する方法であって、この機密データは、リモートアプリケーションを対象とするユーザアカウントデータであり、
前記方法は、
セキュリティエンティティと前記リモートアプリケーションとの間で実行されるセキュアなパスワード認証鍵合意プロトコルでパスワードとして前記機密データを使用すること
を含み、
前記セキュリティエンティティは、前記入力デバイス、または、この入力デバイスとのセキュアな通信にインストールされる
方法。
【請求項２】
前記入力デバイスを使用してアカウント識別子を入力し、この識別子を、前記入力デバイスから、前記処理プラットフォーム上で実行されているローカルアプリケーションへ平文で送信することと、
前記ローカルアプリケーションから、対応するアカウントデータにアクセスするために前記アカウント識別子が使用される前記リモートアプリケーションへ前記アカウント識別子を転送することであって、前記アカウントデータは、次に、前記リモートアプリケーションによって、チャレンジ(challenge)を生成して前記セキュリティエンティティの前記処理プラットフォームへ前記チャレンジを返すことによって前記パスワード認証鍵合意プロトコルを開始するのに使用されることと、
前記入力デバイスを使用して前記機密ユーザアカウントデータを入力し、このデータを、前記チャレンジに対する応答の生成に使用する前記セキュリティエンティティへセキュアに渡すことと、
前記チャレンジを生成するときに前記リモートアプリケーションによって使用された前記ユーザアカウントデータが、前記応答を生成する際に前記セキュリティエンティティによって使用された前記ユーザアカウントデータに対応するか否かを判断するのに前記応答がチェックされる前記リモートアプリケーションへ前記応答を返すことと
を含む請求項１に記載の方法。
【請求項３】
前記セキュリティエンティティは、前記入力デバイスに配置され、通常は、このセキュリティエンティティが前記入力デバイスで入力されたユーザ入力を前記ローカルアプリケーションへ平文で移す通過モードに設定され、
前記方法は、
前記セキュリティエンティティが前記パスワード認証鍵合意プロトコルに参加するセキュリティモードに前記セキュリティエンティティを設定すること
をさらに含み、
前記セキュリティエンティティは、このセキュリティエンティティのセキュリティモードにある時に、前記入力デバイスで入力されたユーザ入力が前記処理プラットフォームへ平文で渡ることを阻止する
請求項２に記載の方法。
【請求項４】
前記セキュリティエンティティは、前記入力デバイスを使用して行われるユーザ入力によって、このセキュリティエンティティのセキュリティモードに設定される
請求項３に記載の方法。
【請求項５】
前記セキュリティエンティティは、前記処理プラットフォームに配置され、
前記入力デバイスは、このデバイスで入力された前記機密ユーザアカウントデータを前記セキュリティエンティティへ暗号化リンクで渡す
請求項２に記載の方法。
【請求項６】
前記リモートアプリケーションへ正しい応答を返すことに続いて、さらなる機密データが、前記入力デバイスから前記リモートアプリケーションへ渡され、
前記さらなる機密データは、前記パスワード認証鍵合意プロトコルの結果として前記リモートアプリケーションと合意された鍵を使用して、前記セキュリティエンティティによって暗号化される
請求項２に記載の方法。
【請求項７】
前記ユーザアカウントデータは、アカウント番号である
請求項１に記載の方法。
【請求項８】
前記入力デバイスは、
複数のユーザ操作可能キー
を備える
請求項１に記載の方法。
【請求項９】
ユーザ入力を受け取り、対応するユーザデータを処理プラットフォームへ渡す入力デバイスであって、
ユーザ入力に応答して平文のユーザデータを生成するユーザ入力変換装置（arrangement）と、
前記処理プラットフォームとのデータの交換のための入出力インターフェースと、
セキュリティユニットであって、
前記ユーザ入力変換装置によって生成された前記平文のユーザデータが、前記入出力インターフェースへ渡される第１のモードと、
前記セキュリティユニットが、リモートアプリケーションとパスワード認証鍵合意プロトコルを実行するように構成され、前記ユーザ入力変換装置によって生成されたユーザデータが、前記入出力インターフェースへ渡ることを阻止され、このユーザデータは、その代わり、前記プロトコルでパスワードとして使用される第２のモードと
で選択的に動作可能である前記セキュリティユニットと
を備える入力デバイス。
【請求項１０】
前記入力デバイスは、キーボードであり、
前記ユーザ入力変換装置は、
キーマトリックスおよび関連付けられているデコーダ
を備える
請求項９に記載の入力デバイス。
【請求項１１】
前記セキュリティユニットの前記モードは、前記ユーザ入力変換装置へのユーザ入力の結果として変更されるように構成される
請求項９に記載の入力デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理プラットフォームの入力デバイスを介して入力される機密データをデータロガーから保護する方法および装置に関する。
機密データは、リモートアプリケーションを対象としたアカウントデータである。
詳細には、これに限られるものではないが、本発明は、キーボードを介して入力される機密アカウントデータをキーロガーから保護する方法および装置に関する。
【０００２】
本明細書で使用されるように、「アカウントデータ」という用語は、ユーザに関連付けられ且つ単独でまたは他のデータと共にそのユーザに関する記録または他のアイテムを区別することを可能にする、第三者にすでに知られている任意のデータを意味する。
アカウントデータの例には、銀行口座番号、ストアアカウント番号、ネットワークゲームアカウントの詳細等が含まれるが、これらに限定されるものではない。
【背景技術】
【０００３】
キーロガーは、キーボードまたはキーパッド（以下、簡単にするために「キーボード」と総称する）を通じてユーザによって入力されるキーストロークをキャプチャするためにユーザのマシンにインストールされた１つのハードウェアまたはソフトウェアである。
ソフトウェアキーロガーは、インストールされてＰＣ等の処理プラットフォーム上で実行されると、関連付けられたキーボードからプラットフォームに渡されるすべてのキーストロークをトラップする（すべてのキーストロークのコピーを記憶する）。
ハードウェアキーロガーは、通常、処理プラットフォームとキーボードとの間に挿入されて、キーストロークをトラップし、その後の読み出しのためにキーストロークを記憶する。
【０００４】
キーロガーの使用については多くの正当な使用があるが、キーロガーは、悪意のある使用（たとえば、パスワードおよび他の識別情報をキャプチャすること）も受けやすい。
あいにく、不正な人がキーロガーをひそかにインストールすることは比較的簡単な事である。
たとえば、ソフトウェアキーロガーは、ユーザがウェブサイトを訪れるかまたは電子メールの添付ファイルを開く結果として簡単にコンピュータにインストールすることができ、ハードウェアキーロガーは、たとえば、不正な従業員によってほんの数秒でインストールすることができる。
【０００５】
個人情報盗用のためのキーロガーの一般的な使用例は、オンラインクレジットカード取引に関係したものである。
クレジットカードを使用することによってオンライン支払いを行うには、ユーザは、ユーザアカウント名、クレジットカード番号、およびセキュアな取引番号を含む自身のクレジットカードの詳細をタイプしなければならない。
セキュアな取引番号は、通常はクレジットカードの裏に印刷された最後の３つの数字である。
多くのクレジットカード支払い製品では、これらのメッセージは、インターネット上のＳＳＬ／ＨＴＴＰＳトランスポートセッションによって保護され、その結果、送信される情報は、ユーザのプラットフォームと支払いサービスサーバとの間で保護されるが、ユーザのプラットフォームの内部では保護されない。
したがって、キーロガーは、この情報を容易に記録することができ、後に、悪意のあるキーロガー所有者は、クレジットカード所有者になりすまして、クレジットカードを使用することができる。
すなわち、個人情報盗用の一形態である。
【０００６】
いくつかの既存のキーロガーから防御する１つの方法は、バーチャルキーボード（スクリーンに表示されてポインティングデバイスによって操作されるキーボード）を使用することである。
しかしながら、この手法は、マウスがクリックされるたびにスクリーンのスナップショットを撮影するいくつかの新しいキーロガーに対しては効果がない。
これに対抗するために、クリックする必要なくマウスポインタをキーの上にホバリングすることによってキー選択が行われるバーチャルキーボードを使用することが知られている。
しかしながら、高機能のキーロガーは、バーチャルキーボードを使用してどのキーが選択されているかを見るために、タイミングアルゴリズムを使用して、スクリーンのスナップショットを撮影することができる。
バーチャルキーボードを使用することに関するこれらの弱点に加えて、ユーザがマウスを使用してデータをタイプすることは便利ではないので、使い勝手の問題も存在する。
【０００７】
キーロガーからの保護に役立つ異なる手法は、キーロガーを検出して除去することを試みることである。
このような手法は、検出不能または除去不能のいずれかであることが判明しているいくつかのキーロガーに対しては効果がない。
【０００８】
キーロガーからの保護に役立つ他の手法には、キーボードから処理プラットフォームのオペレーティングシステム（ＯＳ）に渡るデータを暗号化することが含まれる。
しかしながら、このような手法は、データが、ＯＳに到着するとすぐに解読されて、処理プラットフォームにインストールされたソフトウェアキーロガーに対して脆弱にされるので、ハードウェアキーロガーからの保護にしか役立たない。
【０００９】
別の暗号化に基づく手法は、米国特許出願公開第２００４／０２３０８０５号に開示されている。
この文書は、キーボードとコンポーネント（任意のタイプのものとすることができ、たとえば、コンピュータ上で実行されているプログラム、１つのハードウェア等とすることができる）との間を通るデータを暗号化することを開示している。
この目的のために、キーボードおよびコンポーネントの双方は、それらの間にセキュアなチャネルをセットアップするのに使用される共有秘密情報で事前にインストールされる。
この手法は、信頼できるインフラストラクチャが、キーボードおよびコンポーネントを分散させて、どのキーボードがどのコンポーネントとセキュアに通信できるのかを追跡することを必要とすることは明らかであろう。
【特許文献１】米国特許出願公開第２００４／０２３０８０５号
【非特許文献１】「Provably Secure Password-Authenticated Key Exchange Using Diffie-Hellman」（Victor Boyko, Philip MacKenzie, Sarvar Patel著, in Advances in Crypthology - Eurocrypt 2000, Lecture Notes in Computer Science 1807, Springer-Verlag, 2000）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、上記背景からなされたものであり、処理プラットフォームの入力デバイスを介して入力される機密データをデータロガーなどから保護する方法および装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明にかかる処理プラットフォームの入力デバイスを介して入力された機密データをデータロガーから保護する方法は、前記機密データは、リモートアプリケーションを対象とするユーザアカウントデータであり、セキュリティエンティティと前記リモートアプリケーションとの間で実行されるセキュアなパスワード認証鍵合意プロトコルでパスワードとして前記機密データを使用することを含み、前記セキュリティエンティティは、前記入力デバイス、または、この入力デバイスとのセキュアな通信にインストールされるように構成される。
【００１２】
本発明は、添付の特許請求の範囲に説明されている。
【００１３】
次に、非限定的な例として、添付の図式図について本発明の一実施形態を説明する。
【発明を実施するための最良の形態】
【００１４】
図１は、通信ネットワーク１５（インターネット等）上でリモート装置１６と通信する処理プラットフォーム１０を示している。
【００１５】
本例では、処理プラットフォームは、プロセッサボックス１１と、キーボード１２の形態の入力デバイスと、ディスプレイ１３とを備えるパーソナルコンピュータである。
プロセッサボックス１１は、プロセッサおよびそのサポートデバイスを実装したマザーボードの形態のハードウェア１１１を有する従来の形態のものである。
このサポートデバイスは、メモリ、バスおよびＩ／Ｏインターフェース、グラフィックスコントローラ等である。
動作中、プロセッサは、オペレーティングシステム（ＯＳ）１１２および１つまたは２つ以上のアプリケーション１１３をロードして実行するように構成されている。
ＯＳ１１２は、通信スタックを含む。
この通信スタックは、アプリケーションが、リモート装置１６上で実行されているリモートアプリケーション１７とのネットワーク１５上の通信チャネルをセットアップすることを可能にする。
【００１６】
キーボード１２は、従来と同様に、キーマトリックス１２１、キープレスデコーダ１２２、および装置１２３（通常、ＵＳＢベースのものであるが、これに限定されるものではない）を備える。
装置１２３は、キーボード１２をプロセッサボックス１１とインターフェースして、キーボードへデータを渡すことおよびキーボードからデータを渡すことの双方を可能にするためのものである。
デコーダ１２２は、キーストロークを解釈し、対応するキーコードをインターフェース装置１２３を介してＯＳ１１２へ渡す働きをする（パス１８を参照）。
ＯＳ１１２は、次に、キーコードを現時点のアプリケーション１１３に渡す（キーコードが独力でのみ意図したようにＯＳ１１２によって認識されない限り）。
【００１７】
本事例では、キーボード１２は、デコーダ１２２とインターフェース装置１２３との間に挿入されたセキュリティユニット１２４をさらに備える。
セキュリティユニット１２４は、２つの動作モードを有する。
すなわち、セキュリティユニット１２４が、デコーダ１２２から受け取ったキーコードを未変更で（すなわち、平文で）単に通過させるだけの通過モードと、後述するセキュリティモードとを有する。
特殊ボタン１２５（または、デコーダ１２２によって認識されるキーストロークの組み合わせ）が、セキュリティユニット１２４をその２つの動作モード間でトグルさせるのに使用される。
セキュリティユニット１２４は、そのセキュリティモードにある時、専用ハードウェアを用いてまたは内部プロセッサ上で実行されるコードによって暗号プロトコル（以下で説明）を実装するように構成されている。
セキュリティユニット１２４に関する「ユニット」という用語の使用は、このエンティティの機能を提供するハードウェア／ソフトウェアエレメントのどの特定の物理的形態も構成も暗に意味することを意図するものではないことが理解されるべきである。
【００１８】
セキュリティユニット１２４が、その通過モードに設定されている場合、コンピュータ１０は、従来通りに動作する。
【００１９】
ユーザがブラウザアプリケーション１１３を使用して、リモートアプリケーション１７を実行している企業とオンライン取引を行っており、その企業に対して、ユーザは、該ユーザおよびその企業の双方に知られている関連したアカウント番号を有するアカウントを有する状況を考える。
例として、この取引は、企業によって発行されたストアカードを使用して行われるクレジットカード支払いであると考えられる。
【００２０】
ユーザは、通常、自身のストアカードのアカウント番号が機密データであると考え、何かがインターネット上で平文で開示されないものと考えている（企業も、アカウント番号が秘密に保たれていることに関心がある）。
したがって、従来は、少なくともユーザコンピュータ１０からリモートアプリケーション１７へのアカウント番号を渡すために、アプリケーション１１３が、自身とリモートアプリケーション１７との間でのセキュアな通信セッション（たとえば、ＳＳＬセッション）のセットアップを引き起こす。
【００２１】
セキュアなセッションが確立されると、アプリケーション１１３は、ストアカードのアカウント番号の入力をキーボード１２から受け付ける。
セキュリティユニット１２４がその通過モードにある（または、存在しない）場合、ユーザによってタイプ入力されたアカウント番号は、パス１８上をアプリケーション１１３へ平文で渡され、セキュアなパス１９上をリモートアプリケーション１７へ送信される。
【００２２】
したがって、アカウント番号は、ネットワーク１５を横切る通路では保護されるが、プラットフォーム１０上で実行されているどのキーロガーソフトウェアも、キーボード１２とプロセッサボックス１１との間にインストールされているハードウェアキーロガーが可能なように、アカウント番号のキーコードをログ記録することができる。
【００２３】
本発明の好ましい実施形態によれば、ユーザによってタイプ入力されたアカウント番号は、キーボード１２の外部へ平文で渡されず、キーボードセキュリティユニット１２４（そのセキュリティモードで動作している）とリモートアプリケーション１７との間でセットアップされたセキュアなパスワードベース（「パスワード認証」とも呼ばれる）鍵交換プロトコル（「鍵合意」プロトコルとも呼ばれる）でパスワードとして使用される。
パスワード認証鍵合意プロトコルは、通信チャネルを制御するがパスワードを所有していない者が参加できず、パスワードの推測ができるだけ制約されるように、２つ以上のパーティが、自身のパスワードの知識にのみ基づき、メッセージの交換を使用して暗号鍵を確立するプロトコルである。
パスワードベース鍵合意プロトコルは、それ自体既知であり、ＩＥＥＥ  Ｐ１３６３．２およびＩＳＯ／ＩＥＣ１１７７０−４の主題である。
一具体例は、Victor Boyko、Philip MacKenzie、およびSarvar Patel著の「Provably Secure Password-Authenticated Key Exchange Using Diffie-Hellman」（in Advances in Crypthology - Eurocrypt 2000, Lecture Notes in Computer Science 1807, Springer-Verlag, 2000）に記載されている。
パスワードベースプロトコルは、パスワード（通常、長さが８〜１０文字）が平文で送信されることもなく、簡単な関数（既知を仮定される）を使用して偽装されることもなく、したがって、辞書攻撃を受けにくく、その代わり、通常はほぼ２８０個程度の並べ替えがある非常に大きな検索空間を保証する暗号関数が使用される場合に「セキュア」であると言うことができる。
【００２４】
セキュリティユニット１２４とリモートアプリケーション１７との間にセットアップされたパスワードベース鍵合意プロトコルにリモートアプリケーション１７が参加するには、リモートアプリケーション１７がユーザのアカウント番号（パスワード）の知識を有することが必要である。
この知識は、リモートアプリケーションに関連付けられた顧客データベース等の既存の記憶データから取得される。
好ましくは、この記憶データは、非機密アカウント識別子（ユーザ名等）に基づいてアカウント番号を取り出すためにアクセスされる。
この非機密アカウント識別子は、キーボードを介してユーザによって入力され、キーボード１２からローカルアプリケーション１１３へ平文で送信され、ローカルアプリケーション１１３からリモートアプリケーション１７へ送信される。
【００２５】
パスワードベース鍵合意プロトコルによって生成された鍵に基づいてリモートアプリケーション１７によって行われる比較オペレーションは、リモートアプリケーション１７がセキュリティユニット１２４と同じアカウント番号を使用していることをリモートアプリケーションに確認する働きをする。
【００２６】
次に、図２を参照して一具体例を与える。
ローカルアプリケーション１１３とリモートアプリケーション１７との間の通信が確立されており（これは、ＳＳＬセッション内とすることもできるし、平文とすることもできる）、セキュリティユニット１２４は、まだその通過モードにあるものと仮定する。
【００２７】
リモートアプリケーション１７からの要求に応答して、ユーザは、キーボード１２において、そのユーザのアカウントの識別子（たとえば、ユーザアカウント名ＵＡＮ）をタイプ入力する。
図２の矢印３１を参照されたい。
ユーザが、関係している企業に対して２つ以上のアカウントを有する場合、ユーザは、どのアカウントが使用されるのかの指示子も含める。
【００２８】
セキュリティユニット１２４が、その通過モードにある時、アカウント識別子ＵＡＮは、キーボード１２からローカルアプリケーション１１３へ平文で渡され、ローカルアプリケーション１１３からリモートアプリケーションへ送信される（図２のボックス３０参照）。
リモートアプリケーション１７は、アカウント識別子ＵＡＮを受信すると、それを使用して、ユーザのアカウント番号を取り出し、必要な場合には、セキュアな取引番号も取り出す（ボックス３２参照）。
【００２９】
リモートアプリケーションは、次に、アカウント番号、または、アカウント番号およびセキュアな取引番号の組み合わせのいずれかとして、パスワード文字列ｐｓｗｄｒを形成する。
パスワード文字列ｐｓｗｄｒの添え字ｒは、これがリモートアプリケーションによって形成されたパスワード文字列であることを示している。
リモートアプリケーションは、次に、
【００３０】
【数１】
2008269610.tif 000003
【００３１】
を計算する。
ここで、Ｈは、セキュアなハッシュ関数を介して、値ｐｓｗｄｒを有限体群ジェネレータ（finite field group generator）ｇに変換する関数である。
このような有限体群の一例は、素数位数ｑを有するＧである。
ここで、ｑは、ｑ｜ｐ−１を満たす大きな素数であり、ｐは、別の大きな素数である。
群の要素は、ｇｗ  ｍｏｄ  ｐの値の集合である。
ここで、ｗは、｛０，１，…，ｑ−１｝からの任意の整数である。
値ｐｓｗｄｒから群ジェネレータｇを作成するプロセスは、次のステップを含む。
・
【００３２】
【数２】
2008269610.tif 000004
【００３３】
を計算する（ボックス３３を参照）。ここで、ｈａｓｈは、ＳＨＡ−２５６等のセキュアなハッシュ関数である。
・
【００３４】
【数３】
2008269610.tif 000005
【００３５】
を計算する。
【００３６】
リモートアプリケーション１７は、次に、乱数「ｘ」を作成し、
ｇｘ
を計算する（ボックス３４参照）。
ここで、ｇｘの計算は、有限体群内にあり、そのことは、実際の計算がｇｘ  ｍｏｄ  ｐであることを意味する。
簡単にするために、以下では、本明細書で「ｍｏｄ  ｐ」を省略する。
この群では、ｇｘから値ｇまたは値ｘのいずれかを計算する問題は、計算的に実現不可能である。
【００３７】
リモートアプリケーション１７は、ローカルアプリケーション１１３へチャレンジ３５としてｇｘを送信する。
【００３８】
チャレンジ(challenge)３５の受信に応答して、ローカルアプリケーション１１３は、キーボードセキュリティユニット１２４をアクティブにしてキーボードセキュリティユニット１２４をそのセキュリティモードにするようにユーザにプロンプトで指示する。
セキュリティユニットをそのセキュリティモードに変化させる１回または複数回の押下の結果、ローカルアプリケーションには、これが行われたことも通知され、その後すぐに、ローカルアプリケーション１１３はチャレンジ３５をセキュリティユニット１２４へ転送する（ボックス３６参照）。
チャレンジがキーボード１２に渡される時にキーロガーがチャレンジを読み出すことができることは重要ではない。
【００３９】
セキュリティユニット１２４は、チャレンジを受信すると、そのセキュリティモードにおいて、キーボード１２でユーザ入力３７（入力３７）によってタイプ入力されたユーザアカウント番号および必要に応じてセキュアな取引番号に基づき、パスワード文字列ｐｓｗｄｌ（ここで、添え字ｌは「ローカル」を表す）を形成する。
パスワードｐｓｗｄｌは、ｐｓｗｄｒと同じ形を有し、すべてに問題がない場合には、同じであるべきである。
ユーザ入力３７は、プロセッサボックス１１には渡されず、その結果、キーロガーが読み出すことはできない。
ボックス３８に示すように、セキュリティユニット１２４は、次に、
【００４０】
【数４】
2008269610.tif 000006
【００４１】
を計算し、乱数「ｙ」を生成し、ｇｘと同じ有限体群の
ｇｙ
を計算する。その後、
ｇｘｙ
の計算が続く。
【００４２】
次に、セキュリティユニット１２４は、
【００４３】
【数５】
2008269610.tif 000007
【００４４】
を計算する（ボックス３９）。
ここで、ｈｌは、添え字ｌによって示されるように、鍵合意プロトコルによる作成に基づく共有鍵ｈのローカルコピーである。
【００４５】
セキュリティユニット１２４は、次に、数ｇｙおよびｈｌをローカルアプリケーション１１３に渡すことによってチャレンジ３５に応答し（ボックス４０）、ローカルアプリケーション１１３は、それらの数をチャレンジ応答４２としてリモートアプリケーション１７へ転送する（ボックス４１）。
【００４６】
リモートアプリケーション１７は、受信した値ｇｙを使用してｇｙｘを計算し、鍵ｈの自身のバージョンｈｒを計算する（ボックス４３参照）。
ここで、添え字ｒは、ｈのリモートバージョンを示している。
【００４７】
リモートアプリケーション１７は、次に、自身の計算した鍵値ｈｒをチャレンジ応答４２に含まれる値ｈｌと比較することによって、自身が正しいアカウント番号（およびセキュアな取引番号が用いられる場合にはセキュアな取引番号）を使用していることを検証する。
一致する場合には、リモートアプリケーションは、自身が正しいアカウント番号を有することを知り、取引を進め、一致しない場合には、取引は終了される（ボックス４５参照）。
【００４８】
上記プロトコルの過程でキーロガーによってログ記録されたどのデータも、意味をなさない。
【００４９】
追加のユーザ入力が、リモートアプリケーションにセキュアに渡される場合、これは、セキュリティユニット１２４が、実行された鍵合意プロトコルに基づいて生成された鍵を使用してキーコードを暗号するように構成することによって行うことができる。
これを行う１つの方法は、値ｈ（＝ｈｌ＝ｈｒ）を対称鍵として使用することである。
もちろん、この場合、値ｈｌは、応答４２に含まれてはならず、ステップ４４および４５で実行されるチェックは、ｈｌに直接基づくのではなく、この値に間接的に基づかなければならない。
たとえば、ｈｌは、パスワードｐｓｗｄｌを暗号化するためにセキュリティユニットが使用することができる。
この暗号化されたパスワードが、その後、リモートアプリケーション１７によって計算された対応する暗号化されたパスワードとの比較のために、ｈｌの代わりに応答４２に含まれる。
【００５０】
１つの代替的なものは、セキュリティユニット１２４およびリモートアプリケーション１７の双方が、たとえば、
【００５１】
【数６】
2008269610.tif 000008
【００５２】
として形成された別の鍵ｈｆを作成することである。
ここで、‖は、連結を表す。
【００５３】
リモートアプリケーション１７によって送信されたすべてのデータが、ローカルアプリケーションによって受信されると、そのデータをセキュリティユニットにいつ移すのか、または、ローカルアプリケーション自体がそのデータに基づいていつ動作するのかを決定することがローカルアプリケーションに委ねられる。
したがって、リモートアプリケーションによって開始されたプロンプトを表示ユニット１３上に表示することが引き続き可能である。
したがって、必要とされるすべての機密データがリモートアプリケーションによって受信された時に、このことをローカルアプリケーションに示すことができ、ローカルアプリケーションは、セキュリティユニット１２４のモードをその通過モードに再び変更するようにユーザにプロンプトで指示することができる。
【００５４】
上述した実施形態は、キーボード１２で入力された機密データを、ローカルなハードウェアキーロガーおよびソフトウェアキーロガーから保護することが理解されよう。
さらに、この保護は、キーボードとリモートアプリケーションとの間で特別な暗号秘密情報を共有する必要なく達成される。
【００５５】
本発明の上述した実施形態に対して多くの変形が可能である。
たとえば、異なるパスワード認証鍵合意プロトコルを使用することができる。
【００５６】
加えて、キーボード１２内にセキュリティユニット１２４を設けるのではなく、セキュリティユニットをプロセッサボックス１１（または、キーボード１２とプロセッサボックス１１との間）内に設けて、セキュアな方法で、すなわち、キーコードが（少なくとも、セキュリティユニットのセキュリティ動作モードの期間中は）ハードウェアキーロガーによってもソフトウェアキーロガーによっても可読になることなく、キーボードからキーコードを受け取るようにセキュリティユニット１２４を構成することができる。
これを達成する１つの方法は、プロセッサボックス１１のキーボードインターフェースをセキュリティユニット１２４に直接接続し、対称暗号または非対称暗号を使用して、キーボード１２からセキュリティユニット１２４へのすべての送信を暗号化することである。
実際には、キーコードの暗号化された送信は、セキュリティユニットがそのセキュリティモードに設定されているオペレーションについてのみ行う必要があり、それ以外の時のキーボード１２は、キーコードを平文で送信する。
図１におけるように、セキュリティユニット１２４がキーボード１２自体に配置されている場合、これは、ただ、タイプ入力された機密データをセキュリティユニット１２４へ渡すことについてのセキュリティの対策のみを提供する。
追加のセキュリティは、キーボードのハウジングを不正変更できないようにすることによって達成することができる。
【００５７】
さらに、適切な状況では、ユーザアカウント識別子ＵＡＮの使用をなくすことが可能である。
たとえば、アカウントの個数が少ない場合に、リモートアプリケーションは、チャレンジ応答で受信された鍵ｈｌを、リモートアプリケーションに知られている各アカウントの番号を使用して導出されるｈｒのすべての可能な値に対して検査することができる。
【００５８】
上記例では、パスワードについて使用される機密アカウントデータは、アカウント番号であったが、他の任意のタイプのアカウントデータも、それが適切に秘密である場合には使用することができる。
【００５９】
セキュリティユニットは、データロガーがキャプチャすることができるユーザ入力データを出力するあらゆる入力デバイスについて使用することができる。
したがって、キーマトリックス１２１およびデコーダ１２２は、マイクおよび音声／テキスト変換器等の代替的なユーザ入力変換装置によって置き換えることができる。
【００６０】
さらに、入力デバイスが関連付けられた処理プラットフォームは、図１に示すようなパーソナルコンピュータであることに限定されるものではなく、ＰＤＡまたは移動電話等の任意の処理プラットフォームとすることができる。
【００６１】
入力デバイスは、処理プラットフォームと同じ機器アイテム内に統合することができる。
【００６２】
さらに、ユーザプラットフォームとリモートアプリケーションとの間の通信は、他のアプリケーションプラットフォームを通ることもできる。
たとえば、ユーザが、自身のクレジットカードを使用することによって、電子チケットの金銭を電子チケットサービスプロバイダに支払うものとする。
このクレジットカード機密情報は、ユーザと当該ユーザの銀行との間で共有されていたが、電子チケットサービスプロバイダとの間では共有されていない。
上記で導入された認証鍵交換プロトコルは、ユーザプラットフォームのセキュリティユニットと銀行との間で実行されるが、このプロトコルの通信は、サービスプロバイダのウェブサイトを通る。
その場合、サービスプロバイダを受動的にすることになるわずかな変更が必要とされ、この変更によって、サービスプロバイダは、ユーザアカウント名ＵＡＮ、および、ユーザと銀行との間のプロトコルのトランスクリプトのみを知るが、機密情報は何ら知らない。
【図面の簡単な説明】
【００６３】
【図１】コンピュータシステムキーボードがリモートアプリケーションへセキュアに機密データを通信できる、本発明の一実施形態の図である。
【図２】機密データをリモートアプリケーションへ通信する際に図１のキーボードによって実行されるプロセスの図である。
【符号の説明】
【００６４】
１２・・・キーボード，
１５・・・通信ネットワーク，
１７・・・リモートアプリケーション，
１１３・・・アプリケーション，
１１４・・・通信スタック，
１２１・・・キーマトリックス，
１２２・・・デコーダ，
１２４・・・セキュリティユニット，
【図１】
2008269610.tif 000009
【図２】
2008269610.tif 000010