説明

情報処理装置及び方法、並びにプログラム

【課題】セキュアエリアを有しない情報処理装置であっても他の情報処理装置を低コストで安全に認証することができるようにする。
【解決手段】 パーソナルコンピュータ71は、チャンレジCkとレスポンスRkとの組み合わせがn通り格納されているリスト81を保持する。パーソナルコンピュータ71は、i番目のチャレンジCiを選択してICカード72に送信する。ICカード72は、チャレンジCiを復号化し、算出値Aiを得る。ICカード72は、算出値Aiを暗号化し、暗号化された算出値Aiを、レスポンスRとしてパーソナルコンピュータ71に送信する。パーソナルコンピュータ71は、i番目のレスポンスRiをリスト81から選択し、レスポンスRとレスポンスRiとを比較する。レスポンスRとレスポンスRiとが一致する場合、パーソナルコンピュータ71は、ICカード72を認証する。本発明は、ICタグに適用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及び方法、並びにプログラムに関し、特に、セキュアエリアを有しない情報処理装置であっても他の情報処理装置を低コストで安全に認証することが可能になる、情報処理装置及び方法、並びにプログラムに関する。
【背景技術】
【0002】
従来、リーダライタは、IC(Integrated Circuit)カードを用いた各種のトランザクション処理を実行することができる。一般的には、セキュリティを強化するために、リーダライタは、トランザクション処理の実行に先立って、ICカードを認証する(例えば、特許文献1参照)。なお、ICカードを認証するまでの一連の処理を、以下、「認証処理」と称する。
【0003】
[従来の認証システムによる認証処理]
図1は、従来の認証システムの認証処理の流れを示す模式図である。
【0004】
従来の認証システム1は、リーダライタ11とICカード12とから構成されている。
【0005】
従来の認証処理は、耐タンパ性のあるセキュアなICチップ等、セキュアチップ内のセキュアな環境(以下、「セキュアエリア」と称する)内で実行される。例えば図1の例では、リーダライタ11内にはセキュアエリア21が構築されており、ICカード12内にはセキュアエリア22が構築されている。そこで、リーダライタ11は、セキュアエリア21内で、データの暗号化或いは復号化に関連する処理を実行する。同様に、ICカード12は、セキュアエリア22内で、データの暗号化或いは復号化に関連する処理を実行する。データの暗号化或いは復号化に関連する処理としては、例えば、データの暗号化や復号化の処理、データの暗号化若しくは復号化に用いられる鍵やアルゴリズムを管理する処理、認証に用いる情報の元になる乱数を発生する処理等が存在する。
【0006】
認証処理は、リーダライタ11とICカード12との間で本来のデータの送受信が行われる前に実行される。例えばユーザがICカード12をリーダライタ11にかざして近接させると、非接触近接通信によりリーダライタ11は、次のようにしてICカード12を認証する。
【0007】
すなわち、リーダライタ11とICカード12とは、共有の鍵KA及び鍵KBを、自機のセキュアエリア21,22内にそれぞれ保持している。
【0008】
この場合、リーダライタ11は、セキュアエリア21内で、暗号化アルゴリズムE1に従って、鍵KAを用いて乱数A1を暗号化する。そして、リーダライタ11は、暗号化された乱数A1を、チャレンジCとしてICカード12に送信する。
【0009】
ICカード12は、チャレンジCを受信すると、セキュアエリア22内で、暗号化アルゴリズムE1に対応する復号化アルゴリズムD1に従って、鍵KAを用いてチャレンジCを復号化する。これにより、算出値A2が得られる。そこで、ICカード12は、セキュアエリア22内で、暗号化アルゴリズムE2に従って、鍵KBを用いて算出値A2を暗号化する。そして、ICカード12は、暗号化された算出値A2を、レスポンスRとしてリーダライタ11に送信する。
【0010】
リーダライタ11は、レスポンスRを受信すると、セキュアエリア21内で、暗号化アルゴリズムE2に対応する復号化アルゴリズムD2に従って、鍵KBを用いてレスポンスRを復号化する。これにより、算出値A3が得られる。そこで、リーダライタ11は、算出値A3と乱数A1とを比較して、これらが一致する場合にはICカード12を認証する。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開平10−20780号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、パーソナルコンピュータが、リーダライタ11として機能して、ICカード12を認証する場合、セキュリティの高い認証処理を低コストで実現することは困難であった。すなわち、パーソナルコンピュータが、従来の認証処理に必要な鍵や暗号化アルゴリズムを安全に保持するためには、セキュアチップを実装してセキュアエリアを構築する必要がある。しかしながら、セキュアチップは開発や運用にコストがかかることから、パーソナルコンピュータに、セキュアエリアを設けることは現実的でない。従って、このようなセキュアエリアを有しないパーソナルコンピュータが、従来の認証処理を実行しても、セキュリティを確保することは困難であった。
【0013】
[セキュアエリアを有さないパーソナルコンピュータによる認証処理]
図2は、セキュアエリアを有さないパーソナルコンピュータによる認証処理の流れを示す模式図である。
【0014】
図2の認証システム31は、パーソナルコンピュータ41とICカード12とから構成されている。
【0015】
ICカード12は、セキュアエリア22を有しているが、パーソナルコンピュータ41は、セキュアエリアを有していない。
【0016】
したがって、パーソナルコンピュータ41が図1と同様の認証処理を実行する場合、認証処理に必要な情報は、ICカード12側ではセキュアエリア22内に保持されるのに対して、パーソナルコンピュータ41側ではセキュアでない環境に保持される。すなわち、ICカード12においては、鍵KA、鍵KB、復号化アルゴリズムD1、および暗号化アルゴリズムE2といった認証処理に必要な情報は、セキュアエリア22内に保持される。しかしながら、パーソナルコンピュータ41においては、鍵KA、鍵KB、暗号化アルゴリズムE1、および復号化アルゴリズムD2といった認証処理に必要な情報は、セキュアでない環境に保持される。
【0017】
なお、以下の図2の説明の範囲内において、鍵KAや鍵KBをまとめて、「鍵」と称する。また、復号化アルゴリズムD1、暗号化アルゴリズムE2、暗号化アルゴリズムE1、および復号化アルゴリズムD2をまとめて、「アルゴリズム」と称する。
【0018】
このように、セキュアエリアを有していないパーソナルコンピュータ41が、認証処理に必要な情報、すなわち、鍵とアルゴリズムを保持することは、セキュリティの観点から好ましくない。つまり、第三者が、セキュアエリアを有していないパーソナルコンピュータ41から鍵やアルゴリズムを盗難する可能性は、セキュアエリアを有する場合と比較して、遥かに高くなる。
【0019】
以上まとめると、パーソナルコンピュータ41がICカード12を認証することは、ログイン処理等様々な利用可能性があるため、その実現が要求されている。しかしながら、パーソナルコンピュータ41は、コストの観点等からセキュアエリアを有していないため、ICカード12を安全に認証することはできなかった。
【0020】
なお、上述した内容は、パーソナルコンピュータ41がICカード72を認証する場合のみならず、セキュアエリアを有していない任意の情報処理装置が任意の他の情報処理装置を認証する場合に同様にあてはまる。
【0021】
本発明は、このような状況に鑑みてなされたものであり、セキュアエリアを有しない情報処理装置であっても他の情報処理装置を低コストで安全に認証することを可能にするものである。
【課題を解決するための手段】
【0022】
本発明の第1の側面の情報処理装置は、認証対象のICカードと共有する共通鍵を用いて、前記ICカードが有する復号化アルゴリズムに対応する第1の暗号化アルゴリズムに従って、予め乱数が暗号化され、その結果得られる値をチャレンジとし、前記共通鍵を用いて、前記ICカードが有する第2の暗号化アルゴリズムと同一の第3の暗号化アルゴリズムに従って、予め前記乱数が暗号化され、その結果得られる値をレスポンスとし、前記乱数を変更することで生成されたn通り(nは複数の整数値)の前記チャレンジと前記レスポンスとの組み合わせが格納されたリストを保持する保持手段と、前記保持手段により保持されたリストの中から、1組の組み合わせを選択する選択手段と、前記選択手段により選択された前記組み合せに含まれる前記チャレンジを送信する送信制御手段と、前記ICカードによって、前記送信制御手段から送信された前記チャレンジが受信され、前記共通鍵を用いて前記復号化アルゴリズムに従って復号化され、その結果得られる算出値が、前記共通鍵を用いて前記第2の暗号化アルゴリズムに従って暗号化され、その結果得られる値が前記レスポンスとして送信されてきた場合、前記レスポンスを受信する受信制御手段と、前記受信制御手段に受信された前記レスポンスと、前記選択手段により選択された前記組み合せに含まれる前記レスポンスとが一致する場合、前記ICカードを認証する認証手段とを備える。
【0023】
前記リストに格納されるn通りの前記組み合わせの各々には、1乃至nの何れかの番号が付されており、前記選択手段は、前記番号の順に、前記組み合わせを選択することができる。
【0024】
前記リストに格納されるn通りの前記組み合わせの各々には、1乃至nの何れかの番号が付されており、前記選択手段により所定の番号以上の前記組み合わせが選択された場合、n番目に近づいてきたことを示す警告をユーザに提示する提示手段をさらに備えることができる。
【0025】
前記選択手段によりn通りの組み合わせのうちの最後の組み合わせが選択されるまでの間においては、前記認証手段により前記ICカードが認証された場合に前記情報処理装置のログイン処理を実行し、前記選択手段によりn通りの組み合わせのうちの最後の組み合わせが選択された後においては、前記認証手段による前記ICカードの認証を用いたログイン処理の実行を禁止し、その代わりに、アカウント名とパスワードを用いた認証処理を実行することができる。
【0026】
所定のタイミングで、前記チャレンジと前記レスポンスとの前記組み合わせを生成する処理を実行する組み合わせ生成手段をさらに備えることができ、前記保持手段により保持される前記リストの少なくとも一部は、前記組み合わせ生成手段により前記組み合わせが生成される毎に更新することができる。
【0027】
前記組み合わせ生成手段は、前記リストに含まれるn通りの前記組み合わせが前記選択手段によって選択されたとき、新たなn通りの前記組み合わせを生成し、前記保持手段により保持される前記リストは、前記組み合わせ生成手段により生成された前記新たなn通りの組み合わせが格納された新たなリストに更新することができる。
【0028】
前記組み合わせ生成手段は、前記認証手段が前記ICカードを認証する毎に、1以上の前記組み合わせを生成し、前記保持手段により保持される前記リストに、前記組み合わせ生成手段により生成された前記1以上の前記組み合わせが追加されることによって、前記リストが更新することができる。
【0029】
前記選択手段、前記送信制御手段、前記受信制御手段、及び前記認証手段による処理をL回(Lは2以上の整数値)繰り返し、L回の全てについて前記認証手段により前記ICカードが認証された場合、前記ICカードの認証を成功とすることができる。
【0030】
前記組み合わせ生成手段により生成された前記組み合わせは、その生成日時を示す情報が付されて、前記リストに追加され、前記組み合わせ生成手段は、前記生成日時を示す情報に基づいて、前記組み合わせを選択することができる。
【0031】
前記選択手段は、前回に選択した前記組み合わせの生成日時とは離散した日時に、前記組み合わせ生成手段により生成された前記組み合わせを選択することができる。
【0032】
前記組み合わせ生成手段により生成された前記組み合わせは、生成された時点における前記認証手段による認証回数を示す情報が付されて、前記リストに追加され、前記組み合わせ生成手段は、前記認証回数を示す情報に基づいて、前記組み合わせを選択することができる。
【0033】
前記組み合わせ生成手段は、乱数を発生させて、前記乱数に基づいてチャレンジを生成し、前記チャレンジを前記ICカードに送信し、送信された前記チャレンジに基づいて前記ICカードによって生成された前記レスポンスが送信されてきた場合、前記レスポンスを受信し、生成した前記チャレンジと、受信した前記レスポンスとの組を、前記組み合わせとして生成することができる。
【0034】
前記組み合わせ生成手段による前記組み合わせの生成中又は生成直後に、前記ICカードの抜き打ち認証処理として、前記選択手段、前記送信制御手段、前記受信制御手段、及び前記認証手段による認証処理が実行されることができる。
【0035】
前記ICカードの抜き打ち認証処理において、前記認証手段は、前記受信制御手段に受信された前記レスポンスと、前記選択手段により選択された前記組み合せに含まれる前記レスポンスとが不一致の場合、前回の前記ICカードの認証後に前記組み合わせ生成手段により生成された前記組み合わせを破棄することができる。
【0036】
前記認証手段により前記組み合わせが破棄された場合、前記ICカードの抜き打ち認証処理の失敗を示す警告をユーザに提示する提示手段をさらに備えることができる。
【0037】
前記ICカードの抜き打ち認証処理において、前記選択手段は、前記保持手段に保持された前記リストに、前記抜き打ち認証処理の専用として格納された前記組み合わせを選択することができる。
【0038】
前記送信制御手段は、さらに、前記チャレンジを送信する前に、ポーリングを送信し、前記ポーリングを受信した前記ICカードから制御信号が送信されてきた場合、前記受信制御手段は、前記制御信号を受信し、前記送信制御手段は、前記受信制御手段により前記制御信号が受信された後、前記チャレンジを前記ICカードに送信することができる。
【0039】
前記制御信号には、前記ICカードを一意に特定するカード識別子が含まれており、前記送信制御手段は、前記受信制御手段により前記制御信号に基づいて前記カード識別子を認識し、認識した前記カード識別子が前記ICカードのものであることを特定した場合に、前記チャレンジを送信することができる。
【0040】
前記保持手段に保持された前記リストには、故意に誤ったレスポンスを含む前記組み合わせを格納することができる。
【0041】
前記受信制御手段は、所定のネットワークを介する他の情報処理装置から前記リストが送信されてきた場合、前記リストを受信し、前記保持手段は、前記受信制御手段により受信された前記リストを保持することができる。
【0042】
本発明の第1の側面の情報処理方法及びプログラムは、上述した本発明の第1の側面の情報処理装置に対応する方法及びプログラムである。
【0043】
本発明の第1の側面の情報処理装置及び方法並びにプログラムにおいては、認証対象のICカードと共有する共通鍵を用いて、前記ICカードが有する復号化アルゴリズムに対応する第1の暗号化アルゴリズムに従って、予め乱数が暗号化され、その結果得られる値がチャレンジとされ、前記共通鍵を用いて、前記ICカードが有する第2の暗号化アルゴリズムと同一の第3の暗号化アルゴリズムに従って、予め前記乱数が暗号化され、その結果得られる値がレスポンスとされ、前記乱数を変更することで生成されたn通り(nは複数の整数値)の前記チャレンジと前記レスポンスとの組み合わせが格納されたリストが保持される。保持されたリストの中から、1組の組み合わせが選択され、選択された前記組み合せに含まれる前記チャレンジが送信され、前記ICカードによって、送信された前記チャレンジが受信され、前記共通鍵を用いて前記復号化アルゴリズムに従って復号化され、その結果得られる算出値が、前記共通鍵を用いて前記第2の暗号化アルゴリズムに従って暗号化され、その結果得られる値が前記レスポンスとして送信されてきた場合、前記レスポンスが受信される。そして、受信された前記レスポンスと、選択された前記組み合せに含まれる前記レスポンスとが一致する場合、前記ICカードが認証される。
【0044】
本発明の第2の側面の情報処理装置は、乱数を発生する乱数発生手段と、前記乱数発生手段により発生された前記乱数を、ICカードと共有する共通鍵を用いて、前記ICカードが有する復号化アルゴリズムに対応する第1の暗号化アルゴリズムにより暗号化した結果得られる値をチャレンジとして、前記乱数を、前記共通鍵を用いて、前記ICカードが有する第2の暗号化アルゴリズムと同一の第3の暗号化アルゴリズムにより暗号化した結果得られる値をレスポンスとして、前記チャレンジと前記レスポンスとの組み合わせを生成する処理を、前記乱数を変更しながら繰り返す暗号化手段と、前記暗号化手段により前記組み合わせが生成される毎に、前記組み合わせをリストに追加する処理を繰り返すことによって、前記ICカードを認証する装置に提供する前記リストを生成する生成手段とを備え、前記乱数発生手段、前記暗号化手段、及び前記生成手段は、セキュアな環境内に配置されている。
【0045】
本発明の第2の側面の情報処理方法及びプログラムは、上述した本発明の第3の側面の情報処理装置に対応する方法及びプログラムである。
【0046】
本発明の第2の側面の情報処理装置及び方法並びにプログラムにおいては、乱数が発生され、発生された前記乱数を、ICカードと共有する共通鍵を用いて、前記ICカードが有する復号化アルゴリズムに対応する第1の暗号化アルゴリズムにより暗号化した結果得られる値がチャレンジとされ、前記乱数を、前記共通鍵を用いて、前記ICカードが有する第2の暗号化アルゴリズムと同一の第3の暗号化アルゴリズムにより暗号化した結果得られる値がレスポンスとされ、前記チャレンジと前記レスポンスとの組み合わせが生成される処理が、前記乱数が変更されながら繰り返され、前記組み合わせが生成される毎に、前記組み合わせをリストに追加する処理が繰り返されることによって、前記ICカードを認証する装置に提供する前記リストが生成される。そして、乱数が発生され、暗号化され、及び生成されるのは、セキュアな環境内である。
【発明の効果】
【0047】
以上のごとく、本発明によれば、セキュアエリアを有しない情報処理装置であっても他の情報処理装置を低コストで安全に認証することが可能になる。
【図面の簡単な説明】
【0048】
【図1】従来の認証システムの認証処理の流れを示す模式図である。
【図2】パーソナルコンピュータによる認証処理の流れを示す模式図である。
【図3】本発明の原理の概要について説明する図である。
【図4】リストの生成手法の一例について説明する図である。
【図5】リストの生成手法の他の例ついて説明する図である。
【図6】リスト内の組み合わせの総数に応じたセキュリティ強度とコストの関係の一例を示す図である。
【図7】セキュリティの復旧について説明する図である。
【図8】本発明が適用される認証システムの一実施の形態の構成を示すブロック図である。
【図9】リスト生成装置の機能的構成例を示すブロック図である。
【図10】パーソナルコンピュータのハードウエア構成例を示すブロック図である。
【図11】CPUの機能的構成例を示すブロック図である。
【図12】ICカードの機能的構成例を示すブロック図である。
【図13】リスト生成処理の一例を説明するフローチャートである。
【図14】パーソナルコンピュータの片側認証処理の一例を説明するフローチャートである。
【図15】ICカードの片側被認証処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【0049】
[本発明の実施の形態の概要]
はじめに、本発明の理解を容易なものとすべく、図3を参照して、本発明の概略について説明する。
【0050】
図3は、本発明の原理の概要について説明する図である。
【0051】
図3の認証システム61は、パーソナルコンピュータ71とICカード72とから構成されている。パーソナルコンピュータ71は、適正なICカード72を有するユーザにのみログインを許可する。このためパーソナルコンピュータ71はICカード72を認証する。
【0052】
なお、2台の情報処理装置が相互に認証する処理を、「相互認証処理」と称するのに対して、一方が他方のみを認証する認証処理を、以下、「片側認証処理」と称する。
【0053】
ICカード72は、セキュアエリア91を有しているが、パーソナルコンピュータ71は、セキュアエリアを有していない。
【0054】
パーソナルコンピュータ71は、チャンレジCkとレスポンスRkとの組み合わせ(以下、適宜「組み合わせ」と略記する)がn通り格納されているリスト81を保持する。ここで、kは、1乃至nのうちの何れかの整数値であり、nは、組み合わせの総数を示す1以上の任意の整数値である。
【0055】
リスト81の詳細については後述するが、チャレンジCkは、例えば、ICカード72が有する復号化アルゴリズムD11に対応する暗号化アルゴリズムE11に従って、ICカード72が有する鍵KCを用いて、所定の値Akが予め暗号化され、その結果得られた情報である。レスポンスRkは、例えば、ICカード72が有する暗号化アルゴリズムE12に従って、ICカード72が有する鍵KCを用いて、前述の値Akが予め暗号化され、その結果得られた情報である。
【0056】
パーソナルコンピュータ71は、認証処理を開始すると、i番目のチャレンジCi(iは1乃至nのうちの何れかの整数値)をリスト81から選択してICカード72に送信する。
【0057】
ICカード72は、パーソナルコンピュータ71からのチャレンジCiを受信すると、セキュアエリア91内で、復号化アルゴリズムD11に従って、鍵KCを用いて、チャレンジCiを復号化する。これにより、算出値Aiが得られる。そこで、ICカード72は、セキュアエリア91内で、暗号化アルゴリズムE12に従って、鍵KCを用いて算出値Aiを暗号化する。そして、ICカード72は、暗号化された算出値Aiを、レスポンスRとしてパーソナルコンピュータ71に送信する。
【0058】
パーソナルコンピュータ71は、レスポンスRを受信すると、i番目のレスポンスRiをリスト81から選択し、レスポンスRとレスポンスRiとを比較する。レスポンスRとレスポンスRiとが一致する場合、パーソナルコンピュータ71は、ICカード72を認証する。
【0059】
このようにして、パーソナルコンピュータ71がICカード72を認証する片側認証処理(以下、相互認証と区別する必要がない場合、適宜「認証処理」と略記する)が実行される。
【0060】
ここで、認証処理の開始時におけるチャレンジCiの送信タイミングは、ICカード72が近接したタイミングでもよいが、ICカード72の近接の有無とは独立した所定時間間隔毎でもよい。ただし、後者の場合には、パーソナルコンピュータ71の近傍にICカード72が存在していないときでも、チャレンジCiは定期的に送信されるため、第三者に盗難されるおそれがある。このような場合に、送信対象のチャレンジCiが無作為にリスト81から選択されると、過去の認証処理で一度使用されたチャレンジCq(qは1乃至nのうちの任意の整数値)が、送信対象のチャレンジCiとして再度選択される可能性がある。このようにして送信対象のチャレンジCiとして再度選択されたチャレンジCqが、過去の認証処理で使用された時点で第三者に盗難されていると、第三者によって悪用されるおそれがある。そこで、このようなおそれをなくすために、リスト81内の組み合わせの各々に対して使用順番を設定し、例えばチャレンジの符号Cの後の数字を使用順番として設定するとよい。この場合、認証回数iの認証処理では、使用順番iの組み合わせ、すなわち、チャレンジCiとレスポンスRiが使用されて、過去に使用された組み合わせの重複使用が防止されるため、過去に盗難されたチャレンジCqが悪用されるおそれはほぼ無くなる。
【0061】
ただし、リスト81内の組み合わせの総数nは有限であるため、認証処理が繰り返し実行されると、n回の認証処理でリスト81内の全ての組み合わせが使用されてしまうことになる。従って、リスト81内の全ての組み合わせが使用された場合の措置が必要になる。例えば、n個の組み合わせを新規作成する措置や、同一のn個の組み合わせを再利用する措置等を取ることが可能である。なお、これらの措置の詳細については後述する。
【0062】
ここで、上述した説明では、説明の簡略上、1つのICカード72のみについて言及した。しかしながら、実際には、複数のユーザにICカード72を提供する必要がある。このような複数のICカード72を量産するために、復号化アルゴリズムD11と暗号化アルゴリズムE12とは、全てのICカード72に共通に搭載される。したがって、パーソナルコンピュータ71が、複数のICカード72の中から特定の1枚を認証するためには、ICカード72毎に異なる鍵KCを保持させればよい。この場合、本発明が適用されていれば、異なる鍵KC毎に、異なるリスト81がそれぞれ生成されることになる。すなわち、リスト81とは、特定の鍵KCにとってのみ有効な専用のリストであるため、特定の鍵KCと当該特定の鍵KC専用のリスト81とは対として用いられる。
【0063】
このため、特定の鍵KCと当該特定の鍵KC専用のリスト81との対を予め生成することで、既存の相互認証システムで用いられている復号化アルゴリズムD11と暗号化アルゴリズムE12をそのまま、本発明にも適用できる。すなわち、従来の復号化アルゴリズムD11と暗号化アルゴリズムE12とを搭載したICカード内に、特定の鍵KCを保持させることで、本発明が適用されるICカード72が容易に実現可能になる。一方、ICカード72を認証する装置は、特定の鍵KC専用のリスト81を保持していれば足り、特定の鍵KCの共通鍵や、復号化アルゴリズムD11に対応する暗号化アルゴリズムや暗号化アルゴリズムE12に対応する復号化アルゴリズムを保持する必要がない。したがって、パーソナルコンピュータ71のようにセキュアエリアを有しない装置であっても、特定の鍵KC専用のリスト81を保持するだけで、ICカード72を認証する片側認証処理を実行することができる。換言すると、セキュアチップを搭載しない既存の装置に対して、セキュアチップを新たに搭載させずに、ICカードの片側認証を行う機能を容易に搭載することができる。この場合、セキュアチップを新たに搭載させる場合に比べて遥かにコストを抑制することができる。このように、既存の相互認証を行うシステムの機能やメリットを温存しつつ、同一のシステムを用いて、セキュアエリアを有しない装置による片側認証を行うことが可能になる。
【0064】
なお、この場合、特定の鍵KC専用のリスト81は、セキュアエリア外に保持されているので、第三者に盗難されるおそれがある。しかしながら、特定の鍵KC専用のリスト81が盗難されたとしても、特定の鍵KCと当該特定の鍵KC専用のリスト81との対を用いる認証システムのみが脅威にさらされるだけで済む。すなわち、特定の鍵KC専用のリスト81に格納されているチャレンジCkとレスポンスRkとの組み合わせは、暗号化アルゴリズムE11及び暗号化アルゴリズムE12並びに特定の鍵KCを用いて生成された暗号化情報である。このような暗号化情報だけでは、復号化アルゴリズムD11及び暗号化アルゴリズムE12並びに特定の鍵KCを求めることは実質上不可能である。さらに、他のユーザのパーソナルコンピュータ71とICカード72からなる他の認証システムは、まったく別の鍵KC及び当該別の鍵KC専用のリスト81を用いているため、当該他の認証システムが脅威にさらされることはない。
【0065】
このように、特定の鍵KC専用のリスト81がたとえ盗難されたとしても、その脅威は、特定の鍵KCとその特定の鍵KC専用のリスト81との対により構成される認証システムに限定される。したがって、他の認証システムや、復号化アルゴリズムD11や暗号化アルゴリズムE12等のアルゴリズムの安全は確保される。
【0066】
[リスト81の生成手法の例]
次に、リスト81の生成手法について説明する。
【0067】
図4は、リスト81の生成手法の一例について説明する図である。
【0068】
リスト生成装置101は、例えばパーソナルコンピュータ71の生成工場等に設置され、鍵とアルゴリズムを安全に保持できるセキュアな環境においてリスト81を生成する。
【0069】
なお、ここでは、リスト生成装置101がセキュアエリア121を有することで、「セキュアな環境」が構築されている。しかしながら、仮にリスト生成装置101がセキュアエリア121を有していなくても、リスト生成装置101を操作する環境全体で鍵とアルゴリズムを安全に保持できるようにセキュアな環境を構成してもよい。
【0070】
リスト生成装置101は、セキュアエリア121内で、乱数AXj(jは1乃至nのうちの任意の整数値)を発生させる。次に、リスト生成装置101は、ICカード72が有する復号化アルゴリズムD11に対応する暗号化アルゴリズムE11に従って、ICカード72が有する鍵KCと同一の鍵KCを用いて、乱数AXjを暗号化することによって、チャレンジCjを生成する。また、リスト生成装置101は、ICカード72が有する暗号化アルゴリズムE12と同一の暗号化アルゴリズムE12に従って、鍵KCを用いて、前述の乱数AXjを暗号化することによって、レスポンスRjを生成する。そして、リスト生成装置101は、チャレンジCjとレスポンスRjとの組み合わせをリスト81に格納する。
【0071】
リスト生成装置101は、番号jを1ずつインクリメントしていき、乱数AXjを変更しながら、このような一連の処理を繰り返し実行する。一連の処理の繰り返し回数がn回になると、リスト81には、n通りの組み合わせが格納されたリスト81が生成される。
【0072】
なお、リスト81内の組み合わせの総数nは、特に限定されず任意でよい。すなわち、リスト生成装置101に、任意の数nだけの乱数AX1乃至AXnを発生させるだけで、任意の数n通りの組み合わせを容易に生成することができる。なお、以下、乱数AX1乃至AXnを個々に区別する必要がない場合、これらをまとめて乱数AXと称する。
【0073】
また、リスト生成装置101は、r個(rは1以上の任意の整数値)の鍵KC−1乃至KC−r毎に、リスト81−1乃至81−rをそれぞれ独立して生成することができる。すなわち、リスト生成装置101の設置場所、例えば、パーソナルコンピュータ71の生成工場等では、特定の鍵KC−s(sは、1乃至rのうちの任意の整数値)と、当該特定の鍵KC−s専用のリスト81−sとの対が生成される。したがって、当該工場等で、特定の鍵KC−sを保持するICカード72−sを生成してもよい。換言すると、当該工場等で、リスト81−sとICカード72−sとの対を生成してもよい。ただし、この場合には、対となるリスト81−sとICカード72−sとを、それぞれ安全にユーザに届ける必要がある。
【0074】
[リストの生成手法の他の例]
図5は、リスト81の生成手法の他の例ついて説明する図である。
【0075】
図5に示される例では、リスト81は、ICカード72を用いてパーソナルコンピュータ71内で生成される。
【0076】
パーソナルコンピュータ71は、乱数AXj(j乃至nの整数値)を順次発生させる。次に、パーソナルコンピュータ71は、発生させた乱数Kjに基づくチャレンジCjをICカード72に送信する。
【0077】
ICカード72は、パーソナルコンピュータ71からのチャレンジCjを受信すると、図3を用いて上述した処理を実行することで、チャレンジCjに対応するレスポンスRをパーソナルコンピュータ71に送信してくる。
【0078】
そこで、パーソナルコンピュータ71は、当該レスポンスRをレスポンスRjとして受信して、送信したチャレンジCjと受信したレスポンスRjとで1つの組み合わせを生成し、当該組み合わせをリスト81に格納する。
【0079】
パーソナルコンピュータ71は、番号jを1ずつインクリメントしていき、乱数AXjを変更しながらこのような一連の処理を繰り返し実行する。一連の処理の繰り返し回数がn回になると、リスト81には、n通りの組み合わせが格納されたリスト81が生成される。
【0080】
なお、リスト81内の組み合わせの総数nは、特に限定されず任意でよい。すなわち、パーソナルコンピュータ71に、任意の数nだけの乱数AX1乃至AXnを発生させるだけで、任意の数n通りの組み合わせを容易に生成することができる。
【0081】
また、パーソナルコンピュータ71は、r枚のICカード72−1乃至72−rの各々を個別に認証する場合、リスト生成装置101と同様に、各々に対応するリスト81−1乃至81−rを個別に生成することができる。
【0082】
このように、図5のリスト81の生成手法を適用した場合には、パーソナルコンピュータ71を用いてリスト81が生成可能なことから、ユーザは、リスト81の変更や追加を容易に行うことができる。ただし、パーソナルコンピュータ71はセキュリティエリアを有していないため、ユーザは、自身の責任の下、リスト81の生成時にセキュアな環境を確立しておく必要がある。
【0083】
[チャレンジとレスポンスの組み合わせ数に応じたセキュリティ強度とコストの関係]
ここで、図5のリスト81の生成手法を適用した場合に、リスト81内に格納させる組み合わせの総数nの適切な数について考えてみる。この場合、セキュリティ強度の視点と、コストの視点とからそれぞれ考える必要がある。
【0084】
図6は、リスト81内の組み合わせの総数nに応じたセキュリティ強度とコストの関係の一例を示す図である。
【0085】
なお、以下、チャレンジC1乃至Cnを個々に区別する必要がない場合、これらをまとめて、チャレンジCと称する。この場合、レスポンスR1乃至Rnもまとめて、レスポンスRと称する。
【0086】
パーソナルコンピュータ71が8バイトのチャレンジCを生成した場合、組み合わせの総数nは、最大で2の64乗となる。ただし、リスト81の組み合わせの総数nは、2の64乗とする必要は特になく、2の64乗以下の任意の数とすることができる。このため、図6の表には、一例として、リスト81の組み合わせの総数nが、2の16乗乃至2の27乗の各々の場合のセキュリティ強度とコストの関係が示されている。なお、図6の表の1行(横方向の項目の集合体)は、総数nが2の16乗乃至2の27乗のうちのいずれかである場合に対応している。
【0087】
図6の表の所定の行の「同じチャレンジが登場するまでの最大試行回数」の項目には、当該行に対応する総数nが採用された場合において、同一のチャレンジCが登場するまでの認証処理の最大試行回数(回)が記述されている。すなわち、リスト81に格納されるn通りの組み合わせが先頭から順に使用され、n通りの組み合わせの全てが使用されると、同一のn通りの組み合わせが再利用される。この場合に、一度使用されたチャレンジCが再度使用されるまでの認証回数が当該項目に記述されている。すなわち、当該認証回数は、リスト81の組み合わせの総数nと等しいため、総数nと同一値が当該項目に記述されている。
【0088】
図6の表の所定の行の「リストが必要とする記憶領域サイズ」には、当該行に対応する総数nが採用された場合において、1つの組み合わせに16バイト要するとした際に、リスト81を記憶するために必要な記憶領域のサイズ(Mバイト)が記述されている。
【0089】
図6の表の所定の行の「記憶装置のコスト」には、当該行に対応する総数nが採用された場合において、1Tバイト当たり1万円として換算した場合のリスト81を記憶する記憶領域の確保に必要なコスト(円)が記述されている。
【0090】
図6の表の所定の行の「リスト生成時間」には、当該行に対応する総数nが採用された場合において、リスト81の生成に要する時間(分)が記述されている。なお、リスト81の生成に要する時間は、次のような仕様のパーソナルコンピュータ71にスクリプト言語で実行させた場合の実測時間に基づいて、C言語で実行させた時間を推測したものである。すなわち、パーソナルコンピュータ71の仕様は、Microsoft Windows(登録商標) XP Professional Version 2002 Service Pack 3,Pentium(登録商標)D CPU 2.80GHz,2.00 GB RAMである。
【0091】
図6の表の所定の行の「計算費用」には、当該行に対応する総数nが採用された場合において、1時間当たり1000円として換算した場合の、パーソナルコンピュータ71が当該行に対応する総数nの組み合わせを算出するのに必要なコスト(円)が記述されている。
【0092】
図6の表の所定の行の「同じチャレンジが登場するまでの時間」には、当該行に対応する総数nが採用された場合において、チャレンジCが1秒間に1回使用されたときに、一度使用されたチャレンジCが次に使用されるまでの時間(日)が記述されている。
【0093】
図6の表の所定の行の「レスポンスを収集する時間」には、当該行に対応する総数nが採用された場合において、パーソナルコンピュータ71がICカード72にチャレンジCを送信してからレスポンスRを収集する(図5参照)のに要する時間が記述されている。ただし、ここでは、当該項目に記述されている時間は、通信速度が424kbpsである場合に10万回チャレンジCを送信してレスポンスRを収集するのに要する時間が1時間であるとの実績に基づいて換算されたものである。
【0094】
このような図6の表からわかるように、認証システム61の設計者又はパーソナルコンピュータ71のユーザは、セキュリティ強度とコストの関係とのバランスを考えて、リスト81に格納させる組み合わせの総数nを決定するとよい。
【0095】
例えば、図6の5行目に示されるように、リスト81の組み合わせの総数nとして2の20乗を採用する場合、同じチャレンジCが登場するまでの最大試行回数は「1048576回」であり、リスト81を記録するために必要な記憶領域サイズは「16Mバイト」であることがわかる。また、当該組み合わせ数の場合、記憶装置のコストは「0.153円」であり、リスト生成時間は「0.042分」であり、計算費用は「0.7円」であることがわかる。さらにまた、当該組み合わせ数の場合、同じチャレンジが登場するまでの時間は「12.14日」であり、レスポンスを収集するまでの時間は「10.5時間」であることがわかる。
【0096】
従って、組み合わせの総数nが2の20乗通りのリスト81を導入する場合について、コスト面から考えると、「16Mバイト」の記憶領域サイズと、「0.042分」のリスト生成時間を確保するためには、それぞれ「0.153円」、「0.7円」が必要であることが分かる。図6の表のその他の行と見比べると明らかなように、組み合わせの総数nを減らす程、その分だけコストを抑制することができる。
【0097】
一方、組み合わせの総数nが2の20乗通りのリスト81を導入する場合について、セキュリティ強度の面から考える。例えば、第三者が、チャレンジCiとレスポンスRiとの組み合せを盗難したとする。第三者は、盗難したチャレンジCiと同一のチャレンジCがパーソナルコンピュータ71からが送信されたときに、盗難したレスポンスRiをパーソナルコンピュータ71に送信すれば、パーソナルコンピュータ71に誤認証させることに成功する。しかしながら、第三者は、このためには、最大で「1048576回」の認証が行われる間、すなわち「12.14日」の間、チャレンジCiがパーソナルコンピュータ71から送信されるのを常時監視していなければならない。このような第三者が常時監視しなければならない時間(すなわち、認証回数)が増加する程、その分だけセキュリティ強度が高まる。図6の表のその他の行と見比べると明らかなように、組み合わせの総数nを増やす程、第三者が常時監視しなければならない時間(すなわち、認証回数)が増加し、その分だけセキュリティ強度を高めることができる。
【0098】
以上をまとめると、リスト81内に格納させる組み合わせの総数nが大きくなると、セキュリティ強度が高くなるというメリットがある半面、コストが高くなるというデメリットがある。一方、リスト81内に格納させる組み合わせの総数nが小さくなると、コストが低下するというメリットがある半面、セキュリティ強度が低くなるというデメリットがある。したがって、このように相反する2つの要素を考慮して、すなわち、セキュリティ強度とコストとのバランスを考慮して、リスト81内に格納させる組み合わせの総数nを決定すると好適である。
【0099】
なお、組み合わせの総数nとしてどのような数を採用したとしても、リスト81を生成するための鍵とアルゴリズムをセキュアな環境に保持しておきさえすれば、認証システム61の安全性を確保することができる。極端に言えば、どんなにセキュリティ強度を低くして、その結果リスト81が第三者に盗難されたとしても、リスト81から、認証システム61の鍵とアルゴリズムが第三者に特定されるおそれは殆どない。
【0100】
もっとも、第三者にリスト81が盗難された状態を放置しておくことは望ましくない。そこで、以下、リスト81が、第三者に盗難された場合のセキュリティの復旧について説明する。
【0101】
[リスト81が第三者に取得された場合のセキュリティの復旧]
図7は、リスト81が第三者に盗難された場合のセキュリティの復旧について説明する図である。
【0102】
上述したように、8バイトのチャレンジCが生成される際の組み合わせの総数nは、最大で2の64乗となる。以下、n=2の64乗通りの組み合わせの集合体を、組み合わせデータ群141と称する。リスト81は、組み合わせデータ群141の任意の一部を格納することで生成することができる。
【0103】
図7に示されるように、パーソナルコンピュータ71が、リスト81として、組み合わせデータ群141の一部から構成されるリスト81Aを保持し、認証処理時に使用しているとする。このリスト81Aが第三者に盗難された場合、パーソナルコンピュータ71は、リスト81を、組み合わせデータ群141の別の一部から構成されるリスト81Bに更新する。
【0104】
これにより、第三者が、入手したリスト81Aをもとに偽造ICカード142を作成したとしても、パーソナルコンピュータ71が偽造ICカード142を誤って認証してしまうおそれは無くなる。
【0105】
すなわち、偽造ICカード142は、リスト81Aどおりに、チャレンジCiに対応するレスポンスRiをパーソナルコンピュータ71に送信することができるかもしれない。しかしながら、第三者が、偽造ICカード142をパーソナルコンピュータ71に認証させようとしても、パーソナルコンピュータ71は、リスト81Aとは異なるリスト81Bを有しているので、偽造ICカード142を誤って認証することはない。
【0106】
具体的には、偽造ICカード142は、パーソナルコンピュータ71に近接すると、パーソナルコンピュータ71から送信された、リスト81B内のチャレンジCjを受信することはできる。しかしながら、偽造ICカード142は、リスト81B内のチャレンジCjに対応するレスポンスRjと同一のレスポンスRを送信することができない。
【0107】
すなわち、偽造ICカード142は、リスト81A内のチャレンジCとレスポンスRとの対応関係を認識できる機能を有しているに過ぎず、リスト81B内のチャレンジCjを復号化して再暗号化することでリスト81B内の対応するレスポンスRjを生成する機能を有していない。このため、偽造ICカード142は、リスト81Bに含まれる所定のチャレンジCを受信したとしても、当該チャレンジCを復号化して再暗号化して対応するレスポンスRを生成することはできない。このため、パーソナルコンピュータ71は、偽造ICカード142を誤って認証することはない。
【0108】
このように、リスト81が第三者に盗難されてしまった場合でも、パーソナルコンピュータ71がリスト81を更新するだけで、認証システム61を構成するICカード72を変更しなくても、容易にセキュリティを復旧することが可能になる。
【0109】
以上、図1乃至図7を参照して、本発明の原理の概略について説明した。次に、このような本発明の実施の形態について説明する。
【0110】
[本発明が適用される認証システム151の構成例]
図8は、本発明が適用される認証システムの一実施の形態の構成を示すブロック図である。
【0111】
図8の認証システム151は、リスト生成装置101、パーソナルコンピュータ71−1乃至71−N(Nは1以上の任意の整数値)、およびICカード72−1乃至72−Nから構成される。
【0112】
本実施形態では、パーソナルコンピュータ71−Q(Qは1乃至Nのうちの何れかの整数値)とICカード72−Qとは対になって用いられるとする。例えば、パーソナルコンピュータ71−Qを操作するユーザが、ICカード72−Qを保持し、パーソナルコンピュータ71を起動させる場合等のログイン操作として、ICカード72−Qをパーソナルコンピュータ71−Qにかざすものとする。この場合、パーソナルコンピュータ71−Qは、ICカード72−Qを認証すると、起動処理等、各種処理を開始するものとする。
【0113】
リスト生成装置101は、パーソナルコンピュータ71−Qの生成工場等に設置され、鍵やアルゴリズムを安全に保持できるセキュアな環境において、本実施形態では、対になるリスト81−QとICカード72−Qとを生成する。リスト生成装置101によって生成されたリスト81−Qは、安全にパーソナルコンピュータ71−Qに届けられる(例えば記録される)。また、ICカード72−Qは、生成されたリスト81−Qとともに安全に、パーソナルコンピュータ71−Qのユーザに届けられる。
【0114】
リスト81−Qを生成するために用いられた鍵やアルゴリズムは、ICカード72−Qのセキュアエリア内に保持されており、他のICカード72−P(Pは1乃至Nのうちの何れかの整数値であって、Qとは異なる整数値)には保持されていない。したがって、リスト81−Qを保持するパーソナルコンピュータ71−Qに対して、ICカード72−Qを用いるとログインに成功するが、ICカード72−Pを用いるとログインに失敗する。
【0115】
なお、以下、パーソナルコンピュータ71−1乃至71−Nを個々に区別する必要がない場合、これらをまとめてパーソナルコンピュータ71と称する。同様に、ICカード72−1乃至72−Nを個々に区別する必要がない場合、これらをまとめてICカード72と称する。
【0116】
以下、図8の認証システム151の各構成要素、すなわち、リスト生成装置101、パーソナルコンピュータ71、及びICカード72の各構成について、その順番に順次説明していく。
【0117】
[リスト生成装置101の機能的構成例を示すブロック図]
最初に、リスト生成装置101の構成について説明する。
【0118】
図9は、リスト生成装置101の機能的構成例を示すブロック図である。
【0119】
図9のリスト生成装置101は、制御部161、乱数発生部162、暗号化部163、生成部164、および記憶部165から構成される。
【0120】
制御部161は、リスト生成装置101の全体の制御を行う。例えば、制御部161は、組み合わせの番号iを管理する。
【0121】
乱数発生部162は、チャレンジCとレスポンスRとの組み合わせを生成するための原情報として、乱数AXを発生させる。ここで、乱数AXとしては、疑似乱数又は、真正乱数を採用することができる。ただし、疑似乱数は、数字的には離散した数字が得られるが、計算式が明らかになると直前の乱数値から次に発生する乱数が算出可能である。したがって、第三者に盗難された場合に安全性を確保することが困難になる。このため、本実施形態では、真正乱数が乱数AXとして採用されている。この場合、乱数発生部162は、リスト生成装置101内の各種情報、例えば、時間情報、バッテリの残量情報、加速度センサ情報、温度センサ情報、メモリ残量、CPU(Central Processing Unit)負荷情報などの複数の情報をパラメータとして、真正乱数である乱数AXを算出する。これにより、外部から推測不可能な乱数AXが生成されるため、たとえ第三者に盗難されても、安全性を確保することができる。
【0122】
暗号化部163は、暗号化アルゴリズムE11に従って、鍵KCを用いて、乱数発生部162によって発生された乱数AXを暗号化することで、チャレンジCを生成する。また、暗号化部163は、暗号化アルゴリズムE12に従って、鍵KCを用いて、同一の乱数AXを暗号化することによって、レスポンスRを生成する。暗号化部163は、このような一連の処理を乱数AXを変更してn回繰り返すことによって、チャレンジCとレスポンスRとの組み合わせをn通り生成する。
【0123】
生成部164は、リスト81を生成する。すなわち、生成部164は、暗号化部163によってチャレンジCとレスポンスRとの組み合わせが生成される毎に、当該組み合わせをリスト81に追加する処理を繰り返す。このような処理がn回繰り返されると、チャレンジCとレスポンスRとの組み合わせがn個格納されたリスト81が生成される。
【0124】
記憶部165は、リスト81の生成に必要な鍵KC及び暗号化アルゴリズムE11,E12を記憶する。
【0125】
以上、リスト生成装置101の構成について説明した。次に、パーソナルコンピュータ71の構成について説明する。
[パーソナルコンピュータ71のハードウエア構成例を示すブロック図]
図10は、パーソナルコンピュータ71のハードウエア構成例を示すブロック図である。
【0126】
図10において、CPU181は、ROM(Read Only Memory)182に記録されているプログラムに従って各種の処理を実行する。または、保持手段としての記憶部188からRAM(Random Access Memory)183にロードされたプログラムに従って各種の処理を実行する。
【0127】
RAM183にはまた、CPU181が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0128】
CPU181、ROM182、およびRAM183は、バス184を介して相互に接続されている。このバス184にはまた、入出力インタフェース185も接続されている。
【0129】
入出力インタフェース185には、キーボード、マウスなどよりなる入力部186、ディスプレイなどよりなる提示手段としての出力部187が接続されている。また、ハードディスクなどより構成される記憶部188、および、モデム、ターミナルアダプタなどより構成される通信部189が接続されている。通信部189は、インターネットを含むネットワークを介して他の装置(図示せず)との間で行う通信を制御する。通信部189はまた、近接したICカード72との間で行う、電磁波を利用した非接触通信を制御する。
【0130】
入出力インタフェース185にはまた、必要に応じてドライブ190が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどよりなるリムーバブルメディア191が適宜装着される。そして、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部188にインストールされる。
【0131】
[CPU181の機能的構成例を示すブロック図]
図11は、図10のパーソナルコンピュータ71のCPU181が有する機能のうち、ICカード72を認証する機能についての機能的構成例を示すブロック図である。
【0132】
図11のCPU181は、認証処理を実行するために、制御部201、選択部202、送信制御部203、受信制御部204、認識部205、記憶制御部206、及び表示制御部207を有している。なお、リスト生成部208は、上述の図5のリストの生成手法を採用する場合、すなわち、パーソナルコンピュータ71内でリスト81の生成が必要な場合に、CPU181に設けられる。
【0133】
本実施形態においては、CPU181は、所定のプログラムを実行することにより、制御部201、選択部202、送信制御部203、受信制御部204、認識部205、記憶制御部206、表示制御部207、およびリスト生成部208の各機能を発揮させることができる。
【0134】
制御部201は、選択部202乃至リスト生成部208を適宜制御して、認証処理の全体を制御する。例えば、制御部201は、認証回数iを管理する。
【0135】
選択部202は、認証回数iの認証処理が実行される場合、記憶部188に記憶されているリスト81を参照して、チャレンジCiとレスポンスRiとの組み合わせを選択する。
【0136】
送信制御部203は、通信部189を制御して、例えば、選択部202により選択されたチャレンジCiを所定時間間隔毎に送信する。なお、チャレンジCiの送信タイミングは、特にこれに限定されない。チャレンジCiの送信タイミングのその他の例については後述する。
【0137】
受信制御部204は、通信部189を制御して、ICカード72から送信されてきたレスポンスRを受信する。
【0138】
認証部205は、受信制御部204に受信されたレスポンスRと、選択部202によって選択されたレスポンスRiとを比較し、一致する場合には認証成功と判定し、一致しない場合には認証失敗と判定する。すなわち、レスポンスRとレスポンスRiとが一致する場合には、認証部205は、ICカード72を認証する。
【0139】
記憶制御部206は、リスト81の記憶部188への記憶を制御する。すなわち、出荷前にリスト生成装置101によりリスト81が生成された時、又は、パーソナルコンピュータ71内のリスト生成部208によりリスト81が生成又は更新された時、記憶制御部206は動作する。また、記憶制御部206は、認証回数iの記憶部188への記憶を制御する。
【0140】
表示制御部207は、出力部187の表示を制御する。例えば、認証部205によって認証失敗であると判定された場合、表示制御部207は、所定の警告を示す画像を出力部187の表示部に表示させる。
【0141】
組み合わせ生成手段としてのリスト生成部208は、パーソナルコンピュータ71内でリスト81を生成すべく、乱数発生部221、および生成部222を有している。
【0142】
乱数発生部221は、チャレンジCとレスポンスRとの組み合わせを生成するための原情報として、乱数AXiを発生させる。上述したように、本実施形態では、真正乱数が乱数AXとして採用されているとし、乱数発生部221は、外部から推測不可能な乱数AXを生成するようにしている。
【0143】
生成部222は、リスト81を生成する。すなわち、乱数発生部221により乱数AXiが発生する毎に、生成部222は、乱数AXiを用いて、チャレンジCiとレスポンスRiとの組み合わせを生成し、当該組み合わせをリスト81に追加する。このような処理がn回繰り返されると、n通りのチャレンジCとレスポンスRとの組み合わせが格納されたリスト81が生成される。
【0144】
以上、パーソナルコンピュータ71の構成について説明した。次に、ICカード72の構成について説明する。
【0145】
[ICカード72の機能的構成例を示すブロック図]
図12は、ICカード72の機能的構成例を示すブロック図である。
【0146】
図12のICカード72は、制御部241、記憶部242、受信部243、復号化部244、暗号化部245、および送信部246から構成される。これらの機能ブロックは、図示せぬセキュアエリア内に設けられている。
【0147】
制御部241は、ICカード72の全体の制御を行う。
【0148】
保持手段としての記憶部242は、認証処理に必要な情報、すなわち、鍵KC、復号化アルゴリズムD11、及び暗号化アルゴリズムE12を記憶する。
【0149】
受信部243は、パーソナルコンピュータ71から送信されてきたチャレンジCiを受信する。
【0150】
復号化部244は、記憶部242に記憶された復号化アルゴリズムD11に従って、記憶部242に記憶された鍵KCを用いて、受信部243に受信されたチャレンジCiを復号化することによって、算出値Aiを求める。
【0151】
暗号化部245は、記憶部242に記憶された暗号化アルゴリズムE12に従って、記憶部242に記憶された鍵KCを用いて、復号化部244によって求められた算出値Aiを暗号化する。
【0152】
送信部246は、暗号化部245によって暗号化された算出値Aiを、レスポンスRとしてパーソナルコンピュータ71に送信する。なお、ICカード72としては、電子マネー、プリペイドカード、社員証、IDカードなどとして実際に利用されているFeliCa(ソニー株式会社の登録商標)、Mifare(登録商標)等を適用することができる。このカードには既に相互認証のための暗号化アルゴリズムと復号化アルゴリズムが用意されており、専用の鍵KCのみ新たに割り当てを受ければよい。
【0153】
以上、図8の認証システム151の各構成要素、すなわち、リスト生成装置101、パーソナルコンピュータ71、及びICカード72の各構成について、その順番に順次説明した。
【0154】
そこで、以下、図8の認証システム151の各構成要素、すなわち、リスト生成装置101、パーソナルコンピュータ71、及びICカード72の各動作について、その順番に順次説明する。
【0155】
すなわち、最初に、図13を参照して、リスト生成装置101が実行するリスト生成処理について説明する。次に、図14と図15を参照して、リスト生成処理により生成されたリスト81を用いた、パーソナルコンピュータ71とICカード72が実行する認証処理について説明する。なお、本実施形態では、パーソナルコンピュータ71がICカード72を認証する片側認証処理であるので、ICカード72が実行する片側認証処理を、片側被認証処理と称する。
【0156】
[リスト生成処理]
図13は、リスト生成装置101によるリスト生成処理の一例を説明するフローチャートである。
【0157】
ステップS1において、制御部161は、リスト81に格納する組み合わせの番号i=1に設定する。
【0158】
ステップS2において、乱数発生部162は、番号iの乱数AXiを発生させる。
【0159】
ステップS3において、暗号化部163は、暗号化アルゴリズムE11に従って、鍵KCを用いて、乱数AXiを暗号化してチャレンジCiを生成する。
【0160】
ステップS4において、暗号化部163は、暗号化アルゴリズムE12に従って、鍵KCを用いて、乱数AXiを暗号化してレスポンスRiを生成する。
【0161】
ステップS5において、生成部164は、チャレンジCiとレスポンスRiの組み合わせをリスト81に追加する。
【0162】
ステップS6において、制御部161は、処理の終了が指示されたかを判定する。
【0163】
処理の終了がまだ指示されていない場合、ステップS6においてNOであると判定されて、処理はステップS7に進む。
【0164】
ステップS7において、制御部161は、番号iを1だけインクリメントする(i=i+1)。番号iがインクリメントされると、処理はステップS2に戻され、それ以降の処理が繰り返される。すなわち、処理の終了が指示されない限り、乱数AXiが変更されて、ステップS2乃至S7のループ処理が繰り返されて、その都度、チャレンジCとレスポンスRとの組み合わせがリスト81に1つずつ追加されていく。
【0165】
その後、ステップS2乃至S7の処理がn回繰り返されると、処理の終了が指示されたとして、ステップS6においてYESであると判定されて、リスト生成処理は終了する。これにより、n通りの組み合わせが格納されたリスト81が生成される。
【0166】
このように、リスト生成処理では、処理の終了が指示されるまでチャレンジCとレスポンスRの組み合わせがリスト81に順次追加されていくので、リスト81に格納されるチャレンジCとレスポンスRの組み合わせの総数nは、任意の数とすることができる。すなわち、ユーザは、図6を参照して上述したように、認証システム61が必要とするセキュリティ強度とコストとのバランスに合わせて、リスト81を生成することができる。
【0167】
リスト生成処理によって生成されたリスト81は、安全にパーソナルコンピュータ71に届けられる。また、本実施形態では、リスト81が生成される工場等では、リスト81と共に、ICカード72が生成される。このICカード72は、上述したように、セキュアエリア91内に、リスト81の生成に用いられたものと同一の鍵KC、リスト81の生成に用いられた暗号化アルゴリズムE11に対応する復号化アルゴリズムD11、およびリスト81の生成に用いられたものと同一の暗号化アルゴリズムE12を有している。このように対として生成されたリスト81とICカード72とは、それぞれ安全にユーザに届けられる。リスト81は、例えば所定のCD、半導体メモリ等のリムーバブルメディアに記録して提供することもできる。
【0168】
以上、リスト生成処理について説明した。次に、リスト生成処理により生成されたリスト81を用いた認証処理として、パーソナルコンピュータ71がICカード72を認証する片側認証処理について説明する。
【0169】
[パーソナルコンピュータ71の片側認証処理]
図14は、パーソナルコンピュータ71の片側認証処理の一例を説明するフローチャートである。
【0170】
ここでは、ICカード72に対する認証回数iは記憶部188に記憶されて管理されているものとする。また、リスト81もリムーバブルメディアから記憶部188に転送、記憶されているものとする。
【0171】
ステップS21において、制御部201は、認証回数iが記憶部188に記憶されているかを判定する。
【0172】
認証回数iが記憶されていない場合、すなわち、初めての認証である場合、ステップS21においてNOであると判定され、処理はステップS22に進む。
【0173】
ステップS22において、制御部201は、認証回数i=1に設定する。認証回数i=1に設定されると、処理はステップS27に進む。なお、ステップS27以降の処理については後述する。
【0174】
これに対して、認証回数iが記憶されている場合、すなわち、初めての認証でない場合、ステップS21においてYESであると判定され、処理はステップS23に進む。
【0175】
ステップS23において、制御部201は、記憶されている認証回数iを記憶部188から読み出す。
【0176】
ステップS24において、制御部201は、認証回数iを1だけインクリメントする。
【0177】
ステップS25において、制御部201は、認証回数iが、リスト81の組み合わせの総数nよりも大きいかを判定する。
【0178】
認証回数iがリスト81の組み合わせの総数nよりも小さい場合、ステップS25においてNOであると判定され、処理はステップS27に進む。なお、ステップS27以降の処理については後述する。
【0179】
これに対して、認証回数iがリスト81の組み合わせの総数nよりも大きい場合、ステップS25においてYESであると判定され、処理はステップS26に進む。
【0180】
ステップS26において、制御部201は、認証回数i=1に設定する。すなわち、認証回数iがリスト81の組み合わせの総数nを超えた場合とは、前回の認証回数(i−1)がリスト81の組み合わせの総数nであったことを意味する。本実施形態では、認証回数iの片側認証処理のときに、チャレンジCiとレスポンスRiとの組み合わせが用いられる。したがって、認証回数iがリスト81の組み合わせの総数nを超えた場合とは、前回の認証回数iの認証処理においてリスト81の最後のチャレンジCnとレスポンスRnとの組合せが使用された場合、すなわち、リスト81内の全ての組み合わせが使用された場合を意味する。そこで、このような場合、制御部201は、認証回数iを1にリセットすることによって、リスト81の再利用を可能にする。本実施形態では、リスト81内の組み合わせを先頭から順に使用する。リスト81内の組み合わせがランダムに選択されると、過去に使用された組み合わせが重複使用されるおそれがあるからである。なお、このような処理は例示であって、例えば、チャレンジCiとレスポンスRiとの組み合わせを新規に作成するようにしてもよい。
【0181】
ステップS27において、選択部202は、チャレンジCiをリスト81から選択する。
【0182】
ステップS28において、送信制御部203は、通信部189を制御して、ステップS27の処理で選択されたチャレンジCiをICカード72に送信する。
【0183】
図15を参照して後述するように、ICカード72は、受信したチャレンジCiに対応するレスポンスRを送信してくる(図15のステップS44)。そこで、ステップS29において、受信制御部204は、ICカード72からのレスポンスRを受信したかを判定する。
【0184】
レスポンスRが受信されない場合、ステップS29においてNOであると判定されて、処理はステップS28に戻され、それ以降の処理が繰り返される。すなわち、レスポンスRが受信されるまでの間、ステップS28,S29NOのループ処理が繰り返されることによって、所定時間間隔毎にチャレンジCiが送信される。なお、所定回数だけチャレンジCiを送信してもレスポンスRが受信できない場合、処理を中止してもよい。
【0185】
その後、レスポンスRが受信された場合には、ステップS29においてYESであると判定されて、処理はステップS30に進む。
【0186】
ステップS30において、認識部205は、受信されたレスポンスRが、ステップS27の処理でリスト81から選択されたチャレンジCiに対応するレスポンスRiと一致するかを判定する。
【0187】
レスポンスRがリスト81から選択されたレスポンスRiと一致する場合、処理はステップS31に進む。
【0188】
ステップS31において、認証部205は、ICカード72を認証する。これにより、パーソナルコンピュータ71へのログインが可能になる。
【0189】
ステップS32において、記憶制御部206は、記憶部188を制御して認証回数iを記憶する。これによりパーソナルコンピュータの片側認証処理が終了する。
【0190】
これに対して、レスポンスRがリスト81から選択されたレスポンスRiと一致しない場合、認証失敗を意味するので、処理はステップS33に進む。
【0191】
ステップS33において、表示制御部207は、認証失敗の警告を示す画像を、出力部187の表示部に表示させる。これにより、処理はステップS32に進む。
【0192】
ステップS32において、記憶制御部206は、記憶部188を制御して認証回数iを記憶する。これによりパーソナルコンピュータの片側認証処理が終了する。
【0193】
このようなパーソナルコンピュータの片側認証処理に対して、ICカード72の片側被認証処理は次のようにして実行される。
【0194】
[ICカード72の片側被認証処理]
図15は、ICカード72の片側被認証処理の一例を説明するフローチャートである。
【0195】
ステップS41において、受信部243は、パーソナルコンピュータ71からチャレンジCiを受信したかを判定する。このチャレンジCiは、図14のステップS28の処理で送信されたものである。
【0196】
チャレンジCiを受信していない場合、ステップS41においてNOであると判定されて、処理はステップS41に戻され、それ以降の処理が繰り返される。すなわち、チャレンジCiを受信するまでの間、ステップS41の判定処理が繰り返されて、ICカード72の片側被認証処理は待機状態となる。
【0197】
その後、チャレンジCiを受信した場合には、ステップS41においてYESであると判定されて、処理はステップS42に進む。
【0198】
ステップS42において、復号化部244は、復号化アルゴリズムD11に従って、鍵KCを用いて、チャレンジCiを復号化することによって、算出値Aiを求める。
【0199】
ステップS43において、暗号化部245は、暗号化アルゴリズムE12に従って、鍵KCを用いて、算出値Aiを暗号化する。
【0200】
ステップS44において、送信部246は、暗号化された算出値AiをレスポンスRとしてパーソナルコンピュータ71に送信する。
【0201】
これにより、ICカード72の片側被認証処理は終了する。
【0202】
このように、本実施形態においては、認証する側のパーソナルコンピュータ71は、鍵とアルゴリズムを保持することなく、ICカード72を認証する。一方で、リスト生成装置101とICカード72は、セキュアな環境で鍵とアルゴリズムを保持する。これにより、認証側のパーソナルコンピュータ71は、セキュアでない環境でICカード72を認証しても、安全性を確保することができる。
【0203】
また、パーソナルコンピュータ71−1乃至71−Nがそれぞれ保持するリスト81−1乃至81−Nは、相互に異なっている。したがって、仮に1つのパーソナルコンピュータ71が保持するリスト81が第三者に盗難されたとしても、他のパーソナルコンピュータ71のセキュリティに対して影響を及ぼすおそれはない。
【0204】
従って、上述したように、ICカード72を、セキュアエリアを有さないパーソナルコンピュータ71へのログイン処理に用いると好適である。その理由は次のとおりである。
【0205】
まず、パーソナルコンピュータ71はロックされていることから、そもそもパーソナルコンピュータ71にログインできない第三者は、パーソナルコンピュータ71が保持するリスト81を取得することはできない。仮に何らかの手段によって、第三者が、パーソナルコンピュータ71が保持するリスト81を取得したとしても、リスト81を生成した鍵と暗号化アルゴリズムまでは取得することができない。なぜならば、リスト81を生成した鍵と暗号化アルゴリズムは、パーソナルコンピュータ71内には保持されておらず、パーソナルコンピュータ71の生成工場等のセキュアな環境に保持されているからである。
【0206】
また、パーソナルコンピュータ71−1乃至71−Nがそれぞれ保持するリスト81−1乃至81−Nは、相互に異なっている。したがって、第三者が、仮に何らかの手段で、例えばパーソナルコンピュータ71−1が保持するリスト81−1を取得したとしても、取得したリスト81−1を用いて他のパーソナルコンピュータ71−2乃至71−Nへログインすることはできない。
【0207】
さらに、パーソナルコンピュータ71が有するリスト81には、上述した組み合わせデータ群141の全ての組み合わせを格納する必要は特に無く、組み合わせデータ群141の一部の組み合わせを格納してもよい。このような場合には、たとえ第三者によってリスト81が盗難されることがあったとしても、ユーザは、組み合わせデータ群141の別の一部の組み合わせを用いてリスト81を更新すればよい。これにより、その後、第三者は、盗難したリスト81を使用したとしても、パーソナルコンピュータ71にログインすることができなくなる。
【0208】
また、第三者が、盗難したリスト81を基にして、対となるICカード72になりすますことは非常に困難である。すなわち、図6を参照して説明したように、例えば、第三者がチャレンジCiに対応するレスポンスRiを知っていたとしても、同一のチャレンジCiが再度認証に使用されるまでの最大試行回数はリスト81の組み合わせ総数nに等しい。したがって、第三者は、多数の組み合わせの中から該当するチャレンジCiが送信されてくるのを常時監視し、それに対応するレスポンスRiを送信しなければならないため、対となるICカード72になりすます行為は非常に困難になる。
【0209】
[セキュリティ強度の向上]
以上のように、本発明が適用される認証システムを採用することで、セキュアでない環境で片側認証処理を実行しても、セキュリティ強度は高いものになる。しかしながら、セキュアでない環境である以上、完全なセキュリティを確立することは困難である。そこで、以下、セキュリティ強度のさらなる向上を図ることができる措置について幾つか説明する。
【0210】
上述した図14の片側認証処理の例では、パーソナルコンピュータ71は、所定時間間隔毎にチャレンジCiを定期的に送信していた。この場合、ICカード72を有していない第三者が、チャレンジCiを取得し易くなる。そこで、認証システム61のセキュリティ強度の向上を図るために、パーソナルコンピュータ71は、チャレンジCiを送信する前に、ICカード72を検出するための制御信号(以下、ポーリングと称する)を送信するようにしてもよい。ポーリングを受信したICカード72は、当該ポーリングに対する返答を示す制御信号をパーソナルコンピュータ71に送信する。パーソナルコンピュータ71は、この制御信号を受信した場合にのみ、チャレンジCiの送信を開始する。
【0211】
さらに、よりセキュリティ強度を向上せるために、ポーリングに対する返答を示す制御信号に、ICカード72のカード識別子Idmの情報を含ませるとよい。この場合、パーソナルコンピュータ71は、ICカード72からの制御信号に基づいて、カード識別子Idmを認識し、認識したカード識別子IdmがICカード72のものであることを特定できた場合にのみ、チャレンジCiの送信を開始する。
【0212】
[リスト81の組み合わせが有限であることへの措置]
ところで、リスト81に格納される組み合わせの総数nは有限であるため、リスト81のすべての組み合わせの総数nを最後まで使用した場合には、何かしらの措置が必要になる。このような措置としては、上述した実施形態では、再度、リスト81の先頭の組み合わせから再利用する措置を取っている。
【0213】
しかしながら、当該措置に特に限定されず、その他例えば、現在のリスト81を最後まで使用した場合には、新たにリスト81を生成して更新する措置を取るようにしてもよい。この場合、新たなリスト81は、図4と図5を参照して説明したように、リスト生成装置101によって生成されてもよいし、パーソナルコンピュータ71によって生成されてもよい。リスト生成装置101により生成された新たなリスト81は、そのユーザに再度提供される。
【0214】
また、パーソナルコンピュータ71は、新たな組み合わせを適当なタイミングで適宜生成してリスト81に追加し、次回の認証時には、新しい組み合わせが追加されたリスト81を用いる措置を取ってもよい。
【0215】
例えば、パーソナルコンピュータ71は、ICカード72がログインに成功したタイミングで、新たな組み合わせを生成してリスト81に追加することができる。具体的には例えば、パーソナルコンピュータ71は、ICカード72がログインに成功した時に、新たにM通り(Mは任意の整数値)のチャレンジCとレスポンスRとの組み合わせを生成して、リスト81に追加することができる。
【0216】
ここで、I回目(Iは1乃至Nの何れかの整数値)のログイン成功時にJ番目(Jは1乃至Mの何れかの整数値)に生成された組み合わせを(チャレンジC(I,J),レスポンスR(I,J))と記述すると、ICカード72によるN回目のログイン成功時には、最初のリスト81に対して、次のようなN×M組の組み合わせが新たに生成されていることになる。
【0217】
(チャレンジC(1,1),レスポンスR(1,1))、
(チャレンジC(1,2),レスポンスR(1,2))・・・
(チャレンジC(1,M),レスポンスR(1,M))
【0218】
(チャレンジC(2,1),レスポンスR(2,1))、
(チャレンジC(2,2),レスポンスR(2,2))・・・
(チャレンジC(2,M),レスポンスR(2,M))
【0219】
・・・
(チャレンジC(N,1),レスポンスR(N,1))、
(チャレンジC(N,2),レスポンスR(N,2))・・・
(チャレンジC(N,M),レスポンスR(N,M))
【0220】
このようにしてN回目のログイン時には、最初のリスト81に対して、N×M個の新たな組み合わせが追加されており、次回の認証時には、これらの追加された新たな組み合わせを含むリスト81が用いられる。このようにして、リスト81の組み合わせの全てが使用されてしまうのを回避することができる。
【0221】
なお、この場合、パーソナルコンピュータ71は、1つの組み合わせのみを用いて1回の正当性の判断でICカード72を認証するのではなく、任意の複数の組み合わせを用いて複数回正当性を判断して、ICカード72を認証するようにしてもよい。これにより、セキュリティ強度が向上する。
【0222】
さらに、パーソナルコンピュータは、ICカード72を認証するときに用いる複数の組み合わせとして、離散した日時に生成されたものを用いると、より一段とセキュリティ強度が向上する。
【0223】
具体的には例えば、
(チャレンジC(I,1),レスポンスR(I,1))、
(チャレンジC(I,2),レスポンスR(I,2))・・・
(チャレンジC(I,M),レスポンスR(I,M))は、
I回目のログイン成功時にほぼ同時に生成され、パーソナルコンピュータ71とICカード72との間をほぼ同時に伝送されている。したがって、パーソナルコンピュータ71は、これらM個の組み合わせを用いてICカード72を認証しないようにする。
【0224】
その代わりに、パーソナルコンピュータ71は、N+1回目の認証の際には、1乃至N回のうち異なるL回分のログイン時に生成された組み合わせを用いるとよい。例えば、パーソナルコンピュータ71は、互いに異なる認証時に生成された組み合わせである
(チャレンジC(1,1),レスポンスR(1,1))、
(チャレンジC(2,1),レスポンスR(2,1))、・・・
(チャレンジC(L,1),レスポンスR(L,1))
を用いて、ICカード72を認証することができる。
【0225】
また、次のN+2回目の認証時には、パーソナルコンピュータ71は、例えば、
(チャレンジC(1,2),レスポンスR(1,2))、
(チャレンジC(2,2),レスポンスR(2,2))・・・
(チャレンジC(L,2),レスポンスR(L,2))
を用いて、ICカード72を認証してもよい。
【0226】
或いはまた、N+2回目の認証時には、パーソナルコンピュータは、2L≦N+1ならば、例えば、
(チャレンジC(L+1,1),レスポンスR(L+1,1))、
(チャレンジC(L+2,1),レスポンスR(L+2,1))・・・
(チャレンジC(2L,1),レスポンスR(2L,1))
を用いて、ICカード72を認証してもよい。
【0227】
要するに、異なる回のログイン成功時の各々のタイミングで生成された組み合わせを用いてICカード72を認証することが必要である。このためには、例えば、パーソナルコンピュータ71は、組み合わせの生成日時を記録したり、あるいはログイン成功番号を記録する。なお、ログイン成功番号は、ログインが成功する毎に1ずつインクリメントされていくとする。すなわち、ログイン成功番号はログインに成功した回数を表わす。これにより、パーソナルコンピュータ71は、次回認証時に、生成日時やログイン成功番号を利用して組み合わせを選択することで、時間的に離散した組み合わせを確実に選択することができる。
【0228】
さらに、また、ICカード72の認証に用いた組み合わせは、次回以降の認証には用いないことも必要である。このためには、パーソナルコンピュータ71は、例えば、一度使用した組み合わせをリスト81から削除する。これにより、一度使用した組み合わせが再度使用されてしまうことが防止され、かつ、リスト81の容量が増加するのも防止される。
【0229】
また、リスト81に追加する組み合わせの数は、毎回同じにする必要は特に無く、例えばリスト81の空き容量に応じて自動的に調整してもよい。例えば、ログインに成功しない場合には、ログインに使用された組み合わせはリスト81から削除されるが、新しい組み合わせは生成されない場合があるとする。このような場合には、パーソナルコンピュータ71は、次にログインが成功した時に通常よりも多くの組み合わせを生成して追加することにより、組み合わせが足りなくなることを回避することができる。
【0230】
以上、リスト81の組み合わせの総数nが有限であることに対する措置について幾つかの例を説明した。当然ながら、上述した措置は例示であって、その他の措置を単独で或いは組み合わせて取ることができる。例えば、リスト81の最後の組み合わせに近づいてきたときに、ユーザに対して何らかの警告を提示する措置を取ってもよい。このような警告を提示する措置と、上述した措置、例えば、リスト81を新たに生成する措置や、ログイン成功時に組み合わせを追加する措置とを組み合わせてもよい。すなわち、警告と同時に、リスト81を新たに生成する措置や、ログイン成功時に組み合わせを追加する措置を取ることを薦める報知をユーザにしてもよい。なお、このような警告や報知をしたにも関わらず、ユーザが何ら措置を取ることがなく、リスト81の最後の組み合わせが使用されてしまった場合には、ICカード72によるログインを無効にしてもよい。この場合、例えば、従来のアカウント名とパスワードを用いるような他の手段によるログインに切り替えるようにしてもよい。
【0231】
[抜き打ち認証手法]
ところで、リスト81の組み合わせの総数nが有限であることに対する措置として、ログイン成功時に組み合わせを追加する措置を取る場合には、注意が必要である。すなわち、パーソナルコンピュータは、ログイン直後に、新たなチャレンジCを送信して、チャレンジCを受信したICカード72からレスポンスRが送信されてきた場合、送信したチャレンジCとレスポンスRとの組み合わせを生成して追加する。このときに、別のICカード72がパーソナルコンピュータに近接すると、パーソナルコンピュータ71は、別のICカード72に対してもチャレンジCを送信し、別のICカード72からのレスポンスRを受信してしまい、不適切な組み合わせを生成して追加してしまうおそれがある点に注意が必要である。
【0232】
そこで、パーソナルコンピュータ71は、別のICカード72からのレスポンスRを受信しないように、新たな組み合わせを生成して追加する最中や直後に、対象のICカード72を認証するようにしてもよい。すなわち、パーソナルコンピュータ71は、リスト81の組み合わせの中からチャレンジCiを選択してICカード72に送信し、レスポンスRを受信する。そして、パーソナルコンピュータ71は、受信したレスポンスRがチャレンジCiに対応するレスポンスRiである場合に、ICカード72を認証する。このようなICカード72を認証する手法は、いわば、抜き打ちでICカード72を認証する手法であるといえる。そこで、このような手法を、以下、「抜き打ち認証手法」と称する。
【0233】
抜き打ち認証手法において、パーソナルコンピュータ71は、受信したレスポンスRが、送信したチャレンジCiと対になるレスポンスRiとは異なる場合、認証失敗と判断する。パーソナルコンピュータ71は、認証失敗と判断した場合には、例えば、直前のログイン後に新たに生成してリスト81に追加した組み合わせの全てを破棄することができる。これにより、不適切な組み合わせを完全に除去できるので、セキュリティ強度が向上する。
【0234】
さらに、パーソナルコンピュータ71は、認証失敗を示す警告をユーザに提示することができる。これにより、ユーザは、パーソナルコンピュータ71が第三者から攻撃を受けたことを認識できるようになる。
【0235】
このように認証失敗に対する措置も取った上で、抜き打ち認証手法を採用することで、パーソナルコンピュータ71は、ICカード72によるログイン操作時だけではなく、任意のタイミングで、新たな組み合わせを生成してリスト81に追加することが可能になる。
【0236】
なお、抜き打ち認証手法による認証処理の頻度を多くすると、リスト81内の組み合わせを全て使い切ってしまうおそれもある。そこで、このようなおそれを回避するために、抜き打ち認証手法による認証処理の際には、専用の組み合わせを用い、一度使用しても削除しないようにすることができる。すなわち、パーソナルコンピュータ71は、ICカード72を認証する場合、まずは専用の組み合わせを用いたいわゆる抜き打ち認証処理を実行し、認証に成功した場合にのみ、再度、リスト81を用いて正式な認証処理を実行する。
【0237】
或いはまた、上述したように、ICカード72のカード識別子Idmを用いるようにしても、抜き打ち認証手法の採用によりリスト81を使い切ってしまうおそれを回避することができる。具体的には、パーソナルコンピュータ71は、ICカード72のカード識別子Idmを記憶しておき、当該識別子Idmを示す情報を含む制御信号がICカード72から送信されてきた直後にのみ、リスト81を用いてICカード72を認証する。
【0238】
[リスト81が第三者に盗難されたことが分かる仕組み]
さらにセキュリティ強度を向上させるために、リスト81が第三者に盗難された場合には、その旨の警告をユーザに提示すると好適である。しかしながら、このような警告を提示するためには、パーソナルコンピュータ71は、リスト81が第三者に盗難されたことを認識する必要がある。そこで、以下、リスト81が第三者に盗難されたことをパーソナルコンピュータ71が認識できる手法の例について説明する。
【0239】
すなわち、当該手法では、パーソナルコンピュータ71(若しくはリスト生成装置101)は、リスト81を生成又は更新する際に、故意に誤ったレスポンスRを含む組み合わせをリスト81に紛れ込ませておく。この場合、どのコマンドメッセージが故意に誤ったもの(すなわち罠)であるかを区別できないように、故意に誤ったコマンドメッセージ(罠)をリスト81に一様に紛れ込ませておく。ただし、パーソナルコンピュータ71の認証部205は、その故意に誤ったレスポンスRが見分けられるようにしておく。例えば、8バイトで 18 76 13 76 4a 5b d5 d3のコマンドメッセージと、6c 5d 73 76 26 3a be d3のコマンドメッセージが含まれる組み合わせには、パーソナルコンピュータ71が特別な扱いをするように設定しておく。パーソナルコンピュータ71は、このようなコマンドメッセージをリスト81内に含めた上で、ICカード72のログイン時の認証処理に用いる。
【0240】
ここで、仮に第三者がリスト81を盗難していた場合、第三者は、盗難したリスト81に基づいてレスポンスRを送信してくることになる。このような場合には、パーソナルコンピュータ71は、罠どおりのレスポンスRが送信されてきた時点で、リスト81が盗難されたことを認識することができる。パーソナルコンピュータ71は、リスト81が盗難されたことを認識すると、例えば、リスト81が外部に流出したことを示す警告を提示して、ICカード72による認証を無効にして、他の手段によるログインに切り替えるようにすることができる。このようにして、セキュリティ強度がより一段と向上される。
【0241】
[認証システム151のビジネスへの利用]
ところで、以上説明してきた認証システム151は、様々な分野、様々なビジネスに適用することができる。
【0242】
この場合、何れの分野でも、どのようなビジネスでも、パーソナルコンピュータ71がリスト81を保持し、かつ、ICカード72が、セキュアエリア内に、リスト81と対になる鍵やアルゴリズムを保持する必要がある。
【0243】
リスト81は、パーソナルコンピュータ71の生成工場等でパーソナルコンピュータ71の出荷前に組み込まれて販売される場合と、後から販売される場合とが想定される。
【0244】
後から販売される場合とは、例えば、パーソナルコンピュータ71のユーザが、リスト81が第三者に盗難された可能性があるので新しいリスト81に変更することを要求してきた場合が想定される。また例えば、パーソナルコンピュータ71のユーザが、リスト81の組み合わせを最後まで使い切ったが、もう一度同じリスト81を使いたくないために、新しいリスト81を要求してきた場合もまた、後から販売される場合に該当すると想定される。
【0245】
後から販売される場合には、リスト81はその組み合わせ数に応じて価格を変動させるようにすることができる。
【0246】
このように、出荷前だけではなく後からリスト81を販売できるようにすることで、売り切りの商売にのみリスト81が利用されることを回避することができる。
【0247】
また例えば、ICカード72には、予め複数のログイン用の鍵とアルゴリズムのセットを登録しておくことができる。これにより、ICカード72を有するユーザは、インターネットを利用して、リスト81と当該リスト81に関するソフトウェアとを購入して、パーソナルコンピュータ71にインストールするだけで、認証システム151を利用することが可能になる。
【0248】
また例えば、ログインアプリ対応カードとしての各種のICカードは、複数のログイン用の鍵とアルゴリズムのセットを組み込むことで、ICカード72として機能する。セットの鍵はインターネット上からでも変更できるようにしてもよい。この場合、ICカードのユーザは、ICカード72として機能させるためにセットを購入した際に、インターネットを利用して鍵を変更する。これにより、それ以降は、当該ユーザが使用したアカウントのみからリスト81を購入できるようにするビジネスを提供できる。
【0249】
また、インターネットを利用して鍵の変更やリスト81の発行が可能となるように、ICカード72に予め鍵とセットを登録しておいてもよい。この場合、ユーザは、パーソナルコンピュータ71を介してインターネットを利用して、リスト生成装置101として機能するサーバにアクセスして、例えばICカード72に関する料金を支払うと、サーバとICカード72との間で相互認証がなされる。すると、サーバは、ICカード72のセキュアエリアに保持されているセットの鍵を読み込み、その鍵に基づいてリスト81を生成する。このようにして生成されたリスト81が、インターネットを介してユーザのパーソナルコンピュータ71に届けられる。ユーザは、届けられたリスト81をパーソナルコンピュータ71に保持させることで、リスト81を用いた認証システム151による各種サービスの提供を受けることができるようになる。仮に、ユーザは、リスト81を紛失した場合であっても、異なる乱数に基づく別のリスト81を再度購入すれば、認証システム151を継続利用することができる。このように、購入できるリスト81は毎回異なるので、第三者がリスト81を購入してもセキュリティの脅威にはならない。
【0250】
以上、説明したように、本実施形態の認証システム151においては、セキュアでない環境にあるパーソナルコンピュータ71が、ICカード72を認証する、といった片側認証処理を実行することができる。
【0251】
[本発明のプログラムへの適用]
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることができる。
【0252】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【0253】
このようなプログラムを含む記録媒体は、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フロッピディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disc)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア(パッケージメディア)、例えば図10のリムーバブルメディア191により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM、例えば図10のROM182や、例えば図10の記憶部188等に含まれるハードディスクなどで構成される。
【0254】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0255】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【0256】
本発明は、認証側の装置としては、パーソナルコンピュータの他、携帯電話機、リーダライタ装置等、相手側を認証する片側認証機能を備えた装置であって、セキュアエリアを有しない装置に広く適用することができる。また、本発明は、被認証側の装置としては、ICカードの他、ICタグ等、認証側の装置と通信する機能を備えた装置であって、セキュアエリアを有する装置に広く適用することができる。
【符号の説明】
【0257】
61 認証システム, 71 パーソナルコンピュータ, 72 ICカード, 81 リスト, 91 セキュアエリア, 101 リスト生成装置, 121 セキュアエリア, 141 組み合わせデータ群, 151 認証システム, 161 制御部, 162 乱数発生部, 163 暗号化部, 164 生成部, 165 記憶部, 188 記憶部, 181 CPU, 201 制御部, 202 選択部, 203 送信制御部, 204 受信制御部, 205 認証部, 206 記憶制御部, 207 表示制御部, 208 リスト生成部, 221 乱数発生部, 222 生成部, 241 制御部, 242 記憶部, 243 受信部, 244 復号化部, 245 暗号化部, 246 送信部

