CN100562096C - 用于存储、认证以及执行应用程序的方法 - Google Patents
用于存储、认证以及执行应用程序的方法 Download PDFInfo
- Publication number
- CN100562096C CN100562096C CNB2004800379402A CN200480037940A CN100562096C CN 100562096 C CN100562096 C CN 100562096C CN B2004800379402 A CNB2004800379402 A CN B2004800379402A CN 200480037940 A CN200480037940 A CN 200480037940A CN 100562096 C CN100562096 C CN 100562096C
- Authority
- CN
- China
- Prior art keywords
- program
- certificate
- file
- data file
- information
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title abstract description 82
- 238000003860 storage Methods 0.000 claims abstract description 189
- 238000003556 assay Methods 0.000 claims description 9
- 238000012795 verification Methods 0.000 claims 6
- 239000000284 extract Substances 0.000 abstract description 38
- 230000003213 activating effect Effects 0.000 abstract description 14
- 230000004044 response Effects 0.000 abstract description 11
- 238000012545 processing Methods 0.000 description 56
- 238000007689 inspection Methods 0.000 description 45
- 230000008569 process Effects 0.000 description 27
- 230000006870 function Effects 0.000 description 22
- 238000004891 communication Methods 0.000 description 19
- 230000005540 biological transmission Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 238000000605 extraction Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 11
- 230000008878 coupling Effects 0.000 description 10
- 238000010168 coupling process Methods 0.000 description 10
- 238000005859 coupling reaction Methods 0.000 description 10
- 230000004913 activation Effects 0.000 description 9
- 238000003825 pressing Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 8
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 7
- 230000008859 change Effects 0.000 description 7
- 238000012217 deletion Methods 0.000 description 7
- 230000037430 deletion Effects 0.000 description 7
- 238000001914 filtration Methods 0.000 description 6
- 230000014759 maintenance of location Effects 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 3
- 229910000831 Steel Inorganic materials 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005755 formation reaction Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 239000010959 steel Substances 0.000 description 2
- 244000287680 Garcinia dulcis Species 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Images
Classifications
-
- 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/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/84—Generation or processing of descriptive data, e.g. content descriptors
- H04N21/8402—Generation or processing of descriptive data, e.g. content descriptors involving a version number, e.g. version number of EPG data
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/633—Control signals issued by server directed to the network components or client
- H04N21/6332—Control signals issued by server directed to the network components or client directed to client
- H04N21/6334—Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- 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/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
- H04N21/2351—Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving encryption of additional data
-
- 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/41—Structure of client; Structure of client peripherals
- H04N21/418—External card to be used in combination with the client device, e.g. for conditional access
- H04N21/4181—External card to be used in combination with the client device, e.g. for conditional access for conditional access
-
- 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/432—Content retrieval operation from a local storage medium, e.g. hard-disk
- H04N21/4325—Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
-
- 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
-
- 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4334—Recording operations
-
- 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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4345—Extraction or processing of SI, e.g. extracting service information from an MPEG 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/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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4348—Demultiplexing of additional data and video streams
-
- 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/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
- H04N21/4351—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reassembling additional data, e.g. rebuilding an executable program from recovered modules
-
- 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
- H04N21/4353—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving decryption of additional data
-
- 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/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
- H04N21/4383—Accessing a communication channel
-
- 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/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
- H04N21/4385—Multiplex stream processing, e.g. multiplex stream decrypting
- H04N21/43853—Multiplex stream processing, e.g. multiplex stream decrypting involving multiplex stream decryption
-
- 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/4431—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
-
- 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
- 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/4437—Implementing a Virtual Machine [VM]
-
- 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/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/458—Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
- H04N21/4586—Content update operation triggered locally, e.g. by comparing the version of software modules in a DVB carousel to the version stored locally
-
- 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/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
- H04N21/4627—Rights management associated to the content
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
- H04N21/6118—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving cable transmission, e.g. using a cable modem
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/61—Network physical structure; Signal processing
- H04N21/6156—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
- H04N21/6168—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving cable transmission, e.g. using a cable modem
-
- 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
-
- 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/162—Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
- H04N7/163—Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only
-
- 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
-
- 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/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
- H04N7/17345—Control of the passage of the selected programme
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
传统上,当已升级程序的版本时,当前存储的程序的整体需要被删除,以便被新程序替换,并且当激活该新程序时,需要再次对该新程序进行认证。然而,由于即使当仅仅改变一部分该程序时,也需要存储并认证整个程序,这会消耗时间并导致响应速度下降。为了解决该问题,当存储新程序时,本发明提取新程序和当前存储的旧程序之间的差别,并且在仅对这些差别执行认证后存储新程序。
Description
技术领域
本发明涉及一种程序数据文件存储方法和一种认证程序执行方法,用于在检验下载程序的可靠性之后存储所述下载的程序,并且执行所述已被检验为可靠的程序,特别地,本发明涉及程序的更新和认证。
背景技术
在DVB-MHP规范“ETSI TS 101 812 V1.2.1 DVB-MHPSpecification 1.0.2”及其他规范中描述了数字电视中的下载程序以及检查/保证这种程序的可靠性的功能。该DVB-MHP规范定义检验功能,该功能用于检验叠加在正在被接收的广播电波上的程序是否未被篡改以及是否这样的程序是由可靠的组织发出的。该功能能够防止激活不按照原来的要求工作、因此将使数字电视遭受损害的重写过的程序,以及欺骗性第三方的程序。
在OCAP规范(OCAP 1.0 Profile OC-SP-OCAP1.0-IF-I09-031121)中描述了更新程序的功能。依据该OCAP规范,当在XAIT(描述程序的表)中检测到程序升级信号(无论何时它的描述发生变化都升级程序的版本)时,删除程序的所有文件,例如当前存储在辅助存储器(例如闪速ROM(flash ROM))中的类文件和数据文件,并替换为升级程序的文件,例如类文件和数据文件。
同时,日本特开平专利申请No.2000-259417公开了一种技术,其中,通过响应于来自构成执行环境的执行实体或另一个对象的请求执行以下步骤来替换构成执行环境的对象,即:删除构成执行环境的对象的步骤;以及从外部系统获取新对象的步骤。
当升级程序时,并不升级它的所有文件,例如类文件和数据文件,而是仅部分地升级该程序。然而,根据传统的技术,即使当程序仅需要被部分地升级时,也需要删除存储的程序的所有文件,以替换为升级程序的文件。这是使用传统技术的问题,因为响应速度会随着存储所需的时间的增长成比例的增大。此外,在将程序存入非易失性存储器一次以便在所述设备被通电/断电之后激活该程序的情况下,在它被激活之前执行程序认证。在这种情况下,需要在开始激活所述程序之前执行例如解密加密值这样的计算,这将导致随着计算所需的时间变长,响应速度会减小更多。尤其是在一个程序被频繁的激活或程序的体积较大的情况下,因为计算量随着激活频率和体积的增大成比例地增加,所以响应速度变得越来越慢。
由于以上问题,希望提供一种程序执行设备,例如具有增大的响应速度的数字电视,其能够缩短程序更新所需的时间以及缩短激活程序之前所需的时间,同时保证所述程序的可靠性。
发明内容
本发明的目的是提供一种程序数据文件存储方法以及一种认证程序执行方法,其既能够在升级程序版本时,通过提取升级前后的程序之间的差异,在存储程序之前仅为该差异执行认证和更新,从而保证可靠性以及提高响应速度,又能够在激活程序时,不执行认证或只执行部分认证。
为了解决传统问题,根据本发明的程序数据文件存储方法包括:第一步骤,用于认证包含在第一传输流中的第一程序的每个数据文件,并根据关于第一程序的每个数据文件的存储的信息,将第一程序的每个已认证的数据文件存储到广播接收器中;第二步骤,用于接收关于包含在第二传输流中的第二程序的每个数据文件的存储的信息;以及下列步骤,当第二程序的数据文件包含不同于当存储第一程序时已认证的、第一程序的任何数据文件的数据文件时执行所述下列步骤:第三步骤,用于检验两个散列值是否一致,其中一个散列值是根据包含在第二程序中的不同数据文件计算的,另一个散列值是存储在对应于包含在第二程序中的不同数据文件的散列文件中;第四步骤,用于检验包含在第二程序中的证书文件是否有效;第五步骤,检验解密值与散列值是否一致,其中,所述解密值是通过使用第二程序的证书文件中的叶证书的公钥解密包含在第二程序中的签名文件的签名值而获得的,并且散列值是根据位于第二程序的顶层目录的散列文件而计算的;以及第六步骤,用于认证所述第二程序,以及当满足下列条件时,根据与所述第二程序的数据文件中的每一个的存储有关的信息存储所述已认证的第二程序,所述条件为:在所述第三步骤中,检验结果为所述两个散列值一致;在所述第四步骤中,检验结果为包含在所述第二程序中的证书文件有效;以及在所述第五步骤中,检验结果为所述解密值与所述散列值一致。
因此,能够缩短认证和更新程序所需的时间。
此外,包含在第二程序中的不同的数据文件可以是用于更新在存储所述第一程序时已认证的、第一程序的数据文件的数据文件。
因此,能够使用包含在版本已升级的第二程序中的数据文件更新包含在第一程序中的数据文件。
此外,包含在所述第二程序中的所述不同的数据文件可以是不同于已在存储所述第一程序时被认证过的、所述第一程序的数据文件中的任何一个的新数据文件。
因此,能够存储新加入版本已升级的第二程序的数据文件。
此外,当所述程序中的每一个具有目录结构时,包含在每个目录中的每个数据文件与对应于所述每个数据文件的散列文件位于相同的目录中,以及可以对包含所述包含在所述第二程序中的不同的数据文件的每个目录执行所述第三步骤。
因此,能够为包含在每个目录中的每个数据文件检查根据所述文件计算的散列值和存储在对应于所述数据文件的散列文件中的散列值是否一致。
此外,第四步骤可以包括第七步骤,用于检验两个根证书是否匹配,所述两个根证书中的一个在包含在所述第二程序中的证书文件中,而另一个根证书被安装在所述广播接收器中,以及在所述第四步骤中,当所述两个根证书匹配时,所述证书文件被证实有效。
这里,第四步骤可以还包括第八步骤,用于检验包含在所述第二程序中的证书文件中的每个证书的有效期,以及在所述第四步骤中,当同时满足下列两个条件时,所述证书文件被证实有效,所述两个条件为:所述两个根证书匹配;以及执行所述认证的时间在所述证书文件中的每个证书的有效期内。
因此,当根证书不匹配以及证书的有效期期满时,能够防止存储程序。
同样,根据本发明的已认证程序执行方法包括:第一步骤,用于认证包含在第一传输流中的第一程序的数据文件中的每一个,以及根据与所述第一程序的数据文件中的每一个的存储有关的信息,将所述第一程序的已认证的数据文件中的每一个存储到广播接收器中;第二步骤,用于接收与包含在第二传输流中的第二程序的数据文件中的每一个的存储有关的信息;以及下列步骤,当所述第二程序的数据文件包含不同于在存储所述第一程序时已认证的、所述第一程序的数据文件中的任何一个的数据文件时执行下列步骤:第三步骤,用于检验两个散列值是否一致,其中一个散列值是根据包含在所述第二程序中的所述不同的数据文件而计算的,而另一个散列值存储在对应于包含在所述第二程序中的所述不同的数据文件的散列文件中;第四步骤,用于检验包含在所述第二程序中的证书文件是否有效;第五步骤,用于检验解密值与散列值是否一致,所述解密值是通过使用所述第二程序的证书文件中的叶证书的公钥,来解密包含在所述第二程序中的签名文件的签名值而获得的,而所述散列值是根据位于所述第二程序的顶层目录中的散列文件计算的;第六步骤,用于认证所述第二程序,以及当满足下列条件时,根据与所述第二程序的数据文件中的每一个的存储有关的信息存储所述已认证的第二程序,所述条件为:在所述第三步骤中,检验结果为所述两个散列值一致;在所述第四步骤中,检验结果为包含在所述第二程序中的证书文件有效;以及在所述第五步骤中,检验结果为所述解密值与所述散列值一致;以及第九步骤,用于当将执行所述第二程序时,检验包含在所述存储的第二程序中的所述证书文件是否有效;以及执行步骤,用于再次认证所述存储的第二程序,以及仅当在所述第九步骤中证实包含在所述存储的第二程序中的所述证书文件有效时,执行所述已认证的第二程序。
因此,能够缩短认证和更新程序所需的时间,并且能够缩短程序激活前所需的时间,同时保证程序的可靠性。
此外,第九步骤可以包括第十步骤,用于检验两个根证书是否匹配,所述两个根证书中的一个在包含在所述存储的第二程序中的证书文件中,而另一个根证书被安装在所述广播接收器中,以及在所述第九步骤中,当所述两个根证书匹配时,所述证书文件被证实有效。
这里,第九步骤可以包括第十一步骤,用于检验包含在所述存储的第二程序中的证书文件中的每个证书的有效期,以及在所述第九步骤中,当同时满足下列两个条件时,所述证书文件被证实有效,所述两个条件为:所述两个根证书匹配;以及进行所述执行的时间在所述证书文件中的每个证书的有效期内。
因此,当根证书不匹配以及证书的有效期期满时,可以防止存储程序。
注意,本发明不仅可以如上所述体现为程序数据文件存储方法以及已认证程序执行方法,而且还可以体现为程序数据文件存储设备和已认证程序执行设备,其中,所述程序数据文件存储设备和已认证程序执行设备包括包含在程序数据文件存储方法以及已认证程序执行方法中的特征步骤,作为它们相应的单元,本发明还可以体现为使计算机执行相应步骤的程序。还应注意,可以通过记录介质(例如CD-ROM)和传输介质(例如因特网)来分发该程序。
通过以上描述,可以容易地知道,根据本发明的程序数据文件存储方法能够缩短认证和更新程序所需的时间。此外,根据本发明的已认证程序执行方法能够缩短程序激活前所需的时间,同时保证程序的可靠性。
通过参考,将包含说明书、附图、和权利要求在内的,于2003年12月18日提交的日本专利申请No.2003-421616的公开,于2004年4月6日提交的日本专利申请No.2004-111802的公开,以及于2003年12月19日提交的美国临时申请No.60/530663的公开包含在此。
附图说明
通过结合附图所进行的、说明了本发明具体实施例的下列描述,本发明的这些以及其它目的、优点、特征将变得明显。在附图中:
图1是显示根据本发明第一实施例的有线电视系统的结构的示图;
图2是显示使用将被用于根据本发明的有线电视系统中的头端(head end)和终端设备之间的通信的频带的例子的示图;
图3是显示使用将被用于根据本发明的有线电视系统中的头端和终端设备之间的通信的频带的例子的示图;
图4是显示使用将被用于根据本发明的有线电视系统中的头端和终端设备之间的通信的频带的例子的示图;
图5是显示根据本发明的有线电视系统中的终端设备的配置的示图;
图6是显示根据本发明的有线电视系统中的终端设备的典型的外部视图的示图;
图7是显示根据本发明的POD 504的硬件配置的示图;
图8是显示存储在根据本发明的POD 504中的程序的结构的示图;
图9是显示在MPEG标准中定义的数据分组的结构的示图;
图10是显示MPEG2传输流的例子的示图;
图11是显示当以面板的形式配置时的输入单元513的典型外部视图的示图;
图12是显示存储在根据本发明的终端设备500中的程序的结构的示图;
图13A是显示由根据本发明的显示器509显示的显示屏幕的例子的示图,图13B是显示由根据本发明的显示器509显示的显示屏幕的例子的示图;
图14是显示存储在根据本发明的辅助存储单元510中的信息的例子的示图;
图15A、15B和15C是示图,其中每一个显示了存储在根据本发明的主存储单元511中的信息的例子;
图16是显示在根据本发明的MPEG2标准中规定的PAT的内容的概要示图;
图17是显示在根据本发明的MPEG2标准中规定的PMT的内容的概要示图;
图18是显示根据本发明的AIT的内容的概要示图;
图19是显示将以根据本发明的DSMCC格式传送的文件系统的概要示图;
图20是显示根据本发明的XAIT的内容的概要示图;
图21是显示存储在根据本发明的辅助存储单元510中的信息的例子的示图;
图22A、22B和22C是示图,每一个显示根据本发明的包括文件或目录的散列值的文件的例子;
图23是显示根据本发明的证书链的结构的示图;
图24是显示根据本发明的X.509证书的结构的示图;
图25是显示根据本发明的签名文件的结构的示图;
图26是显示根据本发明的安全模块的组成部分的示图;
图27是显示根据本发明,当认证文件系统时将执行的操作的流程图;
图28是根据本发明,当接收到程序预激活通知时不执行认证的情况下的流程图;
图29是显示根据本发明,当对文件系统执行篡改检查时执行的操作的流程图;
图30是显示根据本发明,当通过使用签名文件执行篡改检查时将被执行的操作的流程图;
图31是显示根据本发明,当检查叶证书和中间证书之间的链关系时执行的操作的流程图;
图32是显示根据本发明,当检查中间证书和根证书之间的链关系时执行的操作的流程图;
图33是显示根据本发明,当检查根证书中的签名时执行的操作的流程图;
图34是显示根据本发明,将被用于指定待存储的文件的文件的例子的示图;
图35是显示根据本发明,描述文件2130的详细内容的文件列表信息的例子的示图;
图36是显示根据本发明的AM的组成元素的示图;
图37是显示根据本发明,描述之前被存储到辅助存储单元510中的文件2130的详细内容的文件列表信息的例子的示图;
图38是显示根据本发明,通过提取差异而生成的文件列表信息的例子的示图;
图39是显示根据本发明,由文件比较单元3601执行的处理的流程图;
图40是显示根据本发明,由文件系统管理单元3602执行的处理的流程图;
图41是显示根据本发明,由文件系统存储单元3603执行的处理的流程图;
图42是显示根据本发明,由AM和安全管理器执行的过程的流程图;
图43是显示根据本发明的XAIT的内容的概要示图;
图44是显示存储在根据本发明的辅助存储单元510中的信息的例子的示图;
图45A、45B和45C是示图,每一个显示包括根据本发明的文件或目录的散列值的文件的例子;
图46是显示根据本发明,当为文件系统执行篡改检查时将执行的操作的流程图;
图47是显示根据本发明,将用于指定将存储的文件的文件的例子的示图;
图48是显示根据本发明,当执行文件系统的认证时将执行的操作的流程图;
图49是显示根据本发明,当接收到程序预先激活通知时,在检查X.509证书的有效性时将执行的操作的流程图;
图50是显示根据本发明,将从下载模块接收的代码文件的简化结构的示图;
图51A、51B和51C是示图,每一个显示根据本发明,由正被替换的终端设备拥有的证书;
图52是显示根据本发明,当执行证书替换时将执行的操作的流程图;
图53是显示根据本发明,当接收到预先激活通知时,在比较根证书时将执行的操作的流程图;
图54是显示根据本发明的CRL的结构的示图;
图55是显示在根据本发明的CRL中的撤销证书列表的概要示图;
图56是显示包括根据本发明的CRL的文件系统的例子的示图;
图57是显示根据本发明,当基于散列值和签名值检查CRL的有效性时将执行的操作的流程图;
图58是显示根据本发明,当基于证书间的链关系和根证书间的比较来检查CRL的有效性时执行的操作的流程图;
图59是显示包括根据本发明的文件或目录的散列值的文件的例子的示图;
图60是显示根据本发明,当在程序存储时间存在CRL时,用于执行认证的操作的流程图;
图61是显示当在程序激活时间存在CRL时,用于执行认证的操作的流程图;
图62是显示根据本发明的撤销证书的数据库的概要示图;
图63是显示根据本发明,包括用于指定将存储的文件的文件的典型的文件系统的示图;以及
图64是显示根据本发明,用于指定将被存储的文件的典型的文件的示图。
具体实施方式
下面参照附图描述本发明的实施例。
(第一实施例)
参照附图说明根据本发明的有线电视系统的优选实施例。图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,ROM 512,输入单元513以及CPU 514等构成。此外,POD 504可以被附加到终端设备500,或从终端设备500分离。
图6显示形状较薄的电视,其是终端设备500的典型的外部视图。终端设备可以具有不同的配置,但在本实施例中,将基于OpenCable(R)和OCAP配置的终端设备作为例子进行描述。
601是形状较薄的电视的钢外壳,其中包含除POD 504以外的终端设备500的所有组件。
602是显示器,其对应于图5中的显示器509。
603是面板单元,其由多个按钮组成,并且对应于图5中的输入单元513。
604是信号输入端子,电缆线连接到其,用于向头端101发送信号以及从头端101接收信号。信号输入端子连接到图5所示的QAM解调单元501,QPSK解调单元502以及QPSK调制单元503。
605是对应于图5中的POD 504的POD卡。POD 504独立于终端设备500而实现,并且可以附加到终端设备500上,或从终端设备分离,如同图6中的POD卡605。后面详细说明POD 504。
606是可插入POD卡605的插槽。
参照图5,QAM解调单元501根据包括由CPU 514指定的频率的调谐信息,对已在头端101中被进行QAM调制并且被从头端101传送的信号进行解调,并将结果传送给POD 504。
QPSK解调单元502根据包括由CPU 514指定的频率的调谐信息,对已在头端101中被进行QPSK调制并且被从头端101传送的信号进行解调,并将结果传送给POD 504。
QPSK调制单元503根据包括由CPU 514指定的频率的解调信息,对从POD 504传送来的信号进行QPSK解调,并将结果传送给头端101。
如图6所示,POD 504可以从终端设备500的主体分离。终端500的主体和POD 504之间的连接接口的定义在OpenCable(R)CableCARD(R)接口规范(OC-SP-CC-IF-I15-031121)以及该规范所参考的规范中给出。这里,省略了详细说明,并且仅给出与本发明有关的组成部分的说明。
图7是显示POD 504的内部配置的框图。POD 504由第一解扰器单元701、第二解扰器单元702、扰频器单元703、主存储单元704、辅助存储单元705和CPU 706构成。
第一解扰器单元701根据来自CPU 706的指令从终端设备500的QAM解调单元501接收失真信号,并解扰该信号。然后,第一解扰器单元701将解扰后的信号传送给终端设备500的TS解码器505。根据需要,由CPU 706提供解扰器所需的信息,例如密钥。更具体地,头端101广播多路付费频道,当用户购买了观看这些付费频道的权利后,第一解扰器单元701从CPU 706接收所需的信息,例如密钥,并执行解扰。因此,用户可以观看这些付费频道。当不提供诸如密钥这样所需的信息时,第一解扰器单元701在不执行解扰的情况下,直接将所接收的信号传递给TS解码器505。
第二解扰器单元702根据来自CPU 706的指令接收来自终端设备500的QPSK解调单元502的失真(scrambled)信号,并解扰该信号。然后,第二解扰器单元702将解扰后的数据传送给CPU 706。
扰频器单元703根据来自CPU 706的指令对从CPU 706接收的信号进行扰频,并将结果发送给终端设备500的QPSK调制单元503。
主存储单元704,它的具体组成元件是例如RAM这样的主存储器,当CPU 706执行处理时用于临时地存储数据。
辅助存储单元705,它的具体组成元件是例如闪速ROM这样的辅助存储器,用于存储将由CPU 706执行的程序,并且用于存储即使当关闭电源时也不应删除的数据。
CPU 706执行存储在辅助存储单元705中的程序。该程序由多个子程序构成。图8显示了存储在辅助存储单元705中的程序的例子。在图8中,程序800由多个子程序构成,包括:主程序801、初始化子程序802、网络子程序803、再现子程序804以及PPV子程序805。
这里,PPV是每次观看付费(Pay Per View)的缩写,是指一种服务,其使得用户能够在可记帐的基础上,观看诸如电影这样的特定程序。当用户输入他/她的个人识别号时,向头端101通知用户购买了观看程序的权利,并且解扰程序。因此,用户能够观看该程序。观看程序需要用户在日后为购买付费。
在所有子程序中,主程序801是当打开电源时,首先由CPU 706激活的子程序,其控制其它子程序。
当打开电源时,由主程序801激活的初始化子程序802与终端设备500执行信息交换等等,以执行初始化处理。该初始化处理在OpenCable(R)CableCARD(R)接口规范(OC-SP-CC-IF-I15-031121)以及该规范所参考的规范中详细定义。此外,初始化子程序802还执行不在这些规范中定义的初始化处理。这里,介绍部分这种初始化处理。当打开电源时,初始化子程序802经由终端设备500的CPU 514向QPSK解调单元502通知存储在辅助存储单元705中的第一频率。QPSK解调单元502使用所提供的第一频率执行调谐,并将得到的信号传送给第二解扰器单元702。此外,初始化子程序802为第二解扰器单元702提供解扰信息,例如存储在辅助存储单元705中的第一密钥。从而,第二解扰器单元702执行解扰,并将结果传送给执行初始化子程序802的CPU 706。因此,初始化子程序802可以接收信息。在本实施例中,初始化子程序802经由网络子程序803接收信息。后面详细进行描述。
此外,初始化子程序802经由终端设备500的CPU 514向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地址(媒体访问控制的缩写),其是用于识别POD 504的识别符,并且被预先存储在辅助存储单元705中,以便请求获取IP地址。头端101经由终端设备500向POD 504通知IP地址,并且网络子程序803将该IP地址存储在主存储单元704中。此后,通过使用该IP地址作为POD 504的识别符,头端101和POD 504互相通信。
再现子程序804为第一解扰器单元701提供例如存储在辅助存储单元705中的第二密钥这样的解扰信息以及例如由终端设备500提供的第三密钥这样的解扰信息,以便使得能够执行解扰。此外,再现子程序804经由网络子程序803接收指示输入第一解扰器单元701的信号是PPV频道的信息。当被通知信号是PPV频道时,再现子程序804激活PPV子程序805。
当被激活时,PPV子程序805在终端设备500上显示提示用户购买所述程序的消息,并接受来自用户的输入。更具体地,当希望被显示在屏蔽上的信息被发送给终端设备500的CPU 514时,运行在终端设备500的CPU 514上的程序在终端设备500的显示器509上显示所述消息。然后,当用户经由终端设备500的输入单元513输入个人识别号时,终端设备500的CPU514接受其,并将其发送到运行在POD 504的CPU 706上的PPV子程序805。PPV子程序805将接受的个人识别号经由网络子程序803发送到头端101。当该个人识别号有效时,头端101经由网络子程序803向PPV子程序805通知解扰所需的解扰信息,例如第四密钥。PPV子程序805向第一解扰器单元701提供所接受的解扰信息,例如所述第四密钥,然后第一解扰器单元701解扰所述输入信号。
参照图5,TS解码器505对接受自POD 504的信号进行过滤,并将必要的数据传送到音频解码器506、视频解码器508和CPU 514。这里,发送自POD 504的信号是MPEG2传输流。关于MPEG2传输流的详细说明在MPEG规范ISO/IEC138181-1中给出,因此在本实施例中不对其进行详细地说明。MPEG传输流由多个固定长度的数据分组组成,并且为每个数据分组分配一个数据分组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。当CPU 514向TS解码器505指出数据分组ID“1”以及作为输出目的地的“视频解码器508”时,TS解码器505从接收自POD 504的MPEG2传输流中提取具有数据分组ID“1”的数据分组,并将它们传送到所述视频解码器508。因此,在图10中,仅将视频数据传送到视频解码器508。同时,当CPU 514向TS解码器505指出数据分组ID“2”以及“音频解码器506”时,TS解码器505从接收自POD 504的MPEG2传输流中提取具有数据分组ID“2”的数据分组,并将它们传送到所述音频解码器506。在图10中,仅音频数据被传送到所述视频解码器508。
该根据数据分组ID仅提取必要的数据分组的处理对应于由TS解码器505执行的过滤。TS解码器505能够按照来自CPU 514的指令同时执行多于一个过滤处理。
参照图5,音频解码器506连接由TS解码器505提供的、嵌入在MPEG2传输流的数据分组中的音频数据,对所连接的数据执行数模转化,并向扬声器507输出结果。
扬声器507将由音频解码器506提供的信号作为音频输出。
视频解码器508连接由TS解码器505提供的、嵌入在MPEG2传输流的数据分组中的视频数据,对所连接的数据执行数模转化,并向显示器509输出结果。
显示器509,其具体的组成元件是CRT或液晶等等,输出由视频解码器508提供的视频信号并显示由CPU 514指定的消息等等。
辅助存储单元510,其具体的组成元件是闪速存储器、硬盘等等,存储并删除由CPU 514指定的数据和程序。由CPU 514访问所存储的数据和程序。即使当终端设备500断电时,所存储的数据和程序也能保存在存储器中。
主存储单元511,其具体组成元件是RAM等等,其临时地存储由CPU 514指定的数据和程序以及删除它们。由CPU 514访问所存储的数据和程序。当终端设备500断电时,存储的数据以及程序被删除。
ROM 512是只读存储器装置,其具体的组成元件是ROM、CD-ROM、DVD等等。ROM 512存储将由CPU 514执行的程序。
输入单元513,其具体的组成元件是面板或遥控器,其接受来自用户的输入。图11显示当以面板的形式配置输入单元时的输入单元的例子。1100是一面板,其对应于图6中显示的面板单元603。该面板由七个按钮组成:上指针按钮1101、指针下按钮1102、左指针按钮1103、右指针按钮1104、OK按钮1105、取消按钮1106以及EPG按钮1107。当用户按下一按钮时,该被按下的按钮的识别符被通知给CPU 514。
CPU 514执行存储在ROM 512中的程序。根据来自该待执行程序的指令,CPU 514控制QAM解调单元501、QPSK解调单元502、QPSK调制单元503、POD 504、TS解码器505、显示器509、辅助存储单元510、主存储单元511以及ROM 512。
图12是显示存储在ROM 512中并且由CPU 514执行的程序的典型结构的示图。
程序1200由多个子程序组成。更具体地,程序1200由OS 1201、EPG 1202、Java(R)VM 1203(以下简称为VM 1203)、服务管理器1204、以及Java(R)库1205(以下简称库1205)组成。
OS 1201是当终端设备500通电时将由CPU 514激活的子程序。OS 1201是操作系统的缩写,它的例子是Linux等等。OS 1201是一种公知技术的普通名称,其由内核1201a和库1201b组成,内核1201a用于与另一个子程序并行地执行一个子程序,因此详细说明被省略。在本实施例中,OS 1201的内核1201a执行作为子程序的EPG 1202和VM 1203。同时,库1201b为这些子程序提供控制终端设备500的组成元件所需的多个功能。
这里,调谐作为这种功能一个例子被介绍。使用调谐的功能,从另一个子程序接收包括频率的调谐信息,然后传送至QAM解调单元501。因此,QAM解调单元501能够根据所提供的调谐信息执行解调,并将解调后的数据传送至POD 504。因此,其它子程序可以经由库1201b控制QAM解调单元。
所述EPG 1202由程序显示单元1202a以及再现单元1102b组成,程序显示单元1202a用于向用户显示一列程序以及接受来自用户的输入,再现单元1102b用于选择频道。这里,EPG是电子程序指南的缩写。当终端设备500通电时EPG 1202被激活。在激活的EPG 1202中,程序显示单元1202a等待来自用户经由终端设备500的输入单元513的输入。这里,当输入单元513采用图11中说明的面板的形式时,当用户按下输入单元513上的EPG按钮1107时,向CPU 514通知该EPG按钮的识别符。EPG 1202的程序显示单元1202a是运行在CPU 514上的一子程序,其接受该识别符,并在显示器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的状态中按下右指针时,光标1330向右移动,如图13B所示。当在图13B的状态中按下左指针时,光标1330向左移动,如图13A所示。
当在图13A的状态中按下面板1100上的OK按钮1105时,程序显示单元1202a向再现单元1102b通知“频道1”的识别符。同时,当在图13B的状态中按下面板1100上的OK按钮1105时,程序显示单元1202a向再现单元1102b通知“频道2”的识别符。
此外,程序显示单元1202a定期地将待显示的程序信息从头端101经由POD 504存储到主存储单元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经由CPU 514从输入单元513接收关于由用户进行的该按压的通知,并将正在被再现的频道切换到另一个。首先,再现单元1102b在主存储单元511中存储当前再现的频道的识别符。图15A、15B、15C显示了存储在主存储单元511中的频道的识别符的例子。图15A显示识别符“3”被存储,并且通过参照图14,表明具有频道名称“TV 3”的频道正在被再现。当用户在图15A的状态中按下上指针1101时,再现单元1102b参考图14中显示的频道信息,并且将具有频道名称“频道2”的频道的识别符“2”传送给服务管理器,以便新再现具有频道名称“频道2”的频道,其是所述表中的上一个频道。同时,再现单元1102b将识别符重写为存储在主存储单元511中的频道识别符“2”。图15B显示该重写的频道识别符。同样,当用户在图15A的状态中按下下指针1102时,再现单元1102b参考图14中显示的频道信息,并且将具有频道名称“TV日本”的频道的识别符“4”传送给服务管理器,以便新再现具有频道名称“TV日本”的频道,其是所述表中的下一个频道。同时,再现单元1102b将识别符重写为存储在主存储单元511中的频道识别符“4”。图15C显示该重写的频道识别符。
VM 1203是Java(R)虚拟机,其连续地分析并执行以Java(R)语言所写的程序。以Java(R)语言所写的程序被编译为称为字节代码的中间码,其不依赖于硬件。Java(R)虚拟机是执行该字节代码的解释器。一些Java(R)虚拟机将字节代码转化为一种可以由CPU 514理解的可执行的形式,并将结果传送给CPU 514,CPU 514执行其。用由内核1201a指定的待执行的Java(R)程序激活VM 1203。在本实施例中,内核1201a指定服务管理器1204作为待执行的Java(R)程序。对Java(R)语言的详细注释在许多书中给出,包括“Java(R) LanguageSpecification”(ISBN 0-201-63451-1)。因此,这里省略关于其的详细说明。同样,对Java(R)VM本身的操作的详细注释在许多书中给出,包括“Java(R)Virtual Machine Specification”(ISBN 0-201-63451-X)。因此,这里省略关于其的详细说明。
服务管理器1204是以Java(R)语言写的Java(R)程序,其由VM1203顺序地执行。通过JNI(Java本地接口),服务管理器1204能够调用另一个未用Java(R)语言写的子程序,并且能被另一个未用Java(R)语言写的子程序调用。关于JNI的说明在许多书中给出,包括“Java(R)本地接口”。因此,这里省略关于其的详细说明。
服务管理器1204通过JNI从再现单元1102b接受频道的识别符。
首先,服务管理器1204将频道的识别符传送给库1205中的调谐器1205c,以便请求调谐。调谐器1205c参考存储在辅助存储单元510中的频道信息以获得调谐信息。假定服务管理器1204将频道的识别符“2”传送给调谐器1205c,调谐器1205c参考图14中显示的行1412,并获得对应于所述频道的调谐信息“156MHz”。调谐器1205c经由OS 1201的库1201b将调谐信息传送给QAM解调单元501。QAM解调单元501根据发送给其的调谐信息解调发送自头端101的信号,并将结果信号传送给POD 504。
然后,服务管理器1204请求库1205中的CA 1205b执行解扰。CA 1205d通过OS 1201中的库1201b为POD 504提供解扰所需的信息。根据所提供的信息,POD 504解扰由QAM解调单元501提供的信号,并将结果信号传送给TS解码器505。
然后,服务管理器1204为库1205内的JMF 1205a提供频道的识别符,以便请求再现视频和音频。
首先,JMF 1205a从PAT和PMT获得用于指定待再现的视频和音频的数据分组ID。PAT和PMT是由MPEG-2标准定义的表,其显示包括在MPEG2传输流中的程序应用配置(program line-up)。在包含在MPEG2传输流的数据分组中的有效负载中携带PAT和PMT以及音频与视频。参照PAT和PMT的详细说明的规范。这里,仅给出PAT和PMT的概要。
PAT是程序关系表的缩写,在具有数据分组ID“0”的数据分组中传送其。为了获得PAT,JMF 1205a通过OS 1201的库1201b,向TS解码器505指出数据分组ID“0”和CPU 514。然后,TS解码器505根据数据分组ID“0”执行过滤,并将结果传送给CPU 514。因此,JMF 1205a可以收集PAT数据分组。图16说明了示意性地显示所收集的PAT信息的例子的表。列1601描述程序编号。列1602描述数据分组ID。列1602中显示的数据分组ID用于获得PAT。行1611~1613中的每一个包含一对频道的程序编号以及对应于其的数据分组ID。这里,定义了三个频道。行1611定义了一对程序编号“101”和数据分组ID“501”。假定提供给JMF 1205a的频道识别符是“2”,则JMF 1205a参考图14中的行1412,以便获得对应于该频道识别符的程序编号“102”,然后参考图16中显示的PAT中的行1612,以便获得对应于程序编号“102”的数据分组ID“502”。PMT是程序映射表的缩写,其在具有PAT中指定的数据分组ID的数据分组中被传送。为了获得PMT,JMF 1205a通过OS 1201的库1201b,向TS解码器505指出数据分组ID和CPU 514。这里,将指定的数据分组ID是“502”。然后,TS解码器505根据数据分组ID“502”执行过滤,并将结果传送给CPU 514。因此,JMF 1205a可以收集PMT数据分组。
图17说明了示意性地显示所收集的PMT信息的例子的表。列1701描述流类型。列1702描述数据分组ID。在各个流类型中指定的信息在具有列1702中指定的数据分组ID的数据分组的有效负载中被传送。列1703描述附加信息。1711~1714中的每一行是一对数据分组ID和被传送的信息的类型,其被称为基本流(elementary stream)。行1711是一对流类型“音频”和数据分组ID“5011”,其指示音频数据被存储在具有数据分组ID“5011”的数据分组的有效负载中。JMF1205a从PMT获得将再现的视频和音频的数据分组ID。参照图17,JMF 1205a从行1711获得音频数据分组ID“5011”,并从行1712获得视频数据分组ID“5012”。
然后,JMF 1205a经由OS 1201的库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(R)程序并使VM 1203执行其。作为一种用于将Java(R)程序嵌入MPEG2传输流的技术,使用称为DSMCC的方法,其在MPEG规范ISO/IEC 138181-6中描述。这里省略对DSMCC的详细说明。DSMCC规范定义了一种方法,用于将包含由计算机使用的目录和文件的文件系统编码到MPEG2传输流内的数据分组中。在MPEG2传输流内的数据分组中以AIT的形式传送关于待执行的Java(R)程序的信息。AIT是应用程序信息表的缩写,其定义在DVB-MHP规范(正式称为ETSI TS 101 812 DVB-MHP规范V1.0.2)的第十章中给出。
首先,为了获得AIT,与JMF 1205a的情况中一样,AM 1205b获得PAT和PMT,以便获得存储AIT的数据分组的数据分组ID。假定“2”是所提供的频道识别符而且图16中显示的PAT和图17中显示的PMT正在被传送,根据与JMF 1205a所遵循的过程相同的过程,AM 1205b获得图17中显示的PMT。随后,AM 1205b从PMT提取基本流的数据分组ID,该基本流的流类型是“数据”并且其具有作为附加信息的“AIT”。如图17所示,行1713内的基本流对应于这种基本流,因此AM 1205b从其获得数据分组ID“5013”。
AM 1205b通过OS 1201的库1201b为TS解码器505提供AIT的数据分组ID和作为输出目的地的CPU 514。然后,TS解码器505根据提供的数据分组ID执行过滤,并将结果传送给CPU 514。因此,AM 1205b可以收集AIT的数据分组。
图18是示意性地显示所收集的AIT信息的例子的表。列1801描述Java(R)程序的识别符。根据MHP规范,这些识别符被定义为应用程序ID,其识别一个Java(R)程序是否是应该被终端设备500的安全管理器1205f认证的程序。当识别符的值在0x0到0x3fff范围之内时,不需要进行认证,而当识别符的值在0x4000到0x7fff的范围之内时,需要进行认证。识别符的值在前一个范围之内的Java(R)程序被称为“未签名程序”,而识别符的值在后一个范围之内的Java(R)程序被称为“签名程序”。列1802描述用于控制Java(R)程序的控制信息。所述控制信息包含“自动起动(autostart)”、“呈现(present)”和“杀死(kill)”。“自动起动”的意思是终端设备500自动地迅速执行程序。“呈现”的意思是不自动执行所述程序。“杀死”的意思是将终止所述程序。列1803描述用于提取包括DSMCC格式的Java(R)程序的数据分组ID的DSMCC识别符。列1804描述所述Java(R)程序的程序名。
1811~1812中的每一行都是一组关于Java(R)程序的信息。在行1811中定义的Java(R)程序是一组识别符“301”、控制信息“自动起动”、DSMCC识别符“1”以及程序名“a/TopXlet”。在行1812中定义的Java(R)程序是一组识别符“302”、控制信息“呈现”、DSMCC识别符“1”以及程序名“b/GameXlet”。这里,这两个Java(R)程序具有相同的DSMCC识别符。这表示文件系统中包含两个Java(R)程序,该文件系统已被根据相同的DSMCC方法编码。这里,仅为各个Java(R)程序指定四条信息,而实际中指定更多的信息。详细内容请参考DVB-MHP规范。
AM 1205b从AIT找到“自动起动”Java(R)程序,并提取对应的DSMCC识别符和Java(R)程序名。参照图18,AM 1205b提取行1811中的Java(R)程序,并获取DSMCC识别符“1”和Java(R)程序名“a/TopXlet”。
然后,AM 1205b使用从AIT获取的DSMCC识别符,从PMT获取以DSMCC格式存储Java(R)程序的数据分组的数据分组ID。更具体地,AM 1205b从PMT获取包含在基本流中的数据分组ID,该基本流的流类型是“数据”并且在附加信息中的DSMCC识别符是匹配的。
这里,假定该DSMCC识别符为“1”,并且PMT如图17所示,行1714中的基本流满足上述条件。因此,将提取数据分组ID“5014”。
AM 1205b通过OS 1201的库1201b,向TS解码器505指出其中以DSMCC格式嵌入数据的数据分组的数据分组ID,以及作为输出目的地的CPU 514。这里,提供数据分组ID“5014”。然后,TS解码器505根据所提供的数据分组ID执行过滤,并将结果传送给CPU514。因此,AM 1205b可以收集需要的数据分组。AM 1205b根据DSMCC方法,基于所收集的数据分组重建文件系统,并且将重建的文件系统存储到主存储单元511。用于从MPEG2传输流的数据分组中提取数据(例如文件系统),以及将所提取的数据存储到存储单元(例如主存储单元511)的处理以下被称为下载。
图19显示了下载的文件系统的例子。在图中,圆圈表示目录,方框表示文件,其中,1901是根目录,1902是目录“a”,1903是目录“b”,1904是文件“TopXlet.class”并且1905是文件“GameXlet.class”。
随后,AM 1205b将一Java(R)程序传送到VM 1203,所述Java(R)程序将在下载到主存储单元511中的文件系统之外执行。这里,假定将执行的Java(R)程序的程序名是“a/TopXlet”,通过将“.class”附加到上述Java(R)程序名得到的文件“a/TopXlet.class”是将被执行的文件。“/”是目录和文件名之间的分界符,并且如图19所示,文件1904是将执行的Java(R)程序。然后,AM 1205b将文件1904传送到VM 1203,这是因为描述Java(R)程序的识别符的列1801指示未签名的程序,这意谓着不必请求安全管理器1205f对该Java(R)程序执行认证。
VM 1203执行所接收的Java(R)程序。
在接收到另一个频道的识别符后,服务管理器1204通过包含在相同库1205中的每个库,终止视频和音频的再现,并终止执行正在通过包含在库1205中的每个库执行的Java(R)程序,然后根据新接收的频道识别符对视频和音频进行再现,并且执行Java(R)程序。
库1205是存储在ROM 512中的多个Java(R)库的集合。在本实施例中,库1205包含JMF 1205a、AM 1205b、调谐器1205c、CA 1205d、POD Lib 1205e、安全管理器1205f、下载模块1206等等。
服务管理器1204和下载模块1206经由包含在库1205中的PODLib 1205e与头端101执行双向通信。可以通过POD Lib 1205e使用QPSK解调单元502和QPSK调制单元503,经由OS 1201的库1201b和POD 504来实现双向通信。
下载模块1206可以通过该通信从头端101接收代码数据。代码数据是指包含X.509证书和/或终端设备500的固件(firmware)的二进制数据。
图20说明了示意性地显示从头端101获得的XAIT信息的例子的表。列2001描述Java(R)程序的识别符。列2002描述用于控制Java(R)程序的控制信息。控制信息包含“自动起动”和“呈现”。“自动起动”的意思是,当终端设备500通电时,自动地执行程序,“呈现”的意思是,不自动地执行所述程序。列2003描述用于提取包含DSMCC格式的Java(R)程序的数据分组ID的DSMCC识别符。列2004描述Java(R)程序的程序名。列2005描述Java(R)程序的优先级。列2006描述Java(R)程序的版本号。行2011指示一组关于Java(R)程序的信息。定义在行2011中的Java(R)程序是一组识别符“0x7001”、控制信息“自动起动”、DSMCC识别符“1”和程序名“a/xlet1”。可以根据其Java(R)程序应用程序ID知道该Java(R)程序是签名程序。这里,仅为Java(R)程序指定了六段信息,但是即使当定义了更多段的信息时,也可以实现本发明。
当接收到XAIT信息时,AM 1205b根据与用于根据AIT信息下载Java(R)程序的过程相同的过程,将来自MPEG2传输流的文件系统存储到主存储单元511中。
之后,将文件系统存储到辅助存储单元510中,但是,如果该文件系统包含如图34所示的“应用程序描述文件”,则AM 1205b根据所述“应用程序描述文件”的描述将特定文件存储到文件系统。AM1205b在其将文件系统存储到辅助存储单元510之前,向安全管理器1205f发出预存储通知。响应于此,安全管理器1205f执行认证,并通知AM 1205b允许激活。当被安全管理器1205f通知允许激活时,AM 1205b将包含在文件系统中的特定文件存储到辅助存储单元510中。由AM 1205b和安全管理器1205f执行的处理是本发明的主要功能,后面将详细描述这些处理。
然后,AM 1205b把将XAIT信息与下载的文件系统的存储位置相关联而得到的结果存储到辅助存储单元510中。图21显示了彼此关联地存储在辅助存储单元510中的XAIT信息和下载的文件系统的例子。这里,将在OCAP规范中定义的文件作为例子描述。图21中的元素与图20中的对应元素彼此相同,因此省略对这些元素的说明。列2101存储下载的文件系统的存储位置。在图21中,由箭头指示这些存储位置。2110是下载的文件系统,其中包含顶层目录(还称为根目录)2120、目录“a”2121、目录“b”2122、文件“ocap.storage”2130、文件“ocap.certificates.1”2131、文件“ocap.signaturefile.1”2132、文件“ocap.hashfile”2140~2142、文件“xlet1.class”2150以及文件“sub.class”2151。
文件2130是“应用程序描述文件”,其用XML(可扩展标记语言)格式来描述,如图34所示。图35是显示文件列表信息的例子的示图,所述文件列表信息显示文件2130的描述。图35中的351是指示文件2130的描述的文件列表信息。列3511描述文件名。列3512描述各个文件的版本号。这里,仅为“应用程序描述文件”指定了两条信息,但是,如果定义了更多条信息,也能够实现本发明。注意,作为列3512中描述的每个文件的版本号,包含该文件的程序的程序号2006的值被基本上给出,并且作为在列3512中描述的、即使当它的程序的版本被升级时其内容也不会改变的唯一文件的版本号,该程序在被升级前的程序号2006的值被给出。
文件2140~2142是散列文件,其中包含文件名或目录名以及对应的散列值。图22A、22B和22C是显示“ocap.hashfiles”的细节的概要图。图22A中的221显示“ocap.hashfile”2116,图22B中的222显示“ocap.hashfile”2117,图22C中的223显示“ocap.hashfile”2118。221的“ocap.hashfile”存在于“/”目录2120中,其在列2211中包含“ocap.storage”文件2130、“ocap.certificates.1”文件2131以及“a”目录2121,它们存在于相同的目录2120中。列2212指示使用哪种散列算法来计算在列2213中描述的每个值。列2213与列2211中的文件或目录有关,列2213包含通过利用列2212中指定的散列算法而计算的散列值。当前主要使用的散列算法是SHA1(安全散列算法1)和MD5(消息摘要5)。这些是用于将具有任意长度的数据转换为固定长度字节值的公知算法,它们具有以下特征:在原始数据被转换后,不可能推算出原始数据;以及它们被用于检查文件是否已被破坏或篡改。
同时,散列值是通过使用散列算法而产生的伪随机数。当散列算法是SHA1时,散列值的长度是20字节,而当散列算法是MD5时,散列值的长度变为16字节。关于SHA1和MD5的详细介绍可以分别参考“FIPS-PUB 186-2 Secure Hash Standard”和“IETF RFC1321”。这里,对应于列2211中描述的“a”目录的散列值是SHA1散列值,其是已经为“a”目录中存在的“ocap.hashfile”文件2141而计算的值。
与在221中的“ocap.hashfile”的例子相同,222中的“ocap.hashfile”包含“xlet1.class”文件2150的文件名以及目录名、散列算法和目录“b”2122的散列值。类似地,223中的“ocap.hashfile”包含文件名、散列算法和存在于相同目录2122中的“sub.class”文件2151的散列值。
这里,仅描述与本发明有关的属性,因此,关于“ocap.hashfile”的详细内容,应该参考OCAP规范“OpenCable(R)Application Platformspecification OCAP 1.0 Profile(OC-SP-OCAP1.0-IF-109-031121)”。
文件2131是证书链。图23是显示“ocap.certificate.1”文件2131的详细结构的示图。231描述“ocap.certificate.x”(x是正整数)的典型结构,其包含根证书2311、中间证书2312和叶证书2313。它们处于链关系中,例如其中,根证书2311的持有者发行中间证书2312,并且中间证书2312的持有者发行叶证书2313。注意,根据OCAP规范,与签名文件“ocap.signaturefile.x”有关的证书链是具有相同值“x”的“ocap.certificate.x”。
在图21的例子中,对应于“ocap.signaturefile.1”的证书链是“ocap.certificate.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证书的发行人的私钥签名(加密)的值。在本实施例中,本次更新日期和时间2413和下次更新日期和时间2414需要日期和时间的信息,但是,本次更新日期和时间2413和下次更新日期和时间2414并不总是需要时间信息。作为使用公钥和私钥的系统,公钥密码系统被广泛用于电子商务等。在公钥密码系统中,使用不同于加密明文所用的密钥的密钥来解密密文。由于加密密钥和解密密钥不同,所以不能根据解密密钥推断出加密密钥。加密密钥对应于私钥,而解密密钥对应于公钥。公钥密码系统的典型例子包括RSA(Rivest-Shamir-Adleman)和DSA(Digital Signature Standard)。
文件2132是签名文件。图25是显示″ocap.signaturefile.1″文件2132的示意图。251指示用于识别关联哪个X.509证书的证书识别符,252指示散列签名算法,253指示通过使用在252中指示的散列签名算法根据“ocap.hashfile”2140所计算的签名值。
一旦将Java(R)程序存储到辅助存储单元510中,即使当由于频道改变和终端设备500断电等原因,将Java(R)程序从主存储单元511删除时,只要AM 1205b已接收到图20中所示的XAIT,就能够在不需要等待下载的情况下激活该Java(R)程序。也就是说,在图20中,程序“/a/xlet1”的控制信息2002是“自动起动”。因此,在图21的2011中,当对文件系统的对应于“/a/xlet1”的存储位置2101进行搜索,然后文件2150被传送到VM 1203时,存储在该文件系统中的Java(R)程序“xlet1”被激活。
然后,对由AM 1205b和安全管理器1205f执行的处理进行描述,这些处理是本发明的主要功能,用于认证存储在主存储单元511中的文件系统以及将所认证的文件系统存储到辅助存储单元510中。
首先描述AM 1205b的功能,然后描述安全管理器1205f的功能,最后描述由AM 1205b和安全管理器1205f执行的处理的流程。
首先,描述AM 1205b。
图36显示AM 1205b的组成部分,AM 1205b用于将存储在主存储单元511中的文件系统存储到辅助存储单元510中。
当将存储新下载的Java(R)程序时,文件系统比较单元3601将存储在主存储单元511中的文件系统的“/”目录中包含的“ocap.storage”的描述与存储在辅助存储单元510中的“/”目录中包含的“ocap.storage”的描述进行比较,其中,所述Java(R)程序将被存储到所述辅助存储单元510中。然后,文件系统比较单元3601提取指示将被存储的文件的文件列表信息(以下简称为文件列表信息),并将一对提取的文件列表信息和Java(R)程序识别符2001传送到文件系统管理单元3602。文件系统管理单位3602根据来自文件系统存储单元3603的查询,通过使用从文件系统比较单元3601传送的文件列表信息来提供所述文件列表信息。
文件系统存储单元3603向文件系统管理单元3602查询,以便获得文件列表信息,并根据所获得的文件列表信息,将文件从主存储单元511存储入辅助存储单元510。
例如,考虑以下例子:图37显示基于Java(R)程序的文件系统中的“ocap.storage”的文件列表信息的详细内容,所述Java(R)程序已被在前一次下载和认证时,在其被存储入主存储单元511后,存储入辅助存储单元510;并且图35显示基于Java(R)程序的文件系统中的“ocap.storage”的文件列表信息的详细内容,其中,所述Java(R)程序是已被通过已根据图21中显示的XAIT信息执行的下载而存储入主存储单元511的Java(R)程序。在本例中,文件系统比较单元3601将图38中显示的文件列表信息和已被新存储入主存储单元511的Java(R)程序的程序识别符2001传送到文件系统管理单元3602。
如图38所示,图38的文件列表信息中显示的是在图37中显示的、然而未在图35中显示的文件(即,“/a/c/ocap.hashfile”和“/a/c/sub.class”)以及同时在图37和图35中显示的、但版本号不同的文件(即“/ocap.hashfile”,“/ocap.singaturefile.1”,“/a/ocap.hashfile”和“/a/xlet.class”),而在图37和图35中共同显示的文件不在图38的文件列表信息中描述。
文件系统管理单元3602管理一对Java(R)程序的程序识别符2001和文件列表信息,并且文件系统存储单元3603向文件系统管理单元3602查询将存储的文件,以便根据所接收的文件列表信息存储文件。
以下通过采用一个例子,其中将存储行2011中定义的Java(R)程序,来详细描述由文件系统比较单元3601、文件系统管理单元3602和文件系统存储单元3603执行的处理。
图39是显示由文件系统比较单元3601执行的处理的流程图。文件系统比较单元3601检查在存储在主存储单元511中的文件系统的“/”目录中是否存在“ocap.storage”(步骤S391)。当存在有“ocap.storage”时,文件系统比较单元3601根据存储在主存储单元511中的“ocap.storage”的描述生成文件列表信息351(步骤S392)。
当步骤S391的检查结果为不存在“ocap.storage”时,在本例子中终止所述处理,但是同样能够使用包含下列信息的文件列表信息351移到步骤S393,所述信息为(i)参考存储在主存储单元511中的文件系统的文件结构生成的文件名列3511,以及(ii)根据版本号2006生成的版本号列3512。
然后,文件系统比较单元3601检查在存储在辅助存储单元510中的“/”目录中是否存在“ocap.storage”,其中,新下载的Java(R)程序被存储到所述辅助存储单元510中(在本实施例中,给出一个例子的描述,其中,图21中显示的Java(R)程序被新下载的Java(R)程序所替换)(步骤S393)。当存在有“ocap.storage”时,文件系统比较单元3601根据存储在辅助存储单元510中的“ocap.storage”的描述生成文件列表信息371(步骤S394)。
当步骤S393的检查结果为不存在“ocap.storage”时,在本例子中终止所述处理,但是同样能够使用包含下列信息的文件列表信息371移到步骤S395,所述信息为(i)参考存储在辅助存储单元510中的文件系统的文件结构生成的文件名列3711,以及(ii)根据最小的版本号1生成的版本号列3712。
然后,文件比较单元3601将文件列表信息351与文件列表信息371进行比较,以提取差别,并生成文件列表信息381(步骤S395)。最后,文件比较单元3601向文件管理单元3602传送一对Java(R)程序识别符2001以及文件列表信息381(步骤S396)。
图40是显示由文件系统管理单元3602执行的处理的流程图。当接收到Java(R)程序识别符2001以及对文件列表信息的查询时(步骤S401),文件系统管理单元3602将对应于所接收的Java(R)程序识别符2001的文件列表信息381返回给查询者(步骤S402)。
图41是显示由文件系统存储单元3603执行的处理的流程图。当接收到Java(R)程序识别符2001以及存储所述Java(R)程序的请求时(步骤S411),文件系统存储单元3603获得提供给文件系统管理单元3602的、对应于Java(R)程序识别符2001的文件列表信息381(步骤S412)。然后,文件系统存储单元3603判断是否已获得文件列表信息381(步骤S413)。当判断已获得文件列表信息381时(步骤413:是),文件系统存储单元3603将版本号2006与在所获得的文件列表信息381的列3812中描述的每个版本号进行比较,并从第一行开始比较(步骤S414)。
当版本号2006更大时(步骤S415),文件系统存储单元3603删除存储在辅助存储单元510中的、对应于在文件列表信息381的当前行的列381中描述的文件名的文件。在图38中显示的例子中,两个文件“/a/c/ocap.hashfile”和“/a/c/sub.class”将被删除(步骤S416)。当版本号2006不是较大的时,文件系统存储单元3603判断当前比较的版本号是否等于版本号2006(步骤S417)。当这些版本号相等时,文件系统存储单元3603将存储在主存储单元511中的、对应于在文件列表信息381的当前行的列3811中描述的文件名的文件存储到辅助存储单元510中。注意,当该文件存在于辅助存储单元510中时,这里的“存储文件”是指“重写文件”,当没有文件存在于辅助存储单元510中时,这里的“存储文件”是指“另外存储文件”。还要注意,在这里的存储操作之前,已完成随后描述的认证操作。最后,文件系统存储单元3603判断是否已达到文件列表信息的最后一行(步骤S419)。当不是最后一行时,文件系统存储单元3603返回步骤S414,而当是最后一行时,所述处理结束。
注意,只要该方法能够存储较大版本的文件并删除较老版本的文件,就可以使用另一种方法。此外,在以上描述中,通过使用版本号2006以及在文件列表信息381列3812中描述的版本号来区别较大的和较老的版本,但是,可以使用另外的方法,只要能够区别较大和较老的版本就行。
下面,给出由安全管理器1205f执行的一般操作的描述。假定,例如,安全管理器1205f从AM 1205b接收到指示将存储定义在行2011中的Java(R)程序的预存储通知。当接收到该通知时,安全管理器1205f检查Java(R)程序识别符2001的值以判断其是未签名程序还是签名程序。这里,因为Java(R)程序是签名程序,所以安全管理器1205f对“/”目录以下的文件系统执行认证。为了检验所述文件系统,通过使用ocap.hashfile(2140~2142)、ocap.certificates.1(2131)和ocap.signaturefile.1(2132)来执行认证。
图26显示用于执行文件系统的认证的安全管理器1205f的组成部分。
通知接收单元261用于在AM 1205b即将存储文件系统之前接收预存储通知,以及用于将该事实通知给判断单元262。
判断单元262判断认证结果。其请求散列计算单元263对文件系统进行散列计算以接收散列值。判断单元262从存在于“ocap.hashfile”文件中的散列值2213和2223提取将比较的值,并检查其与所接收的散列值是否相配。如果它们不匹配,则判断单元262判断已发生篡改,并且认证以失败结束。
此外,判断单元262使用证书提取单元265提取每个X.509证书,并且判断当前时间是否不在每个X.509证书的本次更新日期与时间2413之前,并且不在每个X.509证书的下次更新日期与时间2414之后(也就是说,当前时间在每个509证书的本次更新日期与时间2413和下次更新日期与时间2414之间)。从OS 1201的库1201b获得当前日期和时间。如果有效期不满足“本次更新日期和时间<当前日期和时间<下次更新日期和时间”,则判断单元262判断认证失败。
此外,为了认证证书链,判断单元262请求散列计算单元263对每个X.509证书的属性区域241进行散列计算。然后,其请求签名值解密单元264执行用于解密每个X.509证书中包含的签名值242的计算,并将得到的解密值与通过散列值计算单元263获得的散列值进行比较,以便检查证书链的状态。如果它们不匹配,则意味着证书不处于链关系中,并且因此判断认证失败。同时,当值匹配并且已证实证书处于链关系中时,检查所述证书链中的根证书是否包含在终端设备500的辅助存储单元510中。如果不包含,则判断单元262判断认证失败,也就是说不能执行比较。
当满足下列所有条件时,判断单元262判断认证成功,所述条件为:(1)没有篡改;(2)处于有效期;(3)证书处于链关系中;(4)根证书匹配。
当被判断单元262请求计算每个文件的散列值时,散列计算单元263从OS 1201的库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中显示的结构时执行的操作的说明。当从AM 1205b接收到文件系统的预存储通知时(步骤S271),安全管理器1205f对文件系统的顶层“/”目录以下的文件系统执行篡改检查(步骤S272)。在篡改检查中,通过比较散列值,证实在存在于文件系统的每个目录中的文件中未发生破坏或更改。
图29和图30是步骤S272的详细流程图。首先,安全管理器1205b从文件系统管理单元3602获得对应于程序识别符2001的文件列表信息381(步骤S290)。然后,安全管理器1205f聚焦于文件系统中的″/″目录(步骤S291),并执行比较以判断所获得的文件列表信息381是否包含在所聚焦的目录中包含的文件(步骤S292)。如果判断结果是存在文件(步骤S293:是),则安全管理器1205f计算文件“ocap.certificates.1”和“ocap.storage”以及目录“a”的散列值(步骤S294)。目录“a”的散列值是根据“/a/ocap.hashfile”文件222来计算的。然后,安全管理器1205f将在步骤S294中计算的每个散列值与在“/ocap.hashfile”的2213中描述的每个散列值进行比较(步骤S295)。在步骤S296中,如果有任何所计算的散列值不同于2213中的散列值,则安全管理器1205f判断已发生篡改(步骤S299)。同时,当所有所计算的散列值都与2213中的散列值匹配时,安全管理器1205f移动到步骤S297。如果判断是没有文件(步骤S293:否),在安全管理器1205f转移到步骤S297。
在步骤S297,检查是否存在还未完成篡改检查的任何子目录。在当前阶段,存在作为“/”目录的子目录的“a”目录。因此,聚焦于“a”目录,以便对其执行篡改检查,作为步骤S298,其中,执行与为“/”目录执行的处理相同的处理。在为“a”目录完成篡改检查之后,为“b”目录执行篡改检查,“b”目录是“a”目录的子目录。当已经为所有的目录完成篡改检查时,聚焦于“/”目录,执行图30中的步骤S301的处理。在步骤S301中,从作为证书链231的“/ocap.certificates.1”文件2131提取叶证书2313。然后,在步骤S302,从所提取的叶证书2313中取出公钥2417。随后,在步骤S303,为“/ocap.hashfile”文件221计算散列值。
同时,在步骤S304,使用存在于“/ocap.certificatefile.1”文件2131中的叶证书2313中的公钥2417对“/ocap.signaturefile.1”文件2132中的签名值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.certificate.1”文件2119的根证书2311相同的证书(步骤S276)。当在辅助存储单元510中不存在相同的证书时,在步骤S277判断证书链231的认证失败,并且发送关于该认证失败的通知(步骤S279),之后结束处理。同时,当包含根证书2311时,判断文件系统的认证成功,并且将关于该认证成功的通知发送给AM 1205b(步骤S278)。参照图28,即使在那之后接收到Java程序的预激活通知(步骤S281),也结束处理而不执行处理。
最后,参照图42,描述由AM 1205b和安全管理器1205f执行的处理的流程。当将存储Java(R)程序时,AM 1205b请求文件系统比较单元3601提取文件列表信息。响应于此,文件系统比较单元3601根据图39中显示的流程图执行处理(步骤S421)。接下来,AM 1205b请求安全管理器1205f认证所述Java(R)程序(典型的认证如下:根据所提取的文件列表信息认证新文件(包括版本已被升级的文件);对新下载的Java(R)程序的“/ocap.hashfile”执行篡改检查(只要已经在认证以上文件的时候执行了篡改检查,就不必再次执行篡改检查);以及新下载的Java(R)程序的证书文件的根认证(步骤S422)。AM 1205b判断认证是否失败(步骤S423),并且如果认证未失败(即成功)(步骤S423:否),则AM 1205b请求文件系统存储单元3603存储Java(R)程序。响应于此,文件系统存储单元3603根据图41中显示的流程图执行处理(步骤S424)。
如上所述,通过提取当前存储在辅助存储单元510中的Java(R)程序和将被新存储的Java(R)程序之间的差别,能够不必对整个将存储的Java(R)程序进行认证和存储。此外,如果在一定时间之后激活所存储的Java(R)程序,则不必在激活时再一次执行认证,这是因为在其被存储之前已经对它的文件系统执行了认证。更具体的,在程序执行时,不必再次执行与在存储所述程序时执行的认证相同的认证,并且可以例如仅执行根认证。
注意,文件系统存储单元3603用于存储和删除与在先前的存储时间存储入辅助存储单元510的文件系统中的任何文件不同的文件,而不会再次存储与在先前的存储时间存储入辅助存储单元510的文件系统中包含的文件之一相同的文件。然而,文件系统存储单元3603可以在不再次执行认证的情况下,用不同的文件重写相同的文件。
(第二实施例)
参照附图说明根据本发明的有线电视系统的优选实施例。图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,ROM 512,输入单元513以及CPU 514等构成。此外,POD 504可以被附加到终端设备500,或从终端设备500分离。
图6显示形状较薄的电视,其是终端设备500的典型的外部视图。终端设备可以具有不同的配置,但在本实施例中,将基于OpenCable(TM)和OCAP配置的终端设备作为例子进行描述。
601是形状较薄的电视的钢外壳,其中包含除POD 504以外的终端设备500的所有组件。
602是显示器,其对应于图5中的显示器509。
603是面板单元,其由多个按钮组成,并且对应于图5中的输入单元513。
604是信号输入端子,电缆线连接到其,用于向头端101发送信号以及从头端101接收信号。信号输入端子连接到图5所示的QAM解调单元501,QPSK解调单元502以及QPSK调制单元503。
605是对应于图5中的POD 504的POD卡。POD 504独立于终端设备500而实现,并且可以附加到终端设备500上,或从终端设备分离,如同图6中的POD卡605。后面详细说明POD 504。
606是可插入POD卡605的插槽。
参照图5,QAM解调单元501根据包括由CPU 514指定的频率的调谐信息,对已在头端101中被进行QAM调制并且被从头端101传送的信号进行解调,并将结果传送给POD 504。
QPSK解调单元502根据包括由CPU 514指定的频率的调谐信息,对已在头端101中被进行QPSK调制并且被从头端101传送的信号进行解调,并将结果传送给POD 504。
QPSK调制单元503根据包括由CPU 514指定的频率的解调信息,对从POD 504传送来的信号进行QPSK解调,并将结果传送给头端101。
如图6所示,POD 504可以从终端设备500的主体分离。终端500的主体和POD 504之间的连接接口的定义在OpenCable(R)CableCARD(R)接口规范(OC-SP-CC-IF-I15-031121)以及该规范所参考的规范中给出。这里,省略了详细说明,并且仅给出与本发明有关的组成部分的说明。
图7是显示POD 504的内部配置的框图。POD 504由第一解扰器单元701、第二解扰器单元702、扰频器单元703、主存储单元704、辅助存储单元705和CPU 706构成。
第一解扰器单元701根据来自CPU 706的指令从终端设备500的QAM解调单元501接收失真信号,并解扰该信号。然后,第一解扰器单元701将解扰后的信号传送给终端设备500的TS解码器505。根据需要,由CPU 706提供解扰器所需的信息,例如密钥。更具体地,头端101广播多路付费频道,当用户购买了观看这些付费频道的权利后,第一解扰器单元701从CPU 706接收所需的信息,例如密钥,并执行解扰。因此,用户可以观看这些付费频道。当不提供诸如密钥这样所需的信息时,第一解扰器单元701在不执行解扰的情况下,直接将所接收的信号传递给TS解码器505。
第二解扰器单元702根据来自CPU 706的指令接收来自终端设备500的QPSK解调单元502的失真信号,并解扰该信号。然后,第二解扰器单元702将解扰后的数据传送给CPU 706。
扰频器单元703根据来自CPU 706的指令对从CPU 706接收的信号进行扰频,并将结果发送给终端设备500的QPSK调制单元503。
主存储单元704,它的具体组成元件是例如RAM这样的主存储器,当CPU 706执行处理时用于临时地存储数据。
辅助存储单元705,它的具体组成元件是例如闪速ROM这样的辅助存储器,用于存储将由CPU 706执行的程序,并且用于存储即使当关闭电源时也不应删除的数据。
CPU 706执行存储在辅助存储单元705中的程序。该程序由多个子程序构成。图8显示了存储在辅助存储单元705中的程序的例子。在图8中,程序800由多个子程序构成,包括:主程序801、初始化子程序802、网络子程序803、再现子程序804以及PPV子程序805。
这里,PPV是每次观看付费(Pay Per View)的缩写,是指一种服务,其使得用户能够在可记帐的基础上,观看诸如电影这样的特定程序。当用户输入他/她的个人识别号时,向头端101通知用户购买了观看程序的权利,并且解扰程序。因此,用户能够观看该程序。观看程序需要用户在日后为购买付费。
在所有子程序中,主程序801是当打开电源时,首先由CPU 706激活的子程序,其控制其它子程序。
当打开电源时,由主程序801激活的初始化子程序802与终端设备500执行信息交换等等,以执行初始化处理。该初始化处理在OpenCable(TM)CableCARD(TM)接口规范(OC-SP-CC-IF-I15-031121)以及该规范所参考的规范中详细定义。此外,初始化子程序802还执行不在这些规范中定义的初始化处理。这里,介绍部分这种初始化处理。当打开电源时,初始化子程序802经由终端设备500的CPU 514向QPSK解调单元502通知存储在辅助存储单元705中的第一频率。QPSK解调单元502使用所提供的第一频率执行调谐,并将得到的信号传送给第二解扰器单元702。此外,初始化子程序802为第二解扰器单元702提供解扰信息,例如存储在辅助存储单元705中的第一密钥。从而,第二解扰器单元702执行解扰,并将结果传送给执行初始化子程序802的CPU 706。因此,初始化子程序802可以接收信息。在本实施例中,初始化子程序802经由网络子程序803接收信息。后面详细进行描述。
此外,初始化子程序802经由终端设备500的CPU 514向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地址(媒体访问控制的缩写),其是用于识别POD 504的识别符,并且被预先存储在辅助存储单元705中,以便请求获取IP地址。头端101经由终端设备500向POD 504通知IP地址,并且网络子程序803将该IP地址存储在主存储单元704中。此后,通过使用该IP地址作为POD 504的识别符,头端101和POD 504互相通信。
再现子程序804为第一解扰器单元701提供例如存储在辅助存储单元705中的第二密钥这样的解扰信息以及例如由终端设备500提供的第三密钥这样的解扰信息,以便使得能够执行解扰。此外,再现子程序804经由网络子程序803接收指示输入第一解扰器单元701的信号是PPV频道的信息。当被通知信号是PPV频道时,再现子程序804激活PPV子程序805。
当被激活时,PPV子程序805在终端设备500上显示提示用户购买所述程序的消息,并接受来自用户的输入。更具体地,当希望被显示在屏蔽上的信息被发送给终端设备500的CPU 514时,运行在终端设备500的CPU 514上的程序在终端设备500的显示器509上显示所述消息。然后,当用户经由终端设备500的输入单元513输入个人识别号时,终端设备500的CPU514接受其,并将其发送到运行在POD 504的CPU 706上的PPV子程序805。PPV子程序805将接受的个人识别号经由网络子程序803发送到头端101。当该个人识别号有效时,头端101经由网络子程序803向PPV子程序805通知解扰所需的解扰信息,例如第四密钥。PPV子程序805向第一解扰器单元701提供所接受的解扰信息,例如所述第四密钥,然后第一解扰器单元701解扰所述输入信号。
参照图5,TS解码器505对接受自POD 504的信号进行过滤,并将必要的数据传送到音频解码器506、视频解码器508和CPU 514。这里,发送自POD 504的信号是MPEG2传输流。关于MPEG2传输流的详细说明在MPEG规范ISO/IEC138181-1中给出,因此在本实施例中不对其进行详细地说明。MPEG传输流由多个固定长度的数据分组组成,并且为每个数据分组分配一个数据分组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。当CPU 514向TS解码器505指出数据分组ID“1”以及作为输出目的地的“视频解码器508”时,TS解码器505从接收自POD 504的MPEG2传输流中提取具有数据分组ID“1”的数据分组,并将它们传送到所述视频解码器508。因此,在图10中,仅将视频数据传送到视频解码器508。同时,当CPU 514向TS解码器505指出数据分组ID“2”以及“音频解码器506”时,TS解码器505从接收自POD 504的MPEG2传输流中提取具有数据分组ID“2”的数据分组,并将它们传送到所述音频解码器506。在图10中,仅音频数据被传送到所述视频解码器508。
该根据数据分组ID仅提取必要的数据分组的处理对应于由TS解码器505执行的过滤。TS解码器505能够按照来自CPU 514的指令同时执行多于一个过滤处理。
参照图5,音频解码器506连接由TS解码器505提供的、嵌入在MPEG2传输流的数据分组中的音频数据,对所连接的数据执行数模转化,并向扬声器507输出结果。
扬声器507将由音频解码器506提供的信号作为音频输出。
视频解码器508连接由TS解码器505提供的、嵌入在MPEG2传输流的数据分组中的视频数据,对所连接的数据执行数模转化,并向显示器509输出结果。
显示器509,其具体的组成元件是CRT或液晶等等,输出由视频解码器508提供的视频信号并显示由CPU 514指定的消息等等。
辅助存储单元510,其具体的组成元件是闪速存储器、硬盘等等,存储并删除由CPU 514指定的数据和程序。由CPU 514访问所存储的数据和程序。即使当终端设备500断电时,所存储的数据和程序也能保存在存储器中。
主存储单元511,其具体组成元件是RAM等等,其临时地存储由CPU 514指定的数据和程序以及删除它们。由CPU 514访问所存储的数据和程序。当终端设备500断电时,存储的数据以及程序被删除。
ROM 512是只读存储器装置,其具体的组成元件是ROM、CD-ROM、DVD等等。ROM 512存储将由CPU 514执行的程序。
输入单元513,其具体的组成元件是面板或遥控器,其接受来自用户的输入。图11显示当以面板的形式配置输入单元时的输入单元的例子。1100是一面板,其对应于图6中显示的面板单元603。该面板由七个按钮组成:上指针按钮1101、指针下按钮1102、左指针按钮1103、右指针按钮1104、OK按钮1105、取消按钮1106以及EPG按钮1107。当用户按下一按钮时,该被按下的按钮的识别符被通知给CPU 514。
CPU 514执行存储在ROM 512中的程序。根据来自该待执行程序的指令,CPU 514控制QAM解调单元501、QPSK解调单元502、QPSK调制单元503、POD 504、TS解码器505、显示器509、辅助存储单元510、主存储单元511以及ROM 512。
图12是显示存储在ROM 512中并且由CPU 514执行的程序的典型结构的示图。
程序1200由多个子程序组成。更具体地,程序1200由OS 1201、EPG 1202、Java(R)VM 1203(以下简称为VM 1203)、服务管理器1204、以及Java(R)库1205(以下简称库1205)组成。
OS 1201是当终端设备500通电时将由CPU 514激活的子程序。OS 1201是操作系统的缩写,它的例子是Linux等等。OS 1201是一种公知技术的普通名称,其由内核1201a和库1201b组成,内核1201a用于与另一个子程序并行地执行一个子程序,因此详细说明被省略。在本实施例中,OS 1201的内核1201a执行作为子程序的EPG 1202和VM 1203。同时,库1201b为这些子程序提供控制终端设备500的组成元件所需的多个功能。
这里,调谐作为这种功能一个例子被介绍。使用调谐的功能,从另一个子程序接收包括频率的调谐信息,然后传送至QAM解调单元501。因此,QAM解调单元501能够根据所提供的调谐信息执行解调,并将解调后的数据传送至POD 504。因此,其它子程序可以经由库1201b控制QAM解调单元。
所述EPG 1202由程序显示单元1202a以及再现单元1102b组成,程序显示单元1202a用于向用户显示一列程序以及接受来自用户的输入,再现单元1102b用于选择频道。这里,EPG是电子程序指南的缩写。当终端设备500通电时EPG 1202被激活。在激活的EPG 1202中,程序显示单元1202a等待来自用户经由终端设备500的输入单元513的输入。这里,当输入单元513采用图11中说明的面板的形式时,当用户按下输入单元513上的EPG按钮1107时,向CPU 514通知该EPG按钮的识别符。EPG 1202的程序显示单元1202a是运行在CPU 514上的一子程序,其接受该识别符,并在显示器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的状态中按下右指针时,光标1330向右移动,如图13B所示。当在图13B的状态中按下左指针时,光标1330向左移动,如图13A所示。
当在图13A的状态中按下面板1100上的OK按钮1105时,程序显示单元1202a向再现单元1102b通知“频道1”的识别符。同时,当在图13B的状态中按下面板1100上的OK按钮1105时,程序显示单元1202a向再现单元1102b通知“频道2”的识别符。
此外,程序显示单元1202a定期地将待显示的程序信息从头端101经由POD 504存储到主存储单元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经由CPU 514从输入单元513接收关于由用户进行的该按压的通知,并将正在被再现的频道切换到另一个。首先,再现单元1102b在主存储单元511中存储当前再现的频道的识别符。图15A、15B、15C显示了存储在主存储单元511中的频道的识别符的例子。图15A显示识别符“3”被存储,并且通过参照图14,表明具有频道名称“TV 3”的频道正在被再现。当用户在图15A的状态中按下上指针1101时,再现单元1102b参考图14中显示的频道信息,并且将具有频道名称“频道2”的频道的识别符“2”传送给服务管理器,以便新再现具有频道名称“频道2”的频道,其是所述表中的上一个频道。同时,再现单元1102b将识别符重写为存储在主存储单元511中的频道识别符“2”。图15B显示该重写的频道识别符。同样,当用户在图15A的状态中按下下指针1102时,再现单元1102b参考图14中显示的频道信息,并且将具有频道名称“TV日本”的频道的识别符“4”传送给服务管理器,以便新再现具有频道名称“TV日本”的频道,其是所述表中的下一个频道。同时,再现单元1102b将识别符重写为存储在主存储单元511中的频道识别符“4”。图15C显示该重写的频道识别符。
VM 1203是Java虚拟机,其连续地分析并执行以Java语言所写的程序。以Java(TM)语言所写的程序被编译为称为字节代码的中间码,其不依赖于硬件。Java虚拟机是执行该字节代码的解释器。一些Java虚拟机将字节代码转化为一种可以由CPU 514理解的可执行的形式,并将结果传送给CPU 514,CPU 514执行其。用由内核1201a指定的待执行的Java程序激活VM 1203。在本实施例中,内核1201a指定服务管理器1204作为待执行的Java程序。对Java语言的详细注释在许多书中给出,包括“Java Language Specification”(ISBN0-201-63451-1)。因此,这里省略关于其的详细说明。同样,对Java VM本身的操作的详细注释在许多书中给出,包括“Java Virtual MachineSpecification”(ISBN 0-201-63451-X)。因此,这里省略关于其的详细说明。
服务管理器1204是以Java语言写的Java程序,其由VM 1203顺序地执行。通过JNI(Java本地接口),服务管理器1204能够调用另一个未用Java语言写的子程序,并且能被另一个未用Java语言写的子程序调用。关于JNI的说明在许多书中给出,包括“Java本地接口”。因此,这里省略关于其的详细说明。
服务管理器1204通过JNI从再现单元1102b接受频道的识别符。
首先,服务管理器1204将频道的识别符传送给库1205中的调谐器1205c,以便请求调谐。调谐器1205c参考存储在辅助存储单元510中的频道信息以获得调谐信息。假定服务管理器1204将频道的识别符“2”传送给调谐器1205c,调谐器1205c参考图14中显示的行1412,并获得对应于所述频道的调谐信息“156MHz”。调谐器1205c经由OS 1201的库1201b将调谐信息传送给QAM解调单元501。QAM解调单元501根据发送给其的调谐信息解调发送自头端101的信号,并将结果信号传送给POD 504。
然后,服务管理器1204请求库1205中的CA 1205b执行解扰。CA 1205d通过OS 1201中的库1201b为POD 504提供解扰所需的信息。根据所提供的信息,POD 504解扰由QAM解调单元501提供的信号,并将结果信号传送给TS解码器505。
然后,服务管理器1204为库1205内的JMF 1205a提供频道的识别符,以便请求再现视频和音频。
首先,JMF 1205a从PAT和PMT获得用于指定待再现的视频和音频的数据分组ID。PAT和PMT是由MPEG-2标准定义的表,其显示包括在MPEG2传输流中的程序行(program line-up)。在包含在MPEG2传输流的数据分组中的有效负载中携带PAT和PMT以及音频与视频。参照PAT和PMT的详细说明的规范。这里,仅给出PAT和PMT的概要。PAT是程序关系表的缩写,在具有数据分组ID“0”的数据分组中传送其。为了获得PAT,JMF 1205a通过OS 1201的库1201b,向TS解码器505指出数据分组ID“0”和CPU 514。然后,TS解码器505根据数据分组ID“0”执行过滤,并将结果传送给CPU514。因此,JMF 1205a可以收集PAT数据分组。图16说明了示意性地显示所收集的PAT信息的例子的表。列1601描述程序编号。列1602描述数据分组ID。列1602中显示的数据分组ID用于获得PAT。行1611~1613中的每一个包含一对频道的程序编号以及对应于其的数据分组ID。这里,定义了三个频道。行1611定义了一对程序编号“101”和数据分组ID“501”。假定提供给JMF 1205a的频道识别符是“2”,则JMF 1205a参考图14中的行1412,以便获得对应于该频道识别符的程序编号“102”,然后参考图16中显示的PAT中的行1612,以便获得对应于程序编号“102”的数据分组ID“502”。PMT是程序映射表的缩写,其在具有PAT中指定的数据分组ID的数据分组中被传送。为了获得PMT,JMF 1205a通过OS 1201的库1201b,向TS解码器505指出数据分组ID和CPU 514。这里,将指定的数据分组ID是“502”。然后,TS解码器505根据数据分组ID“502”执行过滤,并将结果传送给CPU 514。因此,JMF 1205a可以收集PMT数据分组。图17说明了示意性地显示所收集的PMT信息的例子的表。列1701描述流类型。列1702描述数据分组ID。在各个流类型中指定的信息在具有列1702中指定的数据分组ID的数据分组的有效负载中被传送。列1703描述附加信息。1711~1714中的每一行是一对数据分组ID和被传送的信息的类型,其被称为基本流(elementary stream)。行1711是一对流类型“音频”和数据分组ID“5011”,其指示音频数据被存储在具有数据分组ID“5011”的数据分组的有效负载中。JMF1205a从PMT获得将再现的视频和音频的数据分组ID。参照图17,JMF 1205a从行1711获得音频数据分组ID“5011”,并从行1712获得视频数据分组ID“5012”。
然后,JMF 1205a经由OS 1201的库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程序并使VM 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,与JMF 1205a的情况中一样,AM 1205b获得PAT和PMT,以便获得存储AIT的数据分组的数据分组ID。假定“2”是所提供的频道识别符而且图16中显示的PAT和图17中显示的PMT正在被传送,根据与JMF 1205a所遵循的过程相同的过程,AM 1205b获得图17中显示的PMT。随后,AM 1205b从PMT提取基本流的数据分组ID,该基本流的流类型是“数据”并且其具有作为附加信息的“AIT”。如图17所示,行1713内的基本流对应于这种基本流,因此AM 1205b从其获得数据分组ID“5013”。
AM 1205b通过OS 1201的库1201b为TS解码器505提供AIT的数据分组ID和作为输出目的地的CPU 514。然后,TS解码器505根据提供的数据分组ID执行过滤,并将结果传送给CPU 514。因此,AM 1205b可以收集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规范。
AM 1205b从AIT找到“自动起动”Java程序,并提取对应的DSMCC识别符和Java程序名。参照图18,AM 1205b提取行1811中的Java程序,并获取DSMCC识别符“1”和Java程序名“a/TopXlet”。
然后,AM 1205b使用从AIT获取的DSMCC识别符,从PMT获取以DSMCC格式存储Java程序的数据分组的数据分组ID。更具体地,AM 1205b从PMT获取包含在基本流中的数据分组ID,该基本流的流类型是“数据”并且在附加信息中的DSMCC识别符是匹配的。
这里,假定该DSMCC识别符为“1”,并且PMT如图17所示,行1714中的基本流满足上述条件。因此,将提取数据分组ID“5014”。
AM 1205b通过OS 1201的库1201b,向TS解码器505指出其中以DSMCC格式嵌入数据的数据分组的数据分组ID,以及作为输出目的地的CPU 514。这里,提供数据分组ID“5014”。然后,TS解码器505根据所提供的数据分组ID执行过滤,并将结果传送给CPU514。因此,AM 1205b可以收集需要的数据分组。AM 1205b根据DSMCC方法,基于所收集的数据分组重建文件系统,并且将重建的文件系统存储到主存储单元511。用于从MPEG2传输流的数据分组中提取数据(例如文件系统),以及将所提取的数据存储到存储单元(例如主存储单元511)的处理以下被称为下载。
图19显示了下载的文件系统的例子。在图中,圆圈表示目录,方框表示文件,其中,1901是根目录,1902是目录“a”,1903是目录“b”,1904是文件“TopXlet.class”并且1905是文件“GameXlet.class”。
随后,AM 1205b将一Java程序传送到VM 1203,所述Java程序将在下载到主存储单元511中的文件系统之外执行。这里,假定将执行的Java程序的程序名是“a/TopXlet”,通过将“.class”附加到上述Java程序名得到的文件“a/TopXlet.class”是将被执行的文件。“/”是目录和文件名之间的分界符,并且如图19所示,文件1904是将执行的Java程序。然后,AM 1205b将文件1904传送到VM 1203,这是因为描述Java程序的识别符的列1801指示未签名的程序,这意谓着不必请求安全管理器1205f对该Java程序执行认证。
VM 1203执行所接收的Java程序。
在接收到另一个频道的识别符后,服务管理器1204通过包含在相同库1205中的每个库,终止视频和音频的再现,并终止执行正在通过包含在库1205中的每个库执行的Java程序,然后根据新接收的频道识别符对视频和音频进行再现,并且执行Java程序。
Java库1205是存储在ROM 512中的多个Java库的集合。在本实施例中,Java库1205包含JMF 1205a、AM 1205b、调谐器1205c、CA 1205d、POD Lib 1205e、安全管理器1205f、下载模块1206等等。
服务管理器1204和下载模块1206经由包含在库1205中的PODLib 1205e与头端101执行双向通信。可以通过POD Lib 1205e使用QPSK解调单元502和QPSK调制单元503,经由OS 1201的库1201b和POD 504来实现双向通信。
下载模块1206可以通过该通信从头端101接收代码数据。代码数据是指包含X.509证书和/或终端设备500的固件的二进制数据。图50是显示仅描述与本发明有关的一部分的代码数据的概要图。当接收到代码数据5000时,如果其包含根证书,则下载模块1206提取该根证书,并将其传送到安全管理器1205f。5002指示其它数据,例如固件。
AM 1205b从头端101接收关于将被终端设备500存储在辅助存储单元510中的Java程序的信息。该信息被称为XAIT信息信息。在头端101和POD 504之间以任意形式传送XAIT信息。只要包含所需的如XAIT一样的信息,就可以实施本发明,而不管传送格式。
图43说明了示意性地显示从头端101获得的XAIT信息的例子的表。列4301描述Java程序的识别符。列4302描述用于控制Java程序的控制信息。控制信息包含“自动起动”和“呈现”。“自动起动”的意思是当终端设备500通电时,自动地执行所述程序,“呈现”的意思是不自动地执行程序。列4303描述用于提取包括DSMCC格式的Java(R)程序的数据分组ID的DSMCC识别符。列4304描述Java程序的程序名。列4305描述Java程序的优先级。行4311和4312中的每一行是一组关于相应的Java程序的信息。定义在行4311中的Java(R)程序是一组识别符“0x7001”、控制信息“自动起动”、DSMCC识别符“1”和程序名“a/PPV1xlet”。可以根据它的Java程序应用程序ID知道该Java程序是签名程序。这里,仅为各个Java程序指定了五条信息,但是即使当定义更多条信息时,也可以实现本发明。
当接收到XAIT信息时,AM 1205b根据与用于根据AIT信息下载Java(R)程序的过程相同的过程,将来自MPEG2传输流的文件系统存储到主存储单元511中。之后,AM 1205b在其将所述文件系统存储入辅助存储单元510之前,向安全管理器105f发送预存储通知。这时,由根据本发明的安全管理器1205f启动认证操作,但是稍后描述它的详细内容。当由安全管理器1205f通知允许激活时,AM 1205b将文件系统存储入辅助存储单元510。然后,AM 1205b把将XAIT信息与下载的文件系统的存储位置相关联而得到的结果存储到辅助存储单元510中。图44显示了彼此关联地存储在辅助存储单元510中的XAIT信息和下载的文件系统的例子。这里,将在OCAP规范中定义的文件描述为例子。图44中的元素与图43中的相应元素彼此相同,因此省略对这些元素的说明。列4401存储下载的文件系统的存储位置。在附图中,由箭头指示这些存储位置。4410是下载的文件系统,其中包含顶层目录4411、目录“a”4412、目录“b”4413、文件“PPV1Xlet.class”4414、文件“PPV2Xlet.class”4415、文件“ocap.hashfile”4416~4418,文件“ocap.certificate.1”4419以及文件“ocap.signaturefile.1”4420。
文件4416~4418是散列文件,其中包含文件名或目录名以及对应的散列值。图45A、45B以及45C是显示“ocap.hashfiles”的详细内容。图45A中的451显示“ocap.hashfile”4416,图45B中的452显示“ocap.hashfile”4417,图45C中的453显示“ocap.hashfile”4418。451的“ocap.hashfile”存在于“/”目录4411中,在列4511中包含存在于相同目录4411中的“ocap.certificate.1”文件4419、“ocap.signaturefile.1”文件4420、“a”目录4412以及“b”目录4413。列4512指示使用哪种散列算法来计算在列4513中描述的每个值。列4513与列4511中的文件或目录有关,列4513包含通过利用列4512中指定的散列算法而计算的散列值。当前主要使用的散列算法是SHA1(安全散列算法1)和MD5(消息摘要5)。这些是用于将具有任意长度的数据转换为固定长度字节值的公知算法,它们具有以下特征:在原始数据被转换之后,不能推算出原始数据;以及它们被用于检查文件是否已被破坏或篡改。散列值是通过使用散列算法而产生的伪随机数。当散列算法是SHA1时,散列值的长度是20字节,而当散列算法是MD5时,散列值的长度变为16字节。关于SHA1和MD5的详细介绍可以分别参考“FIPS-PUB 186-2 Secure Hash Standard”和“IETF RFC1321”。这里,在列4511中描述的对应于相应的目录“a”和“b”的散列值是SHA 1散列值,它们是分别对存在于“a”目录中的“ocap.hashfile”文件4417和存在于“b”目录中的文件4418进行计算而得到的。
与在451中的“ocap.hashfile”的情况相同,452中的“ocap.hashfile”包含文件名、散列算法以及存在于相同目录4412中的“PPV1Xlet.class”文件4414的散列值。类似的,在453中包含文件名、散列算法以及存在于相同目录4413中的“PPV2Xlet.class”文件4415的散列值。
这里,仅描述与本发明有关的属性,因此,关于“ocap.hashfile”的详细内容,应该参考OCAP规范“OpenCable(TM)ApplicationPlatform specification OCAP 1.0 Profile(OC-SP-OCAP1.0-IF-109-031121)”。
文件4419是证书链。图23是显示“ocap.certificate.1”文件4419的详细结构的示图。231描述“ocap.certificate.x”(x是正整数)的典型结构,其包含根证书2311、中间证书2312和叶证书2313。它们具有链关系,例如其中,根证书2311的持有者发行中间证书2312,并且中间证书2312的持有者发行叶证书2313。注意,根据OCAP规范,与签名文件“ocap.signaturefile.x”有关的证书链是具有相同值“x”的“ocap.certificate.x”。在图44的例子中,对应于“ocap.signaturefile.1”的证书链是“ocap.certifcate.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证书的发行人的私钥签名(加密)的值。在本实施例中,本次更新日期和时间2413和下次更新日期和时间2414需要日期和时间的信息,但是,本次更新日期和时间2413和下次更新日期和时间2414并不总是需要时间信息。作为使用公钥和私钥的系统,公钥密码系统被广泛用于电子商务等。在公钥密码系统中,使用不同于加密明文所用的密钥的密钥来解密密文。由于加密密钥和解密密钥不同,所以不能根据解密密钥推断出加密密钥。加密密钥对应于私钥,而解密密钥对应于公钥。公钥密码系统的典型例子包括RSA(Rivest-Shamir-Adleman)和DSA(Digital Signature Standard)。
文件4420是签名文件。图25是显示″ocap.signaturefile.1″文件4420的示意图。251指示用于识别关联哪个X.509证书的证书识别符,252指示散列签名算法,253指示通过使用在252中指示的散列签名算法根据“ocap.hashfile”4416所计算的签名值。
一旦将Java程序存储到辅助存储单元510中,即使当由于频道改变和终端设备500断电等原因,将Java程序从主存储单元511删除时,只要AM 1205b已接收到图20中所示的XAIT,就能够在不需要等待下载的情况下激活该Java程序。也就是说,在图43中,程序“/a/PPV1Xlet”的控制信息4302是“自动起动”。因此,在图44的4311中,当对文件系统的对应于“/a/PPV1Xlet”的存储位置4401进行搜索,然后文件4414被传送到VM 1203时,存储在该文件系统中的Java程序“PPV1Xlet”被激活。
接下来,给出安全管理器1205f的描述,其是本发明的主要功能部件。
安全管理器1205f从服务管理器1204接收指示即将存储图43中的4304指示的“/a/PPV1Xlet”和“/b/PPV2Xlet”的预存储通知。当接收到该通知时,安全管理器1205f检查Java程序识别符4301的值以判断其是未签名程序还是签名程序。这里,因为Java程序是签名程序,所以安全管理器1205f对“/”目录以下的文件系统执行认证。为了检验文件系统,通过使用图44中说明的ocap.hashfiles(4416~4418)、ocap.certificate.1(4419)和ocap.signaturefile.1(4420)来执行认证。
图26显示用于执行文件系统的认证的安全管理器1205f的组成部分。
通知接收单元261用于在AM 1205b即将存储文件系统之前接收预存储通知,以及用于将该事实通知给判断单元262。
判断单元262判断认证结果,其请求散列计算单元263对文件系统进行散列计算以接收散列值。判断单元262从存在于“ocap.hashfile”文件中的散列值4513、4523和4533提取将比较的值,并检查其与所接收的散列值是否相配。如果它们不匹配,则判断单元262判断已发生篡改,并且认证以失败结束。
此外,判断单元262使用证书提取单元265提取每个X.509证书,并且判断当前时间是否不在每个X.509证书的本次更新日期与时间2413之前,并且不在每个X.509证书的下次更新日期与时间2414之后(也就是说,当前时间在每个X.509证书的本次更新日期与时间2413和下次更新日期与时间2414之间)。从OS 1201的库1201b获得当前日期和时间。如果有效期不满足“本次更新日期和时间<当前日期和时间<下次更新日期和时间”,则判断单元262判断认证失败。
此外,为了认证证书链,判断单元262请求散列计算单元263对每个X.509证书的属性区域241进行散列计算。然后,其请求签名值解密单元264执行用于解密每个X.509证书中包含的签名值242的计算,并将得到的解密值与通过散列值计算单元263获得的散列值进行比较,以便检查证书链的状态。如果它们不匹配,则意味着证书不处于链关系中,并且因此判断认证失败。同时,当值匹配并且已证实证书处于链关系中时,检查所述证书链中的根证书是否包含在终端设备500的辅助存储单元510中。如果不包含,则判断单元262判断认证失败,也就是说不能执行比较。
当满足下列所有条件时,判断单元262判断认证成功,所述条件为:(1)没有篡改;(2)处于有效期;(3)证书处于链关系中;(4)根证书匹配。
当被判断单元262请求计算每个文件的散列值时,散列计算单元263从OS 1201的库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执行的操作的流程图。基于该流程图,给出当文件系统具有图44中显示的结构时执行的操作的说明。当从AM 1205b接收到文件系统的预存储通知时(步骤S271),安全管理器1205f对文件系统的顶层“/”目录以下的文件系统执行篡改检查(步骤S272)。在篡改检查中,通过比较散列值,证实在存在于文件系统的每个目录中的文件中未发生破坏或更改。
图46和图30是步骤S272的详细流程图。首先,如步骤S461所示,分别为各个文件“ocap.certificate.1”和“ocap.signaturefile.1”以及存在于“/”目录中的各个目录“a”和“b”计算散列值。注意,目录“a”和“b”的散列值是分别根据“/a/ocap.hashfile”文件452和“/b/ocap.hashfile”文件453计算的。在步骤S463,将在步骤S462计算的散列值与在“/ocap.hashfile”中的4513中描述的每个散列值进行比较。在步骤S464,如果所计算的散列值中的任何一个与4513中的散列值不同,则判断已发生篡改(步骤S467)。同时,当所有所计算的散列值都与4513中的散列值匹配时,安全管理器1205f转移到步骤S465。在步骤S465,检查是否存在还未完成篡改检查的任何子目录。在当前阶段,目录“a”和“b”作为“/”目录的子目录而存在,并且还没有对它们进行篡改检查。因此,需要为这些目录“a”和“b”执行篡改检查。首先,在步骤S466聚焦于“a”目录,在其中,执行与为“/”目录执行的处理相同的处理。在为“a”目录完成篡改检查之后,为“b”目录执行篡改检查。当已经为目录“a”和“b”完成篡改检查时,聚焦于“/”目录,执行图30中的步骤S301的处理。在步骤S301中,从作为证书链231的“/ocap.certificates.1”文件4419提取叶证书2313。然后,在步骤S302,从所提取的叶证书2313中取出公钥2417。随后,在步骤S303,为“/ocap.hashfile”文件451计算散列值。同时,在步骤S304,使用存在于“/ocap.certificatefile.1”文件4419中的叶证书2313中的公钥2417对“/ocap.signaturefile.1”文件4420中的签名值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中执行的处理是不同的。当步骤4的结果是“证书链的认证失败”时,判断认证已失败并且发送关于其的通知(步骤S279),然后,结束对所述文件系统的认证。同时,当“证书链的认证成功时,执行步骤S276的处理。
接下来,在终端设备500的辅助存储单元510中搜索与“/ocap.certificate.1”文件2119的根证书2311相同的证书(步骤S276)。当在辅助存储单元510中不存在相同的证书时,在步骤S277判断证书链231的认证失败,并且发送关于该认证失败的通知(步骤S279),之后结束处理。同时,当包含根证书2311时,判断文件系统的认证成功,并且将关于该认证成功的通知发送给AM 1205b(步骤S278)。参照图28,即使在那之后接收到Java程序的预激活通知(步骤S281),也结束处理而不执行处理。
在第二实施例中,如果在一定时间之后激活所存储的Java程序,则不必在激活时再一次执行认证,这是因为在其被存储之前已经对文件系统执行了认证。
这里,给出了一个例子的描述,其中,图47中显示的“应用程序描述文件”存在于文件系统中,并且仅仅将存储其中描述的文件。根据OCAP规范,例如,“应用程序描述文件”是以XML(可扩展标记语言)格式描述的。图47显示了“应用程序描述文件”的一个例子。在图47中,没有图44中显示的“PPV2Xlet.class”4415的描述。因此,在这种情况下,不包含“PPV2xlet.class”4415作为存储对象。在这种情况下,在S462中不为“PPV2xlet.class”4415计算散列值,并且因此在S463中,不与“ocap.hashfile”文件4418中描述的4533中的散列值进行比较。在步骤S464,通过约定未作为存储对象包括在内的文件是在应用程序之外来向S465的处理进行转变。
第三实施例
当包含在文件系统中的Java程序(PPV1Xlet.class 4414或PPV2Xlet.class 4415)在该文件系统被存储之后的某一时段将被激活时,包含在“/ocap.certificate.1”文件4419中的X.509证书之一的有效期有可能期满(即,Java程序的激活日期与时间>下次更新日期与时间2414)。然而,即使在证书链231中包含已经期满的X.509证书,第二实施例也允许激活Java程序。
因此,通过向第二实施例增加检验功能来实现本实施例,所述检验功能用于在激活Java程序的时候,检验包含在证书链231中的每个证书2311、2312和2313未期满。图26显示了本实施例中的组成部分。已经在第二实施例中描述了本实施例所需的组成部分261~265,因此这里不再给出其描述。
图27的流程图被图48的流程图所替代,并且增加了图49的流程图,作为本实施例的流程图。
参照图48,在存储文件系统之前执行的处理(步骤S481到步骤S487)与在第二实施例中说明的处理(步骤S271到步骤S277)相同,因此省略对其的说明。如果认证未失败,则处理进入图49中显示的流程图。当在一定时间之后,通知将激活Java程序PPV1Xlet.class 4414时(步骤S491),从“ocap.certificate.1”文件4419提取每个X.509证书,即,根证书2311、中间证书2312、叶证书2313(步骤S492)。然后,按照从叶证书开始到根证书的顺序依次选择所提取的X.509证书(步骤S493),并且检查当前日期和时间是否在每个所选择的X.509证书的本次更新日期与时间2413和下次更新日期与时间2414之间(步骤S494)。如果当前日期和时间不在本次更新日期与时间2413和下次更新日期与时间2414之间,则判断认证失败,并且发送关于该事实的通知(步骤S497)。在其它情况中,检查是否已经为所有的X.509证书执行检查(步骤S495)。如果未对所有的X.509证书完成检查,则处理返回S493,并且重复后续的处理。同时,当在步骤S495中已经对所有的X.509证书进行了检查,则判断认证成功,并且发送关于该认证成功的通知(步骤S496),之后结束处理。通过增加图49的流程图中显示的处理,能够向AM 1205b通知认证失败,从而使得不会激活有效期已经期满的Java程序。当被安全管理器1205f通知认证失败时,AM 1205b在不将该Java程序传送到JavaVM1203的情况下终止激活。
第四实施例
如第二实施例所述,辅助存储单元510包含作为根证书的X.509证书,将其与证书链231中的根证书2311进行比较。用新的X.509证书(以下称为证书替换)替换存储在辅助存储单元510中的根证书,以防由于黑客(hacking)和其它原因导致证书可靠性降低。从头端101将新X.509证书传送到终端设备500,以经由下载模块106将其传送给安全管理器1205f。
图51A、51B和51C是示图,每一个显示正在通过安全管理器1205f替换(证书替换)的辅助存储单元510中的根证书。在本例中,证书A5101是将被替换的旧的证书,而证书B5102是新证书。图51A中的51-1显示在执行证书替换之前存储在辅助存储单元510中的证书,图51B中的51-2显示正在被替换的过程中的证书,图51C中的51-3显示在执行证书替换之后存储在辅助存储单元510中的证书,
在第二实施例和第三实施例中,即使当在存储Java程序之后执行证书替换,在激活Java程序时也不考虑新证书。例如考虑以下情况,当安全管理器1205f响应于预存储通知认证Java程序时,证书链231中的根证书2311与证书A5101相匹配,并且在用证书B5102替换证书A5101之后,安全管理器1205f接收到对Java程序的预激活通知。这时,辅助存储单元510不包括任何与证书链231中的根证书2311匹配的证书,这意味着该证书不可靠的。然而在第二实施例和第三实施例中,因为在激活Java程序之前不在根证书之间进行比较,(即,不将证书链231中的根证书2311与证书B5102进行比较),所以,不对AM 1205b发送关于认证失败的通知。因此,AM 1205b使得Java程序能够被激活。
因此,在本实施例中,由于证书替换,在激活Java程序时增加比较根证书的功能。
图26显示了本实施例中的组成部分。已经描述过组成部分261~265,因此省略对其的描述。增加证书替换单元266、证书替换指定单元267和证书接收单元268。
当证书替换指定单元267判断在辅助存储单元510中存储着比所接收的证书旧的证书时,证书替换单元266用新证书替换该旧证书。同时,当证书替换指定单元267判断未存储更旧的证书时,证书替换单元266将新证书存储入辅助存储单元510。
证书替换指定单元267接收由证书接收单元268接收的证书。然后,通过使用OS 1201的库1201b,其检查存储辅助存储单元510中的证书,以查看是否存在发行人相同并且比所接收的证书旧的证书。
当下载模块1206从头端101接收到新证书时,证书接收单元268接收该新证书。当接收到所述证书时,证书接收单元268将其传送到证书替换单元266和证书替换指定单元267。
另外,在图48的流程图之后增加图52和图53。
图52是执行证书替换时的流程图,而图53是在执行证书替换之后激活Java程序时的流程图。参照图52,当接收到证书替换请求时(步骤S521),提取所接收的证书的发行人名称(步骤S522)。检查在终端设备500的辅助存储单元510中是否存在需要被替换的旧的证书(步骤S523),并且仅当存在旧的证书时,删除该证书。然后,将所接收的证书存储入辅助存储单元510(步骤S525)。当在一定时间之后接收到激活Java程序的通知时(步骤S531),在辅助存储单元510中搜索与证书链231中的根证书2311匹配的证书(步骤S532),如果存在(步骤S533),判断认证成功并且发送关于该事实的通知(步骤S534)。如果不存在(步骤S533),则判断认证失败并且发送关于该事实的通知(步骤S535)。注意,在步骤S534判断认证成功之前,还能够在检验证书链中的每个X.509证书满足“本次更新日期与时间<当前日期和时间<下次更新日期与时间”之后,推断出认证成功。
此外,除检查根证书是否匹配之外,在S532之前,还能够在执行图31~图33中显示的检查以查看证书链中的证书是否处于链关系之后,判断认证是成功的/不成功的。
此外,以上描述了一种情况,其中,基于发行人名称指定应该替换的证书,但是还可以基于另一个属性值(例如主体名称)来指定证书。
第五实施例
当包含在文件系统中的Java程序(PPV1Xlet.class 4414或PPV2Xlet.class 4415)在该文件系统被存储之后的某一时段将被激活时,存在一种情况,其中,由于除了包含在“/ocap.certificate.1”文件4419中的任何X.509证书的有效期期满以及根证书被替换以外的其它原因证书被撤销。本配置允许即使当存在撤销证书时也可以激活Java程序。
这里,CRL(证书撤销列表)是公知的证书的撤销者。图54是显示CRL的结构的示图。这里,仅说明用于说明本发明所需的属性。关于CRL的详细内容,请参考IETF RFC 3280“Internet X.509 Public KeyInfrastructure Certificate and CRL Profile”。541指示CRL的属性区域,542指示签名值543的签名算法,543指示CRL的签名值。发行人名称5411指示该CRL的发行人,本次更新日期与时间5412指示CRL变得有效时的日期与时间,下次更新日期和时间5413指示当CRL的有效期期满时的日期与时间,撤销证书列表5414指示关于撤销的X.509证书的信息。图55是显示撤销证书列表5414的结构的示图。这里,也仅说明用于说明本发明所需的属性。关于多个撤销的X.509证书的信息被存储在撤销证书列表5414中。在图55的例子中,包含用于唯一识别证书的序列号5511以及当“证书A”551被撤销时的日期与时间5512,作为关于撤销的“证书A”551的信息。其它撤销的证书与551相同。
图56是包含CRL的文件系统的典型结构。“/”目录561、“a”目录562、“SimpleXlet.class”文件563、“ocap.hashfile”文件564~565、“ocap.certificate.1”文件566、“ocap.signaturefile.1”文件567、“ocap.crl.2”文件568以及“ocap.certificate.2”文件569被存储在其中。不包含CRL的文件系统的认证如第一实施例所述。因此,在本实施例中,聚焦于以crl格式构造的“ocap.crl.2”文件568以及作为该文件的证书链的“ocap.certificate.2”文件569。注意,根据OCAP规范,“OCAP.crl.x”的证书链是“OCAP.certificate.x”。在图56的例子中,“ocap.crl.2”的证书链是“ocap.certificate.2”。
图59是显示“ocap.hashfile”文件564的概要图。591显示ocap.hashfile 564的详细内容。591中的ocap.hashfile存在于“/”目录561中,其包含与存在于相同目录561中的“ocap.certificate.1”文件566、“ocap.signatrefile.1”文件567、“a”目录562、“ocap.crl.2”文件568以及“ocap.certificate.2”文件569中每一个有关的散列值。
图57是用于说明CRL的认证的流程图。以下对一个例子进行描述,其中,文件系统具有图56中显示的结构。首先,从CRL提取本次更新日期与时间5412和下次更新日期与时间5413(步骤S571),并且检查当前日期和时间是否在所述本次更新日期与时间5412和下次更新日期与时间5413之间(步骤S572)。如果不在之间,则判断该CRL无效(步骤S577)。如果当前日期和时间在它们之间,则计算属性区域541的散列值,以便检验“ocap.crl.2”文件568的签名值(步骤S573)。同时,从“ocap.certificate.2”文件569提取叶证书2313的公钥2417,“ocap.certificate.2”文件569是证书链(步骤S574),并且用所提取的公钥2417解密“ocap.crl.2”文件568的签名值543(步骤S575)。然后,检查在步骤S573获得的散列值是否等于在步骤S575获得的解密值(步骤S576)。如果它们不相等,则判断CRL无效(步骤S577)。如果它们相等,参照图58,对作为证书链的“ocap.certificate.2”文件569执行认证(步骤S581)。用于认证证书链的方法与图31至图33所示的方法相同,因此这里不再描述。随后,判断证书链的认证是否成功(步骤S582),如果认证失败,则判断该CRL无效(步骤S586)。同时,如果认证成功,则在辅助存储单元510中搜索与根证书相同的证书(步骤S583)。这里,如果没有匹配的根证书,则判断认证失败并且该CRL无效(步骤S586),而如果包含匹配的根证书,则判断认证成功并且CRL有效(步骤S585)。
下面描述对以下问题的解决方案,所述问题为,尽管根据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证书是撤销证书。
增加图60和图61作为流程图。根据这些流程图给出下列描述。假定发出了对图44所示的文件系统的预存储通知,开始图48的流程图中显示的处理,并且在适当的时候完成步骤S487的处理。假定然后接受到对图56中显示的另一个文件系统的预存储通知,在完成图57的流程图中显示的处理之后,执行步骤S6001至步骤S6007。步骤S6001至步骤S6007的处理与步骤S481至步骤S487的处理相同。当达到步骤S6008并且如果“ocap.crl.2”文件563的认证(图57和图58的流程图)成功时,关于包含在该文件中的撤销证书的信息被写入撤销证书的数据库。图62是显示撤销证书的数据库的概要图。发行人名称存储在列621,证书序列号存储在列622,撤销的日期和时间存储在列623。这里,当接收到“PPV1Xlet.class”4414的预激活通知时(步骤S611),检查在撤销证书的数据库中是否包含“ocap.certificate.1”文件4419的证书链231中包含的任何X.509证书(步骤S613)。如果存在任何证书,则判断认证失败并且发送关于此的通知(步骤S616)。同时,当没有可应用的证书时,对整个证书链执行检查(步骤S614),并且发送判断认证成功的通知(步骤S615)。通过以上处理,对于所述文件系统,通过判断文件的认证是失败的,能够解决激活不应被激活的Java程序的问题,其中,所述文件系统是指其证书在检验时是有效的,而在激活Java程序时已通过CRL转变为已撤销的文件系统。
注意,在第一至第五实施例中,当接收到Java程序的预激活通知时,还能够通过使用每个目录中的“ocap.hashfile”执行检验以查看文件系统的树结构是否正确。
此外,为了简化说明,在证书链中仅存在一个中间证书,但是有可能存在多个中间证书。然而,当对它的证书链执行认证时,所有的中间证书都必需处于链关系中。
此外,以所述的顺序描述了下列处理,但是本发明并不局限于该次顺:检查存在/没有篡改;认证证书链;检查以查看辅助存储单元是否包含与证书链中的根证书相同的根证书。
此外,对于文件系统的存储,安全管理器1205f可以使用OS的库1201b存储其。同样,第一至第五实施例还可应用于以下情况,其中,在文件系统的顶层目录“/”提供“应用程序描述文件”,并且作为其内容,仅指示文件系统的一部分作为将存储的文件。因此,如果仅处理将存储的文件也没问题。
此外,以上将程序描述为存储对象,但是,除程序以外的数据也可以作为存储对象,这意味着第一至第五实施例同样适用于数据。
此外,存在一种可能性,其中,多于一个“ocap.certificate.x”对应于“ocap.signaturefile.x”,在这种情况下,需要至少一个“ocap.certificate.x”文件的认证成功。
同样,“ocap.certificate.x”已被作为典型的证书链来表示,“ocap.hashfile”已被作为典型的具有散列值的文件来表示,并且“ocap.signaturefile.x”已被作为用于检查“/”目录中的“ocap.hashfile”是否已被篡改的典型文件来表示,但是本发明并不局限于这些文件名。
此外,当认证失败时,可以在重下载之后再次执行认证。
此外,当认证失败时,可以删除存储的程序以及用于认证的证书链、签名文件、散列文件,以便保留足够的存储区域。
这里,给出了一个例子的描述,其中,组成程序的文件系统具有图63中显示的结构,并且没有用于认证的文件的描述,如同在图64中显示的“应用程序描述文件”的情况。图63中显示的6311至6320相当于图44中显示的4411至4420。6321表示描述将被存储的文件的“应用程序描述文件”。在图64中的“应用程序描述文件”中,没有认证所需的“ocap.certificate.1”6319、“ocap.signaturefile.1”6320以及“ocap.hashfile”6317的描述。在本例中,如果仅仅如图64所示存储文件,则不会存储执行认证所需的文件。因此,在第三、第四以及第五实施例中提出的认证不能在激活的时候执行。当将激活存储的程序,并且图63中显示的文件(其显示存储该程序之前的文件)准备好下载时,存储的文件可以被用作构成程序的文件并且用于认证的文件可以被再次下载以用于认证。
然而,可以出现以下情况,其中,图63中显示的文件(其显示存储程序之前的文件)不能被下载。因此,可以存储用于在程序激活时执行的认证的认证所需的文件,即使它们不在“应用程序描述文件”中被描述。
尽管以上描述了本发明的一些典型实施例,但是,本领域的技术人员将容易地意识到,在实质上不脱离本发明的新的教义和优点的情况下,可以对典型实施例实施各种变形。因此,所有这些变形都应包含在本发明的范围内。
工业实用性
根据本发明的程序数据文件存储方法和认证程序执行方法适用于程序执行设备,例如数字电视接收器和移动电话,其下载并执行程序。
Claims (6)
1.一种程序数据文件存储方法,包括
第一步骤,用于根据与包含在第一传输流中的第一程序的数据文件的存储有关的信息,认证所述第一程序的数据文件并将其存储到广播接收器中;
第二步骤,用于接收与包含在第二传输流中的第二程序的数据文件的存储有关的信息;以及
当所述第二程序的数据文件中包含与在存储所述第一程序时已认证的数据文件不同的数据文件时执行下列步骤:
第三步骤,对于所述第二程序中包含的所述不同的数据文件的第一散列值,检验该第一散列值和第二散列值是否一致,其中该第二散列值存储在包含在所述第二程序中且与所述第二程序中包含的所述不同的数据文件相对应的散列文件中;
第四步骤,用于检验包含在所述第二程序中的证书文件是否有效;
第五步骤,用于检验解密值与第三散列值是否一致,所述解密值是通过使用所述第二程序的证书文件中包含的叶证书的公钥来解密包含在所述第二程序中的签名文件的签名值而获得的,而所述第三散列值是位于所述第二程序的顶层目录中的散列文件的散列值;以及
第六步骤,用于当判定为满足下列条件时,认证所述第二程序,并根据与所述第二程序的数据文件中的存储有关的信息来存储所述第二程序,所述条件为:在所述第三步骤中,检验结果为所述第一散列值和第二散列值一致;在所述第四步骤中,检验结果为所述证书文件有效;以及在所述第五步骤中,检验结果为对包含在所述第二程序中的签名文件的签名值进行解密而获得的解密值与位于所述第二程序的顶层目录中的散列文件中的第三散列值一致。
2.如权利要求1所述的程序数据文件存储方法,
其中,所述第二程序的数据文件中与存储所述第一程序时已认证的数据文件不同的数据文件,是用于更新在存储所述第一程序时已认证的数据文件的数据文件。
3.如权利要求1所述的程序数据文件存储方法,
其中,所述第二程序的数据文件中与存储所述第一程序时已认证的数据文件不同的数据文件,是与存储所述第一程序时已认证的数据文件不同的新数据文件。
4.如权利要求1所述的程序数据文件存储方法,
其中,所述第四步骤包括
第七步骤,用于检验两个根证书是否一致,所述两个根证书中的一个在所述第二程序中所包含的所述证书文件中,而另一个根证书在所述广播接收器中,以及
当所述两个根证书一致时,所述证书文件被判定为有效。
5.如权利要求4所述的程序数据文件存储方法,
其中,所述第四步骤还包括
第八步骤,用于检验包含在所述第二程序中的所述证书文件中的证书的有效期,以及
当满足下列两个条件时,所述证书文件被判定为有效,所述两个条件为:与所述第二程序相关联的证书文件中的根证书和所述广播接收器中的根证书一致;以及执行所述认证的日期时间在所述证书文件中的每个证书的有效期内。
6.一种程序存储设备,包括
第一存储单元,用于根据与包含在第一传输流中的第一程序的数据文件的存储有关的信息,认证并存储所述第一程序的数据文件;
存储信息接收单元,用于接收与包含在第二传输流中的第二程序的数据文件的存储有关的信息;以及
第一检验单元,当所述第二程序的数据文件中包含与在存储所述第一程序时已认证的数据文件不同的数据文件时,对于第二程序中包含的所述不同的数据文件的第一散列值,检验该第一散列值和第二散列值是否一致,其中该第二散列值存储在包含在所述第二程序中且与所述第二程序中包含的所述不同的数据文件相对应的散列文件中;
第二检验单元,用于检验包含在所述第二程序中的证书文件是否有效;
第三检验单元,用于检验解密值与第三散列值是否一致,所述解密值是通过使用所述第二程序的证书文件中包含的叶证书的公钥来解密包含在所述第二程序中的签名文件的签名值而获得的,而所述第三散列值是位于所述第二程序的顶层目录中的散列文件的散列值;以及
第二存储单元,用于判定为当满足下列条件时,认证所述第二程序,并根据与所述第二程序的数据文件的存储有关的信息来存储所述第二程序,所述条件为:通过所述第一检验单元,证实所述第一散列值和第二散列值一致;通过所述第二检验单元,证实所述证书文件有效;通过所述第三检验单元,证实对包含在所述第二程序中的签名文件的签名值进行解密而获得的解密值与位于所述第二程序的顶层目录中的散列文件的第三散列值一致。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP421616/2003 | 2003-12-18 | ||
JP2003421616 | 2003-12-18 | ||
US53066303P | 2003-12-19 | 2003-12-19 | |
US60/530,663 | 2003-12-19 | ||
JP2004111802 | 2004-04-06 | ||
JP111802/2004 | 2004-04-06 | ||
PCT/JP2004/019125 WO2005060255A1 (en) | 2003-12-18 | 2004-12-15 | Method for storing, authenticalting and executing an application program |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910173292A Division CN101668166A (zh) | 2003-12-18 | 2004-12-15 | 用于存储、认证以及执行应用程序的方法 |
CN200910173293A Division CN101668167A (zh) | 2003-12-18 | 2004-12-15 | 用于存储、认证以及执行应用程序的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1894968A CN1894968A (zh) | 2007-01-10 |
CN100562096C true CN100562096C (zh) | 2009-11-18 |
Family
ID=34704872
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800379402A Expired - Fee Related CN100562096C (zh) | 2003-12-18 | 2004-12-15 | 用于存储、认证以及执行应用程序的方法 |
CN200910173292A Pending CN101668166A (zh) | 2003-12-18 | 2004-12-15 | 用于存储、认证以及执行应用程序的方法 |
CN200910173293A Pending CN101668167A (zh) | 2003-12-18 | 2004-12-15 | 用于存储、认证以及执行应用程序的方法 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910173292A Pending CN101668166A (zh) | 2003-12-18 | 2004-12-15 | 用于存储、认证以及执行应用程序的方法 |
CN200910173293A Pending CN101668167A (zh) | 2003-12-18 | 2004-12-15 | 用于存储、认证以及执行应用程序的方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8086862B2 (zh) |
JP (1) | JP2007515092A (zh) |
KR (1) | KR101073170B1 (zh) |
CN (3) | CN100562096C (zh) |
CA (1) | CA2548546A1 (zh) |
WO (1) | WO2005060255A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103988210A (zh) * | 2011-12-21 | 2014-08-13 | 索尼公司 | 信息处理设备、服务器设备、信息处理方法、服务器处理方法及程序 |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001066986A (ja) * | 1999-08-26 | 2001-03-16 | Sony Corp | 送信装置および方法、受信装置および方法、通信システム、並びにプログラム格納媒体 |
US7912220B2 (en) * | 2001-02-05 | 2011-03-22 | Broadcom Corporation | Packetization of non-MPEG stream data in systems using advanced multi-stream POD interface |
US7478433B2 (en) * | 2003-06-19 | 2009-01-13 | Panasonic Corporation | Program execution system having authentication function |
JP2005056305A (ja) * | 2003-08-07 | 2005-03-03 | Matsushita Electric Ind Co Ltd | メモリ領域に分割領域を持つ情報記憶装置 |
CN1898956B (zh) * | 2003-12-18 | 2012-02-22 | 松下电器产业株式会社 | 验证和运行应用程序的方法 |
EP1594250A1 (en) * | 2004-05-03 | 2005-11-09 | Thomson Licensing | Distributed management of a certificate revocation list |
US8201191B2 (en) | 2004-06-30 | 2012-06-12 | Time Warner Cable Inc. | Apparatus and methods for implementation of network software interfaces |
CN101833969A (zh) * | 2004-07-22 | 2010-09-15 | 松下电器产业株式会社 | 重放装置和重放方法 |
US20080133564A1 (en) * | 2004-11-09 | 2008-06-05 | Thomson Licensing | Bonding Contents On Separate Storage Media |
CN101019106B (zh) | 2005-02-14 | 2010-04-14 | 松下电器产业株式会社 | 应用程序执行装置、管理方法和程序 |
US20060236375A1 (en) | 2005-04-15 | 2006-10-19 | Tarik Hammadou | Method and system for configurable security and surveillance systems |
US7649949B2 (en) * | 2005-07-28 | 2010-01-19 | Sony Corporation | Multipurpose television module |
US7593469B2 (en) * | 2005-07-28 | 2009-09-22 | Sony Corporation | OCAP engine module |
KR100720558B1 (ko) * | 2005-08-30 | 2007-05-22 | 엘지전자 주식회사 | 데이터 방송의 저장 및 실행 기능을 구비한 영상기기 및 그제어방법 |
US8508607B2 (en) * | 2005-09-06 | 2013-08-13 | Its-7 | Method and system for a programmable camera for configurable security and surveillance systems |
TWI281825B (en) * | 2005-10-18 | 2007-05-21 | Univ Nat Taiwan | Right management system and method for digital broadcasting |
US7661064B2 (en) * | 2006-03-06 | 2010-02-09 | Microsoft Corporation | Displaying text intraline diffing output |
CN101059759B (zh) * | 2006-04-21 | 2011-12-14 | 鸿富锦精密工业(深圳)有限公司 | 程序动态烧录的系统及方法 |
US10104432B2 (en) * | 2006-12-01 | 2018-10-16 | Time Warner Cable Enterprises Llc | Methods and apparatus for software provisioning of a network device |
JP4321597B2 (ja) * | 2007-01-31 | 2009-08-26 | コニカミノルタビジネステクノロジーズ株式会社 | 情報処理装置、認証システム、認証方法および認証プログラム |
US8458457B2 (en) * | 2007-02-02 | 2013-06-04 | Red Hat, Inc. | Method and system for certificate revocation list pre-compression encoding |
JP2008305035A (ja) | 2007-06-06 | 2008-12-18 | Hitachi Ltd | 装置、更新方法、および制御ソフト。 |
US20090038007A1 (en) * | 2007-07-31 | 2009-02-05 | Samsung Electronics Co., Ltd. | Method and apparatus for managing client revocation list |
US9424266B2 (en) * | 2007-10-01 | 2016-08-23 | Microsoft Technology Licensing, Llc | Efficient file hash identifier computation |
US8473466B1 (en) * | 2007-12-31 | 2013-06-25 | Teradata Us, Inc. | Systems and methods for storing data, such as storing data based on storage classes |
KR20100112131A (ko) * | 2008-01-21 | 2010-10-18 | 소니 주식회사 | 정보 처리 장치, 디스크, 및 정보 처리 방법, 및 프로그램 |
US8464347B2 (en) * | 2008-03-28 | 2013-06-11 | Panasonic Corporation | Software updating apparatus, software updating system, alteration verification method and alteration verification program |
US8600896B2 (en) * | 2008-03-28 | 2013-12-03 | Panasonic Corporation | Software updating apparatus, software updating system, invalidation method, and invalidation program |
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 | 秘匿通信方法 |
KR101205716B1 (ko) * | 2008-12-19 | 2012-11-28 | 한국전자통신연구원 | 프로그램 정보에 포함된 시그너처를 이용하여 방송 프로그램의 사용을 제어하는 방송 신호 수신 장치 및 그 방법 |
JP2010191665A (ja) * | 2009-02-18 | 2010-09-02 | Sony Corp | 情報処理装置、情報処理方法、およびプログラム、並びに記録媒体 |
US8195604B2 (en) * | 2009-02-25 | 2012-06-05 | Centurylink Intellectual Property Llc | System and method for verifying IMS databases on a mainframe computer |
CN101674301B (zh) * | 2009-05-31 | 2012-09-05 | 飞天诚信科技股份有限公司 | 一种存储证书的方法 |
WO2011013303A1 (ja) * | 2009-07-30 | 2011-02-03 | パナソニック株式会社 | 受信データ認証方法及びデジタル放送受信機 |
US8732848B2 (en) * | 2009-11-05 | 2014-05-20 | Kyocera Document Solutions Inc. | File-distribution apparatus and recording medium having file-distribution authorization program recorded therein |
US8402061B1 (en) | 2010-08-27 | 2013-03-19 | Amazon Technologies, Inc. | Tiered middleware framework for data storage |
US8856089B1 (en) | 2010-08-27 | 2014-10-07 | Amazon Technologies, Inc. | Sub-containment concurrency for hierarchical data containers |
US8510304B1 (en) | 2010-08-27 | 2013-08-13 | Amazon Technologies, Inc. | Transactionally consistent indexing for data blobs |
US8688666B1 (en) * | 2010-08-27 | 2014-04-01 | Amazon Technologies, Inc. | Multi-blob consistency for atomic data transactions |
US8510344B1 (en) | 2010-08-27 | 2013-08-13 | Amazon Technologies, Inc. | Optimistically consistent arbitrary data blob transactions |
US8621161B1 (en) | 2010-09-23 | 2013-12-31 | Amazon Technologies, Inc. | Moving data between data stores |
JP5800685B2 (ja) * | 2010-11-26 | 2015-10-28 | キヤノン株式会社 | 情報処理装置及びサーバ、制御方法、プログラム及び記録媒体 |
CN102662991A (zh) * | 2012-03-14 | 2012-09-12 | 北京邮电大学 | 一种基于移动存储设备的文件级同步方法 |
CN102820975B (zh) * | 2012-04-17 | 2016-04-27 | 国家广播电影电视总局广播科学研究院 | 数据更新方法、推送装置及终端 |
US20130290734A1 (en) * | 2012-04-26 | 2013-10-31 | Appsense Limited | Systems and methods for caching security information |
US20130290733A1 (en) * | 2012-04-26 | 2013-10-31 | Appsense Limited | Systems and methods for caching security information |
US10114939B1 (en) * | 2014-09-22 | 2018-10-30 | Symantec Corporation | Systems and methods for secure communications between devices |
CN106295331A (zh) * | 2016-08-22 | 2017-01-04 | 浪潮电子信息产业股份有限公司 | 一种主动防御及异常上报系统的设计方法 |
GB2553295B (en) * | 2016-08-25 | 2020-12-16 | Samsung Electronics Co Ltd | Managing communications between a broadcast receiver and a security module |
JP6612805B2 (ja) * | 2017-03-24 | 2019-11-27 | マクセル株式会社 | 放送受信装置及びキャッシュ制御方法 |
US20190196805A1 (en) * | 2017-12-21 | 2019-06-27 | Apple Inc. | Controlled rollout of updates for applications installed on client devices |
KR102607122B1 (ko) | 2018-07-25 | 2023-11-28 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
US20220277068A1 (en) * | 2019-08-15 | 2022-09-01 | Felica Networks, Inc. | Information processing device, information processing method, program, and information processing system |
CN115659319A (zh) * | 2022-12-15 | 2023-01-31 | 成都数默科技有限公司 | 基于JavaAgent的Java应用防篡改方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US114144A (en) * | 1871-04-25 | Improvement in attachmentsx g gas-service pipe for automatically cutting off the gas in | ||
US217369A (en) * | 1879-07-08 | Improvement in horse hay-rakes | ||
TW313643B (zh) * | 1994-12-14 | 1997-08-21 | At & T Corp | |
US5625693A (en) | 1995-07-07 | 1997-04-29 | Thomson Consumer Electronics, Inc. | Apparatus and method for authenticating transmitting applications in an interactive TV system |
US6263348B1 (en) * | 1998-07-01 | 2001-07-17 | Serena Software International, Inc. | Method and apparatus for identifying the existence of differences between two files |
US6324555B1 (en) * | 1998-08-31 | 2001-11-27 | Adobe Systems Incorporated | Comparing contents of electronic documents |
US6952823B2 (en) * | 1998-09-01 | 2005-10-04 | Pkware, Inc. | Software patch generator using compression techniques |
JP2000259417A (ja) | 1999-03-12 | 2000-09-22 | Sony Corp | データ処理装置、データ処理方法及びプログラム提供媒体 |
WO2001031442A2 (en) * | 1999-10-22 | 2001-05-03 | General Instrument Corporation | Management of volatile and non-volatile memory resources in digital communications terminals |
US6832323B1 (en) | 1999-10-22 | 2004-12-14 | General Instrument Corporation | Object and feature authorization for digital communication terminals |
JP4724420B2 (ja) * | 2001-04-25 | 2011-07-13 | ウィンク・コミュニケイションズ,インコーポレイテッド | 動的対話型アプリケーションの同期式更新 |
JP4145118B2 (ja) | 2001-11-26 | 2008-09-03 | 松下電器産業株式会社 | アプリケーション認証システム |
US20030217369A1 (en) | 2002-05-17 | 2003-11-20 | Heredia Edwin Arturo | Flexible application information formulation |
FR2845493A1 (fr) * | 2002-10-04 | 2004-04-09 | Canal Plus Technologies | Logiciel embarque et procede d'authentification de celui-ci |
US20050004954A1 (en) * | 2003-07-01 | 2005-01-06 | Hand Held Products, Inc. | Systems and methods for expedited data transfer in a communication system using hash segmentation |
WO2005008385A2 (en) * | 2003-07-07 | 2005-01-27 | Cryptography Research, Inc. | Reprogrammable security for controlling piracy and enabling interactive content |
WO2005029842A1 (en) * | 2003-09-17 | 2005-03-31 | Matsushita Electric Industrial Co., Ltd. | Application execution device, application execution method, integrated circuit, and computer-readable program |
JP4458832B2 (ja) * | 2003-12-05 | 2010-04-28 | キヤノン株式会社 | 番組抽出装置およびその制御方法 |
-
2004
- 2004-12-15 CN CNB2004800379402A patent/CN100562096C/zh not_active Expired - Fee Related
- 2004-12-15 WO PCT/JP2004/019125 patent/WO2005060255A1/en active Application Filing
- 2004-12-15 CN CN200910173292A patent/CN101668166A/zh active Pending
- 2004-12-15 CA CA002548546A patent/CA2548546A1/en not_active Abandoned
- 2004-12-15 JP JP2006520486A patent/JP2007515092A/ja not_active Withdrawn
- 2004-12-15 CN CN200910173293A patent/CN101668167A/zh active Pending
- 2004-12-16 US US11/012,300 patent/US8086862B2/en not_active Expired - Fee Related
-
2006
- 2006-06-09 KR KR1020067011314A patent/KR101073170B1/ko active IP Right Grant
Non-Patent Citations (2)
Title |
---|
OpenCable Application Platform Specification, OCAP 1.0profile. CABLELABS.Retrieved from the Internet: URL:http://web.archive.org/web/*. 2003 |
OpenCable Application Platform Specification, OCAP 1.0profile. CABLELABS.Retrieved from the Internet: URL:http://web.archive.org/web/*. 2003 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103988210A (zh) * | 2011-12-21 | 2014-08-13 | 索尼公司 | 信息处理设备、服务器设备、信息处理方法、服务器处理方法及程序 |
CN103988210B (zh) * | 2011-12-21 | 2018-04-03 | 索尼公司 | 信息处理设备、服务器设备、信息处理方法、以及服务器处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CA2548546A1 (en) | 2005-06-30 |
US8086862B2 (en) | 2011-12-27 |
CN101668167A (zh) | 2010-03-10 |
KR20060118540A (ko) | 2006-11-23 |
JP2007515092A (ja) | 2007-06-07 |
CN101668166A (zh) | 2010-03-10 |
CN1894968A (zh) | 2007-01-10 |
KR101073170B1 (ko) | 2011-10-12 |
WO2005060255A1 (en) | 2005-06-30 |
US20050138401A1 (en) | 2005-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100562096C (zh) | 用于存储、认证以及执行应用程序的方法 | |
CN100583987C (zh) | 用于认证和执行应用程序的方法 | |
CN1898956B (zh) | 验证和运行应用程序的方法 | |
JP4873550B2 (ja) | デジタルデータストリーム及びその形成方法並びにその形成装置 | |
JP5961164B2 (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: 20091118 Termination date: 20201215 |