(57)【要約】【課題】  複数のアプリケーションを１つのＩＣチップに格納しているＩＣカードにおいて、カードリーダーライターが使用しているプロトコルを確認し、使用プロトコルに適合したアプリケーションを実行するＩＣカード及びＩＣカード用ソフトウェアを提供する。【解決手段】  アプリケーション毎に対応する通信プロトコルに関する情報を設け、アプリケーション実行時に現在使用されているプロトコルとアプリケーションが保有する情報を比較し、アプリケーション実行の可否を判断する機能を設ける。【選択図】      図５
2005122579.tif 000002
【特許請求の範囲】
【請求項１】
複数の異なる通信プロトコルに対応するＩＣカードであって、
アプリケーションが動作可能な通信プロトコルを規定する情報をアプリケーションごと、あるいはアプリケーションのグループごとに記録し、
アプリケーションプログラムを起動するコマンドを受けたときは、現在通信中の通信プロトコルに関する情報が、対象となるアプリケーションプログラムについて、前記記録されているアプリケーションが動作可能な通信プロトコルを規定する情報と一致するかどうかを検査し、一致しなければアプリケーションプログラムを実行しないようにすることを特徴とするＩＣカード。
【請求項２】
前記アプリケーションが動作可能な通信プロトコルを規定する情報をそのアプリケーションの実行プログラムを記録管理するデディケイティドファイル（ＤＦ）ごとに記録していることを特徴とする請求項１に記載のＩＣカード。
【請求項３】
前記アプリケーションが動作可能な通信プロトコルを規定する情報をアプリケーションプログラムごとにアプリケーションプログラムが記録されているＲＯＭまたはＥＥＰＲＯＭのメモリ領域に記録していることを特徴とする請求項１に記載のＩＣカード。
【請求項４】
複数の異なる通信プロトコルに対応するＩＣカードであって、
アプリケーションが動作可能な通信プロトコルを規定する情報を、そのアプリケーションの実行プログラムを記録管理するデディケイティドファイル（ＤＦ）ごとに記録し、かつその実行プログラムごとにそのプログラムが記録されているＲＯＭまたはＥＥＰＲＯＭのメモリ領域にも記録し、
アプリケーションプログラムを起動するコマンドを受けたときは、現在通信中の通信プロトコルに関する情報が、該当するコマンドの実行プログラムが記録されているＤＦごとに記録されている通信プロトコルを規定する情報と一致し、かつ、対象となるアプリケーションプログラムについて、前記記録されているアプリケーションが動作可能な通信プロトコルを規定する情報とも一致するかどうかを検査し、両方とも一致しなければアプリケーションプログラムを実行しないようにすることを特徴とすることを特徴とする請求項２に記載のＩＣカード。
【請求項５】
前記通信プロトコルを規定する情報および前記現在通信中の通信プロトコルに関する情報はプロトコル種別およびＮＡＤ値を含むものであることを特徴とする請求項１から請求項４のいずれかに記載のＩＣカード。
【請求項６】
ＩＣカードを請求項１から請求項５のいずれかに記載のＩＣカードとして動作させる一連の命令を記述したＩＣカードの制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣカードの利用分野、特に複数のアプリケーションを実装したＩＣカード及びＩＣカードソフトウェアに関する。
【背景技術】
【０００２】
接触式ＩＣカードにおいては、カードリーダーライタ装置（以下ＲＷ）とＩＣカード間の通信に用いられるプロトコルについて、複数の通信プロトコルが規格化されている。例えばＩＣカードの国際規格であるＩＳＯ規格においては、Ｔ＝０とＴ＝１の２つが規格化されている。一方では専門分野では、オリジナルの通信プロトコル規格も規定されている。例えば金融系分野においては、ＩＳＯ規格とは一部仕様が異なるＥＭＶ規格が制定されている。
【０００３】
非接触式ＩＣカードの場合も同様であって、ＩＳＯ規格では１つの通信プロトコルのみ規格化されているが、ユーザ独自に通信プロトコルを規格化している場合が多い。
【０００４】
一つのアプリケーションをＩＣカードに実装する場合は、そのアプリケーションで規定されている通信プロトコル規格を１枚のＩＣカードに組み込めば問題ないが、複数のアプリケーションを１枚のＩＣカードに実装する場合は、それぞれのアプリケーションで規定されている通信プロトコルを１枚のカードに組みこむ必要がある。この場合、組み込まれるアプリケーションで規定されている通信プロトコル規格に相違点がなければ一種類の通信プロトコルを組み込むだけでよく特に問題は生じないが、相違点がある場合は、複数の通信プロトコルを組み込む必要があり、動作時には通信プロトコルと対応するアプリケーションで規定されている通信プロトコルを一致させる必要が生じる。
【０００５】
上記問題を解決する一つの方法として、初期応答データ（ＡＴＲ）のヒストリカルデータを利用しアクセスエラーを無くす方法（特許文献１）やリセット信号を複数回送信することでアプリケーションを切り替える方法（特許文献２）がすでに発案されている。
【特許文献１】特開平０６−３０２１８０号公報
【特許文献２】特表２００２−５０８５５１号公報
【０００６】
しかしながら、ＲＷからリセット信号を複数回送信する方法やＡＴＲのヒストリカルキャラクターからアプリケーションを判断する方法では、その方式に準じて特別なアプリケーションの選択手順を行う必要があるため、それぞれのアプリケーション選択方法が実行可能な様に端末の改造が必要になるため、汎用端末では利用できないという問題がある。また、リセット信号を複数回送信する方法では、時間がかかるという問題もある。なんの対処方法も講じない場合は、規定外の通信プロトコルでもアプリケーションが実行されてしまう結果、正常に動作しないという問題が生じる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明はこのような問題点を解決すべく、異なる通信プロトコルを採用する複数のアプリケーションを１つのＩＣカードに収容する場合においても、ＲＷから送出される通信プロトコルに応じて相応しいアプリケーションを既存システムを改造することなく、また、不都合なく実行することができるＩＣカードおよびＩＣカードのソフトウエアプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００８】
請求項１に記載の発明は、複数の異なる通信プロトコルに対応するＩＣカードであって、
アプリケーションが動作可能な通信プロトコルを規定する情報をアプリケーションごと、あるいはアプリケーションのグループごとに記録し、アプリケーションプログラムを起動するコマンドを受けたときは、現在通信中の通信プロトコルに関する情報が、対象となるアプリケーションプログラムについて、前記記録されているアプリケーションが動作可能な通信プロトコルを規定する情報と一致するかどうかを検査し、一致しなければアプリケーションプログラムを実行しないようにする機能を有することを要旨とする
【０００９】
請求項２に記載の発明は、請求項１に記載のＩＣカードについて、前記アプリケーションが動作可能な通信プロトコルを規定する情報をそのアプリケーションの実行プログラムを記録管理するデディケイティドファイル（ＤＦ）ごとに記録していることを特徴とするＩＣカードである。
【００１０】
請求項３に記載の発明は、請求項１に記載のＩＣカードについて、前記アプリケーションが動作可能な通信プロトコルを規定する情報をアプリケーションプログラムごとにアプリケーションプログラムが記録されているＲＯＭまたはＥＥＰＲＯＭのメモリ領域に記録していることを特徴とするＩＣカードである。
【００１１】
請求項４に記載の発明は、複数の異なる通信プロトコルに対応する請求項１に記載のＩＣカードであって、
アプリケーションが動作可能な通信プロトコルを規定する情報を、そのアプリケーションの実行プログラムを記録管理するデディケイティドファイル（ＤＦ）ごとに記録し、かつその実行プログラムごとにそのプログラムが記録されているＲＯＭまたはＥＥＰＲＯＭのメモリ領域にも記録し、
アプリケーションプログラムを起動するコマンドを受けたときは、現在通信中の通信プロトコルに関する情報が、該当するコマンドの実行プログラムが記録されているＤＦごとに記録されている通信プロトコルを規定する情報と一致し、かつ、対象となるアプリケーションプログラムについて、前記記録されているアプリケーションが動作可能な通信プロトコルを規定する情報とも一致するかどうかを検査し、両方とも一致しなければアプリケーションプログラムを実行しないようにすることを特徴とすることを特徴とするものである。
【００１２】
請求項４に記載の発明は２重のチェックを行なうことによりＩＣカードリーダーライターとの間で現在使用している通信プロトコルに適合しないアプリケーションの実行を防ぐ。
【００１３】
請求項５に記載の発明は、前記通信プロトコルを規定する情報および前記現在通信中の通信プロトコルに関する情報は、プロトコル種別およびＮＡＤ値を含むものであることを特徴とする請求項１から請求項４のいずれかに記載のＩＣカードである。
【００１４】
プロトコル種別は、通信プロトコルが、ＩＳＯＴ＝０規格であるかＩＳＯＴ＝１であるかを区別する。ＮＡＤ値とは、ＩＳＯＴ＝１規格におけるＮＡＤ値を意味する。
【００１５】
請求項６に記載の発明は、ＩＣカードを請求項１から請求項５のいずれかに記載のＩＣカードとして動作させる一連の命令を記述したＩＣカードの制御プログラムである。
【発明の効果】
【００１６】
本発明に係るＩＣカードおよびＩＣカードの制御プログラムを用いれば、既存システムにおいてもシステムの改造を伴うことがなく、ＲＷから送出される通信プロトコルに応じて相応しいアプリケーションを実行し、通信プロトコルに適合しないアプリケーション実行を回避できる。したがって、異なる通信プロトコルを採用する複数のアプリケーションを１つのＩＣカードに収容することが可能となる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明を実施するための最良の実施形態を図面を適宜利用して説明してゆく。図１は本発明の実施形態に係るＩＣカード１である。ＩＣカード１は、接触式ＩＣカードとし、２つの異なる規格のアプリケーションを１枚のアプリケーションに実装している。すなわち、図１に示すように、１つのアプリケーションは金融系アプリケーションであり、他はＩＳＯファイル形式のアプリケーションであるとする。
【００１８】
金融系アプリケーションは、金融系アプリケーションの規格であるＥＭＶ規格に、ＩＳＯファイル形式のアプリケーションはＪＩＣＳＡＰ規格にそれぞれ準拠している。このＥＭＶ規格とＪＩＣＳＡＰ規格が規定する通信プロトコルは、ともにＩＳＯＴ＝１規格に準拠しているものの、細部で異なる仕様となっている。
【００１９】
そこで、まず、Ｔ＝１プロトコルの構造について説明する。
【００２０】
図２は、Ｔ＝１プロトコルの構造を説明する図である。図２に示す如く、〔プロローグフィールド〕〔情報フィールド〕〔エピローグ〕から構成されている。プロローグフィールドは、〔ＮＡＤ〕〔ＰＣＢ〕〔ＬＥＮ〕から構成されている。情報フィールドには、アプリケーションのデータが入る。エピローグフィールドは、プロローグフィールドと情報フィールドの排他的論理和で計算される１バイトの数値である。
【００２１】
前記ＥＭＶ規格とＪＩＣＳＡＰ規格では、ともにデータ構造はＩＳＯＴ＝１規格に準拠しているが、使用できるＮＡＤの値が異なる。ＥＭＶ規格ではＮＡＤ＝００ｈのみ使用することが定められているが、ＪＩＣＳＡＰ規格ではＮＡＤ＝００ｈ以外の値、例えばＮＡＤ＝１０ｈ、８０ｈ等の値も使用できなければならない規格である。したがって、上記２つのアプリケーションを１枚のＩＣカード内に収める場合、使用できるＮＡＤ値が異なることにより下記問題が生じる。
【００２２】
すなわち両方のアプリケーションを実行するためにＮＡＤ＝００ｈ及びＮＡＤ≠００ｈの値でも動作する機能をＩＣカードの通信制御プログラムが有すると、図３に示すように、ＮＡＤ≠００ｈ以外の場合でも、ＥＭＶアプリケーションが実行されてしまう恐れがある。通信制御プログラムとはＩＣカードの基本的な機能であるＲＷとの通信制御を行なうプログラムであって、一般のコンピュータにおけるＯＳの一部に相当するプログラムである。
【００２３】
このような事態を避けるため、ＩＣカード１では、アプリケーションプログラムが使用できる通信プロトコル情報をＩＣチップ内のデータ記録領域に記録し、通信制御プログラムが現在動作しているプロトコル情報と、前記アプリケーションが動作可能なプロトコル情報とを比較することで、許可されているプロトコル条件時のみアプリケーションが動作する仕組みを設ける。
【００２４】
以下、この仕組みを説明する。
【００２５】
図４は、ＩＣカードの一般的な初期応答動作を説明するブロック図である。ＩＣカードは、接触端子から電源が入ると、まず、ISO/IEC7816-3初期応答データ（ＡＴＲ：AnswerToReset）を出力する（Ｓ１）。次に、ＲＷからＳＥＬＥＣＴコマンドが送付されこれを受信する（Ｓ２）。ＳＥＬＥＣＴコマンドにより以後使用するアプリケーションコマンドのセットが特定される。次に、ＲＷより特定のアプリケーションコマンドが指定されると、ＩＣカードの指定されたコマンドプログラムが起動される（Ｓ３）。
【００２６】
ＡＴＲの第１バイトに通信プロトコルの種別が記録されている。ＩＳＯ規格では最初の１バイトが"３Ｂ"ならば"データ論理が正論理"であり、"３Ｆ"ならば"データ論理が負論理"であることを意味する。本例では、ＩＣカード１は正論理仕様であり、ＡＴＲの１バイト目は、"３Ｂ"である。端末は、"３Ｂ"からデータ論理を正論理とし、他のＡＴＲバイトより通信条件を読取り、ＩＣカード１と通信を開始する。
【００２７】
データ通信プロトコルは、"３Ｂ"以降に送出される、第６バイト目のキャラクターの下位４ビットで示される。例えば、第６キャラクターが×０ｈならばＴ＝０で通信することを示し、×１ｈならばＴ＝１で通信することを示す。本例では、ＲＷとＩＣカード１間の通信にはＴ＝１プロトコルが用いられるため、第６バイト目の下位４ビットは、０００１（２進表示）となっている。
【００２８】
ＲＷとＩＣカード間の通信に使用されるＮＡＤの値は、ＲＷから初めて送信されるコマンドに用いたＮＡＤ値が使用される。通常、ＲＷから送信される初回のコマンドは、ＳＥＬＥＣＴコマンドが一般的である。アプリケーションの実行はＳＥＬＥＣＴコマンドにて、アプリケーションを定義しているＤＦ（Dedicated File）を選択することから開始され、ＳＥＬＥＣＴコマンドにて選択された後に、アプリケーションの処理（コマンド）が実行される。
【００２９】
図５は、ＩＣカード１のＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭから構成されるメモリの全空間１において、システム領域とユーザー領域で、通信プロトコル情報が上述のように記録保持されている様子を模式的に説明する図である。システム領域は通信制御プログラムをはじめとする基本ソフトウェア（ＯＳ）が使用する領域であり、ユーザ領域はアプリケーションプログラムが使用する領域である。
【００３０】
ＩＣカード１は、ＲＷから初回のコマンドを受信すると、「現在使用されている通信プロトコルを示すデータおよびＮＡＤ値」を通信プロトコル情報としてＲＡＭの所定の領域２に格納する。領域２はＩＣカードのメモリ空間のシステム領域すなわち通信制御プログラムがアクセスできるが通常のアプリケーションプログラムがアクセスできないメモリ領域に確保される。領域２は、通信プロトコル情報として２バイトの領域を確保している。１バイトの領域は通信プロトコル種別を格納するためにあり、もう１バイトはＲＷから送信されたＮＡＤ値を記録する領域として用いられる。通信プロトコル種別に記録される値は、０１ｈならばＴ＝１を意味し、００ｈならばＴ＝０を意味する。
【００３１】
また、アプリケーションプログラム毎に設定される通信プロトコル種別及びＮＡＤ値は、ユーザ領域に記録される。例えば、ＤＦ１に関する通信プロトコル種別及びＮＡＤ値は、ユーザ領域内の領域１０に記録される。同様に、ＤＦ２に関する通信プロトコル種別及びＮＡＤ値は、ユーザ領域内の領域２０に記録される。本例では、領域１０はＥＥＰＲＯＭ領域に設けられている。
【００３２】
ＤＦ１やＤＦ２下に管理されるそれぞれのアプリケーションプログラムも、当該アプリケーションが実行可能な通信プロトコル情報の記録を持つ。図５では、メモリ領域１１、２１はそれぞれＤＦ１下のアプリケーション１、ＤＦ２下のアプリケーション２の実行可能な通信プロトコル情報を格納するメモリ領域を表す。領域１１および２１のメモリサイズ、構成も領域２と同じである。領域１１、２１は、通常、リードオンリーメモリー（ＲＯＭ）または不揮発性メモリＥＥＰＲＯＭの領域に記録される。
【００３３】
本実施例ではＩＣカードはＴ＝１のみサポートするため、Ｔ＝１で通信が開始されない限り、領域２の通信プロトコル種別の値は初期値ＦＦｈのままである。
【００３４】
以下、図５において、通信プロトコルに適合したアプリケーションプログラムだけが適切に選択起動されるメカニズムを説明する。アプリケーション１が保有する通信プロトコル情報（領域１１の内容）は「０１００ｈ」であり、アプリケーション２が保有する通信プロトコル情報（領域２１の内容）は「０１ＦＦｈ」であるとする。
【００３５】
アプリケーションが保有する通信プロトコル情報のＮＡＤ値は、現在使用している通信プロトコル情報の意味と若干異なる。アプリケーションが保有する通信プロトコル情報のＮＡＤ値が「ＦＦｈ」の場合は、すべてのＮＡＤ値で通信を許可することを意味する。すなわち、アプリケーション１は、通信プロトコルがＴ＝１かつ、ＮＡＤ値＝００ｈのときのみ動作するアプリケーションであり、アプリケーション２は、通信プロトコルがＴ＝１でさえあればＮＡＤ値に関わらず動作するアプリケーションである。
【００３６】
ＩＣカードが初回コマンド、本例ではＳＥＬＥＣＴコマンドを受信したとき（図４のＳ２）、前記コマンドが送信されたときの通信プロトコル及びＮＡＤ値を、システム領域のＲＡＭ領域２に記録する。その後、ＳＥＬＥＣＴコマンドが動作する。ＤＦ１がＳＥＬＥＣＴコマンドにて選択された場合は、ＳＥＬＥＣＴコマンドは、まず、ＩＣカードの通信制御プログラムがＲＡＭ領域２に保持している通信プロトコル種別及びＮＡＤ値と、ＤＦ１がユーザ領域内の領域１０に記録しているＤＦ１の通信プロトコル種別及びＮＡＤ値を比較する。
【００３７】
プロトコル種別とＮＡＤ値の両方がすべて一致している場合（現在の通信プロトコル情報＝０１００ｈ）は、アプリケーション選択を正常終了として取り扱う。すべて一致していない場合は、実行条件が満足していないことを意味する情報をＩＣカードがＲＷに返送する。
【００３８】
アプリケーションコマンド１は、ＤＦ１により規定されるアプリケーションコマンドセットのひとつである。ＤＦ１のアプリケーションコマンド１が実行される場合も上記と同様である。ＳＥＬＥＣＴコマンド後に通信制御プログラムにより領域２に保持されたプロトコル情報及びＮＡＤ値と、アプリケーションコマンド１が領域１１に保有しているプロトコル情報及びＮＡＤ値を比較する。プロトコル情報とＮＡＤ値の両方がすべて一致している場合は、アプリケーションコマンド１の実行を開始する。そうでない場合は、アプリケーション選択を異常終了として取り扱う。
【００３９】
尚、アプリケーション１においては、通信プロトコル種別/ＮＡＤ値の両方が一致しないとアプリケーション１は実行されないが、アプリケーション２においては通信プロトコルのみ一致すればアプリケーション２は実行できる仕組みになっている。
【００４０】
本実施例によれば、アプリケーションが有する通信規格に反することなく、通信規格の異なる複数のアプリケーションを実行できる。したがって通信規約の異なる複数のアプリケーションプログラムをひとつのＩＣカードに収容することができる。尚、上記実施形態では、通信プロトコル情報（領域２）と、領域１０または領域２０にてＤＦが保持している情報を比較し、さらに、通信プロトコル情報（領域２）と、領域１１または領域２１等アプリケーションにて保持している通信プロトコル情報と、２重の比較チェックを行なっている。これをいずれか一方のチェックだけで済ませるような構成としてもよい。
【図面の簡単な説明】
【００４１】
【図１】実施形態の一例であるＩＣカード１に２つのアプリケーションが実装されていることを示す図である。
【図２】Ｔ＝１プロトコルの構造を説明する図である。
【図３】実施例におけるアプリケーションとＮＡＤ値の関係を説明する図である。
【図４】ＩＣカードの一般的な初期応答動作およびコマンド起動を説明するブロック図である。
【図５】ＩＣカード１のメモリの全空間１において、システム領域とユーザー領域で、通信プロトコル情報が記録保持されている様子を模式的に説明する図である。
【符号の説明】
【００４２】
１    ＩＣカード
２    通信プロトコル情報が記録保持されるメモリ領域
１０  通信プロトコル情報が記録保持されるＤＦ１のメモリ領域
１１  通信プロトコル情報が記録保持されるＤＦ２のメモリ領域
２０  通信プロトコル情報が記録保持されるアプリケーション１のメモリ領域
２１  通信プロトコル情報が記録保持されるアプリケーション２のメモリ領域
【図１】
2005122579.tif 000003
【図２】
2005122579.tif 000004
【図３】
2005122579.tif 000005
【図４】
2005122579.tif 000006
【図５】
2005122579.tif 000007