CA2361757A1 - Authorization and access control of software object residing in set-top terminals - Google Patents
Authorization and access control of software object residing in set-top terminals Download PDFInfo
- Publication number
- CA2361757A1 CA2361757A1 CA002361757A CA2361757A CA2361757A1 CA 2361757 A1 CA2361757 A1 CA 2361757A1 CA 002361757 A CA002361757 A CA 002361757A CA 2361757 A CA2361757 A CA 2361757A CA 2361757 A1 CA2361757 A1 CA 2361757A1
- Authority
- CA
- Canada
- Prior art keywords
- top terminal
- software object
- software
- fingerprint
- authorization
- 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.)
- Abandoned
Links
- 238000013475 authorization Methods 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 claims abstract description 50
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 238000013459 approach Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000004224 protection Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000003449 preventive effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/085—Payment architectures involving remote charge determination or related payment systems
Abstract
A method for providing authentication, authorization and access control of software object residing in digital set-top terminals creates a fingerprint ("signature") for each software object, associates each fingerprint with a service tier, encodes each association and creates an association table containing the information and downloads the association table to the digital set-top terminal. In addition, the method utilizes an entitlement management message, sent to each set-top terminal, indicating what software objects the set-top terminal may utilize, and provides a system routine at the digital set-top terminal that is invoked whenever software object is about to be utilized.
The entitlement management message contains the access rights given to a particular set-top terminal, which must match the software object's access requirements for the software object to be utilized. The entitlement management message may also contain set-top terminal resource control access rights that a given software object may utilize. When the software object requires the utilization of a set-top resource, a second conditional access routine may be invoked to determine the authorization rights for using the resource. Measures to protect such means are also described. As such the method provides multiple system cable operators (MSO's) with additional capabilities to maintain secure control of features and applications running on their networks and within the associated set-top terminals.
The entitlement management message contains the access rights given to a particular set-top terminal, which must match the software object's access requirements for the software object to be utilized. The entitlement management message may also contain set-top terminal resource control access rights that a given software object may utilize. When the software object requires the utilization of a set-top resource, a second conditional access routine may be invoked to determine the authorization rights for using the resource. Measures to protect such means are also described. As such the method provides multiple system cable operators (MSO's) with additional capabilities to maintain secure control of features and applications running on their networks and within the associated set-top terminals.
Description
AUTHORIZATION AND ACCESS CONTROL OF
SOFTWARE OBJECT RESIDING IN SET-TOP TERMINALS
Field of the Invention The present invention relates generally to a method for providing authorization, authentication and access control of "executable code", or, "software object", which includes but is not limited to application code, operating systems and associated components (e.g. dynamic link libraries - DLL's), BIOS, Java Virtual Machine (JVM), Java applications and applets, etc., residing in set-top terminals.
Background of the Invention As digital set-top terminals (the General Instrument DCT5000+; for example), incorporate the capability to download different operating systems, DLL's, JVM's (Windows CE included), multiple system cable operators (MSO's) need a mechanism that will allow them to maintain control of the features and applications that run within these set-top terminals. More specifically, MSO's want the ability to access control services and associated usage of software objects in set-top terminals.
3o One known attempt to address the authenticity of code objects for the PC
environment is Microsoft's "Authenticode" capability. This product enables software vendors to acquire a digital signature for published executable code.
Authenticode provides a digital signature with only one signer; the code is signed with Microsoft's private key (which is not published) and is verified with Microsoft's public key, which is bundled into the Authenticode verification code in the operating system. However, while Authenticode provides digital signature protection for executable code, it does not provide any means of determining access requirements for the executable code for access control purposes (and revenue generation purposes), and it is applicable only to executable code.
A second known attempt to address control of Java applets is "Java Security" which is intended to prevent applets from inspecting or changing files on a client system and from using network connections to circumvent file protections or data privacy measures. However, as is the case with Authenticode, Java Security does not offer authentication of any software object unless it is Java based, nor does it offer the association with access requirements for access control 1 o and revenue generation purposes.
Although each of the products described above attempt to address protection and control of software object in a PC environment against unauthorized utilization by a given set-top terminal, they do not fully address the issues associated with authorization, authentication and access control, and thus, 15 do not provide an optimal solution that meets MSO requirements.
Summary of the Invention As set-top terminals assume a computing environment for entertainment purposes by utilizing downloadable software objects such as operating systems, 20 libraries, Java Virtual Machines, applications, applets, etc., it becomes extremely critical to protect and control the software object to guard against unauthorized utilization by a given set-top terminal. In accordance with the proposed concept, not only does the identity of each software object require authentication but also, its utilization has to be subject to MSO control via authorization permissions 2s along with control of which set-top terminal resources a given software object may use. These measures complement those of object validation and verification and ensure that software objects that have not been authenticated are not utilized.
To the extent that these measures are utilized, the set-top terminal is no longer subject to problems associated with objects that have failed to follow the security 3o design rules, or worse yet, those which may be contaminated with a virus that is meant to cause harm to the MSO's network and associated set-top terminals.
In a particular embodiment of the invention, a method for providing authorization and access control of software object residing in digital set-top terminals creates a fingerprint (signature) for each software object, associates each fingerprint with a service tier, encodes each association and creates an association table containing the information generated by the encoding step (note, this table s may consist of one or more association entries). In addition, the method sends the association table to the digital set-top terminal and also transmits a message indicating what software objects the set-top terminal may utilize, to the digital set-top terminal. Finally the proposed method provides a system routine at the digital set-top terminal that is invoked prior to commencing download ofthe object, once to the software object has been downloaded, or optionally whenever the software object is about to be utilized (or "invoked" if it is executable code). The system routine uses the association table to validate the authenticity of the object (authenticate it) and to determine if the software object about to be utilized is associated with a corresponding service tier which the set-top has been authorized 1s for, if not the software object download (or utilization) is not allowed.
If however the software object about to be downloaded (or utilized) is associated with a service tier for which the set-top has been authorized, the object download (or utilization) is allowed. In accordance with another aspect of the invention.
the software object has been verified and validated prior to the recited steps.
2o In accordance with still another aspect of the invention, the transmitted message further indicates which set-top terminal resources the software object or the set-top as a whole is authorized to utilize.
Yet a further advantage provided by another feature of the present invention is that if the software object about to be invoked contains the correct 2s fingerprint and authorization rights match the authorization requirements associated with the software object, the method further determines if the use of set-top terminal resources has been authorized. In one embodiment, if a determination is made that the use of a set-top terminal resource has been requested, the method further provides a second system routine at the digital set-3o top terminal, and the second system routine uses the transmitted messages to determine if the software object may utilize the requested set-top terminal resource. In the case where the resource is authorized as in Impulse-authorizable resource (by associating it with an impulse tier in the message), the user is allowed to request an impulse (immediate) authorization of this resource. This prevents the subscriber (user) from having to call the MSO's Customer Service Center for such authorization.
A further advantageous feature of the invention is that if the software object about to be utilized does not contain the correct fingerprint, the software object is not executed.
Brief Description of the Drawi~s to Figure 1 is a simplified block diagram illustrating the logical paths of a cable system relevant to the description of the invention.
Figure 2 is a simplified flow chart illustrating the steps performed by a multiple system cable operator (MSO) to provide authorization and access control of software object in set-top terminals.
Figure 3 is a simplified flowchart illustrating the steps performed by a Conditional Access (CA) routine, at a set-top terminal, upon invoking software object.
Figure 4 is a simplified flowchart illustrating the additional steps performed by a second Conditional Access (CA) routine in another embodiment of the invention.
SOFTWARE OBJECT RESIDING IN SET-TOP TERMINALS
Field of the Invention The present invention relates generally to a method for providing authorization, authentication and access control of "executable code", or, "software object", which includes but is not limited to application code, operating systems and associated components (e.g. dynamic link libraries - DLL's), BIOS, Java Virtual Machine (JVM), Java applications and applets, etc., residing in set-top terminals.
Background of the Invention As digital set-top terminals (the General Instrument DCT5000+; for example), incorporate the capability to download different operating systems, DLL's, JVM's (Windows CE included), multiple system cable operators (MSO's) need a mechanism that will allow them to maintain control of the features and applications that run within these set-top terminals. More specifically, MSO's want the ability to access control services and associated usage of software objects in set-top terminals.
3o One known attempt to address the authenticity of code objects for the PC
environment is Microsoft's "Authenticode" capability. This product enables software vendors to acquire a digital signature for published executable code.
Authenticode provides a digital signature with only one signer; the code is signed with Microsoft's private key (which is not published) and is verified with Microsoft's public key, which is bundled into the Authenticode verification code in the operating system. However, while Authenticode provides digital signature protection for executable code, it does not provide any means of determining access requirements for the executable code for access control purposes (and revenue generation purposes), and it is applicable only to executable code.
A second known attempt to address control of Java applets is "Java Security" which is intended to prevent applets from inspecting or changing files on a client system and from using network connections to circumvent file protections or data privacy measures. However, as is the case with Authenticode, Java Security does not offer authentication of any software object unless it is Java based, nor does it offer the association with access requirements for access control 1 o and revenue generation purposes.
Although each of the products described above attempt to address protection and control of software object in a PC environment against unauthorized utilization by a given set-top terminal, they do not fully address the issues associated with authorization, authentication and access control, and thus, 15 do not provide an optimal solution that meets MSO requirements.
Summary of the Invention As set-top terminals assume a computing environment for entertainment purposes by utilizing downloadable software objects such as operating systems, 20 libraries, Java Virtual Machines, applications, applets, etc., it becomes extremely critical to protect and control the software object to guard against unauthorized utilization by a given set-top terminal. In accordance with the proposed concept, not only does the identity of each software object require authentication but also, its utilization has to be subject to MSO control via authorization permissions 2s along with control of which set-top terminal resources a given software object may use. These measures complement those of object validation and verification and ensure that software objects that have not been authenticated are not utilized.
To the extent that these measures are utilized, the set-top terminal is no longer subject to problems associated with objects that have failed to follow the security 3o design rules, or worse yet, those which may be contaminated with a virus that is meant to cause harm to the MSO's network and associated set-top terminals.
In a particular embodiment of the invention, a method for providing authorization and access control of software object residing in digital set-top terminals creates a fingerprint (signature) for each software object, associates each fingerprint with a service tier, encodes each association and creates an association table containing the information generated by the encoding step (note, this table s may consist of one or more association entries). In addition, the method sends the association table to the digital set-top terminal and also transmits a message indicating what software objects the set-top terminal may utilize, to the digital set-top terminal. Finally the proposed method provides a system routine at the digital set-top terminal that is invoked prior to commencing download ofthe object, once to the software object has been downloaded, or optionally whenever the software object is about to be utilized (or "invoked" if it is executable code). The system routine uses the association table to validate the authenticity of the object (authenticate it) and to determine if the software object about to be utilized is associated with a corresponding service tier which the set-top has been authorized 1s for, if not the software object download (or utilization) is not allowed.
If however the software object about to be downloaded (or utilized) is associated with a service tier for which the set-top has been authorized, the object download (or utilization) is allowed. In accordance with another aspect of the invention.
the software object has been verified and validated prior to the recited steps.
2o In accordance with still another aspect of the invention, the transmitted message further indicates which set-top terminal resources the software object or the set-top as a whole is authorized to utilize.
Yet a further advantage provided by another feature of the present invention is that if the software object about to be invoked contains the correct 2s fingerprint and authorization rights match the authorization requirements associated with the software object, the method further determines if the use of set-top terminal resources has been authorized. In one embodiment, if a determination is made that the use of a set-top terminal resource has been requested, the method further provides a second system routine at the digital set-3o top terminal, and the second system routine uses the transmitted messages to determine if the software object may utilize the requested set-top terminal resource. In the case where the resource is authorized as in Impulse-authorizable resource (by associating it with an impulse tier in the message), the user is allowed to request an impulse (immediate) authorization of this resource. This prevents the subscriber (user) from having to call the MSO's Customer Service Center for such authorization.
A further advantageous feature of the invention is that if the software object about to be utilized does not contain the correct fingerprint, the software object is not executed.
Brief Description of the Drawi~s to Figure 1 is a simplified block diagram illustrating the logical paths of a cable system relevant to the description of the invention.
Figure 2 is a simplified flow chart illustrating the steps performed by a multiple system cable operator (MSO) to provide authorization and access control of software object in set-top terminals.
Figure 3 is a simplified flowchart illustrating the steps performed by a Conditional Access (CA) routine, at a set-top terminal, upon invoking software object.
Figure 4 is a simplified flowchart illustrating the additional steps performed by a second Conditional Access (CA) routine in another embodiment of the invention.
Detailed Description of the Invention Multiple system cable operators need to extend access control capabilities, i.e., to control the ability to access and use software objects in set-top terminals capable of downloading such objects and later utilizing these objects if their download and use is authorized and the objects pass authentication checks.
Access control of a software object, in accordance with one aspect of the invention, consists of three parts. The first defines the access requirements for a particular service (and associated objects), and the second defines the authorization rights for a particular set-top terminal to access these services (and 1o associated objects). The third provides additional identification information to enable the set-top terminal to authenticate the objects prior to their utilization.
The access requirements may be considered as the lock, and the authorization rights may be considered as the key. When the authorization rights match the access rights (and no parental control is required), the set-top terminal is allowed Is to access the service (and associated objects).
There are two types of messages that facilitate the access control function.
First, the Entitlement Control Message (ECM) delivers the Entitlement Control Structure (ECS) (explained in further detail below) which contains the Entitlement Control Record (ECR) (also explained in detail below) for the associated objects 2o and lists the entitlement information required for program viewing or objects) use. The second message, the Entitlement Management Message (EMM) delivers the entitlements purchased by or granted to the consumer. The functions of each of these messages are described in greater detail below.
The following provides an outline of how software objects are authorized 2s to run (post authentication). All software objects that are not authorized (and authenticated) in this manner will not be usable by the set-top terminal. In the event that all preventive measures intended to keep unauthorized software objects from residing within the set-top terminal fail, this approach aids in detecting such applications and in preventing their utilization or execution.
3o In the digital set-top terminal, the utilization of all software objects (including applications associated with a given service) must be authorized by the access control system. The software object is specified to consist of downloadable code or data that may be utilized in the set-top terminal at either the subscriber's or the MSO's will.
First, as illustrated in the block diagram of Figure l, an Object Authentication Signature Device 300 (OASD) utilizes either a National Access Controller 310 (NAC) (in the national control scenario) or a Local Access Controller 320 (LAC) (in the local control scenario) to interact with a number of set-top terminals 350a, 350b, etc. The details of the interactions of each of these devices are described in detail below in connection with the detailed description of the invention.
1 o Referring to the flow chart of Figure 2, in step 10, a "fingerprint"; i.
e., a digital signature, is created for each software object (e.g., applications, OS's, DLL's, JVM's, Java applications and applets, etc.). The fingerprint (signature) of the software object serves as a unique Entitlement Control Record (ECR). For example, each software object that the MSO wants to place in this category, i.e., I5 under access control, is associated with a "fingerprint". Note that the fingerprint might simply be a seed for a key that could be encrypted by known means, or, it could be a value that is derived from an initial value through processing it as an image or otherwise (i.e., the fingerprint may include object size, checksum, etc.).
In particular, the fingerprint (a digital signature) may be generated by a 2o software/HW object authentication/signature device (DASD). This is performed after the software object is verified and validated (either through inspection, testing, etc. - the details of which are outside the scope of this application). The intent of the software verification and validation is to ensure that the design and implementation of the object follows a pre-specified set of rules and requirements 25 established for security purposes. This may be done under contract to the MSO
(details of which are also outside the scope of this application). The signature may be based on a unique (which may or may not be MSO-specific) object identifier and a cryptographic CRC of the object and serves as a form of certification that is unique to the software object itself (several conventional 3o signing techniques may be employed, the details of which however are outside the scope of this application). If several software objects are associated with a service, each may be associated with a signature, and then an overall signature WO 00/50978 PCT/iJS00/02855 may be provided for the entire suite, whenever authentication of this higher level association is desired.
Continuing to step 20 of Figure 2, the fingerprint of each software object is then associated with a. service tier. Both satellite and cable access control systems utilize the concept of "Bering". For audiovisual services, a tier is a logical grouping of programs or services (the degenerate case being a single program or service). The grouping is created to facilitate control of the user's (subscriber's) access to that group of services based upon the MSO's subscriber profile (i.e., which services are subscribed to by a given consumer). The access rights of the to user would demand a great deal of memory in the set-top terminal if the access rights were stored as separate flags for each and every program or object available. The tiers are typically represented as single binary digits (bits) that can be defined and redefined dynamically. Since each tier (or group) is represented as a single bit and the tiers are defined to be relevant to the service offering at a 15 given point in time, they offer the most compact representation possible for the user's access rights (compactness is very important, since the access rights must be kept in secure memory. which is limited, and must be transmitted frequently, and as such bandwidth requirements are minimized). One or more objects may be associated with a given service/application and assigned the corresponding tiers.
2o Additionally, while such authorization rights may be stored on a server at the other end of the network (as opposed to at the set-top terminal), where a set-top terminal may query its rights by communicating with the server in real time, it is typically advantageous to distribute this information within the set-top terminals for security, robustness, performance, as well as minimizing single point of failure 25 effects. Once the event (or "program") terminates, or once the objects) is no longer offered as part of a particular service, the tier definition will be updated to reflect this change. The authorization tiers for which the subscriber has been authorized are conveyed in a corresponding Entitlement Management Message (EMM) (described in further detail below in the description of Figure l, step 50).
3o In a preferred embodiment of the invention, there are two types of tiers, the first, a Subscription tier which is associated with a service (and corresponding objects) that continues over a duration of time and which is purchased ahead of actual use. The second, an Impulse Pay Per Use tier (IPPU, analogous to the Impulse Pay Per View for video programming), allows for an impulse purchase of an object or set of objects associated with a given service/application and may have a time duration associated with it. It will be appreciated by those skilled in the art that other usages, combination or conditional, can be based on these two tiers.
Referring once again to step 20 in Figure 2, more specifically, the fingerprint to service tier association may be assigned by the MSO's access controller (Access Controller (AC) for National Control or Digital Access 1 o Controller (DAC) for local control) via the addition of a CA (conditional access) subtending signature functionality specific to objects associated with MSO's network. This function can be facilitated by OASD when it is acting as a subtending device to the MSO's AC or the DAC. As previously mentioned, DASD functionality may be embodied in an independent device (software and 15 hardware), which in turn would communicate with the AC or the DAC to obtain the access requirement assignments (corresponding tiers for that object) The additional MSO specific signature takes the signature of a previously signed object (i.e., the fingerprint or "digital signature" generated by the OASD), and adds to it a unique object identifier (if an MSO-specific object identifier is 2o required). It also adds any one or more entitlement tier bits. which define the access requirements associated with the corresponding software object, and an envelope signature for the entire structure, referred to hereafter as the entitlement control structure (ECS). This unique and secret encoding of the ECS is shown in step 3 0.
2s The ECS may contain the access requirements for the object and associated resources or it may be partitioned into two ECS's, one for the access requirements for the object and another for the resources. The latter approach is typically a more appropriate approach ifthe resource authorization is independent of a given object and is being performed on a set-top wide basis. However, either 3o approach may be utilized (i.e., a combined ECS or two separate ECS's) and has no impact on how the authorization steps are performed.
The cost and free-use period. along with global set-top terminal resource _g_ restrictions, for example. may be assigned by this device as specified by the AC or the DAC (which in turn may be specified via the Billing System interface).
These parameters are also conveyed as part of the ECS within the ECM.
The functionality of the OASD and the MSO's signing and creation of the ECS (steps 10-30) may be combined into a single device, subtending to the AC
or the DAC, as the preferred embodiment since it is the simpler case. Either way, the physical product partitioning shouldn't alter the functional steps that need to be performed (it may optimize these steps however).
Continuing to step 40 of Figure 2, at the MSO, the collection of unique 1 o ECS's form an association table, that is made available to a national or local download function (Downloader) associated with the AC or the DAC, respectively, and is downloaded to the digital set-top terminal (either in its entirety, or one entry at a time in an appropriate message, when downloading).
Whenever the Downloader downloads protected software objects it provides the is digital set-top terminal with the secret "software object fingerprint to service tier association" (ECS), which is preferably encrypted by known means before transmission. The Downloader downloads the software object in a carousel fashion while the ECS in the associated ECM's may be sent independently. It will be appreciated by those skilled in the art that this independence provides an 2o additional security measure.
Applicants note that in an alternative embodiment of the invention, if authorization is not required, the ECS may then effectively consist of the ECR
only (i.e., step 20 of Figure 2 is not performed). The ECS in such an embodiment is piggybacked onto the downloaded object. The set-top terminal examines the 25 ECS to perform the authentication check. The set-top download function downloads the first N bytes of the object (as indicated by the header information accompanying the downloaded object) and ignores the trailing bytes that comprise the ECS. However, the preferred embodiment described above is preferable to this embodiment for two reasons: first, the coupling of the ECS to the object 3o removes a desirable security measure, and second, this embodiment introduces inconsistent processing between an ECS which contains only the ECR and that which contains the ECR and the service tier association. The preferred embodiment however does not restrict how the ECS may be conveyed, nor does it restrict the ECS to the type of message that specifies it (EMM or some other control message).
Again returning to the description of step 40 of Figure 2, the Downloader may be part of the AC or the DAC since it can be viewed as a software task, or alternatively, it can be separate from the DAC, i.e., a software task running on its own HW platform.
The MSO, using the AC or the DAC (both are HW and SW devices), via parameter settings from the billing system and based on the customer profile, then to controls the set-top terminal access to a specific service and associated object or set of objects by using the previously mentioned Entitlement Management Messages (EMM's) specific to that set-top terminal. These messages also establish whether the set-top terminal is allowed to utilize that software object and may also specify which set-top terminal resources (e.g., communication ports.
15 printer port, keyboard, etc.) the object is allowed to use (when subscriber level control is desired). Additionally, the AC or the DAC may selectively assign an Impulse authorization tier (and convey the setting via the same message) to facilitate immediate authorization of the requested resource when the subscriber explicitly requests that the resource be authorized. In the case where a resource is 2o authorized as in Impulse-authorizable resource (by associating it with an impulse tier in the message), the user may request an impulse (i.e., immediate) authorization of this resource, thereby preventing the subscriber (user) from needing to call the MSO for such authorization.
Finally, in step 50, The AC or the DAC sends the EMMs to each and every 2s set-top terminal to enable it to download and utilize the objects) (more specifically, when resource control is desired for a single object globally across all set-tops, the permission list for the resource control may reside in the ECS;
otherwise the permissions (access rights) are conveyed to each set-top individually in an EMM). The Access Controller (or DAC) then sends the entitlement to the 3o set-top terminal that is authorized to receive this service and associated objects (again, these entitlements are assigned in the previously described EMM's).
A system routine is created and provided in the set-top terminal, and is invoked whenever the set-top terminal is to check the authorization rights and authenticity of the software objects associated with the requested service.
This system routine may be part of the core code (BIOS) in the set-top terminal. It may also be provided within the operating system (OS), or middleware. When downloading the operating system, or the JVM for example, the resident routine is invoked to check authorization rights prior to download and if so authenticate these objects post download. A second authorization stage may also be present (for some objects) to check if utilization/launch of these objects is allowed.
Once the operating system is loaded, any subsequent object utilization that involves the to operating system or the JVM invokes the equivalent authorization and authentication routine in the OS.
More specifically, the set-top terminal authenticates and authorizes a downloaded object using the EMM's and ECM's associated with a given set-top terminal and object respectively. The set-top may check the authorization rights 1 s against the authorization requirements of the software object prior to downloading the object, upon downloading the object, or whenever the object is about to be utilized. . Subsequent authorization checks are optional. Figure 3 is a flowchart illustrating the steps performed at a set-top terminal upon invoking software object.
2o In Figure 3, step 100 is the download request. Accordingly, in step 110, the BIOS, operating system and/or the Java Virtual Machine (JVM), when requiring the download or the use of a software object, calls) the set-top CA
routine for an authentication and authorization check. The use or launch of the object is allowed only if the check passes. The CA check is facilitated by the 2s secure processor. In addition, a lifetime feature may be implemented;
wherein the secure processor records the object lifetime and checks it for expiration, starting for example with first use (i.e., the first time the secure processor was engaged in authenticating and authorizing the object). When expired. it may interrupt the operating system or JVM to disable/delete the object(s). If any of the checks fail.
3o the set-top terminal may log the results to report back to the access controller.
Again, this feature is a combination of software and hardware functions.
More specifically, returning to Figure 3, in step 120 a determination is made as to whether or not there is a need to check authorization rights. If not, as shown in Figure 3, in step 130, the software object may be downloaded to the set-top terminal prior to any authorization. However, if so, in step 200 the Conditional Access (CA) routine, before downloading the object, may determine s ifthe set-top terminal is authorized to download the object. This step is optional and may depend upon the nature ofthe software object (i.e., some objects are necessary and may not require this prior authorization). If the step is performed, and if a determination is made that the set-top terminal is authorized to download the object, the process continues to step 210. If however. a determination is made to in step 200 that the set-top terminal is not authorized to download the object, the process continues to step 150, where the object is not utilized.
In Step 210 the software object is downloaded to the set-top terminal and the process continues to step 150 for authentication, described in further detail below.
I s Alternatively, again if a determination was made in step 120 that there was no need to check authorization rights, the software object is downloaded (step 130) and as shown in step 140, the Conditional Access (CA) routine determines if the set-top terminal is authorized to use/launch the software object. Based on the determination, the software object may or may not be utilized. All unauthorized 2o software objects will not have a corresponding tier association The encoded "fingerprint of the software object to tier value" association (ECS) of the software object (or "application" in this example) is known only to the MSO and by definition is unique to each software object and is protected. Accordingly, if a determination is made in step 140 that the set-top terminal has not been authorized 25 to use/launch the software object, the process continues to step 140, where the software object is not downloaded (or utilized). If the tier corresponding to the software object has been authorized however, the process continues to step 150.
Continuing to step 150, the CA routine, again with the assistance of the secure processor, checks to see if the software object has the corresponding 3o fingerprint association. Depending on the result, the software object may or may not be utilized. For example, all unauthorized software objects will not have a corresponding fingerprint (since an unauthorized software object cannot ''guess"
the corresponding ECR value). In that case, the process continues to step 160, where the software object is not used. The protected fingerprint of the software object is known only to the MSO and by definition is unique to each software object. If the software object has the corresponding fingerprint association however, the process continues to step 170, where the set-top terminal authorizes and authenticates the downloaded object.
It will be appreciated by those skilled in the art that each of the authorization steps illustrated in steps 140 and 200 of Figure 3 are optional and are not necessarily performed. In addition, although the authorization check 1 o performed in step 200 continues to step 210 and then to the authentication of step 150, additional subsequent checks could be performed by the CA routine and are well within the scope of the invention.
In addition, in a second embodiment of the invention, if the software object requires the utilization of a given set-top terminal resource, a similar is checking process to determine if the software object has permission to use the required resources may occur. These permissions (authorization rights) may be associated with a given object for all set-top terminals or may be associated with a given object for a specific set-top terminal. The authorization rights to use the set-top terminal resources are conveyed in a similar manner, via EMM's.
2o As noted above, the authorization rights may also be designated as Impulse tiers to indicate that the subscriber may request the immediate authorization of the Impulse authorizable resource. The set-top in turn checks the request in a similar manner and if the Impulse tier is set. it registers the authorization as having taken place (for possible subsequent billing purposes).
2s Each of these options is shown in Figure 4 where in step 122, a determination is made as to whether a set-top terminal resource is requested by the software object (if software object has requested resource utilization via the OS).
If step 122 determines that a valid set-top terminal resource has not been requested, no further action is taken.
3o If however step122 determines that a valid set-top terminal resource has been requested, the process continues to step 124 in which the OS invokes the driver associated with the requested set-top terminal resource. Continuing to step 126, the associated driver (upon the first use only of the resource) invokes a "second Conditional Access routine" (which may be part of BIOS or the operating system) to determine if the requesting software object is allowed to use this resource. More specifically, the driver routine calls the second access control s routine which, in conjunction with the secure processor, determines whether the software object may utilize the requested resource (i.e., determines if it is authorized for such use). 'The resource usage authorization rights are stored in secure memory as well. Specifically, in step 128 it is determined if the EMM
provided permission to use the requested resource. If the EMM did not provide to such permission, the process disallows the use ofthe requested resource (step 130) (i.e., the control goes back to the driver and then the OS with a negative result, indicating that use of the requested resource is not allowed). However, if the EMM provided permission, the utilization of the requested set-top resource is allowed in step 132.
t s In addition, in the case where the permissions are set as Impulse tiers (requiring an explicit request from the user for the authorization to take effect), the routine grants the authorization and registers the Impulse request within the secure processor (for possible subsequent billing purposes via a report back mechanism to the AC or the DAC).
2o In a still further aspect of a preferred embodiment of the invention, the driver associated with a requested resource may invoke the second CA routine only upon the first use of the resource by the software object, wherein subsequent invocations of the second conditional access routine are optional.
Finally, it will be appreciated by those skilled in the art that various 2s methods may be implemented in order to detect any tampering to circumvent the processes described above. These methods may include periodic background checks of the software object memory, fingerprint (which may include memory size, checksum, etc.), including the set-top terminal core BIOS, Operating System, etc., against pre-calculated and protected values for each. Specifically, for 3o example, the set-top terminal's secure processor in conjunction with the user processor can perform a memory checksum on certain critical components of the software. This may be done whenever the user processor and the secure processor have sufficient idle time to perform this function in order to minimize adverse performance effects on other functions. It may also be invoked at the operator's request via a received command message (from the MSO's controller), in the event that the MSO wants to verify the integrity of the software as part of a trouble shooting or monitoring process. The secure processor has the cryptographic checksum of the software component to be checked. The user processor, under the operating system's control, passes the memory segments comprising this object to the secure processor.
If the secure processor determines that the check has failed, it may embody to the status in an encrypted format, which is incorporated in a message that is sent to the MSO's controller. The reliance on the user processor for this purpose may be minimized to ensure that these operations can not be intercepted. In addition, in the event that tampering or a transmission error (in either case. a ''deviation") is detected, additional indications may be provided, for example, flagging the set-top 15 terminal's unique address to the MSO/headend to shut off all or some of the subscriber's services, notifying a local or national Access Control Center of the event, the time, the unique set-top terminal address, geographic location, etc.
Although various embodiments are specifically illustrated and described herein, it will be appreciated that modifications and variations of the present 2o invention are covered by the above teachings and within the purview of the appended claims without departing from the spirit and intended scope of the invention.
Access control of a software object, in accordance with one aspect of the invention, consists of three parts. The first defines the access requirements for a particular service (and associated objects), and the second defines the authorization rights for a particular set-top terminal to access these services (and 1o associated objects). The third provides additional identification information to enable the set-top terminal to authenticate the objects prior to their utilization.
The access requirements may be considered as the lock, and the authorization rights may be considered as the key. When the authorization rights match the access rights (and no parental control is required), the set-top terminal is allowed Is to access the service (and associated objects).
There are two types of messages that facilitate the access control function.
First, the Entitlement Control Message (ECM) delivers the Entitlement Control Structure (ECS) (explained in further detail below) which contains the Entitlement Control Record (ECR) (also explained in detail below) for the associated objects 2o and lists the entitlement information required for program viewing or objects) use. The second message, the Entitlement Management Message (EMM) delivers the entitlements purchased by or granted to the consumer. The functions of each of these messages are described in greater detail below.
The following provides an outline of how software objects are authorized 2s to run (post authentication). All software objects that are not authorized (and authenticated) in this manner will not be usable by the set-top terminal. In the event that all preventive measures intended to keep unauthorized software objects from residing within the set-top terminal fail, this approach aids in detecting such applications and in preventing their utilization or execution.
3o In the digital set-top terminal, the utilization of all software objects (including applications associated with a given service) must be authorized by the access control system. The software object is specified to consist of downloadable code or data that may be utilized in the set-top terminal at either the subscriber's or the MSO's will.
First, as illustrated in the block diagram of Figure l, an Object Authentication Signature Device 300 (OASD) utilizes either a National Access Controller 310 (NAC) (in the national control scenario) or a Local Access Controller 320 (LAC) (in the local control scenario) to interact with a number of set-top terminals 350a, 350b, etc. The details of the interactions of each of these devices are described in detail below in connection with the detailed description of the invention.
1 o Referring to the flow chart of Figure 2, in step 10, a "fingerprint"; i.
e., a digital signature, is created for each software object (e.g., applications, OS's, DLL's, JVM's, Java applications and applets, etc.). The fingerprint (signature) of the software object serves as a unique Entitlement Control Record (ECR). For example, each software object that the MSO wants to place in this category, i.e., I5 under access control, is associated with a "fingerprint". Note that the fingerprint might simply be a seed for a key that could be encrypted by known means, or, it could be a value that is derived from an initial value through processing it as an image or otherwise (i.e., the fingerprint may include object size, checksum, etc.).
In particular, the fingerprint (a digital signature) may be generated by a 2o software/HW object authentication/signature device (DASD). This is performed after the software object is verified and validated (either through inspection, testing, etc. - the details of which are outside the scope of this application). The intent of the software verification and validation is to ensure that the design and implementation of the object follows a pre-specified set of rules and requirements 25 established for security purposes. This may be done under contract to the MSO
(details of which are also outside the scope of this application). The signature may be based on a unique (which may or may not be MSO-specific) object identifier and a cryptographic CRC of the object and serves as a form of certification that is unique to the software object itself (several conventional 3o signing techniques may be employed, the details of which however are outside the scope of this application). If several software objects are associated with a service, each may be associated with a signature, and then an overall signature WO 00/50978 PCT/iJS00/02855 may be provided for the entire suite, whenever authentication of this higher level association is desired.
Continuing to step 20 of Figure 2, the fingerprint of each software object is then associated with a. service tier. Both satellite and cable access control systems utilize the concept of "Bering". For audiovisual services, a tier is a logical grouping of programs or services (the degenerate case being a single program or service). The grouping is created to facilitate control of the user's (subscriber's) access to that group of services based upon the MSO's subscriber profile (i.e., which services are subscribed to by a given consumer). The access rights of the to user would demand a great deal of memory in the set-top terminal if the access rights were stored as separate flags for each and every program or object available. The tiers are typically represented as single binary digits (bits) that can be defined and redefined dynamically. Since each tier (or group) is represented as a single bit and the tiers are defined to be relevant to the service offering at a 15 given point in time, they offer the most compact representation possible for the user's access rights (compactness is very important, since the access rights must be kept in secure memory. which is limited, and must be transmitted frequently, and as such bandwidth requirements are minimized). One or more objects may be associated with a given service/application and assigned the corresponding tiers.
2o Additionally, while such authorization rights may be stored on a server at the other end of the network (as opposed to at the set-top terminal), where a set-top terminal may query its rights by communicating with the server in real time, it is typically advantageous to distribute this information within the set-top terminals for security, robustness, performance, as well as minimizing single point of failure 25 effects. Once the event (or "program") terminates, or once the objects) is no longer offered as part of a particular service, the tier definition will be updated to reflect this change. The authorization tiers for which the subscriber has been authorized are conveyed in a corresponding Entitlement Management Message (EMM) (described in further detail below in the description of Figure l, step 50).
3o In a preferred embodiment of the invention, there are two types of tiers, the first, a Subscription tier which is associated with a service (and corresponding objects) that continues over a duration of time and which is purchased ahead of actual use. The second, an Impulse Pay Per Use tier (IPPU, analogous to the Impulse Pay Per View for video programming), allows for an impulse purchase of an object or set of objects associated with a given service/application and may have a time duration associated with it. It will be appreciated by those skilled in the art that other usages, combination or conditional, can be based on these two tiers.
Referring once again to step 20 in Figure 2, more specifically, the fingerprint to service tier association may be assigned by the MSO's access controller (Access Controller (AC) for National Control or Digital Access 1 o Controller (DAC) for local control) via the addition of a CA (conditional access) subtending signature functionality specific to objects associated with MSO's network. This function can be facilitated by OASD when it is acting as a subtending device to the MSO's AC or the DAC. As previously mentioned, DASD functionality may be embodied in an independent device (software and 15 hardware), which in turn would communicate with the AC or the DAC to obtain the access requirement assignments (corresponding tiers for that object) The additional MSO specific signature takes the signature of a previously signed object (i.e., the fingerprint or "digital signature" generated by the OASD), and adds to it a unique object identifier (if an MSO-specific object identifier is 2o required). It also adds any one or more entitlement tier bits. which define the access requirements associated with the corresponding software object, and an envelope signature for the entire structure, referred to hereafter as the entitlement control structure (ECS). This unique and secret encoding of the ECS is shown in step 3 0.
2s The ECS may contain the access requirements for the object and associated resources or it may be partitioned into two ECS's, one for the access requirements for the object and another for the resources. The latter approach is typically a more appropriate approach ifthe resource authorization is independent of a given object and is being performed on a set-top wide basis. However, either 3o approach may be utilized (i.e., a combined ECS or two separate ECS's) and has no impact on how the authorization steps are performed.
The cost and free-use period. along with global set-top terminal resource _g_ restrictions, for example. may be assigned by this device as specified by the AC or the DAC (which in turn may be specified via the Billing System interface).
These parameters are also conveyed as part of the ECS within the ECM.
The functionality of the OASD and the MSO's signing and creation of the ECS (steps 10-30) may be combined into a single device, subtending to the AC
or the DAC, as the preferred embodiment since it is the simpler case. Either way, the physical product partitioning shouldn't alter the functional steps that need to be performed (it may optimize these steps however).
Continuing to step 40 of Figure 2, at the MSO, the collection of unique 1 o ECS's form an association table, that is made available to a national or local download function (Downloader) associated with the AC or the DAC, respectively, and is downloaded to the digital set-top terminal (either in its entirety, or one entry at a time in an appropriate message, when downloading).
Whenever the Downloader downloads protected software objects it provides the is digital set-top terminal with the secret "software object fingerprint to service tier association" (ECS), which is preferably encrypted by known means before transmission. The Downloader downloads the software object in a carousel fashion while the ECS in the associated ECM's may be sent independently. It will be appreciated by those skilled in the art that this independence provides an 2o additional security measure.
Applicants note that in an alternative embodiment of the invention, if authorization is not required, the ECS may then effectively consist of the ECR
only (i.e., step 20 of Figure 2 is not performed). The ECS in such an embodiment is piggybacked onto the downloaded object. The set-top terminal examines the 25 ECS to perform the authentication check. The set-top download function downloads the first N bytes of the object (as indicated by the header information accompanying the downloaded object) and ignores the trailing bytes that comprise the ECS. However, the preferred embodiment described above is preferable to this embodiment for two reasons: first, the coupling of the ECS to the object 3o removes a desirable security measure, and second, this embodiment introduces inconsistent processing between an ECS which contains only the ECR and that which contains the ECR and the service tier association. The preferred embodiment however does not restrict how the ECS may be conveyed, nor does it restrict the ECS to the type of message that specifies it (EMM or some other control message).
Again returning to the description of step 40 of Figure 2, the Downloader may be part of the AC or the DAC since it can be viewed as a software task, or alternatively, it can be separate from the DAC, i.e., a software task running on its own HW platform.
The MSO, using the AC or the DAC (both are HW and SW devices), via parameter settings from the billing system and based on the customer profile, then to controls the set-top terminal access to a specific service and associated object or set of objects by using the previously mentioned Entitlement Management Messages (EMM's) specific to that set-top terminal. These messages also establish whether the set-top terminal is allowed to utilize that software object and may also specify which set-top terminal resources (e.g., communication ports.
15 printer port, keyboard, etc.) the object is allowed to use (when subscriber level control is desired). Additionally, the AC or the DAC may selectively assign an Impulse authorization tier (and convey the setting via the same message) to facilitate immediate authorization of the requested resource when the subscriber explicitly requests that the resource be authorized. In the case where a resource is 2o authorized as in Impulse-authorizable resource (by associating it with an impulse tier in the message), the user may request an impulse (i.e., immediate) authorization of this resource, thereby preventing the subscriber (user) from needing to call the MSO for such authorization.
Finally, in step 50, The AC or the DAC sends the EMMs to each and every 2s set-top terminal to enable it to download and utilize the objects) (more specifically, when resource control is desired for a single object globally across all set-tops, the permission list for the resource control may reside in the ECS;
otherwise the permissions (access rights) are conveyed to each set-top individually in an EMM). The Access Controller (or DAC) then sends the entitlement to the 3o set-top terminal that is authorized to receive this service and associated objects (again, these entitlements are assigned in the previously described EMM's).
A system routine is created and provided in the set-top terminal, and is invoked whenever the set-top terminal is to check the authorization rights and authenticity of the software objects associated with the requested service.
This system routine may be part of the core code (BIOS) in the set-top terminal. It may also be provided within the operating system (OS), or middleware. When downloading the operating system, or the JVM for example, the resident routine is invoked to check authorization rights prior to download and if so authenticate these objects post download. A second authorization stage may also be present (for some objects) to check if utilization/launch of these objects is allowed.
Once the operating system is loaded, any subsequent object utilization that involves the to operating system or the JVM invokes the equivalent authorization and authentication routine in the OS.
More specifically, the set-top terminal authenticates and authorizes a downloaded object using the EMM's and ECM's associated with a given set-top terminal and object respectively. The set-top may check the authorization rights 1 s against the authorization requirements of the software object prior to downloading the object, upon downloading the object, or whenever the object is about to be utilized. . Subsequent authorization checks are optional. Figure 3 is a flowchart illustrating the steps performed at a set-top terminal upon invoking software object.
2o In Figure 3, step 100 is the download request. Accordingly, in step 110, the BIOS, operating system and/or the Java Virtual Machine (JVM), when requiring the download or the use of a software object, calls) the set-top CA
routine for an authentication and authorization check. The use or launch of the object is allowed only if the check passes. The CA check is facilitated by the 2s secure processor. In addition, a lifetime feature may be implemented;
wherein the secure processor records the object lifetime and checks it for expiration, starting for example with first use (i.e., the first time the secure processor was engaged in authenticating and authorizing the object). When expired. it may interrupt the operating system or JVM to disable/delete the object(s). If any of the checks fail.
3o the set-top terminal may log the results to report back to the access controller.
Again, this feature is a combination of software and hardware functions.
More specifically, returning to Figure 3, in step 120 a determination is made as to whether or not there is a need to check authorization rights. If not, as shown in Figure 3, in step 130, the software object may be downloaded to the set-top terminal prior to any authorization. However, if so, in step 200 the Conditional Access (CA) routine, before downloading the object, may determine s ifthe set-top terminal is authorized to download the object. This step is optional and may depend upon the nature ofthe software object (i.e., some objects are necessary and may not require this prior authorization). If the step is performed, and if a determination is made that the set-top terminal is authorized to download the object, the process continues to step 210. If however. a determination is made to in step 200 that the set-top terminal is not authorized to download the object, the process continues to step 150, where the object is not utilized.
In Step 210 the software object is downloaded to the set-top terminal and the process continues to step 150 for authentication, described in further detail below.
I s Alternatively, again if a determination was made in step 120 that there was no need to check authorization rights, the software object is downloaded (step 130) and as shown in step 140, the Conditional Access (CA) routine determines if the set-top terminal is authorized to use/launch the software object. Based on the determination, the software object may or may not be utilized. All unauthorized 2o software objects will not have a corresponding tier association The encoded "fingerprint of the software object to tier value" association (ECS) of the software object (or "application" in this example) is known only to the MSO and by definition is unique to each software object and is protected. Accordingly, if a determination is made in step 140 that the set-top terminal has not been authorized 25 to use/launch the software object, the process continues to step 140, where the software object is not downloaded (or utilized). If the tier corresponding to the software object has been authorized however, the process continues to step 150.
Continuing to step 150, the CA routine, again with the assistance of the secure processor, checks to see if the software object has the corresponding 3o fingerprint association. Depending on the result, the software object may or may not be utilized. For example, all unauthorized software objects will not have a corresponding fingerprint (since an unauthorized software object cannot ''guess"
the corresponding ECR value). In that case, the process continues to step 160, where the software object is not used. The protected fingerprint of the software object is known only to the MSO and by definition is unique to each software object. If the software object has the corresponding fingerprint association however, the process continues to step 170, where the set-top terminal authorizes and authenticates the downloaded object.
It will be appreciated by those skilled in the art that each of the authorization steps illustrated in steps 140 and 200 of Figure 3 are optional and are not necessarily performed. In addition, although the authorization check 1 o performed in step 200 continues to step 210 and then to the authentication of step 150, additional subsequent checks could be performed by the CA routine and are well within the scope of the invention.
In addition, in a second embodiment of the invention, if the software object requires the utilization of a given set-top terminal resource, a similar is checking process to determine if the software object has permission to use the required resources may occur. These permissions (authorization rights) may be associated with a given object for all set-top terminals or may be associated with a given object for a specific set-top terminal. The authorization rights to use the set-top terminal resources are conveyed in a similar manner, via EMM's.
2o As noted above, the authorization rights may also be designated as Impulse tiers to indicate that the subscriber may request the immediate authorization of the Impulse authorizable resource. The set-top in turn checks the request in a similar manner and if the Impulse tier is set. it registers the authorization as having taken place (for possible subsequent billing purposes).
2s Each of these options is shown in Figure 4 where in step 122, a determination is made as to whether a set-top terminal resource is requested by the software object (if software object has requested resource utilization via the OS).
If step 122 determines that a valid set-top terminal resource has not been requested, no further action is taken.
3o If however step122 determines that a valid set-top terminal resource has been requested, the process continues to step 124 in which the OS invokes the driver associated with the requested set-top terminal resource. Continuing to step 126, the associated driver (upon the first use only of the resource) invokes a "second Conditional Access routine" (which may be part of BIOS or the operating system) to determine if the requesting software object is allowed to use this resource. More specifically, the driver routine calls the second access control s routine which, in conjunction with the secure processor, determines whether the software object may utilize the requested resource (i.e., determines if it is authorized for such use). 'The resource usage authorization rights are stored in secure memory as well. Specifically, in step 128 it is determined if the EMM
provided permission to use the requested resource. If the EMM did not provide to such permission, the process disallows the use ofthe requested resource (step 130) (i.e., the control goes back to the driver and then the OS with a negative result, indicating that use of the requested resource is not allowed). However, if the EMM provided permission, the utilization of the requested set-top resource is allowed in step 132.
t s In addition, in the case where the permissions are set as Impulse tiers (requiring an explicit request from the user for the authorization to take effect), the routine grants the authorization and registers the Impulse request within the secure processor (for possible subsequent billing purposes via a report back mechanism to the AC or the DAC).
2o In a still further aspect of a preferred embodiment of the invention, the driver associated with a requested resource may invoke the second CA routine only upon the first use of the resource by the software object, wherein subsequent invocations of the second conditional access routine are optional.
Finally, it will be appreciated by those skilled in the art that various 2s methods may be implemented in order to detect any tampering to circumvent the processes described above. These methods may include periodic background checks of the software object memory, fingerprint (which may include memory size, checksum, etc.), including the set-top terminal core BIOS, Operating System, etc., against pre-calculated and protected values for each. Specifically, for 3o example, the set-top terminal's secure processor in conjunction with the user processor can perform a memory checksum on certain critical components of the software. This may be done whenever the user processor and the secure processor have sufficient idle time to perform this function in order to minimize adverse performance effects on other functions. It may also be invoked at the operator's request via a received command message (from the MSO's controller), in the event that the MSO wants to verify the integrity of the software as part of a trouble shooting or monitoring process. The secure processor has the cryptographic checksum of the software component to be checked. The user processor, under the operating system's control, passes the memory segments comprising this object to the secure processor.
If the secure processor determines that the check has failed, it may embody to the status in an encrypted format, which is incorporated in a message that is sent to the MSO's controller. The reliance on the user processor for this purpose may be minimized to ensure that these operations can not be intercepted. In addition, in the event that tampering or a transmission error (in either case. a ''deviation") is detected, additional indications may be provided, for example, flagging the set-top 15 terminal's unique address to the MSO/headend to shut off all or some of the subscriber's services, notifying a local or national Access Control Center of the event, the time, the unique set-top terminal address, geographic location, etc.
Although various embodiments are specifically illustrated and described herein, it will be appreciated that modifications and variations of the present 2o invention are covered by the above teachings and within the purview of the appended claims without departing from the spirit and intended scope of the invention.
Claims (31)
1. A method for providing authorization and access control of software object residing in digital set-top terminals, comprising the steps of:
creating a fingerprint for each software object;
associating each fingerprint with a service tier;
encoding each association made in said associating step;
creating an association table containing the information generated in said encoding step;
downloading the association table to the digital set-top terminal;
transmitting a message, providing an indication of what software the set-top terminal may utilize, to the digital set-top terminal; and providing a system routine at the digital set-top terminal that is invoked whenever software object has been downloaded or is about to be utilized, wherein the system routine uses the association table to determine if the software object about to be invoked has been authorized for the set-top terminal.
creating a fingerprint for each software object;
associating each fingerprint with a service tier;
encoding each association made in said associating step;
creating an association table containing the information generated in said encoding step;
downloading the association table to the digital set-top terminal;
transmitting a message, providing an indication of what software the set-top terminal may utilize, to the digital set-top terminal; and providing a system routine at the digital set-top terminal that is invoked whenever software object has been downloaded or is about to be utilized, wherein the system routine uses the association table to determine if the software object about to be invoked has been authorized for the set-top terminal.
2. The method of claim 1, further wherein the software object has been verified and validated prior to the recited steps.
3. The method of claim 1, further comprising the steps of:
recording a lifetime of the software object; and starting with a first use, checking the lifetime of the software object for expiration.
recording a lifetime of the software object; and starting with a first use, checking the lifetime of the software object for expiration.
4. The method of claim 3, wherein if a determination is made in said checking step that the software object lifetime has expired, further comprising the step of disabling the software object.
5. The method of claim 1, wherein if a plurality of software objects are associated with a service, further comprising the step of:
creating a fingerprint for the plurality of software objects as a group.
creating a fingerprint for the plurality of software objects as a group.
6. The method of claim 1, wherein the transmitted message further indicates which set-top terminal resources the software object is authorized to utilize.
7. The method of claim 6, wherein an impulse authorization service tier may be assigned to facilitate immediate authorization of a resource.
8. The method of claim 7, wherein the impulse authorization service tier has a time duration associated with it.
9. The method of claim 1, further wherein the transmitted message in said transmitting step provides the indication by setting the corresponding service tiers.
10. The method of claim 1, further wherein if the service tier has not been authorized, the software object is not executed.
11. The method of claim 1, further wherein if the service tier has been authorized, the system routine checks determines if the software object about to be utilized passes a corresponding fingerprint check.
12. The method of claim 11, wherein if the software object about to be utilized passes the corresponding fingerprint check, further comprising the step of:
determining if the use of a set-top terminal resource has been requested.
determining if the use of a set-top terminal resource has been requested.
13. The method of claim 12, wherein if a determination is made in said determining step that the use of a set-top terminal resource has been requested, further comprising the step of:
providing a second system routine at the digital set-top terminal.
providing a second system routine at the digital set-top terminal.
14. The method of claim 12, wherein if a determination is made in said determining step that the use of a set-top terminal resource has been requested, further comprising the step of:
determining if it is the first time that use of the set-top terminal resource by the software object has been requested, wherein if it is the first time that use of the resource has been requested, providing a second system routine at the digital set-top terminal.
determining if it is the first time that use of the set-top terminal resource by the software object has been requested, wherein if it is the first time that use of the resource has been requested, providing a second system routine at the digital set-top terminal.
15. The method of claim 13, wherein the second system routine uses the transmitted messages to determine if the software object may utilize the requested set-top terminal resource.
16. The method of claim 11, further wherein if the software object about to be utilized does not have a corresponding fingerprint, the software object is not executed.
17. The method of claim 1, wherein the fingerprint of the software object residing in the set-top terminal is periodically compared to a reference value and an indication of a deviation is provided.
18. A method for providing authorization and access control of applications executing in digital set-top terminals, comprising the steps of:
associating each application with a service tier;
encoding each association made in said associating step;
creating an association table containing the information generated in said encoding step;
downloading the association table to the digital set-top terminal;
and providing a system routine at the digital set-top terminal that is invoked whenever an application is invoked, wherein the system routine uses the application association or the association table to determine if an invoked application is associated with a service tier, and wherein if the invoked application is not associated with a service tier, the application is not utilized.
associating each application with a service tier;
encoding each association made in said associating step;
creating an association table containing the information generated in said encoding step;
downloading the association table to the digital set-top terminal;
and providing a system routine at the digital set-top terminal that is invoked whenever an application is invoked, wherein the system routine uses the application association or the association table to determine if an invoked application is associated with a service tier, and wherein if the invoked application is not associated with a service tier, the application is not utilized.
19. The method of claim 18, further wherein if an invoked application is associated with a service tier, the system routine further determines if the tier corresponding to the service/application has been authorized.
20. The method of claim 18, wherein when set-top terminal resource control is desired for a single application across all set-tops, further comprising the step of:
providing an indication of the set-top terminal resource control in the encoded associations, wherein a second system routine uses the association table to determine if the software object may utilize the requested set-top terminal resource.
providing an indication of the set-top terminal resource control in the encoded associations, wherein a second system routine uses the association table to determine if the software object may utilize the requested set-top terminal resource.
21. The method of claim 18 wherein set-top terminal resource control indications are conveyed to each set-top individually.
22. The method of claim 18, wherein the software memory size of critical software components of the digital set-top terminal are periodically compared to a reference value and an indication of a deviation is provided.
23. The method of claim 18, wherein the software size of the operating system of the digital set-top terminal is periodically compared to a reference value and an indication of a deviation is provided.
24. The method of claim 18, wherein the software object memory size of the application code image in the digital set-top terminal is periodically compared to a reference value and an indication of a deviation is provided.
25. The method of claim 18, wherein the checksum of critical software components of the digital set-top terminal is periodically compared to a reference value and an indication of a deviation is provided.
26. The method of claim 18, wherein the checksum of the operating system of the digital set-top terminal is periodically compared to a reference value and an indication of a deviation is provided.
27. The method of claim 18. wherein the checksum of the software object in the digital set-top terminal is periodically compared to a reference value and an indication of a deviation is provided.
28. A system for providing authorization and access control of software object residing in digital set-top terminals, comprising:
a multiple system cable operator site comprising:
means for creating a fingerprint for each software object;
means for assigning each fingerprint to a service tier;
encoding means for encoding each association made in said associating step;
means for creating an association table/message containing the information generated in said encoding step;
means for downloading the association table to the digital set-top terminal;
means for transmitting a message, providing an indication of what software the set-top terminal may utilize, to the digital set-top terminal; and a digital set-top terminal comprising:
a system routine that is invoked whenever software object has been downloaded or is about to be utilized, wherein the system routine uses the association table/message to determine if the software object about to be invoked has been authorized for the set-top terminal.
a multiple system cable operator site comprising:
means for creating a fingerprint for each software object;
means for assigning each fingerprint to a service tier;
encoding means for encoding each association made in said associating step;
means for creating an association table/message containing the information generated in said encoding step;
means for downloading the association table to the digital set-top terminal;
means for transmitting a message, providing an indication of what software the set-top terminal may utilize, to the digital set-top terminal; and a digital set-top terminal comprising:
a system routine that is invoked whenever software object has been downloaded or is about to be utilized, wherein the system routine uses the association table/message to determine if the software object about to be invoked has been authorized for the set-top terminal.
29. The system of claim 28. wherein said means for creating a fingerprint comprises an independent software/HW object authentication.signature device (OASD).
30. The system of claim 29, wherein the OASD comprises said means for assigning each fingerprint to a service tier.
31. A digital set-top terminal, operating together with a multiple system cable operator system to provide authorization and access control of software object residing in the digital set-top terminal, the set-top terminal comprising:
a system routine that is invoked whenever software object has been downloaded or is about to be utilized, wherein the system routine uses an association table/message, created at the MSO and downloaded to the set-top terminal, to determine if the software object about to be invoked has been authorized for the set-top terminal, and further wherein the association table/message comprises an encoded fingerprint to service tier association corresponding to the software object.
a system routine that is invoked whenever software object has been downloaded or is about to be utilized, wherein the system routine uses an association table/message, created at the MSO and downloaded to the set-top terminal, to determine if the software object about to be invoked has been authorized for the set-top terminal, and further wherein the association table/message comprises an encoded fingerprint to service tier association corresponding to the software object.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/257,274 US6256393B1 (en) | 1998-06-23 | 1999-02-24 | Authorization and access control of software object residing in set-top terminals |
US09/257,274 | 1999-02-24 | ||
PCT/US2000/002855 WO2000050978A1 (en) | 1999-02-24 | 2000-02-03 | Authorization and access control of software object residing in set-top terminals |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2361757A1 true CA2361757A1 (en) | 2000-08-31 |
Family
ID=22975592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002361757A Abandoned CA2361757A1 (en) | 1999-02-24 | 2000-02-03 | Authorization and access control of software object residing in set-top terminals |
Country Status (7)
Country | Link |
---|---|
US (2) | US6256393B1 (en) |
EP (1) | EP1155359B1 (en) |
AU (1) | AU2755000A (en) |
BR (1) | BR0008502A (en) |
CA (1) | CA2361757A1 (en) |
DE (1) | DE60036086T2 (en) |
WO (1) | WO2000050978A1 (en) |
Families Citing this family (151)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7089212B2 (en) * | 1992-12-15 | 2006-08-08 | Sl Patent Holdings Llc | System and method for controlling access to protected information |
US7209901B2 (en) | 1992-12-15 | 2007-04-24 | Sl Patent Holdings Llc C/O Aol Time Warner | Method for selling, protecting, and redistributing digital goods |
US6266654B1 (en) * | 1992-12-15 | 2001-07-24 | Softlock.Com, Inc. | Method for tracking software lineage |
US7831516B2 (en) * | 1992-12-15 | 2010-11-09 | Sl Patent Holdings Llc | System and method for redistributing and licensing access to protected information among a plurality of devices |
US6948183B1 (en) * | 1998-06-18 | 2005-09-20 | General Instrument Corporation | Dynamic security for digital television receivers |
US6256393B1 (en) * | 1998-06-23 | 2001-07-03 | General Instrument Corporation | Authorization and access control of software object residing in set-top terminals |
US7308699B1 (en) * | 1998-09-15 | 2007-12-11 | Intel Corporation | Maintaining access to a video stack after an application crash |
US6694434B1 (en) * | 1998-12-23 | 2004-02-17 | Entrust Technologies Limited | Method and apparatus for controlling program execution and program distribution |
CA2368195A1 (en) * | 1999-03-31 | 2000-10-05 | Diva Systems Corporation | Method and apparatus for performing impulse authorizations within a video on demand environment |
JP3784201B2 (en) * | 1999-04-09 | 2006-06-07 | パイオニア株式会社 | CATV viewing control system |
US6718374B1 (en) * | 1999-04-21 | 2004-04-06 | General Instrument Corporation | Method and system for identifying and downloading appropriate software or formware specific to a particular model of set-top box in a cable television system |
US6981155B1 (en) | 1999-07-14 | 2005-12-27 | Symantec Corporation | System and method for computer security |
AU5935400A (en) | 1999-07-14 | 2001-01-30 | Recourse Technologies, Inc. | System and method for protecting a computer network against denial of service attacks |
US7117532B1 (en) | 1999-07-14 | 2006-10-03 | Symantec Corporation | System and method for generating fictitious content for a computer |
US7203962B1 (en) | 1999-08-30 | 2007-04-10 | Symantec Corporation | System and method for using timestamps to detect attacks |
US6904611B1 (en) * | 1999-09-03 | 2005-06-07 | General Instrument Corporation | Method and system for directing the download of software and firmware objects over a network such as a cable television system |
US6832323B1 (en) * | 1999-10-22 | 2004-12-14 | General Instrument Corporation | Object and feature authorization for digital communication terminals |
US20010010720A1 (en) * | 1999-11-12 | 2001-08-02 | Kimball Bridget D. | Multiple signature authentication in conditional access systems |
US20010013121A1 (en) * | 1999-11-12 | 2001-08-09 | Kimball Bridget D. | Authorization conditioned object message download |
US6754908B1 (en) * | 1999-11-12 | 2004-06-22 | General Instrument Corporation | Intrusion detection for object security |
US6766457B1 (en) * | 1999-12-07 | 2004-07-20 | Unisys Corporation | Method for controlling access to a multiplicity of objects using a customizable object-oriented access control hook |
FR2802319B1 (en) * | 1999-12-10 | 2004-10-01 | Gemplus Card Int | CAPACITY ACCESS CONTROL FOR ESPECIALLY COOPERATING APPLICATIONS IN A CHIP CARD |
US6976268B2 (en) * | 1999-12-10 | 2005-12-13 | Sun Microsystems, Inc. | Methods and apparatus for efficiently accessing periodically broadcast data |
US7127526B1 (en) * | 2000-03-20 | 2006-10-24 | Nortel Networks Limited | Method and apparatus for dynamically loading and managing software services on a network device |
EP1273172A1 (en) * | 2000-04-06 | 2003-01-08 | Koninklijke Philips Electronics N.V. | Object-conditional access system |
US20020003884A1 (en) * | 2000-05-26 | 2002-01-10 | Sprunk Eric J. | Authentication and/or authorization launch |
US7107462B2 (en) * | 2000-06-16 | 2006-09-12 | Irdeto Access B.V. | Method and system to store and distribute encryption keys |
US7404084B2 (en) | 2000-06-16 | 2008-07-22 | Entriq Inc. | Method and system to digitally sign and deliver content in a geographically controlled manner via a network |
US7237255B2 (en) | 2000-06-16 | 2007-06-26 | Entriq Inc. | Method and system to dynamically present a payment gateway for content distributed via a network |
EP1407360A4 (en) | 2000-06-16 | 2009-08-12 | Entriq Inc | Methods and systems to distribute content via a network utilizing distributed conditional access agents and secure agents, and to perform digital rights management (drm) |
US7389531B2 (en) * | 2000-06-16 | 2008-06-17 | Entriq Inc. | Method and system to dynamically present a payment gateway for content distributed via a network |
US6961858B2 (en) * | 2000-06-16 | 2005-11-01 | Entriq, Inc. | Method and system to secure content for distribution via a network |
US7991697B2 (en) * | 2002-12-16 | 2011-08-02 | Irdeto Usa, Inc. | Method and system to digitally sign and deliver content in a geographically controlled manner via a network |
US20020059624A1 (en) * | 2000-08-03 | 2002-05-16 | Kazuhiro Machida | Server based broadcast system, apparatus and method and recording medium and software program relating to this system |
US7032114B1 (en) * | 2000-08-30 | 2006-04-18 | Symantec Corporation | System and method for using signatures to detect computer intrusions |
EP1626324B1 (en) | 2000-09-21 | 2012-04-11 | Research In Motion Limited | Software code signing system and method |
US8087014B1 (en) * | 2000-10-26 | 2011-12-27 | Qualcomm Incorporated | Method and apparatus for configuration management for a computing device |
US20020083438A1 (en) * | 2000-10-26 | 2002-06-27 | So Nicol Chung Pang | System for securely delivering encrypted content on demand with access contrl |
US7080397B2 (en) * | 2000-10-26 | 2006-07-18 | General Instrument Corporation | Communication protocol for content on demand system with callback time |
JP4039244B2 (en) * | 2000-10-27 | 2008-01-30 | 株式会社日立製作所 | Data receiving apparatus and management apparatus for managing data receiving apparatus |
US20020112175A1 (en) * | 2000-12-13 | 2002-08-15 | Makofka Douglas S. | Conditional access for functional units |
US20070219918A1 (en) * | 2001-01-19 | 2007-09-20 | Jonathan Schull | System and method for controlling access to protected information |
US7308717B2 (en) * | 2001-02-23 | 2007-12-11 | International Business Machines Corporation | System and method for supporting digital rights management in an enhanced Java™ 2 runtime environment |
US20040015958A1 (en) * | 2001-05-15 | 2004-01-22 | Veil Leonard Scott | Method and system for conditional installation and execution of services in a secure computing environment |
US7526811B1 (en) * | 2001-05-22 | 2009-04-28 | Novell, Inc. | Methods for detecting executable code which has been altered |
US7099663B2 (en) | 2001-05-31 | 2006-08-29 | Qualcomm Inc. | Safe application distribution and execution in a wireless environment |
US20030009769A1 (en) * | 2001-06-25 | 2003-01-09 | Debra Hensgen | Trusted application level resource advisor |
US20030018445A1 (en) * | 2001-07-19 | 2003-01-23 | General Instrument Corporation | Detection of unauthorized applications, objects, or configurations in a local device of a cable system |
WO2003009126A1 (en) * | 2001-07-19 | 2003-01-30 | Digeo, Inc. | System and method for managing television programs within an entertainment system |
US20030018970A1 (en) * | 2001-07-19 | 2003-01-23 | Digeo, Inc. | Object representation of television programs within an interactive television system |
US20030046592A1 (en) * | 2001-08-28 | 2003-03-06 | Woodruff Wayne D. | Personal video recorder with secure recording, storage and playback control |
US7376625B2 (en) | 2001-11-15 | 2008-05-20 | Nokia Corporation | System and method for activating individualized software modules in a digital broadcast environment |
US7565678B2 (en) * | 2001-12-28 | 2009-07-21 | At&T Intellectual Property, I, L.P. | Methods and devices for discouraging unauthorized modifications to set top boxes and to gateways |
US7792978B2 (en) * | 2001-12-28 | 2010-09-07 | At&T Intellectual Property I, L.P. | System and method to remotely manage and audit set top box resources |
US7415440B1 (en) | 2002-02-22 | 2008-08-19 | Entriq, Inc. | Method and system to provide secure key selection using a secure device in a watercrypting environment |
FR2837055B1 (en) * | 2002-03-06 | 2004-06-11 | Viaccess Sa | PROTOCOL OF ACCESS CONTROL, BY RANGES OF SPECIFIC HOURS, TO ENRICHED INFORMATION |
GB0212314D0 (en) * | 2002-05-28 | 2002-07-10 | Symbian Ltd | Secure mobile wireless device |
EP1383327B1 (en) * | 2002-06-11 | 2013-12-25 | Panasonic Corporation | Content distributing system and data-communication controlling device |
US20040031052A1 (en) * | 2002-08-12 | 2004-02-12 | Liberate Technologies | Information platform |
US20040093614A1 (en) * | 2002-10-29 | 2004-05-13 | Atsunori Sakurai | Conditional access system and receiver |
US7469416B2 (en) * | 2002-11-05 | 2008-12-23 | International Business Machines Corporation | Method for automatically managing information privacy |
US7058964B2 (en) * | 2002-12-03 | 2006-06-06 | Matsushita Electric Industrial Co., Ltd. | Flexible digital cable network architecture |
US7706540B2 (en) * | 2002-12-16 | 2010-04-27 | Entriq, Inc. | Content distribution using set of session keys |
US7263720B2 (en) * | 2002-12-16 | 2007-08-28 | Intel Corporation | Method and mechanism for validating legitimate software calls into secure software |
US7801820B2 (en) * | 2003-01-13 | 2010-09-21 | Sony Corporation | Real-time delivery of license for previously stored encrypted content |
US20100017627A1 (en) | 2003-02-07 | 2010-01-21 | Broadon Communications Corp. | Ensuring authenticity in a closed content distribution system |
US7322042B2 (en) | 2003-02-07 | 2008-01-22 | Broadon Communications Corp. | Secure and backward-compatible processor and secure software execution thereon |
US20040205009A1 (en) * | 2003-04-10 | 2004-10-14 | Noto Gary Patrick | System for calculating and identifying unique orders |
CA2527829C (en) | 2003-05-30 | 2016-09-27 | Privaris, Inc. | A man-machine interface for controlling access to electronic devices |
DE10340236B4 (en) * | 2003-08-29 | 2006-06-01 | Infineon Technologies Ag | Arrangement with a data processing device and a memory |
US20050097610A1 (en) * | 2003-11-03 | 2005-05-05 | Pedlow Leo M.Jr. | Distribution of preferences, provisioning and entitlements in clustered, distributed entertainment networks |
US20050125357A1 (en) * | 2003-12-09 | 2005-06-09 | Saadat Abbas S. | Secure integrated media center |
US7644424B2 (en) * | 2004-06-15 | 2010-01-05 | Sony Corporation | Location detector for digital cable television appliances |
US8312267B2 (en) * | 2004-07-20 | 2012-11-13 | Time Warner Cable Inc. | Technique for securely communicating programming content |
US8266429B2 (en) | 2004-07-20 | 2012-09-11 | Time Warner Cable, Inc. | Technique for securely communicating and storing programming material in a trusted domain |
US7716237B2 (en) * | 2004-12-22 | 2010-05-11 | Csc Holdings, Inc. | System and associated methods for remotely enabling features |
US7567565B2 (en) | 2005-02-01 | 2009-07-28 | Time Warner Cable Inc. | Method and apparatus for network bandwidth conservation |
US7895651B2 (en) | 2005-07-29 | 2011-02-22 | Bit 9, Inc. | Content tracking in a network security system |
US8984636B2 (en) | 2005-07-29 | 2015-03-17 | Bit9, Inc. | Content extractor and analysis system |
US8272058B2 (en) | 2005-07-29 | 2012-09-18 | Bit 9, Inc. | Centralized timed analysis in a network security system |
US8340289B2 (en) | 2005-09-29 | 2012-12-25 | Research In Motion Limited | System and method for providing an indication of randomness quality of random number data generated by a random data service |
US20070086435A1 (en) * | 2005-10-19 | 2007-04-19 | Microsoft Corporation | Sharing devices on peer-to-peer networks |
GB0601849D0 (en) * | 2006-01-30 | 2006-03-08 | Ttp Communications Ltd | Method of maintaining software integrity |
US8718100B2 (en) * | 2006-02-27 | 2014-05-06 | Time Warner Cable Enterprises Llc | Methods and apparatus for selecting digital interface technology for programming and data delivery |
US8170065B2 (en) | 2006-02-27 | 2012-05-01 | Time Warner Cable Inc. | Methods and apparatus for selecting digital access technology for programming and data delivery |
US8458753B2 (en) | 2006-02-27 | 2013-06-04 | Time Warner Cable Enterprises Llc | Methods and apparatus for device capabilities discovery and utilization within a content-based network |
US7916755B2 (en) * | 2006-02-27 | 2011-03-29 | Time Warner Cable Inc. | Methods and apparatus for selecting digital coding/decoding technology for programming and data delivery |
US20070239861A1 (en) * | 2006-04-05 | 2007-10-11 | Dell Products L.P. | System and method for automated operating system installation |
EP2439946B1 (en) * | 2006-05-04 | 2013-07-10 | NDS Limited | Scrambled digital data item |
CA2545975A1 (en) * | 2006-05-09 | 2007-11-09 | Nikolajs Volkovs | A digital signature scheme based on the division algorithm and the discrete logarithm problem |
GB0611128D0 (en) * | 2006-06-06 | 2006-07-19 | Sony Uk Ltd | Encoding and detecting apparatus |
US9277295B2 (en) | 2006-06-16 | 2016-03-01 | Cisco Technology, Inc. | Securing media content using interchangeable encryption key |
US9137480B2 (en) | 2006-06-30 | 2015-09-15 | Cisco Technology, Inc. | Secure escrow and recovery of media device content keys |
CN101513008B (en) | 2006-07-31 | 2012-09-19 | 意大利电信股份公司 | System for implementing safety of telecommunication terminal |
US8068602B1 (en) * | 2006-09-29 | 2011-11-29 | Verint Americas, Inc. | Systems and methods for recording using virtual machines |
US8520850B2 (en) | 2006-10-20 | 2013-08-27 | Time Warner Cable Enterprises Llc | Downloadable security and protection methods and apparatus |
US8732854B2 (en) | 2006-11-01 | 2014-05-20 | Time Warner Cable Enterprises Llc | Methods and apparatus for premises content distribution |
CN101184084B (en) * | 2006-11-13 | 2010-12-15 | 汪涛 | Method of implementing service control using user name system based requirement description language |
US7991902B2 (en) * | 2006-12-08 | 2011-08-02 | Microsoft Corporation | Reputation-based authorization decisions |
US8621540B2 (en) | 2007-01-24 | 2013-12-31 | Time Warner Cable Enterprises Llc | Apparatus and methods for provisioning in a download-enabled system |
US8041643B2 (en) | 2007-03-09 | 2011-10-18 | At&T Intellectual Property I, L.P. | System and method of providing media content |
US20080235746A1 (en) | 2007-03-20 | 2008-09-25 | Michael James Peters | Methods and apparatus for content delivery and replacement in a network |
US20080262968A1 (en) * | 2007-03-26 | 2008-10-23 | Infosys Technologies Ltd. | Software licensing control via mobile devices |
JP5069348B2 (en) * | 2007-06-18 | 2012-11-07 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | Software radio terminal security |
US8590028B2 (en) | 2007-07-09 | 2013-11-19 | Infosys Limited | Content licensing and conditional access using a mobile device |
US8108680B2 (en) | 2007-07-23 | 2012-01-31 | Murray Mark R | Preventing unauthorized poaching of set top box assets |
US9071859B2 (en) | 2007-09-26 | 2015-06-30 | Time Warner Cable Enterprises Llc | Methods and apparatus for user-based targeted content delivery |
US8561116B2 (en) | 2007-09-26 | 2013-10-15 | Charles A. Hasek | Methods and apparatus for content caching in a video network |
US8099757B2 (en) | 2007-10-15 | 2012-01-17 | Time Warner Cable Inc. | Methods and apparatus for revenue-optimized delivery of content in a network |
US20090119657A1 (en) * | 2007-10-24 | 2009-05-07 | Link Ii Charles M | Methods and systems for software upgrades |
US7913299B2 (en) * | 2007-12-21 | 2011-03-22 | International Business Machines Corporation | Systems, methods and computer program products for firewall use of certified binaries |
US8813143B2 (en) | 2008-02-26 | 2014-08-19 | Time Warner Enterprises LLC | Methods and apparatus for business-based network resource allocation |
KR101163820B1 (en) * | 2008-12-22 | 2012-07-09 | 한국전자통신연구원 | Apparatus and method for terminal authentication in downloadable conditional access system |
US8789160B2 (en) * | 2009-03-06 | 2014-07-22 | At&T Intellectual Property I, L.P. | Function-based authorization to access electronic devices |
US9602864B2 (en) | 2009-06-08 | 2017-03-21 | Time Warner Cable Enterprises Llc | Media bridge apparatus and methods |
US9866609B2 (en) | 2009-06-08 | 2018-01-09 | Time Warner Cable Enterprises Llc | Methods and apparatus for premises content distribution |
US8402186B2 (en) * | 2009-06-30 | 2013-03-19 | Intel Corporation | Bi-directional handshake for advanced reliabilty availability and serviceability |
US8270605B2 (en) * | 2009-09-01 | 2012-09-18 | Sony Corporation | Location authentication |
US8296568B2 (en) | 2009-10-27 | 2012-10-23 | Google Inc. | Systems and methods for authenticating an electronic transaction |
US8364959B2 (en) * | 2010-05-26 | 2013-01-29 | Google Inc. | Systems and methods for using a domain-specific security sandbox to facilitate secure transactions |
US9906838B2 (en) | 2010-07-12 | 2018-02-27 | Time Warner Cable Enterprises Llc | Apparatus and methods for content delivery and message exchange across multiple content delivery networks |
US8954722B2 (en) | 2011-03-04 | 2015-02-10 | Broadcom Corporation | Enforcing software updates in an electronic device |
CN103797811B (en) * | 2011-09-09 | 2017-12-12 | 乐天株式会社 | The system and method for the control contacted for consumer to interactive television |
US9854280B2 (en) | 2012-07-10 | 2017-12-26 | Time Warner Cable Enterprises Llc | Apparatus and methods for selective enforcement of secondary content viewing |
WO2014011160A1 (en) * | 2012-07-10 | 2014-01-16 | Motorola Mobility Llc | Secure method of enforcing client code version upgrade in digital rights management system |
US9565472B2 (en) | 2012-12-10 | 2017-02-07 | Time Warner Cable Enterprises Llc | Apparatus and methods for content transfer protection |
KR20140077539A (en) * | 2012-12-14 | 2014-06-24 | 삼성전자주식회사 | Method and apparatus for protecting application program |
US9131283B2 (en) | 2012-12-14 | 2015-09-08 | Time Warner Cable Enterprises Llc | Apparatus and methods for multimedia coordination |
US20140282786A1 (en) | 2013-03-12 | 2014-09-18 | Time Warner Cable Enterprises Llc | Methods and apparatus for providing and uploading content to personalized network storage |
US10368255B2 (en) | 2017-07-25 | 2019-07-30 | Time Warner Cable Enterprises Llc | Methods and apparatus for client-based dynamic control of connections to co-existing radio access networks |
US9066153B2 (en) | 2013-03-15 | 2015-06-23 | Time Warner Cable Enterprises Llc | Apparatus and methods for multicast delivery of content in a content delivery network |
US9313568B2 (en) | 2013-07-23 | 2016-04-12 | Chicago Custom Acoustics, Inc. | Custom earphone with dome in the canal |
US9692879B1 (en) | 2014-05-20 | 2017-06-27 | Invincea, Inc. | Methods and devices for secure authentication to a compute device |
US9621940B2 (en) | 2014-05-29 | 2017-04-11 | Time Warner Cable Enterprises Llc | Apparatus and methods for recording, accessing, and delivering packetized content |
US11540148B2 (en) | 2014-06-11 | 2022-12-27 | Time Warner Cable Enterprises Llc | Methods and apparatus for access point location |
US9935833B2 (en) | 2014-11-05 | 2018-04-03 | Time Warner Cable Enterprises Llc | Methods and apparatus for determining an optimized wireless interface installation configuration |
US9986578B2 (en) | 2015-12-04 | 2018-05-29 | Time Warner Cable Enterprises Llc | Apparatus and methods for selective data network access |
US9918345B2 (en) | 2016-01-20 | 2018-03-13 | Time Warner Cable Enterprises Llc | Apparatus and method for wireless network services in moving vehicles |
US10492034B2 (en) | 2016-03-07 | 2019-11-26 | Time Warner Cable Enterprises Llc | Apparatus and methods for dynamic open-access networks |
US10496814B2 (en) * | 2016-03-07 | 2019-12-03 | Intertrust Technologies Corporation | Software integrity checking systems and methods |
US10687115B2 (en) | 2016-06-01 | 2020-06-16 | Time Warner Cable Enterprises Llc | Cloud-based digital content recorder apparatus and methods |
US10164858B2 (en) | 2016-06-15 | 2018-12-25 | Time Warner Cable Enterprises Llc | Apparatus and methods for monitoring and diagnosing a wireless network |
US10911794B2 (en) | 2016-11-09 | 2021-02-02 | Charter Communications Operating, Llc | Apparatus and methods for selective secondary content insertion in a digital network |
US10645547B2 (en) | 2017-06-02 | 2020-05-05 | Charter Communications Operating, Llc | Apparatus and methods for providing wireless service in a venue |
US10638361B2 (en) | 2017-06-06 | 2020-04-28 | Charter Communications Operating, Llc | Methods and apparatus for dynamic control of connections to co-existing radio access networks |
EP3432563A1 (en) * | 2017-07-21 | 2019-01-23 | CL Schutzrechtsverwaltungs GmbH | Method for producing a machine-readable controlling and/or operating means |
US11109290B2 (en) | 2017-08-04 | 2021-08-31 | Charter Communications Operating, Llc | Switching connections over frequency bands of a wireless network |
US10803204B2 (en) | 2018-01-25 | 2020-10-13 | Digital Guardian Llc | Systems and methods for defining and securely sharing objects in preventing data breach or exfiltration |
US10939142B2 (en) | 2018-02-27 | 2021-03-02 | Charter Communications Operating, Llc | Apparatus and methods for content storage, distribution and security within a content distribution network |
CN110535630B (en) * | 2018-05-24 | 2022-07-01 | 上海赢亥信息科技有限公司 | Key generation method, device and storage medium |
US11080387B1 (en) * | 2020-03-16 | 2021-08-03 | Integrity Security Services Llc | Validation of software residing on remote computing devices |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870474A (en) * | 1995-12-04 | 1999-02-09 | Scientific-Atlanta, Inc. | Method and apparatus for providing conditional access in connection-oriented, interactive networks with a multiplicity of service providers |
US4712239A (en) | 1986-06-16 | 1987-12-08 | General Instrument Corporation | Security arrangement for downloadable cable television converters |
US5003591A (en) | 1989-05-25 | 1991-03-26 | General Instrument Corporation | Functionally modifiable cable television converter system |
US5343527A (en) * | 1993-10-27 | 1994-08-30 | International Business Machines Corporation | Hybrid encryption method and system for protecting reusable software components |
US5572590A (en) | 1994-04-12 | 1996-11-05 | International Business Machines Corporation | Discrimination of malicious changes to digital information using multiple signatures |
US5724425A (en) * | 1994-06-10 | 1998-03-03 | Sun Microsystems, Inc. | Method and apparatus for enhancing software security and distributing software |
US5606609A (en) * | 1994-09-19 | 1997-02-25 | Scientific-Atlanta | Electronic document verification system and method |
EP0719045B1 (en) * | 1994-12-13 | 2003-10-29 | Mitsubishi Corporation | Crypt key system for secure electronic transactions |
US5943422A (en) * | 1996-08-12 | 1999-08-24 | Intertrust Technologies Corp. | Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels |
US6157719A (en) * | 1995-04-03 | 2000-12-05 | Scientific-Atlanta, Inc. | Conditional access system |
US6005938A (en) * | 1996-12-16 | 1999-12-21 | Scientific-Atlanta, Inc. | Preventing replay attacks on digital information distributed by network service providers |
US6252964B1 (en) * | 1995-04-03 | 2001-06-26 | Scientific-Atlanta, Inc. | Authorization of services in a conditional access system |
US5757914A (en) * | 1995-10-26 | 1998-05-26 | Sun Microsystems, Inc. | System and method for protecting use of dynamically linked executable modules |
JP2000503154A (en) | 1996-01-11 | 2000-03-14 | エムアールジェイ インコーポレイテッド | System for controlling access and distribution of digital ownership |
TW313642B (en) | 1996-06-11 | 1997-08-21 | Ibm | A uniform mechanism for using signed content |
US5898156A (en) | 1996-08-29 | 1999-04-27 | Lucent Technologies Inc. | Validation stamps for electronic signatures |
US6061451A (en) * | 1996-09-03 | 2000-05-09 | Digital Vision Laboratories Corporation | Apparatus and method for receiving and decrypting encrypted data and protecting decrypted data from illegal use |
US6167520A (en) * | 1996-11-08 | 2000-12-26 | Finjan Software, Inc. | System and method for protecting a client during runtime from hostile downloadables |
US6154844A (en) * | 1996-11-08 | 2000-11-28 | Finjan Software, Ltd. | System and method for attaching a downloadable security profile to a downloadable |
US6006228A (en) | 1996-12-11 | 1999-12-21 | Ncr Corporation | Assigning security levels to particular documents on a document by document basis in a database |
BR9815610A (en) * | 1997-08-01 | 2004-06-22 | Scientific Atlanta | Verification of program information source in conditional access system |
DE69808113T2 (en) | 1997-08-01 | 2003-05-22 | Scientific Atlanta | SOURCE AUTHENTICATION OF REMOTE LOADING INFORMATION IN A SYSTEM WITH CONDITIONAL ACCESS |
US6069647A (en) * | 1998-01-29 | 2000-05-30 | Intel Corporation | Conditional access and content security method |
US6256393B1 (en) * | 1998-06-23 | 2001-07-03 | General Instrument Corporation | Authorization and access control of software object residing in set-top terminals |
AU6944300A (en) * | 1999-09-02 | 2001-03-26 | General Instrument Corporation | Detection of suspect software objects and signatures after failed authentication |
BR0114602A (en) * | 2000-10-13 | 2004-09-28 | Eversystems Inc | Secret Key Message Generation |
-
1999
- 1999-02-24 US US09/257,274 patent/US6256393B1/en not_active Expired - Lifetime
- 1999-09-02 US US09/389,107 patent/US6742121B1/en not_active Expired - Fee Related
-
2000
- 2000-02-03 EP EP00905966A patent/EP1155359B1/en not_active Expired - Lifetime
- 2000-02-03 AU AU27550/00A patent/AU2755000A/en not_active Abandoned
- 2000-02-03 CA CA002361757A patent/CA2361757A1/en not_active Abandoned
- 2000-02-03 DE DE60036086T patent/DE60036086T2/en not_active Expired - Lifetime
- 2000-02-03 WO PCT/US2000/002855 patent/WO2000050978A1/en active IP Right Grant
- 2000-02-03 BR BR0008502-2A patent/BR0008502A/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
DE60036086T2 (en) | 2008-05-21 |
EP1155359A1 (en) | 2001-11-21 |
DE60036086D1 (en) | 2007-10-04 |
US6256393B1 (en) | 2001-07-03 |
EP1155359B1 (en) | 2007-08-22 |
WO2000050978A1 (en) | 2000-08-31 |
US6742121B1 (en) | 2004-05-25 |
BR0008502A (en) | 2003-01-07 |
AU2755000A (en) | 2000-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6256393B1 (en) | Authorization and access control of software object residing in set-top terminals | |
US11870758B2 (en) | Systems and methods for application identification | |
US8302163B2 (en) | System and method for secure communication | |
EP1256042B1 (en) | Method and system for secure downloading of software | |
US5978484A (en) | System and method for safety distributing executable objects | |
US8522361B2 (en) | Tokenized resource access | |
US7415620B2 (en) | System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party | |
US7424606B2 (en) | System and method for authenticating an operating system | |
US8136166B2 (en) | Installation of black box for trusted component for digital rights management (DRM) on computing device | |
US20040015958A1 (en) | Method and system for conditional installation and execution of services in a secure computing environment | |
US9129098B2 (en) | Methods of protecting software programs from unauthorized use | |
EP1662693B1 (en) | Digital literary work protection system and digital literary work protection method | |
US6950932B1 (en) | Security association mediator for java-enabled devices | |
US6564325B1 (en) | Method of and apparatus for providing multi-level security access to system | |
EP1221077B1 (en) | Detection of suspect software objects and signatures after failed authentication | |
US20030018445A1 (en) | Detection of unauthorized applications, objects, or configurations in a local device of a cable system | |
CN116781761B (en) | Application program calling method and device | |
MXPA01008592A (en) | Authorization and access control of software object residing in set-top terminals | |
CN117521035A (en) | Software offline authorization management method and device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
FZDE | Discontinued | ||
FZDE | Discontinued |
Effective date: 20100505 |