JPWO2019155792A1 - 情報処理装置、情報処理方法、およびプログラム - Google Patents

情報処理装置、情報処理方法、およびプログラム Download PDF

Info

Publication number
JPWO2019155792A1
JPWO2019155792A1 JP2019570332A JP2019570332A JPWO2019155792A1 JP WO2019155792 A1 JPWO2019155792 A1 JP WO2019155792A1 JP 2019570332 A JP2019570332 A JP 2019570332A JP 2019570332 A JP2019570332 A JP 2019570332A JP WO2019155792 A1 JPWO2019155792 A1 JP WO2019155792A1
Authority
JP
Japan
Prior art keywords
virtual machine
information processing
program
information
data
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.)
Granted
Application number
JP2019570332A
Other languages
English (en)
Other versions
JP7200952B2 (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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of JPWO2019155792A1 publication Critical patent/JPWO2019155792A1/ja
Application granted granted Critical
Publication of JP7200952B2 publication Critical patent/JP7200952B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】仮想機械が動作可能な装置における利便性の向上を図ることが可能な、情報処理装置、情報処理方法、およびプログラムを提供する。【解決手段】仮想機械に関する処理の実行を制御する機能を有する処理部を備え、仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む仮想機械を動作させる条件を示す条件情報と、仮想機械プログラムのコード、および条件情報に基づき生成される第1の電子署名とが、対応付けられ、処理部は、仮想機械プログラムに対応付けられている第1の電子署名の確認結果に基づいて、仮想機械に関する処理の実行を制御する、情報処理装置が、提供される。【選択図】図2

Description

本開示は、情報処理装置、情報処理方法、およびプログラムに関する。
“一のOS(Operating System)に他のOSを模倣したアプリケーションプログラムを組み込み、当該他のOSを当該一のOSの実行環境上で動作させる技術”が、開発されている。上記技術としては、例えば下記の特許文献1に記載の技術が挙げられる。
また、“複数のアプリケーションを管理可能なマルチプラットフォーム上で動作させ、当該マルチプラットフォームのコマンドにより活性化可能なOSに関する技術”が、開発されている。上記技術としては、例えば下記の特許文献2に記載の技術が挙げられる。
また、
特開2014−186747号公報 特開2013−168117号公報
装置が有する機能を拡張する方法としては、例えば、仮想機械(以下、「VM」(Virtual Machine)と示す場合がある。)を動作させる方法がある。本実施形態に係る仮想機械とは、仮想的なプログラム実行環境である。以下では、仮想機械を動作させるコンピュータプログラム、すなわち、仮想的なプログラム実行環境上での処理を実現するコンピュータプログラムを「VMプログラム」と示す場合がある。
本開示では、仮想機械が動作可能な装置における利便性の向上を図ることが可能な、新規かつ改良された情報処理装置、情報処理方法、およびプログラムを提案する。
本開示によれば、仮想機械に関する処理の実行を制御する機能を有する処理部を備え、上記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む上記仮想機械を動作させる条件を示す条件情報と、上記仮想機械プログラムのコード、および上記条件情報に基づき生成される第1の電子署名とが、対応付けられ、上記処理部は、上記仮想機械プログラムに対応付けられている上記第1の電子署名の確認結果に基づいて、上記仮想機械に関する処理の実行を制御する、情報処理装置が、提供される。
また、本開示によれば、仮想機械を動作させる機能と、外部装置から取得される書き込みコマンドに基づいてデータの書き込みを行う機能と、を有する処理部を備え、上記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む上記仮想機械を動作させる条件を示す条件情報が対応付けられ、外部装置から上記書き込みコマンドが取得された場合、上記処理部は、上記書き込みコマンドのパラメータが示す領域が上記条件情報が示す領域である場合に、上記仮想機械を動作させ、上記書き込みコマンドに基づいて行われる全てのデータの書き込みを正常に行うことができるかを判定し、全てのデータの書き込みを正常に行うことができると判定されたときに、上記書き込みコマンドに基づくデータの書き込みを行い、全てのデータの書き込みを正常に行うことができると判定されないときには、上記書き込みコマンドに基づくデータの書き込みを行わず、上記書き込みコマンドに基づき上記仮想機械が動作した場合、上記書き込みコマンドに基づくデータの書き込みには、上記仮想機械プログラムにおいて実行されるデータの書き込みが含まれる、情報処理装置が、提供される。
また、本開示によれば、仮想機械に関する処理の実行を制御するステップを有し、上記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む上記仮想機械を動作させる条件を示す条件情報と、上記仮想機械プログラムのコード、および上記条件情報に基づき生成される第1の電子署名とが、対応付けられ、上記制御するステップでは、上記仮想機械プログラムに対応付けられている上記第1の電子署名の確認結果に基づいて、上記仮想機械に関する処理の実行が制御される、情報処理装置により実行される情報処理方法が、提供される。
また、本開示によれば、仮想機械を動作させるステップと、外部装置から取得される書き込みコマンドに基づいてデータの書き込みを行うステップと、を有し、上記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む上記仮想機械を動作させる条件を示す条件情報が対応付けられ、外部装置から上記書き込みコマンドが取得された場合、上記仮想機械を動作させるステップでは、上記書き込みコマンドのパラメータが示す領域が上記条件情報が示す領域である場合に、上記仮想機械を動作させ、上記書き込みを行うステップでは、上記書き込みコマンドに基づいて行われる全てのデータの書き込みを正常に行うことができるかが判定され、全てのデータの書き込みを正常に行うことができると判定されたときに、上記書き込みコマンドに基づくデータの書き込みが行われ、全てのデータの書き込みを正常に行うことができると判定されないときには、上記書き込みコマンドに基づくデータの書き込みが行われず、上記仮想機械を動作させるステップにより上記仮想機械が動作した場合、上記書き込みコマンドに基づくデータの書き込みには、上記仮想機械プログラムにおいて実行されるデータの書き込みが含まれる、情報処理装置により実行される情報処理方法が、提供される。
また、本開示によれば、仮想機械に関する処理の実行を制御する機能を、コンピュータに実現させ、上記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む上記仮想機械を動作させる条件を示す条件情報と、上記仮想機械プログラムのコード、および上記条件情報に基づき生成される第1の電子署名とが、対応付けられ、上記制御する機能は、上記仮想機械プログラムに対応付けられている上記第1の電子署名の確認結果に基づいて、上記仮想機械に関する処理の実行を制御する、プログラムが、提供される。
また、本開示によれば、仮想機械を動作させる機能、外部装置から取得される書き込みコマンドに基づいてデータの書き込みを行う機能、を、コンピュータに実現させ、上記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む上記仮想機械を動作させる条件を示す条件情報が対応付けられ、外部装置から上記書き込みコマンドが取得された場合、上記仮想機械を動作させる機能は、上記書き込みコマンドのパラメータが示す領域が上記条件情報が示す領域である場合に、上記仮想機械を動作させ、上記書き込みを行う機能は、上記書き込みコマンドに基づいて行われる全てのデータの書き込みを正常に行うことができるかを判定し、全てのデータの書き込みを正常に行うことができると判定されたときに、上記書き込みコマンドに基づくデータの書き込みを行い、全てのデータの書き込みを正常に行うことができると判定されないときには、上記書き込みコマンドに基づくデータの書き込みを行わず、上記仮想機械を動作させる機能により上記仮想機械が動作した場合、上記書き込みコマンドに基づくデータの書き込みには、上記仮想機械プログラムにおいて実行されるデータの書き込みが含まれる、プログラムが、提供される。
本開示によれば、仮想機械が動作可能な装置における利便性の向上を図ることができる。
なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握されうる他の効果が奏されてもよい。
本実施形態に係る情報処理システムの構成の一例を示す説明図である。 本実施形態に係る情報処理装置の構成の一例を示す機能ブロック図である。 本実施形態に係る情報処理装置のハードウェア構成の一例を示す説明図である。 本実施形態に係るリーダ/ライタのハードウェア構成の一例を示す説明図である。 本実施形態に係る情報処理装置における仮想機械(VM)の動作の一例を説明するための説明図である。 本実施形態に係る情報処理装置における仮想機械(VM)の動作の一例を説明するための説明図である。 第1の実施形態に係る情報処理方法の概要を説明するための説明図である。 第2の実施形態に係る情報処理方法の第1の例の概要を説明するための説明図である。 第2の実施形態に係る情報処理方法の第2の例の概要を説明するための説明図である。 第5の実施形態に係る情報処理方法の概要を説明するための説明図である。 本実施形態に係る情報処理方法が適用されるユースケースの第1の例を説明するための説明図である。 本実施形態に係る情報処理方法が適用されるユースケースの第1の例を説明するための説明図である。 本実施形態に係る情報処理方法が適用されるユースケースの第2の例を説明するための説明図である。 本実施形態に係る情報処理方法が適用されるユースケースの第2の例を説明するための説明図である。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、以下では、下記に示す順序で説明を行う。
1.本実施形態に係る情報処理システム、および本実施形態に係る情報処理方法
[1]本実施形態に係る情報処理システムの構成
[1−1]情報処理装置100
[1−2]リーダ/ライタ200
[1−3]本実施形態に係る情報処理システムを構成する各装置の適用例
[2]本実施形態に係る情報処理方法に係る処理
[2−1]第1の実施形態に係る情報処理方法
[2−2]第2の実施形態に係る情報処理方法
[2−3]第3の実施形態に係る情報処理方法
[2−4]第4の実施形態に係る情報処理方法
[2−5]第5の実施形態に係る情報処理方法
[2−6]他の実施形態に係る情報処理方法
[3]本実施形態に係る情報処理方法が用いられることにより奏される効果の一例
[4]本実施形態に係る情報処理方法が適用されるユースケース
[4−1]ユースケースの第1の例:VMによるクーポン付与
[4−2]ユースケースの第2の例:VMによる電子マネー使用限度額設定
2.本実施形態に係るプログラム
(本実施形態に係る情報処理システム、および本実施形態に係る情報処理方法)
以下、本実施形態に係る情報処理システムの一例をまず説明した後、本実施形態に係る情報処理システムに適用される場合を例に挙げて、本実施形態に係る情報処理方法について、説明する。
また、以下では、本実施形態に係る情報処理装置が、IC(Integrated Circuit)カードである場合を主に例に挙げる。なお、本実施形態に係る情報処理装置は、ICカードに限られない。本実施形態に係る情報処理装置の他の適用例については、後述する。
[1]本実施形態に係る情報処理システムの構成
図1は、本実施形態に係る情報処理システム1000の構成の一例を示す説明図である。情報処理システム1000は、例えば、情報処理装置100と、リーダ/ライタ200とを有する。
なお、本実施形態に係る情報処理システムの構成は、図1に示す例に限られない。例えば、本実施形態に係る情報処理システムは、情報処理装置100を複数有していてもよい。また、本実施形態に係る情報処理システムは、リーダ/ライタ200を複数有していてもよい。
情報処理装置100とリーダ/ライタ200とは、例えば、Type−A、Type−B、Type−FなどのNFC(Near Field Communication)によって、通信を行う。
なお、本実施形態に係る情報処理システムでは、情報処理装置100とリーダ/ライタ200とは、例えば、“BLE(Bluetooth Low Energy)などのIEEE802.15.1を利用した無線通信や、IEEE802.11を利用した無線通信、赤外線通信などの、任意の通信方式の無線通信”、または、“USB(Universal Serial Bus)や、ISO7816規格に基づく通信インタフェースを介した通信などを利用する有線通信”によって、通信を行ってもよい。
[1−1]情報処理装置100
図2は、本実施形態に係る情報処理装置100の構成の一例を示す機能ブロック図である。情報処理装置100は、例えば、通信部102と、制御部104とを備える。
[情報処理装置100のハードウェア構成例]
図3は、本実施形態に係る情報処理装置100のハードウェア構成の一例を示す説明図である。情報処理装置100は、例えば、アンテナ150と、ICチップ152とを備える。なお、情報処理装置100は、例えば図3に示すICチップ152の構成を、ICチップの形態で備えていなくてもよい。
図3に示すハードウェア構成を有する情報処理装置100は、アンテナ150により受信された搬送波に応じた受信電圧によって駆動する。なお、情報処理装置100は、例えば、情報処理装置100が備えているバッテリなどの内部電源から供給される電力、または、接続されている外部電源から供給される電力などによって、駆動することも可能である。
アンテナ150は、例えば、所定のインダクタンスをもつコイル(インダクタ)L1と、所定の静電容量をもつキャパシタC1とからなる共振回路で構成され、搬送波の受信に応じて電磁誘導により誘起電圧を生じさせる。そして、アンテナ150は、所定の共振周波数で誘起電圧を共振させた受信電圧を出力する。ここで、アンテナ150における共振周波数は、例えば、13.56[MHz]など搬送波の周波数に合わせて設定される。アンテナ150は、上記構成により、搬送波を受信し、また、ICチップ152が備える負荷変調回路164において行われる負荷変調によって応答信号の送信を行う。
ICチップ152は、例えば、キャリア検出回路154と、検波回路156と、レギュレータ158と、復調回路160と、プロセッサ162と、負荷変調回路164とを備える。なお、図2では示していないが、ICチップ152は、例えば、過電圧や過電流がプロセッサ162に印加されることを防止するための保護回路(図示せず)をさらに備えていてもよい。ここで、保護回路(図示せず)としては、例えば、ダイオードなどで構成されたクランプ回路が挙げられる。
また、ICチップ152は、例えば、ROM(Read Only Memory)166と、RAM(Random Access Memory)168と、不揮発性メモリ170とを備える。プロセッサ162と、ROM166、RAM168、および不揮発性メモリ170とは、例えば、データの伝送路としてのバス172によって接続される。
ROM166は、プロセッサ162により実行されるプログラムや演算パラメータなどの制御用データを記憶する。
RAM168は、プロセッサ162により実行されるプログラム、演算結果、実行状態などを一時的に記憶する。また、プロセッサ162により実行されるプログラムがVMプログラムである場合、RAM168には、VMプログラムにより実行されるプログラム、演算結果、実行状態などを一時的に記憶する。
不揮発性メモリ170は、例えば、“VMプログラムや、鍵などの、本実施形態に係る情報処理方法に係るデータ”や、電子バリュー(貨幣または貨幣に準じた価値を有するデータ。以下、「電子マネー」と示す場合がある。)、各種サービスに対応するデータ、各種アプリケーションプログラムなどの、様々なデータを記憶する。本実施形態に係る鍵とは、例えば、電子署名の確認や、NFCなどの任意の通信方式の通信における認証(記録媒体の領域にアクセスするための認証も含む。)、任意の暗号化、復号化に係る処理などに用いられるデータである。
ここで、不揮発性メモリ170としては、例えば、EEPROM(Electrically Erasable and Programmable Read Only Memory)や、フラッシュメモリなどが挙げられる。
また、不揮発性メモリ170は、例えば耐タンパ性を有する。不揮発性メモリ170のような耐タンパ性を有するセキュアな記録媒体に、VMプログラムなどの各種データが記憶されることによって、情報処理装置100では、データのセキュリティが確保される。
キャリア検出回路154は、例えば、アンテナ150から伝達される受信電圧に基づいて矩形の検出信号を生成し、当該検出信号をプロセッサ162へ伝達する。また、プロセッサ162は、伝達される上記検出信号を、例えば、データ処理のための処理クロックとして用いる。ここで、上記検出信号は、アンテナ150から伝達される受信電圧に基づくものであるので、リーダ/ライタ200などの外部装置から送信される搬送波の周波数と同期することとなる。したがって、ICチップ152は、キャリア検出回路154を備えることによって、リーダ/ライタ200などの外部装置との間の処理を、当該外部装置と同期して行うことができる。
検波回路156は、アンテナ150から出力される受信電圧を整流する。ここで、検波回路156は、例えばダイオードD1とキャパシタC2とで構成される。
レギュレータ158は、受信電圧を平滑、定電圧化し、プロセッサ162へ駆動電圧を出力する。ここで、レギュレータ158は、受信電圧の直流成分を駆動電圧として用いる。なお、上述したように、例えば、情報処理装置100がバッテリなどの内部電源を備える場合、または、情報処理装置100に外部電源が接続されている場合、情報処理装置100は、当該内部電源から供給される電力、または、当該外部電源から供給される電力によって、駆動することも可能である。
復調回路160は、受信電圧に基づいて搬送波に含まれる搬送波信号を復調し、搬送波信号に対応するデータ(例えば、ハイレベルとローレベルとの二値化されたデータ信号)を出力する。ここで、復調回路160は、受信電圧の交流成分をデータとして出力する。
プロセッサ162は、例えばレギュレータ158から出力される駆動電圧を電源として駆動し、復調回路160において復調されたデータの処理を行う。
プロセッサ162は、例えば、ネイティブコードを実行することにより上記データの処理を行う。本実施形態に係るネイティブコードとは、プロセッサ162などの情報処理装置100が備える任意のプロセッサ上で実行可能なコードである。ネイティブコードは、情報処理装置100が備えるプロセッサで実行されるので、ネイティブコードは、当該プロセッサが有する処理速度で動作する。
また、例えば、プロセッサ162がVMプログラムを実行した場合、上記データの処理は、VMプログラムにより行われてもよい。
また、プロセッサ162は、リーダ/ライタ200などの外部装置への応答に係る負荷変調を制御する制御信号を処理結果に応じて選択的に生成する。そして、プロセッサ162は、制御信号を負荷変調回路164へと選択的に出力する。
なお、プロセッサ162における処理は、復調回路160において復調されたデータの処理に限られない。例えば、プロセッサ162は、任意のデータの処理を、実行されたVMプログラムによって、または、ネイティブコードを実行することによって、行うことが可能である。
プロセッサ162は、例えば、MPU(Micro Processing Unit)などの演算回路で構成される、1または2以上のプロセッサや、各種処理回路などで構成される。
負荷変調回路164は、例えば、負荷ZとスイッチSW1とを備え、プロセッサ162から伝達される制御信号に応じて負荷Zを選択的に接続する(有効化する)ことによって負荷変調を行う。ここで、負荷Zは、例えば、所定の抵抗値を有する抵抗で構成される。また、スイッチSW1は、例えば、pチャネル型のMOSFET(Metal Oxide Semiconductor Field effect transistor)や、nチャネル型のMOSFETで構成される。
ICチップ152は、例えば上記のような構成によって、アンテナ150が受信した搬送波信号を処理し、負荷変調によってアンテナ150に応答信号を送信させることができる。また、ICチップ152は、例えば上記のような構成によって、任意のデータの処理を、実行されたVMプログラムによって、または、ネイティブコードを実行することによって、行うことができる。
なお、本実施形態に係る情報処理装置のハードウェア構成は、図3に示す構成に限られない。例えば、本実施形態に係る情報処理装置は、後述する本実施形態に係る情報処理装置の適用例に応じた構成をとることが可能である。
再度図2を参照して、情報処理装置100の構成の一例について説明する。通信部102は、情報処理装置100が備える通信手段であり、外部装置と通信を行う。通信部102は、例えば制御部104により通信が制御される。
ここで、通信部102としては、例えば、図3に示すアンテナ150およびICチップ152が挙げられる。通信部102がアンテナ150およびICチップ152で構成される場合、情報処理装置100は、例えば13.56[MHz]など所定の周波数の搬送波によって、ISO/IEC18092にて規定されているNFCによる非接触通信を、リーダ/ライタ200などの外部装置と行う。
なお、通信部102は、アンテナ150およびICチップ152に限られない。例えば、通信部102は、IEEE802.15.1ポートおよび送受信回路や、IEEE802.11ポートおよび送受信回路など、任意の通信方式に対応する通信デバイスで構成されていてもよい。また、通信部102は、複数の通信方式によって、1または2以上の外部装置などと通信を行うことが可能な構成であってもよい。
制御部104は、例えば情報処理装置100全体を制御する役目を果たす。また、制御部104は、例えば処理部110を有し、後述する本実施形態に係る情報処理方法に係る処理を主導的に行う役目を果たす。
処理部110は、情報処理装置100における情報処理方法に係る処理を主導的に行う役目を果たす。情報処理装置100における情報処理方法に係る処理の一例については、後述する各実施形態において示す。
なお、本実施形態に係る情報処理装置の構成は、図2に示す構成に限られない。
例えば、本実施形態に係る情報処理装置は、図2に示す処理部110を、制御部104とは個別に備えること(例えば、別の処理回路で実現すること)ができる。
また、本実施形態に係る情報処理装置の構成は、図2に示す構成に限られず、後述する情報処理装置100における情報処理方法に係る処理の切り分け方に応じた、任意の構成をとることが可能である。
また、例えば、本実施形態に係る情報処理装置がスタンドアロンで動作する場合、または、通信部102と同様の機能、構成を有する外部の通信デバイスを介して外部装置と通信を行う場合には、本実施形態に係る情報処理装置は、通信部102を備えていなくてもよい。
[1−2]リーダ/ライタ200
リーダ/ライタ200は、情報処理装置100と通信を行うことが可能な装置の一例である。リーダ/ライタ200は、情報処理装置100と他の装置との通信を中継する中継装置の役目を果たしてもよい。
[リーダ/ライタ200のハードウェア構成例]
図4は、本実施形態に係るリーダ/ライタ200のハードウェア構成の一例を示す説明図である。
リーダ/ライタ200は、例えば、MPU250と、ROM252と、RAM254と、記録媒体256と、通信インタフェース258と、搬送波送信回路260と、アンテナ262とを備える。また、リーダ/ライタ200は、例えば、データの伝送路としてのバス264で各構成要素間を接続する。また、リーダ/ライタ200は、例えば、リーダ/ライタ200が備えているバッテリなどの内部電源から供給される電力、または、接続されている外部電源から供給される電力などによって、駆動する。
MPU250は、例えば、MPUなどの演算回路で構成される、1または2以上のプロセッサや、各種処理回路などで構成され、リーダ/ライタ200全体を制御する制御部(図示せず)として機能する。
ROM252は、MPU250により実行されるプログラムや演算パラメータなどの制御用データなどを記憶する。RAM254は、例えば、MPU250により実行されるプログラムなどを一時的に記憶する。
記録媒体256は、記憶部(図示せず)として機能し、例えば、各種アプリケーションなどの様々なデータを記憶する。ここで、記録媒体256としては、例えば、ハードディスクなどの磁気記録媒体や、フラッシュメモリなどの不揮発性メモリが挙げられる。また、記録媒体256は、リーダ/ライタ200から着脱可能であってもよい。
通信インタフェース258は、リーダ/ライタ200が備える一の通信方式の通信を行う通信手段であり、ネットワークを介して(あるいは、直接的に)、サーバなどの外部装置との間で、無線または有線で通信を行うための第1通信部(図示せず)として機能する。ここで、通信インタフェース258としては、例えば、通信アンテナおよびRF回路(無線通信)や、IEEE802.15.1ポートおよび送受信回路(無線通信)、IEEE802.11ポートおよび送受信回路(無線通信)、あるいはLAN端子および送受信回路(有線通信)などが挙げられる。また、通信インタフェース258は、本実施形態に係るネットワークに対応する任意の構成であってもよい。
搬送波送信回路260およびアンテナ262は、リーダ/ライタ200が備える他の通信方式の通信を行う通信手段であり、情報処理装置100などの外部装置との間で、無線または有線で通信を行うための第2通信部(図示せず)として機能する。
アンテナ262は、例えば、送受信アンテナとしての所定のインダクタンスをもつコイルおよび所定の静電容量をもつキャパシタからなる共振回路と、復調回路とから構成される。そして、アンテナ262は、例えば、13.56[MHz]などの所定の周波数の搬送波を受信することによって、情報処理装置100などの外部装置から負荷変調などにより送信されるデータなどを復調する。なお、例えば、搬送波送信回路260が復調回路を備える場合には、アンテナ262は、共振回路で構成されていてもよい。
搬送波送信回路260は、例えば、ASK(Amplitude Shift Keying)などの変調を行う変調回路と、当該変調回路の出力を増幅する増幅回路とを備え、アンテナ262の送受信アンテナから搬送波信号をのせた搬送波を送信させる。また、搬送波送信回路260は、例えばアンテナ262により受信された信号を復調する復調回路を備えていてもよい。復調回路は、例えば、変調回路(または増幅回路)とアンテナ262の共振回路との間における電圧の振幅変化を包絡線検波し、検波した信号を二値化することによって、アンテナ262により受信された信号を復調する。なお、復調回路は、例えば、変調回路(または増幅回路)とアンテナ262の共振回路との間における電圧の位相変化を用いて、アンテナ262により受信された信号を復調することも可能である。
搬送波送信回路260を備えることによって、リーダ/ライタ200は、NFCにおけるイニシエータ機能を有し、いわゆるリーダ/ライタの役目を果たす。ここで、搬送波送信回路260がアンテナ262から送信する搬送波信号としては、例えば、ポーリング信号や、書き込みコマンドなどの各種コマンドを示す信号など、様々な信号が挙げられる。本実施形態に係る書き込みコマンドとしては、例えば、データの書き込み命令と、書き込み対象の領域などを示す各種パラメータとを含むデータが挙げられる。また、書き込みコマンドには、書き込み対象のデータが含まれていてもよい。
搬送波送信回路260は、例えば、MPU250によって搬送波の送信が制御される。
リーダ/ライタ200は、例えば図4に示すハードウェア構成を有する。なお、本実施形態に係るリーダ/ライタ200のハードウェア構成は、図4に示す構成に限られない。
例えば、リーダ/ライタ200は、通信インタフェース258と同様の機能を有する外部の通信デバイスを介して外部装置と通信を行う場合には、通信インタフェース258を備えていなくてもよい。
また、リーダ/ライタ200は、搬送波送信回路260およびアンテナ262と同様の機能を有する外部の通信デバイスを介して外部装置と通信を行う場合には、搬送波送信回路260およびアンテナ262を備えていなくてもよい。
また、リーダ/ライタ200は、IEEE802.15.1を利用した無線通信などの、NFC以外の通信方式により外部装置と通信を行う場合には、搬送波送信回路260およびアンテナ262を備えていなくてもよい。上記の場合、リーダ/ライタ200は、NFC以外の通信方式に対応する通信デバイスを備えることによって、または、NFC以外の通信方式に対応する外部の通信デバイスによって、外部装置と通信を行う。
また、リーダ/ライタ200は、例えば記録媒体256を備えない構成をとることも可能である。
また、リーダ/ライタ200は、例えば、後述するリーダ/ライタ200の適用例に応じたハードウェア構成をとることが可能である。
また、例えば、図4に示す構成(または変形例に係る構成)は、1、または2以上のICで実現されてもよい。
[1−3]本実施形態に係る情報処理システムを構成する各装置の適用例
上記では、本実施形態に係る情報処理システムの構成要素として、情報処理装置100を挙げると共に、情報処理装置100がICカードである場合を例に挙げたが、本実施形態に係る情報処理装置の適用例は、上記に示す例に限られない。本実施形態に係る情報処理装置は、例えば、“PC(Personal Computer)やサーバなどのコンピュータ”や、“タブレット型の装置”、“ゲーム機”、“任意のIoT(Internet of Things)機器”などの、後述する情報処理装置100における情報処理方法に係る処理を行うことが可能な、様々な機器に適用することができる。また、本実施形態に係る情報処理装置は、例えば、上記のような機器に組み込むことが可能な、“SIM(Subscriber Identity Module)”や、“eUICC”、“eSE”、“TEE(Trusted Execution Environment)に対応するIC”などのICに適用することもできる。
また、本実施形態に係る情報処理システムの構成要素として、リーダ/ライタ200を挙げて説明したが、本実施形態は、かかる形態に限られない。本実施形態は、例えば、“リーダ/ライタ”、“リーダ/ライタ機能を有する装置”、“BLEのようなIEEE802.15.1を利用した無線通信などにより通信を行う通信装置”などの、本実施形態に係る情報処理装置と通信を行うことが可能な任意の機器に、適用することができる。また、本実施形態は、例えば、上記のような機器に組み込むことが可能な、処理ICに適用することもできる。
[2]本実施形態に係る情報処理方法
次に、図1に示す情報処理システム1000を例に挙げて、本実施形態に係る情報処理方法に係る処理について、説明する。
上述したように、装置が有する機能を拡張する方法としては、例えば、VMを動作させる方法がある。本実施形態に係る情報処理方法が適用される情報処理装置100は、VMを動作させる方法が適用される装置である。
図5は、本実施形態に係る情報処理装置100における仮想機械(VM)の動作の一例を説明するための説明図である。図5では、図1に示す情報処理装置100とリーダ/ライタ200とを示している。
情報処理装置100には、1つまたは複数のVMプログラムがインストールされうる。ここで、VMプログラムがインストールされるとは、例えば“情報処理装置100が備えるプロセッサ(例えば処理部110として機能するプロセッサ)がアクセスすることが可能な記録媒体にVMプログラムが記憶され、かつ、当該プロセッサがVMプログラムを実行することが可能な状態となること”をいう。
ここで、VMプログラムは、装置が備えるプロセッサのアーキテクチャなどによらず同一にすることができるので、1つのVMプログラムを複数の種類の装置で動作させることができる。
VMプログラムは、情報処理装置100の製造者だけでなく、情報処理装置100の使用者がインストールできてもよい。
VMプログラムは、例えば図5に示すように、情報処理装置100が特定のコマンドを受信したとき、または、受信したコマンドの処理の過程でファイルシステムに対して特定のアクセスが行なわれたときに起動される。VMプログラムが起動するトリガは、例えば、VMプログラムに対応付けられてる条件情報(後述する)により規定される。VMプログラムが起動することによって、VMプログラムに対応するVMは動作することとなる。
本実施形態に係るファイルシステムとしては、例えば、Felica(登録商標) OSのファイルシステムなど、情報処理装置100において動作するOSが対応する任意のファイルシステムが、挙げられる。
起動されたVMプログラムは、例えば、“ファイルシステムに対して任意のアクセスを行うこと”や、“コマンドが本来行なうべき動作に係る処理を中断させ、代わりに他の動作に係る処理を行なうこと”など、様々な処理を行う。
図6は、本実施形態に係る情報処理装置100における仮想機械(VM)の動作の一例を説明するための説明図である。図6では、図1に示す情報処理装置100とリーダ/ライタ200とにおける処理の一例を示している。
リーダ/ライタ200は、書き込みコマンドやデータを読み出すための読み出しコマンドなどの、コマンドを送信する(S100)。
ステップS100においてリーダ/ライタ200から送信されたコマンドを受信した情報処理装置100の処理部110は、条件情報が示す仮想機械を動作させる条件を満たすと判定した場合に、VMプログラムを起動させる(S102)。
本実施形態に係る条件情報とは、仮想機械を動作させる条件を示すデータであり、例えば、記録媒体の領域を示すパラメータなどの記録媒体の領域を示す情報を条件として含む。条件情報としては、例えば、特定のコマンドの受信を起動トリガとするための起動条件情報と、ファイルシステムへの特定のアクセスを起動トリガとするためのアクセス対象情報とが挙げられる。
起動条件情報には、例えば、起動させるVMプログラムを示す情報(例えばVMプログラムのIDなど)と、VMプログラムを起動させるトリガとなるコマンドを規定する情報(例えばコマンドコードなど)と、記録媒体の領域を示す情報(例えばアドレスを示すデータなど)とが含まれる。また、アクセス対象情報には、例えば、起動させるVMプログラムを示す情報(例えばVMプログラムのIDなど)と、VMプログラムを起動させるトリガとなるアクセスを規定する、記録媒体の領域を示す情報(例えばアドレスを示すデータなど)とが含まれる。
例えば条件情報に基づきVMプログラムが起動されることによって、情報処理装置100が特定のコマンドを受信したとき、または、受信したコマンドの処理の過程でファイルシステムに対して特定のアクセスが行なわれたときに、VMプログラムを起動させることが、実現される。
ステップS102の処理により起動したVMプログラムは、VMプログラムのコードに従って処理を行い、例えば、適宜ファイルシステムにアクセスして(S104)、処理の結果を処理部110へ伝達する(S106)。
ステップS106においてVMプログラムから処理の結果を取得した処理部110は、ステップS100におけるコマンドに対する応答信号を送信させる(S108)。
例えば図6に示すように、情報処理装置100では、条件情報が示す条件が満たすときにVMプログラムが起動されてVMが動作する。なお、情報処理装置100におけるVMの動作の例が、図6に示す例に限られないことは、言うまでもない。
以下、本実施形態に係る情報処理方法に係る処理の一例を、実施形態ごとに説明する。
[2−1]第1の実施形態に係る情報処理方法
[2−1−1]第1の実施形態に係る情報処理方法が適用される情報処理システム1000の概要
例えばICカードのような装置では、一般的に、所有者やアクセス権限が異なる複数のデータが含まれている。
図5、図6を参照して示したように、VMプログラムを起動してVMプログラムにファイルシステムへのアクセスを行わせる場合、VMプログラムが起動する条件とVMプログラムによるアクセス権限とを制限する必要があると考えられる。上記のような制限が必要な理由は、例えば“制限がされない場合、VMプログラムは、任意のコマンドの処理やファイルシステムの挙動を変更することができ、また、ファイルシステム内のどのデータにもアクセスできてしまう可能性があるため”である。
ここで、VMプログラムが起動する条件とVMプログラムによるアクセス権限とを制限する方法としては、“VMプログラムの中にアクセス用の鍵を格納し、リーダ/ライタ200などの外部装置によるファイルシステムへのアクセスと同様に、VMプログラムがファイルシステムに対して相互認証を行ってからアクセスする、という方法”が、考えられる。しかしながら、VMプログラムの中にアクセス用の鍵を格納する上記方法が用いられる場合、VMプログラムからアクセス用の鍵が漏洩する危険性があり、セキュリティの観点から望ましくない。
そこで、第1の実施形態に係る情報処理方法が適用される情報処理システム1000では、VMプログラムに対して電子署名が行われる。以下では、一のVMプログラムに対して行われる電子署名を「第1の電子署名」と示す場合がある。
第1の電子署名は、例えば、VMプログラムのコード、VMプログラムに対応する条件情報、および条件情報に対応する鍵に基づき生成される。第1の電子署名の生成は、サーバ(図示せず)などの情報処理装置100からみた任意の外部装置において行われうる。
第1の電子署名は、例えば、公開鍵方式の電子署名であってもよいし、共通鍵方式の電子署名であってもよい。第1の電子署名が共通鍵方式の電子署名である場合、第1の電子署名は、MAC(Message Authentication Code)となる。
情報処理装置100では、VMプログラムのIDを用いた対応付けなどの任意の対応付け方法によって、条件情報および第1の電子署名がVMプログラムに対応付けられて、記録媒体に記憶される。条件情報および第1の電子署名は、例えば“VMプログラムが、リーダ/ライタ200などの情報処理装置100の外部装置から情報処理装置100へと送信されるとき”に、情報処理装置100へと送信される。また、条件情報および第1の電子署名は、“VMプログラムが、リーダ/ライタ200などの外部装置から情報処理装置100へと送信された後の、任意のタイミング”で、情報処理装置100へと送信されてもよい。
情報処理装置100では、VMプログラムに対応付けられている第1の電子署名を、“VMのインストールが行われるとき”、または、“VMのインストールが行われた後であって、VMを動作させる前”に確認する。第1の電子署名の確認とは、第1の電子署名の検証に該当し、第1の電子署名の確認は、電子署名を検証することが可能な任意の処理により行われる。
そして、情報処理装置100は、第1の電子署名の確認結果に基づいて、VMに関する処理(仮想機械に関する処理。以下、同様とする。)の実行を制御する。本実施形態に係るVMに関する処理には、例えば、VMをインストールする処理と、条件情報に基づきVMを動作させる処理との一方または双方が含まれる。
一例を挙げると、第1の電子署名の確認結果が正しい署名ではないことを示す場合、情報処理装置100は、VMのインストールを失敗させる、VMプログラムを無効にする、VMプログラムに対応する条件情報が示す条件を無効にするなど、所定のエラー処理を行う。また、他の例を挙げると、第1の電子署名の確認結果が正しい署名であることを示す場合、情報処理装置100は、VMをインストールさせる、条件情報に基づきVMを動作させるなど、VMに関する処理の実行を可能とする。
なお、“VMプログラムに対応付けられている第1の電子署名”、または、“VMプログラムに対応付けられている、第1の電子署名および条件情報”は、第1の電子署名の確認後に破棄されてもよい。第1の電子署名の確認後に第1の電子署名などが破棄されることによって、例えば“情報処理装置100が備える記録媒体をより効率的に使用することができると共に、安全にVMプログラムを実行することができるという効果”が、奏される。
図7は、第1の実施形態に係る情報処理方法の概要を説明するための説明図である。図7のAは、条件情報が起動条件情報である場合の例を示しており、図7のBは、条件情報がアクセス対象情報である場合の例を示している。図7では、第1の電子署名を「署名」と示している(他の図においても同様とする。)。
図7に示すように、第1の実施形態に係る情報処理方法が適用される情報処理システム1000では、VMプログラムのコード、VMプログラムに対応する条件情報(図7のAに示す起動条件情報、または図7のBに示すアクセス対象情報)、および条件情報に対応する鍵(図7のAに示す“起動トリガ対象の領域”に対応付けられている鍵、または、図7のBに示す“アクセス対象の領域”に対応付けられている鍵)から、第1の電子署名が生成される。
また、情報処理装置100において、VMプログラムには、条件情報と第1の電子署名とが対応付けられて、記録媒体に記憶される。
情報処理装置100は、 例えば、“VMのインストールが行われるとき”、または、“VMのインストールが行われた後であって、VMを動作させる前”に、VMプログラムに対応付けられている第1の電子署名を確認する。そして、情報処理装置100は、第1の電子署名の確認結果に基づいて、VMに関する処理の実行を制御する。
例えば上記のように“情報処理装置100が、VMプログラムに対応付けられている第1の電子署名を確認して、確認結果に基づきVMに関する処理の実行を制御すること”によって、上述した“VMプログラムが起動する条件とVMプログラムによるアクセス権限とを制限すること”を、実現することができる。
また、情報処理装置100が第1の電子署名の確認結果に基づきVMに関する処理の実行を制御する場合には、上述した“VMプログラムの中にアクセス用の鍵を格納する方法”が用いられる場合のようなVMプログラムからアクセス用の鍵が漏洩する危険性はないので、セキュリティも十分に確保される。
したがって、第1の実施形態に係る情報処理方法が適用される情報処理装置100によって、情報処理装置100(VMが動作可能な装置の一例)における利便性の向上を図ることができる。
[2−1−2]第1の実施形態に係る情報処理装置100における情報処理方法に係る処理
次に、第1の実施形態に係る情報処理装置100における情報処理方法に係る処理の一例を説明する。
情報処理装置100は、第1の電子署名の確認結果に基づいて、VMに関する処理の実行を制御する。
情報処理装置100は、条件情報が示す領域に対応付けられている鍵を用いて、第1の電子署名を確認する。
情報処理装置100は、例えば、記録媒体の領域に対応付けられている設定情報に基づいて、条件情報が示す領域に対応付けられている鍵を特定する。設定情報としては、例えば、“記録媒体の領域を示すアドレスと鍵とが、領域ごとに対応付けて記録されているテーブル(またはデータベース)”が、挙げられる。なお、本実施形態に係る設定情報は、上記に示すようなテーブル(またはデータベース)に限られず、例えば、領域ごとのデータなどの、任意の形式のデータであってもよい。
情報処理装置100は、例えば、VMプログラムのコード、条件情報、および条件情報が示す領域に対応付けられている鍵から、検証用の電子署名を生成する。そして、情報処理装置100は、生成した検証用の電子署名と第1の電子署名とを比較することによって、第1の電子署名の正当性を確認する。本実施形態に係る第1の電子署名の正当性を確認するとは、第1の電子署名が正しい署名であるか否かを確認することをいう。
情報処理装置100は、検証用の電子署名と第1の電子署名とが一致する場合に、第1の電子署名が正しい署名であると判定する(すなわち、第1の電子署名の正当性が確認されたと判定する。)。また、情報処理装置100は、検証用の電子署名と第1の電子署名とが一致しない場合には、第1の電子署名が正しい署名であると判定しない(すなわち、第1の電子署名の正当性が確認されたと判定しない。)。
なお、第1の電子署名の確認に係る処理は、上記に示す例に限られず、情報処理装置100は、電子署名を検証することが可能な任意の処理により、第1の電子署名の確認を行ってもよい。
情報処理装置100は、第1の電子署名の正当性が確認された場合に、仮想機械に関する処理の実行を可能とする。一例を挙げると、情報処理装置100は、第1の電子署名の正当性が確認された場合に、VMをインストールさせ、または、条件情報に基づきVMを動作させる。
また、情報処理装置100は、第1の電子署名の正当性が確認されない場合には、所定のエラー処理を実行する。一例を挙げると、情報処理装置100は、第1の電子署名の正当性が確認されない場合には、VMのインストールを失敗させる、VMプログラムを無効にする、あるいは、VMプログラムに対応する条件情報が示す条件を無効にする。なお、本実施形態に係る所定のエラー処理は、上記に示す例に限られず、VMを動作させないことを実現することが可能な任意の処理であってもよい。
[2−2]第2の実施形態に係る情報処理方法
上述した第1の実施形態に係る情報処理方法が適用されることによって、情報処理装置100(VMが動作可能な装置の一例)における利便性の向上を図ることができる。
ここで、VMプログラムに対応付けられる第1の電子署名を、条件情報が示す領域ごとに生成する場合を想定すると、条件情報が示す領域が増えれば増える程、第1の電子署名の数も多くなる。よって、条件情報が示す領域が増えれば増える程、情報処理装置100へと第1の電子署名を送信する際の送信に要する時間は長くなり、情報処理装置100が第1の電子署名を記憶する記録媒体の記憶容量も大きくなる。例えば、情報処理装置100がICカードである場合、記録媒体の記憶容量はそれ程大きくないので、第1の電子署名を記憶する記憶容量の増加は、好ましくない。
そこで、第2の実施形態に係る情報処理方法が適用される情報処理システム1000では、VMプログラムに複数の条件情報が対応付けられる場合における、VMプログラムに対応付けられる電子署名の数の増加を防止する。
(A)第2の実施形態に係る情報処理方法の第1の例
VMプログラムに条件情報が複数対応付けられる場合、複数の条件情報それぞれに対応する複数の鍵から、縮退鍵(新たな鍵)が生成される。縮退鍵の生成は、サーバ(図示せず)などの情報処理装置100からみた任意の外部装置において行われうる。
縮退鍵は、例えば、乱数などの元となる値に対して、複数の条件情報それぞれに対応する複数の鍵で順次暗号化することによって、生成される。なお、縮退鍵の生成方法が、上記に示す例に限られないことは、言うまでもない。
そして、第1の電子署名は、VMプログラムのコード、複数の条件情報、および生成される縮退鍵に基づき生成される。上述したように、第1の電子署名の生成は、サーバ(図示せず)などの情報処理装置100からみた任意の外部装置において行われうる。
情報処理装置100は、上述した第1の実施形態に係る情報処理方法を用いる場合と同様に、第1の電子署名の確認結果に基づいてVMに関する処理の実行を制御する。
図8は、第2の実施形態に係る情報処理方法の第1の例の概要を説明するための説明図である。図8は、図7のAと同様に、条件情報が起動条件情報である例を示している。
図8に示すように、第2の実施形態に係る情報処理方法が適用される情報処理システム1000では、VMプログラムに対応する複数の条件情報に対応する複数の鍵(図8に示す鍵1、鍵2、鍵3)から、1つの縮退鍵が生成される。
また、第2の実施形態に係る情報処理方法が適用される情報処理システム1000では、VMプログラムのコード、VMプログラムに対応する複数の条件情報、および縮退鍵から、第1の電子署名が生成される。
また、情報処理装置100において、VMプログラムには、条件情報と第1の電子署名とが対応付けられて、記録媒体に記憶される。
情報処理装置100は、 例えば、“VMのインストールが行われるとき”、または、“VMのインストールが行われた後であって、VMを動作させる前”に、VMプログラムに対応付けられている第1の電子署名を確認する。そして、情報処理装置100は、第1の電子署名の確認結果に基づいて、VMに関する処理の実行を制御する。
図8と図7を比較すると分かるように、第2の実施形態に係る情報処理方法の第1の例では、第1の電子署名の生成の仕方以外は、上述した第1の実施形態に係る情報処理方法と同様である。
したがって、第2の実施形態に係る情報処理方法が適用される情報処理装置100によって、第1の実施形態に係る情報処理方法が適用される場合と同様に、情報処理装置100(VMが動作可能な装置の一例)における利便性の向上を図ることができる。
また、第2の実施形態に係る情報処理方法が適用される場合には、VMプログラムに複数の条件情報が対応付けられていても、VMプログラムに対応付けられる電子署名の数は、少なくとも1つで済む。
なお、第2の実施形態に係る情報処理方法が適用される場合、縮退鍵に基づき生成された第1の電子署名を含む2つ以上の電子署名が、VMプログラムに対応付けられていてもよい。2つ以上の電子署名がVMプログラムに対応付けられる場合の一例としては、“起動条件情報に対応する複数の鍵で生成された縮退鍵に基づく第1の電子署名と、アクセス対象情報対応する複数の鍵で生成された縮退鍵に基づく第1の電子署名とが、VMプログラムに対応付けられる例”が、挙げられる。
よって、第2の実施形態に係る情報処理方法が適用される場合には、
“VMプログラムに複数の条件情報が対応付けられるときにおける、VMプログラムに対応付けられる電子署名の数の増加”が防止される。
また、第2の実施形態に係る情報処理方法の第1の例は、第1の電子署名が共通鍵方式による署名(MAC)であるときに、特に有効である。
(B)第2の実施形態に係る情報処理方法の第2の例
VMプログラムに条件情報が複数対応付けられる場合、複数の条件情報それぞれに対応する複数の第1の電子署名から、縮退電子署名(新たな電子署名)が生成される。縮退電子署名の生成は、サーバ(図示せず)などの情報処理装置100からみた任意の外部装置において行われうる。
縮退電子署名は、例えば、乱数などの元となる値に対して、複数の条件情報それぞれに対応する複数の第1の電子署名で順次暗号化することによって、生成される。また、縮退電子署名は、例えば、複数の条件情報それぞれに対応する複数の第1の電子署名を順に並べたデータに対して、MACを生成することによって生成されてもよい。上記MACが、縮退電子署名に該当する。なお、縮退電子署名の生成方法が、上記に示す例に限られないことは、言うまでもない。
情報処理装置100は、上述した第1の実施形態に係る情報処理方法を用いる場合における第1の電子署名に代えて、縮退電子署名を確認する。そして、情報処理装置100は、縮退電子署名の確認結果に基づいてVMに関する処理の実行を制御する。
一例を挙げると、情報処理装置100は、例えば、条件情報ごとに、検証用の電子署名を生成する。また、情報処理装置100は、条件情報ごとに生成された検証用の電子署名から、検証用の縮退電子署名を生成する。そして、情報処理装置100は、生成した検証用の縮退電子署名と縮退電子署名とを比較することによって、縮退電子署名の正当性を確認する。
なお、縮退電子署名の確認に係る処理は、上記に示す例に限られず、情報処理装置100は、電子署名を検証することが可能な任意の処理により、縮退電子署名の確認を行ってもよい。
図9は、第2の実施形態に係る情報処理方法の第2の例の概要を説明するための説明図である。図9は、図7のAと同様に、条件情報が起動条件情報である例を示している。また、図9では、縮退電子署名を「縮退署名」と示している。
図9に示すように、第2の実施形態に係る情報処理方法が適用される情報処理システム1000では、VMプログラムに対応する複数の条件情報に対応する複数の第1の電子署名(図9に示す署名1、署名2、署名3)が生成される。また、第2の実施形態に係る情報処理方法が適用される情報処理システム1000では、複数の第1の電子署名から縮退電子署名が生成される。
また、情報処理装置100において、VMプログラムには、条件情報と縮退電子署名とが対応付けられて、記録媒体に記憶される。
情報処理装置100は、 例えば、“VMのインストールが行われるとき”、または、“VMのインストールが行われた後であって、VMを動作させる前”に、VMプログラムに対応付けられている縮退電子署名を確認する。そして、情報処理装置100は、縮退電子署名の確認結果に基づいて、VMに関する処理の実行を制御する。
図9と図7を比較すると分かるように、第2の実施形態に係る情報処理方法の第2の例では、第1の電子署名が縮退電子署名であること以外は、上述した第1の実施形態に係る情報処理方法と同様である。
したがって、第2の実施形態に係る情報処理方法が適用される情報処理装置100によって、第1の実施形態に係る情報処理方法が適用される場合と同様に、情報処理装置100(VMが動作可能な装置の一例)における利便性の向上を図ることができる。
また、第2の実施形態に係る情報処理方法が適用される場合には、VMプログラムに複数の条件情報が対応付けられていても、VMプログラムに対応付けられる電子署名の数は、少なくとも1つで済む。
なお、第2の実施形態に係る情報処理方法が適用される場合、2つ以上の縮退電子署名が、VMプログラムに対応付けられていてもよい。2つ以上の縮退電子署名がVMプログラムに対応付けられる場合の一例としては、“起動条件情報に対応する複数の電子署名から生成された縮退電子署名と、アクセス対象情報対応する複数の電子署名から生成された縮退電子署名とが、VMプログラムに対応付けられる例”が、挙げられる。
よって、第2の実施形態に係る情報処理方法が適用される場合には、
“VMプログラムに複数の条件情報が対応付けられるときにおける、VMプログラムに対応付けられる電子署名の数の増加”が防止される。
また、第2の実施形態に係る情報処理方法の第2の例は、縮退電子署名が共通鍵方式による署名(MAC)であるときに、特に有効である。
[2−3]第3の実施形態に係る情報処理方法
上述した第1の実施形態に係る情報処理方法または第2の実施形態に係る情報処理方法が適用されることによって、情報処理装置100(VMが動作可能な装置の一例)における利便性の向上を図ることができる。
ここで、上述した第1の実施形態に係る情報処理方法または第2の実施形態に係る情報処理方法が適用される場合には、例えば“情報処理装置100においてVMプログラムと電子署名とが対応付けられた後に、VMプログラムの提供者などがVMの動作を制限したくなるユースケース”に対応することができない。
そこで、第3の実施形態に係る情報処理方法が適用される情報処理システム1000では、情報処理装置100が、VMに関する処理の実行を制御するための制御情報に基づいて、VMに関する処理の実行を制御する機能を、さらに有する。
本実施形態に係る制御情報としては、例えば“VMプログラムを特定するための情報と、制限内容を示す情報とが対応付けて記録されているテーブル(またはデータベース)”が、挙げられる。なお、本実施形態に係る制御情報は、上記に示すようなテーブル(またはデータベース)に限られず、例えば、VMプログラムごとのデータなどの、任意の形式のデータであってもよい。制御情報の生成は、サーバ(図示せず)などの情報処理装置100からみた任意の外部装置において行われうる。
VMプログラムを特定するための情報としては、例えば、VMプログラムのIDや、プログラムコードの少なくとも一部のハッシュ値、MACなどの、VMプログラムを同定することが可能な任意のデータが、挙げられる。
制限内容を示す情報としては、例えば、VMのインストールを禁止することを示すデータや、VMプログラムの実行を禁止することを示すデータなど、VMの動作の制限内容が規定される任意のデータが、挙げられる。
情報処理装置100は、例えば、制御情報に含まれるVMプログラムを特定するための情報に基づいて、“対象となるVMプログラムが、制御情報に設定されているVMプログラムであるか”を判定する。情報処理装置100は、例えば、VMのインストール時、または、VMプログラムの実行時に、“対象となるVMプログラムが、制御情報に設定されているVMプログラムであるか”を判定する。なお、情報処理装置100は、記録媒体に記憶されている全てのVMプログラムを対象となるVMプログラムとし、任意のタイミングに“対象となるVMプログラムが、制御情報に設定されているVMプログラムであるか”を判定してもよい。
そして、情報処理装置100は、制御情報に基づく判定結果に応じて、VMに関する処理の実行の制御を行う。
一例を挙げると、情報処理装置100は、VMのインストール時またはVMプログラムの実行時に、VMプログラムの実行やVMプログラムのインストールが禁止されていれば、禁止されている処理を行わない。他の例を挙げると、VMがインストールされた後に、VMプログラムのインストールが禁止された場合、情報処理装置100は、VMプログラムをアンインストールする、または、VMプログラムの実行を禁止する。
なお、第3の実施形態に係る情報処理装置100における処理は、上記に示す例に限られない。
例えば、第3の実施形態に係る情報処理方法が適用される場合、制御情報に対して電子署名が行われていてもよい。以下では、一の制御情報に対して行われる電子署名を「第2の電子署名」と示す場合がある。
第2の電子署名の生成は、サーバ(図示せず)などの情報処理装置100からみた任意の外部装置において行われうる。また、情報処理装置100では、任意の対応付け方法によって、制御情報と第2の電子署名とが対応付けられて、記録媒体に記憶される。
制御情報に第2の電子署名が対応付けられている場合、情報処理装置100は、第2の電子署名の確認結果に基づいて、制御情報に基づくVMに関する処理の実行の制御を行う。
例えば、情報処理装置100は、第2の電子署名の正当性が確認された場合に、制御情報に基づくVMに関する処理の実行の制御を可能とする。また、情報処理装置100は、第2の電子署名の正当性が確認されない場合には、制御情報に基づくVMに関する処理の実行の制御を行わない。
情報処理装置100は、例えば、“制御情報による制御対象のVMプログラムに対応付けられている条件情報”が示す領域に対応付けられている鍵を用いて、第2の電子署名を確認する。
情報処理装置100は、例えば、“制御情報による制御対象のVMプログラムに対応付けられている条件情報”が示す領域に対応付けられている鍵のうち、少なくとも1つ以上の鍵を用いて署名がされている場合に、第2の電子署名が正しい署名であると判定する。また、情報処理装置100は、例えば、“制御情報による制御対象のVMプログラムに対応付けられている条件情報”が示す領域に対応付けられている全ての鍵を用いて署名がされている場合に、第2の電子署名が正しい署名であると判定してもよい。
第3の実施形態に係る情報処理方法が適用される情報処理装置100では、上記のように、制御情報に基づくVMに関する処理の実行の制御が、行われる。よって、第3の実施形態に係る情報処理方法が適用される情報処理装置100は、上述した“情報処理装置100においてVMプログラムと電子署名とが対応付けられた後に、VMプログラムの提供者などがVMの動作を制限したくなるユースケース”に対応することができる。
したがって、第3の実施形態に係る情報処理方法が適用される情報処理装置100によって、第1の実施形態に係る情報処理方法または第2の実施形態に係る情報処理方法が適用される場合よりも、情報処理装置100(VMが動作可能な装置の一例)における利便性の向上を図ることができる。
[2−4]第4の実施形態に係る情報処理方法
上述した第1の実施形態に係る情報処理方法〜第3の実施形態に係る情報処理方法の少なくとも1つが適用されることによって、情報処理装置100(VMが動作可能な装置の一例)における利便性の向上を図ることができる。
ここで、情報処理装置100では、“署名されたVMプログラムがインストールされた後に、条件情報が示す領域(すなわち、正当な電子署名の生成に用いられた鍵に紐づく領域)が削除されるケース”が想定される。上記ケースが生じた場合、情報処理装置100で実行されるVMプログラムは、決して成立しない起動条件を待ち、あるいは、存在しない領域にアクセスしようとしてしまう。
そこで、第4の実施形態に係る情報処理方法が適用される情報処理システム1000では、情報処理装置100が、記録媒体の領域を削除するときに、削除対象の領域を示す条件情報が存在する場合には、下記のいずれかを行う。
・削除対象の領域の削除を行わない。
・削除対象の領域を示す条件情報に対応付けられているVMプログラムに関して所定の処理を行う。
第4の実施形態に係る所定の処理としては、例えば、“削除対象の領域を示す条件情報に対応付けられているVMプログラムをアンインストールする処理”や、“削除対象の領域を示す条件情報に対応付けられているVMプログラムを無効化する処理”が、挙げられる。VMプログラムを無効化する処理としては、VMプログラムを無効にする処理と、VMプログラムに対応する条件情報が示す条件を無効にする処理との一方または双方が、挙げられる。
第4の実施形態に係る情報処理方法が適用される情報処理装置100では、上記のように、記録媒体の領域を削除するときに削除対象の領域を示す条件情報が存在する場合には、削除対象の領域の削除が行われず、または、VMプログラムに関して所定の処理が行われる。よって、第4の実施形態に係る情報処理方法が適用される情報処理装置100は、上述した“VMプログラムが、決して成立しない起動条件を待ち、あるいは、存在しない領域にアクセスしようとしてしまうこと”が、防止される。
したがって、第4の実施形態に係る情報処理方法が適用される情報処理装置100によって、情報処理装置100(VMが動作可能な装置の一例)における利便性の向上を図ることができる。
[2−5]第5の実施形態に係る情報処理方法
[2−5−1]第5の実施形態に係る情報処理方法が適用される情報処理システム1000の概要
ICカードのようなNFCに対応する装置の中には、1回のコマンド実行による結果のアトミック性が担保されるという特長を有するものがある。アトミック性が担保される例としては、“1回のコマンドのパラメータにおいて領域A、B、Cへの書き込みが指示されている場合、コマンドが中断された場合でも、領域A、B、Cへの書き込みが全て行なわれているか、または、領域A、B、Cへの書き込みが全く行なわれていないかのどちらかの結果になる例”が、挙げられる。
そこで、第5の実施形態に係る情報処理方法が適用される情報処理システム1000では、VMを動作させることが可能な情報処理装置100において、上記に示す例のようなアトミック性を担保させる。一例を挙げると、第5の実施形態に係る情報処理方法が適用される情報処理システム1000では、“情報処理装置100において、コマンドによる書き込みとVMプログラムによる書き込みとが、全て成功するかまたは全て失敗するかのどちらかの結果になること”を実現する。
図10は、第5の実施形態に係る情報処理方法の概要を説明するための説明図である。図10は、パラメータにおいて領域A、B、Cへの書き込みが指示されるコマンドを受信した情報処理装置100における処理の一例を示している。
例えば、受信したコマンドによりファイルシステムアクセスが発生し、起動条件に合致してVMプログラムが起動されたとき、情報処理装置100では、VMプログラムによるファイルシステムへの書き込みと、コマンドによるファイルシステムへの書き込みは、直ちに実行されず、各処理の成否と書き込むデータとを、一時バッファに保持される。例えば図3に示すハードウェア構成を有する場合、例えばRAM168や不揮発性メモリ170などの記録媒体が一時バッファの役目を果たす。
情報処理装置100は、コマンドに含まれる各パラメータに基づく処理が終わった後、全ての処理の結果が成功である場合、一時バッファに保持されている全てのデータを、ファイルシステムに反映させる。また、情報処理装置100は、コマンドに含まれる各パラメータに基づく処理が終わった後、少なくとも1つの処理の結果が失敗である場合には、一時バッファに保持されている全てのデータを、ファイルシステムに反映させない。
例えば図10に示す処理が行われることによって、“コマンドによる書き込みとVMプログラムによる書き込みとが、全て成功するかまたは全て失敗するかのどちらかの結果になること”が実現されるので、情報処理装置100では、アトミック性が担保される。
したがって、第5の実施形態に係る情報処理方法が適用される情報処理装置100によって、情報処理装置100(VMが動作可能な装置の一例)における利便性の向上を図ることができる。
[2−5−2]第5の実施形態に係る情報処理装置100における情報処理方法に係る処理
次に、第5の実施形態に係る情報処理装置100における情報処理方法に係る処理の一例を説明する。
情報処理装置100は、例えば上述した第1の実施形態〜第4の実施形態に係る情報処理装置100と同様に、VMを動作させる機能を有する。
なお、第5の実施形態に係る情報処理装置100は、上述した第1の実施形態〜第4の実施形態に係る情報処理装置100のような電子署名の確認結果に応じたVMの動作制御を、行ってもよいし、行わなくてもよい。つまり、上記のようなアトミック性を担保させる上で、電子署名の確認結果に応じたVMの動作制御は、必須ではない。よって、第5の実施形態に係るVMを動作させる仮想機械プログラムには、少なくとも条件情報が対応付けられていればよい。
また、情報処理装置100は、書き込みコマンドに基づいてデータの書き込みを行う機能を含め、外部装置から取得されるコマンドを処理する機能を有する。以下では、情報処理装置100が書き込みコマンドを処理する場合を例に挙げて、上記のようなアトミック性の担保に係る処理を説明する。
書き込みコマンドが取得された場合、情報処理装置100は、書き込みコマンドのパラメータが示す領域が条件情報が示す領域である場合に、VMを動作させる。
また、書き込みコマンドが取得された場合、情報処理装置100は、書き込みコマンドに基づいて行われる全てのデータの書き込みを正常に行うことができるかを判定する。例えば図10を参照して説明したように、情報処理装置100は、ファイルシステムへの書き込みは、直ちに実行されず、全てのデータの書き込みの成否と書き込むデータとを、一時バッファに保持する。
そして、情報処理装置100は、全てのデータの書き込みを正常に行うことができると判定されたときに、書き込みコマンドに基づくデータの書き込みを行う。例えば図10を参照して説明したように、情報処理装置100は、コマンドに含まれる各パラメータに基づく処理が終わった後、全ての処理の結果が成功である場合、一時バッファに保持されている全てのデータを、ファイルシステムに反映させる。
また、情報処理装置100は、全てのデータの書き込みを正常に行うことができると判定されないときには、書き込みコマンドに基づくデータの書き込みを行わない。例えば図10を参照して説明したように、情報処理装置100は、コマンドに含まれる各パラメータに基づく処理が終わった後、少なくとも1つの処理の結果が失敗である場合には、一時バッファに保持されている全てのデータを、ファイルシステムに反映させない。
例えば上記のように、情報処理装置100が、書き込みコマンドに基づいて行われる全てのデータの書き込みを正常に行うことができるかを判定し、判定結果に応じて書き込みコマンドに基づくデータの書き込みを選択的に行う。よって、情報処理装置100では、アトミック性が担保される。
ここで、書き込みコマンドに基づきVMを動作させた場合には、書き込みコマンドに基づくデータの書き込みには、VMプログラムにおいて実行されるデータの書き込みが含まれることとなる。
[2−6]他の実施形態に係る情報処理方法
本実施形態に係る情報処理方法に係る処理は、上記第1の実施形態に係る情報処理方法に係る処理〜上記第5の実施形態に係る情報処理方法に係る処理に限られない。
例えば、本実施形態に係る情報処理方法に係る処理は、上記第1の実施形態に係る情報処理方法に係る処理〜上記第5の実施形態に係る情報処理方法に係る処理のうちの2以上を組み合わせた処理であってもよい。
[3]本実施形態に係る情報処理方法が用いられることにより奏される効果の一例
本実施形態に係る情報処理方法が用いられることによって、例えば下記の(a)〜(d)に示す効果が奏される。なお、本実施形態に係る情報処理方法が用いられることにより奏される効果が、下記に示す例に限られないことは、言うまでもない。
(a)OSとの連携、および高機能API(Application Programming Interface)によるVMプログラムの実装
・本実施形態に係るVMプログラムは、Felica(登録商標) OSなどのOSの機能をカスタマイズする機能を有する高機能APIを提供することが可能である。
・例えばOSと連携するAPIをVMプログラムに設けることによって、VMプログラムをOSの動きと連携して動作させることができる。一例を挙げると、OSの書き込み動作とVMプログラムによる書き込み動作とを連携させることによって、上記第5の実施形態に係る情報処理方法において例示したように、書き込み動作のアトミック性を担保することができる。また、書き込み動作のアトミック性が担保されることによって、書き込みが完了する前に電力が途切れる場合(電源断が生じた場合)への対応を、実現することができる。
・アプリケーションの基本的な部分は、高速に動くプロセッサ上でネイティブで動作するコード(ネイティブコード)として実装し、OSの機能をカスタマイズする機能をVMプログラムで実装することが可能である。このような実装によって、例えば、VM上で動作する低速なプログラムを含む場合であっても、高速に動作するアプリケーションを実現することができる。また、このような実装によって、コンパクトに機能を実現することが可能となり、限られたメモリリソース上で高度な機能を実現することができる。情報処理装置100がICカードである場合、限られたメモリリソース上で高度な機能を実現することができることは、特に有益である。
(b)VMプログラムの起動条件
・VMプログラムは条件情報に従って起動されるので、情報処理装置100の外部から指定することなく、所定のタイミングにVMプログラムを実行させることができる。よって、VMプログラムの実行は、リーダ/ライタ200などの外部装置に依存しないので、例えば市場に存在する外部装置を変更することなく、VMプログラムによる情報処理装置100の機能の拡張を実現することができる。また、VMプログラムの実行は、リーダ/ライタ200などの外部装置に依存しないので、例えば外部装置では、VMプログラムの存在を意識する必要はない。
・上記第1の実施形態に係る情報処理方法に係る処理〜上記第4の実施形態に係る情報処理方法のいずれかが用いられることにより、電子署名の確認結果に基づくVMに関する処理の実行の制御が、実現される。ここで、情報処理装置100では、例えば、電子署名はダウンロード時にチェックされた上で保存され、実行時に電子署名を確認する必要はなく、プログラムの高速な実行が可能である。
(c)アクセス対象の事前設定
・例えば、VMプログラムのメタデータとしてリソースアクセス権限に関する情報(例えば、条件情報、および電子署名)をダウンロードしておくことによって、VMプログラムを実行するときにおける相互認証が不要となり、VMプログラムは、OSのリソースにアクセスすることが可能となる。ここで、実行権限は、必要なアクセス権限ごとに署名され、情報処理装置100に設定される。また、情報処理装置100では、例えば、電子署名はダウンロード時にチェックされた上で保存され、実行時に電子署名を確認する必要はなく、プログラムの高速な実行が可能である。
・アクセス対象に対しては、条件ごとに制限を追加することも可能である。
(d)市場での機能追加
・VMプログラムのダウンロードは、市場で発行可能なコマンドとして実装されてもよく、市場で情報処理装置100の機能追加が可能である。
・不要になったVMプログラムは、市場で発行可能なコマンドにより市場で削除されてもよい。
・VMプログラムの専用領域を必要とせず、空き領域にVMプログラムをダウンロード可能にすることによって、情報処理装置100では、メモリを有効に活用することができる。
・既存のアプリケーションを削除せずに、機能を追加する動作を、VMプログラムによって実現することができる。これによって、例えば、既存のデータ構造を引き継ぐことができ、VMプログラムによる追加的な動きを実現することが、可能である。
・上記(b)および上記(c)により、アプリケーションをダウンロードした後に、市場のリーダライタなどの外部装置を変更せずに、情報処理装置100に機能を追加することができる。一例を挙げると、情報処理装置100に与えるシーケンスを変更せずに、情報処理装置100側で機能の追加が可能である。
[4]本実施形態に係る情報処理方法が適用されるユースケース
次に、上述した本実施形態に係る情報処理方法が適用されるユースケースについて説明する。なお、本実施形態に係る情報処理方法が適用されるユースケースが、下記に示す例に限られないことは、言うまでもない。
[4−1]ユースケースの第1の例:VMによるクーポン付与
ユースケースの第1の例として、VMによりクーポンを付与するユースケースを、説明する。
図11は、本実施形態に係る情報処理方法が適用されるユースケースの第1の例を説明するための説明図である。図11のAは、VMプログラムがインストールされる前の情報処理装置100が備える記録媒体の状態を示している。また、図11のBは、VMプログラムがインストールされた後の情報処理装置100が備える記録媒体の状態を示している。
起動条件情報(条件情報の一例)の署名は、例えば、VMプログラムが起動する条件となる領域(ブロック)の親エリアの権限を持つ者(例えば電子マネー事業者)により作成される。また、アクセス対象情報(条件情報の一例)の署名は、例えば、VMプログラムがアクセスするクーポンを保存する領域(ブロック)の親エリアの権限を持つ者(例えば電子マネー事業者)により作成される。
VMプログラムと、起動条件情報および署名と、アクセス対象情報および署名とは、1つにまとめられた署名付きのパッケージとされてもよい。ここで、本実施形態に係る署名付きのパッケージとは、暗号化されて署名されることをいう。署名付きのパッケージは、秘匿化され、署名されているので、市場での安全なダウンロードが可能となる。
起動条件情報および署名と、アクセス対象情報および署名とは、VMプログラムのメタデータに該当する。
例えばパッケージ化されたVMプログラムが、情報処理装置100にダウンロードされた場合、情報処理装置100は、署名を検証して改ざんされていないことを確認する。署名がダウンロード時に確認されることによって、例えば、署名を情報処理装置100に保存する必要がなくなり、情報処理装置100が備える不揮発メモリの容量が少ない場合であっても、安全にVMプログラムを実行することが可能となる。
なお、情報処理装置100では、情報処理装置100の起動時や、プログラム実行時などに、署名が確認されてもよい。また、電子署名を情報処理装置100に保存して、情報処理装置100がプログラム実行時などに毎回チェックすることによって、より安全を高めることが可能である。
例えばパッケージ化されたVMプログラムが情報処理装置100にダウンロードされることにより、情報処理装置100が備える記録媒体の状態は、例えば、図11のAに示す状態から図11のBに示す状態へと変わる。
図12は、本実施形態に係る情報処理方法が適用されるユースケースの第1の例を説明するための説明図である。図12は、図1に示す情報処理システム1000における処理の一例を示している。
リーダ/ライタ200は、図11に示すService1008に関する相互認証コマンドを送信し(S200)、処理部110は、相互認証コマンドに応じた処理を行った上でレスポンスを返す(S202)。ステップS200、S202の処理は、Service1008に関する相互認証に該当する。以下では、相互認証が正常に完了した場合を例に挙げる。
リーダ/ライタ200は、Service1008に対して書き込みを行うための書き込みコマンドを送信する(S204)。
ステップS204においてリーダ/ライタ200から送信された書き込みコマンドを取得した処理部110は、書き込みコマンドに基づいてファイルシステムに対して、Service1008への書き込みアクセスを行う(S206)。図12では、ステップS206に示す処理として、電子マネーチャージ(電子バリューの値を加算する処理)を示している。
また、処理部110は、署名を確認した上でVMプログラムの起動条件を確認する(S208)、処理部110は、署名が確認され、かつ起動条件を満たしている場合に、VMプログラムを起動させる(S210)。
VMプログラムが実行され、Service1108への書き込みアクセスが発生した場合、VMプログラムは、例えば、アクセス対象情報に
Service1108ブロックの更新情報が含まれていることを確認する。このとき、VMプログラムは、図11に示す署名2を確認してもよい。
VMプログラムは、図11に示すService1108への書き込みアクセスを行う(S212)。図12では、ステップS212に示す処理として、クーポン付与に係る処理を示している。
VMプログラムは、署名を確認した上でアクセス対象情報の条件を確認し、署名が確認され、かつ当該条件を満たしている場合に、Service1108への書き込みを予約する(S214)。VMプログラムは、例えば、Service1008への書き込みに対応するクーポン(例えば、電子バリューの値の加算値(いわゆるチャージ金額)に対応するクーポン)の書き込みを予約する。また、VMプログラムは、ステップS214の処理の結果を、処理部110へ伝達する(S216)。ここで、アクセス対象情報には、例えば、Service1108にアクセスするという情報とService1108に書き込みを行うことができるという権限が規定される。
ステップS216において正常に書き込み予約が行われたことを示す結果が、処理部110へ伝達された場合、ファイルシステムにより、不揮発性メモリへのデータの書き込みが行われ(S218)、書き込みの結果が処理部110へ伝達される(S220)。例えば、Service1008への書き込みは、処理部110により行われ、Service1108への書き込みは、VMプログラムにより行われる。Service1108への書き込みが行われた後、VMプログラムは正常終了する。
処理部110は、ステップS204においてリーダ/ライタ200から送信された書き込みコマンドに対するレスポンスとして、正常に処理が行われたレスポンスを返す(S222)。
例えば図12に示す処理が行われることによって、VMによるクーポン付与が実現される。なお、VMによるクーポン付与を実現することが可能な処理が、図12に示す例に限られないことは、言うまでもない。
[4−2]ユースケースの第2の例:VMによる電子マネー使用限度額設定
ユースケースの第2の例として、VMによる電子マネーに使用限度額を設定するユースケースを、説明する。
図13は、本実施形態に係る情報処理方法が適用されるユースケースの第2の例を説明するための説明図である。図13のAは、VMプログラムがインストールされる前の情報処理装置100が備える記録媒体の状態を示している。また、図13のBは、VMプログラムがインストールされた後の情報処理装置100が備える記録媒体の状態を示している。
起動条件情報(条件情報の一例)の署名は、例えば、VMプログラムが起動する条件となる親エリアの権限を持つ者(例えば電子マネー事業者)により作成される。
VMプログラムと、起動条件情報および署名とは、1つにまとめられた署名付きのパッケージとされてもよい。署名付きのパッケージは、秘匿化され、署名されているので、市場での安全なダウンロードが可能となる。
例えばパッケージ化されたVMプログラムが、情報処理装置100にダウンロードされた場合、情報処理装置100は、署名を検証して改ざんされていないことを確認する。署名がダウンロード時に確認されることによって、例えば、署名を情報処理装置100に保存する必要がなくなり、情報処理装置100が備える不揮発メモリの容量が少ない場合であっても、安全にVMプログラムを実行することが可能となる。
なお、情報処理装置100では、情報処理装置100の起動時や、プログラム実行時などに、署名が確認されてもよい。また、電子署名を情報処理装置100に保存して、情報処理装置100がプログラム実行時などに毎回チェックすることによって、より安全を高めることが可能である。
例えばパッケージ化されたVMプログラムが情報処理装置100にダウンロードされることにより、情報処理装置100が備える記録媒体の状態は、例えば、図13のAに示す状態から図13のBに示す状態へと変わる。例えば図13のBに示すように、VMプログラムは、VMプログラム専用領域にデータを保存するプログラムであってもよい。
図14は、本実施形態に係る情報処理方法が適用されるユースケースの第2の例を説明するための説明図である。図14は、図1に示す情報処理システム1000における処理の一例を示している。
リーダ/ライタ200は、図13に示すService1008およびService110Cに関する相互認証コマンドを送信し(S300)、処理部110は、相互認証コマンドに応じた処理を行った上でレスポンスを返す(S302)。ステップS300、S302の処理は、図12に示すステップS200、S202の処理と同様に、Service1008およびService110Cに関する相互認証に該当する。以下では、相互認証が正常に完了した場合を例に挙げる。
リーダ/ライタ200は、Service1008に対して書き込みを行うための書き込みコマンドを送信する(S304)。
ステップS304においてリーダ/ライタ200から送信された書き込みコマンドを取得した処理部110は、書き込みコマンドに基づいてファイルシステムに対して、Service1008およびService110Cへの書き込みアクセスを行う(S306)。図14では、ステップS306に示す処理として、電子マネーチャージ(電子バリューの値を加算する処理)と、ログを記録する処理とを示している。
また、処理部110は、署名を確認した上でVMプログラムの起動条件を確認し(S308)、署名が確認され、かつ起動条件を満たしている場合に、VMプログラムを起動させる(S310)。
コマンドパケットによりデータ参照アクセスが発生した場合、VMプログラムは、アクセス対象情報にService
110Cコマンドパケット中のデータ参照情報が含まれているか否かを確認する。このとき、VMプログラムは、図13に示す署名2を確認してもよい。
VMプログラムは、Service110Cの減額金額と日付とを、図13に示すVMプログラム用データ記憶領域に書き込む。このとき、例えば一日あたりの限度額が設定される場合には、VMプログラムは、Service
110Cコマンドパケット中の日付と減額金額の確認を行う(S312)。そして、VMプログラムは、減算金額が限度額を超えていないかを確認し(S314)、結果を処理部110へ伝達する(S316)。限度額は、例えば、VMプログラムに埋め込まれ、または、VMプログラム用データ記憶領域に記録される。
ステップS314において限度額を超えていることが確認された場合、処理部110は、ステップS304においてリーダ/ライタ200から送信された書き込みコマンドに対するレスポンスとして、エラーを返す(S318)。
また、ステップS314において限度額を超えていないことが確認された場合、ファイルシステムにより、不揮発性メモリへのデータの書き込みが行われ(S320)、書き込みの結果が処理部110へ伝達される(S322)。例えば、Service1008への書き込みは、処理部110により行われ、Service110Cへの書き込みは、VMプログラムにより行われる。Service110Cへの書き込みが行われた後、VMプログラムは正常終了する。
処理部110は、ステップS304においてリーダ/ライタ200から送信された書き込みコマンドに対するレスポンスとして、正常に処理が行われたレスポンスを返す(S324)。
例えば図14に示す処理が行われることによって、VMによる電子マネー使用限度額設定が実現される。なお、VMによる電子マネー使用限度額設定を実現することが可能な処理が、図14に示す例に限られないことは、言うまでもない。
(本実施形態に係るプログラム)
コンピュータシステムを、本実施形態に係る情報処理装置として機能させるためのプログラム(例えば、第1の実施形態に係る情報処理方法に係る処理を行う処理部110の機能〜第5の実施形態に係る情報処理方法に係る処理を行う処理部110の機能のうちの一部または全部の機能を、実現することが可能なプログラム)が、コンピュータシステムにおいてプロセッサなどにより実行されることによって、仮想機械が動作可能な装置における利便性の向上を図ることができる。ここで、本実施形態に係るコンピュータシステムとしては、単体のコンピュータ、または、複数のコンピュータが挙げられる。本実施形態に係るコンピュータシステムによって、一連の処理が行われる。
また、コンピュータシステムを、本実施形態に係る情報処理装置として機能させるためのプログラムが、コンピュータシステムにおいてプロセッサなどにより実行されることによって、上述した各実施形態に係る情報処理方法に係る処理によって奏される効果を、奏することができる。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
例えば、上記では、コンピュータシステムを、本実施形態に係る情報処理装置として機能させるためのプログラム(コンピュータプログラム)が提供されることを示したが、本実施形態は、上記プログラムを記憶させた記録媒体を併せて提供することができる。
上述した構成は、本実施形態の一例を示すものであり、当然に、本開示の技術的範囲に属するものである。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
仮想機械に関する処理の実行を制御する機能を有する処理部を備え、
前記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む前記仮想機械を動作させる条件を示す条件情報と、前記仮想機械プログラムのコード、および前記条件情報に基づき生成される第1の電子署名とが、対応付けられ、
前記処理部は、前記仮想機械プログラムに対応付けられている前記第1の電子署名の確認結果に基づいて、前記仮想機械に関する処理の実行を制御する、情報処理装置。
(2)
前記処理部は、
前記第1の電子署名の正当性が確認された場合に、前記仮想機械に関する処理の実行を可能とし、
前記第1の電子署名の正当性が確認されない場合には、所定のエラー処理を実行する、(1)に記載の情報処理装置。
(3)
前記仮想機械に関する処理には、前記仮想機械をインストールする処理と、前記条件情報に基づき前記仮想機械を動作させる処理との一方または双方が含まれる、(1)または(2)に記載の情報処理装置。
(4)
前記第1の電子署名は、前記条件情報に対応する鍵に基づき生成され、
前記処理部は、前記条件情報が示す前記領域に対応付けられている鍵を用いて、前記第1の電子署名を確認する、(1)〜(3)のいずれか1つに記載の情報処理装置。
(5)
前記処理部は、前記仮想機械のインストールが行われるとき、または、前記仮想機械のインストールが行われた後であって、前記仮想機械を動作させる前に、前記第1の電子署名を確認する、(1)〜(4)のいずれか1つに記載の情報処理装置。
(6)
前記仮想機械プログラムに前記条件情報が複数対応付けられる場合、前記第1の電子署名は、前記仮想機械プログラムのコード、複数の前記条件情報、および複数の前記条件情報それぞれに対応する複数の鍵に基づき生成される縮退鍵に基づき生成される、(1)〜(5)のいずれか1つに記載の情報処理装置。
(7)
前記仮想機械プログラムに前記条件情報が複数対応付けられる場合、前記仮想機械を動作させる仮想機械プログラムには、複数の前記条件情報それぞれに対応する複数の前記第1の電子署名に基づき生成される縮退電子署名が、対応付けられ、
前記処理部は、前記仮想機械プログラムに対応付けられている前記縮退電子署名の確認結果に基づいて、前記仮想機械に関する処理の実行を制御する、(1)〜(5)のいずれか1つに記載の情報処理装置。
(8)
前記処理部は、さらに、前記仮想機械に関する処理の実行を制御するための制御情報に基づいて、前記仮想機械に関する処理の実行を制御し、
前記制御情報には、第2の電子署名が対応付けられ、
前記処理部は、前記第2の電子署名の確認結果に基づいて、前記制御情報に基づく前記仮想機械に関する処理の実行の制御を行う、(1)〜(7)のいずれか1つに記載の情報処理装置。
(9)
前記処理部は、前記制御情報による制御対象の前記仮想機械プログラムに対応付けられている前記条件情報が示す前記領域に対応付けられている鍵を用いて、前記第2の電子署名を確認する、(8)に記載の情報処理装置。
(10)
前記処理部は、記録媒体の領域を削除するときに、削除対象の領域を示す前記条件情報が存在する場合には、前記削除対象の領域の削除を行わない、または、前記削除対象の領域を示す前記条件情報に対応付けられている前記仮想機械プログラムに関して所定の処理を行う、(1)〜(9)のいずれか1つに記載の情報処理装置。
(11)
前記情報処理装置は、ICカードである、(1)〜(10)のいずれか1つに記載の情報処理装置。
(12)
仮想機械を動作させる機能と、外部装置から取得される書き込みコマンドに基づいてデータの書き込みを行う機能と、を有する処理部を備え、
前記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む前記仮想機械を動作させる条件を示す条件情報が対応付けられ、
外部装置から前記書き込みコマンドが取得された場合、
前記処理部は、
前記書き込みコマンドのパラメータが示す領域が前記条件情報が示す領域である場合に、前記仮想機械を動作させ、
前記書き込みコマンドに基づいて行われる全てのデータの書き込みを正常に行うことができるかを判定し、
全てのデータの書き込みを正常に行うことができると判定されたときに、前記書き込みコマンドに基づくデータの書き込みを行い、
全てのデータの書き込みを正常に行うことができると判定されないときには、前記書き込みコマンドに基づくデータの書き込みを行わず、
前記書き込みコマンドに基づき前記仮想機械が動作した場合、前記書き込みコマンドに基づくデータの書き込みには、前記仮想機械プログラムにおいて実行されるデータの書き込みが含まれる、情報処理装置。
(13)
仮想機械に関する処理の実行を制御するステップを有し、
前記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む前記仮想機械を動作させる条件を示す条件情報と、前記仮想機械プログラムのコード、および前記条件情報に基づき生成される第1の電子署名とが、対応付けられ、
前記制御するステップでは、前記仮想機械プログラムに対応付けられている前記第1の電子署名の確認結果に基づいて、前記仮想機械に関する処理の実行が制御される、情報処理装置により実行される情報処理方法。
(14)
仮想機械を動作させるステップと、
外部装置から取得される書き込みコマンドに基づいてデータの書き込みを行うステップと、
を有し、
前記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む前記仮想機械を動作させる条件を示す条件情報が対応付けられ、
外部装置から前記書き込みコマンドが取得された場合、
前記仮想機械を動作させるステップでは、前記書き込みコマンドのパラメータが示す領域が前記条件情報が示す領域である場合に、前記仮想機械を動作させ、
前記書き込みを行うステップでは、
前記書き込みコマンドに基づいて行われる全てのデータの書き込みを正常に行うことができるかが判定され、
全てのデータの書き込みを正常に行うことができると判定されたときに、前記書き込みコマンドに基づくデータの書き込みが行われ、
全てのデータの書き込みを正常に行うことができると判定されないときには、前記書き込みコマンドに基づくデータの書き込みが行われず、
前記仮想機械を動作させるステップにより前記仮想機械が動作した場合、前記書き込みコマンドに基づくデータの書き込みには、前記仮想機械プログラムにおいて実行されるデータの書き込みが含まれる、情報処理装置により実行される情報処理方法。
(15)
仮想機械に関する処理の実行を制御する機能を、コンピュータに実現させ、
前記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む前記仮想機械を動作させる条件を示す条件情報と、前記仮想機械プログラムのコード、および前記条件情報に基づき生成される第1の電子署名とが、対応付けられ、
前記制御する機能は、前記仮想機械プログラムに対応付けられている前記第1の電子署名の確認結果に基づいて、前記仮想機械に関する処理の実行を制御する、プログラム。
(16)
仮想機械を動作させる機能、
外部装置から取得される書き込みコマンドに基づいてデータの書き込みを行う機能、
を、コンピュータに実現させ、
前記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む前記仮想機械を動作させる条件を示す条件情報が対応付けられ、
外部装置から前記書き込みコマンドが取得された場合、
前記仮想機械を動作させる機能は、前記書き込みコマンドのパラメータが示す領域が前記条件情報が示す領域である場合に、前記仮想機械を動作させ、
前記書き込みを行う機能は、
前記書き込みコマンドに基づいて行われる全てのデータの書き込みを正常に行うことができるかを判定し、
全てのデータの書き込みを正常に行うことができると判定されたときに、前記書き込みコマンドに基づくデータの書き込みを行い、
全てのデータの書き込みを正常に行うことができると判定されないときには、前記書き込みコマンドに基づくデータの書き込みを行わず、
前記仮想機械を動作させる機能により前記仮想機械が動作した場合、前記書き込みコマンドに基づくデータの書き込みには、前記仮想機械プログラムにおいて実行されるデータの書き込みが含まれる、プログラム。
100 情報処理装置
200 リーダ/ライタ
102 通信部
104 制御部
110 処理部
1000 情報処理システム

Claims (16)

  1. 仮想機械に関する処理の実行を制御する機能を有する処理部を備え、
    前記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む前記仮想機械を動作させる条件を示す条件情報と、前記仮想機械プログラムのコード、および前記条件情報に基づき生成される第1の電子署名とが、対応付けられ、
    前記処理部は、前記仮想機械プログラムに対応付けられている前記第1の電子署名の確認結果に基づいて、前記仮想機械に関する処理の実行を制御する、情報処理装置。
  2. 前記処理部は、
    前記第1の電子署名の正当性が確認された場合に、前記仮想機械に関する処理の実行を可能とし、
    前記第1の電子署名の正当性が確認されない場合には、所定のエラー処理を実行する、請求項1に記載の情報処理装置。
  3. 前記仮想機械に関する処理には、前記仮想機械をインストールする処理と、前記条件情報に基づき前記仮想機械を動作させる処理との一方または双方が含まれる、請求項1に記載の情報処理装置。
  4. 前記第1の電子署名は、前記条件情報に対応する鍵に基づき生成され、
    前記処理部は、前記条件情報が示す前記領域に対応付けられている鍵を用いて、前記第1の電子署名を確認する、請求項1に記載の情報処理装置。
  5. 前記処理部は、前記仮想機械のインストールが行われるとき、または、前記仮想機械のインストールが行われた後であって、前記仮想機械を動作させる前に、前記第1の電子署名を確認する、請求項1に記載の情報処理装置。
  6. 前記仮想機械プログラムに前記条件情報が複数対応付けられる場合、前記第1の電子署名は、前記仮想機械プログラムのコード、複数の前記条件情報、および複数の前記条件情報それぞれに対応する複数の鍵に基づき生成される縮退鍵に基づき生成される、請求項1に記載の情報処理装置。
  7. 前記仮想機械プログラムに前記条件情報が複数対応付けられる場合、前記仮想機械を動作させる仮想機械プログラムには、複数の前記条件情報それぞれに対応する複数の前記第1の電子署名に基づき生成される縮退電子署名が、対応付けられ、
    前記処理部は、前記仮想機械プログラムに対応付けられている前記縮退電子署名の確認結果に基づいて、前記仮想機械に関する処理の実行を制御する、請求項1に記載の情報処理装置。
  8. 前記処理部は、さらに、前記仮想機械に関する処理の実行を制御するための制御情報に基づいて、前記仮想機械に関する処理の実行を制御し、
    前記制御情報には、第2の電子署名が対応付けられ、
    前記処理部は、前記第2の電子署名の確認結果に基づいて、前記制御情報に基づく前記仮想機械に関する処理の実行の制御を行う、請求項1に記載の情報処理装置。
  9. 前記処理部は、前記制御情報による制御対象の前記仮想機械プログラムに対応付けられている前記条件情報が示す前記領域に対応付けられている鍵を用いて、前記第2の電子署名を確認する、請求項8に記載の情報処理装置。
  10. 前記処理部は、記録媒体の領域を削除するときに、削除対象の領域を示す前記条件情報が存在する場合には、前記削除対象の領域の削除を行わない、または、前記削除対象の領域を示す前記条件情報に対応付けられている前記仮想機械プログラムに関して所定の処理を行う、請求項1に記載の情報処理装置。
  11. 前記情報処理装置は、IC(Integrated Circuit)カードである、請求項1に記載の情報処理装置。
  12. 仮想機械を動作させる機能と、外部装置から取得される書き込みコマンドに基づいてデータの書き込みを行う機能と、を有する処理部を備え、
    前記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む前記仮想機械を動作させる条件を示す条件情報が対応付けられ、
    外部装置から前記書き込みコマンドが取得された場合、
    前記処理部は、
    前記書き込みコマンドのパラメータが示す領域が前記条件情報が示す領域である場合に、前記仮想機械を動作させ、
    前記書き込みコマンドに基づいて行われる全てのデータの書き込みを正常に行うことができるかを判定し、
    全てのデータの書き込みを正常に行うことができると判定されたときに、前記書き込みコマンドに基づくデータの書き込みを行い、
    全てのデータの書き込みを正常に行うことができると判定されないときには、前記書き込みコマンドに基づくデータの書き込みを行わず、
    前記書き込みコマンドに基づき前記仮想機械が動作した場合、前記書き込みコマンドに基づくデータの書き込みには、前記仮想機械プログラムにおいて実行されるデータの書き込みが含まれる、情報処理装置。
  13. 仮想機械に関する処理の実行を制御するステップを有し、
    前記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む前記仮想機械を動作させる条件を示す条件情報と、前記仮想機械プログラムのコード、および前記条件情報に基づき生成される第1の電子署名とが、対応付けられ、
    前記制御するステップでは、前記仮想機械プログラムに対応付けられている前記第1の電子署名の確認結果に基づいて、前記仮想機械に関する処理の実行が制御される、情報処理装置により実行される情報処理方法。
  14. 仮想機械を動作させるステップと、
    外部装置から取得される書き込みコマンドに基づいてデータの書き込みを行うステップと、
    を有し、
    前記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む前記仮想機械を動作させる条件を示す条件情報が対応付けられ、
    外部装置から前記書き込みコマンドが取得された場合、
    前記仮想機械を動作させるステップでは、前記書き込みコマンドのパラメータが示す領域が前記条件情報が示す領域である場合に、前記仮想機械を動作させ、
    前記書き込みを行うステップでは、
    前記書き込みコマンドに基づいて行われる全てのデータの書き込みを正常に行うことができるかが判定され、
    全てのデータの書き込みを正常に行うことができると判定されたときに、前記書き込みコマンドに基づくデータの書き込みが行われ、
    全てのデータの書き込みを正常に行うことができると判定されないときには、前記書き込みコマンドに基づくデータの書き込みが行われず、
    前記仮想機械を動作させるステップにより前記仮想機械が動作した場合、前記書き込みコマンドに基づくデータの書き込みには、前記仮想機械プログラムにおいて実行されるデータの書き込みが含まれる、情報処理装置により実行される情報処理方法。
  15. 仮想機械に関する処理の実行を制御する機能を、コンピュータに実現させ、
    前記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む前記仮想機械を動作させる条件を示す条件情報と、前記仮想機械プログラムのコード、および前記条件情報に基づき生成される第1の電子署名とが、対応付けられ、
    前記制御する機能は、前記仮想機械プログラムに対応付けられている前記第1の電子署名の確認結果に基づいて、前記仮想機械に関する処理の実行を制御する、プログラム。
  16. 仮想機械を動作させる機能、
    外部装置から取得される書き込みコマンドに基づいてデータの書き込みを行う機能、
    を、コンピュータに実現させ、
    前記仮想機械を動作させる仮想機械プログラムには、記録媒体の領域を示す情報を含む前記仮想機械を動作させる条件を示す条件情報が対応付けられ、
    外部装置から前記書き込みコマンドが取得された場合、
    前記仮想機械を動作させる機能は、前記書き込みコマンドのパラメータが示す領域が前記条件情報が示す領域である場合に、前記仮想機械を動作させ、
    前記書き込みを行う機能は、
    前記書き込みコマンドに基づいて行われる全てのデータの書き込みを正常に行うことができるかを判定し、
    全てのデータの書き込みを正常に行うことができると判定されたときに、前記書き込みコマンドに基づくデータの書き込みを行い、
    全てのデータの書き込みを正常に行うことができると判定されないときには、前記書き込みコマンドに基づくデータの書き込みを行わず、
    前記仮想機械を動作させる機能により前記仮想機械が動作した場合、前記書き込みコマンドに基づくデータの書き込みには、前記仮想機械プログラムにおいて実行されるデータの書き込みが含まれる、プログラム。
JP2019570332A 2018-02-07 2018-12-28 情報処理装置、情報処理方法、およびプログラム Active JP7200952B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018020431 2018-02-07
JP2018020431 2018-02-07
PCT/JP2018/048405 WO2019155792A1 (ja) 2018-02-07 2018-12-28 情報処理装置、情報処理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2019155792A1 true JPWO2019155792A1 (ja) 2021-02-12
JP7200952B2 JP7200952B2 (ja) 2023-01-10

Family

ID=67547914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019570332A Active JP7200952B2 (ja) 2018-02-07 2018-12-28 情報処理装置、情報処理方法、およびプログラム

Country Status (5)

Country Link
US (1) US20210049260A1 (ja)
EP (1) EP3751437A4 (ja)
JP (1) JP7200952B2 (ja)
CN (1) CN111684445B (ja)
WO (1) WO2019155792A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11611540B2 (en) * 2020-07-01 2023-03-21 Vmware, Inc. Protection of authentication data of a server cluster
CN112181539B (zh) * 2020-09-27 2023-12-05 深圳市元征科技股份有限公司 文件处理方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002014825A (ja) * 2000-06-30 2002-01-18 Fujitsu Ltd プログラムインストール方法、プログラムインストールシステム、プログラム実行装置及び記憶媒体
WO2005096121A1 (ja) * 2004-04-02 2005-10-13 Matsushita Electric Industrial Co., Ltd. 実行装置
JP2010176677A (ja) * 2009-02-02 2010-08-12 Samsung Electronics Co Ltd 電子装置と仮想マシン提供装置及びそれを利用した仮想マシンサービス利用方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095931B1 (en) * 2006-04-27 2012-01-10 Vmware, Inc. Controlling memory conditions in a virtual machine
JP5910297B2 (ja) 2012-01-17 2016-04-27 ソニー株式会社 情報処理装置、icチップ、情報処理方法、プログラム、及び情報処理システム
TW201335787A (zh) * 2012-02-23 2013-09-01 Hon Hai Prec Ind Co Ltd 虛擬機安全操作系統及方法
JP5945512B2 (ja) * 2013-02-13 2016-07-05 株式会社日立製作所 計算機システム、及び仮想計算機管理方法
US9727274B2 (en) * 2013-02-26 2017-08-08 Red Hat Israel, Ltd. Cloning live virtual machines
WO2015015473A1 (en) * 2013-08-02 2015-02-05 Ologn Technologies Ag A secure server on a system with virtual machines
US9158909B2 (en) * 2014-03-04 2015-10-13 Amazon Technologies, Inc. Authentication of virtual machine images using digital certificates
JP5943036B2 (ja) 2014-06-04 2016-06-29 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
US20160164880A1 (en) * 2014-12-03 2016-06-09 Bitdefender IPR Management Ltd. Systems And Methods Of Transaction Authorization Using Server-Triggered Switching To An Integrity-Attested Virtual Machine

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002014825A (ja) * 2000-06-30 2002-01-18 Fujitsu Ltd プログラムインストール方法、プログラムインストールシステム、プログラム実行装置及び記憶媒体
WO2005096121A1 (ja) * 2004-04-02 2005-10-13 Matsushita Electric Industrial Co., Ltd. 実行装置
JP2010176677A (ja) * 2009-02-02 2010-08-12 Samsung Electronics Co Ltd 電子装置と仮想マシン提供装置及びそれを利用した仮想マシンサービス利用方法

Also Published As

Publication number Publication date
CN111684445A (zh) 2020-09-18
WO2019155792A1 (ja) 2019-08-15
EP3751437A1 (en) 2020-12-16
JP7200952B2 (ja) 2023-01-10
US20210049260A1 (en) 2021-02-18
CN111684445B (zh) 2024-04-26
EP3751437A4 (en) 2021-06-09

Similar Documents

Publication Publication Date Title
US20060086785A1 (en) Portable electronic apparatus and method of updating application in portable electronic apparatus
JP6388765B2 (ja) 無効化モジュールを備えた電子アセンブリ
JP6923582B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US20100277279A1 (en) Rfid privacy protection method and apparatus
JP7200952B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP4993114B2 (ja) 携帯型ストレージデバイスの共有管理方法、および、携帯型ストレージデバイス
KR20220083713A (ko) 악성 emv 거래 차단을 위한 시스템, 방법 및 컴퓨터에서 액세스할 수 있는 매체
JP2015135610A (ja) 携帯可能電子装置、および電子回路
CN112422281B (zh) 一种更改安全模块中密钥的方法及系统
JP2012141754A (ja) Icチップ、icチップにおける処理方法、icチップ用処理プログラム、及び携帯端末
JP2007149078A (ja) 携帯可能電子装置、icカード、データ処理装置及びデータ処理システム
CN114302404A (zh) 近场通信方法、配置方法、nfc主机以及电子设备
JP2011060136A (ja) 携帯可能電子装置、および、携帯可能電子装置におけるデータ管理方法
JP6746244B2 (ja) 情報処理装置、情報処理方法、プログラム、および情報処理システム
EP2996368B1 (en) Mobile electronic device
KR101415698B1 (ko) 공인인증 시스템 및 방법
JP6398193B2 (ja) 可搬型電子媒体、及び入出力制御方法
JP6505893B2 (ja) 携帯可能電子装置
Moravec et al. Developing countermeasures against cloning of identity tokens in legacy systems
JP2009260688A (ja) ワイヤレス広域通信網におけるリモート端末装置のセキュリティシステムとその方法
JP6710942B2 (ja) Icカード、データ保護方法、セキュリティ関連プログラム、及び通信システム
KR101663652B1 (ko) 카드 판독 기능을 구비한 단말기의 카드 정보 독출 방법
CN112512034A (zh) 终端快速加载用户识别卡文件方法、装置、计算机设备
KR20100137354A (ko) 가상화 스마트 카드 시스템, 상기 가상화 스마트 카드 시스템 제공방법, 및 데이터 프로세싱 장치
KR20090092488A (ko) 동적 분할된 알에프아이디 메모리 접근 방법과 그알에프아이디 태그 및 이를 위한 알에프아이디 단말과기록매체

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221205

R151 Written notification of patent or utility model registration

Ref document number: 7200952

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151