CN102473220A - 信息处理装置、信息处理方法以及程序分发系统 - Google Patents

信息处理装置、信息处理方法以及程序分发系统 Download PDF

Info

Publication number
CN102473220A
CN102473220A CN2011800027808A CN201180002780A CN102473220A CN 102473220 A CN102473220 A CN 102473220A CN 2011800027808 A CN2011800027808 A CN 2011800027808A CN 201180002780 A CN201180002780 A CN 201180002780A CN 102473220 A CN102473220 A CN 102473220A
Authority
CN
China
Prior art keywords
mentioned
virtual machine
data
application
signal conditioning
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
CN2011800027808A
Other languages
English (en)
Other versions
CN102473220B (zh
Inventor
前田学
松岛秀树
芳贺智之
K·A·尼克尔森
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 Intellectual Property Management Co Ltd
Original Assignee
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN102473220A publication Critical patent/CN102473220A/zh
Application granted granted Critical
Publication of CN102473220B publication Critical patent/CN102473220B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种信息处理装置,能够防止由非法应用或非法设备驱动引起的数据的泄漏,并且能够进行虚拟机间的联合。该信息处理装置(110)具备:外部连接部(1309),与外部设备连接;以及应用间通信控制部(1307),从第一虚拟机(1002)取得数据,向第二虚拟机(1003)通知该数据,并且将表示向虚拟机(1003)通知了该数据的已通知信息通知给外部连接部(1309);外部连接部(1309)在从虚拟机接受到向外部设备连接的委托的情况下,基于已通知信息,判断该虚拟机是否为被通知到数据的第二虚拟机(1003),在判断为不是被通知到数据的第二虚拟机(1003)时,许可该虚拟机与外部设备之间的连接。

Description

信息处理装置、信息处理方法以及程序分发系统
技术领域
本发明涉及防止向数据的非法访问的信息处理装置、信息处理方法以及程序分发系统等。
背景技术
在以往的便携式电话中,在用户购买设备(便携式电话)之后,为了追加新的功能,能够下载应用软件(以下,称为“应用”)并利用。在这样的应用中,以往,对设备内的各种资源的访问受到限制。在此,设备内的资源例如是指GPS(Global Positioning System:全球定位系统)等的位置信息、键盘(dial)功能以及电话簿,书签以及图像数据等的其他应用生成的数据等。但是,近年来,为了开发多种多样的应用,出现了缓和访问限制、能够进行向位置信息、键盘功能以及电话簿等的数据的访问的设备。例如,在谷歌公司(Google Inc.)所提供的安卓(Android:注册商标)中,从作为应用分发网站的Android Market下载的应用能够访问电话簿、书签、GPS信息、或者网络功能等。
将来,为了使用户能够追加新的硬件,会出现能够安装设备驱动软件(以下,称为“设备驱动”)的设备。
此外,以往,只有指定的应用开发公司才开发并发布如上所述的应用。但是,近年来,还出现了普通用户也能够进行应用的开发以及发布的结构。在这样的结构中,为了使普通用户能够简单地开发应用,在个人计算机(以下,称为“PC”(Personal Computer))中一般利用的开发工具能够利用于应用的开发,或者能够对销售着的设备连接调试器。
另一方面,PC以及便携式电话等中保存的个人信息(姓名、住所、电话号码、邮件地址,信用卡号码等)或个人内容(照片、动画、邮件、位置信息)等的数据的泄漏成为问题。尤其是在PC中,由于从因特网等的开放式网络下载的非法的下载软件,保存在PC的存储装置中的个人信息或个人内容等的数据被读取,与用户的意图相反地经由网络被发送到设备的外部等的数据的泄漏成为问题。此外,非法的下载软件利用邮件等来使用户认为该下载软件本身是有益的软件而使其下载,或者利用在PC上动作的软件的脆弱性而使其下载。
尤其,设备驱动还能够访问应用在存储器上展开的数据。因此,在能够安装设备驱动的设备中,关于个人信息等的不想对其他应用公开的数据,也被设备驱动访问,因此泄漏的风险较高。
这样,在PC以及便携式电话中,下载的应用(以下,称为“DL应用”)以及下载的设备驱动(以下,称为“DL设备驱动”)能够访问许多的资源。此外,普通用户能够开发及发布应用,进而,将来还可能会开发及发布设备驱动。因此,持有恶意的攻击者能够开发及安装攻击用的应用(以下,称为“非法应用”)以及攻击用的设备驱动(以下,称为“非法设备驱动”)。由此,非法应用以及非法设备驱动能够访问设备内部的信息,信息被泄漏以及篡改的危险性增加。
此外,非法应用或非法设备驱动能动地动作以访问设备内部的信息,除此之外还利用与其他应用的联合功能,取得设备内部的信息,从而可以使信息泄漏。例如,谷歌公司(Google Inc.)所提供的安卓中,有叫作“Intent”的向其他应用委托数据的处理的功能。在该功能中,处理的委托源以想要委托的处理、希望处理的数据以及该数据的种类为变元,调出该功能。被委托的系统对由变元指定的数据的种类,选择能够进行同样由变量指定的处理的应用。此时,在能够选择的应用有多个的情况下,向用户提示应用的列表,使用户选择使用哪个应用。并且,系统启动所选择的应用,并对启动的应用委托数据的处理。此时,由持有恶意的攻击者开发的非法应用对系统宣布能够对所有的数据的种类进行所有的处理。于是,该非法应用能够取得利用该应用间联合的结构来交换的所有的数据。由此,存在非法应用取得在应用间交换的个人信息或个人内容等,并向设备外部泄漏的危险性。
以往,作为从DL应用以及DL设备驱动中保护便携式电话等中的电话功能那样的设备本来的功能的方法,有将执行各个软件的执行环境进行分离的方法(例如,参照非专利文献1)。在非专利文献1中,作为分离执行环境的方法,记载了利用具有通常模式和安全模式这样的多个模式的CPU来分离执行环境的方法、以及利用虚拟化技术来分离执行环境的方法。
图32是表示利用非专利文献1中记载的以往的虚拟化技术的执行环境分离方法的图。
在图32中,虚拟机30执行便携式电话等的通信事业者选定及开发的操作系统(以下,称为“OS”)以及应用。此外,虚拟机40执行用于提供由通信事业者以外的企业向职员提供的日程以及邮件的服务的应用等。进而,虚拟化软件20对虚拟机30和虚拟机40提供将硬件10虚拟化而得到的虚拟硬件的功能。此外,虚拟化软件20控制虚拟机30和虚拟机40的动作。
在非专利文献1中记载的执行环境分离方法中,如图32所示,能够将提供作为便携式电话的基本功能的通信功能的虚拟机30、以及提供面向职员的服务等的虚拟机40,包括OS在内进行分离。
由此,例如在虚拟机40具有用户能够自由地下载应用以及设备驱动的功能、且非法应用或非法设备驱动在虚拟机40上动作的情况下,该非法应用或非法设备驱动也不会对在虚拟机30上动作的通信事业者用应用群33以及通信事业者用OS32带来影响。此外,在利用与其他应用的联合功能在通信事业者用应用群33内部的应用之间进行数据的处理的情况下,非法应用或非法设备驱动也不能取得通信事业者用应用群33的数据。
现有技术文献
非专利文献
非专利文献1:Intel Corporation and NTT DoCoMo,Inc.著“Open andSecure Terminal Initiative(OSTI)Architecture Specification Revision 1.00”,2006年10月16日
发明概要
发明要解决的问题
因此,通过对例如便携式电话等的信息处理装置(设备)适用上述非专利文献1中记载的执行环境分离方法,能够防止该信息处理装置中的由非法应用以及非法设备驱动引起的数据的泄漏。
但是,在利用上述非专利文献1中记载的执行环境分离方法的信息处理装置中,由于在虚拟机30内动作的应用和在虚拟机40内动作的应用在不同的虚拟机上动作,因此有在虚拟机30内动作的应用和在虚拟机40内动作的应用不能联合进行动作的问题。
发明内容
因此,本发明用于解决上述以往的问题,目的在于提供一种能够防止由非法应用或非法设备驱动引起的数据的泄漏、且能够进行虚拟机间的联合的信息处理装置。
用于解决问题的手段
为了解决上述以往的问题,本发明的一形态的信息处理装置,搭载多个虚拟机,具备:外部连接部,与位于上述信息处理装置的外部的外部设备连接;以及通信控制部,从上述多个虚拟机中的第一虚拟机取得数据,向上述多个虚拟机中的第二虚拟机通知上述数据,并且将表示向上述第二虚拟机通知了上述数据的已通知信息通知给上述外部连接部;上述外部连接部在从上述多个虚拟机中的第三虚拟机接受到向上述外部设备连接的委托的情况下,基于上述已通知信息,判断上述第三虚拟机是否为被通知到上述数据的上述第二虚拟机,在判断为不是被通知到上述数据的第二虚拟机时,许可上述第三虚拟机与上述外部设备之间的连接。
由此,通过多个虚拟机,能够分离在这些虚拟机上执行的程序(应用或设备驱动)的执行环境,并且从第一虚拟机向第二虚拟机通知数据,因此能够在虚拟机间进行联合。即,能够实现作为在第一虚拟机上执行的程序的应用或设备驱动与作为在第二虚拟机上执行的程序的应用或设备驱动之间的数据的传递(应用联合)。进而,在本发明的一形态的信息处理装置中,在判断为第三虚拟机不是被通知到数据的第二虚拟机时,许可第三虚拟机与外部设备之间的连接。因此,即使在第三虚拟机上执行的程序为非法应用或非法设备驱动,也不会从其他虚拟机(在其他虚拟机上执行的程序)向该程序通知数据,因此即使第三虚拟机与外部设备通信,也能够防止该数据的泄漏。
也就是说,根据该结构,本发明的一形态的信息处理装置中,即使持有恶意的攻击者的攻击用的应用(非法应用或非法设备驱动)得到其他应用所持有的信息,也能够防止信息泄漏到信息处理装置外部。由此,用户在不能判断DL应用是否为非法应用的情况下,也不用担心信息泄漏,而能够利用该DL应用。此外,能够进行不同的虚拟机间的应用联合。
此外,上述外部连接部在判断为上述第三虚拟机是被通知到上述数据的上述第二虚拟机时,禁止上述第三虚拟机与上述外部设备之间的连接。
由此,能够防止第三虚拟机、即被通知到数据的第二虚拟机与外部设备进行通信。结果,即使在第三虚拟机上执行的程序为非法应用或非法设备驱动,也能够防止由该程序向外部泄漏该数据。
此外,上述外部连接部,在判断为上述第三虚拟机是被通知到上述数据的上述第二虚拟机时,进一步确定向上述第三虚拟机通知的数据的种类,并判断上述种类是否为连接禁止对象数据的种类;在判断为上述种类是连接禁止对象数据的种类时,禁止上述第三虚拟机与上述外部设备之间的连接。
由此,在被通知到的数据为连接禁止对象数据的种类的情况下,禁止被通知到该数据的第二虚拟机(第三虚拟机)与外部设备之间的连接。因此,在向该第三虚拟机通知的数据的种类不是连接禁止对象数据的情况下,许可第三虚拟机与外部设备之间的连接,能够使在第三虚拟机上执行的程序进行向外部设备的通信。结果,即使在第三虚拟机上执行的程序为非法应用或非法设备驱动,也能够允许该程序与外部设备之间的通信,同时能够防止连接禁止对象数据的泄漏。
此外,上述通信控制部将上述已通知信息通知给上述外部连接部,上述已通知信息包含分配给被通知到上述数据的上述第二虚拟机的标识符和上述数据的种类;上述外部连接部,进一步,保持通知数据种类管理表,该通知数据种类管理表用于按照上述多个虚拟机中的每个已被通知到数据的虚拟机即已通知虚拟机,将被分配给该已通知虚拟机的标识符与向该已通知虚拟机通知的数据的种类建立关联来表示;更新上述通知数据种类管理表,以将从上述通信控制部通知的上述已通知信息中包含的标识符和种类建立关联来表示。
由此,被通知到数据的虚拟机的标识符和该数据的种类被登记到通知数据种类管理表并加以管理,因此只要参照该通知数据种类管理表,就能够简单地确定对委托了向外部设备连接的第三虚拟机通知的数据的种类。
此外,上述外部连接部,取得被分配给上述第三虚拟机的标识符;参照上述通知数据种类管理表,确定与取得的上述标识符建立关联而表示于上述通知数据种类管理表中的种类,由此确定向上述第三虚拟机通知的数据的种类。
由此,能够简单地确定对委托了向外部设备连接的第三虚拟机通知的数据的种类。
此外,上述通信控制部具备:判断部,判断从上述第一虚拟机取得的上述数据的种类是否为通知禁止对象数据的种类;以及控制部,仅在由上述判断部判断为从上述第一虚拟机取得的上述数据的种类不是通知禁止对象数据的种类的情况下,向上述第二虚拟机通知上述数据,并且向上述外部连接部通知上述已通知信息。
由此,只有与通知禁止对象数据的种类不同的种类的数据从第一虚拟机通知到第二虚拟机,因此能够在虚拟机间联合,并且能够防止通知禁止对象数据的通知,能够适当控制虚拟机间的联合。
此外,上述控制部在由上述判断部判断为从上述第一虚拟机取得的上述数据的种类为通知禁止对象数据的种类的情况下,禁止向上述第二虚拟机通知上述数据、以及向上述外部连接部通知上述已通知信息。
由此,例如在第二虚拟机上执行的程序为非法应用或非法设备驱动的情况下,能够防止由该程序利用通知禁止对象数据,能够使信息处理的健全性更加完善。
此外,上述信息处理装置还具备种类管理部,该种类管理部根据在上述第二虚拟机上执行的程序所使用的功能,设定上述通知禁止对象数据的种类;上述判断部判断从上述第一虚拟机取得的上述数据的种类是否为由上述种类管理部设定的通知禁止对象数据的种类。
由此,根据在作为数据的通知目的地的虚拟机上执行的程序所使用的功能,来设定通知禁止对象数据的种类,因此能够更加适当地控制虚拟机间的联合。
此外,上述种类管理部进一步,保持许可种类管理表,该许可种类管理表按照每个功能,将该功能和禁止种类建立关联来表示;取得在上述第二虚拟机上执行的程序所使用的功能;通过参照上述许可种类管理表,确定与取得的上述功能建立关联而表示于上述许可种类管理表中的禁止种类,并将确定的上述禁止种类设定为上述通知禁止对象数据的种类。
由此,通过参照将功能和禁止种类建立关联来表示的许可种类管理表,来设定通知禁止对象数据的种类,因此能够简单地设定与在第二虚拟机上执行的程序所使用的功能相应的通知禁止对象数据的种类。
此外,上述信息处理装置还具备功能管理部,该功能管理部保持功能管理表,该功能管理表按照上述多个虚拟机所包含的每个虚拟机,将在该虚拟机上执行的程序所使用的功能和被分配给该虚拟机的标识符建立关联来表示;上述功能管理部通过参照上述功能管理表,确定与被分配给上述第二虚拟机的标识符建立关联而表示于上述功能管理表中的功能,由此确定在上述第二虚拟机上执行的程序所使用的功能;上述种类管理部取得由上述功能管理部确定的上述功能。
由此,通过参照将虚拟机的标识符和在该虚拟机上执行的程序所使用的功能建立关联来表示的功能管理表,来确定在第二虚拟机上执行的程序所使用的功能,因此能够简单地确定该功能。
此外,上述通信控制部,在将从上述第一虚拟机取得的上述数据通知给上述第二虚拟机时,进一步向母虚拟机委托是否可以通知上述数据的判断,上述母虚拟机是上述多个虚拟机中的、委托了上述第二虚拟机的生成的虚拟机;仅在由上述母虚拟机判断为可以通知上述数据的情况下,向第二虚拟机通知上述数据,并且向上述外部连接部通知上述已通知信息。
由此,向母虚拟机委托是否可以向第二虚拟机通知数据的判断,因此能够进行与该母虚拟机(在该母虚拟机上执行的程序)相应的适当的判断。
此外,上述信息处理装置还具备母子关系管理部,该母子关系管理部保持母子关系管理表,该母子关系管理表按照上述多个虚拟机所包含的每个虚拟机,将被分配给该虚拟机的子标识符、和被分配给委托了该虚拟机的生成的虚拟机的母标识符建立关联来表示;上述母子关系管理部,通过参照上述母子关系管理表,确定与如下子标识符建立关联而表示于上述母子关系管理表中的母标识符,该子标识符与被分配给上述第二虚拟机的标识符相同;上述通信控制部判断为被分配了由上述母子关系管理部确定的母标识符的虚拟机为上述母虚拟机,并向上述母虚拟机委托判断。
由此,通过参照将子标识符和母标识符建立关联来表示的母子关系管理表,能够简单地发现委托了第二虚拟机的生成的母虚拟机。
另外,本发明不仅能够实现为这种信息处理装置,也可以实现为以信息处理装置中包含的特征性单元为步骤的信息处理方法,或者使计算机执行这种特征性步骤的程序。并且,这种程序当然能够经由CD-ROM等的记录介质以及因特网等的传送介质来流通。
进而,本发明能够实现为包括这种信息处理装置的功能的一部分或全部的半导体集成电路(LSI),或者包括这种信息处理装置的程序分发系统(应用分发系统)。
发明效果
本发明的信息处理装置能够防止由非法应用或非法设备驱动引起的数据的泄漏,并且能够在虚拟机间联合。
附图说明
图1是本发明实施方式1的应用分发系统的整体结构图。
图2是本发明实施方式1的设备的软件结构图。
图3是本发明实施方式1的通常的软件执行环境的结构图。
图4是本发明实施方式1的设备的硬件结构图。
图5是本发明实施方式1的应用分发服务器的结构图。
图6是本发明实施方式1的开发环境的结构图。
图7是本发明实施方式1的包生成部的结构图。
图8是本发明实施方式1的下载应用包的结构图。
图9是本发明实施方式1的设定文件的结构图。
图10是本发明实施方式1的安全引导的流程图。
图11是本发明实施方式1的虚拟机启动的流程图。
图12是本发明实施方式1的虚拟化软件的结构图。
图13是本发明实施方式1的应用执行专用VM的结构图。
图14是表示本发明实施方式1的虚拟机管理表的图。
图15是表示本发明实施方式1的应用功能管理表的图。
图16A是表示本发明实施方式1的许可种类管理表的图。
图16B是表示本发明实施方式1的许可种类管理表的图。
图17A是表示本发明实施方式1的通知数据种类管理表的图。
图17B是表示本发明实施方式1的连接许可/不许可管理表的图。
图17C是表示本发明实施方式1的限制种类列表的图。
图18是本发明实施方式1的应用间通信控制部的结构图。
图19是本发明实施方式1的应用间通信数据的构造图。
图20是本发明实施方式1的通用OS的结构图。
图21A是本发明实施方式1的应用加载部的结构图。
图21B是本发明实施方式1的其他应用加载部的结构图。
图22是本发明实施方式1的应用VM生成处理的流程图。
图23是本发明实施方式1的应用间通信处理的流程图。
图24是本发明实施方式1的设备外部连接处理的流程图。
图25是本发明实施方式1的应用执行专用VM生成装置的结构图。
图26A是本发明实施方式2的虚拟化软件的结构图。
图26B是本发明实施方式2的虚拟化软件的结构图。
图27是本发明实施方式3的虚拟化软件的结构图。
图28是表示本发明实施方式3的母子关系管理表的图。
图29是本发明实施方式3的通用OS的结构图。
图30是本发明实施方式3的应用VM生成处理的流程图。
图31是表示本发明的信息处理装置的结构的框图。
图32是以往的利用虚拟化技术分离了执行环境的便携式电话的结构图。
具体实施方式
以下,参照附图说明本发明实施方式。
(实施方式1)
本发明实施方式1的信息处理装置在执行DL应用以及DL设备驱动时,生成该DL应用或DL设备驱动专用的虚拟机。由此,即使下载的程序为非法应用或非法设备驱动,也由于使该程序在专用的虚拟机中动作,因此该程序不能访问其他程序所具有的信息。这样,本发明实施方式1的信息处理装置能够防止非法应用或非法设备驱动访问其他应用所具有的信息。
<应用分发系统100的结构>
图1是本发明实施方式1的应用分发系统100的结构图。
图1所示的应用分发系统(程序分发系统)100包括设备110、应用分发服务器120、开发装置130以及设备111。
设备110例如是搭载了网络通信功能的便携式电话。该设备110经由网络与应用分发服务器120连接,从应用分发服务器120下载应用。此外,下载了应用的设备110通过安装应用,对该设备110追加新的功能。也就是说,本实施方式的设备110(信息处理装置)具备取得从应用分发服务器120分发的应用(程序)的取得部。
应用分发服务器120经由网络与设备110以及开发装置130连接。该应用分发服务器120进行开发装置130上载的应用的管理、以及向设备110的应用的下载处理。
开发装置130是经由网络与应用分发服务器120连接、且进行在设备110上动作的应用的开发的装置。此外,开发装置130通过Universal SerialBus(以下,称为“USB”)规格等的接口与设备111连接。开发者在开发装置130上开发应用,并在设备111上实施是否进行按照预想的动作的测试。当通过测试发现在开发出的应用中有不良的情况下,开发者利用开发装置130进行调试,消除所发现的不良。此后,将开发的应用上载到应用分发服务器120,使得设备110中能够使用应用。另外,设备110和设备111是具有相同功能的设备,仅在由普通用户使用(设备110)还是由开发者使用(设备111)这一点上不同。
此外,设备110及111相当于本发明的信息处理装置。
<设备110及111的软件结构>
图2是本发明实施方式1的设备110及111的软件结构图。
图2所示的设备110及111包括通常的软件执行环境(以下,称为“通常环境”)1000、以及安全的软件执行环境(以下,称为“保护环境”)1100。设备110及111切换通常环境1000和保护环境1100来执行软件(通常环境1000或保护环境1100)。
保护环境1100的软件包括安全OS1101和安全引导部1102。这里,“安全OS”是“安全操作系统”。
安全OS1101对保护环境1100的软件进行管理。
安全引导部1102在设备110或111的电源接通时进行安全引导。关于安全引导的处理,利用流程图在后面进行说明。
另外,关于通常环境1000和保护环境1100的切换方法,例如,能够使用专利文献(日本特开2005-011336号公报)中记载的方式。
<通常环境1000的软件结构>
图3是本发明实施方式1的通常环境1000的软件结构图。
图3所示的通常环境1000的软件包括虚拟化软件1001、虚拟机1002、1003、1004以及1005。
此外,虚拟机1002包括虚拟硬件1010、通用OS1011、下载控制应用1012、应用A1013以及应用B1014。此外,虚拟机1003包括虚拟硬件1020、应用VMOSX1021以及DL应用X1022。此外,虚拟机1004包括虚拟硬件1030、应用VMOSY1031以及DL应用Y1032。此外,虚拟机1005包括虚拟硬件1040、RTOS1041以及通话软件1042。这里,“通用OS”是“通用操作系统”,“应用VMOS”是“应用VM操作系统”,“DL应用”是“下载应用”,“RTOS”是“实时操作系统”。此外,“VM”是“虚拟机(VirtualMachine)”。
虚拟化软件1001具有:虚拟机控制功能,对在该虚拟化软件1001上动作的虚拟机1002~1005进行控制;资源管理功能,对该虚拟机1002~1005分配存储器以及CPU等的硬件资源并进行管理;设备访问功能,按照来自虚拟机1002~1005的请求,访问设备;以及调度功能,对虚拟机1002~1005进行调度。
虚拟机1002、1003、1004及1005包括虚拟硬件、OS以及应用,分别由虚拟化软件1001独立执行。此外,虚拟机1002、1003、1004及1005分别独立,在这些虚拟机之间不会直接进行数据的传递、或指示的交换。换言之,这些虚拟机之间的数据的传递、或指示的交换总是通过虚拟化软件1001来进行。
虚拟硬件1010、1020、1030及1040对各个虚拟机虚拟地提供硬件的功能。此外,虚拟硬件1010、1020、1030及1040还包括IPL(Initial ProgramLoader:初始程序装入器)以及BIOS(Basic Input/Output System:基本输入输出系统)。另外,虚拟硬件1010、1020、1030及1040根据虚拟化软件1001的结构,有时集成到虚拟化软件1001或各虚拟机的OS中。
通用OS1011将应用(应用A1013及应用B1014)加载到存储器上来执行,或者,从存储器上删除(卸载)应用(应用A1013或应用B1014)。
进而,通用OS1011向虚拟化软件1001委托DL应用(DL应用X1022及DL应用Y1032)的执行。
此外,通用OS1011对下载控制应用1012、应用A1013及应用B1014提供网络通信功能。
下载控制应用1012与经由因特网连接在设备110上的应用分发服务器120进行通信,并进行向设备110的应用的下载处理和向设备110的安装处理。
应用A1013及应用B1014具有地址管理功能、Web浏览功能以及电子邮件功能等的功能,对用户提供这些功能。
在本发明实施方式1中,DL应用由在通用OS1011上动作的下载控制应用1012从应用分发服务器120下载,保存到设备110内。然后,在从通用OS1011向虚拟化软件1001有DL应用的执行委托时,虚拟化软件1001设定为各个DL应用在个别的虚拟机上动作。由此,在虚拟机上执行DL应用。
另外,在本发明实施方式1中,说明从应用分发服务器120下载并执行DL应用X1022和DL应用Y1032的情况,但本发明不限于此。此外,虚拟机的数量也不限于4个。也就是说,若从通用OS1011向虚拟化软件1001有DL应用的执行委托,则也可以生成4个以上的虚拟机,也可以在从RTOS1041向虚拟化软件1001有DL应用的执行委托时,生成虚拟机。
应用VMOSX1021及应用VMOSY1031是在使DL应用动作的虚拟机上动作的OS。应用VMOSX1021具有DL应用X1022进行动作所需要的功能。此外,应用VMOSY1031具有DL应用Y1032进行动作所需要的功能。另外,应用VMOSX1021及应用VMOSY1031的细节将在后面叙述。
DL应用X1022及DL应用Y1032是从应用分发服务器120下载的应用。该DL应用X1022及DL应用Y1032与应用A1013及应用B1014同样,对用户提供各种功能。
RTOS1041是用于使提供设备的基本功能软件进行动作的OS。
通话软件1042向用户提供作为设备110及111的基本功能的通话功能。
另外,由虚拟化软件1001设定为各个DL应用在个别的虚拟机上动作,但本发明不限于此。例如,也可以设定为未从应用分发服务器120下载的应用(应用A1013及应用B1014)在个别的虚拟机上动作,也可以是一部分DL应用在通用OS1011上动作。
另外,应用VMOSX1021和应用VMOSY1031既可以具有分别不同的功能,也可以具有相同的功能。此外,应用VMOSX1021及应用VMOSY1031也可以具有与通用OS1011相同的功能。
<设备110及111的硬件结构>
图4是本发明实施方式1的设备110及111的硬件结构图。
图2及图3的各结构要素与在图4所示的内部保护存储器1204和存储器1220中保存的各结构要素对应。通过由用于实现这些各结构要素的软件在CPU1201上执行,来实现各功能。
图4所示的设备110及111包括系统LSI1200、非易失性存储装置1240以及存储器1220。系统LSI1200经由外部总线与非易失性存储装置1240及存储器1220连接。
系统LSI1200包括CPU1201、IPL1202、执行环境切换部1203以及内部保护存储器1204。另外,系统LSI1200的细节将在后面叙述。
存储器1220保存虚拟化软件1001、通用OS1011、下载控制应用1012、应用A1013、应用B1014、应用VMOSX1021、DL应用X1022、应用VMOSY1031、DL应用Y1032、RTOS1041以及通话软件1042。这些示出将图3的各结构要素加载到存储器1220中的状况。
非易失性存储装置1240保存应用执行专用VM1241、DL应用X1242以及DL应用Y1243。
此外,虽然未图示,但非易失性存储装置1240保存存储器1220以及内部保护存储器1204中保存的软件。进而,非易失性存储装置1240也可以保存应用A1013、应用B1014、DL应用X1242以及DL应用Y1243以外的应用。
内部保护存储器1204中保存的软件以利用预定的密钥被加密的状态下保存在非易失性存储装置1240中。这些软件在设备110或111的工厂制造时保存在非易失性存储装置1240中。此外,这些软件在系统启动时或应用的启动请求时,从非易失性存储装置1240向存储器1220及内部保护存储器1204展开。
另外,将保存在内部保护存储器1204中的软件进行加密的密钥既可以在所有的设备上使用相同的密钥,也可以按每个系统LSI1200使用单独的密钥,也可以按每个软件使用单独的密钥。此外,对将加密后的软件进行解密的密钥而言,既可以在系统LSI1200内部具备密钥保存部(未图示)而保存在其中,也可以在利用系统LSI1200内部中保存的密钥被加密的状态下保存在非易失性存储装置1240中。
设备110及111还具备图4中未图示的输入输出部等,但由于这些不是本发明的本质,因此省略说明。此外,系统LSI1200还具备图4中未图示的周边电路等,但由于这些不是本发明的本质,因此省略说明。
<系统LSI1200的结构>
以下,对本发明实施方式1的系统LSI1200的各结构要素的细节进行说明。
CPU1201通过执行保存在存储器1220和内部保护存储器1204中的软件等所包含的命令代码,来控制设备110或111整体的动作。此外,CPU1201作为动作模式而具有特权模式和非特权模式这两种模式。通用OS1011在特权模式下动作,下载控制应用1012、应用A1013以及应用B1014在非特权模式下动作。
IPL1202是在设备110或111的电源接通时最先启动的软件。该IPL1202在设备110或111的电源接通时,启动在内部保护存储器1204中展开的安全OS1101、以及在存储器1220中展开的虚拟化软件1001。该IPL1202保存于在系统LSI1200内设置的掩膜ROM中。
执行环境切换部1203实现将系统LSI1200的通常环境1000和保护环境1100进行切换的功能。执行环境切换部1203进行访问控制,以使得仅在系统LSI1200的执行环境为保护环境时,能够从CPU1201等访问内部保护存储器1204。
内部保护存储器1204保存安全OS1101和安全引导部1102。
另外,系统LSI1200还可以包括非易失性保护存储器(未图示)。该非易失性保护存储器由执行环境切换部1203进行访问控制,以使得仅在系统LSI1200的执行环境为保护环境时,能够从CPU1201等访问非易失性保护存储器。另外,非易失性保护存储器也可以保存内部保护存储器1204中保存的软件、或将加密后的软件进行解密的密钥。
<应用分发服务器120的结构>
图5是本发明实施方式1的应用分发服务器120的结构图。
图5所示的应用分发服务器120包括应用保持部2000、应用接收处理部2001以及应用发送处理部2002。
应用保持部2000保存应用分发服务器120管理的应用。
应用接收处理部2001与经由网络连接的开发装置130进行通信,接收开发装置130上载的应用。此外,应用接收处理部2001将接收到的应用发送给应用保持部2000,并向应用保持部2000委托所发送的应用的保持以及管理。
应用发送处理部2002与经由网络连接的设备110进行通信。该应用发送处理部2002从应用保持部2000取得设备110所请求的应用,将取得的应用发送给设备110。此外,应用发送处理部2002生成应用保持部2000保持着的应用的列表,将生成的列表发送给设备110。
<开发装置130的结构>
图6是本发明实施方式1的开发装置130的结构图。
图6所示的开发装置130包括包生成部3000、设定文件生成部3001、密钥对保持部3002、密钥对生成部3003、调试(debug)处理部3004以及上载处理部3005。
包生成部3000通过编译开发者制作的源代码,来生成应用。并且,包生成部3000生成对生成的应用附加了应用签名(Signature)、设定文件以及公开密钥证书(Certificate)的包文件(下载包)。应用签名的方式中,例如能够利用使用RSA加密方式的签名方式。另外,细节将在后面叙述。
另外,关于应用签名(数字签名)的方式,不限于RSA加密方式,也可以使用其他签名方式。例如,作为其他签名方式,在非专利文献2(冈本龙明,山本博资,“现代加密”,产业图书(1997年))的171页至188页中详细说明。此外,关于公开密钥证书,在非专利文献4(ITU-TRecommendation X.509(08/2005):Information Technology-Open SystemsInterconnection-The Directory:Authentication Framework,2005)中详细说明。
设定文件生成部3001生成要对应用附加的设定文件。设定文件中记载有表示该应用使用设备的哪个资源的信息、与该应用的开发者有关的信息、以及表示该应用对其他应用提供怎样的服务的信息等的各种信息。设定文件生成部3001根据应用开发者设定的值,生成这些信息。
密钥对保持部3002保持用于生成及验证对包附加的应用签名的密钥(公开密钥加密方式中的秘密密钥与公开密钥的密钥对)。例如,密钥对保持部3002以在上述的非专利文献4(ITU-T Recommendation X.509)中说明的公开密钥证书的格式保持该公开密钥。
密钥对生成部3003生成公开密钥加密方式中的秘密密钥和公开密钥的密钥对,并将生成的密钥对保持在密钥对保持部3002中。
另外,关于公开密钥加密方式,在上述的非专利文献2的107页至130页中详细说明。
调试处理部3004与通过USB等连接在开发装置130上的设备111进行通信,进行用于调试开发者制作的应用的处理。用于调试的处理是指使用生成的包来进行的应用的安装、安装的应用的执行、断点的设定、以及日志(log)输出的取得等的处理。
上载处理部3005与通过网络连接在开发装置130上的应用分发服务器120进行通信,并进行将包生成部3000生成的包上载到应用分发服务器120的处理。
<包生成部3000的结构>
图7是本发明实施方式1的包生成部3000的结构图。
图7所示的包生成部3000包括编译器(compiler)3100、连接器(linker)3101以及包生成工具3102。
编译器3100通过编译被输入的源代码3110,来生成对象文件。
连接器3101通过连接由编译器3100生成的对象文件和库(library),生成设备110及111能够执行的文件(执行文件)。
包生成工具3102利用连接器3101生成的执行文件、设定文件生成部3001生成的设定文件3132、密钥对保持部3002保持的秘密密钥3130以及公开密钥证书3131,生成下载包3120。
<下载包3120的结构>
图8是本发明实施方式1的下载包3120的结构图。
在图8中,下载包3120包括应用3200、设备驱动3201、设定文件3202、应用签名列表3203以及公开密钥证书3204。
应用3200及设备驱动3201是由编译器3100及连接器3101根据开发者作成的源代码3110来生成的执行文件。
设定文件3202与向包生成工具3102输入的设定文件3132相同。
应用签名列表3203是排列了应用3200、设备驱动3201以及设定文件3202各自的签名而成的列表。包生成工具3102在生成下载包3120时,根据被输入的应用3200、设备驱动3201以及设定文件3202,分别生成签名,并生成应用签名列表3203。此外,应用签名列表3203中的签名的生成中使用秘密密钥3130。
公开密钥证书3204与向包生成工具3102输入的公开密钥证书3131相同。
另外,下载包3120将应用3200、设备驱动3201、设定文件3202、应用签名列表3203以及公开密钥证书3204分别作为文件而各包含一个,但本发明不限于此。例如,各文件既可以是一个,也可以是多个。此外,也可以是这些文件的一部分包含于下载包3120中。此外,这些文件既可以作为下载包3120而下载为一个文件,也可以是各个文件分别被下载,也可以分配到多个文件来被下载。
另外,应用签名列表3203也可以包含对排列了应用3200、设备驱动3201以及设定文件3202各自的签名而成的列表整体的签名。此外,下载包3120也可以包含应用签名列表3203的签名。
<设定文件3132、3202>
图9是本发明实施方式1的设定文件的结构图。
在图9中,设定文件3132或3202包括使用的功能列表3300以及可接受通知列表3301。
使用的功能列表3300是登记了应用3200所使用的功能的列表。作为功能,例如有:用于连接到因特网的“网络连接”功能、对电话簿数据进行读写的“电话簿访问”功能、或进行LCD的背灯的开/关或者扬声器音量的控制等的“硬件控制”功能等。
可接受通知列表3301是登记了在与其他应用的联合功能中,应用3200能够接受的数据的种类的列表。作为数据种类,例如有“电话簿”、“照片”、“邮件”、或“位置信息”等。
<安全引导处理>
设备110及111在设备启动时验证在虚拟化软件1001及保护环境1100下动作的软件是否被篡改。
以下,利用图10的流程图说明设备110及111被接通电源、并虚拟化软件1001启动为止的方法(安全引导处理)。
图10是表示安全引导处理的流程图。
设备110或111若电源被接通,则启动位于系统LSI1200内部的IPL1202(S1000)。
IPL1202首先进行设备110或111的硬件的初始化处理(S1001)。在该初始化处理中,进行存储器1220的动作检查、执行环境切换部1203的初始化、以及周边电路(未图示)的初始化等的处理。然后,启动安全OS1101(S1002)。
安全OS1101通过进行保护环境1100的初始化(安全的软件执行环境的构筑),设为应用在保护环境1100下能够动作的状态(S1003)。然后,安全OS1101加载安全引导部1102(S1004),启动安全引导部1102(S1005)。
这里,安全引导部1102以被加密的状态保存在非易失性存储装置1240中。因此,执行环境切换部1203利用系统LSI1200所固有的密钥将加密后的安全引导部1102进行解密,将解密后的安全引导部1102加载到内部保护存储器1204。
安全引导部1102进行安全OS1101和安全引导部1102的验证(1006)。作为验证方法,安全引导部1102生成软件的哈希值,通过将生成的哈希值与预先计算的参照哈希值进行比较,来验证安全OS1101以及安全引导部1102是否被篡改。此外,参照哈希值在出厂前被计算,并嵌入到安全引导部1102中。此外,安全引导部1102在被嵌入了参照哈希值的状态下被加密,保存在非易失性存储装置1240中。
另外,这里,在软件的验证方法中利用了哈希值,但本发明不限于此,也可以是代替哈希值而使用签名的方法。此时,安全引导部1102也可以在被嵌入了签名的验证中使用的公开密钥的状态下被加密,保存在非易失性存储装置1240中。该公开密钥也可以与安全引导部1102分立地保存在非易失性存储装置1240中。此外,安全引导部1102也可以从设备外部的别的装置取得公开密钥。
安全引导部1102在步骤S1006中验证安全OS1101和安全引导部1102的结果,判断为安全OS1101和安全引导部1102未被篡改的情况下,在步骤S1007判断为“没问题(OK)”,转移到步骤S1008。此外,安全引导部1102在步骤S1006中验证安全OS1101和安全引导部1102的结果,判断为安全OS1101和安全引导部1102中的任何一方被篡改的情况下,在步骤S1007中判断为“不行(NG)”,前进到步骤S1012。
安全引导部1102在步骤S1007中判断为“没问题”的情况下,进行虚拟化软件1001的验证(S1008)。例如,安全引导部1102使用与步骤S1006相同的验证方法。
安全引导部1102在步骤S1008中验证虚拟化软件1001的结果,判断为虚拟化软件1001未被篡改的情况下,在步骤S1009中判断为“没问题(OK)”,结束处理,并将处理返回到安全OS1101。另一方面,安全引导部1102在步骤S1008中进行验证的结果,判断为虚拟化软件1001被篡改的情况下,在步骤S1009中判断为“不行(NG)”,转移到步骤S1012。
安全引导部1102在步骤S1007或步骤S1009中判断为“不行”的情况下,处理动作的主体从安全引导部1102转移到安全OS1101(S1010、S1011),安全OS1101设定安全引导失败标志(S1012)。安全引导失败标志是在内部保护存储器1204上的指定区域中保存的数据(未图示)。安全OS1101以及在安全OS1101上动作的应用通过检查安全引导失败标志,来掌握设备110或111的状态,决定是否动作。
安全引导部1102在步骤S1009的处理结束后,将处理返回到安全OS1101(S1013)。
若处理从安全引导部1102返回,则IPL1202将处理返回到安全OS1101(S1014)。
IPL1202将保存在非易失性存储装置1240中的虚拟化软件1001加载到存储器1220(S1015),执行(启动)虚拟化软件1001(S1016)。
另外,作为安全引导处理,也可以使用由TCG(Trusted ComputingGroup:可信计算组)的MPWG(Mobile Phone Work Group:移动电话工作组)规定的安全引导。
此外,这里,设为了将保护模式软件的验证(S1006)和虚拟化软件的验证(S1008)连续进行处理,但本发明不限于此。例如,安全引导部1102也可以在进行保护模式软件的验证(S1006)之后,将处理向IPL1202返回一次,接着,IPL1202经由安全OS1101对安全引导部1102委托虚拟化软件的验证(S1008)。
此外,设为了安全引导处理是执行虚拟化软件1001为止,但本发明不限于此,还可以将虚拟机内的IPL、OS以及应用作为安全引导处理的对象。此外,在将IPL、OS以及应用作为安全引导的对象的情况下,各自验证接着要启动的软件是否被篡改之后,启动(执行)接着要启动的软件。
<虚拟机的启动处理>
虚拟化软件1001在设备启动时,启动规定的虚拟机。进而,根据来自执行中的虚拟机的请求,进行生成新的虚拟机的处理。
以下,利用图11的流程图说明在虚拟化软件1001启动后启动各虚拟机的处理。
图11是表示虚拟机的启动的流程图。
虚拟化软件1001在安全引导处理的最后由IPL1202启动(S1020),执行初始化处理(S1021)。在初始化处理后,虚拟化软件1001为了执行虚拟机1002而确保存储器等的硬件资源之后,启动虚拟机1002(S1022)。
虚拟机1002若被启动,则首先进行初始化处理(S1023)。作为初始化处理,虚拟机1002执行虚拟硬件1010内的IPL1202。此外,虚拟机1002将通用OS1011加载到存储器,进行执行通用OS1011的处理。然后,在通用OS1011的启动处理中或处理后,发生从虚拟机1002向虚拟化软件1001的处理委托、或者硬件中断,由此虚拟机1002的处理被中断,处理返回到虚拟化软件1001(S1024)。
接着,虚拟化软件1001为了执行虚拟机1005而确保存储器等的硬件资源,并启动虚拟机1005(S1025)。
虚拟机1005若被启动,则首先进行初始化处理(S1026)。作为初始化处理,虚拟机1005执行虚拟硬件1040内的IPL1202。此外,虚拟机1005进行将RTOS1041加载到存储器并执行RTOS1041的处理。然后,在RTOS1041的启动处理中或处理后,发生从虚拟机1005向虚拟化软件1001的处理委托、或者硬件中断,由此虚拟机1005的处理被中断,处理返回到虚拟化软件1001(S1027)。
然后,虚拟化软件1001按照调度功能,调度虚拟机。
通过调度功能,虚拟机1002被执行(S1028)。此时,在从使用设备的用户有了应用启动的请求的情况下,虚拟机1002启动应用(S1029)。
在应用启动时,虚拟机1002判断使被请求了启动的应用在虚拟机1002上动作,还是在其他虚拟机上动作。具体而言,虚拟机1002判断被请求启动的应用是否为DL应用(S1030)。另外,DL应用不限于经由网络从其他设备下载的应用,也可以是从其他设备取得的应用。例如,DL应用也可以是在设备110出厂后经由能够对设备110装卸的记录介质取得的应用。此外,虚拟机1002也可以进行用户请求启动的应用是否为DL设备驱动的判断。
虚拟机1002在是DL应用时,判断为“是(OK)”,在不是DL应用时判断为“否(NG)”。例如,虚拟机1002在DL应用的判断中利用被请求启动的应用的文件名所附带的后缀。
虚拟机1002在步骤S1030中判断为“是”的情况下,向虚拟化软件1001委托用于执行被请求启动的应用的VM(应用VM)的生成(S1031)。
虚拟化软件1001生成用于执行DL应用的虚拟机1003(S1032),启动该虚拟机1003(S1033)。关于VM的生成处理的细节,在后面利用流程图来说明。
虚拟机1003若被启动,则进行初始化处理(S1034),执行被请求启动的应用(DL应用)(S1035)。此外,在DL应用执行中(S1035)发生从虚拟机1003向虚拟化软件1001的处理委托、或者硬件中断,从而虚拟机1003的处理被中断,处理返回到虚拟化软件1001。在该情况下,当通过虚拟化软件1001的调度功能而虚拟机1003再次被调度时,该虚拟机1003接着执行被中断的处理。若应用结束,则虚拟机1003向虚拟化软件1001通知虚拟机的结束(S1036)。
虚拟化软件1001接受来自虚拟机1003的结束通知,向虚拟机1002通知VM的结束(S1037)。
虚拟机1002接受VM的结束通知,识别出在步骤S1029中被请求启动的应用结束。
另一方面,虚拟机1002在步骤S1030中判断为“否”的情况下,执行被请求启动的应用(S1038)。
如上所述,本发明实施方式1的设备110及111各自在该设备110或111启动时启动规定的虚拟机。进而,设备110及111在由用户对该启动的规定的虚拟机请求了DL应用的启动时,追加启动DL应用专用的虚拟机(虚拟机1003),进行在该虚拟机内执行DL应用的处理。
另外,在虚拟机1003的处理中断中,由虚拟机1002委托了用于执行其他DL应用的VM的生成时,虚拟化软件1001生成与虚拟机1003不同的虚拟机(虚拟机1004等),使得DL应用分别在不同的虚拟机上动作。
<虚拟化软件1001的结构>
图12是本发明实施方式1的虚拟化软件1001的软件结构图。
在图12中,虚拟化软件1001包括应用VM生成部1300、应用执行专用VM取得部1301、VM管理部1302、应用功能管理部1306、应用间通信控制部1307、许可种类管理部1308以及外部连接部1309。外部连接部1309包括外部连接限制部1310。
应用VM生成部1300从在虚拟化软件1001上动作的虚拟机接受虚拟机(应用VM)的生成委托,生成用于执行DL应用的虚拟机(应用VM)。这里,应用VM生成部1300根据应用执行专用VM1241和从虚拟机通知的DL应用(下载包3120),生成上述的虚拟机(应用VM)。此外,应用VM生成部1300向VM管理部1302委托所生成的虚拟机的管理。进而,应用VM生成部1300从由虚拟机通知的DL应用的下载包3120内的设定文件3202中读入要使用的功能列表3300,并通知给应用功能管理部1306。另外,关于虚拟机的生成处理的细节,在后面利用流程图来说明。
此外,在此,应用VM生成部1300根据应用执行专用VM1241和从虚拟机通知的DL应用,生成用于执行DL应用的虚拟机,但本发明不限于此。例如,应用VM生成部1300也可以从应用分发服务器120下载包括应用、OS以及虚拟硬件的状态的虚拟机,进行该虚拟机的加载处理以及向VM管理部1302的管理委托。此外,应用VM生成部1300也可以不是在执行DL应用时生成虚拟机,而是在从应用分发服务器120下载了该DL应用时生成虚拟机。
应用执行专用VM取得部1301读入存储在非易失性存储装置1240中的应用执行专用VM1241,向应用VM生成部1300输出。
图13是表示应用执行专用VM1241的构造的图。应用执行专用VM1241包括头信息1320、VM主体1321以及验证值1322。此外,VM主体1321包括OS1325和虚拟硬件1326。此外,头信息1320包括写入要执行的应用的地址(逻辑地址)、以及对设备驱动进行管理的管理构造体的地址(逻辑地址)。验证值1322是将VM主体1321输入到了哈希函数时得到的哈希值。
另外,验证值1322也可以不是在VM主体1321的后面,而是在VM主体1321的前面,也可以包含于头信息1320中。进而,验证值1322也可以不是包含于应用执行专用VM1241中,而可以与应用执行专用VM1241分立地、与应用执行专用VM1241建立关联的状态下保存在非易失性存储装置1240或非易失性保护存储器中。
另外,作为哈希函数,可以利用MD4、MD5、SHA(Secure HashAlgorithm:安全哈希算法)-1,以及SHA-2等的算法。此外,验证值1322也可以不是哈希值,而是数字签名、消息认证码(MAC:MessageAuthentication Code)值、错误检测码值或错误订正码值。作为计算MAC值的算法,可以利用CBC-MAC(Cipher Block Chaining MessageAuthentication Code:密码块链消息认证码),以及HMAC(Keyed-Hashing forMessage Authentication Code:密钥哈希消息认证码)等。此外,作为计算错误检测码值的算法,可以利用循环冗长检查(CRC:Cyclic RedundancyCheck)、以及检查和等。此外,作为计算错误订正码值的算法,可以利用里德所罗门码(Reed-Solomon Code)、以及Turbo码等。
另外,关于哈希函数,在非专利文献3(黑泽馨,Ogata Wakaha(尾形わかは),“现代加密的基础数学”,CORONA(コロナ)公司(2004年))的96页至105页中详细说明,关于数字签名方式,在上述的非专利文献2的171至188页中详细说明,关于消息认证码,在非专利文献3的30页至39页中详细说明。
另外,将多个应用执行专用VM1241存储在非易失性存储装置1240中,应用执行专用VM取得部1301也可以改变由DL应用使用的应用执行专用VM1241。此时,应用执行专用VM1241的头信息1320也可以包含与DL应用建立关联的信息。
返回图12,接着说明虚拟化软件1001。
VM管理部1302管理在虚拟化软件1001上动作的虚拟机。VM管理部1302将在设备启动时启动的虚拟机和用于执行DL应用的VM一起进行管理。此外,VM管理部1302在虚拟机的管理中使用虚拟机管理表1350。
图14是表示虚拟机管理表1350的一例的图。该虚拟机管理表1350包括用于识别虚拟机的虚拟机ID、虚拟机的状态、虚拟机所使用的存储器的地址范围、以及保存将虚拟机中断时的状态的中断状态保存目的地。
应用功能管理部(功能管理部)1306接受来自应用VM生成部1300的通知,对在应用VM生成部1300所生成的虚拟机上动作的DL应用所使用的功能进行管理。应用功能管理部1306在DL应用所使用的功能的管理中使用应用功能管理表1380。
图15是表示应用功能管理表1380的一例的图。该应用功能管理表1380包括用于识别应用的应用ID、用于识别DL应用进行动作的虚拟机的虚拟机ID、以及DL应用所使用的功能。也就是说,应用功能管理表1380是由应用功能管理部1306保持、且按照多个虚拟机中包含的每个虚拟机,将在该虚拟机中执行的程序所使用的功能与分配给该虚拟机的标识符(虚拟机ID)建立关联来表示的表。应用功能管理部1306通过参照该应用功能管理表1380,确定与分配给第二虚拟机的标识符建立关联来表示于应用功能管理表1380中的功能,由此确定在该第二虚拟机中执行的程序所使用的功能,所述第二虚拟机是来自第一虚拟机的数据的通知目的地。
应用间通信控制部1307对在不同的虚拟机上动作的应用间的通信进行控制。对在不同的虚拟机上动作的应用的通知通过由应用间通信控制部1307经由各虚拟机上的OS向通知目的地的虚拟机通知来进行。应用间通信控制部1307根据应用功能管理部1306管理的DL应用所使用的功能和许可种类管理部1308管理的许可种类管理表(许可的数据种类的一览),判断是否许可向应用的通知。应用间通信控制部1307在许可通知的情况下,进行该通知,并且向外部连接限制部1310通知通知目的地的虚拟机ID、以及通知的数据的种类。也就是说,在许可如上所述的通知的情况下,应用间通信控制部1307从多个虚拟机中的第一虚拟机取得数据,向多个虚拟机中的第二虚拟机通知该数据,并且将表示已向第二虚拟机通知了该数据的已通知信息通知给外部连接部1309。该已通知信息包括分配给被通知到该数据的第二虚拟机的标识符(通知目的地的虚拟机ID)、以及该数据的种类。另外,关于细节将在后面叙述。
许可种类管理部(种类管理部)1308管理用于通过应用间通信控制部1307许可通信的数据种类。许可种类管理部1308在许可通信的数据种类的管理中使用许可种类管理表1381。
图16A是表示许可种类管理表1381的一例的图。该许可种类管理表1381是按照通信目的地的应用所具有的每个功能,表示许可哪个数据种类的通信、不许可哪个数据种类的通信的表。也就是说,许可种类管理表1381是由许可种类管理部1308保持,按照每个功能将该功能和禁止种类建立关联来表示的表。许可种类管理表1381在系统设计时被设定,并嵌入到许可种类管理部1308中。另外,许可种类管理部1308也可以使用其他许可种类管理表。许可种类管理部1308通过参照该许可种类管理表1381,按照在来自第一虚拟机的数据的通知目的地即第二虚拟机上执行的程序所使用的功能,设定通知禁止对象数据的种类。具体而言,许可种类管理部1308取得由应用功能管理部1306确定的在第二虚拟机上执行的程序所使用的功能,并参照许可种类管理表1381,来确定与取得的该功能建立关联而表示于许可种类管理表1381中的禁止种类,由此将所确定的该禁止种类设定为通知禁止对象数据的种类。
图16B是表示其他许可种类管理表的一例的图。其他许可种类管理表1382是按照通知目的地的每个应用,表示许可哪个数据种类的通信,不许可哪个数据种类的通信的表。该表既可以由用户按照各个应用来设定,也可以根据DL应用所使用的功能来自动设定。
另外,许可种类管理表1381或1382也可以由用户设定。
外部连接部1309进行用于使在虚拟化软件1001上进行动作的软件连接到设备外部的连接处理。也就是说,外部连接部1309为了该软件而与位于作为信息处理装置的设备110、111的外部的外部设备连接。外部连接部1309包括外部连接限制部1310。外部连接限制部1310将从应用间通信控制部1307通知的虚拟机ID和所通知的数据的种类建立关联并登记到通知数据种类管理表1383。由此,更新通知数据种类管理表1383。
图17A是表示通知数据种类管理表1383的一例的图。该通知数据种类管理表1383是由外部连接部1309保持、用于按照多个虚拟机中的每个已被通知到数据的虚拟机即已通知虚拟机,将分配给该已通知虚拟机的标识符(虚拟机ID)和对该已通知虚拟机通知的数据的种类建立关联来表示的表。外部连接限制部1310当由在虚拟化软件1001上动作的虚拟机委托向设备外部连接时,根据通知到该虚拟机的数据的种类,判断将外部连接许可还是限制。这里,通知到虚拟机的数据的种类通过参照通知数据种类管理表1383来确定。也就是说,外部连接部1309取得被分配给委托了向设备外部的连接的第三虚拟机的标识符(虚拟机ID),参照通知数据种类管理表1383,确定与取得的标识符建立关联来表示于通知数据种类管理表1383中的种类,由此确定通知到第三虚拟机的数据的种类。另外,关于设备外部连接处理的细节,利用流程图在后面说明。
另外,在许可了向应用的通知的情况下,应用间通信控制部1307也可以向外部连接限制部1310通知许可/不许可信息,该许可/不许可信息表示所通知的应用进行动作的虚拟机是否可以进行向设备外部的连接。此时,外部连接限制部1310将被通知的许可/不许可信息记录在连接许可/不许可管理表中。
图17B是表示连接许可/不许可管理表的一例的图。外部连接限制部1310将被通知的许可/不许可信息按照每个虚拟机ID记录到图17B所示的连接许可/不许可管理表1384中。进而,外部连接限制部1310在被委托了向设备外部的连接时,在是否许可外部连接的判断中参照图17B所示的连接许可/不许可管理表1384。连接许可/不许可管理表1384中,连接许可的情况记为“○”,连接不许可的情况记为“×”。
另外,在许可了向应用的通知的情况下,应用间通信控制部1307也可以禁止从许可的应用的应用间通信。在该情况下,由应用间通信控制部1307进行与外部连接限制部1310相同的判断处理。
另外,外部连接限制部1310也可以位于各自的虚拟机的虚拟硬件(1020、1030)之中。外部连接限制部1310在从应用VMOS(1021,1031)接受到外部连接请求时,判断是否许可该请求。
另外,外部连接限制部1310在判断为连接不许可的情况下,也可以不是禁止所有的连接,而是仅对指定的网站许可连接,或者,仅对指定的网站禁止连接。此时,许可连接或禁止连接的网站既可以预先设定,也可以由用户设定。
另外,也可以利用列表(限制种类列表)来管理在被通知到哪个种类的数据时限制外部连接,既可以在系统设计时预先设定,并将该列表嵌入到设备中,也可以由用户设定。
图17C是表示限制种类列表的一例的图。限制种类列表1385按照每个数据种类,表示被通知到该种类的数据的应用(虚拟机)是否可以外部连接、即是否可以经由外部连接部1309与外部设备连接。外部连接部1309当由在虚拟化软件1001上动作的虚拟机委托了外部连接时,参照该限制种类列表1385。由此,外部连接部1309对于通知到该虚拟机的数据的种类,判断外部连接是否被许可,也就是说,该数据的种类是否是连接禁止对象数据的种类(由图17C的“×”表示的种类)。外部连接部1309在判断为该种类是连接禁止对象数据的种类时,禁止委托了外部连接的虚拟机(第三虚拟机)与外部设备之间的连接(外部连接)。
<应用间通信控制部1307的结构>
图18是应用间通信控制部1307的结构图。
在图18中,应用间通信控制部1307包括控制部1330、判断部1331、DL应用功能取得部1332以及许可种类取得部1333。
控制部1330接受向在虚拟机上动作的DL应用的通知委托,控制应用间通信。控制部1330从在虚拟机上动作的应用接受应用间通信数据1390,委托判断部1331判断是否通知该数据。控制部1330根据来自判断部1331的判断结果,将应用间通信数据1390通知给通知目的地的应用。向应用的通知利用向虚拟机的虚拟中断来进行。也就是说,控制部1330仅在由判断部1331判断为从第一虚拟机取得的数据的种类不是通知禁止对象数据的种类的情况下,将该数据通知给第二虚拟机,并且将已通知信息通知给外部连接部1309。另一方面,控制部1330在由判断部1331判断为从第一虚拟机取得的数据的种类是通知禁止对象数据的种类的情况下,禁止将该数据向第二虚拟机通知、以及将已通知信息向外部连接部1309通知。
图19是表示应用间通信数据1390的构造的图。控制部1330从应用间通信数据1390取得通知目的地的应用ID和数据的种类,向判断部1331传递通知目的地的应用ID和数据的种类,委托判断。
判断部1331从控制部1330接受通知目的地的应用ID和数据的种类,进行是否可以通知的判断。也就是说,判断部1331判断从第一虚拟机取得的数据的种类是否是由许可种类管理部1308设定的通知禁止对象数据的种类(不许可的种类)。
具体而言,判断部1331首先向DL应用功能取得部1332传递通知目的地的应用ID,并经由DL应用功能取得部1332从应用功能管理部1306取得:通知目的地的应用所使用的功能、以及通知目的地的应用进行动作的虚拟机ID。接着,判断部1331经由许可种类取得部1333向许可种类管理部1308传递通知目的地的应用所使用的功能,取得每个数据种类的许可/不许可信息。然后,判断部1331根据从控制部1330接受的数据的种类和每个数据的种类的许可/不许可信息,判断是否可以通知应用间通信数据1390。
例如,判断部1331在每个数据的种类的许可/不许可信息为“○”的情况下判断为“许可”,在许可/不许可信息为“×”的情况下判断为“不许可”。在“许可”的情况下,判断部1331将通知目的地的应用进行动作的虚拟机ID与“许可”的信息一起返回给控制部1330。在“不许可”的情况下,判断部1331将“不许可”的信息返回给控制部1330。另外,判断部1331也可以经由许可种类取得部1333从许可种类管理部1308取得与表示“○”的许可/不许可信息建立对应的数据的种类、也就是被许可了通知的数据的种类。在该情况下,判断部1331判断被许可了该通知的数据的种类和从控制部1330接受的数据的种类是否一致。并且,控制部1330在由判断部1331判断为一致的情况下,向通知目的地的应用(该应用进行动作的虚拟机)通知应用间通信数据1390,并且将向通知目的地的应用或虚拟机通知了应用间通信数据1390的情况通知给外部连接部1309。另一方面,控制部1330在由判断部1331判断为不一致的情况下,不向通知目的地的应用(该应用进行动作的虚拟机)通知应用间通信数据1390。
DL应用功能取得部1332从判断部1331接受应用ID。DL应用功能取得部1332从应用功能管理表1380取得与接受的应用ID对应的虚拟机ID和所使用的功能,并将取得的虚拟机ID和所使用的功能返回给判断部1331。
许可种类取得部1333从判断部1331接受应用所使用的功能。许可种类管理部1308从许可种类管理表1381取得与接受到的使用的功能相对应的每个数据种类的许可/不许可信息,并将取得的许可/不许可信息返回给判断部1331。
另外,关于应用间通信处理的细节,利用流程图在后面进行说明。
<通用OS1011的结构>
图20是本发明实施方式1的通用OS1011的结构图。
在图20中,通用OS1011包括应用加载部1400以及设备驱动A1402。
应用加载部1400接受来自用户的应用的启动请求,进行应用的启动处理。应用加载部1400判断用户请求启动的应用是否为DL应用。应用加载部1400在用户请求启动的应用是DL应用的情况下,向虚拟化软件1001应用VM的生成。此外,应用加载部1400在用户请求启动的应用不是DL应用,而是通常的应用的情况下,作为在通用OS1011上动作的应用(应用A1013或应用B1014等)而执行该应用。
设备驱动A1402管理向安装在设备110或111中的硬件的访问。该设备驱动A1402按照来自在通用OS1011内、以及在通用OS1011上动作的应用的请求,来进行动作。
<应用加载部1400的结构>
图21A是本发明实施方式1的应用加载部1400的结构图。
图21A所示的应用加载部1400包括应用取得部1410、判断部1411、加载部1412以及VM生成委托部1413。
应用取得部1410进行从非易失性存储装置1240读入用户请求启动的应用的处理。
判断部1411进行用户请求启动的应用是否为DL应用的判断。判断部1411在用户请求启动的应用不是DL应用的情况下,向加载部1412委托应用的加载以及启动。判断部1411在用户请求启动的应用是DL应用的情况下,向VM生成委托部1413委托DL应用的启动。
作为DL应用的判断方法,例如,判断部1411通过比较被请求启动的应用的文件名所附带的后缀是否与规定的后缀一致,来进行判断。DL应用所利用的后缀(规定的后缀)在系统设计时被决定,并事先嵌入到通用OS1011中,利用于比较。
另外,判断部1411在DL应用的判断中利用了后缀,但不限于此。例如,也可以是,DL应用保存在指定的目录(文件夹)下,判断部1411比较被请求启动的应用的目录名(文件夹名)是否与保存着DL应用的目录名一致。此外,也可以是,在DL应用的头信息中嵌入用于识别为是DL应用的信息(标识符),判断部1411检查是否存在该信息。此外,也可以是,判断部1411利用DL应用的下载包3120中包含的公开密钥证书3204所包含的信息,识别是否是DL应用。作为该识别方法,例如可以考虑比较用于识别主体者(Subject)或发行者(Issuer)的信息是否为表示指定企业的信息的方法、或者检查证书的标识符(Certificate Serial Number)是否由指定的字符串构成的方法等。此外,也可以设置对从应用分发服务器120下载的DL应用进行管理的DL应用管理部,判断部1411根据是否为DL应用管理部管理的应用,来判断被请求启动的应用是否是DL应用。
加载部1412将应用取得部1410读入的应用写入存储器1220中,并进行应用的启动所需要的处理(例如,头的解析、逻辑地址的设定、堆栈的设定以及入口点的设定等)之后,执行应用。
VM生成委托部1413从判断部1411接受DL应用的启动委托,向虚拟化软件1001委托应用VM的生成。此外,VM生成委托部1413在委托时,将在应用VM上执行的DL应用通知给虚拟化软件1001。
图21B是应用加载部1400的其他结构图。
如图21B所示,应用加载部1400也可以仅包括判断部1411、加载部1412以及VM生成委托部1413。在该情况下,应用取得部1410的功能既可以由判断部1411包含,也可以由虚拟化软件1001的应用VM生成部1300和加载部1412包含。
<应用VM生成处理>
通用OS1011和虚拟化软件1001为了相互联合并且使DL应用在应用VMOS上动作,而进行应用VM的生成处理。
以下,利用图22的流程图说明从通用OS1011向虚拟化软件1001委托应用VM的生成时的应用VM生成处理。
图22是表示本发明实施方式1的应用VM生成处理的流程图。
通用OS1011根据来自用户的应用执行请求,进行应用的启动处理。首先,通用OS1011的应用加载部1400从非易失性存储装置1240取得被请求执行的应用(S1100),并将取得的应用写入存储器1220中。
应用加载部1400判断取得的应用是否为DL应用(S1101)。应用加载部1400在取得的应用为DL应用时,判断为“是(OK)”,在取得的应用不是DL应用时,判断为“否(NG)”。
应用加载部1400在步骤S1101中判断为“是”的情况下,向虚拟化软件1001委托用于执行被请求执行的应用的VM(应用VM)的生成(S1102)。此时,应用加载部1400将取得的应用与其委托一起发送给虚拟化软件1001。
虚拟化软件1001的应用VM生成部1300接受应用VM的生成委托,加载应用执行专用VM(S1103)。作为加载处理,首先在存储器1220上确保要生成的应用VM用的存储器区域。接着,从非易失性存储装置1240读入应用执行专用VM1241。最后,向确保的存储器区域写入VM主体1321。
然后,应用VM生成部1300确认是否写入了正确的VM主体1321(S1104)。作为确认的处理,首先,根据写入的VM主体1321,生成验证值。接着,应用VM生成部1300比较生成的验证值和应用执行专用VM1241的验证值1322,验证是否一致。应用VM生成部1300在生成的验证值和应用执行专用VM1241的验证值1322不一致的情况下,中止生成应用VM。
另外,这里,应用VM生成部1300在将VM主体1321写入存储器1220之后确认验证值1322,但不限于此。例如,应用VM生成部1300也可以在从非易失性存储装置1240读入应用执行专用VM1241之前,计算VM主体1321的验证值,验证计算的验证值和验证值1322是否一致。
此外,应用VM生成部1300在用于生成DL应用的个别的虚拟机时,共同使用OS1325。例如,使用OS1325来生成执行DL应用X1022的虚拟机1003的应用VMOSX1021、和执行DL应用Y1032的虚拟机1004的应用VMOSY1031这两者。具体而言,在DL应用X1022及DL应用Y1032不包括DL设备驱动的情况下,应用VMOSX1021及应用VMOSY1031具有相同的功能。此外,在DL应用X1022包括DL设备驱动的情况下,应用VM生成部1300通过对OS1325追加该DL设备驱动的功能来生成应用VMOSX1021。
这里,本发明实施方式1的设备110如上所述,对DL应用生成单独的虚拟机,在该虚拟机上执行DL应用。因此,在每个应用中需要OS,所以产生用于保存该多个OS的非易失性存储装置1240的容量增加的问题。相对于此,应用VM生成部1300使用共同的OS1325,来制作各应用用的OS。由此,非易失性存储装置1240中仅保存单一的OS1325即可,因此能够消减该非易失性存储装置1240的容量。
接着,应用VM生成部1300将从通用OS1011接受的应用写入存储器1220中(S1105)。此外,应用VM生成部1300作为写入地址而参照在应用执行专用VM1241的头信息1320中记载的地址。此外,应用VM生成部1300将根据应用执行专用VM1241和应用来生成的应用VM登记到VM管理部1302,并对生成的应用VM赋予用于识别该应用VM(虚拟机)的ID。
接着,应用VM生成部1300取得从应用加载部1400通知的应用所使用的功能(S1106)。作为功能的取得处理,从应用的下载包3120取得设定文件3202,进行从取得的设定文件3202读入该应用所使用的功能列表3300的处理。
应用VM生成部1300从读入的功能列表3300中提取应用所使用的功能,并将该功能登记到应用功能管理部1306(S1107)。
接着,应用VM生成部1300向VM管理部1302委托所生成的应用VM的执行。由此,VM管理部1302执行应用VM(S1108)。在被执行的应用VM内,执行应用VMOS,进而执行DL应用。
另一方面,应用加载部1400在步骤S1101中判断为“否”的情况下,将取得的应用作为在通用OS1011上动作的应用而登记到通用OS1011,并执行该应用(S1109)。通用OS1011将在通用OS1011上动作的应用通过一览表进行管理。
<应用间通信处理>
虚拟化软件1001调解在不同的虚拟机上动作的应用之间的通信。此时,根据通知目的地的应用所使用的功能、或通知的数据的种类,来判断是否许可该通信,并控制通信。
以下,利用图23的流程图说明从在虚拟机1002上动作的应用A1013向在虚拟机1003上动作的DL应用X1022通知与照片数据的显示有关的应用间通信数据1390的处理。
应用A1013向通用OS1011委托向DL应用X1022的数据的通知(S1200)。在委托时,向通用OS1011传递应用间通信数据1390。这里,应用间通信数据1390中,作为动作而设定有“显示”,作为应用ID而设定有DL应用X1022的标识符、作为数据而设定有照片数据、作为数据种类而设定有“照片”。
通用OS1011判断被委托的数据的通知是向在通用OS1011上动作的其他应用的通知,还是向在其他虚拟机上动作的DL应用的通知(S1201)。这里,通用OS1011在是向DL应用的通知的情况下判断为“是”,在是向通用OS1011上动作的其他应用的通知的情况下判断为“否”。在是否为向DL应用的通知的判断中,参照从应用A1013传递的应用间通信数据1390的应用ID的字段。通用OS1011判断在应用间通信数据1390的应用ID字段中记载的应用ID是否为DL应用。判断方法是:根据是否为在应用VM生成处理的步骤S1106中登记到通用OS1011的应用来判断。若应用ID字段中记载的应用ID未被登记到在通用OS1011上动作的应用的一览表中,则通用OS1011判断为通知目的地的应用是DL应用。
通用OS1011在步骤S1201中判断为“是”的情况下,向虚拟化软件1001委托数据的通知。此时,通用OS1011将从应用A1013通知的应用间通信数据1390通知给虚拟化软件1001。
虚拟化软件1001利用应用间通信控制部1307,控制应用间通信。应用间通信控制部1307首先从应用间通信数据1390取得通知目的地的应用ID和数据的种类(S1202)。
应用间通信控制部1307根据取得的通知目的地的应用ID,取得该应用所使用的功能(S1203)。接着,根据在步骤S1203中取得的应用所使用的功能,取得每个数据种类的通知许可/不许可信息(S1204)。
应用间通信控制部1307根据在步骤S1202中取得的数据种类和在步骤S1204中取得的许可/不许可信息,判断应用间通信数据1390的通知是否被许可(S1205)。在被许可的情况下判断为“是”,在未被许可的情况下判断为“否”。
应用间通信控制部1307在步骤S1205中判断为“是”的情况下,向外部连接限制部1310通知通知目的地的虚拟机ID和通知的数据的种类。外部连接限制部1310保存被通知的虚拟机ID和数据的种类(S1206)。最后,应用间通信控制部1307将应用间通信数据1390通知给通知目的地的虚拟机。结果,应用间通信数据1390从虚拟机通知到应用VMOSX1021,然后,从应用VMOSX1021通知到DL应用X1022。
应用间通信控制部1307在步骤S1205中判断为“否”的情况下,将应用间通信数据1390是未被许可通知的应用间通信数据1390的意思的错误通知给通用OS1011。结果,上述错误从通用OS1011被通知到应用A1013。
通用OS1011在步骤S1201中判断为“否”的情况下,向通用OS1011上的应用通知从应用A1013接受到的应用间通信数据1390(S1207)。
<设备外部连接的处理>
虚拟化软件1001从DL应用接受向设备外部的连接委托,进行连接处理。此时,根据过去通知到该DL应用的数据的种类,决定是否许可连接。
以下,说明从在虚拟机1003上动作的DL应用X1022的设备外部连接处理。
图24是表示从DL应用X1022的设备外部连接处理的流程图。
DL应用X1022向应用VMOSX1021委托网络连接(S1300)。应用VMOSX1021向虚拟化软件1001委托网络连接(S1301)。
虚拟化软件1001向外部连接部1309委托网络连接。外部连接部1309向外部连接限制部1310委托是否可以连接到网络的判断。外部连接限制部1310根据应用间通信处理的步骤S1206中保存的虚拟机ID和通知的数据的种类,取得与委托了网络连接的虚拟机对应的、通知的数据的种类(S1302)。
外部连接限制部1310根据在步骤S1302中取得的、通知的数据的种类,判断是否许可网络连接(S1303)。在被许可的情况下判断为“是”,在未被许可的情况下判断为“否”。例如,外部连接限制部1310在步骤S1302中取得的、通知的数据的种类为预先设定的种类的情况下,判断为不许可网络连接,在该数据的种类不是预先设定的种类的情况下,判断为许可网络连接。具体而言,外部连接限制部1310若该数据的种类为“照片”,则判断为不许可网络连接,若该数据的种类为“邮件”,则判断为许可网络连接。
外部连接限制部1310在步骤S1303中判断为“是”的情况下,进行向网络的连接处理(S1304)。在步骤S1303中判断为“否”的情况下,向应用VMOSX1021返回错误。应用VMOSX1021向DL应用X1022返回错误。
这样,在本实施方式中,外部连接部1309在从多个虚拟机中的第三虚拟机(应用VMOSX1021或DL应用X1022)接受到向外部设备的连接的委托的情况下,根据已通知信息判断第三虚拟机是否为被通知到数据的第二虚拟机,在判断为不是被通知到该数据的第二虚拟机时,许可第三虚拟机与外部设备间的连接。另一方面,外部连接部1309在判断为第三虚拟机是被通知到该数据的第二虚拟机时,进一步确定被通知到第三虚拟机的数据的种类,判断该种类是否为连接禁止对象数据的种类(照片等),在判断为该种类是连接禁止对象数据的种类时,禁止第三虚拟机与外部设备间的连接。
另外,这里,在从DL应用X1022有网络连接的委托时,外部连接限制部1310中进行了是否连接的判断,但不限于此。例如,也可以是,外部连接限制部1310在应用间通信处理中,从应用间通信控制部1307通知了通知目的地的虚拟机ID和通知的数据的种类时,进行该判断。此时,外部连接限制部1310判断由通知的虚拟机ID所表示的虚拟机是否进行着外部连接,在进行着外部连接的情况下,判断是否可以继续进行外部连接。作为判断方法,使用与步骤S1303相同的方法。在该判断中,在连接未被许可的情况下,外部连接限制部1310切断外部连接。
此外,外部连接部1309在判断为第三虚拟机是被通知到数据的第二虚拟机时,例如也可以与该数据的种类等无关地禁止第三虚拟机和外部设备间的连接。
<应用执行专用VM生成装置1600的结构图>
图25是本发明实施方式1的应用执行专用VM生成装置1600的结构图。
图25所示的应用执行专用VM生成装置1600包括应用执行前停止码插入部1601、VM生成部1602、VM执行部1603以及专用VM生成部1604。此外,应用执行专用VM生成装置1600取得VM源代码1610,输出应用执行专用VM1620。该应用执行专用VM1620在设备110及111的非易失性存储装置1240中保存为应用执行专用VM1241。
VM源代码1610包括应用VMOS的源代码和虚拟硬件的设定信息。应用VMOS的源代码中,在应用VMOS将在其上动作的应用加载到存储器1220的处理的紧前,被插入了表示该情况的字符串(停止标识符)(例如,“PRE_APP_EXEC:”)。
应用执行前停止码插入部1601检测插入到VM源代码1610中的停止标识符,将该停止标识符置换为从应用VMOS向虚拟化软件1001的通知命令(hypercall或hypervisor call)。
VM生成部1602通过对VM源代码1610进行编译处理以及连接处理,生成VM的执行图像文件。
VM执行部1603具有与虚拟化软件1001同等的功能,执行VM的执行图像文件。被执行的VM在将处理进行到代替停止标识符而嵌入的通知命令之后,进行向VM执行部1603的通知处理。VM执行部1603接受该通知并停止VM的处理。
专用VM生成部1604根据停止的VM的状态(存储器上的数据以及CPU的寄存器的值等)和VM的执行图像文件,生成应用执行专用VM1620的VM主体1321。进而,专用VM生成部1604生成头信息1320和验证值1322,并与这些进行组合而生成应用执行专用VM1620。
应用执行专用VM1620启动应用VMOS,包含:在加载应用的紧前的状态下停止的VM图像文件。
另外,这里,设为了在将应用加载到存储器1220的处理的紧前,插入停止标识符,但本发明不限于此。例如,也可以是,在将应用加载到存储器1220的处理的紧后,插入停止标识符。
此外,这里,应用执行前停止码插入部1601将停止标识符置换为了通知命令(hypercall),但本发明不限于此。例如,也可以是,应用执行前停止码插入部1601通过对VM源代码1610进行解析,自动检测应停止的场所,向检测出的场所插入通知命令。此外,通知命令也可以不是hypercall,而可以是断点命令,也可以是专用的中断命令。
如以上说明,根据本发明实施方式1,在进行应用间通信处理时,根据通知数据的目的地的应用所具有的功能和数据的种类,判断是否通知该数据。因此,在通知目的地的应用具有网络连接功能时,能够防止通知电话簿的数据或照片等的个人内容。
此外,根据向应用通知的数据的种类,限制应用的网络连接。因此,在用户想利用应用的网络连接功能以外的功能的情况下,也能够防止个人内容经由网络泄漏到设备外部,并且能够使用应用的功能。
这样,本发明实施方式1的应用分发系统100能够防止由非法应用以及非法设备驱动引起的信息资产的泄漏。由此,用户能够安心利用设备。
(实施方式2)
在本发明实施方式2中,说明相对于本发明实施方式1的结构,不具有对应用间的通信进行限制的功能的结构。
以下,说明本发明实施方式2的虚拟化软件1001的结构以及应用VM生成处理和应用间通信处理。另外,对于与本发明实施方式1相同的结构要素、相同的处理,使用相同的符号,并省略说明。
<虚拟化软件1001的结构>
图26A是本发明实施方式2的虚拟化软件1001的软件结构图。
图26A所示的虚拟化软件1001包括应用VM生成部1300、应用执行专用VM取得部1301、VM管理部1302、应用间通信控制部1307、许可种类管理部1308以及外部连接部1309。
应用VM生成部1300从在虚拟化软件1001上动作的虚拟机接受VM(应用VM)的生成委托,根据应用执行专用VM和从虚拟机通知的DL应用,生成用于执行DL应用的VM(应用VM)。此外,应用VM生成部1300向VM管理部1302委托所生成的虚拟机的管理。这里,应用VM生成部1300与本发明实施方式1不同,不进行从由虚拟机通知的DL应用的下载包3120内的设定文件3202读入所使用的功能列表3300,并向应用功能管理部1306通知的处理。
应用间通信控制部1307对在不同的虚拟机上动作的应用间的通信进行控制。向在不同的虚拟机上动作的应用的通知是通过由应用间通信控制部1307经由各虚拟机上的OS向通知目的地的虚拟机通知来进行。进而,应用间通信控制部1307向外部连接限制部1310通知通知目的地的虚拟机ID和通知的数据的种类。这里,应用间通信控制部1307与本发明实施方式1不同,不进行根据由应用功能管理部1306管理的DL应用所使用的功能和由许可种类管理部1308管理的许可的数据种类,判断是否许可向应用的通知的处理。所有数据被通知到在不同的虚拟机上动作的应用。
另外,关于应用执行专用VM取得部1301、VM管理部1302、许可种类管理部1308以及外部连接部1309,与本发明实施方式1相同。
<应用VM生成处理>
本发明实施方式2的应用VM的生成处理是与本发明实施方式1的应用VM生成处理(图22)大部分相同的处理。
但是,本发明实施方式2的虚拟化软件1001由于不具有对DL应用的功能进行管理的功能,因此不进行步骤S1107的登记应用的功能的处理。应用VM生成部1300根据应用执行专用VM和DL应用,生成应用VM,并向VM管理部1302登记后,向VM管理部1302委托所生成的应用VM的执行。接受委托的VM管理部1302执行应用VM(S1108)。
<应用间通信处理>
本发明实施方式2的应用间通信处理是与本发明实施方式1的应用间通信处理(图23)大部分相同的处理。
但是,本发明实施方式2的虚拟化软件1001由于不具有判断是否许可向应用的通知的功能,因此不进行取得应用的功能和许可种类的处理(S1203及S1204)、以及是否许可通知的判断处理(S1205)。虚拟化软件1001接受来自通用OS1011的通知委托,取得通知目的地的应用ID和数据的种类(S1202),保存向DL应用通知的数据的种类(S1206),向应用VMOSX1021进行通知。
另外,上述以外的处理是与本发明实施方式1相同的处理。
如以上说明,根据本发明实施方式2,根据向应用通知的数据的种类,限制应用的网络连接。因此,在用户想要利用应用的网络连接功能以外的功能的情况下,也可以防止个人内容经由网络泄漏,并且能够使用应用的功能。
这里,说明本发明实施方式2的变形例。
图26B是实施方式2的变形例的虚拟化软件1001的软件结构图。
如上所述,图26A所示的虚拟化软件1001包括应用VM生成部1300和应用执行专用VM取得部1301,并且为了使DL应用在应用VMOS上动作而进行应用VM的生成处理。但是,本发明不限于此。因此,本变形例的虚拟化软件1001例如在系统启动时将需要的虚拟机全部启动,而不进行动态地生成的处理。在该情况下,本变形例的虚拟化软件1001如图26B所示,不包括应用VM生成部1300和应用执行专用VM取得部1301。
(实施方式3)
在本发明实施方式3中,相对于本发明实施方式1不同的是是否许可应用间通信及外部连接的判断方法。也就是说,在实施方式3中,特征在于,向通用OS1011询问是否许可应用间通信及外部连接的判断。
以下,说明本发明实施方式3的虚拟化软件1001的结构以及通用OS1011的结构、应用VM生成处理和应用间通信处理。另外,关于与本发明实施方式1相同的结构要素、相同的处理,使用相同的符号,并省略说明。
<虚拟化软件1001的结构>
图27是本发明实施方式3的虚拟化软件1001的软件结构图。
图27所示的虚拟化软件1001包括应用VM生成部1300、应用执行专用VM取得部1301、VM管理部1302、母子关系管理部1304、应用间通信控制部1307以及外部连接部1309。
应用VM生成部1300从在虚拟化软件1001上动作的虚拟机接受虚拟机(应用VM)的生成委托,根据应用执行专用VM1241和从虚拟机通知的DL应用,生成用于执行DL应用的虚拟机(应用VM)。此外,应用VM生成部1300向VM管理部1302委托所生成的虚拟机的管理。进而,应用VM生成部1300向母子关系管理部1304将委托了虚拟机的生成的虚拟机登记为“母”,将生成的虚拟机登记为“子”。这里,应用VM生成部1300与本发明实施方式1不同,不进行从由虚拟机通知的DL应用的下载包3120内的设定文件3202读入所使用的功能列表3300,并向应用功能管理部1306通知的处理。
母子关系管理部1304根据来自应用VM生成部1300的通知(登记),管理虚拟机间的母子关系。母子关系管理部1304利用母子关系管理表1360来管理母子关系。
图28是表示母子关系管理表1360的构造的图。母子关系管理表1360包括:为“母”的虚拟机的ID(母虚拟机ID)和为“子”的虚拟机的ID(子虚拟机ID)。此外,母虚拟机ID和子虚拟机ID对应于虚拟机管理表1350的ID。也就是说,母子关系管理表1360是由母子关系管理部1304保持、按照多个虚拟机中包含的每个虚拟机,将分配给该虚拟机的子标识符和分配给委托了该虚拟机的生成的虚拟机的母标识符建立关联来表示的表。母子关系管理部1304通过参照母子关系管理表1360,确定与如下子标识符建立关联而表示于母子关系管理表1360中的母标识符,该子标识符与被分配给来自第一虚拟机的数据的通知目的地即第二虚拟机的标识符相同。
应用间通信控制部1307对在不同的虚拟机上动作的应用间的通信进行控制。向在不同的虚拟机上动作的应用的通知是通过由应用间通信控制部1307经由各虚拟机上的OS向通知目的地的虚拟机通知来进行。进而,应用间通信控制部1307向外部连接限制部1310通知通知目的地的虚拟机ID和所通知的数据的种类。这里,应用间通信控制部1307与本发明实施方式1不同,不进行根据由应用功能管理部1306管理的DL应用所使用的功能和由许可种类管理部1308管理的许可的数据种类,判断是否许可向应用的通知的处理。应用间通信控制部1307向委托了应用间通信的虚拟机和处于“母”的关系的虚拟机委托是否许可向应用的通知的判断。因此,应用间通信控制部1307从母子关系管理部1304取得处于“母”的关系的虚拟机的信息。也就是说,应用间通信控制部1307取得由母子关系管理部1304确定的母标识符,判断为被分配了该母标识符的虚拟机为母虚拟机,并对该母虚拟机委托判断。
这样,应用间通信控制部1307在将从第一虚拟机取得的数据向第二虚拟机通知时,对多个虚拟机中的、作为委托了第二虚拟机的生成的虚拟机的母虚拟机委托是否可以通知该数据的判断。并且,应用间通信控制部1307仅在由该母虚拟机判断为可以通知数据的情况下,将该数据通知给第二虚拟机,并且将已通知信息通知给外部连接部1309。
外部连接部1309进行用于使在虚拟化软件1001上动作的软件连接到设备外部的连接处理。外部连接部1309包括外部连接限制部1310。外部连接限制部1310将从应用间通信控制部1307通知的虚拟机ID和被通知的数据的种类登记到图17A的通知数据种类管理表1383。外部连接限制部1310当从在虚拟化软件1001上动作的虚拟机委托了向设备外部连接时,对与发出委托的虚拟机处于“母”的关系的虚拟机的通用OS1011,委托是否许可外部连接的判断。因此,外部连接限制部1310从母子关系管理部1304取得处于“母”的关系的虚拟机的信息,并对该“母”的虚拟机通知被通知到委托了向设备外部连接的虚拟机通知的数据的种类。若由“母”的虚拟机的通用OS1011进行是否许可外部连接的判断,则外部连接限制部1310按照其判断结果,执行或禁止外部连接。
另外,关于应用执行专用VM取得部1301和VM管理部1302,与本发明实施方式1相同。
<通用OS1011的结构>
图29是本发明实施方式3的通用OS1011的结构图。
在图29中,通用OS1011包括应用加载部1400、设备驱动A1402、判断部1403、应用功能管理部1306以及许可种类管理部1308。
应用加载部1400接受来自用户的应用的启动请求,进行应用的启动处理。应用加载部1400判断用户请求启动的应用是否为DL应用。应用加载部1400在用户请求启动的应用是DL应用的情况下,向虚拟化软件1001委托应用VM的生成。进而,应用加载部1400从DL应用的下载包3120内的设定文件3202读入所使用的功能列表3300,并向应用功能管理部1306通知。此外,应用加载部1400在用户请求启动的应用不是DL应用、而是通常的应用的情况下,将该应用作为在通用OS1011上动作的应用来执行该应用。
应用功能管理部1306接受来自应用加载部1400的通知,管理DL应用所使用的功能。应用功能管理部1306在DL应用所使用的功能的管理中使用图15所示的应用功能管理表1380。该应用功能管理表1380包括用于识别应用的应用ID、用于识别DL应用进行动作的虚拟机的虚拟机ID、以及DL应用所使用的功能。
判断部1403从应用间通信控制部1307接受通知目的地的应用ID和数据的种类,进行是否可以通知的判断。判断部1403首先向应用功能管理部1306传递通知目的地的应用ID,取得通知目的地的应用所使用的功能和通知目的地的应用进行动作的虚拟机ID。接着,判断部1403向许可种类管理部1308传递通知目的地的应用所使用的功能,取得每个数据种类的许可/不许可信息。然后,判断部1403根据从应用间通信控制部1307接受的数据的种类和每个数据种类的许可/不许可信息,判断是否可以通知应用间通信数据1390。在每个数据种类的许可/不许可信息为“○”的情况下判断为“许可”,在许可/不许可信息为“×”的情况下判断为“不许可”。
此外,判断部1403在由外部连接限制部1310委托是否许可外部连接的判断、并被通知到了数据的种类时,根据该被通知到的数据的种类,判断将外部连接许可还是限制,并将其判断结果通知给外部连接限制部1310。
另外,关于设备驱动A1402和许可种类管理部1308,与本发明实施方式1相同。
<应用VM生成处理>
图30表示本发明实施方式3的应用VM生成处理的流程图。本发明实施方式3的应用VM的生成处理是与本发明实施方式1的应用VM生成处理(图22)大部分相同的处理。
但是,本发明实施方式3的虚拟化软件1001不具有对DL应用的功能进行管理的功能,因此不进行图22所示的步骤S1106和S1107的取得并登记应用的功能的处理。取而代之,应用VM生成部1300进行向母子关系管理部1304将委托了虚拟机的生成的虚拟机登记为“母”,将生成的虚拟机登记为“子”的处理(S1107’)。
另外,上述以外的处理(S1100至S1105,S1108至S1109)是与本发明实施方式1相同的处理。
另外,基于上述实施方式说明了本发明,但本发明当然不限于上述的实施方式。如以下的情况也包含在本发明中。
(1)上述实施方式中的DL应用是从应用分发服务器120下载的,但是不限于此。例如,DL应用既可以是从开发装置130或USB连接的PC安装的应用,也可以在设备110出厂时一开始就安装。
(2)上述实施方式中的设备110及111的软件结构既可以不具有包括RTOS1041的虚拟机1005,也可以具有多个包括通用OS1011的虚拟机1002、或包括RTOS1041的虚拟机1005。此外,也可以具有不包括OS的虚拟机,也可以具有内置了OS功能的应用进行动作的虚拟机。进而,也可以是这些虚拟机向虚拟化软件1001委托应用VM的生成。此时,各个虚拟机分别作为母而登记到母子关系管理部1304中。
(3)上述实施方式中的应用VM在DL应用执行时被加载到存储器1220,并被执行,但不限于此。例如,虚拟化软件1001既可以在DL应用执行前仅将应用执行专用VM1241加载到存储器,也可以在DL应用执行时将DL应用加载到存储器1220。此外,虚拟化软件1001也可以在DL应用执行前事先将应用执行专用VM1241和DL应用加载到存储器1220。
(4)上述实施方式中的应用执行专用VM1241设为包括利用应用执行专用VM生成装置1600来启动应用VMOS、并在加载应用的紧前的状态下停止的VM图像文件,但不限于此。例如,应用执行专用VM1241也可以包括应用VMOS启动前的状态的VM图像文件。此时,既可以按照每个DL应用来启动应用VMOS,也可以事先启动在加载应用的紧前的状态下停止的应用VM,在DL应用执行时,生成在加载应用的紧前的状态下停止的应用VM的复制,在该复制的应用VM上执行DL应用。
(5)在上述实施方式中,利用图2、图3及图12等说明了作为本发明的信息处理装置的设备110、111的结构,但本发明的信息处理装置不需要将这些图中所示的结构要素全部具备。
图31是表示本发明的信息处理装置的结构的框图。
信息处理装置110、111具备第一虚拟机1002、第二虚拟机1003、作为应用间通信控制部的通信控制部1307、以及外部连接部1309。也就是说,本发明的信息处理装置110、111是搭载多个虚拟机的信息处理装置110、111,具备:外部连接部1309,与位于信息处理装置110、111的外部的外部设备连接;以及通信控制部1307,从多个虚拟机中的第一虚拟机1002取得数据,并向多个虚拟机中的第二虚拟机1003通知该数据,并且将表示已向第二虚拟机1003通知了该数据的已通知信息通知给外部连接部1309;外部连接部1309在从多个虚拟机中的第三虚拟机接受到向外部设备的连接的委托的情况下,根据已通知信息,判断第三虚拟机是否为被通知到该数据的第二虚拟机1003,在判断为不是被通知到该数据的第二虚拟机1003时,许可第三虚拟机与外部设备之间的连接。
由此,能够通过多个虚拟机,将在这些虚拟机上执行的程序(应用或设备驱动)的执行环境进行分离,并且从第一虚拟机1002向第二虚拟机1003通知数据,因此能够在虚拟机间联合。也就是说,能够实现作为在第一虚拟机1002上执行的程序的应用或设备驱动、与作为在第二虚拟机1003上执行的程序的应用或设备驱动之间的数据的传递(应用联合)。进而,在本发明的一形态的信息处理装置中,在判断为第三虚拟机不是被通知到数据的第二虚拟机1003时,许可第三虚拟机与外部设备之间的连接。因此,即使在第三虚拟机上执行的程序为非法应用或非法设备驱动,也因为不会从其他虚拟机(在其他虚拟机上执行的程序)向该程序通知数据,因此即使第三虚拟机与外部设备通信,也能够防止该数据的泄漏。
也就是说,根据该结构,即使具有恶意的攻击者的攻击用的应用(非法应用或非法设备驱动)得到其他应用所具有的信息,也能够防止信息向信息处理装置110、111外部泄漏。由此,用户在不能判断DL应用是否为非法应用的情况下,也不用担心信息泄漏,而能够利用该DL应用。此外,能够进行不同的虚拟机间的应用联合。
这样,本发明的信息处理装置110、111即使不具备图2、图3及图12等所示的安全的软件执行环境1100、其他虚拟机1004、1005、应用VM生成部1300、应用执行专用VM取得部1301、VM管理部1302、应用功能管理部1306以及许可种类管理部1308等,也能够发挥本发明的上述效果。此外,不用判断虚拟机间的数据的通知的许可以及不许可,而在该数据的通知总是在进行的情况下,也能够发挥本发明的上述效果。
(6)在上述实施方式中,在数据的通知目的地的虚拟机(第2虚拟机)上执行的程序所使用的功能有多个的情况下,许可种类管理部1308按照该程序所使用的每个功能,参照许可种类管理表1381。并且,若某一个功能被与禁止种类(图16A的“×”所示的种类)建立了关联,则即使其他功能未与该禁止种类建立关联,许可种类管理部1308也对于该禁止种类,将不许可信息返回给判断部1331。例如,在上述的程序将网络连接和蓝牙(Bluetooth)分别作为功能来使用的情况下,许可种类管理部1308基于该网络连接和蓝牙的每一个,参照许可种类管理表1381。若在网络连接中,邮件被作为禁止种类而建立了关联,则即使在蓝牙中邮件没有作为禁止种类而建立了关联,许可种类管理部1308也对于该邮件(禁止种类),将不许可信息返回给判断部1331。
(7)上述的各装置具体而言是包括微处理器、ROM、RAM、硬盘单元、显示单元、键盘、以及鼠标等的计算机系统。上述RAM或硬盘单元中存储有计算机程序。通过由上述微处理器按照上述计算机程序来动作,各装置实现其功能。这里,计算机程序为了实现规定的功能,由多个表示对计算机的指令的命令代码组合而构成。
(8)构成上述各装置的结构要素的一部分或全部也可以由1个系统LSI(Large Scale Integration:大规模集成回路)构成。系统LSI是将多个结构部集成在1个芯片上而制造的超多功能LSI,具体而言,是包括微处理器、ROM以及RAM等的计算机系统。上述RAM中存储有计算机程序。通过由上述微处理器按照上述计算机程序来动作,系统LSI实现其功能。
另外,构成上述各装置的结构要素的各部既可以单独做成1个芯片,也可以以包括一部分或全部的方式做成1个芯片。
此外,这里设为了系统LSI,但根据集成度的不同,有时也被称为IC、LSI、超级LSI、特级LSI。此外,集成电路化的方法不限于LSI,也可以通过专用电路或通用处理器实现。也可以利用在制造LSI后能够编程的PGA(Field Programmable Gate Array:现场可编程门阵列)、能够重构LSI内部的电路单元的连接或设定的可重构处理器。
进而,若通过半导体技术的进步或派生的其他技术而出现置换LSI的集成电路化的技术,则当然也可以利用该技术进行功能模块的集成化。可能有生物技术的利用等。
(9)构成上述各装置的结构要素的一部分或全部也可以由相对于各装置可装卸的IC卡或单体的模块构成。上述IC卡或上述模块是由微处理器、ROM以及RAM等构成的计算机系统。上述IC卡或上述模块也可以包括上述的超多功能LSI。通过由微处理器按照计算机程序来动作,上述IC卡或上述模块实现其功能。该IC卡或该模块也可以具有防篡改性。
(10)本发明也可以作为如上所示的方法。此外,也可以作为由计算机实现这些方法的计算机程序,也可以作为由上述计算机程序构成的数字信号。
此外,本发明也可以作为将上述计算机程序或上述数字信号记录在计算机可读取的记录介质、例如,柔性磁盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray Disc)、或半导体存储器等中的结构。此外,也可以作为记录在这些记录介质中的上述数字信号。
此外,本发明将上述计算机程序或上述数字信号经由电气通信线路、无线或有线通信线路、以因特网为代表的网络、或数据广播等来传送。
此外,也可以是,本发明是具备微处理器和存储器的计算机系统,上述存储器存储有上述计算机程序,上述微处理器按照上述计算机程序来动作。
此外,也可以通过将上述程序或上述数字信号记录并传送至上述记录介质中,或通过将上述程序或上述数字信号经由上述网络等移送,由独立的其他计算机系统实现。
(11)也可以将上述实施方式以及上述变形例分别进行组合。
工业实用性
本发明能够适用于使用下载的应用以及设备驱动的信息处理装置。此外,本发明例如在搭载该信息处理装置的便携式电话及电视机等的家电产品等中有用。
符号说明
10  硬件
20、1001  虚拟化软件
30、40、70、80、1002、1003、1004、1005  虚拟机
1325  OS
100  应用分发系统
110、111  设备
120  应用分发服务器
130  开发装置
1000  通常的软件执行环境(通常环境)
1010、1020、1030、1040  虚拟硬件
1011  通用OS
1012  下载控制应用
1013  应用A
1014  应用B
1021  应用VMOSX
1022、1242  DL应用X
1031  应用VMOSY
1032、1243  DL应用Y
1041  RTOS
1042  通话软件
1100  安全的软件执行环境(保护环境)
1101  安全OS
1102  安全引导部
1200  系统LSI
1201  CPU
1202  IPL(Initial Program Loader)
1203  执行环境切换部
1204  内部保护存储器
1220  存储器
1240  非易失性存储装置
1241、1620  应用执行专用VM
1300  应用VM生成部
1301  应用执行专用VM取得部
1302  VM管理部
1306  应用功能管理部
1307  应用间通信控制部
1308  许可种类管理部
1309  外部连接部
1310  外部连接限制部
1320  头信息
1321  VM主体
1322  验证值
1326  虚拟硬件
1330  控制部
1331  判断部
1332  DL应用功能取得部
1333  许可种类取得部
1350  虚拟机管理表
1360  母子关系管理表
1380  应用功能管理表
1381、1382  许可种类管理表
1383  通知数据种类管理表
1384  连接许可/不许可管理表
1390  应用间通信数据
1400  应用加载部
1402  设备驱动A
1403  判断部
1410  应用取得部
1411  判断部
1412  加载部
1413  VM生成委托部
1600  应用执行专用VM生成装置
1601  应用执行前停止码插入部
1602  VM生成部
1603  VM执行部
1604  专用VM生成部
1610  VM源代码
2000  应用保持部
2001  应用接收处理部
2002  应用发送处理部
3000  包生成部
3001  设定文件生成部
3002  密钥对保持部
3003  密钥对生成部
3004  调试处理部
3005  上载处理部
3100  编译器
3101  连接器
3102  包生成工具
3110  源代码
3120  下载包
3130  秘密密钥
3131、3204  公开密钥证书
3132、3202  设定文件
3200  应用
3201  设备驱动
3203  应用签名列表

