JP4806639B2 - セキュアデバイス及びicカード発行システム - Google Patents

セキュアデバイス及びicカード発行システム Download PDF

Info

Publication number
JP4806639B2
JP4806639B2 JP2006552909A JP2006552909A JP4806639B2 JP 4806639 B2 JP4806639 B2 JP 4806639B2 JP 2006552909 A JP2006552909 A JP 2006552909A JP 2006552909 A JP2006552909 A JP 2006552909A JP 4806639 B2 JP4806639 B2 JP 4806639B2
Authority
JP
Japan
Prior art keywords
card
command
issuance
management unit
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006552909A
Other languages
English (en)
Other versions
JPWO2006075576A1 (ja
Inventor
雅基 田靡
光弘 佐藤
康雄 竹内
恵美 鶴切
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2006552909A priority Critical patent/JP4806639B2/ja
Publication of JPWO2006075576A1 publication Critical patent/JPWO2006075576A1/ja
Application granted granted Critical
Publication of JP4806639B2 publication Critical patent/JP4806639B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K17/00Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means

Landscapes

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

Description

本発明は、IC(Integrated Circuit)カードに代表されるセキュアデバイス、及びセキュアデバイスとセキュアデバイスに通信接続される携帯端末に代表される外部機器とからなるICカード発行システムに関し、特に、通信接続された外部機器からの指示を受けてカード発行処理を行うセキュアデバイス、及びICカード発行システムに関する。
現在、セキュアデバイスとしてICカードが注目されている。ICカードには、単にデータを格納するものや実際にOS(Operating System)を登載するものなどがある。ICカードの採用事例としては、クレジットカードやETC(Electronic Toll Collection System)カードに代表される接触型ICカード、及び交通系カードや電子マネーカードに代表される非接触型ICカードなど様々なものが挙げられ、今後も新たな採用分野の開発、及び採用分野の規模拡大が進むと期待される。
一方、ユーザの利便性の向上、ICカードによるサービスを提供したい事業者の参入障壁を下げることを目的に、カード発行後にアプリケーションをダウンロードすることが可能なマルチアプリケーション対応カードの開発が行われている。
また、ICカードのようなセキュアデバイスを携帯端末等のモバイル機器に登載し、アプリケーションのダウンロードやアプリケーションの利用を、モバイル機器を介して実施する技術が実用化されつつある。
ここで、ICカードのハードウェア構成について、図1を用いて説明する。図1は、ICカードのハードウェアに関する機能ブロック図である。
ICカード10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、揮発性メモリ(例:RAM:Random Access Memory)13、揮発性メモリ(例:EEPROM:Electrically Erasable Programmable Read Only Memory)14、及びI/O IF15を備えている。
CPU11は、演算を行う。ROM12は、書き換えができない読み出し専用のメモリである。ROM12に格納される内容は、ICカード製造時に決定され、その後変更することはできない。RAM13は、読み書きが可能なメモリである。EEPROM14は、電源が切断されても内容が保持されるようになっている。I/O IF15は、ICカード10と外部とのデータ交換を担当する。CPU11で実行されるプログラムは、通常「アプリケーション」と呼ばれる。アプリケーションの実行のためのコードは、ROM12やEEPROM14に格納される。また、ICカード10が暗号操作される場合には、ICカード10は、図1に示す以外に、暗号用コプロセッサをさらに備える。
ICカード10に登載されるアプリケーションと外部(リーダ)との間では、例えば、ISO/IEC7816−4で規定されているフォーマットであるAPDU(Application Protocol Data Unit)を使ってデータを交換する。APDUは、リーダがICカードに与えるコマンドメッセージと、ICカードからリーダに返すレスポンスメッセージとの2つの構成からなる。
APDUコマンドのフォーマットについて、図2を用いて説明する。図2は、APDUコマンドのフォーマットの一例を示す図である。
図2のAPDUコマンド20は、ヘッダ21と本体22とからなる。ヘッダ21は、クラス(CLA)、命令(INS)、及びパラメータ(P1,P2)で構成されている。本体22は、コマンドのデータフィールド長(Lc:Length of Command Data)、データ部及びレスポンスのデータフィールド長(Le:Length of Expected Data)で構成されている。APDUコマンド20の容量は、CLA,INS,P1,P2,Lc,Le:各1バイト、及びデータ部:255バイトの合計261バイトが最大である。
次に、APDUを作成する方式について、図3を用いて説明する。図3は、データを分割してAPDUを作成する方式を示す概念図である。
上記のように、1つのAPDUコマンド20の容量は、261バイトと小さいため、アプリケーションをダウンロードするときの数Kバイトにおよぶデータを送信するためには、送信データを複数のAPDUブロックに分ける必要がある。それぞれのAPDUブロックのパラメータ(P1,P2)でブロック番号やあとに続くブロックがあるかどうかを示すことにより、ICカード側で、送られてきたコマンドの順番の整合性や最終処理の必要性をチェックすることができる。
また、Lcを3バイトで表記し、1バイト目で3バイト表記であることを示し、2バイト目及び3バイト目でデータ長を示す拡張が提案されているが、ICカードのメモリ容量の観点から実装例はきわめて少ない。
一般的に、ICカードのようなメモリ容量の小さなデバイスにおいては、受信したコマンドを格納する入力バッファは、大きなサイズを取ることができない。マルチアプリケーション対応カードを用いて説明すると、ある領域を永続的に入力バッファとし、アプリケーション間で共通利用することで、確保するメモリ容量を制限している。マルチアプリケーション対応カードでは、アプリケーションが選択されたときに「現在選択されているアプリケーションを示すカレントAP情報」を更新し、次につづくコマンドを受信したときにカレントAP情報を参照することにより、選択中のアプリケーションに確実にコマンドを渡すことができる。
アプリケーションのダウンロードは、カードマネージャを介して行う。カードマネージャは、マルチアプリケーション対応カードにおいてカードの管理やカード内のアプリケーションを管理するアプリケーションである。「カードの管理」とは、カード発行者がカードを管理するために必要なIDや鍵をカード内に格納するカード発行や、発行後のカードを一時停止状態や廃棄状態に遷移させることである。また、「アプリケーションの管理」とは、アプリケーションのダウンロードや削除をおこなうことである。
また、最近では、ICチップから大容量メモリをICカード拡張メモリ保護領域として利用可能なデバイス(以下、セキュアメモリカード)が提案され、ICカードアプリケーションデータの大容量化というニーズに対応可能となっている。セキュアメモリカードは、モバイル機器の大きさに適合できるため、スロットつきのモバイル機器に直接挿入し、モバイル機器を利用したEC(Electronic Commerce)サービス利用への展開が期待されている。
モバイル機器を利用する場合には、電波圏外に位置することによって通信中断が起こり、その結果としてカードの振る舞いに影響を与える可能性が高くなる。そこで、通信中断が発生したときに、最初からダウンロードをやり直したり、途中から再送したりといった繰り返し処理が提案されている。
このようなICカードアプリケーションプログラムロード技術として、例えば、特許文献1に開示されているものがある。図4は、特許文献1に記載されているICカードアプリケーションプログラムロード装置のブロック図である。
図4において、ホストコンピュータ30は、アプリケーションプログラムを記憶し、アプリケーションプログラムに所定の暗号化処理(RSA:Rivest-Shamir-Adleman)を施して分割したコンポーネントとし、端末装置40を介してICカード50に提供する。ICカード50は、ホストコンピュータ30との通信が中断し、アプリケーションプログラム等のデータのやりとりが中断した場合には、正常に受信された部分以外のデータの再送要求をホストコンピュータ30に送信する。そして、すべてのコンポーネントを受信した場合には、これらを統合し、復合化処理し、誤り検出処理する。一方、再送要求を所定の回数だけ送信しても正常に受信されない場合には、再送要求の送信を打ち切り、それまで正常に受信し記憶されたデータを消去する。
特開2003−108384号公報
しかしながら、特許文献1記載のICカードアプリケーションプログラムロード技術にあっては、以下のような問題がある。
第1に、ホストコンピュータとICカードとの間で、アプリケーションプログラムのダウンロードに必要なデータの送受信を繰り返し行う必要があるため、両者間の通信が何らかの理由で中断した場合のダウンロードへの影響を免れることができず、ICカードの振る舞いに影響を与える可能性が高くなるという問題がある。特に、今後、セキュアデバイスのメモリ容量増加に伴って高機能アプリケーションが期待され、アプリケーション自体が巨大化する傾向にあり、その結果、APDUブロック数はますます多くなると考えられる。このようなAPDUブロック数の増加はダウンロード時間の増加を意味し、ダウンロードが完了するまでに通信中断が発生する可能性が高くなることを意味する。また、通信中断が発生したときに、最初からダウンロードをやり直したり、途中から再送したりといった繰り返し処理を行っても、再送中の失敗による再再送など繰り返し処理によるシステムやカード処理の複雑性、及びダウンロード時間の増加によるユーザストレスが懸念され、できるだけ通信中断の影響を受けない方式が求められる。
第2に、ICカードは、受動的なデバイスであり、ホストコンピュータから与えられたアプリケーションプログラムを取り込んで、このプログラムに指示された通りにしか動作することができないという問題がある。すなわち、使用に供するICカードのアプリケーションそのものは、元々、ICカードに接続される外部機器(この場合、ホストコンピュータ)に格納されたものであるため、カード発行やアプリケーションダウンロードにおいて、ユーザが選択することができるアプリケーションの範囲は制限されており、利便性に欠ける。
第3に、ホストコンピュータは、アプリケーションプログラムに所定の暗号化処理を施してICカードに送信するため、ICカードでは、復号化や検証の処理が必要になるという問題がある。上記のように、ICカードの処理能力は高くなく、従来のセキュリティを確保しつつ、すべて平文で処理、又は復号化や検証の回数を減らすことが可能な方式が望ましい。
第4に、アプリケーションプログラムのダウンロードやカード発行時にホストコンピュータとICカードとがセッション鍵を共有し、そのセッション鍵でICカードに送信するAPDUブロックの暗号化やMAC(Message Authenticate Code)検証を行うためには、元データとなるAPDUブロックを知る必要があるという問題がある。実際には、APDUブロック作成者とアプリケーションプログラムのダウンロードやカード発行を実行する事業者とが分離している場合もあるため、APDUブロックに個人情報などの秘匿性の高い情報を含む場合にはアプリケーションプログラムのダウンロードやカード発行を実行する事業者がAPDUブロックの内容を知ることができない方式が期待されている。
本発明は、かかる点に鑑みてなされたものであり、外部機器との通信中断による影響を低減し、ユーザが所望するアプリケーションプログラムを、高速かつ安全に取り入れることができるセキュアデバイスを提供することを目的とする。
本発明のセキュアデバイスは、内部メモリに格納されたコマンド群から、取得するカードの機能に対応するカード発行コマンドを抽出するカード発行部と、前記カード発行部により抽出された前記カード発行コマンドを実行するカード管理部と、を有する構成を採る。
本発明のICカード発行システムは、セキュアデバイスとこのセキュアデバイスとの間で通信を行う外部機器とからなるICカード発行システムであって、前記外部機器は、カード発行を要求する要求コマンドを生成するコマンド生成部と、生成された前記要求コマンドを前記セキュアデバイスに送信するコマンド送信部と、を有し、前記セキュアデバイスは、内部メモリに格納されたコマンド群から、取得するカードの機能に対応するカード発行コマンドを抽出するカード発行部と、前記要求コマンドを入力した場合、前記カード発行部により抽出された前記カード発行コマンドを実行するカード管理部と、を有する構成を採る。
本発明によれば、外部機器とセキュアデバイスとの間の通信回数を削減し、かつ従来のセキュリティを確保したうえで、セキュアデバイス内のセキュリティ処理負荷を軽減することによって、外部機器とセキュアデバイスとの間におけるデータ処理(例えば、アプリケーションプログラムのダウンロードやカード発行)の高速化を実現することができる。また、ユーザが所望するアプリケーションプログラムをセキュアデバイスに取り入れることができる。さらに、アプリケーションプログラムのダウンロードやカード発行に関与する複数の事業者間において契約によって実現されてきた情報保護を、技術的に実現することができる。
以下、本発明の実施の形態について、図面を参照して詳細に説明する。なお、本発明はこれらの実施の形態に何ら限定されるものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施しうる。
また、「セキュアデバイス」とは、広義では、アプリケーションを有するチップが組み込まれた認証機能や決済機能、VPN(Virtual Private Network)等の機能を有するデバイス全般を意味する。以下の実施の形態では、セキュアデバイスの例としてマルチアプリケーション対応カードを採用して説明する。
また、「カード発行」とは、アプリケーションを有するカード自体の発行と、発行済みのカードへのアプリケーションのダウンロードとの両方を意味する。以下の実施の形態では、カード発行の例としてこの両者を採用して説明する。
(実施の形態1)
図5は、本発明の実施の形態1に係るセキュアデバイス100の構成を示すブロック図である。
図5において、セキュアデバイス100は、カード管理部102、カード発行部104、及びコマンド格納部106を備えて構成される。
カード管理部102は、後述する外部機器150との間で通信を行い、アプリケーションプログラムや制御信号などの各種のコマンドを送受信する。また、カード管理部102は、例えば、カードを発行するために必要なIDや鍵を保持したり、必要に応じて、発行後のカードを一時停止状態や廃棄状態に遷移させることにより、セキュアデバイス100の動作を管理する。また、カード管理部102は、後述する外部機器150からのダイレクトアクセスの要求を受け入れるかどうかを判断する。
また、カード管理部102は、アプリケーションプログラムのダウンロードを管理する機能(カードマネージャ)を有する。具体的には、カード発行部104により書き込まれた各カード発行コマンドを実行する。そして、カード管理部102は、カード発行が成功したかどうかを示す結果であるレスポンスを外部機器150に送信する。
カード発行部104は、コマンド格納部106が格納するコマンド群から、取得するカードの機能に対応する一連のカード発行コマンドを選択して抽出する。また、カード発行部104は、抽出した一連カードの発行コマンドを、カード発行コマンド単位で、カード管理部102のAPDUバッファ(図示せず)にコピーする。
コマンド格納部106は、カード発行を実行するためのコマンド群を格納する内部メモリである。コマンド格納部106に格納されるコマンド群は、例えば、購入時にセキュアデバイス100内に格納(プレインストール)されているものでもよいし、購入後に外部機器150から書き込まれて挿入(インストール)されたものでもよい。すなわち、セキュアデバイス100の用途や容量に応じて、コマンド格納部106に格納されるコマンド群を自由に変更、追加又は削除することができる。また、コマンド格納部106は、外部機器150からのダイレクトアクセスにより書き込まれる一連のカード発行コマンドであるAPDU発行コマンドをまとめたデータを格納するセキュア領域を有する。
コマンド格納部106は、複数のカードの機能に対応する複数のカード発行コマンド群を格納することができる。それぞれのカードの機能に対応する一連のカード発行コマンドは、それぞれ後述する連立コマンドとしてファイルに収められて格納される。また、この連立コマンドが収められたファイルは、ファイル名やファイルIDにより識別可能である。
次に、図5の外部機器の構成について、図6を用いて説明する。図6は、図5の外部機器150の構成を示すブロック図である。
図6において、外部機器150は、コマンド生成部152、コマンド送信部154、レスポンス受信部156、及びセルフ発行管理部158を備えて構成される。
コマンド生成部152は、カード管理部102との間でやりとりする各種のコマンドを生成する。特に、コマンド生成部152は、セルフ発行管理部158の指示を受けて、セキュアデバイス100へのカード発行要求であるセルフ発行開始コマンドを生成する。コマンド生成部152で生成されたセルフ発行開始コマンドは、コマンド送信部154を介してカード管理部102へ出力される。
コマンド送信部154は、コマンド生成部152で生成されたセルフ発行開始コマンドその他の各種コマンドを、カード管理部102へ出力する。
レスポンス受信部156は、カード管理部102からの、カード発行が成功したかどうかを示すレスポンスを受信する。レスポンス受信部156で受信されたレスポンスは、セルフ発行管理部158へ出力される。
セルフ発行管理部158は、外部機器150内におけるセルフ発行開始コマンドの生成及び送信を制御する。具体的には、セルフ発行管理部158は、コマンド生成部152に対して、セルフ発行開始コマンドの発行を要求する。また、セルフ発行管理部158は、レスポンス受信部156からのカード発行が成功したかどうかを示すレスポンスを受けて、レスポンスの内容を解析し、外部機器150の次の動作を決定する。
例えば、セルフ発行管理部158は、カード発行が成功したというレスポンスを受けた場合は、外部機器150の処理を終了する旨の指示を出す。また、カード発行が成功したことを再度セキュアデバイス100に通知した後でなければカード発行によりダウンロードしたアプリケーションプログラムを使用できない場合は、セルフ発行管理部158は、コマンド生成部152に対して、「カード使用許可確認用コマンド」の発行を要求する。
一方、セルフ発行管理部158は、カード発行が失敗したというレスポンスを受けた場合は、コマンド生成部152に対して、セルフ発行開始コマンドを再生成及び再送信する旨の指示を出し、又はカード発行を中止する旨の指示を出す。
以下、上述のように構成されたセキュアデバイス100の動作について、図7を用いて詳細に説明する。
図7は、本発明の実施の形態1に係る外部機器150、カード管理部102及びカード発行部104の処理を示すシーケンス図である。図7の例は、外部機器150から書き込まれたAPDU発行コマンドを処理してアプリケーションプログラムをダウンロードする場合を示している。
ステップS1000では、外部機器150とカード管理部102との間で使用するアプリケーションを選択する。具体的には、まず、外部機器150が、カードマネージャ(=カード発行に使用するアプリケーション)を選択するためのコマンドをカード管理部102へ送信する。次いで、カード管理部102が、外部機器150からのコマンドを受信して、カードマネージャの選択に成功すると、現在選択されているAPを示す「カレントAP情報」をカード管理部102に更新し、次に続くコマンドを受信したときに、更新された「カレントAP情報」を参照する。このようにして、カード管理部102に、次に続くコマンドを渡すことができる。
ステップS1100では、外部機器150とカード管理部102との間で、お互いの認証処理を行う。具体的には、セキュアデバイス100が外部機器150を認証する外部認証と、外部機器150がセキュアデバイス100を認証する内部認証とのうち、必要とするセキュリティレベルに応じて、両方又は一方のみ実施する。
なお、ステップS1100の認証ステップは、秘匿性の高いデータを書き込む際には、必ず行うことが好ましいが、それ以外のデータを書き込む際には、省略してもよい。
ステップS1200では、外部機器150が、コマンド格納部106のセキュア領域に対して、アプリケーションプログラムのダウンロードを実行するAPDU発行コマンドをまとめたデータ(以下「連立コマンド」という)160を書き込むダイレクトアクセス処理を行う。上記のように、ダイレクトアクセスにより書き込まれた連立コマンド160は、ファイル名やファイルIDで識別可能にファイルに収められてコマンド格納部106に格納される。
このとき、外部機器150は、ステップS1000で選択したアプリケーションにより許可されない限り、コマンド格納部106に格納されたコマンドを見ること、及びダイレクトアクセスをすることができない。ダイレクトアクセスでは、一度に数メガバイトの書き込みが可能なブロック転送のプロトコルを用いるため、アプリケーションプログラムのダウンロードを実行する連立コマンド160は、通常、1回だけのダイレクトアクセスで書き込みが完了する。
ここで、連立コマンド160について、図8を用いて説明する。図8は、連立コマンド160の構成の一例を示す図である。
図8において、連立コマンド160は、連立コマンド160がいくつのAPDU発行コマンドから構成されるかを示すAPDU数161とコマンド実体部162とからなる。図8の例では、APDU数161は、mである。
コマンド実体部162は、APDU発行コマンド165−1,165−2,165−3,…,165−mからなるデータと、これらのAPDU発行コマンドがそれぞれ何バイトで構成されているかを示すコマンド長170−1,170−2,170−3,…,170−mとからなる。
ステップS1300では、外部機器150が、セキュアデバイス100に対するカード発行要求であるセルフ発行開始コマンド180を、カード管理部102に送信する。このセルフ発行開始コマンド180は、セルフ発行管理部158からの発行要求を受けたコマンド生成部152で生成され、コマンド送信部154を介して送信される。
本明細書において、「セルフ発行」とは、カード管理部102とカード発行部104との間で、コマンド格納部106に格納された連立コマンド160を構成する各APDU発行コマンドを処理してカード発行を行うことを意味する。セルフ発行中のカード管理部102及びカード発行部104の動作については、後のステップS1500−1〜ステップS1500−mで詳細に説明する。
ここで、セルフ発行開始コマンド180について、図9を用いて説明する。図9は、セルフ発行開始コマンド180の形式の一例を示す図である。
図9において、セルフ発行開始コマンド180は、セルフ発行開始コマンドであることを特定するためのヘッダ部181、ファイル特定情報182、オフセット183、及び長さ184からなる。
ファイル特定情報182は、連立コマンド160が収められたファイルを特定するための情報(例えば、ファイル名やファイルID等)である。オフセット183は、特定したファイルからの読み出し位置を示す情報であり、長さ184は、読み出すデータ長を示す情報である。
なお、連立コマンド160が収められたファイルが一意に決まっているなどの理由でデフォルト処理が可能な場合は、ファイル特定情報182のファイル名やファイルID等を含む必要はない。
カード管理部102は、セルフ発行コマンド180を受信した後にレスポンスを送信しない限り、次のコマンドを受信することができない。ステップS1400では、カード管理部102が、S1300で送信したセルフ発行開始コマンド180を受信し、セルフ発行開始コマンド180に対するレスポンスとして、セルフ発行トリガをカード発行部104に対して出力する。セルフ発行トリガは、連立コマンド160のアドレス、オフセット183、及び長さ184を含む。このセルフ発行トリガは、カード発行部104にとって、セルフ発行を開始するためのトリガとなる。すなわち、セルフ発行トリガの送受信により、カード管理部102とカード発行部104との間で、連立コマンド160を構成する各APDU発行コマンドの処理が開始される。
ステップS1500−1〜ステップS1500−mでは、カード管理部102とカード発行部104との間で、連立コマンド160を構成する各APDU発行コマンドの処理(セルフ発行)を行う。
まず、カード発行部104は、カード管理部102からセルフ発行トリガを入力すると、図8に示す連立コマンド160のうち、コマンド長170−1で指定された最初のAPDU発行コマンド165−1(例:Install For Load)を抽出し、カード管理部102内のAPDUバッファ(図示せず)にコピーする。このとき、カード発行部104は、カード発行部104内で管理する「既出コマンド数」を1だけインクリメントする。「既出コマンド数」は、連立コマンド160を構成するAPDU発行コマンドが正常に処理された数を示しており、カード管理部102からのセルフ発行トリガを受信したときにゼロになっている必要がある。なお、既出コマンド数は、EEPROMなどの不揮発性記憶領域(図示せず)に保持されている。
カード管理部102は、APDUバッファにコピーされたAPDU発行コマンド165−1(Install For Load)を実行し、正常終了した場合は、そのレスポンスとして、正常終了を意味するステータスワード(例:9000h)をカード発行部104に出力する(S1500−1)。
次に、カード発行部104は、カード管理部102からのステータスワードが正常終了を意味することを確認すると、連立コマンド160から次のAPDU発行コマンド165−2(例:Load1)を抽出し、カード管理部102内のAPDUバッファにコピーする。そして、カード管理部102は、APDUバッファにコピーされたAPDU発行コマンド165−2(Load1)を実行し、正常終了した場合は、そのレスポンスとして、正常終了を意味するステータスワードをカード発行部104に出力する(S1500−2)。
なお、カード発行部104が、APDUバッファにAPDU発行コマンドをコピーする際には、カード管理部102が以前に実行したAPDU発行コマンドは削除することが好ましい。
以後、同様にして、カード管理部102は、カード発行部104によりAPDUバッファにコピーされた連立コマンド160を構成する各APDU発行コマンド165−3〜165−mを実行していく。すなわち、カード発行部104で管理する「既出コマンド数」がAPDU数161と一致するまで、APDU発行コマンドの実行を繰り返す(S1500−3〜S1500−m)。
なお、APDU発行コマンドの処理の途中で、メモリが枯渇するなどの異常が発生した場合は、カード発行部104は、異常終了を意味するステータスワード(例:6A84h)をカード管理部102に出力し、その時点でAPDU発行コマンドの処理を中止する。
ステップS1600では、カード管理部102が、すべてのAPDU発行コマンドの実行が正常に終了したか、つまり、カード発行が成功したかどうかを示すレスポンスを、外部機器150のレスポンス受信部156に送信する。具体的には、カード管理部102は、カード発行が成功の場合には正常終了を意味するステータスワード(例:9000h)を、カード発行が失敗の場合には異常終了を意味するステータスワード(例:6A84h)を外部機器150のレスポンス受信部156に送信する。
なお、外部機器150のセルフ発行管理部158では、レスポンス受信部156で受信したカード管理部102からのカード発行が成功したかどうかを示すレスポンスの内容を解析して、外部機器150の次の動作を決定する。
例えば、レスポンスの内容がカード発行成功であれば、セルフ発行管理部158は、外部機器150の処理を終了する旨の指示を出して、外部機器150は、処理を終了する。また、カード発行成功のレスポンスを確認したことを再度セキュアデバイス100に通知した後でなければダウンロードしたアプリケーションプログラムを使用できないような場合は、セルフ発行管理部158は、コマンド生成部152に対して、「カード使用許可確認用コマンド」の発行を要求する。この場合、コマンド生成部152で生成された「カード使用許可確認用コマンド」が、コマンド送信部154を介してセキュアデバイス100に通知された後に、外部機器150は、処理を終了する。
一方、レスポンスの内容がカード発行失敗であれば、セルフ発行管理部158は、例えば、セルフ発行開始コマンド180を再生成及び再送信する旨の指示をコマンド生成部152に出力して、図7のステップS1300からの処理を再開する。また、セルフ発行管理部158は、カード発行処理を所定の回数だけ試行してもカード発行失敗のレスポンスを受信した場合には、カード発行を中止する旨の指示をコマンド生成部152に出力し、外部機器150は、処理を終了するようにしてもよい。このとき、カード発行処理を試行する回数は、任意である。
以上のように、カード発行のために外部機器150とセキュアデバイス100との間で行われる通信は、ダイレクトアクセスによる連立コマンド160の書き込み、及びカード発行要求であるセルフ発行開始コマンド180の送受信のみである。すなわち、セルフ発行開始コマンド180の受信後におけるカード発行処理は、上記のステップS1500−1〜ステップS1500−mのように、カード管理部102とカード発行部104との間でAPDU発行コマンドの処理を繰り返すことにより、セキュアデバイス100の内部処理で完結する。
ここで、セルフ発行開始コマンド180を受信してからカード発行のためのAPDU発行コマンドの読み出しを開始するまでのセキュアデバイス100内の動作を、図10のフローチャートを用いて説明する。
まず、ステップS2000では、カード管理部102が、受信したコマンドのヘッダ部181を解析してセルフ発行開始コマンド180を受信したことを確認する。
そして、ステップS2100では、カード管理部102が、カード管理部102内に保持するファイル管理テーブル190(後述)を参照して、ファイル特定情報182に対応するアドレスを特定する。すなわち、コマンド格納部106内のセキュア領域に格納されたファイルを特定する。
図11は、ファイル管理テーブルの一例を示す図である。ファイル管理テーブル190には、例えば、ファイル名、ファイルパス、ファイル特定情報、ファイルサイズ、ダイレクトアクセスが可能かどうかを示す可能フラグ、及びアドレスが記述されており、それぞれの内容は、ファイルを作成したときに追加される。
次に、ステップS2200では、カード管理部102が、セルフ発行トリガを、カード発行部104に対して出力する。セルフ発行トリガには、連立コマンド160のアドレス、オフセット183、及び長さ184が含まれる。
次に、ステップS2300では、カード発行部104が、セルフ発行トリガに含まれる連立コマンド160のアドレス及びオフセット183から、最初のAPDU発行コマンドの物理的な読み出し位置を特定する。
そして、ステップS2400では、カード管理部102とカード発行部104との間で、連立コマンド160を構成する各APDU発行コマンドの読み出しと実行、つまり、セルフ発行が開始される。ここで、読み出し可能な連立コマンド160の長さは、セルフ発行開始コマンド180に含まれる読み出し長さ184よりも小さくなくてはならない。
このようにして、セキュアデバイス100内では、カード管理部102が外部機器150からのセルフ発行コマンドを受信した後のAPDU発行コマンドの読み出しが開始される。
なお、本実施の形態では、外部機器150からのダイレクトアクセスにより書き込まれた連立コマンド160を構成するAPDU発行コマンドを実行することによりカード発行を行う場合について説明したが、本発明はこれに限定されない。例えば、取得するカードの機能に対応するAPDU発行コマンドがコマンド格納部106に予め格納されている場合には、外部機器150とセキュアデバイス100との通信を行うことなく、セキュアデバイス100内部でカード発行を完了することも可能である。
このように、本実施の形態によれば、セキュアデバイス内部でアプリケーションのダウンロードやカード発行処理を完結するため、外部機器とセキュアデバイスとの間の通信回数を削減して通信中断による影響を低減し、カード発行の安全性を向上することができる。
すなわち、従来は、アプリケーションダウンロード時にアプリケーションの大きさに比例して数回〜数十回発生していたカード発行における外部機器とセキュアデバイスとの間の通信回数を、本実施の形態ではダイレクトアクセスとセルフ発行開始コマンドとの2回へと減らすことができる。これにより、従来は外部機器とカード管理部との間で行われていたカード発行コマンドのやりとりを、本実施の形態ではセキュアデバイス内部で行うことができ、モバイル網利用による通信中断のリスクを大幅に減らすことができる。
また、従来技術のアプリケーションのダウンロードでは、認証時に外部機器とセキュアデバイスとの間でセッション鍵を共有し、その後、外部機器でAPDU発行コマンドに対して暗号化やMAC付与を行い、セキュアデバイスで外部機器からのAPDU発行コマンドに対して復号化やMAC検証を行っている。
これに対し、本実施の形態では、外部認証や内部認証によってお互いを認証した後、ダイレクトアクセスによってカード管理部のみがアクセス可能な領域に連立コマンドを格納し、この連立コマンドを利用してセキュアデバイス内部で外部にデータを出すことなく、すべて耐タンパー性を有するセキュアデバイス内部でダウンロード処理が完結する。したがって、本実施の形態では、カード発行時の盗聴や改ざんを考慮する必要がないために、暗号化やMACの付与は必要ない。この結果、カード管理部は平文を処理するだけでよく、ダウンロード処理が高速になる。
また、送信可能なAPDU発行コマンドの全体長が固定であるために、平文の場合は、暗号化やMACの付与を行ったときに比べて1回のAPDU発行コマンドで送信可能なデータが大きい。したがって、平文処理が適用可能な場合は、トータルのコマンド発行数も少なくなり、この点においてもダウンロード処理の高速化に有効である。
また、本実施の形態によれば、コマンド格納部に格納されるコマンド群、及びコマンド格納部のセキュア領域に書き込む連立コマンドを、自由に変更、追加又は削除することができるため、ユーザが所望するアプリケーションを有するセキュアデバイスを実現することができる。
また、本実施の形態によれば、カード発行を指示する事業者とカード発行を担当する事業者とが異なる場合において、カード発行を指示する事業者が、どのようなコマンドを用いてカードを発行したかを知ることなく、カード発行が終了するので、カード発行におけるセキュリティ保護を実現することができる。
(実施の形態2)
図12は、本発明の実施の形態2に係るセキュアデバイスの構成を示すブロック図である。実施の形態1に係るセキュアデバイスと同じ構成要素については同一の符号を付し、その説明を省略する。
図12において、セキュアデバイス200は、図5のセキュアデバイス100に対して、特権モード管理部202をさらに備える構成を採る。
特権モード管理部202は、カード管理部102及びカード発行部104と連携しており、セキュアデバイス200に対して「特権モード」と呼ばれるモードを設定する。
特権モードとは、セキュアデバイス200内部でのカード発行処理、つまり、カード管理部102とカード発行部104との間における連立コマンド160を構成するAPDU発行コマンドの処理(セルフ発行)を最優先するモードである。特権モードが設定されている間は、セキュアデバイス200の接触インターフェースや非接触インターフェースを介して、外部機器150とのデータのやりとり(例えば、セルフ発行開始コマンドやレスポンスの送受信)を行うことができない。特権モード管理部202が特権モードを設定するタイミングについては、後述する動作説明において詳細に説明する。
以下、上述のように構成されたセキュアデバイス200の動作について、図13を用いて詳細に説明する。
図13は、本発明の実施の形態2に係る外部機器150、カード管理部102、カード発行部104、及び特権モード管理部202の処理を示すシーケンス図である。
図13のステップS3000〜ステップS3400までの各処理、及びステップS3700の処理は、図7のステップS1000〜ステップS1400までの各処理、及びステップS1600の処理とそれぞれ同一であるため、その説明を省略する。
ステップS3500では、カード管理部102からのセルフ発行トリガをカード発行部104が受信した後に、特権モード管理部202が、セキュアデバイス200に対して特権モードを設定する。具体的には、まず、カード管理部102からのセルフ発行トリガを入力したカード発行部104が、特権モード管理部202に特権モードの設定を指示し、又は、カード管理部102が、カード発行部104にセルフ発行トリガを出力すると同時に特権モード管理部202に特権モードの設定を指示する。そして、特権モード管理部202は、カード管理部102又はカード発行部104からの指示を受けて、セキュアデバイス200に対して特権モードを設定する。
なお、特権モードの設定は、必ずしもカード発行部104がセルフ発行トリガを受信した後に行わなくてもよい。例えば、カード管理部102が外部機器150からのセルフ発行開始コマンドを受信した後、又はカード発行部104がセルフ発行トリガを受信した後、所定の期間が経過した後に特権モードを設定するようにしてもよい。
ステップS3600−1〜ステップS3600−mでは、図7のステップS1500−1〜ステップS1500−mと同様に、カード管理部102とカード発行部104との間で、セルフ発行を行う。このとき、セキュアデバイス200には特権モードが設定されているので、セキュアデバイス200の接触インターフェースや非接触インターフェースを介しても、セキュアデバイス200と外部機器150との間でデータのやりとりを行うことができない。
なお、一旦特権モードが設定され、セキュアデバイス200が特権モードに遷移した後は、例えば、セキュアデバイス200への電源供給停止、他のアプリケーションの選択、又は現在選択されているカード管理部102の再選択によって、設定された特権モードが解除される。
このように、本実施の形態によれば、セキュアデバイスに特権モードを設定し、特権モード設定期間中は、セキュアデバイスと外部機器との間でデータをやりとりすることができないので、セキュアデバイス内部でのカード発行処理を妨害されることなく、安全かつ確実に行うことができる。
(実施の形態3)
図14は、本発明の実施の形態3に係るセキュアデバイスの構成を示すブロック図である。実施の形態2に係るセキュアデバイスと同じ構成要素については同一の符号を付し、その説明を省略する。
図14において、セキュアデバイス300は、図12のセキュアデバイス200に対して、カード発行部102及び特権モード管理部202に代えて、カード発行部302及び特権モード管理部304を備える構成を採る。
カード発行部302は、カードのセルフ発行中における各APDU発行コマンド処理後のカード管理部102からのステータスワードが成功を意味するかどうかを判断するためのレスポンス判定テーブル306を備えている。
カード発行部302は、カード発行部102が有する機能に加えて次の機能を有する。すなわち、カード発行部302は、レスポンス判定テーブル306を参照して、セルフ発行中における各APDU発行コマンドがカード管理部102で正常に実行されたかどうか、つまり、セルフ発行が正常に行われているかどうかを判断する。その判断の結果、セルフ発行が正常に完了したと判断した場合、又はセルフ発行中に正常に実行されていないAPDU発行コマンドがあると判断した場合には、カード発行部302は、その判断結果を特権モード管理部304に出力する。
特権モード管理部304は、特権モード管理部202が有する機能に加えて、セキュアデバイス300に特権モードの設定をした後、セルフ発行が正常に完了したという判断結果、又はセルフ発行が正常に実行されていないという判断結果のいずれかをカード発行部302から入力すると、設定された特権モードを解除する機能を有する。
以下、上述のように構成されたセキュアデバイス300の動作について、図15を用いて詳細に説明する。
図15は、本発明の実施の形態3に係る外部機器150、カード管理部102、カード発行部302、及び特権モード管理部304の処理を示すシーケンス図である。
図15のステップS4000〜ステップS4500までの各処理は、図13のステップS3000〜ステップS3500までの各処理とそれぞれ同一であるため、その説明を省略する。
ステップS4600−1〜ステップS4600−mでは、カード管理部102とカード発行部302との間で、セルフ発行を行う。このとき、セキュアデバイス300には特権モードが設定されているので、セキュアデバイス300の接触インターフェースや非接触インターフェースを介しても、セキュアデバイス300と外部機器150との間でデータのやりとりを行うことができない。
まず、カード発行部302は、カード管理部102からセルフ発行トリガを入力すると、図8に示す連立コマンド160のうち、コマンド長170−1で指定された最初のAPDU発行コマンド165−1(例:Install For Load)を抽出し、カード管理部102内のAPDUバッファにコピーする。
カード管理部102は、APDUバッファにコピーされたAPDU発行コマンド165−1(Install For Load)を実行し、正常終了した場合は、そのレスポンスとして正常終了を意味するステータスワードを、正常終了しない場合は、そのレスポンスとして異常終了を意味するステータスワードを、カード発行部302に通知する(S4600−1)。
ここで、カード管理部102からカード発行部302へのレスポンスの通知方法について、図16(A)、(B)を用いて説明する。図16(A)は、カード管理部102からカード発行部302へレスポンスを通知する一例を示す図である。図16(B)は、カード管理部102からカード発行部302へレスポンスを通知する他の一例を示す図である。
図16(A)の例では、カード管理部102が保持するレスポンスバッファに格納されるレスポンスデータを、カード発行部302が保持するレスポンスバッファにコピーすることにより、レスポンスを通知している。また、図16(B)の例では、カード管理部102が保持するレスポンスバッファに格納されるレスポンスデータをカード発行部302が参照することにより、レスポンスを通知している。
カード発行部302では、レスポンス判定テーブル306を参照して、カード管理部102からのレスポンスであるステータスワードとレスポンス判定テーブル306とを対比することにより、APDU発行コマンド165−1(Install For Load)が正常に処理されたかどうかを判断する。
その判断の結果、APDU発行コマンド165−1が正常に処理されたと判断した場合には、次のAPDU発行コマンド165−2(Load1)の処理に進む。また、APDU発行コマンド165−1が正常に処理されていないと判断した場合には、カード発行部302は、その判断結果を特権モード管理部304に送信して、特権モードの解除を要求する。
特権モード管理部304は、カード発行部302からAPDU発行コマンド165−1が正常に処理されていないという判断結果、及び特権モード解除要求を受信すると、セキュアデバイス300に設定された特権モードを解除する。特権モード解除後は、外部機器150との通信が可能になり、カード管理部102は、外部機器150のレスポンス受信部156に、カード発行失敗を意味するステータスワード(例:6A84h)を送信する。
ここで、レスポンス判定テーブル306について、図17を用いて説明する。図17は、レスポンス判定テーブル306の一例を示す図である。
図17の例では、レスポンス判定テーブル306は、通知されたレスポンスのステータスワードが「9000h」であれば、APDU発行コマンドが正常に処理されたこと(成功)を意味し、通知されたレスポンスのステータスワードが「9000h以外」であれば、APDU発行コマンドが正常に処理されていないこと(失敗)を意味することを示している。
以後、同様にして、カード管理部102とカード発行部302との間で、連立コマンド160を構成する各APDU発行コマンド165−2〜165−mを順に処理することによりセルフ発行を行う。
そして、セルフ発行中に、正常に処理されていないAPDU発行コマンドが発生すると、特権モードが解除される。この場合、カード管理部102から外部機器150のレスポンス受信部156に、カード発行失敗を意味するステータスワードが送信される(S4800)。
一方、すべてのAPDU発行コマンド165−1〜165−mが正常に処理されてセルフ発行が成功した場合も、特権モードが解除される。この場合は、カード管理部102から外部機器150のレスポンス受信部156に、カード発行成功を意味するステータスワードが送信される(S4800)。
次に、本実施の形態のセルフ発行開始後におけるカード発行部302の動作について、図18を用いて説明する。
図18は、本発明の実施の形態3に係るカード発行部302のセルフ発行中における動作を示すフローチャートである。なお、セキュアデバイス300には、特権モードが設定されているものとして説明する。
まず、ステップS5000では、カード発行部302は、レスポンス解析可能な状態であり、カード管理部102からのAPDU発行コマンドの処理結果を示すレスポンスを待機している。
そして、ステップS5100では、カード発行部302は、カード管理部102からのAPDU発行コマンドの処理結果を示すレスポンスの通知を受ける。
そして、ステップS5200では、カード発行部302は、レスポンス判定テーブル306を参照して、ステップS5100で通知されたレスポンスがAPDU発行コマンド処理の成功を意味するかどうかを判断する。その判断の結果、レスポンスが成功を意味する場合は(S5200:YES)、ステップS5300へ進み、レスポンスが成功を意味しない場合は(S5200:NO)、ステップS5400へ進む。
そして、ステップS5300では、カード発行部302は、すべてのAPDU発行コマンドの処理が完了したかどうかを判断する。その判断の結果、すべてのAPDU発行コマンドの処理が完了したと判断した場合は(S5300:YES)、ステップS5400へ進み、すべてのAPDU発行コマンドの処理が完了していないと判断した場合は(S5300:NO)、ステップS5000に戻り、次のAPDU発行コマンドの処理結果を示すレスポンスを待機する。
そして、ステップS5400では、カード発行部302は、正常に処理されていないAPDU発行コマンドがあること、又はすべてのAPDU発行コマンドの処理が完了したことを特権モード管理部304に送信するとともに、設定された特権モードの解除要求を行う。
このように、本実施の形態によれば、すべてのAPDU発行コマンドが処理されてセルフ発行が成功したタイミング、又はAPDU発行コマンドが正常に処理されずセルフ発行が失敗したタイミングで特権モードを解除するので、外部機器へのセルフ発行処理結果の通知を速やかに行うことができる。
(実施の形態4)
図19は、本発明の実施の形態4に係るセキュアデバイスの構成を示すブロック図である。実施の形態1に係るセキュアデバイスと同じ構成要素については同一の符号を付し、その説明を省略する。
図19において、セキュアデバイス400は、図5のセキュアデバイス100に対して、カード発行部104に代えて、カード発行部402を備える構成を採る。
カード発行部402は、セルフ発行中に、カード発行の失敗を検出した場合に、カード発行の失敗を意味する旨の情報と、「セルフ発行がどこまで成功していたのか」を示す情報とを含むレスポンスを演算するレスポンス演算部404を備えている。
カード発行部402は、カード発行部104が有する機能に加えて次の機能を有する。すなわち、カード発行部402は、セルフ発行における各APDU発行コマンドの処理の進捗状況を監視して、APDU発行コマンドが正常に実行されず、セルフ発行が失敗したときに、異常終了によりカード発行が失敗したことを意味するステータスワードとともに、「セルフ発行がどこまで成功していたのか」を示す情報を、カード管理部102に送信する。
「セルフ発行がどこまで成功していたのか」を示す情報は、例えば、正常に処理されたAPDU発行コマンドの数、処理に失敗したAPDU発行コマンドのヘッダ部、及び、残りのAPDU発行コマンドの数などの様々な情報を含む。すなわち、「セルフ発行がどこまで成功していたのか」を示す情報は、正常に実行されたカード発行コマンドを特定する情報を得ることができる情報である。
本実施の形態では、「セルフ発行がどこまで成功していたのか」を示す情報の一例として、正常に処理されたAPDU発行コマンドの数を用いることとし、この情報から正常に実行されたカード発行コマンドを特定する情報を得る場合について説明する。
すなわち、本実施の形態のレスポンス演算部404は、セルフ発行が失敗した場合、それまでに正常に処理されたAPDU発行コマンドの数を用いて、「セルフ発行がどこまで成功していたのか」を示す情報を含むレスポンスを演算する。
レスポンス演算部404によるレスポンスの演算について、図20を用いて説明する。図20は、レスポンス演算部404の入出力を示す図である。
図20において、レスポンス演算部404は、カード管理部102からAPDU発行コマンドが正常に実行されたというレスポンスをうけると、カード発行部402で管理する「既出コマンド数」を1だけインクリメントして、次のAPDU発行コマンドの処理に移行する。また、セルフ発行開始時における「既出コマンド数」は、ゼロであるため、APDU発行コマンドが正常に実行されず、セルフ発行が失敗したときの「既出コマンド数」が、その時点までに正常に処理されたAPDU発行コマンド数を示す値となる。したがって、外部機器150へのレスポンスに、セルフ発行が失敗した旨とともに、セルフ発行が失敗した時点までに正常に処理されたAPDU発行コマンドの数、つまり、「セルフ発行がどこまで成功していたのか」を示す情報を含むことができる。
次に、図19の外部機器450の構成について、図21を用いて説明する。図21は、図19の外部機器450の構成を示すブロック図である。
図21において、外部機器450は、図6の外部機器150に対して、セルフ発行管理部158に代えて、セルフ発行管理部452を備えている。
セルフ発行管理部452は、セルフ発行中に処理される各APDU発行コマンドと各APDU発行コマンドに対する処理内容とを対応付けて格納する進捗管理テーブル454を備えている。
セルフ発行管理部452は、セルフ発行管理部158が有する機能に加えて、セルフ発行が失敗したというレスポンスを受信した場合において、正常に実行されなかったAPDU発行コマンドを特定して、当該APDU発行コマンドの処理から開始する旨の指示を出す機能を有する。
以下、本実施の形態のセルフ発行開始後におけるカード発行部402の動作について、図22のフローチャートを用いて説明する。
まず、ステップS6000では、カード発行部402は、レスポンス解析可能な状態であり、カード管理部102からのAPDU発行コマンド処理結果を示すレスポンスを待機している。
そして、ステップS6100では、カード発行部402は、カード管理部102からのAPDU発行コマンド処理結果を示すレスポンスの通知を受ける。
そして、ステップS6200では、カード発行部402は、ステップS6100で通知されたレスポンスがAPDU発行コマンド処理の成功を意味するかどうかを判断する。その判断の結果、レスポンスが成功を意味する場合は(S6200:YES)、ステップS6300へ進み、レスポンスが成功を意味しない場合は(S6200:NO)、ステップS6500へ進む。
そして、ステップS6300では、カード発行部402は、すべてのAPDU発行コマンドの処理が完了したかどうかを判断する。その判断の結果、すべてのAPDU発行コマンドの処理が完了したと判断した場合は(S6300:YES)、ステップS6400へ進み、すべてのAPDU発行コマンドの処理が完了していないと判断した場合は(S6300:NO)、ステップS6000に戻り、次のAPDU発行コマンドの処理結果を示すレスポンスを待機する。
そして、ステップS6400では、カード発行部402は、すべてのAPDU発行コマンドの処理が完了してセルフ発行が成功したことを示すレスポンスを生成する。
一方、ステップS6500では、正常処理されていないAPDU発行コマンドがありセルフ発行が失敗したことを示すレスポンスを生成する。このレスポンスには、セルフ発行失敗時点での既出コマンド数、つまり、セルフ発行失敗時点までに正常に処理されたAPDU発行コマンドの数が含まれる。
ここで、ステップS6500で生成するレスポンスについて、図23を用いて説明する。図23は、セルフ発行が失敗したことを示すレスポンスのフォーマットの一例を示す図である。
図23において、レスポンス410は、セルフ発行処理の進捗状況を示す既出コマンド数411と、セルフ発行処理が失敗したことを示すステータスワード412とからなる。
なお、レスポンスのフォーマットとしては、図23に示す以外にも、例えば、2バイトからなるステータスワードのいずれかのビットを利用したもの(例:63CXh(Xが既出コマンド数))を用いてもよい。
そして、ステップS6600では、カード発行部402は、ステップS6400又はステップS6500で生成したレスポンスをカード管理部102へ出力する。このレスポンスは、カード管理部102から外部機器450のレスポンス受信部156へ送信される。
次に、セキュアデバイス400からのセルフ発行が成功したかどうかを示すレスポンスを受信した後の外部機器450の動作について、図24のフローチャートを用いて説明する。
まず、ステップS7000では、レスポンス受信部156が、カード管理部102からのセルフ発行が成功したかどうかを示すレスポンスを受信する。受信したレスポンスは、セルフ発行管理部452に出力される。
そして、ステップS7100では、セルフ発行管理部452が、ステップS7000で受信したレスポンスがセルフ発行の成功を意味するかどうかを判断する。この判断は、具体的には、セルフ発行管理部452が、レスポンスに含まれるステータスワードを参照することにより行われる。
判断の結果、セルフ発行管理部452が、レスポンスはセルフ発行の成功を意味すると判断した場合は(S7100:YES)、外部機器450の処理を終了する。このとき、セルフ発行の成功を意味するレスポンスを受信したことを再度セキュアデバイス400に通知した後でなければダウンロードしたアプリケーションプログラムを使用できない場合は、外部機器450は、「カード使用許可確認用コマンド」を生成し、セキュアデバイス400に送信して処理を終了する。一方、レスポンスがセルフ発行の成功を意味しないと判断した場合は(S7100:NO)、ステップS7200へ進む。
そして、ステップS7200では、セルフ発行管理部452が、セルフ発行開始コマンドを再送信するかどうかを判断する。その判断の結果、セルフ発行開始コマンドを再送信しないと判断した場合は(S7200:NO)、ステップS7300へ進み、セルフ発行開始コマンドを再送信すると判断した場合は(S7200:YES)、ステップS7400へ進む。
なお、セキュアデバイス400が何らかの理由(例えば、セキュアデバイス400内のメモリが壊れている)によりリカバリ不可能な状態である場合は、ステップS7200では、セルフ発行管理部452は、何もしない。
そして、ステップS7300では、セルフ発行管理部452は、進捗管理テーブル454を参照して、セルフ発行中に書き込んだデータ(正常処理されたAPDU発行コマンド)をクリアするための「クリアコマンド」を生成し、セキュアデバイス400に送信して処理を終了する。
ここで、進捗管理テーブル454について、図25を用いて説明する。図25は、進捗管理テーブル454の一例を示す図である。
進捗管理テーブル454には、セキュアデバイス400からのレスポンスに含まれる「既出コマンド数」と、その「既出コマンド数」に対応する外部機器450の処理内容とが、「既出コマンド数」毎に記載されている。
図25において、セキュアデバイス400内のセルフ発行では、n番目のAPDU発行コマンドが正常処理されなかったことを意味している。ここで、nは、1≦n≦m(m:APDU発行コマンドの数)を満たす整数である。この場合、ステップS7300では、正常処理されたn番目までのAPDU発行コマンド(発行中に書き込んだすべてのデータ)をクリアするためのクリアコマンドを送信する。
また、ステップS7400では、進捗管理テーブル454を参照して、正常処理されなかったAPDU発行コマンドを特定し、当該APDU発行コマンドの処理から開始する旨のセルフ発行開始コマンドを再送信して処理を終了する。
図25の例においては、n番目のAPDU発行コマンドが正常処理されていないため、n番目のAPDU発行コマンドから処理を開始する旨のセルフ発行開始コマンドを再送信する。
なお、セキュアデバイス400が、上記セルフ発行コマンドを受信しても、その実装上の理由などにより、正常処理されなかったAPDU発行コマンドから処理を開始することができないときは、カード発行を最初から開始するためのセルフ発行開始コマンドが再送される。
このように、本実施の形態によれば、セルフ発行が失敗した場合でも、セルフ発行がどこまで成功していたのかを示すセルフ発行の進捗状況を外部機器に通知するため、外部機器は、正常処理されなかったAPDU発行コマンドから処理を開始するセルフ発行開始コマンドを再送信することができ、重複する無駄なセルフ発行処理を省略することができる。
(実施の形態5)
上記各実施の形態(実施の形態1〜4)では、セルフ発行開始コマンドを受信したカード発行部が連立コマンドを格納するファイルを特定し、ファイルに含まれるAPDU発行コマンドを抽出して、一旦、カード管理部102内のAPDUバッファにコピーすることによって、カード管理部は、APDU発行コマンドが外部機器から接触インターフェースや非接触インターフェースを介して送信されたものか、セルフ発行によるものかを区別することなくAPDU発行コマンドを実行する方法について説明した。
本実施の形態では、接触インターフェースや非接触インターフェースを利用する際のAPDUバッファと、セルフ発行時のAPDUバッファとを共有しない形態について説明する。
図26は、本発明の実施の形態5に係るセキュアデバイスの構成を示すブロック図である。実施の形態1に係るセキュアデバイスと同じ構成要素については同一の符号を付し、その説明を省略する。
図26において、セキュアデバイス500は、図5のセキュアデバイスの構成に対して、カード管理部102、カード発行部104及びコマンド格納部106に代えて、カード管理部502、カード発行部504及びコマンド格納部506を備える構成を採る。
カード管理部502は、外部機器150から接触インターフェースや非接触インターフェースを利用して書き込まれたカード発行を実行するAPDU発行コマンドを格納するAPDUバッファ508を備えている。
カード発行部504は、コマンド格納部506に格納された連立コマンドのうち、後述する連立コマンド用APDUバッファ512により指定された領域をカード管理部502が直接参照するための直接参照部510を備えている。
コマンド格納部506は、格納された連立コマンドの領域の一部を、連立コマンド用のAPDUバッファとして指定する連立コマンド用APDUバッファ512を備えている。
まず、本実施の形態における連立コマンド520について、図27を用いて説明する。図27は、本発明の実施の形態5に係る連立コマンド520の構成の一例を示す図である。なお、図27は、最初のAPDU発行コマンド(Install For Load)を処理する場合の連立コマンドの構成の一例である。
図27において、連立コマンド520は、連立コマンド520がいくつのAPDU発行コマンドから構成されるかを示すAPDU数521とコマンド実体部522とからなる。図27の例では、APDU数521は、2である。
コマンド実体部522は、APDU発行コマンド(1−a)525−1,(2−a)525−2からなるデータと、これらのAPDU発行コマンドがそれぞれ何バイトで構成されているかを示すコマンド長530−1,530−2とからなる。それぞれの役割については、後述する。
以下、上述のように構成されたセキュアデバイス500の動作について説明する。
まず、外部機器150は、カード管理部502のAPDUバッファ508に、カード発行を実行するAPDU発行コマンドを書き込む。
次いで、カード管理部502は、外部機器150からのセルフ発行開始コマンドを受信すると、カード発行部504に対してセルフ発行トリガを出力する。このセルフ発行トリガは、カード発行部504にとって、セルフ発行を開始するためのトリガとなる。
カード発行部504は、カード管理部502からのセルフ発行トリガを入力すると、例えば、図27のコマンド長530−1で指定された長さだけ連立コマンド520から最初のAPDU発行コマンド(例:Install For Load)525−1を抽出し、コマンド格納部506内に、このAPDU発行コマンドの長さ分の領域をAPDUバッファとして指定する。
このとき、セキュアデバイス500内には、外部機器150からのAPDU発行コマンドを格納するAPDUバッファ508と、連立コマンド用APDUバッファ512が共存する状態となる。すなわち、外部機器150からのAPDU発行コマンドを格納するAPDUバッファは、カード管理部502に属し、連立コマンド用APDUバッファ512は、カード格納部506に属する。
図27の例では、最初のAPDU発行コマンド(1−a)525−1を処理する場合には、APDU発行コマンド(1−a)525−1が占める領域(指定された領域)自体が連立コマンド用APDUバッファ512となる。
外部機器150からのAPDU発行コマンドを格納するAPDUバッファ508が固定領域として永続するのに対して、連立コマンド用APDUバッファ512は、あるAPDU発行コマンドを処理する瞬間のみ、そのAPDU発行コマンドが入っている領域(指定された領域)を占めるものであり、次のAPDU発行コマンドを処理する毎に時々刻々と領域のアドレスや大きさが変化する。すなわち、最初のAPDU発行コマンド(1−a)525−1が処理されたら、次のAPDU発行コマンド(2−a)525−2が占める領域自体が連立コマンド用APDUバッファ512となる。
ここで実施の形態1における連立コマンド160を示す図8と本実施の形態における連立コマンド520を示す図27とを比較する。
図8において、LOADコマンドは発行コマンド2から発行コマンドmに分割されている。例えば、ダウンロード対象のデータが2000キロバイトであった場合、一回で送信可能な、つまり、APDUバッファ508に格納可能なデータ長の最大が255バイトとすると(ただし平文の場合。暗号化やMAC付与の場合はより短くなる。)、255×7<2000<255×8となり、8コマンドに分割して送る必要があるため、m=9となる。
これに対し、図27においては、Loadコマンドを連立コマンド用APDUバッファ512で指定することで、1回の処理で完結することができる。すなわち、連立コマンド用APDUバッファ512は、常に、連立コマンドのうち、まさに処理しようとしているAPDU発行コマンド(指定された領域)のみであり、この連立コマンド用APDUバッファ512に指定された領域を直接参照部510が参照して処理した後、次に処理すべきAPDU発行コマンド(指定された領域)のみが連立コマンド用APDUバッファ512となる。
カード管理部502のダウンロードを管理する機能(カードマネージャ)は、カード管理部502のAPDUバッファ508からデータを取得する場合と同様に、直接参照部510を介することで連立コマンド用APDUバッファ512からデータを取得する。いずれの場合も、カードマネージャの挙動としては、APDUバッファにアクセスする点で等価な処理となる。
次に、実施の形態1の場合のように、複数回に分けてLoadコマンドを受信する場合と、本実施の形態の場合のように、一回でLoadコマンドを受信する場合とのカードマネージャの動作を比較して説明する。
複数回にわけてLoadコマンドを処理する場合、APDU発行コマンドの数、APDU発行コマンドの受信処理、APDUバッファからのデータ取得処理、そのコマンドが正しい順番で送られてきているか又は最後のコマンドであるかのコマンドチェック、データの処理、次のAPDU発行コマンドを処理するための中間状態の保持、及びレスポンス送信処理が必要となる。
一方、Loadコマンドを1回で処理する場合、上記一連の処理が不要になるという利点がある。
直接参照部510を利用するタイミングとしては、セルフ発行開始コマンドを受信した後にカード管理部502から直接参照部510に要求するタイミングやカード発行部504がセルフ発行トリガを受信した後に直接参照部510に要求するタイミングが考えられる。
なお、実施の形態2又は実施の形態3のように、セキュアデバイスに特権モードを設定可能として、特権モード設定期間中にのみ、直接参照部510を利用するようにしてもよい。
このように、本実施の形態によれば、直接参照部を介することにより、APDU発行コマンドを分割して処理する場合と比較して、APDU発行コマンド毎に行う必要のある定型処理を大幅に減らし、また次のAPDU発行コマンドの処理のための冗長な処理を省略することができる。したがって、外部機器からAPDU発行コマンドを複数回にわけてダウンロードする従来の手法に比して、大幅な高速化が可能となる。
読み/書き機能を有する携帯電話等の可搬性の高いモバイル端末を用いてセキュアデバイスにアプリケーションをダウンロードする場合、一般的に電源となる電池容量が有限であることからも、カード発行の高速化の意義は大きい。
さらには、セキュアデバイスが携帯電話に抜き差しできるリムーバブルメディアの場合、ユーザが突然電源を切るケースやダウンロード処理途中にセキュアデバイスを抜くことによるセキュアデバイスへの電源供給停止が起こりうる。これらのケースにおいても、高速処理できることはユーザの誤った操作の影響をうける可能性が小さくなることを意味するため意義は大きい。
(実施の形態6)
図28は、本発明の実施の形態6に係るセキュアデバイスの構成を示すブロック図である。実施の形態1に係るセキュアデバイスと同じ構成要素については同一の符号を付し、その説明を省略する。
セルフ発行の途中にカードへの電源供給がなくなると、セキュアデバイスはカード発行を中止し、レスポンスを外部機器に送信することができない。よって、外部機器は、セキュアデバイスにおけるカード発行の進捗状況を知ることができない。本実施の形態では、このような場合であっても、電源断が起き、カード発行が中止したAPDU発行コマンド又はこれに近いAPDU発行コマンドを特定し、特定したAPDU発行コマンドから、カード発行を再開することができる。
図28において、セキュアデバイス600は、図5のセキュアデバイスの構成に対して、カード管理部102及びカード発行部104に代えて、カード管理部602及びカード発行部604を備える構成を採る。
カード管理部602は、セルフ発行中に処理されたAPDU発行コマンド数を示す既出コマンド数を監視することにより、電源が切断されるなどの理由によるセルフ発行の中断の履歴を保持する中断履歴送信部606を備えている。
カード管理部602は、カード管理部102が有する機能に加えて、電源が切断されるなどの理由によるセルフ発行の中断の履歴を保持して、後述するカード発行部604のリカバリ部608に出力する機能を有する。上記のように、セルフ発行の中断の履歴は、既出コマンド数を監視することにより保持されるので、セルフ発行の中断履歴から、中断により外部機器150に処理結果を送信することができなかった最初のAPDU発行コマンドを特定することが可能である。
カード発行部604は、中断履歴送信部606から入力したセルフ発行の中断の履歴から、セルフ発行における再開対象のAPDU発行コマンドを特定するリカバリ部608を備えている。
カード発行部604は、カード発行部104が有する機能に加えて、電源が切断されるなどの理由によりセルフ発行が中断した後、セルフ発行を再開した場合に、セルフ発行を再開すべきAPDU発行コマンドを特定し、そのAPDU発行コマンドから処理を再開する機能を有する。
以下、上述のように構成されたセキュアデバイス600の動作について、図29のフローチャートを用いて説明する。
図29は、本発明の実施の形態6に係るセキュアデバイスの動作を示すフローチャートである。なお、図29の例では、セルフ発行時に、セキュアデバイス600の電源が切断されてセルフ発行が中断され、その後、セキュアデバイス600の電源が再投入されたものとして説明する。
まず、ステップS8000では、セルフ発行中にセキュアデバイス600の電源が切断される。電源の切断が検知されたとき、カード管理部602は、セルフ発行の中断の履歴を保持している。セルフ発行の中断の履歴には、APDU発行コマンドの処理結果を示すレスポンスのうち、中断により外部機器150に処理結果を送信することができなかった最初のAPDU発行コマンドを特定可能な情報が含まれている。なお、電源の切断の検知は、例えば、セッションタイムアウトを利用することにより行われる。
そして、ステップS8100では、切断されていたセキュアデバイス600の電源が再投入される。
そして、ステップS8200では、カード管理部602が、外部機器150からのセルフ発行開始コマンドを受信する。
そして、ステップS8300では、カード管理部602が、カード管理部602で管理する既出コマンド数がゼロであるかどうかを判断する。その判断の結果、既出コマンド数がゼロであると判断した場合は(S8300:YES)、ステップS8400へ進み、既出コマンドがゼロでないと判断した場合は(S8300:NO)、ステップS8500へ進む。上記のように、既出コマンド数は、正常に処理されたAPDU発行コマンドの数を示している。よって、電源再投入時に既出コマンド数がゼロでないことは、ステップS8000の電源の切断時において、セキュアデバイス600のセルフ発行が中断されたことを意味する。
そして、ステップS8400では、最初のAPDU発行コマンドから処理をすることにより、実施の形態1と同様のセルフ発行を開始する。
一方、ステップS8500では、カード管理部602が、カード発行部604のリカバリ部608に、中断履歴送信部606が保持するセルフ発行の中断の履歴を送信する。
そして、ステップS8600では、カード発行部604のリカバリ部608が、セルフ発行を再開するための最初の処理対象のAPDU発行コマンドの読み出し位置を特定する。
ここで、リカバリ部608による最初の処理対象のAPDU発行コマンドの特定処理について、図30及び図31を用いて説明する。
図30は、本発明の実施の形態6に係る連立コマンド610の構成の一例を示す図である。
図30の連立コマンド610は、図8の連立コマンド160の構成において、リカバリ情報620をさらに備える。その他の構成については、図8の連立コマンド160と同一であるため、その説明を省略する。
図31は、図30の連立コマンドに含まれるリカバリ情報620の構成の一例を示す図である。
図31において、リカバリ情報620は、リカバリ情報620の長さを示すリカバリ情報長630、コマンド番号640−1,640−2,…,640−m、及び、オフセット650−1,650−2,…,650−mから構成される。コマンド番号とオフセットとは、それぞれ対になって、複数設定されている。
コマンド番号640−1〜640−mは、セルフ発行再開時にどのAPDU発行コマンドから処理を開始するかを示す情報である。オフセット650−1〜650−mは、コマンド番号640−1〜640−mで特定されるAPDU発行コマンドが連立コマンド610のどの位置から始まっているのかを示す情報である。
リカバリ部608は、カード管理部602からのセルフ発行の中断の履歴を参照すれば、セルフ発行を再開するために最初に処理すべきAPDU発行コマンドのコマンド番号を特定することができる。そして、リカバリ部608は、上記リカバリ情報620を用いて、連立コマンド610のうち、最初に処理すべきAPDU発行コマンドの物理的な読み出し位置を特定する。
ここでは、リカバリ情報620を参照することでAPDU発行コマンドの読み出し位置を決定するようにしたが、図8のようなリカバリ情報620を有しない連立コマンド160を先頭から解析することにより、読み出し位置を特定することも可能である。例えば、図8において、既出コマンド数が2であれば、まず、コマンド長170−1が存在するアドレスを特定して、指定された長さをアドレスに加え、次いで、コマンド長170−2が存在するアドレスを特定して、その後に続くAPDU発行コマンド165−2の読み出し位置を決定することができる。
そして、ステップS8700では、ステップS8600で特定したAPDU発行コマンドから処理を開始して、セルフ発行を開始する。
以上説明した、図29に示すリカバリ処理は、それまでに確保した領域や格納したデータはそのままで、電源の切断が起きたAPDU発行コマンドからやり直しができる場合(コマンド単位でリカバリ処理が可能な場合)である。
リカバリ処理には、この他にも、セキュアデバイスの実装に依存した以下のパターンが考えられる。
第1に、電源の切断が発生した後に、電源が再投入されたときや外部機器からのセルフ発行要求を受け取ったときに、電源の切断が生じるまでにセキュアデバイス内で処理したデータ(確保した領域や格納したデータ)をすべてクリアする場合が考えられる。
この場合のリカバリ処理は、カード発行を最初からやり直すことになる。このような実装を施したセキュアデバイスは、カード管理部が管理する既出コマンド数は、RAMなどの一次記憶領域に格納しておけばよい。また、外部機器も、電源の切断発生後に、ユーザからのカード発行が要求されたときにセルフ発行コマンドを送信すればよい。
第2に、あるAPDU発行コマンドの処理以前にセキュアデバイス内で処理したデータ(確保した領域や格納したデータ)はそのままで、あるAPDU発行コマンド以降からやり直しができる場合(機能単位でリカバリ処理可能な場合)が考えられる。
この場合のリカバリ処理は、機能単位毎に正常処理されたAPDU発行コマンドをそのまま保持して、その後のAPDU発行コマンドから処理を再開する。したがって、セルフ発行中断時に正常処理されたAPDU発行コマンドを再度処理する必要が生じる場合もあるが、カード発行という処理の観点からは好ましい。
機能単位でリカバリ処理を行う場合の具体例を以下に示す。
例えば、図31において、コマンド番号1(640−1)に「1」、コマンド番号(640−2)に「2」がそれぞれ設定されているとする。
図30において、発行コマンド3(Load2)165−3は、3番目のAPDU発行コマンドであり、この発行コマンドを実行しているときに電源断が発生した場合、カード管理部102が管理する既出コマンド数は「3」のままEEPROMなどの不揮発性記憶領域に保持されている。
この場合、図29のステップS8600では、既出コマンド数「3」を入力したリカバリ部806が、既出コマンド数「3」と、コマンド番号1(640−1)に設定されている「1」、コマンド番号(640−2)に設定されている「2」とを比較して、これらが、1<2<3の関係になることから「3」より小さく、「3」に最も近い「2」の発行コマンドの実行から再開することを決定する。
そして、カード発行部604は、コマンド番号「2」に該当する発行コマンド2(Load1)165−2を抽出してAPDUバッファにコピーし、カード発行が開始される。
なお、本実施の形態では、セルフ発行開始コマンドを受信したタイミングで既出コマンドがゼロかどうかを判断し、セルフ発行を再開するようにしたが、これに限定されない。例えば、セルフ発行の中断が終了したとき(例:電源再投入時)に、既出コマンドがゼロかどうかを判断し、セルフ発行を再開するようにしてもよい。
このように、本実施の形態では、セキュアデバイスの電源が切断されるなどの理由によりセルフ発行が中断した場合においても、セキュアデバイス内で中断の履歴を保持するので、セルフ発行再開時に、最適なAPDU発行コマンドの読み出し位置を特定することができる。
すなわち、カード管理部に中断履歴送信部を、カード発行部にリカバリ部をそれぞれ備えることで、セルフ発行途中にカードへの電源供給がなくなった場合の事後処理において再試行が可能となる。また、外部機器は、セキュアデバイスへの電源供給が再開されたときのセルフ発行の進捗状況を意識することなく再試行を実行することができるため、カード発行の負荷を減少することができる。
以上、上記各実施の形態で説明したように、本発明のセキュアデバイス及び外部機器は、外部機器からセキュアデバイスへ1度の指示を出すことにより、後はセキュアデバイス内で自立的に処理を実行することができるので、カードとの間の通信状態が不良な状態でのカード発行や、ユーザが持っている携帯端末機器を利用して個人が自由にカード発行することに適している。
本願は、2005年1月11日出願の特願2005−003596に基づく優先権を主張する。当該出願明細書に記載された内容はすべて、本願明細書に援用される。
本発明のセキュアデバイスは、外部機器との通信中断による影響を低減し、ユーザが所望するアプリケーションプログラムを、高速かつ安全に取り入れることができる効果を有し、通信接続された外部機器からの指示を受けてカード発行処理を行うセキュアデバイスとして有用である。
ICカードのハードウェアに関する機能ブロック図 APDUコマンドのフォーマットの一例を示す図 データを分割してAPDUを作成する方式を示す概念図 従来のICカードアプリケーションプログラムロード装置の構成を示すブロック図 本発明の実施の形態1に係るセキュアデバイスの構成を示すブロック図 図5の外部機器の構成を示すブロック図 本発明の実施の形態1に係る外部機器、カード管理部及びカード発行部の処理を示すシーケンス図 連立コマンドの構成の一例を示す図 セルフ発行開始コマンドの形式の一例を示す図 セルフ発行開始コマンドを受信してからカード発行のためのAPDU発行コマンドの読み出しを開始するまでのセキュアデバイス内部の動作を示すフローチャート ファイル管理テーブルの一例を示す図 本発明の実施の形態2に係るセキュアデバイスの構成を示すブロック図 本発明の実施の形態2に係る外部機器、カード管理部、カード発行部、及び特権モード管理部の処理を示すシーケンス図 本発明の実施の形態3に係るセキュアデバイスの構成を示すブロック図 本発明の実施の形態3に係る外部機器、カード管理部、カード発行部、及び特権モード管理部の処理を示すシーケンス図 (A)カード管理部からカード発行部へレスポンスを通知する一例を示す図、(B)カード管理部からカード発行部へレスポンスを通知する他の一例を示す図 レスポンス判定テーブルの一例を示す図 本発明の実施の形態3に係るカード発行部のセルフ発行中における動作を示すフローチャート 本発明の実施の形態4に係るセキュアデバイスの構成を示すブロック図 レスポンス演算部の入出力を示す図 図19の外部機器の構成を示すブロック図 本発明の実施の形態4に係るカード発行部のセルフ発行中における動作を示すフローチャート セルフ発行が失敗したことを示すレスポンスのフォーマットの一例を示す図 本発明の実施の形態4に係るセキュアデバイスからのレスポンスを受信した後の外部機器の動作を示すフローチャート 進捗管理テーブルの一例を示す図 本発明の実施の形態5に係るセキュアデバイスの構成を示すブロック図 本発明の実施の形態5に係る連立コマンドの構成の一例を示す図 本発明の実施の形態6に係るセキュアデバイスの構成を示すブロック図 本発明の実施の形態6に係るセキュアデバイスの動作を示すフローチャート 本発明の実施の形態6に係る連立コマンドの構成の一例を示す図 図30の連立コマンドに含まれるリカバリ情報の構成の一例を示す図

Claims (11)

  1. 内部メモリに格納されたコマンド群を直接参照する直接参照部を有し、前記コマンド群から、取得するカードの機能に対応するカード発行コマンドを抽出するカード発行部と、
    前記直接参照部を介して前記カード発行コマンドを実行するカード管理部と、
    を有するセキュアデバイス。
  2. 前記コマンド群は、外部機器から前記内部メモリに対するダイレクトアクセスにより書き込まれる、
    請求項1記載のセキュアデバイス。
  3. 前記カード管理部は、外部機器からの要求に基づいて前記カード発行コマンドの実行を開始し、前記カード発行が成功したかどうかを示すレスポンスを前記外部機器に送信する、
    請求項1記載のセキュアデバイス。
  4. 前記カード管理部と外部機器との間で通信を行うことができないモードである特権モードを設定する特権モード管理部をさらに有し、
    前記特権モード管理部は、前記カード発行コマンドの実行が開始されるタイミングで前記特権モードを設定する、
    請求項1記載のセキュアデバイス。
  5. 前記カード発行部は、前記カード管理部においてすべてのカード発行コマンドが正常に実行されたかどうかを判断し、すべてのカード発行コマンドが正常に実行されたと判断した場合、又は正常に実行されていないカード発行コマンドがあると判断した場合は、特権モード解除要求を前記特権モード管理部に出力し、
    前記特権モード管理部は、前記カード発行部から特権モード解除要求を入力すると特権モードを解除する、
    請求項4記載のセキュアデバイス。
  6. 前記カード発行部は、前記カード管理部において各カード発行コマンドが正常に実行されたかどうかを監視し、正常に実行されていないカード発行コマンドが発生した場合に正常に実行されたカード発行コマンドを特定する情報を前記カード管理部に出力し、
    前記カード管理部は、正常に実行されていないカード発行コマンドが発生したこと、及び前記正常に実行されたカード発行コマンドを特定する情報を含むレスポンスを前記外部機器に送信する、
    請求項3記載のセキュアデバイス。
  7. 前記カード管理部は、前記カード発行コマンドの実行における中断履歴を保持し、前記外部機器へのレスポンスを送信していない最初のカード発行コマンドを前記カード発行部へ通知し、
    前記カード発行部は、前記中断履歴と、前記外部機器へのレスポンスを送信していない最初のカード発行コマンドとから、最初に実行すべきカード発行コマンドを特定してカード発行コマンドの実行を再開する、
    請求項3記載のセキュアデバイス。
  8. 前記カード管理部は、前記内部メモリに格納された複数のカードの機能にそれぞれ対応する複数のコマンド群を収めるファイルを特定するファイル管理テーブルを有し、外部機器から指定されたファイルに収められたコマンド群であるカード発行コマンドを実行する、
    請求項1記載のセキュアデバイス。
  9. セキュアデバイスとこのセキュアデバイスとの間で通信を行う外部機器とからなるICカード発行システムであって、
    前記外部機器は、カード発行を要求する要求コマンドを生成するコマンド生成部と、生成された前記要求コマンドを前記セキュアデバイスに送信するコマンド送信部と、を有し、
    前記セキュアデバイスは、内部メモリに格納されたコマンド群を直接参照する直接参照部を有し、前記コマンド群から、取得するカードの機能に対応するカード発行コマンドを抽出するカード発行部と、
    前記要求コマンドを入力した場合、前記直接参照部を介して前記カード発行コマンドを実行するカード管理部と、を有する、
    ICカード発行システム。
  10. 前記セキュアデバイスの前記カード管理部は、前記カード発行が成功したかどうかを示すレスポンスを前記外部機器に送信し、
    前記外部機器は、前記レスポンスを受信するレスポンス受信部と、前記レスポンスを解析して前記レスポンスがカード発行の成功を示す場合にはカード発行を終了し、前記レスポンスがカード発行の成功を示さない場合には前記要求コマンドを再送信する指示を前記コマンド生成部に出力するセルフ発行管理部と、を有する、
    請求項記載のICカード発行システム。
  11. 前記セキュアデバイスの前記カード発行部は、前記カード管理部において各カード発行コマンドが正常に実行されたかどうかを監視し、正常に実行されていないカード発行コマンドが発生した場合に正常に実行されたカード発行コマンドを特定する情報を前記カード管理部に出力し、前記セキュアデバイスの前記カード管理部は、正常に実行されていないカード発行コマンドが発生したこと、及び前記正常に実行されたカード発行コマンドを特定する情報を含むレスポンスを前記外部機器に送信し、
    前記外部機器の前記セルフ発行管理部は、前記レスポンスを解析して、正常に実行されていないカード発行コマンドから実行してカード発行を開始する要求コマンドを送信する指示を前記コマンド生成部に出力する、
    請求項10記載のICカード発行システム。
JP2006552909A 2005-01-11 2006-01-10 セキュアデバイス及びicカード発行システム Expired - Fee Related JP4806639B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006552909A JP4806639B2 (ja) 2005-01-11 2006-01-10 セキュアデバイス及びicカード発行システム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005003596 2005-01-11
JP2005003596 2005-01-11
PCT/JP2006/300146 WO2006075576A1 (ja) 2005-01-11 2006-01-10 セキュアデバイス及びicカード発行システム
JP2006552909A JP4806639B2 (ja) 2005-01-11 2006-01-10 セキュアデバイス及びicカード発行システム

Publications (2)

Publication Number Publication Date
JPWO2006075576A1 JPWO2006075576A1 (ja) 2008-06-12
JP4806639B2 true JP4806639B2 (ja) 2011-11-02

Family

ID=36677601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006552909A Expired - Fee Related JP4806639B2 (ja) 2005-01-11 2006-01-10 セキュアデバイス及びicカード発行システム

Country Status (4)

Country Link
US (1) US7428992B2 (ja)
JP (1) JP4806639B2 (ja)
CN (1) CN1942886A (ja)
WO (1) WO2006075576A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL1030639C2 (nl) * 2005-12-09 2007-06-12 Antonius Theodorus Ceci Hauzer Ventilatiesysteem voor tunneltraject of overdekte weg.
US9047601B2 (en) * 2006-09-24 2015-06-02 RFCyber Corpration Method and apparatus for settling payments using mobile devices
JP2008107991A (ja) * 2006-10-24 2008-05-08 Dainippon Printing Co Ltd 情報処理媒体とそのプログラム、情報処理媒体のエラー処理方法、及び、情報処理システム
FR2908209B1 (fr) * 2006-11-07 2009-02-13 Oberthur Card Syst Sa Entite electronique portable et procede de personnalisation d'une telle entite electronique
EP2003556A1 (fr) * 2007-05-25 2008-12-17 Axalto SA Procédé de traitement par un dispositif électronique portable de commandes applicatives issues de canaux physiques, dispositif et système correspondants
JP4896837B2 (ja) * 2007-08-20 2012-03-14 株式会社東芝 携帯可能電子装置および携帯可能電子装置の制御方法
JP2010009467A (ja) * 2008-06-30 2010-01-14 Toshiba Corp 情報記憶媒体、情報処理システム、及びコマンド方法
JP2010211516A (ja) * 2009-03-10 2010-09-24 Toshiba Corp 携帯可能電子装置および携帯可能電子装置におけるアクセス制御方法
JP5454933B2 (ja) * 2009-09-11 2014-03-26 株式会社東芝 携帯可能電子装置、icカード、および携帯可能電子装置の制御方法
EP2306416A1 (en) * 2009-09-25 2011-04-06 Incard SA Improved method for pre-personalizing an IC Card
US20110191416A1 (en) * 2010-02-01 2011-08-04 Google, Inc. Content Author Badges
JP5197664B2 (ja) * 2010-03-18 2013-05-15 株式会社東芝 Icカード、通信装置、コマンド処理方法、通信システム
JP5673949B2 (ja) * 2011-03-18 2015-02-18 大日本印刷株式会社 内部状態に応じたフォーマット処理を実行できる半導体記憶装置及び半導体記憶装置のフォーマット処理方法
US9177074B2 (en) 2011-09-08 2015-11-03 Google Inc. System and method for confirming authorship of documents
US8370918B1 (en) 2011-09-30 2013-02-05 Kaspersky Lab Zao Portable security device and methods for providing network security
CN104917614A (zh) * 2015-04-21 2015-09-16 中国建设银行股份有限公司 一种智能卡和受理终端的双向验证方法和装置
JP6461759B2 (ja) 2015-09-17 2019-01-30 株式会社東芝 Icカード、及びicモジュール
JP2019168944A (ja) * 2018-03-23 2019-10-03 大日本印刷株式会社 電子情報記憶媒体、icカード、コマンド群実行方法及び、コマンド群実行プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11250204A (ja) * 1998-02-27 1999-09-17 Dainippon Printing Co Ltd Icカード
JP2000330779A (ja) * 1999-05-18 2000-11-30 Nec Corp ファームウエアプログラム遠隔更新システム及び方法
JP2002329180A (ja) * 2001-04-27 2002-11-15 Toshiba Corp 無線通信機能を有するメモリカード及びそのデータ通信方法
JP2003067679A (ja) * 2001-08-29 2003-03-07 Toshiba Corp 携帯可能電子装置及びそのデータ書込方法
JP2003108384A (ja) * 2001-09-28 2003-04-11 Dainippon Printing Co Ltd Icカードアプリケーションプログラムロード装置およびその処理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US174337A (en) * 1876-02-29 Improvement in convertible rotary harrows
JPH0744672A (ja) * 1993-07-28 1995-02-14 Oki Electric Ind Co Ltd Icカード及びicカードシステム
US5923884A (en) * 1996-08-30 1999-07-13 Gemplus S.C.A. System and method for loading applications onto a smart card
JPH10214232A (ja) * 1997-01-30 1998-08-11 Rohm Co Ltd Icカードおよびicカードの運用方法
ATE254773T1 (de) * 2002-03-18 2003-12-15 Ubs Ag Sichere benutzerauthenifizierung über ein kommunikationsnetzwerk
JP4322021B2 (ja) * 2003-02-06 2009-08-26 株式会社ルネサステクノロジ メモリカード
US7165727B2 (en) * 2004-02-24 2007-01-23 Sun Microsystems, Inc. Method and apparatus for installing an application onto a smart card

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11250204A (ja) * 1998-02-27 1999-09-17 Dainippon Printing Co Ltd Icカード
JP2000330779A (ja) * 1999-05-18 2000-11-30 Nec Corp ファームウエアプログラム遠隔更新システム及び方法
JP2002329180A (ja) * 2001-04-27 2002-11-15 Toshiba Corp 無線通信機能を有するメモリカード及びそのデータ通信方法
JP2003067679A (ja) * 2001-08-29 2003-03-07 Toshiba Corp 携帯可能電子装置及びそのデータ書込方法
JP2003108384A (ja) * 2001-09-28 2003-04-11 Dainippon Printing Co Ltd Icカードアプリケーションプログラムロード装置およびその処理方法

Also Published As

Publication number Publication date
US20070136797A1 (en) 2007-06-14
US7428992B2 (en) 2008-09-30
WO2006075576A1 (ja) 2006-07-20
CN1942886A (zh) 2007-04-04
JPWO2006075576A1 (ja) 2008-06-12

Similar Documents

Publication Publication Date Title
JP4806639B2 (ja) セキュアデバイス及びicカード発行システム
EP2626804B1 (en) Method for managing memory space in a secure non-volatile memory of a secure element
US8811971B2 (en) Mobile communication device and method for disabling applications
JP4308551B2 (ja) メモリカードおよびホスト装置
US20060289659A1 (en) Storage device
JP3865629B2 (ja) 記憶装置
JPH0863531A (ja) チップカードと情報システム間のトランザクションの実施方法
US7017825B2 (en) IC card and data processing method therefor
US7516479B2 (en) Data communicating apparatus and method for managing memory of data communicating apparatus
EP2270758B1 (en) Portable electronic apparatus, processing apparatus for portable electronic apparatus, and data processing method in portable electronic apparatus
JP4338989B2 (ja) メモリデバイス
KR101783526B1 (ko) Ic 카드, 전자 장치 및 휴대 가능 전자 장치
JP4961834B2 (ja) Icカード発行方法およびicカード
JP5259507B2 (ja) 携帯可能電子装置、および、携帯可能電子装置におけるデータ処理方法
JP4899499B2 (ja) Icカード発行方法、icカード発行システムおよびicカード
JP6946027B2 (ja) Icカード、携帯可能電子装置、プログラム、処理装置及び処理システム
JP2006293706A (ja) アプリケーションの更新機能を有するマルチアプリケーションicカード
JP2014059806A (ja) Icカード、携帯可能電子装置、及びicカード処理装置
JP2019028602A (ja) 電子情報記憶媒体、icカード、電子情報記憶媒体によるアップデート方法及びアップデートプログラム
JP6915437B2 (ja) 電子情報記憶媒体、icカード、電子情報記憶媒体によるアップデート方法及びアップデートプログラム
JP7009844B2 (ja) 電子情報記憶媒体、icカード、電子情報記憶媒体によるアップデート方法及びアップデートプログラム
JP2019128905A (ja) 電子情報記憶媒体、icカード、電子情報記憶媒体による情報処理方法及びos
JP2013191117A (ja) Icチップ、atr応答処理プログラム、及びatr応答方法
JP2004206542A (ja) Icカード及びicカードプログラム
JP2013191116A (ja) Icチップ、atr応答処理プログラム、及びatr応答方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110622

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110815

R150 Certificate of patent or registration of utility model

Ref document number: 4806639

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140819

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees