(57)【特許請求の範囲】
【請求項１】
記憶部及び制御部を備える情報記憶媒体に対して、該情報記憶媒体が使用するプログラムを更新する更新プログラムを送信する端末であって、
前記情報記憶媒体から、第１の認証情報と、前記更新プログラムのうち前記情報記憶媒体が保持する部分を特定するシーケンス情報とを受信する受信部と、
前記情報記憶媒体との通信容量と、当該端末の認証に用いられる第２の認証情報のデータ量とに基づいて、前記情報記憶媒体への送信に用いるデータサイズである環境パラメータを取得するパラメータ取得部と、
前記シーケンス情報と前記環境パラメータとに基づいて、前記情報記憶媒体が保持していない前記更新プログラムを前記データサイズに分割して分割更新プログラムを生成する分割部と、
前記第１の認証情報に基づいて認証を行った前記情報記憶媒体に対して、前記第２の認証情報と、前記分割更新プログラムとを結合した第１のプロトコルコマンドを送信する送信部と、
を備えることを特徴とする端末。
【請求項２】
請求項１に記載の端末であって、
前記プログラムは、前記情報記憶媒体が前記第２の認証情報に基づいて当該端末を認証する認証プログラムであって、
前記受信部は、前記情報記憶媒体が有する前記認証プログラムのバージョンを示すバージョン情報をさらに受信し、
前記送信部は、前記受信部が受信したバージョン情報に含まれる前記バージョンの前記認証プログラムによって認証される前記第２の認証情報を送信することを特徴とする端末。
【請求項３】
請求項１又は２に記載の端末であって、
前記送信部は、前記シーケンス情報が、前記情報記憶媒体が前記更新プログラムのすべてのデータを受信したことを示す情報である場合に、前記第１のプロトコルコマンドに代えて、前記第２の認証情報と、前記更新プログラムの実行を指示する命令とを結合した第２のプロトコルコマンドを送信することを特徴とする端末。
【請求項４】
当該情報記憶媒体で使用するプログラムを更新する更新プログラムを分割した分割更新プログラムを記憶部に記憶させる制御部と、
端末に対して、第１の認証情報と、前記記憶部が記憶する前記分割更新プログラムを特定するシーケンス情報とを送信する送信部と、
前記第１の認証情報に基づいて当該情報記憶媒体が認証された場合に、前記端末と当該情報記憶媒体との通信容量と前記端末の認証に用いられる第２の認証情報のデータ量とに基づいて取得された環境パラメータと、前記シーケンス情報とに基づいて生成された、当該情報記憶媒体が保持していない前記分割更新プログラムと、前記第２の認証情報とが結合された第１のプロトコルコマンドを前記端末から受信する受信部と、
前記第２の認証情報に基づいて前記端末を認証する認証部とを備え、
前記制御部は、前記受信部が受信した前記分割更新プログラムを前記記憶部に記憶させることを特徴とする情報記憶媒体。
【請求項５】
請求項４に記載の情報記憶媒体であって、
前記送信部は、前記プログラムのバージョンを示すバージョン情報をさらに送信し、
前記受信部は、前記バージョンの前記プログラムにおいて認証される前記第２の認証情報を受信し、
前記認証部は、前記プログラムを用いて前記端末を認証し、
前記制御部は、前記認証部において認証された前記端末から受信した前記分割更新プログラムを記憶させることを特徴とする情報記憶媒体。
【請求項６】
請求項４又は５に記載の情報記憶媒体であって、
前記更新プログラムを実行して前記プログラムを更新する更新部を備え、
前記受信部は、前記送信部が、前記シーケンス情報として前記更新プログラムを構成する前記分割更新プログラムのすべてのデータを受信したことを示す情報を送信した場合に、前記第１のプロトコルコマンドに代えて、前記第２の認証情報と前記更新プログラムの実行を指示する命令とを結合した第２のプロトコルコマンドを受信し、
前記更新部は、前記命令に基づいて前記更新プログラムを実行することを特徴とする情報記憶媒体。
【請求項７】
記憶部及び制御部を備える情報記憶媒体と、前記情報記憶媒体が使用するプログラムを更新する更新プログラムを前記情報記憶媒体に送信する端末とを備えるサービス提供システムであって、
前記情報記憶媒体は、
第１の認証情報と、前記更新プログラムのうち前記記憶部が記憶する部分を特定するシーケンス情報とを前記端末に送信する送信部を備え、
前記端末は、
前記情報記憶媒体との通信容量と、当該端末の認証に用いる第２の認証情報のデータ量とに基づいて、前記情報記憶媒体への送信に用いるデータサイズである環境パラメータを取得するパラメータ取得部と、
前記シーケンス情報と前記環境パラメータとに基づいて、前記情報記憶媒体が記憶していない前記更新プログラムを前記データサイズに分割して分割更新プログラムを生成する分割部と、
前記第１の認証情報に基づいて認証を行った前記情報記憶媒体に対して、前記第２の認証情報と、前記分割更新プログラムとを結合した第１のプロトコルコマンドを送信する送信部と、を備え、
前記情報記憶媒体の制御部は、受信した前記分割更新プログラムを前記記憶部に記憶させることを特徴とするサービス提供システム。
【請求項８】
請求項７に記載のサービス提供システムであって、
前記情報記憶媒体は、前記プログラムを用いて前記第２の認証情報に基づいて前記端末を認証する認証部を備え、
前記情報記憶媒体の送信部は、前記プログラムのバージョンを示すバージョン情報をさらに送信し、
前記情報記憶媒体の制御部は、前記認証部において認証された前記端末から受信した前記分割更新プログラムを前記記憶部に記憶させ、
前記端末の送信部は、前記バージョン情報に含まれる前記バージョンの前記プログラムによって認証される前記第２の認証情報を送信することを特徴とするサービス提供システム。
【請求項９】
請求項７又は８に記載のサービス提供システムであって、
前記情報記憶媒体は、前記更新プログラムを実行して前記プログラムを更新する更新部を備え、
前記情報記憶媒体の更新部は、前記更新プログラムの実行を指示する命令を前記端末から受信した場合に、前記更新プログラムを実行し、
前記端末の送信部は、前記情報記憶媒体から、前記シーケンス情報として前記更新プログラムを構成する前記分割更新プログラムのすべてのデータを受信したことを示す情報を受信した場合に、前記第１のプロトコルコマンドに代えて、前記第２の認証情報と、前記命令とを結合した第２のプロトコルコマンドを送信することを特徴とするサービス提供システム。
【請求項１０】
記憶部及び制御部を備える情報記憶媒体に対して、該情報記憶媒体が使用するプログラムを更新する更新プログラムを送信する端末が行うデータ更新方法であって、
前記情報記憶媒体から、第１の認証情報と、前記更新プログラムのうち前記情報記憶媒体が保持する部分を特定するシーケンス情報とを受信する受信手順と、
前記情報記憶媒体との通信容量と、当該端末の認証に用いられる第２の認証情報のデータ量とに基づいて、前記情報記憶媒体への送信に用いるデータサイズである環境パラメータを取得するパラメータ取得手順と、
前記シーケンス情報と前記環境パラメータとに基づいて、前記情報記憶媒体が保持していない前記更新プログラムを前記データサイズに分割して分割更新プログラムを生成する分割手順と、
前記第１の認証情報に基づいて認証を行った前記情報記憶媒体に対して、前記第２の認証情報と、前記分割更新プログラムとを結合した第１のプロトコルコマンドを送信する送信手順と、を備え、
前記送信手順は、前記受信手順において、前記情報記憶媒体が前記更新プログラムのすべてのデータを受信したことを示す前記シーケンス情報を受信した場合に、前記第１のプロトコルコマンドに代えて、前記第２の認証情報と、前記更新プログラムの実行を指示する命令とを結合した第２のプロトコルコマンドを送信することを特徴とするデータ更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報記憶媒体で使用する制御データを更新する技術に関する。
【背景技術】
【０００２】
情報記憶媒体、例えば、ＩＣカードを用いて交通乗車券、クレジット決済、銀行キャッシュカード等のサービスを提供する際には、不正な端末や不正なＩＣカードによる不正なサービスの享受を防ぐために、サービスを提供する端末とＩＣカードとの間で機器認証を行う。
【０００３】
端末とＩＣカード間の機器認証は、ＩＣカード発行時に機器認証プロトコル（以降、プロトコルと記す）をＩＣカード内に設定して、ＩＣカード発行後は発行時に設定されたプロトコルに従って行われる。
【０００４】
そして、プロトコルに何らかの不具合があった場合や、プロトコルで使用している暗号アルゴリズムや鍵の脆弱性が発見された場合や、ＩＣカードで利用するサービスの要件が変化した場合等には、ＩＣカードを回収し、ＩＣカード内のプロトコルコードを書き換えることにより、プロトコルの更新を実現していた。このような回収作業は、サービス提供者およびユーザに対して多大な時間と手間を必要とするため、ＩＣカードに設定されたプロトコルの更新は容易ではなかった。
【０００５】
そこで、ＩＣカード内のアプリケーションの一部を部分的に書き換え可能な技術が知られている（例えば、特許文献１参照）。特許文献１に記載された技術では、従来のようにＩＣカード内のコードやデータを全部書き変えずにプロトコルの更新が実現できるため、更新に必要な時間を短縮し、また、プロトコルで使用する鍵データ等の引継ぎが容易になる。
【０００６】
【特許文献１】特開２００６−２９３７０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載の技術は、ＩＣカードに設定されたプロトコルの更新作業に伴う処理時間をアプリケーションの一部書き換えによって短縮することは可能であったが、ＩＣカードに設定されたプロトコルの更新は、ＩＣカードのユーザが意識的に実施しなければならず、不便であった。
【０００８】
そこで、本発明は、ＩＣカードのユーザが意識的にプロトコルの更新手続きを行わずに、ＩＣカードに設定されたプロトコルの更新を行うことのできる技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
以上の課題を解決するため、本発明は、端末と情報記憶媒体との間の認証処理を行う過程において、情報記憶媒体で使用する制御データ（プロトコルコード）を端末から情報記憶媒体に送信する。
【００１０】
例えば、本発明は、記憶部及び制御部を備える情報記憶媒体に対して、該情報記憶媒体が使用するプログラムを更新する更新プログラムを送信する端末であって、前記情報記憶媒体から、第１の認証情報と、前記更新プログラムのうち前記情報記憶媒体が保持する部分を特定するシーケンス情報とを受信する受信部と、前記情報記憶媒体との通信容量と、当該端末の認証に用いられる第２の認証情報のデータ量とに基づいて、前記情報記憶媒体への送信に用いるデータサイズである環境パラメータを取得するパラメータ取得部と、前記シーケンス情報と前記環境パラメータとに基づいて、前記情報記憶媒体が保持していない前記更新プログラムを前記データサイズに分割して分割更新プログラムを生成する分割部と、前記第１の認証情報に基づいて認証を行った前記情報記憶媒体に対して、前記第２の認証情報と、前記分割更新プログラムとを結合した第１のプロトコルコマンドを送信する送信部と、を備えること、を特徴とする。
【発明の効果】
【００１１】
以上のように、本発明によれば、ＩＣカードのユーザが意識的にプロトコルの更新手続きを行わずに、ＩＣカードに設定されたプロトコルの更新を行うことのできる技術を提供することができる。
【発明を実施するための最良の形態】
【００１２】
図１は、本発明の一実施形態であるサービス提供システム１００の概略図である。
【００１３】
図示するように、サービス提供システム１００は、サービス提供者装置１１０Ａ、１１０Ｂ（以下、各々の装置を区別しない場合には、サービス提供者装置１１０とする）と、端末１３０Ａ、１３０Ｂ（以下、各々の端末を区別しない場合には、端末１３０とする）と、ＩＣカード１５０と、を備え、サービス提供者装置１１０及び端末１３０は、ネットワーク１７０を介して、相互に情報を送受信することができるようにされている。
【００１４】
図２は、サービス提供者装置１１０の概略図である。
【００１５】
図示するように、サービス提供者装置１１０は、記憶部１１１と、制御部１１７と、入力部１２３と、出力部１２４と、通信部１２５と、を備える。
【００１６】
記憶部１１１は、環境パラメータ情報記憶領域１１２と、プロトコルコード記憶領域１１３と、更新バージョン管理情報記憶領域１１４と、鍵情報記憶領域１１５と、を備える。
【００１７】
環境パラメータ情報記憶領域１１２には、端末１３０と、プロトコルコードのバージョンと、の組み合わせ毎に、更新するプロトコルコードのうち、端末１３０からＩＣカード１５０に一度に送信することのできるデータサイズを特定する情報が格納される。
【００１８】
例えば、このデータサイズは、端末１３０とＩＣカード１５０との間の通信容量から、更新前のバージョンのプロトコルにおけるプロトコルコマンドのデータ量を差し引くことにより特定される。
【００１９】
なお、このデータサイズについては、プロトコルが更新される毎に、サービス提供者装置１１０のオペレータの指示に応じて特定し、本記憶領域１１４に格納される。
【００２０】
プロトコルコード記憶領域１１３には、各々のプロトコルを実行するために、ＩＣカード１５０に設定するプロトコルコードが格納される。
【００２１】
なお、プロトコルコード記憶領域１１３には、各々のプロトコルにおける各々のバージョン毎に、プロトコルコードが格納される。
【００２２】
更新バージョン管理情報記憶領域１１４には、各々のプロトコルにおける各々のプロトコルコードの最新のバージョンを特定する情報が格納される。
【００２３】
鍵情報記憶領域１１５には、端末１３０との間で送受信する情報を暗号化するために使用される鍵を特定する情報が格納される。
【００２４】
制御部１１７は、サービス提供部１１８と、プロトコル更新処理部１１９と、コマンド生成部１２０と、送受信制御部１２１と、を備える。
【００２５】
サービス提供部１１８は、ＩＣカード１５０に対しサービスを提供する処理を制御する。
【００２６】
プロトコル更新処理部１１９は、端末１３０との間で、プロトコルコードの更新を行う処理を制御する。
【００２７】
コマンド生成部１２０は、端末１３０を介して、ＩＣカード１５０に対して送信するコマンドを生成する。
【００２８】
送受信制御部１２１は、後述する通信部１２５を介して情報を送受信する処理を制御する。
【００２９】
入力部１２３は、情報の入力を受け付ける。
【００３０】
出力部１２４は、情報を出力する。
【００３１】
通信部１２５は、ネットワーク１７０を介して情報を送受信するためのインターフェースである。
【００３２】
以上に記載したサービス提供者装置１１０は、例えば、図３（コンピュータ１８０の概略図）に示すような、ＣＰＵ（Central Processing Unit）１８１と、メモリ１８２と、ＨＤＤ（Hard Disk Drive）等の外部記憶装置１８３と、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）やＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory）等の可搬性を有する記憶媒体１８４から情報を読み出す読取装置１８５と、キーボードやマウスなどの入力装置１８６と、ディスプレイなどの出力装置１８７と、通信ネットワークに接続するためのＮＩＣ（Network Interface Card）等の通信装置１８８と、を備えた一般的なコンピュータ１８０で実現できる。
【００３３】
例えば、記憶部１１１は、ＣＰＵ１８１がメモリ１８２又は外部記憶装置１８３を利用することにより実現可能であり、制御部１１７は、外部記憶装置１８３に記憶されている所定のプログラムをメモリ１８２にロードしてＣＰＵ１８１で実行することで実現可能であり、入力部１２３は、ＣＰＵ１８１が入力装置１８６を利用することで実現可能であり、出力部１２４は、ＣＰＵ１８１が出力装置１８７を利用することで実現可能であり、通信部１２５は、ＣＰＵ１８１が通信装置１８８を利用することで実現可能である。
【００３４】
この所定のプログラムは、読取装置１８５を介して記憶媒体１８４から、あるいは、通信装置１８８を介してネットワークから、外部記憶装置１８３にダウンロードされ、それから、メモリ１８２上にロードされてＣＰＵ１８１により実行されるようにしてもよい。また、読取装置１８５を介して記憶媒体１８４から、あるいは、通信装置１８８を介してネットワークから、メモリ１８２上に直接ロードされ、ＣＰＵ１８１により実行されるようにしてもよい。
【００３５】
図４は、端末１３０の概略図である。
【００３６】
図示するように、端末１３０は、記憶部１３１と、制御部１３７と、入力部１４５と、出力部１４６と、第一の通信部１４７と、第二の通信部１４８と、を備える。
【００３７】
記憶部１３１は、データ記憶領域１３２と、プロトコルコード記憶領域１３３と、更新バージョン管理情報記憶領域１３４と、鍵情報記憶領域１３５と、を備える。
【００３８】
データ記憶領域１３２には、サービス提供者装置１１０から受信した環境パラメータが記憶される。
【００３９】
プロトコルコード記憶領域１３３には、サービス提供者装置１１０から受信した、各々のプロトコルにおける各々のバージョン毎のプロトコルコードが格納される。
【００４０】
更新バージョン管理情報記憶領域１３４には、ＩＣカード１５０に搭載すべきプロトコルのバージョンを特定する情報が格納される。
【００４１】
鍵情報記憶領域１３５には、ＩＣカード１５０との間で送受信する情報を暗号化するために使用される鍵を特定する情報が格納される。
【００４２】
制御部１３７は、プロトコル更新部１３８と、認証処理部１３９と、コマンド処理部１４０と、コマンド生成部１４１と、ＩＣカードアクセス部１４２と、送受信制御部１４３と、を備える。
【００４３】
プロトコル更新部１３８は、サービス提供者装置１１０から更新するプロトコルコードを取得する処理を制御する。
【００４４】
認証処理部１３９は、ＩＣカード１５０を認証する処理を制御する。
【００４５】
コマンド処理部１４０は、ＩＣカード１５０から受信したコマンドに対応する処理を制御する。
【００４６】
コマンド生成部１４１は、ＩＣカード１５０に送信するコマンドを生成する処理を制御する。
【００４７】
ＩＣカードアクセス部１４２は、後述する第二の通信部１４８を介した情報の送受信を制御する。
【００４８】
送受信制御部１４３は、後述する第一の通信部１４７を介した情報の送受信を制御する。
【００４９】
入力部１４５は、情報の入力を受け付ける。
【００５０】
出力部１４６は、情報を出力する。
【００５１】
第一の通信部１４７は、ネットワーク１７０を介して情報を送受信するためのインターフェースである。
【００５２】
第二の通信部１４８は、ＩＣカード１５０との間で情報を送受信するためのインターフェースである。
【００５３】
以上に記載した端末１３０は、例えば、図５（コンピュータ１９０の概略図）に示すような、ＣＰＵ１９１と、メモリ１９２と、ＨＤＤ等の外部記憶装置１９３と、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の可搬性を有する記憶媒体１９４から情報を読み出す読取装置１９５と、キーボードやマウスなどの入力装置１９６と、ディスプレイなどの出力装置１９７と、通信ネットワークに接続するためのＮＩＣ等の通信装置１９８と、ＩＣカード１５０に対して情報を読み書きすることのできるリーダライタ１９９と、を備えたコンピュータ１９０で実現できる。
【００５４】
例えば、記憶部１３１は、ＣＰＵ１９１がメモリ１９２又は外部記憶装置１９３を利用することにより実現可能であり、制御部１３７は、外部記憶装置１９３に記憶されている所定のプログラムをメモリ１９２にロードしてＣＰＵ１９１で実行することで実現可能であり、入力部１４５は、ＣＰＵ１９１が入力装置１９６を利用することで実現可能であり、出力部１４６は、ＣＰＵ１９１が出力装置１９７を利用することで実現可能であり、第一の通信部１４７は、ＣＰＵ１９１が通信装置１９８を利用することで実現可能であり、第二の通信部１４８は、ＣＰＵ１９１がリーダライタ１９９を利用することで実現可能である。
【００５５】
この所定のプログラムは、読取装置１９５を介して記憶媒体１９４から、あるいは、通信装置１９８を介してネットワークから、外部記憶装置１９３にダウンロードされ、それから、メモリ１９２上にロードされてＣＰＵ１９１により実行されるようにしてもよい。また、読取装置１９５を介して記憶媒体１９４から、あるいは、通信装置１９８を介してネットワークから、メモリ１９２上に直接ロードされ、ＣＰＵ１９１により実行されるようにしてもよい。
【００５６】
図６は、ＩＣカード１５０の概略図である。
【００５７】
図示するように、ＩＣカード１５０は、記憶部１５１と、制御部１５８と、通信部１６５と、を備える。
【００５８】
記憶部１５１は、データ記憶領域１５２と、実行プロトコル情報記憶領１５３と、プロトコル情報記憶領域１５４と、プロトコル更新状況情報記憶領域１５５と、鍵情報記憶領域１５６と、を備える。
【００５９】
データ記憶領域１５２には、後述するサービスアプリケーション部１６０でサービスを提供するのに必要な情報が格納される。
【００６０】
実行プロトコル情報記憶領１５３には、ＩＣカード１５０で実行されるプロトコルを特定する情報が格納される。
【００６１】
プロトコル情報記憶領域１５４には、端末１３０から受信したプロトコルコードが格納される。
【００６２】
プロトコル更新状況情報記憶領域１５５には、実行プロトコル情報記憶領域１５３に記憶されている実行中のプロトコルのバージョンを特定する情報と、プロトコル情報記憶領域１５４に記憶されるプロトコルコードの保管状況を特定する情報（ここでは、シーケンス情報）と、が格納される。
【００６３】
鍵情報記憶領域１５６には、端末１３０との間で送受信する情報を暗号化するために使用される鍵を特定する情報が格納される。
【００６４】
制御部１５８は、コマンド解析部１５９と、サービスアプリケーション部１６０と、プロトコル実行部１６１と、プロトコルコード格納部１６２と、送受信制御部１６３と、を備える。
【００６５】
コマンド解析部１５９は、端末１３０より受信したコマンドを解析する処理を制御する。
【００６６】
サービスアプリケーション部１６０は、コマンド解析部１５９で解析されたコマンドに対応して実行する処理を制御する。
【００６７】
プロトコル実行部１６１は、端末１３０との間で実行プロトコル情報記憶領域１５３に記憶されているプロトコルコードに従った処理を制御する。
【００６８】
プロトコルコード格納部１６２は、端末１３０より受信したプロトコルコードをプロトコル情報記憶領域１５４に格納するとともに、プロトコル更新状況情報記憶領域１５５にプロトコルコードの保管情報を特定する情報を格納する処理を制御する。
【００６９】
送受信制御部１６３は、通信部１６５を介した情報の送受信処理を制御する。
【００７０】
通信部１６５は、端末１３０との間で情報を送受信するためのインターフェースである。
【００７１】
以上に記載したＩＣカード１５０は、例えば、図７（コンピュータ２００の概略図）に示すような、ＣＰＵ２０１と、メモリ２０２と、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）等の記憶装置２０３と、リーダライタとの間で情報を送受信することのできる通信装置２０４と、を備えたコンピュータ２００で実現できる。
【００７２】
例えば、記憶部１５１は、ＣＰＵ２０１がメモリ２０２又は記憶装置２０３を利用することにより実現可能であり、制御部１５８は、記憶装置２０３に記憶されている所定のプログラムをメモリ２０２にロードしてＣＰＵ２０１で実行することで実現可能であり、通信部１６５６は、ＣＰＵ２０１が通信装置２０４を利用することで実現可能である。
【００７３】
なお、メモリ２０２及び記憶装置２０３については、セキュリティを考慮して、耐タンパ性を有するものを使用することが望ましい。
【００７４】
図８は、サービス提供者装置１１０から端末１３０に更新するプロトコルコードを送信する処理を示すシーケンス図である。
【００７５】
まず、サービス提供者装置１１０のプロトコル更新処理部１１９は、入力部１２３を介して、ＩＣカード１５０と端末１３０との間の通信容量のうち、プロトコル実行中に余分に送信可能なデータ量がどの程度あるのかを特定する環境パラメータの入力を受け付ける（Ｓ１０）。このようにして入力を受け付けた環境パラメータについては、プロトコル更新処理部１１９が、環境パラメータ情報記憶領域１１２に記憶する。
【００７６】
次に、サービス提供者装置１１０のプロトコル更新処理部１１９は、入力部１２３を介して、更新するプロトコルコードと、当該プロトコルコードのバージョンを特定する情報の入力を受け付ける（Ｓ１１）。そして、プロトコル更新処理部１１９は、このようにして入力を受け付けたプロトコルコードについては、プロトコルコード記憶領域１１３に記憶し、当該プロトコルコードのバージョンを特定するバージョン情報については、更新バージョン管理情報記憶領域１１４に記憶する。
【００７７】
なお、プロトコルコードについては、暗号アルゴリズムの脆弱性情報、ＩＣカード１５０の処理能力や通信能力、提供するサービスの要件（厳密な認証を要求するのか素早い認証を要求するのかなど）等の情報を基に生成される。
【００７８】
次に、プロトコル更新処理部１１９は、ステップＳ１０で入力を受け付けた環境パラメータを、通信部１２５を介して、端末１３０Ａに送信する（Ｓ１２）。
【００７９】
また、プロトコル更新処理部１１９は、ステップＳ１１で入力を受け付けたプロトコルコード及びバージョン情報を端末１３０Ａに送信する（Ｓ１３）。
【００８０】
これらの情報を受信した端末３０Ａでは、プロトコル更新部１３８が、ステップＳ１２で受信した環境パラメータをデータ記憶領域１３２に格納し（Ｓ１４）、ステップＳ１３で受信したプロトコルコードのコード本体をプロトコルコード記憶領域１３３に格納し（Ｓ１５）、ステップＳ１３で受信したバージョン情報を更新バージョン管理情報記憶領域１３４に格納する（Ｓ１６）。
【００８１】
そして、プロトコル更新部１３８は、送受信制御部１４３及び第一の通信部１４７を介して、サービス提供者装置１１０に対し、保管が完了した旨を示すレスポンスを送信する（Ｓ１７）。
【００８２】
次に、サービス提供者装置１１０のプロトコル更新処理部１１９は、ステップＳ１０で入力を受け付けた環境パラメータを、通信部１２５を介して、端末１３０Ｂに送信する（Ｓ１８）。
【００８３】
また、プロトコル更新処理部１１９は、ステップＳ１１で入力を受け付けたプロトコルコード及びバージョン情報を端末１３０Ｂに送信する（Ｓ１９）。
【００８４】
これらの情報を受信した端末３０Ｂでは、プロトコル更新部１３８が、ステップＳ１８で受信した環境パラメータをデータ記憶領域１３２に格納し（Ｓ２０）、ステップＳ１９で受信したプロトコルコードのコード本体をプロトコルコード記憶領域１３３に格納し（Ｓ２１）、ステップＳ１９で受信したバージョン情報を更新バージョン管理情報記憶領域１３４に格納する（Ｓ２０）。
【００８５】
そして、プロトコル更新部１３８は、送受信制御部１４３及び第一の通信部１４７を介して、サービス提供者装置１１０に対し、保管が完了した旨を示すレスポンスを送信する（Ｓ２３）。
【００８６】
そして、サービス提供者装置１１０と、端末１３０と、の間では、ステップＳ１２〜ステップＳ１７までで特定される処理を、更新が必要な全ての端末１３０に対して繰り返し行う。
【００８７】
以上に示したシーケンスでは、複数の端末１３０Ａ、１３０Ｂ、・・・にプロトコルコードを送信する例を示しているが、単一の端末１３０に対して環境パラメータ及びプロトコルコードを送信するようにしてもよい。
【００８８】
また、サービス提供者装置１１０と端末１３０との間で特に認証処理、署名生成／検証処理、データ暗号／復号処理等の処理をしていないが、より安全にするために、鍵情報記憶領域１１５及び鍵情報記憶領域１３５に格納されている鍵を用いて、認証処理、署名生成／検証処理、データ暗号／復号処理等のうち、１つ以上の処理を行ってもよい。
【００８９】
図９〜１２は、端末１３０とＩＣカード１５０との間でプロトコルコマンドを送受信する際に、プロトコルコードを更新する処理を示すシーケンス図である。
【００９０】
まず、端末１３０は、ＩＣカード１５０が読み取り可能な位置に置かれると、コマンド生成部１４１が、ＩＣカード１５０に対する認証情報の送信指示である第一のプロトコルコマンドを生成する（Ｓ３０）。
【００９１】
ここで、第一のプロトコルコマンドには、端末１３０がＩＣカード１５０を認証するために必要となる基礎データが含まれる。
【００９２】
そして、端末１３０のＩＣカードアクセス部１４２は、ステップＳ３０で生成された第一のプロトコルコマンドを、第二の通信部１４８を介して、ＩＣカード１５０に送信する（Ｓ３１）。
【００９３】
このような第一のプロトコルコマンドを受信したＩＣカード１５０では、コマンド解析部１５９が第一のプロトコルコマンドを解析して、対応するサービスアプリケーション部１６０に処理を受け渡し、サービスアプリケーション部１６０は、プロトコル実行部１６１に第一のプロトコルコマンドを出力する（Ｓ３２）。
【００９４】
第一のプロトコルコマンドの入力を受けたプロトコル実行部１６１では、入力された第一のプロトコルコマンドに従って、通常のプロトコル処理（例えば、端末１３０においてＩＣカード１５０を認証するために必要なデータ（ＩＤ等）の生成処理等）を行い、第一のプロトコルコマンドレスポンスデータを生成する（Ｓ３３）。
【００９５】
次に、プロトコル実行部１６１は、ＩＣカード１５０において実行中のプロトコルのバージョンを特定する情報と、プロトコル情報記憶領域１５４に記憶されているプロトコルコードの保管状況を特定するシーケンス情報と、をプロトコル更新状況記憶領域１５５から取得して、プロトコルコード状況とする（Ｓ３４）。
【００９６】
ここで、シーケンス情報は、プロトコルコードのどの部分までが、プロトコル情報記憶領域１５４に記憶されているかを示す情報である。本実施形態においては、シーケンス情報として、プロトコルコードの何バイト目までがプロトコル情報記憶領域１５４に格納されているかを示す数値を用いているが、このような態様に限定されず、分割されたプロトコルコードに先頭から順に連続する数値を割り当てておき、割り当てられた数値から、既にプロトコル情報記憶領域１５４に格納されている分割コードに対応する数値を示すものでもよい。なお、プロトコルコードの格納が完了している場合には、プロトコルコードの格納が完了していることを示す識別情報によりシーケンス情報を構成する。
【００９７】
そして、プロトコル実行部１６１は、例えば、図１３（第一のプロトコルコマンドレスポンス１７１の概略図）に示すように、ステップＳ３３で生成した第一のプロトコルコマンドレスポンスデータ１７１ａに、ステップＳ３４で取得したプロトコルコード状況１７１ｂを付加することで、第一のプロトコルコマンドレスポンス１７１を生成する（Ｓ３５）。
【００９８】
なお、図示するように、プロトコルコード状況１７１ｂには、プロトコルバージョン１７１ｃと、シーケンス情報１７１ｄと、を特定する情報が含まれる。
【００９９】
そして、プロトコル実行部１６１は、ステップＳ３５で生成した第一のプロトコルコマンドレスポンス１７１をサービスアプリケーション部１６０に出力し（Ｓ３６）、サービスアプリケーション部１６０は、第一のプロトコルコマンドレスポンス１７１を送受信制御部１６３に送り、送受信制御部１６３は、通信部１６５を介して、第一のプロトコルコマンドレスポンス１７１を端末１３０に送信する（Ｓ３７）。
【０１００】
第一のプロトコルコマンドレスポンス１７１を受信した端末１３０では、認証処理部１３９が、第一のプロトコルコマンドレスポンス１７１に含まれている第一のプロトコルコマンドレスポンスデータ１７１ａを用いて、ＩＣカード１５０の認証を行う（Ｓ３８）。
【０１０１】
ここで、認証処理部１３９は、ＩＣカード１５０の認証に失敗した場合には、処理を中止するが、ここでは、認証が成功したものとして説明を行う。
【０１０２】
ＩＣカード１５０の認証に成功すると、プロトコル更新部１３８は、ステップＳ３７で受信した第一のプロトコルコマンドレスポンス１７１からプロトコルバージョン１７１ｃを取得する（Ｓ３９）。
【０１０３】
次に、プロトコル更新部１３８は、取得したプロトコルバージョン１７１ｃと、更新バージョン管理情報記憶領域１３４に記憶されているプロトコルバージョンと、を確認する（Ｓ４０）。その結果、プロトコル更新部１３８は、取得したプロトコルバージョン１７１ｃが、更新バージョン管理情報記憶領域１３４に記憶されているプロトコルバージョンと一致する場合には、ステップＳ４６に進むが、ここでは、取得したプロトコルバージョン１７１ｃが、更新バージョン管理情報記憶領域１３４に記憶されているプロトコルバージョンよりも古いものとして説明する。
【０１０４】
そして、プロトコル更新部１３８は、プロトコルバージョン１７１ｃが、更新バージョン管理情報記憶領域１３４に記憶されているプロトコルバージョンよりも古い場合には、ステップＳ３７で受信した第一のプロトコルコマンドレスポンス１７１からシーケンス情報１７１ｄを取得する（Ｓ４１）。
【０１０５】
次に、プロトコル更新部１３８は、ステップＳ４１で取得したシーケンス情報１７１ｄを確認する（Ｓ４２）。そして、プロトコル更新部１３８は、ステップＳ４１で取得したシーケンス情報１７１ｄが、更新するプロトコルコードの格納が完了していることを示す識別情報である場合には、ステップＳ４６に進むが、ここでは、ステップＳ４１で取得したシーケンス情報１７１ｄが、プロトコルコードの格納が完了していることを示す識別情報ではないものとして説明を行う。
【０１０６】
そして、プロトコル更新部１３８は、ステップＳ４２において、更新用のプロトコルコードの全てがＩＣカード１５０に格納されていないと判断された場合には、プロトコル情報記憶領域１５４に記憶されているプロトコルコードを取得する（Ｓ４３）。
【０１０７】
次に、プロトコル更新部１３８は、データ記憶領域１５２に格納されている環境パラメータを取得する（Ｓ４４）。なお、環境パラメータは、ＩＣカード１５０が読み取り可能にされた端末１３０に対応したものを取得する。
【０１０８】
次に、プロトコル更新部１３８は、ステップＳ４１で取得したシーケンス情報１７１ｄと、ステップＳ４４で取得された環境パラメータと、から更新するプロトコルコードの分割を行う（Ｓ４５）。
【０１０９】
更新するプロトコルコードの分割は、例えば、図１４（プロトコルコードの分割方法を示す概略図）に示すように、更新するプロトコルコード１７２において、既にＩＣカード１５０に格納されているバイト数をシーケンス情報１７１ｄで特定する。次に、環境パラメータで特定される送信可能なデータサイズより送信可能なバイト数を特定して、既に送信されているバイト数の次から当該送信可能なバイト数のデータを抽出することにより、分割プロトコルコード１７２ａを生成する。
【０１１０】
なお、環境パラメータで特定される送信可能なデータサイズが、更新するプロトコルコードよりも大きな場合には、ステップＳ４５に示すプロトコルコードの分割処理については不要である。
【０１１１】
次に、端末１３０のコマンド生成部１４１は、ステップＳ４０で、プロトコルバージョン１７１ｃが、更新バージョン管理情報記憶領域１３４に記憶されているプロトコルバージョンと一致する場合には、一致するバージョンのプロトコルコードによる第二のプロトコルコマンド処理用データ（ここでは、ＩＣカード１５０において端末１３０を認証するための認証データを含む認証指示データ）を生成し、プロトコルバージョン１７１ｃが、更新バージョン管理情報記憶領域１３４に記憶されているプロトコルバージョンと一致しない場合には、プロトコルバージョン１７１ｃで特定されるバージョンのプロトコルコードによる第二のプロトコルコマンド処理用データを生成する（Ｓ４６）。
【０１１２】
次に、コマンド生成部１４１は、プロトコル更新コマンドを生成する（Ｓ４７）。
【０１１３】
プロトコル更新コマンドは、ステップＳ４２で確認したシーケンス情報が、更新するプロトコルコードの格納が完了していることを示す識別情報である場合には、ＩＣカードにおいてプロトコルコードの更新を指示するコマンドであり、ステップＳ４２で確認したシーケンス情報が、更新するプロトコルコードの格納が完了していることを示す識別情報ではない場合には、ステップＳ４５で分割した分割プロトコルコードで構成されるコマンドとなる。
【０１１４】
そして、コマンド生成部１４１は、例えば、図１５（第二のプロトコルコマンドの概略図）に示すように、ステップＳ４６で生成したプロトコルコマンド処理用データ１７３ａに、ステップＳ４７で生成したプロトコル更新コマンド１７３ｂを結合することで、第二のプロトコルコマンドを生成する（Ｓ４８）。
【０１１５】
このようにして生成された第二のプロトコルコマンドは、ＩＣカードアクセス部１４２が、第二の通信部１４８を介してＩＣカード１５０に送信する（Ｓ４９）。
【０１１６】
このような第二のプロトコルコマンドを受信したＩＣカード１５０では、コマンド解析部１５９が第二のプロトコルコマンドを解析して、対応するサービスアプリケーション部１６０に処理を受け渡し、サービスアプリケーション部１６０は、プロトコル実行部１６１に第二のプロトコルコマンドを出力する（Ｓ５０）。
【０１１７】
第二のプロトコルコマンドの入力を受けたプロトコル実行部１６１では、入力された第二のプロトコルコマンドに従って、通常のプロトコル処理（ここでは、端末１３０の検証処理等）を行い、第二のプロトコルコマンドレスポンスデータを生成する（Ｓ５１）。
【０１１８】
次に、プロトコル実行部１６１は、第二のプロトコルコマンドからプロトコル更新コマンド１７３ａを取得する（Ｓ５２）。
【０１１９】
そして、プロトコル実行部１６１は、プロトコル更新コマンド１７３ａの中に分割プロトコルコードが含まれているか否かを確認し（Ｓ５３）、分割プロトコルコードが含まれている場合にはステップＳ５４〜Ｓ５７を行い（ステップＳ５８〜Ｓ６２の処理は行わない）、含まれていない場合にはステップＳ５８に進み処理を行う。
【０１２０】
ステップＳ５３でプロトコル更新コマンド１７３ａの中に分割プロトコルコードが含まれていると判断された場合には、プロトコル実行部１６１は、分割プロトコルコードをプロトコルコード格納部１６２に出力し、プロトコルコード格納部１６２がプロトコル情報記憶領域１５４に記憶する（Ｓ５５）。
【０１２１】
そして、プロトコルコード格納部１６２は、記憶された分割プロトコルコードのバイト数を前回のバイト数に加算することにより、格納されたプロトコルコードの進捗状況を示すシーケンス情報を生成して、プロトコル更新状況記憶領域１５５に記憶する（Ｓ５６）。なお、更新用のプロトコルコードが全てプロトコル情報記憶領域１５４に記憶されたと判断された場合は、更新用のプロトコルコードの格納が完了したことを示す識別情報によりシーケンス情報を設定する。ここで、このような識別情報は、例えば、全ビットが１であるデータを指すが、これに限定するものではない。
【０１２２】
次に、プロトコルコード格納部１６２は、処理が終了したことを示すレスポンスをプロトコル実行部１６１に出力する（Ｓ５７）。
【０１２３】
一方、ステップＳ５８では、プロトコル実行部１６１は、プロトコル更新コマンド１７３ｂの中にプロトコル変更コマンドが含まれている否かを確認する（Ｓ５８）。そして、プロトコル変更コマンドが含まれていないと判断された場合には、ステップＳ５９〜Ｓ６２の処理を行わずに、ステップＳ６３に進む。
【０１２４】
そして、プロトコル実行部１６１は、ステップＳ５８において、プロトコル更新コマンド１７３ｂの中にプロトコル変更コマンドが含まれていると判断した場合には、プロトコル変更コマンドをプロトコルコード格納部１６２に出力し、プロトコルコード格納部１６２は、プロトコルコードの変換を行う（Ｓ６０）。
【０１２５】
具体的には、プロトコルコード格納部１６２は、プロトコル情報記憶領域１５４に記憶されている更新用のプロトコルコードを抽出して、実行プロトコル情報記憶領域１５３に記憶することで、プロトコルコードを更新する。
【０１２６】
そして、プロトコルコード格納部１６２は、ステップＳ６０で変更したプロトコルコードのバージョンを特定する情報をプロトコル更新状況記憶領域１５５に記憶する（Ｓ６１）。
【０１２７】
次に、プロトコルコード格納部１６２は、処理が終了したことを示すレスポンスをプロトコル実行部１６１に出力する（Ｓ６２）。
【０１２８】
そして、プロトコル実行部１６１は、ステップＳ５１で生成した第二のプロトコルコマンドレスポンスにプロトコル変更完了フラグを付与して、サービスアプリケーション部１６０に出力する（Ｓ６３）。
【０１２９】
次に、サービスアプリケーション部１６０は、入力した第二のプロトコルコマンドレスポンスを送受信制御部１６３に出力し、送受信制御部１６３は、通信部１６５を介して、端末１３０に送信する（Ｓ６４）。
【０１３０】
次に、端末１３０では、認証処理部１３９が、ステップＳ６４で受信した第二のプロトコルコマンドレスポンスの検証を行う（Ｓ６５）。
【０１３１】
そして、認証処理部１３９は、ＩＣカード１５０での端末認証に失敗していると判断した場合には、処理を中止するが、ここでは、端末認証が成功したものとして説明を行う。
【０１３２】
次に、ステップＳ６５で端末認証に成功していると判断された場合には、端末１３０のコマンド生成部１４１は、予め定められたサービス提供コマンドを生成する（Ｓ６６）。
【０１３３】
そして、ＩＣカードアクセス部１４２は、第二の通信部１４８を介して、ＩＣカード１５０に対して、ステップＳ６６で生成したサービス提供コマンドを送信する（Ｓ６７）。
【０１３４】
このようなサービス提供コマンドを受信したＩＣカード１５０では、コマンド解析部１５９がサービス提供コマンドを解析して、解析結果に応じたサービスの提供をサービスアプリケーション部１６０に指示し、サービスアプリケーション部１６０が指示されたサービスの提供を行う（Ｓ６８）。
【０１３５】
そして、サービスアプリケーション部１６０は、サービス提供コマンドレスポンスを生成して、送受信制御部１６３に出力し、送受信制御部１６３が通信部を介して端末１３０に送信する（Ｓ６９）。
【０１３６】
以上のような処理を行うことにより、端末１３０と、ＩＣカード１５０と、の間で相互認証及びサービスの提供と、プロトコルコードの更新と、を同時に行うことが可能となる。
【０１３７】
また、本実施形態によれば、プロトコルコードを分割してＩＣカード１５０に送ることができるようにされているため、複数の端末１３０を介して、プロトコルコードの更新を行うことができるようになる。即ち、ＩＣカード１５０の利用者は、プロトコルコードの更新を意識することなく、任意に選択された端末１３０を介してサービスの提供を受けることにより、分割されたプロトコルコードが次々にＩＣカード１５０に蓄積され、全てのプロトコルコードを受信することでプロトコルコードの更新が可能となる。
【０１３８】
なお、以上のシーケンスでは、相互認証を端末１３０とＩＣカード１５０との間で２回のデータ送受信を行うことにより実現しているが、送受信の回数が２回以上の場合でも同様の効果を得ることは可能である。また、ＩＣカード１５０の認証を行ってから、端末１３０の認証を実施しているが、これも入れ替えることは可能であり、入れ替えたことによる影響はない。
【０１３９】
また、端末１３０とＩＣカード１５０との間で送受信する少なくとも一部のデータに対して、特に署名生成／検証処理、データ暗号／復号処理等の処理をしていないが、より安全にするために、鍵情報記憶領域１３５及び鍵情報記憶領域１５６に格納されている鍵を用いて、端末１３０とＩＣカード１５０との間で送受信する少なくとも一部のデータに対して、署名生成／検証処理、データ暗号／復号処理等のうち、１つ以上の処理を行ってもよい。
【０１４０】
なお、以上に記載した実施形態においては、機器認証プロトコルを更新する処理として説明したが、このような態様に限定されず、ＩＣカードの制御を行うための制御データ（制御プロトコル）のプロトコルコードを更新する際に、本発明を利用することができる。
【図面の簡単な説明】
【０１４１】
【図１】サービス提供システムの概略図。
【図２】サービス提供者装置の概略図。
【図３】コンピュータの概略図。
【図４】端末の概略図。
【図５】コンピュータの概略図。
【図６】ＩＣカードの概略図。
【図７】コンピュータの概略図。
【図８】サービス提供者装置から端末に更新するプロトコルコードを送信する処理を示すシーケンス図。
【図９】プロトコルコードを更新する処理を示すシーケンス図。
【図１０】プロトコルコードを更新する処理を示すシーケンス図。
【図１１】プロトコルコードを更新する処理を示すシーケンス図。
【図１２】プロトコルコードを更新する処理を示すシーケンス図。
【図１３】第一のプロトコルコマンドレスポンスの概略図。
【図１４】プロトコルコードの分割方法を示す概略図。
【図１５】第二のプロトコルコマンドの概略図。
【符号の説明】
【０１４２】
１００  サービス提供システム
１１０  サービス提供者装置
１１１  記憶部
１１２  環境パラメータ情報記憶領域
１１３  プロトコルコード記憶領域
１１４  更新バージョン管理情報記憶領域
１１５  鍵情報記憶領域
１１７  制御部
１１８  サービス提供部
１１９  プロトコル更新処理部
１２０  コマンド生成部
１２１  送受信制御部
１２３  入力部
１２４  出力部
１２５  通信部
１３０  端末
１３１  記憶部
１３２  データ記憶領域
１３３  プロトコルコード記憶領域
１３４  更新バージョン管理情報記憶領域
１３５  鍵情報記憶領域
１３７  制御部
１３８  プロトコル更新部
１３９  認証処理部
１４０  コマンド処理部
１４１  コマンド生成部
１４２  ＩＣカードアクセス部
１４３  送受信制御部
１４５  入力部
１４６  出力部
１４７  第一の通信部
１４８  第二の通信部
１５０  ＩＣカード
１５１  記憶部
１５２  データ記憶領域
１５３  実行プロトコル情報記憶領
１５４  プロトコル情報記憶領域
１５５  プロトコル更新状況情報記憶領域
１５６  鍵情報記憶領域
１５８  制御部
１５９  サービスアプリケーション部
１６０  コマンド解析部
１６１  プロトコル実行部
１６２  プロトコルコード格納部
１６３  送受信制御部
１６５  通信部
【図１】
0005235460.tif 000002
【図２】
0005235460.tif 000003
【図３】
0005235460.tif 000004
【図４】
0005235460.tif 000005
【図５】
0005235460.tif 000006
【図６】
0005235460.tif 000007
【図７】
0005235460.tif 000008
【図８】
0005235460.tif 000009
【図９】
0005235460.tif 000010
【図１０】
0005235460.tif 000011
【図１１】
0005235460.tif 000012
【図１２】
0005235460.tif 000013
【図１３】
0005235460.tif 000014
【図１４】
0005235460.tif 000015
【図１５】
0005235460.tif 000016