Claims (17)

1.一种信息处理装置,搭载多个虚拟机,具备:
外部连接部,与位于上述信息处理装置的外部的外部设备连接;以及
通信控制部,从上述多个虚拟机中的第一虚拟机取得数据,向上述多个虚拟机中的第二虚拟机通知上述数据,并且将表示向上述第二虚拟机通知了上述数据的已通知信息通知给上述外部连接部;
上述外部连接部在从上述多个虚拟机中的第三虚拟机接受到向上述外部设备连接的委托的情况下,基于上述已通知信息,判断上述第三虚拟机是否为被通知到上述数据的上述第二虚拟机,在判断为不是被通知到上述数据的第二虚拟机时,许可上述第三虚拟机与上述外部设备之间的连接。
2.如权利要求1所述的信息处理装置,
上述外部连接部在判断为上述第三虚拟机是被通知到上述数据的上述第二虚拟机时,禁止上述第三虚拟机与上述外部设备之间的连接。
3.如权利要求1所述的信息处理装置,
上述外部连接部,
在判断为上述第三虚拟机是被通知到上述数据的上述第二虚拟机时,进一步确定向上述第三虚拟机通知的数据的种类,并判断上述种类是否为连接禁止对象数据的种类;
在判断为上述种类是连接禁止对象数据的种类时,禁止上述第三虚拟机与上述外部设备之间的连接。
4.如权利要求3所述的信息处理装置,
上述通信控制部将上述已通知信息通知给上述外部连接部,上述已通知信息包含分配给被通知到上述数据的上述第二虚拟机的标识符和上述数据的种类;
上述外部连接部进一步,
保持通知数据种类管理表,该通知数据种类管理表用于按照上述多个虚拟机中的每个已被通知到数据的虚拟机即已通知虚拟机,将被分配给该已通知虚拟机的标识符与向该已通知虚拟机通知的数据的种类建立关联来表示;
更新上述通知数据种类管理表,以将从上述通信控制部通知的上述已通知信息中包含的标识符和种类建立关联来表示。
5.如权利要求4所述的信息处理装置,
上述外部连接部,
取得被分配给上述第三虚拟机的标识符;
参照上述通知数据种类管理表,确定与取得的上述标识符建立关联而表示于上述通知数据种类管理表中的种类,由此确定向上述第三虚拟机通知的数据的种类。
6.如权利要求1所述的信息处理装置,
上述通信控制部具备:
判断部,判断从上述第一虚拟机取得的上述数据的种类是否为通知禁止对象数据的种类;以及
控制部,仅在由上述判断部判断为从上述第一虚拟机取得的上述数据的种类不是通知禁止对象数据的种类的情况下,向上述第二虚拟机通知上述数据,并且向上述外部连接部通知上述已通知信息。
7.如权利要求6所述的信息处理装置,
上述控制部在由上述判断部判断为从上述第一虚拟机取得的上述数据的种类为通知禁止对象数据的种类的情况下,禁止向上述第二虚拟机通知上述数据、以及向上述外部连接部通知上述已通知信息。
8.如权利要求7所述的信息处理装置,
上述信息处理装置还具备种类管理部,该种类管理部根据在上述第二虚拟机上执行的程序所使用的功能,设定上述通知禁止对象数据的种类;
上述判断部判断从上述第一虚拟机取得的上述数据的种类是否为由上述种类管理部设定的通知禁止对象数据的种类。
9.如权利要求8所述的信息处理装置,
上述种类管理部进一步,
保持许可种类管理表,该许可种类管理表按照每个功能,将该功能和禁止种类建立关联来表示;
取得在上述第二虚拟机上执行的程序所使用的功能;
通过参照上述许可种类管理表,确定与取得的上述功能建立关联而表示于上述许可种类管理表中的禁止种类,并将确定的上述禁止种类设定为上述通知禁止对象数据的种类。
10.如权利要求9所述的信息处理装置,
上述信息处理装置还具备功能管理部,该功能管理部保持功能管理表,该功能管理表按照上述多个虚拟机所包含的每个虚拟机,将在该虚拟机上执行的程序所使用的功能和被分配给该虚拟机的标识符建立关联来表示;
上述功能管理部通过参照上述功能管理表,确定与被分配给上述第二虚拟机的标识符建立关联而表示于上述功能管理表中的功能,由此确定在上述第二虚拟机上执行的程序所使用的功能;
上述种类管理部取得由上述功能管理部确定的上述功能。
11.如权利要求1所述的信息处理装置,
上述通信控制部,
在向上述第二虚拟机通知从上述第一虚拟机取得的上述数据时,进一步向母虚拟机委托是否可以通知上述数据的判断,上述母虚拟机是上述多个虚拟机中的、委托了上述第二虚拟机的生成的虚拟机;
仅在由上述母虚拟机判断为可以通知上述数据的情况下,向第二虚拟机通知上述数据,并且向上述外部连接部通知上述已通知信息。
12.如权利要求11所述的信息处理装置,
上述信息处理装置还具备母子关系管理部,该母子关系管理部保持母子关系管理表,该母子关系管理表按照上述多个虚拟机所包含的每个虚拟机,将被分配给该虚拟机的子标识符、和被分配给委托了该虚拟机的生成的虚拟机的母标识符建立关联来表示;
上述母子关系管理部通过参照上述母子关系管理表,确定与如下子标识符建立关联而表示于上述母子关系管理表中的母标识符,该子标识符与被分配给上述第二虚拟机的标识符相同;
上述通信控制部判断为被分配了由上述母子关系管理部确定的母标识符的虚拟机为上述母虚拟机,并向上述母虚拟机委托判断。
13.一种信息处理方法,其是搭载多个虚拟机的信息处理装置对信息进行处理的信息处理方法,包括:
外部连接步骤,上述信息处理装置所具备的外部连接部与位于上述信息处理装置的外部的外部设备连接;以及
通信控制步骤,从上述多个虚拟机中的第一虚拟机取得数据,向上述多个虚拟机中的第二虚拟机通知上述数据,并且将表示向上述第二虚拟机通知了上述数据的已通知信息通知给上述外部连接部;
在上述外部连接步骤中,在从上述多个虚拟机中的第三虚拟机接受到向上述外部设备连接的委托的情况下,基于上述已通知信息,判断上述第三虚拟机是否为被通知到上述数据的上述第二虚拟机,在判断为不是被通知到上述数据的第二虚拟机时,许可上述第三虚拟机与上述外部设备之间的连接。
14.一种程序,用于由搭载多个虚拟机的信息处理装置对信息进行处理,使构成上述信息处理装置的计算机执行如下步骤:
外部连接步骤,上述信息处理装置所具备的外部连接部与位于上述信息处理装置的外部的外部设备连接;以及
通信控制步骤,从上述多个虚拟机中的第一虚拟机取得数据,向上述多个虚拟机中的第二虚拟机通知上述数据,并且将表示向上述第二虚拟机通知了上述数据的已通知信息通知给上述外部连接部;
在上述外部连接步骤中,在从上述多个虚拟机中的第三虚拟机接受到向上述外部设备连接的委托的情况下,基于上述已通知信息,判断上述第三虚拟机是否为被通知到上述数据的上述第二虚拟机,在判断为不是被通知到上述数据的第二虚拟机时,许可上述第三虚拟机与上述外部设备之间的连接。
15.一种记录介质,保存如权利要求14所述的程序。
16.一种程序分发系统,经由网络分发程序,具备:
分发服务器,分发至少一个程序;以及
如权利请求1所述的信息处理装置;
上述信息处理装置具备取得部,该取得部取得从上述分发服务器分发的上述至少一个程序;
上述通信控制部将从上述第一虚拟机取得的数据通知给上述至少一个程序中的、在上述第二虚拟机上执行的第一程序;
上述外部连接部从上述至少一个程序中的、在上述第三虚拟机上执行的第二程序,接受向上述外部设备连接的委托。
17.一种半导体集成电路,搭载多个虚拟机,具备:
外部连接部,与位于上述半导体集成电路的外部的外部设备连接;以及
通信控制部,从上述多个虚拟机中的第一虚拟机取得数据,向上述多个虚拟机中的第二虚拟机通知上述数据,并且将表示已向上述第二虚拟机通知了上述数据的已通知信息通知给上述外部连接部;
上述外部连接部在从上述多个虚拟机中的第三虚拟机接受到向上述外部设备连接的委托的情况下,基于上述已通知信息,判断上述第三虚拟机是否为被通知到上述数据的上述第二虚拟机,在判断为不是被通知到上述数据的第二虚拟机时,许可上述第三虚拟机与上述外部设备之间的连接。
CN201180002780.8A 2010-05-07 2011-04-19 信息处理装置、信息处理方法以及程序分发系统 Expired - Fee Related CN102473220B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010107717 2010-05-07
JP2010-107717 2010-05-07
PCT/JP2011/002281 WO2011138852A1 (ja) 2010-05-07 2011-04-19 情報処理装置、情報処理方法、及びプログラム配信システム

