(57)【要約】【課題】発行処理モードを実行するためのプログラムの保護を処理が複雑化しない構成で行い、安全性を高めることが可能な情報記憶媒体、情報書き込み方法、及び書き込みプログラムを提供する。【解決手段】ＩＣチップ１ａは、発行処理モード用プログラムを実行することによりユーザモード用プログラムを不揮発性メモリ１３に書き込み、当該ユーザモード用プログラムの書き込みが完了した場合に、発行処理モード用プログラムの実行を不能とするプログラム又はデータを不揮発性メモリ１３に書き込む。【選択図】図３
2015022648.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが情報記憶媒体を利用するために必要な第１のプログラムを書き込むための第２のプログラムを記憶する不揮発性メモリを備える前記情報記憶媒体であって、
前記第２のプログラムを実行することにより前記第１のプログラムを前記不揮発性メモリに書き込む第１書込手段と、
前記第１書込手段により前記第１のプログラムの書き込みが完了した場合に、前記第２のプログラムの実行を不能とするプログラム又はデータを前記不揮発性メモリに書き込む第２書込手段と、
を備えることを特徴とする情報記憶媒体。
【請求項２】
前記第２書込手段は、前記第２のプログラムが記憶されている前記不揮発性メモリの記憶領域の全部又は一部に前記第２のプログラムの実行を不能とするデータを書き込むことを特徴とする請求項１に記載の情報記憶媒体。
【請求項３】
前記第２書込手段は、前記第２のプログラムが記憶されている前記不揮発性メモリの記憶領域に、前記第２のプログラムの実行を不能とするプログラムとして前記第１のプログラムを呼び出すプログラムを書き込むことを特徴とする請求項１に記載の情報記憶媒体。
【請求項４】
前記第２書込手段は、前記不揮発性メモリに記憶されている所定のデータが書き換えられた場合、前記第１のプログラムの書き込みが完了したとして、前記第２のプログラムの実行を不能とするプログラム又はデータを前記不揮発性メモリに書き込むことを特徴とする請求項１乃至３の何れか一項に記載の情報記憶媒体。
【請求項５】
前記第２書込手段は、前記第１のプログラムの書き込み処理完了コマンドが受信された場合、前記第１のプログラムの書き込みが完了したとして、前記第２のプログラムの実行を不能とするプログラム又はデータを前記不揮発性メモリに書き込むことを特徴とする請求項１乃至３の何れか一項に記載の情報記憶媒体。
【請求項６】
ユーザが情報記憶媒体を利用するために必要な第１のプログラムを書き込むための第２のプログラムを記憶する不揮発性メモリを備える前記情報記憶媒体におけるコンピュータにより実行される情報書き込み方法であって、
前記第２のプログラムを実行することにより前記第１のプログラムを前記不揮発性メモリに書き込むステップと、
前記第１のプログラムの書き込みが完了した場合に、前記第２のプログラムの実行を不能とするプログラム又はデータを前記不揮発性メモリに書き込むステップと、
を含むことを特徴とする情報書き込み方法。
【請求項７】
ユーザが情報記憶媒体を利用するために必要な第１のプログラムを書き込むための第２のプログラムを記憶する不揮発性メモリを備える前記情報記憶媒体におけるコンピュータに、
前記第２のプログラムを実行することにより前記第１のプログラムを前記不揮発性メモリに書き込むステップと、
前記第１のプログラムの書き込みが完了した場合に、前記第２のプログラムの実行を不能とするプログラム又はデータを前記不揮発性メモリに書き込むステップと、
を実行させることを特徴とする書き込みプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム及びデータを記憶する不揮発性メモリを備えるＩＣカード等の情報記憶媒体の技術に関する。
【背景技術】
【０００２】
近年、プログラム領域（コード領域）及びデータ領域の全てが、ＲＯＭに代えて、不揮発性メモリに設けられるＩＣカードが知られている。このような領域には、ユーザ（ＩＣカード利用者）がＩＣカードを市場で利用するために必要なプログラム（例えば、ＯＳやアプリケーションなど）及びデータ（例えば、個人情報や秘密情報など）がＩＣカードの発行処理により書き込まれる。このような発行処理は、ＩＣカードに搭載されたＩＣチップにより実行される。そのため、発行処理用のプログラムはＩＣカードの不揮発性メモリに事前に書き込まれる必要がある。
【０００３】
ところで、ＩＣカードの発行処理完了後、ＩＣチップには、発行処理用のプログラムが実行されるモード（以下、「発行処理モード」という）と、ユーザがＩＣカードを市場で利用するために必要なプログラムが実行されるモード（以下、「ユーザモード」という）とが存在することになる。ユーザモードは、発行処理完了後、ＩＣカードがユーザの手に渡った以降に動作する必要がある一方、発行処理モードは、発行処理完了後、ＩＣカードがユーザの手に渡った以降に動作することはセキュリティ上好ましくない。これは、発行処理モードでは、例えば、アプリケーションの登録、クレジット機能や携帯電話機の機能により使用される鍵などの秘密情報を書き換えることが可能となっているからである。そのため、ユーザの手に渡った以降に発行処理モードが利用できてしまうと不正なプログラムの書き込みや鍵の変更が可能となってしまう。
【０００４】
一方、特許文献１には、秘密情報の不正利用を防止することが可能なＩＣカードの技術が開示されている。この技術では、比較的耐タンパー性の高いＮＡＮＤ型フラッシュメモリが秘匿する情報の秘密レベルを、比較的耐タンパー性の低いホスト装置が秘匿する情報の秘密レベルよりも、より高く設定することで、仮にホスト装置が秘匿する情報が漏洩した場合であっても、比較的耐タンパー性の高いＮＡＮＤ型フラッシュメモリが秘匿する情報の秘密レベルが更に高いため、漏洩した情報を用いたＮＡＮＤ型フラッシュメモリの秘密情報の不正利用を防止することができるようになっている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４９９１９７１号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示されるように秘密レベルが高いといっても、秘密情報が漏洩する自体、好ましくなく、また、特許文献１の技術では処理が複雑化するという問題がある。
【０００７】
本発明は、発行処理モードを実行するためのプログラムの保護を処理が複雑化しない構成で行い、安全性を高めることが可能な情報記憶媒体、情報書き込み方法、及び書き込みプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１に記載の発明は、ユーザが情報記憶媒体を利用するために必要な第１のプログラムを書き込むための第２のプログラムを記憶する不揮発性メモリを備える前記情報記憶媒体であって、前記第２のプログラムを実行することにより前記第１のプログラムを前記不揮発性メモリに書き込む第１書込手段と、前記第１書込手段により前記第１のプログラムの書き込みが完了した場合に、前記第２のプログラムの実行を不能とするプログラム又はデータを前記不揮発性メモリに書き込む第２書込手段と、を備えることを特徴とする。
【０００９】
請求項２に記載の発明は、請求項１に記載の情報記憶媒体において、前記第２書込手段は、前記第２のプログラムが記憶されている前記不揮発性メモリの記憶領域の全部又は一部に前記第２のプログラムの実行を不能とするデータを書き込むことを特徴とする。
【００１０】
請求項３に記載の発明は、請求項１に記載の情報記憶媒体において、前記第２書込手段は、前記第２のプログラムが記憶されている前記不揮発性メモリの記憶領域に、前記第２のプログラムの実行を不能とするプログラムとして前記第１のプログラムを呼び出すプログラムを書き込むことを特徴とする。
【００１１】
請求項４に記載の発明は、請求項１乃至３の何れか一項に記載の情報記憶媒体において、前記第２書込手段は、前記不揮発性メモリに記憶されている所定のデータが書き換えられた場合、前記第１のプログラムの書き込みが完了したとして、前記第２のプログラムの実行を不能とするプログラム又はデータを前記不揮発性メモリに書き込むことを特徴とする。
【００１２】
請求項５に記載の発明は、請求項１乃至３の何れか一項に記載の情報記憶媒体において、前記第２書込手段は、前記第１のプログラムの書き込み処理完了コマンドが受信された場合、前記第１のプログラムの書き込みが完了したとして、前記第２のプログラムの実行を不能とするプログラム又はデータを前記不揮発性メモリに書き込むことを特徴とする。
【００１３】
請求項６に記載の発明は、ユーザが情報記憶媒体を利用するために必要な第１のプログラムを書き込むための第２のプログラムを記憶する不揮発性メモリを備える前記情報記憶媒体におけるコンピュータにより実行される情報書き込み方法であって、前記第２のプログラムを実行することにより前記第１のプログラムを前記不揮発性メモリに書き込むステップと、前記第１のプログラムの書き込みが完了した場合に、前記第２のプログラムの実行を不能とするプログラム又はデータを前記不揮発性メモリに書き込むステップと、を含むことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、発行処理モード用プログラムの保護を処理が複雑化しない構成で行い、安全性を高めることができる。
【図面の簡単な説明】
【００１５】
【図１】（Ａ）は、ＩＣカード発行システムＳの概要構成例を示す図であり、（Ｂ）は、不揮発性メモリ１３上のプログラム及びデータの配置例を示す図である。
【図２】図１（Ｂ）に示すプログラムが実行される場合の処理例を示すフローチャートである。
【図３】発行処理モードの流れの一例を示すフローチャートである。
【図４】（Ａ）は、発行処理モード用プログラムの一部が書き換えられる場合の例を示す図であり、（Ｂ）は、発行処理モード用プログラムの全部が書き換えられる場合の例を示す図である。
【図５】（Ａ）は、発行処理モード用プログラムがユーザモード用プログラムを呼び出すプログラムにより書き換えられる場合の例を示す図であり、（Ｂ）は、発行処理モード用プログラムがユーザモード用プログラムを呼び出すプログラムにより書き換えられた場合の処理例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ＩＣカード発行システムに対して本発明を適用した場合の実施の形態である。なお、本明細書で「発行」とは、ＩＣチップ等の情報記憶媒体に所定の情報（プログラムやデータなど）を書き込むことを意味する。
【００１７】
先ず、図１を参照して、本実施形態に係るＩＣカード発行システムの構成及び機能概要について説明する。図１（Ａ）は、ＩＣカード発行システムＳの概要構成例を示す図である。図１（Ａ）に示すように、ＩＣカード発行システムＳは、発行対象のＩＣカード１と、ＩＣカード発行機２とを備える。
【００１８】
ＩＣカード１には、図１（Ａ）に示すように、ＩＣチップ１ａが搭載されている。なお、ＩＣカード１は、キャッシュカード、クレジットカード、社員カード等として使用される。或いは、ＩＣカード１は、スマートフォンや携帯電話機等の通信機器に組み込まれる。ＩＣチップ１ａは本発明における情報記憶媒体を構成するが、このＩＣチップ１ａは通信機器の回路基板上に直接組み込んで構成するようにしてもよい。
【００１９】
ＩＣチップ１ａは、コンピュータとしてのＣＰＵ（Central Processing Unit）１０、ＲＡＭ（Random Access Memory）１１、ＲＯＭ（Read Only Memory）１２、不揮発性メモリ１３、及びＩ／Ｏ回路１４を備えて構成される。なお、Ｉ／Ｏ回路１４は、ＩＣカード発行機２とのインターフェイスを担う。Ｉ／Ｏ回路１４は、例えばＩＳＯ／ＩＥＣ７８１６によって定められたＣ１〜Ｃ８の８個の端子が設けられている。例えば、Ｃ１端子は電源端子、Ｃ２端子はリセット端子、Ｃ３端子はクロック端子、Ｃ５端子はグランド端子、Ｃ６端子はＣＬＦ（Contactless Front End)とのデータ通信を行う端子、Ｃ７端子はＩＣカード発行機２とのデータ通信を行う端子である。ＣＬＦは、ＮＦＣ（Near Field Communication）技術を採用した非接触通信を行う非接触型ＩＣチップであり、非接触のフィールド内で非接触リーダとの間で、非接触通信を行う。非接触リーダから送信されたコマンドは、ＣＬＦ及びＣ６端子を介して受信される。
【００２０】
ＣＰＵ１０は、ＲＯＭ１２または不揮発性メモリ１３に記憶されるプログラムを実行する演算装置である。ＲＯＭ１２は、ＩＣチップ１ａに設けられない場合もある。不揮発性メモリ１３には、例えばフラッシュメモリが適用される。なお、不揮発性メモリ１３は、「Electrically Erasable Programmable Read-Only Memory」であっても構わない。不揮発性メモリ１３には、プログラム及びデータが記憶される。図１（Ｂ）は、不揮発性メモリ１３上のプログラム及びデータの配置例を示す図である。図１（Ｂ）の例では、不揮発性メモリ１３には、ＯＳ、発行処理モード用プログラム、ユーザモード用プログラム、及びデータがそれぞれに割り当てられた記憶領域に配置（記憶）されるようになっている。ここで、ユーザモード用プログラムは、ユーザがＩＣカードを市場で利用するために必要な第１のプログラムの一例であり、上述したユーザモードを実行するためのプログラムである。発行処理モード用プログラムは、ユーザモード用プログラムを不揮発性メモリ１３に書き込むための第２のプログラムの一例であり、上述した発行処理モードを実行するためのプログラムである。
【００２１】
図２は、図１（Ｂ）に示すプログラムが実行される場合の処理例を示すフローチャートである。図２に示すように、ＩＣカード１ａが起動（ステップＳ１）した後、ＣＰＵ１０は、外部からＩ／Ｏ回路１４を介してモード選択コマンドを受信すると（ステップＳ２）、当該モード選択コマンドがユーザモードを示すか、または発行処理モードを示すかを判定する（ステップＳ３）。そして、モード選択コマンドがユーザモードを示す場合（ステップＳ３：ユーザモード）、ＣＰＵ１０は、ユーザモード用プログラムに従ってユーザモードを実行する（ステップＳ４）。一方、モード選択コマンドが発行処理モードを示す場合（ステップＳ３：発行処理モード）、ＣＰＵ１０は、発行処理モード実行許可判定を行う（ステップＳ５）。例えばモード選択コマンドに所定の認証データが含まれている場合、発行処理モードの実行が許可される。この発行処理モード実行許可判定において、不許可と判定された場合（ステップＳ５：不許可）、ユーザモード用プログラムに従ってユーザモードが実行される（ステップＳ４）。一方、この発行処理モード実行許可判定において、許可と判定された場合（ステップＳ５：許可）、ＣＰＵ１０は、発行処理モード用プログラムに従って発行処理モードを実行する（ステップＳ６）。なお、ＣＰＵ１０は、プログラムの実行中に関数化されたプログラムを実行するときは不揮発性メモリ１３上に配置された関数のアドレスの実行コードを読み取りにいくようになっている。
【００２２】
本実施形態におけるＣＰＵ１０は、本発明における第１書込手段として機能し、発行処理モード用プログラムを実行することによりユーザモード用プログラムを不揮発性メモリ１３に書き込む。そして、ＣＰＵ１０は、本発明における第２書込手段として機能し、当該ユーザモード用プログラムの書き込みが完了した場合に、発行処理モード用プログラムの実行を不能とするプログラム又はデータを不揮発性メモリ１３に書き込むことで発行処理モード用プログラムの書き換えを行う。ここで、発行処理モード用プログラムの書き換えは、発行処理モード内で実施される。
【００２３】
図３（Ａ），（Ｂ）は、それぞれ、発行処理モードの流れの一例を示すフローチャートである。この  図３（Ａ），（Ｂ）に示す発行処理モードの前提として、発行処理モード用プログラムが、不揮発性メモリ１３に割り当てられた発行処理モード用プログラム領域に記憶されているものとする。
【００２４】
図３（Ａ）の例では、ＣＰＵ１０は、ＩＣカード発行機２から、ユーザモード用プログラムの書き込みコマンドを受信すると（ステップＳ１１）、不揮発性メモリ１３に割り当てられたユーザモード用プログラム領域に、ユーザモード用プログラムを書き込むコマンド処理を実行する（ステップＳ１２）。そして、ＣＰＵ１０は、例えばユーザモード用プログラム領域に予め記憶されている所定のデータ（例えば発行処理完了フラグ）が書き換わったか否かを判定する（ステップＳ１３）。例えば、ユーザモード用プログラムは、所定量のデータごとにユーザモード用プログラム領域の先頭アドレスから順次書き込まれていくが、ユーザモード用プログラムの最後のデータが書き込まれる領域に予め記憶されている所定のデータが書き換えられたと判定された場合（ステップＳ１３：ＹＥＳ）、ユーザモード用プログラムの書き込みが完了したとして、ステップＳ１４へ進む。一方、所定のデータが書き換えられていないと判定された場合（ステップＳ１３：ＮＯ）、ステップＳ１１に戻り、ユーザモード用プログラムの書き込みが継続する。そして、ステップＳ１４では、ＣＰＵ１０は、発行処理モード用プログラムの実行を不能とするプログラム又はデータを、不揮発性メモリ１３に割り当てられた発行処理モード用プログラム領域に書き込むことで発行処理モード用プログラムの書き換えを行い、発行処理を終了（つまり、書き換えられた時点で発行処理が終了）する。
【００２５】
図３（Ｂ）の例では、ＣＰＵ１０は、ＩＣカード発行機２からコマンドを受信すると（ステップＳ２１）、当該受信されたコマンドが発行処理完了コマンド（書き込み処理完了コマンドの一例）であるか（つまり、発行処理完了コマンド受信か）否かを判定する（ステップＳ２２）。当該受信されたコマンドが発行処理完了コマンドでないと判定された場合（ステップＳ２２：ＮＯ）、ステップＳ２３へ進む。ステップＳ２３では、ＣＰＵ１０は、不揮発性メモリ１３に割り当てられたユーザモード用プログラム領域に、ユーザモード用プログラムを書き込むコマンド処理を実行し、ステップＳ１１に戻る。一方、受信されたコマンドが発行処理完了コマンドであると判定された場合（ステップＳ２２：ＹＥＳ）、ユーザモード用プログラムの書き込みが完了したとして、ステップＳ２４へ進む。そして、ステップＳ２４では、ＣＰＵ１０は、発行処理モード用プログラムの実行を不能とするプログラム又はデータを、不揮発性メモリ１３に割り当てられた発行処理モード用プログラム領域に書き込むことで発行処理モード用プログラムの書き換えを行い、発行処理を終了（つまり、書き換えられた時点で発行処理が終了）する。
【００２６】
ここで、発行処理モード用プログラムの書き換えは、発行処理モード用プログラムの一部であってもよいし全部（全領域）であってもよい。図４（Ａ）は、発行処理モード用プログラムの一部が書き換えられる場合の例を示す図であり、図４（Ｂ）は、発行処理モード用プログラムの全部が書き換えられる場合の例を示す図である。図４（Ａ）の例では、不揮発性メモリ１３の発行処理モード用プログラム領域の先頭アドレスから所定範囲分のプログラムが書き換えられることになる。また、発行処理モード用プログラムの実行を不能とするデータは、発行処理モード用プログラムの実行を不能にできるものであれば、どのようなデータであってもよい。例えば“ＦＦＦＦ”のデータが書き込まれる場合、発行処理モード用プログラムの書き換えは、発行処理モード用プログラムの消去ということになる。
【００２７】
また、発行処理モード用プログラムの実行を不能とするプログラムは、発行処理モード用プログラムの実行を不能にできるものであれば、どのようなプログラムであってもよい。しかし、ＣＰＵ１０は、発行処理モード用プログラム領域に、発行処理モード用プログラムの実行を不能とするプログラムとしてユーザモード用プログラムを呼び出すプログラムを書き込む（つまり、発行処理モード用プログラムが、ユーザモード用プログラムを呼び出すプログラムに書き換える（変更する））ように構成すればより効果的である。図５（Ａ）は、発行処理モード用プログラムがユーザモード用プログラムを呼び出すプログラムにより書き換えられる場合の例を示す図である。図５（Ｂ）は、発行処理モード用プログラムがユーザモード用プログラムを呼び出すプログラムにより書き換えられた場合の処理例を示すフローチャートである。図５（Ｂ）に示すように、ＩＣカード１ａが起動（ステップＳ３１）した後、ＣＰＵ１０は、外部からＩ／Ｏ回路１４を介してモード選択コマンドを受信すると（ステップＳ３２）、当該モード選択コマンドがユーザモードを示すか、または発行処理モードを示すかを判定する（ステップＳ３３）。そして、モード選択コマンドがユーザモードを示す場合（ステップＳ３３：ユーザモード）、ＣＰＵ１０は、ユーザモード用プログラムに従ってユーザモードを実行する（ステップＳ３４）。一方、モード選択コマンドが発行処理モードを示す場合（ステップＳ３３：発行処理モード）、ＣＰＵ１０は、上述したステップＳ５と同様、発行処理モード実行許可判定を行う（ステップＳ３５）。この発行処理モード実行許可判定において、不許可と判定された場合（ステップＳ３５：不許可）、ユーザモード用プログラムに従ってユーザモードが実行される（ステップＳ３４）。一方、この発行処理モード実行許可判定において、許可と判定された場合（ステップＳ３５：許可）、ユーザモード用プログラムが呼び出される（ステップＳ３６）。そして、ＣＰＵ１０は、ユーザモード用プログラムに従ってユーザモードを実行する（ステップＳ３４）。なお、発行処理モード実行許可判定処理は無い場合もある。
【００２８】
以上説明したように、上記実施形態によれば、ＩＣチップ１ａは、発行処理モード用プログラムを実行することによりユーザモード用プログラムを不揮発性メモリ１３に書き込み、当該ユーザモード用プログラムの書き込みが完了した場合に、発行処理モード用プログラムの実行を不能とするプログラム又はデータを不揮発性メモリ１３に書き込むように構成したので、発行処理モード用プログラムの保護を処理が複雑化しない構成で行い、安全性を高めることができる。
【００２９】
なお、上記実施形態では、発行処理モード用プログラムの実行が不可能となるようにプログラム又はデータを書き込むことを意図しているため、書き込まれるプログラム又はデータの内容については特に限定されるものではない。発行処理モード用プログラム領域に書き込まれるプログラムは、例えばＩＣチップ１ａが暴走するような命令コードであってもよい。これにより、市場に出た後に対象のコードを実行しようとした場合に、ＩＣチップ１ａが暴走するので、市場に出たあとの意図しない利用を防ぐことが可能となる。また、従来のようなフラグや認証機能が攻撃されたとしても暴走コードとなっているため、プログラムが実行されることはなくなる。
【符号の説明】
【００３０】
１  ＩＣカード
２  ＩＣカード発行機
１ａ  ＩＣチップ
１０  ＣＰＵ
１１  ＲＡＭ
１２  ＲＯＭ
１３  不揮発性メモリ
１４  Ｉ／Ｏ回路
【図１】
2015022648.tif 000003
【図２】
2015022648.tif 000004
【図３】
2015022648.tif 000005
【図４】
2015022648.tif 000006
【図５】
2015022648.tif 000007