JP6933446B2 - 電子情報記憶媒体、情報処理方法、及び情報処理プログラム - Google Patents

電子情報記憶媒体、情報処理方法、及び情報処理プログラム Download PDF

Info

Publication number
JP6933446B2
JP6933446B2 JP2016077918A JP2016077918A JP6933446B2 JP 6933446 B2 JP6933446 B2 JP 6933446B2 JP 2016077918 A JP2016077918 A JP 2016077918A JP 2016077918 A JP2016077918 A JP 2016077918A JP 6933446 B2 JP6933446 B2 JP 6933446B2
Authority
JP
Japan
Prior art keywords
command
load
exclusive control
satisfied
program
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
JP2016077918A
Other languages
English (en)
Other versions
JP2017188010A (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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing 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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2016077918A priority Critical patent/JP6933446B2/ja
Publication of JP2017188010A publication Critical patent/JP2017188010A/ja
Priority to JP2020140749A priority patent/JP6948021B2/ja
Application granted granted Critical
Publication of JP6933446B2 publication Critical patent/JP6933446B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

ICチップ等の電子情報記憶媒体の技術分野に関する。
UIM(User Identity Module)カードをはじめとする従来のICカードは、複数のアプリケーションを搭載することがあっても、これらのアプリケーションを管理する主体はICカード発行者のみであった。一方、NFC(Near Field Communication)対応のUIMカードでは、UIMカード発行者に加えて、クレジット決済サービスなどのサービスを提供するサービス事業者が自ら提供するアプリケーションの管理主体となる。よって、特許文献1に開示されているように、複数のサービス事業者が各アプリケーションの管理主体となりうる。
例えば、図1に示すように、ユーザが、UIMカードUCが装着された携帯端末MPを使って、利用するサービスに対応するアプリケーションをサービス提供者SP1、SP2のアプリケーションダウンロードサーバAS2、AS3からネットワークNWを介してダウンロードするようになってきており、従来のUIM発行者UIに加え、全く独立した主体である複数のサービス事業者SP1、SP2がUIMカードUCに関与することがある。
特許第4523814号公報
アプリケーションの管理主体がUIMカード発行者のみ場合は、その管理主体がUIMのアプリケーションに関する処理を全て把握することができた。しかし、UIMに関与する主体が複数になったことにより、アプリケーション管理がそれぞれの主体によって独立して行われるため様々な問題が生じている。
例えば、アプリケーションダウンロードサーバからアプリケーションをダウンロードし、UIMカード内へダウンロードしたプログラムを配置する処理(ロード処理)は、現在のUIMカードにとって負荷が大きいため(メモリが小さくCPUも非力であるため)複数のプログラムのロード処理を並列に実行することはできないが、管理主体が複数となることで、そういった要求が起こり得る。具体的には、一つのアプリケーションのプログラムについてロード処理を実行している際に、他のアプリケーションのプログラムについてロード処理の開始要求を受け付けること、すなわち、ロード処理の競合が以前より起こりやすくなっている。
そこで、本発明は、ロード処理などの排他制御の対象とすべき処理の実行中に、他の処理の実行要求を受け付けた場合であっても、適切に処理を制御することができる電子情報記憶媒体や情報処理方法等を提供することを目的とする。
請求項2に記載の発明は、メモリと外部装置から受け付けたコマンドに応じた処理を実行するプロセッサを備える電子情報記憶媒体による情報処理方法であって、前記プロセッサが、排他制御の対象である第1処理の実行中に排他制御の対象である第2処理の実行要求コマンドを受け付けた場合に、前記第1処理と前記第2処理について所定の条件を満たしているか判定し、前記所定の条件が満たされていると判定した場合には、前記第1処理についての前記排他制御を解除し、前記第2処理を実行し、前記所定の条件が満たされていないと判定した場合には、前記第2処理の前記実行要求コマンドの送信元に実行不可を示すレスポンスを送信する工程を含み、前記プロセッサは、第1SD(Security Domain)に従って前記第1処理を実行している際に、前記第1SDより優先度の高い第2SDについて前記第2処理の実行要求を受け付けた場合に、前記所定の条件が満たされていると判定することを特徴とする。
請求項3に記載の発明は、メモリと外部装置から受け付けたコマンドに応じた処理を実行するプロセッサを備える電子情報記憶媒体における前記プロセッサを、排他制御の対象である第1処理の実行中に排他制御の対象である第2処理の実行要求コマンドを受け付けた場合に、前記第1処理と前記第2処理について所定の条件を満たしているか判定し、前記所定の条件が満たされていると判定した場合には、前記第1処理についての前記排他制御を解除し、前記第2処理を実行し、前記所定の条件が満たされていないと判定した場合には、前記第2処理の前記実行要求コマンドの送信元に実行不可を示すレスポンスを送信する制御手段として機能させる情報処理プログラムであって、前記制御手段は、第1SD(Security Domain)に従って前記第1処理を実行している際に、前記第1SDより優先度の高い第2SDについて前記第2処理の実行要求を受け付けた場合に、前記所定の条件が満たされていると判定することを特徴とする。
請求項に記載の発明は、メモリとプロセッサを備える電子情報記憶媒体における前記プロセッサを、排他制御の対象である第1処理の実行中に排他制御の対象である第2処理の実行要求を受け付けた場合に、前記第1処理と前記第2処理について所定の条件を満たしているか判定し、前記所定の条件が満たされていると判定した場合には、前記第1処理についての前記排他制御を解除し、前記第2処理を実行する制御手段として機能させる情報処理プログラムであって、前記制御手段は、第1アプリケーションに従って前記第1処理を実行している際に、前記第1アプリケーションより優先度の高い第2アプリケーションについて前記第2処理の実行要求を受け付けた場合に、前記所定の条件が満たされていると判定することを特徴とする。
本発明によれば、排他制御の対象である第1処理の実行中に第2処理の実行要求を受け付けた場合に、第1処理と第2処理について所定の条件を満たしているか否かに応じて、第1処理についての排他制御が解除されることから、適切に第1処理と第2処理を制御することができる。
NFCサービスシステムの概要を示す図である。 本実施形態に係る携帯端末1の概要構成例を示すブロック図である。 本実施形態に係るUIMカード18の概要構成例を示すブロック図である。 SD(Security Domain)によるアプリケーションプログラムのロード処理を示すシーケンス図である。 (A)はSELECTコマンドの構成例を示す図であり、(B)はINITIALIZE UPDATEコマンドの構成例を示す図であり、(C)はEXTERNAL AUTHENTICATEコマンドの構成例を示す図であり、(D)はINSTALL[for load]コマンドの構成例を示す図であり、(E)はLOADコマンドの構成例を示す図である。 (A)、(B)はロジカルチャネルの概要を示す図である。 ロード処理時におけるメモリの使用例を示す図である。 CPU181による排他制御処理を示すフローチャートである。
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、携帯端末に備えられたUIMカードに対して本発明を適用した場合の実施の形態である。
まず、図2等を参照して、本実施形態に係る携帯端末1の構成及び機能概要を説明する。
[1.携帯端末1の構成]
図2は、本実施形態に係る携帯端末1の概要構成例を示すブロック図である。図2に示すように、携帯端末1は、制御部11、記憶部12、無線通信部13、表示部14、入力部15、ICカードインターフェース16、及びCLF19等を備えて構成され、これらの構成要素はバス17を介して相互に接続される。なお、携帯端末1は、例えば携帯電話機やスマートフォン、タブレット端末等である。
制御部11は、CPU(Central Processing Unit)、ROM(Read Only Memory)、及びRAM(Random Access Memory)等により構成される。記憶部12は、例えばフラッシュメモリ等の不揮発性メモリにより構成される。上記ROMまたは記憶部12には、オペレーティングシステム(OS)及びミドルウェアが記憶される。また、記憶部12には、携帯端末1にインストールされたAPI(Application Program Interface)及びアプリケーションソフトウェア(アプリケーションプログラム言語から構成されるソフトウェア)等が記憶される。APIは、アプリケーションソフトウェアからオペレーティングシステムの機能を利用するためのインターフェースである。アプリケーションソフトウェアは、例えば所定のサーバからダウンロード可能なプログラムである。
無線通信部13は、アンテナを有し、移動体通信網における基地局との間で行われる無線通信を制御する。表示部14は、例えばタッチパネル方式の表示パネルを有し、表示パネルへの表示制御、及びユーザからの操作指示の受け付けを行う。入力部15は、ユーザからの操作指示を入力するための操作ボタンを有し、操作ボタンに応じた信号を制御部11に出力する。ICカードインターフェース16は、制御部11とUIMカード18との間のインターフェース、及び制御部11とCLF19との間のインターフェースを担う。
UIMカード18は、UICC(Universal Integrated Circuit Card)の一つであり、例えば、従来のSIM(Subscriber Identity Module)をベースに機能を拡張された接触型ICチップを搭載する。
CLF19は、NFCの規格で規定される非接触通信を行う非接触型ICチップであり、非接触通信のフィールド内で読取装置(図示せず)との間で各種信号の送受信を行うためのアンテナに接続されている。そして、ユーザが携帯端末1を読取装置に翳すと、読取装置から送信されたコマンドを、インターフェイス(図示せず)を介してSIMカード18へ送信するようになっている。なお、CLF19は、携帯端末1のOSにより操作可能になっている。
[2.ICチップCの構成]
図3は、本実施形態に係るUIMカード18に搭載されるICチップCの概要構成例を示すブロック図である。図3に示すように、ICチップCは、CPU181(「プロセッサ」の一例)、RAM182、不揮発性メモリ183、及びI/O回路184等を備え、これらの構成要素はバス185を介して相互に接続される。
不揮発性メモリ183は、例えばフラッシュメモリであるが、EEPROMであってもよい。RAM182には、例えばOS及びミドルウェアが機能するうえで一時的に必要となるデータが記憶される。不揮発性メモリ183には、例えばOS及びミドルウェアが記憶される。また、不揮発性メモリ183には、ICチップC自身(全体)乃至ICチップC内のアプリケーションプログラムを管理するためのアプリケーションであるSD(Security Domain)が一つ以上記憶されている。
I/O回路184は、ISO7816等によって定められた、C1〜C8の8個の接続端子を有する。ここで、C1端子は電源端子(VCC)であり、C5端子はグランド端子(GND)である。また、C2端子は、リセット端子(RST)であり、C3端子は、クロック端子(CLK)である。また、C7端子は、CPU181と制御部11との間の通信のために用いられる。また、C6端子は、CPU181とCLF19との間の通信のために用いられる。なお、上述したように、CPU181とCLF19間の通信プロトコルには、SWP(Single Wire Protocol)が適用される。
そして、CPU181は、CLF19からコマンドを受信すると、当該コマンドに応じたコマンド処理を実行し、当該処理の結果を示す応答をCLF19へ行う(返信する)。また、CPU181は、制御部11からコマンドを受信すると、当該コマンドに応じたコマンド処理を実行し、当該処理の結果を示す応答を制御部11へ行う。
次に、SDについて説明する。SDには、ICカード発行者のセキュリティポリシーを実現するISD(Issuer SD)と、NFCサービス提供者のセキュリティポリシーを実現するSSD(Supplementary SD)がある。
SDは主に以下の機能をサポートすることで、ICチップC内のカードコンテント(アプリケーションプログラム、アプリケーションインスタンス等)に対して、ICカード発行者やNFCサービス提供者の管理およびセキュリティポリシーを実現する。なお、以下、アプリケーションインスタンスをアプリケーションと表記することがある。
(機能例)
1.ICカードのライフサイクル管理
2.アプリケーションプログラムのライフサイクル管理
3.アプリケーションインスタンスのライフサイクル管理
4.アプリケーションプログラムのロード
5.アプリケーションインスタンスの生成(インストール)
6.アプリケーションプログラム、インスタンスの削除
7.アプリケーション向け発行データの書込み
8.データの読出し
9.セキュアな通信路の確保(Secure Channel Protocol:SCP)
ここで、図4を用いて「4.アプリケーションプログラムのロード」について説明する。アプリケーションプログラムのロード処理は、アプリケーションダウンロードサーバ(以下、「サーバ」という場合がある)からアプリケーションプログラムをダウンロードする処理である(ダウンロードされるプログラムをロードプログラムという場合がある)。ICチップC側では、予め記憶されているSDのうち、サーバ側から後述するSELECTコマンドにより選択されたSDが主体となってロード処理を行う。なお、一般にSELECTコマンドでは、ロードプログラムの送信元であるサーバを管理するサービス提供者が予め提供したSDが選択される。また、以下、SDを主語として処理の説明をする場合、実際には、CPU181がSDを実行することにより処理が行われる。
まず、サーバは、ロード処理を実行させるSDを指定するためのSELECTコマンドを送信する(ステップS1)。
SELECTコマンドは、例えば、図5(A)に示す構成となっている。SELECTコマンドは、5バイトのコマンドヘッダ部501Aと5バイトのデータフィールド部501Bから構成されている。コマンドヘッダ部501Aの1バイト目はロジカルチャネル番号を示している。例えば、図5(A)の例では、「00」(16進数表記。以下同様)となっておりロジカルチャネル#0を示している。コマンドヘッダ部501Aの2バイト目はコマンドの内容(すなわち、「A4」がSELECT)を示している。コマンドヘッダ部501Aの3バイト目はモードを示している。例えば、図5(A)の例では「04」となっており、データフィールド部501Bに格納されたアプリケーションID(AID)で識別されるアプリケーション(SD)を選択するモードを示している。コマンドヘッダ部501Aの4バイト目は検索順序(先頭から検索するか又は最後尾から検索するか)を示している。コマンドヘッダ部501Aの5バイト目はAID長を示している。一方、データフィールド部501BにはAIDを示す値が格納されている。すなわち、図5(A)の例は、ICチップCのOSが管理するアプリ一覧の先頭から、アプリ名が「11 22 33 44 55」であるアプリをロジカルチャネル#0で選択する、ことを表している。
なお、ロジカルチャネルは、ICチップCの外部にあるアプリケーションがICチップCの内部にあるアプリケーションを特定する際に使用する論理上の通信路の識別番号を示している。例えば、図6(A)は、外部プログラム2がロジカルチャネル#0を介してSDへコマンドを送信し、SDからレスポンスを受信することが可能な状態であることを示している。一方、図6(B)は、外部プログラム2がロジカルチャネル#3を介してAP1へコマンドを送信し、AP1からレスポンスを受信することが可能な状態であることを示し、また、外部プログラム1がロジカルチャネル#1を介してSDへコマンドを送信し、SDからレスポンスを受信することが可能な状態であることを示している。つまり、ロジカルチャネルは外部プログラムと内部プログラムの論理上の通信路を示しており、ロジカルチャネルの数はICチップC毎に定められている。したがって、ICチップCがサポートしないロジカルチャネル番号へ外部プログラムからSELECTコマンドを受信した場合には、エラーが返信されることとなる。
図4に戻り、SELECTコマンドにより選択されたSDは、正常終了応答をサーバに送信する(ステップS2)。但し、サポートしていないロジカルチャネル番号が指定された場合や、SELECTコマンドに含まれるAIDが見つからなかった場合はエラーが発生したことを示すレスポンスをサーバに送信する。なお、全てのロジカルチャネルが使用中であっても、サポートしているロジカルチャネル番号が指定されれば、SELECTコマンドを処理することができるが、その前に選択状態であったアプリケーションのセッションは中断される。
次に、SDとサーバは相互認証、セキュアチャネル開設処理を行う(ステップS3)。具体的には、サーバ側からINITIALIZE UPDATEコマンド及びEXTERNAL AUTHENTICATEコマンドが送信され、それに対するSD側からのレスポンスが行われる。
INITIALIZE UPDATEコマンドは、例えば、図5(B)に示す構成となっている。INITIALIZE UPDATEコマンドは、5バイトのコマンドヘッダ部502Aと8バイトのデータフィールド部502Bから構成されている。コマンドヘッダ部502Aの1バイト目はロジカルチャネル番号を示している。コマンドヘッダ部502Aの2バイト目はコマンドの内容(すなわち、「50」がINITIALIZE UPDATE)を示している。コマンドヘッダ部502Aの3バイト目は相互認証、セキュアチャネル開設に用いる鍵識別子を示している。コマンドヘッダ部502Aの4バイト目には固定値「00」が格納されている。コマンドヘッダ部502Aの5バイト目はホストチャレンジ長を示している。一方、データフィールド部502Bにはホストチャレンジを示す値が格納されている。なお、ホストチャレンジとは、セキュアチャネル用のセッションキー生成に用いる8バイトの乱数である。
EXTERNAL AUTHENTICATEコマンドは、例えば、図5(C)に示す構成となっている。EXTERNAL AUTHENTICATEコマンドは、5バイトのコマンドヘッダ部503Aと10バイトのデータフィールド部から構成されており、データフィールド部はホスト認証コード部503Bと、MAC部503Cとから構成されている。コマンドヘッダ部503Aの1バイト目はロジカルチャネル番号及びセキュアメッセージコーディングの有無を示している。セキュアメッセージコーディングの有無は、下位から3ビット目が「1」の場合、セキュアメッセージコーディング有りを示し、下位から3ビット目が「0」の場合、セキュアメッセージコーディング無しを示す。図5(C)におけるコマンドヘッダ部503Aの1バイト目の「84」は16進数表記の「84」であり、2進数表記では「10000100」であるので、セキュアメッセージコーディング有りを示している。コマンドヘッダ部503Aの2バイト目はコマンドの内容(すなわち、「82」がEXTERNAL AUTHENTICATE)を示している。コマンドヘッダ部503Aの3バイト目はセキュアチャネルのセキュリティレベルを示している。コマンドヘッダ部503Aの4バイト目には固定値「00」が格納されている。コマンドヘッダ部503Aの5バイト目はデータフィールド部の長さを示している。一方、ホスト認証コード部503Bには、ホスト認証コードを示す値が格納されており、MAC部503Cには、MACを示す値が格納されている。
図4に戻り、ステップS3の処理が終了すると、サーバは、INSTALL[for load]コマンドをSDに送信する(ステップS4)。
INSTALL[for load]コマンドは、例えば、図5(D)に示す構成となっている。INSTALL[for load]コマンドは、5バイトのコマンドヘッダ部504Aと可変長のデータフィールド部から構成されており、データフィールド部はロードプログラム情報部504Bと、SD情報部504Cと、補足情報部504Cから構成されている。コマンドヘッダ部504Aの1バイト目はロジカルチャネル番号及びセキュアメッセージコーディングの有無を示している。コマンドヘッダ部504Aの2バイト目はコマンドの内容(すなわち、「E6」がINSTALL)を示している。コマンドヘッダ部504Aの3バイト目はモード(すなわち、「02」がfor load)を示している。コマンドヘッダ部504Aの4バイト目には固定値「00」が格納されている。コマンドヘッダ部504Aの5バイト目はデータフィールド部の長さを示している。一方、ロードプログラム情報部504Bには、ロードプログラム情報(すなわち、ロードされるパッケージ(プログラム)のAIDの長さとその値が格納される。SD情報部504Cには、ロードされたパッケージ(プログラム)を管理するSDを示すAIDの長さとその値が格納される。補足情報部504Cには、その他の情報(優先度を示す情報、プログラムサイズを示す情報等)が格納される。なお、INSTALL[for load]コマンドは、セキュアチャネルが必須のため、実際にICチップCへ送信する場合、EXTERNAL AUTHENTICATEコマンドのコマンドヘッダ部503Aの3バイト目で指定したセキュリティレベルに従ってセキュアメッセージコーディングを施す。例えば、MAC付与及びデータフィールド部の暗号化がセキュリティレベルとして指定された場合、データフィールド部504Dの後にMACが付与され、データフィールド部504B、504C及び504Dは何れも暗号化される。
図4に戻り、ステップS4の処理に対してSDは、INSTALL[for load]コマンドについて正常に処理が行われると、正常終了応答をサーバに送信する(ステップS5)。
次に、サーバは、LOAD(0)コマンドをSDに送信する(ステップS6)。
LOADコマンドは、ロードプログラムをn個に分割して送信する。LOADコマンドは、例えば、図5(E)に示す構成となっている。LOADコマンドは、5バイトのコマンドヘッダ部505Aとデータフィールド部505Bから構成されている。コマンドヘッダ部505Aの1バイト目はロジカルチャネル番号及びセキュアメッセージコーディングの有無を示している。コマンドヘッダ部505Aの2バイト目はLOADコマンドの内容(すなわち、「E8」がLOAD)を示している。コマンドヘッダ部505Aの3バイト目にはコマンド連鎖中(ロードプログラムを分割送信中)であることを示すデータ(00)か、最終送信分であることを示すデータ(80)が格納されている。コマンドヘッダ部505Aの4バイト目にはシークエンス番号(INSTALL[for load]コマンドを送信後、何番目のLOADコマンドであるかを示すシークエンス番号)が格納されている。なお、ステップS6で送信するLOADコマンドのシークエンス番号は「0」である。コマンドヘッダ部505Aの5バイト目はデータフィールド長を示している。一方、データフィールド部505Bは分割されたプログラム(バイナリデータ)が格納されている。なお、LOADコマンドは、セキュアチャネルが必須のため、実際にICチップCへ送信する場合、EXTERNAL AUTHENTICATEコマンドのコマンドヘッダ部503Aの3バイト目で指定したセキュリティレベルに従ってセキュアメッセージコーディングを施す。例えば、MAC付与及びデータフィールド部の暗号化がセキュリティレベルとして指定された場合、データフィールド部505Bの後にMACが付与され、データフィールド部505Bは暗号化される。
図4に戻り、ステップS6の処理に対してSDは、LOADコマンドについて正常に処理が行われると、正常終了応答をサーバに送信する(ステップS7)。但し、正常にLOADコマンドを受信できなかった場合等にはエラーが発生したことを示すレスポンスをサーバに送信する。
以降、ステップS6の処理と、ステップS7の処理を繰り返し、サーバがロードプログラムの最終分割分(n個目)を送信するためのLOAD(n−1)コマンドを送信し(ステップS8)、SDが正常に処理を行うと、正常終了応答(ロード完了)をサーバに送信する(ステップS9)。
以上のように、アプリケーションプログラムのロード処理は、アプリケーションプログラムのイントロダクションの役割を担うINSTALL[for load]コマンドと、ロードプログラムを複数のバイナリデータに分割しICチップCへ送信する役割を担うLOADコマンドからなる。また、サイズの大きなアプリケーションプログラムも最大256個まで分割することができるためLOADコマンドで送信することができる。すなわち、アプリケーションプログラムのロード処理は、複数のコマンドから成る一連の処理を順番通りに全て正しく処理することで完了する。
次に、図7を用いてアプリケーションのロード処理時におけるメモリ(不揮発性メモリ183及びRAM182)の状況について説明する。
不揮発性メモリ183は、OSプログラムが格納されるOSプログラムエリア201、UIMカードライブラリが格納されるUIMライブラリエリア(ポストロードアプリ用)202、ポストロードアプリが格納されるポストロードアプリプログラム配置エリア203及びロード処理用ワークエリア204を含んで構成されている。一方、RAM182は、OSプログラム用エリア211、ロード処理用ワークエリア212及びポストロードアプリ用エリア213を含んで構成されている。なお、ポストロードアプリとは、UIMが市場に出た後、追加されるアプリケーションのことであり、LOADコマンドによって書き込んだプログラムを基に生成したアプリケーションが該当する。
まず、SDは、LOAD(0)コマンドの受信によりロード処理が開始されると、ロード連鎖中における管理情報224を作成してRAM182のロード処理用ワークエリア212に記憶させる。
次いで、SDは、LOADコマンドにより分割されたロードプログラムを受信する度に、プログラム(実体)221をポストロードアプリプログラム配置エリア203に書き込み、プログラム(一時情報)223をロード処理用ワークエリア204に書き込む。これと同時に、SDはプログラム(一時情報)223を用いてUIMライブラリとプログラム(実体)221の参照関係を構築する処理等を行い、動作可能な状態のプログラム(実体変換後)222に変換する。なお、図7では、プログラム(実体)221とプログラム(実体変換後)222を記載しているが、プログラム(実体)221をプログラム(実体変換後)222に変換しながら、プログラム(実体変換後)でプログラム(実体)を上書きすることにより、同じエリアを使用して使用領域を節約することもできる。
次いで、SDは、最後のLOAD(n−1)コマンドを受信し、プログラムの変換処理を行うと、OSへのプログラム登録処理を行い、次いで、プログラム(一時情報)223及び管理情報224を消去し、これらが記憶されていた部分を初期化する。
このように、アプリケーションのロード処理時には、プログラム(実体)221、プログラム(実体変換後)222及びプログラム(一時情報)223が不揮発性メモリ183の大部分を使用することとなる。また、これらの領域は複数のLOADコマンドから成るロード処理が完了するまで保持し続ける必要がある。そのため、UIMカードはRAM182及び不揮発性メモリ183領域サイズの制約から、LOADコマンドで受信するバイナリデータを一時的に保存するワークエリアを複数のプログラムを並列にロードするために確保することは難しい。そのため、ICチップCでは、少なくともアプリケーションのロード処理についてCPU181が排他制御を行う必要がある。そこで以下では、CPU181による排他制御処理について説明する。
[3.排他制御処理]
図8を参照して、CPU181による排他制御処理について説明する。図8は、排他制御処理の一例を示すフローチャートである。CPU181は、外部からSELECTコマンドを受信すると、SELECTコマンドに含まれるAIDで識別されるSDを実行することにより、当該SDとして動作する。
まず、SELECTコマンドにより選択されたSD(以下、「選択されたSD」という)は、発生したイベントが排他制御開始イベントか否かを判定する(ステップS101)。なお、本実施形態において発生するイベントとして、INSTALL[for load]コマンドの受信と、LOADコマンドの受信があり、前者は排他制御開始イベントであり、後者は排他制御開始イベントではない。
選択されたSDは、発生したイベントが排他制御開始イベントではないと判定した場合(LOADコマンドを受信した場合)には(ステップS101:NO)、受信したコマンドに応じた処理を実行し(ステップS108)、ステップS109の処理に移行する。一方、選択されたSDは、発生したイベントが排他制御開始イベントであると判定した場合(INSTALL[for load]コマンドを受信した場合)には(ステップS101:YES)、次いで、排他制御フラグは「1」であるか否かを判定する(ステップS102)。排他制御フラグは排他制御中(例えば、ロード処理実行中)であるか否かを示すフラグであり、「1」である場合は排他制御中であり、「0」である場合は排他制御中でないことを示す。なお、本実施形態では、排他制御フラグはOSが管理することとし、選択されたSDは、排他制御フラグが「1」であるか否かをOSに問い合わせて、問い合わせ結果に基づいてステップS102の判定を行う。
選択されたSDは、排他制御フラグは「1」ではないと判定した場合には(ステップS102:NO)、排他制御フラグに「1」をセットし(ステップS107)、受信したコマンドに応じた処理を実行し(ステップS108)、ステップS109の処理に移行する。なお、選択されたSDは、ステップS107の処理では、OSに排他制御フラグに「1」をセットするよう要求し、OSが当該要求に基づいて排他制御フラグに「1」をセットする。
一方、選択されたSDは、排他制御フラグは「1」であると判定した場合には(ステップS102:YES)、次いで、排他制御中断条件Aが成立しているか否かを判定する(ステップS103)。ここで、排他制御中断条件Aとは、例えば、排他制御中の処理を実行しているSDがINSTALL[for load]コマンドを受信すること、又は、排他制御中の処理を実行しているSDより優先順位の高いSDがINSTALL[for load]コマンドを受信することである。なお、選択されたSDは、排他制御中の処理を実行しているSDが何れのSDであるかを、OSに問い合わせて判定する(但し、選択されたSDが排他制御中の処理を実行している場合にはOSに問い合わせることなく自らが排他制御中の処理を実行しているSDであると判定してもよい)。また、SD間の優先順位はOSが管理する。例えば、OSは優先度毎に対応するSDを記述した優先度テーブル(例えば、優先度1(高い):ISD、優先度2:SD1、SD2、優先度3(低い):SD3)を保持し、SD間の優先順位を判定する。選択されたSDは、排他制御中の処理を実行しているSDと、INSTALL[for load]コマンドの受信対象であるSDのうち、優先順位が高いSDは何れであるかをOSに問い合わせて判定する。
選択されたSDは、排他制御中断条件Aが成立していないと判定した場合には(ステップS103:NO)、排他制御中であることを示すレスポンスを、INSTALL[for load]コマンドの送信元であるサーバに送信し(ステップS104)、本フローチャートに示す処理を終了する。一方、選択されたSDは、排他制御中断条件Aが成立していると判定した場合には(ステップS103:YES)、排他制御中の処理をクリアする(ステップS105)。なお、排他制御中の処理を、選択されたSD以外の他のSDが実行している場合には、OSに他のSDに排他制御中の処理をクリアするように要求する(後述するステップS111も同様)。次いで、選択されたSDは、排他制御フラグに「0」をセットし(ステップS106)、ステップS107の処理に移行する。なお、選択されたSDは、ステップS106の処理では、OSに排他制御フラグに「0」をセットするよう要求し、OSは当該要求に基づいて排他制御フラグに「0」をセットする(後述するステップS113も同様)。また、排他制御中断条件Aが成立したことにより、排他制御されていたロード処理が解除されるので、INSTALL[for load]コマンドに続いてLOADコマンドを受信することにより新たなロード処理が開始されることとなる。
選択されたSDは、ステップS108の処理を終了すると、次いで、排他制御フラグは「1」であるか否かを判定する(ステップS109)。選択されたSDは、排他制御フラグは「1」ではないと判定した場合には(ステップS109:NO)、本フローチャートに示す処理を終了する。一方、選択されたSDは、排他制御フラグは「1」であると判定した場合には(ステップS109:YES)、次いで、排他制御中断条件Bが成立しているか否かを判定する(ステップS110)。ここで、排他制御中断条件Bとは、例えば、ロード処理中にコマンドエラー(通信障害によるエラー等)が発生することである。
選択されたSDは、排他制御中断条件Bが成立していると判定した場合には(ステップS110:YES)、排他制御中の処理をクリアし(ステップS111)、排他制御フラグに「0」をセットし(ステップS113)、本フローチャートに示す処理を終了する。一方、選択されたSDは、排他制御中断条件Bが成立していないと判定した場合には(ステップS110:NO)、次いで、排他制御終了条件が成立しているか否かを判定する(ステップS112)。ここで、排他制御終了条件とは、例えば、最後(n個目)のLOADコマンドを受信し、正常に処理が行われたことである。
選択されたSDは、排他制御終了条件が成立していないと判定した場合には(ステップS112:NO)、本フローチャートに示す処理を終了する。一方、選択されたSDは、排他制御終了条件が成立していると判定した場合には(ステップS112:YES)、排他制御フラグに「0」をセットし(ステップS113)、本フローチャートに示す処理を終了する。
以上説明したように、本実施形態におけるICチップC(「電子情報記憶媒体」の一例)は、不揮発性メモリ183(「メモリ」の一例)、RAM(「メモリ」の一例)、CPU181(「プロセッサ」の一例)を備え、CPU181は、排他制御の対象であるロード処理(「第1処理」の一例)の実行中に、他のロード処理(「第2処理」の一例)の実行要求であるINSTALL[for load]コマンドを受け付けた場合に、実行中のロード処理と他のロード処理について排他制御中断条件A(「所定の条件」の一例)を満たしているか判定し、排他制御中断条件Aが満たされていると判定した場合には、実行中のロード処理についての排他制御を解除(排他制御フラグに「0」をセット)し、他のロード処理を実行する。
したがって、本実施形態のICチップCによれば、排他制御の対象であるロード処理の実行中に他のロード処理の実行要求を受け付けた場合に、実行中のロード処理と他のロード処理について排他制御中断条件Aを満たしているか否かに応じて、実行中のロード処理についての排他制御が解除されることから、適切に実行中のロード処理と他のロード処理を制御することができる。
また、CPU181は、SD(「第1アプリケーション」の一例)に従ってロード処理を実行している際に、当該SDより優先度の高いSD(「第2アプリケーション」の一例)についてロード処理の実行要求を受け付けた場合に、排他制御中断条件Aが満たされていると判定する。これにより、ロード処理を実行しているSDより優先度の高いSDに対するロード処理の実行要求を受け付けた場合に、優先度の高いSDに対するロード処理を実行することができる。
更に、CPU181は、SD(「第1アプリケーション」の一例)に従ってロード処理を実行している際に、当該SDについて他のロード処理の実行要求を受け付けた場合に、排他制御中断条件Aが満たされていると判定する。これにより、ロード処理を実行しているSDに対して他のロード処理の実行要求を受け付けた場合に、実行しているロード処理を中断して、他のロード処理を実行することができる。
更にまた、CPU181は、排他制御の対象となるロード処理の実行中に、排他制御中断条件B(例えば、LOAD処理中にコマンドエラーが発生すること)が成立した場合(「処理の取消事由が生じた場合」の一例)に、排他制御を解除する。これにより、排他制御中断条件Bとして排他制御を解除すべき条件を設定することにより、排他制御を解除すべき事案が発生した場合に、排他制御を解除することができる。
[4.変形例]
次に、上記実施形態の変形例について説明する。なお、以下に説明する変形例は適宜組み合わせることができる。
[4.1.変形例1]
排他制御中断条件Aとして上記実施形態で説明した条件に、実行中のロード処理でロードされているプログラムよりも優先度の高いプログラムについてINSTALL[for load]コマンドを受信することという条件を加えてもよい。例えば、INSTALL[for load]コマンド内に、必ず優先すべきことを示す最優先コードを含ませることによって、CPU181は最優先コードが含まれた当該コマンドに従ってロードされるプログラムは何れのプログラムよりも優先度が高いと判断することとしてもよい。これにより、ロード処理中のプログラムよりも優先度の高いプログラムについてロード要求があった場合に、実行中のロード処理の排他制御を解除して、優先度の高いプログラムについてロード処理を実行することができる。すなわち、実行中のロード処理よりも優先度の高いロード処理を優先させることができる。
[4.2.変形例2]
上記実施形態では、図8に示した各判定処理(ステップS101、ステップS102、ステップS103、ステップS109、ステップS110、ステップS112)を選択されたSDが行うこととしたが、ICカードCのOSが行うこととしてもよい。
[4.3.変形例3]
上記実施形態では、排他制御中断条件Aに関して、INSTALL[for load]コマンドを受信したSDの優先度によって排他制御することとしたが、これに代えて又はこれに加えて、INSTALL[for load]コマンドの補足情報504D(図5(D)参照)に記述された値(優先度)に応じて排他制御することとしてもよい。例えば、緊急度、重要度の高いINSTALL[for load]コマンドについては優先度「最大」を示す値を記述することとし、選択されたSDは、こうしたINSTALL[for load]コマンドを受信した場合に、排他制御中断条件Aが成立すると判定する。
なお、前者(SDの優先度)と後者(コマンドの優先度)を併用する場合には、後者を優先することが好ましい。例えば、SDの優先度がISD>SD1である場合において、SD1が優先度「最大」であるアプリケーションプログラムをロード処理中である場合、ISDでアプリケーションプログラムのロード処理の開始要求があったとしてもエラーとする、といった制御を行う。
1 携帯端末
11 制御部
12 記憶部
13 無線通信部
14 表示部
15 入力部
16 ICカードインターフェース
17 バス
18 UIMカード
C ICチップ
181 CPU
182 RAM
183 不揮発性メモリ
184 I/O回路
185 バス
19 CLF

Claims (3)

  1. メモリと外部装置から受け付けたコマンドに応じた処理を実行するプロセッサを備える電子情報記憶媒体であって、
    前記プロセッサは、
    排他制御の対象である第1処理の実行中に排他制御の対象である第2処理の実行要求コマンドを受け付けた場合に、前記第1処理と前記第2処理について所定の条件を満たしているか判定し、前記所定の条件が満たされていると判定した場合には、前記第1処理の実行を取り消して前記第2処理を実行し、前記所定の条件が満たされていないと判定した場合には、前記第2処理の前記実行要求コマンドの送信元に実行不可を示すレスポンスを送信し、
    第1SD(Security Domain)に従って前記第1処理を実行している際に、前記第1SDより優先度の高い第2SDについて前記第2処理の実行要求コマンドを受け付けた場合に、前記所定の条件が満たされていると判定することを特徴とする電子情報記憶媒体。
  2. メモリと外部装置から受け付けたコマンドに応じた処理を実行するプロセッサを備える電子情報記憶媒体による情報処理方法であって、
    前記プロセッサが、排他制御の対象である第1処理の実行中に排他制御の対象である第2処理の実行要求コマンドを受け付けた場合に、前記第1処理と前記第2処理について所定の条件を満たしているか判定し、前記所定の条件が満たされていると判定した場合には、前記第1処理についての前記排他制御を解除し、前記第2処理を実行し、前記所定の条件が満たされていないと判定した場合には、前記第2処理の前記実行要求コマンドの送信元に実行不可を示すレスポンスを送信する工程を含み、
    前記プロセッサは、第1SD(Security Domain)に従って前記第1処理を実行している際に、前記第1SDより優先度の高い第2SDについて前記第2処理の実行要求を受け付けた場合に、前記所定の条件が満たされていると判定することを特徴とする情報処理方法。
  3. メモリと外部装置から受け付けたコマンドに応じた処理を実行するプロセッサを備える電子情報記憶媒体における前記プロセッサを、
    排他制御の対象である第1処理の実行中に排他制御の対象である第2処理の実行要求コマンドを受け付けた場合に、前記第1処理と前記第2処理について所定の条件を満たしているか判定し、前記所定の条件が満たされていると判定した場合には、前記第1処理についての前記排他制御を解除し、前記第2処理を実行し、前記所定の条件が満たされていないと判定した場合には、前記第2処理の前記実行要求コマンドの送信元に実行不可を示すレスポンスを送信する制御手段として機能させる情報処理プログラムであって、
    前記制御手段は、第1SD(Security Domain)に従って前記第1処理を実行している際に、前記第1SDより優先度の高い第2SDについて前記第2処理の実行要求を受け付けた場合に、前記所定の条件が満たされていると判定することを特徴とする情報処理プログラム。
JP2016077918A 2016-04-08 2016-04-08 電子情報記憶媒体、情報処理方法、及び情報処理プログラム Active JP6933446B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016077918A JP6933446B2 (ja) 2016-04-08 2016-04-08 電子情報記憶媒体、情報処理方法、及び情報処理プログラム
JP2020140749A JP6948021B2 (ja) 2016-04-08 2020-08-24 電子情報記憶媒体、情報処理方法、及び情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016077918A JP6933446B2 (ja) 2016-04-08 2016-04-08 電子情報記憶媒体、情報処理方法、及び情報処理プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020140749A Division JP6948021B2 (ja) 2016-04-08 2020-08-24 電子情報記憶媒体、情報処理方法、及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2017188010A JP2017188010A (ja) 2017-10-12
JP6933446B2 true JP6933446B2 (ja) 2021-09-08

Family

ID=60044967

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016077918A Active JP6933446B2 (ja) 2016-04-08 2016-04-08 電子情報記憶媒体、情報処理方法、及び情報処理プログラム

Country Status (1)

Country Link
JP (1) JP6933446B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3691871B2 (ja) * 1995-03-20 2005-09-07 富士通株式会社 カード型記憶媒体
JPH11167495A (ja) * 1997-12-02 1999-06-22 Mitsubishi Electric Corp 情報処理装置および分散情報処理装置の優先順位処理方法、並びに情報処理装置および分散情報処理装置

Also Published As

Publication number Publication date
JP2017188010A (ja) 2017-10-12

Similar Documents

Publication Publication Date Title
EP2183728B1 (en) Method, system and trusted service manager for securely transmitting an application to a mobile phone
JP5758120B2 (ja) 携帯電子機器を使用して物理チャネルからのアプリケーションコマンドを処理する方法および対応する機器およびシステム
US9946558B2 (en) Apparatus, method and system for activating an operating system based on a unified command
US8931705B2 (en) IC card, mobile electronic device and data processing method in IC card
JP6923582B2 (ja) 情報処理装置、情報処理方法、およびプログラム
WO2011024564A1 (ja) アクセス管理システムおよびアクセス管理方法
JP6948021B2 (ja) 電子情報記憶媒体、情報処理方法、及び情報処理プログラム
CN111684445B (zh) 信息处理装置,信息处理方法和程序
JP6933446B2 (ja) 電子情報記憶媒体、情報処理方法、及び情報処理プログラム
JP5799754B2 (ja) Icチップ、icチップにおける処理方法、icチップ用処理プログラム、icカード、及び携帯端末
JP7005934B2 (ja) 電子情報記憶媒体、icカード、データ送信方法、データ書き込み方法、データ送信プログラム及びデータ書き込みプログラム
JP2016212779A (ja) 携帯可能電子装置、及びicカード
JP6123539B2 (ja) 識別子生成装置、識別子生成方法、及び識別子生成プログラム
JP6766505B2 (ja) 電子情報記憶媒体、判定方法、及び判定プログラム
JP7501808B2 (ja) Icチップ
JP7068603B2 (ja) 電子情報記憶媒体、icカード、電子情報記憶媒体によるアップデート方法及びアップデートプログラム
US10915801B2 (en) Portable electronic device, non-contact communication system, and non-contact communication method
JP5724701B2 (ja) Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及び携帯端末
JP4734838B2 (ja) 情報記録媒体とプログラム、及びコマンド実行制御方法
JP6260344B2 (ja) 識別子決定装置、識別子決定方法、及び識別子決定プログラム
JP2017021443A (ja) 電子情報記憶媒体、情報処理方法及び代表アプリケーション
JP6396124B2 (ja) Icカード、icモジュール、及びicカード発行方法
JP2015228627A (ja) 移動体通信端末、サーバー、情報処理システム及び情報処理方法
JP2018063643A (ja) 電子情報記憶媒体、icカード、設定情報送信方法、及び設定情報送信プログラム
JP2018120518A (ja) 電子情報記憶媒体、icカード、通知方法、及び通知処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200309

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200527

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200826

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20200826

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20200904

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20200908

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20201127

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20201201

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20201215

C13 Notice of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: C13

Effective date: 20210209

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20210406

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210408

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20210713

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20210818

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20210818

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210819

R150 Certificate of patent or registration of utility model

Ref document number: 6933446

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150