Publications (2)

Publication Number Publication Date
CN102473220A true CN102473220A (zh) 2012-05-23
CN102473220B CN102473220B (zh) 2015-06-17

Family

ID=44903708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180002780.8A Expired - Fee Related CN102473220B (zh) 2010-05-07 2011-04-19 信息处理装置、信息处理方法以及程序分发系统

Country Status (5)

Country Link
US (1) US8904518B2 (zh)
EP (1) EP2568408B1 (zh)
JP (1) JP5828081B2 (zh)
CN (1) CN102473220B (zh)
WO (1) WO2011138852A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105849741A (zh) * 2013-12-27 2016-08-10 三菱电机株式会社 信息处理装置、信息处理方法及程序
CN107305498A (zh) * 2016-04-25 2017-10-31 深圳市深信服电子科技有限公司 应用安装方法、控制器及应用安装系统
CN109983448A (zh) * 2016-11-16 2019-07-05 三菱电机株式会社 信息处理装置、设备分配方法及设备分配程序
CN111868687A (zh) * 2018-03-20 2020-10-30 三菱电机株式会社 信息处理装置、方法及程序

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5757536B2 (ja) * 2009-05-19 2015-07-29 セキュリティー ファースト コープ. クラウド内にデータを確保するシステムおよび方法
ES2581548T3 (es) * 2010-08-18 2016-09-06 Security First Corp. Sistemas y procedimientos para asegurar entornos informáticos de máquinas virtuales
JP6086183B2 (ja) * 2012-03-23 2017-03-01 日本電気株式会社 情報処理システム、情報処理方法、サーバ、その制御方法および制御プログラム
EP2834768B1 (en) 2012-04-06 2018-05-09 Security First Corp. Systems and methods for securing and restoring virtual machines
JP5494727B2 (ja) * 2012-05-25 2014-05-21 横河電機株式会社 通信装置
US20130346571A1 (en) * 2012-06-24 2013-12-26 Sergei MAKAVEEV Computer and method of operation of its network
WO2014129184A1 (ja) * 2013-02-21 2014-08-28 日本電気株式会社 仮想化システム
CN104050075B (zh) * 2013-03-11 2017-05-31 百度国际科技(深圳)有限公司 Andriod应用程序的测试方法和装置
US20140281499A1 (en) * 2013-03-15 2014-09-18 Openpeak Inc. Method and system for enabling communications between unrelated applications
US9239920B2 (en) * 2013-04-23 2016-01-19 Qualcomm Incorporated Generation of working security key based on security parameters
US20140359605A1 (en) * 2013-05-30 2014-12-04 Microsoft Corporation Bundle package signing
US9519513B2 (en) 2013-12-03 2016-12-13 Vmware, Inc. Methods and apparatus to automatically configure monitoring of a virtual machine
KR20150084221A (ko) * 2014-01-13 2015-07-22 삼성전자주식회사 어플리케이션 패키지의 재서명 장치, 방법 및 상기 어플리케이션 패키지를 실행하는 단말장치
US9678731B2 (en) 2014-02-26 2017-06-13 Vmware, Inc. Methods and apparatus to generate a customized application blueprint
US9424059B1 (en) * 2014-03-12 2016-08-23 Nutanix, Inc. System and methods for implementing quality of service in a networked virtualization environment for storage management
US9559950B2 (en) * 2014-03-31 2017-01-31 Tigera, Inc. Data center networks
US9813258B2 (en) 2014-03-31 2017-11-07 Tigera, Inc. Data center networks
US9344364B2 (en) * 2014-03-31 2016-05-17 Metaswitch Networks Ltd. Data center networks
EP2933070A1 (en) * 2014-04-17 2015-10-21 Aldebaran Robotics Methods and systems of handling a dialog with a robot
US20150378763A1 (en) 2014-06-30 2015-12-31 Vmware, Inc. Methods and apparatus to manage monitoring agents
US10117256B2 (en) * 2015-03-13 2018-10-30 Federated Wireless, Inc. System and method for spectrum sharing and interference management between wireless systems
CN107924440B (zh) * 2015-08-21 2022-07-01 密码研究公司 用于管理容器的方法、系统和计算机可读介质
US11360824B2 (en) * 2019-11-22 2022-06-14 Amazon Technologies, Inc. Customized partitioning of compute instances
US11475131B2 (en) * 2020-01-27 2022-10-18 Red Hat, Inc. Hypervisor level signature checks for encrypted trusted execution environments
JP7440350B2 (ja) * 2020-06-11 2024-02-28 日立Astemo株式会社 電子制御装置、制御方法
EP4309335A4 (en) * 2021-03-19 2024-03-13 Telefonaktiebolaget LM Ericsson (publ) DATA MANAGEMENT IN A NETWORK FUNCTION

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1327315A (zh) * 2000-04-11 2001-12-19 索尼株式会社 通信系统、通信方法、分配装置、分配方法和终端设备
WO2009025166A1 (ja) * 2007-08-20 2009-02-26 Nec Corporation アクセス制御システム
US20090307705A1 (en) * 2008-06-05 2009-12-10 Neocleus Israel Ltd Secure multi-purpose computing client

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3607540B2 (ja) 1999-08-18 2005-01-05 エヌイーシーシステムテクノロジー株式会社 プログラム単位メモリアクセス属性管理方式
US6662230B1 (en) * 1999-10-20 2003-12-09 International Business Machines Corporation System and method for dynamically limiting robot access to server data
JP2005011336A (ja) 2003-05-29 2005-01-13 Matsushita Electric Ind Co Ltd オペレーティングシステム切り替え可能な情報処理装置
US7503049B2 (en) 2003-05-29 2009-03-10 Panasonic Corporation Information processing apparatus operable to switch operating systems
US7996834B2 (en) * 2006-04-14 2011-08-09 Microsoft Corporation Virtual machine self-service restrictions
US20080022376A1 (en) * 2006-06-23 2008-01-24 Lenovo (Beijing) Limited System and method for hardware access control
US7634608B2 (en) * 2006-06-30 2009-12-15 Sun Microsystems, Inc. Bridging network components
US7840801B2 (en) * 2007-01-19 2010-11-23 International Business Machines Corporation Architecture for supporting attestation of a virtual machine in a single step
US8875266B2 (en) * 2007-05-16 2014-10-28 Vmware, Inc. System and methods for enforcing software license compliance with virtual machines
US8949827B2 (en) * 2007-06-22 2015-02-03 Red Hat, Inc. Tracking a virtual machine
US8505029B1 (en) * 2007-11-26 2013-08-06 Adobe Systems Incorporated Virtual machine communication
US20090193173A1 (en) * 2008-01-28 2009-07-30 Microsoft Corporation Secure virtual environment for providing tests
KR20090121712A (ko) * 2008-05-22 2009-11-26 삼성전자주식회사 가상화 시스템 및 그 가상화 시스템에서의 컨텐트 사용제한 방법
JP5251385B2 (ja) * 2008-09-16 2013-07-31 富士通株式会社 イベント検出システム、イベント検出方法、およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1327315A (zh) * 2000-04-11 2001-12-19 索尼株式会社 通信系统、通信方法、分配装置、分配方法和终端设备
WO2009025166A1 (ja) * 2007-08-20 2009-02-26 Nec Corporation アクセス制御システム
US20090307705A1 (en) * 2008-06-05 2009-12-10 Neocleus Israel Ltd Secure multi-purpose computing client

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105849741A (zh) * 2013-12-27 2016-08-10 三菱电机株式会社 信息处理装置、信息处理方法及程序
CN107305498A (zh) * 2016-04-25 2017-10-31 深圳市深信服电子科技有限公司 应用安装方法、控制器及应用安装系统
CN107305498B (zh) * 2016-04-25 2020-12-01 深信服科技股份有限公司 应用安装方法、控制器及应用安装系统
CN109983448A (zh) * 2016-11-16 2019-07-05 三菱电机株式会社 信息处理装置、设备分配方法及设备分配程序
CN109983448B (zh) * 2016-11-16 2023-01-13 三菱电机株式会社 信息处理装置、设备分配方法及计算机可读取的存储介质
CN111868687A (zh) * 2018-03-20 2020-10-30 三菱电机株式会社 信息处理装置、方法及程序
CN111868687B (zh) * 2018-03-20 2021-09-17 三菱电机株式会社 信息处理装置、方法及程序

