説明

ICカード発行方法、ICカード発行システムおよびICカード

【課題】 バーチャルマシンが実装されたICカードであっても、高速に発行できるICカード発行システムを提供する。
【解決手段】ICカード1にはバーチャルマシン10が実装され、発行専用のコマンドである複数の発行コマンド(ここでは3つ)を備えている。ICカード発行機3は、バーチャルマシン10で解釈実行される命令により作動するコマンドを利用してICカード1を発行したときEEPROMに形成されるメモリマップを記憶し、ICカード1の発行コマンドを組み合せて、メモリマップの内容をICカード1のEEPROMに書き込む。この発行コマンドは、バーチャルマシン10で解釈実行されることなくマシン語により作動するため、発行時はバーチャルマシン10が起動することがなく、バーチャルマシン10が動作するために必要な時間を削減でき、ICカード1の発行時間を短縮することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ICカードを発行するICカード発行方法、ICカード発行システムおよびICカードの技術分野に属し、更に詳しくは、バーチャルマシンを備えたICカードを発行するための技術分野に属する。
【背景技術】
【0002】
ICカードとは、クレジットカードサイズのカード媒体にICチップを埋め込み、ICチップのメモリにデータを記録できるカードである。近年、ICカードはキャッシュカード、クレジットカードまたは電子マネーなどに幅広い用途で利用されている。
【0003】
従来、ICカード用ICチップの電気的に書換え可能な不揮発性メモリ(例えば、EEPROM)の容量は非常に小さい容量(例えば、数Kバイト)であったため、アプリケーションの追加/削除が不可能なNativeICカードが主流であった。
【0004】
しかし、近年の半導体技術の進歩によって、現在は、数十Kバイトから100Kバイトを超えるEEPROMの容量を有するICカード用ICチップがリリースされていることもあり、JAVA(登録商標)に代表される高級言語の解釈機能を備えたバーチャルマシンが組み込まれ、アプリケーションの追加/削除が可能なマルチアプリケーションICカードが普及しつつある。
【0005】
バーチャルマシンを備えたマルチアプリケーションICカードにおいては、バーチャルマシンに対応した高級言語でアプリケーションの開発が行えるため、アプリケーションの開発効率が向上する等のメリットはあるが、大量にICカードを発行するICカード製造会社では、1枚のICカードを発行する時間が長くなってしまう問題がある。
【0006】
ICカード自体に工夫を施し、高速でICカードを発行する一つの発明として、ICカードの発行内容が同じ場合には、マスターとなるICカードを予め所定のコマンドで発行し、発行後のメモリマップをダンプし、他のICカードにコピーすることで、ICカードへ送信するコマンドを減らし、ICカードがコマンドを処理する時間を短縮することで、高速でICカードを発行する発明が特許文献1で開示されている。
【0007】
また、特許文献2では、ICカード発行時はカード発行専用通信経路を用いてデータ通信することによって、一般的に用いられるISOプロトコルの時間制限に制約されることなく、高速で発行データの書込みを行なうことのできる技術が開示されている。
【0008】
しかし、こられの技術は、上述のマルチアプリケーションICカードを、バーチャルマシンを利用して発行するときにバーチャルマシンに起因する時間、例えば、バーチャルマシンが動作するために必要な時間や、バーチャルマシンが高級言語を解釈する時間を削減することができない。
【特許文献1】特願2005−376977号公報
【特許文献2】特開2003−16404号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
そこで、本発明は、たとえ発行するICカードがバーチャルマシンを備えたICカードであっても、ICカードを高速に発行することができるICカード発行方法、ICカード発行システム、および、本発明のICカード発行方法に必要なICカードを提供することを目的とする。
【課題を解決するための手段】
【0010】
上述した課題を解決する第1の発明は、電気的に書換え可能な不揮発性メモリを有し、バーチャルマシンを備えたICカードを発行するICカード発行方法であって、前記ICカード発行方法は、前記ICカード以外の装置を用い、前記バーチャルマシンで解釈実行される命令により作動するコマンドを利用して前記ICカードを発行したとき、前記不揮発性メモリに形成されるメモリマップを作成するメモリマップ作成工程と、前記メモリマップ作成工程で作成した前記メモリマップの内容の全て或いは一部を平文で前記ICカードに送信し、前記ICカードに実装されたICチップで解釈実行されるマシン語により作動するコマンドによって、前記ICカード発行機から受信した前記平文の内容が前記不揮発性メモリに書き込まれた後、前記不揮発性メモリに書き込んだ内容の整合性を確認する第1の発行工程を特徴とする。
【0011】
更に、第2の発明は、第1の発明に記載のICカード発行方法において、前記ICカード発行方法は、前記第1の発行工程とは任意の順で実行される第2の発行工程を備え、前記第2の発行工程は、前記メモリマップ作成工程で作成されたメモリマップの内容の全て或いは一部を暗号化した暗号文を前記ICカードに送信し、前記ICカードに実装されたICチップで解釈実行されるマシン語により作動するコマンドによって、前記ICカードの内部に記憶された暗号鍵を用いて前記暗号文を復号した内容が前記不揮発性メモリの指定されたアドレス空間に書き込まれた後、前記不揮発性メモリに書き込んだ内容の整合性を確認する工程であることを特徴とする。
【0012】
更に、第3の発明は、第1の発明または第2の発明に記載のICカード発行方法において、前記ICカードが活性化されたときに前記ICカードが参照し、前記ICカードに実装されたICチップで解釈実行されるマシン語により作動するコマンドによる前記ICカードの発行が可能または不可能な状態であることが示され、前記ICカード自身が発行を制御するための発行フラグが前記不揮発性メモリに備えられ、前記ICカード発行方法は、前記第2の発行工程の前に実行され、前記ICカードの前記発行フラグを不可能の状態にセットする第3の工程を備えていることを特徴とする。
【0013】
更に、第4の発明は、電気的に書換え可能な不揮発性メモリを有するICカードと、前記ICカードの前記不揮発性メモリにデータを書き込むICカード発行機とから、少なくとも構成されるICカードシステムであって、前記ICカード発行機は、前記ICカード以外の装置を用い、前記バーチャルマシンで解釈実行される命令により作動するコマンドを利用して前記ICカードを発行したとき、前記不揮発性メモリに形成されるメモリマップを記憶し、前記ICカードと電気的に接続しデータ通信する手段と、前記ICカードに実装されたICチップで解釈実行されるマシン語により作動する発行コマンドを利用して、前記メモリマップの内容の全て或いは一部を平文で前記ICカードに送信し、前記ICカードの前記不揮発性メモリの指定したアドレス空間に前記平文の内容を書込み、前記ICカードの前記不揮発性メモリに書き込んだ内容の整合性を確認する第1の発行手段とを備え、前記ICカードは、前記ICカード発行機が利用する前記発行コマンドとして、前記不揮発性メモリの指定されたアドレス空間に、前記ICカード発行機から送信されたデータを書き込むライトコマンドと、前記不揮発性メモリの指定されたアドレス空間に記憶された内容の整合性を確認するメモリチェックコマンドとを備えていることを特徴とする。
【0014】
更に、第5の発明は、第4の発明に記載のICカード発行システムにおいて、前記ICカード発行機は、前記発行コマンドを利用して、前記メモリマップの内容の全て或いは一部を暗号化した暗号文を前記ICカードに送信し、前記ICカードの前記不揮発性メモリの指定したアドレス空間に前記暗号文を復号した内容を書込み、前記ICカードの前記不揮発性メモリに書き込んだ内容の整合性を確認する第2の発行手段を備え、
前記ICカードは前記発行コマンドとして、前記ICカード発行機から送信された暗号文を、前記ICカードの内部に記憶された暗号鍵を用いて復号し、復号した暗号文の内容を前記不揮発性メモリの指定されたアドレス空間に書き込む暗号ライトコマンドを備えていることを特徴とする。
【0015】
更に、第6の発明は、第4の発明または第5の発明に記載のICカード発行システムにおいて、前記ICカードは、前記ICカードが活性化されたときに前記ICカードが参照し、前記ICカードに実装されたICチップで解釈実行されるマシン語により作動するコマンドによる前記ICカードの発行が可能または不可能な状態であることが示され、前記ICカード自身が発行を制御するための発行フラグが前記不揮発性メモリに備えられ、前記ICカード発行機は、前記ICカードの前記発行フラグを発行不可の状態にセットする手段を備えていることを特徴とする。
【0016】
更に、第7の発明は、第4の発明から第6の発明のいずれかに記載のICカード発行システムにおいて、前記ICカードに備えられた前記メモリチェックコマンドは、前記不揮発性メモリの指定されたアドレス空間の内容から、予め定められたアルゴリズムに従い演算されるチェックコードと、前記ICカード発行機から送信される前記チェックコードの期待値とを照合するコマンドで、前記ICカード発行機は、前記ベリファイコマンドのコマンドAPDUで、前記不揮発性メモリの内容の整合性を確認するアドレス空間を指定し、指定した前記不揮発性メモリのアドレス空間の内容から演算される前記チェックコードの期待値とを前記ICカードに送信することを特徴とする。
【0017】
更に、第8の発明は、電気的に書換え可能な不揮発性メモリを備え、バーチャルマシンを有するICカードであって、前記ICカードは発行時に利用され、前記ICカードに実装されたICチップで解釈実行されるマシン語により作動する発行コマンドとして、前記ICカードの前記不揮発性メモリの指定されたアドレス空間に、端末装置から送信されたデータを書き込むライトコマンドと、前記不揮発性メモリの指定されたアドレス空間に記憶されたデータの整合性を確認するメモリチェックコマンドとを備えていることを特徴とする。
【0018】
更に、第9の発明は、第8の発明に記載のICカードであって、前記ICカードは前記発行コマンドとして、端末装置から送信された暗号文を、前記ICカードの内部に記憶された暗号鍵を用いて復号し、前記暗号文を復号した内容を指定されたアドレス空間に書き込む暗号ライトコマンドを備えていることを特徴とする。
【0019】
更に、第10の発明は、第8の発明または第9の発明に記載のICカードであって、前記ICカードの前記不揮発性メモリには、活性化されたときに参照し、前記ICカードに備えられた前記発行コマンドの実行を制御するための発行フラグが設けられ、前記ICカードが活性化されたときに前記発行フラグが発行不可に設定されている場合は、前記発行コマンドを実行しない手段を備えていることを特徴とする。
【0020】
更に、第11の発明は、第8の発明から第10の発明のいずれかに記載のICカードであって、前記ICカードに備えられた前記メモリチェックコマンドは、前記不揮発性メモリの指定されたアドレス空間の内容から、予め定められたアルゴリズムに従い演算されるチェックコードと、端末装置から送信される前記チェックコードの期待値とを照合するコマンドであることを特徴とする。
【発明の効果】
【0021】
上述した本発明によれば、ICカード以外の装置を用い、バーチャルマシンで解釈実行される命令により作動するコマンドを利用して前記ICカードを発行したとき、前記不揮発性メモリに形成されるメモリマップを作成し、作成したメモリマップの内容を、前記ICカードに実装されたICチップで解釈実行されるマシン語により作動するコマンドによって、ICカードの不揮発性メモリのアドレス空間にコピーすることで、ICカード発行時にICカードに送信するコマンドを減らすことができるとともに、バーチャルマシンを作動させることなく発行できるため、1枚当たりのICカード発行時間を短縮できる。
【0022】
なお、不揮発性メモリのアドレス空間にコピーされる内容は、本来、バーチャルマシンで解釈実行される命令により作動するコマンドを利用したときに形成されるメモリマップの内容であるため、前記ICカード後でもバーチャルマシンは前記不揮発性メモリに正常にアクセスできる。なお、作成したメモリマップの内容を不揮発性メモリのアドレス空間にコピーする際は、大量なデータが一度に不揮発性メモリに書き込まれるため、不揮発性メモリの内容の整合性を確認することが望ましい。
【0023】
ここで、不揮発性メモリの内容の整合性確認は、不揮発性メモリの指定されたアドレス空間から演算されるチェックコードを用いて確認する方法が望ましい。なお、チェックコードとは、チェックサム、DES鍵を用いたMAC(Message Authentication Code)や、SHA1によって演算されるハッシュ値などを意味する。
【0024】
加えて、作成したメモリマップの中から指定されたアドレス空間内の内容を暗号化した暗号文をICカードに送信し、ICカードの内部に記憶された暗号鍵を用いて暗号文を復号し、復号した内容を不揮発性メモリのアドレス空間に書き込むことで、例えば、暗証番号などの個人情報がICカードとICカード発行機の通信中に盗聴されることを防止できる。なお、平文をICカードに送信する発行と、暗号文をICカードに送信する発行とは順不同であってよく、ランダムでもかまわない。
【発明を実施するための最良の形態】
【0025】
ここから、本発明に関わるICカード発行システムおよびICカード1について、図を参照しながら詳細に説明する。図1は、ICカード発行システムのアーキテクチャを説明する図である。図1に示したようにICカード発行システムは、電気的に書き換え可能な不揮発性メモリ(ここでは、EEPROM)を有するICカード1と、ICカード1のEEPROMにデータを書き込むICカード発行機3とから構成される。
【0026】
図1で示したICカード1は、JAVA(登録商標)やMULTOS(登録商標)などに代表されるバーチャルマシンが実装されたマルチアプリケーションICカードで、バーチャルマシンで解釈実行される命令で記述されたアプリケーションを、ICカード1のEEPROMに登録/削除できる。
【0027】
本発明に係るICカード1は発行専用のコマンドである複数の発行コマンドを有し、ICカード1を発行するためのICカード発行機3は、ICカード1のバーチャルマシンで解釈実行される命令により作動するコマンドを利用してICカード1を発行したときEEPROMに形成されるメモリマップを記憶し、この複数の発行コマンドを組み合せて、メモリマップの全て或いは一部の内容をICカード1のEEPROMに書き込むことで、ICカード1を発行する。
【0028】
この発行コマンドはICカード1に実装されたICチップのCPUに対応したマシン語で記述され、発行時はバーチャルマシンが起動することなく、ICカード1を発行できるため、バーチャルマシンが動作するために必要な時間を削減でき、1枚のICカード1の発行に要する時間を短縮することができる。
【0029】
図2は、図1で示したICカード1に実装されるICチップ2の内部構成図で、図3は、図1で示したICカード発行システムの機能構成図である。
【0030】
図2に示したようにICカード1のICチップ2には、演算機能およびICチップ2が具備するデバイスを制御する機能を備えた中央演算装置20(CPU:Central Processing Unit)、読み出し専用の不揮発性メモリ22(ROM:Read Only Memory、)、電気的に書換え可能な不揮発性メモリとしてEEPROM21(EEPROM:Electrically Erasable Programmable Read-Only Memoryの略)、揮発性メモリとしてランダムアクセスメモリ23(RAM:Random Access Memory)、および、外部の端末装置とデータ通信するための接触I/F回路24と、暗号演算回路25を少なくとも備なえている。
【0031】
本発明は、ICカード1に実装されるICチップ2の仕様をなんら限定するものではなく、ICカード1の用途に適した仕様のICチップ2を選択することができる。例えば、ROM22およびEEPROM21の容量については限定しないし、書換え可能な不揮発性メモリはフラッシュメモリ等であっても構わない。またICチップ2は乱数を生成する乱数生成回路等の図示していない他のデバイスを備えていても構わない。
【0032】
なお、図1においては、ICカード1を接触ICカードとして図示しているが、本発明は何らICカード1の通信方式に依存するものではなく、無線でデータ通信する非接触ICカード、または、接触データ通信と非接触データ通信の2つの通信機能を備えたデュアルインターフェースICカードであってもよい。加えて、ICカード1は、ICチップ2の近辺を短冊状に切り取った形状をしているSIM(Subscriber Identity Module)であってもよい。
【0033】
図3で示したように、ICカード1のROM22には、ICカード1に実装されるICチップ2の仕様差分を吸収するためのプログラムであるカードOS11(Operating System)上に、言語の解釈機能を備えたバーチャルマシン10が実装されている。
【0034】
カードOS11は、ICチップ2に対応したマシン語で記述され、バーチャルマシン10を介さずに動作する複数の発行コマンドを備え、少なくともこの発行コマンドには、ICカード発行機3から送信される平文をICカード1のEEPROM21に書き込むためのコマンドであるライトコマンド110と、ICカード発行機3から送信される暗号文をICカード1のEEPROM21に書き込むためのコマンドである暗号ライトコマンド111と、ICカード1のEEPROM21に書き込んだ内容をチェックするためのコマンドであるメモリチェックコマンド112とが含まれる。
【0035】
上述しているように、これらのコマンドはICチップ2に対応したマシン語で記述され、図2で示したICチップ2のハードウェア資源を利用したプログラムある。マシン語で記述されているこれらのコマンドは、バーチャルマシン10で解釈されることなく動作するため、バーチャルマシン10を利用するために必要な時間、例えば、バーチャルマシン10の起動時間、バーチャルマシン10が命令を解釈する時間を削減でき、バーチャルマシン10を利用するときよりも高速でEEPROM21にアクセスでき、1枚当たりの発行時間を短縮できる。
【0036】
アプリケーション12が発行される前にEEPROM21には、カードOS11が利用するデータとして、少なくとも、ICカード1ごとに固有であり、発行コマンドを用いてICカード1を発行するときに利用される暗号鍵であるセッション鍵13と、ICカード1に備えられた発行コマンドの実行を制御するために設けられた発行フラグ14が書き込まれている。これらのデータは、上述しているライトコマンド110または専用のコマンドによって、カードOS11が管理するEEPROM21の領域に記憶される。
【0037】
セッション鍵13とは、ICカード発行機3から送信される暗号文を復号するときや、EEPROM21に書き込まれたデータのチェックコードを演算するときに利用される暗号鍵である。本実施の形態において、セッション鍵13は、ROM22に記憶されたROM鍵113によって暗号化された状態でEEPROM21に記憶される。そして、セッション鍵13を利用するときは、ROM鍵113で復号され使用される。
【0038】
ICカード1ごとにセッション鍵13を設けるのは、セキュリティ高くICカード1を発行するためである。例えば、ユーザの暗証番号など外部に漏洩してはならない機密なデータをICカード1に書き込むときは、ICカード発行機3から機密なデータは、セッション鍵13で暗号化された状態でICカード1に送信される。
【0039】
この機密データを暗号化する暗号鍵をICカード1すべてにおいて共通であると、共通の暗号鍵が何らかの理由で漏洩した場合、ICカード発行機3とICカード1間で伝送されるデータを傍受すれば機密なデータのすべてが解読されてしまう。そこで、ICカード1ごとに固有のセッション鍵13を設けることで、発行時のセキュリティを高める。
【0040】
発行フラグ14とは、ICカード1に備えられた発行コマンドの実行を制御するために設けられたフラグである。ICカード1発行後においても発行コマンドが動作すると、バーチャルマシン10を介さずにEEPROM21に直接アクセスでき、セキュリティ的に脆弱になるため、発行後にICカード1の発行コマンドが動作しない制御をするために、EEPROM21には発行フラグ14が設けられている。
【0041】
ICカード1が活性化されると、ICカード1はEEPROM21に記憶されている発行フラグ14をRAM23にコピーし、RAM23にコピーされた発行フラグ14によって、発行コマンドの実行が制御される。
【0042】
RAM23にコピーされた発行フラグ14によって、カードOS11の発行コマンドの実行許可が示されている場合には、ICカードはカードOS11の発行コマンドを実行し、RAM23にコピーされた発行フラグによって、カードOS11の発行コマンドの実行不可が示されている場合には、ICカードはカードOS11の発行コマンドの実行を禁止する。この発行フラグは、ICカード製造会社などにおいてICカード1が発行された後に、カードOS11の発行コマンドの実行不可に設定される。
【0043】
加えて、EEPROM21には、ICカード製造会社などで、上述した発行コマンドを用いて、ICカード発行機3は少なくとも一つのアプリケーション12が書き込まれる。
【0044】
図4は、アプリケーション12に含まれるデータを説明するための図である。EEPROM21に書き込まれる一つのアプリケーション12には、アプリケーション12で共通のデータである共通データ120と、ICカード1ごとに個別のデータである個別データ121と、ICカード1ごとに個別で機密性の極めて高い個別機密データ122(例えば、ユーザの暗証番号など)とが含まれる。
【0045】
発行時においては、共通データ120および個別データ121はライトコマンド110でEEPROM21に書き込まれ、個別機密データ122は暗号ライトコマンド111によって書き込まれ、EEPROM21に書き込まれたデータはメモリチェックコマンド112によってデータの整合性が確認される。
【0046】
なお、図4は単にアプリケーション12に含まれるデータを説明するための図であって、実際のアプリケーション12のデータ構造は図4とは異なり、共通データ120のデータ構造の中に個別データ121や個別機密データ122のデータ構造が含まれていてもよい。データを書き込むEEPROM21のアドレスが既知でさえあれば、上述したライトコマンド110や暗号ライトコマンド111を用いて、このアドレスから所定のデータを書き込むことができる。
【0047】
ここから、カードOS11が有する各発行コマンドについて詳細に説明する。上述した3つのコマンドは、いずれもISO/IEC7816−4のCASE3のコマンド構造に準拠し、それぞれの発行コマンドのデータフィールドの内容を図5に示す。図5は、ライトコマンド110、暗号ライトコマンド111およびメモリチェックコマンド112、それぞれのコマンドのデータフィールドの内容を説明する図である。
【0048】
図5(a)は、ライトコマンド110のデータフィールドを説明する図で、ICカード発行機3からICカード1に送信されるライトコマンド110のコマンドAPDU(Application Protocol Data Unit)のデータフィールドには、少なくとも、EEPROM21に書き込まれるデータである平文110cと、平文110cの長さを示すデータ長110bと、平文110cを書き込むEEPROM21の物理的あるいは論理的な開始アドレス110aとが含まれる。平文110cが書き込まれるEEPROM21のアドレス空間は、この開始アドレス110aとデータ長110bによって規定される。
【0049】
ICカード発行機3からICカード1にライトコマンド110のコマンドAPDUが送信されると、カードOS11は受信したコマンドAPDUを解釈し、ライトコマンド110が実行される。ライトコマンド110が実行されると、ライトコマンド110はデータフィールドから開始アドレス110aを取得し、バーチャルマシン10を作動させることなく、開始アドレス110aから平文110cをEEPROM21に書込み、書込み結果を示すデータをレスポンスAPDUとして、ICカード発行機3に返信する。
【0050】
図5(b)は、暗号ライトコマンド111のデータフィールドを説明する図で、ICカード発行機3からICカード1に送信される暗号ライトコマンド111のコマンドAPDUのデータフィールドには、少なくとも、EEPROM21に書き込まれるデータがセッション鍵13で暗号化された暗号文111cと、暗号文111cの長さを示すデータ長111bと、暗号文111cをセッション鍵13で復号したデータを書き込むEEPROM21の物理的あるいは論理的な開始アドレス111aとが含まれる。暗号文111cを復号した内容が書き込まれるEEPROM21のアドレス空間は、この開始アドレス111aとデータ長111bによって規定される。
【0051】
また、ICカード発行機3からICカード1へ暗号ライトコマンド111のコマンドAPDUが送信されると、カードOS11が受信したコマンドAPDUを解釈し、暗号ライトコマンド111が作動する。暗号ライトコマンド111は、データフィールドから暗号文111cを取得すると、EEPROM21に記憶されたセッション鍵13をROM鍵113で復号して、復号したセッション鍵13で暗号文111cを復号し、暗号文111cを復号したデータをEEPROM21に開始アドレス111aからデータ長111bだけ書き込み、書込み結果を示すデータをレスポンスAPDUとして、ICカード発行機3に返信する。
【0052】
暗号ライトコマンド111に適用される暗号アルゴリズムは、ICチップ2に備えられた暗号演算回路25に依存し、本発明は何ら暗号アルゴリズムを規定するものではない。ICカード1が発行される環境にもよるが、ICカード発行会社やクレジットカード発行会社などのようにセキュリティ高くICカード1を発行する環境が整っている場所においては、暗号ライトコマンド111に適用される暗号アルゴリズムはトリプルDESが発行時間を短縮できるため望ましいが、RSAなどの公開鍵アルゴリズムであってもよい。
【0053】
図5(c)は、メモリチェックコマンド112のデータフィールドを説明する図で、ICカード発行機3からICカード1に送信されるメモリチェックコマンド112のコマンドAPDUのデータフィールドには、少なくとも、ICカードによって照合される照合チェックコード112cと、チェックコードを計算するデータの長さを示すデータ長112bと、チェックコードを演算するデータが記憶されたEEPROM21の物理的あるいは論理的な開始アドレス112aとが含まれる。データの整合性が確認されるEEPROM21のアドレス空間は、この開始アドレス112aとデータ長112bによって規定される。
【0054】
本実施の形態において、メモリチェックコマンド112に適用されたチェックコードの演算アルゴリズムは、Triple−DESを利用したMAC(168bit)演算アルゴリズムを採用し、MACの演算に用いられる暗号鍵はセッション鍵13である。
【0055】
ICカード発行機3からICカード1へメモリチェックコマンド112のコマンドAPDUが送信されると、カードOS11が受信したコマンドAPDUを解釈し、メモリチェックコマンド112が作動する。暗号ライトコマンド111は、EEPROM21に記憶され暗号化されたセッション鍵13をROM鍵113で復号し、EEPROM21に記憶され、開始アドレス112aからデータ長112bで指定されるアドレス空間に記憶されたデータからチェックコードを演算し、演算したチェックコードとICカード発行機3から受信した照合チェックコード112cを照合し、照合結果を含むレスポンスAPDUをICカード発行機3に返信する。
【0056】
図3に示したように、ICカード発行機3には、上述したカードOS11に備えられた発行コマンドなどを利用してICカード1を発行する発行アプリケーション30と、ICカード1と電気的に接続し、ICカード1とデータ通信するデータ通信手段31と、データを記憶するためのデータ記憶装置32を備える。
【0057】
ICカード発行機3の発行アプリケーション30とは、サーバなどのコンピュータ装置を動作させるプログラムで実現され、データ通信手段31はICカードリーダライタと同じ手段で実現され、データ記憶装置32はハードディスクなどで実現される。
【0058】
データ記憶装置32には、エミュレータなどの装置を用い、ICカード1のバーチャルマシン10で解釈実行される命令により作動するコマンドを利用してICカード1を発行したときEEPROM21に形成されるメモリマップの内容を発行データとして記憶し、この発行データには、アプリケーション12の共通データ120と共通データ120を書き込むアドレス空間、アプリケーション12の個別データ121と個別データ121を書き込むアドレス空間、アプリケーション12の個別機密データ122と個別機密データ122を書き込むアドレス空間とを記憶している。
【0059】
アプリケーション12の共通データ120は、アプリケーション12ごとに共通なデータであるため、データ記憶装置32にはアプリケーション12ごとに一つの共通データ120が記憶される。また、個別データ121と個別機密データ122は、ICカード1ごとに異なるデータであるため、データ記憶装置32には発行枚数の数だけ個別データ121および個別機密データ122が記憶される。
【0060】
ICカード発行機3の発行アプリケーション32は、ICカード1に備えられたライトコマンド110を用いて、EEPROM21の所定のアドレス空間に、アプリケーション12の共通データ120および個別データ121を書き込み、また、ユーザの暗証番号などの個別機密データ122は、暗号ライトコマンド111を用いて、EEPROM21の所定のアドレス空間に書き込まれる。
【0061】
ここから、ICカード発行機3が上述したカードOS11に備えられた発行コマンドを利用してICカード1を発行する手順を説明する。図6は、ICカード発行機3が0次発行を行う手順を示したフロー図で、図7は、ICカード発行機3が1次および2次発行を行う手順を示したフロー図である。
【0062】
まず、ICカード発行機3が0次発行を行う手順について説明する。0次発行では、ICカード1が動作するために最低限必要なデータがICカード1に書き込まれ、本実施の形態においては、図3で示したデータの中で、セッション鍵13と発行フラグ14がEEPROM21に書き込まれる。
【0063】
この手順で最初に実行されるステップS1は、ICカード1を活性化するステップである。このステップでは、ICカード発行機3は、例えば、ISO/IEC7816などで定められた手順に従いICカード1を活性化する。このステップでICカード1を活性化した後は、定められた伝送プロトコルを用いたICカード発行機3とICカード1間のデータ通信が可能となる。なお、このステップが実行されるとき、ICカード1は0次発行前であるため、発行フラグ14はRAM23にコピーされない。
【0064】
次のステップS2は、EEPROM21にセッション鍵13とコマンド制御フラグとを書き込むステップである。例えば、ICカード発行機3からICカード1に送信されるライトコマンド110のコマンドAPDUには、ROM鍵113で暗号化されたセッション鍵13が含まれ、ICカード1はROM鍵113で暗号化されたセッション鍵13をEEPROM21の所定のアドレス空間に書き込む。また、発行フラグ14は、ライトコマンド110によって、発行コマンドの実許可にセットされる。発行フラグ14を発行コマンドの実行許可にセットした後、発行フラグ14の内容はメモリチェックコマンド112などによってチェックされる。
【0065】
次のステップS3は、ICカード1を非活性化するステップである。このステップでは、ICカード発行機3は、例えば、ISO/IEC7816などで定められた手順に従いICカード1を非活性化する。このステップでICカード1を非活性化した後に活性化されても、ICカード1にはユーザごとに個別のデータは記憶されていないため、ICカード1が悪用されることはない。
【0066】
まず、ICカード発行機3が1次および2次発行を行う手順について説明する。一般的に、1次発行ではアプリケーション12のカード1ごとに固定値のデータがICカード発行機3によってICカード1に書き込まれ、2次発行ではICカード1ごとに個別なデータがICカード発行機3によってICカード1に書き込まれる。
【0067】
本実施の形態においては、1次発行と2次発行は1連のシーケンスで実施されるものとし、図3で示した共通データ120がアプリケーション12のカード1ごとに固定値のデータとして1次発行で書き込まれ、個別データ121と個別機密データ122が2次発行で書き込まれる。
【0068】
この手順で最初に実行されるステップS10は、ICカード1を活性化するステップである。このステップでは、ICカード発行機3は、例えば、ISO/IEC7816などで定められた手順に従いICカード1を活性化する。このステップでICカード1を活性化した後は、定められた伝送プロトコルを用いたICカード発行機3とICカード1間のデータ通信が可能となる。なお、このステップが実行されるとき、ICカード1は0次発行済みであるため、発行フラグ14をRAM23にコピーする。
【0069】
次のステップS11は、アプリケーション12の共通データ120が書き込まれるステップである。このステップにおいては、ICカード発行機3は、少なくとも共通データ120を含むライトコマンド110のコマンドAPDUをICカード1に送信し、ICカード1のライトコマンド110が作動することで、このコマンドAPDUに含まれる共通データ120は指定されたEEPROM21のアドレス空間に書き込まれる。
【0070】
次のステップS12は、ステップSでEEPROM21に書き込まれた共通データ120の内容をチェックするステップである。このステップにおいては、ICカード発行機3は、少なくとも共通データ120の照合チェックコードを含むメモリチェックコマンド112のコマンドAPDUをICカード1に送信し、ICカード1のメモリチェックコマンド112が作動することで、このコマンドAPDUに含まれる照合チェックコードと、EEPROM21に書き込まれた共通データ120から演算されたチェックコードとが照合される。このコマンドにより、書き込まれたデータを読み出したり送ったりしないため、通信データ量が少なくなり発行時間が短縮できる。照合に成功した場合はステップS13に進み、照合に失敗した場合、この手順は終了し、照合に失敗したICカード1は発行失敗カードとして取り扱われる。
【0071】
次のステップS13は、発行フラグ14を無効にセットするステップである。このステップにおいて、ICカード発行機3は、EEPROM21の発行フラグ14を、発行コマンドの実行不可にセットするためのコマンドのコマンドAPDUをICカード1に送信し、ICカード1は発行フラグ14を発行コマンドの実行不可にセットする。発行フラグ14を発行コマンドの実行不可にセットした後、発行フラグ14の内容はメモリチェックコマンド112などによってチェックされる。
【0072】
上述しているように、ICカード1はRAM23にコピーされた発行フラグ14を参照して発行コマンドの実行を制御するため、このステップにおいてEEPROM21の発行フラグ14を発行コマンドの実行不可にセットしたとしても、ICカード1が非活性化されない限りは発行コマンドの実行が可能である。
【0073】
なお、共通データ120をICカード1に書き込んだ後にEEPROM21に記憶された発行フラグ14を発行コマンドの実行不可にセットするのは、個別データ121の書込みに失敗したICカード1が利用され、個別データ121や個別機密データ122が読み出されるなどして悪用されることを防止するためである。
【0074】
次のステップS14は、アプリケーション12の個別データ121が書き込まれるステップである。このステップにおいては、ICカード発行機3は、少なくとも個別データ121を含むライトコマンド110のコマンドAPDUをICカード1に送信し、ICカード1のライトコマンド110が作動することで、このコマンドAPDUに含まれる個別データ121は指定されたEEPROM21のアドレス空間に書き込まれる。
【0075】
次のステップS15は、ステップS14でEEPROM21に書き込まれた個別データ121の内容をチェックするステップである。このステップにおいては、ICカード発行機3は、少なくとも共通データ120の照合チェックコードを含むメモリチェックコマンド112のコマンドAPDUをICカード1に送信し、ICカード1のメモリチェックコマンド112が作動することで、このコマンドAPDUに含まれるチェックコードと、EEPROM21に記憶された個別データ121から演算されたチェックコードとが照合される。照合に成功した場合はステップS16に進み、照合に失敗した場合、この手順は終了し、照合に失敗したICカード1は発行失敗カードとして取り扱われる。
【0076】
次のステップS16は、アプリケーション12の個別機密データ122が書き込まれるステップである。このステップにおいては、ICカード発行機3は、少なくともセッション鍵13で個別機密データ122を暗号化した暗号文を含む暗号ライトコマンド111のコマンドAPDUをICカード1に送信し、ICカード1の暗号ライトコマンド111が作動する。
【0077】
ICカード1の暗号ライトコマンド111が作動すると、EEPROM21に暗号化された状態記憶されているセッション鍵13をROM鍵113で復号し、復号したセッション鍵13でこのコマンドAPDUに含まれる暗号文を復号した後、暗号文を復号した内容を指定されたEEPROM21のアドレス空間に書き込む。
【0078】
次のステップS17は、ステップS16でEEPROM21に書き込まれた個別機密データ122の内容をチェックするステップである。このステップにおいては、ICカード発行機3は、少なくとも個別機密データ122の照合チェックコードを含むメモリチェックコマンド112のコマンドAPDUをICカード1に送信し、ICカード1のメモリチェックコマンド112が作動することで、このコマンドAPDUに含まれるチェックコードと、EEPROM21に記憶された個別機密データ122から演算されたチェックコードとが照合される。照合に成功した場合はステップS18に進み、照合に失敗した場合、この手順は終了し、照合に失敗したICカード1は発行失敗カードとして取り扱われる。
【0079】
次のステップS18は、ICカード1を非活性化するステップである。このステップでは、ICカード発行機3は、例えば、ISO/IEC7816などで定められた手順に従いICカード1を非活性化する。このステップでICカード1を非活性化した後に活性化されても、発行フラグ14は発行コマンドの実行不可にセットされているため、カードOS11に備えられた発行コマンドが悪用されることはない。
【図面の簡単な説明】
【0080】
【図1】ICカード発行システムのアーキテクチャを説明する図。
【図2】ICカードに実装されるICチップの内部構成図。
【図3】ICカード発行システムの機能構成図。
【図4】アプリケーションに含まれるデータを説明するための図。
【図5】発行コマンドのデータフィールドの内容を説明する図。
【図6】ICカード発行機が次発行を行う手順を示したフロー図。
【図7】ICカード発行機が1次および2次発行を行う手順を示したフロー図。
【符号の説明】
【0081】
1 ICカード
10 バーチャルマシン
11 カードOS
110 ライトコマンド
111 暗号ライトコマンド
112 メモリチェックコマンド
113 ROM鍵
12 アプリケーション
120 共通データ
121 個別データ
122 個別機密データ
13 暗号化された状態のセッション鍵
14 発行フラグ
2 ICチップ
21 EEPROM
22 ROM
23 RAM
3 ICカード発行機



