(57)【要約】　　　（修正有）【課題】一旦設定された認証シーケンスが変更されてもプログラムを変更することなく対応できるＩＣカード制御アプリケーションを提供する。【解決手段】ＩＣカード制御アプリケーションは、シーケンス処理の識別名、シーケンス処理の実行に必要な入力パラメータ情報、処理結果を表す出力パラメータ情報、及びシーケンス処理手順を格納した定義ファイルとデータの転送を制御するシーケンス制御部とを有し、認証シーケンスを更改する際、認証シーケンス定義ファイルの変更だけで対応する。【選択図】　　　　図２
2004030055.tif 000002
【特許請求の範囲】
【請求項１】
ＩＣカード端末又はサーバに搭載され、ＩＣカードに格納されているＩＣカードアプリケーションとの間でシーケンス処理を行うＩＣカード制御アプリケーションであって、
シーケンス処理の識別名、シーケンス処理の実行に必要な入力パラメータ情報、処理結果を表す出力パラメータ情報、及びシーケンス処理手順を各シーケンス処理毎に格納した定義ファイルと、
所定の関数処理を実行する内部コマンド実行部と、
パラメータから送信ＡＰＤＵコマンドを作成すると共に、ＩＣカードアプリケーションから送信されてきた受信ＡＰＤＵコマンドをデコードするＡＰＤＵコマンド実行部と、
前記送信ＡＰＤＵコマンドをＩＣカードアプリケーションに送信すると共にＩＣカードアプリケーションから送信されてきたＡＰＤＵコマンドを受信するＡＰＤＵ送受信部と、
前記定義ファイルから、指定されたシーケンス処理に対応する情報を読み出すと共に、当該シーケンス処理において規定されているシーケンス処理手順に基づき、定義ファイルと、内部コマンド実行部と、ＡＰＤＵコマンド実行部との間のデータの転送を制御するシーケンス制御部とを具えることを特徴とするＩＣカード制御アプリケーション。
【請求項２】
前記定義ファイルは、シーケンス処理手順として、処理を実行するコマンド実行部の識別名と、実行すべきコマンド名と、各処理においてコマンド実行部に供給される入力パラメータ情報とを含むことを特徴とする請求項１に記載のＩＣカード制御アプリケーション。
【請求項３】
前記ＩＣカードを複数のＩＣカードアプリケーションが格納されているマルチアプリケーションのＩＣカードとし、前記定義ファイルは、ＩＣカードアプリケーション毎に規定された定義ファイルを有することを特徴とする請求項１又は２に記載のＩＣカード制御アプリケーション。
【請求項４】
請求項１から３までのいずれか１項に記載のＩＣカード制御アプリケーションにおいて、前記内部コマンド実行部及びＡＰＤＵコマンド実行部が実行する各処理のプログラムは、内部コマンド実行部及びＡＰＤＵコマンド実行部にそれぞれ実装されていることを特徴とするＩＣカード制御アプリケーション。
【請求項５】
前記シーケンス処理部を、当該ＩＣカード制御アプリケーションとＩＣカードアプリケーションと間において内部認証シーケンスを実行する認証シーケンス処理部とし、前記定義ファイルは、シーケンス処理手順として、内部コマンド実行部において実行されるチャレンジの生成処理と、ＡＰＤＵコマンド実行部において実行される、生成されたチャレンジのＡＰＤＵコマンドへの変換処理及びＩＣカードアプリケーションから受信した受信ＡＰＤＵコマンドのデコード処理と、内部コマンド実行部におけるデコードされた署名データの検証処理とを含むことを特徴とする請求項１から４までのいずれか１項に記載のＩＣカード制御アプリケーション。
【請求項６】
請求項１から５までのいずれか１項に記載のＩＣカード制御アプリケーションが格納されている記録媒体。
【請求項７】
請求項１から５までのいずれか１項に記載のＩＣカード制御アプリケーションが搭載されているＩＣカード端末。
【請求項８】
請求項１から５までのいずれか１項に記載のＩＣカード制御アプリケーションが搭載されているＩＣカードサーバ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＣカードと端末又はサーバとの間で各種シーケンス処理を行うＩＣカード制御アプリケーション、特に多様なシーケンス処理に柔軟に対応することができるＩＣカード制御アプリケーションに関するものである。さらに、本発明は、このようなＩＣカード制御アプリケーションが搭載されているＩＣカード端末及びＩＣカードサーバに関するものである。
【０００２】
【従来の技術】
ＩＣカードシステムにおいては、ＩＣカードサーバとＩＣカードとの間のデータの交換である各種のシーケンス処理が実行される。例えば、ＩＣカードとサーバとの間のデータ交換に先立って、相互認証シーケンスが実行される。この相互認証シーケンスとして、ＩＣカードに格納されているＩＣカードアプリケーションの正当性を確認するための内部認証並びにサーバ又は端末装置に搭載されているＩＣカード制御アプリケーションの正当性を確認するための外部認証が実行される。そして、これら認証結果として正当である結果が確認された後、ＩＣカード制御アプリケーションからの要求がＩＣカードアプリケーションにより受け付けられ各種シーケンス処理が実行される。
【０００３】
シーケンス処理の一例である相互認証方法として、共通鍵暗号方式及び公開鍵暗号方式等の種々の方法が用いられている。従来、暗号及び署名処理は、一般的には提供される暗号ライブラリが用いられ、プログラムとして直接記述されている。また、認証処理シーケンス全体はＩＣカードアプリケーションの仕様やＩＣカードシステム全体について規定されているセキュリティに基づいて個々のシステム毎に個別に実装されている。
【０００４】
【発明が解決しようとする課題】
プロセッサの性能の向上に伴い、暗号解読のスピードも向上している。従って、暗号技術の向上に伴い、一旦設定されたチャレンジ長や暗号の種類を更改して一層高いセキュリティを確保する必要性も高くなっている。しかしながら、一旦設定されたチャレンジ長を変更したり或いは暗号の種類を変更することは、認証プロトコルのプログラムの更改につながり、極めて煩雑な変更手続を必要とする不都合があった。
【０００５】
認証シーケンス処理は全てのＩＣカードに必須の機能であり、高度のセキュリティの知識を要するためパッケージやライブラリとして提供されることが好ましい。しかし、ＩＣカード及びＩＣカードアプリケーションは限られたセキュリティ機能しか持たず、ＩＣカード毎に或いはＩＣカードアプリケーション毎に認証シーケンスが規定されているため、ＩＣカード制御アプリケーション側において統一的に認証シーケンス処理を定義又はライブラリ化することは困難であった。従って、端末装置又はサーバに搭載されているＩＣカード制御アプリケーションは、多様な認証シーケンスが搭載されているＩＣカード或いはＩＣカードアプリケーション毎に柔軟に対応でることが要請されている。
【０００６】
このようなＩＣカード制御アプリケーションの柔軟な対応は、認証シーケンス処理だけでなく、各種のシーケンス処理についても強く要請されている。すなわち、各種のシーケンス処理においても一旦設定された入力パラメータをその後修正又は変更する要求を多々あるため、このような要求に対して柔軟に対応できる必要がある。
【０００７】
従って、本発明の目的は、一旦設定された認証シーケンスが変更されてもプログラムを変更することなく柔軟に対応できるＩＣカード制御アプリケーションを提供することにある。
【０００８】
さらに、本発明の別の目的は、ＩＣカード毎に或いはＩＣカードのアプリケーション毎に認証シーケンスが相違しても単一のＩＣカード制御アプリケーションにより対応することができ、多様な認証シーケンスに柔軟に対応することができるＩＣカード制御アプリケーションを提供することにある。
【０００９】
【課題を解決するための手段】
本発明によるＩＣカード制御アプリケーションは、ＩＣカード端末又はサーバに搭載され、ＩＣカードに格納されているＩＣカードアプリケーションとの間でシーケンス処理を行うＩＣカード制御アプリケーションであって、
シーケンス処理の識別名、シーケンス処理の実行に必要な入力パラメータ情報、処理結果を表す出力パラメータ情報、及びシーケンス処理手順を各シーケンス処理毎に格納した定義ファイルと、
指定されたシーケンス処理手順に基づいて所定の関数処理を実行する内部コマンド実行部と、
前記内部コマンド実行部の関数処理により生成されたパラメータから送信ＡＰＤＵコマンドを作成すると共に、ＩＣカードアプリケーションから送信されてきた受信ＡＰＤＵコマンドをデコードするＡＰＤＵコマンド実行部と、
前記送信ＡＰＤＵコマンドをＩＣカードアプリケーションに送信すると共にＩＣカードアプリケーションから送信されてきたＡＰＤＵコマンドを受信するＡＰＤＵ送受信部と、
前記定義ファイルから、指定されたシーケンス処理に対応する情報を読み出すと共に、当該シーケンス処理において規定されているシーケンス処理手順に基づき、定義ファイルと、内部コマンド実行部と、ＡＰＤＵコマンド実行部との間のデータの転送を制御するシーケンス制御部とを具えることを特徴とする。
【００１０】
本発明では、各種シーケンス処理の実行に必要なプログラムと、シーケンス処理に用いられるデータとを分離する。そして、定義ファイルを設け、当該定義ファイルにはシーケンス処理の実行に必要な入力パラメータ情報及び出力パラメータ情報並びにシーケンス処理手順を格納する。さらに、本発明では、シーケンス制御部を設け、指定されたシーケンス処理の処理手順に基づいて定義ファイルと、内部コマンド実行部と、ＡＰＤＵコマンド実行部との間のデータの転送を制御する。この結果、一旦シーケンス処理に必要な各種のパラメータが設定された後に当該パラメータ又はその一部を修正或いは更改する必要性が生じても、プログラムを変更することなく定義ファイルの内容を修正するだけで対応することができる利点が達成される。
【００１１】
さらに、本発明では、処理の対象となるＩＣカードアプリケーション毎に規定された定義ファイルを有するので、ＩＣカードアプリケーション毎にシーケンス処理に必要なパラメータやデータ或いは処理手順が相違しても、単一のＩＣカード制御アプリケーションを用いて柔軟に対応することができる。さらに、実行すべきシーケンス処理毎に規定された定義ファイルを有することができるので、シーケンス処理の追加や変更の必要性が生じても定義ファイルを追加又は修正するだけ対応することができる。
【００１２】
さらに、各種シーケンス処理において指定されたコマンドを実行するためのプログラムは内部コマンド実行部及びＡＰＤＵコマンド実行部がそれぞれ有するので、定義ファイルは、処理シーケンスの識別名、処理シーケンスに必要な入力パラメータ情報、処理シーケンスの実行後返却される出力パラメータ情報と、各種処理を実行する際順次読み出されるコマンド実行部の識別名、及び実行すべきコマンド識別を有するだけで対応することができ、定義ファイルに格納される情報量を少なくすることができる。
【００１３】
【発明の実施の形態】
図１は本発明によるＩＣカードシステムの全体構成の一例を示す線図である。ＩＣカード１は、ＩＣカード端末２を介してサーバ３とデータ通信を行う。本例のＩＣカード１は、マルチアプリケーションシステムのＩＣカードであり、同一の又は異なるサービスプロバイダのサーバからダウンロードしたＮ個のＩＣカードアプリケーション１〜Ｎが格納されている。ＩＣカード端末２はＩＣカード端末アプリケーションを有し、サーバ３はＩＣカード制御アプリケーションを有し、サーバ３とＩＣカード１との間の認証シーケンス及びデータ通信はサーバ３に搭載されているＩＣカード制御アプリケーションの制御のもとで行われる。尚、ＩＣカード制御アプリケーションはサーバに搭載されている場合だけでなく、ＩＣカード端末２に搭載されている場合にも本発明を適用することができる。
【００１４】
図２は、本発明によるＩＣカード制御アプリケーションの一例の構成を示す線図である。ＩＣカード制御アプリケーションは、ＩＣカードに格納されているＩＣカードアプリケーションとの間において各種シーケンス処理を実行する際、実行すべきシーケンス処理の特定等の全体の制御を行うメイン処理部１０を有する。また、各種のシーケンスについて処理を行うシーケンス処理部１１を有する。このシーケンス処理部は、単一のシーケンス処理部により複数の各種シーケンスに対応することができ、或いはシーケンス毎にシーケンス処理部を設けることもできる。このシーケンス処理部１１はシーケンス制御部１２及び定義ファイル１３を有する。シーケンス制御部１２は、当該シーケンス処理における処理を制御し、例えば定義ファイル１３に格納されている情報の読み出し及び転送を制御を制御する。定義ファイル１３は、処理シーケンスの識別名、シーケンス処理の実行に必要な入力パラメータ情報、シーケンス処理手順、及び処理結果を表す出力パラメータ情報を各種シーケンス処理毎に並びに各種ＩＣカードアプリケーション毎に有する。さらに、このＩＣカード制御アプリケーションは、定義ファイル１３に格納されている入力パラメータ情報やＩＣカードアプリケーションから送られてきたデータについて定義ファイルに規定されたシーケンス出力手順に基づいて所定の内部関数処理を実行する内部コマンド実行部１４、内部コマンド実行部１４の関数処理により生成されたパラメータに基づいて送信ＡＰＤＵコマンドを作成すると共にＩＣカードアプリケーションから送られたきた受信ＡＰＤＵコマンドをデコードするＡＰＤＵコマンド実行部１５、及び送信ＡＰＤＵコマンドをＩＣカードアプリケーションに送信すると共にＩＣカードアプリケーションから送られてきたＡＰＤＵコマンドを受信するＡＰＤＵ送受信部１６を具える。
【００１５】
次に、シーケンス処理部１１に設けた定義ファイル１３について説明する。一例として、ＩＣカードに格納されているＩＣカードアプリケーション１と制御アプリケーションとの間で内部認証シーケンスを実行する際に用いられる定義ファイルを図３に示す。定義ファイルは、実行すべきシーケンスの識別名（本例の場合、内部認証シーケンス）、シーケンス処理の実行に必要な入力パラメータ情報（本例の場合、［入力パラメータ定義］）、処理結果を表す出力パラメータ情報（本例の場合、［出力パラメータ定義］、及びシーケンス処理手順（本例の場合、［シーケンス定義］、［処理１］、［処理２］、及び［処理３］）を有する。シーケンス定義の［処理１〜３］における「コマンド種類」は読み出されるコマンドの種類を示し、本例では内部コマンド又はＡＰＤＵコマンドが読み出される。また、コマンド名は、実行すべきコマンドないし処理の内容を示す。従って、［処理１］においては、内部コマンドが読み出され、内部コマンド実行部１３において入力パラメータ情報を用いてチャレンジの生成が行われる。また、［処理２］においては、ＡＰＤＵコマンドが読み出され、ＡＰＤＵコマンド実行部１４において送信ＡＰＤＵの生成、ＡＰＤＵ送受信部においてＡＰＤＵ送受信、ＡＰＤＵコマンド実行部１４にて受信ＡＰＤＵのデコードが行われる。さらに、［処理３］においては、内部コマンドが読み出され、内部コマンド実行部において検証が行われる。
【００１６】
尚、入力パラメータ及び出力パラメータ等の各種パラメータを一旦設定した後、セキュリティのレベルを一層高くするが望まれる場合、定義ファイルに記述されている各種パラメータ又はコマンドの処理内容を追加又は変更するだけ対応することができる。
【００１７】
図４は、認証シーケンス処理に用いられる定義ファイルの変形例を示す。
【００１８】
次に、図５を参照しながら、内部認証シーケンスの処理手順について説明する。ＩＣカード端末２にＩＣカード１が装着されると、ＩＣカード端末アプリケーションによりデータ処理すべきＩＣカードアプリケーションが特定され、ＩＣカード制御アプリケーションに送信される。メイン処理部１０は、シーケンス処理部１１に対して内部認証処理を実行すべきことを要求する。認証処理部１１のシーケンス制御部１２は、定義ファイル１３を検索し、認証シーケンス処理の対象となるＩＣカードアプリケーションの認証シーケンス定義ファイルを見出す。図３に示す定義ファイルの内容がシーケンス制御部１２により読み出され、シーケンス制御部の制御のもとで内部認証シーケンスが実行される。初めに、入力パラメータ１＝チャレンジ長が内部コマンド実行部１４に転送され、チャレンジが生成され、シーケンス制御部１２に転送される。（処理１）
【００１９】
次に、生成されたチャレンジがＡＰＤＵコマンド実行部１５に転送され、ＡＰＤＵバイト列に変換され、送信ＡＰＤＵが生成される。この送信ＡＰＤＵはシーケンス制御部に転送され、シーケンス制御部からＡＰＤＵ送受信部１６に転送される。この送信ＡＰＤＵは、ＩＣカードアプリケーション１に転送され、ＩＣカードアプリケーション１により署名データが作成される。この署名データはＡＰＤＵ送受信部に返信され、ＡＰＤＵコマンド実行部１５に転送される。ＡＰＤＵコマンド実行部は、受信したＡＰＤＵバイト列の署名データをデコードし、処理コードに変換してシーケンス制御部に転送される。（処理２）
【００２０】
シーケンス制御部１２は、ＩＣカードから送られて来た署名データを、入力パラメータ＝公開鍵と共に内部コマンド実行部１４に転送する。内部コマンド実行部１４は、受信した署名データを公開鍵を用いて検証する。そして、当該ＩＣカードアプリケーションが正当なＩＣカードアプリケーションの場合、処理結果として出力パラメータ＝Ｒｅｓｕｌｔをシーケンス制御１２に転送する。（処理３）
【００２１】
上述した一連の処理１〜３により内部認証シーケンスが終了し、次のシーケンス処理に移行する。
【００２２】
図６は内部認証シーケンスの手順の変形例を示す。本例はシーケンス制御部がＡＰＤＵ送受信部にアクセスすることが許されないシステムにおける適用例てある。本例では、メイン処理部が、内部認証処理を実行可能なシーケンス処理部十ＡＰＤＵ送受信部にアクセス可能である。このようなシステム構成の場合、シーケンス処理部は、シーケンス処理の途中でＡＰＤＵを送信するために、一旦処理を終了し、メイン処理部に送信ＡＰＤＵを返却しなければならない。そのためには、シーケンス処理部の内部において、シーケンス処理がどこまで進んだかという状態を保持しておく必要が生ずる。
従って、本例では、メイン処理部がシーケンス処理部に対して内部認証処理を状態すべきことを要求する際に、必要なパラメータの他に、セッションＩＤを渡す。シーケンス処理部は、認証シーケンス定義ファイルの記述に従って処理を途中まで行い、セッションＩＤを状態と共に保存し、処理を終了してメイン処理部に送信ＡＰＤＵとセッションＩＤを返却する。メイン処理部はＡＰＤＵ送受信部によりＡＰＤＵの送受信を行い、受信ＡＰＤＵをセッションＩＤと共にシーケンス処理部に送信する。シーケンス処理部は、以前保存した状態をセッションＩＤから検索し、シーケンスの続きの処理を行う。
【００２３】
本発明によるＩＣカード制御アプリケーションは、例えばＣＤ−ＲＯＭ等の記録媒体に格納して使用することができる。従って、本発明のＩＣカード制御アプリケーションが格納された記録媒体をＩＣカード端末やサーバに装着するだけ本発明によるＩＣカード認証方式を実施することができる。
【００２４】
本発明は上述した実施例だけに限定されず種々の変形や変更が可能である。例えば、上述した実施例では、内部認証シーケンスについて説明したが、ＩＣカード制御アプリケーションの正当性を確認するための外部認証シーケンス等の種々の認証シーケンスについも適用することができる。
【００２５】
【発明の効果】
以上説明したように、本発明によれば、認証シーケンスを更改する際、コマンド実行部へのライブラリの追加及び認証シーケンス定義ファイルの変更だけで対応することができ、プログラムの修正を必要としない利点が達成される。
また、認証シーケンス処理部を多様な認証シーケンス処理に対応可能なライブラリとして提供することができる。さらに、認証シーケンス定義ファイルにＡＰＤＵ生成解読部のＩＦを定義することが可能であり、いかなるＩＣカード制御アプリケーションにも対応することができる。さらに、認証シーケンス定義ファイルの内容を変更することで、ＩＣカードの機能制限やＩＣカードアプリケーションの多様なセキュリティプロトコルに対応した多様な認証シーケンスに対応することができる。
【図面の簡単な説明】
【図１】本発明によるＩＣカードシステムの全体構成を示す線図である。
【図２】本発明によるＩＣカード制御アプリケーションの一例を示す線図である。
【図３】本発明による定義ファイルの一例を示す線図である。
【図４】本発明による定義ファイルの変形例を示す線図である。
【図５】図２に示すＩＣカード制御アプリケーションを用いた内部認証シーケンスの手順を示す線図である。
【図６】内部認証シーケンスの手順の変形例を示す線図である。
【符号の説明】
１　ＩＣカード
２　ＩＣカード端末
３　サーバ
１０　メイン処理部
１１　シーケンス処理部
１２　シーケンス制御部
１３　定義ファイル
１４　内部コマンド実行部
１５　ＡＰＤＵコマンド実行部
１６　ＡＰＤＵ送受信部
【図１】
2004030055.tif 000003
【図２】
2004030055.tif 000004
【図３】
2004030055.tif 000005
【図４】
2004030055.tif 000006
【図５】
2004030055.tif 000007
【図６】
2004030055.tif 000008