Also Published As

Publication number Publication date
CN102473220B (zh) 2015-06-17
EP2568408A4 (en) 2013-08-07
EP2568408B1 (en) 2016-05-18
US8904518B2 (en) 2014-12-02
WO2011138852A1 (ja) 2011-11-10
JP5828081B2 (ja) 2015-12-02
US20120117566A1 (en) 2012-05-10
EP2568408A1 (en) 2013-03-13
JPWO2011138852A1 (ja) 2013-07-22

Similar Documents

Publication Publication Date Title
CN102473220B (zh) 信息处理装置、信息处理方法以及程序分发系统
CN102656561A (zh) 信息处理装置、虚拟机生成方法及应用发布系统
CN103748594B (zh) 针对arm*trustzonetm实现的基于固件的可信平台模块
EP2795829B1 (en) Cryptographic system and methodology for securing software cryptography
EP2515239A1 (en) Information processing apparatus
CN108781210A (zh) 具有可信执行环境的移动设备
US10325109B2 (en) Automatic and dynamic selection of cryptographic modules for different security contexts within a computer network
Burns Developing secure mobile applications for android
CN106326691B (zh) 加解密功能的实现方法、装置及服务器
CN107196907A (zh) 一种安卓so文件的保护方法及装置
CN107430650A (zh) 保护计算机程序以抵御逆向工程
JP4664055B2 (ja) プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法
Cooijmans et al. Secure key storage and secure computation in Android
CN112363771B (zh) 应用程序的处理方法及相关产品
Kumbhar et al. Hybrid Encryption for Securing SharedPreferences of Android Applications
CN109784085B (zh) 虚拟网络应用实现方法及管理系统、计算机可读存储介质
KR20070074935A (ko) 모바일 컨텐츠의 불법 복제 방지를 위한 컨텐츠 검증 방법
JP2007067890A (ja) データロード方法、プログラム及び端末装置
Maulick A Comparison of the Usability of Security Mechanisms Provided by Ios and Android
Kim et al. Self‐Controllable Mobile App Protection Scheme Based on Binary Code Splitting
Holoubková Rešerše a ukázka zabezpečení platformy (TPM)
Gadellaa et al. Fault attacks on java card
CN112860306A (zh) 文件生成方法和装置、文件运行方法和装置、电子设备
Roy et al. Universal Sim Card using TSM
Francis A Practical Example of Mobile Phone Application Using SATSA (JSR 177) API

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151009

Address after: Osaka Japan

Patentee after: PANASONIC INTELLECTUAL PROPERTY MANAGEMENT Co.,Ltd.

Address before: Osaka Japan

Patentee before: Matsushita Electric Industrial Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150617

Termination date: 20190419