説明

ICカード内のコンピュータコードへのアクセスを制御するシステムおよび方法

【課題】ICカード内のコンピュータコードへのアクセスを制御するのに好適なシステムおよび方法を提供すること。
【解決手段】マイクロプロセッサ、読出し専用メモリ、ランダムアクセスメモリ、および電気的に消去可能なプログラマブル読出し専用メモリを含むICカードを含むマルチプルアプリケーションカードシステムにおいて、前記読出し専用メモリ内に埋め込まれたプログラミング命令の1つ以上のセットへのアクセスを制御するためのシステムであって、カードにロードされている少なくとも1つのアプリケーションに関して、この少なくとも1つのアプリケーションによる、プログラミング命令の少なくとも1つのセットへのアクセスが許可されるか否かを示す値を有する少なくとも1つのアクセスフラグをICカードに格納する手段と、上記値に応じてプログラミング命令の1つ以上のセットへのアクセスを可能にする手段と、を含むシステム。

【発明の詳細な説明】
【技術分野】
【0001】
(優先権主張の基礎となる出願)
本出願は、「Access/Crypto Flags」という名称の1998年2月3日付けで出願された米国特許仮出願第60/073,566号に基づく優先権を主張する。
【0002】
(関連出願)
本出願は、「Codelets」という名称の1998年1月22日付けで出願された米国特許仮出願第601072,561号および「Secure Multiple Application Card System and Process」という名称の1998年5月12日付けで出願された米国特許出願第09/076,551号に関連する。本明細書中、これらの出願を参考のため援用する。本明細書中、米国特許出願第09/076,551号が、Annex Aとして含まれている。
【背景技術】
【0003】
(発明の背景)
集積回路カードは、多くの異なる目的のために、今日、世界でますます用いられるようになってきている。ICカードは典型的には、コンピュータチップが埋め込まれた、従来のクレジットカードの大きさである。ICカードは、マイクロプロセッサ、読出し専用メモリ(ROM)、電気的に消去可能なプログラマブル読出し専用メモリ(EEPROM)、入力/出力(I/O)機構およびマイクロプロセッサの動作をサポートする他の回路を含む。ICカードは、1以上のアプリケーションをメモリ内に含み得る。アプリケーションローダは、アプリケーションをカードにロードするエンティティである。アプリケーションローダは、アプリケーションの実際の開発者または第三者であり得る。
【0004】
MULTOSTMとは、様々なプラットフォームのなかでもICカード上で動作するマルチプルアプリケーションオペレーティングシステムであり、複数のアプリケーションがカード自体上で実行されることを可能にする。このことは、カードが使用のために挿入される端末のタイプ(すなわち、ATM、電話および/またはPOS)にかかわらず、カードユーザが、カード(例えば、クレジット/デビット、電子マネー/財布および/またはロイヤリティーアプリケーション)内に格納されている多くのプログラムを実行することを可能にする。このようなカードを使用する際に最も重要なことはセキュリティであり、カードシステムのオペレータが、カードが端末または他のカードとセキュアに通信することを可能にする。オペレータはさらに、アプリケーションのカードへのローディングおよびカードからの削除、ならびにシステムをセキュアにする暗号鍵を管理する。
【0005】
ICカードは典型的には、カード上にメモリを配置する際のサイズおよびコストに関する制限により、限られた格納容量を有する。マルチアプリケーションスマートカード用のアプリケーションは、プログラミング言語で書かれ、典型的には、カードの寿命期間中にコンテンツが変更され得るEEPROM内に格納される。ICカードにおいて用いられるプログラミング言語の一例は、Multos Executable Language MELTMである。MELプログラム命令は、実行される際にEEPROMから読み出され、ROM内に格納されているオペレーティングシステムにより解釈される。
【0006】
ICカード上のROMは、特定の集積回路構成用のアセンブラ言語コード(ネィティブ言語タイプのコード)で書かれたオペレーティングシステムを含む。ROM内に格納されているオペレーティングコードは、ROMが初めて書き込まれたときに固定され、ROM内に格納された情報は、カードの寿命期間中、変化しない。
【0007】
ROM内には、マイクロプロセッサ用のネィティブ言語で書かれた、プリミティブと呼ばれるサブルーチンもまた存在し得る。プリミティブは、実行される際、オペレーティングシステム自体またはアプリケーションのいずれかから呼び出され得る。プリミティブは、ネィティブ言語(すなわち、アセンブラ言語)で書かれており、そのため、極めて高速で実行可能であり、実行に必要な命令の解釈も最小限ですむ。これらのプリミティブは、典型的には、数学的機能または暗号機能などの、所望の機能を果たす命令の集合体である。これらの命令は、カードの寿命期間中、決して変更されることはない。プリミティブにより用いられる、またはアクセスされるあらゆるデータは、EEPROM内に格納され、それにより、データ要素のコンテンツが、必要に応じて変更され得る。
【0008】
MULTOSTMシステムにおいて、アプリケーションは、カードに格納されているプリミティブを呼び出し得、次いでプリミティブはオペレーティングシステムにより実行される。例えば、アプリケーションが2つの数を分割する必要がある場合、アプリケーションは、「分割」プリミティブを呼び出して、その機能用のオペランドを提供し得、プリミティブは計算を実行する。カード上のあらゆるアプリケーションは、「アクセス分割プリミティブ」命令を実行することにより分割プリミティブを呼び出す能力を有する。いくつかのプリミティブは、基本的数学式または基本的なデータ検索などの、ほとんどすべてのアプリケーションに必要である一方、いくつかのプリミティブは、オプションであり、いくつかのアプリケーションのみにより用いられように意図されている。例えば、データを暗号化/解読するセキュリティ関連プリミティブは、個々のアプリケーションの要求事項のために、いくつかのアプリケーション(例えば、銀行アプリケーション)によって用いられるが、他のアプリケーション(例えば、航空マイレージまたは娯楽アプリケーション)によっては用いられないということがあり得る。
【0009】
さらに、外部の考慮すべき事項が、アプリケーションによるいくつかのプリミティブの許可された使用に影響を与え得る。これらの事項は、カードシステムのオペレータが、個々のアプリケーションによる、ある種のプリミティブへのアクセスを制御(すなわち、阻止)することを必要とする。このような事項のひとつは、あるタイプのアプリケーション用の強力な暗号化アルゴリズムが国内で用いられ、かつ国外に輸出されることに対する個々の国の懸念である。例えば、英国は、アルゴリズムが銀行機能のために用いられている場合、プリミティブの一部である暗号化アルゴリズムが国外に輸出されることを許可し得る。しかし、暗号化アルゴリズムが健康情報などの一般的なデータに用いられる場合、英国の公序良俗は、その暗号化アルゴリズムは英国外において使用することができないと指示し得る。従って、国の法律がこのようなタイプのデータが暗号化され輸出されることを禁じている場合、そのアプリケーション用の暗号化プリミティブをディセーブルすることは好都合である。個々のアプリケーション用のプリミティブをこのように選択的にイネーブルすることは、カードシステムを制御する強力な機構となる。
【0010】
異なるプリミティブに対して選択的なアクセスを提供することには、別の理由がある。具体的には、カードシステム動作および/またはシステム上で動作するアプリケーションのプロバイダの必要性に応じて、プリミティブを選択的にイネーブルするために、異なるプリミティブ用のアクセスチェックを有することが望ましい。例えば、選択されたプリミティブが呼び出されると、I/Oポートの「アクセスフラグ」がチェックされ得る。ほとんどのICカードは現在、カード上のI/Oポートと端末とを物理的に接続することにより、端末と情報を交換することができる。カード上に配置されたコンタクトは、端末コンタクトに物理的に押圧され、それにより、電気信号が、カードと端末との間を通過することが可能となる。近年の開発により、カードと端末との間の物理的コンタクトを確立することなく、ICカードが端末と通信することが可能となっている。この情報交換は、無線周波数(RF)波、セルラー信号または他の伝送される信号により確立される。非接触型カードの場合、アンテナがカード上に存在し、それにより、伝送信号が送信または受信される。ICカードは、物理的コンタクトと無線通信用のアンテナとの両方を含み得る。非接触または無線方式で情報を伝送することは、処理時間全体を短縮することによりカード所有者にとって有利であるが、伝送信号は、物理的接続がなされた場合よりも、第三者による妨害を受けやすい。その結果、カードシステムのオペレータは、金銭関係取引などの特定のアプリケーションプログラムを物理的接続に限定することを欲し得る。
【0011】
従って、本発明の一実施形態の目的は、プリミティブへのアクセスを制御し、かつ、カードシステムのオペレータが特定のアプリケーション用のプリミティブへのアクセスをイネーブルまたはディセーブルまたは阻止することを可能にする能力を有するマルチアプリケーションカードを提供することである。
【発明の概要】
【課題を解決するための手段】
【0012】
(発明の要旨)
本出願人らはこのようにして、コンピュータコードと、マルチプルアプリケーションICカードに埋め込まれたプリミティブとに対するアクセスを制御するシステムおよび方法を発明した。上記プリミティブは特定の例であり、本発明はこれに限られない。本出願人らは、この目的を達成する1つの方法は、「アクセスフラグ」を使用することによると決定した。アクセスフラグは、以下により詳細に説明するように、ビットで設定され、プリミティブ(例えば、暗号化プリミティブ)が特定のアプリケーションにアクセス可能であるか(例えば、ビットが1に設定されている場合)、可能でないか(ビット=0の場合)を表示する。暗号化関連のプリミティブの場合、「アクセスフラグ」は、「暗号フラグ」と呼ばれ得る。
【0013】
I/Oに関連するアクセスフラグはまた、金融関係のアプリケーション用の非接触型プリミティブへのアクセスを阻止するためにも用いられ得る。I/Oアクセスフラグは、カードシステムオペレータにより制御および設定され、アプリケーションがカードにロードされるときに、アプリケーションローダによりカードにロードされる。このアクセスフラグは、カードシステムのオペレータが、金融関係の、または他の選択されたアプリケーションが非接触型プリミティブを用いることを阻止することを可能にし、そのため、端末通信用に物理的接続が必要となる。
【0014】
カードに格納され、オペレーティングシステムによりチェックされるアクセスフラグは、カードシステムのオペレータが、選択的プリミティブまたは他のサブルーチンを実行する前にアクセスフラグの状態をチェックすることにより、これらの選択的プリミティブまたは他のサブルーチンへのアクセスを制御することを可能にする。コードレット(MELなどの、アプリケーション言語で書かれたサブルーチン)、オペレーティングシステム自体内のサブルーチン、または他のタイプのサブルーチンなどの他のサブーチンもまた、関連するアクセスフラグを有し得る。アクセスフラグのチェックは好適には、アプリケーションまたは他の命令により特定のサブルーチン呼び出し命令が実行されたときに、オペレーティングシステムにより行われる。アプリケーションは、このアクセスフラグチェックの結果に応じて、該当するプリミティブまたはサブルーチンを実行するか、または、アクセスが拒否された場合には別の一連の命令を実行する。
【0015】
アクセスフラグは、アプリケーションがカードにロードされるときに、EEPROM内に格納されているアプリケーション制御データと共に格納される。好適には、フラグのデフォルト設定は、ローディング前には「イネーブルされていない」に設定されているが、所望であれば、カードシステムのオペレータが、フラグを論理「1」に設定して「イネーブルされた」を表示し得る。例えば、アプリケーションが、アルゴリズムが開発されたA国の国外にあるB国において強力な暗号化サブルーチンを呼び出すようにプログラムされている場合、アプリケーションプロバイダは、カードシステムオペレータによって、アプリケーションプロバイダがA国政府(輸出ライセンス)およびB国(使用ライセンス)から暗号化プリミティブを使用する許可を受けたことを示す、カード使用予定国からの証明書を提示するよう要求され得る。証明書が提示されると、カードオペレータは、アクセスフラグビットをイネーブルする。この場合、「アクセスフラグ」は、暗号化に関連するため、「暗号フラグ」と呼ばれ得る。
(項目1)
マイクロプロセッサ、読出し専用メモリ、ランダムアクセスメモリ、電気的に消去可能なプログラマブル読出し専用メモリ、および前記読出し専用メモリ中に格納されたプログラミング命令の1つ以上のセットへのアクセスを制御するためのシステムを含む集積回路カードを含むマルチプルアプリケーションカードシステムであって、
前記カードにロードされる少なくとも1つのアプリケーションに対して少なくとも1つのアクセスフラグを前記ICカードに格納する手段であって、前記少なくとも1つのアクセスフラグは、前記少なくとも1つのアプリケーションによる前記プログラミング命令の少なくとも1つのセットへのアクセスが許可されるか否かを示す値を有する、手段と、
前記値に応じて、前記プログラミング命令の1つ以上のセットへのアクセスを可能にする手段と
を備える、システム。
(項目2)
前記格納する手段は、前記電気的に消去可能なプログラマブル読出し専用メモリ内に存在する、項目1に記載のシステム。
(項目3)
前記プログラミング命令の少なくとも1つのセットは、暗号プリミティブである、項目1または2に記載のシステム。
(項目4)
前記暗号プリミティブへのアクセスは、前記アクセスフラグの値が0に設定されているときには拒否され、前記アクセスフラグの値が1に設定されているときには許可される、項目3に記載のシステム。
(項目5)
マイクロプロセッサと、
前記マイクロプロセッサに結合された少なくとも1つのメモリであって、少なくとも1つのアプリケーションプログラムと、プログラミング命令の1つ以上のセットと、前記プログラム命令の1つ以上のセットに関連する少なくとも1つのアクセスフラグとを格納するメモリと、
前記集積回路カードに格納され、前記マイクロプロセッサにより実行されるマルチプルアプリケーションオペレーティングシステムであって、前記関連するアクセスフラグの値に応じて前記プログラミング命令の1つ以上のセットへのアクセスをイネーブルするマルチプルアプリケーションオペレーティングシステムと
を備える、集積回路カード。
(項目6)
前記少なくとも1つのアクセスフラグは、読出し専用メモリ内に格納される、項目5に記載の集積回路カード。
(項目7)
前記プログラミング命令の1つ以上のセットは、前記読出し専用メモリ内に格納される、項目5または6に記載の集積回路カード。
(項目8)
前記少なくとも1つのアプリケーションは、電気的に消去可能なプログラマブル読出し専用メモリ内に格納される、項目5〜7のいずれかに記載の集積回路カード。
(項目9)
前記アクセスフラグは、電気的に消去可能なプログラマブル読出し専用メモリ内に格納される、項目5〜8のいずれかに記載の集積回路カード。
(項目10)
前記プログラミング命令の少なくとも1つのセットは、暗号プリミティブである、項目5〜9のいずれかに記載の集積回路カード。
(項目11)
前記暗号プリミティブへのアクセスは、前記アクセスフラグの値が0に設定されているときには拒否され、前記アクセスフラグの値が1に設定されているときには許可される、項目5〜10のいずれかに記載の集積回路カード。
(項目12)
マイクロプロセッサ、読出し専用メモリ、ランダムアクセスメモリ、および電気的に消去可能なプログラマブル読出し専用メモリを含む集積回路カードを含むマルチプルアプリケーションカードシステムにおいて、前記読出し専用メモリ内に格納されているプログラミング命令の1つ以上のセットへのアクセスを制御する方法であって、
前記カードにロードされる少なくとも1つのアプリケーションに対して少なくとも1つのアクセスフラグを前記ICカードに格納することであって、前記少なくとも1つのアクセスフラグは、前記少なくとも1つのアプリケーションによる前記プログラミング命令の少なくとも1つのセットへのアクセスが許可されるか否かを示す値を有する、ことと、
前記値に応じて、前記プログラミング命令の1つ以上のセットへのアクセスを可能にすることと
を含む、方法。
(項目13)
前記アプリケーションは、前記電気的に消去可能なプログラマブル読出し専用メモリ内に存在する、項目12に記載の方法。
(項目14)
前記プログラミング命令の少なくとも1つのセットは、暗号プリミティブである、項目12または13に記載の方法。
(項目15)
前記暗号プリミティブへのアクセスは、前記アクセスフラグの値が0に設定されているときには拒否され、前記アクセスフラグの値が1に設定されているときには許可される、項目12〜14のいずれかに記載の方法。
(項目16)
マイクロプロセッサ、読出し専用メモリ、ランダムアクセスメモリ、および電気的に消去可能なプログラマブル読出し専用メモリを含む集積回路カードを含むマルチプルアプリケーションカードシステムにおける、前記読出し専用メモリ中に格納されたプログラミング命令の1つ以上のセットへのアクセスを制御するためのシステムであって、
前記カードにロードされる少なくとも1つのアプリケーションに対して少なくとも1つのアクセスフラグを前記ICカードに格納する手段であって、前記少なくとも1つのアクセスフラグは、前記少なくとも1つのアプリケーションによる前記プログラミング命令の少なくとも1つのセットへのアクセスが許可されるか否かを示す値を有する、手段と、
前記値に応じて、前記プログラミング命令の1つ以上のセットへのアクセスを可能にする手段と
を備える、システム。
【図面の簡単な説明】
【0016】
【図1】図1は、セキュアなシステムにおけるマルチプルアプリケーションICカードの寿命期間中の3つの状態を示すブロック図である。
【図2】図2は、本発明の実施形態と関連して用いられ得る集積回路カードを示す。
【図3】図3は、図2に示す集積回路の機能ブロック図である。
【図4】図4は、本発明の実施形態によるアプリケーション制御データ構造のビットマップである。
【図5】図5は、コンピュータコードへのアクセスを制御する方法のフローチャートである。
【発明を実施するための形態】
【0017】
(好適な実施の形態の詳細な説明)
本発明のさらなる目的、特徴、および利点は、本発明の例示的実施形態を示す添付の図面と共に考慮すると、以下の詳細な説明から明らかになる。
【0018】
図中、特に記載しない限り、説明されている実施形態の同様の特徴、要件、部品、または部分を示すために、同一の参照符号および記号が用いられる。さらに、本発明の実施形態をこれらの図面を参照しながら詳細に説明するが、この説明は、例示的実施形態と関連して行われる。添付の請求の範囲に規定されている本発明の真の範囲および精神を逸脱することなく、記載された実施形態に対する変更および改変がなされ得ることが意図される。
【0019】
図1は、セキュアなシステムにおいて、動作可能マルチアプリケーションICカードを堤供することに関連する3つのステップを示す。第1のステップは、カード製造ステップ101である。第2のステップは、カード個別化データ(エンティティ認証データとも呼ばれる)がカードにロードされる、個別化ステップ103である。第3のステップは、カードがアプリケーションを受け取る資格があるかどうかをチェックする、アプリケーションローディングステップ105である。すなわち、ステップ105において、個別化データが、ロードされるべきアプリケーションに関連するアプリケーション許可データに照らしてチェックされる。これらの3つのステップの各々は、参考のためAnnex Aとして援用する、同時係属中の出願第09/076,551号に詳細に記載されている。
【0020】
図2は、本出願により特許請求されている発明の実施形態で用いられ得る集積回路技術を組み込んだカード106を示す。カード106は、従来のクレジットカードと同様に見えるが、集積回路(IC)108をも含む。集積回路(IC)108は、マイクロプロセッサ、およびIC108とカード106の外部のデバイスとの間の通信のための電気的コンタクト110を含む。カード106は、例えば、クレジットカード、デビットカード、および/または電子キャッシュカード、すなわちカード所有者が買い物をしたときに転送され得る金額を含むカード、例えばMONDEXTMキャッシュカードとして用いられ得る。
【0021】
図3は、IC部108の機能ブロック図であり、少なくともプロセシングユニット112およびメモリユニット114を含む。好適には、IC108はさらに、制御論理116、タイマ118、および入力/出力ポート120を含む。IC部108はさらに、コプロセッサ122を含み得る。制御論理116は、プロセシングユニット112と共に、メモリユニット114(ROM124,EEPROM126、RAM128および入力/出力ポート120を有する)間の通信を処理するために必要な制御を堤供する。タイマ118は、プロセシングユニット112および制御論理116にタイミング基準信号を堤供する。コプロセッサ122は、暗号アルゴリズムにより必要とされるような複雑な演算をリアルタイムで行う能力を堤供する。
【0022】
図4は、ビットマップと呼ばれることもあるアプリケーション制御データ構造401の一例である。ビットマップは好適には、EEPROM内に存在し、ICカードにロードされた特定のアプリケーション用の複数のアクセスフラグを含む。ビットマップは、データがROMに書き込まれる前にアクセスフラグが決定された場合はROM内に存在し得るが、好適にはアプリケーションと共にEEPROM内に存在する。データ401は、カードのメモリ内に格納された8ビット(1バイト)のデータを示す。ビットマップの長さは、特定のアプリケーションおよびアプリケーションが動作するシステムに応じて、使用可能なビット長により可変である。本実施例中、ビット403が、上記した暗号化プリミティブに関連する暗号フラグに対応する。この暗号フラグビットは、暗号化プリミティブが特定のアプリケーション用にイネーブルされる場合、「1」に設定され、暗号化プリミティブがイネーブルされない場合、「0」に設定される。好適な実施形態におけるデフォルト状態は、イネーブルされないように常時「0」である。このことは、選択されたプリミティブを実行する許可が、アプリケーションがロードされたときにカードシステムのオペレータにより明示的に設定されない限り与えられないことを確実にする。しかし、他のシステムにおいては、デフォルトは、カードシステムのオペレータがカードを明示的にディセーブルしない限り、「1」であるか、またはイネーブルされ得る。
【0023】
これもまた上記に記載した非接触型I/Oアクセスフラグビットが、ビット405として示されている。このビットは、非接触型動作(例えばプリミティブ)がアプリケーションにより引き出されたときにチェックされる。この非接触型動作は、例えば、無線信号を送信および受信するために必要なすべての命令であり得るし、またはこれらの命令の必要な部分であり得る。非接触型ビット405が「1」に設定された場合、動作が実行され得、非接触型ビット405が「0」に設定された場合、非接触型動作は実行され得ない。
【0024】
他の異なるI/Oポートもまた、アクセスフラグを有し得る。この非接触型アクセスフラグはさらに、より高度な制御のための追加のフラグ、RF信号アクセスフラグおよびセルラーアクセス信号を有し得る。例えば、図4に示す別のアクセスフラグビットは、アプリケーションプログラムインターフェース(Application Program Interface、API)ビット407である。このビットは、アプリケーションがカードに格納されている特定のAPIにより動作され得るかどうかを制御し得る。例えば、カードは、MEL APIおよび第2のオペレーティングシステムAPIを含み得る。このAPIビットは、アプリケーションをMEL APIを用いることに制限し得るし、または、第2のオペレータシステムAPIを用いるようにカードをイネーブルし得る。特定のアプリケーションにより第2のオペレーティングシステムAPIを用いることは、その第2のオペレーティングシステムの所有者からの発行されたライセンスを必要とし得える。ライセンスが得られない限り、APIフラグは、カードが第2のAPIを用いることを妨げることができる。他のアクセスフラグビット409は、システムオペレータにより規定され得る。
【0025】
図4は、複数のアクセスフラグを示しているが、少なくとも1つのアクセスフラグの存在が有益であり、アクセスフラグの総数は、システムまたはユーザに合わせて加減され得る。加えて、暗号フラグは、本発明の実施の形態であるICカードにとって重要な特徴であるが、暗号フラグがアクセスフラグのうちの1つである必要はない。各アクセスフラグが何を制御するかについての決定は、システムオペレータにより指示される。図4は、各アクセスフラグ用の1ビットの好適なビット表示を示すが、データ構成は、例えば、アクセスリストを指標レジスタとして用いて正しいフラグデータを示すなど、異なるものでもあり得る。
【0026】
各アプリケーションは、図4に記載のように、独自の関連ビットマップリストデータを有する。アクセスフラグを含むビットマップデータは、アプリケーションロードプロセス中に、他のアプリケーションロード情報と共にカードにロードされる。ビットマップの長さを特定するフィールドは、アクセスリストに先行し得、それにより、可変長アクセスリストを簡素化する。ビットマップ上に値が一旦設定されると、フラグデータのあらゆる不法な干渉を最小にするために、これらの値は変更されない。
【0027】
アプリケーションが関連アクセスフラグを用いてプリミティブを呼び出すことを試みたとき、オペレーティングシステムが、アクセスフラグビットが設定されているかどうかをいかにしてチェックするかを以下に述べる。本実施例において、関連フラグが「0」に設定されてプリミティブが呼び出された場合、実行は異常に終了する(異常終了)。本実施例は特に、暗号フラグの使用を説明する。
【0028】
ここで必要となるのが、MULTOSTMをアプリケーションに用いることにより提供される暗号プリミティブへのアクセスを許可または制限することを可能にする、ビットマップ形式のメカニズムである。この「制限されたアクセス」MULTOSTM暗号プリミティブへのアクセスは、これらの暗号プリミティブにアクセスすることに対する許可を適切な政府当局から得た旨の文書をを堤供する開発者のみに与えられる。
【0029】
マルチプルアプリケーションカードシステムにおける、カードとカード発行機関(典型的にはロードされるべきアプリケーションを求めるエンティティである)との間の相互作用は、アプリケーションロード証明書(Application Load Certificate、ALC;参考のため本明細書に援用するAnnex Aとして記載されている)による。ALCは、図1を参照して説明した個別化プロセス期間中に、カードに供給される。このアプリケーションロード証明書は、ビットマップ(またはフラグ)とアプリケーションとを統合性が保護された状態で関連づける特定のアプリケーションのためのアクセスフラグデータを含み得る。
【0030】
ALCにおいて、好適には「アクセスリスト」と標記されるデータ要素が、特定のプリミティブへのアクセスが使用可能かどうかを表示するために用いられる。より具体的には、ICカードに格納されている「アクセスリスト」を表示するためにはシングルビットが好適に用いられるが、他のデータ構成も使用され得る。従って、アプリケーションが、制限されている(使用不可である)暗号プリミティブにアクセスすることを試みた場合(例えば、実行アプリケーションに対する、上記プリミティブ用の「アクセスリスト」値が0に等しい)、プロセスは異常終了する。プロセスが異常終了した場合、その時点で動作中のアプリケーションプログラムの実行は停止可能であり、ディスプレイ端末がICカードに接続されている場合は、エラーメッセージがディスプレイ端末に送信され得る。そうでない場合は、アクセスは許可され、プリミティブのプログラミング命令のセットは実行され、アプリケーションは命令の実行により続行する。
【0031】
図5は、ICカード内のコンピュータコードへのアクセスを制御する方法を実行するためのステップのフローチャートを示す。ステップ501において、アプリケーションがICカードに格納される。アプリケーションは、製造時に、または、好適には図1に示すように個別化プロセスの際に、カードに格納され得る。ICカードは、カード上のマイクロプロセッサがカードに格納されている複数のアプリケーションを実行することを可能にする、マルチプルアプリケーションオペレーティングシステムを含む。
【0032】
ステップ503において、ICカードに格納されている1以上のアプリケーションのための、プリミティブ、またはいくつかの他のプログラミング命令のセットに関連するアクセスフラグが格納される。アクセスフラグは、アプリケーションがロードされる前に、アプリケーションがロードされると同時に、またはアプリケーションがロードされた後に、格納することができる。セキュリティを最大にするために、アクセスフラグは、製造の際に読出し専用メモリー内に格納され、変更不可能となる。あるいは、アクセスフラグは、プログラマブルメモリ内に格納され得る。プログラマブルメモリは、ICカードにロードされた個々のアプリケーションに対してカードを個別化するため、およびアプリケーションがカードから削除されたときおよび削除された場合にアクセスフラグを除去する能力を有するために、書き換えられ得る。例えば、暗号アクセスフラグに関して、アプリケーションプロバイダは、アプリケーションがカードにロードされた後、プリミティブとして格納されている、ある種の暗号を輸出および輸入するための許可を受け取り得る。この場合、アクセスフラグを格納しているメモリが書換え可能である場合には、アクセスフラグは変更され得る。
【0033】
ステップ505において、カードに格納されているアプリケーションプログラム(例えば、クレジット/デビットアプリケーション)のうちの1つが実行される。実行されたアプリケーション内のプログラム命令が、ステップ507においてプリミティブに対するアクセスが行われることを必要とする場合、ICカード上に存在するオペレーティングシステムは、まず、特定のプリミティブまたは機能に関連するアクセスフラグをチェックする。各プリミティブは、各アプリケーションまたはアプリケーション群用に異なるアクセスフラグを有し得、それにより、1つのアプリケーションにはアクセスが許可され第2のアプリケーションにはアクセスが許可されないということになる。アクセスフラグは、マルチプルアプリケーションカードシステムの管理者に、選択されたプリミティブへのアクセスに対する重要な制御を与える。
【0034】
ステップ509において、ステップ509における適切なアクセスフラグの状態がチェックされる。アクセスフラグが、アクセスが拒否されたという表示をした(例えば、アクセスフラグの値がゼロである)場合、実行中のアプリケーションは、ステップ511において異常に終了する(異常終了)。カードユーザに対して、異常終了の理由を示すエラーメッセージが表示され得る。あるいは、アプリケーションは、プログラミング命令によって、アクセスフラグチェックが正であるか負であるかをチェックするためにプログラムされ得、アクセスフラグの値に応答してアプリケーションの選択された部分を実行し得る。
【0035】
アクセスフラグが正の値(例えば「1」)に設定されている場合、ステップ513において、アクセスされたプリミティブが実行される。プリミティブのプログラム命令が実行された後、ステップ515までプロセスが続行する。次いでステップ515において、ICカード上のマイクロプロセッサにより実行中のアプリケーションの実行を続行する。
【0036】
上記は、単に本発明の原理を示しているにすぎない。従って、当業者であれば、本明細書中に明示的に示されておらず記載もされていないが、本発明の原理を具現化し、従って本発明の精神および範囲に含まれる多くのシステムおよび方法を工夫することができることが理解される。
【0037】
本開示の範囲は、特許請求の範囲に記載されているか否かにかかわらず、および本発明が取り組む問題点のいずれかまたはすべてを軽減するか否かにかかわらず、本明細書中に明示的もしくは暗示的に開示されているあらゆる新規な特徴もしくは特徴の組合せ、またはそれらを普遍化したものすべてを含む。これにより出願人は、本出願または本出願から派生する、全てのこのようなさらなる出願の審査過程において、このような特徴に対して新しい請求項が作成され得ることを通知する。特に、添付の請求の範囲に関して、従属請求項の特徴は、独立請求項の特徴と組み合わされ得、各独立請求項の特徴は、それらの請求項中に列挙された特定の組合せだけでなく、あらゆる適切な様式で組み合わされ得る。

【特許請求の範囲】
【請求項1】
本願明細書に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2009−259274(P2009−259274A)
【公開日】平成21年11月5日(2009.11.5)
【国際特許分類】
【出願番号】特願2009−175590(P2009−175590)
【出願日】平成21年7月28日(2009.7.28)
【分割の表示】特願2000−530889(P2000−530889)の分割
【原出願日】平成11年2月2日(1999.2.2)
【出願人】(500356898)モンデックス インターナショナル リミテッド (3)
【Fターム(参考)】