【特許請求の範囲】
【請求項1】
電気的に書換え可能な不揮発性メモリを有し、バーチャルマシンを備えたICカードを発行するICカード発行方法であって、前記ICカード発行方法は、
前記ICカード以外の装置を用い、前記バーチャルマシンで解釈実行される命令により作動するコマンドを利用して前記ICカードを発行したとき、前記不揮発性メモリに形成されるメモリマップを作成するメモリマップ作成工程と、
前記メモリマップ作成工程で作成した前記メモリマップの内容の全て或いは一部を平文で前記ICカードに送信し、前記ICカードに実装されたICチップで解釈実行されるマシン語により作動するコマンドによって、前記平文の内容が前記不揮発性メモリに書き込まれた後、前記不揮発性メモリに書き込んだ内容の整合性を確認する第1の発行工程を特徴とするICカード発行方法。
【請求項2】
請求項1に記載のICカード発行方法において、ICカード発行機が、前記メモリマップ作成工程で作成されたメモリマップの内容の全て或いは一部を暗号化した暗号文を前記ICカードに送信し、前記ICカードに実装されたICチップで解釈実行されるマシン語により作動するコマンドによって、前記ICカードの内部に記憶された暗号鍵を用いて前記暗号文を復号した内容が前記不揮発性メモリの指定されたアドレス空間に書き込まれた後、前記不揮発性メモリに書き込んだ内容の整合性を確認する第2の発行工程を備えていることを特徴とするICカード発行方法。
【請求項3】
請求項1または請求項2に記載のICカード発行方法において、前記ICカードが活性化されたときに前記ICカードが参照し、前記ICカードに実装されたICチップで解釈実行されるマシン語により作動するコマンドによる前記ICカードの発行が可能または不可能な状態であることが示され、前記ICカード自身が発行を制御するための発行フラグが前記不揮発性メモリに備えられ、前記ICカード発行方法は、前記第2の発行工程の前に実行され、前記ICカードの前記発行フラグを不可能の状態にセットする第3の工程を備えていることを特徴とするICカード発行方法。
【請求項4】
電気的に書換え可能な不揮発性メモリを有するICカードと、前記ICカードの前記不揮発性メモリにデータを書き込むICカード発行機とから、少なくとも構成されるICカードシステムであって、
前記ICカード発行機は、前記ICカード以外の装置を用い、前記バーチャルマシンで解釈実行される命令により作動するコマンドを利用して前記ICカードを発行したとき、前記不揮発性メモリに形成されるメモリマップを記憶し、前記ICカードと電気的に接続しデータ通信する手段と、前記ICカードに実装されたICチップで解釈実行されるマシン語により作動する発行コマンドを利用して、前記メモリマップの内容の全て或いは一部を平文で前記ICカードに送信し、前記ICカードの前記不揮発性メモリの指定したアドレス空間に前記平文の内容を書込み、前記ICカードの前記不揮発性メモリに書き込んだ内容の整合性を確認する第1の発行手段とを備え、
前記ICカードは、前記ICカード発行機が利用する前記発行コマンドとして、前記不揮発性メモリの指定されたアドレス空間に、前記ICカード発行機から送信されたデータを書き込むライトコマンドと、前記不揮発性メモリの指定されたアドレス空間に記憶された内容の整合性を確認するメモリチェックコマンドとを備えていることを特徴とするICカード発行システム。
【請求項5】
請求項4に記載のICカード発行システムにおいて、前記ICカード発行機は、前記発行コマンドを利用して、前記メモリマップの内容の全て或いは一部を暗号化した暗号文を前記ICカードに送信し、前記ICカードの前記不揮発性メモリの指定したアドレス空間に前記暗号文を復号した内容を書込み、前記ICカードの前記不揮発性メモリに書き込んだ内容の整合性を確認する第2の発行手段を備え、
前記ICカードは前記発行コマンドとして、前記ICカード発行機から送信された暗号文を、前記ICカードの内部に記憶された暗号鍵を用いて復号し、復号した暗号文の内容を前記不揮発性メモリの指定されたアドレス空間に書き込む暗号ライトコマンドを備えていることを特徴とするICカード発行システム。
【請求項6】
請求項4または請求項5に記載のICカード発行システムにおいて、前記ICカードは、前記ICカードが活性化されたときに前記ICカードが参照し、前記ICカードに実装されたICチップで解釈実行されるマシン語により作動するコマンドによる前記ICカードの発行が可能または不可能な状態であることが示され、前記ICカード自身が発行を制御するための発行フラグが前記不揮発性メモリに備えられ、前記ICカード発行機は、前記ICカードの前記発行フラグを発行不可の状態にセットする手段を備えていることを特徴とするICカード発行システム。
【請求項7】
請求項4から請求項6のいずれかに記載のICカード発行システムにおいて、前記ICカードに備えられた前記メモリチェックコマンドは、前記不揮発性メモリの指定されたアドレス空間の内容から、予め定められたアルゴリズムに従い演算されるチェックコードと、前記ICカード発行機から送信される前記チェックコードの期待値とを照合するコマンドで、前記ICカード発行機は、前記ベリファイコマンドのコマンドAPDUで、前記不揮発性メモリの内容の整合性を確認するアドレス空間を指定し、指定した前記不揮発性メモリのアドレス空間の内容から演算される前記チェックコードの期待値とを前記ICカードに送信することを特徴とするICカード発行システム。
【請求項8】
電気的に書換え可能な不揮発性メモリを備え、バーチャルマシンを有するICカードであって、前記ICカードは発行時に利用され、前記ICカードに実装されたICチップで解釈実行されるマシン語により作動する発行コマンドとして、前記ICカードの前記不揮発性メモリの指定されたアドレス空間に、端末装置から送信されたデータを書き込むライトコマンドと、前記不揮発性メモリの指定されたアドレス空間に記憶されたデータの整合性を確認するメモリチェックコマンドとを備えていることを特徴とするICカード。
【請求項9】
請求項8に記載のICカードであって、前記ICカードは前記発行コマンドとして、端末装置から送信された暗号文を、前記ICカードの内部に記憶された暗号鍵を用いて復号し、前記暗号文を復号した内容を指定されたアドレス空間に書き込む暗号ライトコマンドを備えていることを特徴とするICカード。
【請求項10】
請求項8または請求項9に記載のICカードであって、前記ICカードの前記不揮発性メモリには、活性化されたときに参照し、前記ICカードに備えられた前記発行コマンドの実行を制御するための発行フラグが設けられ、前記ICカードが活性化されたときに前記発行フラグが発行不可に設定されている場合は、前記発行コマンドを実行しない手段を備えていることを特徴とするICカード。
【請求項11】
請求項8から請求項10のいずれかに記載のICカードであって、前記ICカードに備えられた前記メモリチェックコマンドは、前記不揮発性メモリの指定されたアドレス空間の内容から、予め定められたアルゴリズムに従い演算されるチェックコードと、端末装置から送信される前記チェックコードの期待値とを照合するコマンドであることを特徴とするICカード。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2007−206765(P2007−206765A)
【公開日】平成19年8月16日(2007.8.16)
【国際特許分類】
【出願番号】特願2006−21740(P2006−21740)
【出願日】平成18年1月31日(2006.1.31)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】