【特許請求の範囲】
【請求項1】
認証対象のICカードと共有する共通鍵を用いて、前記ICカードが有する復号化アルゴリズムに対応する第1の暗号化アルゴリズムに従って、予め乱数が暗号化され、その結果得られる値をチャレンジとし、前記共通鍵を用いて、前記ICカードが有する第2の暗号化アルゴリズムと同一の第3の暗号化アルゴリズムに従って、予め前記乱数が暗号化され、その結果得られる値をレスポンスとし、前記乱数を変更することで生成されたn通り(nは複数の整数値)の前記チャレンジと前記レスポンスとの組み合わせが格納されたリストを保持する保持手段と、
前記保持手段により保持されたリストの中から、1組の組み合わせを選択する選択手段と、
前記選択手段により選択された前記組み合せに含まれる前記チャレンジを送信する送信制御手段と、
前記ICカードによって、前記送信制御手段から送信された前記チャレンジが受信され、前記共通鍵を用いて前記復号化アルゴリズムに従って復号化され、その結果得られる算出値が、前記共通鍵を用いて前記第2の暗号化アルゴリズムに従って暗号化され、その結果得られる値が前記レスポンスとして送信されてきた場合、前記レスポンスを受信する受信制御手段と、
前記受信制御手段に受信された前記レスポンスと、前記選択手段により選択された前記組み合せに含まれる前記レスポンスとが一致する場合、前記ICカードを認証する認証手段と
を備える情報処理装置。
【請求項2】
前記リストに格納されるn通りの前記組み合わせの各々には、1乃至nの何れかの番号が付されており、
前記選択手段により所定の番号以上の前記組み合わせが選択された場合、n番目に近づいてきたことを示す警告をユーザに提示する提示手段
をさらに備える請求項1に記載の情報処理装置。
【請求項3】
前記選択手段によりn通りの組み合わせのうちの最後の組み合わせが選択されるまでの間においては、前記認証手段により前記ICカードが認証された場合に前記情報処理装置のログイン処理を実行し、前記選択手段によりn通りの組み合わせのうちの最後の組み合わせが選択された後においては、前記認証手段による前記ICカードの認証を用いたログイン処理の実行を禁止し、その代わりに、アカウント名とパスワードを用いた認証処理を実行する
請求項2に記載の情報処理装置。
【請求項4】
所定のタイミングで、前記チャレンジと前記レスポンスとの前記組み合わせを生成する処理を実行する組み合わせ生成手段をさらに備え、
前記保持手段により保持される前記リストの少なくとも一部は、前記組み合わせ生成手段により前記組み合わせが生成される毎に更新される
請求項1に記載の情報処理装置。
【請求項5】
前記組み合わせ生成手段は、前記リストに含まれるn通りの前記組み合わせが前記選択手段によって選択されたとき、新たなn通りの前記組み合わせを生成し、
前記保持手段により保持される前記リストは、前記組み合わせ生成手段により生成された前記新たなn通りの組み合わせが格納された新たなリストに更新される
請求項4に記載の情報処理装置。
【請求項6】
前記組み合わせ生成手段は、前記認証手段が前記ICカードを認証する毎に、1以上の前記組み合わせを生成し、
前記保持手段により保持される前記リストに、前記組み合わせ生成手段により生成された前記1以上の前記組み合わせが追加されることによって、前記リストが更新される
請求項4に記載の情報処理装置。
【請求項7】
前記選択手段、前記送信制御手段、前記受信制御手段、及び前記認証手段による処理をL回(Lは2以上の整数値)繰り返し、L回の全てについて前記認証手段により前記ICカードが認証された場合、前記ICカードの認証を成功とする
請求項6に記載の情報処理装置。
【請求項8】
前記保持手段に保持された前記リストには、故意に誤ったレスポンスを含む前記組み合わせが格納されている
請求項1に記載の情報処理装置。
【請求項9】
前記受信制御手段は、所定のネットワークを介する他の情報処理装置から前記リストが送信されてきた場合、前記リストを受信し、
前記保持手段は、前記受信制御手段により受信された前記リストを保持する
請求項1に記載の情報処理装置。
【請求項10】
認証対象のICカードと共有する共通鍵を用いて、前記ICカードが有する復号化アルゴリズムに対応する第1の暗号化アルゴリズムに従って、予め乱数が暗号化され、その結果得られる値をチャレンジとし、前記共通鍵を用いて、前記ICカードが有する第2の暗号化アルゴリズムと同一の第3の暗号化アルゴリズムに従って、予め前記乱数が暗号化され、その結果得られる値をレスポンスとし、前記乱数を変更することで生成されたn通り(nは複数の整数値)の前記チャレンジと前記レスポンスとの組み合わせが格納されたリスト
の中から、1組の組み合わせを選択する選択ステップと、
前記選択ステップの処理により選択された前記組み合せに含まれる前記チャレンジを送信する送信制御ステップと、
前記ICカードによって、前記送信制御ステップの処理により送信された前記チャレンジが受信され、前記共通鍵を用いて前記復号化アルゴリズムに従って復号化され、その結果得られる算出値が、前記共通鍵を用いて前記第2の暗号化アルゴリズムに従って暗号化され、その結果得られる値が前記レスポンスとして送信されてきた場合、前記レスポンスを受信する受信制御ステップと、
前記受信制御ステップの処理により受信された前記レスポンスと、前記選択ステップの処理により選択された前記組み合せに含まれる前記レスポンスとが一致する場合、前記ICカードを認証する認証ステップと
を含む情報処理方法。
【請求項11】
認証対象のICカードと共有する共通鍵を用いて、前記ICカードが有する復号化アルゴリズムに対応する第1の暗号化アルゴリズムに従って、予め乱数が暗号化され、その結果得られる値をチャレンジとし、前記共通鍵を用いて、前記ICカードが有する第2の暗号化アルゴリズムと同一の第3の暗号化アルゴリズムに従って、予め前記乱数が暗号化され、その結果得られる値をレスポンスとし、前記乱数を変更することで生成されたn通り(nは複数の整数値)の前記チャレンジと前記レスポンスとの組み合わせが格納されたリスト
の中から、1組の組み合わせを選択し、
選択された前記組み合せに含まれる前記チャレンジを送信し、
前記ICカードによって、送信された前記チャレンジが受信され、前記共通鍵を用いて前記復号化アルゴリズムに従って復号化され、その結果得られる算出値が、前記共通鍵を用いて前記第2の暗号化アルゴリズムに従って暗号化され、その結果得られる値が前記レスポンスとして送信されてきた場合、前記レスポンスを受信し、
受信された前記レスポンスと、選択された前記組み合せに含まれる前記レスポンスとが一致する場合、前記ICカードを認証する
ステップを含む制御処理をコンピュータに実行させるプログラム。
【請求項12】
乱数を発生する乱数発生手段と、
前記乱数発生手段により発生された前記乱数を、ICカードと共有する共通鍵を用いて、前記ICカードが有する復号化アルゴリズムに対応する第1の暗号化アルゴリズムにより暗号化した結果得られる値をチャレンジとして、前記乱数を、前記共通鍵を用いて、前記ICカードが有する第2の暗号化アルゴリズムと同一の第3の暗号化アルゴリズムにより暗号化した結果得られる値をレスポンスとして、前記チャレンジと前記レスポンスとの組み合わせを生成する処理を、前記乱数を変更しながら繰り返す暗号化手段と、
前記暗号化手段により前記組み合わせが生成される毎に、前記組み合わせをリストに追加する処理を繰り返すことによって、前記ICカードを認証する装置に提供する前記リストを生成する生成手段と
を備え、
前記乱数発生手段、前記暗号化手段、及び前記生成手段は、セキュアな環境内に配置されている
情報処理装置。
【請求項13】
乱数を発生する乱数発生ステップと、
前記乱数発生ステップの処理により発生された前記乱数を、ICカードと共有する共通鍵を用いて、前記ICカードが有する復号化アルゴリズムに対応する第1の暗号化アルゴリズムにより暗号化した結果得られる値をチャレンジとして、前記乱数を、前記共通鍵を用いて、前記ICカードが有する第2の暗号化アルゴリズムと同一の第3の暗号化アルゴリズムにより暗号化した結果得られる値をレスポンスとして、前記チャレンジと前記レスポンスとの組み合わせを生成する処理を、前記乱数を変更しながら繰り返す暗号化ステップと、
前記暗号化ステップの処理により前記組み合わせが生成される毎に、前記組み合わせをリストに追加する処理を繰り返すことによって、前記ICカードを認証する装置に提供する前記リストを生成する生成ステップと
を含み、
前記乱数発生ステップ、前記暗号化ステップ、及び前記生成ステップの処理は、セキュアな環境内で実行されている
情報処理方法。
【請求項14】
乱数を発生し、
発生された前記乱数を、ICカードと共有する共通鍵を用いて、前記ICカードが有する復号化アルゴリズムに対応する第1の暗号化アルゴリズムにより暗号化した結果得られる値をチャレンジとして、前記乱数を、前記共通鍵を用いて、前記ICカードが有する第2の暗号化アルゴリズムと同一の第3の暗号化アルゴリズムにより暗号化した結果得られる値をレスポンスとして、前記チャレンジと前記レスポンスとの組み合わせを生成する処理を、前記乱数を変更しながら繰り返し、
前記組み合わせが生成される毎に、前記組み合わせをリストに追加する処理を繰り返すことによって、前記ICカードを認証する装置に提供する前記リストを生成する
ステップを含む制御処理をコンピュータに実行させるプログラムであって、
乱数を発生し、暗号化し、及び生成するステップを含む制御処理は、セキュアな環境内で実行される
プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2011−223495(P2011−223495A)
【公開日】平成23年11月4日(2011.11.4)
【国際特許分類】
【出願番号】特願2010−93031(P2010−93031)
【出願日】平成22年4月14日(2010.4.14)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】