JP7009844B2 - Update method and update program using electronic information storage medium, IC card, electronic information storage medium - Google Patents
Update method and update program using electronic information storage medium, IC card, electronic information storage medium Download PDFInfo
- Publication number
- JP7009844B2 JP7009844B2 JP2017169178A JP2017169178A JP7009844B2 JP 7009844 B2 JP7009844 B2 JP 7009844B2 JP 2017169178 A JP2017169178 A JP 2017169178A JP 2017169178 A JP2017169178 A JP 2017169178A JP 7009844 B2 JP7009844 B2 JP 7009844B2
- Authority
- JP
- Japan
- Prior art keywords
- application
- application program
- deletion
- new
- instance
- 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
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Description
IC(Integrated Circuit)チップ等の電子情報記憶媒体の技術分野に関する。 The present invention relates to a technical field of an electronic information storage medium such as an IC (Integrated Circuit) chip.
従来、ICチップなどの電子情報記憶媒体が組み込まれたICカードにおいて、ICチップのROMにICカードOS(Operating System)を記憶し、同じくICチップの不揮発性メモリに複数のアプリケーションを記憶するマルチアプリケーション型ICカードが普及し始めている。マルチアプリケーション型ICカードでは、不揮発性メモリにアプリケーションプログラムと、アプリケーションプログラムから生成されるアプリケーションインスタンス(これらを総称して「アプリケーション」という場合がある)を記憶することから、アプリケーションを追加したり削除したりすることが比較的容易である。 Conventionally, in an IC card incorporating an electronic information storage medium such as an IC chip, a multi-application that stores an IC card OS (Operating System) in the ROM of the IC chip and also stores a plurality of applications in the non-volatile memory of the IC chip. Type IC cards are becoming widespread. In the multi-application type IC card, the application program and the application instance generated from the application program (these may be collectively referred to as "application") are stored in the non-volatile memory, so that the application can be added or deleted. It is relatively easy to do.
また、ICチップに搭載されたアプリケーションに何らかの不具合が見つかった場合にそれに対処することを目的として、又は、アプリケーションに機能を追加することを目的としてアプリケーションをアップデート(アップグレード)することがある。特許文献1には、アプリケーションのアップデート(更新)機能を備えたマルチアプリケーションICチップに関する技術が開示されている。具体的には、ICチップがプログラムコードにおける更新対象部分を特定するためのアドレス(例えば、ページ番号)と、当該更新対象部分に上書きするプログラムコードをサーバから受け取り、受け取ったアドレスで特定される部分を受け取ったプログラムコードで上書きする技術が開示されている。
In addition, the application may be updated (upgraded) for the purpose of dealing with a defect found in the application mounted on the IC chip or for the purpose of adding a function to the application.
ところが、特許文献1の技術では、更新対象部分を上書きプログラムで上書きするため、上書きプログラムのデータ量が更新対象部分のデータ量を上回っている場合に更新を行うことができない場合がある。
However, in the technique of
一方で、アプリケーションをアップデートする他の手法として、アップデート対象のアプリケーションプログラムとアプリケーションインスタンスを一旦削除して、アップデート版のアプリケーションプログラムをロードし、当該アプリケーションプログラムからアプリケーションインスタンスを生成するという方法もある。この方法の場合、アップデート前のプログラムのデータ量よりもアップデート後のプログラムのデータ量が大きい場合であってもアップデートが可能となる。 On the other hand, as another method for updating an application, there is also a method of temporarily deleting the application program and the application instance to be updated, loading the updated version of the application program, and generating the application instance from the application program. In the case of this method, the update is possible even when the data amount of the program after the update is larger than the data amount of the program before the update.
なお、以下、アプリケーションプログラムについてはELF(Executable Load File)、アプリケーションインスタンスについてはAPという場合がある。また、アップデート前とアップデート後のELF又はAPを明確に区別するためそれぞれ「旧」と「新」を付ける場合がある。例えば、ICチップに既に配置されているELFを旧ELF、アップデート後のELFを新ELFと記載し区別する場合がある。 Hereinafter, the application program may be referred to as ELF (Executable Load File), and the application instance may be referred to as AP. In addition, "old" and "new" may be added to clearly distinguish the ELF or AP before and after the update. For example, the ELF already placed on the IC chip may be described as an old ELF, and the updated ELF may be described as a new ELF to distinguish them.
ICチップにおいて、ELFに基づいて幾つかのAPが生成された状態で、これらのELF及びAPをアップデートする場合、上述したように、ICチップ上の旧ELFと旧APを一旦削除し、新ELFと新APをICチップ上へ配置する必要がある。これらの処理は外部機器との間で複数のコマンドとレスポンス(応答)をやり取りする必要があるため、ICチップにとって相対的に負荷の高い処理であり、多くの時間を要することは避けられない。 When updating these ELFs and APs in a state where some APs are generated based on the ELF in the IC chip, as described above, the old ELF and the old AP on the IC chip are temporarily deleted, and the new ELF is used. And the new AP needs to be placed on the IC chip. Since these processes need to exchange a plurality of commands and responses with an external device, they are relatively heavy processes for the IC chip, and it is inevitable that a lot of time is required.
そのため、一のアプリケーション(ELFと当該ELFから生成されるAP)のアップデート処理中に他のアプリケーションのロード処理やインストール処理が割り込む可能性がある。このとき、一のアプリケーションに関するOS管理情報(OSがELFやAPを管理する際に用いる情報であり、レジストリデータという場合もある)のうち特定のOS管理情報は、他のアプリケーションのロード処理やインストール処理の影響を受けることなく、アップデート処理後も適切に一のアプリケーション(新ELFと当該新ELFから生成される新AP)にそのまま引き継がれる必要がある。ここで、特定のOS管理情報とは、例えば、ICチップ内で一のELF又はAPについてのみ割り当てられる独占対象(例えば、AIDや特権など)が何れのELF又はAPに割り当てられているかを示す情報である。 Therefore, there is a possibility that the load process and the installation process of another application may be interrupted during the update process of one application (ELF and AP generated from the ELF). At this time, the specific OS management information among the OS management information related to one application (information used when the OS manages ELF and AP, and may be called registry data) is the loading process and installation of another application. It is necessary to properly inherit to one application (new ELF and new AP generated from the new ELF) even after the update process without being affected by the process. Here, the specific OS management information is, for example, information indicating which ELF or AP the exclusive target (for example, AID or privilege) assigned to only one ELF or AP in the IC chip is assigned. Is.
アプリケーションのアップデート処理が開始され、「旧ELF及び旧APの削除」が実行されたとき、単に旧ELF及び旧APを削除してしまうと、当該アップデート処理中に割り込んだ処理が、旧ELF及び旧APに割り当てられていた独占対象の割り当て要求をする可能性がある。OSはその要求に従って割り当てを実施すると、新ELFや新APが、独占対象を引き継げなくなるという問題が発生する。例えば、アップデートする際に、あるAPのAIDが旧APから新APに引き継げなかった場合、これまでそのAPと通信していた外部機器は、通信対象である新APに対して同じAIDを指定して通信を試みるため、APのアップデート後はそのAPと通信することができなくなってしまう。 When the application update process is started and "Delete old ELF and old AP" is executed, if the old ELF and old AP are simply deleted, the process interrupted during the update process will be the old ELF and old AP. There is a possibility of making an allocation request for the monopoly target assigned to the AP. If the OS allocates according to the request, there arises a problem that the new ELF and the new AP cannot take over the monopoly target. For example, when updating, if the AID of a certain AP cannot be inherited from the old AP to the new AP, the external device that has been communicating with that AP will specify the same AID for the new AP to be communicated. After updating the AP, it will not be possible to communicate with that AP.
そこで、本発明は、アプリケーションプログラム及びアプリケーションインスタンスのアップデート処理中に、アップデート対象にのみ割り当てられていた独占対象を、他のアプリケーションプログラム又はアプリケーションインスタンスに割り当てることなく、アップデート処理後も適切にアップデートしたアプリケーションプログラム又はアプリケーションインスタンスに引き継ぐことができる電子情報記憶媒体等を提供することを課題とする。 Therefore, the present invention is an application that appropriately updates even after the update process without allocating the exclusive target assigned only to the update target to another application program or application instance during the update process of the application program and the application instance. An object of the present invention is to provide an electronic information storage medium or the like that can be inherited by a program or an application instance.
上記課題を解決するために、請求項1に記載の発明は、アプリケーションプログラム及びアプリケーションインスタンスを記憶する記憶手段と、アップデート対象であるアプリケーションプログラム及びアプリケーションインスタンスを削除対象として削除する削除処理を実行する削除手段と、前記アップデート対象であるアプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード手段と、前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンの新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール手段と、前記削除処理、前記ロード処理又は前記インストール処理の実行中に、一のアプリケーションプログラム又はアプリケーションインスタンスにのみ割り当てられる独占対象であって、前記アップデート対象であるアプリケーションプログラム又はアプリケーションインスタンスに割り当てられた独占対象を、他のアプリケーションプログラム及びアプリケーションインスタンスに対して割り当てる要求を受け付けた場合に、当該要求を拒否する拒否手段と、を備えることを特徴とする。
In order to solve the above problem, the invention according to
請求項2に記載の発明は、請求項1に記載の電子情報記憶媒体であって、前記独占対象は、前記記憶手段に記憶される何れかのアプリケーションプログラム又はアプリケーションインスタンスに必ず割り当てられなければならず、前記削除対象を削除する際に、当該削除対象を管理する管理アプリケーションプログラム又は管理アプリケーションインスタンスに前記独占対象を割り当てる割り当て手段と、前記管理アプリケーションプログラム又は前記管理アプリケーションインスタンスに割り当てた独占対象を、前記新アプリケーションプログラム又は前記新アプリケーションインスタンスに再割り当てする再割り当て手段と、を更に備えることを特徴とする。
The invention according to
請求項3に記載の発明は、請求項1又は2に記載の電子情報記憶媒体であって、前記削除処理、前記ロード処理又は前記インストール処理を実行中に、前記削除対象であるアプリケーションプログラム又はアプリケーションインスタンスを検索する要求を外部機器から受けた場合に、当該削除対象であるアプリケーションプログラム又はアプリケーションインスタンスは存在しない旨の応答を前記外部機器に行う応答手段を更に備えることを特徴とする。
The invention according to
請求項4に記載の発明は、請求項1乃至3の何れか一項に記載の電子情報記憶媒体を備えるICカードである。
The invention according to
請求項5に記載の発明は、アプリケーションプログラム及びアプリケーションインスタンスを記憶する記憶手段を備える電子情報記憶媒体によるアップデート方法であって、アップデート対象であるアプリケーションプログラム及びアプリケーションインスタンスを削除対象として削除する削除処理を実行する削除工程と、前記アップデート対象であるアプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード工程と、前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンの新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール工程と、前記削除処理、前記ロード処理又は前記インストール処理の実行中に、一のアプリケーションプログラム又はアプリケーションインスタンスにのみ割り当てられる独占対象であって、前記アップデート対象であるアプリケーションプログラム又はアプリケーションインスタンスに割り当てられた独占対象を、他のアプリケーションプログラム及びアプリケーションインスタンスに対して割り当てる要求を受け付けた場合に、当該要求を拒否する拒否工程と、を含むことを特徴とする。
The invention according to
請求項6に記載の発明は、アプリケーションプログラム及びアプリケーションインスタンスを記憶する記憶手段を備える電子情報記憶媒体に含まれるコンピュータを、アップデート対象であるアプリケーションプログラム及びアプリケーションインスタンスを削除対象として削除する削除処理を実行する削除手段、前記アップデート対象であるアプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード手段、前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンの新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール手段、前記削除処理、前記ロード処理又は前記インストール処理の実行中に、一のアプリケーションプログラム又はアプリケーションインスタンスにのみ割り当てられる独占対象であって、前記アップデート対象であるアプリケーションプログラム又はアプリケーションインスタンスに割り当てられた独占対象を、他のアプリケーションプログラム及びアプリケーションインスタンスに対して割り当てる要求を受け付けた場合に、当該要求を拒否する拒否手段、として機能させることを特徴とする。
The invention according to
本発明によれば、独占対象が割り当てられていたアプリケーションプログラム又はアプリケーションインスタンスをアップデートするためにアップデート対象を削除している場合において、他のアプリケーションプログラム及びアプリケーションインスタンスに対して当該独占対象を割り当てる要求を受け付けた場合にこれを拒否するため、アップデート処理後も適切にアップデートしたアプリケーションプログラム又はアプリケーションインスタンスに当該独占対象を引き継ぐことができる。 According to the present invention, when the update target is deleted in order to update the application program or application instance to which the exclusive target has been assigned, a request for assigning the exclusive target to another application program or application instance is requested. Since this is rejected when it is accepted, the exclusive target can be taken over by the application program or application instance that has been appropriately updated even after the update process.
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、アプリケーションのアップデート機能を有するマルチアプリケーションICチップを搭載するICカードに対して本発明を適用した場合の実施の形態である。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. The embodiment described below is an embodiment when the present invention is applied to an IC card equipped with a multi-application IC chip having an application update function.
[1.ICチップ1aの構成]
まず、図1を参照して、ICカード1に搭載されるICチップ1aの構成について説明する。図1は、ICカード1に搭載されるICチップ1aのハードウェア構成例を示す図である。本実施形態のICカード1は、接触によるデータ通信と非接触によるデータ通信の2つの通信機能を兼ね備えたデュアルインターフェース型ICカードである。但し、ICカード1の種類はデュアルインターフェース型ICカードに限定されず、キャッシュカードやクレジットカードと同じ大きさのプラスチック製カードにICチップ1aがエンベットされた接触型ICカードであってもよいし、また、アンテナコイルを内蔵し無線でリーダ・ライタとデータ通信する非接触型ICカードであってもよい。
[1. Configuration of IC chip 1a]
First, the configuration of the IC chip 1a mounted on the
図1に示すように、ICチップ1aは、CPU(Central Processing Unit)10、RAM(Random Access Memory)11、ROM(Read Only Memory)12、不揮発性メモリ13、及びI/O回路14を備えて構成される。CPU10は、ROM12又は不揮発性メモリ13に記憶された各種プログラムを実行するプロセッサ(コンピュータ)である。なお、I/O回路14は、外部機器2とのインターフェイスを担う。これにより、ICチップ1aは、リーダ・ライタを備える外部機器2との間で接触又は非接触で通信を行うことができる。接触式のICチップ1aの場合、I/O回路14には、例えば、C1~C8の8個の端子が備えられている。例えば、C1端子は電源端子(ICチップ1aへ電源供給する端子)、C2端子はリセット端子、C3端子はクロック端子、C5端子はグランド端子、C7端子は外部機器2との間で通信を行うための端子である。一方、非接触式のICチップ1aの場合、I/O回路14には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部機器2の例としては、ICカード発行機、ATM、改札機、認証用ゲート等が挙げられる。或いは、ICチップ1aが通信機器に組み込まれる場合、外部機器2には通信機器の機能を担う制御部が該当する。
As shown in FIG. 1, the IC chip 1a includes a CPU (Central Processing Unit) 10, a RAM (Random Access Memory) 11, a ROM (Read Only Memory) 12, a non-volatile memory 13, and an I /
不揮発性メモリ13には、例えばフラッシュメモリ、強誘電体メモリ又は「Electrically Erasable Programmable Read-Only Memory」を用いることができる。不揮発性メモリ13は、ICカードOS(以下、「OS」という場合がある)や各種アプリケーション及びこれらが使用するデータを記憶する。 As the non-volatile memory 13, for example, a flash memory, a ferroelectric memory, or an "Electrically Erasable Programmable Read-Only Memory" can be used. The non-volatile memory 13 stores an IC card OS (hereinafter, may be referred to as “OS”), various applications, and data used by these.
ここで、アプリケーションの機能は、ELFに基づいてインストール処理することにより不揮発性メモリ13に生成されるAPをCPU10が実行することにより実現される。なお、APを実行することによりアプリケーションの機能が実現されることから、APをアプリケーションという場合もある。また、ELFは、後述するようにサーバから[LOAD]コマンドにより分割してICチップ1aに送信され、不揮発性メモリ13に記憶される。すなわち、不揮発性メモリ13には、ELF及びAPが記憶される。
Here, the function of the application is realized by the
[2.ICチップ1aの機能構成]
図2は、ICチップ1aの機能構成例を示すブロック図である。ICチップ1a内には、ICチップ1a自身及びICチップ1a内のアプリケーションを管理するためのアプリケーションであるセキュリティドメイン(Security Domain、以下、「SD」という)が、必ず1つ以上存在する。SDには、ISD(Issuer Security Domain)とSSD(Supplementary Security Domains)がある。このようなSDは、主に、以下の(1)~(9)の機能をサポートする。
[2. Functional configuration of IC chip 1a]
FIG. 2 is a block diagram showing a functional configuration example of the IC chip 1a. In the IC chip 1a, there is always one or more security domains (Security Domain, hereinafter referred to as "SD") which are applications for managing the IC chip 1a itself and the applications in the IC chip 1a. SD includes ISD (Issuer Security Domain) and SSD (Supplementary Security Domains). Such SD mainly supports the following functions (1) to (9).
(1)ICカードのライフサイクル管理
(2)ELFのライフサイクル管理
(3)APのライフサイクル管理
(4)ELFのロード
(5)APの生成(インストール)
(6)ELFまたはAPの削除
(7)アプリケーション向けインスタンスデータ(発行データ)の書き込み
(8)データの読出し
(9)セキュアチャンネルプロトコル(Secure Channel Protocol、以下、「SCP」という)に従ったセキュアな通信路の確保
(1) IC card life cycle management
(2) ELF life cycle management
(3) AP life cycle management
(4) ELF loading
(5) AP generation (installation)
(6) Delete ELF or AP
(7) Writing instance data (issued data) for applications
(8) Reading data
(9) Ensuring a secure communication path according to the Secure Channel Protocol (hereinafter referred to as "SCP")
ISDは、上記(1)~(9)の機能をサポートすることで、ICチップ1a内のカードコンテント(ELF、AP等)に対して、ICカード1の発行者の管理及びセキュリティポリシーを実現する。一方、SSDは、上記(1)~(9)の機能をサポートすることで、ICカード内のカードコンテントに対して、ICカード上でサービスを提供する第三者の管理及びセキュリティポリシーを実現する。ここで、ICカード上でサービスを提供する第三者とは、ICカードの発行者及びICカードの保持者(ICカードの発行対象である利用者)以外の立場の者をいう。また、上記(9)の機能において、SCPは、ICカード内のSDと外部機器間の通信路に対して、コマンドデータの機密性、コマンドの完全性(及びコマンドシークエンスの保証)、コマンドデータ(平文)内のセンシティブデータ(例えば、鍵やPINコード)のさらなる機密性を提供する。
By supporting the functions (1) to (9) above, the ISD realizes the management and security policy of the issuer of the
図2に示すように、ICチップ1aには、OSがインストールされており、更に、上述したISD、SSD、各種サービスを提供するApplication1、2といったアプリケーションがインストールされている(APが不揮発性メモリ13に記憶されている)。また、ISD、SSD、Application1、2といったAPがそれぞれ使用・管理するインスタンスデータ(例えば、認証用の鍵値、ポイントデータ、ユーザIDなと)が不揮発性メモリ13上の各APに割り当てられた領域に記憶される。また、不揮発性メモリ13上のOSに割り当てられた領域には、OSが管理する、各APに紐付いたレジストリデータ(例えば、AIDや特権など)が記憶される。
As shown in FIG. 2, an OS is installed in the IC chip 1a, and applications such as the above-mentioned ISD, SSD, and
ISD、SSD、Application1、2といったアプリケーションは、不具合が見つかった場合や機能を追加する場合にアップデートされる。ここで、アプリケーションのアップデートはELFとAPのアップデートが主な目的であるため、インスタンスデータとレジストリデータは、アップデートの前後で同一データとなるものが多い(暗号の危殆化などで、アルゴリズムや鍵長を変更する場合などは、異なるデータとなることもある)。そこで、本実施形態のICチップ1aは、アプリケーションのアップデートを行う際に、インスタンスデータとレジストリデータを退避させ、旧ELF及び旧APを削除した後に、新ELFをロードし、インストール処理により新ELFに基づいて新APの生成を行い、次いで、退避させておいたインスタンスデータとレジストリデータを復元するといった一連の処理(「アップデート処理」という)を行う。なお、インスタンスデータとレジストリデータを退避する場合、(A)実際にはデータを他の記憶領域に移動させずに、当該データにフラグを設け、当該フラグのオン/オフを切り替えることで退避中・非退避中を切り替える方法と、(B)実際にデータを他の記憶領域に移動させ、退避したデータを復元する際に当該データを登録し直す方法とがある。(A)、(B)の何れも退避させる方法であるが、本実施形態では(A)の退避方法を採用し、フラグとして、後述する更新フラグを設ける。
Applications such as ISD, SSD,
ここで、一のアプリケーションのアップデート処理中に、他のアプリケーションのアップデート処理が割り込むことがある。そして、他のアプリケーションのアップデート処理において、一のアプリケーションについて退避させたレジストリデータに含まれるAIDや特権等を、当該他のアプリケーションに対して割り当てる要求がなされることが想定される。このとき、一のアプリケーションのアップデート処理において、レジストリデータを退避させるだけでは、AIDや特権が他のアプリケーションに割り当てられてしまい、一のアプリケーションについてAIDや特権等を適切に引き継ぐことができなくなってしまうおそれがある。 Here, the update process of another application may be interrupted during the update process of one application. Then, in the update process of another application, it is assumed that a request is made to assign the AID, privileges, etc. included in the registry data saved for one application to the other application. At this time, in the update process of one application, if only the registry data is saved, the AID and privileges are assigned to other applications, and the AID and privileges cannot be properly inherited for one application. There is a risk.
そこで、以下では、アプリケーションのアップデート処理において、AIDや特権等を適切に引き継ぐための方法について説明する。図3は、不揮発性メモリ13上のレジストリデータ記憶領域200の構成例を示す図であり、図4は、アップデート処理においてAIDや特権等の状態付与対象に付与される状態に関する説明を一覧にした表である。 Therefore, in the following, a method for appropriately inheriting AID, privileges, etc. in the application update process will be described. FIG. 3 is a diagram showing a configuration example of the registry data storage area 200 on the non-volatile memory 13, and FIG. 4 is a list of explanations regarding the states given to the state grant targets such as AID and privilege in the update process. It is a table.
図3に示すように、不揮発性メモリ13における、OSが管理するレジストリデータ記憶領域200には、ELF管理情報210と、AP管理情報220が記憶される。 As shown in FIG. 3, the ELF management information 210 and the AP management information 220 are stored in the registry data storage area 200 managed by the OS in the non-volatile memory 13.
ELF管理情報210は、不揮発性メモリ13に記憶されている各ELFに関する管理情報(1行(レコード)が一のELFに関する管理情報に対応)の集合である。同様に、AP管理情報220は、不揮発性メモリ13に記憶されている各APに関する管理情報(1行(レコード)が一のAPに関する管理情報に対応)の集合である。 The ELF management information 210 is a set of management information (one line (record) corresponds to the management information regarding one ELF) stored in the non-volatile memory 13. Similarly, the AP management information 220 is a set of management information (one line (record) corresponds to the management information regarding one AP) stored in the non-volatile memory 13.
ELF管理情報210とAP管理情報220は、各レコードについてアップデート処理中であるか否かを示す更新中フラグ230を含む。更新中フラグ230の「1」(オン)はアップデート中であることを示し、「0」(オフ)はアップデート中でないことを示す。更新中フラグ230は、OSが保持する各機能(例えば、ELFのロード機能、APのインストール機能、ELF/APの削除機能、APの検索機能等)を実現する際に参照される。
The ELF management information 210 and the AP management information 220 include an updating
また、ELF管理情報210とAP管理情報220を構成する各レコードは、状態付与対象240と状態250の組み合わせを保持する。状態付与対象240とは、例えば、ELF又はAPに割り当てられているAIDや特権等であり、状態250とは、そのAIDや特権等について付与される状態である。以下、図4を用いて具体的に説明する。
Further, each record constituting the ELF management information 210 and the AP management information 220 holds a combination of the
図4に示すように、アップデート処理の対象となっているELFやAPに割り当てられるAIDや特権等に付与される状態には「停止中」と「移譲中」がある。 As shown in FIG. 4, there are "suspended" and "transferred" in the states assigned to the AID, privilege, etc. assigned to the ELF or AP that is the target of the update process.
「停止中」が付与される状態付与対象240には、例えば、ELFのAID、APのAID及び登録済みのグローバルサービス名(これらを総称して「AID等」という場合がある)がある。状態250「停止中」が付与される停止付与対象240は、ICチップ1a内で一つのELF又はAPにのみ割り当てられる。ここで、「00000001」というAIDがICチップ1a内で一つのELF又はAPにのみ割り当てられる場合、当該ELF又はAPは「00000001」というAIDを独占することを意味することから、AID等は独占対象ということができる。
The
グローバルサービスは、ICチップ1a上の一のアプリケーションが自己のサービスをICチップ1a上の他のアプリケーションに対して提供する機能の総称であり、例えば、PIN(Personal Identification Number)照合サービスや暗号化サービスといったサービスが提供される。グローバルサービスを提供するアプリケーションについては、インストール時にInstall for installコマンドのパラメータ内に、提供するサービス毎にサービスID(serviceID)が記述される。PIN照合サービス及び暗号化サービスの2つのサービスを提供するアプリケーションであれば、例えば、PIN照合サービスのサービスIDとして「AABBh」、暗号化サービスのサービスIDとして「CCDDh」がパラメータ内に記述される。そして、OSはInstall for installコマンドを受信した際の処理の一環として、当該アプリケーションのレジストリエントリを生成し、AIDやサービスID(「AABBh」、「CCDDh」)を設定した後、これを管理する。一方、サービスを利用するアプリケーションは、OSに対して利用したいサービスのサービスIDと当該サービスを提供するアプリケーションのAIDを指定する。これに対してOSは、レジストリから指定されたAIDとサービスIDを検索して、対象のサービスを利用するアプリケーションに引き渡す(具体的には、Java(登録商標)言語のオブジェクト参照をOSからサービスを利用するアプリケーションへ引き渡す)ことで、サービスを利用可能とする。ここで、ICチップ1a上のアプリケーションの数が増えてくると、サービス毎にAIDとサービスIDを管理する必要があり煩雑となる。そこで、AIDを省略してサービスIDだけでサービスを指定する仕組みがICチップ1aには取り入れられている。このとき、予めサービスIDと特定のアプリケーションを対応付けて登録しておくことで、OSはサービスIDだけが指定された場合に当該アプリケーションのサービスを特定して提供することができる。状態付与対象240の一例である登録済みのグローバルサービス名は、予めアプリケーションと唯一対応付けて登録されるサービスIDのことである。
Global service is a general term for functions in which one application on IC chip 1a provides its own service to other applications on IC chip 1a. For example, PIN (Personal Identification Number) verification service and encryption service. Services such as are provided. For an application that provides a global service, a service ID (serviceID) is described for each service to be provided in the parameters of the Initial for installation command at the time of installation. In the case of an application that provides two services, a PIN verification service and an encryption service, for example, "AABBh" is described as the service ID of the PIN verification service, and "CCDDh" is described as the service ID of the encryption service in the parameters. Then, the OS generates a registry entry of the application as a part of the process when receiving the Installation for installation command, sets the AID and the service ID (“AABBh”, “CCDDh”), and then manages the registry entry. On the other hand, the application that uses the service specifies the service ID of the service to be used for the OS and the AID of the application that provides the service. On the other hand, the OS searches for the specified AID and service ID from the registry and hands it over to the application that uses the target service (specifically, the service is transferred from the OS to the object reference in the Java (registered trademark) language. The service can be used by handing it over to the application to be used). Here, as the number of applications on the IC chip 1a increases, it becomes necessary to manage the AID and the service ID for each service, which becomes complicated. Therefore, the IC chip 1a incorporates a mechanism in which the AID is omitted and the service is specified only by the service ID. At this time, by registering the service ID and the specific application in association with each other in advance, the OS can specify and provide the service of the application when only the service ID is specified. The registered global service name, which is an example of the
OSは、状態250「停止中」を設定したで状態付与対象240(AID等)が割り当てられたELF又はAPについて、削除された場合と同様に存在しないものとして扱うが、そのAID等の割り当て要求を受け取った場合に、その要求を拒否する。以下、具体的に説明する。
The OS treats the ELF or AP to which the status grant target 240 (AID, etc.) is assigned when the
(1)SELECTコマンド
SELECTコマンドは、AID及びロジカルチャネル番号を指定することにより、当該AIDで識別されるAPとの論理上の通信路(ロジカルチャネル)を、指定したロジカルチャネル番号で識別されるロジカルチャネルとすることを要求するコマンドである。OSは、外部機器2からSELECTコマンドを受信した場合において、当該SELECTコマンドで選択されたAPを識別するAIDが「停止中」である場合に、当該APは存在しないものとして扱う(次の候補を検索する)。OSは、SELECTコマンドの受信時に、コマンドのデータフィールドに記述されたAIDとOSが保持するアプリケーションレジストリ内の各AIDを順番(例えば、インストールした順(創成順))に比較する。このとき、コマンドデータフィールドに記述されるAIDはAIDの一部(例えば先頭の3バイトのみ)の場合があり、比較結果として一致する候補AIDが複数存在する場合がある。OSは、AIDが(部分)一致した場合、そのアプリケーションがロジカルチャネル上で選択可能な状態か(例えば、AIDが部分一致したアプリケーションのライフサイクルがロック状態か否か)を確認する。OSは、選択可能な状態であれば、アプリケーションの選択処理を実施し、選択不可能な状態であれば、次の候補であるアプリケーションについてAIDの比較(すなわち、検索)を行う。本実施形態では、OSは「選択可能な状態」の確認項目として「停止中」であるか否かを更に判定する。
(2)GET STATUSコマンド
GET STATUSコマンドは、ICチップ1a上の全AIDを検索するコマンドである。OSは、外部機器2からGET STATUSコマンドを受信した場合に、「停止中」であるAIDは存在しないものとして扱う。すなわち、GET STATUSコマンドに対するレスポンス(応答)内の検索結果に「停止中」であるAIDを含めない。
(3)INSTALL for LOAD/LOADコマンド
INSTALL for LOAD/LOADコマンドは、ICチップ1a上へELFをロードするコマンドである。なお、INSTALL for LOAD/LOADコマンドでは、ロードするELFについてAID等の割り当て要求を行うことができる。OSは、外部機器2から、AID等の割り当て要求を伴うINSTALL for LOAD/LOADコマンドを受信した場合において、割り当て要求がなされたAIDが「停止中」である場合に、当該AIDは割り当て済みであるとして扱い応答する(AIDが重複する旨を知らせるエラー応答を送信する)。
(4)INSTALL for installコマンド
INSTALL for installコマンドは、ロードしたELFのAIDを指定してAPを生成するコマンドである。OSは、外部機器2からINSTALL for installコマンドを受信した場合において、指定されたAIDが「停止中」である場合に、当該AIDで指定されたELFは存在しないものとして応答する(エラー応答を送信する)。また、INSTALL for installコマンドでは、生成するAPについてAID等の割り当て要求を行うことができ、OSは、外部機器2から、生成するAPに対するAID等の割り当て要求を伴うINSTALL for installコマンドを受信した場合において、割り当て要求がなされたAIDが「停止中」である場合に、当該AIDは割り当て済みであるとして扱い応答する(AIDが重複する旨を知らせるエラー応答を送信する)。
(5)グローバルサービス登録用API
グローバルサービスを提供するアプリケーションでは、インストール後、AIDを省略して容易にサービスを利用してもらえるように、GlobalPlatform(登録商標)仕様のAPI(グローバルサービス登録用API)であるregisterService(serviceID)を実行する場合がある。このメソッドはJava(登録商標)のインターフェースメソッドであり、インターフェイス型オブジェクト参照(これがアプリケーション指定に相当する)を指定して呼び出す。このとき、グローバルサービスを提供するアプリケーションのインストール時にOSがレジストリにサービスID(「AABBh」、「CCDDh」)を設定した場合であれば、serviceIDは、「AABBh」、「CCDDh」の何れかとなる。これにより、OS内でアプリケーションのAIDが省略されても使用可能なサービスが対応付けられる。一方、グローバルサービスを利用するアプリケーションは、通常であれば、getService(AID,serviceID)メソッドにより、サービスを実装したオブジェクト参照を取得しサービスを利用できる。上記例であれば、getService(AID1,AABB)やgetService(AID1,CCDD)により取得することができる。但し、事前にグローバルサービス登録用APIであるregisterService(AABB)が実行されていれば、AIDを指定せずに、getService(null,AABB)でも同様に利用することができる。ここで、複数のアプリケーションがそれぞれインストール時に同一のサービスIDのサービスをレジストリへ登録することはできるが、グローバルサービス登録用APIであるregisterService(serviceID)により登録できるアプリケーションは、ICチップ1a内の一のサービスIDに対して一のアプリケーションのみとなる。また、これらのルールや実現手段であるメソッド(API)はGlobalPlatform仕様にて定められている。OSは、グローバルサービス登録用APIであるregisterService(serviceID)が実行された場合において、状態付与対象240「登録済みグローバルサービス名」に対して状態250「停止中」が設定されている場合には、APIにより指定されたグローバルサービスが既に登録済みであるものとして扱い、実行条件を満たさないとしてグローバルサービス登録用APIの実行を失敗に終わらせる。
(1) SELECT command The SELECT command specifies an AID and a logical channel number, so that a logical communication path (logical channel) with an AP identified by the AID is identified by the specified logical channel number. It is a command that requests to be a channel. When the OS receives the SELECT command from the
(2) GET STATUS command The GET STATUS command is a command for searching all AIDs on the IC chip 1a. When the OS receives the GET STATUS command from the
(3) INSTALL for LOAD / LOAD command The INSTALL for LOAD / LOAD command is a command for loading an ELF onto the IC chip 1a. In addition, in the INSTALL for LOAD / LOAD command, it is possible to make an allocation request such as AID for the ELF to be loaded. When the OS receives an INSTALL for LOAD / LOAD command accompanied by an allocation request such as an AID from the
(4) INSTALL for installation command The INSTALL for installation command is a command to specify the AID of the loaded ELF and generate an AP. When the OS receives the INSTALL for installation command from the
(5) API for global service registration
For applications that provide global services, execute registerService (serviceID), which is an API (API for global service registration) of Global Platform (registered trademark) specifications, so that you can easily use the service by omitting the AID after installation. May be done. This method is a Java (registered trademark) interface method, and is called by specifying an interface type object reference (which corresponds to the application specification). At this time, if the OS sets the service ID (“AABBh”, “CCDDh”) in the registry when installing the application that provides the global service, the serviceID is either “AABBh” or “CCDDh”. As a result, services that can be used even if the AID of the application is omitted in the OS are associated. On the other hand, an application that uses a global service can normally use the getService (AID, serviceID) method to acquire an object reference that implements the service and use the service. In the above example, it can be obtained by getService (AID1, AABB) or getService (AID1, CCDD). However, if registerService (AABB), which is an API for global service registration, is executed in advance, it can be used in the same way with getService (null, AABB) without specifying AID. Here, although multiple applications can register services with the same service ID in the registry at the time of installation, the application that can be registered by registerService (serviceID), which is an API for global service registration, is one of the IC chips 1a. Only one application for the service ID. In addition, these rules and methods (APIs) that are the means of implementation are defined in the Global Platform specifications. When registerService (serviceID), which is an API for global service registration, is executed, the OS is set to
一方、「移譲中」が付与される対象である状態付与対象240には、例えば、Card Reset特権、Final Application特権及びImplicit selection parameter(これらを総称して「特権等」という場合がある)がある。状態250「移譲中」が付与される停止付与対象240は、ICチップ1a内に唯一且つ必ず存在しなければならず、且つ、ICチップ1a内で一つのELF又はAPにのみ割り当てられる。ここで、特権等がICチップ1a内で一つのELF又はAPにのみ割り当てられる場合、当該特権等を独占することを意味することから、特権等は独占対象ということができる。
On the other hand, the
Card Reset特権は、ICチップ1aへの電源投入時にリセット信号を受け付けたときに出力するATR(Answer-To-Reset)の内容を変更することが許される特権であり、ICチップ1a内において一つのAPに対して付与される。ATRの内容としては、ICチップ1aの通信プロトコルや通信速度を示す情報、ICチップ1aに記憶されているアプリケーションの識別情報等が挙げられる。 The Card Reset privilege is a privilege that allows the contents of the ATR (Answer-To-Reset) output when a reset signal is received when the power is turned on to the IC chip 1a to be changed, and is one in the IC chip 1a. Granted to AP. Examples of the contents of the ATR include information indicating the communication protocol and communication speed of the IC chip 1a, application identification information stored in the IC chip 1a, and the like.
Final Application特権は、ICチップ1a(又はICカード1)がロックされ、ユーザが使用できなくなったときにも唯一動作することが許される特権であり、ICチップ1a内において一つのAPに対して付与される。ICチップ1a(又はICカード1)がロックされる場合とは、例えば、ICチップ1a(又はICカード1)の使用期限が切れた場合や、ICチップ1a(又はICカード1)自身がセキュリティの脅威を検知して自ら機能を停止させる場合などである。Final Application特権が付与されるAPとしては、ロックになった理由を外部機器2に出力するAPが挙げられる。例えば、ICカード1がクレジットカードの場合、ロックが掛かってしまうとそのクレジットカードでは決済はできなくなるが、ロックになった理由を含む管理情報を外部機器2に出力するAPにFinal Application特権が付与されていれば、そのカードがロックした理由を把握することができる。
The Final Application privilege is a privilege that is only allowed to operate even when the IC chip 1a (or IC card 1) is locked and cannot be used by the user, and is granted to one AP in the IC chip 1a. Will be done. When the IC chip 1a (or IC card 1) is locked, for example, when the expiration date of the IC chip 1a (or IC card 1) has expired, or when the IC chip 1a (or IC card 1) itself has security. For example, when a threat is detected and the function is stopped by itself. Examples of the AP to which the Final Application privilege is granted include an AP that outputs the reason for the lock to the
Implicit selectionとは、OSが明示的なSELECTコマンドを受け付けなくても、予めAPとロジカルチャネル番号を対応付けて設定しておき、当該ロジカルチャネル番号で識別されるロジカルチャネルをクローズからオープンに切り替えるManage Channelコマンド(コマンドヘッダ内にOPEN又はCLOSEを指定することにより、ロジカルチャネルのOPENとCLOSEを制御するコマンド)を受け付けた場合に、当該ロジカルチャネル上で、予め設定されたAPとの通信を可能とする機能である。そして、OSは、Implicit selection parameterを用いて、予めAPとロジカルチャネル番号を対応付けて設定する。このとき、Implicit selection parameterで指定することのできるAPはICチップ1a上で一つだけである。 Impact selection is a Manage that switches the logical channel identified by the logical channel number from closed to open by setting the AP and the logical channel number in advance in association with each other even if the OS does not accept an explicit SELECT command. When a Channel command (a command that controls OPEN and CLOSE of a logical channel by specifying OPEN or CLOSE in the command header) is accepted, communication with a preset AP is possible on the logical channel. It is a function to do. Then, the OS is set in advance by associating the AP with the logical channel number by using the Impact selection parameter. At this time, only one AP can be specified by the Impact selection parameter on the IC chip 1a.
OSは、状態250「移譲中」を設定した状態付与対象240(特権等)については、アップデート処理中は特権等をISDへ移譲し、アップデート処理完了後には特権等を元に戻す。また、OSは、特権等をISDへ移譲している際に、別のアプリケーションのインストール処理において当該特権等の付与要求があっても拒否する。
The OS transfers the privilege, etc. to the ISD during the update process for the state grant target 240 (privilege, etc.) for which the
なお、OSは、状態250を参照しなくとも、更新フラグ230が「1」(オン)である場合には、ELF又はAPのAID等は「停止中」であり、特権等は「移譲中」であると判断することもできる。
Even if the OS does not refer to the
[3.アップデート処理]
以下、図5-図7を用いて、ICチップ1aにおけるアプリケーションのアップデート処理の動作例について説明する。図5は、アップデート処理の一例を示すシーケンス図であり、図6は、ICチップ1aによる退避・削除処理の一例を示すフローチャートであり、図7は、ICチップ1aによるインストール・復元処理の一例を示すフローチャートである。
[3. Update process]
Hereinafter, an operation example of the application update process in the IC chip 1a will be described with reference to FIGS. 5 to 7. FIG. 5 is a sequence diagram showing an example of an update process, FIG. 6 is a flowchart showing an example of a save / delete process by the IC chip 1a, and FIG. 7 is an example of an installation / restore process by the IC chip 1a. It is a flowchart which shows.
図5は、アプリケーションであるポイントアプリケーション(提携している施設等でのポイント加算・利用を可能とするアプリケーション。以下、「ポイントアプリ」という)をアップデートする場合のICチップ1aとサーバ(ポイントアプリの提供者のサーバ)のコマンド・レスポンスの流れを示している。 FIG. 5 shows the IC chip 1a and the server (of the point application) when updating the point application (an application that enables point addition and use at affiliated facilities, etc., hereinafter referred to as "point application"). It shows the flow of command and response of the provider's server).
まず、サーバはICチップ1aに対してICチップ1a内のポイントアプリを管理するSDであるISDとの通信路を形成するために[SELECT ISD]コマンドを送信する(ステップS1)。[SELECT]コマンドは、通信路の相手先となるアプリケーションを識別するIDであるAIDと、当該アプリケーションとの通信路(ロジカルチャネル)を識別するロジカルチャネル番号を含む。これに対して、ICチップ1aはコマンドに応じて通信路を形成するための処理を実行し、OK応答を送信する(ステップS2)。但し、コマンドに応じた処理を正常終了できなかった場合にはエラーが発生したことを示すレスポンスをサーバに送信する(以下、ステップS4、S6、S9、S11、S13、S16について同様)。これにより、ロジカルチャネル番号で識別される通信路(ロジカルチャネル)が形成され、以降、サーバはコマンドに当該ロジカルチャネル番号を含ませることにより、当該ロジカルチャネル番号で識別される通信路を介して、ISDと通信を行うことができる。 First, the server transmits a [SELECT ISD] command to the IC chip 1a in order to form a communication path with the ISD, which is an SD that manages the point application in the IC chip 1a (step S1). The [SELECT] command includes an AID that is an ID that identifies an application that is a destination of a communication path, and a logical channel number that identifies a communication path (logical channel) with the application. On the other hand, the IC chip 1a executes a process for forming a communication path in response to a command, and transmits an OK response (step S2). However, if the processing according to the command cannot be completed normally, a response indicating that an error has occurred is transmitted to the server (hereinafter, the same applies to steps S4, S6, S9, S11, S13, and S16). As a result, a communication path (logical channel) identified by the logical channel number is formed, and thereafter, the server includes the logical channel number in the command, and the server passes through the communication path identified by the logical channel number. Can communicate with ISD.
次いで、サーバは、通信路の機密性を高めるためにそれまでに形成した通信路(ロジカルチャネル)をセキュアな通信路にするセキュア処理(SCPでコマンドを保護するための相互認証処理)を実行する。 Next, the server executes secure processing (mutual authentication processing to protect commands by SCP) that makes the communication path (logical channel) formed so far into a secure communication path in order to increase the confidentiality of the communication path. ..
相互認証処理は、プロトコルで決められたアルゴリズムに従い、暗号演算の元となる鍵を互いが知っているという前提の下、サーバとICチップ1aが互いを認証する処理である。具体的には、サーバが相互認証用のコマンドである[INITIALIZE UPDATE]コマンド及び[EXTERNAL AUTHENTICATE]コマンドをICチップ1aに送信し(ステップS3、ステップS5)、ICチップ1aがそれぞれのコマンドに応じた処理を実行し、正常に処理を完了するとOK応答を送信する(ステップS4、ステップS6)ことにより行われる。図3では、ステップS6の処理によりOK応答を送信することにより相互認証は完了したことになる。 The mutual authentication process is a process in which the server and the IC chip 1a authenticate each other on the premise that each other knows the key that is the source of the cryptographic operation according to the algorithm determined by the protocol. Specifically, the server sends the [INITIALIZE UPDATE] command and the [EXTERNAL AUTHENTICATE] command, which are commands for mutual authentication, to the IC chip 1a (steps S3 and S5), and the IC chip 1a responds to each command. It is performed by executing the process and transmitting an OK response when the process is completed normally (step S4, step S6). In FIG. 3, mutual authentication is completed by transmitting an OK response by the process of step S6.
次いで、サーバは、ICチップ1aに対して退避・削除処理を実行させるための[退避・削除処理]コマンドを送信する(ステップS7)。退避・削除処理は、アプリケーションをアップデートするための処理の一部である。これに対して、ICチップ1aは退避・削除処理を実行する(ステップS8)。なお、退避・削除処理については後述する。ICチップ1aは退避・削除処理を正常終了すると、OK応答を送信する(ステップS9)。 Next, the server transmits a [save / delete process] command for causing the IC chip 1a to execute the save / delete process (step S7). The save / delete process is a part of the process for updating the application. On the other hand, the IC chip 1a executes the save / delete process (step S8). The save / delete process will be described later. When the IC chip 1a normally completes the save / delete process, it transmits an OK response (step S9).
次いで、サーバは、ICチップ1aに対して[LOAD(0)]コマンドを送信する(ステップS10)。[LOAD]コマンドは、新しいポイントアプリのアプリケーションプログラムをn個に分割して送信するコマンドである。[LOAD(0)]コマンドはn個に分割したうちの最初の部分を送信し、ICチップ1aに記憶させるためのコマンドである。ICチップ1aは[LOAD]コマンドに含まれるアプリケーションプログラムの一部を不揮発性メモリ13に記憶させる処理を行い、処理を正常終了すると、OK応答をサーバに送信する(ステップS11)。以下、同様に、サーバは分割した残りの部分を送信するために[LOAD(1)]コマンド、[LOAD(2)]コマンド、・・・、[LOAD(n-1)]コマンドを送信し、その都度、ICチップ1aは[LOAD]コマンドに含まれるアプリケーションプログラムの一部を不揮発性メモリ13に記憶させる処理を行い、処理を正常終了すると、OK応答をサーバに送信する。[LOAD(n-1)]コマンドの送信(ステップS12)、及び、これに対するOK応答の送信(ステップS13)がなされると、新しいポイントアプリのアプリケーションプログラム全体がICチップ1aの不揮発性メモリ13に記憶されたことになる(ロード完了)。なお、ステップS10~ステップS13の処理を総称して「ロード処理」という場合がある。なお、ロード処理は、相互認証の完了後、ステップS7~ステップS9の処理の前に行っても良い。 Next, the server sends a [LOAD (0)] command to the IC chip 1a (step S10). The [LOAD] command is a command for transmitting the application program of the new point application by dividing it into n pieces. The [LOAD (0)] command is a command for transmitting the first part of the n divisions and storing them in the IC chip 1a. The IC chip 1a performs a process of storing a part of the application program included in the [LOAD] command in the non-volatile memory 13, and when the process ends normally, sends an OK response to the server (step S11). Similarly, the server sends the [LOAD (1)] command, the [LOAD (2)] command, ..., and the [LOAD (n-1)] command to send the remaining part of the split. Each time, the IC chip 1a performs a process of storing a part of the application program included in the [LOAD] command in the non-volatile memory 13, and when the process ends normally, sends an OK response to the server. When the [LOAD (n-1)] command is transmitted (step S12) and the OK response is transmitted (step S13), the entire application program of the new point application is stored in the non-volatile memory 13 of the IC chip 1a. It will be memorized (load completed). The processes of steps S10 to S13 may be collectively referred to as "load process". The load process may be performed after the completion of mutual authentication and before the processes of steps S7 to S9.
次いで、サーバは、ICチップ1aに対してインストール・復元処理を実行させるための[インストール・復元処理]コマンドを送信する(ステップS14)。インストール・復元処理は、アプリケーションをアップデートするための処理の一部である。これに対して、ICチップ1aはインストール・復元処理を実行する(ステップS15)。なお、インストール・復元処理については後述する。ICチップ1aはインストール・復元処理を正常終了すると、OK応答を送信し(ステップS16)、アプリケーションアップデート処理を終了する。 Next, the server transmits an [installation / restoration process] command for causing the IC chip 1a to execute the installation / restoration process (step S14). The installation / restore process is a part of the process for updating the application. On the other hand, the IC chip 1a executes the installation / restoration process (step S15). The installation / restoration process will be described later. When the IC chip 1a normally completes the installation / restoration process, it sends an OK response (step S16) and ends the application update process.
[4.退避・削除処理]
次に、図6を用いて、ICチップ1aによる退避・削除処理について説明する。退避・削除処理は、サーバからの[退避・削除処理]コマンドに応じて実行される処理である。
[4. Evacuation / deletion process]
Next, the evacuation / deletion process by the IC chip 1a will be described with reference to FIG. The save / delete process is a process executed in response to the [Save / Delete process] command from the server.
まず、ICチップ1aのOS(を実行するCPU10)は、ポイントアプリに関するインスタンスデータを退避する(ステップS101)。このとき、OSはインスタンスデータに対応するフラグをオンにすることにより退避させる。
First, the OS (
次に、OSはポイントアプリに関するレジストリデータを退避する(ステップS102)。このとき、OSはレジストリデータに対応する更新フラグ230をオンにすることにより退避させる。なお、ステップS101の処理及びステップS102の処理を総称して「退避処理」という場合がある。
Next, the OS saves the registry data related to the point application (step S102). At this time, the OS saves by turning on the
次に、OSは退避したレジストリデータについて、状態付与対象240に対応する状態250を変更し、特権等を移譲する(ステップS103)。具体的には、OSは、アップデート処理の対象となっているポイントアプリのELF及びAPのAID等について状態250を「停止中」に変更し、ポイントアプリに特権等が付与されている場合には、その特権毎に状態250を「移譲中」に変更する。また、OSは、状態250を「移譲中」に変更した特権等については、当該特権等をISDに移譲する。
Next, the OS changes the
次に、OSはポイントアプリのAPを削除する(ステップS104)。 Next, the OS deletes the AP of the point application (step S104).
次に、OSはポイントアプリのELFを削除し(ステップS105)、退避・削除処理を終了する。なお、ステップS104の処理及びステップS105の処理を総称して「削除処理」という場合がある。 Next, the OS deletes the ELF of the point application (step S105), and ends the save / delete process. The process of step S104 and the process of step S105 may be collectively referred to as "deletion process".
[5.インストール・復元処理]
次に、図7を用いて、ICチップ1aによるインストール・復元処理について説明する。インストール・復元処理は、サーバからの[インストール・復元処理]コマンドに応じて実行される処理である。
[5. Installation / restoration process]
Next, the installation / restoration process by the IC chip 1a will be described with reference to FIG. 7. The installation / restore process is a process executed in response to the [install / restore process] command from the server.
まず、ICチップ1aのOS(を実行するCPU10)は、図5のステップS10~ステップS12の[LOAD]コマンドに基づいて記憶したポイントアプリの新しいバージョンのELFのインストール処理を行い(すなわち、新しいバージョンのAPを生成し)、不揮発性メモリ13に記憶させる(ステップS201)。
First, the OS (
次に、OSは、図6のステップS101の処理で退避したインスタンスデータを復元する(ステップS202)。具体的には、OSは、退避させたインスタンスデータに対応するフラグをオフにすることにより復元させる。 Next, the OS restores the instance data saved in the process of step S101 of FIG. 6 (step S202). Specifically, the OS restores the data by turning off the flag corresponding to the saved instance data.
次に、OSは、図6のステップS102の処理で退避したレジストリデータを復元する(ステップS203)。具体的には、OSが、退避させたレジストリデータに対応する更新フラグ230をオフにすることにより復元させる。なお、ステップS202の処理及びステップS203の処理を総称して「関連付け処理」という場合がある。
Next, the OS restores the registry data saved in the process of step S102 in FIG. 6 (step S203). Specifically, the OS restores the data by turning off the
次に、OSは、図6のステップS103の処理で変更した状態250を元に戻す(ステップS204)。具体的には、OSは、アップデート処理の対象となっているポイントアプリのELF及びAPのAID等について「停止中」を解除し、ポイントアプリに特権等が付与されている場合には、その特権について「移譲中」を解除する。また、OSは、状態250を「移譲中」に変更した特権等については、当該特権等をISDからポイントアプリに再移譲する。OSは、ステップS204の処理を終えると、インストール・復元処理を終了する。
Next, the OS restores the
[6.特権付与判定処理]
次に、図8を用いて、状態250が「移譲中」の特権等の付与要求を伴うINSTALL for installコマンドを受信したことに基づくインストール処理における、特権を付与するか否かの特権付与判定処理について説明する。図8では、特権等がFinal Application特権である場合について説明する。なお、Card Reset特権及びImplicit selection parameterについても同様の判定処理を行うことができる。
[6. Privilege grant judgment processing]
Next, using FIG. 8, the privilege grant determination process of whether or not to grant the privilege in the installation process based on the reception of the INSTALL for instant command accompanied by the privilege grant request such as the privilege of "transferring" in the
まず、OSは、Final Application特権の付与要求を伴うINSTALL for installコマンドを受信すると、Final Application特権が付与されているAPを検索する(ステップS301)。 First, when the OS receives the INSTALL for installation command accompanied by the request for granting the Final Application privilege, the OS searches for the AP to which the Final Application privilege is granted (step S301).
次に、OSは、Final Application特権が付与されているAPがISDであるか否かを判定する(ステップS302)。OSは、Final Application特権が付与されているAPがISDでないと判定した場合には(ステップS302:NO)、INSTALL for installコマンドの送信元に対して、インストールが失敗したことを示すエラー応答を送信し(ステップS303)、特権付与判定処理を終了する。一方、OSは、Final Application特権が付与されているAPがISDであると判定した場合には(ステップS302:YES)、他のアプリケーションのアップデート処理中であるか否かを判定する(ステップS304)。具体的には、何れかの更新フラグ230がオンとなっている場合にはアップデート処理中であると判定する。 Next, the OS determines whether or not the AP to which the Final Application privilege is granted is an ISD (step S302). When the OS determines that the AP to which the Final Application privilege is granted is not ISD (step S302: NO), the OS sends an error response indicating that the installation has failed to the source of the INSTALL for installation command. (Step S303), and the privilege grant determination process is terminated. On the other hand, when the OS determines that the AP to which the Final Application privilege is granted is ISD (step S302: YES), the OS determines whether or not another application is being updated (step S304). .. Specifically, when any of the update flags 230 is turned on, it is determined that the update process is in progress.
OSは、他のアプリケーションのアップデート処理中ではないと判定した場合には(ステップS304:NO)、Final Application特権の付与要求を伴うINSTALL for installコマンドにより生成されるAPに対して、Final Application特権を付与し(ステップS306)、特権付与判定処理を終了する。一方、OSは、他のアプリケーションのアップデート処理中であると判定した場合には(ステップS304:YES)、次いで、AP管理情報220を参照して、アップデート処理中であるAPについて、Final Application特権(状態付与対象240)の状態250が「移譲中」であるか否かを判定する(ステップS305)。
When the OS determines that the update process of another application is not in progress (step S304: NO), the OS assigns the Final Application privilege to the AP generated by the INSTALL for installation command accompanied by the request for granting the Final Application privilege. Grant (step S306), and end the privilege grant determination process. On the other hand, when the OS determines that the update process of another application is in progress (step S304: YES), the OS then refers to the AP management information 220 and has a Final Application privilege (Final Application privilege) for the AP in the update process. It is determined whether or not the
OSは、アップデート処理中であるAPについて、Final Application特権(状態付与対象240)の状態250が「移譲中」ではないと判定した場合には(ステップS305:NO)、Final Application特権の付与要求を伴うINSTALL for installコマンドにより生成されるAPに対して、Final Application特権を付与し(ステップS306)、特権付与判定処理を終了する。一方、OSは、アップデート処理中であるAPについて、Final Application特権(状態付与対象240)の状態250が「移譲中」であると判定した場合には(ステップS305:YES)、INSTALL for installコマンドの送信元に対して、インストールが失敗したことを示すエラー応答を送信し(ステップS303)、特権付与判定処理を終了する。
When the OS determines that the
以上のように、本実施形態のICチップ1a(「電子情報記憶媒体」の一例)は、不揮発性メモリ13(「記憶手段」の一例)は、ELF及びAPを記憶し、CPU10(「削除手段」、「ロード手段」、「インストール手段」、「拒否手段」の一例)は、アップデート対象であるELF及びAPを削除対象として削除する削除処理を実行し、アップデート対象であるELFの新バージョンである新ELFを不揮発性メモリ13に記憶させるロード処理を実行し、削除処理及びロード処理の後に、不揮発性メモリ13に記憶されている新ELFに基づいて新バージョンの新APを生成して不揮発性メモリ13に記憶させるインストール処理を実行し、削除処理、ロード処理又はインストール処理の実行中に、一のELF又はAPにのみ割り当てられる独占対象であって、アップデート対象であるELF又はAPに割り当てられた独占対象を、他のELF及びAPに対して割り当てる要求を受け付けた場合に、当該要求を拒否する。 As described above, in the IC chip 1a (an example of the "electronic information storage medium") of the present embodiment, the non-volatile memory 13 (an example of the "storage means") stores ELF and AP, and the CPU 10 ("deletion means"). , "Loading means", "Installing means", "Rejecting means") is a new version of the ELF that is the update target by executing the deletion process that deletes the ELF and AP that are the update targets. A load process for storing the new ELF in the non-volatile memory 13 is executed, and after the deletion process and the load process, a new version of the new AP is generated based on the new ELF stored in the non-volatile memory 13 to generate the non-volatile memory. The installation process stored in 13 is executed, and during the execution of the deletion process, load process, or installation process, the exclusive target assigned to only one ELF or AP and the exclusive target assigned to the ELF or AP to be updated. When a request for assigning an object to other ELFs and APs is accepted, the request is rejected.
したがって、本実施形態のICチップ1aによれば、独占対象が割り当てられていたELF又はAPをアップデートするためにアップデート対象を削除している場合において、他のELF及びAPに対して当該独占対象を割り当てる要求を受け付けた場合にこれを拒否するため、アップデート処理後も適切にアップデートしたELF又はAPに当該独占対象を引き継ぐことができる。 Therefore, according to the IC chip 1a of the present embodiment, when the update target is deleted in order to update the ELF or AP to which the monopoly target has been assigned, the monopoly target is assigned to other ELFs and APs. Since the request for allocation is rejected when it is accepted, the monopoly target can be taken over by the ELF or AP that has been appropriately updated even after the update process.
また、本実施形態のICチップ1aにおいて特権等(「独占対象」の一例)は、不揮発性メモリ13に記憶される何れかのELF又はAPに必ず割り当てられなければならず、CPU10(「割り当て手段」、「再割り当て手段」の一例)は、削除対象を削除する際に、当該削除対象を管理するISD(「管理アプリケーションプログラム又は管理アプリケーションインスタンス」の一例)に特権等を割り当て、ISDに割り当てた特権等を、新ELF又は新APに再割り当てする。これにより、特権等が割り当てられているELF又はAPをアップデートする場合において当該ELF又はAPを削除する際に、特権等が何れのELF又はAPにも割り当てられない状態となることを防ぐことができる。 Further, in the IC chip 1a of the present embodiment, the privilege or the like (an example of the “exclusive object”) must be assigned to any ELF or AP stored in the non-volatile memory 13, and the CPU 10 (“assignment means”). , An example of "reassignment means") assigns privileges, etc. to the ISD that manages the deletion target (an example of "management application program or management application instance") and assigns it to the ISD. Reassign privileges, etc. to the new ELF or new AP. As a result, when updating an ELF or AP to which a privilege or the like is assigned, it is possible to prevent the privilege or the like from being unassigned to any ELF or AP when the ELF or AP is deleted. ..
また、ICチップ1aのCPU10(「応答手段」の一例)は、削除処理、ロード処理又はインストール処理を実行中に、削除対象であるELF又はAPを検索する要求をサーバ(「外部機器」の一例)から受けた場合に、当該削除対象であるELF又はAPは存在しない旨の応答をサーバに行う。
Further, the
1 ICカード
1a ICチップ
10 CPU
11 RAM
12 ROM
13 不揮発性メモリ
14 I/O回路
2 外部機器
1 IC card
11 RAM
12 ROM
13 Non-volatile memory 14 I /
Claims (6)
アップデート対象であるアプリケーションプログラム及びアプリケーションインスタンスを削除対象として削除する削除処理を実行する削除手段と、
前記アップデート対象であるアプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード手段と、
前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンの新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール手段と、
前記削除処理、前記ロード処理又は前記インストール処理の実行中に、一のアプリケーションプログラム又はアプリケーションインスタンスにのみ割り当てられる独占対象であって、前記アップデート対象であるアプリケーションプログラム又はアプリケーションインスタンスに割り当てられた独占対象を、他のアプリケーションプログラム及びアプリケーションインスタンスに対して割り当てる要求を受け付けた場合に、当該要求を拒否する拒否手段と、
を備えることを特徴とする電子情報記憶媒体。 A storage means for storing application programs and application instances,
A deletion means that executes a deletion process that deletes the application program and application instance that are the update targets as the deletion target, and
A load means for executing a load process for storing a new application program, which is a new version of the application program to be updated, in the storage means, and a load means.
After the deletion process and the load process, an installation means for executing an installation process of generating a new version of a new application instance based on the new application program stored in the storage means and storing the new application instance in the storage means.
An exclusive target assigned to only one application program or application instance during the execution of the deletion process, the load process, or the installation process, and the exclusive target assigned to the application program or application instance to be updated. When a request to be assigned to another application program or application instance is accepted, a denial means for rejecting the request and
An electronic information storage medium characterized by comprising.
前記独占対象は、前記記憶手段に記憶される何れかのアプリケーションプログラム又はアプリケーションインスタンスに必ず割り当てられなければならず、
前記削除対象を削除する際に、当該削除対象を管理する管理アプリケーションプログラム又は管理アプリケーションインスタンスに前記独占対象を割り当てる割り当て手段と、
前記管理アプリケーションプログラム又は前記管理アプリケーションインスタンスに割り当てた独占対象を、前記新アプリケーションプログラム又は前記新アプリケーションインスタンスに再割り当てする再割り当て手段と、
を更に備えることを特徴とする電子情報記憶媒体。 The electronic information storage medium according to claim 1.
The monopoly must always be assigned to any application program or application instance stored in the storage means.
When the deletion target is deleted, the allocation means for assigning the exclusive target to the management application program or management application instance that manages the deletion target, and
A reassignment means for reallocating the monopoly target assigned to the management application program or the management application instance to the new application program or the new application instance.
An electronic information storage medium characterized by further comprising.
前記削除処理、前記ロード処理又は前記インストール処理を実行中に、前記削除対象であるアプリケーションプログラム又はアプリケーションインスタンスを検索する要求を外部機器から受けた場合に、当該削除対象であるアプリケーションプログラム又はアプリケーションインスタンスは存在しない旨の応答を前記外部機器に行う応答手段を更に備えることを特徴とする電子情報記憶媒体。 The electronic information storage medium according to claim 1 or 2.
When a request to search for the application program or application instance to be deleted is received from an external device during the deletion process, the load process, or the installation process, the application program or application instance to be deleted is subjected to the deletion process. An electronic information storage medium further comprising a response means for making a response to the effect that it does not exist to the external device.
アップデート対象であるアプリケーションプログラム及びアプリケーションインスタンスを削除対象として削除する削除処理を実行する削除工程と、
前記アップデート対象であるアプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード工程と、
前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンの新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール工程と、
前記削除処理、前記ロード処理又は前記インストール処理の実行中に、一のアプリケーションプログラム又はアプリケーションインスタンスにのみ割り当てられる独占対象であって、前記アップデート対象であるアプリケーションプログラム又はアプリケーションインスタンスに割り当てられた独占対象を、他のアプリケーションプログラム及びアプリケーションインスタンスに対して割り当てる要求を受け付けた場合に、当該要求を拒否する拒否工程と、
を含むことを特徴とする電子情報記憶媒体によるアップデート方法。 An update method using an electronic information storage medium provided with a storage means for storing an application program and an application instance.
A deletion process that executes a deletion process that deletes the application program and application instance that are the update targets as deletion targets, and
A loading process for executing a loading process for storing a new application program, which is a new version of the application program to be updated, in the storage means, and a loading process.
After the deletion process and the load process, an installation process of generating a new version of a new application instance based on the new application program stored in the storage means and storing the new application instance in the storage means is executed.
An exclusive target assigned to only one application program or application instance during the execution of the deletion process, the load process, or the installation process, and the exclusive target assigned to the application program or application instance to be updated. , A refusal process that rejects a request to be assigned to another application program or application instance,
An update method using an electronic information storage medium, which comprises.
アップデート対象であるアプリケーションプログラム及びアプリケーションインスタンスを削除対象として削除する削除処理を実行する削除手段、
前記アップデート対象であるアプリケーションプログラムの新バージョンである新アプリケーションプログラムを前記記憶手段に記憶させるロード処理を実行するロード手段、
前記削除処理及び前記ロード処理の後に、前記記憶手段に記憶されている新アプリケーションプログラムに基づいて新バージョンの新アプリケーションインスタンスを生成して前記記憶手段に記憶させるインストール処理を実行するインストール手段、
前記削除処理、前記ロード処理又は前記インストール処理の実行中に、一のアプリケーションプログラム又はアプリケーションインスタンスにのみ割り当てられる独占対象であって、前記アップデート対象であるアプリケーションプログラム又はアプリケーションインスタンスに割り当てられた独占対象を、他のアプリケーションプログラム及びアプリケーションインスタンスに対して割り当てる要求を受け付けた場合に、当該要求を拒否する拒否手段、
として機能させることを特徴とするアップデートプログラム。 A computer included in an electronic information storage medium provided with storage means for storing application programs and application instances.
A deletion means that executes a deletion process that deletes the application program and application instance that are the update targets as the deletion target.
A loading means for executing a loading process for storing a new application program, which is a new version of the application program to be updated, in the storage means.
An installation means for executing an installation process of generating a new version of a new application instance based on a new application program stored in the storage means and storing the new application instance in the storage means after the deletion process and the load process.
An exclusive target assigned to only one application program or application instance during the execution of the deletion process, the load process, or the installation process, and the exclusive target assigned to the application program or application instance to be updated. , Rejection means to reject a request to be assigned to another application program or application instance,
An update program characterized by functioning as.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017169178A JP7009844B2 (en) | 2017-09-04 | 2017-09-04 | Update method and update program using electronic information storage medium, IC card, electronic information storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017169178A JP7009844B2 (en) | 2017-09-04 | 2017-09-04 | Update method and update program using electronic information storage medium, IC card, electronic information storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019046211A JP2019046211A (en) | 2019-03-22 |
JP7009844B2 true JP7009844B2 (en) | 2022-01-26 |
Family
ID=65815719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017169178A Active JP7009844B2 (en) | 2017-09-04 | 2017-09-04 | Update method and update program using electronic information storage medium, IC card, electronic information storage medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7009844B2 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000172808A (en) | 1998-12-01 | 2000-06-23 | Toshiba Corp | Ic card and application managing method |
JP2005025441A (en) | 2003-07-01 | 2005-01-27 | Dainippon Printing Co Ltd | Method for updating application program of ic card |
JP2006113747A (en) | 2004-10-13 | 2006-04-27 | Toshiba Corp | Portable electronic device |
JP2006119901A (en) | 2004-10-21 | 2006-05-11 | Toshiba Corp | Portable electronic apparatus and application updating method for the portable electronic apparatus |
-
2017
- 2017-09-04 JP JP2017169178A patent/JP7009844B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000172808A (en) | 1998-12-01 | 2000-06-23 | Toshiba Corp | Ic card and application managing method |
JP2005025441A (en) | 2003-07-01 | 2005-01-27 | Dainippon Printing Co Ltd | Method for updating application program of ic card |
JP2006113747A (en) | 2004-10-13 | 2006-04-27 | Toshiba Corp | Portable electronic device |
JP2006119901A (en) | 2004-10-21 | 2006-05-11 | Toshiba Corp | Portable electronic apparatus and application updating method for the portable electronic apparatus |
Also Published As
Publication number | Publication date |
---|---|
JP2019046211A (en) | 2019-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5443659B2 (en) | Local trusted service manager for contactless smart cards | |
US8215547B2 (en) | Data communicating apparatus and method for managing memory of data communicating apparatus | |
JP5524425B2 (en) | Writing application data to the secure element | |
US8811971B2 (en) | Mobile communication device and method for disabling applications | |
US6481632B2 (en) | Delegated management of smart card applications | |
JP4717381B2 (en) | Mobile device and access control method | |
EP1004992A2 (en) | A system and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card | |
EP2183728A2 (en) | Method, system and trusted service manager for securely transmitting an application to a mobile phone | |
WO1998043212A1 (en) | A system and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card | |
US7516479B2 (en) | Data communicating apparatus and method for managing memory of data communicating apparatus | |
JP7009844B2 (en) | Update method and update program using electronic information storage medium, IC card, electronic information storage medium | |
JP2019028602A (en) | Electronic information storage medium, ic card, update method by electronic information storage medium and update program | |
CN111310243A (en) | Operating system in intelligent IC card with many owner security territories | |
JP6915437B2 (en) | Update method and update program using electronic information storage medium, IC card, electronic information storage medium | |
JP7334718B2 (en) | Secure element, privilege allocation management method in secure element, and IC chip | |
JP4638135B2 (en) | Information storage medium | |
JP6780462B2 (en) | Electronic information storage medium, secure processing execution method, and secure processing execution program | |
JP7068603B2 (en) | Update method and update program using electronic information storage medium, IC card, electronic information storage medium | |
US20100200650A1 (en) | Mobile communication device and method for recovering mifare memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200728 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210616 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210629 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210830 |
|
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: 20211214 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20211227 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7009844 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |