説明

半導体メモリ

ICカード(200)は、本発明の半導体メモリの一例であり、複数のアプリケーションプログラムを実行可能であって、図書館APL(301)に関連するデータを記憶するメモリ領域(331)と、公共プールAPL(302)に関連するデータを記憶するメモリ領域(332)と、アプリケーションプログラムの、関連するデータに対するセキュリティレベルを特定するための基準に基づいて、図書館APL(301)および公共プールAPL(302)の、関連するデータに対するそれぞれのセキュリティレベルを特定するセキュリティレベル設定部(603)と、セキュリティレベル設定部(603)により特定された2つのセキュリティレベルの関係が所定の条件を満たす場合、メモリ領域(331)に記憶されているデータAを半導体メモリ外部に出すことなく複製して、かつ、メモリ領域(332)に記憶させるデータ操作部(608)とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のアプリケーションプログラムを実行可能な半導体メモリに関する。
【背景技術】
【0002】
現在、半導体メモリはマスメディアや金融機関、国、自治体など様々な分野から注目を集めている。その理由として、半導体メモリの持つ、格納データの保護機能が挙げられる。格納データの保護機能を持った半導体メモリとしてはSDメモリカードやICカードがある。
【0003】
図1は、一般的なICカードの内部構造の概要を示す図である。図1に示すように、ICカード200は、アプリケーションプログラムを格納するROM203と、アプリケーションプログラム実行の際に用いられるデータを一時的に格納するRAM202と、ROM203に記憶されたアプリケーションプログラムに従って各種コマンド処理等の制御処理を行うCPU201と、外部からダウンロードされたアプリケーションプログラムを格納する書き換え可能なEEPROM204とを備える。
【0004】
現在では、クレジットカードをはじめ多くの磁気カードがICカードへ転換されてきている。ICカードは磁気カードに比べて記憶容量が大きいことはもとより、格納される個人情報等の情報に対するセキュリティ機能の向上がなされていることが特徴として挙げられる。
【0005】
以前は、ICカードは通常一枚のカード内に電子マネー等の単一のアプリケーションプログラムのみが実行可能であった。しかしながら、近年では、ICカードにおけるメモリの記憶容量やCPUの処理速度向上にともない、一枚のICカードに複数のアプリケーションプログラムを搭載し、実行することが可能となっている。これにより、利用者は、複数枚の異なるICカードを所持する必要がなく、一枚のICカードで異なる様々なアプリケーションプログラムを利用することが可能である。
【0006】
このように、複数のアプリケーションプログラムを備え、それら複数のアプリケーションプログラムを実行可能なICカードを、以下、マルチアプリケーション対応のICカードという。また、以下の説明において、単にICカードという場合はマルチアプリケーション対応のICカードを意味する。
【0007】
図2は、従来のICカードにおけるソフトウエェアの構成を示す図である。ICカードのソフトウェアはレイヤ構造をもち、このレイヤ構造では最下位層にアプリケーションプログラムが使用するメモリ領域310があり、この上位層にOS311、最上位層に複数のアプリケーションプログラムが存在する。
【0008】
図2に示すように、ICカード200は、第1クライアントECアプリケーションプログラム(第1C_E_APL)301、第2クライアントECアプリケーションプログラム(第2C_E_APL)302、およびクライアント公共アプリケーションプログラム(C_P_APL)303を含む、複数のアプリケーションプログラムを備えている。
【0009】
このように、一枚のICカードに複数のアプリケーションプログラムが備えられている場合、各アプリケーションプログラムはOS311のファイヤウォール機能により、他のアプリケーションプログラムが使用するメモリ領域310を侵害することはないようになっている。つまり、それぞれのアプリケーションプログラムは、自身に関連するデータを保存するための専用のメモリ領域を有している。また、従来これらのアプリケーションプログラムは互いに独立しており、連携する手段も存在していない。
【0010】
そのため、例えば、ある電子マネーのアプリケーションプログラムのメモリ領域310に保存されている個人情報を、異なるアプリケーションプログラムのメモリ領域310に複製する場合、ICカード外のサーバのアプリケーションプログラムを利用し、そのサーバ経由でデータの複製を行う。
【0011】
なお、以下、図および文中に記載されている「APL」はアプリケーションプログラムを意味する。また、「アプリケーションプログラムのデータ」とはそのアプリケーションプログラムに関連するデータであり、そのアプリケーションプログラム専用のメモリ領域に記憶されているデータを指す。また、「アプリケーションプログラムにデータを複製する」とはそのアプリケーションプログラム専用のメモリ領域にそのデータを複製することを意味する。
【0012】
図3は、従来のICカードにおいて、異なるアプリケーションプログラム間でデータの複製が行われる様子を示す概念図である。なお、ICカード200と、ECサーバ100とはリーダライタ121を介して通信を行う。
【0013】
図3は、ICカード200において、第1C_E_APL321のメモリ領域に保存されているデータAが、第2C_E_APL322のメモリ領域に複製される様子を示している。
【0014】
また、データAの複製に、電子商取引のサービスを提供するサーバであるECサーバ100が利用された場合を示している。
【0015】
図3に示すように、第1C_E_APL321と第2C_E_APL322との間にはファイヤウォール340があり、ICカード200内で複製することはできない。そのため、ECサーバ100を経由しデータの複製を行う。複製の決定および、複製されるデータの選択は、ECサーバ100を利用するユーザにより行われる。
【0016】
まず、ユーザにより、複製されるデータが選択され、複製実行の要求がECサーバ100になされる。ECサーバ100内の制御APL109はその選択と要求に基づき、読み出しAPL107およびICカード200内の第1C_E_APL321の認証を行う。更に、書き込みAPL108および第2C_E_APL322の認証を行う。
【0017】
認証完了後、制御APL109は読み出しAPL107にデータの読み出しを要求する。読み出しAPL107はリーダライタ121を介してICカード200内の第1C_E_APL321のデータAを読み出す。次に、制御APL109は書き込みAPL108にデータAの書き込みを要求する。書き込みAPL108はリーダライタ121を介してICカード200内の第2C_E_APL322のメモリ領域にデータAを書き込む。
【発明の開示】
【0018】
上述のように、従来の技術では、異なるアプリケーションプログラム間でデータを複製する場合、ICカード内の複製対象となるデータは、一旦ICカードの外へ出される。これは、ICカードのOSにより各アプリケーションプログラム専用のメモリ領域がファイヤウォールで保護されているためである。
【0019】
つまり、上記従来の技術では、外部のサーバのアプリケーションプログラムがカード内のデータおよび、データの暗号情報を一旦カード外部へ読み出し、書き込みの処理を行う。そのため、暗号情報が外部に漏洩する危険性があり、さらに電子マネーなどの重要なデータであっても、外部への漏洩や、第三者による改竄といった危険にさらされるという課題を有している。
【0020】
本発明は、前記従来の課題を解決するもので、複数のアプリケーションプログラムを実行可能な半導体メモリであって、異なるアプリケーションプログラム間で、重要なデータを安全に複製する半導体メモリを提供することを目的とする。
【0021】
上記目的を達成するために、本発明の半導体メモリは、少なくとも2つのアプリケーションプログラムを実行可能な半導体メモリであって、第1のアプリケーションプログラムに関連するデータを記憶する第1記憶部と、第2のアプリケーションプログラムに関連するデータを記憶する第2記憶部と、アプリケーションプログラムの、関連するデータに対するセキュリティレベルを特定するための基準に基づいて、前記第1のアプリケーションプログラムおよび前記第2のアプリケーションプログラムの、関連するデータに対するそれぞれのセキュリティレベルを特定するレベル特定部と、前記レベル特定部により特定された2つの前記セキュリティレベルの関係が所定の条件を満たす場合、前記第1記憶部に記憶されているデータを半導体メモリ外部に出すことなく複製して、かつ、前記第2記憶部に記憶させる複製部とを備える。
【0022】
本発明の半導体メモリは、更に、前記レベル特定部により特定された2つの前記セキュリティレベルを比較することにより前記関係を特定する比較部を備え、前記複製部は、前記比較部により特定された前記関係が所定の条件を満たす場合、前記第1記憶部に記憶されているデータを複製して前記第2記憶部に記憶させてもよい。
【0023】
また、本発明の半導体メモリは、更に、前記レベル特定部により特定された2つの前記セキュリティレベルを比較することにより特定された前記関係を取得する取得部を備え、前記複製部は、前記取得部により取得された前記関係が所定の条件を満たす場合、前記第1記憶部に記憶されているデータを複製して前記第2記憶部に記憶させてもよい。
【0024】
前記セキュリティレベルは、前記アプリケーションプログラムが利用する暗号の強度によって特定される値であってもよい。
【0025】
前記暗号の強度は、前記暗号の暗号方式が複雑なほど強くてもよく、暗号鍵のビット長が長いほど強くてもよい。
【0026】
また、前記セキュリティレベルは、前記アプリケーションプログラムが使用するアプリケーションプロトコルのバージョン番号によって特定される値であってもよい。
【0027】
また、前記セキュリティレベルは、前記アプリケーションプログラムのバージョン番号によって特定される値であってもよい。
【0028】
以上のように、本発明の半導体メモリは、レベル特定部を備えており、レベル特定部が、アプリケーションプログラムの関連するデータに対するセキュリティレベルを特定するための基準に基づいて、2つのアプリケーションプログラムの、関連するデータに対するセキュリティレベルを決定する。つまり、2つのセキュリティレベルは共通の基準で特定されるため、比較することができる。
【0029】
複製部は、2つのセキュリティレベルの関係が所定の条件を満たす場合、第1記憶部に記憶されている第1のアプリケーションに関連するデータを複製し、第2のアプリケーションに関連するデータを記憶する第2記憶部へ記憶させる。つまり、半導体メモリ内で複製が行われる。これにより、異なるアプリケーションプログラム間で、データを安全に複製することができる。
【0030】
複製先のアプリケーションプログラムが、複製元のアプリケーションプログラムと同等以上の強度を有するセキュリティ機能を備えている場合、そのデータは現状と同等以上に強固に保護されるデータである。つまり、そのデータは重要なデータであると考えられる。
【0031】
このような場合、重要なデータを半導体メモリ内で複製することにより、重要なデータを、外部への漏洩や、第三者による改竄といった危険から守ることができる。その結果、ユーザは安心して半導体メモリを利用することができる。
【0032】
また、本発明の半導体メモリは、2つのセキュリティレベルを比較することにより、その2つのセキュリティレベルの関係を特定する。これにより、セキュリティレベルも半導体メモリの外部に出されることがないため、セキュリティレベルを第三者に知られる危険がない。
【0033】
また、本発明の半導体メモリは、2つのセキュリティレベルを比較することにより特定された、その2つのセキュリティレベルの関係を取得する。これにより、半導体メモリはセキュリティレベルを比較するため構成部を備える必要がなく、簡易な構成とすることができる。
【0034】
また、本発明の半導体メモリは、アプリケーションプログラムが利用する暗号の強度によって特定される値をセキュリティレベルとして使用する。暗号の強度は、暗号方式が複雑なほど強い値であり、または、暗号鍵のビット長が長いほど強い値である。これにより、暗号が第三者に解読されにくいほど、セキュリティレベルの値が高いとすることができる。
【0035】
また、本発明の半導体メモリは、アプリケーションプログラムが使用するアプリケーションプロトコルのバージョンにより特定される値をセキュリティレベルとして使用する。これにより、アプリケーションプロトコルのセキュリティ機能が向上し、プロトコルバージョンが上がるほど、セキュリティレベルの値が高いとすることができる。
【0036】
また、本発明の半導体メモリは、アプリケーションプログラムのバージョンにより特定される値をセキュリティレベルとして使用する。これにより、アプリケーションプログラムのセキュリティ機能が向上し、そのバージョンが上がるほど、セキュリティレベルの値が高いとすることができる。
【0037】
上述のように、セキュリティレベルを特定するための情報として、暗号の強度やプロトコルバージョンなどを用いることができるため、本発明の半導体メモリが使用される実情に沿った、セキュリティレベルの特定をすることができる。
【0038】
このように、本発明は、複数のアプリケーションプログラムを実行可能な半導体メモリであって、異なるアプリケーションプログラム間で、重要なデータを安全に複製する半導体メモリを提供することができる。
【0039】
更に、本発明は、本発明の半導体メモリの特徴的な構成部をステップとする方法として実現したり、それらのステップを含むプログラムとして実現したり、そのプログラムが格納された、CD−ROM等の記録媒体として実現したり、集積回路として実現することもできる。プログラムは、通信ネットワーク等の伝送媒体を介して流通させることもできる。
【0040】
本出願の技術的背景に関する追加情報として、明細書、図面、及び特許請求の範囲を含む2004年4月8日にされた出願番号2004−114330号の日本特許出願により開示されている事項は、そっくりそのまま引用されている。
【発明を実施するための最良の形態】
【0041】
以下に、本発明を実施するための最良の形態を、図面を参照して説明する。実施の形態1〜3におけるICカードは、本発明の半導体メモリの一例である。また、接触型ICカードであり、耐タンパモジュール(TRM)を内蔵している。なお、非接触型ICカードとして本発明の半導体メモリを実現することも可能である。
【0042】
なお、「複製」は、本発明の半導体メモリにおいて、複製後に元のデータを削除する「データの移動」も含む。
【0043】
(実施の形態1)
まず、本発明の実施の形態におけるICカードが使用される環境を図4を用いて説明する。
【0044】
図4は、ICカードが使用される環境を示す図である。図4に示すように、ICカード200が使用される環境は、ECサーバ100と、公共サービスサーバ110と、無線基地局120と、リーダライタ121と、ポータブルデバイス122と、ネットワーク123とから構成される。
【0045】
ECサーバ100は、オンライン決済等の電子商取引のサービス(以下、「ECサービス」という。)を提供するサーバである。ECサーバ100では、n個のサービスに対応した、第1E_APL101、第2E_APL102、・・・、第nE_APL103のn個のサーバアプリケーションプログラムが動作している。各サーバアプリケーションプログラムは固有のECサービスをICカード200に提供する。
【0046】
公共サービスサーバ110は、公共施設の利用申し込み等の公共サービスを提供するサーバである。公共サービスサーバ110ではn個のサービスに対応した、第1P_APL111、第2P_APL112、・・・、第nP_APL113のn個のサーバアプリケーションプログラムが動作している。各サーバアプリケーションプログラムは固有の公共サービスをICカード200に提供する。
【0047】
リーダライタ121は、ICカード200からのデータの読み出し、または、ICカード200へのデータの書き込みを行う装置である。例えば、クレジット会社のキャッシュディスペンサーにより実現される。リーダライタ121はネットワーク123と接続されており、このリーダライタ121を介することでICカード200は、ECサーバ100及び公共サービスサーバ110のサーバアプリケーションプログラムを利用することが可能である。
【0048】
無線基地局120は、建物や電柱の屋上に備え付けられた機器でありポータブルデバイス122と無線によるデータのやり取りを行う。無線基地局120はネットワーク123と接続されており、ポータブルデバイス122は、この無線基地局120を介し、ECサーバ100及び公共サービスサーバ110と通信を行うことができる。
【0049】
ポータブルデバイス122は、ICカード200と通信可能な、携帯電話型の機器であり、ICカード200を差し込むためのカードスロットを有している。つまり、ICカード200は、ポータブルデバイス122を介することでも、ECサーバ100及び公共サービスサーバ110のサーバアプリケーションプログラムを利用することが可能である。
【0050】
ポータブルデバイス122にはブラウザソフトウェアがインストールされており、ユーザはこのブラウザソフトウェアのユーザインタフェースを介して、ICカード200内のデータにアクセスすることができる。
【0051】
なお、ICカード200と、ECサーバ100または公共サービスサーバ110とが通信を行う際、リーダライタ121経由であっても、ポータブルデバイス122経由であっても、ICカード200、ECサーバ100および公共サービスサーバ110の動作は同じである。
【0052】
図5は、図4に示す環境下において、ICカード200が公共サービスサーバ110と通信を行う場合のハードウェア構成の概観を示す図である。
【0053】
図5に示すように、ICカード200には、公共サービスサーバ110を利用するためのアプリケーションプログラムである、図書館APL301と公共プールAPL302とが格納されている。
【0054】
これら、アプリケーションプログラムは、公共サービスサーバ110からダウンロードされ、ICカード200内に格納されている。
【0055】
図書館APL301は、図書館で本を借りるためのアプリケーションプログラムであり、公共サービスサーバ110と通信することにより、ユーザへの本の貸し出し状況の確認等を行える。また、図書館APL301専用のメモリ領域にユーザの名前のデータであるデータAなどの個人情報が記憶されている。
【0056】
公共プールAPL302は、公共プールがある施設に入館するためのアプリケーションプログラムであり、公共サービスサーバ110と通信することにより、ユーザの入館履歴の確認等を行える。また、公共プールAPL302はダウンロードされた直後であり、公共プールAPL専用のメモリ領域には、ユーザの個人情報は記憶されていない。
【0057】
ユーザは、ICカード200を、パーソナルコンピュータ(以下、「PC」という。)に設置されたリーダライタ121のカードスロット121aに挿入することで、ICカード200と公共サービスサーバ110との間で通信を行わせることができる。
【0058】
また、PCに接続されたディスプレイ130で、公共サービスサーバ110から送出される情報や、ICカード200内に記憶されているデータを閲覧することができる。また、PCに備えられたキーボードおよびマウスを操作することで、公共サービスサーバ110およびICカード200へ指示を行うことができる。
【0059】
図6は、図書館APL301のデータAが公共プールAPL302のデータとして複製される状況を示す概念図である。図6を用いて、実施の形態1のICカード200におけるデータの複製の概要を説明する。
【0060】
本発明の実施の形態1におけるICカード200は、ICカード200に格納されている各アプリケーションプログラムのセキュリティレベルを記憶している。セキュリティレベルとは、アプリケーションプログラムの、そのアプリケーションプログラムに関連するデータに対するセキュリティの強度を示す情報である。各アプリケーションプログラムのセキュリティレベルは同一の基準により特定されている。また、公共サービスサーバ110は、セキュリティレベルを比較する機能を有している。セキュリティレベルについては図8を用いて後述する。
【0061】
公共サービスサーバ110におけるセキュリティレベルの比較により、複製先である公共プールAPL302のセキュリティレベルが、複製元の図書館APL301のセキュリティレベルと同等以上であると特定された場合、ICカード200のOSがアプリケーションプログラム間のファイヤウォール340を一時的もしくは部分的に解除する。これにより、図6に示すように、ICカード200内でデータAが複製される。
【0062】
つまり、データの複製を行う際、そのデータを必要とする複製先のアプリケーションプログラムが、複製元のアプリケーションプログラムと同等以上の強度を有するセキュリティ機能を備えているということは、そのデータは現状と同等以上に強固に保護されるデータである。つまり、そのデータは重要なデータであると考えられる。
【0063】
従って、データAをICカード200の外部に出すことなく、ICカード200内でデータAの複製を行う。言い換えれば、ICカード200からそのデータが読み出されることなく複製が行われる。つまり、ICカード200に接続された外部機器を経由せずにデータの複製が行われる。これにより、重要なデータであるデータAの安全を確保しつつ、データAを複製することができる。
【0064】
なお、データAの複製先である公共プールAPL302のセキュリティ強度が、複製元の図書館APL301のセキュリティ強度より下であった場合、ファイヤウォール340は一時的もしくは部分的に解除されることはなく、公共サービスサーバ110を介してデータAが複製される。具体的には、公共サービスサーバ110が備える、制御APL117の要求により、読み出しAPL115がリーダライタ121を介してデータAを読み出す。読み出されるデータAは書き込みAPL116の動作によりリーダライタ121を介してICカード200内の公共プールAPL専用のメモリ領域に書き込まれる。
【0065】
上述の、データの複製の際のICカード200および公共サービスサーバ110の動作の詳細は、図12〜15を用いて後述する。
【0066】
次に、実施の形態1におけるICカード200および公共サービスサーバ110の構成を図7〜11を用いて説明する。なお、ICカード200のハードウェア構成は一般的なICカードのハードウェア構成(図1参照)と変わりない。
【0067】
図7は、実施の形態1のICカード200および公共サービスサーバ110におけるソフトウェアの機能的な構成を示す機能ブロック図である。
【0068】
図7に示すように、ICカード200は、図書館APL301と、公共プールAPL302と、セキュリティレベル設定部603と、セキュリティレベル取得部604と、セキュリティレベル出力部605と、セキュリティレベル管理部602と、セキュリティ情報記憶部610と、データ操作部608と、メモリ領域310とを備える。
【0069】
なお、ICカード200と公共サービスサーバ110との通信を中継するリーダライタ121、および、ICカード200と公共サービスサーバ110が本来備えるOS等についての図示および説明は省略し、実施の形態1におけるデータの複製に特徴的な事項についてのみ説明する。
【0070】
図書館APL301は、上述のように、図書館で本を借りるためのアプリケーションプログラムであり、公共サービスサーバ110と通信することにより、ユーザへの本の貸し出し状況の確認等を行える。
【0071】
公共プールAPL302は、上述のように、公共プールがある施設に入館するためのアプリケーションプログラムであり、公共サービスサーバ110と通信することにより、ユーザの入館履歴の確認等を行える。
【0072】
セキュリティレベル設定部603は、本発明の半導体メモリにおけるレベル特定部の一例であり、ダウンロードしたアプリケーションプログラムのセキュリティレベルを特定する処理部である。セキュリティレベル取得部604は、セキュリティ情報記憶部610のAPL情報テーブル601に保存されているセキュリティレベルを取得する処理部である。セキュリティレベル出力部605は、セキュリティレベル設定部603が取得したセキュリティレベルを公共サービスサーバ110へ出力する処理部である。
【0073】
セキュリティ情報記憶部610は、セキュリティレベルテーブル600と、方式テーブル609と、APL情報テーブル601とを記憶するための記憶領域である。
【0074】
セキュリティレベルテーブル600は、各アプリケーションプログラムが利用する暗号方式から各アプリケーションプログラムのセキュリティレベルを特定するためのテーブルである。方式テーブル609は、各アプリケーションプログラムが用いる暗号方式を特定するためのテーブルである。APL情報テーブル601は、各アプリケーションプログラムの属性情報が保存されているテーブルである。各テーブルの内容については図8〜図11を用いて後述する。
【0075】
セキュリティレベル管理部602は、セキュリティ情報記憶部610に記憶されている情報の入出力を行う処理部である。
【0076】
メモリ領域310は、各アプリケーションプログラムに関連するデータを記憶する記憶領域であり、図書館APL301専用の領域であるメモリ領域331と、公共プールAPL302専用の領域であるメモリ領域332とが存在する。メモリ領域331は本発明の半導体メモリにおける第1記憶部の一例であり、メモリ領域332は本発明の半導体メモリにおける第2記憶部の一例である。メモリ領域331にはデータAが記憶されている。
【0077】
データ操作部608は、本発明の半導体メモリにおける複製部の一例であり、メモリ領域310に記憶されているデータの複製を行う処理部である。
【0078】
公共サービスサーバ110は、上述のように、公共施設の利用申し込み等の公共サービスを提供するサーバであり、制御部105と比較部106とを備える。
【0079】
制御部105は、ICカード200とのデータのやり取り、および比較部106の制御を行う処理部である。つまり、制御部105は、図6に示す、データの読み出し、書き込みのためのサーバアプリケーションプログラムである、読み出しAPL115、書き込みAPL116、および制御APL117の有する機能を発揮する処理部である。比較部106は、ICカード200から送信される2つのセキュリティレベルを比較することにより、その2つのセキュリティレベルの関係を特定する処理部である。例えば、公共プールAPL302のセキュリティレベルの方が、図書館APL301のセキュリティレベルより上であるという関係を特定する。
【0080】
上述のように、本発明の実施の形態1におけるICカード200は、各アプリケーションプログラムのセキュリティレベルを特定するために、セキュリティレベルテーブル600を有している。このセキュリティレベルテーブル600は、複数のアプリケーションプログラムに共通して適用される。つまり、各アプリケーションプログラムのセキュリティレベルは共通の基準で特定されるため、その比較を行うことができる。
【0081】
図8は、セキュリティ情報記憶部610に記憶されているセキュリティレベルテーブル600のデータ構成の一例を示す図である。
【0082】
各アプリケーションプログラムが利用する暗号方式とその強弱を示す値とが関連付けられている。
【0083】
図8に示すように、暗号方式がTriple−DES暗号方式である場合、セキュリティレベルは“強”であり、値は03hである。また、暗号方式がDES方式である場合、セキュリティレベルは“中”であり、値は02hである。また、暗号方式がAES方式である場合、セキュリティレベルは“弱”であり、値は01hである。さらに、暗号化しない場合、セキュリティレベルは“なし”であり、値は00hである。
【0084】
図9は、セキュリティ情報記憶部610に記憶されている方式テーブル609のデータ構成の一例を示す図である。
【0085】
各アプリケーションプログラムが利用する暗号方式とその暗号方式を示す番号(以下、「方式番号」という。)とが定義されている。
【0086】
例えば、図9に示すように、方式番号が0であれば、その暗号方式はTriple−DES暗号方式であると特定される。
【0087】
図10は、セキュリティ情報記憶部610に記憶されているAPL情報テーブル601のデータ構成の一例を示す図である。APL情報テーブル601は、各アプリケーションプログラムの属性情報が保存されているテーブルであり、図書館APL301をはじめ、アプリケーションプログラムごとに、その属性情報が保存されている。なお、APL情報テーブル601内にある“電子マネーAPL情報”は、図5〜図7に図示していない電子マネーAPLの属性情報である。電子マネーAPLは、ユーザが電子マネーを使用するためのアプリケーションプログラムである。
【0088】
図10に示すように、APL情報テーブル601に含まれる各アプリケーションプログラムの属性情報には、アプリケーションプログラムを識別するためのアプリケーションID、セキュリティレベルテーブル600に定義されている値であるセキュリティレベル、暗号鍵のビット長および暗号方式を示す値を含む暗号情報、暗号鍵のデータそのものである鍵情報、および、アプリケーションプロトコルのバージョン(以下、単に「プロトコルバージョン」という。)であるアプリケーションプロトコル情報が格納される。また、各属性情報のデータ長が規定されており、例えば、アプリケーションIDは2byteである。
【0089】
図11は、APL情報テーブル601に保存されている属性情報の一例を示す図である。
【0090】
図11に示すように、APL情報テーブル601は、アプリケーションプログラムごとに属性情報が保存されており、例えば、図書館APL301は、アプリケーションIDが3412hであり、セキュリティレベルが01h(“弱”)である。このセキュリティレベルは、各アプリケーションプログラムがダウンロードされた時点で、セキュリティレベル設定部603によって特定され、付与される。
【0091】
具体的には各アプリケーションプログラムがICカード200へダウンロードされた際、セキュリティレベル設定部603によって、各アプリケーションプログラムの属性情報が抽出される。抽出された属性情報はセキュリティレベル管理部602に送られる。
【0092】
セキュリティレベル管理部602は、APL情報テーブル601に、セキュリティレベル以外の属性情報を書き込む。また、属性情報に含まれる方式番号と、上述の方式テーブル609とから、暗号方式を特定する。
【0093】
セキュリティレベル設定部603は、セキュリティレベル管理部602によって特定された暗号方式と、上述のセキュリティレベルテーブル600とから、セキュリティレベルを示す値を特定する。特定された値は、セキュリティレベル管理部602によってAPL情報テーブル601に書き込まれる。
【0094】
つまり、ダウンロードされた各アプリケーションプログラムに対して、共通の基準となるセキュリティレベルテーブル600に基づき、各アプリケーションプログラムのセキュリティレベルが特定されることとなる。
【0095】
なお、暗号情報のフィールドには、左から、暗号鍵のビット長、方式番号の順に並べられており、例えば、図書館APL301は、暗号鍵のビット長が80h、方式番号が02hである。つまり、暗号鍵のビット長は128bit(16byte)、方式番号は2である。
【0096】
方式番号2に対応する暗号方式はAES暗号方式であり(図9参照)、AES暗号方式に対応する値は01hである(図8参照)。従って、図書館APL301のセキュリティレベルは01h(“弱”)となっている。
【0097】
また、鍵情報のフィールドには、128bit(16byte)の暗号鍵が保存されており、プロトコルバージョンは01hであることを示している。
【0098】
同様に、公共プールAPL302は、アプリケーションIDが7856h、セキュリティレベルが03h(“強”)である。また、暗号鍵ビット長がC0h、方式番号は00hであり、つまり、暗号鍵のビット長が192bit(24byte)、方式番号は0である。また、鍵情報のフィールドには、192bit(24byte)の暗号鍵が保存されており、プロトコルバージョンは05hであることを示している。
【0099】
上述のように、図書館APL301のセキュリティレベルは01h(“弱”)であり、公共プールAPL302のセキュリティレベルは03h(“強”)である。つまり、図書館APL301より公共プールAPL302の方が、セキュリティレベルは上であり、より強固なセキュリティ機能を有していることがわかる。
【0100】
次に、図12〜図15を用いてデータの複製の際のICカード200および公共サービスサーバ110の動作を説明する。
【0101】
図12は、データの複製の際の、実施の形態1におけるICカード200および公共サービスサーバ110の動作の流れを示すフローチャートである。
【0102】
なお、図書館APL301専用のメモリ領域331に保存されているデータAを、公共プールAPL302専用のメモリ領域332へ複製する場合について説明する。また、図5に示すハードウェア構成においてユーザがICカード200を使用する場合を想定する。
【0103】
また、ICカード200と、公共サービスサーバ110との間では、所定のプロトコルを使用してデータの送受信が行われる。
【0104】
まず、ユーザが、リーダライタ121のカードスロット121aにICカード200を挿入し、リーダライタ121が設置されたPCに対し所定の操作を行う。この操作により、公共サービスサーバ110の制御部105が、データAを有する第1のアプリケーションプログラムである図書館APL301を認証する(S901)。認証完了後、PCに接続されたディスプレイ130に図13に示す画面が表示される。
【0105】
図13は、ユーザが複製先のアプリケーションプログラムを選択するための複製先選択画面の一例を示す図である。図13に示すように、複製先選択画面には、複製元データ表示領域131と、複製先データ表示領域132とが表示される。なお、ディスプレイ130に表示される画面は、制御部105により生成され、表示されるデータはICカード200から出力される。
【0106】
複製元データ表示領域131には、“図書館カード”というタイトルで、図書館APL301に関連するデータである名前と住所とが、一部のみ読むことができる形式で表示される。また、複製先データ表示領域132には、複製先のアプリケーションプログラムを選択するための選択ボタン133が表示される。
【0107】
ユーザにより、“公共プールカード”と表示された選択ボタン133がクリックされると、公共サービスサーバ110の制御部105は、データの複製先となる第2のアプリケーションプログラムである公共プールAPL302の認証を行う(S902)。
【0108】
公共プールAPL302の認証完了後、ディスプレイ130に図14に示す画面が表示される。
【0109】
図14は、ユーザが複製の対象とするデータを選択するための複製データ選択画面の一例を示す図である。
【0110】
図14は、複製元データ表示領域131において名前のチェックボックス134がユーザにより選択された状態を示している。また、画面中央に矢印ボタン135が表示されている。
【0111】
図14に示すように、チェックボックス134が選択された状態で、矢印ボタン135がクリックされると、制御部105は、複製の対象となるデータとして名前のデータが選択されたことを受け付ける。つまり、図5および図7に示すデータAが選択されたことを受け付ける(S903)。
【0112】
制御部105は、図書館APL301および公共プールAPL302のセキュリティレベルをICカード200に要求する。ICカード200のセキュリティレベル取得部604は、セキュリティレベル管理部602を介し、アプリケーションIDに基づいて、図書館APL301および公共プールAPL302のセキュリティレベルを取得する(S904)。
【0113】
セキュリティレベル出力部605は公共サービスサーバ110からの要求に対するレスポンスとして、取得した二つのセキュリティレベルを出力する(S905)。
【0114】
ECサーバ100の比較部106は、ICカード200から出力された2つのセキュリティレベル情報を比較する。ここで、図書館APL301のセキュリティレベルは“01h”であり、公共プールAPL302のセキュリティレベルは“03h”である(図11参照)。
【0115】
つまり、比較部106は、データの複製先である公共プールAPL302のセキュリティレベルの方が、データの複製元である図書館APL301のセキュリティレベルより上であるとの関係を特定する(S906でY)。
【0116】
この特定された関係を示す情報はICカードに送信される。ICカード200では、データ操作部608が、その情報に基づき、図書館APL301専用のメモリ領域331に保存されているデータAを、公共プールAPL302専用のメモリ領域332に複製する処理を実行する(S907)。
【0117】
具体的には、公共サービスサーバ110から送信された情報に基づき、ICカード200のOSが、アプリケーションプログラム間のファイヤウォール340を一時的もしくは部分的に解除する。これにより、データ操作部608は、ICカード200内で、データAの複製を行うことができる。
【0118】
ここで、複製先のアプリケーションプログラムのセキュリティレベルが、複製元のアプリケーションプログラムのセキュリティレベルより下であった場合(S906でN)、ファイヤウォール340は一時的もしくは部分的に解除されることはなく、公共サービスサーバ110を介して複製が実行される(S909)。
【0119】
複製完了後、ディスプレイ130に、図15に示す、データの複製が完了したことを知らせる画面が表示される。
【0120】
図15は、データの複製が完了したことをユーザに知らせるための完了通知画面の一例である。ユーザは、データの複製を続行する場合(S908でY)、例えば、住所のデータを複製したい場合は、図15に示す完了通知画面において、住所の横のチェックボックスを選択することで、図14に示した矢印ボタン135が表示される。その矢印ボタン135がユーザによりクリックされると、公共サービスサーバ110は、選択を受け付け(S903)、データの複製のための動作を行う。
【0121】
ICカード200および公共サービスサーバ110は、ユーザの所定の操作により、データの複製が終了(S908でN)されるまで上記動作を繰り返す。
【0122】
上述のように、本発明の実施の形態1におけるICカード200は、複数のアプリケーションプログラムに共通の基準であるセキュリティレベルテーブルを用いて、各アプリケーションプログラムのセキュリティレベルを特定している。
【0123】
つまり、共通の基準で特定されたセキュリティレベルにより、互いに異なる2つのアプリケーションプログラムのセキュリティの強度を比較することができる。この比較は、ICカード200と通信を行う公共サービスサーバ110の比較部106で行われる。
【0124】
この比較により、データを必要とする複製先のアプリケーションプログラムが、複製元と強度が同等、または、より強度の高いセキュリティ機能を備えていると特定された場合、そのデータは重要なデータであると考えられる。そのため、公共サービスサーバ110はICカード200に、ICカード200内で、そのデータの複製を行うよう要求する。
【0125】
図16は、実施の形態1におけるセキュリティレベルとデータの複製の経路との関係を示す模式図である。第1APLは複製元のアプリケーションプログラムであり、第2APLは複製先のアプリケーションプログラムである。第1APLと第2APLはICカード200に格納されており、それぞれのアプリケーションプログラム専用のメモリ領域はファイヤウォールにより保護されている。また、a1、a2、b1およびb2はそれぞれセキュリティレベルを表す。
【0126】
例えば、第1APLのセキュリティレベルがa1であり、第2APLのセキュリティレベルがa2である場合、複製先のセキュリティレベルの方が、複製元のセキュリティレベルよりも上である。つまり、複製の対象となっているデータは重要なデータであると考えられる。そのため、ICカード200内のファイヤウォールはデータ複製のために一時的もしくは部分的に解除され、ICカードの中でデータの複製が行われる。
【0127】
また、第1APLのセキュリティレベルがb1であり、第2APLのセキュリティレベルがb2である場合、複製先のセキュリティレベルの方が、複製元のセキュリティレベルよりも下である。つまり、複製の対象となっているデータは重要なデータではないと考えられる。そのため、ファイヤウォールはデータ複製のために一時的もしくは部分的に解除されることはなく、サーバ経由でデータの複製が行われる。
【0128】
このように、重要なデータは、ICカード200内で複製される。つまり、ICカード200の外部に出ることがなく、漏洩、改竄といった危険にさらされることがない。結果として、異なるアプリケーションプログラム間で、安全に重要なデータを複製することができる。
【0129】
なお、実施の形態1の説明において、ICカード200が、公共サービスサーバ110と通信を行う場合を例にとり、ICカード200および、公共サービスサーバ110についての説明を行った。しかしながら、ICカード200が通信を行う相手は、公共サービスサーバ110でなくてもよく、図4に示したECサーバ100でもよい。また、その他のサーバでもよい。
【0130】
つまり、セキュリティレベルを比較する機能と、ICカード200に格納されたアプリケーションプログラムを認証する機能とを有するサーバであれば、ICカード200の通信相手は公共サービスサーバ110に限定されない。
【0131】
また、図12に示したフローチャートにおいて、複製先のアプリケーションプログラムのセキュリティレベルが、複製元のアプリケーションプログラムのセキュリティレベルより下であった場合(S906でN)、公共サービスサーバ110を介して複製を実行する(S909)とした。しかしながら、この場合、ユーザから了解を取った上で複製を行ってもよく、また、複製を禁止してもよい。
【0132】
こうすることで、重要なデータではないと考えられるデータに対しても、その秘匿性を維持することが可能となる。また、このような構成であっても、ICカード200において、異なるアプリケーションプログラム間で、重要なデータを安全に複製することができることに変わりはない。
【0133】
また、ICカード200は、接触型ICカードに限定されることはなく、非接触型ICカードでもよい。非接触型ICカードであっても、本発明の特徴であるセキュリティレベルの特定等の処理に影響はなく、重要なデータを安全に複製することができる。
【0134】
また、公共サービスサーバ110の比較部106が2つのセキュリティレベルを比較した結果に基づき、データの複製経路が決定されるとしたが、本発明はこれに限定されるものではない。例えば、比較した結果を所定の記憶領域に記憶させておき、その記憶された結果を利用し、その後に行われるデータの複製の経路を決定してもよい。
【0135】
こうすることで、セキュリティレベルの比較を、ICカード200からデータ複製の要求の度に行う必要が無く、処理時間の短縮を図ることが可能となる。
【0136】
また、ICカード200のハードウェア構成は、図1に示す、一般的なICカードのハードウェア構成と同じであるとした。しかしながら、別のハードウェア構成でもよく、例えば、EEPROM204の換わりにFeRAMでもよい。また、不揮発性メモリであれば、別の記憶媒体でもよい。
【0137】
また、ICカード200が備える、セキュリティレベル管理部602、セキュリティレベル取得部604、セキュリティレベル出力部605およびデータ操作部608は、コンピュータプログラムとして実現される。当該プログラムは、ROM203に格納され実行されるものと、外部よりダウンロードされ、不揮発性メモリであるEEPROM204に格納され実行されるものとがある。図書館APL301および公共プールAPL302は、ROM203またはEEPROM204に格納される。セキュリティ情報記憶部610およびメモリ領域310は、それぞれEEPROM204内の別の領域として実現される。
【0138】
また、図7に示したICカード200の機能ブロックは、CPU、RAM、ROM、不揮発性メモリ等のハードウェア資源との組み合わせにより、集積回路であるLSIとして実現される場合がある。これらは、個別に1チップ化されても良いし、一部又はすべてを含むように1チップ化されても良い。
【0139】
図17は、実施の形態1のICカード200における集積回路化の一例を示す図である。LSI2000は集積回路化の一例を示し、点線で囲まれた範囲は集積回路化する機能ブロックの範囲の例である。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0140】
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製作後にプログラムすることが可能なFPGA(Field Programmable Gate Array)やLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【0141】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然その技術を用いて機能ブロックの集積回路化を行ってもよい。例えば、バイオ技術を機能ブロックの集積回路化に適用してもよい。
【0142】
(実施の形態2)
上述の実施の形態1では、ICカード200の通信相手である公共サービスサーバ110の比較部106がセキュリティレベルの比較を行うとした。しかしながら、本発明はこれに限定されるものではなく、ICカード200内部でセキュリティレベルを比較する場合も考えられる。
【0143】
そこで、実施の形態2として、ICカード200内に備えられた比較部606でセキュリティレベルを比較する形態を説明する。
【0144】
なお、実施の形態2において、ICカード200が使用される環境は、実施の形態1の説明の中で参照した図4に示す環境と同じである。また、実施の形態1と同様に、ICカード200の通信相手は公共サービスサーバ110である場合を想定し、そのハードウェア構成の概観は図5に示すハードウェア構成の概観と同じである。
【0145】
まず、実施の形態2におけるICカード200および公共サービスサーバ110の構成を、図18を用いて説明する。
【0146】
図18は、実施の形態2におけるICカード200および公共サービスサーバ110のソフトウェアの機能的な構成を示す機能ブロック図である。
【0147】
図18に示すように、実施の形態2におけるICカード200は、図7に示した実施の形態1におけるICカード200の構成に、比較部606を加えた構成である。また、実施の形態2における公共サービスサーバ110は、図7に示した実施の形態1における公共サービスサーバ110の構成から比較部106が削除された構成である。
【0148】
なお、実施の形態2のICカード200におけるデータ操作部608は、本発明の半導体メモリにおける複製部が有するデータの複製機能、および取得部が有する2つのセキュリティレベルの関係を取得する機能を実現する処理部の一例である。
【0149】
比較部606は、セキュリティレベル出力部605から送信される2つのセキュリティレベルの比較を行い、2つのセキュリティレベルの関係を特定する処理部である。
【0150】
また、比較部606以外の、ICカード200および公共サービスサーバ110の各構成部の処理内容は、実施の形態1のICカード200および公共サービスサーバ110における処理内容と同じである。
【0151】
しかしながら、実施の形態1ではICカード200のセキュリティレベル出力部605から公共サービスサーバ110へセキュリティレベルが送信されていたが、実施の形態2ではICカード200のセキュリティレベル出力部605から比較部606へセキュリティレベルが送信される。
【0152】
ICカード200内の比較部606は、セキュリティレベル出力部605から出力される図書館APL301のセキュリティレベルと、公共プールAPL302のセキュリティレベルとを受け取り、それら2つのセキュリティレベルの比較を行い、それら2つのセキュリティレベルの関係を特定する。
【0153】
次に、実施の形態2におけるICカード200および公共サービスサーバ110の動作を、図19を用いて説明する。
【0154】
図19は、データの複製の際の、実施の形態2におけるICカード200および公共サービスサーバ110の動作の流れを示すフローチャートである。
【0155】
なお、図書館APL301のデータであるデータAを、公共プールAPL302専用のメモリ領域332へ複製する場合について説明する。また、実施の形態1と異なる動作を中心に説明する。
【0156】
まず、公共サービスサーバ110の制御部105が、データAを有する第1のアプリケーションプログラムである図書館APL301と、データの複製先となる第2のアプリケーションプログラムである公共プールAPL302とを認証する(S1001、S1002)。
【0157】
認証完了後、制御部105は、データAが、複製の対象となるデータとして選択されたことを受け付ける(S1003)。
【0158】
以上の動作は、実施の形態1と同じであるが、以下に説明する動作は、実施の形態1におけるICカード200および公共サービスサーバ110の動作とは異なる動作である。
【0159】
公共サービスサーバ110の制御部105は、テータAが複製の対象となるデータであることを受け付けると、ICカード200に、図書館APL301のセキュリティレベルと公共プールAPL302のセキュリティレベルとを比較するよう要求する。
【0160】
ICカード200では、上記要求を受け、セキュリティレベル取得部604が、セキュリティレベル管理部602を介し、アプリケーションIDに基づいて、図書館APL301および公共プールAPL302のセキュリティレベルを取得する(S1004)。
【0161】
セキュリティレベル出力部605は、セキュリティレベル取得部604から2つのセキュリティレベルを受け取り、比較部606へ出力する。
【0162】
比較部606は、セキュリティレベル出力部605から出力された2つのセキュリティレベル情報を比較する。ここで、図書館APL301のセキュリティレベルは“01h”であり、公共プールAPL302のセキュリティレベルは“03h”である(図11参照)。
【0163】
つまり、比較部606は、データの複製先である公共プールAPL302のセキュリティレベルの方が、データの複製元である図書館APL301のセキュリティレベルより上であるという関係を特定する(S1005でY)。
【0164】
この特定された関係に基づき、ICカード200のOSは、データAを複製するためにファイヤウォール340を一時的もしくは部分的に解除する。データ操作部608は、図書館APL301専用のメモリ領域331に保存されているデータAを、公共プールAPL302専用のメモリ領域332に複製する処理を実行する(S1006)。
【0165】
なお、複製先のアプリケーションプログラムのセキュリティレベルが、複製元のアプリケーションプログラムのセキュリティレベルより下であった場合(S1005でN)、実施の形態1と同様に、ファイヤウォール340は一時的もしくは部分的に解除されることはなく、公共サービスサーバ110を介して複製が実行される(S1007)。
【0166】
データの複製を続行する場合(S1008でY)、選択の受け付け(S1003)に戻る。
【0167】
ICカード200および公共サービスサーバ110は、ユーザの所定の操作によりデータの複製が終了(S1008でN)されるまで上記動作を繰り返す。
【0168】
上述のように、実施の形態2におけるICカード200および公共サービスサーバ110の動作の基本的な流れは、実施の形態1における動作と変わりない。しかしながら、実施の形態2では、ICカード200が比較部606を備えることで、2つのセキュリティレベルを外部に出すことなく比較する(S1005)ことが可能である。言い換えれば、ICカード200からそのデータが読み出されることなくセキュリティレベルの比較が行われる。つまり、ICカード200に接続された外部機器を経由せずにセキュリティレベルを比較することが可能である。
【0169】
つまり、重要なデータのみならず、アプリケーションプログラムのセキュリティレベルも外部に出すことがないため、ICカード200の内部に格納された情報の保護がより強固なものとなる。
【0170】
なお、実施の形態2においても、実施の形態1と同様、アプリケーションプログラムのセキュリティ強度の比較は、暗号方式よって特定されたセキュリティレベルを用いた。しかしながら、別の情報によって特定されたセキュリティレベルを用いてもよい。
【0171】
具体的には、実施の形態1では、各アプリケーションプログラムが採用する暗号方式により、それぞれのセキュリティ強度を、 “強”、“中”、“弱”、“なし”、のいずれかに特定し、それぞれ対応する値をセキュリティレベルとして特定していた。しかしながら、例えば、セキュリティレベルとして、各アプリケーションプログラムの、データを暗号化するための暗号化条件である、暗号鍵のビット長や暗号鍵データなどを用いてもよい。
【0172】
つまり、実施の形態2では、セキュリティレベルもICカード200の外部に出ることがないため、暗号化条件をセキュリティレベルとして使用しても、外部への漏洩等の危険性はない。従って、上記のような暗号化条件によって特定されるセキュリティレベルを使用し、異なるアプリケーションプログラムのセキュリティ強度の比較を行うことができる。
【0173】
また、更に、実施の形態1で用いた“強”、“中”、“弱”、“なし”の4段階のセキュリティレベルと、暗号化条件との2つの尺度で、異なるアプリケーションプログラムのセキュリティ強度の比較を行ってもよい。
【0174】
例えば、4段階のセキュリティレベルが同じであった場合、暗号鍵のビット長が長いほうが、よりセキュリティ強度が強いとしてもよい。
【0175】
こうすることで、実施の形態1では、4段階のセキュリティレベルで比較を行っていたが、より細分化された尺度でセキュリティレベルを比較することができる。
【0176】
また、実施の形態2におけるICカード200が備えている、セキュリティレベル管理部602、セキュリティレベル取得部604、セキュリティレベル出力部605、比較部606およびデータ操作部608は、コンピュータプログラムとして実現される。当該プログラムは、ICカード内のROMに格納され実行されるものと、外部よりダウンロードされ、不揮発性メモリに格納され実行されるものとがある。図書館APL301および公共プールAPL302は、ROM203またはEEPROM204に格納される。セキュリティ情報記憶部610およびメモリ領域310は、それぞれEEPROM204内の別の領域として実現される。
【0177】
また、図18に示したICカード200の機能ブロックは、CPU、RAM、ROM、不揮発性メモリ等のハードウェア資源との組み合わせにより、集積回路であるLSIとして実現される場合がある。これらは、個別に1チップ化されても良いし、一部又はすべてを含むように1チップ化されても良い。
【0178】
図20は、実施の形態2のICカード200における集積回路化の一例を示す図である。LSI2000は集積回路化の一例を示し、点線で囲まれた範囲は集積回路化する機能ブロックの範囲の例である。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0179】
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製作後にプログラムすることが可能なFPGA(Field Programmable Gate Array)やLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【0180】
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然その技術を用いて機能ブロックの集積回路化を行ってもよい。例えば、バイオ技術を機能ブロックの集積回路化に適用してもよい。
【0181】
(実施の形態3)
実施の形態2では、ICカード200に備えられた比較部606が、セキュリティレベルの比較を行うとした。これにより、セキュリティレベルがICカード200の外部に出ないため、暗号化条件をセキュリティレベルを特定するための情報として使用することができることを説明した。
【0182】
しかしながら、セキュリティレベルを特定するための情報は、実施の形態1で示した暗号方式、および、実施の形態2で示した暗号化条件以外の情報でもよい。例えば、アプリケーションプロトコルのバージョンである、プロトコルバージョンでもよい。
【0183】
そこで、実施の形態3として、プロトコルバージョンをセキュリティレベルとして使用する形態について説明する。
【0184】
また、従来、ICカードと外部の機器との間では、接触型ICカードの標準規格であるISO7816で規定されているアプリケーションプロトコルデータユニット(APDU)コマンドを使用してデータの送受信が行われている。上述の実施の形態1および2においても、ICカード200とECサーバ100、公共サービスサーバ110およびリーダライタ121との間では、APDUコマンドを使用してデータの送受信を行っている。
【0185】
APDUコマンドには、ホスト機器からICカードに対してデータを送信するためのコマンドAPDUと、ICカードからホスト機器に対してデータを送信するためのレスポンスAPDUとがある。
【0186】
そこで、実施の形態3では、アプリケーションプロトコルのバージョン番号を含んだAPDUコマンドが公共サービスサーバ110に送信される場合を説明する。つまり、実施の形態1のICカード200および公共サービスサーバ110において、セキュリティレベルとしてプロトコルバージョンを使用する場合を想定する。
【0187】
図21は、コマンドAPDUのデータ構成を示す図である。図21に示すように、コマンドAPDUは、必須ヘッダ部分と、条件により付加される本体部分とから構成される。必須ヘッダ部分には、それぞれ1byteの制御パラメータであるP1とP2とが含まれている。
【0188】
公共サービスサーバ110は、例えば、この制御パラメータ(P1、P2)のデータ領域に、アプリケーションプロトコルのバージョン番号を含んだレスポンスAPDUを作成させる要求を含ませて、コマンドAPDUを送信することができる。
【0189】
ここで、一般に、アプリケーションプロトコルは機能拡張されるにしたがって、そのバージョン番号は上げられる。例えば、セキュリティの機能が拡張または改良された場合、バージョン番号は上げられる。つまり、アプリケーションプロトコルのバージョン番号を比較し、より大きなバージョン番号を有するアプリケーションプロトコルの方がセキュリティレベルが上であるといえる。
【0190】
図11に示すように、APL情報テーブル601に各アプリケーションプログラムのアプリケーションプロトコルのバージョン番号が保存されている。従って、ICカード200は、例えば、図書館APL301と、公共プールAPL302のアプリケーションプロトコルのバージョン番号を含んだレスポンスAPDUを作成し、そのレスポンスAPDUを公共サービスサーバ110に送信することができる。これにより、公共サービスサーバ110の比較部106(図7参照)でバージョン番号を比較することができる。
【0191】
以下、図22〜図24を用いて、レスポンスAPDUでアプリケーションプロトコルのバージョン番号を送信する方法について説明する。
【0192】
図22は、接触型ICカードの標準規格であるISO7816で規定されているコマンドの例を示す図である。また、図23は、SELECTコマンドにおける制御パラメータP1の内容を示す図である。
【0193】
例えば、SELECTコマンドの場合、図23に示すようにP1において未指定である値が存在する。この未指定の値の1つを使用しICカード200に対する要求を行うことが可能である。例えば公共サービスサーバ110が、b8を“1”としたSELECTコマンド(b8以外は図中の値のいずれか)をICカード200に送信する。これにより、ICカード200に、アプリケーションプロトコルのバージョン番号を含ませたレスポンスAPDUを作成させる要求を行うことが可能である。
【0194】
このようなSELECTコマンドをICカード200が受信した場合、図24に示すレスポンスAPDUのデータ部にアプリケーションプロトコルのバージョン番号を含んだレスポンスAPDUを作成し、そのレスポンスAPDUを送信することが可能である。
【0195】
ここでは、SELECTコマンドを例として挙げたが、本発明はこれに限定されるものではなく、未使用のビットが存在するコマンドAPDUであれば、ICカード200にアプリケーションプロトコルのバージョン番号を含ませたレスポンスAPDUを作成させる要求を行うことが可能である。
【0196】
また、例えば、公共サービスサーバ110が、ICカード200にアプリケーションプロトコルのバージョン番号を送信させるための独自のコマンドAPDUを作成することが可能である。
【0197】
図25は、コマンドAPDUにおけるクラスバイト(CLA)の内容を示す図である。図25に示すように、CLAのb5〜b8が0であれば、そのコマンドAPDUがISO7816−4に準拠する共通コマンドであることを意味する。また、CLAのb8が1であれば、そのコマンドAPDUが独自のコマンドであることを意味する。つまり、CLAのb8を1に設定することで、アプリケーションプロトコルのバージョン番号を含んだレスポンスAPDUの作成とその送信とを要求するための、独自のコマンドAPDUを作成できる。
【0198】
上述のように、ICカード200は、アプリケーションプロトコルのバージョン番号をレスポンスAPDUに含ませて、公共サービスサーバ110に送信することが可能である。公共サービスサーバ110は、受け取った2つのバージョン番号を比較することにより、2つのアプリケーションプログラムのセキュリティレベルの関係を特定することができる。
【0199】
例えば、図書館APL301のデータを公共プールAPL302に複製したい場合、図書館APL301のバージョン番号は01hであり、公共プールAPL302のバージョン番号は05hである(図11参照)。つまり、公共プールAPL302のセキュリティレベルの方が上であると特定される。
【0200】
ICカード200は、公共サービスサーバ110から、公共プールAPL302のセキュリティレベルの方が上であるという情報を取得し、ICカード200内でデータの複製をする。これにより、重要なデータはICカード200内で複製される。
【0201】
上述のように、セキュリティレベルとして、アプリケーションプロトコルのバージョン番号を使用した場合においても、実施の形態1および2と同じく、重要なデータを安全に複製することができる。
【0202】
なお、複製先のプロトコルバージョンが複製元のプロトコルバージョンより古い、つまりバージョン番号が小さい場合は、通信のセキュリティが落ちると判断し、データの複製を不可としてもよい。こうすることで、データ漏洩の危険性がさらに減少することとなる。
【0203】
また、アプリケーションプロトコルのバージョン番号そのものをセキュリティレベルとして使用しなくてもよく、バージョン番号によって特定される値であればよい。
【0204】
また、アプリケーションプログラムも、機能拡張されるにしたがってその、バージョン番号は上げられる。例えば、セキュリティの機能が拡張または改良された場合、バージョン番号は上げられる。そこで、プロトコルバージョンではなく、アプリケーションプログラム自身のバージョン番号をセキュリティレベルとして使用してもよい。
【0205】
この場合、例えば、アプリケーションのバージョン番号を、プロトコルバージョンと同様の方法で、APDUコマンドに含ませて送信してもよい。また、異なるアプリケーションプログラムのバージョン番号から、セキュリティ強度を比較するために、一旦、各アプリケーションに共通するセキュリティ強度を示す値に変換し、送信してもよい。つまり、アプリケーションのバージョン番号によって特定される値であればセキュリティレベルとして使用してもよい。
【0206】
また、アプリケーションプロトコル、またはアプリケーションのバージョン番号は公共サービスサーバ110の比較部106で比較されるとした。しかしながら、バージョン番号の比較はICカード200内で行われてもよい。
【0207】
例えば、実施の形態2においてセキュリティレベルとしてアプリケーションプロトコルのバージョン番号を使用し、ICカード200が備える比較部606でバージョン番号の比較が行われてもよい。
【0208】
また、バージョン番号の比較をICカード200内部で行う場合でも、ICカード200の外部で行う場合でも、バージョン番号と、その他の基準、例えば、実施の形態1で用いた暗号方式や、実施の形態2の説明の中で述べた暗号化条件などの情報を組み合わせてセキュリティレベルを特定し、それら特定されたセキュリティレベルを用いアプリケーションプログラムのセキュリティ強度を比較してもよい。
【0209】
こうすることで、例えば、アプリケーションプログラムのセキュリティ強度の比較に最適な比較方法を採用することができる。
【0210】
また、実施の形態1〜3において、アプリケーションプログラムが利用する暗号方式やプロトコルバージョンなど、アプリケーションプログラムの属性情報を比較することにより、データの複製をICカード200の内部で行うか否かを決定した。しかしながら、別の方法により、データの複製をICカード200の内部で行うか否かの決定をしてもよい。
【0211】
例えば、複製の対象となるデータが保存されているメモリ領域と、複製先のメモリ領域とが、異なる不揮発性メモリに存在する場合、それら2つの不揮発性メモリのセキュリティの強度により、データの複製をICカード200の内部で行うか否かを決定してもよい。
【0212】
図26(A)は、3つの不揮発性メモリを備えたICカード200のハードウェア構成の一例を示す図である。図26(A)に示すように、ICカード200には、不揮発性メモリ群209が存在する。不揮発性メモリ群209は、TRM領域内にあるFeRAM206と、セキュアフラッシュ207と、TRM領域外にあるFlashメモリ208とから構成される。なお、セキュアフラッシュとは、TRMの機能を利用しセキュリティ強度を強めたフラッシュメモリのことである。
【0213】
図26(B)は、3つの不揮発性メモリのセキュリティ強度を示す図である。図26(B)に示すように、TRM領域内にあるFeRAM206のセキュリティ強度が最も強く、セキュアフラッシュ207、Flashメモリ208の順にセキュリティ強度は弱くなっている。
【0214】
例えば、複製の対象となるデータが、セキュアフラッシュ207に存在し、複製先がTRM領域内にあるFeRAM206である場合を想定する。この場合、複製先のメモリの方がセキュリティ強度が強く、複製の対象となっているデータは重要なデータであると考えられる。従って、ICカード200内でデータを複製する。これにより、重要なデータを安全に複製することができる。なお、セキュリティ強度の比較はICカードの内部で行われてもよく、また、外部で行われてもよい。
【産業上の利用可能性】
【0215】
本発明の半導体メモリは、複数のアプリケーションプログラムを格納し、それら各アプリケーションプログラム間でのデータの複製を半導体メモリ内で行うことが可能である。よって、重要なデータに対する強固な保護機能が要求されるSDメモリカード、ICカード等として有用である。
【図面の簡単な説明】
【0216】
これら、並びに、発明の他の目的、効果、及び特徴は、発明の特定の実施の形態を説明する添付図面とともに行う説明から明らかである。
【図1】一般的なICカードの内部構造の概要を示す図である。
【図2】ICカードにおけるソフトウエェアの構成を示す図である。
【図3】従来のICカードにおいて、異なるアプリケーションプログラム間でデータの複製が行われる様子を示す概念図である。
【図4】ICカードが使用される環境を示す図である。
【図5】図4に示す環境下において、実施の形態1におけるICカードが公共サービスサーバと通信を行う場合のハードウェア構成の概観を示す図である。
【図6】図書館APLのデータが公共プールAPLのデータとして複製される状況を示す概念図である。
【図7】実施の形態1のICカードおよび公共サービスサーバにおけるソフトウェアの機能的な構成を示す機能ブロック図である。
【図8】セキュリティ情報記憶部に記憶されているセキュリティレベルテーブルのデータ構成の一例を示す図である。
【図9】セキュリティ情報記憶部に記憶されている方式テーブルのデータ構成の一例を示す図である。
【図10】セキュリティ情報記憶部に記憶されているAPL情報テーブルのデータ構成の一例を示す図である。
【図11】APL情報テーブルに保存されている属性情報の一例を示す図である。
【図12】データの複製の際の、実施の形態1におけるICカードおよび公共サービスサーバの動作の流れを示すフローチャートである。
【図13】ユーザが複製先のアプリケーションプログラムを選択するための複製先選択画面の一例を示す図である。
【図14】ユーザが複製の対象とするデータを選択するための複製データ選択画面の一例を示す図である。
【図15】データの複製が完了したことをユーザに知らせるための完了通知画面の一例である。
【図16】実施の形態1におけるセキュリティレベルとデータの複製の経路との関係を示す模式図である。
【図17】実施の形態1のICカードにおける集積回路化の一例を示す図である。
【図18】実施の形態2におけるICカードおよび公共サービスサーバのソフトウェアの機能的な構成を示す機能ブロック図である。
【図19】データの複製の際の、実施の形態2におけるICカードおよび公共サービスサーバの動作の流れを示すフローチャートである。
【図20】実施の形態2のICカードにおける集積回路化の一例を示す図である。
【図21】コマンドAPDUのデータ構成を示す図である。
【図22】接触型ICカードの標準規格であるISO7816で規定されているコマンドの例を示す図である。
【図23】SELECTコマンドにおける制御パラメータP1の内容を示す図である。
【図24】レスポンスAPDUのデータ構成を示す図である。
【図25】コマンドAPDUにおけるクラスバイト(CLA)の内容を示す図である。
【図26】(A)は、3つの不揮発性メモリを備えたICカードのハードウェア構成の一例を示す図であり、(B)は、3つの不揮発性メモリのセキュリティ強度を示す図である。

