CN1985516A - 用于认证和执行应用程序的方法 - Google Patents
用于认证和执行应用程序的方法 Download PDFInfo
- Publication number
- CN1985516A CN1985516A CNA2005800235947A CN200580023594A CN1985516A CN 1985516 A CN1985516 A CN 1985516A CN A2005800235947 A CNA2005800235947 A CN A2005800235947A CN 200580023594 A CN200580023594 A CN 200580023594A CN 1985516 A CN1985516 A CN 1985516A
- Authority
- CN
- China
- Prior art keywords
- file
- certificate
- program
- authentication
- catalogue
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/24—Systems for the transmission of television signals using pulse code modulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4433—Implementing client middleware, e.g. Multimedia Home Platform [MHP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8173—End-user applications, e.g. Web browser, game
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/167—Systems rendering the television signal unintelligible and subsequently intelligible
- H04N7/1675—Providing digital key or authorisation information for generation or regeneration of the scrambling sequence
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Storage Device Security (AREA)
Abstract
与用于通过传统的广播电波下载的程序的技术不同,当经由网络下载程序时,存在一种可能性,即,在未通知该程序被篡改的情况下启动该程序。因此,当经由网络下载程序时,在终端的本地区域中构造位于服务器上的程序的文件层次。接着,对在本地区域中构造的文件层次执行程序认证,这能够保证程序的可信性。
Description
技术领域
本发明涉及一种用于认证和执行程序的方法,用于检查已下载程序的可信性,并且执行已认证其可信性的程序。
背景技术
在DVB-MHP规范“ETSI TS 101 812 V1.2.1 DVB-MHPSpecification 1.0.2”,PCT国际申请(Tokuhyo)2002-508624的日语译文等等中描述了数字电视中的下载程序以及检查/保证该程序的可信性的功能。这些功能包括用于验证承载在正在接收的广播电波上的程序是否未被篡改以及验证该程序是否由可靠的组织发出的功能。使用该功能能够防止启动不按照原始方式工作的重写后的程序,属于欺骗第三方的程序等等,这些程序会给数字电视造成损坏。
以下,证实这种程序的可信性的行为将被称为认证。
除承载在正在接收的广播电波上的程序以外,DVB-MHP规范“ETSI TS 101 812 V1.2.1 DVB-MHP Standard 1.0.2”还涉及经由网络(例如因特网)下载位于服务器上的程序以及验证该程序。
然而,与通过传统的广播电波下载的程序的情况不同,经由网络下载的情况会造成安全问题。这里所提及的安全问题是指存在以下可能性,即,构成在程序的认证中使用的程序的文件(以下称为配置文件)以及当在终端装置启动程序时使用的程序的配置文件可能会有一个不同或全部都不相同。当在终端装置从服务器下载程序的配置文件并且认证其之后,篡改了位于服务器的程序的配置文件时会发生这种情况。当篡改了配置文件并且随后由终端装置重新下载时,根据该配置文件构造的程序不再能正常的使用。
此外,有一种技术,用于将多个文件聚集为一个称作JAR(Java档案文件)的文件格式的文件,JAR基于公知的ZIP文件格式。使用这种技术,与不使用JAR时相比,压缩了文件大小并且可以缩短下载所需的时间。然而,当在位于服务器的数据被频繁地更新的情况下使用JAR时,每当更新数据时,必须重新转换JAR格式文件。这给服务器带来负担,并且在许多情况下不希望这种情况发生。例如,由于关于股票价格等等的信息不断地实时改变,因此提供使用股票价格信息的程序的服务器的情况就属于这种类型。
由于上述问题,需要诸如数字电视等等的认证装置,其在不使用由JAR格式表示的文件的情况下保证经由网络从服务器下载的程序的可信性,在所述服务器中,排列有层次结构的文件和目录。
发明内容
在本发明中,当经由网络下载程序时,在终端装置的本地区域构建位于服务器中的程序的文件层次。此外,本发明的一个目的是提供一种用于认证和执行程序的方法,其可以通过对在本地构造的文件层次执行程序认证来保证程序的可信性。
为了解决现有的问题,根据本发明的用于认证和执行程序的方法是一种用于认证和执行程序的方法,其包括:认证和存储步骤,用于i)根据标识程序的存储位置的信息,从预定的服务器下载目录结构中的由至少一个数据文件构成的程序,所述数据文件需要篡改检查,ii)认证所述下载的需要篡改检查的数据文件,以及iii)将所述程序存储到广播接收机中,所述信息在传输流中指定,并且所述服务器连接到网络,以及执行步骤,用于执行所述已认证的程序,其中,所述认证和存储步骤包括:第一步骤,用于根据包含在构成所述目录结构的目录中的散列文件中列出的目录和数据文件,将散列文件中列出的所有需要篡改检查的数据文件下载到广播接收机中,以便具有与存储在所述服务器中的程序的目录结构相同的目录结构,第二步骤,用于验证两个散列值是否匹配,其中一个散列值是根据需要篡改检查的数据文件中的每一个而计算的,而另一个散列值存储在列出所述数据文件的散列文件中,第三步骤,用于验证包含在所述程序中的证书文件的有效性,第四步骤,用于验证解密值和散列值是否匹配,所述解密值是通过使用包含在所述程序的证书文件中的叶证书的公钥解密包含在所述程序中的签名文件的签名值而获得的,所述散列值是根据位于所述程序的顶层目录中的散列文件而计算的,以及第五步骤,用于当下列条件都满足时认证所述程序并存储所述已认证的程序,所述条件为:在所述第二步骤中,所述两个散列值被证实匹配;在所述第三步骤中,所述证书文件被证实有效;以及在所述第四步骤中,所述解密值和所述散列值被证实匹配,以及所述执行步骤包括:验证步骤,用于验证包含在所述存储的程序中的证书文件是否有效,以及在所述执行步骤中,再次认证所述存储的程序,并且只有当在所述验证步骤中证实包含在所述存储的程序中的证书文件有效时才执行所述存储的程序。
因此,能够在本地存储区域构造与服务器中相同的文件层次结构,并且能够保证可信性。此外,能够防止将已在服务器端被篡改的程序安装到广播接收机中,尽管认证成功。使用其,即使在服务器端进行了篡改,也可以在广播接收机中正常地使用这种程序。此外,不必再次下载程序,可以省略在该下载中的认证。对于必须等到完成对将完成的程序的启动的认证的用户来讲,这改进了便利性。此外,在本发明中,服务器以文件层次的形式呈现文件,而不使用JAR所示的压缩文件。因此,即使当服务器包括具有频繁更新的数据的文件时,也能够减少服务器上的,由于每次执行更新时必须重新压缩文件而带来的负担。
此外,所述第三步骤包括第六步骤,用于验证两个根证书是否匹配,其中一个根证书在所述程序中包含的证书文件中,并且另一个根证书位于所述广播接收机中,以及在所述第三步骤中,当所述两个根证书匹配时,所述证书文件被证实有效。
这里,所述第三步骤还包括第七步骤,用于验证所述程序中包含的证书文件中的每个证书的有效期,以及在所述第三步骤中,当以下两个条件都满足时,所述证书文件被证实有效,所述两个条件为:所述两个根证书匹配;以及当执行认证时的时间在所述证书文件中的每个证书的有效期内。
因此,能够防止存储具有非匹配根证书或者有效期已满的证书的程序。
此外,所述验证步骤包括第八步骤,用于验证两个根证书是否匹配,其中一个根证书在所述存储的程序中包含的证书文件中,并且另一个根证书位于所述广播接收机中,以及在所述验证步骤中,当所述两个根证书匹配时,包含在所述存储的程序中的证书文件被证实有效。
这里,所述验证步骤还包括第九步骤,用于验证包含在所述存储的程序中的证书文件中的每个证书的有效期,以及在所述验证步骤中,当以下两个条件都满足时,包含在所述存储的程序中的证书文件被证实有效,所述两个条件为:所述两个根证书匹配;以及执行时间在所述证书文件中的每个证书的有效期内。
因此,能够防止执行具有非匹配根证书或者有效期已满的证书的程序。
此外,当下列条件中的至少一个满足时,不存储所述程序,所述条件为:在所述第二步骤中,所述两个散列值未被证实匹配;在所述第三步骤中,所述证书文件未被证实有效;以及在所述第四步骤中,所述解密值和所述散列值未被证实匹配。
因此,例如,能够防止存储已在服务器端被篡改的程序。
此外,所述第一步骤可以包括第十步骤,用于当在所述服务器中,由存储在构成所述程序的顶层目录中的所述散列文件指定所述目录时,在所述广播接收机中的顶层目录下构造与由散列文件指定的目录相同的目录,并且将所述服务器中的顶层目录中存储的散列文件所指定的目录中存储的散列文件所指定的,需要篡改检查的数据文件下载到在所述广播接收机中构造的相应的目录中。
因此,能够在广播接收机构造与服务器中相同的文件层次结构,并且将需要篡改检查的数据文件下载到在广播接收机中构造的对应目录中。
此外,本发明不仅可以实现为如上所述的,用于认证和执行程序的方法,还可以实现为用于认证和执行程序的装置,该装置使包含在该方法中的特征步骤作为部件,本发明还可以实现为使计算机执行特征步骤的程序。此外,显然,这种程序可以经由记录介质(例如CD-ROM)和传输介质(例如因特网)来分发。
根据本发明中的用于认证和执行程序的方法,能够在本地存储区域构造与服务器中相同的文件层次结构,并且能够保证程序的可信性。此外,能够防止将已在服务器端被篡改的程序安装到广播接收机中,尽管认证成功。因此,即使在服务器端进行了篡改,也可以在广播接收机中正常地使用这种程序。
有关本申请的技术背景的进一步的信息
通过引用其整体,将2004年7月14日提交的美国临时申请No.60/587511的公开包含在此,包括说明书、附图和权利要求。
附图说明
通过结合附图所进行的、说明了本发明具体实施例的下列描述,本发明的目的、优点和特征将变得明显。在附图中:
图1是显示根据本发明第一实施例的有线电视系统的结构的示图;
图2显示了用于根据本发明的有线电视系统中的头端和终端装置之间的通信的频带的使用实例;
图3显示了用于根据本发明的有线电视系统中的头端和终端装置之间的通信的频带的使用实例;
图4显示了用于根据本发明的有线电视系统中的头端和终端装置之间的通信的频带的使用实例;
图5是显示根据本发明的有线电视系统中的终端装置的结构的示图;
图6显示了根据本发明的有线电视系统中的终端装置的外部视图;
图7是显示根据本发明的POD的硬件结构的示图;
图8是显示存储在根据本发明的POD中的程序的结构的示图;
图9是显示在MPEG标准中定义的数据包的结构的示图;
图10显示MPEG2传输流的例子;
图11显示当以面板的形式配置时的输入单元的示例性外部视图;
图12是显示存储在根据本发明的终端装置中的程序的结构的示图;
图13A和13B显示由根据本发明的显示器显示的显示屏幕的例子;
图14显示存储在根据本发明的辅助存储单元中的信息的例子;
图15A至15C显示存储在根据本发明的主存储单元中的信息的例子;
图16是显示根据本发明的、在MPEG2标准中规定的PAT的内容的示意图;
图17是显示根据本发明的、在MPEG2标准中规定的PMT的内容的示意图;
图18是显示根据本发明的、在DVB-MHP标准中规定的AIT的内容的示意图;
图19是显示将以根据本发明的DSMCC格式传送的文件系统的示意图;
图20是显示根据本发明的XAIT的内容的示意图;
图21显示存储在根据本发明的辅助存储单元中的信息的例子;
图22A至22C显示根据本发明的存储文件名或目录名的散列值的文件的例子;
图23是显示根据本发明的证书链的结构的示图;
图24是显示根据本发明的X.509证书的结构的示图;
图25是显示根据本发明的签名文件的结构的示图;
图26是显示根据本发明的安全模块的组成部分的示图;
图27是显示根据本发明的,当认证文件系统时将执行的操作的流程图;
图28是根据本发明的,当接收到认证指令时不执行认证的情况下的流程图;
图29是显示根据本发明的,当对文件系统执行篡改检查时执行的操作的流程图;
图30是显示根据本发明的,当通过使用签名文件执行篡改检查时将被执行的操作的流程图;
图31是显示根据本发明的,当检查叶证书和中间证书之间的链关系时执行的操作的流程图;
图32是显示根据本发明的,当检查中间证书和根证书之间的链关系时执行的操作的流程图;
图33是显示根据本发明的,当检查根证书中的签名时执行的操作的流程图;
图34显示根据本发明的,将被用于指定待存储的文件的文件的例子;
图35是显示根据本发明的,当执行文件系统的认证时将执行的操作的流程图;
图36是显示根据本发明的,当接收到认证指令时,在检查X.509证书的有效性时执行的操作的流程图;
图37是显示根据本发明的,将从下载模块接收的代码文件的简化结构的示图;
图38A至38C是显示根据本发明的,由正被替换的终端装置拥有的证书的示图;
图39是显示根据本发明的,当执行证书替换时将执行的操作的流程图;
图40是显示根据本发明,当接收到认证指令时,在比较根证书时将执行的操作的流程图;
图41是显示根据本发明的CRL的结构的示图;
图42是显示在根据本发明的CRL中的撤销证书列表的示意图;
图43是包括根据本发明的CRL的文件系统的例子;
图44是显示根据本发明的,当基于散列值和签名值检查CRL的有效性时将执行的操作的流程图;
图45是显示根据本发明的,当基于证书间的链关系和根证书间的比较来检查CRL的有效性时执行的操作的流程图;
图46显示根据本发明的,存储文件名或目录名的散列值的文件的例子;
图47是显示根据本发明的,在当程序存储时存在CRL的情况下,用于执行认证的操作的流程图;
图48是显示在当程序启动时存在CRL的情况下,用于执行认证的操作的流程图;
图49是显示根据本发明的撤销证书的数据库的示意图;
图50是显示根据本发明的XAIT的细节的示意图;
图51是显示根据本发明的网络的连接模式的示意图;
图52是显示根据本发明的AM的组成部分和相关部分的示图;
图53是根据本发明的文件层次结构的例子;
图54A和54B显示根据本发明的,存储文件名或目录名的散列值的文件的例子;
图55是显示根据本发明的,当在局部区域中构造文件层次结构以及执行认证时将执行的操作的流程图;
图56是显示根据本发明的XAIT的细节的示意图;
图57是根据本发明的文件层次结构的例子;以及
图58A至58C显示根据本发明的,存储文件名或目录名的散列值的文件的例子。
具体实施方式
下面参照附图描述本发明的实施例。
(第一实施例)
参照附图说明根据本发明的有线电视系统的实施例。图1是显示构成有线电视系统的装置间的关系的框图,所述装置包括:头端101,以及三个终端装置,分别为终端装置A111、终端装置B112、终端装置C113。在本实施例中,三个终端装置连接到一个头端,但是即使使用任意数量的终端装置连接到头端,也能够实现本发明。
头端101向多个终端装置发送广播信号,例如视频、音频和数据,并接收从终端装置传送的数据。为了实现这一点,频带被分割以用于头端101与终端装置A111、终端装置B112和终端装置C113之间的数据传输。图2是显示分割后的频带的例子的表格。大致可以分为两种类型的频带:带外(简写为OOB)和带内频带。5~130MHz的频带被分配给OOB,主要用于头端101与终端装置A111、终端装置B112以及终端装置C113之间的数据交换。130MHz~864MHz的频带被分配给带内频带,主要用于广播信道,包括视频和音频。QPSK用于OOB,而QAM64用于带内频带,作为调制技术。因为它们是与本发明无关的公知技术,所以这里省略对调制技术的详细说明。图3显示了如何使用OOB频带的更具体的例子。70MHz~74MHz的频带用于从头端101传送数据。在本例中,所有终端装置A111、终端装置B112和终端装置C113都从头端101接收同样的数据。同时,10.0MHz~10.1MHz的频带用于从终端装置A111向头端101传送数据。10.1MHz~10.2MHz的频带用于从终端装置B112向头端101传送数据。10.2MHz~10.3MHz的频带用于从终端装置C113向头端101传送数据。因此,能够从终端装置A111、终端装置B112、终端装置C113向头端101传送唯一属于每个终端装置的数据。图4显示了带内频带的典型使用。150~156MHz以及156~162MHz的频带分别分配给电视频道1和电视频道2,并且随后的频率被以6MHz的间隔分配给多个电视频道。310MHz以及其后的频率被以1MHz的间隔分配给无线电广播频道。每个上述频道或者可用于模拟广播,或者可用于数字广播。当用于数字广播时,以符合MPEG2规范的传输数据包的格式传送数据,其中,除了音频和视频之外,可以传送用于各种数据广播系统的数据。
头端101装配有QPSK调制单元、QAM调制单元等,以便向相应的频率范围传送合适的广播信号。此外,头端101装配有QPSK解调单元,用于从终端装置接收数据。而且,假定头端101还装配有与上述调制单元和解调单元有关的各种设备。但是,由于本发明主要涉及终端装置,所以这里省略对它们的详细说明。
终端装置A111、终端装置B112和终端装置C113接收并再生从头端101传送的广播信号。此外,终端装置A111、终端装置B112、终端装置C113向头端101传送唯一属于每个终端装置的数据。在本实施例中,这三个终端装置具有相同的结构。
图5是显示每个终端装置的硬件结构的框图。终端装置500包括QAM解调单元501,QPSK解调单元502,QPSK调制单元503,TS解码器505,音频解码器506,扬声器507,视频解码器508,显示器509,辅助存储单元510,主存储单元511,ROM512,输入单元513以及CPU514。此外,POD504可以被附加到终端装置500,或从终端装置500分离。
图6显示形状较薄的电视,它是终端装置500的典型的外部视图。终端装置可以具有多种结构,但在本实施例中,将基于OpenCable(TM)和OCAP而配置的终端装置作为例子进行描述。
形状较薄的电视的外壳601包含除POD504以外的终端装置500的所有组件。
显示器602对应于图5中的显示器509。
面板单元603由多个按钮组成,并且对应于图5中的输入单元513。
信号输入端子604连接到电缆线,用于向头端101发送信号以及从头端101接收信号。此外,信号输入端子604连接到图5所示的QAM解调单元501,QPSK解调单元502以及QPSK调制单元503。
POD卡605对应于图5中的POD504。POD504独立于终端装置500,并且可以附加到终端装置500上,或从终端装置500分离,如同图6中的POD卡605。后面详细说明POD504。
插槽606是可插入POD卡605的插槽。
参照图5,QAM解调单元501根据包括由CPU514指定的频率的调谐信息,对已在头端101中被进行QAM调制并且被从头端101传送的信号进行解调,并将结果传送给POD504。
QPSK解调单元502根据包括由CPU514指定的频率的调谐信息,对已在头端101中被进行QPSK调制并且被从头端101传送的信号进行解调,并将结果传送给POD504。
QPSK调制单元503根据包括由CPU514指定的频率的解调信息,对从POD504传送来的信号进行QPSK解调,并将结果传送给头端101。
如图6所示,POD504可以从终端装置500的主体分离。终端500的主体和POD504之间的连接接口的定义在OpenCable(R)CableCARD(TM)接口规范(OC-SP-CC-IF-I15-031121)以及该规范所参考的规范中给出。注意,该规范中的CableCARD是指POD。这里,省略了详细说明,并且仅给出与本发明有关的部分的说明。
图7是显示POD504的内部结构的框图。POD504由第一解扰单元701、第二解扰单元702、加扰单元703、主存储单元704、辅助存储单元705和CPU706构成。
第一解扰单元701根据来自CPU706的指令从终端装置500的QAM解调单元501接收加扰的信号,并解扰该信号。然后,第一解扰单元701将解扰后的信号传送给终端装置500的TS解码器505。根据需要,由CPU706提供解扰所需的信息,例如密钥。更具体地,头端101广播多路付费频道,当用户购买了观看这些付费频道的权利后,第一解扰单元701从CPU706接收所需的信息,例如密钥,并执行解扰,从而用户可以观看这些付费频道。当不提供诸如密钥这样所需的信息时,第一解扰单元701在不执行解扰的情况下,直接将所接收的信号传送给TS解码器505。
第二解扰单元702根据来自CPU706的指令接收来自终端装置500的QPSK解调单元502的加扰的信号,并解扰该信号。然后,第二解扰单元702将解扰后的数据传送给CPU706。
加扰单元703根据来自CPU706的指令对从CPU706接收的数据进行加扰,并将结果发送给终端装置500的QPSK调制单元503。
主存储单元704,它的具体组成元件是例如RAM这样的主存储器,当CPU706执行处理时用于临时地存储数据。
辅助存储单元705,它的具体组成元件是例如闪速ROM这样的辅助存储器,用于存储将由CPU706执行的程序,并且用于存储即使当关闭电源时也不应删除的数据。
CPU706执行存储在辅助存储单元705中的程序。该程序由多个子程序构成。图8显示了存储在辅助存储单元705中的程序的例子。在图8中,程序800由多个子程序构成,包括:主程序801、初始化子程序802、网络子程序803、再生子程序804以及PPV子程序805。
这里,PPV是每次观看付费(Pay Per View)的缩写,它指一种服务,其使得用户能够在付费的基础上,观看诸如电影这样的特定节目。当用户输入他/她的个人识别号时,向头端101通知购买观看节目的权利,消除加扰,从而用户能够观看该节目。观看节目需要用户在日后支付购买费用。
主程序801是当打开电源时首先由CPU706启动的子程序,其控制其它子程序。
当打开电源时,由主程序801启动的初始化子程序802与终端装置500执行信息交换并执行初始化处理。该初始化处理在OpenCable(TM)CableCARD(TM)接口规范(OC-SP-CC-IF-I15-031121)以及引用该规范的规范中详细定义。此外,初始化子程序802还执行不在这些规范中定义的初始化处理。这里,介绍部分这种初始化处理。当打开电源时,初始化子程序802经由终端装置500的CPU514向QPSK解调单元502通知存储在辅助存储单元705中的第一频率。QPSK解调单元502使用所提供的第一频率执行调谐,并将得到的信号传送给第二解扰单元702。此外,初始化子程序802为第二解扰单元702提供解扰信息,例如存储在辅助存储单元705中的第一密钥。从而,第二解扰单元702执行解扰,并将结果传送给执行初始化子程序802的CPU706。因此,初始化子程序802可以接收信息。在本实施例中,初始化子程序802经由网络子程序803接收信息。后面详细进行描述。
此外,初始化子程序802经由终端装置500的CPU514向QPSK调制单元503通知存储在辅助存储单元705中的第二频率。初始化子程序802为加扰单元703提供存储在辅助存储单元705中的加扰信息。当初始化子程序802经由网络子程序803向加扰单元703提供需要被发送的信息时,加扰单元703使用所提供的加扰信息对数据进行加扰,并向QPSK调制单元503提供加扰的数据。QPSK调制单元503调制它接收到的加扰的信息,并将调制后的信息发送给头端101。
因此,初始化子程序802能够经由终端装置500、第二解扰单元702、加扰单元703和网络子程序803与头端101执行双向通信。
由多个子程序(例如主程序801和初始化子程序802)使用的网络子程序803是用于执行与头端101的双向通信的子程序。更具体地,网络子程序803使得其它使用网络子程序803的子程序好像正在根据TCP/IP与头端101进行双向通信。因为TCP/IP是当在多个终端之间交换信息时指定将使用的协议的公知技术,所以这里省略TCP/IP的详细说明。当在接通电源时由初始化子程序802启动时,网络子程序803经由终端装置500向头端101通知MAC地址(媒体访问控制地址的缩写),它是用于标识POD504的识别符,并且被预先存储在辅助存储单元705中,以便请求获取IP地址。头端101经由终端装置500向POD504通知IP地址,并且网络子程序803将该IP地址存储在主存储单元704中。此后,通过使用该IP地址作为POD504的识别符,头端101和POD504互相通信。
再生子程序804为第一解扰单元701提供例如存储在辅助存储单元705中的第二密钥这样的解扰信息以及例如由终端装置500提供的第三密钥这样的解扰信息,以便使得能够执行解扰。此外,再生子程序804经由网络子程序803接收指示输入第一解扰单元701的信号是PPV频道的信息。当被通知信号是PPV频道时,再生子程序804启动PPV子程序805。
当被启动时,PPV子程序805在终端装置500上显示提示用户购买所述节目的消息,并接受来自用户的输入。更具体地,当希望被显示在屏蔽上的信息被发送给终端装置500的CPU514时,运行在终端装置500的CPU514上的程序在终端装置500的显示器509上显示所述消息。然后,当用户经由终端装置500的输入单元513输入个人识别号时,终端装置500的CPU514接受其,并将其发送到运行在POD504的CPU706上的PPV子程序805。PPV子程序805将接` 受的个人识别号经由网络子程序803发送到头端101。当该个人识别号有效时,头端101经由网络子程序803向PPV子程序805通知解扰所需的解扰信息,例如第四密钥。PPV子程序805向第一解扰单元701提供所接受的解扰信息,例如所述第四密钥,然后第一解扰单元701解扰所述输入信号。
参照图5,TS解码器505对接收自POD504的信号进行过滤,并将必要的数据传送到音频解码器506、视频解码器508和CPU514。这里,发送自POD504的信号是MPEG2传输流。关于MPEG2传输流的详细说明在MPEG规范ISO/IEC138181-1中给出,因此在本实施例中不对其进行详细地说明。MPEG2传输流由多个固定长度的数据包组成,并且为每个数据包分配一个数据包ID。图9是显示数据包的结构的示图。900是一具有固定长度的数据包,其包含188字节。头四个字节是存储用于标识数据包的信息的头901,并且剩余184字节是包含待传送的信息的有效负载902。903显示了所述头901的细节。数据包ID包含在从头开始的第12比特到第24比特这13个比特中。图10是说明待传送的多个数据包串的示意图。数据包1001在它的头中包含数据包ID“1”并且在它的有效负载中包含视频A的第一信息。数据包1002在它的头中包含数据包ID“2”并且在它的有效负载中包含音频A的第一信息。数据包1003在它的头中包含数据包ID“3”并且在它的有效负载中包含音频B的第一信息。
数据包1004在它的头包含数据包ID“1”,并且在它的有效负载中包含视频A的第二信息,它是所述数据包1001的后续。类似的,数据包1005、1026和1027携带其它数据包的后续数据。通过按照上述方式连接具有相同数据包ID的数据包的有效负载的内容,能够再生连续的视频和音频。
参照图10。当CPU514向TS解码器505指出数据包ID“1”以及作为输出目的地的“视频解码器508”时,TS解码器505从接收自POD504的MPEG2传输流中提取具有数据包ID“1”的数据包,并将它们传送到所述视频解码器508。因此,在图10中,仅将视频数据传送到视频解码器508。同时,当CPU514向TS解码器505指出数据包ID“2”以及“音频解码器506”时,TS解码器505从接收自POD504的MPEG2传输流中提取具有数据包ID“2”的数据包,并将它们传送到所述音频解码器506。在图10中,仅音频数据被传送到所述视频解码器508。
该根据数据包ID仅提取必要的数据包的处理对应于由TS解码器505执行的过滤。TS解码器505能够按照来自CPU514的指令同时执行多于一个过滤处理。
参照图5,音频解码器506连接由TS解码器505提供的、嵌入在MPEG2传输流中的数据包中的音频数据,对所连接的数据执行数模转化,并向扬声器507输出结果。
扬声器507对由音频解码器506提供的信号进行音频输出。
视频解码器508连接由TS解码器505提供的、嵌入在MPEG2传输流的数据包中的视频数据,对所连接的数据执行数模转化,并向显示器509输出结果。
具体由CRT或液晶等等构成的显示器509输出由视频解码器508提供的视频信号并显示由CPU514指定的消息等等。
辅助存储单元510具体由闪速存储器、硬盘等等构成,其存储并删除由CPU514指定的数据和程序。由CPU514访问所存储的数据和程序。即使当终端装置500断电时,所存储的数据和程序也能保存在存储器中。
主存储单元511具体由RAM等等构成,其临时地存储由CPU514指定的数据和程序以及删除它们。由CPU514访问所存储的数据和程序。当终端装置500断电时,存储的数据以及程序被删除。
ROM512是只读存储器设备,其具体由ROM、CD-ROM或DVD等等构成。ROM512存储将由CPU514执行的程序。
输入单元513,其具体由面板或遥控器构成,其接受来自用户的输入。图11显示当以面板的形式配置输入单元时的输入单元513的例子。1100是一面板,其对应于图6中显示的面板单元603。该面板由七个按钮组成:上指针按钮1101、下指针按钮1102、左指针按钮1103、右指针按钮1104、OK按钮1105、取消按钮1106以及EPG按钮1107。当用户按下一按钮时,该被按下的按钮的识别符将被通知给CPU514。
CPU514执行存储在ROM512中的程序。根据来自该待执行程序的指令,CPU514控制QAM解调单元501、QPSK解调单元502、QPSK调制单元503、POD504、TS解码器505、显示器509、辅助存储单元510、主存储单元511以及ROM512。
图12是显示存储在ROM 512中的并且由CPU514执行的程序的典型结构的示图。
程序1200由多个子程序组成。更具体地,程序1200由OS1201、EPG1202、JavaVM1203、服务管理器1204、以及Java库1205组成。
OS 1201是当终端装置500通电时将由CPU514启动的子程序。OS1201代表操作系统,它的例子是Linux等等。OS1201是公知技术的通称,其由内核1201a和库1201b组成,内核1201a用于与另一个子程序并行地执行一个子程序,因此详细说明被省略。在本实施例中,OS1201的内核1201a执行作为子程序的EPG1202和JavaVM1203。同时,库1201b为这些子程序提供控制终端装置500的组成元件所需的多个功能。
这里,调谐作为这种功能一个例子被介绍。在调谐功能中,从另一个子程序接收包括频率的调谐信息,然后传送至QAM解调单元501。因此,QAM解调单元501能够根据所提供的调谐信息执行解调,并将解调后的数据传送至POD504。因此,其它子程序可以经由库1201b控制QAM解调单元。
所述EPG1202由节目显示单元1202a以及再生单元1102b组成,节目显示单元1202a用于向用户显示一列节目以及接收来自用户的输入,再生单元1102b用于选择频道。这里,EPG是电子节目指南的缩写。当终端装置500通电时EPG1202被启动。在启动的EPG1202中,节目显示单元1202a等待来自用户的经由终端装置500的输入单元513的输入。这里,当输入单元513采用图11中所示的面板形式时,当用户按下输入单元513上的EPG按钮1107时,向CPU514通知该EPG按钮的识别符。EPG1202的节目显示单元1202a是运行在CPU514上的一子程序,其接收该识别符,并在显示器509上显示程序信息。图13A和图13B显示在显示器509上显示的节目表的例子。参照图13A,以网格图形在显示器509上显示节目信息。列1301描述时间信息。列1302描述频道名称“频道1”和将在对应于列1301中描述的各个时间的时期内广播的节目。其表明,在“频道1”,从9:00至10:30广播“新闻9”,从10:30至12:00广播“电影AAA”。列1303描述频道名称“频道2”和将在对应于列1301中描述的各个时间的时期内广播的节目,如同列1302的情况。从9:00至11:00广播节目“电影BBB”,从11:00至12:00广播“新闻11”。1330是光标。光标1330随着按下面板1100上的左指针1103或右指针1104而移动。当在图13A的状态中按下右指针1104时,光标1330向右移动,如图13B所示。同样,当在图13B的状态中按下左指针时,光标1330向左移动,如图13A所示。
当在图13A显示的状态中按下面板1100上的OK按钮1105时,节目显示单元1202a向再生单元1102b通知“频道1”的识别符。同样,当在图13B显示的状态中按下面板1100上的OK按钮1105时,节目显示单元1202a向再生单元1102b通知“频道2”的识别符。
此外,节目显示单元1202a定期地将待显示的节目信息从头端101经由POD504存储到主存储单元511中。通常,从头端获得节目信息要花费时间。然而,在按下输入单元513的EPG按钮1107时,通过显示预先存储在主存储单元511中的节目信息,能够迅速显示节目表。
再生单元1102b使用接收的频道识别符再生频道。频道识别符和频道之间的关系被辅助存储单元510作为频道信息预先存储。图14显示存储在辅助存储单元510中的频道信息的例子。以表格形式存储所述频道信息。列1401描述频道的识别符。列1402描述频道名称。列1403描述调谐信息。这里,调谐信息由将提供给QAM解调单元501的值表示,例如频率、传输速率和编码比(coding ratio)。列1404描述节目编号。节目编号是用于识别由MPEG2标准定义的PMT的编号。稍后给出关于PMT的描述。行1411~1414中的每一行指出一组每个频道的识别符、频道名称和调谐信息。行1411描述一个组,其中包含“1”作为识别符,“频道1”作为频道名称,“312MHz”的频率作为调谐信息,以及“101”作为节目编号。再生单元1102b直接将所接收的频道的识别符传送给服务管理器以便再生频道。
此外,如果用户当正在再生时按下面板1100上的上指针1101和下指针1102,则再生单元1102b经由CPU514从输入单元513接收关于由用户进行的该按压的通知,并将正在被再生的频道切换到另一个。首先,再生单元1102b在主存储单元511中存储当前再生的频道的识别符。图15A、15B、15C显示了存储在主存储单元511中的频道的识别符的例子。图15A显示识别符“3”被存储,并且通过参照图14,表明具有频道名称“TV3”的频道正在被再生。当用户在图15A所示的状态中按下上指针1101时,再生单元1102b参考图14中显示的频道信息,并且将具有频道名称“频道2”的频道的识别符“2”传送给服务管理器,以便新近再生具有频道名称“频道2”的频道,其是所述表中的上一个频道。同时,再生单元1102b将识别符重写为存储在主存储单元511中的频道识别符“2”。图15B显示该重写后的频道识别符。同样,当用户在图15A所示的状态中按下下指针1102时,再生单元1102b参考图14中显示的频道信息,并且将具有频道名称“TV日本”的频道的识别符“4”传送给服务管理器,以便新近再生具有频道名称“TV日本”的频道,它是所述表中的下一个频道。同时,再生单元1102b将识别符重写为存储在主存储单元511中的频道识别符“4”。图15C显示该重写后的频道识别符。
JavaVM 1203是Java虚拟机,其连续地分析并执行以Java(TM)语言所写的程序。以Java语言写的程序被编译为称为字节代码的中间码,其不依赖于硬件。Java虚拟机是执行该字节代码的解释器。一些Java虚拟机将字节代码转化为一种可以由CPU514解释的可执行的形式,并将结果传送给CPU514,CPU514执行其。JavaVM 1203被启动,由内核1201a指定待执行的Java程序。在本实施例中,内核1201a指定服务管理器1204作为待执行的Java程序。对Java语言的详细注释在许多书中给出,包括“Java Language Specification”(ISBN0-201-63451-1)。因此,这里省略关于其的详细说明。同样,对JavaVM本身的操作的详细注释在许多书中给出,包括“Java Virtual MachineSpecification”(ISBN 0-201-63451-X)。因此,这里省略关于其的详细说明。
服务管理器1204是以Java语言写的Java程序,其由JavaVM 1203顺序地执行。通过JNI(Java本地接口),服务管理器1204能够调用另一个未用Java语言写的子程序,并且能被另一个未用Java语言写的子程序调用。关于JNI的说明在许多书中给出,包括“Java本地接口”。因此,这里省略关于其的详细说明。
服务管理器1204通过JNI从再生单元1102b接收频道的识别符。
首先,服务管理器1204将频道的识别符传送给Java库1205中的调谐器1205c,以便请求调谐。调谐器1205c参考存储在辅助存储单元510中的频道信息以获得调谐信息。假定服务管理器1204将频道的识别符“2”传送给调谐器1205c,调谐器1205c参考图14中显示的行1412,并获得对应于所述频道的调谐信息“156MHz”。调谐器1205c经由OS1201的库1201b将调谐信息传送给QAM解调单元501。QAM解调单元501根据发送给其的调谐信息解调发送自头端101的信号,并将结果信号传送给POD504。
然后,服务管理器1204请求Java库1205中的CA1205b执行解扰。CA1205d通过OS1201中的库1201b为POD504提供解扰所需的信息。根据所提供的信息,POD504解扰由QAM解调单元501提供的信号,并将结果信号传送给TS解码器505。
然后,服务管理器1204为Java库1205内的JMF1205a提供频道的识别符,以便请求再生视频和音频。
首先,JMF1205a从PAT和PMT获得用于指定将被再生的视频和音频的数据包ID。PAT和PMT是由MPEG-2标准定义的表,其显示包括在MPEG2传输流中的节目排列(program line-up)。在包含在MPEG2传输流的数据包中的有效负载中携带PAT和PMT以及音频与视频。对于PAT和PMT的详细说明可以参照规范。这里,仅给出PAT和PMT的概要。PAT是节目关系表的缩写,在具有数据包ID“0”的数据包中携带其。为了获得PAT,JMF1205a通过OS1201的库1201b,向TS解码器505指出数据包ID“0”和CPU514。然后,TS解码器505根据数据包ID“0”执行过滤,并将结果传送给CPU514。因此,JMF1205a可以收集PAT数据包。图16说明了示意性地显示所收集的PAT信息的例子的表。列1601描述节目编号。列1602描述数据包ID。列1602中显示的数据包ID用于获得PAT。行1611~1613中的每一个包含一对频道的节目编号以及对应于其的数据包ID。这里,定义了三个频道。行1611定义了一对节目编号“101”和数据包ID“501”。假定提供给JMF1205a的频道识别符是“2”,则JMF1205a参考图14中的行1412,以便获得对应于该频道识别符的节目编号“102”,然后参考图16中显示的PAT中的行1612,以便获得对应于节目编号“102”的数据包ID“502”。PMT是节目映射表的缩写,其在具有PAT中指定的数据包ID的数据包中被传送。为了获得PMT,JMF1205a通过OS1201的库1201b,向TS解码器505指出数据包ID和CPU514。这里,将指定的数据包ID是“502”。然后,TS解码器505根据数据包ID“502”执行过滤,并将结果传送给CPU514。因此,JMF1205a可以收集PMT数据包。图17说明了示意性地显示所收集的PMT信息的例子的表。列1701描述流类型。列1702描述数据包ID。在各个流类型中指定的信息在具有列1702中指定的数据包ID的数据包的有效负载中被传送。列1703描述附加信息。1711~1714中的每一行是一对数据包ID和被传送的信息的类型,其被称为基本流(elementary stream)。行1711是一对流类型“音频”和数据包ID“5011”,其指示音频数据被存储在具有数据包ID“5011”的数据包的有效负载中。JMF1205a从PMT获得将再生的视频和音频的数据包ID。参照图17,JMF1205a从行1711获得音频数据包ID“5011”,并从行1712获得视频数据包ID“5012”。
然后,JMF1205a经由OS1201的库1201b为TS解码器505提供一对所获得的音频数据包ID和作为输出目的地的音频解码器506,并提供一对视频数据包ID和作为输出目的地的视频解码器508。TS解码器505根据所提供的数据包ID和输出目的地执行过滤。这里,将具有数据包ID“5011”的数据包传送给音频解码器506,并将具有数据包ID“5012”的数据包传送给视频解码器508。音频解码器506对所提供的数据包执行数模转化,以便经由扬声器507再生音频。视频解码器508对所提供的数据包执行数模转化,以便在显示器509上显示视频。
最后,服务管理器1204将频道识别符提供给库1205中的AM1205b,以便请求数据广播再生。这里,数据广播再生的意思是提取包含在MPEG2传输流中的Java程序并使JavaVM 1203执行其。作为一种用于将Java程序嵌入MPEG2传输流的技术,使用称为DSMCC的方法,其在MPEG规范ISO/IEC 138181-6中描述。这里省略对DSMCC的详细说明。DSMCC规范定义了一种方法,用于将包含由计算机使用的目录和文件的文件系统编码到MPEG2传输流内的数据包中。在MPEG2传输流内的数据包中以AIT的形式携带关于待执行的Java程序的信息。AIT是应用程序信息表的缩写,其定义在DVB-MHP标准(正式称为ETSI TS 101 812 DVB-MHP规范V1.0.2)的第十章中给出。
首先,为了获得AIT,与JMF1205a的情况中一样,AM1205b获得PAT和PMT,以便获得存储AIT的数据包的数据包的数据包ID。假定“2”是所提供的频道识别符而且图16中显示的PAT和图17中显示的PMT正在被传送,则根据与JMF1205a所遵循的过程相同的过程,AM1205b获得图17中显示的PMT。随后,AM1205b从PMT提取基本流的数据包ID,该基本流的流类型是“数据”并且其具有作为附加信息的“AIT”。如图17所示,行1713内的基本流对应于这种基本流,因此AM1205b从其获得数据包ID“5013”。
AM1205b通过OS1201的库1201b为TS解码器505提供AIT的数据包ID和作为输出目的地的CPU514。然后,TS解码器505根据提供的数据包ID执行过滤,并将结果传送给CPU514。因此,AM1205b可以收集AIT的数据包。图18是示意性地显示所收集的AIT信息的例子的表。列1801描述Java程序的识别符。根据MHP规范,这些识别符被定义为应用程序ID,其识别一Java程序是否是应该被终端装置500的安全管理器1205f认证的程序。当识别符的值在0x0到0x3fff范围之内时,不需要进行认证,而当识别符的值在0x4000到0x7fff的范围之内时,需要进行认证。识别符的值在前一个范围之内的Java程序被称为“未签名程序”,而识别符的值在后一个范围之内的Java程序被称为“签名程序”。列1802描述用于控制Java程序的控制信息。所述控制信息包含“自动启动”、“呈现”和“杀死”。“自动启动”的意思是终端装置500自动地迅速执行程序。“呈现”的意思是不自动执行所述程序。“杀死”的意思是将终止所述程序。列1803描述用于提取包括DSMCC格式的Java程序的数据包ID的DSMCC识别符。列1804描述所述Java程序的程序名。1811和1812中的每一行都是一组关于Java程序的信息。在行1811中定义的Java程序是一组识别符“301”、控制信息“自动启动”、DSMCC识别符“1”以及程序名“a/TopXlet”。在行1812中定义的Java程序是一组识别符“302”、控制信息“呈现”、DSMCC识别符“1”以及程序名“b/GameXlet”。这里,这两个Java程序具有相同的DSMCC识别符。这表示文件系统中包含两个Java程序,该文件系统已被根据相同的DSMCC方法编码。这里,仅为各个Java程序指定四条信息,而实际中指定更多的信息。详细内容请参考DVB-MHP规范。
AM1205b从AIT找到“自动启动”Java程序,并提取对应的DSMCC识别符和Java程序名。参照图18,AM1205b提取行1811中的Java程序,并获取DSMCC识别符“1”和Java程序名“a/TopXlet”。
然后,AM1205b使用从AIT获取的DSMCC识别符,从PMT获取以DSMCC格式存储Java程序的数据包的数据包ID。更具体地,AM1205b从PMT获取包含在基本流中的数据包ID,该基本流的流类型是“数据”并且在附加信息中的DSMCC识别符是匹配的。
这里,假定该DSMCC识别符为“1”,并且PMT如图17所示,行1714中的基本流满足上述条件。因此,将提取数据包ID“5014”。
AM1205b通过OS1201的库1201b,向TS解码器505指出其中以DSMCC格式嵌入数据的数据包的数据包ID,以及作为输出目的地的CPU514。这里,提供数据包ID“5014”。然后,TS解码器505根据所提供的数据包ID执行过滤,并将结果传送给CPU514。因此,AM1205b可以收集需要的数据包。AM1205b根据DSMCC方法,从所收集的数据包重建文件系统,并且将重建的文件系统存储到主存储单元511中。用于从MPEG2传输流的数据包中提取数据(例如文件系统),以及将所提取的数据存储到存储单元(例如主存储单元511)的处理以下被称为下载。
图19显示了下载的文件系统的例子。在图中,圆圈表示目录,方框表示文件,其中,1901是根目录,1902是目录“a”,1903是目录“b”,1904是文件“TopXlet.class”并且1905是文件“GameXlet.class”。
随后,AM1205b将下载到主存储单元511中的文件系统中的将被执行的Java程序传送到VM1203。这里,假定将执行的Java程序的程序名是“a/TopXlet”,通过将“.class”附加到上述Java程序名得到的文件“a/TopXlet.class”是将被执行的文件。“/”是目录和文件名之间的分界符,并且如图19所示,文件1904是将执行的Java程序。然后,AM1205b将文件1904传送到JavaVM 1203,这是因为描述Java程序的识别符的列1801指示未签名的程序,这意谓着不必请求安全管理器1205f对该Java程序执行认证。
JavaVM 1203执行所接收的Java程序。
在接收到另一个频道的识别符后,服务管理器1204通过包含在相同Java库1205中的每个库,终止视频和音频的再生,并终止执行正在通过包含在Java库1205中的每个库执行的Java程序,然后根据新接收的频道识别符对视频和音频进行再生,并且执行Java程序。
需要安全管理器1205f保证在终端装置上执行的程序的可信性。如果程序已经被篡改并且这种程序能够在终端装置上运行,则终端装置的资源(例如存储器)会被浪费,并且总体上终端装置的运行会变得不稳定。同样,使用例如网络这样的资源,终端装置中的信息可能被任意地发送。安全管理器1205f验证程序的可信性和可靠性以使得不会出现这种情况。提供这种认证功能的安全管理器1205f的细节将在后面描述。
Java库1205是存储在ROM512中的多个Java库的集合。在本实施例中,Java库1205包含JMF1205a、AM1205b、调谐器1205c、CA1205d、POD Lib 1205e、安全管理器1205f、下载模块1206等等。
服务管理器1204和下载模块1206经由包含在Java库1205中的POD Lib 1205e与头端101执行双向通信。可以通过POD Lib 1205e使用QPSK解调单元502和QPSK调制单元503,经由OS1201的库1201b和POD504来实现双向通信。
下载模块1206可以通过该通信从头端101接收代码数据。代码数据是指包含X.509证书和/或终端装置500的固件(firmware)的二进制数据。图37是显示仅描述了与本发明有关的一部分的代码数据的示意图。当接收到代码数据37时,如果包含根证书371则下载模块1206提取其,并且将该根证书371传送给安全管理器1205f。372指示其它的数据,例如固件。
AM1205b从头端101接收关于终端装置500应存储在辅助存储单元510中的Java程序的信息,Java程序启动指令,将启动的程序的名称等等。这种信息被称为XAIT信息。以任意形式在头端101和POD504之间传送XAIT信息。只要包含XAIT所需的信息,都可以实现本发明,而不管传送格式。
图20说明了示意性地显示从头端101获得的XAIT信息的例子的表。列2001描述Java程序的识别符。列2002描述用于控制Java程序的控制信息。控制信息包含“自动启动”和“呈现”。“自动启动”的意思是,当终端装置500通电时,自动地执行程序,“呈现”的意思是,不自动地执行所述程序。列2003描述用于提取包含DSMCC格式的Java程序的数据包ID的DSMCC识别符。列2004描述Java程序的程序名。列2005描述Java程序的优先级。行2011和2012中的每一行是一组关于相应的Java程序的信息。定义在行2011中的Java程序是一组识别符“0x4001”、控制信息“自动启动”、DSMCC识别符“1”和程序名“a/PPV1xletl”。可以根据其Java程序应用程序ID知道该Java程序是签名程序。这里,仅为各Java程序指定了五段信息,但是即使当定义了更多段的信息时,也可以实现本发明。
当接收到XAIT信息时,AM1205b根据与用于根据AIT信息下载Java程序的过程相同的过程,将来自MPEG2传输流的文件系统存储到主存储单元511中,或者当在XAIT信息中给出存储Java程序的指令时,将其存储到辅助存储单元510中。当在主存储单元511中保存或在辅助存储单元510中存储时,被下载文件的存储位置与XAIT信息关联。
图21显示了彼此关联地存储在主存储单元511或辅助存储单元510中的XAIT信息和下载的文件系统的例子。这里,将在OCAP规范“OpenCable(TM)Application Platform specification OCAP 1.0Profile(OC-SP-OCAP1.0-I11-040604)”中定义的文件作为例子描述。图21中的元素与图20中的对应元素彼此相同,因此省略对这些元素的说明。列2101存储下载的文件系统的存储位置。在图21中,由箭头指示这些存储位置。2110是下载的文件系统,其中包含顶层目录2111、目录“a”2112、目录“b”2113、文件“PPV1Xlet.class”2114、文件“PPV2Xlet.class”2115、文件“ocap.hashfile”2116~2118,文件“ocap.certificate.1”2119以及文件“ocap.signaturefile.1”2120。
文件2116~2118是散列文件,其中包含文件名或目录名以及对应的散列值。图22A中的221、图22B中的222和图22C中的223是分别表示“ocap.hashfile”2116、“ocap.hashfile”2117、“ocap.hashfile”2118的细节的示意图。221的“ocap.hashfile”存在于“/”目录2111中,在列2211中包含存在于相同目录2111中的“ocap.certificates.1”文件2119、“ocap.signaturefile.1”文件2120、“a”目录2112以及“b”目录2113。列2212指示使用哪种散列算法来计算在列2213中描述的每个值。列2213与列2211中的文件或目录有关,列2213包含通过利用列2212中指定的散列算法而计算的散列值。当前主要使用的散列算法是SHA1(安全散列算法1)和MD5(消息摘要5)。这些是用于将具有任意长度的数据转换为固定长度字节值的公知算法,它们具有以下特征:在原始数据被转换之后,不能推算出原始数据;以及它们被用于检查文件是否已被破坏或篡改。同样,散列值是通过使用散列算法而产生的伪随机数。当散列算法是SHA1时,散列值的长度是20字节,而当散列算法是MD5时,散列值的长度变为16字节。关于SHA1和MD5的详细介绍可以分别参考“FIPS-PUB 186-2 SecureHash Standard”和“IETF RFC1321”。这里,在列2211中描述的对应于相应的目录“a”和“b”的散列值是SHA1散列值,它们是分别对存在于“a”目录中的“ocap.hashfile”文件2117和存在于“b”目录中的文件2118进行计算而得到的。
与在221中的“ocap.hashfile”的情况相同,222中的“ocap.hashfile”包含文件名、散列算法以及存在于相同目录2112中的“PPV1Xlet.class”文件2114的散列值。类似的,在223中包含文件名、散列算法以及存在于相同目录2113中的“PPV2Xlet.class”文件2115的散列值。
这里,仅描述与本发明有关的属性,因此,关于“ocap.hashfile”的详细内容,应该参考OCAP规范“OpenCable(TM)ApplicationPlatform specification OCAP 1.0 Profile(OC-SP-OCAP1.0-IF-109-031121)”。
文件2119是证书链。图23是显示“ocap.certificates.1”文件2119的详细结构的示图。231描述“ocap.certificates.x”(x是正整数)的典型结构,其包含根证书2311、中间证书2312和叶证书2313。它们具有链关系,例如其中,根证书2311的持有者发行中间证书2312,并且中间证书2312的持有者发行叶证书2313。注意,根据OCAP规范,与签名文件“ocap.signaturefile.x”有关的证书链是具有相同值“x”的“ocap.certificate.x”。在图21的例子中,对应于“ocap.signaturefile.1”的证书链是“ocap.certificates.1”。同样,根证书2311、中间证书2312、叶证书2313被配置为相同的X.509证书格式。作为ITU-T的推荐标准,X.509证书被广泛用于信息和通信行业中的各个领域,作为一种证书表现格式的事实上的标准。在图23中,仅列出了三个证书,但是可以有存在多个中间证书的情况。然而,在这种情况下,这些中间证书必须处于链状态中,其中它们彼此相关。
图24是显示X.509证书的结构的示图。这里,仅说明了说明本发明所需的属性。关于X.509的详细内容,请参考IETF RFC3280“Internet X.509 Public Key Infrastructure Certificate and CRL Profile”。241指示X.509证书的属性区域,242指示X.509证书的签名值。序列号2411指示识别证书的编号,签名算法2412指示用于确定签名值242的算法,本次更新日期和时间2413指示当该X.509证书变为有效时的日期和时间,下次更新日期和时间2414指示当X.509证书期满时的日期和时间,发行人名称2415指示发行该X.509证书的管理机构的名称,主体名称2416指示该X.509证书的持有者,公钥2417指示主体名称2416的公钥,签名值242指示已使用该X.509证书的发行人的私钥签名(加密)的值。作为使用公钥和私钥的系统,公钥密码系统被广泛用于电子商务等。在公钥密码系统中,使用不同于加密明文所用的密钥的密钥来解密密文。由于加密密钥和解密密钥不同,所以不能根据解密密钥推断出加密密钥。加密密钥对应于私钥,而解密密钥对应于公钥。公钥密码系统的典型例子包括RSA(Rivest-Shamir-Adleman)和DSA(Digital Signature Standard)。
文件2120是签名文件。图25是显示″ocap.signaturefile.1″文件2120的示意图。251指示用于识别关联哪个X.509证书的证书识别符,252指示散列签名算法,253指示通过使用在252中指示的散列签名算法根据“ocap.hashfile”2116所计算的签名值。
一旦将Java程序存储到辅助存储单元510中,即使当由于终端设备500断电等原因,将Java程序从主存储单元511删除时,只要AM1205b已接收到图20中所示的XAIT,就能够在不需要等待下载的情况下启动该Java程序。
在图20中,程序“/a/PPV1Xlet”的控制信息2002是“自动启动”。因此,在图21的2011中,当对文件系统的对应于“/a/PPV1Xlet”的位置2101进行搜索,然后文件2114被传送到JavaVM 1203时,存储在该文件系统中的Java程序“PPV1Xlet”被启动。此外,在启动Java程序之前,AM1205b检查Java程序识别符2001的值并判断它是未签名程序还是签名程序。如果是签名程序,则命令安全管理器1205f执行认证。
接下来,对执行认证的安全管理器1205f进行描述。
当由AM1205B命令认证文件时,安全管理器1205f检查Java程序识别符2001的值以判断其是未签名程序还是签名程序。这里,因为Java程序是签名程序,所以安全管理器1205f对“/”目录以下的文件系统执行认证。为了验证所述文件系统,通过使用图21所示的ocap.hashfile(2116~2118)、ocap.certificates.1(2119)和ocap.signaturefile.1(2120)来执行认证。
图26显示用于执行文件系统的认证的安全管理器1205f的组成元件。
通知接收单元261用于从AM1205b接收文件认证指令以及用于将该指令通知给判断单元262。
判断单元262判断认证结果。其请求散列计算单元263对文件系统进行散列计算以接收散列值。判断单元262从存在于“ocap.hashfile”文件中的散列值2213和2223和2233中提取将比较的值,并检查其与所接收的散列值是否相配。如果它们不匹配,则判断单元262判断已发生篡改,并且认证以失败结束。
此外,判断单元262使用证书提取单元265提取每个X.509证书,并且判断当前时间是否在每个X.509证书的本次更新日期与时间2413和下次更新日期与时间2414之间。从OS1201的库1201b获得当前日期和时间。如果有效期不满足“本次更新日期和时间<当前日期和时间<下次更新日期和时间”,则判断单元262判断认证失败。
此外,为了认证证书链,判断单元262请求散列计算单元263对每个X.509证书的属性区域241进行散列计算。然后,其请求签名值解密单元264执行用于解密每个X.509证书中包含的签名值242的计算,并将得到的解密值与通过散列值计算单元263获得的散列值进行比较,以便检查证书链的状态。如果它们不匹配,则意味着证书不处于链关系中,并且因此判断认证失败。同样,当值匹配并且已证实证书处于链关系中时,检查所述证书链中的根证书是否包含在终端装置500的辅助存储单元510中。如果不包含,则判断单元262判断认证失败,也就是说不能执行比较。
当满足下列所有条件时,判断单元262判断认证成功,所述条件为:(1)没有篡改;(2)处于有效期;(3)证书处于链关系中;(4)根证书匹配。
当判断单元262请求计算每个文件的散列值时,散列计算单元263从OS1201的库1201b中提取每个文件,以对它们执行散列计算,并将结果值传送给判断单元262。此外,散列计算单元263从证书提取单元265获得证书链231中的每个X.509证书,并对它们中的每一个的属性区域241执行散列计算。
由判断单元262请求签名值解密单元264执行用于解密每个X.509证书或“ocap.signaturefile.x”的签名值的计算。当执行计算以解密每个X.509证书的签名时,签名值解密单元264从证书提取单元265获得证书链231中的每个X.509证书,然后执行用于解密它们中的每一个的签名的计算,并返回结果给判断单元262。
由判断单元262、散列计算单元263、签名值解密单元264请求证书提取单元265提取证书链231中的每个X.509证书,并且提取并返回X.509证书。
图27是概述当执行文件系统的认证时,由安全管理器1205f执行的操作的流程图。基于该流程图,给出当文件系统具有图21中显示的结构时执行的操作的说明。当从AM1205b接收到对文件系统的认证指令时(步骤S271),安全管理器1205f对文件系统的顶层“/”目录以下的文件系统执行篡改检查(步骤S272)。在篡改检查中,通过比较散列值,证实在存在于文件系统的每个目录中的文件中未发生破坏或更改。
图29和图30是步骤S272的详细流程图。首先,如步骤S291所示,分别为存在于“/”目录中的各个文件“ocap.certificates.1”和“ocap.signaturefile.1”以及各个目录“a”和“b”计算散列值。注意,目录“a”和“b”的散列值是分别根据“/a/ocap.hashfile”文件222和“/b/ocap.hashfile”文件223计算的。在步骤S293,将在步骤S292计算的散列值与在“/ocap.hashfile”中的2213中描述的每个散列值进行比较。在步骤S294,如果所计算的散列值中的任何一个与2213中的散列值不同,则判断已发生篡改(步骤S297)。同时,当所有所计算的散列值都与2213中的散列值匹配时,转移到步骤S295。在步骤S295,检查是否存在还未完成篡改检查的任何子目录。在当前阶段,目录“a”和“b”作为“/”目录的子目录而存在,并且还没有对它们进行篡改检查。因此,需要为这些目录“a”和“b”执行篡改检查。首先,在步骤S296聚焦于“a”目录,在其中,执行与为“/”目录执行的处理相同的处理。在对“a”目录完成篡改检查之后,对“b”目录执行篡改检查。当已经对目录“a”和“b”完成篡改检查时,聚焦于“/”目录,执行图30中的步骤S301的处理。在步骤S301中,从作为证书链231的“/ocap.certificates.1”文件2119提取叶证书2313。然后,在步骤S302,从所提取的叶证书2313中取出公钥2417。随后,在步骤S303,为“/ocap.hashfile”文件221计算散列值。同时,在步骤S304,使用存在于“/ocap.certificatefile.1”文件2119中的叶证书2313中的公钥2417对“/ocap.signaturefile.1”文件2120中的签名值242执行解密。在步骤S305,检查在步骤S303计算的散列值是否等于在步骤S304通过解密签名值而获得的值。如果这些所计算的值匹配,则能够断定“/”目录以下的文件系统未被篡改(步骤S306)。如果这些所计算的值不匹配,则能够断定“/”目录以下的文件系统已被篡改(步骤S307)。注意,已给出了一个例子的描述,其中,以降序从顶层“/”目录开始向子目录依次执行篡改检查,但是,本发明并不局限于此。因此,可以以升序,从最低层目录开始向顶层目录依次执行处理。通过以上处理,获得图27中的步骤S272的结果。
在步骤S273,当步骤S272中的结果是“已发生篡改”时,判断认证失败,并且发送关于该事实的通知(步骤S279),之后结束处理。当步骤S272的结果是“没有篡改”时,执行步骤S274的处理。
接下来,参照图31至图33,给出证书链认证的详细说明(步骤S274)。假定首先对中间证书2312和叶证书2313执行检查,图31中显示了其流程图。首先,从证书链231中提取中间证书2312和叶证书2313(步骤S311)。从该提取的叶证书2313中提取本次更新日期与时间2413、下次更新日期与时间2414以及发行人名称2415(步骤S312)。对于它们,判断当前日期和时间是否在所述本次更新日期与时间2413和下次更新日期与时间2414之间,在这期间,证书保持有效(步骤S313)。如果其超出了证书可以保持有效的时期,则证书链的认证以失败结束(步骤S319)。同时,当判断其在证书的有效期内时,提取中间证书2312中的主体名称2416和公钥2417(步骤S314),并且将中间证书2312的主体名称2416与叶证书2313的发行人名称2415进行比较,以判断所述中间证书2312和所述叶证书2313是否处于链关系中(步骤S315)。如果这些证书不处于链关系中,则证书链的认证失败。当在它们之间存在链关系时,为叶证书2313的属性区域241计算散列值(步骤S316)。此外,用中间证书2312的公钥2417来解密叶证书2313中的签名值242(步骤S317)。当完成步骤S316和步骤S317时,检查在各个步骤中获得的散列值和解密的签名值是否匹配(步骤S318)。如果它们不匹配,则证书链的认证以失败结束(步骤S319)。
接下来,在根证书2311和中间证书2312之间执行检查。图32是显示该处理的流程图。从证书链231提取根证书2311和中间证书2312(步骤S321),并且为根证书2311和中间证书2312执行与为中间证书2312和叶证书2313执行的检查相同的处理(步骤S322~步骤S328)。
当在步骤S328中判断所述值匹配时,单独对根证书2311执行检查。图33是显示将单独为根证书2311执行的检查的流程图。从在步骤S321中提取的根证书2311中提取本次更新日期与时间2413、下次更新日期与时间2414以及发行人名称2415(步骤S331)。对于它们,判断当前日期和时间是否在所述本次更新日期与时间2413和下次更新日期与时间2414之间,在这期间,证书保持有效(步骤S332)。如果其超出了证书可以保持有效的时期,则证书链的认证以失败结束。当判断其在证书的有效期内时,为根证书2311的属性区域241计算散列值(步骤S334)。此外,用根证书2311的公钥2417来解密根证书2311中的签名值242(步骤S335)。当完成步骤S334和步骤S335时,检查在相应步骤中获得的散列值和解密的签名值是否匹配(步骤S336)。如果它们匹配,则证书链的认证成功(S337),而如果它们不匹配,则证书链的认证以失败结束(步骤S338)。在该点,步骤S274的处理结束。
根据步骤S274的结果,在步骤S275中执行的处理是不同的。当步骤S274的结果是“证书链的认证失败”时,判断认证已失败并且发送关于其的通知(步骤S279),然后,结束对所述文件系统的认证。当“证书链的认证成功时,执行步骤S276的处理。
接下来,在终端装置500的辅助存储单元510中搜索与“/ocap.certificates.1”文件2119的根证书2311相同的证书(步骤S276)。当在辅助存储单元510中不存在相同的证书时,在步骤S277判断证书链231的认证失败,并且发送关于该认证失败的通知(步骤S279),之后结束处理。当包含根证书2311时,判断文件系统的认证成功,并且将关于该认证成功的通知发送给AM1205b(步骤S278)。参照图28,即使在那之后接收到Java程序认证指令(步骤S281),也结束处理而不执行任何处理。这是因为已经执行了Java程序的认证,在此不需要进行认证。
此外,当在“应用程序描述文件”存在于文件系统的情况下在XAIT信息中发送存储指令时,将存储其中描述的文件。例如,在OCAP规范中,用XML(可扩展标记语言)格式描述“应用程序描述文件”。图34显示了“应用程序描述文件”的一个例子。
(第二实施例)
当包含在文件系统中的Java程序(PPV1Xlet.class 2114或PPV2Xlet.class 2115)在该文件系统被存储之后的一段时间后将被启动时,包含在“/ocap.certificates.1”文件2119中的X.509证书之一的有效期有可能期满(即,Java程序的启动日期与时间>下次更新日期与时间2414)。由于之前的描述中,即使在证书链231中包含已经期满的X.509证书,也允许启动Java程序,因此,存在技术,用于在启动Java程序时,验证包含在证书链231中的每个证书2311、2312和2313的有效期未期满。图26显示了其中的组成部分。已经在第一实施例中描述了该技术所需的组成部分261~265,因此这里不再给出其描述。
图27的流程图被图35的流程图所替代,并且增加了图36的流程图,作为本实施例的流程图。
参照图35,在存储文件系统之前执行的处理(步骤S351到步骤S357)与在第一实施例中说明的处理(步骤S271到步骤S277)相同,因此省略对其的说明。如果认证未失败,则处理进入图36中显示的流程图。当在一定时间之后,通知将启动Java程序PPV1Xlet.class 2114时(步骤S491),从“ocap.certificates.1”文件2119提取每个X.509证书,即,根证书2311、中间证书2312、叶证书2313(步骤S362)。然后,按照从叶证书开始直到根证书的顺序依次选择所提取的X.509证书(步骤S363),并且检查当前日期和时间是否在每个所选择的X.509证书的本次更新日期与时间2413和下次更新日期与时间2414之间(步骤S364)。如果当前日期和时间不在本次更新日期与时间2413和下次更新日期与时间2414之间,则判断认证失败,并且发送关于该事实的通知(步骤S367)。在其它情况中,检查是否已经对所有的X.509证书执行检查(步骤S365)。如果未对所有的X.509证书完成检查,则处理返回S363,并且重复后续的处理。当在步骤S365中已经对所有的X.509证书进行了检查,则判断认证成功,并且发送关于该认证成功的通知(步骤S366),之后结束处理。通过增加图36的流程图中显示的处理,能够向AM1205b通知认证失败,从而使得不会启动有效期已经期满的Java程序。当被安全管理器1205f通知认证失败时,AM1205b在不将该Java程序传送到JavaVM 1203的情况下终止启动。
(第三实施例)
如上所述,辅助存储单元510包含作为根证书的X.509证书,将其与证书链231中的根证书2311进行比较。用新的X.509证书替换存储在辅助存储单元510中的根证书(以下称为证书替换),以防由于黑客(hacking)和其它原因导致证书可信性降低。将新X.509证书从头端101传送到终端装置500,以经由下载模块106将其传送给安全管理器1205f。
图38A至38C是显示正在通过安全管理器1205f替换(证书替换)的辅助存储单元510中的根证书。在本例中,证书A381是将被替换的旧的证书,而证书B382是新证书。图38A中的38-1显示在执行证书替换之前存储在辅助存储单元510中的证书,图38B中的38-2显示正在被替换的过程中的证书,图38C中的38-3显示在执行证书替换之后存储在辅助存储单元510中的证书。
在之前的描述中,即使当在存储Java程序之后执行证书替换,在启动Java程序时也不考虑新证书。例如考虑以下情况,当安全管理器1205f响应认证指令认证Java程序时,证书链231中的根证书2311与证书A3811相匹配,并且在用证书B3812替换证书A3811之后,安全管理器1205f接收到对Java程序的认证指令。这时,辅助存储单元510不包括任何与证书链231中的根证书2311匹配的证书,这意味着该证书不可信。然而在之前的描述中,因为在启动Java程序之前不在根证书之间进行比较(即,不将证书链231中的根证书2311与证书B3812进行比较),所以,不对AM1205b发送关于认证失败的通知。因此,AM1205b使得Java程序能够被启动。
因此,存在一种技术,用于在考虑到启动Java程序时的证书替换的情况下,执行根证书的比较。
图26显示了这种技术的组成部分。已经描述过组成部分261~265,因此省略对其的描述。增加证书替换单元266、证书替换指定单元267和证书接收单元268。
当证书替换指定单元267判断在辅助存储单元510中存储着比所接收的证书更旧的证书时,证书替换单元266用新证书替换该旧证书。当证书替换指定单元267判断未存储更旧的证书时,证书替换单元266将新证书存储入辅助存储单元510。
证书替换指定单元267接收由证书接收单元268接收的证书。然后,通过使用OS1201的库1201b,其检查存储在辅助存储单元510中的证书,以查看是否存在发行人与所接收的证书的相同并且比所接收的证书旧的证书。
当下载模块1206从头端101接收到该新证书时,证书接收单元268接收该新证书。当接收到所述证书时,证书接收单元268将其传送到证书替换单元266和证书替换指定单元267。
另外,在图35的流程图之后增加图39和图40。
图39是执行证书替换时的流程图,而图40是在执行证书替换之后启动Java程序时的流程图。参照图39,当接收到证书替换请求时(步骤S391),提取所接收的证书的发行人名称(步骤S392)。检查在终端装置500的辅助存储单元510中是否存在需要被替换的旧的证书(步骤S393),并且仅当存在旧的证书时,删除该证书。然后,将所接收的证书存储入辅助存储单元510(步骤S395)。当在一定时间之后接收到启动Java程序的通知时(步骤S401),在辅助存储单元510中搜索与证书链231中的根证书2311匹配的证书(步骤S402),如果存在(步骤S403),判断认证成功并且发送关于该事实的通知(步骤S404)。如果不存在匹配的证书(步骤S403),则判断认证失败并且发送关于该事实的通知(步骤S405)。注意,在步骤S404判断认证成功之前,还能够在验证证书链中的每个X.509证书满足“本次更新日期与时间<当前日期和时间<下次更新日期与时间”之后,推断出认证成功。
此外,除检查根证书是否匹配之外,在S402之前,还能够在执行图31~图33中显示的检查以查看证书链中的证书是否处于链关系之后,判断认证是成功的/不成功的。
此外,以上描述了一种情况,其中,基于发行人名称指定应该替换的证书,但是还可以基于另一个属性值(例如主体名称)来指定证书。
(第四实施例)
当包含在文件系统中的Java程序(PPV1Xlet.class 2114或PPV2Xlet.class 2115)在该文件系统被存储之后的一定时间将被启动时,存在一种情况,其中,由于除了包含在“/ocap.certificates.1”文件2119中的任何X.509证书的有效期期满以及根证书被替换以外的其它原因证书被撤销。本配置允许即使当撤销证书时也可以启动Java程序。
这里,CRL(证书撤销列表)是公知的证书的撤销者。图41是显示CRL的结构的示图。这里,仅说明对于说明本发明所需的属性。关于CRL的详细内容,请参考IETF RFC 3280“Internet X.509 Public KeyInfrastructure Certificate and CRL Profile”。411指示CRL的属性区域,412指示签名值413的签名算法,413指示CRL的签名值。发行人名称4111指示该CRL的发行人,本次更新日期与时间4112指示CRL变得有效时的日期与时间,下次更新日期和时间4113指示当CRL的有效期期满时的日期与时间,撤销证书列表4114指示关于撤销的X.509证书的信息。图42是显示撤销证书列表4114的结构的示图。这里,也仅说明对于说明本发明所需的属性。关于多个撤销的X.509证书的信息被存储在撤销证书列表4114中。在图42的例子中,包含用于唯一识别证书的序列号4211以及当“证书A”421被撤销时的日期与时间4212,作为关于撤销的“证书A”421的信息。其它撤销的证书与421相同。
图43是包含CRL的文件系统的典型结构。“/”目录431、“a”目录432、“SimpleXlet.class”文件433、“ocap.hashfile”文件434~435、“ocap.certificate.1”文件436、“ocap.signaturefile.1”文件437、“ocap.crl.2”文件438以及“ocap.certificates.2”文件439被存储在其中。不包含CRL的文件系统的认证如第一实施例所述。因此,在本实施例中,关注于以CRL格式构造的“ocap.crl.2”文件438以及作为该文件的证书链的“ocap.certificates.2”文件439。注意,根据OCAP规范,“ocap.crl.x”的证书链是“ocap.certificates.x”。在图43的例子中,“ocap.crl.2”的证书链是“ocap.certificates.2”。
图46是显示“ocap.hashfile”文件434的概要图。461显示ocap.hashfile 434的详细内容。461中的ocap.hashfile存在于“/”目录431中,其包含与存在于相同目录431中的“ocap.certificates.1”文件436、“ocap.signatrefile.1”文件437、“a”目录432、“ocap.crl.2”文件438以及“ocap.certificates.2”文件439中每一个有关的散列值。
图44是用于说明CRL的认证的流程图。以下对一个例子进行描述,其中,文件系统具有图43中显示的结构。首先,从CRL提取本次更新日期与时间4112和下次更新日期与时间4113(步骤S441),并且检查当前日期和时间是否在所述本次更新日期与时间4112和下次更新日期与时间4113之间(步骤S442)。如果不在之间,则判断该CRL无效(步骤S447)。如果当前日期和时间在它们之间,则计算属性区域411的散列值,以便检验“ocap.crl.2”文件438的签名值(步骤S433)。同时,从“ocap.certificates.2”文件439提取叶证书2313的公钥2417,“ocap.certificates.2”文件439是证书链(步骤S444),并且用所提取的公钥2417解密“ocap.crl.2”文件438的签名值413(步骤S445)。然后,检查在步骤S443获得的散列值是否等于在步骤S445获得的解密值(步骤S446)。如果它们不相等,则判断CRL无效(步骤S447)。如果它们相等,参照图45,对作为证书链的“ocap.certificates.2”文件439执行认证(步骤S451)。用于认证证书链的方法与图31至图33所示的方法相同,因此这里不再描述。随后,判断证书链的认证是否成功(步骤S452),如果认证失败,则判断该CRL无效(步骤S456)。同时,如果认证成功,则在辅助存储单元510中搜索与根证书相同的证书(步骤S453)。这里,如果没有匹配的根证书,则判断认证失败并且该CRL无效(步骤S456),而如果包含匹配的根证书,则判断认证成功并且CRL有效(步骤S455)。
下面描述对以下问题的解决方案,所述问题为,尽管根据CRL证书被撤销,但是还启动Java程序。为了支持该方案,存在一种技术,用于当发出启动该Java程序的通知时,判断用于认证Java程序的证书是否为CRL中的撤销证书。
图26显示了本实施例中的组成部分。除了增加了功能的262和未描述过的269之外,不再描述已在上面描述的组成部分。
判断单元262还能够认证CRL,其请求证书撤销指定单元269指定将通过CRL撤销的证书。然后,当通知接收单元261接收到与由证书撤销指定单元269指定的撤销证书有关的Java程序的认证指令时,判断单元262判断认证失败。同时,当在判断单元262认证CRL失败并且因此判断该CRL无效的状态中,通知接收单元261接收到Java程序的认证指令时,判断单元262判断认证成功。
当判断单元262判断CRL的认证成功时,证书撤销指定单元269指定由证书提取单元265提取的哪一个X.509证书是撤销证书。
增加图47和图48作为流程图。根据这些流程图给出下列描述。假定发出了对图21所示的文件系统的认证指令,开始图35的流程图中显示的处理,并且在适当的时候完成步骤S357的处理。假定然后接受到对图43中显示的另一个文件系统的认证指令,在完成图44的流程图中显示的处理之后,执行步骤S471至步骤S477。步骤S471至步骤S477的处理与步骤S351至步骤S357的处理相同。当达到步骤S478并且如果“ocap.crl.2”文件438的认证(图44和图45的流程图)成功时,关于包含在该文件中的撤销证书的信息被写入撤销证书的数据库。图49是显示撤销证书的数据库的概要图。发行人名称存储在列491,证书序列号存储在列492,撤销的日期和时间存储在列493。这里,当接收到对“PPV1Xlet.class”2114的认证指令时(步骤S481),检查在撤销证书的数据库中是否包含“ocap.certificates.1”文件2119的证书链231中包含的任何X.509证书(步骤S483)。如果存在任何证书,则判断认证失败并且发送关于此的通知(步骤S486)。同时,当没有可应用的证书时,对整个证书链执行检查(步骤S484),并且发送判断认证成功的通知(步骤S485)。通过以上处理,对于所述文件系统,通过判断文件的认证是失败的,能够解决启动不应被启动的Java程序的问题,其中,所述文件系统是指其中证书在验证时是有效的,而在启动Java程序时已通过CRL转变为已撤销的文件系统。
注意,当接收到Java程序的认证指令时,还能够通过使用每个目录中的“ocap.hashfile”执行验证以查看文件系统的树结构是否正确。
此外,为了简化说明,在证书链中仅存在一个中间证书,但是有可能存在多个中间证书。然而,当对它的证书链执行认证时,所有的中间证书都必需处于链关系中。
此外,以所述的顺序描述了下列处理,但是本发明并不局限于该次顺:检查是否存在篡改;认证证书链;检查以查看辅助存储单元是否包含与证书链中的根证书相同的根证书。
此外,对于文件系统的存储,安全管理器1205f可以使用OS的库1201b存储其。同样,第一至第四实施例还可应用于以下情况,其中,在文件系统的顶层目录“/”提供“应用程序描述文件”,并且作为其内容,仅指示文件系统的一部分作为将存储的文件。因此,如果仅处理将存储的文件也没问题。
此外,以上将程序描述为存储对象,但是,除程序以外的数据也可以作为存储对象,这意味着第一至第四实施例同样适用于数据。
此外,存在一种可能性,其中,多于一个“ocap.certificates.x”对应于“ocap.signaturefile.x”,在这种情况下,需要至少一个“ocap.certificates.x”文件的认证成功。
此外,“ocap.certificates.x”已被表示为示例性的证书链,“ocap.hashfile”已被表示为示例性的具有散列值的文件,并且“ocap.signaturefile.x”已被表示为用于检查“/”目录中的“ocap.hashfile”是否已被篡改的示例性文件,但是本发明并不局限于这些文件名。
此外,当认证失败时,可以在重下载之后再次执行认证。
(第五实施例)
到此为止,已经对从广播电波下载Java程序的情况进行了说明。此后,将对当经由因特网这样的网络下载程序时的认证进行说明。
甚至在DVB-MPH规范“ETSI TS 101 812 V1.2.1 DVB-MHPstandard 1.0.2”,以及OCAP规范“OpenCable(TM)Application Platformspecification OCAP 1.0 Profile(OC-SP-OCAP 1.0-I11-040604)”中考虑了经由网络下载Java程序。同时,有一种技术,用于将多个文件聚集为一个称作JAR(Java档案文件)的文件格式的文件,JAR基于公知的ZIP文件格式。使用这种技术,与不使用JAR时相比,压缩了文件大小并且可以缩短下载所需的时间。然而,当在位于服务器的数据被频繁地更新的情况下使用JAR时,每当更新数据时,必须重新转换为JAR格式的文件。这给服务器带来负担,并且在许多情况下不希望这种情况发生。例如,由于关于股票价格等等的信息不断地实时改变,因此提供使用股票价格信息的程序的服务器的情况就属于这种类型。以下,将关注文件和目录处于服务器中的层次结构中的情况,而不使用JAR。
甚至在终端装置经由网络从服务器下载的情况中,如果将下载的程序是签名程序,则需要验证构成程序的文件是有保证的。此外,当实际安装并启动程序时,需要构成程序的文件。然而,当在认证和安装(或程序的启动)之间从服务器下载时,即使终端完成了认证,在安装期间也存在一种可能性,即,在下载时,服务器中的程序将被篡改。因此,以下描述克服这种问题的发明。
图50说明了示意性的显示AIT或XAIT的表。与图20相比,列5003不同并且添加了列5006。除此之外,列5001至列5005分别与图20中的列2001至列2005具有相同的意思。然而,当值是“1”时,列5003是之前所述的DSMCC识别符,并且当值是“2”时,是IP识别符,其指示经由IP网络下载Java程序。列5004描述Java程序的程序名。列5005描述Java程序的优先级。列5006描述URL,该URL指示待下载的Java程序所处的服务器以及它的存储位置。一行5011描述一组Java程序信息。在行5011中定义的Java程序是一组信息,即识别符“0x5001”、控制信息“自动启动”、识别符“2”以及程序名“a/PPV3Xlet”。根据Java程序识别符应用ID可以知道Java程序是签名程序。因为URL是“http://panasonic.com/app”,所以终端装置使用http从分配给“panasonic.com”的“app”的目录以及它的子目录下载Java程序。这里,HTTP是一种公知的技术,目前,当从因特网的另一端的web服务器下载主页时最广泛地使用其。在RFC2612中详细地描述了HTTP。
这里,虽然仅为Java程序指定了6项信息,但是即使当定义了更多项信息时也可以实现本发明。
图51是显示当经由IP网络下载Java程序时的结构的示意图。头端5101以及终端装置5102经由CATV网络5104相连。此外,头端5101、终端装置5102以及Java程序所处的服务器5103经由IP网络(例如因特网)相连。
图52说明了AM1205b的组成元件。信号信息提取单元5201以上述方式提取AIT或XAIT的信号信息,并将这种信号信息传送给文件层次构造单元5202。文件层次构造单元5202连续的经由POD504下载位于服务器5103的Java程序以及与这种Java程序有关的文件,并且在主存储单元511a的区域内构造与服务器5103中相同的文件层次结构。当层次的构建完成时,命令安全管理器1205f开始认证。当认证成功时,文件层次构造单元5202请求安装单元5203进行安装,并且安装单元5203开始安装。
将参考图51和图52说明对经由IP网络下载的Java程序的认证。当XAIT指示“0x5001”作为Java程序识别符5001,“自动启动”作为Java程序的控制信息5002,“2”作为IP识别符5003,“/a/PPV3Xlet”作为程序名5004,“200”作为优先级5005以及“http://panasonic.com/app”作为URL5006时,从图51中的头端5101发送信号至终端装置5102,信号信息提取单元5201首先解释这种信号信息。在这种情况下,根据Java程序识别符的值判断Java程序是签名程序,并且根据IP识别符判断经由IP网络执行下载。然后发送指令给文件层次构造单元5202,以在主存储单元511中构建与服务器5103中的URL“http://panasonic.com/app”中存在的文件层次相同的文件层次。图53显示URL“http://panasonic.com/app”的文件层次的例子。5301是“http://panasonic.com/app”的整个文件层次,5302是5301的根目录,5303和5307、5304以及5305与2116~2118、2119以及2120分别具有相同的意思,因此省略他们的说明。5308是Java程序并且5309显示从Java程序读出的数据。图54A中的5401以及图54B中的5402分别说明“ocap.hashfile”5305和5307的细节。因为5401和5402的意义与图22中的说明相同,因此这里省略对它们的说明。
当从信号信息指令单元5201接收到指令时,文件层次构造单元5202首先使用HTTP下载“ocap.hashfile”。注意,虽然以下假定利用HTTP经由IP网络进行下载,但是只要能够进行下载,其他协议也可以。由于从“ocap.hashfile”获知“/”5302包括“ocap.certificates.1”,“ocap.signaturefile.1”以及“a”,因此相继地下载这些。这里,当试图下载“a”时,由于“a”是目录,所以下载失败。在那时,尝试下载“a/ocap.hashfile”。由于“a/ocap.hashfile”5307实际存在,所以下载成功,并且在主存储单元511中“ocap.hashfile”,“ocap.certificates.1”以及“ocap.signaturefile.1”被设置为文件,此外,“a”被设置为目录。此外,当从“a/ocap.hashfile”读出“a”目录中的“PPV3Xlet.class”和“data.txt”的存在时,这些文件被下载,并且在主存储单元511中构造与URL“http://panasonic.com/app”中的相同的文件层次。此外,当Java程序将被存储在辅助存储单元510中时,可以代替主存储单元511,在辅助存储单元510中构造文件层次。此外,如果在Java程序将被存储在辅助存储单元510的情况下包含“应用程序描述文件”,由于“应用程序描述文件”包括关于文件层次的信息,所以可以代替“ocap.hashfile”而参考“应用程序描述文件”以构造文件层次。
当文件层次构造单元5202构造文件层次时,安全管理器1205f被命令认证所述构造的文件层次。虽然当安全管理器1205f接收到认证指令时执行文件层次的认证,由于之前已经对其进行了描述,所以这里将省略对认证的说明。
图55显示在认证经由网络下载的程序期间的流程图。当接收到5011中显示的XAIT时(步骤S5501),根据Java程序识别符5001判断它是签名程序还是未签名程序(步骤S5502)。如果它不是签名程序,则执行安装和启动(步骤S5507)。如果它是签名程序,则对它是DSMCC识别符还是IP识别符进行检查(步骤S5503)。如果是IP识别符,则在作为本地区域的主存储单元511或辅助存储单元510中构造由URL5006指示的文件层次(步骤S5504)。当在步骤S5503确定是DSMCC识别符时,或当步骤S5504完成时,命令安全管理器1205f认证本地存在的文件层次(步骤S5505)。步骤5505对应于图27中的流程图。然后,判断安全管理器1205f的认证是否成功(步骤S5506),如果成功则执行程序的安装和启动(步骤S5507)。
此外,位于服务器中的部分或所有文件的认证可能失败。这是因为可以设想在升级期间执行下载。为应对这种情况,可以重试预定次数的下载和认证,或者等待一定的时间再重试。此外,还可以在显示器509上显示指示认证失败的消息,以便提示用户决定是否再试。
此外,在下载图56中的XAIT的Java程序的过程中,存在以下情况,其中,位于服务器5103的程序的文件层次具有图57所示的文件层次,并且“ocap.hashfile”5611,5621和5631的细节对应于图58A中的5710,图58B中的5720以及图58C中的5730,也就是说,存在以下情况,其中,对于目录“/b”5630和目录“/”5610使用不同的认证文件(ocap.certificates.x和ocap.signaturefile.x)来执行认证。在此,由于目录“/b”的散列算法表示为“Non-auth”,如图58A的5710所示,所以目录“/b”以及其下的内容临时地在认证范围之外。在这个条件下,当给出启动“/a”目录5620下的程序而不是“/b”目录下的程序的信号时,文件层次构造单元5202在本地创建空的“/b”目录,并且实质上不需要构建“/b”目录5630。当对“/b”目录5630或其下进行访问并且需要认证时,可以在本地构造“/b”目录5630,例如当“PPV4Xlet.class”5622随后试图使用“/b”目录5630下的“PPVvideo.mpg”5635时,或者当发送信号启动“/b”目录5630下的“PPV5Xlet.class”5634时。此外,同样不仅可以应用于目录,还可应用于文件,并且作为替代,在本地创建大小为“0”的空文件,以使得不必将指示为“Non-auth”的文件下载到本地的文件层次中。然而,当存在对这种文件的访问时,执行到所述文件层次的下载。由于列在散列文件中的文件名/目录名和文件层次中存在的文件名/目录名必须彼此匹配,因此执行空目录或空文件的创建。
此外,存在一些情况,其中,从构建在本地区域中的文件层次安装和启动的Java程序可能经由IP网络将文件下载到与该Java程序相同的目录中。如果偶然Java程序无意中下载了能够破坏终端装置的部分程序(类文件),在其中运行时会引起严重问题。因此,当从Java程序发起对类文件的安装请求时,安装单元5203利用文件层次构造单元5202对是否可以安装这种类文件进行检查。当被安装单元5203请求检查是否可以安装时,文件层次构造单元5202查找这种类文件是否列在文件层次中存在的ocap.hashfile中。如果被列出,则允许安装这种类文件,否则拒绝安装。此外,需要预防一种情况,其中,ocap.hashfile被重写,并且所述类文件是否被列出变得不清楚。在安装类文件时,能够命令安全管理器1205f执行认证,请求文件层次构造单元5202检查是否可以安装所述类文件,并且只有当认证和安装授权成功时才能执行安装。
虽然以上仅描述了本发明的一些典型实施例,但是本领域的技术人员能够容易地知道在不实质上脱离本发明的新启示和优点的情况下,能够对典型实施例进行许多修改。因此,所有这些修改应该也包括在本发明的范围内。
工业实用性
本发明中的用于认证和执行程序的方法可以在本地存储区域内构建与服务器中相同的文件层次,并且保证程序的可信性,因此对于在数字电视接收器中改进功能,添加功能等待是有用的。此外,本发明中的用于认证和执行程序的方法不仅可以应用于数字电视,而且还可以应用于由软件控制的信息设备(例如个人电脑和移动电话)中的功能改进、功能添加等等。
Claims (9)
1.一种用于认证和执行程序的方法,包括:
认证和存储步骤,用于i)根据标识程序的存储位置的信息,从预定的服务器下载目录结构中的由至少一个数据文件构成的程序,所述数据文件需要篡改检查,ii)认证所述下载的需要篡改检查的数据文件,以及iii)将所述程序存储到广播接收机中,所述信息在传输流中指定,并且所述服务器连接到网络;以及
执行步骤,用于执行所述已认证的程序,
其中,所述认证和存储步骤包括:
第一步骤,用于根据包含在构成所述目录结构的目录中的散列文件中列出的目录和数据文件,将所述散列文件中列出的所有需要篡改检查的数据文件下载到所述广播接收机中,以便具有与存储在所述服务器中的程序的目录结构相同的目录结构;
第二步骤,用于验证两个散列值是否匹配,其中一个散列值是根据需要篡改检查的数据文件中的每一个而计算的,而另一个散列值存储在列出所述数据文件的散列文件中;
第三步骤,用于验证包含在所述程序中的证书文件的有效性;
第四步骤,用于验证解密值和散列值是否匹配,所述解密值是通过使用包含在所述程序的证书文件中的叶证书的公钥解密包含在所述程序中的签名文件的签名值而获得的,所述散列值是根据位于所述程序的顶层目录中的散列文件而计算的;以及
第五步骤,用于当下列条件都满足时认证所述程序并存储所述已认证的程序,所述条件为:在所述第二步骤中,所述两个散列值被证实匹配;在所述第三步骤中,所述证书文件被证实有效;以及在所述第四步骤中,所述解密值和所述散列值被证实匹配,以及
所述执行步骤包括
验证步骤,用于验证包含在所述存储的程序中的证书文件是否有效,以及
在所述执行步骤中,再次认证所述存储的程序,并且只有当在所述验证步骤中证实包含在所述存储的程序中的证书文件有效时才执行所述存储的程序。
2.根据权利要求1所述的方法,
其中,所述第三步骤包括
第六步骤,用于验证两个根证书是否匹配,其中一个根证书在所述程序中包含的证书文件中,并且另一个根证书位于所述广播接收机中,以及
在所述第三步骤中,当所述两个根证书匹配时,所述证书文件被证实有效。
3.根据权利要求2所述的方法,
其中,所述第三步骤还包括
第七步骤,用于验证所述程序中包含的证书文件中的每个证书的有效期,以及
在所述第三步骤中,当以下两个条件都满足时,所述证书文件被证实有效,所述两个条件为:所述两个根证书匹配;以及当执行认证时的时间在所述证书文件中的每个证书的有效期内。
4.根据权利要求1所述的方法,
其中所述验证步骤包括
第八步骤,用于验证两个根证书是否匹配,其中一个根证书在所述存储的程序中包含的证书文件中,并且另一个根证书位于所述广播接收机中,以及
在所述验证步骤中,当所述两个根证书匹配时,包含在所述存储的程序中的证书文件被证实有效。
5.根据权利要求4所述的方法,
其中所述验证步骤还包括
第九步骤,用于验证包含在所述存储的程序中的证书文件中的每个证书的有效期,以及
在所述验证步骤中,当以下两个条件都满足时,包含在所述存储的程序中的证书文件被证实有效,所述两个条件为:所述两个根证书匹配;以及执行时间在所述证书文件中的每个证书的有效期内。
6.根据权利要求1所述的方法,
其中,当下列条件中的至少一个满足时,不存储所述程序,所述条件为:在所述第二步骤中,所述两个散列值未被证实匹配;在所述第三步骤中,所述证书文件未被证实有效;以及在所述第四步骤中,所述解密值和所述散列值未被证实匹配。
7.根据权利要求1所述的方法,
其中所述第一步骤包括
第十步骤,用于当在所述服务器中,由存储在构成所述程序的项层目录中的散列文件指定所述目录时,在所述广播接收机中的顶层目录下构造与由所述散列文件指定的目录相同的目录,并且将所述服务器中的顶层目录中存储的散列文件所指定的目录中存储的散列文件所指定的、需要篡改检查的数据文件下载到在所述广播接收机中构造的相应的目录中。
8.一种用于认证和执行程序的装置,包括:
认证和存储单元,用于i)根据标识程序的存储位置的信息,从预定的服务器下载目录结构中的由至少一个数据文件构成的程序,所述数据文件需要篡改检查,ii)认证所述下载的需要篡改检查的数据文件,以及iii)将所述程序存储到广播接收机中,所述信息在传输流中指定,并且所述服务器连接到网络;以及
执行单元,用于执行所述已认证的程序,
其中,所述认证和存储单元包括:
文件层次构造单元,用于根据包含在构成所述目录结构的目录中的散列文件中列出的目录和数据文件,将所述散列文件中列出的所有需要篡改检查的数据文件下载到所述广播接收机中,以便具有与存储在所述服务器中的程序的目录结构相同的目录结构;
第一验证单元,用于验证两个散列值是否匹配,其中一个散列值是根据需要篡改检查的数据文件中的每一个而计算的,而另一个散列值存储在描述所述数据文件的散列文件中;
第二验证单元,用于验证包含在所述程序中的证书文件的有效性;
第三验证单元,用于验证解密值和散列值是否匹配,所述解密值是通过使用包含在所述程序的证书文件中的叶证书的公钥解密包含在所述程序中的签名文件的签名值而获得的,所述散列值是根据位于所述程序的项层目录中的散列文件而计算的;以及
存储单元,用于当下列条件都满足时认证所述程序并存储所述已认证的程序,所述条件为:通过所述第一验证单元证实所述两个散列值匹配;通过所述第二验证单元证实所述证书文件有效;以及通过所述第三验证单元证实所述解密值和所述散列值匹配,以及
所述执行单元包括
第四验证单元,用于验证包含在所述存储的程序中的证书文件是否有效,以及
所述执行步骤用于再次认证所述存储的程序,并且只有当通过所述第四验证单元证实包含在所述存储的程序中的证书文件有效时才执行所述存储的程序。
9.一种使计算机执行下列步骤的程序:
认证和存储步骤,用于i)根据标识可执行程序的存储位置的信息,从预定的服务器下载目录结构中的由至少一个数据文件构成的可执行程序,所述数据文件需要篡改检查,ii)认证所述下载的需要篡改检查的数据文件,以及iii)将所述可执行程序存储到广播接收机中,所述信息在传输流中指定,并且所述服务器连接到网络;以及
执行步骤,用于执行所述已认证的可执行程序,
其中,所述认证和存储步骤包括:
第一步骤,用于根据包含在构成所述目录结构的目录中的散列文件中列出的目录和数据文件,将所述散列文件中列出的所有需要篡改检查的数据文件下载到所述广播接收机中,以便具有与存储在所述服务器中的可执行程序的目录结构相同的目录结构;
第二步骤,用于验证两个散列值是否匹配,其中一个散列值是根据需要篡改检查的数据文件中的每一个而计算的,而另一个散列值存储在描述所述数据文件的散列文件中;
第三步骤,用于验证包含在所述可执行程序中的证书文件的有效性;
第四步骤,用于验证解密值和散列值是否匹配,所述解密值是通过使用包含在所述可执行程序的证书文件中的叶证书的公钥解密包含在所述可执行程序中的签名文件的签名值而获得的,所述散列值是根据位于所述可执行程序的顶层目录中的散列文件而计算的;以及
第五步骤,用于当下列条件都满足时认证所述可执行程序并存储所述已认证的可执行程序,所述条件为:在所述第二步骤中,所述两个散列值被证实匹配;在所述第三步骤中,所述证书文件被证实有效;以及在所述第四步骤中,所述解密值和所述散列值被证实匹配,以及
所述执行步骤包括
验证步骤,用于验证包含在所述存储的可执行程序中的证书文件是否有效,以及
在所述执行步骤中,再次认证所述存储的可执行程序,并且只有当在所述验证步骤中证实包含在所述存储的可执行程序中的证书文件有效时才执行所述存储的可执行程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US58751104P | 2004-07-14 | 2004-07-14 | |
US60/587,511 | 2004-07-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1985516A true CN1985516A (zh) | 2007-06-20 |
CN100583987C CN100583987C (zh) | 2010-01-20 |
Family
ID=35106724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200580023594A Expired - Fee Related CN100583987C (zh) | 2004-07-14 | 2005-07-12 | 用于认证和执行应用程序的方法 |
Country Status (10)
Country | Link |
---|---|
US (2) | US8037317B2 (zh) |
EP (1) | EP1766974A1 (zh) |
JP (1) | JP2008507154A (zh) |
KR (2) | KR20120002625A (zh) |
CN (1) | CN100583987C (zh) |
BR (1) | BRPI0512023A (zh) |
CA (1) | CA2566801A1 (zh) |
MX (1) | MXPA06014020A (zh) |
TW (1) | TW200610345A (zh) |
WO (1) | WO2006006719A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453615B (zh) * | 2007-11-30 | 2011-07-06 | 株式会社日立制作所 | 支持多种条件接收模块的装置、方法及电视机 |
CN106330812A (zh) * | 2015-06-15 | 2017-01-11 | 腾讯科技(深圳)有限公司 | 文件安全性识别方法及装置 |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001066986A (ja) * | 1999-08-26 | 2001-03-16 | Sony Corp | 送信装置および方法、受信装置および方法、通信システム、並びにプログラム格納媒体 |
EP2214171A1 (en) * | 2004-07-22 | 2010-08-04 | Panasonic Corporation | Playback apparatus and playback method |
CN101853353B (zh) * | 2005-02-14 | 2012-07-18 | 松下电器产业株式会社 | 应用程序执行装置、应用程序执行方法 |
US7752449B1 (en) * | 2006-02-22 | 2010-07-06 | Avaya, Inc. | System and method for generating a non-repudiatable record of a data stream |
JP4769608B2 (ja) * | 2006-03-22 | 2011-09-07 | 富士通株式会社 | 起動検証機能を有する情報処理装置 |
US20080040215A1 (en) * | 2006-04-06 | 2008-02-14 | Ad Infuse, Inc. | Mid-Roll Insertion of Digital Media |
US7992165B1 (en) * | 2006-04-06 | 2011-08-02 | Velti USA, Inc. | Insertion of digital media |
US7962933B2 (en) * | 2006-04-06 | 2011-06-14 | Velti USA, Inc. | Mid-roll insertion of digital media |
CN101090387B (zh) * | 2006-06-12 | 2012-02-22 | 松下电器产业株式会社 | 数字电视中间件、机顶盒、及数字电视网络中的交互方法 |
US9008598B2 (en) * | 2006-06-16 | 2015-04-14 | Core Wireless Licensing S.A.R.L | Broadcast channel identification |
US9917844B2 (en) | 2006-12-17 | 2018-03-13 | Fortinet, Inc. | Detection of undesired computer files using digital certificates |
KR101391151B1 (ko) * | 2007-06-01 | 2014-05-02 | 삼성전자주식회사 | 세션 키를 이용한 인증 방법 및 이를 위한 장치 |
US20090038007A1 (en) * | 2007-07-31 | 2009-02-05 | Samsung Electronics Co., Ltd. | Method and apparatus for managing client revocation list |
WO2009057627A1 (ja) * | 2007-10-30 | 2009-05-07 | Kyocera Corporation | 受信装置 |
US20090172784A1 (en) * | 2007-12-28 | 2009-07-02 | Lg. Electronics, Inc. | Apparatus and method for processing data broadcast signal |
JP5378702B2 (ja) * | 2008-04-23 | 2013-12-25 | パナソニック株式会社 | 秘匿認証システム |
JP2009272671A (ja) * | 2008-04-30 | 2009-11-19 | Panasonic Corp | 秘匿認証システム |
JP2009272737A (ja) * | 2008-05-01 | 2009-11-19 | Panasonic Corp | 秘匿認証システム |
JP2009278223A (ja) * | 2008-05-13 | 2009-11-26 | Panasonic Corp | 電子証明システム及び秘匿通信システム |
JP2009296190A (ja) | 2008-06-04 | 2009-12-17 | Panasonic Corp | 秘匿通信方法 |
KR101485461B1 (ko) * | 2008-10-23 | 2015-01-22 | 삼성전자주식회사 | Ait를 이용한 애플리케이션의 제공 방법 및 그 장치 |
JP5412120B2 (ja) * | 2009-01-27 | 2014-02-12 | ソフトバンクモバイル株式会社 | 電子署名装置 |
US8984296B1 (en) * | 2009-03-29 | 2015-03-17 | Cypress Semiconductor Corporation | Device driver self authentication method and system |
JP5476866B2 (ja) * | 2009-08-28 | 2014-04-23 | コニカミノルタ株式会社 | 通信装置、通信方法、通信用プログラムおよび通信システム |
US20110066488A1 (en) * | 2009-09-17 | 2011-03-17 | Ad Infuse, Inc. | Mobile ad routing |
TWI396084B (zh) * | 2009-09-24 | 2013-05-11 | Hon Hai Prec Ind Co Ltd | 整合接收設備及其記憶空間徵用方法 |
FR2973632A1 (fr) * | 2011-03-31 | 2012-10-05 | France Telecom | Procede d'acces a un service, notamment un portail web, par un terminal de restitution d'un flux multimedia |
JP2013009356A (ja) * | 2011-05-20 | 2013-01-10 | Nippon Hoso Kyokai <Nhk> | 放送通信連携受信装置 |
JP2013009357A (ja) * | 2011-05-20 | 2013-01-10 | Nippon Hoso Kyokai <Nhk> | 放送通信連携受信装置 |
JPWO2012161122A1 (ja) * | 2011-05-20 | 2014-07-31 | 日本放送協会 | 放送通信連携受信装置およびリソース管理装置 |
DE202012013630U1 (de) * | 2011-12-02 | 2018-09-18 | Sony Corporation | Empfänger |
CN104221347B (zh) * | 2012-02-14 | 2017-03-29 | 苹果公司 | 支持多个访问控制客户端的移动装置和对应的方法 |
US10616782B2 (en) | 2012-03-29 | 2020-04-07 | Mgage, Llc | Cross-channel user tracking systems, methods and devices |
EP2890045A4 (en) * | 2012-08-21 | 2016-03-30 | Sony Corp | METHOD FOR TRANSMITTING SIGNATURE VALIDATION INFORMATION, INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND RADIO TRANSMISSION DEVICE |
US10185582B2 (en) * | 2012-11-28 | 2019-01-22 | Red Hat Israel, Ltd. | Monitoring the progress of the processes executing in a virtualization environment |
US9819682B2 (en) * | 2013-03-15 | 2017-11-14 | Airwatch Llc | Certificate based profile confirmation |
US9680650B2 (en) * | 2013-08-23 | 2017-06-13 | Qualcomm Incorporated | Secure content delivery using hashing of pre-coded packets |
US9872086B2 (en) * | 2013-09-30 | 2018-01-16 | Sony Corporation | Receiving apparatus, broadcasting apparatus, server apparatus, and receiving method |
JP5612748B2 (ja) * | 2013-10-07 | 2014-10-22 | ソフトバンクモバイル株式会社 | 通信端末装置 |
US10114939B1 (en) * | 2014-09-22 | 2018-10-30 | Symantec Corporation | Systems and methods for secure communications between devices |
WO2016126023A1 (en) | 2015-02-03 | 2016-08-11 | Samsung Electronics Co., Ltd. | Broadcast apparatus and method of authenticating broadcast data |
US9965639B2 (en) | 2015-07-17 | 2018-05-08 | International Business Machines Corporation | Source authentication of a software product |
WO2017127089A1 (en) * | 2016-01-21 | 2017-07-27 | Hewlett Packard Enterprise Development Lp | Software validation for untrusted computing systems |
CN109766084B (zh) * | 2018-12-28 | 2021-04-23 | 百富计算机技术(深圳)有限公司 | 支付应用的定制开发方法、装置、计算机设备和存储介质 |
US11171995B2 (en) * | 2019-01-25 | 2021-11-09 | EMC IP Holding Company LLC | Identifying and mitigating risks of cryptographic obsolescence |
JP7184198B2 (ja) * | 2019-07-23 | 2022-12-06 | 日本電信電話株式会社 | 検証情報作成システム、検証情報作成方法、および、検証情報作成プログラム |
US20210265016A1 (en) | 2020-02-20 | 2021-08-26 | Illumina, Inc. | Data Compression for Artificial Intelligence-Based Base Calling |
US11665002B2 (en) * | 2020-12-11 | 2023-05-30 | International Business Machines Corporation | Authenticated elevated access request |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5625693A (en) | 1995-07-07 | 1997-04-29 | Thomson Consumer Electronics, Inc. | Apparatus and method for authenticating transmitting applications in an interactive TV system |
EP0946019A1 (en) | 1998-03-25 | 1999-09-29 | CANAL+ Société Anonyme | Authentification of data in a digital transmission system |
FR2794595B1 (fr) * | 1999-06-03 | 2002-03-15 | Gemplus Card Int | Pre-controle d'un programme dans une carte a puce additionnelle d'un terminal |
EP1143658A1 (en) * | 2000-04-03 | 2001-10-10 | Canal+ Technologies Société Anonyme | Authentication of data transmitted in a digital transmission system |
JP4145118B2 (ja) | 2001-11-26 | 2008-09-03 | 松下電器産業株式会社 | アプリケーション認証システム |
US20030217369A1 (en) * | 2002-05-17 | 2003-11-20 | Heredia Edwin Arturo | Flexible application information formulation |
US20040068757A1 (en) * | 2002-10-08 | 2004-04-08 | Heredia Edwin Arturo | Digital signatures for digital television applications |
US20040181811A1 (en) * | 2003-03-13 | 2004-09-16 | Rakib Selim Shlomo | Thin DOCSIS in-band management for interactive HFC service delivery |
KR101099880B1 (ko) | 2003-12-18 | 2011-12-28 | 파나소닉 주식회사 | 애플리케이션 프로그램을 인증 및 실행하는 방법 |
-
2005
- 2005-07-12 BR BRPI0512023-3A patent/BRPI0512023A/pt not_active IP Right Cessation
- 2005-07-12 EP EP05762023A patent/EP1766974A1/en not_active Withdrawn
- 2005-07-12 KR KR1020117030647A patent/KR20120002625A/ko not_active Application Discontinuation
- 2005-07-12 JP JP2006524153A patent/JP2008507154A/ja not_active Withdrawn
- 2005-07-12 CN CN200580023594A patent/CN100583987C/zh not_active Expired - Fee Related
- 2005-07-12 KR KR1020077000891A patent/KR20070043783A/ko active IP Right Grant
- 2005-07-12 MX MXPA06014020A patent/MXPA06014020A/es active IP Right Grant
- 2005-07-12 WO PCT/JP2005/013217 patent/WO2006006719A1/en not_active Application Discontinuation
- 2005-07-12 CA CA002566801A patent/CA2566801A1/en not_active Abandoned
- 2005-07-13 US US11/179,528 patent/US8037317B2/en not_active Expired - Fee Related
- 2005-07-13 TW TW094123716A patent/TW200610345A/zh unknown
-
2011
- 2011-08-24 US US13/216,551 patent/US8397078B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101453615B (zh) * | 2007-11-30 | 2011-07-06 | 株式会社日立制作所 | 支持多种条件接收模块的装置、方法及电视机 |
CN106330812A (zh) * | 2015-06-15 | 2017-01-11 | 腾讯科技(深圳)有限公司 | 文件安全性识别方法及装置 |
CN106330812B (zh) * | 2015-06-15 | 2019-07-05 | 腾讯科技(深圳)有限公司 | 文件安全性识别方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20110307702A1 (en) | 2011-12-15 |
US8397078B2 (en) | 2013-03-12 |
KR20070043783A (ko) | 2007-04-25 |
KR20120002625A (ko) | 2012-01-06 |
BRPI0512023A (pt) | 2008-02-06 |
JP2008507154A (ja) | 2008-03-06 |
CA2566801A1 (en) | 2006-01-19 |
WO2006006719A1 (en) | 2006-01-19 |
US20060015746A1 (en) | 2006-01-19 |
MXPA06014020A (es) | 2007-02-08 |
US8037317B2 (en) | 2011-10-11 |
EP1766974A1 (en) | 2007-03-28 |
TW200610345A (en) | 2006-03-16 |
CN100583987C (zh) | 2010-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100583987C (zh) | 用于认证和执行应用程序的方法 | |
CN100562096C (zh) | 用于存储、认证以及执行应用程序的方法 | |
CN1898956B (zh) | 验证和运行应用程序的方法 | |
JP4873550B2 (ja) | デジタルデータストリーム及びその形成方法並びにその形成装置 | |
JP5961164B2 (ja) | 放送通信連携受信装置及びリソースアクセス制御プログラム | |
JP5952638B2 (ja) | 放送通信連携受信装置及び放送通信連携システム | |
JP5941356B2 (ja) | 放送通信連携受信装置、アプリケーション認証プログラム及び放送通信連携システム | |
MXPA06006121A (en) | Method for storing, authenticalting and executing an application program |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100120 Termination date: 20180712 |