信息处理装置、信息处理方法和计算机程序的制作方法

文档序号:6497993阅读:95来源:国知局
信息处理装置、信息处理方法和计算机程序的制作方法
【专利摘要】本发明提供一种信息处理装置,其使得要独立于彼此执行的各个连续顺序类型数据处理模块能够彼此结合安全地工作。本发明提供了一种信息处理装置,其配备有第一程序执行单元,该第一程序执行单元读取、解释和执行由过程语言创建的计算机程序代码,其中,第一程序执行单元具有至少一个端口,并且经由该端口,在获得与第二程序执行单元的认证之后,第一程序执行单元执行过程语言创建的并且要由第二程序执行单元执行的第二计算机程序。
【专利说明】信息处理装置、信息处理方法和计算机程序

【技术领域】
[0001]本公开涉及一种信息处理装置、信息处理方法和计算机程序。

【背景技术】
[0002]在诸如LISP、Ruby和Python的过程编程语言中,变量和函数定义信息在程序运行时加载,并且基于所加载的函数定义和变量值而执行该程序。解释和执行这样的过程编程语言的软件(顺序执行数据处理模块)在每次激活软件时加载以过程编程语言阐述的应用程序,此后根据所加载的应用程序而处理输入数据并输出处理结果。
[0003]解释和执行过程编程语言的软件的特性在于,如果输入定义变量名,则可读出该变量的内容。同样地,如果输入读出定义函数的函数,则可输出该函数代码。
[0004]在过去,计算机系统架构涉及:将所请求的规范(specificat1n)分解成用于各个任务的功能模块,从开始定义模块控制指令和通信手段,以及使用编译器来实现构造。在功能模块开发中,在功能模块中使用编程代码而从开始定义模块的行为或者通过使用在并入系统之前经历了编译、链接和调试的序列的预定义代码来定义模块的行为。
[0005]引用列表
[0006]专利文献
[0007]专利文献I JP 2011-513824T
[0008]专利文献2:W0 2005/121976


【发明内容】

[0009]技术问题
[0010]在现有技术的计算机系统架构中,要生成的功能模块的特性、通信手段和指令格式都是单独确定的,并且调试和校正是费时的。例如,甚至在将数据处理责任划分成多个功能模块以及经由网络利用通信的开发情况下,改变每个功能模块的行为也需要重新编程以及对模块安全的谨慎实现,从而使得难以降低开发成本。
[0011]此外,在功能模块中实现安全功能在一些情况下可涉及通过将该模块的代码保密而维持安全性,但是存在如下问题:在各个独立执行的顺序执行数据处理模块之间没有执行认证处理,并且涉及代码改变的许多人能够学习到代码,从而使得难以保证安全性。
[0012]因此,本公开是鉴于以上问题而想到的,并且本公开的目的是提供一种能够安全地链接各个独立执行的顺序执行数据处理模块的新颖且改进的信息处理装置、信息处理方法和计算机程序。
[0013]问题的解决方案
[0014]根据本公开,提供了一种信息处理装置,其包括:第一程序执行单元,加载、解释和执行由过程语言创建的计算机程序的代码。第一程序执行单元包括至少一个端口,并且经由该端口,在与第二程序执行单元进行认证之后,第一程序执行单元执行由第二程序执行单元执行的过程语言创建的第二计算机程序。
[0015]此外,根据本公开,提供了一种信息处理方法,其包括:由包括至少一个端口的第一程序执行单元加载、解释和执行由过程语言创建的计算机程序的代码。在与第二程序执行单元进行认证之后,该执行经由该端口并且由第一程序执行单元执行由第二程序执行单元执行的过程语言创建的第二计算机程序。
[0016]此外,根据本公开,提供了一种使得计算机执行以下处理的计算机程序:由包括至少一个端口的第一程序执行单元加载、解释和执行由过程语言创建的计算机程序的代码。在与第二程序执行单元进行认证之后,该执行经由该端口并且由第一程序执行单元执行由第二程序执行单元执行的过程语言创建的第二计算机程序。
[0017]本发明的有利效果
[0018]根据如上所述的本公开,可以提供能够安全地链接各个独立执行的顺序执行数据处理模块的新颖且改进的信息处理装置、信息处理方法和计算机程序。

【专利附图】

【附图说明】
[0019]图1是示出根据本公开的实施例的信息处理系统10的功能配置的说明图。
[0020]图2是示出根据本发明的实施例的信息处理装置100执行的计算机程序的示例性结构的说明图。
[0021]图3是示出根据本发明的实施例的信息处理装置100执行的计算机程序的示例性结构的说明图。
[0022]图4是示出根据本发明的实施例的信息处理装置100执行的计算机程序的示例性结构的说明图。
[0023]图5是示出根据本发明的实施例的信息处理装置100执行的计算机程序的示例性结构的说明图。
[0024]图6是示出图2所示的符号、图3所示的构造单元(cons cells)、图4所示的名称存储表和图5所示的认证密钥表之间的对应关系的说明图。
[0025]图7是示出根据本公开的实施例的信息处理装置100或200执行的计算机程序的概况的说明图。
[0026]图8是示出根据本公开的实施例的包括顺序执行数据处理模块的设备的示例性配置的说明图。
[0027]图9是示出用于设备之间的相互认证的相互认证结构的示例的说明图。
[0028]图10是概念性地示出在各个设备中运行的同一顺序执行数据处理模块的链接的说明图。
[0029]图11是示出根据本公开的实施例的包括顺序执行数据处理模块的设备的示例性配置的说明图。