【特許請求の範囲】
【請求項1】
少なくとも2つのアプリケーションプログラムを実行可能な半導体メモリであって、
第1のアプリケーションプログラムに関連するデータを記憶する第1記憶部と、
第2のアプリケーションプログラムに関連するデータを記憶する第2記憶部と、
アプリケーションプログラムの、関連するデータに対するセキュリティレベルを特定するための基準に基づいて、前記第1のアプリケーションプログラムおよび前記第2のアプリケーションプログラムの、関連するデータに対するそれぞれのセキュリティレベルを特定するレベル特定部と、
前記レベル特定部により特定された2つの前記セキュリティレベルの関係が所定の条件を満たす場合、前記第1記憶部に記憶されているデータを半導体メモリ外部に出すことなく複製して、かつ、前記第2記憶部に記憶させる複製部と
を備える半導体メモリ。
【請求項2】
更に、前記レベル特定部により特定された2つの前記セキュリティレベルを比較することにより前記関係を特定する比較部を備え、
前記複製部は、前記比較部により特定された前記関係が所定の条件を満たす場合、前記第1記憶部に記憶されているデータを複製して前記第2記憶部に記憶させる
請求項1記載の半導体メモリ。
【請求項3】
更に、前記レベル特定部により特定された2つの前記セキュリティレベルを比較することにより特定された前記関係を取得する取得部を備え、
前記複製部は、前記取得部により取得された前記関係が所定の条件を満たす場合、前記第1記憶部に記憶されているデータを複製して前記第2記憶部に記憶させる
請求項1記載の半導体メモリ。
【請求項4】
前記セキュリティレベルは、前記アプリケーションプログラムが利用する暗号の強度によって特定される値である
請求項1記載の半導体メモリ。
【請求項5】
前記暗号の強度は、前記暗号の暗号方式が複雑なほど強い
請求項4記載の半導体メモリ。
【請求項6】
前記暗号の強度は、暗号鍵のビット長が長いほど強い
請求項4記載の半導体メモリ。
【請求項7】
前記セキュリティレベルは、前記アプリケーションプログラムが使用するアプリケーションプロトコルのバージョン番号によって特定される値である
請求項1記載の半導体メモリ。
【請求項8】
前記セキュリティレベルは、前記アプリケーションプログラムのバージョン番号によって特定される値である
請求項1記載の半導体メモリ。
【請求項9】
少なくとも2つのアプリケーションプログラムを実行可能な半導体メモリにおけるデータ複製方法であって、
前記半導体メモリは、第1のアプリケーションプログラムに関連するデータを記憶する第1記憶部と、第2のアプリケーションプログラムに関連するデータを記憶する第2記憶部とが設けられており、
前記データ複製方法は、
アプリケーションプログラムの関連するデータに対するセキュリティレベルを特定するための基準に基づいて、前記第1のアプリケーションプログラムおよび前記第2のアプリケーションプログラムの、関連するデータに対するそれぞれのセキュリティレベルを特定する特定ステップと、
前記特定ステップにおいて特定された2つの前記セキュリティレベルの関係が所定の条件を満たす場合、前記第1記憶部に記憶されているデータを半導体メモリ外部に出すことなく複製して、かつ、前記第2記憶部に記憶させる複製ステップと
を含むデータ複製方法。
【請求項10】
少なくとも2つのアプリケーションプログラムを実行可能な半導体メモリにおけるデータ複製のためのプログラムであって、
前記半導体メモリは、第1のアプリケーションプログラムに関連するデータを記憶する第1記憶部と、第2のアプリケーションプログラムに関連するデータを記憶する第2記憶部とが設けられており、
前記データ複製のためのプログラムは、
アプリケーションプログラムの関連するデータに対するセキュリティレベルを特定するための基準に基づいて、前記第1のアプリケーションプログラムおよび前記第2のアプリケーションプログラムの、関連するデータに対するそれぞれのセキュリティレベルを特定する特定ステップと、
前記特定ステップにおいて特定された2つの前記セキュリティレベルの関係が所定の条件を満たす場合、前記第1記憶部に記憶されているデータを半導体メモリ外部に出すことなく複製して、かつ、前記第2記憶部に記憶させる複製ステップと
をコンピュータに実行させるためのプログラム。
【請求項11】
少なくとも2つのアプリケーションプログラムを実行可能な半導体メモリにおけるデータ複製のためのプログラムが格納された、コンピュータが読み取り可能な記録媒体であって、
前記半導体メモリは、第1のアプリケーションプログラムに関連するデータを記憶する第1記憶部と、第2のアプリケーションプログラムに関連するデータを記憶する第2記憶部とが設けられており、
前記記録媒体は、
アプリケーションプログラムの関連するデータに対するセキュリティレベルを特定するための基準に基づいて、前記第1のアプリケーションプログラムおよび前記第2のアプリケーションプログラムの、関連するデータに対するそれぞれのセキュリティレベルを特定する特定ステップと、
前記特定ステップにおいて特定された2つの前記セキュリティレベルの関係が所定の条件を満たす場合、前記第1記憶部に記憶されているデータを半導体メモリ外部に出すことなく複製して、かつ、前記第2記憶部に記憶させる複製ステップと
をコンピュータに実行させるためのプログラムが格納された記録媒体。
【請求項12】
少なくとも2つのアプリケーションプログラムを実行可能な半導体メモリにおけるデータの複製を制御する集積回路であって、
前記半導体メモリは、第1のアプリケーションプログラムに関連するデータを記憶する第1記憶部と、第2のアプリケーションプログラムに関連するデータを記憶する第2記憶部とが設けられており、
前記集積回路は、
アプリケーションプログラムの関連するデータに対するセキュリティレベルを特定するための基準に基づいて、前記第1のアプリケーションプログラムおよび前記第2のアプリケーションプログラムの、関連するデータに対するそれぞれのセキュリティレベルを特定するレベル特定部と、
前記レベル特定部によって特定された2つの前記セキュリティレベルの関係が所定の条件を満たす場合、前記第1記憶部に記憶されているデータを半導体メモリ外部に出すことなく複製して、かつ、前記第2記憶部に記憶させる複製部と
を備える集積回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

image rotate


【公表番号】特表2007−532984(P2007−532984A)
【公表日】平成19年11月15日(2007.11.15)
【国際特許分類】
【出願番号】特願2006−519475(P2006−519475)
【出願日】平成17年3月31日(2005.3.31)
【国際出願番号】PCT/JP2005/006805
【国際公開番号】WO2005/098622
【国際公開日】平成17年10月20日(2005.10.20)
【出願人】(000005821)松下電器産業株式会社 (73,050)
【Fターム(参考)】