JP6013103B2 - Icカード - Google Patents

Icカード Download PDF

Info

Publication number
JP6013103B2
JP6013103B2 JP2012206828A JP2012206828A JP6013103B2 JP 6013103 B2 JP6013103 B2 JP 6013103B2 JP 2012206828 A JP2012206828 A JP 2012206828A JP 2012206828 A JP2012206828 A JP 2012206828A JP 6013103 B2 JP6013103 B2 JP 6013103B2
Authority
JP
Japan
Prior art keywords
card
application
command
install
isd
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.)
Active
Application number
JP2012206828A
Other languages
English (en)
Other versions
JP2014063264A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012206828A priority Critical patent/JP6013103B2/ja
Publication of JP2014063264A publication Critical patent/JP2014063264A/ja
Application granted granted Critical
Publication of JP6013103B2 publication Critical patent/JP6013103B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明の実施形態は、不揮発性メモリ及びCPU(Central Processing Unit)等を有するICチップを内蔵し、外部装置からロードされたロードファイルをインストールしてアプリケーションを作成するICカードに関する。
電子マネー又はクレジットカード等として注目されているICカードは、書込み、書換えが可能な不揮発性メモリと、これを管理、制御するためのCPU等の制御素子を有したICチップとがプラスチック板等で構成されるカードの内部に埋設されている構造をとる。
また、ICカードのOS(Operating System)の上にバーチャルマシン(Virtual Machine)をのせた、いわゆるJavaカード(登録商標)と称されるICカードが開発されている。この種のICカードの特徴は、Java言語でアプリケーション(アプレット)を作成することが可能で、カード発行者等の権限を持った者であれば、ICカード内のアプリケーションを追加したり削除したりすることが可能であることにある。
ところで、この種のICカードでは、アプリケーションをインストールする場合、不揮発性メモリにおけるインスタンス領域にてアプリケーションを管理する。従来のICカードは、アプリケーションをインストールする際に、ロードファイルへ不揮発性メモリにおいてインスタンス領域を確保するためのメモリ残容量を提供する機能がない。そのため、アプリケーションをインストールする際に不揮発性メモリにインスタンス領域を確保するだけのメモリ残容量がない場合、ICカードは、メモリ残容量の大きさに係らず、アプリケーションをインストールすることができない。
特許第4398619号公報
以上のように、従来のICカードでは、ロードファイルへ不揮発性メモリにおいてインスタンス領域を確保するためのメモリ残容量を提供する機能がないため、アプリケーションをインストールする際に不揮発性メモリにインスタンス領域を確保するだけのメモリ残容量がない場合、メモリ残容量の大きさに係らず、アプリケーションをインストールすることができないという問題があった。
そこで、目的は、アプリケーションをインストールする際に、ロードファイルへ不揮発性メモリにおいてインスタンス領域を確保するためのメモリ残容量を提供する機能を有するICカードを提供することにある。
実施形態によれば、ICカードは、メモリ及び管理手段を具備する。メモリは、ロードファイルと、前記ロードファイルからインストールしたアプリケーションとを記録する。管理手段は、前記メモリに記録されるアプリケーションの容量を管理し、インストールコマンドが入力されると、前記管理する容量に基づいて前記メモリの空き容量を算出し、前記インストールコマンドを前記空き容量についての情報と共に、アプリケーション層へディスパッチする。
本実施形態に関わるICカードのハードウェア構成を示すブロック図である。 図1に示すICカードのソフトウェア構成を示す図である。 図1に示す不揮発性メモリの領域分割を示す図である。 図1に示すICカードが受信するコマンドフォーマットを示す図である。 図1に示すICカードと外部装置との間におけるコマンドのやり取りを示すシーケンス図である。 ICカードが図5に示すINSTALLコマンドの処理を実行する際のシーケンス図である。 ISDが図6に示すメモリ残容量を算出する際のフローチャートを示す図である。 図3に示すシステム領域に記録される管理テーブルを示す図である。
以下、実施の形態について、図面を参照して説明する。
図1は、本実施形態に関わるICカードのハードウェア構成を概略的に示すブロック図である。図1に示すICカードは、カードの全体的な管理及び制御を司るCPU11(Central Processing Unit)と、CPU11の制御用プログラム等が格納されるROM(Read Only Memory)12と、データ処理を実施するCPU11の作業領域としてのRAM(Random Access Memory)13と、外部装置と通信を行うための通信ユニット(UART)14と、各種データ、ロードファイル及びアプリケーション等を記憶する不揮発性メモリ(NV(EEPROM))15と、演算の補助を行うコプロセッサ(Co−Processor)16とを具備する。
図2は、図1に示すICカードの一例としてJavaカードのソフトウェア構成を概略的に示す図である。ICカードのソフトウェア構成は、ハードウェア(H/W)層21、OS(Operating System)層22、プラットフォーム層23及びアプリケーション層24から構成される。アプリケーション層24が最上位に位置し、プラットフォーム層23、OS層22及びH/W層21の順に下位となる。
H/W層21は、通信ユニット14、不揮発性メモリ15及びコプロセッサ16等のハードウェアからなり、OS層22のカードOS221により制御される。
プラットフォーム層23では、バーチャルマシン(Virtual Machine)231、ISD(Issuer Security Domain)232及びAPI(Application Program Interface)233がカードOS221上で動作する。
バーチャルマシン231は、Javaのコンパイラが生成する実行用コードをプラットフォーム固有の形式に変換して実行する。
ISD232は、ロード及びインストールを実施する管理アプリケーションである。インストールとは、不揮発性メモリ15に記録されているロードファイルを、アプリケーションとして実行可能な状態にする処理をいう。ISD232は、インストールコマンドを受信すると、不揮発性メモリ15のメモリ残容量を算出し、インストールコマンドと算出したメモリ残容量とをアプリケーション層24へディスパッチする。
API233は、ネットワークを通じてウェブブラウザに読み込まれて実行されるJavaプログラム(アプレット)の関数である。
アプリケーション層24は、例えば、複数のアプリケーションを有する。アプリケーション層24の各アプリケーションは、API233を使用して種々の処理を実現する。各アプリケーションの実態は、不揮発性メモリ15に記録される。
図3は、図1に示す不揮発性メモリ15の領域分割を示す模式図である。不揮発性メモリ15は、システム領域とアプリケーション領域とに二分される。アプリケーション領域は、さらにロードモジュール領域と、インスタンス領域とに分けられる。ロードモジュール領域には、ロードしたロードファイルが格納される。インスタンス領域には、ロードファイルからインストールされたアプリケーションが登録される。
システム領域には、インスタンス領域に登録されるアプリケーションのアプリケーション識別子(AID)、鍵データ等のアプリケーション固有のデータを書き込んだ不揮発性メモリ15の先頭アドレス、及び、登録されたアプリケーションが必要とするメモリ容量等が記載される管理テーブルが記録される。
図4は、ISO/IEC 7816−4で規定されるICカードのコマンドフォーマットの例を示す図である。コマンドは、コマンドの種別を示すクラスバイト(CLA)、コマンドを示すインストラクションバイト(INS)、コマンドオプション指定を示すパラメータバイト(P1,P2)、後続のコマンドデータフィールドの長さを示すLcフィールド、コマンド処理に使用するデータを示すコマンドデータフィールド(Data)、及び、コマンドへの応答として返されるレスポンスデータの最大長を示すLeフィールドから成る。
例えば、ICカード内部のアプリケーション選択を実行する場合、ICカードは、ISO/IEC 7816−4で規定されるセレクトコマンドを受信する。このとき、セレクトコマンドのコマンドデータフィールドにはロードファイルの名称であるDF nameが指定されている。ICカードのCPU11は、コマンドフォーマットが正しいと判断すると、コマンドデータフィールドで指定されたDF nameと一致する選択可能なアプリケーションを検索する。
また、例えば、ロードファイルからアプリケーションをインストールする場合、ICカードは、ISO/IEC 7816−4で規定されるインストールコマンドを受信する。このとき、インストールコマンドのコマンドデータフィールドには、ロードファイルの名称であるDF name、AID、及び、アプリケーションをインストールするのに必要なメモリ容量が含まれる。ICカードのCPU11は、コマンドフォーマットが正しいと判断すると、コマンドデータフィールドで指定されたDF nameと一致するロードファイルから、AIDにより識別されるアプリケーションをインストールする。
次に、以上のように構成されたICカードによるアプリケーションインストール動作を詳細に説明する。図5は、外部装置とICカードとの間における、アプリケーションのインストールが完了するまでのコマンドのやり取りを示すシーケンス図である。
まず、外部装置から、アプリケーションのインストールを管理するISD232が指定されたSELECTコマンドが、ICカードへ送信される(シーケンスS51)。ICカードは、受信したコマンドのCLA及びINSを確認し、SELECTコマンドの処理を実行する。ICカードは、SELECTコマンドの処理が正常に終了すると、正常終了を知らせるSELECT Responseを外部装置へ送信する(シーケンスS52)。
外部装置は、ICカードからSELECT Responseを受け取ると、ICカードと外部装置との間のセキュア通信チャネルを提供するためにGlobal Platform Card Specificationに示されるINITIALIZE UPDATEコマンドをICカードへ送信する(シーケンスS53)。ICカードは、受信したコマンドのCLA及びINSを確認し、INITIALIZE UPDATEコマンドの処理を実行する。INITIALIZE UPDATEコマンドの処理により、カードとホストとの間でカード及びセキュアチャネルセッションデータが共有される。ICカードは、INITIALIZE UPDATEコマンドの処理が正常に終了すると、正常終了を知らせるINITIALIZE UPDATEレスポンスを外部装置へ送信する(シーケンスS54)。
外部装置は、ICカードからINITIALIZE UPDATEレスポンスを受信すると、ICカードと外部装置との間のセキュア通信チャネルを提供するためにGlobal Platform Card Specificationに示されるEXTERNAL AUTHENTICATEコマンドをICカードへ送信する(シーケンスS55)。ICカードは、受信したコマンドのCLA及びINSを確認し、EXTERNAL AUTHENTICATEコマンドの処理を実行する。EXTERNAL AUTHENTICATEコマンドの処理により、ホスト認証され、後続のコマンドのセキュリティレベルが決定される。このセキュリティレベルにより、後続のコマンドは平文で受信可能であるのか、コマンドの信頼性を保持するためのメッセージ認証コード(MAC)が必要であるのか、コマンドデータの暗号化が必要であるのかが決定される。ICカードは、EXTERNAL AUTHENTICATEコマンドの処理が正常に終了すると、正常終了を知らせるEXTERNAL AUTHENTICATEレスポンスを外部装置へ送信する(シーケンスS56)。
外部装置は、ICカードからEXTERNAL AUTHENTICATEレスポンスを受信すると、アプリケーションのインストールを実施するためにGlobal Platform Card Specificationに示されるINSTALL[for install & makeselectable]コマンドをICカードへ送信する(シーケンスS57)。ICカードは、受信したコマンドのCLS及びINSを確認し、INSTALL[for install & makeselectable]コマンドの処理を実行する(シーケンスS58)。INSTALL[for install & makeselectable]コマンドの処理により、プログラムに応じてインスタンス領域の確保、AIDの付与、ICカードへのアプリケーションの登録及びICカードアプリケーションとして実行可能になるアプリケーション選択可能状態への移行を実施する。ICカードは、INSTALL[for install & makeselectable]コマンドの処理が正常に終了すると、正常終了を知らせるINSTALLレスポンスを外部装置へ送信する(シーケンスS59)。
図6は、ICカードが図5に示すINSTALLコマンドの処理を実行する際のシーケンス図である。
カードOS221は、外部装置からINSTALLコマンドを受信すると(シーケンスS61)、アプリケーションのインストール処理を実行可能なISDが選択されているか否かを判断する(シーケンスS62)。インストール処理を実行可能なISDが選択されていない場合、カードOS221は、アプリケーションのインストール処理を異常終了する。インストール処理を実行可能なISDが選択されている場合、カードOS221は、INSTALLコマンドをISD232へディスパッチする(シーケンスS63)。
ISD232は、INSTALLコマンドを受信すると、セキュア通信チャネルが確立済みであるか否かを判断する(シーケンスS64)。セキュア通信チャネルが確立済みでない場合、ISD232は、アプリケーションのインストール処理を異常終了する。セキュア通信チャネルが確立済みである場合、ISD232は、カード内の不揮発性メモリ15の未使用領域の容量を算出する(シーケンスS65)。以下では、図7を用いて、ISD232がメモリ残容量を算出する際の処理を説明する。また、本説明において、不揮発性メモリ15のシステム領域には、図8に示す管理テーブルが記録されているものとする。なお、管理テーブルでは、インスタンス領域に登録されたアプリケーションのAID、アプリケーション固有のデータを書き込んだ不揮発性メモリ15の先頭アドレス、及び、登録されたアプリケーションが必要とするメモリ容量が管理される。
まず、ISD232は、管理テーブルの先頭から、AIDが登録されているか否かを検索する。すなわち、ISD232は、AIDがNULLであるかを判断する(ステップS71)。AIDが登録されている場合、例えば、AIDが“A000000001”の場合にはAIDはNULLではないため(ステップS71のNo)、ISD232は、登録されているAIDについての必要メモリ容量である、例えば、“0x0400”を使用済みメモリ領域として加算する(ステップS72)。ISD232は、ステップS71の処理を再度実行し、AIDがNULLとなるまで、必要メモリ容量を使用済みメモリ領域に加算する。
ステップS71において、AIDがNULLである場合(ステップS71のYes)、ISD232は、インスタンス領域のメモリ容量を取得する(ステップS73)。ISD232は、取得したメモリ容量から、使用済みメモリ領域を差し引くことで、インスタンス領域のメモリ残容量を算出し(ステップS74)、処理をシーケンスS66へ移行する。
ISD232は、シーケンスS65で図7に示すようにメモリ残容量を算出すると、INSTALLコマンドと、算出したメモリ残容量とをロードファイルへ引き渡す(シーケンスS66)。
ロードファイルは、受信したメモリ残容量に応じてアプリケーションをインストールすることが可能なようにインストールメソッドが予め設計されている。ロードファイルは、INSTALLコマンドと、算出したメモリ残容量とを受け取ると、メモリ残容量に応じたインストールメソッドであるinstall()を読み出し、読み出したinstall()を実行する(シーケンスS67)。
ISD232は、ロードファイルがinstall()を実行している際、INSTALLコマンドに含まれるAIDがすでに管理テーブルに登録済みであるか否か、すなわち、要求されたAIDが登録済みのAIDと重複するか否かを判断する(シーケンスS68)。AIDが重複している場合、ISD232は、アプリケーションのインストール処理を異常終了する。AIDが重複していない場合、ISD232は、管理テーブルにAIDを登録する(シーケンスS69)。また、ISD232は、アプリケーション固有のデータをインスタンス領域に書き込むと共に、管理テーブルにアプリケーション固有のデータを書き込んだ先頭アドレスを書き込み、アプリケーションをインストールするのに必要なメモリ容量を管理テーブルに書き込む(シーケンスS610)。ISD232は、管理テーブルへの登録が正常に終了すると、Successコマンドをロードファイルへ送信する(シーケンスS611)。
ロードファイルは、アプリケーションのインストール処理が正常に終了すると、INSTALL ResponseをISD232へ出力する(シーケンスS612)。ISD232は、ロードファイルからINSTALL Responseを受けると、カードOS221へINSTALL Responseを出力する。カードOS221は、ISD232からINSTALL Responseを受けると、外部装置へINSTALL Responseを出力する。
以上のように、上記実施形態では、ISD232は、INSTALLコマンドを受信すると、管理テーブルを参照し、不揮発性メモリ15のメモリ残容量を算出する。そして、ISD232は、INSTALLコマンドと、算出したメモリ残容量とをロードファイルへ出力するようにしている。
したがって、本実施形態に係るICカードは、インストールの対象となるロードファイルに対し、不揮発性メモリ15におけるインスタンス領域を確保するためのメモリ残容量を提供する機能を有することとなる。
これにより、ロードファイルの作成者は、メモリ残容量を取得することを前提としたコード開発を行うことが可能となる。そして、ロードファイルにメモリ残容量を取得することを前提としたコードが含まれていれば、メモリ残容量に応じてインストールするアプリケーションのサイズを変化させることが可能となる。すなわち、不揮発性メモリ15にはメモリ残容量に応じたアプリケーションが記録されることになる。
なお、本実施形態に係るISD232は、算出したメモリ残容量を外部へ出力するようにしても構わない。これにより、ISD232が管理するメモリ残容量を、アプリケーションのインストール前に予め要求する必要がなくなり、アプリケーションをインストールする処理が効率化されることになる。
本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
11…CPU、12…ROM、13…RAM、14…UART、15…NV、16…Co−Processor、21…H/W層、22…OS層、221…カードOS、23…プラットフォーム層、231…バーチャルマシン、232…ISD、233…API、24…アプリケーション層

