JP3880384B2 - Icカード - Google Patents

Icカード Download PDF

Info

Publication number
JP3880384B2
JP3880384B2 JP2001373046A JP2001373046A JP3880384B2 JP 3880384 B2 JP3880384 B2 JP 3880384B2 JP 2001373046 A JP2001373046 A JP 2001373046A JP 2001373046 A JP2001373046 A JP 2001373046A JP 3880384 B2 JP3880384 B2 JP 3880384B2
Authority
JP
Japan
Prior art keywords
application
privileged
card
card manager
manager
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.)
Expired - Fee Related
Application number
JP2001373046A
Other languages
English (en)
Other versions
JP2003173427A (ja
Inventor
雅基 田靡
和生 佐久嶋
和紀 井上
隆文 菊地
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2001373046A priority Critical patent/JP3880384B2/ja
Priority to EP02027322A priority patent/EP1318488A3/en
Priority to US10/313,880 priority patent/US6834799B2/en
Priority to CN02155721A priority patent/CN1423232A/zh
Publication of JP2003173427A publication Critical patent/JP2003173427A/ja
Application granted granted Critical
Publication of JP3880384B2 publication Critical patent/JP3880384B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/105Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems involving programming of a portable memory device, e.g. IC cards, "electronic purses"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • G06Q20/3576Multiple memory zones on card

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Stored Programmes (AREA)
  • Credit Cards Or The Like (AREA)
  • Storage Device Security (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、特権を持ったアプリケーションがダウンロードされるICカードに関する。
【0002】
【従来の技術】
現在、セキュリティデバイスとしてICカードが着目されている。ユーザの利便性、ICカードによるサービスを提供したい事業者の参入障壁を下げることを目的に、カード発行後にアプリケーションをダウンロードすることが可能なカードであるマルチアプリケーション対応カードの開発が行なわれている。
【0003】
ここで、ICカードのハードウェア構成について概観する。図18は、ICカードのハードウェアに関する機能ブロック図である。ICカード1800は、CPU1801、ROM1802、RAM1803、EEPROM1804、I/OIF1805を備えている。CPU1801は、演算を行なう。ROM1802は、書き換えができない読み出し専用のメモリである。ROM1802に格納される内容は、ICカード1800の製造時に決定され、その後変更することはできない。RAM1803は読み書きが可能なメモリである。EEPROM1804は、読み書き可能なメモリである。RAM1803は、電源が切断されると内容が消えてしまうのに対し、EEPROM1804は、電源が切断されても内容が保持されるようになっている。I/OIF1805は、ICカードの外部とのデータの交換を担当する。CPU1801で実行されるプログラムは、通常「アプリケーション」と呼ばれる。アプリケーションの実行のためのコードは、ROM1802やEEPROM1804に格納される。また、図18に示す以外に、ICカード1800が暗号操作のための暗号用コプロセッサを備える場合もある。
【0004】
図19は、CPU1801で実行されるアプリケーションの関係を説明する図であり、ICカード1900のROM1901の中に、カードマネージャ1902というアプリケーションがあり、また、特権API1906、一般API1907がある。カードマネージャ1902は、ICカード1900の中で動作するアプリケーションの動作を制御するためのアプリケーションである。アプリケーションの動作の制御には、アプリケーションの起動や、終了、削除、ダウンロードなどがある。カードマネージャ1902はこれらの制御をICカードのVM(バーチャルマシン)やOSと協働して行なう。特権API1906は、カードマネージャ1902が使用する特権操作を実行するためのアプリケーションインターフェースである。例えば、アプリケーションをダウンロード、起動、終了させるなどの制御するための操作が特権操作の例である。一般API1907は、特権の必要のない操作を実行するためのアプリケーションインターフェースである。AP・1(1903)、AP・2(1904)、AP・3(1905)は、ROM1802やEEPROM1804に格納され、カードマネージャの支配下で実行するアプリケーションである。これらのアプリケーションは、特権操作を実行することができないので、ROM1802により提供されるアプリケーションインターフェースのうち、一般API1907のみが使用できる。特権操作をカードマネージャ1902以外のアプリケーションが行なうことができないようにするために、特権API1906は、カードマネージャ1902にのみ開放され、あるいは、他のアプリケーションにも開放されている場合であっても、次に述べる確認が行なわれるなどして、他のアプリケーションが特権操作を行なえないようにしている。すなわち、特権API1906の内部において特権API1906を利用しようとするアプリケーションの識別子やプログラムカウンタの指すメモリアドレスをチェックするなどしてカードマネージャ1902であることを確認する。
【0005】
【発明が解決しようとする課題】
上述のマルチアプリケーション対応カードの開発においては、ダウンロードされたアプリケーションを管理するカードマネージャが種々検討され、様々な仕様を持つカードマネージャが提案されている。この傾向は、ICカードの需要の高まりとともに、ますます高まり、より多くのカードマネージャの仕様が提案されると予想される。
【0006】
しかしながら、従来のICカードには、カードマネージャは一つしか搭載することができず、しかも、カードマネージャのコードは内容の書き換えが不可能なROMに格納されている。このため仕様ごとのカードマネージャを開発し、それをROMに格納してICカードを製品化せざるを得ないが、金額、工数の観点から望ましくない。また、一般ユーザにとっても、何枚ものICカードを持つことになり、不便を感じることになる。
【0007】
【課題を解決するための手段】
上記の課題を解決するために、本発明は、特権を有するアプリケーションをダウンロードすることができるカードマネージャを有するICカードを提供する。特権を有するアプリケーションをダウンロードして動作させ、その特権をもったアプリケーションの支配の下で別のアプリケーションのダウンロード、起動、終了などを行なわせることにより、特権を有するアプリケーションがカードマネージャとしての役割をすることになる。上述のように様々な仕様のカードマネージャが提案されても、そのようなカードマネージャを、特権を有するアプリケーションとしてダウンロードすることにより、ユーザは複数枚のICカードを持つ必要がなくなる。また、ROMに格納されているカードマネージャのバージョンアップに相当することも行なえることになる。
【0008】
このように特権を有するアプリケーションをダウンロードできるようにすると、一般のアプリケーションとの区別を行なう必要がある。そこで、本発明においては、ROMに格納されたカードマネージャが、ダウンロードされたアプリケーションが特権を有するか有しないかを判断する特権AP制御手段を有するようにした。また、一般のアプリケーションが特権APIをアクセスして特権操作を行なえないようにした。なお、本明細書で言う「ICカード」は、特定の大きさ、形状に限定されるものでなく集積回路を利用したカード状、チップ状、ブロック状、シート状の構造体を言う。また、本発明の趣旨を損なわない限り、ICカードには、CPUが必ずしも含まれている必要はなく、含まれていても、含まれていなくともよい。
【0009】
【発明の実施形態】
以下、本発明の実施形態について図を用いて説明する。なお、本発明はこれら実施形態に何ら限定されるものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施しうる。
【0010】
(実施形態1)図1は、本発明の実施形態1に関するICカードの動作状態における機能ブロック図を例示する。本実施形態におけるICカードは、第一カードマネージャを有する。その第一カードマネージャは特権アプリケーションをダウンロードすることができる。
【0011】
(実施形態1:構成)「第一カードマネージャ」は、ICカード内のアプリケーションの動作を制御する。アプリケーションの動作の制御には、アプリケーションの起動や、実行中の制御、終了、削除、ダウンロードなどがある。これらの点は、従来の技術と同様である。
【0012】
「アプリケーションの動作の制御」は、第一カードマネージャが、特権API、や一般APIを利用して行なう。
【0013】
「API」とは、アプリケーションインターフェースの略であり、アプリケーションから、そのアプリケーションの利用するモジュールを利用可能にするための入り口である。
【0014】
「特権API」とは、特定の権利を認められたもののみが利用可能なAPIをいう。この特定の権利を認められたものの代表例が、本実施形態の第一カードマネージャであり、特権アプリケーションである。特権APIは、ROM101などに格納されたプログラムによって実現されるので、特権APIを実現するステップを「特権APIステップ」という。
【0015】
「一般API」とは、どのようなアプリケーションでも利用可能なAPIをいう。この一般APIは、ICカード100内で動作する全てのアプリケーションから使用できるようになっている。一般APIにより利用できるのは、一般ライブラリの機能である。ここに「一般ライブラリ」の機能としては、例えば、文字列の操作(文字列の連接や文字列中における特定の文字のサーチなど)、データのコピー、構造を持ったデータのシリアライズ及びその逆操作、多倍長の整数演算などのための算術演算、などが挙げられる。
【0016】
(実施形態1:特権アプリケーションをダウンロードする第一カードマネージャを有するICカードの詳細)以下、本実施形態におけるICカードであって、特権API、一般APIを利用して特権を有する特権アプリケーションをダウンロードする第一カードマネージャを有するICカードについて図を用いて、詳細な説明を行なう。
【0017】
図1は、特権アプリケーションをダウンロード可能な(ダウンロードした)ICカードである。このダウンロードは第一カードマネージャによって行われる。第一カードマネージャは、プログラムによって実現される。したがって、そのプログラムは、特権アプリケーションをダウンロードするステップを計算機の一種であるICカードに実行させるためのカードマネージャプログラムと言える。
【0018】
「特権アプリケーション」103は、特権を有するアプリケーションをいう。ROM101に格納されず、第一カードマネージャ102によりダウンロードされてICカード100の外部から導入されることとなる。
【0019】
「ダウンロード」とは、ICカードに対して、外部からアプリケーションを入力し、利用可能な状態に蓄積しておくことである。
【0020】
ダウンロードの結果、アプリケーションは、EEPROMなど書き込みが可能なメモリに格納される。従来のICカードにおいては、特権API106は、ICカード100の製造時に格納されたアプリケーション、例えば、ROM101内に格納された第一カードマネージャ102からしか使用することができないようになっているが、本発明においては、ICカード100の製造後にダウンロードされた特権アプリケーション103も、特権API106を使用できるようにする。
【0021】
そのために、例えば、従来のICカードでは、特権API106を利用するアプリケーションのプログラムカウンタの指すアドレスやアプリケーション識別子など(以下、「識別子など」と略する)を調べて第一カードマネージャ102のみが特権API106を利用できるようにしていた点を改良し、以下のようにする。すなわち、第一カードマネージャ102が特権アプリケーション103をダウンロードし、特権アプリケーション103を起動すると、例えば、特権アプリケーション103が特権を使用することができるアプリケーションであるとして、その識別子などがRAM1803やEEPROM1804などに登録されるようにする。特権API106においては、APIを利用するアプリケーションの識別子などが特権を利用できるアプリケーションのものであることを確認して特権操作をアプリケーションに利用させるようにする。
【0022】
(実施形態1:後発的にICカードの設定の変更が可能となる例)従って、本発明においては、第一カードマネージャ102によりダウンロードされた特権アプリケーション201にも特権が利用可能となる。これにより、例えば、ICカードの設定(例えば、省電力モードへの移行など)を変更することも可能となる。したがって、ICカードの発行後に、特権アプリケーションをダウンロードすることにより、ICカードの設定を変更することができる。
【0023】
(実施形態1:後発アプリケーションでも機密情報へアクセス可能となる例)また、ICカード101に格納された情報のうち、特に機密性の高いもの、例えば、銀行口座番号、暗証番号、残高、ICカードの有効期限などへのアクセスが特権API106により制御されている場合がある。本実施形態におけるICカードにおいては、このような情報へアクセスして処理を行なうためのアプリケーションを、ICカードの発行後にICカードにダウンロードすることができる。
【0024】
(実施形態1:ICカード発行後の新プロトコルへの対応が可能となる例)さらに、新しいプロトコルに基づいて決済処理がされるようになった場合でも、その新しいプロトコルに基づいて動作する特権アプリケーションを本実施形態におけるICカードにダウンロードすれば足り、新たにICカードを発行する必要が無い。
【0025】
(実施形態1:特権の説明)次に、前記「特権」は、カード特権管理手段の利用ができること、自身の削除が行われないこと、デフォルトアプリケーションとなれること、高レスポンスのための資源利用が可能であること、のうちいずれか一又は、二以上であるICカードについて説明する。
【0026】
ここに、特権アプリケーション103の有する「特権」とは、特権API106を利用することができることである。特権API106を利用することにより、例えば、カード特権管理手段の利用ができたり、自身の削除が行なわれないようにしたり、デフォルトアプリケーションとなれることができたり、高レスポンスのための資源利用が可能となるための機能が利用可能となる。
【0027】
「カード特権管理手段」とは、アプリケーションを管理する種々の手段をいう。詳細については後述する。
【0028】
「デフォルトアプリケーション」とは、ICカードの動作が開始した時に最初に起動されるアプリケーション(あるいは、最初に起動される一連のアプリケーション)である。
【0029】
「高レスポンスのための資源利用」とは、自動改札のゲートを開けるための処理を行なうように、リアルタイム性のある処理を行なうために、ICカード内の資源を優先して利用することを意味する。
【0030】
また、ここまでに挙げた機能が二以上同時に利用することもできるようになっていてもよい。
【0031】
(実施形態1:カード特権管理手段の説明)次に、「カード特権管理手段」は、アプリケーションのライフサイクル管理機能、ダウンロード・削除機能、ダウンロードされるアプリケーションの署名検証機能、アプリケーションのファイアウオール提供機能、メモリ/通信制御機能を機能させるための特権APIにより機能可能な機能のうちいずれか一又は、二以上を有するICカードについて説明する。
【0032】
「カード特権管理手段」とは、前述のように、アプリケーションを管理する種々の手段をいう。具体的には、アプリケーションのライフサイクル管理機能、ダウンロード・削除機能、ダウンロードされるアプリケーションの署名検証機能、アプリケーションのファイアウオール提供機能、メモリ/通信制御機能を機能などが該当する。
【0033】
「アプリケーションのライフサイクル」とは、アプリケーションがダウンロードされた状態にあるかどうか、アプリケーションが起動されるための選択が可能な状態にあるかどうか、あるいは、選択が不可能な状態にあるかどうかなどを表わす。
【0034】
「アプリケーションのライフサイクル管理機能」とは、アプリケーションの状態を管理するための機能であり、アプリケーションの選択が可能な状態から選択不可能な状態に遷移させ、また、逆方向の遷移を行なう。また、このような遷移に加え、本発明でのアプリケーションのライフサイクル管理機能においては、アプリケーションの起動から終了、削除までの状態の管理もすることができる。
【0035】
「ダウンロード・削除機能」とは、アプリケーションをダウンロードしてICカードに導入し、使用することができるようにする(例えばインストールする)機能、及び、ICカードに導入されているアプリケーションを消し去り、アプリケーションの使用ができないようにする(例えばアンインストールする)機能である。この機能を用いることにより、例えば、アプリケーションをダウンロードし、それをインストールして利用可能とし、そのアプリケーションが必要でなくなれば、アンインストールしてインストール前の状態にICカードを復帰させることができる。
【0036】
「ダウンロードされるアプリケーションの署名検証機能」とは、ダウンロード機能によってICカードに導入されるアプリケーションに付された署名が正しいかどうかを検証する機能をいう。この機能の具体例としては、例えば、アプリケーションが改ざんされていないかどうかを検証する機能である。署名検証機能により、ダウンロードされたアプリケーションが不正な動作をしないかどうかが検証されるため、ICカードにとって重要な機能であるので、カード特権管理手段の機能とされる。
【0037】
「アプリケーションのファイアウオール機能」とは、ICカード内のアプリケーション間で、それぞれ悪影響を及ぼし合わないように制御する機能である。
【0038】
メモリ/通信制御機能は、アプリケーションの使用するメモリを制御したり、I/O IF1805を制御したりする機能である。
【0039】
カード特権管理手段は、特権API906によって利用可能であり、ROM101などに格納されたプログラムによって実現される。そこで、カード特権管理手段を実現するステップを「カード特権管理ステップ」という。したがって、本実施形態の第一カードマネージャを実現するカードマネージャプログラムは、特権API906を利用することにより、カード特権管理ステップの利用ができることになる。
【0040】
(実施形態1:第二、第三のカードマネージャの導入が可能)また、ダウンロードされる特権アプリケーション103が、前述のように特権APIを利用することができることから、ダウンロードされる特権アプリケーションは、アプリケーションの起動や、実行中の制御、終了、削除、ダウンロードなどをすることが可能となる。従って、ダウンロードされるアプリケーションにカードマネージャとしての機能を持つようにすることもできる。
【0041】
即ち、あらかじめICカードのROMに書き込まれていたオリジナルなカードマネージャの他に、第二、第三のカードマネージャを導入することができるのである。従って、カードマネージャ自体のバージョンアップや、アップデートがICカード自体の交換なしに可能となる。
【0042】
(実施形態1:ダウンロードされた特権アプリケーションが他のアプリケーションに特権APIを提供:インターフェース)図2は、ダウンロードされた特権アプリケーション201が、他のアプリケーションAP・1(202)、AP・2(203)などに特権API106や一般API107により提供される機能を提供していることを例示する。
【0043】
従って、図1における特権アプリケーションがAP・1(202)、AP・2(203)になんら関係なく単独に動作してもよい点で図2のものと異なる。
【0044】
他方、図2においては、ダウンロードされた特権アプリケーション201は他のアプリケーションAP・1(202)、AP・2(203)に特権API106や一般API107により提供される機能を提供し(言い換えれば、ダウンロードされた特権アプリケーション201が、インターフェース部(図示せず)を有しているようにするということ、ないしは、ダウンロードされた孫アプリケーションが特権アプリケーションであるということもできる。)、あるいは、これらのアプリケーションのライフサイクルを変更するなどして支配を行なったりする。なお、AP・1(202)、AP・2(203)は、一般APIの機能を使用するときには、必ず特権アプリケーション201が提供する一般APIの機能を利用しなければいけないわけではなく、一般API107を直接利用することもできる。
【0045】
(実施形態1:孫アプリケーションが特権アプリケーション例えば、カードマネージャとなりうる)さらに、ダウンロードされた特権アプリケーション201が、特権アプリケーションをダウンロードし、そのダウンロードされた特権アプリケーションが、特権アプリケーション201の提供する特権APIにより、カードマネージャとして動作することも可能となる。
【0046】
すなわち、カードマネージャとして動作する特権アプリケーション201が、別のカードマネージャをダウンロードし、特権アプリケーション201の支配下で動作させることも可能となる。つまり、第一カードマネージャ102からみて、特権アプリケーション201が子のアプリケーション(以下、「子アプリケーション」と略す)であるとすると、子アプリケーションである特権アプリケーション201がダウンロードしたアプリケーション(つまり、第一カードマネージャ102にとっては孫にあたるアプリケーション(以下、「孫アプリケーション」と略す))がカードマネージャとして動作することも実現できる。
【0047】
(実施形態1:特権アプリケーションがダウンロードできることでアプリケーションのダウンロードの手順の違いが吸収できる)これにより、例えば、アプリケーションのダウンロードの手順の違いを吸収することができる。すなわち、ICカードの発行後に、異なる手順でダウンロードする必要があるアプリケーションが提供されたとしても、その手順に対応したカードマネージャをダウンロードして動作させることにより、そのアプリケーションがダウンロード可能となる。
【0048】
(実施形態1:特権APIの仕様の変更に特権アプリケーションのダウンロードで対応可能)また、AP・1などの求めに応じて特権アプリケーションが特権API106や一般API107から得た結果は、特権アプリケーション201が受け取り、AP・1(202)などへ返される。結果として、特権アプリケーション201が、ROM101に格納された一般API107としてのAPIを提供することができるようになる。これにより、新しい特権APIの仕様や一般APIの仕様が提案され、採用されても、その仕様に対応した特権アプリケーションをICカードにダウンロードすれば、その仕様に対応できる。従って、特権APIなどの仕様が変わるたびにICカードを発行する必要がなくなる。
【0049】
(実施形態1:第一カードマネージャが第二カードマネージャの配下のアプリケーションを制御する)次に、第一カードマネージャによってダウンロードされた子アプリケーションがさらに孫アプリケーションをダウンロードすることができる第二カードマネージャを有する特権アプリケーションである場合に、第一カードマネージャから孫アプリケーションのライフサイクルの変更、削除が可能であるICカードについて説明する。
【0050】
「第二カードマネージャを有する特権アプリケーション」とは、第一カードマネージャによってダウンロードされた特権アプリケーションであって、カードマネージャとして機能することが可能なアプリケーションである。すなわち、その特権アプリケーションは、他のアプリケーションをダウンロードし、そのアプリケーションを動作させるなどのアプリケーションのライフサイクルの変更や、そのアプリケーションを削除できる。
【0051】
「アプリケーションのライフサイクルの変更、削除」とは、アプリケーションのライフサイクルの変更又は/及びアプリケーションの削除を意味する。「アプリケーションのライフサイクル」とは、上述したように、アプリケーションがダウンロードされた状態にあるかどうか、アプリケーションが起動されるための選択が可能な状態にあるかどうか、あるいは、選択が不可能な状態にあるかどうかなどを表わす。
【0052】
なお、このような第一カードマネージャによってダウンロードされた特権アプリケーションであって、カードマネージャとして機能することが可能なアプリケーションを、「第二カードマネージャ」という。
【0053】
(実施形態1:複数のカードマネージャが存在する場合の問題点)図2は、第一カードマネージャ102によってダウンロードされた子アプリケーションが、第二カードマネージャ201である場合、第二カードマネージャの管理下で孫アプリケーション(AP・1(202)など)が動作している状態を例示している。このような場合において、第一カードマネージャ102と第二カードマネージャ(特権アプリケーション201)との優越性が問題となる。
【0054】
「優越性」とは、第一カードマネージャと第二カードマネージャとの管理権限の大小や管理内容の競合が考えられる場合の当該管理権限の是非であり、例えば、第一カードマネージャが、第二カードマネージャの管理下で動作するアプリケーションのライフサイクルの変更や削除をすることができるかどうかということを意味する。
【0055】
この優越性が問題となる例としては、次の場合が挙げられる。すなわち、第二カードマネージャが、動作可能な日時に期限がついたアプリケーションをダウンロードして、そのアプリケーションを動作させているとする。もし動作可能な日時の期限が過ぎてしまったにもかかわらず、第二カードマネージャがそのアプリケーションを停止しない場合に、第一カードマネージャがそのアプリケーションを停止できるかどうかが問題となる。同様に、期限が過ぎた場合に、第一カードマネージャが、記憶容量を確保するなどのために、そのアプリケーションを削除できるかどうかも問題となる。
【0056】
なお、期限が過ぎても第二カードマネージャがアプリケーションを停止しない場合の原因の一つとして、第二カードマネージャのバグがある。また、第一カードマネージャと第二カードマネージャの製作者が異なるが、第二カードマネージャと第二カードマネージャがダウンロードするアプリケーションの製作者が同じであることなどがある。この二番目の場合において、第二カードマネージャの製作者としては、ダウンロードしたアプリケーションをできるだけ長く動かそうとする意図を持ち、他方、第一カードマネージャの製作者としては、ICカードの資源を適正に配分しようとする意図を持っていることがある。このようなときは、二つの意図が矛盾していることになり、この矛盾を解消する必要がある。
【0057】
(実施形態1:上記問題点の解決手段)しかし、技術的には、孫アプリケーションは、ICカードの第一カードマネージャ102を機能させているVMやOSの下で動作し、間接的ではあるが、第一カードマネージャ102の支配下にあるといえる。このため、第一カードマネージャ102が孫アプリケーションのライフサイクルの変更、孫アプリケーションの削除などを行なうことは不可能ではない。そこで、優劣の問題についての一つの解として、第一カードマネージャ102が孫アプリケーションのライフサイクルの変更、孫アプリケーションの削除を行なうようにしてもよい。もちろん、反対に、これらを禁止する構成にしてもよい。また、第二カードマネージャは、第一カードマネージャ102がダウンロードしたアプリケーションのライフサイクルの変更、削除が可能であってもよい。
【0058】
(実施形態1:第一カードマネージャが第二カードマネージャの配下のアプリケーションを制御する詳細)第一カードマネージャ102が孫アプリケーションのライフサイクルの変更、孫アプリケーションの削除を行なうことの実現方法について、以下に詳細に説明する。これを実現する一つの方法は、以下の通りである。すなわち、特権アプリケーション201が孫アプリケーションをダウンロードすると、特権アプリケーション201は、第一カードマネージャ102に対して、孫アプリケーションをダウンロードしたという情報を出力し、孫アプリケーションがダウンロードされた領域のアドレス、サイズ、孫アプリケーションの名前など、孫アプリケーションを管理(例えば、ライフサイクルの変更や削除)するのに必要な情報を第一カードマネージャ102に通知する。
【0059】
また、特権アプリケーション201が孫アプリケーションを起動すると、起動した孫アプリケーションに関する情報を第一カードマネージャ102に対して通知し、例えば、起動した孫アプリケーションに割り当てられたメモリ領域やアプリケーションを動作させるためのアプリケーション識別子などを通知する。特権アプリケーション201が、孫アプリケーションの動作を終了した時には、孫アプリケーションが終了したことを第一カードマネージャ102に通知する。同様に、特権アプリケーション201が孫アプリケーションを削除した場合には、削除したという情報を第一カードマネージャ102に通知する。
【0060】
これにより、第一カードマネージャ102が特権アプリケーション201によるアプリケーションの管理の状況を知ることができ、特権アプリケーション201が孫アプリケーションのライフサイクルの変更や削除などの管理を行なうことができるようになる。これにより、第一カードマネージャ102によってダウンロードされた子アプリケーションがさらに孫アプリケーションをダウンロードすることができる特権を有する特権アプリケーション201である場合に、第一カードマネージャ102から孫アプリケーションのライフサイクルの変更、削除が可能であるようにすることができる。
【0061】
なお、特権アプリケーション201が、第一カードマネージャ102に対して孫アプリケーションをダウンロードしたなどの情報は、特権アプリケーション201から直接的に第一カードマネージャ102に出力される必要はなく、特権API106を介して特権アプリケーション201から間接的に第一カードマネージャ102に出力されるようになっていてもよい。
【0062】
また、このような場合において、明示的に特権アプリケーション201が第一カードマネージャ102を出力先として指定する必要はない。例えば、特権アプリケーション201が特権API106を用いて孫アプリケーションをダウンロードすると、特権API106の中で、どのカードマネージャがダウンロードを行なったかが調べられ、もし、第二カードマネージャがダウンロードしたと判断されると、第一カードマネージャ102へダウンロードが行なわれたという情報が出力されるようになっていてもよい。また、アプリケーションの管理は、ICカードのVMやOSにて行なわれ、第一カードマネージャが、全てのアプリケーションの管理のための情報を入手し、入手した情報に基づいてアプリケーションの管理を行なうことができるようになっていてもよい。
【0063】
(実施形態1:第一カードマネージャが第二カードマネージャの配下のアプリケーションを制御できない)また、第二カードマネージャは、第一カードマネージャからの孫アプリケーションのライフサイクルの変更、削除を禁止することができるICカードについても説明する。(主に請求項関連)
【0064】
(実施形態1:第一カードマネージャが第二カードマネージャの配下のアプリケーションを制御できない詳細)すなわち、以上述べたこととは反対に、第二カードマネージャは、第一カードマネージャからの孫アプリケーションのライフサイクルの変更、削除を禁止することもできる。これを実現する一つの方法は、次の通りである。すなわち、特権アプリケーション201が孫アプリケーションのダウンロードや、起動、終了、削除を行なっても、第一カードマネージャ102に何の情報も出力しないようにすることや、特権API106の利用により、各アプリケーションがどのカードマネージャの支配下にあるかの情報がICカード100内に格納されるようにし、他のカードマネージャの支配下にあるアプリケーションのライフサイクルを変更できないように特権API106を作成することにより実現することができる。
【0065】
(実施形態1:第二カードマネージャが第一カードマネージャの支配下のアプリケーションが制御できる場合)また、第二カードマネージャは、第一カードマネージャがダウンロードしたアプリケーションのライフサイクルの変更、削除が可能であるようになっていてもよい(主に請求項関連)。
【0066】
(実施形態1:第二カードマネージャが第一カードマネージャの支配下のアプリケーションが制御できることを実現する方法)これを実現する一つの方法としては、第一カードマネージャがアプリケーションをダウンロードすると、第一カードマネージャは、そのダウンロードされたアプリケーションを管理するための情報を第二カードマネージャに通知する方法がある。
【0067】
また、ICカードにダウンロードされた全てのアプリケーションのライフサイクルなど、アプリケーションを管理するために必要な情報がICカードのVMやOSに保持されている場合には、次のように管理してもよい。すなわち、第二カードマネージャがVMやOSに保持されている情報を読み出し、その情報に基づいて、第一カードマネージャがダウンロードしたアプリケーションのライフサイクルの変更や削除を行なう。このような方法を用いると、第二カードマネージャは、第一カードマネージャによってダウンロードされたアプリケーションに限らず、ICカードで動作する全てのアプリケーションのライフサイクルの変更や削除などのアプリケーションの管理を行なうことができる。
【0068】
(実施形態1:優位性の選択のための選択手段を備える形態)また、第一カードマネージャ102によってダウンロードされた子アプリケーションがさらに孫アプリケーションをダウンロードすることができる第二カードマネージャを有する特権アプリケーション201である場合に、第一カードマネージャ102の有する特権と、第二カードマネージャの有する特権との優越性を選択することができる選択手段を有するようにしてもよい(主に請求項関連)。
【0069】
このような選択手段を実現するために、I/OIF1805から優位性を選択するための信号を受理するアプリケーションをICカード内で動作させておくようにしても良いし、あるいは、選択手段を実装する専用のハードウェアをICカードに備えるようにしても良い。この選択手段による選択結果を特権API106、一般API107、第一カードマネージャ、特権アプリケーション201が参照することにより、選択された優越性に従った動作を実現することができるようになる。
【0070】
(実施形態1:第一カードマネージャと第二カードマネージャの関係は、他のカードマネージャ間についても成り立つ)以上においては、第一カードマネージャと、その子アプリケーションが第二カードマネージャを有する特権アプリケーションとの関係について説明したが、このような場合に限定されるものではない。例えば、第二カードマネージャがさらに特権を有するアプリケーション(孫特権アプリケーションと呼ぶ)をダウンロードし、その孫特権アプリケーションが第三カードマネージャを有する場合における、第三カードマネージャと第一カードマネージャとの関係、あるいは、第三カードマネージャと第二カードマネージャとの関係、さらに、第四カードマネージャ、第五カードマネージャなどとの関係にも適用することができる。
【0071】
(実施形態1:効果の簡単な説明)以上説明した実施形態において、第一カードマネージャ102が特権を有するアプリケーションである特権アプリケーションをダウンロードすることができる。これにより、ICカードの発行後にICカードの設定を行なう特権アプリケーションをダウンロードして設定の変更を行ない、あるいは、特権が無いと得られないデータを操作するアプリケーションをダウンロードすることができる。結果として、例えば、新しい商取引のプロトコルに対応することができる。また、そのような特権アプリケーションは、カードマネージャとして動作することができるので、アプリケーションのダウンロードの手順の違いを吸収することができ、あるいは、新しい規格のインターフェースを孫アプリケーションに提供することができる。すなわち、特権アプリケーションをICカードにダウンロードすればよいので、新たにICカードを発行する必要がなくなる。
【0072】
また、第一カードマネージャが、第二カードマネージャのダウンロードした孫アプリケーションのライフサイクルの変更、削除が可能とすることで、例えば、孫アプリケーションの動作の期限が過ぎた場合に、第一カードマネージャより、そのアプリケーションの動作を終了させ、あるいは、削除することができる。また、第二カードマネージャが、第一カードマネージャからの孫アプリケーションのライフサイクルの変更、削除を禁止することにより、第二カードマネージャが第一カードマネージャより優越することになる。これにより、第二カードマネージャを第一カードマネージャの代わりに使用することができ、カードマネージャのバージョンアップや更新に相当することが実現できる。
【0073】
(実施形態2)次に、第一カードマネージャは、アプリケーションが特権を有するか有しないかを判断するための特権AP制御手段を有するICカードについて説明する。
【0074】
(実施形態2:構成)図3は、本発明の実施形態2におけるICカードの機能ブロック図を示す。本実施形態においては、実施形態1における図1の機能ブロック図に特権AP制御手段301が追加されている。本実施形態においては、第一カードマネージャ102が特権AP制御手段301を有している。特権AP制御手段301は、アプリケーションが特権を有するか有しないかを判断するための手段である。
【0075】
(実施形態2:アプリケーションが特権を有するか有しないかを判断する方法)アプリケーションが特権を有するか有しないかを判断する方法の一つとしては、アプリケーションにそのアプリケーションの属性として、特権を有するかどうかを付加しておく方法がある。すなわち、アプリケーションをダウンロードした時には、アプリケーションの属性を調べ、特権を有する属性を持つアプリケーションに対して、特権を認めるようにする。
【0076】
しかし、これでは、不正な動作をするアプリケーションに特権を有する属性を容易に付けることができるので、不正な動作をするアプリケーションにも特権を認めることになりかねない。
【0077】
(実施形態2:判断する方法=署名)それを防ぐ方法の一つとして、アプリケーションに署名を付加する方法がある。図4は、アプリケーション本体と署名との関係を示す。「アプリケーション本体」とは、アプリケーションの実行に必要な情報である。例えば、アプリケーションの実行コード、アプリケーションに渡すパラメータなどを格納するアプリケーション管理情報などである。図4において、署名402は、アプリケーション本体401からハッシュ値を求め、それを暗号化して得られることを示している。「ハッシュ値」とは、出力値が一致するような二つの異なるデータを見つけることが計算量的に困難な関数により得られる出力値のことである。このような関数としては、SHA−1(Secure Hash Standard−1)、MD5(Message Digest5)などが知られており、SHA−1は入力されたデータに160ビットのハッシュ値を対応付け、MD5は、128ビットのハッシュ値を対応付ける。
【0078】
署名は、このようなハッシュ関数の出力値を暗号化したものである。暗号として公開鍵暗号化方式を用いる場合には、アプリケーションの動作を保証する者が、その秘密鍵によってハッシュ値を暗号化したものが署名となる。なお、暗号化に用いる秘密鍵は、アプリケーションの動作を保証する者のものである以外に、アプリケーションの作成を行った者や、アプリケーションの配布を行なう者などの秘密鍵である場合がある。誰の秘密鍵により暗号化されたかを知ることにより、アプリケーションの出所などを知ることができる。このように生成された署名の検証により、アプリケーション本体が不正動作をしないものであることを確認することができる。例えば、ICカード100の第一カードマネージャ102がアプリケーション本体401と署名402とをダウンロードし、署名402を生成した者の公開鍵によって復号し、一方、アプリケーション本体401に署名を生成するときに使用したハッシュ関数を適用してハッシュ値を得て、復号の結果とハッシュ値が等しいかどうかで、アプリケーション本体がその動作を保証されたものであるかどうかが判断できる。
【0079】
(実施形態2:特権を有するかどうか、また、署名が正しいかどうかを検証した結果の管理)特権AP制御手段301は、第一カードマネージャ102がダウンロードしたアプリケーションが特権を有するかどうか、また、署名が正しいかどうかを検証した結果を図5のように表によって管理するようにしてもよい。図5の表において、左の列は、第一カードマネージャ102がダウンロードしたアプリケーションの識別子(例えば、名前など)であり、左の列がアプリケーションによる特権の利用を許可するかどうかを示す。例えば、「○」になっていればそのアプリケーションに対して特権の利用を許可し、「×」になっていれば特権の利用を許可しないことを表す。なお、署名の検証は、アプリケーションをダウンロードした時に行なったり、また、アプリケーションとその署名とを格納しておき、アプリケーションの起動時や、アプリケーションが特権API106を利用しようとした時に署名の検証を行なったりすればよい。
【0080】
特権API106は、アプリケーションからアクセスがあった場合には、図5の表を参照して、特権の利用を許可されたアプリケーションからのアクセスかどうかを調べ、特権の利用を許可されたアプリケーションからのアクセスであれば、期待された動作を行ない、そうでなければ、エラーを返したりする。
【0081】
(実施形態2:特権AP制御手段の処理フロー)図6は、本実施形態における第一カードマネージャ102の動作を説明するフローチャートである。ステップS601において、特権アプリケーションを署名と共にダウンロードする。ステップS602において、署名を検証する。署名の検証ができれば、ステップS603において、ダウンロードした特権アプリケーションの特権を許可する。なお、署名の検証は、特権アプリケーションをダウンロードした時に行なう必要はなく、特権アプリケーションが特権API106にアクセスするまでに行なえばよい。例えば、特権アプリケーションが最初に特権API106にアクセスしたときに署名を検証するようにしてもよい。
【0082】
特権AP制御手段301は、第一カードマネージャを実現するカードマネージャプログラムによって実現される。そこで、カードマネージャプログラムの中で、特権AP制御手段301を実現するステップを「特権AP制御ステップ」という。
【0083】
(実施形態2:特権アプリケーションが利用可能な関数との関連付け)次に、特権APIに基づく機能は複数の関数からなり、特権AP制御手段は、特権アプリケーションごとに、特権アプリケーションが利用可能な関数と、その特権アプリケーションとを関連付ける特権AP識別情報管理機能を有するICカードについて説明する。
【0084】
「特権API106に基づく機能」とは、特権API106にアクセスすることにより実現できる機能である。
【0085】
「特権API106に基づく機能は複数の関数からなる」とは、特権API106にアクセスすることにより実現できる機能は、複数の関数(またはメソッド)により提供されるということを意味する。
【0086】
「特権AP識別情報管理機能」とは、特権アプリケーションごとに、特権アプリケーションが利用可能な関数と、その特権アプリケーションとを関連付ける機能である。この機能は、例えば、「アプリケーション」という名前の列と「利用可能関数」という名前の列からなる図10に示すような表により実現できる。「アプリケーション」という名前の列には、特権アプリケーションを識別するための情報が格納され、「利用可能関数」という名前の列には、各特権アプリケーションが利用することができる関数を識別する情報が格納される。特権API106がアクセスされた場合には、アクセスを行なったアプリケーションが特権を利用することが許可されたアプリケーションであることを確認するとともに、図10の表を調べて、アプリケーションの利用しようとする関数が「利用可能関数」という名前の列に格納されていることを確認する。
【0087】
(実施形態2:利用可能な関数がブロック単位)また、特権API106にアクセスすることにより実現できる機能を提供する関数をいくつかの集合であるブロックに分けておき、図10の表の「利用可能関数」という名前の列に、そのブロックを識別する情報を格納するようにしてもよい。このようにすれば、あるアプリケーションが利用可能な関数が多数存在する場合でも、ブロックを識別する情報を格納すればよいので、格納する情報量を少なくすることができる。したがって、このような手法は、記憶領域の容量が厳しいICカードに好適である。
【0088】
(実施形態2:効果の簡単な説明)本実施形態におけるICカードは、ダウンロードされたアプリケーションが特権を有するかどうかを判断する特権AP制御手段を有する第一カードマネージャを有するので、例えば、不正な動作をするアプリケーションに特権を認めることがなくなる。また、ダウンロードされたアプリケーションごとに関数レベル、あるいは関数の集まりであるブロックレベルで、特権操作の許可を制御することができる。
【0089】
(実施形態3)次に、第一カードマネージャは、アプリケーションから特権APIの利用の要求である特権API利用要求を受け付ける特権API利用要求受付部を有し、特権API利用要求に基づく第一カードマネージャの特権AP制御手段の判断結果が、アプリケーションが特権アプリケーションであるとの判断結果である場合に、特権アプリケーションに対して特権APIを利用可能とするインターフェース部を有するICカードについて説明する。
【0090】
(実施形態3:構成)図7は、本発明の実施形態3にかかわるICカードの機能ブロック図を示す。本実施形態におけるICカード700は、ROM701を有し、ROM701の中に、第一カードマネージャ702、特権API706、一般API708、カード特権管理手段707が存在する。第一カードマネージャ702、特権API706、一般API708、カード特権管理手段707は、実施形態1および実施形態2における第一カードマネージャ102、特権API106、一般API107、カード特権管理手段(図示せず)に相当する。
【0091】
本実施形態の特徴は、第一カードマネージャ702が、特権AP制御手段709と、特権API利用要求受付部710と、インターフェース部711を有する点である。
【0092】
(実施形態3:実施形態2との違い)本実施形態に対応する図7と実施形態2に対応する図3との違いは、本実施形態においては、アプリケーションが特権APIを利用しようとしたときに、そのアプリケーションに特権APIの利用を許可してもよいかどうかの判断の仕方がより詳細になっている点である。
【0093】
(実施形態3:想定しているICカード)なお、本実施形態は、いわゆるJava(登録商標)Card型のICカードを主に想定したものであり、ICカードのOSとVMとを設けるような構成のソフトウェア・アーキテクチャを有するICカードに適している。
【0094】
(実施形態3:構成)「特権AP制御手段」709は、アプリケーションが特権を有するかどうかを判断する。すなわち、実施形態2における特権AP制御手段301と同じ動作をし、例えば、図5に示すアプリケーションごとに特権の利用を許可するかどうかの表を管理する。
【0095】
「特権API利用要求受付部」710は、アプリケーションからの特権APIの利用の要求である特権API利用要求を受け付ける。したがって、アプリケーションが特権API706を利用する場合には、直接的に特権API706をアクセスするのではなく、特権API利用要求受付部710に特権API利用要求を出力することになる。
【0096】
「インターフェース部」711は、特権API利用要求に基づく第一カードマネージャの特権AP制御手段709の判断結果が、アプリケーションが特権アプリケーションであるとの判断結果である場合に、特権アプリケーションに対して特権API706を利用可能とする。
【0097】
「特権API利用要求に基づく第一カードマネージャの特権AP制御手段709の判断結果」とは、特権API利用要求受付部710に特権API利用要求を出力したアプリケーションが特権を利用することが許可されているかどうかを、特権AP制御手段709により判断した結果である。
【0098】
その判断した結果により、特権を利用することが許可されていることが判明した場合には、インターフェース部は、特権API利用要求を出力したアプリケーションに対して特権API706の利用を可能とする。例えば、特権API利用要求受付部710に受け付けられた特権API利用要求をインターフェース部より、特権API706へ転送する。あるいは、特権API706の利用を認めるチケット(許可証)を、特権API利用要求受付部710に特権API利用要求を出力したアプリケーションに発行し、アプリケーションは、特権API706に対して、インターフェース部より発行されたチケットを提示して特権操作の利用を行なうようにしてもよい。
【0099】
(実施形態3:第一カードマネージャの特権AP制御手段での判断結果に基づくICカードの処理フロー)図8は、第一カードマネージャ709の動作を説明するフローチャートである。ステップS801において、特権API利用要求を特権API利用要求受付部710において受け付ける。ステップS802において、特権API利用要求を出力したアプリケーションを特定する。ステップS803において、特定されたアプリケーションの特権利用が許可されているかどうかを、特権AP制御手段709により判断する。もし、特権利用が許可されている場合には、ステップS804において、特権API利用要求を受け付けさせたアプリケーションに特権API706を利用させる。特権利用が許可されていない場合には、特権API706の利用をさせない。
【0100】
(実施形態3:効果の簡単な説明)このような実施形態により、特権API706がインターフェース部706を介してアプリケーションからアクセスされるようになっている場合には、特権API706は、第一カードマネージャのみからアクセスがされるので、従来のICカードの特権APIがそのまま流用できる。また、インターフェース部706により特権API706を利用するチケットが発行される場合には、チケットを入手したアプリケーションのみが特権API706を利用することができるので、特権AP制御手段709により特権の利用が許可されていないアプリケーションが特権操作を行なうことができず、安全性が確保できる。
【0101】
(実施形態4)次に、第一カードマネージャの特権AP制御手段は、アプリケーションが直接的に特権APIを利用しようとする場合に、特権AP制御手段の判断結果が、アプリケーションが特権アプリケーションであるとの判断結果である場合に、特権アプリケーションが特権APIを直接的に利用可能とするICカードについて説明する。
【0102】
(実施形態4:構成)図9は、本発明の実施形態4にかかわるICカードの機能ブロック図を示す。図9においてICカード900は、ROM901を有し、ROM901の中に、第一カードマネージャ902、特権API906、一般API908、カード特権管理手段907が存在する。第一カードマネージャ902、特権API906、一般API908、カード特権管理手段907は、実施形態1および実施形態2における第一カードマネージャ102、特権API106、一般API107、カード特権管理手段(図示せず)に相当する。
【0103】
本実施形態の特徴は、第一カードマネージャ902が、特権AP制御手段909を有し、特権API906がアクセスされた場合に、特権AP制御手段909により、特権API906にアクセスを行なったアプリケーションが特権の利用を許可されているかどうかを判断する点である。本実施形態は、いわゆるNative型のICカードを主に想定したものであり、OSとアプリケーションの間にVMを設けず、アプリケーションが直接OSにアクセスするような構成のソフトウェア・アーキテクチャを有するICカードに適している。
【0104】
「特権AP制御手段」909は、アプリケーションが特権を有するかどうかを判断する。すなわち、実施形態2における特権AP制御手段301と同じ動作をし、例えば、図5に示すアプリケーションごとに特権の利用を許可するかどうかの表を管理する。また、本実施形態において、特権AP制御手段909は、アプリケーションが直接的に特権API906を利用しようとする場合に、特権AP制御手段909の判断結果が、アプリケーションが特権アプリケーションであるときに、特権アプリケーションが特権API909を直接的に利用可能とする。
【0105】
「アプリケーションが直接的に特権API906を利用する」とは、図9に示すように特権アプリケーション903が、図7に示す場合と異なり、ROM901に格納されている特権API906を直接アクセスすることである。
【0106】
「特権AP制御手段909の判断結果」とは、特権API906へアクセスしたアプリケーションが特権の利用を許可されているかどうかに関する特権AP制御手段909による判断結果である。
【0107】
「特権アプリケーションが特権API909を直接的に利用可能とする」とは、特権AP制御手段909により特権の利用を許可されているアプリケーションである特権アプリケーションが特権API909を直接的に利用することを、特権AP制御手段909が許可することである。
【0108】
したがって、本実施形態においては、特権API906がアプリケーションから直接アクセスが行なわれた場合には、特権API906は、アクセスを行なったアプリケーションが特権の利用を許可されたものであるかどうかを、特権AP制御手段909に判断を実行させる。特権AP制御手段909が、特権の利用を許可されたアプリケーションであると判断した場合には、特権API906に対して、アクセスを行なったアプリケーションに対して特権APIを利用させる信号を出力することになる。
【0109】
(実施形態4:効果の簡単な説明)このような実施形態により、特権の利用を許可されたアプリケーションのみが特権API906を利用することができ、安全性が保持される。また、アプリケーションは、特権API906を直接利用することが可能となり、途中に別のインターフェースを介して特権API906を利用することによるオーバーヘッドを避けることができ、効率的に特権API906を利用することができる。
【0110】
(実施形態5)次に、第一カードマネージャのインターフェース部は、アプリケーションが特権アプリケーションのインターフェース部を介した特権APIの利用を不可とするICカードについて説明する(特権API用のインターフェースの又貸しの禁止)。
【0111】
(実施形態5:構成)図11は、本発明の実施形態5を説明するためのICカードの機能ブロック図である。図11は、実施形態3の説明に使用した図7とほぼ同じであり、ICカード1100がICカード700に、ROM1101がROM701に、第一カードマネージャ1102が第一カードマネージャ702に、特権アプリケーション1103が特権アプリケーション703に、特権API1105が特権API706に、カード特権管理手段1107がカード特権管理手段707に、一般API1106が一般API708に、特権AP制御手段1108が特権AP制御手段709に、特権API利用要求受付部1109が特権API利用要求受付部710に、インターフェース部1110がインターフェース部711に、対応する。
【0112】
図11において、特権アプリケーション1103は、第二カードマネージャとしての機能をAP・1(1104)に提供しており、AP・1(1104)が第二カードマネージャの機能を利用する場合には、特権アプリケーション1103の有するインターフェース部1111をアクセスするとする。
【0113】
この場合において、AP・1(1104)がインターフェース部1111をアクセスし、特権操作を要求し、インターフェース部1111が、その要求をそのまま特権API利用要求として特権API利用要求受付部1109に対して出力すると、特権アプリケーションではない、AP・1(1104)が特権アプリケーション1103を介して特権操作を実行できてしまうという問題を生じることになる。
【0114】
本実施形態は、この点を解決するために、第一カードマネージャ1102のインターフェース部1110は、アプリケーションが特権アプリケーション1103のインターフェース部1111を介した特権API1105の利用を不可とするものである。
【0115】
すなわち、インターフェース部1110は、特権アプリケーション以外のアプリケーションが、特権アプリケーション1103のインターフェース部1111を介して特権API1105へアクセスしようとすることを検出し、もしそのようなことが検出されると、特権API1105へのアクセスを不可とする。
【0116】
(実施形態5:インターフェース部を介している回数によって判断)このことを実現する方法としては、特権API1105に至るまでのインターフェース部を経由した回数をチェックすることによる方法がある。例えばインターフェース部を二回以上経由した場合に特権API1105へのアクセスが不可とされる。図11を用いて例を挙げると次のようになる。アプリケーションが直接、特権API利用要求受付部1109を経由してインターフェース部1110を利用すると、インターフェース部1110を一回だけ経由するので、インターフェース部を二以上の回数利用したという理由で特権API1105へのアクセスが不可とされることはない(ただし、アプリケーションが特権アプリケーションでないという理由でアクセスが不可とされることはある)。
【0117】
それに対し、もし、アプリケーションが、特権アプリケーション1103の備えるインターフェース部1111を経由し、それからインターフェース部1110を経由して特権API1105を利用しようとすると、インターフェース部1110は、特権アプリケーション1103から利用されているので、アクセスは許可される。しかし、この場合には、二つのインターフェース部、すなわち、インターフェース部1111とインターフェース部1110とを経由しており、特権API1105へのアクセスが不可とされる。
【0118】
(実施形態5:スタックの内容によって判断)また、インターフェース部1110が、アプリケーションのスタックの内容を調べて特権API1105へのアクセスを制御する方法もある。
【0119】
「スタック」とは、アプリケーションの動作のための一時作業領域であり、関数が呼ばれると、その関数が終了したときに戻るべきアドレス(関数の戻り番地)を記録することや、関数の内部で使用される局所変数の値を保持するために用いられる「後入れ先出し」の領域である。「後入れ先出し」とは、例えば、A、Bの順にデータを入れると、入れた順の逆であるB、Aの順にデータが取り出されることを意味する。
【0120】
図12は、AP・1(1104)のスタックの一例を示している。符号1201を付した部分がAP・1(1104)の実行部分にかかわる関数の戻り番地や局所変数の値を格納している部分である。AP・1(1104)がインターフェース部1111にアクセスし、インターフェース部1111における処理が行なわれると、スタックには、符号1202を付した部分が格納される。この部分には、インターフェース部1111における処理に伴う関数の戻り番地や局所変数の値が格納されることになる。
【0121】
インターフェース部1111が特権API利用要求受付部1109にアクセスし、特権API利用要求受付部1109の処理が行なわれると、符号1203を付した部分が格納される。この部分には、特権API利用要求受付部1109における処理に伴う関数の戻り番地や局所変数の値が格納されることになる。インターフェース部1110は、このようなスタックの内容を調べることにより、AP・1(1104)が特権アプリケーション1103のインターフェース部1111を介して特権API1105を利用しようとしているかどうかを判断することができる。スタックの内容を調べてこのような判断を行なうには、例えば、デバッガがスタックの内容を調べてバックトレースを行なう技術を使用すればよい。
【0122】
(実施形態5:メッセージパッシングの利用)また、AP・1(1104)が特権アプリケーション1103のインターフェース部1111にアクセスを要求するときや、特権アプリケーション1103が特権API利用要求受付部1109に特権API利用要求を出力するときに、そのアクセスの要求や特権API利用要求をメッセージにして送るようにする実装例(メッセージパッシングによる実装例)もある。このような場合には、そのようなメッセージに、どこを経由したかの情報を付加するようにし、インターフェース部1110は、この付加された情報により、どのような経路により要求が送られてきたかを判断するようにすることも可能である。
【0123】
図13は、メッセージに、どこを経由したかの情報を付加してインターフェース部1111へアクセスの要求を出力し、また、特権API利用要求受付部1109に特権API利用要求を出力する例を示している。AP・1(1104)は、特権アプリケーション1103に対して要求メッセージ1301を送る際に、要求メッセージ1301にAP・1(1104)がメッセージの出所であることを示す情報を付加する。特権アプリケーション1103が要求メッセージ1301を特権API利用要求として第一カードマネージャ1102に送る際には、要求メッセージ1301に特権アプリケーション1103を経由した情報を付加したメッセージ1302を生成して送る。インターフェース部1110は、このように送られたメッセージの内容を検査し、特権アプリケーションではないアプリケーションAP・1(1104)からのメッセージが特権アプリケーション1103を経由して送られてきたかどうかを検出することができる。
【0124】
(実施形態5:効果の簡単な説明)このような実施形態により、特権アプリケーションでないアプリケーションが特権アプリケーションを介して特権操作を行なうことを防止することができ、安全性が高まる。
【0125】
(実施形態6)次に、第一カードマネージャによってダウンロードされた子アプリケーションがさらに孫アプリケーションをダウンロードすることができる第二カードマネージャを有する特権アプリケーションである場合に、第一カードマネージャ又は/及び、第二カードマネージャは、孫アプリケーションを含むアプリケーションが選択された回数をカウントするカウンター手段を有するICカードについて説明する(主に請求項関連)。
【0126】
本実施形態において、第一カードマネージャがカウンター手段を持ち、第二カードマネージャがカウンター手段を持たない形態や、第一カードマネージャはカウンターを持たず、第二カードマネージャのみがカウンター手段を持つ形態や、第一カードマネージャと第二カードマネージャの両方がカウンター手段を持つ形態を挙げることができる。以下においては、まず、第一カードマネージャのみがカウンター手段を持つ形態について説明する。
【0127】
(実施形態6:第一カードマネージャのみがカウンター手段を持つ形態の構成)図14は、本発明の実施形態6に関するICカードの機能ブロック図を示す。この図にあるように、本実施形態においては、第一カードマネージャ1402がアプリケーションの選択された回数を記録するカウンター手段1406を有する。
【0128】
「カウンター手段」1406は、内部にカウンターを備え、そのカウンターの値を1上げる操作や、カウンターの値を読み出すことができるようになっている。
【0129】
本実施形態は、カウンター手段によりアプリケーションが選択された回数に基づき、例えば、アプリケーションの利用の課金ができるようにするものである。
【0130】
図14において、ICカード1400は、ROM1401を有し、ROM1401は、第一カードマネージャ1402を備えている。第一カードマネージャ1402によってダウンロードされた子アプリケーション1403が、さらに孫アプリケーションをダウンロードすることができる第二カードマネージャを有する特権アプリケーションであるとする。
【0131】
符号1404を付したAP・1が、第二カードマネージャによってダウンロードされたアプリケーションであり、第一カードマネージャ1402にとっての孫アプリケーションとなる。
【0132】
「第一カードマネージャ」は、カウンター手段1406を備えている。このカウンター手段は、孫アプリケーションを含むアプリケーションが選択された回数をカウントする。
【0133】
「孫アプリケーションを含むアプリケーション」とは、第一カードマネージャが直接管理する子アプリケーションのみならず、第一カードマネージャによりダウンロードされた子アプリケーションである特権アプリケーションが有するカードマネージャによりダウンロードされたアプリケーション(つまり孫アプリケーション)、さらにその子孫などを含む。
【0134】
すなわち、その孫アプリケーションが特権アプリケーション(孫特権アプリケーションと呼ぶことにする)である場合に、その孫特権アプリケーションによりさらにダウンロードされたアプリケーション(つまり曾孫アプリケーション)などのように、第二カードマネージャの直接的、および間接的な支配が及ぶアプリケーションの全てである。
【0135】
「アプリケーションが選択された回数」とは、アプリケーションが起動された回数であり、さらに、「選択された回数」には、アプリケーションが休止状態から活動状態に移行した回数も含まれる場合もある。
【0136】
(実施形態6:第一カードマネージャが他のカードマネージャからアプリケーションの起動の情報を伝えられる場合の処理のフロー)図16は、第一カードマネージャ1402の動作を例示するフローチャートであり、このフローチャートにおいて、「アプリケーションが選択された回数」をアプリケーションが起動された回数としている。ステップS1601において、他のカードマネージャよりアプリケーションを起動したことが受け付けられるまで待つことを行なう。他のカードマネージャよりアプリケーションを起動したことを受け付けると、ステップS1602へ移行し、カウンター手段1406のカウンターを1上げる。ステップS1602において、カウントを終了すべきか、あるいは、第一カードマネージャ1402の動作が終了すべきなのかどうかを判断し、もし、終了していなければステップS1601へ戻る。
【0137】
また、第一カードマネージャ1402がアプリケーションを起動した場合には、カウンター手段1406のカウンターを1上げることを行なう。
【0138】
(実施形態6:第一カードマネージャ以外の処理フロー)図15は、第一カードマネージャ以外のカードマネージャ(例えば第二カードマネージャ(以下、「他のカードマネージャ」という)の動作を例示するフローチャートである。
【0139】
ステップS1501において、カードマネージャはアプリケーションを起動する。
【0140】
ステップS1502において、第一カードマネージャ1402にアプリケーションを起動したことを伝える。なお、第一カードマネージャが他のカードマネージャからの伝達なしに、他のカードマネージャでのアプリケーションの起動を知ることができる場合、例えば、特権APIよりアプリケーションが起動されたことが第一カードマネージャ1402に通知されるような場合には、第二カードマネージャが第一カードマネージャにこれを伝達する操作を行なう必要はない。
【0141】
このような動作を第一カードマネージャ1402と第二カードマネージャとで行なうことにより、第一カードマネージャ1402のカウンター手段1406には、第一カードマネージャ1402自身が直接的に管理するアプリケーションや、孫アプリケーションを含むアプリケーションが選択された回数がカウントされる。
【0142】
(実施形態6:第二カードマネージャのみがカウンター手段を持つ形態)また、既に述べたように、第一カードマネージャ1402がカウンター手段1406を持たず、第二カードマネージャ1403がカウンター手段を持つ形態もある。このような形態においては、図15のフローチャートの処理を第二カードマネージャ以外のカードマネージャで行なう(ただし、ステップS1502において、「第一カードマネージャ」を「第二カードマネージャ」と読み替えるものとする)。また、図16のフローチャートの処理を第二カードマネージャで行なうようにすればよい。また、第二カードマネージャがアプリケーションを起動したときは、カウンター手段のカウンターを1上げることを行なう。
【0143】
(実施形態6:第一カードマネージャと第二カードマネージャの両方がカウンター手段を持つ形態)また、第一カードマネージャ1402と第二カードマネージャ1403の両方がカウンター手段を持つようになっていてもよい。
【0144】
(実施形態6:第一カードマネージャのカウンター手段のカウントの対象となるアプリケーション)なお、第一カードマネージャ1402がカウンター手段を持つ場合において、そのカウンター手段によりカウントされる対象は、ICカード1400内の全てのアプリケーションが選択された回数であってもよいし、一部のアプリケーションの選択された回数であってもよい。例えば、第一カードアプリケーションの子アプリケーションが選択された回数である場合や、特定の識別子を持つアプリケーションが選択された場合、特定のカードマネージャ(例えば、第二カードマネージャ)によって選択されたアプリケーションである場合や、あるいは、特定のカードマネージャ(例えば第二カードマネージャ)にとっての子アプリケーション、および、その特定のカードマネージャにとっての孫アプリケーションなどを含む子孫のアプリケーションが選択された場合に、カウンターが1上がるようになっていてもよい。
【0145】
(実施形態6:第一カードマネージャのカウンター手段のカウントの対象となるアプリケーション)同様に、第二カードマネージャ1403がカウンター手段を持つ場合においても、そのカウンター手段によりカウントされる対象は、ICカード1400内の全てのアプリケーションが選択された回数であってもよいし、一部のアプリケーションの選択された回数であってもよい。
【0146】
(実施形態6:第一カードマネージャと第二カードマネージャの両方がカウンター手段を持つ場合のカウント対象)また、第一カードマネージャ1402と第二カードマネージャ1403の両方がカウンター手段を持つ場合、両者のカウンター手段によりカウントされる対象が、同じであってもよいし、異なっていてもよい。異なっている場合には、カウントされる対象に共通部分があってもよいし、共通部分が無くてもよい。
【0147】
(実施形態6:カウント対象の共通部分が無い場合の例)カウントされる対象に共通部分が無い例としては、第一カードマネージャ1402は、自身(第一カードマネージャ1402)が直接的に管理するアプリケーション(例えば子アプリケーションが該当する。なお、孫アプリケーションを第一カードマネージャが直接的に管理する場合には、孫アプリケーションが該当する。)が選択された回数をカウントする。一方、第二カードマネージャ1403のカウンター手段は、第二カードマネージャ1403にとっての子アプリケーションや第二カードマネージャ1403が直接管理するアプリケーション、および、第二カードマネージャにとっての孫アプリケーションなどを含む子孫のアプリケーションが選択された回数(以下、「第二カードマネージャ1403の子孫選択回数」という)をカウントするようになっていてもよい。
【0148】
(実施形態6:第二カードマネージャの特権により第一カードマネージャにカウントさせない)また、第二カードマネージャ1403は、第二カードマネージャ1403の子孫選択回数を第一カードマネージャ1402のカウンター手段にカウントさせない特権を有するようにしたりもできる。また、第一カードマネージャ1402のカウンター手段に第二カードマネージャ1403の子孫選択回数をカウントさせることができるかどうかを選択することができるようにすることもできる。
【0149】
(実施形態6:第一カードマネージャ、第二カードマネージャ以外のカードマネージャがカウンター手段を持っていてよい)また、第一カードマネージャ、第二カードマネージャ以外にも、第二カードマネージャがダウンロードした第三カードマネージャなどもカウンター手段を有するようにしてもよい。
【0150】
(実施形態6:改札などでの応用例と効果の簡単な説明)このような実施形態により、アプリケーションが選択された回数を管理することが可能となり、選択された回数に応じた課金が可能となる。例えば、改札を通過するごとに起動されるアプリケーションの起動回数をカウントすることが可能となり、料金が定額制の場合には、支払うべき料金を求めることができる。また、アプリケーションの保守料金やサポート料金をアプリケーションの選択された回数に応じて課すことが可能となり、適正な保守料金やサポート料金を設定することができる。また、このようにアプリケーションが選択された回数をカウントするアプリケーションをダウンロードできるようにすることにより、例えば、特定のアプリケーションが選択された回数をカウントし、あるいは、カウントされた回数を特定のサーバに送信することができるアプリケーションをダウンロードすることができ、カウントの対象や、カウントの結果の扱いをICカードの発行後に変更できることになる。
【0151】
(実施形態7)次に、第一カードマネージャによってダウンロードされた子アプリケーションがさらに孫アプリケーションをダウンロードすることができる第二カードマネージャを有する特権アプリケーションである場合に、第一カードマネージャは、自身が直接的に管理するアプリケーション及び、孫アプリケーションを含むアプリケーションの処理ログを管理する処理ログ管理手段を有し、第二カードマネージャは、第一カードマネージャが直接的に管理するアプリケーション又は/及び、孫アプリケーションを含むアプリケーションの処理ログを管理する処理ログ管理手段を有するICカードについて説明する(主に請求項関連)。
【0152】
(実施形態7:構成)図17は、本発明の実施形態7に関するICカードの機能ブロック図を示す。本実施形態においては、カードマネージャがアプリケーションのログを記録する処理ログ管理手段を有する。
【0153】
この処理ログ管理手段によりアプリケーションの処理ログを管理することができ、例えば、課金処理ができるようになる。
【0154】
図17において、ICカード1700は、ROM1701を有し、ROM1701は、第一カードマネージャ1702を備えている。
【0155】
第一カードマネージャ1702によってダウンロードされた子アプリケーション1703がさらに孫アプリケーションをダウンロードすることができる第二カードマネージャを有する特権アプリケーションであるとする。
【0156】
図14において、符号1404を付したAP・1は、第二カードマネージャによってダウンロードされたアプリケーションであり、第一カードマネージャ1402にとっての孫アプリケーションとなる。
【0157】
「第一カードマネージャ」は、処理ログ管理手段1706を備えている。
【0158】
「処理ログ管理手段」は、自身が直接的に管理するアプリケーション及び、孫アプリケーションを含むアプリケーションの処理ログを管理する。
【0159】
「自身が直接的に管理するアプリケーション」とは、第一カードマネージャ1702により起動され、第一カードマネージャ1702の支配下にあるアプリケーションである。このようなアプリケーションは、図17においては、符号として1703、1705が付されたアプリケーションである。
【0160】
「孫アプリケーションを含むアプリケーション」とは、第一カードマネージャによりダウンロードされた特権アプリケーションが有するカードマネージャによりダウンロードされたアプリケーション(つまり孫アプリケーション)、及び、その孫アプリケーションが特権アプリケーション(孫特権アプリケーションと呼ぶことにする)である場合に、その孫特権アプリケーションによりさらにダウンロードされたアプリケーションなどのように、第二カードマネージャの直接的、および間接的な支配が及ぶアプリケーションの全てである。
【0161】
「アプリケーションの処理ログ」とは、アプリケーションの処理により発生するログである。アプリケーションの特定の関数が呼ばれると、その関数が呼ばれたことを示す記録が例として挙げられる。また、関数にどのような引数が渡されたかを示す記録なども挙げることができる。
【0162】
「処理ログを管理する」とは、処理ログを最新の状態に更新し、後で読み出し可能なようにICカード1700内に格納することである。
【0163】
「第二カードマネージャ」(本実施形態におけるもの)は、第一カードマネージャが直接的に管理するアプリケーション又は/及び、孫アプリケーションを含むアプリケーションの処理ログを管理する処理ログ管理手段1707を有する。
【0164】
(実施形態7:アプリケーションが処理ログを出力する方法)ICカード内で動作するアプリケーションが、処理ログ管理手段1706、処理ログ管理手段1707、に処理ログを出力する方法の一例としては、ICカード1700内に処理ログ管理手段を持ったカードマネージャを登録する手段を用意しておき、また、ROM1701内の一般APIとして、処理ログを受け付ける関数(あるいは、メソッド)を用意しておき、その関数(あるいはメソッド)は、受け付けた処理ログを登録されたカードマネージャに出力するようにしておくことが挙げられる。
【0165】
また、処理ログをその関数(あるいはメソッド)に受け付けさせたアプリケーションとカードマネージャとの関係が登録できるようにしておくことにより、特定のアプリケーションの処理ログは、特定のカードマネージャの処理ログ管理手段により管理されるようにすることができる。
【0166】
(実施形態7:改札などでの応用例と効果の簡単な説明)このような実施形態により、アプリケーションの処理ログを管理することが可能となり、例えば、処理ログの内容に応じた課金が可能となる。例えば、改札を通過するごとに、どの駅の改札機で入場したか、どの駅の改札機で出場したかを記録することができ、支払うべき料金を求めることができる。また、アプリケーションの保守料金やサポート料金をアプリケーションの処理ログの内容に応じて課すことが可能となり、高度な処理を行なう場合には、高い料金を徴収し、高度でない処理に対しては、低い料金を徴収することにすれば、適正な保守料金やサポート料金を設定することができる。また、このようにアプリケーション処理ログを管理するアプリケーションをダウンロードできるようにすることにより、例えば、特定のアプリケーションの処理ログを管理することや、あるいは、処理ログを特定のサーバに送信することができるアプリケーションをダウンロードすることができ、処理ログを管理する対象や、処理ログの扱いをICカードの発行後に変更できることになる。
【0167】
【発明の効果】
以上のように、本発明によれば、ICカードの発行後にも特権を持ったアプリケーションをダウンロードすることができるカードマネージャを有することにより、特権がないと取得できない情報を取得して動作するアプリケーションをICカードに導入することが可能となる。
【0168】
また、ICカードの発行後に、別の仕様を持つカードマネージャが提案されても、その仕様を持つカードマネージャを、特権を持ったアプリケーションとして、本発明のICカードにダウンロードすることができるので、ICカードの発行者にとって、新たなICカードの発行の手間をかける必要が無くなる。また、ICカードの利用者にとっても、複数枚のICカードを持つ必要が無くなる。
【0169】
また、特権APIにアクセスが行なわれる際には、アクセスを行なったアプリケーションが特権操作を許可されたアプリケーションであるかどうかの確認が行なわれるので、不正な動作をするアプリケーションによる特権操作を防止することができ、機密情報などの安全性が保たれる。
【0170】
また、アプリケーションの選択のカウントやアプリケーションの処理ログを管理することができるので、適正な課金処理などを行なうことができる。
【図面の簡単な説明】
【図1】実施形態1におけるICカードの機能ブロック図
【図2】実施形態1においてダウンロードされた特権アプリケーションがカードマネージャを有する場合のICカードの機能ブロック図
【図3】実施形態2におけるICカードの機能ブロック図
【図4】アプリケーション本体と署名との関係を示す図
【図5】アプリケーションが特権を有するかどうかを判断するために使用される表の一例図
【図6】特権AP制御手段を用いてアプリケーションの特権を許可するかどうかを決定する処理のフローチャート
【図7】実施形態3におけるICカードの機能ブロック図
【図8】実施形態3における第一カードマネージャの動作を説明するフローチャート
【図9】実施形態4におけるICカードの機能ブロック図
【図10】特権アプリケーションごとに利用可能な関数を関連付けた表の一例図
【図11】実施形態5におけるICカードの機能ブロック図
【図12】アプリケーションのスタックの内容の一例図
【図13】アプリケーションが特権APIを利用するためのメッセージの流れを示す一例図
【図14】実施形態6におけるICカードの機能ブロック図
【図15】第二カードマネージャの動作を説明するフローチャート
【図16】第一カードマネージャの動作を説明するフローチャート
【図17】実施形態7におけるICカードの機能ブロック図
【図18】ICカードのハードウェア構成の一例図
【図19】従来のICカードにおけるアプリケーションの関係を示す図
【符号の説明】
100 ICカード
101 ROM
102 第一カードマネージャ
103 特権アプリケーション
104 AP・1
105 AP・2
106 特権API
107 一般API

Claims (5)

  1. 他のアプリケーションを制御する権限である特権を有するアプリケーションである特権アプリケーションをダウンロードすることができる第一カードマネージャと、
    前記第一カードマネージャによりダウンロードされた特権アプリケーションであって、さらに孫アプリケーションをダウンロードすることができる第二カードマネージャを有する特権アプリケーションである子アプリケーションと、
    を有し、
    前記第二カードマネージャは、前記第一カードマネージャからの孫アプリケーションのライフサイクルの変更、削除を禁止することが可能であるICカード。
  2. 他のアプリケーションを制御する権限である特権を有するアプリケーションである特権アプリケーションをダウンロードすることができる第一カードマネージャと、
    前記第一カードマネージャによってダウンロードされた特権アプリケーションであって、さらに孫アプリケーションをダウンロードすることができる第二カードマネージャを有する特権アプリケーションである子アプリケーションと、
    を有し、
    前記第二カードマネージャは、前記第一カードマネージャがダウンロードしたアプリケーションのライフサイクルの変更、削除をすることが可能であるICカード。
  3. 他のアプリケーションを制御する権限である特権を有するアプリケーションである特権アプリケーションをダウンロードすることができる第一カードマネージャと、
    前記第一カードマネージャによってダウンロードされた特権アプリケーションであって、さらに孫アプリケーションをダウンロードすることができる第二カードマネージャを有する特権アプリケーションである子アプリケーションと、
    を有し、
    さらに、前記第一カードマネージャの有する特権と、前記第二カードマネージャの有する特権との優越性を選択することができる選択手段を有するICカード。
  4. 他のアプリケーションを制御する権限である特権を有するアプリケーションである特権アプリケーションをダウンロードすることができる第一カードマネージャと、
    前記第一カードマネージャによってダウンロードされた特権アプリケーションであって、さらに孫アプリケーションをダウンロードすることができる第二カードマネージャを有する子アプリケーションと
    を有し、
    さらに、前記第一カードマネージャ又は/及び、前記第二カードマネージャは、前記孫アプリケーションを含むアプリケーションが選択された回数をカウントするカウンター手段を有するICカード。
  5. 他のアプリケーションを制御する権限である特権を有するアプリケーションである特権アプリケーションをダウンロードすることができる第一カードマネージャと、
    前記第一カードマネージャによってダウンロードされた特権アプリケーションであって、さらに孫アプリケーションをダウンロードすることができる第二カードマネージャを有する子アプリケーションと
    を有し
    前記第一カードマネージャは、自身が直接的に管理するアプリケーション及び、孫アプリケーションを含むアプリケーションの処理ログを管理する処理ログ管理手段を有し、
    前記第二カードマネージャは、第一カードマネージャが直接的に管理するアプリケーション又は/及び、孫アプリケーションを含むアプリケーションの処理ログを管理する処理ログ管理手段を有するICカード。
JP2001373046A 2001-12-06 2001-12-06 Icカード Expired - Fee Related JP3880384B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2001373046A JP3880384B2 (ja) 2001-12-06 2001-12-06 Icカード
EP02027322A EP1318488A3 (en) 2001-12-06 2002-12-06 IC card with capability of having plurality of card managers installed
US10/313,880 US6834799B2 (en) 2001-12-06 2002-12-06 IC card with capability of having plurality of card managers installed
CN02155721A CN1423232A (zh) 2001-12-06 2002-12-06 可搭载多个卡管理程序的ic卡

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001373046A JP3880384B2 (ja) 2001-12-06 2001-12-06 Icカード

Publications (2)

Publication Number Publication Date
JP2003173427A JP2003173427A (ja) 2003-06-20
JP3880384B2 true JP3880384B2 (ja) 2007-02-14

Family

ID=19181830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001373046A Expired - Fee Related JP3880384B2 (ja) 2001-12-06 2001-12-06 Icカード

Country Status (4)

Country Link
US (1) US6834799B2 (ja)
EP (1) EP1318488A3 (ja)
JP (1) JP3880384B2 (ja)
CN (1) CN1423232A (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200756B2 (en) * 2002-06-25 2007-04-03 Microsoft Corporation Base cryptographic service provider (CSP) methods and apparatuses
TW200500887A (en) 2003-03-03 2005-01-01 Nagracard Sa Security modules deactivation and reactivation method
US7925892B2 (en) * 2003-03-31 2011-04-12 Nxp B.V. Method to grant modification rights for a smart card
JP3958243B2 (ja) * 2003-04-14 2007-08-15 松下電器産業株式会社 Icカードおよびそのos起動方法
JP4597568B2 (ja) * 2003-07-15 2010-12-15 パナソニック株式会社 セキュアデバイス、情報処理端末、及び情報処理システム
CN1655507A (zh) * 2004-02-02 2005-08-17 松下电器产业株式会社 进行卡应用间数据交换的保密装置和移动终端
FR2872309A1 (fr) * 2004-06-23 2005-12-30 Gemplus Sa Procede de gestion d'une carte a puce multi-applicative
JP2006039639A (ja) * 2004-07-22 2006-02-09 Ricoh Co Ltd 情報処理端末利用装置、アプリケーション搭載方法、アプリケーション搭載プログラム及びアプリケーション搭載プログラムが記憶された記憶媒体
JP4781033B2 (ja) * 2004-08-10 2011-09-28 キヤノン株式会社 認証システム、処理方法、プログラム及び記録媒体
US7665667B2 (en) * 2004-10-09 2010-02-23 Gemalto Inc. System and method for updating access control mechanisms
US20060080655A1 (en) * 2004-10-09 2006-04-13 Axalto Inc. System and method for post-issuance code update employing embedded native code
WO2006061754A1 (en) 2004-12-07 2006-06-15 Philips Intellectual Property & Standards Gmbh System and method for application management on multi-application smart cards
US7584347B2 (en) * 2005-06-10 2009-09-01 Dell Products L.P. System and method for identifying bootable device by generating a signature for each bootable device where the signature is independent of a location of the bootable device
DE602005018215D1 (de) * 2005-09-29 2010-01-21 Research In Motion Ltd System und Verfahren zur Registrierung von Dateneinheiten für Codesignierungs-Diensten
US8340289B2 (en) 2005-09-29 2012-12-25 Research In Motion Limited System and method for providing an indication of randomness quality of random number data generated by a random data service
EP1770586B1 (en) * 2005-09-29 2008-12-17 Research In Motion Limited Account management in a system and method for providing code signing services
EP1770587A1 (en) * 2005-09-29 2007-04-04 Research In Motion Limited Remote hash generation in a system and method for providing code signing services
EP1770588B1 (en) * 2005-09-29 2008-12-17 Research In Motion Limited System and method for providing code signing services
US7797545B2 (en) 2005-09-29 2010-09-14 Research In Motion Limited System and method for registering entities for code signing services
CN100362528C (zh) * 2005-11-25 2008-01-16 上海复旦微电子股份有限公司 兼容逻辑加密卡的非接触cpu卡
DE102007003580A1 (de) * 2007-01-24 2008-07-31 Giesecke & Devrient Gmbh Installieren eines Patch in einem Smartcard-Modul
JP5156254B2 (ja) * 2007-04-17 2013-03-06 楽天株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
FR2923041B1 (fr) * 2007-10-25 2011-08-19 Radiotelephone Sfr Procede d'ouverture securisee a des tiers d'une carte a microcircuit.
EP2063400A1 (en) * 2007-11-23 2009-05-27 Gemalto SA Virtual security access module
CN102103651B (zh) * 2009-12-21 2012-11-14 中国移动通信集团公司 一种一卡通系统的实现方法和系统以及一种智能卡
JP2011198298A (ja) * 2010-03-23 2011-10-06 Dainippon Printing Co Ltd Icカード及びコンピュータプログラム
US8352749B2 (en) 2010-12-17 2013-01-08 Google Inc. Local trusted services manager for a contactless smart card
US8807440B1 (en) 2010-12-17 2014-08-19 Google Inc. Routing secure element payment requests to an alternate application
US8335921B2 (en) 2010-12-17 2012-12-18 Google, Inc. Writing application data to a secure element
US8171525B1 (en) 2011-09-15 2012-05-01 Google Inc. Enabling users to select between secure service providers using a central trusted service manager
US8255687B1 (en) 2011-09-15 2012-08-28 Google Inc. Enabling users to select between secure service providers using a key escrow service
US8313036B1 (en) 2011-09-16 2012-11-20 Google Inc. Secure application directory
JPWO2013094110A1 (ja) * 2011-12-21 2015-04-27 ソニー株式会社 情報処理装置、サーバ装置、情報処理方法、サーバ処理方法およびプログラム
US8385553B1 (en) 2012-02-28 2013-02-26 Google Inc. Portable secure element
US8429409B1 (en) 2012-04-06 2013-04-23 Google Inc. Secure reset of personal and service provider information on mobile devices
JP6382521B2 (ja) * 2014-01-17 2018-08-29 株式会社東芝 携帯可能電子装置、および電子回路
US11080684B2 (en) * 2014-12-08 2021-08-03 Infineon Technologies Ag Processing data on smartcard
JP6737445B2 (ja) * 2016-08-17 2020-08-12 富士通コネクテッドテクノロジーズ株式会社 デジタル署名管理装置
JP6890410B2 (ja) * 2016-12-16 2021-06-18 キヤノン株式会社 情報処理装置及びアプリケーションの管理方法及びプログラム
US10592710B1 (en) 2018-10-02 2020-03-17 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10871958B1 (en) * 2019-07-03 2020-12-22 Capital One Services, Llc Techniques to perform applet programming
CN113920603B (zh) * 2020-07-10 2023-10-27 霍致文 一种激活方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4454414A (en) * 1982-06-16 1984-06-12 Vericard Corporation Funds transfer system using optically coupled, portable modules
DE69320900T3 (de) * 1992-08-13 2007-04-26 Matsushita Electric Industrial Co., Ltd., Kadoma IC-Karte mit hierarchischer Dateienstruktur
CA2288824A1 (en) * 1997-03-24 1998-10-01 Marc B. Kekicheff A system and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card
US6889198B2 (en) * 1998-01-30 2005-05-03 Citicorp Development Center, Inc. Method and system for tracking smart card loyalty points
EP0949595A3 (en) 1998-03-30 2001-09-26 Citicorp Development Center, Inc. Method and system for managing applications for a multi-function smartcard
AU770396B2 (en) 1998-10-27 2004-02-19 Visa International Service Association Delegated management of smart card applications
US6390374B1 (en) * 1999-01-15 2002-05-21 Todd Carper System and method for installing/de-installing an application on a smart card

Also Published As

Publication number Publication date
EP1318488A2 (en) 2003-06-11
EP1318488A3 (en) 2004-04-14
US6834799B2 (en) 2004-12-28
US20030146277A1 (en) 2003-08-07
JP2003173427A (ja) 2003-06-20
CN1423232A (zh) 2003-06-11

Similar Documents

Publication Publication Date Title
JP3880384B2 (ja) Icカード
JP3766052B2 (ja) 高級プログラミング言語を用いたマイクロコントローラ
CN101501642B (zh) 使用虚拟机启动的便携式大容量存储装置的方法
US7434263B2 (en) System and method for secure storage data using a key
US6449720B1 (en) Public cryptographic control unit and system therefor
KR100267872B1 (ko) 프로그램코드배포방법및컴퓨터시스템
US7805375B2 (en) Digital license migration from first platform to second platform
US7757100B2 (en) Protected volume on a data storage device with dual operating systems and configurable access and encryption controls
KR100896391B1 (ko) 외장 기기
WO2011114655A1 (ja) 情報処理装置、仮想マシン生成方法及びアプリ配信システム
US20120185694A1 (en) Information processing apparatus, a server apparatus, a method of an information processing apparatus, a method of a server apparatus, and an apparatus executable program
JP2002318719A (ja) 高信頼計算機システム
JPH11282753A (ja) オブジェクトへのアクセス方法及び装置、オブジェクトへのアクセスを制御するプログラムを格納した記憶媒体
JP4055393B2 (ja) データ処理装置およびその方法とプログラム
KR101504647B1 (ko) 가상 머신 활성화를 갖는 휴대용 대량 저장장치
US20040123138A1 (en) Uniform security token authentication, authorization and accounting framework
US7805601B2 (en) Computerized apparatus and method for version control and management
EP1151378A1 (en) Techniques for permitting access across a context barrier in a small footprint device using shared object interfaces
JP2723231B2 (ja) ソフトウェア権利管理制御方法
WO2024036832A1 (zh) 基于tpm的智能密码钥匙密码应用接口的实现方法
US11556673B2 (en) Method for managing an instance of a class
Toll et al. The Caernarvon secure embedded operating system
JP2009169868A (ja) 記憶領域アクセス装置及び記憶領域のアクセス方法
PLATFORM ICitizen Open v2 Cyberflex Access 64k v3
Karger et al. Implementing a high-assurance smart-card OS

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040906

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060518

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060714

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: 20061013

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061107

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3880384

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091117

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101117

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111117

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121117

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121117

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131117

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees