(57)【要約】      （修正有）【課題】セキュリティモジュールを用いつつ、複数のＩＣカードを同時に処理することができる情報処理装置を提供する。【解決手段】ＩＣカード処理システムにおいて、処理サーバ１０の通信部は、ＩＣカードとデータを送受信する外部装置に設けられたリーダライタと通信する。プロセッサは、ＩＣカードを用いるセッションを実行する。セキュリティモジュールは、セッションにおけるセキュリティに関する第１の処理を実行することを指示する第１の信号をプロセッサから受信すると、第１の処理を実行してセキュリティ情報を生成し、セッションを特定するセッションＩＤに対応付けられるセキュリティ情報を格納し、セッションにおけるセキュリティに関する第２の処理を実行することを指示する第２の信号をプロセッサから受信すると、セッションＩＤに対応するセキュリティ情報を取得し、セキュリティ情報に基づいて第２の処理を実行する。【選択図】図２
2020173641.tif 000002
【特許請求の範囲】
【請求項１】
ＩＣカードとデータを送受信する外部装置に設けられたリーダライタと通信する通信部と、
前記ＩＣカードを用いるセッションを実行するプロセッサと、
前記セッションにおけるセキュリティに関する第１の処理を実行することを指示する第１の信号を前記プロセッサから受信すると、前記第１の処理を実行してセキュリティ情報を生成し、
前記セッションを特定するセッションＩＤに対応付けられる前記セキュリティ情報を格納し、
前記セッションにおけるセキュリティに関する第２の処理を実行することを指示する第２の信号を前記プロセッサから受信すると、前記セッションＩＤに対応する前記セキュリティ情報を取得し、前記セキュリティ情報に基づいて前記第２の処理を実行する、
セキュリティモジュールと、
を備える情報処理装置。
【請求項２】
前記プロセッサは、前記セッションＩＤを生成する、
請求項１に記載の情報処理装置。
【請求項３】
前記セキュリティモジュールは、前記セッションＩＤで特定されるセッションが完了すると、前記セッションＩＤに対応付けられる前記セキュリティ情報を削除する、
請求項１又は２に記載の情報処理装置。
【請求項４】
前記セキュリティモジュールと前記プロセッサとの通信を中継し、
前記第１の信号を前記プロセッサから受信すると、前記セキュリティモジュールから１つのセキュリティモジュールを選択し、
選択した前記セキュリティモジュールに前記第１の信号を送信する、
ドライバを備える、
請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記ドライバは、前記第２の信号を前記プロセッサから受信すると、選択した前記セキュリティモジュールに前記第２の信号を送信する、
請求項４に記載の情報処理装置。
【請求項６】
前記セキュリティ情報は、暗号処理のための鍵を含む、
請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記第２の処理は、前記鍵を用いてデータを暗号化する処理又は前記鍵を用いてデータを復号化する処理である、
請求項６に記載の情報処理装置。
【請求項８】
前記外部装置は、改札機であり、
前記プロセッサは、前記ＩＣカードから取得した情報に基づいて前記改札機による改札処理を制御する、
請求項１乃至７の何れか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置に関する。
【背景技術】
【０００２】
ＩＣカードを処理する情報処理装置には、セキュリティモジュールを用いてＩＣカードを処理するものがある。また、情報処理装置にネットワークなどを介して複数のリーダライタに接続し、同時に複数のＩＣカードを処理する技術も提供されている。  
しかしながら、従来、情報処理装置は、セキュリティモジュールを用いてセキュリティを維持しつつ、複数のＩＣカードを同時に処理することができないという課題がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１５７１０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の課題を解決するために、セキュリティモジュールを用いつつ、複数のＩＣカードを同時に処理することができる情報処理装置を提供する。
【課題を解決するための手段】
【０００５】
実施形態によれば、情報処理装置は、通信部と、プロセッサと、セキュリティモジュールと、を備える。通信部は、ＩＣカードとデータを送受信する外部装置に設けられたリーダライタと通信する。プロセッサは、前記ＩＣカードを用いるセッションを実行する。セキュリティモジュールは、前記セッションにおけるセキュリティに関する第１の処理を実行することを指示する第１の信号を前記プロセッサから受信すると、前記第１の処理を実行してセキュリティ情報を生成し、前記セッションを特定するセッションＩＤに対応付けられる前記セキュリティ情報を格納し、前記セッションにおけるセキュリティに関する第２の処理を実行することを指示する第２の信号を前記プロセッサから受信すると、前記セッションＩＤに対応する前記セキュリティ情報を取得し、前記セキュリティ情報に基づいて前記第２の処理を実行する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１の実施形態に係るＩＣカード処理システムの構成例を示すブロック図である。
【図２】図２は、第１の実施形態に係る処理サーバの構成例を示すブロック図である。
【図３】図３は、第１の実施形態に係るＩＣカード処理システムの動作例を示すシーケンス図である。
【図４】図４は、第２の実施形態に係る処理サーバの構成例を示すブロック図である。
【図５】図５は、第２の実施形態に係るセッションテーブルの構成例を示す図である。
【図６】図６は、第２の実施形態に係るＩＣカード処理システムの動作例を示すシーケンス図である。
【発明を実施するための形態】
【０００７】
以下、図面を参照しながら実施形態について説明する。
（第１の実施形態）
まず、第１の実施形態について説明する。  
実施形態に係るＩＣカード処理システムは、複数のＩＣカードを同時に処理する。ＩＣカード処理システムは、複数のリーダライタを備え、各リーダライタと通信するＩＣカードを処理する。たとえば、ＩＣカード処理システムは、駅務処理に用いられる。ＩＣカード処理システムは、ユーザが翳す各ＩＣカードから所定のデータを取得して、リーダライタを設ける各改札機の改札処理を制御する。なお、ＩＣカード処理システムの用途は、特定の構成に限定されるものではない。
【０００８】
図１は、ＩＣカード処理システム１の構成例を示すブロック図である。図１が示すように、ＩＣカード処理システム１は、処理サーバ１０、リーダライタ２０（２０ａ乃至２０ｄ）及びＩＣカード３０（３０ａ乃至３０ｄ）などを備える。処理サーバ１０は、リーダライタ２０と互いに接続する。
【０００９】
なお、ＩＣカード処理システム１は、図１が示すような構成の他に必要に応じた構成を具備したり、ＩＣカード処理システム１から特定の構成が除外されたりしてもよい。
【００１０】
処理サーバ１０（情報処理装置）は、ＩＣカード処理システム１全体を制御する。処理サーバ１０は、インターネットなどのネットワークを通じてリーダライタ２０に接続する。処理サーバ１０は、リーダライタ２０を通じてＩＣカード３０からデータを読み取る。処理サーバ１０は、データに基づいて所定の処理（たとえば、改札処理）を実行する。また、処理サーバ１０は、リーダライタ２０を通じてＩＣカード３０にデータを格納する。処理サーバ１０については、後に詳述する。
【００１１】
リーダライタ２０は、ＩＣカード３０とデータを送受信するためのインターフェースである。ここでは、リーダライタ２０ａ乃至２０ｄは、ＩＣカード３０ａ乃至３０ｄとそれぞれデータを送受信する。リーダライタ２０は、ＩＣカード３０の通信方式に応じたインターフェースにより構成される。
【００１２】
たとえば、ＩＣカード３０が接触型のＩＣカードである場合、リーダライタ２０は、ＩＣカード３０のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
【００１３】
また、ＩＣカード３０が非接触型のＩＣカードである場合、リーダライタ２０は、ＩＣカード３０との無線通信を行うためのアンテナ及び通信制御部などにより構成される。リーダライタ２０は、ＩＣカード３０に対する電源供給、クロック供給、リセット制御及びデータの送受信などを行う。
【００１４】
このような機能によってリーダライタ２０は、プロセッサ１１による制御に基づいてＩＣカード３０に対する電源供給、ＩＣカード３０の活性化（起動）、クロック供給、リセット制御、種々のコマンドの送信及び送信したコマンドに対する応答（レスポンス）の受信などを行なう。
【００１５】
たとえば、リーダライタ２０は、改札機（外部装置）に設けられる。たとえば、リーダライタ２０は、改札機の上面に設けられる。リーダライタ２０は、駅構内へ進入し又は駅構内から退去するユーザが所持するＩＣカード３０とデータを送受信する。
【００１６】
ＩＣカード処理システム１は、複数のリーダライタ２０を備える。ここでは、ＩＣカード処理システム１は、４つのリーダライタ２０ａ乃至２０ｄを備える。なお、ＩＣカード処理システム１が備えるリーダライタ２０の個数は、特定の個数に限定されるものではない。
【００１７】
ＩＣカード３０は、リーダライタ２０などの外部装置から電力などの供給を受けて活性化される（動作可能な状態になる）ようになっている。ＩＣカード３０は、リーダライタ２０と接触式通信を行うものであってもよいし、非接触式通信を行うものであってもよい。
【００１８】
ＩＣカード３０は、内部のメモリなどに所定のデータを格納する。たとえば、ＩＣカード３０は、乗車券情報又はストアードフェア情報などを格納する。  
ＩＣカード３０は、外部装置（たとえば、リーダライタ２０）からのコマンドに従って所定の処理を行う。  
たとえば、ＩＣカード３０は、外部装置からのコマンドに従って所定のデータ（たとえば、乗車券情報又はストアードフェア情報）を外部装置に送信する。たとえば、ＩＣカード３０は、外部装置からリードコマンドを受信すると、所定のデータを格納するレスポンスを外部装置に送信する。
【００１９】
また、ＩＣカード３０は、外部装置からのコマンドに従って所定のデータを内部のメモリなどに書き込む。たとえば、ＩＣカード３０は、外部装置からライトコマンドを受信すると、ライトコマンドに従って内部のメモリなどの所定のデータを書き込む。  
ＩＣカード３０が実行する処理は、特定の構成に限定されるものではない。
【００２０】
次に、処理サーバ１０について説明する。  
図２は、処理サーバ１０の構成例を示すブロック図である。図２が示すように、処理サーバ１０は、プロセッサ１１、ＲＯＭ１２、ＲＡＭ１３、ＮＶＭ１４、通信部１５、操作部１６、表示部１７、ドライバ１８及びセキュリティモジュール１９などを備える。
【００２１】
プロセッサ１１と、ＲＯＭ１２、ＲＡＭ１３、ＮＶＭ１４、通信部１５、操作部１６、表示部１７及びドライバ１８と、は、データバスなどを介して互いに接続する。ドライバ１８とセキュリティモジュール１９とは、互いに接続する。
【００２２】
なお、処理サーバ１０は、図２が示すような構成の他に必要に応じた構成を具備したり、処理サーバ１０から特定の構成が除外されたりしてもよい。
【００２３】
プロセッサ１１は、処理サーバ１０全体の動作を制御する機能を有する。プロセッサ１１は、内部キャッシュ及び各種のインターフェースなどを備えてもよい。プロセッサ１１は、内部メモリ、ＲＯＭ１２又はＮＶＭ１４が予め記憶するプログラムを実行することにより種々の処理を実現する。
【００２４】
なお、プロセッサ１１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであってもよい。この場合、プロセッサ１１は、ハードウエア回路により実行される機能を制御する。
【００２５】
ＲＯＭ１２は、制御プログラム及び制御データなどが予め記憶された不揮発性のメモリである。ＲＯＭ１２に記憶される制御プログラム及び制御データは、処理サーバ１０の仕様に応じて予め組み込まれる。
【００２６】
ＲＡＭ１３は、揮発性のメモリである。ＲＡＭ１３は、プロセッサ１１の処理中のデータなどを一時的に格納する。ＲＡＭ１３は、プロセッサ１１からの命令に基づき種々のアプリケーションプログラムを格納する。また、ＲＡＭ１３は、アプリケーションプログラムの実行に必要なデータ及びアプリケーションプログラムの実行結果などを格納してもよい。
【００２７】
ＮＶＭ１４は、データの書き込み及び書き換えが可能な不揮発性のメモリである。ＮＶＭ１４は、たとえば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）又はフラッシュメモリなどから構成される。ＮＶＭ１４は、処理サーバ１０の運用用途に応じて制御プログラム、アプリケーション及び種々のデータなどを格納する。
【００２８】
通信部１５は、リーダライタ２０と通信するためのインターフェースである。たとえば、通信部１５は、インターネットなどの外部ネットワーク又はＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの内部ネットワークを通じてリーダライタ２０と接続する。たとえば、通信部１５は、ＬＡＮ接続をサポートするインターフェースである。
【００２９】
操作部１６は、オペレータから種々の操作の入力を受け付ける。操作部１６は、入力された操作を示す信号をプロセッサ１１へ送信する。操作部１６は、タッチパネルから構成されてもよい。
【００３０】
表示部１７は、プロセッサ１１からの画像データを表示する。たとえば、表示部１７は、液晶モニタから構成される。操作部１６がタッチパネルから構成される場合、表示部１７は、操作部１６と一体的に形成されてもよい。
【００３１】
ドライバ１８は、セキュリティモジュール１９と通信するためのインターフェースである。即ち、ドライバ１８は、プロセッサ１１とセキュリティモジュール１９との間の通信を中継する。たとえば、ドライバ１８は、プロセッサ１１からの制御に従ってセキュリティモジュール１９に所定のデータを送信する。また、ドライバ１８は、セキュリティモジュール１９からのデータをプロセッサ１１に送信する。
【００３２】
セキュリティモジュール１９は、セキュリティに関する処理を行うハードウエアである。たとえば、セキュリティモジュール１９は、ＨＳＭ（Ｈａｒｄｗａｒｅ  Ｓｅｃｕｒｅ  Ｍｏｄｕｌｅ）などである。セキュリティモジュール１９は、セッションにおいて生成したデータなどを用いて処理を行う。
【００３３】
たとえば、セキュリティモジュール１９は、暗号処理に関連する処理を行う。たとえば、セキュリティモジュール１９は、鍵の生成、鍵の保管、署名、暗号化処理及び復号化処理などを行う。
【００３４】
たとえば、セキュリティモジュール１９は、ドライバ１８からの制御に従って、暗号処理のための鍵（たとえば、公開鍵及び秘密鍵など）を生成する。セキュリティモジュール１９は、生成した鍵を格納する。
【００３５】
セキュリティモジュール１９は、ドライバ１８からの制御に従って、生成した鍵を用いてコマンドの暗号化などを行う。また、セキュリティモジュール１９は、生成した鍵を用いてレスポンスの復号化などを行う。
【００３６】
また、セキュリティモジュール１９は、アクセス権限がない外部装置とは通信を行わないものであってもよい。また、セキュリティモジュール１９は、物理的に解放されるとデータを削除するものであってもよい。  
セキュリティモジュール１９の構成は、特定の構成に限定されるものではない。
【００３７】
セキュリティモジュール１９は、内部メモリなどにデータテーブルを格納する。  
データテーブルは、セッションＩＤとセキュリティに関するセキュリティ情報とを対応付けて格納する。
【００３８】
セッションＩＤは、ＩＣカード３０とのセッションを特定する識別情報である。セッションＩＤについては、後に詳述する。
【００３９】
セキュリティ情報は、セッションＩＤが示すセッションにおいて生成した情報である。たとえば、セキュリティ情報は、当該セッションにおいて暗号処理のために生成した鍵などを含む。なお、セキュリティ情報の構成は、特定の構成に限定されるものではない。
【００４０】
次に、セキュリティモジュール１９が実現する機能について説明する。
【００４１】
セキュリティモジュール１９は、プロセッサ１１からの制御に基づいて、セキュリティに関する処理を実行する機能を有する。
【００４２】
たとえば、セキュリティモジュール１９は、暗号処理に関する処理を行うことを指示する信号をプロセッサ１１から受信する。セキュリティモジュール１９は、セッションＩＤと処理に必要な情報とをプロセッサ１１から受信する。  
セキュリティモジュール１９は、受信した情報などを用いてセキュリティに関する処理を実行する。セキュリティモジュール１９は、セキュリティに関する処理を実行すると、セキュリティ情報を生成する場合がある。
【００４３】
セキュリティ情報を生成した場合、セキュリティモジュール１９は、セッションＩＤと生成したセキュリティ情報と対応付けてデータテーブルに格納する。また、セキュリティモジュール１９は、セキュリティ情報を更新した場合には、データテーブルにおいてセッションＩＤと対応するセキュリティ情報を更新してもよい。
【００４４】
また、セキュリティモジュール１９は、セキュリティ情報を用いて、セキュリティに関する処理を行う。この場合、セキュリティモジュール１９は、受信したセッションＩＤに対応するセキュリティ情報をデータテーブルから取得する。セキュリティモジュール１９は、データテーブルから取得したセキュリティ情報及び受信した情報に基づいて、セキュリティに関する処理を実行する。
【００４５】
また、セキュリティモジュール１９は、セキュリティに関する処理の結果を示すレスポンスをプロセッサ１１に送信する。
【００４６】
たとえば、セキュリティモジュール１９は、暗号処理のための鍵を生成する処理（第１の処理）を行うことを指示する信号（第１の信号）をプロセッサ１１から受信する。即ち、セキュリティモジュール１９は、セッションＩＤと暗号鍵を生成するために必要な情報とをプロセッサ１１から受信する。
【００４７】
セキュリティモジュール１９は、プロセッサ１１からの信号に従って暗号処理のための鍵を生成する。鍵を生成すると、セキュリティモジュール１９は、セッションＩＤと鍵を含むセキュリティ情報とを対応付けてデータテーブルに格納する。
【００４８】
また、セキュリティモジュール１９は、セキュリティ情報に関する情報（たとえば、セキュリティ情報の一部）をプロセッサ１１に送信してもよい。たとえば、セキュリティ情報が暗号鍵及び公開鍵である場合、セキュリティモジュール１９は、公開鍵をプロセッサ１１に送信してもよい。
【００４９】
また、セキュリティモジュール１９は、データを復号化する処理（第２の処理）を行うことを指示する信号（第２の信号）を受信する。即ち、セキュリティモジュール１９は、セッションＩＤと暗号化されたデータとをプロセッサ１１から受信する。セッションＩＤと暗号化されたデータとを受信すると、セキュリティモジュール１９は、データテーブルから当該セッションＩＤに対応するセキュリティ情報（ここでは、鍵）を取得する。セキュリティ情報を取得すると、セキュリティモジュール１９は、セキュリティ情報に基づいて、暗号化されたデータを復号化する。データを復号化すると、セキュリティモジュール１９は、復号化したデータをプロセッサ１１に送信する。
【００５０】
また、セキュリティモジュール１９は、データを暗号化する処理（第２の処理）を行うことを指示する信号（第２の信号）を受信する。即ち、セキュリティモジュール１９は、セッションＩＤと暗号化するデータとをプロセッサ１１から受信する。セッションＩＤと暗号化するデータとを受信すると、セキュリティモジュール１９は、データテーブルから当該セッションＩＤに対応するセキュリティ情報（ここでは、鍵）を取得する。セキュリティ情報を取得すると、セキュリティモジュール１９は、セキュリティ情報に基づいて、当該データを暗号化する。データを暗号化すると、セキュリティモジュール１９は、暗号化したデータをプロセッサ１１に送信する。  
なお、セキュリティに関する処理は、特定の構成に限定されるものではない。
【００５１】
また、セキュリティモジュール１９は、セッションが終了すると、セッションＩＤとセキュリティ情報とをデータテーブルから削除する機能を有する。
【００５２】
たとえば、セキュリティモジュール１９は、プロセッサ１１からセッションが完了したことを示す信号を受信すると、セッションＩＤとセキュリティ情報とをデータテーブルから削除する。
【００５３】
また、セキュリティモジュール１９は、セキュリティに関する処理を行ってから同一のセッションＩＤについての処理を行うことを指示する信号を受信しない場合に、当該セッションＩＤとセキュリティ情報とをデータテーブルから削除してもよい。
【００５４】
次に、処理サーバ１０が実現する機能について説明する。処理サーバ１０が実現する機能は、プロセッサ１１がＲＯＭ１２又はＮＶＭ１４などに格納されるプログラムを実行することで実現される。
【００５５】
まず、プロセッサ１１は、セッションごとにセッションＩＤを生成する機能を有する。  
プロセッサ１１は、ＩＣカード３０とのセッションを開始するとセッションＩＤを生成する。セッションは、ＩＣカード３０を用いて行う一連の処理である。たとえば、セッションは、１回の改札処理などである。
【００５６】
プロセッサ１１は、同時の生じるセッションを特定するセッションＩＤを生成する。たとえば、プロセッサ１１は、リーダライタ２０が設置される改札機の機体識別番号をセッションＩＤとして用いる。たとえば、セッションＩＤは、数値、文字列、記号又はそれらの組合せである。セッションＩＤの構成は、特定の構成に限定されるものではない。
【００５７】
また、プロセッサ１１は、ドライバ１８を通じて、セキュリティモジュール１９にセキュリティに関連する処理を行わせる機能を有する。  
即ち、プロセッサ１１は、ドライバ１８を制御して、セキュリティモジュール１９に処理を行わせる。プロセッサ１１は、ドライバ１８を通じて、セッションＩＤ及び処理に必要なデータをセキュリティモジュール１９に送信する。
【００５８】
たとえば、プロセッサ１１は、暗号処理のための鍵を生成する処理をセキュリティモジュール１９に行わせる場合、セッションＩＤと鍵の生成に必要な情報とをセキュリティモジュール１９に送信する。プロセッサ１１は、セキュリティ情報に関連する情報をセキュリティモジュール１９から受信してもよい。
【００５９】
また、プロセッサ１１は、暗号化されたデータを復号化する処理をセキュリティモジュール１９に行わせる場合、セッションＩＤ及び当該データをセキュリティモジュール１９に送信する。プロセッサ１１は、復号化されたデータをセキュリティモジュール１９から受信する。
【００６０】
また、プロセッサ１１は、データを暗号化する処理をセキュリティモジュール１９に行わせる場合、セッションＩＤ及び当該データをセキュリティモジュール１９に送信する。プロセッサ１１は、暗号化されたデータをセキュリティモジュール１９から受信する。
【００６１】
また、プロセッサ１１は、セッションにおいて、ＩＣカード３０からのデータなどに基づいて所定の処理を行う機能を有する。  
たとえば、プロセッサ１１は、改札処理を行う。
【００６２】
プロセッサ１１は、たとえば、ＩＣカード３０から乗車券情報又はストアードフェア情報を取得する。プロセッサ１１は、乗車券情報又はストアードフェア情報を取得するリードコマンドを生成する。プロセッサ１１は、リーダライタ２０を通じてリードコマンドをＩＣカード３０に送信する。なお、プロセッサ１１は、セキュリティモジュール１９を用いてリードコマンドを暗号化してＩＣカード３０に送信してもよい。
【００６３】
プロセッサ１１は、リーダライタ２０を通じて、乗車券情報又ストアードフェア情報を含むレスポンスをＩＣカード３０から受信する。プロセッサ１１は、セキュリティモジュール１９を用いてレスポンスを復号化して、乗車券情報又はストアードフェア情報を取得する。
【００６４】
プロセッサ１１は、乗車券情報又ストアードフェア情報に基づいて改札を開放するか否かを判定する。たとえば、プロセッサ１１は、乗車券情報が示す区間とリーダライタ２０が設置される改札機の駅とに基づいて、改札を開放するか否かを判定する。また、プロセッサ１１は、ストアードフェア情報が示す金額に基づいて、改札を開放するか否かを判定する。
【００６５】
プロセッサ１１は、改札を開放すると判定すると、リーダライタ２０が設置される改札機に、改札を開放させる信号を送信する。  
また、プロセッサ１１は、改札を開放しないと判定すると、リーダライタ２０が設置される改札機に、改札を閉鎖させる信号を送信する。
【００６６】
また、プロセッサ１１は、ストアードフェア情報を更新する場合、リーダライタ２０を通じて、ストアードフェア情報を格納するライトコマンドをＩＣカード３０に送信する。なお、プロセッサ１１は、セキュリティモジュール１９を用いてライトコマンドを暗号化してＩＣカード３０に送信してもよい。
【００６７】
なお、プロセッサ１１がＩＣカード３０からのデータなどに基づいて行う処理は、特定の構成に限定されるものではない。
【００６８】
次に、ＩＣカード処理システム１の動作例について説明する。  
図３は、ＩＣカード処理システム１の動作例について説明するためのフローチャートである。図３は、１つのリーダライタ２０を通じてＩＣカード３０とデータを送受信する動作例について説明する。
【００６９】
まず、処理サーバ１０のプロセッサ１１は、セッションを特定するセッションＩＤを生成する（Ｓ１１）。セッションＩＤを生成すると、プロセッサ１１は、セッションＩＤとセキュリティに関する処理のために必要な情報とをドライバ１８に送信する（Ｓ１２）。
【００７０】
ドライバ１８は、セッションＩＤとセキュリティに関する処理のために必要な情報とを受信する。セッションＩＤとセキュリティに関する処理のために必要な情報とを受信すると、ドライバ１８は、セッションＩＤとセキュリティに関する処理のために必要な情報とをセキュリティモジュール１９に送信する（Ｓ１３）。
【００７１】
セキュリティモジュール１９は、セッションＩＤとセキュリティに関する処理のために必要な情報とをドライバ１８から受信する。セッションＩＤとセキュリティに関する処理のために必要な情報とを受信すると、セキュリティモジュール１９は、受信した情報などに基づいてセキュリティに関する処理を実行する（Ｓ１４）。ここでは、セキュリティモジュール１９は、セキュリティに関する処理を実行してセキュリティ情報（たとえば、鍵）を生成したものとする。
【００７２】
セキュリティに関する処理を実行すると、セキュリティモジュール１９は、セッションＩＤとセキュリティ情報とを対応付けてデータテーブルに格納する（Ｓ１５）。セッションＩＤとセキュリティ情報とを対応付けてデータテーブルに格納すると、セキュリティモジュール１９は、セキュリティに関する処理の結果を示す情報（たとえば、公開鍵）をドライバ１８に送信する（Ｓ１６）。
【００７３】
ドライバ１８は、セキュリティに関する処理の結果を示す情報をセキュリティモジュール１９から受信する。セキュリティに関する処理の結果を示す情報をセキュリティモジュール１９から受信すると、ドライバ１８は、セキュリティに関する処理の結果を示す情報をプロセッサ１１に送信する（Ｓ１７）。
【００７４】
プロセッサ１１は、セキュリティに関する処理の結果を示す情報をドライバ１８から受信する。セキュリティに関する処理の結果を示す情報をドライバ１８から受信すると、プロセッサ１１は、リーダライタ２０にＩＣカード３０に送信するコマンドを送信する（Ｓ１８）。なお、コマンドは、Ｓ１４で暗号化されたものであってもよい。また、コマンドは、セキュリティに関する処理の結果を示す情報に基づいて生成されるものであってもよい。たとえば、コマンドは、ＩＣカード３０を検知する検知コマンド又はデータを読み出すリードコマンドなどであってもよい。
【００７５】
リーダライタ２０は、コマンドをプロセッサ１１から受信する。コマンドをプロセッサ１１から受信すると、リーダライタ２０は、コマンドをＩＣカード３０に送信する（Ｓ１９）。
【００７６】
ＩＣカード３０は、コマンドをリーダライタ２０から受信する。コマンドをリーダライタ２０から受信すると、ＩＣカード３０は、レスポンスをリーダライタ２０に送信する（Ｓ２０）。
【００７７】
リーダライタ２０は、レスポンスをＩＣカード３０から受信する。レスポンスをＩＣカード３０から受信すると、リーダライタ２０は、レスポンスをプロセッサ１１に送信する（Ｓ２１）。
【００７８】
プロセッサ１１は、レスポンスをリーダライタ２０から受信する。レスポンスを受信すると、プロセッサ１１は、セッションＩＤとセキュリティに関する処理に必要な情報（たとえば、レスポンス）とをドライバ１８に送信する（Ｓ２２）。
【００７９】
ドライバ１８は、セッションＩＤとセキュリティに関する処理に必要な情報とをプロセッサ１１から受信する。セッションＩＤとセキュリティに関する処理に必要な情報とをプロセッサ１１から受信すると、ドライバ１８は、セッションＩＤとセキュリティに関する処理に必要な情報とをセキュリティモジュール１９に送信する（Ｓ２３）。
【００８０】
セキュリティモジュール１９は、セッションＩＤとセキュリティに関する処理に必要な情報とをドライバ１８から受信する。セッションＩＤとセキュリティに関する処理に必要な情報とをドライバ１８から受信すると、セキュリティモジュール１９は、受信したセッションＩＤに対応するセキュリティ情報を検索する（Ｓ２４）。
【００８１】
セキュリティ情報を検索すると、セキュリティモジュール１９は、検索したセキュリティ情報に基づいてセキュリティに関する処理（たとえば、レスポンスの復号化処理）を実行する（Ｓ２５）。
【００８２】
セキュリティに関する処理を実行すると、セキュリティモジュール１９は、セキュリティに関する処理の結果を示す情報（たとえば、復号化されたレスポンス）をドライバ１８に送信する（Ｓ２６）。
【００８３】
ドライバ１８は、セキュリティに関する処理の結果を示す情報をセキュリティモジュール１９から受信する。セキュリティに関する処理の結果を示す情報をセキュリティモジュール１９から受信すると、ドライバ１８は、セキュリティに関する処理の結果を示す情報をプロセッサ１１に送信する（Ｓ２７）。
【００８４】
プロセッサ１１は、セキュリティに関する処理の結果を示す情報をドライバ１８から受信する。プロセッサ１１は、セキュリティに関する処理の結果を示す情報に基づいて所定の処理を実行する（Ｓ２８）。
【００８５】
プロセッサ１１が所定の処理を実行すると、セキュリティモジュール１９は、セッションＩＤ及びセキュリティ情報をデータテーブルから削除する（Ｓ２９）。セキュリティモジュール１９がセッションＩＤ及びセキュリティ情報をデータテーブルから削除すると、ＩＣカード処理システム１は、動作を終了する。
【００８６】
プロセッサ１１は、各リーダライタ２０を通じて各ＩＣカード３０と同時に接続し各ＩＣカード３０についてＳ１１乃至Ｓ２９を実行する。
【００８７】
なお、プロセッサ１１は、Ｓ２８以降においてセッションの一環としてさらに他のコマンドをＩＣカード３０に送信してもよい。この場合、プロセッサ１１は、コマンドを暗号化する処理などセキュリティに関する処理をセキュリティモジュール１９に実行させてもよい。
【００８８】
また、セキュリティモジュール１９は、処理サーバ１０の外部に設置されるものであってもよい。  
また、各リーダライタ２０は、処理サーバ１０と一体的に形成されるものであってもよい。  
また、リーダライタ２０は、ＩＣチップを備える携帯端末などとデータを送受信するものであってもよい。
【００８９】
以上のように構成されるＩＣカード処理システムは、セキュリティモジュールにおいてセッションＩＤとセキュリティ情報とを対応付けて格納する。また、ＩＣカード処理システムは、セキュリティに関する処理を行う場合、セッションＩＤをセキュリティモジュールに送信することで、セッションに関するセキュリティ情報をセキュリティモジュールに特定させる。その結果、ＩＣカード処理システムは、複数のセッションが同時に生じた場合であっても、セキュリティモジュールに各セッションに関する処理を適切に実行させることができる。よって、ＩＣカード処理システムは、セキュリティモジュールを用いつつ、複数のＩＣカードを同時に処理することができる
（第２の実施形態）
次に、第２の実施形態について説明する。  
第２の実施形態に係るカード処理システムは、処理サーバが複数のセキュリティモジュールを備える点で第１の実施形態のそれと異なる。従って、他の点については同一の符号を付して詳細な説明を省略する。
【００９０】
図１は、第２の実施形態に係るＩＣカード処理システム１’の構成例を示すブロック図である。図１が示すように、ＩＣカード処理システム１’は、処理サーバ１０’、リーダライタ２０及びＩＣカード３０などを備える。
【００９１】
なお、ＩＣカード処理システム１’は、図１が示すような構成の他に必要に応じた構成を具備したり、ＩＣカード処理システム１’から特定の構成が除外されたりしてもよい。  
リーダライタ２０及びＩＣカード３０については、前述の通りである。
【００９２】
次に、処理サーバ１０’について説明する。  
図４は、処理サーバ１０’の構成例を示すブロック図である。図４が示すように、処理サーバ１０’は、プロセッサ１１、ＲＯＭ１２、ＲＡＭ１３、ＮＶＭ１４、通信部１５、操作部１６、表示部１７、ドライバ１８、第１のセキュリティモジュール１９ａ及び第２のセキュリティモジュール１９ｂなどを備える。ドライバ１８と第１のセキュリティモジュール１９ａ及び第２のセキュリティモジュール１９ｂとは、互いに接続する。
【００９３】
なお、処理サーバ１０’は、図４が示すような構成の他に必要に応じた構成を具備したり、処理サーバ１０’から特定の構成が除外されたりしてもよい。  
プロセッサ１１、ＲＯＭ１２、ＲＡＭ１３、ＮＶＭ１４、通信部１５、操作部１６及び表示部１７については、前述の通りである。
【００９４】
第１のセキュリティモジュール１９ａ及び第２のセキュリティモジュール１９ｂは、第１の実施形態に係るセキュリティモジュール１９と同様の構成であるため詳細な説明を省略する。
【００９５】
次に、ドライバ１８について説明する。  
ドライバ１８は、セッションテーブルを格納する。セッションテーブルは、セッションに対応するセキュリティモジュール（第１のセキュリティモジュール１９ａ又は第２のセキュリティモジュール１９ｂ）を示す。
【００９６】
図５は、セッションテーブルの構成例を示す。図５が示すように、セッションテーブルは、「セッションＩＤ」と「セキュリティモジュール」とを対応付けて格納する。
【００９７】
「セッションＩＤ」は、セッションを特定するセッションＩＤである。
【００９８】
「セキュリティモジュール」は、対応する「セッションＩＤ」が特定するセッションにおいて用いられているセキュリティモジュールを示す。ここでは、「セキュリティモジュール」は、「１」又は「２」である。「１」は、第１のセキュリティモジュール１９ａを示す。「２」は、第２のセキュリティモジュール１９ｂを示す。
【００９９】
図５が示す例では、セッションテーブルは、セッションＩＤが１であるセッションにおいて第１のセキュリティモジュール１９ａが用いられていることを示す。  
セッションテーブルは、複数の「セッションＩＤ」に対して同一の「セキュリティモジュール」を示すものであってもよい。
【０１００】
次に、ドライバ１８が実現する機能について説明する。  
ドライバ１８は、セッションに用いるセキュリティモジュールを選択する機能を有する。
【０１０１】
たとえば、ドライバ１８は、セキュリティに関する処理を行うことを指示する信号をプロセッサ１１から受信する。即ち、ドライバ１８は、セッションＩＤとセキュリティに関する処理に必要な情報とを受信する。
【０１０２】
ドライバ１８は、受信したセッションＩＤに対応するセキュリティモジュールをセッションテーブルから検索する。ドライバ１８は、セッションテーブルに受信したセッションＩＤが存在しない場合、セッションＩＤが示すセッションに用いるセキュリティモジュールを選択する。
【０１０３】
たとえば、ドライバ１８は、ランダムにセキュリティモジュールを選択する。  
また、ドライバ１８は、負担が軽いセキュリティモジュールを選択してもよい。たとえば、ドライバ１８は、セッションテーブルを参照して、より少ない個数のセッションＩＤに対応するセキュリティモジュールを選択する。
【０１０４】
また、ドライバ１８は、所定のセッションＩＤに対しては所定のセキュリティモジュールを選択してもよい。たとえば、ドライバ１８は、セッションＩＤが奇数である場合には、第１のセキュリティモジュール１９ａを選択し、セッションＩＤが偶数である場合には、第２のセキュリティモジュール１９ｂを選択してもよい。
【０１０５】
ドライバ１８がセキュリティモジュールを選択する方法は、特定の方法に限定されるものではない。  
ドライバ１８は、セキュリティモジュールを選択すると、受信したセッションＩＤと選択したセキュリティモジュールを示す情報（たとえば、「１」又は「２」）とを対応付けてセッションテーブルに格納する。
【０１０６】
また、ドライバ１８は、セッションに応じたセキュリティモジュールにセキュリティに関する処理を実行させる機能を有する。  
たとえば、ドライバ１８は、セッションＩＤとセキュリティに関する処理に必要な情報とを受信すると、受信したセッションＩＤに対応する「セキュリティモジュール」をセッションテーブルから検索する。
【０１０７】
ドライバ１８は、セッションテーブルからセッションＩＤに対応する「セキュリティモジュール」を検索すると、検索されたセキュリティモジュールにセキュリティに関する処理を実行することを指示する信号を送信する。即ち、ドライバ１８は、検索された「セキュリティモジュール」が示すセキュリティモジュールにセッションＩＤとセキュリティに関する処理に必要な情報とを送信する。
【０１０８】
また、ドライバ１８は、セッションが終了すると、「セッションＩＤ」と「セキュリティモジュール」とをデータテーブルから削除する機能を有する。
【０１０９】
たとえば、ドライバ１８は、プロセッサ１１からセッションが完了したことを示す信号を受信すると、「セッションＩＤ」と「セキュリティモジュール」とをセッションテーブルから削除する。
【０１１０】
また、ドライバ１８は、セキュリティに関する処理を行ってから同一のセッションＩＤについての処理を行うことを指示する信号を受信しない場合に、当該セッションＩＤの「セッションＩＤ」と「セキュリティモジュール」とをデータテーブルから削除してもよい。
【０１１１】
次に、ＩＣカード処理システム１’の動作例について説明する。  
図６は、ＩＣカード処理システム１’の動作例について説明するためのフローチャートである。図６は、１つのリーダライタ２０を通じてＩＣカード３０とデータを送受信する動作例について説明する。
【０１１２】
Ｓ１１乃至Ｓ１２は、第１の実施形態にそれらと同様であるため説明を省略する。  
ドライバ１８は、セッションＩＤとセキュリティに関する処理のために必要な情報とを受信する。ここでは、受信したセッションＩＤに対応するセキュリティモジュールは、セッションテーブルに存在しないものとする。
【０１１３】
セッションＩＤとセキュリティに関する処理のために必要な情報とを受信すると、ドライバ１８は、セキュリティモジュールを選択する（Ｓ３１）。ここでは、ドライバ１８は、第１のセキュリティモジュール１９ａを選択したものとする。
【０１１４】
セキュリティモジュールを選択すると、ドライバ１８は、受信したセッションＩＤと選択したセキュリティモジュールを示す情報とを対応付けてセッションテーブルに格納する（Ｓ３２）。
【０１１５】
受信したセッションＩＤと選択したセキュリティモジュールを示す情報とを対応付けてセッションテーブルに格納すると、ドライバ１８は、セッションＩＤとセキュリティに関する処理のために必要な情報とを第１のセキュリティモジュール１９ａに送信する（Ｓ３３）。
【０１１６】
Ｓ１４乃至Ｓ２２は、第１の実施形態にそれらと同様であるため説明を省略する。  
ドライバ１８は、セッションＩＤとセキュリティに関する処理に必要な情報とをプロセッサ１１から受信する。セッションＩＤとセキュリティに関する処理に必要な情報とをプロセッサ１１から受信すると、ドライバ１８は、受信したセッションＩＤに対応する「セキュリティモジュール」をセッションテーブルから検索する（Ｓ３４）。
【０１１７】
「セキュリティモジュール」を検索すると、ドライバ１８は、セッションＩＤとセキュリティに関する処理に必要な情報とを「セキュリティモジュール」が示すセキュリティモジュール（ここでは、第１のセキュリティモジュール１９ａ）に送信する（Ｓ３５）。
【０１１８】
Ｓ２４乃至Ｓ２９は、第１の実施形態にそれらと同様であるため説明を省略する。  
プロセッサ１１が所定の処理を実行する（Ｓ２８）と、ドライバ１８は、「セッションＩＤ」と「セキュリティモジュール」とをセッションテーブルから削除する（Ｓ３６）。
【０１１９】
プロセッサ１１は、各リーダライタ２０を通じて各ＩＣカード３０と同時に接続し各ＩＣカード３０についてＳ１１、Ｓ１２、Ｓ１４乃至Ｓ２２、Ｓ２４乃至Ｓ２９、Ｓ３１乃至Ｓ３６を実行する。また、プロセッサ１１は、第２のセキュリティモジュール１９ｂを用いて同様にＳ１１、Ｓ１２、Ｓ１４乃至Ｓ２２、Ｓ２４乃至Ｓ２９、Ｓ３１乃至Ｓ３６実行する。
【０１２０】
なお、処理サーバ１０’は、３つ以上のセキュリティモジュールを備えるものであってもよい。処理サーバ１０’が備えるセキュリティモジュールの個数は、特定の個数に限定されるものではない。
【０１２１】
また、プロセッサ１１は、ドライバ１８の機能を実現するものであってもよい。この場合、ＮＶＭ１４は、セッションテーブルを格納してもよい。
【０１２２】
以上のように構成されたＩＣカード処理システムは、複数のセキュリティモジュールを備える。ＩＣカード処理システムは、セッションテーブルを用いてセッションごとにセキュリティモジュールを設定する。その結果、ＩＣカード処理システムは、１つのセッションにおいて同一のセキュリティモジュールを用いることができる。
【０１２３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１２４】
１…ＩＣカード処理システム、１’…ＩＣカード処理システム、１０…処理サーバ、１０’…処理サーバ、１１…プロセッサ、１２…ＲＯＭ、１３…ＲＡＭ、１４…ＮＶＭ、１５…通信部、１６…操作部、１７…表示部、１８…ドライバ、１９…セキュリティモジュール、１９ａ…第１のセキュリティモジュール、１９ｂ…第２のセキュリティモジュール、２０（２０ａ乃至２０ｄ）…リーダライタ、３０（３０ａ乃至３０ｄ）…ＩＣカード。
【図１】
2020173641.tif 000003
【図２】
2020173641.tif 000004
【図３】
2020173641.tif 000005
【図４】
2020173641.tif 000006
【図５】
2020173641.tif 000007
【図６】
2020173641.tif 000008