【具体实施方式】
[0030]在下文中,将参照附图详细描述本发明的优选实施例。注意,在该说明书和附图中,具有基本上相同的功能和结构的元件以相同的附图标记来表示,并且省略重复说明。[0031 ] 在下文中,将按以下顺序进行描述。
[0032]〈1.现有技术及其问题〉
[0033]〈2.本公开的实施例>
[0034][信息处理系统的功能配置]
[0035][程序结构示例]
[0036][使用情况示例]
[0037]<3.结论〉
[0038]〈1.现有技术及其问题〉
[0039]首先,在详细描述本公开的优选实施例之前,将描述本公开的现有技术及其问题。如先前所讨论的,在先前的计算机系统架构中,将所请求的规范分解为用于各个任务的功能模块,从开始定义模块控制指令和通信手段,并且通过使用编译器进行编译,实现了系统的架构。在功能模块开发中,在功能模块中使用编程代码从开始定义功能模块的行为或者替选地通过使用在被合并到系统中之前经历了编译、链接和调试的序列的预定义代码来定义功能模块的行为。
[0040]对于此时生成的功能模块,分别确定属性、通信手段和指令格式,从而需要反复进行类似测试,并且系统的调试和校正是费时的。
[0041]另外,甚至在根据划分成多个执行模块并且经由网络进行通信的方案进行开发的情况下,改变每个功能模块的行为也必须从重新编程开始。此外,当在执行模块中实现稍后讨论的安全功能时,需要谨慎地实现该安全功能。因此,存在开发成本几乎没有降低的问题。
[0042]另外,当合并安全功能时,在一些情况下,通过将该代码保密来维持安全性,但是存在如下问题:在需要代码校正的情况下,涉及对该执行模块的改变的许多开发者将学习到关于该安全功能的信息。
[0043]近年来,正创建使用脚本语言来改进这些问题的机制。然而,通过使用键盘加载记录在系统中设置的硬盘等上的文件来实现加载脚本,并且具有用于通过网络安全地加载脚本以及安全地链接多个数据处理模块的功能的脚本处理模块不存在。
[0044]存在如下系统:其执行由执行脚本的脚本处理模块实现的代码以及在进行网络通信时协调操作,但是先进的远程可控脚本处理模块(诸如连接到网络并且经由所连接的网络针对在连接的另一端的另一脚本处理模块构建脚本程序的模块)不存在,并且远程对程序安全地进行改变是不可能的。
[0045]使用编译语言来构建使得能够通过简单地改变初始化文件自由地改变一个执行模块的行为的架构易于产生缺陷,诸如增加冗余和浪费以及缺乏所需部件。另外,当开发安全应用时,在期望维持兼容性同时还隐藏相互认证或其它安全算法的情况下,需要公开安全算法与所存在的应用相同的次数,从而使得难以保持安全性高。
[0046]因此,下文中描述的本公开的优选实施例示出了如下顺序执行数据处理模块:其能够扩展顺序执行数据处理模块的功能以及通过将事务(transact1n)分散给多个模块同时还在这些模块当中执行认证处理而以分散的责任执行事务。
[0047]<2.本公开的实施例>
[0048][信息处理系统的功能配置]
[0049]首先,将描述根据本公开的实施例的信息处理系统的功能配置。图1是示出根据本公开的实施例的信息处理系统10的功能配置的说明图。在下文中,图1将用于描述根据本公开的实施例的信息处理系统10的功能配置。
[0050]如图1所示,根据本公开的实施例的信息处理系统10包括执行程序的信息处理装置100、非易失性随机存取存储器(NVRAM) 150、输入单元160、显示单元170、外部存储装置180 和接口 (I/F) 190 ο
[0051]信息处理装置100被配置成能够解释和执行过程编程语言。这样的编程语言可以是例如 LISP、Scheme、Ruby 或者 Python。
[0052]如图1所示,信息处理装置100包括中央处理单元(CPU) 110、加密/解密单元120、ROMl30 和 RAM140。
[0053]CPUl 10控制信息处理装置100的操作,并且通过执行用于预记录在R0M130中的操作系统软件的读出指令,CPUllO能够执行该操作系统。当执行操作系统时,CPUllO可使用RAM140作为工作区域。在这里,记录在R0M130中的操作系统能够解释和执行例如如先前讨论的过程编程语言。注意,在本公开中,过程程序也可从外部存储装置180来加载和执行。
[0054]从根据本实施例的信息处理装置100的R0M130加载的程序除了安全功能之外,还存储了经由解释器处理的以上过程编程语言的基本功能。结果,当将应用程序安装在信息处理装置100上时,不需要预先编译,并且此外添加了安全功能,从而使得可以利用信息处理装置100本身来调试程序。因此,这导致开发步骤的缩短,从而在短时期内实现应用程序的开发。
[0055]加密/解密单元120使用指定密钥对输入数据执行加密处理并且输出,并且使用指定密钥对输入的加密数据执行解密处理并且输出。在本实施例中,当将源代码保存到外部存储装置180时对源代码进行加密,并且对以加密状态存储在外部存储装置180中的源代码进行解密。加密/解密单元120用于对源代码进行加密和解密的密钥存储在NVRAM150中。
[0056]输入单元160连接到信息处理装置100,并且接收对信息处理装置100的用户输入操作。输入单元160可以由例如键盘、鼠标、触摸面板等构成。显示单元170连接到信息处理装置100,并且基于CPUllO的处理而显示来自信息处理装置100的CPUllO的信息处理结果。显示单元170可由例如液晶显示器、有机EL显示器或者其它平板显示装置构成。
[0057]外部存储装置180连接到信息处理装置100,并且存储信息处理装置100使用的各种数据。显示单元170可由例如硬盘构成。
[0058]在本实施例中,外部存储装置180存储能够解释和执行过程编程语言的顺序执行数据处理模块(下文中也称为“列表处理模块”)和由顺序执行数据处理模块加载和执行的源代码。该源代码以被加密/解密单元120加密的状态来存储。以被加密/解密单元120加密的状态存储源代码实现了源代码的更高机密性。
[0059]接口 190是用于将信息处理装置100连接到其它装置和设备的接口,并且由例如串行接口、并行接口等构成。图1示出了信息处理装置100经由接口 190连接到IC卡读取器/写入器20以及连接到网络30的信息处理装置200的状态。
[0060]在本实施例中,信息处理装置200也包括与图1所示的信息处理装置100的配置类似的配置,并且列表处理模块能够加载源代码并执行脚本。
[0061]注意,在图1中,NVRAM150、输入单元160和显示单元170被示出为设置于信息处理装置100外部,但是本公开不限于这样的示例。换言之,NVRAM150、输入单元160和显示单元170中的至少一个也可包括设置于信息处理装置100内部的配置。上述如此使用图1描述了根据本发明的实施例的信息处理装置100的硬件配置。接下来,将描述由图1所示的信息处理装置100执行的计算机程序的结构。
[0062][程序结构示例]
[0063]图2至图5是示出根据本发明的实施例的信息处理装置100执行的计算机程序的示例性结构的说明图。在下文中,图2至图5将用于描述根据本发明的实施例的信息处理装置100执行的计算机程序的示例性结构。
[0064]注意,在以下描述中,除非具体相反阐述,否则LISP被假设为信息处理装置100执行的计算机程序的语言。然而,在本公开中,可用作编程语言的语言不限于这样的示例,并且可使用任何过程编程语言,只要该语言可被配置成使得在扩展功能或标准功能中,安全可独立于每个变量和每个函数来配置即可。
[0065]当执行计算机程序时,CPU120加载用于解释和执行由信息处理装置100开发的并且安装在信息处理装置100上的程序的源代码的列表处理模块。图2是示出可由列表处理模块定义的称为符号的数据结构的说明图。
[0066]如图2所示,可由列表处理模块定义的符号400由名称区域401、变量定义区域402、函数定义区域403和安全属性区域404构成。
[0067]名称区域401指向可打印字符表。如果该符号定义了变量,则名称区域401存储变量名,并且如果定义了函数,则名称区域401存储函数名。在图2中,名称区域401由“pname”来指不。
[0068]如果符号定义了简单变量,则变量定义区域402存储其值,而如果定义了列表变量,则存储转向列表的值。在图2中,变量定义区域402由“value(值)”来指示。
[0069]如果符号定义了函数,则函数定义区域403存储该函数本身。在图3中,函数定义区域403由“funct1n (函数)”来指示。
[0070]安全属性区域404存储与该符号的安全属性有关的信息。安全属性可以是例如读取变量属性、改变变量属性或执行函数属性。安全属性区域404存储指示对该符号的访问权利的访问标志和指向存储用于访问该符号的认证密钥的表的值。
[0071]除了图2所示的符号400之外,称为用于构造列表结构的构造单元的单元被连续定义。图3是示出用于构造列表结构的构造单元410的示例性配置的说明图。如图3所示,构造单元410是由称为car槽411和cdr槽412的两个指针构成的对象。图3示出了 carO至car9作为car槽411以及cdrO至cdr9作为cdr槽412。显然,各个槽的数量不限于这样的示例。
[0072]还提供了用于存储符号400的名称区域401中存储的名称的表。图4是示出用于存储符号400的名称区域401中存储的名称的名称存储表420的示例性结构的说明图。在图4所示的名称存储表420中,存储名称“eVal”、“Setq”、“COnS”、“defun”和“OSaifu”,并且与其实际符号存在一对一对应关系。标记421是存储名称“eval”的区域,标记422是存储名称“setq”的区域,标记423是存储名称“cons”的区域,标记424是存储名称“defun”的区域,并且标记425是存储名称“osaifu”的区域。如果来自名称存储表420外部的符号名称被输入到名称存储表420中,则指向并且评估与存储在名称存储表420中的输入符号名称对应的符号。注意,在电子货币功能安装在信息处理装置100上的情况下,“osaifu”被认为是指示电子货币余额(electronic money balance)的变量。
[0073]另外,提供了与存储在符号400的安全属性区域404中并且指向存储认证密钥的表的值对应的表。图5是示出存储认证密钥的认证密钥表430的示例性结构的说明图。图5示出了由认证密钥表430中的版本号(kvl至kv5)管理认证密钥的状态。标记431是存储密钥“keyl”的区域,标记432是存储密钥“key2”的区域,标记433是存储密钥“key3”的区域,标记434是存储密钥“key4”的区域,并且标记435是存储密钥“key5”的区域。
[0074]图6是示出图2所示的符号、图3所示的构造单元、图4所示的名称存储表和图5所示的认证密钥表之间的对应关系的说明图。如先前所讨论的,符号具有指向可打印名称的表的区域、指向值或值的列表的区域、函数属性和安全属性。函数属性具有函数类型和指向函数本身的指针。安全属性具有安全标志、密钥版本和指向密钥的指针。注意,图6示出了如何使用图5所示的认证密钥表430中的标记431指示的密钥“keyl”和标记432指示的密钥“key2”。
[0075]以此方式,列表处理模块的一般结构称为符号,并且由关于数值或保持数值的列表的指针、如果是函数定义则是关于函数的指针以及指向存储可打印字符串的表的指针构成。
[0076]此外,在本实施例中,除了以上之外,安全属性和关于保持两种类型的加密密钥信息的表的指针被添加到符号。关于第一密钥的指针指示主密钥,而关于其它密钥的指针指示用于该符号的访问密钥(认证密钥)。在改变该符号的安全属性或访问密钥的情况下,主密钥指示要预先通过相互认证进行认证的密钥。在保持在该符号中的信息的内容评估或内容修改或者函数执行期间提高为该符号设置的安全标志的情况下,利用添加到符号的第一密钥的认证变成用于使用该符号的条件。在改变用于该符号的密钥的情况下,其它密钥指示检查其权利的权利认证密钥。在利用该权利认证密钥进行认证的同时,必须进行访问信息的修改。
[0077]另外,存在如图3所示的称为表示符号与符号之间的关系的构造单元的两组指针。每个指针被构造为指向指示符号或另一符号的构造单元。
[0078]内置函数被写入到R0M130,并且在信息处理装置100第一次接通电源时,写入到ROMl30的内置函数被定义在RAM140中创建的符号中。在随后接通电源时,不对已登记符号进行初始化。
[0079]甚至在用户登记新函数的情况下,以上配置也被构造为类似地起作用。
[0080]CPUllO执行的列表处理模块被配置成能够自由地登记符号以及在该符号中自由地登记数值、列表或函数。另外,为了将安全功能施加于所登记的符号,加密密钥和访问标志被登记在该符号中。在CPUllO执行的列表处理模块中,称为系统密钥的加密密钥被初始设置。仅在处于使用该系统密钥的相互认证模式中时,新登记的符号可设置有对于该符号唯一的密钥和访问标志。另外,CPUllO执行的列表处理模块执行的计算机程序被配置成能够改变所使用的变量或函数定义,只要状态仍然是使用系统密钥的相互认证模式即可。
[0081]当登记函数符号时,CPUllO登记的列表处理模块经受该函数所使用的所有符号以所有密钥来认证的登记条件。另外,列表处理模块被构造成使得在使用该登记的函数的随后情况下,利用该函数执行密钥简单地进行认证就足够。
[0082]上述如此描述了图1所示的信息处理装置100执行的计算机程序的结构。接下来,将详细描述信息处理装置100或200执行的计算机程序。
[0083]图7是示出根据本公开的实施例的信息处理装置100或200执行的计算机程序的概况的说明图。在下文中,图7将用于描述根据本公开的实施例的信息处理装置100或200执行的计算机程序的概况。
[0084]顺序解释语言具有称为顶层(top level)的读取-求值-打印循环(read-eval-print loop, REPL)作为交互模式。如果从连接到信息处理装置100的显示单元170输入指令,则通过该REPL读取(read)、求值(eval)和输出(打印)该指令。
[0085]在本实施例中,信息处理装置100输入的函数将脚本输出到信息处理装置200,接收信息处理装置200上的求值(eval)结果,并且作为信息处理装置100上的结果而输出(打印)。在连接到信息处理装置200的外部设备提供类似的顺序解释语言输入的情况下,重复该REPL。
[0086]假设顺序解释语言的函数或定义变量被构造成例如具有先前讨论的访问控制标志,并且在例如读出外部设备定义的变量或函数或者改变变量或函数的定义的情况下请求该认证。例如,在试图利用信息处理装置100的顺序解释功能模块执行由存储在信息处理装置200中的脚本B定义的变量或函数的情况下,假设请求信息处理装置100与信息处理装置200之间的相互认证。反过来也是类似的。
[0087]假设信息处理装置100和信息处理装置200具有类似结构,并且通信I/F1在本地端口与网络通信端口之间切换并且具有认证模式。图7示出了连接到本地端口的状态下的信息处理装置100和连接到网络通信端口的状态下的信息处理装置200。
[0088]例如,先前讨论的变量“ osaifU ”是存储电子货币余额的变量,但是在定义该变量的脚本保存在例如信息处理装置200上的情况下,如果信息处理装置100的顺序解释功能模块试图参考该变量,则信息处理装置100的顺序解释功能模块将不能参考该变量,除非信息处理装置100和信息处理装置200是相互认证的。
[0089]在稍后讨论的函数“authl”成功时,通信I/F1的模式从模式O转变为模式1,同样地在稍后讨论的函数“auth2”成功时从模式I转变为模式2。另外,通信I/F2在稍后讨论的函数“ex-authl”成功时从模式O转变为模式1,同样地在稍后讨论的函数“eX_auth2”成功时从模式I转变为模式2。这里,函数“authl”由函数“ex-authl”通过EVAL生成,并且函数“auth2”由函数“ex-auth2”以相同方式生成。函数“authl”和“auth2”经由通信I/F2被发送到网络通信端口。
[0090]在函数“eX_auth2”成功时从模式I转变为模式2之后,信息处理装置100的通信I/F2扩展与信息处理装置200的通信I/F1的加密通信会话。在信息处理装置100的通信I/F2与信息处理装置200的I/F1之间扩展了加密通信会话之后,对通过EVAL发送的传送消息进行加密,并且对所接收的消息进行解密。类似地,如果信息处理装置200的通信I/Fl也在函数“ex-auth2”成功时转到模式2,则与信息处理装置100的通信I/F2建立加密通信会话。在信息处理装置200的通信I/F1与信息处理装置100的通信I/F2建立了加密通信会话之后,通过对接收消息进行解密以及对传送消息进行加密,与信息处理装置100的通信I/F2的加密通信成为可能。
[0091]在本实施例中,如信息处理装置200 —样通信I/F1连接到网络的状态称为下属模式(min1n mode)。在下属模式中,可使用来自处于普通模式(称为正常模式)的设备的过程函数“请求”来发送脚本,并且正常模式中的设备能够从处于下属模式的设备获得结果。另外,可经由网络而不是经由连接到设备的键盘而从任何设备访问切换到下属模式的设备。因此,下属模式限制了顺序解释功能模块中的过程函数的行为。
[0092]通信I/F1和2在认证模式O和I期间以明文彼此通信,但是在切换到认证模式2之后,通过相互认证的交换而获得的随机数字用于加密通信,其中一个用作会话密钥并且另一用作初始值。注意,认证方案使用如下方案:其利用以上配置以同时对多个符号进行认证。
[0093]数据结构定义例如以16个字节为块的结构。数据输入以例如十六进制输入被表不为“#_nnnn...”,并且在base64的情况下被表不为“#~nnnn…”。
[0094]例如,3位的安全标志被添加到符号,并且限制了函数eval、mod和exe的功能。另外,以上16字节的块数据被视为认证密钥,并且关于该密钥的指针数据被添加到符号。
[0095]假设认证条件是对于安全锁定变量、函数使用或评估,每个符号必须在内部相互认证(authl、auth2)的模式2中或者在外部认证(ex-authl)的模式I中。
[0096]假设对标准命令的功能限制禁止了执行,除非由“定义”函数定义的函数使用的全局变量和函数是已定义的并且已通过了所需认证。另外,假设使用处于安全锁定争议下的函数或变量是不可用的,除非该变量是已认证的。在经过网络通信的情况下,假设为了使用顶层的“define (定义)”函数, 通信I/F1的模式必须是模式2。假设设置有安全标志的函数或变量是不可用的,除非在执行或评估时已进行了认证。
[0097]在本实施例中,与在装置中执行脚本有关的函数命令被定义为例如如下。显然,命令的名称和功能不限于以下所指示的这些。
[0098]undef:删除由“定义”函数定义的函数或变量
[0099]start-min1n:连接作为脚本的读取输入和打印输出的特定网络地址端口的套接字(socket)
[0100]conn-min1n:将特定网络地址的端口连接到其它设备的通信套接字
[0101]request:将脚本传送到处于下属模式的设备并且接收结果
[0102]setsym:将安全属性添加到符号
[0103]authl:使用属于符号的认证密钥和来自随机数字的消息代码进行认证
[0104]auth2:基于通过“authl”交换的数据而再次交换数据以及相互认证
[0105]ex-authl:生成“authl”函数,传送到处于下属模式的设备,接收/分析结果,以及存储在内部
[0106]ex-auth2:使用通过“ex-authl”命令接收和分析的内容,另外生成m4并且合并到“auth2”命令中,以及传送到处于下属模式的设备
[0107]backup:将加载和定义的变量、函数和安全属性写入到文件作为初始化文件
[0108]假设关于函数的功能限制是使得以上函数“ ex-auth I ”和“ ex-auth2 ”的使用需要在下属模式中由系统密钥进行认证。注意,在正常模式的情况下,假设当使用函数“ ex-auth I ”和“ ex-auth2 ”时不需要认证。通过以此方式限制函数“ ex-auth I ”和“eX-auth2”的使用,可以防止经由网络的使用外部设置的密钥的未授权认证。
[0109]另外,假设函数“加载(load) ”的使用需要在下属模式中由系统密钥进行认证。注意,在正常模式的情况下,假设当使用函数“加载”时不需要认证。通过以此方式限制函数“加载”的使用,可以防止经由网络根据另一外部初始化文件进行未授权修改。
[0110]另外,假设函数“备份(backup) ”的使用需要在下属模式由系统密钥进行认证。通过以此方式限制函数“备份”的使用,可以防止未授权的远程备份。
[0111]假设文件使用限制是使得利用函数“加载”所加载的初始化文件在列表处理模块的执行期间保持被锁定。结果,可以防止从多个模块加载同一初始化文件以及由于被修改而导致内容变得有争议。
[0112]在根据本实施例的合并了执行模块的信息处理装置中,在存在用于连接到外部设备的两个或更多个外部连接端口的情况下,例如,一个端口可假设为保持认证密钥的安全卡,而另一端口可假设为通向进行控制同时使用由安全卡认证的函数进行加密通信的外部设备。以此方式,在根据本实施例的合并了执行模块的信息处理装置中,甚至在存在用于连接到外部设备的两个或更多个连接端口的情况下,也可以消除认证密钥被暴露于外部的风险。
[0113]图8是示出根据本公开的实施例的合并了顺序执行数据处理模块的设备的示例性配置的说明图。图8示出了 IC卡501、读取器/写入器(R/W) 502、控制器510和520以及服务器530和540。
[0114]IC卡501与读取器/写入器(R/W) 502执行RF近场通信。具有有限资源的顺序执行数据处理模块安装在IC卡501的内部存储器(未示出)中。例如,如果IC卡501是具有电子货币功能的IC卡,则电子货币程序和用于执行该程序的操作密钥被配置在内部存储器中。
[0115]读取器/写入器(R/W) 502连接到控制器510,并且与IC卡501执行RF近场通信。顺序执行数据处理模块安装在连接到读取器/写入器(R/W)502的控制器510中,并且控制器510保持操作在配置在IC卡501中的程序中定义的变量和函数的密钥以及IC卡501的处理历史。
[0116]控制器510控制读取器/写入器(R/W)502的操作。输入单元512、显示单元513和HDD514连接到控制器510。顺序执行数据处理模块安装在控制器510中,并且初始化和激活读取器/写入器(R/W)502以及将保存在读取器/写入器(R/W)502中的电子货币处理记录上载到控制器510的功能由脚本语言来配置。
[0117]控制器510包括两个或更多个通信端口。图8示出了分别地端口 O连接到读取器/写入器(R/W)502并且端口 I连接到控制器520的状态。控制器510成为以读取器/写入器(R/W) 502为目标的启动器,而读取器/写入器(R/W) 502用作RF近场通信中的启动器,并且在连接的另一端的IC卡501成为目标。
[0118]如图8所示,控制器520配备有输入单元522、显示单元523和HDD524。控制器520包括三个或更多个通信端口。图8示出了分别地端口 O连接到控制器510、端口 I连接到服务器530并且端口 2连接到服务器540的状态。
[0119]如图8所示,服务器530配备有输入单元532、显示单元533和HDD534。类似地,如图8所示,服务器540配备有输入单元542、显示单元543和HDD544。服务器530和540分别包括一个或多个端口。图8示出了各个端口 O连接到控制器520的状态。
[0120]图8示出了如下状态:控制器510以正常模式工作,而控制器520以及服务器530和540以下属模式工作。控制器510以正常模式工作而控制器520以下属模式工作,并且如果在控制器510与控制器520之间完成了相互认证的状态中,变得可以从控制器510来执行安装在控制器520中的函数,并且变得可以从控制器510来修改安装在控制器520中的脚本。
[0121]另外,在处于已完成了控制器510与控制器520之间的相互认证的状态时,如果另外处于已完成了控制器520与服务器530之间的相互认证的状态下,则变得可以从控制器510来执行安装在服务器530中的函数,并且变得可以从控制器510来修改安装在服务器530中的脚本。类似地,在处于完成了控制器510与控制器520之间的相互认证的状态时,如果另外处于完成了控制器520与服务器540之间的相互认证的状态下,则变得可以从控制器510来执行安装在服务器540中的函数,并且变得可以从控制器510来修改安装在服务器540中的脚本。
[0122]以此方式,通过在设备之间进行相互认证,可以从以正常模式工作的设备执行安装在以下属模式工作的设备中的脚本,并且还可以重写该脚本。
[0123]图9是示出用于设备之间的相互认证的相互认证结构的示例的说明图。图9示出了在信息处理装置100与信息处理装置200之间的相互认证期间的相互认证结构。示出了如下示例:其中,信息处理装置100和信息处理装置200通过在信息处理装置100和信息处理装置200中的每个上生成加密密钥以及通过利用这些加密密钥相互地加密和解密来彼此相互进行认证。
[0124]例如,信息处理装置100中的数据“_ra”以信息处理装置100的加密密钥来加密并且被发送到信息处理装置200,以信息处理装置200的加密密钥被解密和取回,另外,以信息处理装置200的加密密钥再加密并且被发送到信息处理装置100。类似地,信息处理装置200中的数据“_rb”以信息处理装置200的加密密钥来加密并且被发送到信息处理装置100,以信息处理装置100的加密密钥被解密和取回,另外,以信息处理装置100的加密密钥再加密并且被发送到信息处理装置200。
[0125]图9所示的结构被配置成使得信息处理装置100和信息处理装置200通过相互加密和交换分别包括在信息处理装置100和信息处理装置200中的信息而彼此相互进行认证。显然,然而,在本公开中,设备之间的相互认证的结构不限于这样的示例。
[0126]作为在单独设备中运行的同一数据处理模块加载存储在各个设备中的初始化文件的结果,内部存储变量和函数以及认证密钥改变。为此,各个设备中的行为改变,另外,变得可以对权利进行分离以使得甚至该定义函数的执行也可通过利用由另一连接的数据处理模块保持的密钥进行认证来操作。
[0127]图10是概念性地示出在单独设备中工作的同一数据处理模块的链接的说明图。图10示出了由工作在设备A、B和C的每个中的数据处理模块链接的三件设备A、B和C。
[0128]设备A以称为“无交互链接”(NIL)模式的模式工作。该模式在内部对来自键盘的输入进行评估和处理,并且将结果输出到显示装置。设备A通过不特别指定激活期间的任何事情而以NIL模式工作,并且在想要与设备B链接的情况下,设备A通过指定设备B的地址和端口而连接到设备B。
[0129]设备A使用密钥SI来从硬盘解密和加载可执行程序。随后,当连接到设备B以使用设备B中的脚本时,设备A使用密钥A与设备B进行认证,并且将程序执行指令发送到设备B。在与设备B的认证完成之后,设备A能够自由地执行顶层的变量定义和函数定义。
[0130]设备B和设备C以称为“下属交互链接”(MIL)模式的模式工作。该模式指定在激活期间被连接作为服务器的地址和端口,并且根据客户端指令与其它设备进行连接和认证。在MIL模式中,由内部数据处理模块对来自客户端的输入进行评估和处理,并且结果被返回到客户端。所设置的输入/输出装置用于输入和输出在内部安装在装置本身中的程序。
[0131]设备B使用密钥S2来从硬盘解密和加载可执行程序。随后,设备B使用密钥A与设备A进行认证,并且在认证完成之后,设备B允许来自设备A的程序执行指令。
[0132]设备C使用密钥S3来从硬盘解密和加载可执行程序。设备B根据来自设备A的指令而使用密钥B与设备C进行认证,并且设备C将程序执行指令发送到设备B。在设备A和设备B相互认证并且设备B和设备C相互认证之后,设备A和设备C被视为被相互认证。
[0133]在没有相互认证的情况下,限制从连接的设备添加或修改变量定义和函数定义,但是在相互认证的加密通信模式中,可进行添加或修改变量定义和函数定义。
[0134]图11是示出根据本公开的实施例的合并了顺序执行数据处理模块的设备的示例性配置的说明图。图11示出了 IC卡610、读取器/写入器(R/W)620和控制器630。用于与读取器/写入器(R/W)620进行相互认证的密钥SI存储在控制器630中。
[0135]在图11所示的各个设备当中,控制器630以NIL模式工作,而IC卡610和读取器/写入器(R/W) 620以MIL模式工作。在该情况下,如果控制器630和读取器/写入器(R/W) 620利用密钥SI进行了相互认证,则控制器630能够使得安装在读取器/写入器(R/W) 620中的顺序执行数据处理模块执行安装在读取器/写入器(R/W) 620中的脚本并且还添加或修改安装在读取器/写入器(R/W)620中的脚本中的变量定义和函数定义。以上脚本可以是例如用于实现电子货币系统的脚本,该电子货币系统使用电子货币来支付商品。
[0136]另外,如果控制器630和读取器/写入器(R/W) 620利用密钥SI进行了相互认证,并且读取器/写入器(R/W)620和IC卡610是相互认证的,则控制器630能够使得安装在IC卡610中的顺序执行数据处理模块执行安装在IC卡610中的脚本,并且还添加或修改安装在IC卡610中的脚本中的变量定义和函数定义。
[0137][使用情况示例]
[0138]根据本公开的实施例的信息处理装置100执行的顺序执行数据处理模块可应用于如以下的用途。显然,根据本公开的实施例的信息处理装置100执行的顺序执行数据处理模块的示例性应用不限于以下指示的这些。
[0139]-安全多无线路由器用途
[0140]通过将本功能安装到将各个设备彼此连接的无线路由器中以及安装在所连接的设备中,变得可以构造如下机制:其根据路由器管理连接的脚本程序而动态地修改连接状况,并且甚至在缺乏共同认证密钥的连接设备之间也负责进行认证。
[0141]-电子货币和服务器
[0142]通过将顺序执行数据处理模块安装在用于电子货币的IC卡中以及将类似机制安装在与该IC卡认证的服务器中来进行支付。
[0143]-具有显示装置的IC卡
[0144]IC卡中的内部数据的显示和使用小键盘的输入处理由顺序执行数据处理模块加载的脚本来控制。
[0145]-云服务器和客户端装置
[0146]通过将顺序执行数据处理模块安装到云服务器和客户端装置中,从客户端进行服务器认证以加载脚本程序以及将程序上载到云服务器,可以安全地运行程序。
[0147]-信任链接
[0148]顺序执行数据处理模块安装在多个装置(例如,假设有客户端A、服务器B、服务器C和客户端D)的每个中,并且使用在每对装置之间分别交换的认证密钥来扩展会话,从而实现使得客户端能够安全地通信的机制。例如,通过在客户端A与服务器B之间、服务器B与服务器C之间以及服务器C与客户端D之间交换认证密钥来扩展会话,可以使得客户端A和客户端D能够安全地通信。
[0149]-场景基本系统
[0150]通过由顺序执行数据处理模块将场景分解和分配给被配置为脚本的演员来实现复杂系统。
[0151]-安全数据库
[0152]数据库和顺序执行数据处理模块相连接以实现使用脚本的动态数据库访问控制。
[0153]显然,根据本公开的实施例的信息处理装置100执行的顺序执行数据处理模块的示例性应用不限于以上指示的那些。另外,不是仅仅是设备之间的链接,可通过将各个顺序执行数据处理模块安装在同一设备内的分开区域(诸如分开的目录或分开的文件夹)中来实现类似操作。
[0154]<3.结论〉
[0155]根据如上所述的本公开,提供了如下一种新的顺序执行数据处理模块,其能够扩展顺序执行数据处理模块的功能,并且通过经由使用同一协议在多个模块中标准化的网络通信在多个模块中分散事务而以分散的责任执行事务。
[0156]利用顺序执行数据处理模块的初始化文件和可执行代码的组合,可配置具有各个功能的多个安全数据库,从而使得可以进行通信同时对这些数据库相互认证,并且还可以经由该通信网络将另外的脚本安全地安装在每个数据库中。
[0157]与将访问控制属性添加到变量或函数同时地,还配置了认证密钥,但是一旦针对每个模块配置了该认证密钥,当随后试图认证和使用变量或函数时,该变量或函数通过与利用另一密钥配置的模块进行认证而变得可用。由于认证密钥本身不再需要记录在其它地方,因此安全程度提高。
[0158]在输入/输出端口是交互模式中的键盘和显示器的情况下,可使用内置于本模块中的函数而没有任何限制。然而,经由通信端口的使用被限制为使得未授权的脚本修改或删除、初始化文件修改等是不可能的。因此,可以相对于诸如未授权更改的威胁进行保护。
[0159]在以多个链接本模块以用于加密通信的情况下,如果配置了仅对所连接的模块已知的密钥,则该密钥用于相互认证,从而使得通过每个加密通信会话进行通信,并且提高了自由度。
[0160]注意,本公开的上述实施例示出了如下示例:其中,信息处理装置100和信息处理装置200彼此相互进行认证,并且从另一信息处理装置读出和执行存储在一个信息处理装置中的脚本。然而,本公开不限于这样的示例,并且还可以适用于如下情况:其中,存储在另一区域中的顺序执行数据处理模块相互认证,并且从给定顺序执行数据处理模块分别读出和执行存储在同一装置内的分开区域(诸如分开的驱动器或分开的目录)中的脚本。
[0161]上述如此详细地并且参照附图描述了本公开的优选实施例。然而,本公开不限于这样的示例。对本公开所属的【技术领域】中的普通技术人员来说清楚的是,在权利要求阐述的技术思想的范围内可进行各种修改或更改,并且应理解,这样的修改或变更显然属于本公开的技术范围。
[0162]另外,本技术还可如下进行配置。
[0163](I) 一种信息处理装置,包括:
[0164]第一程序执行单元,加载、解释和执行由过程语言创建的计算机程序的代码,
[0165]其中,所述第一程序执行单元包括至少一个端口,并且经由该端口,在与第二程序执行单元进行认证之后,所述第一程序执行单元执行由所述第二程序执行单元执行的过程语言创建的第二计算机程序。
[0166](2)根据⑴所述的信息处理装置,
[0167]其中,所述第一程序执行单元包括多个认证模式,以及
[0168]其中,当执行计算机程序定义的变量和函数时,在以在根据来自所述装置本身的指令执行的情况与从其它装置经由所述端口被指示执行的情况之间不同的认证模式进行认证之后,所述第一程序执行单元执行。
[0169](3)根据⑴或⑵所述的信息处理装置,
[0170]其中,在所述第一程序执行单元与所述第二程序执行单元相互认证的情况下,当所述第二程序执行单元与第三程序执行单元相互认证时,所述第一程序执行单元可读出并执行由所述第三程序执行单元执行的第三计算机程序的代码,而不与所述第三程序执行单元进行认证。
[0171](4)根据⑴至(3)中任一项所述的信息处理装置,
[0172]其中,所述第一程序执行单元通过所述端口与设置在所述装置本身中的所述第二程序执行单元进行认证。
[0173](5)根据⑴至(3)中任一项所述的信息处理装置,
[0174]其中,所述第一程序执行单元通过所述端口与设置在另一装置中的所述第二程序执行单元进行认证。
[0175](6)根据⑴至(5)中任一项所述的信息处理装置,
[0176]其中,所述第一程序执行单元执行的计算机程序是电子货币系统的程序。
[0177](7) 一种信息处理方法,包括:
[0178]由包括至少一个端口的第一程序执行单元加载、解释和执行由过程语言创建的计算机程序的代码,
[0179]其中,在与第二程序执行单元进行认证之后,所述执行经由所述端口并且由所述第一程序执行单元执行由所述第二程序执行单元执行的过程语言创建的第二计算机程序。
[0180](8) 一种使得计算机执行以下处理的计算机程序:
[0181]由包括至少一个端口的第一程序执行单元加载、解释和执行由过程语言创建的计算机程序的代码,
[0182]其中,在与第二程序执行单元进行认证之后,所述执行经由所述端口并且由所述第一程序执行单元执行由所述第二程序执行单元执行的过程语言创建的第二计算机程序。
[0183]附图标记列表
[0184]100,200信息处理装置
[0185]110 CPU
[0186]120加密/解密单元
[0187]130 ROM
[0188]140 RAM
[0189]150 NVRAM
[0190]160输入单元
[0191]170显示单元
【权利要求】
1.一种信息处理装置,包括: 第一程序执行单元,加载、解释和执行由过程语言创建的计算机程序的代码, 其中,所述第一程序执行单元包括至少一个端口,并且经由该端口,在与第二程序执行单元进行认证之后,所述第一程序执行单元执行由所述第二程序执行单元执行的过程语言创建的第二计算机程序。
2.根据权利要求1所述的信息处理装置, 其中,所述第一程序执行单元包括多个认证模式,以及 其中,当执行计算机程序定义的变量和函数时,在以在根据来自所述装置本身的指令执行的情况与从其它装置经由所述端口被指示执行的情况之间不同的认证模式进行认证之后,所述第一程序执行单元执行。
3.根据权利要求1所述的信息处理装置, 其中,在所述第一程序执行单元与所述第二程序执行单元相互认证的情况下,当所述第二程序执行单元与第三程序执行单元相互认证时,所述第一程序执行单元读出并执行由所述第三程序执行单元执行的第三计算机程序的代码,而不与所述第三程序执行单元进行认证。
4.根据权利要求1所述的信息处理装置, 其中,所述第一程序执行单元通过所述端口与设置在所述装置本身中的所述第二程序执行单元进行认证。
5.根据权利要求1所述的信息处理装置, 其中,所述第一程序执行单元通过所述端口与设置在另一装置中的所述第二程序执行单元进行认证。
6.根据权利要求1所述的信息处理装置, 其中,所述第一程序执行单元执行的计算机程序是电子货币系统的程序。
7.—种信息处理方法,包括: 由包括至少一个端口的第一程序执行单元加载、解释和执行由过程语言创建的计算机程序的代码, 其中,在与第二程序执行单元进行认证之后,所述执行经由所述端口并且由所述第一程序执行单元执行由所述第二程序执行单元执行的过程语言创建的第二计算机程序。
8.一种使得计算机执行以下处理的计算机程序: 由包括至少一个端口的第一程序执行单元加载、解释和执行由过程语言创建的计算机程序的代码, 其中,在与第二程序执行单元进行认证之后,所述执行经由所述端口并且由所述第一程序执行单元执行由所述第二程序执行单元执行的过程语言创建的第二计算机程序。
【文档编号】G06F21/12GK104054085SQ201280067549
【公开日】2014年9月17日 申请日期:2012年12月25日 优先权日:2012年1月25日
【发明者】森田直 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1