JP2004310681A - Ic card and program writing method - Google Patents
Ic card and program writing method Download PDFInfo
- Publication number
- JP2004310681A JP2004310681A JP2003106697A JP2003106697A JP2004310681A JP 2004310681 A JP2004310681 A JP 2004310681A JP 2003106697 A JP2003106697 A JP 2003106697A JP 2003106697 A JP2003106697 A JP 2003106697A JP 2004310681 A JP2004310681 A JP 2004310681A
- Authority
- JP
- Japan
- Prior art keywords
- program
- data
- memory
- card
- control unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
この発明は、ICカードの技術に係り、特にICカード発行時のICカードへのプログラム書き込み方法に関するものである。
【0002】
【従来の技術】
従来のICカードは、書き込み可能なメモリ部に追加のプログラムを書き込むことにより、書き込み不可能なメモリ部に予め記録されているプログラムの処理の追加処理や修正処理または、追加のアプリケーションの処理を組み込むことができる。そしてこの追加のプログラムの書き込み可能なメモリ部への書き込みを、書き込み回数や、書き込みの指示をするユーザ(権限者)の認証などを用いて制限している。そして、従来のICカードでは書き込み可能なメモリ部に上述の追加のプログラムだけでなく、ICカードを利用するカード利用者の個人情報やICカード内の処理に利用する情報なども記憶している。尚、書き込み可能なメモリ部に記録されている各種情報は、当該書き込み可能なメモリ部がフォーマットされた後に、そのフォーマットにより分割されたメモリ部内の特定の領域にそれぞれ書き込まれる(例えば、特許文献1参照。)。ここで、書き込み可能なメモリ部がフォーマットされた状態のICカードを発行後状態のICカードと呼び、書き込み可能なメモリ部がフォーマットされていない状態のICカードを発行前状態のICカードと呼ぶ。尚、ICカードはフォーマットされた後に、例えば、ICカードをクレジットカードとして配布するクレジットカード会社などへ発行される。そして、クレジットカード会社がクレジットカード利用者の個人情報やクレジットカード番号などの情報をICカードへ書き込む。
【0003】
【特許文献1】
特公平4−17477号公報
【0004】
【発明が解決しようとする課題】
しかしながら、上述のICカードは、書き込み可能なメモリ部がフォーマットされた後(発行後状態)でも、上述の回数の制限や認証による制限に基づいて追加や修正のためのプログラムを当該書き込み可能なメモリ部へ再書き込みすることができてしまう。これにより、不正なプログラムも書き込み可能となるので、発行後のプログラムの書き込みを許可してしまうことはセキュリティ上好ましくない。
そこでこの発明は、発行後状態のICカードへのプログラムの書き込みを不可能とする機能を備えた、ICカード及びプログラム書き込み方法を提供することを目的としている。
【0005】
【課題を解決するための手段】
本発明は、上述の課題を解決すべくなされたもので、書換え可能なメモリと当該メモリへ書き込みを制御する制御部とを備えたICカードであって、前記制御部が、前記メモリ内のデータ値に基づいて前記ICカードが発行前状態であるか発行後状態であるかを判定し、前記制御部が、前記発行前状態である場合にのみ前記メモリへプログラムを書き込むことを特徴とするICカードである。
【0006】
上述の構成によれば、本発明は、制御部がメモリ内のデータ値に基づいてICカードが発行前状態であるか発行後状態であるかを判定し、発行前状態である場合にのみメモリへプログラムを書き込む。これにより、発行後状態となったICカードへの不正なプログラムの書き込みを制限することができる。
【0007】
また本発明は、上述のICカードにおいて、前記書換え可能なメモリが前記プログラムを書き込むプログラム領域と、前記発行後状態に移行した後にデータが書き込まれるデータ領域と、前記メモリを管理する情報が書き込まれるシステム領域とを有し、前記制御部が、前記システム領域のデータ値から所定の演算過程により算出できるチェックデータに基づいて前記発行前状態または前記発行後状態を判定することを特徴とする。
【0008】
また本発明は、上述のICカードにおいて、前記制御部が、前記メモリへのプログラムの書き込み時に、当該プログラムの書き込みを指示するプログラム書き込み装置から認証情報を受付けて、その認証情報に基づいて当該書き込みの認証を行ない、前記認証が成功した場合にのみ前記メモリへ前記プログラムを書き込むことを特徴とする。
【0009】
また本発明は、上述のICカードにおいて、前記書き込んだプログラムの起動可能または不可能のいずれかを表す起動可否情報を前記システム領域に記憶することを特徴とする。
【0010】
また本発明は、上述のICカードにおいて、前記書き込んだプログラムを起動する起動アドレスの位置を表す起動アドレス情報を前記システム領域に記憶することを特徴とする。
【0011】
また本発明は、上述のICカードにおいて、前記データ領域へ書き込まれるデータのデータ書き込み完了状態またはデータ書き込み未完了状態のいずれかを表すデータ書き込み状態識別情報を前記システム領域に記憶し、前記制御部が、前記プログラムの起動時に前記データ書き込み状態識別情報と前記起動可否情報とを確認し、前記制御部が、前記データ書き込み状態識別情報がデータ書き込み完了状態を示しておりかつ、前記起動可否情報が起動可能であることを示している場合にのみ前記起動アドレスより前記プログラムを起動することを特徴とする。
【0012】
また本発明は、上述のICカードにおいて、前記制御部が、データ書き込み完了コマンドの受信に基づいて、前記データ書き込み状態識別情報の示す前記データ書き込み未完了状態を前記データ書き込み完了状態へと書き換えることを特徴とする。
【0013】
また本発明は、上述のICカードにおいて、予め前記起動アドレスに格納されるべきデータが規定されており、前記制御部が、前記プログラムを実行する際に前記起動アドレスに記載されているデータが前記予め規定されている起動アドレスに格納されるべきデータと同一であるか否かを確認し、前記制御部が、前記起動アドレスに格納されているデータが前記予め規定されている起動アドレスに格納されるべきデータと同一である場合にのみ前記起動アドレスまたは前記起動アドレスの後ろのアドレスのいずれかより前記プログラムを起動することを特徴とする。
【0014】
また本発明は、書換え可能なメモリと当該メモリへ書き込みを制御する制御部とを備えたICカードにおける前記メモリへのプログラム書き込み方法であって、前記制御部が、前記メモリ内のデータ値に基づいて前記ICカードが発行前状態であるか発行後状態であるかを判定し、前記制御部が、前記発行前状態である場合にのみ前記メモリへプログラムを書き込むことを特徴とするプログラム書き込み方法である。
【0015】
また本発明は、前記書換え可能なメモリが前記プログラムを書き込むプログラム領域と、前記発行後状態の時に情報が書き込まれるデータ領域と、前記発行前状態の時に情報が書き込まれるシステム領域との領域を有する前記ICカードにおける前記プログラム書き込み方法であって、前記制御部が、前記システム領域のデータ値から算出できるチェックデータと所定の値とに基づいて前記発行前状態または前記発行後状態を判定することを特徴とする。
【0016】
また本発明は、前記プログラム書き込み方法において、前記制御部が、前記メモリへのプログラムの書き込み時に、当該プログラムの書き込みを指示するプログラム書き込み装置から認証情報を受付けて、その認証情報に基づいて当該書き込みの認証を行ない、前記認証が成功した場合にのみ前記メモリへ前記プログラムを書き込むことを特徴とする。
【0017】
【発明の実施の形態】
以下、本発明の一実施形態によるICカードを図面を参照して説明する。
図1は、この発明の一実施形態によるICカードの構成を示す概略ブロック図である。この図において、符号1はICカードである。また2は情報の書き込み及び書換えができるデータメモリ部である。データメモリ部2は例えばEEPROM(Electrically Erasable Programmable Read−Only Memory)などであり、記録された情報の消去と書き込みを繰り返し行うことができるメモリである。また3はICカード1を制御するためのプログラムが予め記録されおり、他の情報の書き込みが不可能なプログラムメモリ部である。プログラムメモリ部3は例えばPROM(Programmable Read Only Memory)などの読み出し専用メモリである。また4はICカード1の処理を制御する制御部である。また5は外部装置と情報を送受信する送受信部である。尚、送受信部5における情報の送受信方法は、電気的に外部装置と接触した状態で情報を送受信する方法や、電波を用いることにより当該送受信部5に備えられたアンテナを介して情報を外部装置と送受信する方法などがあり、符号(a)のICカードは送受信部5が接触式である場合を示しており、また(b)のICカードは送受信部5が非接触式である場合を示している。なお、外部装置との情報の送受信の方法は従来より公知である。またICカード1は外部装置より電源の供給を受ける。そして当該電源は送受信部5が受け付けて制御部4へ送出する。
【0018】
次に、データメモリ部2のメモリ領域について説明する。図2はデータメモリ部2のメモリ領域を分割した際の状態を示す図である。ここで、データメモリ部2はICカード1が製造されてプログラムが書き込まれた後にメモリ領域が分割される。尚、メモリ領域は図2が示すように、プログラム領域とデータ領域とシステム領域とに分割される。そして、制御部4がこのプログラム領域とデータ領域とシステム領域とにデータメモリ部2のメモリ領域を分割する処理をフォーマット(論理フォーマット)という。
【0019】
ここでプログラム領域とはプログラムメモリ部3に予め記録されているプログラムの修正のためのプログラムや追加のためのプログラムや、アプリケーションプログラムなどが新たに記録される領域である。またデータ領域とはICカード1を使用する利用者の個人情報やICカード1のカード番号などの各種情報が記録される領域である。この各種情報はICカードが発行後状態の時にICカードに書き込まれる。尚、データ領域には、例えばICカードをクレジットカードとして配布するクレジット会社から配布された後に書き込まれる領域もある。
またシステム領域とはICカードが発行前状態の際に、プログラム領域に記録されているプログラムを起動するために制御部4が参照する情報や、データメモリのメモリ領域を管理する情報などが記録される領域である。そして、図2に示すようにデータメモリ部2のメモリ領域は、アドレスAD00からアドレスAD01の前までのアドレスをシステム領域、アドレスAD01からアドレスAD02の前までのアドレスをデータ領域、アドレスAD02以降のアドレスをプログラム領域としてフォーマットされている。尚、システム領域やデータ領域やプログラム領域のアドレスによる位置関係は上述の位置関係に限らず、入れ替わっても良い。
【0020】
次に、システム領域に記録される情報について説明する。図3はシステム領域のデータ構成を示す図である。
システム領域において、システム領域IDはシステム領域が始まることを示す情報である。またアクセス条件はデータ領域への情報の書き込みの許可または不許可の何れかを表す情報である。またデータエリアアドレスはデータ領域が始まる最初のアドレスを表す情報である。また起動データ(起動可否情報)はプログラム領域に記録されているプログラムを起動して良いか否かを表す情報である。また起動アドレス(起動アドレス情報)はプログラム領域が始まる最初のアドレスを表す情報である。またメモリ状態識別データ(データ書き込み状態識別情報)はICカードの配布前にデータ領域へ書き込まれる各種情報の書き込みが完了したか否かを表す情報である。またチェックデータは、システム領域におけるチェックデータの記録領域以外の全データ値を所定の方法により演算して導き出した情報であり、このチェックデータの情報によりシステム領域に記録されている情報が正しいか否かをチェックを行なう。
【0021】
次に、システム領域のメモリ状態識別データについて説明する。図4はメモリ状態識別データの構成を示す図である。メモリ状態識別データはシステム領域内の8ビットの情報である。そして、メモリ状態識別データの8ビットのアドレスをb1〜b8で表すと、b1=0であるときはデータメモリ部2の各領域が分割されていない状態(未フォーマット状態)を示している。またb2=1であるときはデータメモリ部2の各領域が分割されている状態(フォーマット状態)を示している。またb2=0であるときはデータ領域への各種情報の書き込みが未完了であることを示している。またb2=1であるときはデータ領域への各種情報の書き込みが完了したことを示している。
【0022】
次に、データメモリ部2にプログラムや各種情報が書き込まれる際の処理について図5を用いて説明する。図5はデータメモリ部2の状態の遷移を示す図である。
まず、ICカード1の製造が完了した直後のデータメモリ部2は初期データが記録されている(1)。尚、この初期データは例えば、データメモリ部2のメモリ領域のアドレス全てが16進数の「FF」となるデータであったり、または、メモリ領域のアドレス全てが16進数の「00」となるデータである。
【0023】
次に、後述する処理によりICカード1のデータメモリ部2へプログラムの書き込みが行なわれる。尚、ICカード1へのプログラムの書き込みの指示は、プログラムの書き込みを行うプログラム書き込み装置が行なう。ここで、プログラム書き込み装置はプログラムの書き込みの処理を開始する前に、プログラム書き込み装置を操作するユーザの認証を行なう。そして、プログラム書き込み装置がデータメモリ部2へ書きこむプログラムの書き込みの処理を開始する。
【0024】
プログラム書き込み装置はプログラムの書き込みの処理を開始すると、まず、プログラム書き込みコマンドをICカード1に送信する。すると、当該プログラム書き込みコマンドをICカード1の送受信部5が受信して制御部4に転送する。次に、制御部4がプログラムメモリ部3に記録されているプログラムに基づいてデータメモリ部2のシステム領域のチェックデータを後述する所定の演算により算出する。この時、ICカード1はICカード製造工場における製造後なので、データメモリ部2のメモリ領域が分割されてシステム領域が作成されていない。しかし、制御部4が処理に用いるプログラムメモリ部3内に記録されているプログラムには予めデータメモリ部2のメモリ領域に作成されるシステム領域のアドレスの範囲が記録されているので、これにより、制御部4は当該プログラムメモリ部3に記録されているプログラムに基づいて、作成されていないシステム領域のアドレスの範囲におけるチェックデータの演算することができる。
尚、チェックデータの演算は様々な方式があるが、本実施形態においては、例えば、システム領域内におけるチェックデータの記憶領域以外の全データの合計を算出し、その合計の下位8ビットを反転させた値をチェックデータとする。
【0025】
今、制御部4がチェックデータを演算するにあたり、例えば、データメモリ部2にはメモリ領域内の全てのアドレスが16進数の「FF」の値となる初期データが記録されているとする。この場合、システム領域内のアドレスも全て16進数の「FF」の値となっている。そして、チェックデータ記憶領域が8ビットである場合には、チェックデータの記憶領域の値は「FF」となっている。そして当該チェックデータの演算は上述の演算方式により行なわれるが、システム領域におけるチェックデータの記憶領域以外の領域を、上述の演算方式によって「FF」の値が得られないようなアドレス範囲に設定しておく。例えばシステム領域が128バイトとしておけば、そのうちのチェックデータの領域が1バイト分であるとき、チェックデータを算出する為のアドレス範囲は127バイトである。このアドレス範囲127バイトが全て「FF」の初期データが記録されているので、「FF×127バイト=FF×7F=7E81」となり、また「7E81」の下位8ビットは「10000001」となるので、この値を反転しても16進数の「FF」とはならない。このようにシステム領域の範囲を設定することにより、演算の結果がチェックデータの記憶領域の値「FF」と不一致となる。そしてチェックデータの演算結果がチェックデータの記憶領域の値「FF」と不一致である場合には発行前状態であると判定する処理を制御部4にさせることにより、制御部4はシステム領域が発行前状態であると判定できる。また、発行前状態である場合にはプログラム領域にプログラムが書き込めると判断する処理を制御部4に実行させる。そして制御部4は、ICカード1が発行前状態であると判定した場合には、発行前状態である旨の情報を送受信部5に転送し、送受信部5がその情報をプログラム書き込み装置に送信する。
【0026】
次に、ICカード1が発行前状態である旨の情報を受け付けたプログラム書き込み装置はICカード1のデータメモリ部2へ書きこむ為のプログラムを送信する。すると、ICカード1の送受信部5がプログラムを受信して、制御部4に転送し、制御部4が転送を受けたプログラムを、プログラム書き込みコマンドで指定されたアドレス(プログラム領域)に書きこむ。尚、制御部4がプログラムをデータメモリ部2に書きこむ時点では、データメモリ部2のメモリ領域はフォーマットされていないが、プログラムメモリ部3に予め記録されているプログラムにプログラム領域のアドレスが記録されており、この情報に基づいて制御部4がプログラムを書きこむ。(2)はプログラムが書き込まれた状態を示す図である。ここで、制御部4はプログラムを正常に書き込んだ場合には、書き込みが正常に終了した旨の情報を書き込み装置に送信するよう送受信部5に指示し、ICカード1が発行後状態であると判定した場合には、エラー情報を送信するよう送受信部5に指示する。
なお、プログラム書き込みコマンドは、プログラムとそのプログラムを書き込む先頭のアドレスをデータとして含んでいる。
【0027】
次に、プログラムが書きこまれると、制御部4はフォーマットコマンドを実行して、データメモリ部2のメモリ領域をフォーマットし、プログラムが書きこまれた領域のプログラム領域と、システム領域と、データ領域とに分割する。尚、制御部4はデータメモリ部2のメモリ領域をフォーマットした後に、メモリ状態識別データのアドレスb1を0から1に変更する。また、制御部4はプログラムを書き込んだ後、プログラムを書き込んだ先頭のアドレスの情報をシステム領域の起動アドレスの領域に記録し、システム領域内起動データを起動可能を表す情報に変更する。そして、制御部4はシステム領域のチェックデータを記憶する領域以外の全データ値に基づいて演算を行いチェックデータを算出し、チェックデータの記憶領域に当該チェックデータを書きこむ。(3)はデータメモリ部2がフォーマットされた状態を示す図である。そして、データメモリ部2がフォーマットされた後、例えばICカードをクレジットカードとして配布するクレジットカード会社などに発行される。
【0028】
次にフォーマットが終了した発行後状態のICカード1には、各種情報が記録される。この各種情報とは例えばクレジットカードであれば、クレジットカード番号や決済用口座番号やクレジットカード利用者の名前などの個人情報である。そして、これらの各種情報が書きこまれる前に、各種情報を書きこむ専用の情報書き込み装置がデータメモリ部2のデータ領域にファイルを生成するためのファイル生成コマンドをICカード1へ送信する。すると送受信部5が当該ファイル生成コマンドを受信して制御部4に転送する。そして制御部4がファイル生成コマンドを実行し、データ領域を分割してファイルを作成する。(4)はデータ領域を分割してファイルを生成した状態を示す図である。
【0029】
次に、制御部4がデータ書き込みコマンドを実行して、データ領域内の各ファイルに各種情報を書きこむ。(5)は各ファイルへ各種情報を書き込んだ状態を示す図である。そして、各種情報の書き込みが完了すると、情報書き込み装置が書き込み完了を示すデータ書き込み完了コマンド(データ書き込み完了情報)をICカード1に送信する。そして、ICカード1の送受信部5がデータ書き込み完了コマンドを受信する。そして制御部4がそのデータ書き込み完了コマンドの送受信部5から転送を受けて実行し、データメモリ部2のシステム領域におけるメモリ状態識別データのアドレスb2を0から1に変更する。これにより、ICカード1への各種情報の書きこみが完了し、ICカード1が、例えば、クレジットカードとして完成する。(6)は各種情報の書き込みが完了した状態を示す図である。そして、ICカードがクレジットカードの利用者などに配布される。
【0030】
次に、外部装置からの電源を供給された時のICカード1の処理について説明する。図6はICカード1が初期応答を出力する際の処理を示す図である。
まず、外部装置から電源の供給を受けるとプログラムメモリ部3で記憶するプログラムが起動する(ステップS1)。次に、制御部4はシステム領域のチェェックデータを演算し、システム領域におけるチェックデータの記憶領域に記録されている値と同一かどうかを確認して、当該チェックデータの記憶領域に記録されている値が正しいかどうかを確認する(ステップS2)そして、制御部4がシステム領域におけるメモリ状態識別データと起動データとを読み込み、メモリ状態識別データが各種情報の書き込み完了を表しているかどうかを確認する(ステップS3)。そしてメモリ状態識別データが各種情報の書き込み完了を表している場合には、制御部4はシステム領域に記録されている起動データを読み取る(ステップS4)。尚、起動データが「01」を示す場合にはプログラム領域に記録されているプログラムの起動可能を表し、起動データが「00」を示す場合にはプログラム領域に記録されているプログラムの起動不可能を表している。そして制御部4はステップS4で読み取った起動データが「01」であるか否かを確認する(ステップS5)。ステップS5において起動データが「01」である場合には、制御部4はシステム領域に記録されている起動アドレスを読み取る(ステップS6)。
【0031】
次に、制御部はステップS6で読み取った起動アドレスに格納されているデータをプログラム領域から読み取る(ステップS7)。次に制御部4はステップS7で読み取った起動アドレスに格納されているデータがプログラムメモリ部3に記録されているプログラム内で規定されているプログラム開始データであるか否かを確認する(ステップS8)。そしてステップS8においてプログラム開始データであると確認できた場合には、制御部4はデータメモリ部2のプログラムメモリ領域における起動アドレスよりプログラムを起動する(ステップS9)。尚、起動アドレスがステップS8においてプログラムメモリ部3に記録されているプログラム内で規定されているプログラム開始データであるか否かを確認する為だけのデータである場合には、当該起動アドレスの次のアドレスからプログラムを読み込むようにしても良い。例えば、制御部4がプログラムをプログラム領域に記録した際にプログラム領域の先頭アドレス(“AD02”)からプログラムを記録した場合、制御部4は“AD02”の情報をシステム領域の起動アドレスのデータとして記録することになる。そして、予めプログラムメモリ部3のプログラム内で規定されているプログラム開始データが“80”である場合には、制御部4は“AD02”のアドレスのデータが“80”であるかどうかを確認し、同一である場合には、“AD02”の後ろのアドレスからプログラムを起動する。
【0032】
そして制御部4はステップS9で起動したメモリ領域に記録されているプログラムに基づいて初期応答データを送受信部5に転送し、送受信部5が初期応答データを外部装置に送信する(ステップS10)。尚、ステップS8においてプログラム開始データであると確認できない場合には、プログラムメモリ部3に記録されているプログラムに基づいて初期応答データを出力する(ステップS11)。またステップS3において演算結果のチェックデータがシステム領域におけるチェックデータの記憶領域に記録されている値と同一でない場合、またステップS5において起動データが「00」を示す場合にはプログラムメモリ部3に記録されているプログラムに基づいて初期応答データを出力する。尚初期応答データとはICカード1が外部装置と情報を通信するための通信方式を示すデータである。そして、外部装置はICカード1から受信した初期応答データに基づいて通信方式を把握して情報をICカード1へ送信する。
【0033】
次に、ICカード1における外部装置からの命令データの受信に基づいた処理について説明する。図7は外部装置からの命令データに基づくICカード1の処理を示す図である。
図4のステップS10で初期応答データを外部装置へ送信した後、制御部4は命令データを受信したかどうかを判断する(ステップS12)。そして、制御部4は命令データを受信すると、当該命令データがデータメモリ部2へのプログラムの書き込み命令であるか否かを確認する(ステップS13)。
【0034】
次に制御部4は、命令データがプログラムの書き込み命令である場合には、システム領域のチェックデータを演算しICカード1が発行前状態であるか否かを確認する(ステップS14)。ここで演算結果のチェックデータが、システム領域におけるチェックデータの記憶領域に記録されている値と同一でない場合には、制御部4はICカード1が発行前状態であると判断し、データメモリ部2のプログラム領域へ外部装置より受信したプログラムを書き込む(ステップS15)。そして、制御部4はプログラムの書き込みが終了した旨を示す出力データを生成する(ステップS16)。そして送受信部5が当該出力データを外部装置へ送信する(ステップS17)。
【0035】
尚、ステップS13において命令データがプログラムの書き込み命令でないと判断した場合には、制御部4その命令データが示す処理を行なう(ステップS18)。また、ステップS14において演算したチェックデータがシステム領域におけるチェックデータの記憶領域に記録されている値と同一である場合には、制御部4はICカード1が発行後状態であると判断し、エラーデータを示す出力データを生成する(ステップS19)。
【0036】
また、制御部4は上述の処理においてはステップS13において命令データがプログラムの書き込み命令であるか否かを確認してからステップS14においてチェックデータを演算しているが、ステップS12でプログラムの書き込み命令を示す命令データを受信した後に、ステップS14の処理を行なってチェックデータを演算してICカード1が発行後状態であると判断できた場合には、ステップS12で受信したプログラムの書き込み命令を示す命令データを破棄するようにしても良い。
また、ステップS15においてプログラムを書き込む前に、外部装置を操作するユーザの認証をしてからプログラムを書き込む処理を行うようにしても良い。また、上述のICカード1の制御部4は、プログラムメモリ部3で記憶しているプログラムを読み取って、そのプログラムを実行する事により上述の処理を行なっている。
【0037】
【発明の効果】
以上説明したように、この発明によれば、制御部がメモリ内のデータ値に基づいてICカードが発行前状態であるか発行後状態であるかを判定し、発行前状態である場合にのみメモリへプログラムを書き込む。これにより、発行後状態となったICカードへの不正なプログラムの書き込みを制限することができる。
また、本発明によれば、制御部がシステム領域のデータ値から所定の演算過程により算出できるチェックデータに基づいて発行前状態または発行後状態を判定する。これにより、チェックデータによって発行前状態と判定した場合にのみプログラムを書き込むことができるようになる。
【0038】
また、本発明によれば、制御部がメモリへのプログラムの書き込み時に、当該プログラムの書き込みを指示するプログラム書き込み装置から認証情報を受付けて、その認証情報に基づいて当該書き込みの認証を行ない、認証が成功した場合にのみ前記メモリへ前記プログラムを書き込む。これにより、不正なユーザによるプログラムの書き込みを防ぐことができる。
【0039】
また、本発明によれば、書き込んだプログラムの起動可能または不可能のいずれかを表す起動可否情報を前記システム領域に記憶する。これにより起動可否情報が起動可能な場合にのみ書き込んだプログラムの起動を処理することができる。
【0040】
また、本発明によれば、書き込んだプログラムを起動する起動アドレスの位置を表す起動アドレス情報を前記システム領域に記憶する。これにより当該起動アドレスを制御部が読み込んでそのアドレスからのプログラムの起動を制御部が行なうことができる。
【0041】
また、本発明によれば、データ領域に書き込まれるデータのデータ書き込み完了状態またはデータ書き込み未完了状態のいずれかを表すデータ書き込み状態識別情報をシステム領域に記憶し、制御部がプログラムの起動時にデータ書き込み状態識別情報と起動可否情報とを確認し、データ書き込み状態識別情報がデータ書き込み完了状態を示しておりかつ、起動可否情報が起動可能であることを示している場合にのみ起動アドレスよりプログラムを起動する。これにより、データ書き込み状態識別情報がデータ書き込み完了状態を表し、また起動可否情報が起動可能状態を表している場合にのみ、書き込んだプログラムを起動することができる。
【0042】
また、本発明によれば、制御部がデータ書き込み完了情報の受信に基づいて、データ書き込み状態識別情報の示すデータ書き込み未完了状態をデータ書き込み完了状態へと書き換えることを特徴とする。これにより、データ書き込み完了情報を完了状態へと書き換えた後のデータの書き込みを禁止することができる。
【0043】
また、本発明によれば、予め前記起動アドレスに格納されるべきデータが規定されており、前記制御部が、前記プログラムを実行する際に前記起動アドレスに記載されているデータが前記予め規定されている起動アドレスに格納されるべきデータと同一であるか否かを確認し、前記制御部が、前記起動アドレスに格納されているデータが前記予め規定されている起動アドレスに格納されるべきデータと同一である場合にのみ前記起動アドレスまたは前記起動アドレスの後ろのアドレスのいずれかより前記プログラムを起動する。これにより、制御部は書き込まれたプログラムが正常かどうかを確認した後に当該プログラムの起動を行なうことができる。
【図面の簡単な説明】
【図1】ICカードの構成を示す概略ブロック図である。
【図2】データメモリ部2のメモリ領域を分割した際の状態を示す図である。
【図3】システム領域のデータ構成を示す図である。
【図4】メモリ状態識別データの構成を示す図である。
【図5】データメモリ部2の状態の遷移を示す図である。
【図6】ICカードが初期応答を出力する際の処理を示す図である。
【図7】外部装置からの命令データに基づくICカードの処理を示す図である。
【符号の説明】
1 ICカード
2 データメモリ部
3 プログラムメモリ部
4 制御部
5 送受信部[0001]
BACKGROUND OF THE INVENTION
The present invention relates to IC card technology, and more particularly to a method for writing a program to an IC card when the IC card is issued.
[0002]
[Prior art]
A conventional IC card incorporates an additional process or a correction process of a program recorded in a non-writable memory unit or an additional application process by writing an additional program in a writable memory unit. be able to. Then, the writing of the additional program to the writable memory unit is restricted by using the number of times of writing or the authentication of a user (authorized person) who gives a writing instruction. In a conventional IC card, not only the above-described additional program but also personal information of a card user who uses the IC card, information used for processing in the IC card, and the like are stored in a writable memory unit. Various types of information recorded in the writable memory unit are written into specific areas in the memory unit divided by the format after the writable memory unit is formatted (for example, Patent Document 1). reference.). Here, an IC card in which the writable memory unit is formatted is referred to as an after-issue IC card, and an IC card in which the writable memory unit is not formatted is referred to as a pre-issue IC card. The IC card is issued after being formatted, for example, to a credit card company that distributes the IC card as a credit card. Then, the credit card company writes information such as the personal information of the credit card user and the credit card number on the IC card.
[0003]
[Patent Document 1]
Japanese Patent Publication No. 4-17477
[0004]
[Problems to be solved by the invention]
However, even after the writable memory unit is formatted (post-issuance state), the above-described IC card is a memory in which a program for addition or correction can be written on the basis of the above-mentioned number of times limit or restriction by authentication. It is possible to rewrite to the part. As a result, an unauthorized program can be written. Therefore, it is not preferable in terms of security to permit writing of the program after issuance.
Accordingly, an object of the present invention is to provide an IC card and a program writing method having a function of making it impossible to write a program to an IC card in a post-issue state.
[0005]
[Means for Solving the Problems]
The present invention has been made to solve the above-described problems, and is an IC card including a rewritable memory and a control unit that controls writing to the memory, and the control unit includes data stored in the memory. An IC that determines whether the IC card is in a pre-issue state or a post-issue state based on a value and writes the program to the memory only when the control unit is in the pre-issue state Card.
[0006]
According to the above-described configuration, the present invention determines whether the IC card is in the pre-issue state or the post-issue state based on the data value in the memory, and only when the control unit is in the pre-issue state Write a program to As a result, it is possible to limit the writing of an illegal program to the IC card that is in the post-issue state.
[0007]
Further, according to the present invention, in the above-described IC card, a program area in which the rewritable memory writes the program, a data area in which data is written after shifting to the post-issue state, and information for managing the memory are written. A system region, and the control unit determines the pre-issue state or the post-issue state based on check data that can be calculated from a data value of the system region by a predetermined calculation process.
[0008]
According to the present invention, in the above-described IC card, when the control unit writes a program to the memory, the control unit accepts authentication information from a program writing device that instructs writing of the program, and the writing is performed based on the authentication information. And the program is written in the memory only when the authentication is successful.
[0009]
According to the present invention, in the above-described IC card, activation enable / disable information indicating whether the written program can be activated is stored in the system area.
[0010]
According to the present invention, in the above-described IC card, activation address information indicating a position of an activation address for activating the written program is stored in the system area.
[0011]
According to the present invention, in the above-described IC card, data writing state identification information indicating either a data writing completion state or a data writing incomplete state of data written to the data area is stored in the system area, and the control unit Confirms the data writing state identification information and the activation permission information at the time of starting the program, the control unit indicates that the data writing state identification information indicates a data writing completion state, and the activation permission information is The program is activated from the activation address only when the activation is indicated.
[0012]
Further, according to the present invention, in the above-described IC card, the control unit rewrites the data write incomplete state indicated by the data write state identification information to the data write complete state based on reception of the data write completion command. It is characterized by.
[0013]
In the IC card described above, data to be stored in the activation address is defined in advance, and when the control unit executes the program, the data described in the activation address is Check whether the data to be stored at the pre-defined start address is the same, and the control unit stores the data stored at the start address at the pre-defined start address The program is started from either the start address or the address after the start address only when the data is the same as the data to be processed.
[0014]
The present invention is also a method for writing a program to the memory in an IC card comprising a rewritable memory and a control unit for controlling writing to the memory, wherein the control unit is based on a data value in the memory. And determining whether the IC card is in a pre-issue state or a post-issue state, and the control unit writes the program to the memory only in the pre-issue state. is there.
[0015]
The present invention also includes a program area in which the rewritable memory writes the program, a data area in which information is written in the post-issue state, and a system area in which information is written in the pre-issue state. The program writing method in the IC card, wherein the control unit determines the pre-issue state or the post-issue state based on check data that can be calculated from data values in the system area and a predetermined value. Features.
[0016]
According to the present invention, in the program writing method, when the program is written to the memory, the control unit accepts authentication information from a program writing device that instructs writing of the program, and the writing is performed based on the authentication information. And the program is written in the memory only when the authentication is successful.
[0017]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an IC card according to an embodiment of the present invention will be described with reference to the drawings.
FIG. 1 is a schematic block diagram showing the configuration of an IC card according to an embodiment of the present invention. In this figure,
[0018]
Next, the memory area of the
[0019]
Here, the program area is an area in which a program for correcting a program recorded in the
The system area records information that the
[0020]
Next, information recorded in the system area will be described. FIG. 3 shows the data structure of the system area.
In the system area, the system area ID is information indicating that the system area starts. The access condition is information that represents either permission or non-permission of information writing to the data area. The data area address is information indicating the first address at which the data area starts. The activation data (activation availability information) is information indicating whether or not the program recorded in the program area may be activated. The activation address (activation address information) is information representing the first address at which the program area starts. The memory status identification data (data writing status identification information) is information indicating whether or not writing of various information written in the data area before distribution of the IC card is completed. The check data is information obtained by calculating all data values other than the check data recording area in the system area by a predetermined method, and whether or not the information recorded in the system area is correct based on the check data information. Check whether or not.
[0021]
Next, the memory status identification data in the system area will be described. FIG. 4 is a diagram showing the configuration of the memory state identification data. The memory status identification data is 8-bit information in the system area. When the 8-bit addresses of the memory state identification data are represented by b1 to b8, when b1 = 0, each area of the
[0022]
Next, processing when a program and various types of information are written in the
First, initial data is recorded in the
[0023]
Next, a program is written to the
[0024]
When the program writing apparatus starts a program writing process, it first transmits a program writing command to the
There are various methods for calculating check data. In this embodiment, for example, the sum of all data other than the check data storage area in the system area is calculated, and the lower 8 bits of the total are inverted. The check value is used as check data.
[0025]
Now, when the
[0026]
Next, the program writing device that has received the information that the
Note that the program write command includes the program and the first address to which the program is written as data.
[0027]
Next, when the program is written, the
[0028]
Next, various information is recorded on the
[0029]
Next, the
[0030]
Next, processing of the
First, when power is supplied from an external device, a program stored in the
[0031]
Next, the control unit reads data stored in the activation address read in step S6 from the program area (step S7). Next, the
[0032]
Then, the
[0033]
Next, processing based on reception of command data from an external device in the
After transmitting the initial response data to the external device in step S10 in FIG. 4, the
[0034]
Next, when the command data is a program write command, the
[0035]
If it is determined in step S13 that the instruction data is not a program write instruction, the
[0036]
Further, in the above-described processing, the
In addition, before the program is written in step S15, a process for writing the program may be performed after the user who operates the external device is authenticated. Moreover, the
[0037]
【The invention's effect】
As described above, according to the present invention, the control unit determines whether the IC card is in the pre-issue state or the post-issue state based on the data value in the memory, and only when it is in the pre-issue state. Write a program to memory. As a result, it is possible to limit the writing of an illegal program to the IC card that is in the post-issue state.
Further, according to the present invention, the control unit determines the pre-issue state or the post-issue state based on check data that can be calculated from a data value in the system area by a predetermined calculation process. As a result, the program can be written only when the pre-issue state is determined by the check data.
[0038]
Further, according to the present invention, when the control unit writes a program to the memory, the control unit accepts authentication information from a program writing device that instructs to write the program, and performs authentication of the writing based on the authentication information. The program is written to the memory only if the is successful. Thereby, it is possible to prevent an unauthorized user from writing the program.
[0039]
In addition, according to the present invention, activation enable / disable information indicating whether the written program can be activated or not is stored in the system area. As a result, the activation of the written program can be processed only when the activation availability information can be activated.
[0040]
According to the present invention, the activation address information indicating the position of the activation address for activating the written program is stored in the system area. Thus, the control unit can read the start address and start the program from the address.
[0041]
Further, according to the present invention, the data writing state identification information indicating either the data writing completion state or the data writing incomplete state of the data to be written to the data area is stored in the system area, and the control unit transmits the data when the program is started. Check the write status identification information and the start availability information, and if the data write status identification information indicates the data write completion status and the start enable / disable information indicates that it can be started, the program is started from the start address. to start. As a result, the written program can be activated only when the data writing state identification information indicates the data writing completion state and when the activation possibility information indicates the activation possible state.
[0042]
Further, according to the present invention, the control unit rewrites the data writing incomplete state indicated by the data writing state identification information to a data writing completion state based on the reception of the data writing completion information. As a result, data writing after rewriting the data writing completion information to the completed state can be prohibited.
[0043]
According to the present invention, data to be stored in the activation address is defined in advance, and data described in the activation address is defined in advance when the control unit executes the program. Whether the data stored in the start address is the same as the data to be stored in the start address specified in advance. The program is started from either the start address or the address after the start address only when the same address. Thus, the control unit can start the program after confirming whether the written program is normal.
[Brief description of the drawings]
FIG. 1 is a schematic block diagram showing a configuration of an IC card.
FIG. 2 is a diagram showing a state when a memory area of a
FIG. 3 is a diagram showing a data structure of a system area.
FIG. 4 is a diagram showing a configuration of memory state identification data.
FIG. 5 is a diagram showing a state transition of the
FIG. 6 is a diagram showing processing when the IC card outputs an initial response.
FIG. 7 is a diagram showing processing of an IC card based on command data from an external device.
[Explanation of symbols]
1 IC card
2 Data memory section
3 Program memory section
4 Control unit
5 transceiver
Claims (11)
前記制御部が、前記メモリ内のデータ値に基づいて前記ICカードが発行前状態であるか発行後状態であるかを判定し、
前記制御部が、前記発行前状態である場合にのみ前記メモリへプログラムを書き込む
ことを特徴とするICカード。An IC card including a rewritable memory and a control unit that controls writing to the memory,
The control unit determines whether the IC card is in a pre-issue state or a post-issue state based on a data value in the memory,
The IC card, wherein the control unit writes a program into the memory only when the controller is in the pre-issue state.
前記制御部が、前記システム領域のデータ値から所定の演算過程により算出できるチェックデータに基づいて前記発行前状態または前記発行後状態を判定する
ことを特徴とする請求項1に記載のICカード。A program area in which the rewritable memory writes the program; a data area in which data is written after transitioning to the post-issue state; and a system area in which information for managing the memory is written;
2. The IC card according to claim 1, wherein the control unit determines the pre-issue state or the post-issue state based on check data that can be calculated from a data value in the system area by a predetermined calculation process.
ことを特徴とする請求項1に記載のICカード。When the control unit accepts authentication information from a program writing device that instructs writing of the program at the time of writing the program to the memory, authenticates the writing based on the authentication information, and the authentication is successful The IC card according to claim 1, wherein the program is written only in the memory.
前記制御部が、前記プログラムの起動時に前記データ書き込み状態識別情報と前記起動可否情報とを確認し、
前記制御部が、前記データ書き込み状態識別情報がデータ書き込み完了状態を示しておりかつ、前記起動可否情報が起動可能であることを示している場合にのみ前記起動アドレスより前記プログラムを起動する
ことを特徴とする請求項5に記載のICカード。Storing in the system area data write state identification information representing either a data write completion state or a data write incomplete state of data written to the data area;
The control unit confirms the data writing state identification information and the activation availability information when the program is activated,
The control unit starts the program from the start address only when the data write state identification information indicates a data write completion state and the start permission / inhibition information indicates that start is possible. The IC card according to claim 5, wherein:
前記制御部が、前記プログラムを実行する際に前記起動アドレスに記載されているデータが前記予め規定されている起動アドレスに格納されるべきデータと同一であるか否かを確認し、
前記制御部が、前記起動アドレスに格納されているデータが前記予め規定されている起動アドレスに格納されるべきデータと同一である場合にのみ前記起動アドレスまたは前記起動アドレスの後ろのアドレスのいずれかより前記プログラムを起動する
ことを特徴とする請求項6に記載のICカード。Data to be stored at the start address is defined in advance,
The control unit checks whether the data described in the activation address is the same as the data to be stored in the predefined activation address when executing the program,
Only when the data stored in the activation address is the same as the data to be stored in the predefined activation address, the control unit is either the activation address or an address after the activation address The IC card according to claim 6, wherein the program is started.
前記制御部が、前記メモリ内のデータ値に基づいて前記ICカードが発行前状態であるか発行後状態であるかを判定し、
前記制御部が、前記発行前状態である場合にのみ前記メモリへプログラムを書き込む
ことを特徴とするプログラム書き込み方法。A method of writing a program to the memory in an IC card comprising a rewritable memory and a control unit that controls writing to the memory,
The control unit determines whether the IC card is in a pre-issue state or a post-issue state based on a data value in the memory,
The program writing method, wherein the control unit writes the program to the memory only in the pre-issue state.
前記制御部が、前記システム領域のデータ値から所定の演算過程により算出できるチェックデータに基づいて前記発行前状態または前記発行後状態を判定する
ことを特徴とする請求項9に記載のプログラム書き込み方法。The IC card having a program area in which the rewritable memory writes the program, a data area in which data is written after transitioning to the post-issue state, and a system area in which information for managing the memory is written A program writing method in
10. The program writing method according to claim 9, wherein the control unit determines the pre-issue state or the post-issue state based on check data that can be calculated from a data value in the system area by a predetermined calculation process. .
ことを特徴とする請求項10に記載のプログラム書き込み方法。When the control unit accepts authentication information from a program writing device that instructs writing of the program at the time of writing the program to the memory, authenticates the writing based on the authentication information, and the authentication is successful The program writing method according to claim 10, wherein the program is written to the memory only.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003106697A JP4457573B2 (en) | 2003-04-10 | 2003-04-10 | IC card and program writing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003106697A JP4457573B2 (en) | 2003-04-10 | 2003-04-10 | IC card and program writing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004310681A true JP2004310681A (en) | 2004-11-04 |
JP4457573B2 JP4457573B2 (en) | 2010-04-28 |
Family
ID=33468811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003106697A Expired - Fee Related JP4457573B2 (en) | 2003-04-10 | 2003-04-10 | IC card and program writing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4457573B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6904286B2 (en) * | 2018-03-13 | 2021-07-14 | 大日本印刷株式会社 | Electronic information storage medium and IC card |
-
2003
- 2003-04-10 JP JP2003106697A patent/JP4457573B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP4457573B2 (en) | 2010-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4423711B2 (en) | Semiconductor memory device and semiconductor memory device operation setting method | |
US20060253620A1 (en) | Data structure of flash memory having system area with variable size in which data can be updated, USB memory device having the flash memory, and method of controlling the system area | |
JP4393733B2 (en) | Portable information recording medium | |
JPH04143881A (en) | Mutual authenticating system | |
JP2003524842A (en) | Portable data storage | |
EP2028604A1 (en) | File processing system and method, and file processing program | |
US6804730B1 (en) | Access control device, access control method, recording medium, and computer data signal for controlling allowance of access to storage area using certification data | |
CN110489959B (en) | Protection method, burning method and device for burning file, storage medium and equipment | |
JP4717398B2 (en) | Method for controlling data processing apparatus | |
US20090184799A1 (en) | Information storage medium and information storage medium processing apparatus | |
JP2575358B2 (en) | IC card | |
JP4457573B2 (en) | IC card and program writing method | |
JP4936834B2 (en) | Data protection method for semiconductor memory card and semiconductor memory card | |
JP2000227946A (en) | Portable electronic device | |
JPH10301854A (en) | Chip card and method for importing information on the same | |
JPH11282991A (en) | Ic card | |
JPH11306301A (en) | Ic card having security status with time limit | |
JP2005234957A (en) | Method and program for controlling data access for flash memory | |
JP4054802B2 (en) | Data processing apparatus and program updating method thereof | |
JPH0935018A (en) | Portable information recording medium and its access method | |
JP3231466B2 (en) | Information recording medium storing keys | |
JP2779092B2 (en) | Erasing method for IC card and its data storage memory | |
JPS62200441A (en) | Ic card | |
JP3709702B2 (en) | IC card, IC card connection device, IC card system, and program execution control method | |
JP2008059380A (en) | Storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060403 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081112 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081118 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091020 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091217 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100119 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100201 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4457573 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130219 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140219 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |