CN101789065A - 应用程序执行装置、应用程序执行方法和程序 - Google Patents

应用程序执行装置、应用程序执行方法和程序 Download PDF

Info

Publication number
CN101789065A
CN101789065A CN201010116359A CN201010116359A CN101789065A CN 101789065 A CN101789065 A CN 101789065A CN 201010116359 A CN201010116359 A CN 201010116359A CN 201010116359 A CN201010116359 A CN 201010116359A CN 101789065 A CN101789065 A CN 101789065A
Authority
CN
China
Prior art keywords
certificate
file
application program
organization
supplier
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
CN201010116359A
Other languages
English (en)
Other versions
CN101789065B (zh
Inventor
杰尔马诺·莱希森林
金丸智一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
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 CN101789065A publication Critical patent/CN101789065A/zh
Application granted granted Critical
Publication of CN101789065B publication Critical patent/CN101789065B/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
    • 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/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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0637Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals

Abstract

本发明提供一种应用程序执行装置、应用程序执行方法和程序,BD-ROM上记录了盘根证书(301)。该盘根证书(301)将从根认证局发布的根证书分配给该盘介质。应用程序管理器(2)从盘根证书(301)中取得哈希值,并使用该哈希值来判断应用程序的正当性。在判断为正当的情况下,虚拟机(3)执行应用程序。另外,本地存储器(5)具有多个域区域,安全管理器(4)将本地存储器(5)内存在的多个域区域中、与所取得的哈希值对应的域区域分配给应用程序。

Description

应用程序执行装置、应用程序执行方法和程序
本发明是本申请人于2006年2月13日提交的中国专利申请号为200680000828.0、发明名称为“应用程序执行装置、管理方法和程序”的分案申请。
技术领域
本发明是属于对应用程序进行资源分配的技术的领域的发明。
背景技术
所谓资源分配技术属于将平台具有的存储装置(本地存储器)内的区域作为资源分配给应用程序技术的发明。为了体系化管理世界上各种组织提供的各种应用程序,作为面向欧洲的数字广播接收装置的MHP(Multimedia Home Platform)规定本地存储器的目录结构,使其可以以如下这种统一格式的文件路径,来加以访问。
文件路径:Root/组织ID/appID
这里所谓组织ID是指唯一表示作为应用程序的提供源的组织的识别符,所谓appID是指唯一表示应用程序的识别符。
每次实现以上的区域分配时,作为MHP的设备使用根证书,来判断应用程序的正当性。下面,对在设备(MHP)中作出的应用程序的正当性检查和对应用程序进行的区域分配来加以说明。
创建应用程序的创建者每次将应用程序交付给设备时,在将根证书添加到应用程序后,将应用程序发送到设备。该根证书与固有分配给设备的根证书相同,设备接收添加了根证书的应用程序,判断在该应用程序上添加的根证书和分配给设备的根证书的一致性。若有一致性,则将与该应用程序的提供源的组织对应的组织用目录分配给该应用程序,而使应用程序进行该目录内的文件的访问。
适当控制应用程序的访问权限的技术记载在非专利文献1中。
非专利文献1:“JAVA(注册商标)Security”Scott Oaks著、O’Reilly发行、May 2001、ISBN 0-596-00157-6
但是,上述现有技术中,设置与应用程序的提供源的组织对应的区域,并将与该组织对应的目录属下的区域分配给要求访问的应用程序。因此,在应用程序执行装置遍布世界的所有区域,且从世界的所有组织提供应用程序的情况下,需要使世界各个组织的组织ID不重复的准备。这是因为,若不这样,属于某个组织的应用程序可以自由访问其他组织用的目录,不能保证应用程序使用的数据的机密性。由于需要该准备,所以需要对世界各组织分配唯一的组织ID的第三人机关,参加应用程序执行装置的标准化的制造商必须对该机关的设置·运营确保资金和人力。其对参加应用程序执行装置的标准化的制造商来说成为很大的负担。但是,若其他组织自由访问自身组织用的目录,则发生自身组织的应用程序用的数据被其他组织盗用、无授权使用的可能。如果装置中对该状况放任不管,则可以预计创建应用程序的创建者多发生不愿意向装置供给应用程序的情况。因此,有不希望发生的装置上操作的应用程序数量不充足,因应用程序不充足,有应用程序执行装置很难普及的问题。
MHP中,将分配给装置的根证书用于应用程序的正当性判断。在分配给装置的根证书被带有恶意的人暴露了的情况下,分配给设备的数字证书由装置的制造源更新为新的证明。在存在该数字证书的更新的情况下,将添加了旧的根证书的应用程序判断为正当性不正当,而不允许访问本地存储器。当然,由于如MHP中使用的应用程序那样,若应用程序是仅在广播时可使用的一次性应用程序,由于不断发送新的应用程序,所以这样处理可能就很充分了。但是,在应用程序进行DVD-Video内容、BD-ROM内容等与磁盘上记录的视频作品有关的处理的情况下,要求无论哪次再现旧的视频作品,进行与该视频作品有关的处理的应用程序都要进行正确的操作。因此,绝不希望因数字证书的更新,应用程序不动作了。即,现有技术有在暴露了根证书的情况下,操作保障不彻底的问题。
发明内容
本发明的第一目的是提供一种在世界范围内,即便不需要进行不发生重复的组织ID的管理,也可提高由各种组织供给的应用程序使用的文件的机密性的应用程序执行装置。
本发明的第二目的是提供一种即使暴露了根证书的情况下,也要实现高水平的动作保障的应用程序执行装置。
为了实现上述第一、第二目的,本发明的应用程序执行装置,从记录介质读出应用程序,并加以执行,所述记录介质记录有:盘根证书;第一根证书;应用程序;证书信息,包含提供者组织的提供者组织ID以及与作为对象的文件相关的信息,所述提供者组织将读出作为所述对象的文件的权限提供给所述应用程序;叶证书,包含与所述提供者组织ID相同的组织ID;以及第二根证书,与所述叶证书相关联;所述应用程序执行装置的特征在于,所述盘根证书是将从根认证局发布的第三根证书分配给该记录介质的证书,并且与作为所述对象的文件相关的信息是表示所述文件的地点的信息,还包含有与包含所述提供者组织ID的文件路径相关的信息;该应用程序执行装置具有:管理单元,通过判断从所述盘根证书取得的哈希值与从所述第一根证书取得的哈希值是否相同,来判断应用程序的正当性;执行单元,在所述管理单元判断为正当的情况下,来执行所述应用程序;以及存储单元,包含由文件路径确定的存储区域,所述文件路径使用了所述第二根证书的哈希值以及所述提供者组织ID;在所述执行中的应用程序指定包含所述提供者组织ID的文件路径,做出了对作为所述对象的文件进行读出的要求时,将该文件路径变换为使用了第二根证书的哈希值和所述指定的提供者组织ID的文件路径,并使所述应用程序读出作为由所述变换后的文件路径确定的存储区域内的对象的文件,所述第二根证书与包含和所述指定的提供者组织ID相同的组织ID的叶证书相关联。
本发明的应用程序执行方法,使计算机执行应用程序,所述计算机具有存储单元,所述存储单元包含使用文件路径确定的存储区域,所述计算机构成为从记录介质读出应用程序,所述记录介质记录有:盘根证书;第一根证书;应用程序;证书信息,包含提供者组织的提供者组织ID以及与作为对象的文件相关的信息,所述提供者组织将读出作为所述对象的文件的权限提供给所述应用程序;叶证书,包含与所述提供者组织ID相同的组织ID;以及第二根证书,与所述叶证书相关联;所述应用程序执行方法的特征在于,所述盘根证书是将从根认证局发布的第三根证书分配给该记录介质的证书,并且与作为所述对象的文件相关的信息是表示所述文件的地点的信息,还包含有与包含所述提供者组织ID的文件路径相关的信息;该应用程序执行方法使所述计算机执行如下步骤:第一步骤,通过判断从所述盘根证书取得的哈希值与从所述第一根证书取得的哈希值是否相同,来判断应用程序的正当性;第二步骤,在所述第一步骤中判断为正当的情况下,来执行所述应用程序;以及第三步骤,在所述执行中的应用程序指定包含所述提供者组织ID的文件路径,做出了对作为所述对象的文件进行读出的要求时,将该文件路径变换为使用了第二根证书的哈希值和所述指定的提供者组织ID的文件路径,并使所述应用程序读出作为由所述变换后的文件路径确定的存储区域内的对象的文件,所述第二根证书与包含和所述指定的提供者组织ID相同的组织ID的叶证书相关联。
本发明的程序,使计算机执行该程序,所述计算机具有存储单元,所述存储单元包含使用文件路径确定的存储区域,所述计算机构成为从记录介质读出应用程序,所述记录介质记录有:盘根证书;第一根证书;应用程序;证书信息,包含提供者组织的提供者组织ID以及与作为对象的文件相关的信息,所述提供者组织将读出作为所述对象的文件的权限提供给所述应用程序;叶证书,包含与所述提供者组织ID相同的组织ID;以及第二根证书,与所述叶证书相关联;所述程序的特征在于,所述盘根证书是将从根认证局发布的第三根证书分配给该记录介质的证书,并且与作为所述对象的文件相关的信息是表示所述文件的地点的信息,还包含有与包含所述提供者组织ID的文件路径相关的信息;该程序使所述计算机执行如下步骤:第一步骤,通过判断从所述盘根证书取得的哈希值与从所述第一根证书取得的哈希值是否相同,来判断应用程序的正当性;第二步骤,在所述第一步骤中判断为正当的情况下,来执行所述应用程序;以及第三步骤,在所述执行中的应用程序指定包含所述提供者组织ID的文件路径,做出了对作为所述对象的文件进行读出的要求时,将该文件路径变换为使用了第二根证书的哈希值和所述指定的提供者组织ID的文件路径,并使所述应用程序读出作为由所述变换后的文件路径确定的存储区域内的对象的文件,所述第二根证书与包含和所述指定的提供者组织ID相同的组织ID的叶证书相关联。
另外,本发明的应用程序(application)执行装置,从记录有盘根证书和应用程序的盘介质读出应用程序,并加以执行,其特征在于:盘根证书是该盘介质的创建者将从根认证局发布的根证书分配给该盘介质的证书;该应用程序执行装置具有:管理单元,从盘根证书取得哈希值,并使用该哈希值来判断应用程序的正当性;执行单元,在管理单元判断为正当的情况下,来执行应用程序;存储单元,具有多个域区域;以及分配单元,将存储单元内存在的多个域区域中与所取得的哈希值对应的域区域分配给应用程序。
发明效果
本发明的应用程序执行装置由于具有上述这种技术事项(1),所以在本地存储器内部存在多个域区域,各个域区域分别分配根证书哈希值。并且,若在这些域区域下,按每个组织,生成每个组织的区域,则在世界范围中,组织ID可以不唯一。在“域区域”这种封闭的世界中,可区别多个组织就足够了,所以组织ID在世界范围中不需要是唯一的值,不需要基于第三人机关的管理。即便不进行使组织ID不重合的管理,也可在一个平台中使从世界中的组织供给的应用程序动作,同时,可以提高作为应用程序进行读出/写入的对象的文件的机密性。
即便不需要基于第三人机关的管理,创建者也会消除不愿意提供应用程序的障碍,可以提高应用程序使用的文件的独立性、机密性,所以可以呼吁视频创作者、视频分配者、广播台、出版者、软件工作室等世界中的多个组织进行应用程序执行装置用应用程序的提供。由此,可以实现应用程序的丰富化,可以充实装置用应用程序,可以进一步提高作为盘介质再现装置的应用程序执行装置的普及。
根证书提供给存储单元内的域区域,而不是装置主体。若由某个盘介质供给的应用程序与该盘介质的盘根证书对应,则只要将该盘介质装到应用程序执行装置中,则必然保障了动作。尤其,并非没有可能暴露盘根证书,但是这种情况下,不可使用该盘介质,或仅更新对该盘介质的盘根证书就可以了,由其他盘供给的应用程序如现有技术那样,使用盘根证书就可以了,所以可以实现可靠的动作保障。
由于不需要这种世界范围中的组织ID的管理,而可以将现有技术的应用程序的彼此保障维持在高水平,所以本发明的应用程序执行装置对执行进行与视频作品有关的处理的应用程序的应用程序执行装置的世界标准作出了大的贡献。
虽然是任意,但是上述的应用程序执行装置的技术事项(1)通过添加下面的技术事项(2)(3),具体构成应用程序执行装置,从而可以带来进一步的效果。本申请中,将这些技术事项区分为权利要求1下的从属形式的权利要求来加以记载。
·技术事项(2)在盘介质上记录有第一数字证书链;所述管理单元进行的正当性判断包含:从所述第一数字证书链中的根证书取得的哈希值和从所述盘根证书取得的哈希值是否一致的检查;所述域区域包含多个组织区域;所述分配单元进行的分配包含:在哈希值一致的情况下,许可应用程序使用被分配给应用程序的域区域中的多个组织区域中、与第一数字证书链中的叶证书上记载的组织ID对应的组织区域。
根据在应用程序执行装置上添加上述的技术事项,可以使用利用了现有的认证局的商业模块,同时,不能不正当使用第一应用程序向第二应用程序分配的资源。防止该不正当使用通过多个组织共用相同的盘根证书来进行,由于在应用程序执行装置内没有保持根证书,所以可以维持更新了应用程序执行装置中的情况下的动作互换。
·技术事项(3)作为所述应用程序的供给源的组织从其他组织接受区域使用权限的提供;所述盘介质上进一步记录有证书信息,该证书信息包含提供者组织ID和接受者组织ID,该提供者组织ID表示作为区域使用权限的提供者的组织,该接受者组织ID表示作为区域使用权限的接受者的组织;所述管理单元进一步进行所述证书信息的正当性的确认;由所述分配单元进行的分配包含:在确认了所述证书信息的正当性的情况下,允许应用程序使用被分配给应用程序的域区域中的多个组织区域中、与提供者组织ID对应的组织区域。
·技术事项(4)所述证书信息包含从提供者组织所固有的根证书取得的哈希值和从接受者组织所固有的根证书取得的哈希值;所述管理单元进行的证书信息的正当性判断包含:从盘根证书取得的哈希值与从接受者组织所固有的根证书取得的哈希值是否一致的检查;以及所述第一数字证书链条中的叶证书上所记载的组织ID和证书信息上所表示的接受者组织ID是否一致的检查。
在应用程序执行装置上添加了上述的技术事项后,对应用程序执行装置可以重复进行如下的盘介质的装载、排出,在这多个盘介质上分配了不同的盘根证书的情况下,与各个应用程序对应的盘根证书不同的情况下,也可访问将在某个盘介质上记录的第一应用程序分配给在另一盘介质上记录的第二应用程序的域区域。这样,在应用程序记录在不同的盘介质上,所分配的盘根证书不同的情况下,应用程序可以共用多个域区域。由此,可以提高创建者相互之间的联合、协调性。
·技术事项(5)在盘介质上记录有第二数字证书链;所述管理单元进行的证书信息的正当性判断进一步包含:从所述第二数字证书链中的根证书中取得哈希值,该哈希值与从所述提供者组织所固有的根证书中取得哈希值是否一致的检查;以及所述第二数字证书链中的叶证书上所记载的组织ID与提供者组织ID是否一致的检查。
在将上述这种技术事项添加到应用程序执行装置中时,可以防止证书信息的窜改,并且,由于在没有证书信息时,不能向其他应用程序用的域区域进行访问,所以可以防止不正当的访问。
·技术事项(6)所述证书信息进一步包含文件列表;所述分配单元进行的组织区域的使用许可包含:使应用程序访问在组织区域下存在的文件中由文件列表表示的文件。
在将上述这种技术事项添加到应用程序执行装置中时,可以精细进行基于证书信息的访问提供,可以抑制由应用程序不合适造成的数据的破坏危险。
·技术事项(7)所述证书信息进一步具有表示文件的访问方法的访问信息;所述分配单元进行的组织区域的使用许可包含:以访问信息所表示的访问方法,使所述应用程序访问组织区域下存在的文件中由文件列表表示的文件。
在将上述这种技术事项添加到应用程序执行装置中时,在存在基于使用了证书信息的应用程序的访问时,也可抑制由应用程序不合适造成的数据的破坏危险。
·技术事项(8)在盘介质上记录有第一数字证书链;所述管理单元进行的正当性判断包含:从所述第一数字证书链内的根证书取得的哈希值与从所述盘根证书取得的哈希值是否一致的检查;在哈希值一致的情况下进行所述执行装置进行的应用程序的执行。
在将上述这种技术事项添加到应用程序执行装置中时,可以防止恶意进行应用程序之间的通信(Interprocess Communication、IP)的攻击,可以提高安全性。
附图说明
图1(a)是表示BD-ROM中的文件·目录结构的图;(b)是表示Java(TM)存档文件302中的结构的一例的图。
图2(a)是表示Credential(证书)的数据结构的一例的图,(b)是表示Credential的具体一例的的图。
图3(a)是模式表示了在BD-ROM中怎样分配根证书的图;(b)是模式表示在MHP中怎样分配根证书的图。
图4是表示没有提供权限时的SIG-BD.RSA、SIG-BD.SF、BD.ROOT.CERTIFICATE、MANIFEST.MF的相互关系的图。
图5是表示提供了权限时的SIG-BD.RSA、SIG-BD.SF、BD.ROOT.CERTIFICATE、MANIFEST.MF、bd.XXXX.perm的相互关系的图。
图6是表示本实施形态中的应用程序执行装置的功能结构框图。
图7是表示应用程序管理器2进行的根据Java(TM)存档文件302内的类文件的应用程序的启动顺序的流程图。
图8是表示应用程序管理器2进行的Credential的签名验证的顺序的流程图。
图9是表示应用程序管理器2保持的管理信息的一例的图。
图10是表示应用程序管理器2保持的管理信息的一例的图。
图11是表示Java(TM)应用程序使用硬盘4时的处理顺序的流程图;
图12是表示安全管理器5进行的本地存储器名的取得顺序的细节流程图。
图13是表示安全管理器5保持的哈希管理表格的一例的图。
图14是表示安全管理器5进行的组织ID的取得函数的细节的流程图。
图15是表示安全管理器5进行的文件读出函数的细节的流程图。
图16是表示安全管理器5进行的文件读出函数的细节的流程图。
图17是表示安全管理器5进行的文件读入函数的细节的流程图。
图18是表示安全管理器5进行的文件写入函数的细节的流程图。
标记说明
1BD驱动器
2应用程序管理器
3虚拟机
4硬盘
5安全管理器
301盘根证书
302Java(TM)存档文件
401类文件
402清单文件
403签名文件
404数字签名文件
405允许请求文件
501提供者根证书的哈希值
502提供者组织ID
503接受者根证书的哈希值
504接受者组织ID
505接受者应用程序ID
506文件列表
具体实施方式
下面,参考附图来说明本发明的实施形态。
(第一实施形态)
之后,说明本发明的应用程序执行装置的实施形态。首先,开始说明对应用程序执行装置供给应用程序的记录介质。作为该记录介质,本实施形态中,选BD-ROM作为题材。这是因为BD-ROM中的应用程序进行与如上所述的视频作品有关的处理。图1(a)是表示BD-ROM中的文件·目录结构的图。该图的第一级表示BD-ROM。BD-ROM与其他光盘、例如DVD或CD等相同,从其内周到外周按螺旋状具有记录区域。第二级表示该记录区域。如第二级所示,记录区域在内周的“导入区域”和外圈的“导出区域”之间具有可记录逻辑数据的“逻辑地址空间”。另外,在导入的内侧有仅由称作BCA(Burst Cutting Area)的驱动器来读出的特别区域。由于该区域不从应用程序中读出,所以例如可很好地用于著作权保护技术等。
“逻辑地址空间”上,以文件系统信息(卷)为开头,记录了视频数据、类文件及其关联信息所在的Java(TM)存档文件302等的数据。所谓文件系统是指UDF(Universal Disk Format)或ISO9660等,可以使用目录、文件结构来读出如与通常的个人计算机相同那样记录的逻辑数据。第三级表示BD-ROM的目录·文件结构。该目录·文件结构在根目录(ROOT)之下放置BDDATA目录。在目录BDDATA中记录了下面两种文件。
(A)BD.ROOT.CERTIFICATE:盘根证书301
所谓盘根证书301是指创建该BD-ROM的创建者将从根认证局接收了发布的根证书分配给BD-ROM。盘根证书301例如以X.509的形式来进行编码。X.509的标准记载在由国际电信电话咨询委员会发行的CCITTRecommendation X.509(1988),“The Directory-Authentication Framework”中。将该根证书记录在可移动型的记录介质上暴露根证书的可能性高,DVD中,认为该分配有暴露根证书的危险,而不导入。但是,BD-ROM中采用了与DVD相比,相当高级的著作权保护技术,该著作权保护技术的采用对导入“对BD-ROM分配固有的根证书”的考虑起到保障。应注意BD-ROM中盘根证书301的导入有如上这种背景。
(B)XXX.JAR:Java(TM)存档文件302
这是基于http://java(TM).sum.com/j2se/1.4.2/docs/guide/jar/jar.html上记载的标准的Java(TM)存档文件302。Java(TM)存档文件302将ZIP文件的形式具体化为Java(TM),可以通过市场上销售的ZIP解压缩软件来确认内容。这里“XXX”可变,扩展符“JAR”固定。
Java(TM)存档文件302以目录结构的形式来存储多个文件。图1(b)是表示Java(TM)存档文件302中的结构的一例的图。
该结构在根目录下存在XXXX.class,在META-INF目录下存在文件MANIFEST.MF、文件SIG-BD.SF、文件SIG-BD.RSA、文件bd.XXXX.perm。下面,分别说明这些文件。
(i)XXXX.class:类文件401
类文件401是存储了定义可在虚拟机上执行的Java(TM)应用程序这种结构体的类文件401。
由该类文件401定义的Java(TM)应用程序是通过Xlet接口,由应用程序执行装置的应用程序管理器,来加以控制的Java(TM)Xlet。Xlet接口具有“loaded(装载)”、“paused(暂停)”、“active(激活)”、“destoryed(破坏)”四种状态。
(ii)MAIFEST.MF:清单文件402
清单文件402对应于数字证书,是记载了Java(TM)存档文件302的属性、Java(TM)存档文件302内的类文件401或数据文件的哈希值的文件。Java(TM)存档文件302的属性有作为类文件401的实例的在Java(TM)应用程序上添加的应用程序ID和为执行Java(TM)存档文件302最初应执行的类文件401名。在不存在上述两个Java(TM)存档文件302的属性的情况下,不执行Java(TM)存档文件302中作为类文件401的实例的Java(TM)应用程序。
(iii)SIG-BD.SF:签名文件403
签名文件403是记载了清单文件402的哈希值的文件。
(iv)SIG-BD.RSA:数字签名文件404
数字签名文件404是记载了“数字证书链”、签名文件403的“签名信息”的文件。
签名文件403中的“签名信息”可以通过对签名文件403实施签名处理来得到。这些签名处理使用与数字签名文件404内的数字证书链中的公钥对应的密钥。
所谓“数字证书链”是指具有如下形式的多个证书群:第一证书(根证书)签名第二证书,并与此相同,第n证书签名第n+1证书。将数字证书链的最后的证书称作“叶证书”。通过使用该结构,通过从根证书起依次保证下一证书,而可以保障到数字证书链的最后证书。
“根证书”存储与BD.ROOT.CERTIFICATE文件中存在的盘根证书301相同的证书。
“叶证书”记载组织ID。签名文件403以PKCS#7的形式来加以存储。PKCS#7是存储签名和一个以上的数字证书用的文件形式,记载在由IETF(Internet Engineering Task Force)发行的RFC2315中。RFC2315可以通过http://www.ietf.org/rfc/rfc2315.txt来加以参考。
通常,该数字证书链是一个,但是提供后述的权限的情况下,生成两个该数字证书链。将这两个数字证书链称作第一数字证书链和第二数字证书链。第一数字证书链的根证书表示接收提供权限侧的组织的盘根证书,叶证书表示接收提供权限侧的组织的组织ID。第二数字证书链的根证书表示提供权限侧的组织的盘根证书,叶证书表示提供权限侧的组织的组织ID。另一方面,在不提供权限的情况下,数字证书链仅为一个(第一数字证书链)。
清单文件402、签名文件403和数字签名文件404的细节记载在Java(TM)存档文件的标准中。清单文件402、签名文件403和数字签名文件404用于进行签名处理和签名验证处理。最终可以通过数字证书来签名Java(TM)存档文件302中的作为类文件401的实例的Java(TM)应用程序或允许请求文件405。之后,将清单文件402、签名文件403和数字签名文件404统称作“基于数字证书的签名”。
(v)bd.XXXX.perm:允许请求文件405
允许请求文件405是存储对所执行的Java(TM)应用程序提供哪种允许的信息的文件。具体存储下面的信息。
(ア)证书(证书)(数字信用证书)
(イ)应用程序之间通信的允许信息
下面,说明(ア)证书。所谓“Credential(证书)”是指共享属于某个组织的组织目录内的文件用的信息。该共享通过将使用属于某个组织的应用程序用文件的权限提供给属于其他组织的应用程序来进行。因此,Credential包含表示提供权限侧的组织的提供者组织ID、表示接收权限侧的组织的识别的接收侧组织ID。
图2(a)表示Credential的数据结构的一例。在Credential中包括从根认证局向提供者组织发布的根证书的哈希值501、对提供者组织分配的提供者组织ID502、从根认证局向接受者发布的接受者根证书的哈希值503、对接受者组织分配的接受者组织ID504、接受者应用程序ID505和提供文件列表506。提供文件列表506中存储了一个以上的提供文件名507和访问方法508(可读取·可写入)的信息。为了使Credential有效必须进行签名。Credential的签名与数字签名文件404相同,可以使用PKCS#7的方式。
图2(b)是表示Credential的具体的一例。该图中的Credential中,通过Credential对文件“4/5/scores.txt”提供允许读取,对文件“4/5/etc/settings.txt”提供允许读写。
接着,说明(イ)应用程序之间通信的允许信息。一个Java(TM)存档文件302中包含的Java(TM)应用程序通常不允许与其他Java(TM)存档文件302中包含的Java(TM)应用程序通信(应用程序之间通信)。仅在允许请求文件405中提供了允许应用程序之间通信的情况下可进行应用程序之间的通信。
以上,是对于允许请求文件405的说明。接着,进行根证书的更详细的说明。
图3(a)是模式表示了在BD-ROM中怎样分配根证书的图。该图的第三级表示设备(应用程序执行装置)和在该设备上装入的BD-ROM,第二级表示创建这些设备和BD-RM的从业者(BD-ROM的创建者、设备的制造者)。第一级表示管理根证书的根认证局。
该图中,BD-ROM的创建者从根认证局中接收根证书的发布(f1),将所发布的根证书作为盘根证书301分配给BD-ROM后,将该根证书存储到BD.ROOT.CERTIFICATE中,而写入到BD-ROM中(w1)。另一方面,每次生成Java(TM)存档文件302时,将该根证书和表示组织ID的叶证书收录到SIG-BD.SF中,而使其包含在Java(TM)存档文件302中。
虽然不是本发明的本实施形态的说明,但是为了进行对比,说明MHP中的根证书的分配。
图3(b)是表示在MHP中怎样分配根证书的图。MHP中,制造设备的制造者从根认证局接收根证书的分发(f2),该制造者将该根证书分配给设备(w2)。另一方面,广播内容的创作者将该根证书和表示自身的组织ID的叶证书添加到定义应用程序的类文件上后,送到设备中。若比较这些图,则可以看出MHP中将分配给设备的根证书分配给BD-ROM,并从分配给该BD-ROM的根证书中形成证书链。
不从BD-ROM,而使Java(TM)存档文件302从WWW服务器中下载,并写入到应用程序执行装置内的存储装置中的情况也相同。该下载的目的是更新BD-ROM上记录的内容,但是在该下载中,将与容纳在BD.ROOT.CERTIFICATE中,与作为盘根证书301写入的根证书具有一致性的根证书存储到SIG-BD.SF中,而使其包含在Java(TM)存档文件中。由此,在将目的为更新BD-ROM中记录的内容的Java(TM)存档文件302通过下载供给应用程序执行装置的情况下,也可以通过使用对BD-ROM分配的盘根证书301,而使应用程序执行装置确认Java(TM)存档文件302的正当性。
图4是表示没有提供权限的情况下的SIG-BD.SF、BD.ROOT.CERTIFICATE的相互关系的图。该图中的箭头d1表示这些文件的内部结构的信息要素中有一致性。在没有提供权限的情况下,BD.ROOT.CERTIFICATE内的根证书(盘根证书301)与SIG-BD.RSA中的第一数字证书链内的根证书具有一致性。
由于MANIFEST.MF签名类文件XXXX.class,SIG-BD.SF包含从MANIFEST.MF算出的哈希值,SIG-BD.RSA包含从SIG-BD.SF算出的哈希值(箭头h1),所以通过确认这些签名是否正当,判断这些图中所示的一致性,从而应用程序执行装置可以判断Java(TM)存档文件302是否正当,是否施加了窜改。由于假定为没有提供权限,所以在该图中,没有表示bd.XXXX.perm。
图5是表示提供权限的情况下的SIG-BD.RSA、SIG-BD.SF、BD.ROOT.CERTIFICATE、bd.XXXX.perm的相互关系的图。该图中的箭头d1~d6表示这些文件的内部结构的信息要素中有一致性。在提供了权限的提供权限情况下,BD.ROOT.CERTIFICATE内的根证书(盘根证书)与SIG-BD.RSA中的第一数字证书链内的根证书具有一致性(箭头d1)。另一方面,若提供了权限,则由于BD.ROOT.CERTIFICATE内的盘根证书301是接受者的证书,所以bd.XXXX.perm中的Credential的接受者根证书与BD.ROOT.CERTIFICATE内的根证书具有一致性(箭头d2)。另外,Credential中的接受者组织ID与第一数字证书链中的叶的组织ID具有一致性(箭头d3)。
bd.XXXX.perm中的Credential的提供者组织的根证书与SIG-BD.RSA内的第二数字证书链中的根证书具有一致性(箭头d4)。另外,证书中的提供者组织ID与SIG-BD.RSA的第二数字证书链中的叶的组织ID具有一致性(箭头d5)。Credential中的接受者ID与bd.XXXX.perm中Credential之外的部分存在的应用程序ID具有一致性(箭头d6)。
由于MANIFEST.MF包含从类文件XXXX.class算出的哈希值,SIG-BD.SF包含从MANIFEST.M算出的哈希值,SIG-BD.RSA包含从SIG-BD.SF取得的哈希值(箭头h1),所以通过确认这些签名是否正确,并判断这些图中所示的一致性,应用程序执行装置可以判断Java(TM)存档文件302是否正当,是否施加了窜改。虽然可预先决定,但是在本实施形态中,比较对各个根证书算出的哈希值,并根据这些哈希值是否一致来判断根证书的一致性。可以一次进行哈希值的运算,一般进行将所算出的哈希值存储到存储器等中,来加以使用。将从根证书中算出哈希值和取出存储器中存储的哈希值称作哈希值的“取得”。
以上是对BD-ROM的说明。接着,说明本发明中的应用程序执行装置的内部结构。
本实施形态的应用程序执行装置通过在具有CPU、ROM、RAM、硬盘驱动器、BD-ROM驱动器、AV解码器、输入输出设备等的计算机系统上完全安装Java(TM)2Micro_Edition(J2ME)Personal Basis Profile(PBP 1.0)和Globally Executable MHP specification(GEM 1.0.2)for package mediatargets,来构成Java(TM)平台,可以通过将下面所示的功能构成要素设置在该Java(TM)平台上而在工业上生产。
图6是表示本实施形态中的应用程序执行装置的功能结构框图。应用程序执行装置由BD驱动器1、应用程序管理器2、虚拟机3、硬盘4、安全管理器5构成。
(BD驱动器1)
BD驱动器1进行BD-ROM的装载/弹出,执行BD-ROM内的数据访问。在驱动器1中将BD-ROM装载/弹出BD-ROM的情况下,BD驱动器1通知应用程序管理器2该内容。
(应用程序管理器2)
应用程序管理器2是在虚拟机3内的堆区内动作的系统应用程序,执行应用程序信令。所谓“应用程序信令”是指在GEM1.0.2规定的MHP(Multimedia Home Platform)中,将“服务”作为生存区间来进行应用程序的启动、执行的控制。本实施形态中的应用程序管理器2代替该“服务”,将BD-ROM中的“标题”作为生存区间,来实现应用程序的启动、执行的控制。这里,所谓“标题”是在BD-ROM中记录的视频·声音数据的再现单元,唯一分配应用程序管理表(AMT)。
每次启动应用程序时,应用程序管理器2判断要启动的应用程序是否正当。该判断顺序如下。若装载BD-ROM,则确认/BDDATA/BD.ROOT.CERTIFICATE这样的文件的存在。在文件存在的情况下,应用程序管理器2从BD-ROM中读出该盘根证书301,而保持在存储器上。之后,读出Java(TM)存档文件302,而验证该Java(TM)存档文件302上存在的签名。若该验证正当,则应用程序管理器2将BD-ROM上存在的Java(TM)存档文件302中的类文件401读到虚拟机3内,通过在堆区上生成该类文件401的实例,而启动Java(TM)应用程序。
(虚拟机3)
虚拟机3是由将从BD-ROM中读出类文件的用户类装载器、将与类文件对应的实例(instance)作为Java(TM)应用程序来加以存储的堆内存、线程和Java(TM)堆栈构成的Java(TM)应用程序的执行主体。这里线程是执行Java(TM)应用程序中的方法的逻辑执行主体,将本地变量或操作数堆栈上存储的自变量作为操作数来加以运算,并将运算结果存储到本地变量或操作数堆栈上。基于堆栈的方法执行通过在将形成方法的字节码变换为CPU的本机代码(native code)后,发送到CPU中来加以执行。对于该本机代码变换,由于在本申请的主题之外,所以省略说明。在Java(TM)存档文件302内存在允许请求文件405的情况下,若在清单文件402中不存在Java(TM)应用程序的正确哈希值,则不执行该Java(TM)应用程序。为了进行该哈希值的判断,虚拟机3在存储器上保持表示将执行的Java(TM)应用程序存储在哪个Java(TM)存档文件302上的信息。通过参考该允许请求文件405,虚拟机3确认应用程序管理器2保持的应用程序之间通信的许可,而对Java(TM)应用程序提供应用程序之间通信的功能。
(硬盘4)
硬盘4是通过使用来自Java(TM)IO Package的方法,可以加以访问的本地存储器。该本地存储器具有多个域区域。这里所谓域区域是指与各盘根证书301对应的目录(图中的R1、R2),在这些目录的下面存储每个组织的目录(图中的org1,org2,org3)。组织的每个应用程序的目录(图中的org1/app1,org1/app2,org1/app3....)与MHP中的相同。即,本地存储器中,为将MHP中规定的各组织的每个应用程序的目录(图中的org1/app1,org1/app2,org1/app3....)配置在与根证书对应的目录(图中的R1、R2)下的结构。由此,可以与MHP的存储方式维持置换。这里将访问本地存储器的目录结构用的文件路径中,到与根证书对应的部分(图中的Root/R1,Root/R2)称作“本地存储器根”。
(安全管理器5)
安全管理器5保持表示了多个从根证书算出的哈希值和本地存储器根的组的哈希管理表,若要求从应用程序中读出/写入文件,则对与请求源的应用程序对应的根证书,算出哈希值,并从哈希管理表中选出与这样算出的哈希值对应的本地存储器根。将这样选出的本地存储器根嵌入到文件路径上。另外,根据Credential来替换与文件路径的组织ID对应的目录。由此,应用程序的文件路径的描述可以保持与MHP中规定的文件路径互相置换。
之后,说明应用程序管理器2、安全管理器5进行的具体软件的安装。应用程序管理器2生成如图7所示的程序,并通过使CPU加以执行,而可以安装到应用程序执行装置上。
图7是表示应用程序管理器2进行的基于Java(TM)存档文件302内的类文件401的应用程序的启动顺序的流程图。应用程序管理器2确认在Java(TM)存档文件302中是否存在SIG-BD.SF、SIG-BD.RSA、bd.XXXX.perm(SA01)。在一个都不存在的情况下,有可能窜改了Java(TM)应用程序,而不执行Java(TM)应用程序(SA04)。
在上述三个文件都存在的情况下,利用MANIFEST.MF、SIG-BD.SF、SIG-BD.RSA,来签名验证bd.XXXX.perm和Java(TM)应用程序(SA03)。在签名验证不成功的情况下,存储无有效的bd.XXXX.perm,而使虚拟机3执行具有缺省的允许的类文件401(SA02)。
在签名验证成功的情况下,判断在第一数字证书链中存在的根证书和BD.ROOT.CERTIFICATE内的盘根证书301的一致性(SA05)。在各个根证书不同的情况下,判断为Java(TM)存档文件302不正当,则不执行Java(TM)应用程序(SA04)。
在各个根证书有一致性的情况下,确认在第一数字证书链中的叶证书内是否存在组织ID(SA06)。在不存在组织ID的情况下,判断为Java(TM)存档文件302不正当,而不执行Java(TM)应用程序(SA04)。
在存在组织ID的情况下,确认在bd.XXXX.perm中是否存在Credential(SA07)。在不存在的情况下,接着到步骤SA10。
在存在Credential的情况下,验证Credential(SA08)。后面描述验证处理的细节。在Credential有多个的情况下,对各Credential来执行该步骤。
在Credential的验证中任何一次有失败的情况下(SA09中No),判断为Java(TM)存档文件302不正当,而不执行Java(TM)引用程序(SA04)。
在Credential的验证全部成功的情况下,或不存在Credential的情况下,存储bd.XXXX.perm、组织ID和MANIFEST.MF内存在的应用程序ID,将在MANIFEST.MF中记载的最先应执行的类文件401读入到虚拟机上,而执行作为这些的实例的Java(TM)应用程序(SA10)。
参考图8,来说明应用程序管理器2验证Credential的流程图。图8是表示应用程序管理器2进行的Credential的签名验证的顺序的流程图。
首先,开始确认接受者根证书的哈希值503是否与BD.ROOT.CERTIFICATE中的盘根证书301是否一致(SY01)。在不一致的情况下,验证失败(SY02)。
确认接受者组织ID504和第一数字证书链中的叶证书上记载的组织ID是否一致(SY03)。在不一致的情况下,验证失败(SY02)。
确认接受者应用程序ID505是否与bd.XXXX.perm内的证书之外的位置上记载的应用程序ID一致(SY04)。在不一致的情况下,验证失败(SY02)。确认Credential中的提供文件的名字的开头与提供者组织ID502是否一致(SY05)。在不一致的情况下,验证失败(SY02)。
确认SIG-BD.RSA中的签名信息的正当性(SY06)。在签名信息不正当的情况下,可能窜改了Credential,验证失败(SY02)。
在签名信息正当的情况下,确认第二数字证书链中的根证书的哈希值和Credential中的提供者根证书的哈希值的一致性(SY07)。在不一致的情况下,Credential不正当,验证失败(SY02)。
确认第二数字证书链中的叶证书的组织ID是否与Credential提供者组织ID502一致(SY08)。在不一致的情况下,证书不正当,验证失败(SY02)。
在所有的确认成功的情况下,验证成功(SY09)。
图9是在本发明的应用程序执行装置中应用程序管理器2保持的管理信息的一例。以表格的形式管理盘根证书301、所执行的Java(TM)存档文件302的“Jar文件名”、“组织ID”、“应用程序ID”、“应用程序之间通信”和“Credential”。
图10是在本发明的应用程序执行装置中,应用程序管理器2保持的管理信息中的Credential表格的一行的一例。Credential表格包括“提供者根证书的哈希值”501、“提供者组织ID”502和“提供者文件列表”506。在该“提供者文件列表”506中记载了提供文件名和提供者访问方法508。
在向Java(TM)存档文件302提供了允许的情况下,虚拟机3在Java(TM)应用程序的执行前进行下面的处理。虚拟机3确认在MANIFEST.MF中的Java(TM)应用程序的哈希值和Java(TM)应用程序的实际哈希是否一致,在不一致的情况下,不加以执行。
Java(TM)应用程序通过虚拟机3来加以执行。参考图11,说明在典型的Java(TM)应用程序想要利用本地存储器的情况下所进行的处理顺序。
图11是表示每次在Java(TM)应用程序利用硬盘4时的处理顺序的流程图。
Java(TM)应用程序取得虚拟本地存储器根(SC01)。这里所谓虚拟本地存储器根是指以MHP中的形式来指定作为访问目标的文件的文件路径。以/Root或/Storage/Root的名字来加以表现。该虚拟本地存储器根不过是想要与MHP中的文件路径的形式相互置换,在硬盘4中的文件访问时,将该本地存储器名变换为按每个根证书决定的本地存储器根。
接着,Java(TM)应用程序取得组织ID(SC02)。组织ID例如是“4”的数字。
Java(TM)应用程序组合本地存储器根的名字和组织ID,指定想要读写的文件的名字,来进行对文件的输入输出(SC03)。例如,在本地存储器根的名字是“/persistent/0003”,组织ID是“7”,想要读写的文件的相对路径是“8/scores.txt”的情况下,可以通过“/persistent/0003/7/8/scores.txt”的全路径来指定文件。
Java(TM)应用程序为了进行如图11的处理,安全管理器5对Java(TM)应用程序提供下面的函数调用。
(ア)本地存储器根的取得
(イ)组织ID的取得
(ウ)从文件的读出
(エ)向文件的写入
参考图12,来说明Java(TM)应用程序进行的“本地存储器根的取得”函数调用的处理的流程图。
首先,安全管理器5确认调用源的Java(TM)应用程序上是否存在bd.XXXX.perm(SD01)。是否存在bd.XXXX.perm可以从虚拟机3中取得存储了以Java(TM)应用程序为实例的类文件401的Java(TM)存档文件302,而从应用程序管理器2中取得。在不存在bd.XXXX.perm的情况下,拒绝“本地存储器根的取得”(SD02)。
在存在bd.XXXX.perm的情况下,从应用程序管理器2中取得盘根证书301的哈希值(SD03)。安全管理器5确认哈希管理表格(后述),来确认是否已经登记了盘根证书301的哈希值(SD04)。在登记了的情况下,将与盘根证书301的哈希值对应的本地存储器根返回到Java(TM)应用程序中(SD05)。
在哈希管理表格上没有登记盘根证书301的哈希值的情况下,安全管理器5将新的条目追加到哈希管理表上(SD06)。在该条目上记载盘根证书301的哈希值和在表格内唯一的本地存储器根。将在哈希管理表上新登记的条目的本地存储器根返回到Java(TM)应用程序(SD07)。
参考图13,表示安全管理器5保持的哈希管理表的一例。哈希管理表中存在根证书的哈希值1301和本地存储器根1302。该图中的本地存储器根的“/0001”,“0003”分别是指图6的目录名/R1,/R2。这些本地存储器根1302与根证书的哈希值1301一一对应。因此,对具有同一盘根证书301的BD盘中的作为Java(TM)存档文件302中的类文件401的实例的Java(TM)应用程序返回同一本地存储器根1302,对具有不同的盘根证书301的BD-ROM中的作为Java(TM)存档文件302中的类文件401的实例的Java(TM)应用程序返回不同的本地存储器根1302。
参考图14,来说明“组织ID的取得”函数调用的流程图。
首先,安全管理器5确认调用源的Java(TM)应用程序中是否存在bd.XXXX.perm(SF01)。在不存在bd.XXXX.perm的情况下,由于不能确认组织ID,所以拒绝“组织ID的取得”(SF02)。在存在bd.XXXX.perm的情况下,从应用程序管理器2中取得与Java(TM)应用程序对应的组织ID,而返回到Java(TM)应用程序(SF03)。
“文件读出”函数调用将想要读出的文件名的全路径作为参数从Java(TM)应用程序传送到安全管理器5中。该全路径的形式为组织ID/appID,设应用程序以与访问MHP中的本地寄存器内的文件相同的顺序,来访问应用程序执行装置内的文件。
在文件访问成功的情况下,安全管理器5将数据返回到Java(TM)应用程序。参考图15和图16,来说明“文件读出”函数调用的流程图。
首先,安全管理器5确认调用源的Java(TM)应用程序中是否存在bd.XXXX.perm(SH01)。在不存在bd.XXXX.perm的情况下,拒绝“文件读出”(SH02)。
在存在bd.XXXX.perm的情况下,从应用程序管理器2取得盘根证书301的哈希值(SH03)。
安全管理器确认哈希管理表格,取得与盘根证书301的哈希值对应的本地存储器根1302(SH04)。
接着,判断指定文件名的文件的开头根名是否与虚拟本地存储器根的名字一致(SH05)。其检查是否通过依赖于装置的形式(这里为与MHP可替换的形式)的文件路径来指定访问目标文件,在一致的情况下,将根名变换为作为与盘根证书对应的形式的本地存储器根(SH13)。在不一致的情况下,拒绝进行访问(SH02)。
这里,在变换前后,全路径如下那样。
应用程序指定的全路径:
/虚拟本地存储器根/指定组织ID/指定路径
SH05进行的变换后的路径:
/本地存储器根/指定组织ID/指定路径
之后,安全管理器5分解文件名的全路径(SH06)。由于文件名的全路径利用‘本地存储器根1302+“/”+指定组织ID+“/”+指定路径’的形式,所以可以将文件名的全路径分解为本地存储器根1302、指定组织ID和指定路径。在不能分解的情况下,拒绝读出(SH02)。
安全管理器5从应用程序管理器2中取得调用源的Java(TM)应用程序的组织ID(SH07)。并且,尝试是否可从应用程序管理器2中取得指定组织ID与提供者组织ID502一致的Credential(SH10)。在不能取得Credential的情况下,拒绝访问(SH02)。
在取得了Credential的情况下,确认来自Java(TM)应用程序的指定路径是否存在于Credential的提供文件名506中,是否通过提供访问方法507来确认允许读出(SH11)。在允许的情况下,安全管理器5取得Credential内的提供者根证书的哈希值501(SH12)。
在不允许的情况下,安全管理器5确认指定组织ID和Java(TM)应用程序的组织ID是否一致(SH08)。在一致的情况下,根据Java(TM)应用程序指定的全路径,从硬盘中读出文件而返回到应用程序中(SH09)。在不一致的情况下,拒绝读出(SH02)。
安全管理器5确认哈希管理表格,来确认是否已经登记了提供者根证书的哈希值501(SH13)。在登记了的情况下,取得与提供者根证书的哈希值501对应的本地存储器根1302,而作为提供者本地存储器根来加以确定(SH14)。
在哈希管理表格上没有登记提供者根证书的哈希值501的情况下,安全管理器5在哈希管理表格上追加新的条目(SH15)。在该条目上记载提供者根证书的哈希值501和表格内唯一的本地存储器根1302。
将在哈希管理表上新登记的行的本地存储器根1302作为提供者本地存储器根来加以确定(SH16)。
在确定了提供者本地存储器根后,安全管理器5将文件名的全路径中的本地存储器根1302替换为提供者本地存储器根(SH17)。
安全管理器5通过硬盘4读出替换后的文件名的全路径的文件,而返回到Java(TM)应用程序(SH18)。
以上是关于文件读出的说明。接着,说明文件写入。
在“文件写入”函数调出时,将想写入的文件名的全路径和想写入的数据作为参数从Java(TM)应用程序传到安全管理器5。在成功的情况下,安全管理器5将数据写入到文件中。参考图17和图18,来说明“文件写入”函数调用的流程图。
首先,安全管理器5确认调用源的Java(TM)应用程序上是否存在bd.XXXX.perm(SI01)。在不存在bd.XXXX.perm的情况下,拒绝“文件写入”(SI02)。
在存在bd.XXXX.perm的情况下,通过应用程序管理器2取得盘根证书301的哈希值(SI03)。
安全管理器确认哈希管理表,并取得与盘根证书301的哈希值对应的本地存储器根1302(SI04)。
并且,判断指定文件名的全路径的开头根名是否与虚拟本地存储器根的名字一致(SI05)。在一致的情况下,将根名变换为本地存储器根(SI13)。在不一致的情况下,拒绝访问(SI02)。
这里,在变换前后,全路径如下那样。
应用程序指定的全路径:
/虚拟本地存储器根/指定组织ID/指定路径
基于SH05的变换后的路径:
/本地存储器根/指定组织ID/指定路径
之后,安全管理器5分解文件名的全路径(SI06)。由于文件名的全路径使用‘本地存储器根1302+“/”+指定组织ID+“/”+指定路径’的形式,所以可文件名的全路径可以分解为本地存储器根1302、指定组织ID和指定路径。在不能分解的情况下,拒绝写入(SI02)。
安全管理器5取得调用源的Java(TM)应用程序的组织ID(SI07)。并且,尝试能否从应用程序管理器2中取得指定组织ID与提供者组织ID502一致的Credential(SI10)。在不存在的情况下,拒绝写入(SI02)。
在取得了的情况下,来自Java(TM)应用程序的指定路径作为Credential的提供文件名506存在,并通过提供访问方法507来确认是否允许写入(SI11)。在不允许的情况下,安全管理器5确认指定组织ID和Java(TM)应用程序的组织ID是否一致(SI08)。在一致的情况下,根据Java(TM)应用程序指定的全路径,将数据写入到文件中(SI09)。在不一致的情况下,拒绝写入(SI02)。
在确认允许写入的情况下,安全管理器5取得Credential内的提供者根证书的哈希值501(SI12)。
安全管理器5确认哈希管理表,来确认是否已经登记了提供者根证书的哈希值501(SI13)。在登记了的情况下,取得与提供者根证书的哈希值501对应的本地存储器根1302,而作为提供者本地存储器根来加以确定(SI14)。
在哈希管理表上没有登记提供者根证书的哈希值501的情况下,安全管理器5将新行追加到哈希管理表上(SI15)。该行上记载了提供者根证书的哈希值501和表格内唯一的本地存储器根1302。
将在哈希管理表上新登记的行的本地存储器根1302作为提供者本地存储器根来加以确定(SI16)。
在确定了提供者本地存储器根后,安全管理器5将文件名的全路径中的本地存储器根1302替换为提供者本地存储器根(SI17)。
安全管理器5写入替换后的文件名的全路径的文件(SI18)。
如上所述,根据本实施形态,由于在本地存储器4的内部存在分别分配给根证书的哈希值的目录,所以若在这些目录下按每个组织来生成每个应用程序的领域,则在世界范围中,组织ID可以不唯一。由于在“域区域”这样封闭的世界中,可区别多个组织就足够了,所以在世界范围中组织ID不需要是唯一的值,不需要基于第三人机关的管理。
由于根证书不分配给装置主体,而分配给存储单元内的域区域,所以只要将BD-ROM装到应用程序执行装置中,必然保障了动作。尤其,并非没有可能暴露盘根证书,但是在这种情况下,使得不能使用该BD-ROM,或可以仅更新对该BD-ROM的盘根证书就可以了,由于由其他BD-ROM供给的应用程序可以如现有技术那样,使用盘根证书,所以可以实现可靠的动作保障。
这样,由于不需要这种世界范围内的组织ID的管理,且将现有的应用程序的彼此保障维持在高水平上,所以本发明的应用程序执行装置对执行与视频作品有关的应用程序的应用程序执行装置的世界标准化有很大贡献。
(补充)
以上,说明了在本申请的申请时刻,申请人可以知道的最佳实施形态,可以对下面所示的技术论点来提供进一步的改良和改变实施。如各实施形态所示那样来实施,或是否实施这些改进·改变都是任意的,注意依赖于实施人的主观意愿。
(Java(TM)存档文件302的选择)
在BD-ROM中还存在有视频等的数据的情况下,考虑选择通过视频再现中的事件(章节2的再现开始时)指定的Java(TM)存档文件302和与用户屏幕上的选择对应的Java(TM)存档文件302。
有时数字证书链由一个证书构成。这时,根证书、叶证书都是同一证书。
(许可的种类)
在是具有更丰富的功能的应用程序执行装置的情况下,也可在bd.XXXX.perm中包含其他种类的许可。也可在bd.XXXX.perm中包含多个数字信用证书312。
(组织ID)
根据实施形态来考虑将组织ID记载在BD-ROM上不同的文件上。这时,也可不需要拒绝“组织ID的取得”,而返回通过其他方法确定的组织ID。
(文件的读出/写入)
图15、图16、图17、图18中以文件的读出为中心进行了说明,但是同样还可从Java(TM)应用程序进行直接访问。在直接访问的情况下,还考虑在文件名的全路径上不存在指定路径的情况。
图15和图16中,作为读取文件整体的函数调用进行了说明,但是同样还可部分取得文件等,来进行典型的文件访问。
图11所示的控制流程是一例,根据Java(TM)应用程序的创建而大大不同。
(与其他方式的兼用)
本方式可以与其他文件访问许可方式(例如在UNIX(注册商标)上广泛使用的用户·组·全球访问模块)兼用。例如,也可兼用本方式和第二方式来决定下面的优先级。
(ア)在步骤SH06中不能分解为全路径的情况下,或步骤SH10中不存在数字信用证书的情况下,利用第二方式的访问控制。
(イ)在步骤SH09中使用第二方式的访问控制。
(ウ)对于其他,本方式优先。
(哈希值)
所谓本实施形态中的哈希值是指利用了SHA-1或MD5等的安全哈希函数的结果值。安全哈希函数具有特征:实质上不可能发现具有相同哈希值的数据。
(根证书的哈希值)
所谓本实施形态中的根证书的哈希值,可以不需要必然从根证书整体的数据中算出,而至少仅从根证书中包含的公钥的数据中算出。盘创建者可以明示选择用于MANIFEST.MF、SIG-BD.SF、SIG-BD.RSA中存储的哈希值的计算的安全哈希函数。
本实施形态中,将bd.XXXX.perm中的数字信用证书上固定了用于提供者根证书的哈希值501和接受者根证书的哈希值503的计算的安全哈希函数的情况作为连接对方,但是也可在bd.XXXX.perm中的数字信用证明中明示用于提供者根证书的哈希值501和接受者根证书的哈希值503的计算的安全哈希函数。
(根证书的比较)
步骤SA05中的根证书的比较可以进行根证书是否相同的比较,根证书中包含的公钥是否相同的比较。作为其他方式,也可忽略数字签名文件中的第一证书(根证书),确认是否通过盘根证书301签名了接着根证书的第二证书。由于不管使用哪种方式,盘根证书301都保障了数字签名文件中的第二证书,所以安全观点的效果相同。
步骤SA05的比较的主要目的是防止恶意使用应用程序之间的通信的攻击。认为恶意使用应用程序之间的通信的攻击试着使用如下这样产生的攻击用BD-ROM。
从通过攻击对象的盘创建者创建的正当的BD-ROM中读取通过数字证书签名的攻击对象的Java(TM)应用程序302。
生成进行攻击用的Java(TM)存档文件302,并通过数字证书来加以签名。
将攻击对象的Java(TM)存档文件302和攻击用的Java(TM)存档文件302记录在攻击用BD-ROM上。
攻击用的Java(TM)存档文件302和攻击对象的Java(TM)存档文件302同时通过数字证书来加以签名,但是都使用不同的根证书。若在应用程序执行装置中,对两个Java(TM)存档文件302中的Java(TM)应用程序许可应用程序之间通信,则攻击用的Java(TM)存档文件302可以对攻击对象的Java(TM)存档文件302进行不正当的应用程序之间的通信,攻击对象的Java(TM)存档文件302要对自身使用的存储区域进行攻击对象的盘创建者不能预期的动作。
为了防止上述攻击,需要在步骤SA05中比较根证书。另外,也可代替步骤SA05,防止利用不同的根证书的Java(TM)应用程序彼此的应用程序之间的通信。这时,一个BD-ROM上也可具有多个盘根证书301。
(本地存储器名的名字取得函数)
实施形态中,在本地存储器名的名字取得函数的步骤SC01中,将作为与MHP可替换的形式的文件路径的虚拟本地存储器名暂时返回到应用程序后,在SH05、SI05中,变换为应用程序执行装置中的本地存储器名,但是也可在本地存储器名的名字取得函数的步骤SC01中,直接将在哈希管理表上描述的本地存储器名直接返回到Java(TM)应用程序,而省去虚拟本地存储器名向本地存储器名的变换。
(标题)
在制造应用程序执行装置来作为BD-ROM再现装置的情况下,最好将根据BD-ROM的装载或用户操作、装置的状态来选择标题的“模块管理器”设置在应用程序执行装置上。BD-ROM再现装置内的解码器根据基于该“模块管理器”的标题选择,来进行基于播放列表信息的AVClip的再现。
应用程序管理器2在“模块管理器”进行了标题的选择时,使用与前一标题对应的AMT和与当前标题对应的AMT来执行信令。该信令记载在与前一标题对应的AMT上,但是进行使没有在与当前标题对应的AMT上记载的应用程序的动作终止,不被记载在与前一标题对应的AMT上,使与当前标题对应的AMT上所记载的应用程序的动作开始的控制。并且,每次进行该应用程序信令时,最好进行使用上述的盘根证书的验证。
(BD-BOX)
在将长篇视频作品或一组视频作品记录在多个BD-ROM上,来构成所谓的BD-BOX时,最好将同一盘根证书301分配给这些BD-ROM。这样,在将同一盘根证书301分配给多个BD-ROM的情况下,可通过应用程序,在盘交换前后进行动作。这样,将在盘交换前后动作的应用程序称作“盘无边界应用程序”。这里应用程序管理器2最好在进行了BD-ROM的交换的情况下,读出新装入的BD-ROM的盘根证书301,并进行确认与定义该盘无边界应用程序的Java(TM)存档文件302内的盘根证书301的一致性的处理。并且,若有一致性,则继续进行盘无边界应用程序,若不具有一致性,则强制终止盘无边界应用程序。由此,在BD-ROM的交换前后,可以仅使正当的应用程序动作。
(Credential)
·Credential最好在多个XML文件中取出用特定的标志包围的部分,通过结合这些部分来构成。
·也可将通过提供者组织的叶证书(的公钥)签名了Credential后的值作为Credential的签名信息,记载在bd.XXXX.perm中。
·在进行“权限的提供”的情况下,bd.XXXX.perm可以是多个,但是在有多个的情况下,bd.XXXX.perm中,最好描述SIG-BD.SF的哪个叶证书用于与哪个Credential的对照的信息。
·作为Credential的生成,可以在bd.XXXX.perm上写入提供者文件名,并从其他文件中写入的值中算出Credential的实体。
·并且,全部组合这些,最好在bd.XXXX.perm中得到了提供者文件、特定叶证书的信息、签名信息。
(本地存储器)
本实施形态中本地存储器为装置嵌入型的硬盘,若是安全的记录介质,也可采用可移动的记录介质。例如,也可采用SD存储卡。
(应安装的包)
每次实施应用程序执行装置时,最好将下面的BD-J Extention安装到应用程序执行装置上。BD-J Extention包含为将超过GEM[1.0.2]的功能提供给Java(TM)平台而具体化的各种包。由BD-J Extention提供的包有如下几个。
·org.bluray.media
该包提供应追加到Java(TM)Media FrameWork的特殊功能。将对于角度、声音、字幕的选择的控制追加到该包上。
·org.bluray.ti
该包包含将GEM[1.0.2]中的“服务”映射到“标题”上来加以动作的API、从BD-ROM中询问标题信息的结构和选择新标题的机构。
·org.bluray.application
该包包含管理应用程序的生存区间用的API。另外,包含询问每次执行应用程序时的信令所需的信息的API。
·org.bluray.ui
该包包含定义BD-ROM中特殊化的关键事件用的常数,而实现与视频再现的同步的类。
·org.bluray.vfs
该包由于不局限于数据的位置,来无缝再现数据,所以提供绑定在BD-ROM上记录的内容(on-disc内容)和没有在BD-ROM上记录的本地存储器上的内容(off-disc内容)(Binding Scheme)。
所谓Binding Scheme,是指使BD-ROM上的内容(AVClip、字幕、BD-J应用程序)和本地存储器上的关联内容相关联。该Binding Scheme实现无缝再现,而不限于内容的位置。
(本地存储器的访问)
例如,确认在文件路径“/Persistent/1/1/streams”上是否存在希望的文件,可以通过使用java(TM).io的exits()方法来进行。下面表示希望的文件是O.m2ts的情况下的java(TM).io的exits()方法的使用例。
例:
new java(TM).io.File(”/Persistent/1/1/streams/0.m2ts”).exists();
(许可请求文件)
许可请求文件也可决定是否允许下面的功能。
·网络连接的使用
·BD-ROM的访问
·BD-ROM中的其他标题的选择
·其他平台的执行控制
(视频·声音)
也可在图1(a)所示的BD-ROM的目录结构中,在ROOT目录下设置BDMV路径,在该目录下记录作为MPEG2-TS形式的AV流的AVClip和规定该再现路径的播放列表信息。并且,也可描述要进行通过播放列表信息的再现的Java(TM)应用程序。
在播放列表信息存储在00001.mpls的文件中的情况下,Java(TM)应用程序根据JMF库,来生成JMF播放实例。JMF A”BD://00001.mpls”是命令虚拟机进行再现PL的播放实例的生成的方法。A.play是对JMF播放实例命令再现的方法。
(BD-ROM内容)
设BD-ROM上所记录的应用程序构成视频作品,但是若不是在本地存储器上安装来加以使用的应用程序,而是以在BD-ROM上记录的状态下来使用的应用程序,则可以构成除此之外的应用程序。例如,可以是构成游戏软件的应用程序。本实施形态中作为盘介质,选择BD-ROM为题材,但是若是可移动体,且没有进行著作权保护的记录介质,则可以采用其他记录介质。
(Virtual Package:虚拟包)
也可使安全管理器5进行生成虚拟包这样的处理。所谓虚拟包是指动态组合在BD-ROM等的只读型记录介质上记录的数字流和在硬盘等的可重写型的记录介质上记录的数字流,来构筑虚拟的包,来实现只读型记录介质的内容扩展的技术。这里在BD-ROM上记录的数字流构成视频作品的正编,在硬盘上记录的数字流构成视频作品的续编的情况下,通过构筑上述的虚拟包,可以将BD-ROM上的正编和硬盘上的续编作为一个长篇的视频作品来加以处理,从而供给再现。
其可以通过安全管理器5生成虚拟包信息来进行。所谓虚拟包信息是指扩展了BD-ROM中的卷管理信息后的信息。这里卷信息是规定在某个记录介质上存在的目录文件结构的信息,包括对目录的目录管理信息和对文件的文件管理信息。所谓虚拟包信息是指通过在表示BD-ROM的目录文件结构的卷管理信息上追加新的文件管理信息,来实现BD-ROM中的目录文件结构的扩展。通过该虚拟包信息的生成,应用程序以与访问BD-ROM相同的感觉,来访问本地存储器中的每个盘根证书的域区域的每个组织的区域。
(控制顺序的实现)
由于各实施形态中引用流程图来说明的控制顺序或基于功能的构成要素的控制顺序使用硬件资源来具体实现,所以满足了称作利用了自然规律的技术思想的创建的“作为程序发明”的成立要件。
·本发明的程序的生产形态
本发明的程序是计算机可执行的执行形式的程序(对象程序),由使计算机执行的一个以上的程序码来构成实施形态所示的流程图的各步骤或功能构成要素的各个顺序。这里程序码有如处理器的本机代码和JAVA字节码那样的各种种类。基于程序码的各步骤的实现有各种形态。在可利用外部函数,来实现各步骤的情况下,调用该外部函数的调用语句是程序码。另外,有时实现一个步骤这种程序码也归属于分开的对象程序。在限制了命令种类的RISC处理器中,通过组合算术运算命令或逻辑运算命令、分支命令等,来实现流程图的各步骤。
本发明的程序可以如下这样来生成。首先,软件开发者使用编程语言,来描述实现各流程图或功能结构要素的源程序。每次在该描述时,软件开发者根据编程语言的规则,使用类结构体或变量、排列变量、外部函数的调用,来描述具体实现各流程图或功能构成要素的源程序。
将所描述的源程序作为文件提供给编译器。编译器翻译这些源程序来生成对象程序。
基于编译器的翻译由语法分析、最佳化、资源分配、码生成的过程构成。在语法分析中,进行源程序的字句分析、语法分析和含义分析,并将源程序变换为中间程序。最佳化中,对中间程序进行基本块化、控制流程分析和数据流分析这样的操作。在资源分配中,为了实现对作为目标的处理器的命令组的适用,分配给将中间程序中的变量作为目标的处理器的处理器具有的寄存器或存储器。在码生成中,将中间程序内的各中间命令变换为程序码后,得到对象程序。
若生成了对象程序,则程序对其启动链接程序。链接程序将这些对象程序或相关联的库程序分配给存储器空间,将这些结合为一个,来生成装载模块。这样生成的装载模块以基于计算机的读出为前提,使计算机来执行各流程图所示的处理顺序和功能构成要素的处理顺序。可以经过以上的处理,来作成本发明的程序。
本发明的程序的使用形态
本发明的程序可以如下这样来使用。
(i)作为嵌入程序使用
在本发明的程序作为嵌入程序来使用的情况下,将程序中的装载模块与基本输入输出程序(BIOS)和各种中间设备(操作系统)一起写入到命令ROM中。通过将这种命令ROM嵌入到控制部中,使CPU加以执行,而可以将本发明的程序作为应用程序执行装置的控制程序来使用。
(ii)作为应用程序的使用
在应用程序执行装置是硬盘内置模块的情况下,将基本输入输出程序(BIOS)嵌入到命令ROM中,将各种中间件(操作系统)预先安装到硬盘中。从硬盘将启动系统用的导入ROM设置在应用程序执行装置上。
这时,仅装载模块通过可移动型的记录介质和网络,供给应用程序执行装置,并作为一个应用程序安装到硬盘上。由此,应用程序执行装置在进行基于引导(boot)ROM的引导程序(bootstrap),并启动操作系统后,作为一个应用程序,使CPU执行该应用程序,并使用本发明的程序。
由于硬盘模块的应用程序执行装置中,要将本发明的程序作为一个应用程序使用,所以本发明的程序可单个转让、销售、或通过网络来提供。
(应用程序管理器2~安全管理器4)
应用程序管理器2~安全管理器4可以作为一个系统LSI来实现。
所谓系统LSI是指在高密度基板上安装裸芯片后,进行封装的LSI。使系统LSI包含将多个裸芯片安装在高密度基板上,通过进行封装,使多个裸芯片具有好像一个LSI这样的外形结构的这样的芯片(这种系统LSI称作多芯片模块)。
这里若着眼于封装的种类,则系统LSI有QFP(四侧引脚扁平封装)和PGA(针脚栅格阵列)这种类别。QFP是在封装的四个侧面上安装了针脚的系统LSI。PGA是在底面整体上安装了多个针脚的系统LSI。
这些针脚承担作为与其他电路的接口的任务。由于系统LSI中的针脚存在这种接口的任务,所以通过将其他电路连接到系统LSI中的这些针脚上,系统LSI实现了作为应用程序执行装置的核心的任务。
在系统LSI上封装的裸芯片包括“前端部”、“后端部”和“数字处理部”。“前端部”是将模拟信号进行数字化后的部分,“后端部”是模拟处理数字处理的结果,即所得到的数据,来加以输出的部分。
各实施形态中作为内部构成图表示的各构成要素安装在该数字处理部内。
如之前作为“嵌入程序的使用”中所描述的,在命令ROM中写入了作为程序的装载模块、基本输入输出程序(BIOS)和各种中间件(操作系统)。本实施形态中,特别创建的是作为该程序的装载模块的部分,所以通过将存储了作为程序的装载模块的命令ROM作为裸芯片来封装,可以由本发明的系统LSI来生产。
对于具体的安装,最好使用SoC安装或SiP安装。所谓SoC(System onchip)安装是指将多个电路烧结在一个芯片上的技术。所谓SiP(System inPackage)安装是指用树脂等将多个芯片变为一个封装的技术。经过以上的过程,本发明的系统LSI可以以各实施形态所示的应用程序执行装置的内部构成图为基础来生成。
另外,上述这样生成的集成电路因集成度的不同,也称作IC、LSI、超级LSI和顶级LSI。
进一步,各记录应用程序执行装置的构成要素的一部分或全部可作为一个芯片构成。集成电路并不限于上述的SoC安装、SiP安装,也可由专用电路或通用处理器来实现。考虑在LSI制造后,使用可进行编程的FPGA(Field Programable Gate Array)、或可重新构成LSI内部的电路单元的连接和设置的可重构处理器。进一步,若因半导体技术的进步或所派生的技术,替换LSI的集成电路的技术发现,则当然也可使用该技术来进行功能块的集成电路化。例如,还可以适用于生物技术。
产业上的可利用性
本发明的应用程序执行装置在上述实施形态中公开了内部结构,可以明白可根据该内部结构来进行生产,所以在资质上可以在工业上使用。由此,本发明的应用程序执行装置具有在产业上利用的可能性。

Claims (3)

1.一种应用程序执行装置,从记录介质读出应用程序,并加以执行,所述记录介质记录有:盘根证书;第一根证书;应用程序;证书信息,包含提供者组织的提供者组织ID以及与作为对象的文件相关的信息,所述提供者组织将读出作为所述对象的文件的权限提供给所述应用程序;叶证书,包含与所述提供者组织ID相同的组织ID;以及第二根证书,与所述叶证书相关联;所述应用程序执行装置的特征在于,
所述盘根证书是将从根认证局发布的第三根证书分配给该记录介质的证书,并且与作为所述对象的文件相关的信息是表示所述文件的地点的信息,还包含有与包含所述提供者组织ID的文件路径相关的信息;
该应用程序执行装置具有:
管理单元,通过判断从所述盘根证书取得的哈希值与从所述第一根证书取得的哈希值是否相同,来判断应用程序的正当性;
执行单元,在所述管理单元判断为正当的情况下,来执行所述应用程序;以及
存储单元,包含由文件路径确定的存储区域,所述文件路径使用了所述第二根证书的哈希值以及所述提供者组织ID;
在所述执行中的应用程序指定包含所述提供者组织ID的文件路径,做出了对作为所述对象的文件进行读出的要求时,将该文件路径变换为使用了第二根证书的哈希值和所述指定的提供者组织ID的文件路径,并使所述应用程序读出作为由所述变换后的文件路径确定的存储区域内的对象的文件,所述第二根证书与包含和所述指定的提供者组织ID相同的组织ID的叶证书相关联。
2.一种应用程序执行方法,使计算机执行应用程序,所述计算机具有存储单元,所述存储单元包含使用文件路径确定的存储区域,所述计算机构成为从记录介质读出应用程序,所述记录介质记录有:盘根证书;第一根证书;应用程序;证书信息,包含提供者组织的提供者组织ID以及与作为对象的文件相关的信息,所述提供者组织将读出作为所述对象的文件的权限提供给所述应用程序;叶证书,包含与所述提供者组织ID相同的组织ID;以及第二根证书,与所述叶证书相关联;所述应用程序执行方法的特征在于,
所述盘根证书是将从根认证局发布的第三根证书分配给该记录介质的证书,并且与作为所述对象的文件相关的信息是表示所述文件的地点的信息,还包含有与包含所述提供者组织ID的文件路径相关的信息;
该应用程序执行方法使所述计算机执行如下步骤:
第一步骤,通过判断从所述盘根证书取得的哈希值与从所述第一根证书取得的哈希值是否相同,来判断应用程序的正当性;
第二步骤,在所述第一步骤中判断为正当的情况下,来执行所述应用程序;以及
第三步骤,在所述执行中的应用程序指定包含所述提供者组织ID的文件路径,做出了对作为所述对象的文件进行读出的要求时,将该文件路径变换为使用了第二根证书的哈希值和所述指定的提供者组织ID的文件路径,并使所述应用程序读出作为由所述变换后的文件路径确定的存储区域内的对象的文件,所述第二根证书与包含和所述指定的提供者组织ID相同的组织ID的叶证书相关联。
3.一种程序,使计算机执行该程序,所述计算机具有存储单元,所述存储单元包含使用文件路径确定的存储区域,所述计算机构成为从记录介质读出应用程序,所述记录介质记录有:盘根证书;第一根证书;应用程序;证书信息,包含提供者组织的提供者组织ID以及与作为对象的文件相关的信息,所述提供者组织将读出作为所述对象的文件的权限提供给所述应用程序;叶证书,包含与所述提供者组织ID相同的组织ID;以及第二根证书,与所述叶证书相关联;所述程序的特征在于,
所述盘根证书是将从根认证局发布的第三根证书分配给该记录介质的证书,并且与作为所述对象的文件相关的信息是表示所述文件的地点的信息,还包含有与包含所述提供者组织ID的文件路径相关的信息;
该程序使所述计算机执行如下步骤:
第一步骤,通过判断从所述盘根证书取得的哈希值与从所述第一根证书取得的哈希值是否相同,来判断应用程序的正当性;
第二步骤,在所述第一步骤中判断为正当的情况下,来执行所述应用程序;以及
第三步骤,在所述执行中的应用程序指定包含所述提供者组织ID的文件路径,做出了对作为所述对象的文件进行读出的要求时,将该文件路径变换为使用了第二根证书的哈希值和所述指定的提供者组织ID的文件路径,并使所述应用程序读出作为由所述变换后的文件路径确定的存储区域内的对象的文件,所述第二根证书与包含和所述指定的提供者组织ID相同的组织ID的叶证书相关联。
CN2010101163597A 2005-02-14 2006-02-13 应用程序执行装置、应用程序执行方法和程序 Expired - Fee Related CN101789065B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005036621 2005-02-14
JP2005-036621 2005-02-14

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN2006800008280A Division CN101019106B (zh) 2005-02-14 2006-02-13 应用程序执行装置、管理方法和程序

Publications (2)

Publication Number Publication Date
CN101789065A true CN101789065A (zh) 2010-07-28
CN101789065B CN101789065B (zh) 2012-05-09

Family

ID=36793209

Family Applications (8)

Application Number Title Priority Date Filing Date
CN2010101164316A Expired - Fee Related CN101853356B (zh) 2005-02-14 2006-02-13 应用程序执行装置、应用程序执行方法和程序
CN2006800008280A Active CN101019106B (zh) 2005-02-14 2006-02-13 应用程序执行装置、管理方法和程序
CN201010116339XA Expired - Fee Related CN101853353B (zh) 2005-02-14 2006-02-13 应用程序执行装置、应用程序执行方法
CN2010101164354A Expired - Fee Related CN101853340B (zh) 2005-02-14 2006-02-13 应用程序执行装置、应用程序执行方法和程序
CN2010101163864A Expired - Fee Related CN101853221B (zh) 2005-02-14 2006-02-13 应用程序执行装置及应用程序执行方法
CN2010101163597A Expired - Fee Related CN101789065B (zh) 2005-02-14 2006-02-13 应用程序执行装置、应用程序执行方法和程序
CN2010101163879A Expired - Fee Related CN101853355B (zh) 2005-02-14 2006-02-13 集成电路
CN2010101163578A Expired - Fee Related CN101853354B (zh) 2005-02-14 2006-02-13 应用程序执行装置、应用程序执行方法

Family Applications Before (5)

Application Number Title Priority Date Filing Date
CN2010101164316A Expired - Fee Related CN101853356B (zh) 2005-02-14 2006-02-13 应用程序执行装置、应用程序执行方法和程序
CN2006800008280A Active CN101019106B (zh) 2005-02-14 2006-02-13 应用程序执行装置、管理方法和程序
CN201010116339XA Expired - Fee Related CN101853353B (zh) 2005-02-14 2006-02-13 应用程序执行装置、应用程序执行方法
CN2010101164354A Expired - Fee Related CN101853340B (zh) 2005-02-14 2006-02-13 应用程序执行装置、应用程序执行方法和程序
CN2010101163864A Expired - Fee Related CN101853221B (zh) 2005-02-14 2006-02-13 应用程序执行装置及应用程序执行方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN2010101163879A Expired - Fee Related CN101853355B (zh) 2005-02-14 2006-02-13 集成电路
CN2010101163578A Expired - Fee Related CN101853354B (zh) 2005-02-14 2006-02-13 应用程序执行装置、应用程序执行方法

Country Status (7)

Country Link
US (3) US8122263B2 (zh)
EP (2) EP1818833B1 (zh)
JP (4) JP4806396B2 (zh)
CN (8) CN101853356B (zh)
BR (1) BRPI0605904A (zh)
TW (2) TWI470625B (zh)
WO (1) WO2006085647A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105429934A (zh) * 2014-09-19 2016-03-23 腾讯科技(深圳)有限公司 Https连接验证的方法和装置
US10679661B2 (en) 2015-01-22 2020-06-09 Sony Corporation Information processing device and method of data reproduction

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853356B (zh) * 2005-02-14 2012-11-28 松下电器产业株式会社 应用程序执行装置、应用程序执行方法和程序
JP4464297B2 (ja) 2005-03-10 2010-05-19 パナソニック株式会社 再生装置、再生方法、及び再生プログラム
US20090034942A1 (en) * 2006-02-09 2009-02-05 Wataru Ikeda Information recording medium and reproduction control method
FR2902590B1 (fr) * 2006-06-16 2008-08-01 Alcatel Sa Detection de boucles au sein d'un element intermediaire de signalisation sip
US8046422B2 (en) * 2006-08-21 2011-10-25 Netapp, Inc. Automatic load spreading in a clustered network storage system
WO2008132772A1 (ja) * 2007-04-19 2008-11-06 Panasonic Corporation データ管理装置、保存データの管理方法、及びコンピュータプログラム
JP5400611B2 (ja) * 2007-05-24 2014-01-29 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びアクセス装置
WO2009091611A1 (en) * 2008-01-18 2009-07-23 Identrust, Inc. Binding a digital certificate to multiple trust domains
CN101911089B (zh) * 2008-01-21 2013-06-12 索尼公司 信息处理设备,盘和信息处理方法
JP4883015B2 (ja) * 2008-01-21 2012-02-22 ソニー株式会社 情報処理装置、ディスク、および情報処理方法、並びにプログラム
JP4952593B2 (ja) * 2008-01-21 2012-06-13 ソニー株式会社 情報処理装置、ディスク、および情報処理方法、並びにプログラム
US20090238365A1 (en) * 2008-03-20 2009-09-24 Kinamik Data Integrity, S.L. Method and system to provide fine granular integrity to digital data
US20090288076A1 (en) * 2008-05-16 2009-11-19 Mark Rogers Johnson Managing Updates In A Virtual File System
JP4600544B2 (ja) * 2008-08-22 2010-12-15 ソニー株式会社 情報処理装置、ディスク、および情報処理方法、並びにプログラム
JP2010191665A (ja) * 2009-02-18 2010-09-02 Sony Corp 情報処理装置、情報処理方法、およびプログラム、並びに記録媒体
US20100228704A1 (en) * 2009-02-20 2010-09-09 All Media Guide, Llc Recognizing a disc
JP4888797B2 (ja) 2010-02-18 2012-02-29 Necインフロンティア株式会社 キーボタン
EP2550621A4 (en) * 2010-03-25 2015-09-16 Virtustream Canada Holdings Inc SYSTEM AND METHOD FOR SAFE CLOUD COMPUTING
KR101453742B1 (ko) 2010-05-14 2014-10-22 에스케이플래닛 주식회사 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법
JP5620781B2 (ja) * 2010-10-14 2014-11-05 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
US8694548B2 (en) * 2011-01-02 2014-04-08 Cisco Technology, Inc. Defense-in-depth security for bytecode executables
US8412945B2 (en) 2011-08-09 2013-04-02 CloudPassage, Inc. Systems and methods for implementing security in a cloud computing environment
US9497224B2 (en) 2011-08-09 2016-11-15 CloudPassage, Inc. Systems and methods for implementing computer security
EP2680181A1 (en) * 2012-06-29 2014-01-01 Orange System and method of securely creating and controlling access to a virtualised space
EP2680180A1 (en) * 2012-06-29 2014-01-01 Orange System and method for securely allocating a virtualised space
CN103902878B (zh) * 2012-12-28 2017-08-22 新华三技术有限公司 一种虚拟环境下的License认证方法和装置
US8918837B2 (en) * 2012-12-28 2014-12-23 Intel Corporation Web application container for client-level runtime control
US11347498B2 (en) * 2013-02-26 2022-05-31 Red Hat, Inc. Bytecode modification
EP3007061B1 (en) 2013-05-27 2019-08-28 Fujitsu Limited Application execution program, application execution method, and information processing terminal device in which application is executed
KR102337990B1 (ko) * 2014-09-18 2021-12-13 삼성전자주식회사 권한 설정 토큰을 이용하는 전자 장치
CN104679578B (zh) * 2015-03-12 2018-09-07 绚视软件科技(上海)有限公司 BD-java平台上的最小内存自适应机制及使用方法
US10333903B1 (en) * 2015-06-16 2019-06-25 Amazon Technologies, Inc. Provisioning network keys to devices to allow them to provide their identity
US10417998B2 (en) * 2015-08-31 2019-09-17 Mitsubishi Electric Corporation Application execution apparatus and application execution method
KR101658501B1 (ko) * 2015-09-03 2016-09-22 주식회사 마크애니 해시함수 기반의 전자서명 서비스 시스템 및 그 방법
US10050947B2 (en) * 2016-01-28 2018-08-14 Cisco Technology, Inc. Key distribution in a distributed network environment
US10303884B2 (en) * 2016-09-22 2019-05-28 Apple Inc. Countersigning updates for multi-chip devices
CN106681799B (zh) * 2017-01-03 2018-05-18 北京百度网讯科技有限公司 插入磁盘的方法、装置和系统
US11146407B2 (en) 2018-04-17 2021-10-12 Digicert, Inc. Digital certificate validation using untrusted data
CN109445902B (zh) * 2018-09-06 2021-05-07 新华三云计算技术有限公司 一种数据操作方法和系统
US11044096B2 (en) * 2019-02-04 2021-06-22 Accenture Global Solutions Limited Blockchain based digital identity generation and verification
US11122091B2 (en) * 2019-04-16 2021-09-14 FireMon, LLC Network security and management system
CN114201761B (zh) * 2022-02-17 2022-06-28 支付宝(杭州)信息技术有限公司 在可信计算系统中增强度量代理安全性

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6097811A (en) * 1995-11-02 2000-08-01 Micali; Silvio Tree-based certificate revocation system
US5825877A (en) * 1996-06-11 1998-10-20 International Business Machines Corporation Support for portable trusted software
US6584495B1 (en) * 1998-01-30 2003-06-24 Microsoft Corporation Unshared scratch space
US6385596B1 (en) * 1998-02-06 2002-05-07 Liquid Audio, Inc. Secure online music distribution system
US6327652B1 (en) 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6553494B1 (en) * 1999-07-21 2003-04-22 Sensar, Inc. Method and apparatus for applying and verifying a biometric-based digital signature to an electronic document
FR2802666B1 (fr) * 1999-12-17 2002-04-05 Activcard Systeme informatique pour application a acces par accreditation
JP2001325134A (ja) * 2000-05-15 2001-11-22 Sony Corp ディレクトリ設定方法、記録装置
DE10053151A1 (de) 2000-10-26 2002-05-08 Bayer Ag Zusammensetzung enthaltend thermoplastische Kunststoffe
CA2371124A1 (en) * 2001-02-09 2002-08-09 Itaru Kawakami Information processing method/apparatus and program
US6973574B2 (en) * 2001-04-24 2005-12-06 Microsoft Corp. Recognizer of audio-content in digital signals
WO2003023482A1 (de) 2001-09-11 2003-03-20 Leica Microsystems Wetzlar Gmbh Verfahren und vorrichtung zur optischen untersuchung eines objektes
US7900048B2 (en) 2002-05-07 2011-03-01 Sony Ericsson Mobile Communications Ab Method for loading an application in a device, device and smart card therefor
EP1361527A1 (en) 2002-05-07 2003-11-12 Sony Ericsson Mobile Communications AB Method for loading an application in a device, device and smart card therefor
JP4007873B2 (ja) 2002-07-09 2007-11-14 富士通株式会社 データ保護プログラムおよびデータ保護方法
JP2004079055A (ja) 2002-08-14 2004-03-11 Toshiba Corp 光ディスク装置と光ディスク処理方法及び光ディスク
US20040054920A1 (en) * 2002-08-30 2004-03-18 Wilson Mei L. Live digital rights management
JP4176533B2 (ja) 2003-03-31 2008-11-05 株式会社エヌ・ティ・ティ・ドコモ 端末装置及びプログラム
CN1581144A (zh) * 2003-07-31 2005-02-16 上海市电子商务安全证书管理中心有限公司 数字证书本地认证的方法及系统
KR101102717B1 (ko) 2003-09-17 2012-01-05 파나소닉 주식회사 애플리케이션 실행장치, 애플리케이션 실행방법, 집적회로, 및 컴퓨터 판독가능한 기록매체
EP1676204A2 (en) * 2003-10-13 2006-07-05 Koninklijke Philips Electronics N.V. Storage allocation per application
WO2005060255A1 (en) 2003-12-18 2005-06-30 Matsushita Electric Industrial Co., Ltd. Method for storing, authenticalting and executing an application program
KR20110031506A (ko) 2003-12-18 2011-03-28 파나소닉 주식회사 애플리케이션 프로그램을 인증 및 실행하는 방법
CN101714387B (zh) 2004-05-11 2012-06-20 松下电器产业株式会社 再现装置、再现方法
GB0411861D0 (en) 2004-05-27 2004-06-30 Koninkl Philips Electronics Nv Authentication of applications
WO2006003875A1 (ja) 2004-06-30 2006-01-12 Matsushita Electric Industrial Co., Ltd. プログラム実行機器およびそのプログラム実行方法
WO2006006719A1 (en) 2004-07-14 2006-01-19 Matsushita Electric Industrial Co., Ltd. Method for authenticating and executing an application program
CN101853356B (zh) * 2005-02-14 2012-11-28 松下电器产业株式会社 应用程序执行装置、应用程序执行方法和程序
WO2006129813A1 (en) 2005-05-31 2006-12-07 Matsushita Electric Industrial Co., Ltd. Broadcast recording and reproduction apparatus with expiration date management unit
JP4687424B2 (ja) * 2005-11-25 2011-05-25 ソニー株式会社 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105429934A (zh) * 2014-09-19 2016-03-23 腾讯科技(深圳)有限公司 Https连接验证的方法和装置
CN105429934B (zh) * 2014-09-19 2019-07-19 腾讯科技(深圳)有限公司 Https连接验证的方法和装置、可读存储介质、终端
US10679661B2 (en) 2015-01-22 2020-06-09 Sony Corporation Information processing device and method of data reproduction

Also Published As

Publication number Publication date
CN101853353A (zh) 2010-10-06
BRPI0605904A (pt) 2007-12-18
US8122263B2 (en) 2012-02-21
EP2166474A3 (en) 2011-04-27
CN101853221B (zh) 2012-09-05
EP1818833A4 (en) 2011-04-27
JP2010033592A (ja) 2010-02-12
JP5020301B2 (ja) 2012-09-05
CN101853340B (zh) 2012-03-14
TWI470625B (zh) 2015-01-21
US20090222674A1 (en) 2009-09-03
CN101853355A (zh) 2010-10-06
US8214639B2 (en) 2012-07-03
CN101789065B (zh) 2012-05-09
US20120265985A1 (en) 2012-10-18
US20100049992A1 (en) 2010-02-25
CN101853356B (zh) 2012-11-28
CN101853355B (zh) 2013-04-24
CN101853221A (zh) 2010-10-06
JP2010160808A (ja) 2010-07-22
JP5065349B2 (ja) 2012-10-31
CN101853356A (zh) 2010-10-06
CN101853354A (zh) 2010-10-06
JPWO2006085647A1 (ja) 2008-06-26
TW201303856A (zh) 2013-01-16
EP1818833B1 (en) 2017-04-19
JP2009301562A (ja) 2009-12-24
EP2166474A2 (en) 2010-03-24
WO2006085647A1 (ja) 2006-08-17
TW200701210A (en) 2007-01-01
EP2166474B1 (en) 2018-04-04
EP1818833A1 (en) 2007-08-15
CN101853340A (zh) 2010-10-06
CN101019106A (zh) 2007-08-15
CN101853353B (zh) 2012-07-18
US8719566B2 (en) 2014-05-06
CN101853354B (zh) 2012-09-19
JP4806396B2 (ja) 2011-11-02
JP4870823B2 (ja) 2012-02-08
CN101019106B (zh) 2010-04-14

Similar Documents

Publication Publication Date Title
CN101019106B (zh) 应用程序执行装置、管理方法和程序
RU2411572C2 (ru) Устройство обработки информации, способ обработки информации и компьютерная программа
US7668439B2 (en) Apparatus for reproducing data, method thereof and recording medium
CN102369577B (zh) 回放设备、记录方法和回放方法
CN101589369B (zh) 再生装置、系统lsi、初始化方法
EP1950683A1 (en) Recording/reproducing device, communication device, program, system lsi
CN102067222B (zh) 针对下载数据的光盘中的cps单元管理
WO2006073251A2 (en) Method and apparatus for protecting shared data and method and apparatus for reproducing data from recording medium using local storage

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120509

Termination date: 20170213

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