Claims (2)

  1. ロードファイルと、前記ロードファイルからインストールしたアプリケーションとを記録するメモリと、
    前記メモリに記録されるアプリケーションの容量を管理し、インストールコマンドが入力されると、前記管理する容量に基づいて前記メモリの容量を算出し、前記インストールコマンドを前記量と共に、アプリケーション層へディスパッチする管理手段と
    を具備するICカード。
  2. 前記管理手段は、前記メモリに複数のアプリケーションが記録されている場合、前記メモリの容量と、前記複数のアプリケーションの容量の累積値との差を取ることで前記容量を算出する請求項1記載のICカード。
JP2012206828A 2012-09-20 2012-09-20 Icカード Active JP6013103B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012206828A JP6013103B2 (ja) 2012-09-20 2012-09-20 Icカード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012206828A JP6013103B2 (ja) 2012-09-20 2012-09-20 Icカード

Publications (2)

Publication Number Publication Date
JP2014063264A JP2014063264A (ja) 2014-04-10
JP6013103B2 true JP6013103B2 (ja) 2016-10-25

Family

ID=50618463

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012206828A Active JP6013103B2 (ja) 2012-09-20 2012-09-20 Icカード

Country Status (1)

Country Link
JP (1) JP6013103B2 (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001236232A (ja) * 2000-02-25 2001-08-31 Ntt Data Corp Icカードシステム、icカード、icカード処理方法及び記録媒体
FR2821231A1 (fr) * 2001-02-19 2002-08-23 Bull Cp8 Procede d'administration d'une carte d'abonne pour un equipement de telephonie mobile du type a lecteur auxiliaire et systeme embarque pour la mise en oeuvre du procede
JP3668204B2 (ja) * 2002-03-20 2005-07-06 株式会社東芝 携帯可能電子装置及びデータ領域割当方法
JP2004164076A (ja) * 2002-11-11 2004-06-10 Fujitsu Ltd メモリ及び該メモリの動的管理方法
DE10320062A1 (de) * 2003-05-06 2004-12-16 Giesecke & Devrient Gmbh Speicherverwaltung bei einem tragbaren Datenträger
JP2005275620A (ja) * 2004-03-23 2005-10-06 Toshiba Corp 携帯可能電子装置、電子処理システム、及び電子処理方法
JP2006119901A (ja) * 2004-10-21 2006-05-11 Toshiba Corp 携帯可能電子装置および携帯可能電子装置のアプリケーション更新方法
JP5057829B2 (ja) * 2007-04-17 2012-10-24 株式会社東芝 携帯可能電子装置およびicカード
JP5267612B2 (ja) * 2011-04-22 2013-08-21 大日本印刷株式会社 Icカード用icモジュール、icカード及びicカードのプログラム

Also Published As

Publication number Publication date
JP2014063264A (ja) 2014-04-10

Similar Documents

Publication Publication Date Title
US8196131B1 (en) Payment application lifecycle management in a contactless smart card
US20060086785A1 (en) Portable electronic apparatus and method of updating application in portable electronic apparatus
JP2004272400A (ja) メモリカード
JP2003141488A (ja) 高級プログラミング言語を用いたマイクロコントローラ
JPH11120300A (ja) 可搬型カード媒体,可搬型カード媒体のメモリ空間管理方法,可搬型カード媒体の発行方法および可搬型カード媒体のプログラムデータ書込方法並びにメモリ空間管理プログラムが記録されたコンピュータ読取可能な記録媒体
CN1316360C (zh) 注脚设备及运行注脚设备的方法
JP4981210B2 (ja) 小型装置において共有オブジェクト・インターフエイスを使用してコンテキスト障壁を横断するアクセスを許可する技術
EP3333701B1 (en) Method for implementing host card emulation, terminal, and data routing method and apparatus
JP2003140760A (ja) データ処理装置およびその方法とプログラム
WO2007119594A1 (ja) セキュアデバイス及び読み書き装置
JP6503560B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP4742469B2 (ja) 複数のosを用いるicカード、icカード処理装置および処理方法
JP6013103B2 (ja) Icカード
JP5057829B2 (ja) 携帯可能電子装置およびicカード
JP2005134953A (ja) 未設定icカード、icカード発行システム及びicカードアプリケーションの発行方法
JP4443699B2 (ja) 携帯可能電子装置および携帯可能電子装置の制御方法
CN102012804B (zh) 一种智能卡cos指令扩展方法
JP2000172808A (ja) Icカードとアプリケーション管理方法
JP2018136835A (ja) Icカード及びicカード発行システム、icカード発行方法
KR101995151B1 (ko) 제2 애플리케이션에 의한 사용을 위해 제1 애플리케이션으로부터 제1 데이터를 전송하도록 구성된 집적 회로 카드
JP2005258968A (ja) Icカードに書込まれたデータの正当性検証方法およびicカード用プログラム
JP4899499B2 (ja) Icカード発行方法、icカード発行システムおよびicカード
JP2006293706A (ja) アプリケーションの更新機能を有するマルチアプリケーションicカード
JP2004334745A (ja) Icカード
JP7010084B2 (ja) Ic決済で用いるトークンデバイス

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160318

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160921

R151 Written notification of patent or utility model registration

Ref document number: 6013103

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313114

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350