(57)【特許請求の範囲】
【請求項１】
コンピューティング・システムにおいて、ユーザ信頼装置が安全なＰＩＮ管理のための方法であって、
前記ユーザ信頼装置に結合されたメモリ・カードを検出するステップと、
外部ＰＩＮ（ext_PIN)のユーザ入力を受信するステップと、
前記ユーザ信頼装置により、前記外部ＰＩＮに関連したキー（Ｋ）を特定するステップであって、前記キーは永続的メモリに保管される前記特定するステップと、
１つの関数(f)を前記永続的メモリに保管されるようにキー、及び前記外部ＰＩＮを使用してカードＰＩＮ(card_PIN)を計算するステップであって、前記計算されたカードＰＩＮはcard_PIN＝ｆ（Ｋ，ext_PIN）を計算され、前記計算されたカードＰＩＮを形成するステップと、
前記メモリ・カードのカードＰＩＮと一致する前記計算されたカードＰＩＮに応答して、前記メモリ・カードをロック解除し、ロック解除されたカード・メモリを形成する、前記ロックを解除するステップと、
前記メモリ・カードのカードＰＩＮであることに失敗した前記計算されたカードＰＩＮに応答して、ユーザによる前記外部ＰＩＮ入力が前記メモリ・カードのカードＰＩＮでるかを決定し、前記ユーザが前記外部ＰＩＮを忘れていることを示すステップと、
前記メモリ・カードのカードＰＩＮと一致する前記計算されたカードＰＩＮに応答して、前記メモリ・カードをロック解除し、前記ロック解除されたカード・メモリを形成するステップと、
ユーザに新規な外部ＰＩＮを入れることを促すステップと、  
前記ユーザから前記新規な外部ＰＩＮを受信することに応答して、前記ユーザ信頼装置により、前記新規な外部ＰＩＮ及び前記カードＰＩＮを使用して新規なキーを生成するステップと、
後の安全なＰＩＮ管理のために前記永続的メモリ内に前記キーを保管するステップと、
を含む方法。
【請求項２】
前記キーは前記外部ＰＩＮ及び前記ユーザ信頼装置により受信された前記メモリ・カードのカードＰＩＮを利用して初期化モード中に生成され前記永続的メモリに保管され、  
前記装置において受信された前記カードＰＩＮは前記装置においてユーザにより直接入力され、前記外部ＰＩＮは前記装置において前記ユーザにより直接入力される、請求項１に記載の方法。
【請求項３】
前記装置における受信の後、受信した前記カードＰＩＮ及び前記外部ＰＩＮを非永続的メモリ内にのみ保持するステップと、
前記キーが生成された後、前記非永続的メモリから前記カードＰＩＮ及び前記外部ＰＩＮを削除するステップであって、前記外部ＰＩＮは、非永続的メモリから削除される前に前記永続的メモリ上に格納されることを特徴とする、前記ステップと、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記キーを生成し、格納するステップは、前記ユーザ信頼装置に結合されたメモリ・カードに関してキーが格納されていないことを検出したことに応答して実行される、請求項１に記載の方法。
【請求項５】
前記キーを生成し、格納するステップは、前記ユーザ信頼装置において前記メモリ・カードに関してキーが格納されていることを示すフラグ値を格納するステップをさらに含む、請求項１に記載の方法。
【請求項６】
前記ユーザ信頼装置に結合された別のメモリ・カードを検出する、前記他のカードは他のカードＰＩＮを用いてＰＩＮにより保護される、前記検出するステップと、
前記装置において、前記他のカードＰＩＮを受信するステップと、
前記他のメモリ・カードのための他のキーを生成して、前記他のキー及び外部ＰＩＮを引数として利用し、前記関数（ｆ）を介して後で、前記他のカードＰＩＮを計算するようにする、前記生成するステップと、
をさらに含む、請求項１に記載の方法。
【請求項７】
前記他のキーを生成して、前記他のキーと前記キー（Ｋ）を生成し格納するために用いられたのと同じ外部ＰＩＮとを引数として利用し、前記関数を介して、前記他のカードＰＩＮを計算されるようにするステップをさらに含む、請求項６に記載の方法。
【請求項８】
前記ロック解除されたメモリ・カード上に格納されたデータを用いて、前記ユーザ信頼装置及び端末を介して、ユーザと少なくとも１つのサーバとの間に信頼できる接続を確立するステップをさらに含む、請求項１に記載の方法。
【請求項９】
前記信頼できる接続を確立することは、前記メモリ・カードをロック解除することによりトリガされる、請求項８に記載の方法。
【請求項１０】
前記信頼できる接続を確立することは、前記ユーザ信頼装置を、前記端末を介して、安全でない接続上でサーバと通信するように設定することにより、実行される請求項９に記載の方法。
【請求項１１】
前記信頼できる接続を確立するための前記コンピュータ化された方法は、前記カードを成功裏にロック解除したときにトリガされる、請求項１０に記載の方法。
【請求項１２】
前記安全でない接続上で設定される前記通信を開始すること、及び、ＳＳＬ／ＴＬＳ通信を開始することによって、前記サーバへの前記ユーザ信頼装置の認証を行うステップをさらに含む、請求項１０に記載の方法。
【請求項１３】
前記ユーザ信頼装置を前記サーバと通信するように設定するステップは、前記ユーザ信頼装置から、前記端末に常駐しているプロキシ・クライアントを開始し、前記ＳＳＬ／ＴＬＳ通信を介して前記サーバに接続するステップをさらに含み、
前記サーバへの前記装置の認証を行うステップは、前記サーバによるＳＳＬ／ＴＬＳ認証を含む、請求項１２に記載の方法。
【請求項１４】
コンピューティング・システムにおいて、安全なＰＩＮ管理のためのユーザ信頼装置であって、
プロセッサと、
前記プロセッサに接続されたメモリと、
前記メモリが保管する前記プロセッサに実行させるプログラムと、を含み、
前記プログラムは、
前記ユーザ信頼装置に結合されたメモリ・カードを検出するステップと、
外部ＰＩＮ（ext_PIN)のユーザ入力を受信するステップと、
前記ユーザ信頼装置により、前記外部ＰＩＮに関連したキー（Ｋ）を特定するステップであって、前記キーは永続的メモリに保管される前記特定するステップと、
１つの関数(f)を前記永続的メモリに保管されるようにキー、及び前記外部ＰＩＮを使用してカードＰＩＮ(card_PIN)を計算するステップであって、前記計算されたカードＰＩＮはcard_PIN＝ｆ（Ｋ，ext_PIN）を計算され、前記計算されたカードＰＩＮを形成するステップと、
前記メモリ・カードのカードＰＩＮと一致する前記計算されたカードＰＩＮに応答して、前記メモリ・カードをロック解除し、ロック解除されたカード・メモリを形成する、前記ロックを解除するステップと、
前記メモリ・カードのカードＰＩＮであることに失敗した前記計算されたカードＰＩＮに応答して、ユーザによる前記外部ＰＩＮ入力が前記メモリ・カードのカードＰＩＮでるかを決定し、前記ユーザが前記外部ＰＩＮを忘れていることを示すステップと、
前記メモリ・カードのカードＰＩＮと一致する前記計算されたカードＰＩＮに応答して、前記メモリ・カードをロック解除し、前記ロック解除されたカード・メモリを形成するステップと、
ユーザに新規な外部ＰＩＮを入れることを促すステップと、  
前記ユーザから前記新規な外部ＰＩＮを受信することに応答して、前記ユーザ信頼装置により、前記新規な外部ＰＩＮ及び前記カードＰＩＮを使用して新規なキーを生成するステップと、
後の安全なＰＩＮ管理のために前記永続的メモリ内に前記キーを保管するステップと、
を前記プロセッサに実行させるユーザ信頼装置。
【請求項１５】
安全なＰＩＮ管理のためのユーザ信頼装を接続されたコンピューティング・システムのためのプログラムであって、
コンピューティング・システムにおいて、ユーザ信頼装置が安全なＰＩＮ管理のための方法であって、
前記ユーザ信頼装置に結合されたメモリ・カードを検出するステップと、
外部ＰＩＮ（ext_PIN)のユーザ入力を受信するステップと、
前記ユーザ信頼装置により、前記外部ＰＩＮに関連したキー（Ｋ）を特定するステップであって、前記キーは永続的メモリに保管される前記特定するステップと、
１つの関数(f)を前記永続的メモリに保管されるようにキー、及び前記外部ＰＩＮを使用してカードＰＩＮ(card_PIN)を計算するステップであって、前記計算されたカードＰＩＮはcard_PIN＝ｆ（Ｋ，ext_PIN）を計算され、前記計算されたカードＰＩＮを形成するステップと、
前記メモリ・カードのカードＰＩＮと一致する前記計算されたカードＰＩＮに応答して、前記メモリ・カードをロック解除し、ロック解除されたカード・メモリを形成する、前記ロックを解除するステップと、
前記メモリ・カードのカードＰＩＮであることに失敗した前記計算されたカードＰＩＮに応答して、ユーザによる前記外部ＰＩＮ入力が前記メモリ・カードのカードＰＩＮでるかを決定し、前記ユーザが前記外部ＰＩＮを忘れていることを示すステップと、
前記メモリ・カードのカードＰＩＮと一致する前記計算されたカードＰＩＮに応答して、前記メモリ・カードをロック解除し、前記ロック解除されたカード・メモリを形成するステップと、
ユーザに新規な外部ＰＩＮを入れることを促すステップと、  
前記ユーザから前記新規な外部ＰＩＮを受信することに応答して、前記ユーザ信頼装置により、前記新規な外部ＰＩＮ及び前記カードＰＩＮを使用して新規なキーを生成するステップと、
後の安全なＰＩＮ管理のために前記永続的メモリ内に前記キーを保管するステップと、
を前記コンピューティング・システムに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネット・バンキングに用いられるような、スマート・カードなどのＰＩＮ保護されたメモリ・カードを用いる、ユーザ信頼装置（user trusted device）に関する。具体的には、本発明は、そのような装置の安全なＰＩＮ管理に関する。
【背景技術】
【０００２】
ユーザが入力したデータが攻撃者によって操作される又はコピーされることがあるので、ＰＣに関連する安全上の問題により、ＰＣが、多くの機能には適さないものになっている。トランザクションが変更されて、望まない受取人に送金する又は望まない商品を注文することがあり、或いはユーザ信任状がコピーされて、攻撃者に、インターネット・バンキングに用いられるもののようなシステムにアクセスできるようにすることがある。
【０００３】
これらの問題の一部を解決するために、ユーザ信頼装置（同じく「安全な装置（securedevice）」）を用いることができる。１つのそのような解決策であるＩＢＭ社のＺｏｎｅ  Ｔｒｕｓｔｅｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｃｈａｎｎｅｌ（非特許文献１を参照されたい）は、トランザクションがサービス提供者（例えば、銀行）により実行される前に、ユーザが、そのトランザクションと関連した情報（例えば、インターネット・バンキングの場合、金額及び受取人）を検証することを可能にする。トランザクションは、安全であり、かつ、検証された情報を安全な方法でバック・エンド・システムに送ることができる装置において検証される。
【０００４】
インターネット・サービスにアクセスするために、ユーザは、そのサービスに対して自分を識別するために用いられる信用状（credential）を有する。そのような信用状は、スマート・カード上に格納されることもある。この場合、安全な装置は、これらの信用状の使用を可能にするためのスマート・カード・リーダを有する。意図されたユーザのみが信用状を使用できることを保証するために、スマート・カードは、ＰＩＮによって保護される。従って、ＰＩＮは、秘密にされる。そうでなければ、サーバにアクセスするために、スマート・カードが誰か他の人に使用されることがある。スマート・カードはまた、インターネット・トランザクションのためにユーザを認証すること以外の目的に用いられることもある。例えば、同じカードを、ＡＴＭから現金を下ろすために使用することができる。このような場合、カードのＰＩＮは、さらに強力な保護を必要とする。
【０００５】
安全な装置において、メモリは、通常、永続的（又は不揮発性）部分、及び、一時的（同じく非永続的又は揮発性）部分に分割される。例えば、永続的メモリは、装置が「オフ」のとき又は主バッテリが取り外されたとき、装置の動作モードと関係なく、格納された情報を保持する。永続的メモリは、例えば、読み出し専用メモリ（ＲＯＭ）、プログラム可能ＲＯＭ、電気的消去可能プログラム可能ＲＯＭ（ＥＥＰＲＯＭ）を用いて、バッテリ・バックアップ式スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）又はダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）を用いて実装することができる。一時的メモリ（transient memory）は、装置のアクティブな動作中、そこに格納された情報のみを保持し、典型的には、ＳＲＡＭ又はＤＲＡＭを用いて実装される。装置においてアプリケーションを実行する際、保存操作を行うことが一般的であり、これにより一時的メモリ内のコンテンツが永続的メモリ上に格納される。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Ｔｈｏｍａｓ  Ｗｅｉｇｏｌｄ、Ｔｈｏｒｓｔｅｎ  Ｋｒａｍｐ、Ｒｅｔｏ  Ｈｅｒｍａｎｎ、Ｆｒａｎｋ  Ｈｏｒｉｎｇ、Ｐｅｔｅｒ  Ｂｕｈｌｅｒ、Ｍｉｃｈａｅｌ  Ｂａｅｎｔｓｃｈ著、「Ｔｈｅ  Ｚｕｒｉｃｈ  Ｔｒｕｓｔｅｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｃｈａｎｎｅｌ−Ａｎ  Ｅｆｆｉｃｉｅｎｔ  Ｄｅｆｅｎｃｅ  ａｇａｉｎｓｔ  Ｍａｎ−ｉｎ−ｔｈｅ−Ｍｉｄｄｌｅ  ａｎｄ  Ｍａｌｉｃｉｏｕｓ  Ｓｏｆｔｗａｒｅ  Ａｔｔａｃｋｓ」、Ｉｎ  Ｐ．  Ｌｉｐｐ、Ａ．−Ｒ．  Ｓａｄｅｇｈｉ  ａｎｄ  Ｋ．−Ｍ．  Ｋｏｃｈ  （編）：ＴＲＵＳＴ  ２００８、ＬＮＣＳ  ４９６８、ｐｐ．７５−９１、２００８年
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ユーザ信頼装置の安全なＰＩＮ管理のための方法を提供する。
【課題を解決するための手段】
【０００８】
１つの実施形態において、本発明は、永続的メモリ、非永続的メモリ、並びに、ユーザ、スマート・カードのようなメモリ・カード及び端末と結合する又は対話するためのインターフェースとを有するユーザ信頼装置の安全なＰＩＮ管理のための方法ための方法を提供し、本方法は、メモリ・カードに結合された装置を準備するステップと、装置において、外部ＰＩＮ及びカードＰＩＮを受信するステップであって、カードＰＩＮはメモリ・カードをロック解除する（unlock）ことができる、ステップと、計算手段を介して、受信したＰＩＮから、キーを生成し、永続的メモリ上に格納して、外部ＰＩＮ及びキーを引数として利用し、永続的メモリ上に格納された関数を介して、カードＰＩＮを計算できるようにするステップと、端末において、外部ＰＩＮのユーザ入力を受信し、外部ＰＩＮを装置に通信するステップであって、装置は端末に結合されている、ステップと、計算手段に、格納された関数を用いてカードＰＩＮを計算するように命令するステップと、計算されたカードＰＩＮを用いてメモリ・カードをロック解除するステップとを含む。
【０００９】
他の実施形態において、本方法は、以下の特徴、即ち、
−装置において受信されたカードＰＩＮは装置においてユーザにより直接入力され、好ましくは、外部ＰＩＮは装置においてユーザにより直接入力される、
−本方法は、装置における受信の後、受信したカードＰＩＮを非永続的メモリ内にのみ保持するステップと、キーが生成された後、非永続的メモリからカードＰＩＮ及び外部ＰＩＮを削除するステップであって、外部ＰＩＮは、好ましくは永続的メモリ上にのみ格納される、ステップをさらに含む、
−カードＰＩＮ及び外部ＰＩＮを受信するステップ及びキーを生成し、格納するステップは、装置に結合されたメモリ・カードに関してキーが格納されていないことが検出された場合に実行される、
−キーを生成し、格納するステップは、装置においてカードに関してキーが格納されていることを示すフラグ値を格納するステップをさらに含む、
−本方法は、他のカードＰＩＮを用いてＰＩＮにより保護された、別のカードに結合された装置を準備するステップと、装置において、他のカードＰＩＮを受信するステップと、他のメモリ・カードのための他のキーを生成し、永続的メモリ内に格納して、他のキー及び外部ＰＩＮを引数として利用して、関数を介して、他のカードＰＩＮを計算できるようにするステップとをさらに含む、
−本方法は、他のキーを生成して、他のキーと、以前のキー（Ｋ）を生成し格納するために用いられたのと同じ外部ＰＩＮとを引数として利用し、関数を介して、他のカードＰＩＮを計算できるようにするステップをさらに含む。
−本方法は、好ましくはロック解除されたカード上に格納されたデータを用いて、装置及び端末を介して、ユーザと少なくとも１つのサーバとの間に信頼できる接続を確立するステップをさらに含む、
−準備される装置は、端末がサーバに接続されたとき、端末を介して、装置と少なくとも１つのサーバとの間に信頼できる接続を確立するための、永続的メモリ上に格納されたコンピュータ化された方法を有し、この方法は、装置において、信頼できる接続を確立するためのコンピュータ化された方法をトリガするステップをさらに含む、
−本方法は、装置を、端末を介して、安全でない接続上でサーバと通信するように設定するステップをさらに含む、
−信頼できる接続を確立するためのコンピュータ化された方法は、カードを成功裏にロック解除したときにトリガされる、
−本方法は、安全でない接続上で設定される通信を開始すること、及び、好ましくはＳＳＬ／ＴＬＳ通信を開始することによって、サーバへの装置の認証を行うステップをさらに含む、
−装置をサーバと通信するように設定するステップは、装置から、端末に常駐しているプロキシ・クライアントを開始し、ＳＳＬ／ＴＬＳ通信を介してサーバに接続するステップをさらに含み、サーバへの装置の認証を行うステップは、サーバによるＳＳＬ／ＴＬＳ認証を含む、
のうちの１つ又は複数を含むことができる。
【００１０】
別の態様によると、本発明は、非永続的メモリ、永続的メモリに結合された計算手段と、ユーザ、スマート・カードのようなメモリ・カード及び端末と結合又は対話するためのインターフェースとを有し、かつ、カードＰＩＮによってＰＩＮ保護されたメモリ・カードが結合されている場合、そのメモリ・カードについてキーが格納されているかどうかを検出し、格納されていない場合には、外部ＰＩＮ及びカードＰＩＮの両方を受信し、カードＰＩＮは装置においてユーザにより直接入力され、計算手段に、受信した外部ＰＩＮ及びカードＰＩＮから、キーを生成し、永続的メモリ内に格納して、外部ＰＩＮ及びキーを引数として利用し、永続的メモリ上に格納された関数を介して、カードＰＩＮを計算できるように命令し、格納されている場合には、装置に結合された端末から外部ＰＩＮを受信し、計算手段に、格納された関数を介してカードＰＩＮを計算するように命令し、計算されたカードＰＩＮを用いてメモリ・カードをロック解除する、ように設計された信頼装置としてさらに具体化される。
【００１１】
好ましくは、信頼装置は、計算されたカードＰＩＮを用いてメモリ・カードをロック解除したとき、装置を、端末を介して、安全でない接続９２上でサーバと通信するように設定することによって、装置と少なくとも１つのサーバとの間に信頼できる接続を確立するための、永続的メモリ上に格納されたコンピュータ化された方法をさらに含む。
【００１２】
ここで本発明を具体化する方法及び装置が、非限定的な例として、添付図面を参照して説明される。
【図面の簡単な説明】
【００１３】
【図１】本発明による方法の高度な実施形態のフローチャートである。
【図２】一実施形態における、初期化段階中に実行される動作を示すフローチャートである。
【図３】一実施形態における、使用段階中に実行される動作を示すフローチャートである。
【図４】本発明の特定の実施形態による、サーバへの信頼できる接続を開始するための、端末及びサーバに結合された、信頼装置の概略図である。
【発明を実施するための形態】
【００１４】
以下の説明に対する序論として、最初に、本発明の一般的な態様は、ユーザ信頼装置の安全なＰＩＮ管理のためのコンピュータ実施の方法に向けられることが指摘される。カードＰＩＮを用いずに、実際のカードＰＩＮの代わりに用いられる外部端末（例えばＰＣ）において、ユーザにより外部ＰＩＮが入力される。初期化（initialization）段階中、装置は外部ＰＩＮ及びカードＰＩＮを用いてキーを生成し、このキーが、使用段階中、後でカードＰＩＮを取り出し、カードをロック解除することを可能にする。例えばカード上に格納されたユーザ信用状に基づいて、例えば、その後のサーバへの信頼できる接続を開始することができる。
【００１５】
より詳細には、図１−図３は、信頼装置の安全なＰＩＮ管理の方法の所与の実施形態を示すフローチャートを示す。図１は、初期化段階に関連する図２及び使用段階に関連する図３の両方を表す。以下において、図１−図３を全体的に参照して実施形態を説明する。
【００１６】
第一に、安全な装置は、それ自体が周知のような永続的メモリ及び非永続的メモリの両方に結合された計算手段（computing means）（例えば、処理ユニット）を有すると仮定する。この安全な装置は、例えばスマート・カードなどのメモリ・カード及び端末に結合するための適切なインターフェースをさらに有する。付加的なインターフェースが、ユーザと対話するのを可能にする。
【００１７】
第二に、ひとたびメモリ・カードに結合されると、装置は、初期化モード（ステップＳ２００）又は使用モード（ステップＳ３００）に設定することができる。典型的には、装置は、カードを識別する。次に、そのカードについて、キーがまだ格納されていない（決定Ｓ１０２：いいえ）ことが分かった場合、初期化モードが設定され、そうでなければ（決定Ｓ１０２：はい）、装置は、直ちに使用モードに設定される。
【００１８】
このように、外部ＰＩＮがまだ登録されていない場合、タスク・フローは、図２に続く（初期化時間）。ここでは、ユーザは２つのＰＩＮを入力し（ステップＳ２０１、Ｓ２０３）、その一方は、カードをロック解除することができるカードＰＩＮ（又は、ｃａｒｄ＿ＰＩＮ）であり、他方は、好ましくは外部端末において入力される外部ＰＩＮ（図面では、ｅｘｔ＿ＰＩＮで示される）である。
【００１９】
安全のために、カードＰＩＮは、装置においてユーザにより直接入力されることが好ましい。外部ＰＩＮも装置において入力することができるが、１つの変形においては、ＰＣから入力することもできる。しかしながら、ＰＣからの入力が少ないほど、安全性は向上する。
【００２０】
さらに、装置において受信された後、カードＰＩＮ及び外部ＰＩＮは、非永続的メモリ内にのみ保持されることが好ましい。この場合、ＰＩＮは、キーを生成する時間保持され、その後削除され、露出時間が短いことを保証する。１つの変形において、外部ＰＩＮは、後で使用するために永続的メモリ上に格納される。
【００２１】
最も一般的には、２つのＰＩＮは任意の順序で入力することができる。しかしながら、さらに好ましくは、カードの挿入後、ユーザは最初に、カードＰＩＮを入力するように指示される（ステップＳ２０１）。次に、入力が成功した（装置がカードをロック解除した）場合、ユーザは次に、外部ＰＩＮを入力するように要請される。この要請は、例えば、装置又はＰＣにおいてなされる。
【００２２】
第三に、受信したＰＩＮにより、計算手段を介してキーＫを生成すること（ステップＳ２０４）が可能になる。キーは、後で装置の永続的メモリ上に格納される。キーはさらに、永続的メモリ上に格納された関数ｆを介して、後でカードＰＩＮを計算できるように生成される。即ち、
ｃａｒｄ＿ＰＩＮ＝ｆ（Ｋ，ｅｘｔ＿ＰＩＮ）
ここでｆは、外部ＰＩＮ及びキーを引数としてとる。従って、カードＰＩＮを、ＰＣ  ＰＩＮの暗号化バージョンと見なすことができる。
【００２３】
関数ｆは、キー及びｅｘｔ＿ＰＩＮのＸＯＲ暗号化のように単純にすることができ、ここでＸＯＲは、例えば、第１ビット又は第２ビットのいずれかの値が１のときに１を戻す排他的論理和（exclusive OR）演算子である。結果として、ｘ  ＸＯＲ  ｙ＝ｚである場合、ｚ  ＸＯＲ  ｘはｙに等しくなる。従って、２つの引数の１つの初期値を知らずに逆演算を行うことはできず、関数がＸＯＲであるという推定は役に立たない。しかしながら、ｘ又はｙのいずれかが分かっている場合、関数は可逆性である。例えば、ｘ  ＸＯＲ  １が１を戻す場合、ｘ＝０であり、これが０を戻す場合、ｘ＝１である。同様に、キーＫは、最初に、ｅｘｔ＿ＰＩＮ及びｃａｒｄ＿ＰＩＮから生成することができる。次に、暗号化された文字列及びキーを有する場合、正しく復号することが可能であり、その結果、Ｋ及びｅｘｔ＿ＰＩＮから始めて、後でｃａｒｄ＿ＰＩＮを取り出すことができる。Ｋがない場合、ランダム・キーを生成してその各々を試さなければ、復号することができない。暗号キーが長いほど、その解読が一層困難になる。完全性のために、キーをＰＩＮの連続する部分（例えば、数字）に繰り返し適用し、出力を格納することによって、ＰＩＮのＸＯＲ暗号化を達成することができる。
【００２４】
１つの変形においては、キー及び外部ＰＩＮをさらに組み合わせて、例えばＣａｒｄ＿ＰＩＮを暗号化するのに用いられる別のキーを生成することができる。
【００２５】
ひとたび生成されると、次にキーは、後で用いるために永続的メモリ上に格納することができる。ここで、非永続的メモリ内に既に保持されているカードＰＩＮを削除することができる（ステップＳ２０５）。このように、カードＰＩＮは、短期間しかメモリ内にない。外部ＰＩＮを削除することもできる（場合によっては、前述した変形により、外部ＰＩＮが永続的メモリ上に格納された後に）。
【００２６】
現在のところ、装置は、これに結合されるカードに対してＰＩＮにより個別化されている（PIN-personalized）。例えば、そのカードに関して、今や外部ＰＩＮが装置に登録されていることを示すフラグ値を格納することができる。後で、外部ＰＩＮが既にカードに登録されていることが検出された場合（例えば、格納されたフラグ値に基づいて）、装置は、初期化ステップを飛ばすことができる。そして、装置は、図３を参照して後述される使用モードに入る。
【００２７】
同様に、装置が後で別のカード（同じくＰＩＮ保護されている）に結合された場合、同じく新しいカードＰＩＮ及び外部ＰＩＮを用いて新しいキーを生成する。従って、新しいキー及び外部ＰＩＮを引数としてとり、同じ関数ｆを用いて、後で新しいカードＰＩＮを計算することができる。
【００２８】
例えば、ユーザが常に同じ外部ＰＩＮを使用したいと望むことがあり、ユーザは、キーの生成を必要とするたびに、外部ＰＩＮを入力しなければならない。従って、外部ＰＩＮを非永続的メモリ上に格納する必要はない。しかしながら、前述した変形においては、参照外部ＰＩＮを装置上に格納する（例えば、難読化する）ことができ、その結果、新しい外部ＰＩＮを入力するように、ユーザに促す必要がなくなる。その場合、新しいカードＰＩＮの入力で十分である。しかしながら、外部ＰＩＮ及びキーの両方が装置のメモリから読み出され、かつ、攻撃者が関数を知っていると仮定して、それらがカードＰＩＮを生成するために使用される可能性が残るため、この変形は好ましいものではない。
【００２９】
このプロセスは、必要なだけの数のカードについて繰り返すことができる。
【００３０】
次に、使用段階中、ユーザは最初に、装置をカードに結合したときに、外部ＰＩＮを入力するように指示される（ステップＳ３０１）。外部ＰＩＮは、端末において入力されることが好ましく、そのことは、より適したヒューマン・インターフェースである可能性が高いために、通常はより実際的である。次に、外部ＰＩＮを装置に通信することができ、そこで、外部ＰＩＮは非永続的メモリ内にのみ保持されることが好ましい。
【００３１】
第２に、装置における計算手段は、関数ｆと、永続的メモリ内にカードに関連して格納されたキーとを用いて、カードＰＩＮを計算するように命令される（Ｓ３０２）。同様に、カードＰＩＮは、非永続的メモリ内にのみに保持されることが好ましい（ステップＳ３０３）。
【００３２】
最後に、（再）計算されたカードＰＩＮを用いて、カードをロック解除することができる（ステップＳ３０４）。
【００３３】
ここで、１つの変形において、ユーザが自分の外部ＰＩＮを忘れた場合、装置がＰＩＮにより個別化された状態であったとしても、カードＰＩＮをさらに装置に直接入力することができる。外部ＰＩＮの代わりに、装置においてカードＰＩＮを入力することにより、カードＰＩＮの再計算がオーバーライドされ、結果として、カードのロック解除をもたらすことができる。好ましくは、装置においてカードＰＩＮを入力した後、ユーザは、新しい外部ＰＩＮを入力するように指示され、新しいキーを生成することができる。
【００３４】
上述したような多数の変形を有利に組み合わせ得ることに留意されたい。例えば、特に有利な実施形態においては、以下のことが行われる。最初に、装置は、カードＰＩＮに関する情報を有していず、まだＰＩＮにより個別化されていない。次に、ユーザがスマート・カードを装置のリーダに挿入すると、ユーザは、装置上にカードＰＩＮを入力するように指示される。カードＰＩＮの入力が成功した場合、次にユーザは、新しいＰＩＮ、即ち外部ＰＩＮを入力するように指示される。この外部ＰＩＮは、ＰＣ又は装置上に入力される。次に装置は、外部ＰＩＮに関する多くの確認を行う（例えば、装置は、外部ＰＩＮがカードＰＩＮと同じではないことを確認する）。さらに、装置はキーを生成し、その結果、外部ＰＩＮ及びキーが与えられると、関数ｆを用いてカードＰＩＮを計算できるようになる。次に、キーが装置上に格納され、ここで装置がＰＩＮにより個別化された状態になったと言える。ＰＩＮが装置上に永続的に格納されることはない。次に、ユーザがスマート・カードを装置（今やＰＩＮにより個別化されている）に挿入すると、ユーザは、ＰＣ上に外部ＰＩＮを入力するように指示される。外部ＰＩＮが装置に渡され、装置は次に、外部ＰＩＮ及びキーを用いて、カードＰＩＮを計算することができる。外部ＰＩＮが正しく入力された場合、装置は正しいカードＰＩＮを計算し、従って、所望のとおり、ユーザのカードをロック解除する。ここでユーザが自分の外部ＰＩＮを忘れた場合、装置がＰＩＮにより個別化された状態であったとしても、カードＰＩＮをさらに装置に直接入力することができ、次に、新しい外部ＰＩＮを設定することができる。常に同じプロセスを用いて、外部ＰＩＮを変更することができる。ユーザが単一の装置と共に用いることができる複数のスマート・カードを有する場合、装置は、どのカードが挿入されたかを判断することができ、従って、正しいカードＰＩＮが計算されるように、どのキーを用いるべきかを知ることになる。しかしながら、前述のように、カード毎に１つの外部ＰＩＮを有するのとは対照的に、単一の外部ＰＩＮを用いることもできる。
【００３５】
ＰＣ上に外部ＰＩＮを入力することは、安全な装置上にカードＰＩＮを入力するより、ユーザにとって便利であることに留意されたい。しかしながら、ユーザのカードＰＩＮは露出されず、これを攻撃者が計算することはできないので（攻撃者は、少なくとも、カードＰＩＮを計算するのに用いられるキーを知らない）、これによりシステムの安全性が損なわれることはない。
【００３６】
攻撃者が何とか外部ＰＩＮを盗み、関数ｆを知っていた場合、キーに対する総当たり攻撃（可能なキーを推測する）により多数の妥当なプレーンテキストがもたらされるが、攻撃者はそれらを１つずつ試行しなければならない。しかしながら、スマート・カードは、ごく少数の再試行（例えば３回又は５回）しか許容せず、その後カードの機能をブロックするので、これは問題ではない。
【００３７】
また、関数ｆは、いずれの推測されたキーに対しても実行可能な結果をもたらすように選択することができ、従って、そのような攻撃は事実上不可能になる。
【００３８】
現在のところ、例えばカード上に格納されているようなユーザ信用状などのデータから、適切な使用を安全に行うことができる。特に、端末を介して、そのようなデータを用いて、ユーザ（又は厳密に言えば、装置）とサーバとの間に、信頼できる接続を確立することができる（ステップＳ３０５）。
【００３９】
より詳細には、装置には、装置とサーバとの間に信頼できる接続を確立する（Ｓ３０５を参照されたい）ための、永続的メモリ上に格納されるコンピュータ化された方法が提供されることが好ましい。
【００４０】
端末及びサーバに結合された信頼装置の概略図を示す図４を参照して、さらに多くのことが述べられる。
【００４１】
上述したように、安全な装置１０は、非永続的メモリ１５’、永続的メモリ１５’’に結合された計算手段１５を有する。安全な装置１０は、メモリ・カード１６及び端末３０と通信するための適切なインターフェース１７、２０をさらに有する。更に別のインターフェース（制御ボタン１８及びディスプレイ１２のような）により、ユーザ１との対話が可能になる。
【００４２】
装置は、現在結合されているカードにおいて既にキーが格納されているかどうかを検出するようにさらに設計される。格納されていない場合、装置は、ユーザに、外部ＰＩＮ及びカードＰＩＮの両方を入力するように指示する。（特に）カードＰＩＮは、ボタン／セレクタのような便利な入力手段１８を介して、装置において直接入力される。次に、論理回路が、計算手段に、キーを生成して永続的メモリ１５’’内に格納するように命令することができる。次に、使用段階中、装置は、端末３０から外部ＰＩＮを受け取り、カードＰＩＮを再計算し、これによりカードをロック解除することができる。
【００４３】
装置１０は、そこに格納されたコンピュータ化された方法を呼び出して、サーバ４０への信頼できる接続をトリガすることができる。例えば、装置１０は、カードのロック解除時に、端末３０を介して、安全でない接続９２上でサーバ４０との通信９１を確立することがある。例えば、カード上に格納されたようなユーザ信用状を用いて、サーバへのＳＳＬ／ＴＬＳ認証を開始することなどにより、安全でない接続９２上での通信９１を開始しながら、サーバへの装置の認証を行うことができる。この点で、装置をサーバと通信状態に設定することは、装置から、端末において常駐しているプロキシ・クライアントを開始し、端末を介して、装置をサーバに接続することを有利に含むことができる（プロキシもまた、装置上に常駐している可能性があることに留意されたい）。プロキシは、装置から受け取ったビットをインターネットに中継し、その逆も行う。装置から、サーバへのＳＳＬ／ＴＬＳ認証を開始することにより、サーバへの装置の認証を、例えば双方向で達成することができる。
【００４４】
このように、ＳＳＬ／ＴＬＳチャネルが、サーバと装置との間に設定される。ユーザ・サーバ間のセンシティブな（慎重に扱うべき、sensitive）通信は、装置を通して送られ、装置において処理され、プロキシによりサーバへの経路にフックされる。装置は、通信フローをインターセプトする。装置は、例えば、センシティブな操作において交換されるデータを継続的に走査することができる。これにより重要な情報を抽出して、後で装置において表示することができる。
【００４５】
従って、ユーザは、表示された情報を検証することができる。代わりに、センシティブでない操作は、装置を通して送られ、ＰＣに入ることが許可される。
【００４６】
一方では、メモリ・カード上に格納されているセンシティブな個人情報（例えば、ＳＳＬ／ＴＬＳにおいて用いられる秘密鍵）は、装置において保持される。装置内のスマート・カードにおいて、プライベート・データは、抽出及び複製から保護される。これにより、装置のエンドポイントにおいて、信頼でき、かつ、不正操作できない安全な通信が達成される。
【００４７】
図４をより特定的に参照すると、装置は、例えば、１つ又は複数のプロセッサを使用し、非永続的１５’メモリ及び永続的１５’’メモリの両方に結合された処理ユニット１５を含む、通常のＵＳＢ装置１０のように見える。永続的メモリは、特に、前述したキーを生成し、格納するための適切なコードを格納する。カードＰＩＮの再計算において用いられる関数も、永続的メモリ上に格納される。カードＰＩＮの再計算及びメモリ・カードのロック解除を可能にするコードが、さらに格納される。メモリ１５’’は、例えばＳＳＬ／ＴＬＳ認証のためのＴＬＳエンジン１４などの暗号化アルゴリズムを含む、セキュリティ・ソフトウェア・スタックをその上にさらに格納することができる。サーバへの信頼できる接続を確立するためのコンピュータ化された方法も、永続的メモリ上に格納される。このコンピュータ化された方法は、実行可能なＨＴＴＰパーサ（parser）１１（データを構文解析し、これによりデータを走査するための）、ＵＳＢ管理ソフトウェア（ＵＳＢ大容量記憶装置又はＭＳＤプロファイル２０を実装する）、及び場合によっては、前述した予めロードされたネットワーキング・プロキシを含むことができる。同じく前述したように、ＴＬＳ−クライアント認証を可能にするクライアント−サーバ証明書（例えばＸ．５０９）などの、ユーザ信用状をメモリ・カード上に格納することができる。スマート・カードは、センシティブな個人情報を保持し、暗号化手段を有することができる。変形において、カードは暗号化することができないが、カードを用いてセンシティブな操作に署名する。装置は、標準的なスマート・カード・リーダ１７を装備することが好ましい。最後に、装置は、センシティブな情報を表示するために、制御ボタン１８（例えば、ＯＫ、キャンセル等のセレクタ）と、ディスプレイ１２とを有する。
【００４８】
必要とされるコンピュータ・プログラム・コードは、高級（例えば、手続き型又はオブジェクト指向）プログラミング言語の形で実装することができ、又は必要に応じてアセンブリ言語又は機械語で実装することができる。いずれの場合も、言語は、コンパイラ型言語又はインタープリタ型言語とすることができる。好適なプロセッサは、例として、汎用マイクロプロセッサ及び専用マイクロプロセッサの両方を含む。プログラム可能プロセッサによる実行のために、装置、端末、又はサーバが実行する命令操作を、機械可読ストレージ装置内に有形に具体化されたコンピュータ・プログラム製品上に格納することができ、本発明の方法ステップを、本発明の機能を実行するために命令を実行する１つ又は複数のプログラム可能プロセッサによって実行できることに留意されたい。全ての場合において、本発明は、装置だけでなく、端末及び少なくとも１つのサーバにより拡張されたコンピュータ・システムも包含する。
【００４９】
より一般的には、上記の発明は、デジタル電子回路、又はコンピュータ・ハードウェア、ファームウェア、ソフトウェア、或いはその組み合わせで実装することができる。
【００５０】
一般に、プロセッサは、読み出し専用メモリ及び／又はランダム・アクセス・メモリから、命令及びデータを受け取る。コンピュータ・プログラム命令及びデータを有形に具体化するのに適したストレージ装置は、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、及びフラッシュメモリ装置のような半導体メモリ装置、内蔵ハード・ディスク及び取り外し可能ディスクのような磁気ディスク、光磁気ディスク、並びにＣＤ−ＲＯＭディスク等を含む、全ての形態の不揮発性メモリを含む。
【００５１】
本発明は、特定の実施形態に関連して説明されたが、当業者であれば、本発明の範囲から逸脱することなく、種々の変更を行うことができ、等価物に置き換えることができることを理解するであろう。さらに、本発明の範囲から逸脱することなく、特定の状況又は材料を本発明の教示に適合させるように、多くの修正をなすことができる。従って、本発明は、開示される特定の実施形態に限定されるものではなく、添付の特許請求の範囲内に入る全ての実施形態を含むことが意図されている。例えば、バッテリが設けられた場合、カードＰＩＮの入力時に、装置をＰＣに接続しないことが必要とされることもある。
【符号の説明】
【００５２】
１０：安全な装置
１１：ＨＴＴＰパーサ
１２：ディスプレイ
１４：ＴＬＳエンジン
１５：計算手段
１５：処理ユニット
１５’：非永続的メモリ
１５’’：永続的メモリ
１６：メモリ・カード
１７：スマート・カード・リーダ
１８：制御ボタン
２０：ＵＳＢ大容量記憶装置又はＭＳＤプロファイル
３０：端末
４０：サーバ
９１：通信
９２：安全でない通信
【図１】
0005651189.tif 000002
【図２】
0005651189.tif 000003
【図３】
0005651189.tif 000004
【図４】
0005651189.tif 000005