(57)【要約】【課題】ＭＭＣにＩＣカードのアプリケーションプログラムをインストール、若しくはＭＭＣから削除する場合において、ホスト機器からの指示によりそれらの処理をＭＭＣの中で実行する。【解決手段】本発明は、データを記憶するための記憶装置において、外部インタフェイスと、コントローラと、第１の不揮発メモリと、第２の不揮発メモリを備えた暗号演算処理部を備え、コントローラは、外部インタフェイスを介して接続される外部機器からの指示により、暗号演算処理部にて実行するためのプログラムを、第１の不揮発メモリ、若しくは外部機器から入力し、第２の不揮発メモリに書込む手段を備える。更に、コントローラは、外部機器からの指示により、第２の不揮発メモリに書込まれたプログラムを削除する手段を備える。【選択図】図１
2004272400.tif 000002
【特許請求の範囲】
【請求項１】
外部機器と接続するための外部インタフェイスと、不揮発性メモリと、前記不揮発性メモリを制御するためのコントローラと、ＩＣカードチップを備えたメモリカードにおいて、
前記コントローラは、前記外部機器からの指示により、前記ＩＣカードチップによって実行されるべきプログラムを前記不揮発性メモリから読み出し若しくは前記外部機器から受信し、前記プログラムを前記ＩＣカードチップへ送信し、
前記コントローラは、前記外部機器からの指示により、前記ＩＣカードチップ内のプログラムを削除するよう前記ＩＣカードチップへ要求するメモリカード。
【請求項２】
前記コントローラは、前記プログラムを前記ＩＣカードチップへ書込む前若しくは前記プログラムを前記ＩＣカードチップから削除する前に、前記ＩＣカードチップの正当性を評価し、
前記ＩＣカードチップは、前記コントローラが前記ＩＣカードチップの正当性を評価した後に前記コントローラから送信された前記プログラムの正当性を評価し、前記正当性が確認された場合に前記プログラムを前記ＩＣカードチップ内のメモリに書込むことを特徴とする請求項１に記載のメモリカード。
【請求項３】
前記不揮発性メモリには、前記ＩＣカードチップによって実行されるべきプログラム、並びに、前記プログラムを用いてアプリケーションを実行するホストプログラムを含むアプリケーションプログラムファイルと、該アプリケーションプログラムファイルの前記不揮発性メモリにおける格納位置を示したアプリケーションプログラムリストファイルとを記録することを特徴とする請求項１または請求項２に記載のメモリカード。
【請求項４】
前記コントローラは、暗号化されたプログラムファイルを前記ＩＣカードチップに送信し、
前記ＩＣカードチップは、複合プログラムを有し、前記コントローラから受信された前記プログラムファイルを前記復号プログラムを用いて復号し、復号された前記プログラムファイルを保持することを特徴とする請求項１または請求項２に記載のメモリカード。
【請求項５】
メモリカードと通信可能なホスト装置において、
アプリケーションプログラムのリストファイルを前記メモリカードから読み込む手段と、
前記リストファイルから選択可能なアプリケーションリストを作成する手段と、
アプリケーションリストのうち実行すべきアプリケーションの選択を受ける手段と、
選択されたアプリケーションを実行するために、前記メモリカード内のＩＣカードチップによって実行されるべきプログラムを、前記ＩＣカードチップへ送信するためのコマンドを前記メモリカードへ発行する手段とを備えたホスト装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、セキュリティ機能を搭載した記憶装置及びそのホスト機器に係り、アプリケーションソフトウエアの管理、実行を制御するための記憶装置及びそのホスト機器に関する。
【０００２】
【従来の技術】
不揮発メモリを有するＩＣカードは、クレジット決済やバンキング等、高度なセキュリティ処理が必要とされるシステムで利用されるメモリカードである。これは、１枚のカードに複数のアプリケーションを搭載したり、カード発行後においてもアプリケーションの搭載を可能にするダイナミックローディングと呼ばれる機能を付加することにより、ユーザの利便性向上を可能にする。
【０００３】
ダイナミックローディングによるアプリケーションの搭載（インストール）においては不正利用を防止するため、該アプリケーションが正当なものか、また対象となるＩＣカードが正当なものかを相互にチェックし、両者が正当な場合にだけアプリケーションの搭載を許可することが必要となる。これらの安全性を確保するためにサービス提供者の専用端末を利用したり、ユーザの端末からネットワークを経由して、サーバとＩＣカード間での認証並びにインストールを実行する方法がある（例えば、特許文献１等参照）。
【０００４】
【特許文献１】特開２００１−３２５０３７号公報、
【０００５】
【発明が解決しようとする課題】
上述のような専用端末を用いたアプリケーションのインストールでは、ユーザが該端末の設置場所まで出向くか、あるいはＩＣカードを該設置場所まで安全に搬送してインストールを実施した後に該カードをユーザまで返却するという物理的な移動が伴うため、ユーザ並びにサービス提供者の負担が大きく利便性に欠けるという問題があった。また、ネットワークを経由したインストールでは、ユーザの所有する端末を用いることで物理的な移動は避けられるものの、アプリケーションのインストール、若しくは削除する場合にはその都度、指定されたネットワーク上のサーバに接続する必要があるので操作が煩わしく、サーバの負荷が増大するという問題があった。例えばＩＣカード上に、既に複数のアプリケーションが搭載されている場合、新規にインストールするための空き領域がない場合は、搭載済のいずれかのアプリケーションを削除し、新規アプリケーションをインストールするという作業が発生し、その都度サーバに接続しなければならない。更に、削除したアプリケーションを復帰させるためには、再度、アプリケーション提供者に対してそのインストールを依頼しなければならず、サービス提供者、ユーザの双方にとって煩わしいものである。
【０００６】
本発明の目的は、ＩＣカード等のメモリカードに搭載するアプリケーションのインストールや削除といった管理において、高いセキュリティ強度と利便性を兼ね備えたメモリカード及びホスト機器を提供することである。
【０００７】
【課題を解決するための手段】
本発明は、データを記憶するための記憶装置において、外部インタフェイス（例えば、外部端子）と、コントローラと、第１の不揮発メモリ（例えば、フラッシュメモリチップ）と、第２の不揮発メモリを備えた暗号演算処理部（例えば、ＩＣカードチップ）を備え、コントローラは、外部インタフェイスを介して接続される外部機器からの指示により、暗号演算処理部にて実行するためのプログラムを、第１の不揮発メモリ、若しくは外部機器から入力し、第２の不揮発メモリに書込む手段を備える。更に、コントローラは、外部機器からの指示により、第２の不揮発メモリに書込まれたプログラムを削除する手段を備える。
【０００８】
また、コントローラは、第２の不揮発メモリに対するプログラムの書込み、若しくはプログラムの削除を実施する前に、暗号演算処理部の正当性を評価する認証手段を備える。暗号演算処理部は、コントローラから送信されたプログラムの正当性を評価する手段を備え、正当性が確認できれば該プログラムを第２の不揮発メモリに書込む。
【０００９】
【発明の実施の形態】
以下、本発明の一実施形態について説明する。
【００１０】
図１は、本発明を適用したＭｕｌｔｉＭｅｄｉａＣａｒｄ（ＭｕｌｔｉＭｅｄｉａＣａｒｄはＩｎｆｉｎｅｏｎＴｅｃｈｎｏｌｏｇｉｅｓＡＧの登録商標である。以下、「ＭＭＣ１０１」と略記する。）の内部構成図を示したものである。ＭＭＣ１０１は、外部に接続したホスト機器１２３がメモリカードコマンドを発行することによって、データの書込みや読出し処理、及びセキュリティ処理を行うデバイスである。ホスト機器１２３は、例えば、携帯電話、携帯情報端末（ＰＤＡ）、パーソナルコンピュータ、音楽再生（並びに録音）装置、スチルカメラ、ビデオカメラ、現金自動預金支払機（ＡＴＭ）等が該当する。本発明は、上述のＭＭＣ１０１にＩＣカードのアプリケーションプログラムをインストール、若しくはＭＭＣ１０１から削除する場合において、ホスト機器１２３からの指示によりそれらの処理をＭＭＣ１０１の中で実行するものである。以下、その概要について説明する。
【００１１】
ＭＭＣ１０１は、ＭＭＣ外部端子１０５、コントローラチップ１０２、フラッシュメモリチップ１０４、ＩＣカードチップ１０３から構成される。フラッシュメモリチップ１０４は、不揮発性の半導体メモリを記憶媒体とするメモリチップであり、フラッシュメモリコマンドによりデータの読み書きができる。ＩＣカードチップ１０３は、セキュリティ処理に必要な演算機能を有するもので、例えばＩＣカードのプラスチック基板中に埋め込まれるマイコンチップがこれに相当する。コントローラチップ１０２は、ＭＭＣ１０１内部の他の構成要素（ＭＭＣ外部端子１０５、フラッシュメモリチップ１０４、ＩＣカードチップ１０３）と接続されており、これらを制御しながらホスト機器１２３が発行するメモリカードコマンドを処理する。ＭＭＣ外部端子１０５は、外部のホスト機器１２３と情報交換するための端子群である。
【００１２】
ＩＣカードのアプリケーションプログラムは、通常、ホスト機器１２３のアプリケーションプログラムと連動して各種のサービスを提供する。図１の例では、ホスト機器１２３とＭＭＣ１０１内のＩＣカードチップ１０３の双方に各アプリケーションプログラムが搭載されている。例えば買い物サービスを実現するために、ホスト機器１２３にＨｏｓｔ＿ＡＰ１（１２５−１）、ＩＣカードチップ１０３にＡｃｔｉｖｅ＿ＡＰ１（１１８−１）が各々搭載されている。ここで、買い物サービスとは、例えばホスト機器１２３を介してインターネット上でバーチャルショッピングをしたり、ホスト機器１２３の無線機能を利用して実際の店舗に設置された専用端末と通信して買い物をするサービスを指すものである。通常、ＩＣカードアプリケーションプログラムは、秘匿性の高いデータに対するカード外部との入出力制御や演算を実行するためのプログラムである。例えば上述の買い物サービスにおけるＡｃｔｉｖｅ＿ＡＰ１（１１８−１）では、買い物時に電子マネーの残高を計算し、その結果を安全に保管する等の処理を行う。このようなアプリケーションプログラムは、そのインストールや削除等の管理において、十分なセキュリティの配慮が必要である。本発明では、コントローラチップ１０２とＩＣカードチップ１０３との間で認証を行った後、ＩＣカードアプリケーションプログラムをインストール、若しくは削除することにより、上記安全性を確保している。
【００１３】
本実施例では、ＩＣカードアプリケーションプログラムの存在位置に基づき、その名称を定義している。図２はその状態遷移を示している。Ｎｏｎｅ２０１とは、該アプリケーションプログラムファイルが無い状態を示す。Ｕｓａｂｌｅ２０２とは、ＩＣカードチップ１０３にインストールされていないが、インストールが可能なファイルであることを意味する。これは、例えばホスト機器１２３からメモリライトコマンド２０５によってフラッシュメモリチップ１０４に書き込まれることで得られる。図１において、フラッシュメモリチップ１０４はＡＰファイル１２０の中でＵｓａｂｌｅ＿ＡＰ１２１を格納している（ＡＰファイルについての詳細は後述する）。Ａｃｔｉｖｅ２０３とは、ＩＣカードチップ１０３にインストールされたプログラムファイルであり、アプリケーションが実行可能な状態にあることを意味する。これは、例えばホスト機器１２３からのインストール指示に基づき、Ｕｓａｂｌｅファイルをインストール２０７することで得られる。Ｕｓａｂｌｅ状態のプログラムファイルを削除する場合、ホスト機器１２３はメモリ消去コマンド２０６を発行することで該ファイルは削除される。また、Ａｃｔｉｖｅ状態のプログラムファイルを削除する場合、ホスト機器１２３はアンインストール２０８指示を出すことで該ファイルは削除される。この場合、対応するＵｓａｂｌｅファイル（Ｕｓａｂｌｅ＿ＡＰ１２１）がＡＰファイル１２０の中に残っているならば、再度上述のインストール２０７指示によって、削除したインストール済のＡｃｔｉｖｅプログラムファイルを復帰することができる。なお、Ｕｎｕｓａｂｌｅ２０４については次の実施例にて説明する。
【００１４】
以下、これらの詳細について説明する。
【００１５】
図１において、コントローラチップ１０２は、ホスト制御部１０６、フラッシュメモリ制御部１０８、ＩＣカード制御部１０９から構成される。ホスト制御部１０６はＭＭＣ外部端子１０５を介してホスト機器１２３との間でカードコマンドの送受信処理を行う。またコマンド解釈モジュール１０７を有し、その中で前記コマンドの解釈を行い、その結果をフラッシュメモリ制御部１０８やＩＣカード制御部１０９に通知する。フラッシュメモリ制御部１０８は、前記コマンド解釈結果がフラッシュメモリチップ１０４へのアクセスに関するコマンドである場合に、フラッシュメモリチップ１０４に対してデータの読出しや書込み等の指示を出し、その結果をホスト制御部１０６に返す。ＩＣカード制御部１０９は、データ転送を管理するデータ転送モジュール１１１、ＩＣカードチップ１０３間の入出力を制御するＩ／Ｏモジュール１１２、ＩＣカードチップ１０３との間で相互認証を行う認証モジュール１１０から構成される。前記コマンド解釈結果がＩＣカードチップ１０３へのアクセスに関するコマンドである場合に、データ転送モジュール１１１とＩ／Ｏモジュール１１２を介して、ＩＣカードチップ１０３に対してＩＣカードコマンドを発行し、その結果（レスポンス）をホスト制御部１０６に返す。また、データ転送モジュール１１１はＩＣカードチップ１０３とフラッシュメモリチップ１０４間のデータ転送も制御する。これはフラッシュメモリチップ１０４を利用したＩＣカードアプリケーションプログラムのインストールや移動といった処理を行う際に使用される（詳細は後述する）。
【００１６】
ＩＣカードチップ１０３は、その外部端子１１３によってコントローラチップ１０２と接続されており、該外部端子１１３、電気信号プロトコル、コマンドはＩＳＯ／ＩＥＣ７８１６規格に準拠している。なお、高いセキュリティレベルを保証する場合は、セキュリティ評価基準の国際標準であるＩＳＯ／ＩＥＣ１５４０８の評価・認証機関によって認証済みであるＩＣカードチップ１０３を利用しても良い。ＩＣカードチップ１０３は、そのハードウエア１１４上にＩＣカードＯＳ１１５とアプリケーション１１６が実装される。ハードウエア１１４は、演算処理を行うためのＣＰＵ（マイコン）、プログラム等を記憶するためのＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  ＡｃｃｅｓｓＭｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）と、暗号や復号に関する処理を行うための暗号コプロセッサを備えている。ＩＣカードＯＳ１１５は、例えばＭＵＬＴＯＳ（ＭＵＬＴＯＳはＭｏｎｄｅｘ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｌｉｍｉｔｅｄの登録商標である。）や、ＪａｖａＣａｒｄの仮想マシン（ＪａｖａＣａｒｄはＳｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ株式会社の登録商標である。）等のように、複数のアプリケーションを搭載可能なＯＳが望ましい。これらのＯＳ１１５は、複数のＩＣカードアプリケーションからユーザが使用したいものを選択できる機能（アプリケーション選択機能）や、複数のＩＣカードアプリケーションが互いに干渉して誤動作を起こしたり秘密情報が解読されたりしないようにする機能（ファイヤウォール機能）が備わっており、ユーザは１枚のＭＭＣ１０１で複数のサービスを利用できる。アプリケーションは複数のアプリケーションプログラム（Ａｃｔｉｖｅ＿ＡＰ１〜ｎ（１１８−１〜ｎ））とこれらのアプリケーションプログラムのインストールや削除といった管理を行う管理モジュール１１７から構成される。ここで管理モジュール１１７は、カード発行後においてもアプリケーションのインストールや削除を可能にするダイナミックローディング機能に対応する。例えば、ＧｌｏｂａｌＰｌａｔｆｏｒｍ規格やＭＵＬＴＯＳ規格に準拠したカード管理を行う。
【００１７】
フラッシュメモリチップ１０４には、ＡＰ（アプリケーション）ファイル１２０とＡＰ（アプリケーション）リストファイル１１９が格納されている。ＡＰファイル１２０は、ＩＣカードチップ１０３へのインストールが可能なＩＣカードアプリケーションプログラム（Ｕｓａｂｌｅ＿ＡＰ１２１）とそれに対応するホスト機器用アプリケーションプログラム（Ｈｏｓｔ＿ＡＰ１２２）のペアで構成されたファイルであり、サービス毎に用意されている。これらのファイルはサービス提供者から各ユーザに提供されるものであり、Ｕｓａｂｌｅ＿ＡＰ１２１は、ＩＣカードチップ１０３の管理モジュール１１７においてその正当性を検証するために、予め暗号化等のセキュリティ処理が施されている。これはＵｓａｂｌｅ＿ＡＰ１２１の秘匿性保持や改竄防止のためである。従ってＵｓａｂｌｅ＿ＡＰ１２１の内容を書き換えてインストールしたり、他のＭＭＣ１０１に自由にインストールすることは極めて困難である。一方、Ｈｏｓｔ＿ＡＰ１２２は秘匿性の高いデータを直接取り扱うわけではないので、Ｕｓａｂｌｅ＿ＡＰ１２１のようなセキュリティ処理を施しておく必要はない。但し、ソフトウエアの著作権保護の見地からコピー防止機能が必要な場合には予め暗号化等のセキュリティ処理を施していても良い。ＡＰリストファイル１１９は前記ＡＰファイル１２０の構成と内容を示したファイルである。ホスト機器１２３は該ファイル１１９を読み出し、ＭＭＣ１０１に格納された各アプリケーションプログラムの状態を把握することができる。図３はＡＰリストファイル１１９の一例を示している。ここでは３つのサービス（買い物、ネット接続、ゲーム）が登録されており、各々においてカードＡＰ（アプリケーション）３０３とホストＡＰ（アプリケーション）３０７のファイルサイズ（３０４並びに３０８）やフラッシュメモリチップ１０４上のプログラム格納位置（３０６並びに３０９）が示されている。また、カードＡＰ３０３についてはＩＣカードアプリケーションの状態が示されている。ここでは「買い物」と「ネット接続」のサービスはＡｃｉｔｖｅ、即ち、既にＩＣカードチップ１０３にインストール済なのですぐに利用すすることができ、また、「ゲーム」のサービスはＵｓａｂｌｅ、即ち、ＩＣカードチップ１０３へのインストール実行後に使用可能となる状態にあることを意味するものである。
【００１８】
なお、ＡＰファイル１２０はホスト機器１２３が通常のメモリリードコマンドを発行することで読み出すことが可能である。更に高いセキュリティ強度を実現するために、ＡＰファイル１２０を通常のコマンドでは読み出すことができないメモリ管理領域に格納しても良い。その場合、ＡＰリストファイル１１９の各プログラム格納位置（３０６並びに３０９）は管理領域内でのセクタアドレス値と規定すれば良い。
【００１９】
ホスト機器１２３は、上述のＡＰリストファイル１１９を参照してユーザの希望するサービスを実行するために、それに適したメモリカードコマンドをＭＭＣ１０１に対して発行する。図４は、該メモリカードコマンドのフォーマットの一例を示している。該コマンドフォーマットは、ＭＭＣコマンド番号４０１とデータ４０２の２つの領域から構成される。ＭＭＣコマンド番号４０１は予め規定された命令が割当てられており、その指示の詳細をデータ４０２に記述するものである。該コマンドには、カードの初期化やフラッシュメモリチップ１０４へのデータの書込みや読出しの他に、ＩＣカードチップ１０３へのアクセスを伴うコマンドが規定されている。ＩＣカードチップ１０３に対して命令を発行する場合は、セキュアライトコマンド（ｓｅｃ＿ｗ４０８）を設定する。また、ＩＣカーチップ１０３に発行した命令の結果（レスポンス）を受信する場合は、セキュアリードコマンド（ｓｅｃ＿ｒ４０９）を設定する。この際、データ４０２にはＩＣカードチップ１０３に対するコマンド、若しくはレスポンスが設定される。前述のＩＣカードアプリケーションプログラムのインストールや削除等、アプリケーション管理に関するコマンドについては、例えば以下のような定義をすれば良い。データ４０２の命令領域４０３には、ＡＰ処理コマンドを意味するｉｎｓ４１０を設定する。パラメータ領域４０４には、後述のＤａｔａ領域４０６で指定したＩＣカードアプリケーションプログラム（Ｕｓａｂｌｅ＿ＡＰ１２１）をＡｃｔｉｖｅ状態にする（インストールする）場合は、ｐｒ＿００（４１１）を設定する。また、Ａｃｔｉｖｅ状態の（インストールされた）アプリケーションプログラムを削除する場合はｐｒ＿０１（４１２）を設定する。また、Ｕｓａｂｌｅ＿ＡＰ１２１をＡＰファイル１２０から削除する場合は、ｐｒ＿０２（４１３）を設定する。また、Ｄａｔａ領域４０６で指定したホストアプリケーションプログラム（Ｈｏｓｔ＿ＡＰ１２２）をホスト機器１２３に転送する場合は、ｐｒ＿１１（４１５）を設定する。また、Ｈｏｓｔ＿ＡＰ１２２をＡＰファイル１２０から削除する場合は、ｐｒ＿１２（４１６）を設定する。Ｌｃ領域４０５には、コマンド長Ｌｃ＿ｘ４１７を設定する。Ｄａｔａ領域４０６には、ＡＰリストファイル１１９に設定されたアプリケーション番号３０１やカード並びにホストアプリケーションプログラムの格納位置ｄｔ＿ｘ４１８を設定することにより、処理対象を選択する。Ｌｅ領域４０７には、該コマンドに対するレスポンス長の期待値ｌｅ＿ｘ４１９を設定する。以上のようなデータ４０２には、ＩＳＯ／ＩＥＣ７８１６規格に準拠しているＩＣカードのコマンドフォーマットをそのまま使用することができる。具体的には、コマンドＡＰＤＵのＣＬＡ、ＩＮＳフィールドには命令領域４０３を、Ｐ１、Ｐ２フィールドにはパラメータ領域４０４を、ＬＣフィールドにはＬｃ４０５を、ＤＡＴＡフィールドにはＤａｔａ領域４０６を、ＬＥフィールドにはＬｅ領域４０７を、各々割当てれば良い。
【００２０】
以上述べたＭＭＣ１０１の利用方法とその処理内容について、以下詳細に説明する。図５は、ホスト機器１２３がＭＭＣ１０１を利用してアプリケーションを実行する場合の動作フローチャートを示している。ホスト機器１２３はユーザが操作するユーザインタフェイスアプリケーション（ユーザＩ／Ｆ＿ＡＰ５０１）と、該アプリケーションからの指示を受け、ＭＭＣ１０１へのアクセスを実行するＯＳ／ドライバ５０２から構成される。一方ＭＭＣ１０１は、図１で示したようにコントローラチップ１０２、ＩＣカードチップ１０３、フラッシュメモリチップ１０４から構成される。ユーザは始めに、ユーザＩ／Ｆ＿ＡＰ５０１を用いて該ホスト機器１２３で処理が可能なアプリケーションのリストを表示する操作を行う。該操作に基づき、ユーザＩ／Ｆ＿ＡＰ５０１はＭＭＣ１０１に格納されたＡＰリストファイル１１９の取得要求をＯＳ／ドライバ５０２に指示する（Ｓｔｅｐ５０１）。ＯＳ／ドライバ５０２はＭＭＣ１０１に対してファイル読出しコマンドを発行する（Ｓｔｅｐ５０２）。ＭＭＣ１０１のコントローラチップ１０２は、該コマンドを受信するとコマンド解釈モジュール１０７にてコマンド解釈を行う。該コマンドはフラッシュメモリチップ１０４へのファイル読出しを指示するものなので、フラッシュメモリ制御部１０８を介してフラッシュメモリチップ１０４にその指示を出す（Ｓｔｅｐ５０３）。フラッシュメモリチップ１０４は、対象となるファイル１１９を読出し、該ファイル１１９をコントローラチップ１０２に送信すると（Ｓｔｅｐ５０４）、コントローラチップ１０２は該コマンドの応答としてホスト機器１２３に該ファイルを送信する（Ｓｔｅｐ５０５）。ユーザＩ／Ｆ＿ＡＰ５０１は取得した該ファイル１１９からアプリケーションリストを表示する（Ｓｔｅｐ５０６）。表示する内容としては、例えば図３で示したタイトル３０２だけでも良いし、その説明を付加したりカードＡＰの状態（ＩＣカードにインストール済又は未済）を表示しても良い。なお、上述の処理はホスト機器１２３にＭＭＣ１０１を挿入した際に、自動的に行っても良い。これは、ホスト機器１２３がＭＭＣ１０１の挿入を検出すると、予めＭＭＣ１０１に格納されたユーザＩ／Ｆ＿ＡＰ５０１用ファイルを読み出して実行することにより、ユーザの操作無しでアプリケーションリストの表示を行うものである。ユーザは表示されたアプリケーションリストの中から希望するアプリケーションを選択する（Ｓｔｅｐ７）。ユーザＩ／Ｆ＿ＡＰ５０１は、選択されたアプリケーションのカードＡＰの状態をチェックし（Ｓｔｅｐ５０８）、Ａｃｔｉｖｅである（ＩＣカードチップ１０３にインストール済である）場合は対象アプリケーションを実行する（Ｓｔｅｐ５１５）。Ａｃｔｉｖｅでない場合は対象アプリケーションを選択し（Ｓｔｅｐ５０９）、ＭＭＣ１０１に対して該アプリケーションプログラムのＡｃｔｉｖｅ化（インストール）を指示するコマンドを発行する（Ｓｔｅｐ５１０）。具体的には、図４に示した各フィールドにおいて、ＭＭＣコマンド番号４０１にはｓｅｃ＿ｗ４０８を、データ４０２の命令領域４０３にはｉｎｓ４１０を、パラメータ領域４０４にはｐｒ＿００（４１１）とｐｒ＿１１（４１５）を、Ｌｃ領域４０５にはコマンド長ｌｃ＿ｘ４１７を、Ｄａｔａ領域４０６にはアプリケーション番号３０１を（本例ではＡｃｔｉｖｅ化されていない４番のゲームを選択するものとする）、Ｌｅ領域４０７にはレスポンス長ｌｅ＿ｘ４１９を設定してコマンドを発行する。ＭＭＣ１０１のコントローラチップ１０２は、上記同様にコマンド解釈を行い（Ｓｔｅｐ５１１）、その結果から、ＩＣカードアプリケーションプログラムのインストールと関連するＨｏｓｔ＿ＡＰ３ファイル１２２−３のホスト機器１２３への転送であることを把握し、指定されたＵｓａｂｌｅ＿ＡＰ１２１−３のＡｃｔｉｖｅ化処理を実行する（Ｓｔｅｐ５１２：該処理の詳細については後述する）。該インストールが成功すると、ホスト機器１２３は、指定したＨｏｓｔ＿ＡＰ３ファイル１２２−３を取得することができ（Ｓｔｅｐ５１４）、ユーザが選択したアプリケーションを実行する（Ｓｔｅｐ５１５）。該アプリケーション実行中に、ＩＣカードチップ１０３へのアクセスが必要になれば、ＯＳ／ドライバ５０２を介してセキュアライトコマンド４０８を発行する（Ｓｔｅｐ５１６）。これは例えばゲームのアプリケーションにおいて、ゲーム結果（スコア等）をＩＣカードチップ１０３にセキュアに保存し、その内容を改竄できないようなシステムで利用される。ＭＭＣ１０１のコントローラチップ１０２は上記同様にコマンド解釈を行い（Ｓｔｅｐ５１７）、その結果から、Ａｃｉｔｖｅ化されたＩＣカードアプリケーションへのアクセスであることを把握し、ＩＣカードチップ１０３に対してコマンドを送信する。ＩＣカードチップは、受信したコマンドの処理を行い（Ｓｔｅｐ５１８）、その結果（レスポンス）をコントローラチップ１０２に送信すると、コントローラチップ１０２は該コマンドの応答としてホスト機器１２３に処理結果を通知し（Ｓｔｅｐ５１９）、アプリケーションが終了する（Ｓｔｅｐ５２０）。
【００２１】
図６は、上述のＵｓａｂｌｅ＿ＡＰ１２１−３に対するＡｃｔｉｖｅ化処理の詳細動作フローチャートを示している。ホスト機器１２３が上述のＡｃｔｉｖｅ化コマンドを発行すると（Ｓｔｅｐ５１０）、ＭＭＣ１０１のコントローラチップ１０２はコマンド解釈を行い（Ｓｔｅｐ５０３）、ＩＣカードアプリケーションプログラムのインストールを実行するため、ＩＣカードチップ１０３に対して管理モジュール１１７選択命令を発行する（Ｓｔｅｐ６０１）。該命令はＩＳＯ／ＩＥＣ７８１６規格で規定しているＩＣカードコマンドに準拠していることが望ましい。ＩＣカードチップ１０３は該命令を受けて管理モジュール１１７を選択し、インストールの準備を開始する（Ｓｔｅｐ６０２）。次に、コントローラチップ１０２とＩＣカードチップ１０３の間で、初期化（Ｓｔｅｐ６０３、Ｓｔｅｐ６０４）と外部認証（Ｓｔｅｐ６０５、Ｓｔｅｐ６０６）の処理を実行することでＩＣカードチップ１０３の正当性がチェックされ、インストールの準備が整う。コントローラチップ１０２は、フラッシュメモリチップ１０４に対してＡＰファイル１２０の中からＡｃｔｉｖｅ化の対象となるＵｓａｂｌｅ＿ＡＰファイル１２１−３の読出しを指示する（Ｓｔｅｐ６０７）。フラッシュメモリチップ１０４は該指示を受けて対象ファイル１２１−３を読出し、コントローラチップ１０２に転送する（Ｓｔｅｐ６０８）。コントローラチップ１０２は取得したＵｓａｂｌｅ＿ＡＰファイル１２１−３を用いてインストールの指示を出し（Ｓｔｅｐ６０９）、それに基づきＩＣカードチップ１０３はインストール処理を実行する（Ｓｔｅｐ６１０）。インストール処理においてはＵｓａｂｌｅ＿ＡＰ１２１−３の正当性がチェックされ、その処理結果はコントローラチップ１１０２に通知され保持される（Ｓｔｅｐ６１１）。ホスト機器１２３は該処理結果を確認するためセキュアリードコマンド４０９を発行する（Ｓｔｅｐ５１３）。コントローラチップ１０２は該コマンド４０９を受け、該処理が成功したか判定し（Ｓｔｅｐ６１２）、成功した場合には、Ａｃｔｉｖｅ化されたＩＣカードアプリケーションプログラム（Ｕｓａｂｌｅ＿ＡＰ３（１２１−３））と対を成すＨｏｓｔ＿ＡＰ３（１２２−３）の読出しをフラッシュメモリチップ１０４に指示する（Ｓｔｅｐ６１３）。該指示に基づき、対象ファイル（Ｈｏｓｔ＿ＡＰ３（１２２−３））は、フラッシュメモリチップ１０４からホスト機器１２３に転送され（Ｓｔｅｐ６１４）、ホスト機器１２３はＨｏｓｔ＿ＡＰ３（１２２−３）を取得する（Ｓｔｅｐ５１４）。なお、Ｈｏｓｔ＿ＡＰ３ファイル１２２−３の読出しは、インストール処理が成功した時点において、事前にフラッシュメモリチップ１０４に対して読出し指示を出しておいても良い。また、インストール処理が失敗した場合には、その旨がホスト機器１２３に通知され、ユーザが選択したアプリケーションの実行は異常終了する（Ｓｔｅｐ６１５）。
【００２２】
次に、本発明の他の実施形態について説明する。
【００２３】
本実施例では、サービス提供者がＭＭＣ１０１を用いてＩＣカードチップ１０３のアプリケーションプログラムをユーザに販売するモデルを示す。図２に示すように、上述の実施例ではＩＣカードチップ１０３のアプリケーションプログラムの状態として、Ｎｏｎｅ２０１、Ｕｓａｂｌｅ２０２、Ａｃｔｉｖｅ２０３の各々を定義した。本実施例では、これらに加えて、Ｕｎｕｓａｂｌｅ２０４という状態を定義する。Ｕｎｕｓａｂｌｅ状態のファイルとは、Ｕｓａｂｌｅ状態のファイルを暗号化したものであり、復号するためにはサービス提供者が供与する復号鍵が必要となる。従って、Ｕｎｕｓａｂｌｅ状態のファイルのままではＩＣカードチップ１０３にインストールすることはできない。Ｕｎｕｓａｂｌｅ状態のファイルをインストールする場合には、上記復号鍵を用いた復号処理を行う別のＩＣカードアプリケーション（ＡＰ購入用アプリケーション）を実行することにより、該インストールは施される。
【００２４】
図７は、上述のモデルを適用したＭＭＣ１０１の内部構成を示している。ＩＣカードチップ１０３には、上記ＡＰ購入用アプリケーション（Ａｃｔｉｖｅ＿ＡＰ０（１１８−０））がインストールされている。これはユーザにＭＭＣ１０１を配布する前に、サービス事業者、若しくはカード発行者が予めインストールしておくものである。フラッシュメモリチップ１０４にはＡＰファイル１２０が格納されており、その中にＵｎｕｓａｂｌｅ＿ＡＰ７０１が含まれている（Ｈｏｓｔ＿ＡＰ１２２も前実施例と同様に含まれている）。ＡＰファイル１２０は、基本的には秘匿性の高いデータは含まれておらず、コピーして自由に配布することも可能である。これは、ユーザがＨｏｓｔ＿ＡＰ１２２だけ入手しても、対応するカードアプリケーションがインストールされていなければ、Ｈｏｓｔ＿ＡＰ１２２が正常に動作せず、結果的にサービスを享受できないからである。従ってサービス事業者若しくはカード発行者は、該ＡＰファイル１２０をＭＭＣ１０１に格納した状態で出荷したり、インターネット等を介してユーザに自由に配布することができるので、効率の良いビジネスを実現することが可能となる。
【００２５】
図８は、本実施例におけるＡＰリストファイル１１９の内容を示している。「ＡＰ購入」サービスというアプリケーションがＡｃｔｉｖｅ状態、即ち、インストール済であり、「音楽」サービスというアプリケーションがＵｎｕｓａｂｌｅ状態になっている。ここで「ＡＰ購入」サービスアプリケーションとは、例えば、予め設定したポイント値をセキュアに格納しておき、アプリケーションの購入、即ちＵｎｕｓａｂｅ＿ＡＰ７０１のインストール時にその代金に相当するポイント値を差し引く、というもので良い（ポイント値の充当は、専用端末から入金しても良いし、インターネット経由でユーザの銀行口座から引き落としても良い）。「音楽」サービスとは、例えば、暗号化された音楽コンテンツの復号処理を行ったり、若しくはＭＭＣ１０１内部のコントローラチップ１０２と連携して復号処理を行うための一部機能を有する、というもので良い。
【００２６】
上述の「音楽」サービスにおけるＭＭＣ１０１の利用方法とその動作について、以下具体的に説明する。ユーザは音楽サービスを受けるためにホスト機器１２３のアプリケーション（Ｈｏｓｔ＿ＡＰ４（１２５−４））を起動する。Ｈｏｓｔ＿ＡＰ４（１２５−４）はＭＭＣ１０１のＡＰリストファイル１１９から、ＩＣカードチップ１０３上に対応するアプリケーション（Ａｃｔｉｖｅ＿ＡＰ４（１１８−４））がインストールされていないこと、またＵｎｕｎｓａｂｌｅ＿ＡＰ４（７０１−４）がメモリ１０４上に存在することを把握し、既にインストール済のＡＰ購入アプリケーション（Ｈｏｓｔ＿ＡＰ０（１２５−０））を立ち上げる。Ｈｏｓｔ＿ＡＰ０（１２５−０）は、ＭＭＣ１０１に対してＵｎｕｓａｂｌｅ＿ＡＰ４（７０１−４）のインストール処理を指示する。ＭＭＣ１０１は、該指示に基づきＩＣカードチップ１０３内のＡｃｔｉｖｅ＿ＡＰ０（１１８−０）を起動する。Ａｃｔｉｖｅ＿ＡＰ０（１１８−０）は、コントローラチップ１０２に対してＵｎｕｓａｂｌｅ＿ＡＰ４（７０１−４）のインストールを実行するためにインストールの準備を要求する。ここでインストール準備とは、前記実施例の図６で示したように管理モジュール１１７選択（Ｓｔｅｐ６０１、６０２）、初期化（Ｓｔｅｐ６０３、６０４）、認証（Ｓｔｅｐ６０５、６０６）の各処理を示す。これらの処理後、コントローラチップ１０２はＵｎｕｓａｂｌｅ＿ＡＰ４（７０１−４）をＩＣカードチップ１０３に転送し、インストールを指示する。ＩＣカードチップ１０３は、Ａｃｔｉｖｅ＿ＡＰ０（１１８−０）を用いて転送されたＵｎｕｓａｂｌｅ＿ＡＰ４（７０１−４）の復号化を行い、その結果をインストールプログラム対象として取り扱う。以降の処理は図５、図６と同様に、「音楽」サービスに対応したＩＣカードアプリケーションがインストールされるので、ユーザはそのサービスを享受することが可能になる。
【００２７】
以上述べた実施例では、ＭＭＣ１０１の内部構成として、コントローラチップ１０２、ＩＣカードチップ１０３、フラッシュメモリチップ１０４の一構成例を示したが、本発明は各チップ同士が集積された場合でも適用できることは明白である。例えば、コントローラチップ１０２とＩＣカードチップ１０３が集積されたチップとフラッシュメモリチップ１０４で構成しても良い。
【００２８】
また、以上述べた実施例では、本発明をＭｕｌｔｉＭｅｄｉａＣａｒｄ（ＭＭＣ１０１）に適用した場合について記載したものであるが、これは他のメモリカード、例えば、ＳＤカード、メモリースティック（メモリースティックはソニー株式会社の登録商標である）、コンパクトフラッシュ（登録商標）等にも適用できることは明らかである。またハードディスク装置や光ディスク装置のような不揮発性メモリ機能を有するデバイスへの適用も可能である。
【００２９】
【発明の効果】
本発明によれば、ＩＣカード等のメモリカードに搭載するアプリケーションのインストールや削除といった管理において、高いセキュリティ強度と利便性を兼ね備えたメモリカードを提供することが可能となり、サービス提供者、ユーザの双方にとって都合の良いシステムを構築することができる。
【図面の簡単な説明】
【図１】本発明を適用したＭＭＣの内部構成を示す図である。
【図２】本発明を適用したＩＣカードアプリケーションの状態遷移を示す図である。
【図３】本発明を適用したアプリケーションリストファイルの一例を示す図である。
【図４】本発明を適用したＭＭＣコマンドフォーマットの一例を示す図である。
【図５】本発明を適用した全体の動作フローチャートを示す図である。
【図６】本発明を適用したＡｃｔｉｖｅ化処理の動作フローチャートを示す図である。
【図７】本発明を適用したＭＭＣの他の内部構成を示す図である。
【図８】本発明を適用した他のアプリケーションリストファイルの一例を示す図である。
【符号の説明】
１０１…ＭＭＣ、１０２…コントローラチップ、１０３…ＩＣカードチップ、１０４…フラッシュメモリチップ、１１０…認証モジュール、１１７…管理モジュール、１１８…Ａｃｔｉｖｅ＿ＡＰ、１１９…ＡＰリストファイル、１２０…ＡＰファイル、１２１…Ｕｓａｂｌｅ＿ＡＰ、１２２…Ｈｏｓｔ＿ＡＰ、７０１…Ｕｎｕｓａｂｌｅ＿ＡＰ。
【図１】
2004272400.tif 000003
【図２】
2004272400.tif 000004
【図３】
2004272400.tif 000005
【図４】
2004272400.tif 000006
【図５】
2004272400.tif 000007
【図６】
2004272400.tif 000008
【図７】
2004272400.tif 000009
【図８】
2004272400.tif 000010