US20060242406A1 - Protected computing environment - Google Patents
Protected computing environment Download PDFInfo
- Publication number
- US20060242406A1 US20060242406A1 US11/116,598 US11659805A US2006242406A1 US 20060242406 A1 US20060242406 A1 US 20060242406A1 US 11659805 A US11659805 A US 11659805A US 2006242406 A1 US2006242406 A1 US 2006242406A1
- Authority
- US
- United States
- Prior art keywords
- kernel
- component
- protected environment
- secure
- loading
- 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
- 238000000034 method Methods 0.000 claims abstract description 172
- 230000008569 process Effects 0.000 claims abstract description 143
- 238000010200 validation analysis Methods 0.000 claims abstract description 5
- 239000012092 media component Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 35
- 238000007726 management method Methods 0.000 description 31
- 230000007246 mechanism Effects 0.000 description 22
- 239000013598 vector Substances 0.000 description 21
- 238000004891 communication Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change 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
- 238000001514 detection method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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]
- G06F21/106—Enforcing content protection by specific content processing
- G06F21/1064—Restricting content processing at operating system level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
- H04L2209/603—Digital right managament [DRM]
Definitions
- FIG. 1 is a block diagram showing a conventional media application processing media content operating in a conventional computing environment with an indication of an attack against the system.
- FIG. 2 is a block diagram showing a trusted application processing media content and utilizing a protected environment that tends to be resistant to attacks.
- FIG. 3 is a block diagram showing exemplary components of a trusted application that may be included in the protected environment.
- FIG. 4 is a block diagram showing a system for downloading digital media content from a service provider that utilizes an exemplary trusted application utilizing a protected environment.
- FIG. 5 is a block diagram showing exemplary attack vectors that may be exploited by a user or mechanism attempting to access media content and other data typically present in a computing environment in an unauthorized manner.
- FIG. 6 is a flow diagram showing the process for creating and maintaining a protected environment that tends to limit unauthorized access to media content and other data.
- FIG. 7 is a block diagram showing exemplary kernel components and other components utilized for creating an exemplary secure computing environment.
- FIG. 8 and FIG. 9 are flow diagrams showing an exemplary process for loading kernel components to create an exemplary secure computing environment.
- FIG. 10 is a block diagram showing a secure computing environment loading an application into an exemplary protected environment to form a trusted application that is typically resistant to attacks.
- FIG. 11 is a flow diagram showing an exemplary process for creating a protected environment and loading an application into the protected environment.
- FIG. 12 is a block diagram showing an exemplary trusted application utilizing an exemplary protected environment periodically checking the security state of the secure computing environment.
- FIG. 13 is a flow diagram showing an exemplary process for periodically checking the security state of the secure computing environment.
- FIG. 14 is a block diagram showing an exemplary computing environment in which the processes, systems and methods for establishing a secure computing environment including a protected environment may be implemented.
- FIG. 1 is a block diagram showing a conventional media application 105 processing media content 106 operating in a conventional computing environment 100 with an indication of an attack 107 against the system 101 .
- a conventional computing environment 100 may be provided by a personal computer (“PC”) or consumer electronics (“CE”) device 101 that may include operating system (“OS”) 102 .
- OS operating system
- Typical operating systems often partition their operation into a user mode 103 , and a kernel mode 104 .
- User mode 103 and kernel mode 104 may be used by one or more application programs 105 .
- An application program 105 may be used to process media content 106 that may be transferred to the device 101 via some mechanism, such as a CD ROM drive, Internet connection or the like.
- An example of content 106 would be media files that may be used to reproduce audio and video information.
- the computing environment 100 may typically include an operating system (“OS”) 102 that facilitates operation of the application 105 , in conjunction with the one or more central processing units (“CPU”). Many operating systems 102 may allow multiple users to have access to the operation of the CPU. Multiple users may have ranges of access privileges typically ranging from those of a typical user to those of an administrator. Administrators typically have a range of access privileges to applications 105 running on the system, the user mode 103 and the kernel 104 . Such a computing environment 100 may be susceptible to various types of attacks 107 . Attacks may include not only outsiders seeking to gain access to the device 101 and the content 106 on it, but also attackers having administrative rights to the device 101 or other types of users having whatever access rights granted them.
- OS operating system
- CPU central processing units
- FIG. 2 is a block diagram showing a trusted application 202 processing media content 106 and utilizing a protected environment 203 that tends to be resistant to attack 205 .
- trusted application may be defined as an application that utilizes processes operating in a protected environment such that they tend to be resistant to attack 205 and limit unauthorized access to any media content 106 or other data being processed. Thus, components or elements of an application operating in a protected environment are typically considered “trusted” as they tend to limit unauthorized access and tend to be resistant to attack.
- Such an application 202 may be considered a trusted application itself or it may utilize another trusted application to protect a portion of its processes and/or data.
- a trusted media player 202 may be designed to play media content 106 that is typically licensed only for use such that the media content 106 cannot be accessed in an unauthorized manner.
- Such a trusted application 202 may not operate and/or process the media content 106 unless the computing environment 200 can provide the required level of security, such as by providing a protected environment 203 resistant to attack 205 .
- process can be defined as an instance of a program (including executable code, machine instructions, variables, data, state information, etc.) residing and/or operating in a kernel space, user space and/or any other space of an operating system and/or computing environment.
- a digital rights management system 204 or the like may be utilized with the protected environment 203 .
- the use of a digital rights management system 204 is merely provided as an example and may not be utilized with a protected environment or a secure computing environment.
- a digital rights management system utilizes tamper-resistant software (“TRS”) which tends to be expensive to produce and may negatively impact computing performance.
- TRS tamper-resistant software
- Utilizing a trusted application 202 may minimize the amount of TRS functionality required to provide enhanced protection.
- digital right management as used herein may be a mechanism as simple as decrypting an encrypted media, utilizing a password to access data, or other tamper-resistant mechanisms.
- the mechanisms to perform these tasks may be very simple and entirely contained within the trusted application 202 or may be accessed via interfaces that communicate with complex systems otherwise distinct from the trusted application 202 .
- FIG. 3 is a block diagram showing exemplary components of a trusted application 202 that may be included in the protected environment 203 .
- a trusted application 202 will typically utilize a protected environment 203 for at least a potion of its subcomponents 302 - 304 . Other components 301 of the trusted application may not utilize a protected environment. Components 302 - 204 involved in the processing of media content or data that may call for an enhanced level of protection from attack or unauthorized access may operate within a protected environment 203 .
- a protected environment 203 may be utilized by a single trusted application 202 or, possibly, by a plurality of trusted applications. Alternatively, a trusted application 202 may utilize a plurality of protected environments.
- a trusted application 202 may also couple to and/or utilize a digital rights management system 204 .
- source 302 and sink 303 are shown as part of a media pipeline 304 operating in the protected environment 203 .
- a protected environment 203 tends to ensure that, once protected and/or encrypted content 309 has been received and decrypted, the trusted application 202 and its components prevent unauthorized access to the content 309 .
- Digital rights management 204 may provide a further avenue of protection for the trusted application 202 and the content 309 it processes. Through a system of licenses 308 , device certificates 311 , and other security mechanisms a content provider is typically able to have confidence that encrypted content 309 has been delivered to the properly authorized device and that the content 309 is used as intended.
- FIG. 4 is a block diagram showing a system for downloading digital media content 410 from a service provider 407 to an exemplary trusted application 202 utilizing a protected environment 203 .
- the trusted application 202 is shown being employed in two places 401 , 403 .
- the trusted application 202 may be used in a CE device 401 or a PC 403 .
- Digital media 410 may be downloaded via a service provider 407 and the Internet 405 for use by the trusted application 202 .
- digital media may be made available to the trusted application via other mechanisms such as a network, a CD or DVD disk, or other storage media.
- the digital media 410 may be provided in an encrypted form 309 requiring a system of decryption keys, licenses, certificates and/or the like which may take the form of a digital rights management system 204 .
- the data or media content 410 provided to the trusted application may or may not be protected, i.e, encrypted or the like.
- a trusted application 202 may utilize a digital rights management (“DRM”) system 204 or the like along with a protected environment 203 .
- the trusted application 202 is typically designed to acknowledge, and adhere to, the content's usage policies by limiting usage of the content to that authorized by the content provider via the policies. Implementing this may involve executing code which typically interrogates content licenses and subsequently makes decisions about whether or not a requested action can be taken on a piece of content.
- This functionality may be provided, at least in part, by a digital rights management system 204 .
- An example of a Digital Rights Management system is provided in U.S. patent application Ser. No. 09/290,363, filed Apr. 12, 1999, U.S. patent applications Ser. Nos. 10/185,527, 10/185,278, and 10/185,511, each filed on Jun. 28, 2002 which are hereby incorporated by reference in its entirety.
- a trusted application 202 that may be utilized in the CE device 401 or the PC 403 may include making sure the trusted application 202 which decrypts and processes the content 309 may be “secure” from malicious attacks.
- a protected environment 203 typically refers to an environment that may not be easy to attack.
- the trusted applications 202 operate in a consumer electronics device 401 , which may be periodically synced to a PC 403 that also provides a trusted application.
- the PC 403 is in turn coupled 404 to the internet 405 .
- the internet connection allows digital media 410 to be provided by a service provider 407 .
- the service provider 407 may transmit licenses and encrypted media 406 over the internet 405 to trusted application 202 . Once encrypted media is delivered and decrypted it may be susceptible to various forms of attack.
- a protected computing environment tends to provide an environment that limits hackers from gaining access to unauthorized content.
- a hacker may include hackers acting as a systems administrator.
- a systems administrator typically has full control of virtually all of the processes being executed on a computer, but this access may not be desirable. For example, if a system user has been granted a license to use a media file should not be acceptable for a system administrator different from the user to be able to access the media file.
- a protected environment tends to contribute to the creation of a process in which code that decrypts and processes content can operate without giving hackers access to the decrypted content.
- a protected environment may also limit unauthorized access to users of privilege, such as administrators, and/or any other user, who may otherwise gain unauthorized access to protected content. Protection may include securing typical user mode processes ( FIG. 1, 103 ) and kernel mode processes ( FIG. 1, 104 ) and any data they may be processing.
- Processes operating in the kernel may be susceptible to attack.
- objects are created, including processes, that may allow unlimited access by an administrator.
- an administrator typically with full access privileges, may access virtually all processes.
- Protected content may include policy or similar information indicating the authorized use of the content. Such policy may be enforced via a DRM system or other security mechanism. Typically, access to protected content is granted through the DRM system or other mechanism, which may enforce policy. However, a system administrator, with full access to the system, may alter the state of the DRM system or mechanism to disregard the content policy.
- a protected environment tends to provide a protected space that restricts unauthorized access to media content being processed therein, even for high-privilege users such as an administrator.
- a trusted application may be created in which a content provider may feel that adequate security is provided to protect digital media from unauthorized access and may also protect the content's policy from be tampered with along with any other data, keys or protection mechanisms that may be associated with the media content.
- OS operating system
- kernel mode attacks user mode attacks
- Kernel mode is typically considered to be the trusted base of the operating system.
- the core of the operating system and most system and peripheral drivers may operate in kernel mode.
- any piece of code running in the kernel is susceptible to intrusion by any other piece of code running in the kernel, which tends not to be the case for user mode.
- code running in kernel mode typically has access to substantially all user mode processes.
- a CPU may also provide privilege levels for various code types. Kernel mode code is typically assigned the highest level of privilege by such a CPU, typically giving it full access to the system.
- the second type of attack is the user mode attack.
- Code that runs in user mode may or may not be considered trusted code by the system depending on the level of privilege it has been assigned. This level of privilege may be determined by the user context or account in which it is operating. User mode code running in the context of an administrator account may have full access to the other code running on the system. In addition, code that runs in user mode may be partitioned to prevent one user from accessing another's processes.
- the protected environment is typically designed to protect against unauthorized access that may otherwise be obtained via one or more of these attack vectors.
- the protected environment may protect against attack vectors that may include: process creation, malicious user mode applications, loading malicious code into a process, malicious kernel code, invalid trust authorities, and external attack vectors.
- Process creation is a possible attack vector.
- An operating system typically includes a “create process” mechanism that allows a parent process to create a child process.
- a malicious parent process may, by modifying the create process code or by altering the data it creates, make unauthorized modifications to the child process being created. This could result in compromising digital media that may be processed by a child process created by a malicious parent process.
- Malicious user mode applications are a possible attack vector.
- An operating system typically includes administrator level privileges. Processes running with administrator privileges may have unlimited access to many operating system mechanisms and to nearly all processes running on the computer. Thus, in Windows for example, a malicious user mode application running with administrator privileges may gain access to many other processes running on the computer and may thus compromise digital media. Similarly, processes operating in the context of any user may be attacked by any malicious process operating in the same context.
- Loading malicious code into a secure process is a possible attack vector. It may be possible to append or add malicious code to a process. Such a compromised process cannot be trusted and may obtain unauthorized access to any media content or other data being processed by the modified process.
- Malicious kernel mode code is a possible attack vector.
- An operating system typically includes a “system level” of privilege.
- system level of privilege.
- all code running in kernel mode is typically running as system and therefore may have maximum privileges.
- drivers running in kernel mode may have maximum opportunity to attack any user mode application, for example.
- Such an attack by malicious kernel mode code may compromise digital media.
- TAs Invalid trust authorities
- TAs may participate in the validation of media licenses and may subsequently “unlock” the content of a digital media.
- TAs may be specific to a media type or format and may be implemented by media providers or their partners. As such, TAs may be pluggable and/or may be provided as dynamic link libraries (“DLL”) or the like.
- DLL dynamic link libraries
- a DLL may be loaded by executable code, including malicious code. In order for a TA to ensure that the media is properly utilized it needs to be able to ensure that the process in which it is running is secure. Otherwise the digital media may be compromised.
- External attacks are another possible attack vector.
- FIG. 5 is a block diagram showing exemplary attack vectors 507 - 510 that may be exploited by a user or mechanism attempting to access media content and other data 500 typically present in a computing environment 100 in an unauthorized manner.
- a protected environment may protect against these attack vectors such that unauthorized access to trusted applications and the data they process is limited and resistance to attack is provided. Such attacks may be waged by users of the system or mechanisms that may include executable code.
- the media application 105 is shown at the center of the diagram and the attack vectors 507 - 510 tend to focus on accessing sensitive data 500 being stored and/or processed by the application 105 .
- a possible attack vector 509 may be initiated via a malicious user mode application 502 .
- both the parent of a process, and any process with administrative privileges typically have unlimited access to other processes, such as one processing media content, and the data they process. Such access to media content may be unauthorized.
- a protected environment may ensure that a trusted application and the media content it processes are resistant to attacks by other user mode applications.
- a possible attack vector 508 is the loading of malicious code 503 into a process 501 . Having a secure process that is resistant to attacks from the outside is typically only as secure as the code running on the inside forming the process. Given that DLLs and other code are typically loaded into processes for execution, a mechanism that may ensure that the code being loaded is trusted to run inside a process before loading it into the process may be provided in a protected environment.
- a possible vector of attack 510 is through malicious kernel mode code 504 .
- Code running in kernel mode 104 typically has maximum privileges. The result may be that drivers running in kernel mode may have a number of opportunities to attack other applications. For instance, a driver may be able to access memory directly in another process. The result of this is that a driver could, once running, get access to a processes memory which may contain decrypted “encrypted media content” ( FIG. 3, 309 ). Kernel Mode attacks may be prevented by ensuring that the code running in the kernel is non-malicious code, as provided by this example.
- a possible attack vector 507 is by external attacks 506 to the system 100 .
- This group represents the set of attacks that typically do not require malicious code to be running on the system 100 . For instance, attaching a debugger to an application and/or a process on the system, searching a machine for sensitive data, etc.
- a protected environment may be created to resist these types of attacks.
- FIG. 6 is a flow diagram showing the process 600 for creating and maintaining a protected environment that tends to limit unauthorized access to media content and other data.
- the sequence 600 begins when a computer system is started 602 and the kernel of the operating system is loaded and a kernel secure flag is set 604 to an initial value.
- the process continues through the time that a protected environment is typically created and an application is typically loaded into it 606 .
- the process includes periodic checking 608 via the protected environment that seeks to ensure the system remains secure through the time the secure process is needed.
- kernel is defined as the central module of an operating system for a computing environment, system or device.
- the kernel module may be implemented in the form of computer-executable instructions and/or electronic logic circuits.
- the kernel is responsible for memory management, process and task management, and storage media management of a computing environment.
- kernel component is defined to be a basic controlling mechanism, module, computer-executable instructions and/or electronic logic circuit that forms a portion of the kernel.
- a kernel component may be a “loader”, which may be responsible for loading other kernel components in order to establish a fully operational kernel.
- Block 602 represents the start-up of a computer system. This typically begins what is commonly known as the boot process and includes loading of an operating system from disk or some other storage media.
- one of the first operations during the boot process is the loading of the kernel and its components.
- This example provides the validation of kernel components and, if all are successfully validated as secure, the setting of a flag indicating the kernel is secure. This is shown in block 604 .
- a user may start an application such as a trusted media player which may require a protected environment.
- This example provides a secure kernel with an application operating in a protected environment, as shown in block 606 .
- the trusted environment may periodically check the kernel secure flag to ensure the kernel remains secure, as shown in block 608 . That is, from the point in time that the trusted application begins operation, a check may be made periodically to determine whether any unauthorized kernel components have been loaded. Such unauthorized kernel components could attack the trusted application or the data it may be processing. Therefore, if any such components are loaded, the kernel secure flag may be set appropriately.
- FIG. 7 is a block diagram showing exemplary kernel components 720 - 730 and other components 710 - 714 utilized in creating an exemplary secure computing environment 200 .
- This figure shows a computer system containing several components 710 - 730 typically stored on a disk or the like, several of which are used to form the kernel of an operating system when a computer is started.
- Arrow 604 indicates the process of loading the kernel components into memory forming the operational kernel of the system.
- the loaded kernel 750 is shown containing its various components 751 - 762 and a kernel secure flag 790 indicating whether or not the kernel is considered secure for a protected environment.
- the kernel secure flag 790 being described as a “flag” is not meant to be limiting; it may be implemented as a boolean variable or as a more complex data structure or mechanism.
- Kernel components 720 - 730 are typically “signed” and may include a certificate data 738 that may allow the kernel to validate that they are the components they claim to be, that they have not been modified and/or are not malicious.
- a signature block and/or certificate data 738 may be present in each kernel component 720 - 730 and/or each loaded kernel component 760 , 762 .
- the signature and/or certificate data 738 may be unique to each component.
- the signature and/or certificate data 738 may be used in the creation and maintenance of protected environments as indicated below.
- a component is “signed” by its provider in such as way as to securely identify the source of the component and/or indicate whether it may have been tampered with.
- a signature may be implemented as a hash of the component's header or by using other techniques.
- a conventional certificate or certificate chain may also be included with a component that may be used to determine if the component can be trusted.
- the signature and/or certificate data 738 are typically added to a component before it is distributed for public use. Those skilled in the art will be familiar with these technologies and their use.
- kernel loader 751 may typically load the components of the kernel from disk or the like into a portion of system memory to form the kernel of the operating system. Once all of the kernel components are loaded and operational the computer and operating system are considered “booted” and ready for normal operation.
- Kernel component # 1 720 thru kernel component #n 730 in the computing environment, may be stored on a disk or other storage media, along with a revocation list 714 , a kernel dump flag 712 and a debugger 710 along with a debug credential 711 .
- Arrow 604 indicates the kernel loading process which reads the various components 714 - 730 from their storage location and loads them into system memory forming a functional operating system kernel 750 .
- the kernel dump flag 712 being described as a “flag” is not meant to be limiting; it may be implemented as a boolean variable or as a more complex data structure or mechanism.
- the kernel loader 751 along with the PE management portion of the kernel 752 , the revocation list 754 and two of the kernel components 720 and 722 are shown loaded into the kernel, the latter as blocks 760 and 762 , along with an indication of space for additional kernel components yet to be loaded into the kernel, 764 and 770 .
- the kernel 750 includes a kernel secure flag 790 which may be used to indicate whether or not the kernel 750 is currently considered secure or not. This illustration is provided as an example and is not intended to be limiting or complete.
- the kernel loader 751 , the PE management portion of the kernel 752 and/or the other components of the kernel are shown as distinct kernel components for clarity of explanation but, in actual practice, may or may not be distinguishable from other portions of the kernel.
- a revocation list 714 may be used in conjunction with the signature and certificate data 738 associated with the kernel components 760 and 762 .
- This object 714 may retain a list of signatures, certificates and/or certificate chains that are no longer considered valid as of the creation date of the list 714 .
- the revocation list 714 is shown loaded into the kernel as object 754 .
- Such lists are maintained because a validly-signed and certified component, for example components 760 and 762 , may later be discovered to have some problem.
- the system may use such a list 754 to check kernel components 720 - 730 as they are loaded, which may be properly signed and/or have trusted certificate data 738 , but that may have subsequently been deemed untrustworthy.
- Such a revocation list 754 will typically include version information 755 so that it can more easily be identified, managed and updated as required.
- Debuggers may not typically be considered a part of the kernel but may be present in a computing environment 200 .
- Debuggers including those known as kernel debuggers, system analyzers, and the like, may have broad access to the system and the processes running on the system along with any data.
- a debugger 710 may be able access any data in a computing environment 200 , including media content that should not be accessed in a manner other than that authorized.
- debugging is typically a part of developing new functionality and it typically is possible to debug within protected environments the code intended to process protected media content.
- a debugger 710 may thus include debug credentials 711 which may indicate that the presence of the debugger 710 on a system is authorized. Thus detection of the presence of a debugger 710 along with any accompanying credentials 711 may be a part of the creation and maintenance of protected environments ( FIG. 6, 600 ).
- the computing environment 200 may include a kernel dump flag 712 .
- This flag 712 may be used to indicate how much of kernel memory is available for inspection in case of a catastrophic system failure. Such kernel dumps may be used for postmortem debugging after such as failure. If such a flag 712 indicates that substantially all memory is available for inspection upon a dump then the kernel 750 may be considered insecure as hacker could run an application which exposes protected media in system memory and then force a catastrophic failure condition which may result in the memory being available for inspection including that containing the exposed media content. Thus a kernel dump flag 712 may be used in the creation and maintenance of a protected environments ( FIG. 6, 600 ).
- FIG. 8 and FIG. 9 are flow diagrams showing an exemplary process 604 for loading kernel components to create an exemplary secure computing environment.
- This process 604 begins after the kernel loader has been started and the PE management portion of the kernel has been loaded and made operational. Not shown in these figures, the PE management portion of the kernel may validate the kernel loader itself and/or any other kernel elements that may have been previously loaded. Validation may be defined as determining whether or not a given component is considered secure and trustworthy as illustrate in part 2 of this process 604 .
- kernel containing any components that are not authorized for secure use does not provide a secure computing environment within which protected environments may operate. The opposite may not be true as it depends on other factors such as attack vectors.
- Block 801 shows the start of the loading process 604 after the PE management portion of the kernel has been loaded and made operational. Any component loaded in the kernel prior to this may be validated as described above.
- Block 802 shows that the kernel secure flag initially set to TRUE unless any component loaded prior to the PE management portion of the kernel, or that component itself, is found to be insecure at which point the kernel secure flag may be set to FALSE.
- the indication of TRUE or FALSE may take various forms; the use of TRUE or FALSE here is only an example and is not meant to be limiting.
- Block 804 indicates a check for the presence of a debugger in the computing environment.
- a debugger could reside remotely and be attached to the computing environment via a network or other communications media to a process in the computing environment. If no debugger is detected the loading process 604 continues at block 810 . Otherwise it continues at block 809 . Not shown in the diagram, this check may be performed periodically and the state of the kernel secure flag updated accordingly.
- block 806 shows a check for debug credentials which may indicate that debugging may be authorized on the system in the presence of a protected environment. If such credentials are not present, the kernel secure flag may be set to FALSE as shown in block 808 . Otherwise the loading process 604 continues at block 810 .
- Block 810 shows a check of the kernel dump flag. If this flag indicates that a full kernel memory dump or the like may be possible then the kernel secure flag may be set to FALSE as shown in block 808 . Otherwise the loading process 604 continues at block 812 . Not shown in the diagram, this check may be performed periodically and the state of the kernel secure flag updated accordingly.
- Block 812 shows the loading of the revocation list into the kernel.
- the revocation list may be used to check debug credentials, or other previously loaded credentials, signatures, certificate data, or the like, this step may take place earlier in the sequence (prior to the loading of credentials and the like to be checked) than shown.
- this step may take place earlier in the sequence (prior to the loading of credentials and the like to be checked) than shown.
- the kernel secure flag may be set to FALSE and the loading process 604 continues at block 814 .
- a revocation list may or may not be loaded into the kernel to be used in the creation and maintenance of a protected environments.
- Block 814 shows the transition to part 2 of this diagram shown in FIG. 9 and continuing at block 901 .
- Block 902 shows a check for any additional kernel components to be loaded. If all components have been loaded then the load process 604 is usually complete and the kernel secure flag remains in whatever state it was last set to, either TRUE or FALSE. If there are additional kernel components to be loaded the load process 604 continues at block 906 .
- Block 906 shows a check for a valid signature of the next component to be loaded. If the signature is invalid then the kernel secure flag may be set to FALSE as shown in block 91 8 . Otherwise the loading process 604 continues at block 908 . If no component signature is available the component may be considered insecure and the kernel secure flag may be set to FALSE as shown in block 918 . Signature validity may be determined by checking for a match on a list of valid signatures and/or by checking whether the signer's identity is a trusted identity. As familiar to those skilled in the security technology area, other methods could also be used to validate component signatures.
- Block 908 shows a check of the component's certificate data. If the certificate data is invalid then the kernel secure flag may be set to FALSE as shown in block 918 . Otherwise the loading process 604 continues at block 910 . If no component certificate data is available the component may be considered insecure and the kernel secure flag may be set to FALSE as shown in block 918 . Certificate data validity may be determined by checking the component's certificate data to see if the component is authorized for secure use. As familiar to those skilled in the art, other methods could also be used to validate component certificate data.
- Block 910 shows a check of the component's signature against a revocation list loaded in the kernel. If the signature is present on the list, indicating that it has been revoked, then the kernel secure flag may be set to FALSE as shown in block 918 . Otherwise the loading process 604 continues at block 912 .
- Block 912 shows a check of the component's certificate data against a revocation list. If the certificate data is present on the list, indicating that it has been revoked, then the kernel secure flag may be set to FALSE as shown in block 918 . Otherwise the loading process 604 continues at block 914 .
- Block 914 shows a check of the component's signature to determine if it is OK for use. This check may be made by inspecting the component's leaf certificate data to see if the component is authorized for secure use. Certain attributes in the certificate data may indicate if the component is approved for protected environment usage. If not the component may not be appropriately signed and the kernel secure flag may be set to FALSE as shown in block 918 . Otherwise the loading process 604 continues at block 916 .
- Block 916 shows a check of the component's root certificate data. This check may be made by inspecting the component's root certificate data to see if it is listed on a list of trusted root certificates. If not the component may be considered insecure and the kernel secure flag may be set to FALSE as shown in block 918 . Otherwise the loading process 604 continues at block 920 .
- Block 920 shows the loading of the component into the kernel where it is now considered operational. Then the loading process 604 returns to block 902 to check for any further components to be loaded.
- FIG. 10 is a block diagram showing a secure computing environment 200 loading an application 105 into an exemplary protected environment 203 to form a trusted application that is typically resistant to attacks.
- the kernel may be the same as that described in FIG. 7 , has already been loaded and the system 200 is considered fully operational.
- a user starts media application 105 .
- the media application 105 may call for the creation of a protected environment 203 for one or more of its processes and/or components to operate within.
- the protected environment creation process 606 creates the protected environment 203 and loads the application 105 and/or its components as described below.
- FIG. 11 is a flow diagram showing an exemplary process 606 for creating a protected environment and loading an application into the protected environment.
- This process 606 includes the initial step of creating a secure process followed by validating the software component to be loaded into it and then loading the software component into the new secure process and making it operational.
- the result may be a software component operating in a protected environment supported by a secure kernel.
- Such a software component, along with any digital media content or other data it processes, may be protected from various attacks, including those described above.
- Block 1101 shows the start of the protected environment creation process 606 . This point is usually reached when some application or code calls for a protected environment to operate.
- Block 1102 shows the establishment of a protected environment. While not shown in the diagram, this may be accomplished by requesting the operating system to create a new secure process. Code later loaded and operating in this secure process may be considered to be operating in a protected environment. If the kernel secure flag is set to FALSE then the “create new secure process” request may fail. This may be because the system as a whole may be considered insecure and unsuitable for a protected environment and any application or data requiring a protected environment. Alternatively, the “create new secure process” request may succeed and the component loaded into the new process may be informed that the system is considered insecure so that it can modify its operations accordingly. Otherwise the process 606 continues at block 1106 .
- Block 1106 shows a check for a valid signature of the software component to be loaded into the new secure process or protected environment. If the signature is invalid then the process 606 may fail as shown in block 1118 . Otherwise the process 606 continues at block 1108 . Not shown in the process is that the program, or its equivalent, creating the new secure process may also be checked for a valid signature. Thus, for either the component itself and/or the program creating the new secure process, if no signature is available the component may be considered insecure and the process 606 may fail as shown in block 1118 . Signature validity may be determined by checking for a match on a list of valid signatures and/or by checking whether the signer's identity is a trusted identity. As familiar to those skilled in the security technology area, other methods could also be used to validate component signatures.
- Block 1108 shows a check of the software component's certificate data. If the certificate data is invalid then the process 606 may fail as shown in block 1118 . Otherwise the process 606 continues at block 1110 . If no component certificate data is available the component may be considered insecure and the process 606 may fail as shown in block 1118 . Certificate data validity may be determined by checking the component's certificate data to see if the component is authorized for secure use. As familiar to those skilled in the art, other methods could also be used to validate component certificate data.
- Block 1110 shows a check of the component's signature against a revocation list. If the signature is present on the list, indicating that it has been revoked, then the process 606 may fail as shown in block 1118 . Otherwise the process 606 continues at block 1112 .
- Block 1112 shows a check of the component's certificate data against a revocation list. If the certificate data is present on the list, indicating that it has been revoked, then the process 606 may fail as shown in block 1118 . Otherwise the process 606 continues at block 1114 .
- Block 1114 shows a check of the component's signature to determine if it is acceptable for use. This check may be made by inspecting the component's leaf certificate data to see if the component is authorized for secure use. Certain attributes in the certificate data may indicate if the component is approved for protected environment usage. If not the component may be considered to not be appropriately signed and the process 606 may fail as shown in block 1118 . Otherwise the process 606 continues at block 1116 .
- Block 1116 shows a check of the component's root certificate data. This check may be made by inspecting the component's root certificate data to see if it is listed on a list of trusted root certificates. If not the component may be considered insecure and the process 606 may fail as shown in block 1118 . Otherwise the process 606 continues at block 1120 .
- Block 1118 shows the failure of the software component to load followed by block 1130 , the end of the protected environment creation process 606 .
- Block 1120 shows the software component being loaded into the protected environment, where it is considered operational, followed by block 1130 , the end of the protected environment creation process 606 .
- FIG. 12 is a block diagram showing an exemplary trusted application utilizing an exemplary protected environment 202 periodically checking 608 the security state 790 of the secure computing environment 200 .
- the computing environment 200 and the kernel 750 may be the same as those described in FIGS. 7 and 8 .
- the kernel 750 has already been loaded and the computer 200 is considered fully operational.
- a protected environment has been created and the appropriate components of the trusted application have been loaded into it and made operational, establishing a trusted application utilizing a protected environment 202 , hereafter referred to simply as the “protected environment”.
- the protected environment 202 may periodically check with the PE management portion of the kernel 752 to determine whether the kernel 750 remains secure over time. This periodic check may be performed because it is possible for a new component to be loaded into the kernel 750 at any time, including a component that may be considered insecure. If this were to occur, the state of the kernel secure flag 790 would change to FALSE and the code operating in the protected environment 202 has the opportunity to respond appropriately.
- the check kernel secure state process 240 would note the kernel secure flag 790 has changed to FALSE indicating the kernel 750 may no longer be secure.
- the revocation list 745 may be updated and a kernel component previously considered secure may no longer be considered secure, resulting in the kernel secure flag 790 being set to FALSE.
- the application may receive notification that the system 200 is no longer considered secure and can terminate operation, or take other appropriate action to protect itself and/or the media content it is processing.
- FIG. 13 is a flow diagram showing an exemplary process 608 for periodically checking the security state of the secure computing environment.
- This process 608 may be used by a protected environment 202 to determine if the kernel remains secure over time.
- the protected environment 202 may periodically use this process 608 to check the current security status of the kernel.
- the protected environment 202 and/or the software component operating within it may use the current security status information to modify its operation appropriately. Periodic activation of the process may be implemented using conventional techniques.
- the diagram shows a sequence of communications 608 , illustrated with exemplary pseudo code, between the protected environment 202 and the PE management portion of the kernel 752 .
- This communication may include a check of the version of a revocation list which may give an application the ability to specify a revocation list of at least a certain version.
- This communications sequence may be cryptographically secured using conventional techniques.
- the protected environment 202 makes a IsKernelSecure(MinRLVer) call 1320 to the PE management portion of the kernel to query the current security state of the kernel. Included in this call 1320 may be the minimum version (MinRLVer) of the revocation list expected to be utilized.
- an appropriate version revocation list may be located and loaded into the kernel, all kernel components could be re-validated using this new or updated list, the kernel secure flag updated as appropriate and the previous step #3 of this communications sequence 608 repeated.
- FIG. 14 is a block diagram showing an exemplary computing environment 1400 in which the processes, systems and methods for establishing a secure computing environment including a protected environment 203 may be implemented.
- Exemplary personal computer 1400 is only one example of a computing system or device that may provide secure computing environment and/or a protected environment and is not intended to limit the examples described in this application to this particular computing environment or device type.
- PC personal computers
- microprocessor-based systems multiprocessor systems
- set top boxes programmable consumer electronics
- gaming consoles consumer electronic devices
- cellular telephones PDAs, and the like.
- the PC 1400 includes a general-purpose computing system in the form of a computing device 1401 couple to various peripheral devices 1403 , 1404 , 1415 , 1416 and the like.
- the components of computing device 1401 may include one or more processors (including CPUs, GPUs, microprocessors and the like) 1407 , a system memory 1409 , and a system bus 1408 that couples the various system components.
- Processor 1407 processes various computer executable instructions to control the operation of computing device 1401 and to communicate with other electronic and/or computing devices (not shown) via various communications connections such as a network connection 1414 an the like.
- the system bus 1408 represents any number of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and/or a processor or local bus using any of a variety of bus architectures.
- the system memory 1409 may include computer readable media in the form of volatile memory, such as random access memory (RAM), and/or non-volatile memory, such as read only memory (ROM).
- RAM random access memory
- ROM read only memory
- a basic input/output system (BIOS) may be stored in ROM.
- BIOS basic input/output system
- RAM typically contains data and/or program modules that are immediately accessible to and/or presently operated on by one or more of the processors 1407 .
- shown loaded in system memory for operation is a trusted application 202 utilizing a protected environment 203 and the media content being processed 106 .
- Mass storage devices 1404 and 1410 may be coupled to the computing device 1401 or incorporated into the computing device 1401 by coupling to the system bus.
- Such mass storage devices 1404 and 1410 may include a magnetic disk drive which reads from and writes to a removable, non volatile magnetic disk (e.g., a “floppy disk”) 1405 , and/or an optical disk drive that reads from and/or writes to a non-volatile optical disk such as a CD ROM, DVD ROM or the like 1406 .
- Computer readable media 1405 and 1406 typically embody computer readable instructions, data structures, program modules and the like supplied on floppy disks, CDs, DVDs, portable memory sticks and the like.
- Any number of program programs or modules may be stored on the hard disk 1410 , other mass storage devices 1404 , and system memory 1409 (typically limited by available space) including, by way of example, an operating system(s), one or more application programs, other program modules, and/or program data. Each of such operating system, application program, other program modules and program data (or some combination thereof) may include an embodiment of the systems and methods described herein.
- Kernel components 720 - 730 may be stored on the disk 1410 along with other operating system code.
- Media application 105 and/or a digital rights management system 204 may be stored on the disk 1410 along with other application programs. These components 720 - 730 and applications 105 , 204 may be loaded into system memory 1409 and made operational.
- a display device 1416 may be coupled to the system bus 1408 via an interface, such as a video adapter 1411 .
- a user can interface with computing device 1400 via any number of different input devices 1403 such as a keyboard, pointing device, joystick, game pad, serial port, and/or the like.
- These and other input devices may be coupled to the processors 1407 via input/output interfaces 1412 that may be coupled to the system bus 1408 , and may be coupled by other interface and bus structures, such as a parallel port(s), game port(s), and/or a universal serial bus (USB) and the like.
- USB universal serial bus
- Computing device 1400 may operate in a networked environment using communications connections to one or more remote computers and/or devices through one or more local area networks (LANs), wide area networks (WANs), the Internet, radio links, optical links and the like.
- the computing device 1400 may be coupled to a network via a network adapter 1413 or alternatively via a modem, DSL, ISDN interface or the like.
- Communications connection 1414 is an example of communications media.
- Communications media typically embody computer readable instructions, data structures, program modules and/or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
- modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- communications media include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency, infrared, and other wireless media.
- a remote computer or device may store an example of the system described as software.
- a local or terminal computer or device may access the remote computer(s) or device(s) and download a part or all of the software to run a program(s).
- the local computer may download pieces of the software as needed, or distributively process the software by executing some of the software instructions at the local terminal and some at remote computers and/or devices.
- DSP digital signal processor
- PLA programmable logic array
- electronic apparatus includes computing devices and consumer electronic devices comprising any software and/or firmware and the like, and/or electronic devices or circuits comprising no software and/or firmware and the like.
- the term computer readable medium may include system memory, hard disks, mass storage devices and their associated media, communications media, and the like.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
A method of establishing a protected environment within a computing device including validating a kernel component loaded into a kernel of the computing device, establishing a security state for the kernel based on the validation, creating a secure process and loading a software component into the secure process, periodically checking the security state of the kernel, and notifying the secure process when the security state of the kernel has changed.
Description
- This application claims benefit to U.S. Provisional Patent Application No. ______ (attorney docket number 313361.01), filed on Friday, Apr. 22, 2005.
- These and other features and advantages of the present example will be better understood from the following detailed description read in light of the accompanying drawings, wherein:
-
FIG. 1 is a block diagram showing a conventional media application processing media content operating in a conventional computing environment with an indication of an attack against the system. -
FIG. 2 is a block diagram showing a trusted application processing media content and utilizing a protected environment that tends to be resistant to attacks. -
FIG. 3 is a block diagram showing exemplary components of a trusted application that may be included in the protected environment. -
FIG. 4 is a block diagram showing a system for downloading digital media content from a service provider that utilizes an exemplary trusted application utilizing a protected environment. -
FIG. 5 is a block diagram showing exemplary attack vectors that may be exploited by a user or mechanism attempting to access media content and other data typically present in a computing environment in an unauthorized manner. -
FIG. 6 is a flow diagram showing the process for creating and maintaining a protected environment that tends to limit unauthorized access to media content and other data. -
FIG. 7 is a block diagram showing exemplary kernel components and other components utilized for creating an exemplary secure computing environment. -
FIG. 8 andFIG. 9 are flow diagrams showing an exemplary process for loading kernel components to create an exemplary secure computing environment. -
FIG. 10 is a block diagram showing a secure computing environment loading an application into an exemplary protected environment to form a trusted application that is typically resistant to attacks. -
FIG. 11 is a flow diagram showing an exemplary process for creating a protected environment and loading an application into the protected environment. -
FIG. 12 is a block diagram showing an exemplary trusted application utilizing an exemplary protected environment periodically checking the security state of the secure computing environment. -
FIG. 13 is a flow diagram showing an exemplary process for periodically checking the security state of the secure computing environment. -
FIG. 14 is a block diagram showing an exemplary computing environment in which the processes, systems and methods for establishing a secure computing environment including a protected environment may be implemented. - Like reference numerals are used to designate like elements in the accompanying drawings.
- The detailed description provided below in connection with the appended drawings is intended as a description of the present examples and is not intended to represent the only forms in which the present examples may be constructed or utilized. The description sets forth the functions of the examples and the sequence of steps for constructing and operating the examples in connection with the examples illustrated. However, the same or equivalent functions and sequences may be accomplished by different examples.
- Although the present examples are described and illustrated herein as being implemented in a computer operating system, the system described is provided as an example and not a limitation. As those skilled in the art will appreciate, the present examples are suitable for application in a variety of different types of computer systems.
- Introduction
-
FIG. 1 is a block diagram showing aconventional media application 105processing media content 106 operating in aconventional computing environment 100 with an indication of anattack 107 against thesystem 101. Aconventional computing environment 100 may be provided by a personal computer (“PC”) or consumer electronics (“CE”)device 101 that may include operating system (“OS”) 102. Typical operating systems often partition their operation into a user mode 103, and akernel mode 104. User mode 103 andkernel mode 104 may be used by one ormore application programs 105. Anapplication program 105 may be used to processmedia content 106 that may be transferred to thedevice 101 via some mechanism, such as a CD ROM drive, Internet connection or the like. An example ofcontent 106 would be media files that may be used to reproduce audio and video information. - The
computing environment 100 may typically include an operating system (“OS”) 102 that facilitates operation of theapplication 105, in conjunction with the one or more central processing units (“CPU”).Many operating systems 102 may allow multiple users to have access to the operation of the CPU. Multiple users may have ranges of access privileges typically ranging from those of a typical user to those of an administrator. Administrators typically have a range of access privileges toapplications 105 running on the system, the user mode 103 and thekernel 104. Such acomputing environment 100 may be susceptible to various types ofattacks 107. Attacks may include not only outsiders seeking to gain access to thedevice 101 and thecontent 106 on it, but also attackers having administrative rights to thedevice 101 or other types of users having whatever access rights granted them. -
FIG. 2 is a block diagram showing a trustedapplication 202processing media content 106 and utilizing a protectedenvironment 203 that tends to be resistant to attack 205. The term “trusted application”, as used here, may be defined as an application that utilizes processes operating in a protected environment such that they tend to be resistant to attack 205 and limit unauthorized access to anymedia content 106 or other data being processed. Thus, components or elements of an application operating in a protected environment are typically considered “trusted” as they tend to limit unauthorized access and tend to be resistant to attack. Such anapplication 202 may be considered a trusted application itself or it may utilize another trusted application to protect a portion of its processes and/or data. - For example, a trusted
media player 202 may be designed to playmedia content 106 that is typically licensed only for use such that themedia content 106 cannot be accessed in an unauthorized manner. Such a trustedapplication 202 may not operate and/or process themedia content 106 unless thecomputing environment 200 can provide the required level of security, such as by providing a protectedenvironment 203 resistant to attack 205. - As used herein, the term “process” can be defined as an instance of a program (including executable code, machine instructions, variables, data, state information, etc.) residing and/or operating in a kernel space, user space and/or any other space of an operating system and/or computing environment.
- A digital
rights management system 204 or the like may be utilized with theprotected environment 203. The use of a digitalrights management system 204 is merely provided as an example and may not be utilized with a protected environment or a secure computing environment. Typically a digital rights management system utilizes tamper-resistant software (“TRS”) which tends to be expensive to produce and may negatively impact computing performance. Utilizing a trustedapplication 202 may minimize the amount of TRS functionality required to provide enhanced protection. - Various mechanisms known to those skilled in this technology area may be utilized in place of, in addition to, or in conjunction with a typical digital rights management system. These mechanisms may include, but are not limited to, encryption/decryption, key exchanges, passwords, licenses, and the like. Thus, digital right management as used herein may be a mechanism as simple as decrypting an encrypted media, utilizing a password to access data, or other tamper-resistant mechanisms. The mechanisms to perform these tasks may be very simple and entirely contained within the
trusted application 202 or may be accessed via interfaces that communicate with complex systems otherwise distinct from thetrusted application 202. -
FIG. 3 is a block diagram showing exemplary components of a trustedapplication 202 that may be included in the protectedenvironment 203. A trustedapplication 202 will typically utilize a protectedenvironment 203 for at least a potion of its subcomponents 302-304.Other components 301 of the trusted application may not utilize a protected environment. Components 302-204 involved in the processing of media content or data that may call for an enhanced level of protection from attack or unauthorized access may operate within a protectedenvironment 203. Aprotected environment 203 may be utilized by a single trustedapplication 202 or, possibly, by a plurality of trusted applications. Alternatively, a trustedapplication 202 may utilize a plurality of protected environments. A trustedapplication 202 may also couple to and/or utilize a digitalrights management system 204. - In the example shown,
source 302 andsink 303 are shown as part of amedia pipeline 304 operating in the protectedenvironment 203. Aprotected environment 203 tends to ensure that, once protected and/or encryptedcontent 309 has been received and decrypted, the trustedapplication 202 and its components prevent unauthorized access to thecontent 309. -
Digital rights management 204 may provide a further avenue of protection for the trustedapplication 202 and thecontent 309 it processes. Through a system oflicenses 308,device certificates 311, and other security mechanisms a content provider is typically able to have confidence that encryptedcontent 309 has been delivered to the properly authorized device and that thecontent 309 is used as intended. -
FIG. 4 is a block diagram showing a system for downloadingdigital media content 410 from aservice provider 407 to an exemplary trustedapplication 202 utilizing a protectedenvironment 203. In the example shown the trustedapplication 202 is shown being employed in twoplaces application 202 may be used in aCE device 401 or aPC 403.Digital media 410 may be downloaded via aservice provider 407 and theInternet 405 for use by the trustedapplication 202. Alternatively, digital media may be made available to the trusted application via other mechanisms such as a network, a CD or DVD disk, or other storage media. Further, thedigital media 410 may be provided in anencrypted form 309 requiring a system of decryption keys, licenses, certificates and/or the like which may take the form of a digitalrights management system 204. The data ormedia content 410 provided to the trusted application may or may not be protected, i.e, encrypted or the like. - In one example, a trusted
application 202 may utilize a digital rights management (“DRM”)system 204 or the like along with a protectedenvironment 203. In this case, the trustedapplication 202 is typically designed to acknowledge, and adhere to, the content's usage policies by limiting usage of the content to that authorized by the content provider via the policies. Implementing this may involve executing code which typically interrogates content licenses and subsequently makes decisions about whether or not a requested action can be taken on a piece of content. This functionality may be provided, at least in part, by a digitalrights management system 204. An example of a Digital Rights Management system is provided in U.S. patent application Ser. No. 09/290,363, filed Apr. 12, 1999, U.S. patent applications Ser. Nos. 10/185,527, 10/185,278, and 10/185,511, each filed on Jun. 28, 2002 which are hereby incorporated by reference in its entirety. - Building a
trusted application 202 that may be utilized in theCE device 401 or thePC 403 may include making sure thetrusted application 202 which decrypts and processes thecontent 309 may be “secure” from malicious attacks. Thus, a protectedenvironment 203 typically refers to an environment that may not be easy to attack. - As shown, the trusted
applications 202 operate in aconsumer electronics device 401, which may be periodically synced to aPC 403 that also provides a trusted application. ThePC 403 is in turn coupled 404 to theinternet 405. The internet connection allowsdigital media 410 to be provided by aservice provider 407. Theservice provider 407 may transmit licenses andencrypted media 406 over theinternet 405 to trustedapplication 202. Once encrypted media is delivered and decrypted it may be susceptible to various forms of attack. - Protected Environments and Potential Attacks
- A protected computing environment tends to provide an environment that limits hackers from gaining access to unauthorized content. A hacker may include hackers acting as a systems administrator. A systems administrator typically has full control of virtually all of the processes being executed on a computer, but this access may not be desirable. For example, if a system user has been granted a license to use a media file should not be acceptable for a system administrator different from the user to be able to access the media file. A protected environment tends to contribute to the creation of a process in which code that decrypts and processes content can operate without giving hackers access to the decrypted content. A protected environment may also limit unauthorized access to users of privilege, such as administrators, and/or any other user, who may otherwise gain unauthorized access to protected content. Protection may include securing typical user mode processes (
FIG. 1, 103 ) and kernel mode processes (FIG. 1, 104 ) and any data they may be processing. - Processes operating in the kernel may be susceptible to attack. For example, in the kernel of a typical operating system objects are created, including processes, that may allow unlimited access by an administrator. Thus, an administrator, typically with full access privileges, may access virtually all processes.
- Protected content may include policy or similar information indicating the authorized use of the content. Such policy may be enforced via a DRM system or other security mechanism. Typically, access to protected content is granted through the DRM system or other mechanism, which may enforce policy. However, a system administrator, with full access to the system, may alter the state of the DRM system or mechanism to disregard the content policy.
- A protected environment tends to provide a protected space that restricts unauthorized access to media content being processed therein, even for high-privilege users such as an administrator. When a protected environment is used in conjunction with a system of digital rights management or the like, a trusted application may be created in which a content provider may feel that adequate security is provided to protect digital media from unauthorized access and may also protect the content's policy from be tampered with along with any other data, keys or protection mechanisms that may be associated with the media content.
- Attack Vectors
- Current operating system (“OS”) architectures typically present numerous possible attack vectors that could compromise a media application and any digital media content being processed. For purposes of this example, attacks that may occur in an OS are grouped into two types of attacks, which are kernel mode attacks and user mode attacks.
- The first type of attack is the kernel mode attack. Kernel mode is typically considered to be the trusted base of the operating system. The core of the operating system and most system and peripheral drivers may operate in kernel mode. Typically any piece of code running in the kernel is susceptible to intrusion by any other piece of code running in the kernel, which tends not to be the case for user mode. Also, code running in kernel mode typically has access to substantially all user mode processes. A CPU may also provide privilege levels for various code types. Kernel mode code is typically assigned the highest level of privilege by such a CPU, typically giving it full access to the system.
- The second type of attack is the user mode attack. Code that runs in user mode may or may not be considered trusted code by the system depending on the level of privilege it has been assigned. This level of privilege may be determined by the user context or account in which it is operating. User mode code running in the context of an administrator account may have full access to the other code running on the system. In addition, code that runs in user mode may be partitioned to prevent one user from accessing another's processes.
- These attacks may be further broken down into specific attack vectors. The protected environment is typically designed to protect against unauthorized access that may otherwise be obtained via one or more of these attack vectors. The protected environment may protect against attack vectors that may include: process creation, malicious user mode applications, loading malicious code into a process, malicious kernel code, invalid trust authorities, and external attack vectors.
- Process creation is a possible attack vector. An operating system typically includes a “create process” mechanism that allows a parent process to create a child process. A malicious parent process may, by modifying the create process code or by altering the data it creates, make unauthorized modifications to the child process being created. This could result in compromising digital media that may be processed by a child process created by a malicious parent process.
- Malicious user mode applications are a possible attack vector. An operating system typically includes administrator level privileges. Processes running with administrator privileges may have unlimited access to many operating system mechanisms and to nearly all processes running on the computer. Thus, in Windows for example, a malicious user mode application running with administrator privileges may gain access to many other processes running on the computer and may thus compromise digital media. Similarly, processes operating in the context of any user may be attacked by any malicious process operating in the same context.
- Loading malicious code into a secure process is a possible attack vector. It may be possible to append or add malicious code to a process. Such a compromised process cannot be trusted and may obtain unauthorized access to any media content or other data being processed by the modified process.
- Malicious kernel mode code is a possible attack vector. An operating system typically includes a “system level” of privilege. In Windows, for example, all code running in kernel mode is typically running as system and therefore may have maximum privileges. The usual result is that drivers running in kernel mode may have maximum opportunity to attack any user mode application, for example. Such an attack by malicious kernel mode code may compromise digital media.
- Invalid trust authorities (TAs) are a possible attack vector. TAs may participate in the validation of media licenses and may subsequently “unlock” the content of a digital media. TAs may be specific to a media type or format and may be implemented by media providers or their partners. As such, TAs may be pluggable and/or may be provided as dynamic link libraries (“DLL”) or the like. A DLL may be loaded by executable code, including malicious code. In order for a TA to ensure that the media is properly utilized it needs to be able to ensure that the process in which it is running is secure. Otherwise the digital media may be compromised.
- External attacks are another possible attack vector. There are a set of attacks that don't require malicious code running in a system in order to attack it. For instance, attaching a debugger to a process or a kernel debugger to the machine, looking for sensitive data in a binary file on a disk, etc., are all possible mechanisms for finding and compromising digital media or the processes that can access digital media.
-
FIG. 5 is a block diagram showing exemplary attack vectors 507-510 that may be exploited by a user or mechanism attempting to access media content andother data 500 typically present in acomputing environment 100 in an unauthorized manner. A protected environment may protect against these attack vectors such that unauthorized access to trusted applications and the data they process is limited and resistance to attack is provided. Such attacks may be waged by users of the system or mechanisms that may include executable code. Themedia application 105 is shown at the center of the diagram and the attack vectors 507-510 tend to focus on accessingsensitive data 500 being stored and/or processed by theapplication 105. - A
possible attack vector 509 may be initiated via a malicioususer mode application 502. In the exemplary operating system architecture both the parent of a process, and any process with administrative privileges, typically have unlimited access to other processes, such as one processing media content, and the data they process. Such access to media content may be unauthorized. Thus a protected environment may ensure that a trusted application and the media content it processes are resistant to attacks by other user mode applications. - A
possible attack vector 508 is the loading ofmalicious code 503 into a process 501. Having a secure process that is resistant to attacks from the outside is typically only as secure as the code running on the inside forming the process. Given that DLLs and other code are typically loaded into processes for execution, a mechanism that may ensure that the code being loaded is trusted to run inside a process before loading it into the process may be provided in a protected environment. - A possible vector of
attack 510 is through maliciouskernel mode code 504. Code running inkernel mode 104 typically has maximum privileges. The result may be that drivers running in kernel mode may have a number of opportunities to attack other applications. For instance, a driver may be able to access memory directly in another process. The result of this is that a driver could, once running, get access to a processes memory which may contain decrypted “encrypted media content” (FIG. 3, 309 ). Kernel Mode attacks may be prevented by ensuring that the code running in the kernel is non-malicious code, as provided by this example. - A
possible attack vector 507 is byexternal attacks 506 to thesystem 100. This group represents the set of attacks that typically do not require malicious code to be running on thesystem 100. For instance, attaching a debugger to an application and/or a process on the system, searching a machine for sensitive data, etc. A protected environment may be created to resist these types of attacks. - Creating and Maintaining Protected Environments
-
FIG. 6 is a flow diagram showing the process 600 for creating and maintaining a protected environment that tends to limit unauthorized access to media content and other data. The sequence 600 begins when a computer system is started 602 and the kernel of the operating system is loaded and a kernel secure flag is set 604 to an initial value. The process continues through the time that a protected environment is typically created and an application is typically loaded into it 606. The process includes periodic checking 608 via the protected environment that seeks to ensure the system remains secure through the time the secure process is needed. - The term “kernel”, as used here, is defined as the central module of an operating system for a computing environment, system or device. The kernel module may be implemented in the form of computer-executable instructions and/or electronic logic circuits. Typically, the kernel is responsible for memory management, process and task management, and storage media management of a computing environment. The term “kernel component”, as used here, is defined to be a basic controlling mechanism, module, computer-executable instructions and/or electronic logic circuit that forms a portion of the kernel. For example, a kernel component may be a “loader”, which may be responsible for loading other kernel components in order to establish a fully operational kernel.
- To summarize the process of creating and maintaining a protected environment:
- 1.
Block 602 represents the start-up of a computer system. This typically begins what is commonly known as the boot process and includes loading of an operating system from disk or some other storage media. - 2. Typically one of the first operations during the boot process is the loading of the kernel and its components. This example provides the validation of kernel components and, if all are successfully validated as secure, the setting of a flag indicating the kernel is secure. This is shown in
block 604. - 3. After the computer system is considered fully operational a user may start an application such as a trusted media player which may require a protected environment. This example provides a secure kernel with an application operating in a protected environment, as shown in
block 606. - 4. Once the protected environment has been created and one or more of the processes of the application have been loaded into it and are operating, the trusted environment may periodically check the kernel secure flag to ensure the kernel remains secure, as shown in
block 608. That is, from the point in time that the trusted application begins operation, a check may be made periodically to determine whether any unauthorized kernel components have been loaded. Such unauthorized kernel components could attack the trusted application or the data it may be processing. Therefore, if any such components are loaded, the kernel secure flag may be set appropriately. - Loading and Validating a Secure Kernel
-
FIG. 7 is a block diagram showing exemplary kernel components 720-730 and other components 710-714 utilized in creating an exemplarysecure computing environment 200. This figure shows a computer system containing several components 710-730 typically stored on a disk or the like, several of which are used to form the kernel of an operating system when a computer is started.Arrow 604 indicates the process of loading the kernel components into memory forming the operational kernel of the system. The loadedkernel 750 is shown containing its various components 751-762 and a kernelsecure flag 790 indicating whether or not the kernel is considered secure for a protected environment. The kernelsecure flag 790 being described as a “flag” is not meant to be limiting; it may be implemented as a boolean variable or as a more complex data structure or mechanism. - Kernel components 720-730 are typically “signed” and may include a
certificate data 738 that may allow the kernel to validate that they are the components they claim to be, that they have not been modified and/or are not malicious. A signature block and/orcertificate data 738 may be present in each kernel component 720-730 and/or eachloaded kernel component certificate data 738 may be unique to each component. The signature and/orcertificate data 738 may be used in the creation and maintenance of protected environments as indicated below. Typically a component is “signed” by its provider in such as way as to securely identify the source of the component and/or indicate whether it may have been tampered with. A signature may be implemented as a hash of the component's header or by using other techniques. A conventional certificate or certificate chain may also be included with a component that may be used to determine if the component can be trusted. The signature and/orcertificate data 738 are typically added to a component before it is distributed for public use. Those skilled in the art will be familiar with these technologies and their use. - When a typical computer system is started or “booted” the operating system's loading process or “kernel loader” 751 may typically load the components of the kernel from disk or the like into a portion of system memory to form the kernel of the operating system. Once all of the kernel components are loaded and operational the computer and operating system are considered “booted” and ready for normal operation.
-
Kernel component # 1 720 thru kernelcomponent #n 730, in the computing environment, may be stored on a disk or other storage media, along with arevocation list 714, akernel dump flag 712 and adebugger 710 along with adebug credential 711.Arrow 604 indicates the kernel loading process which reads the various components 714-730 from their storage location and loads them into system memory forming a functionaloperating system kernel 750. Thekernel dump flag 712 being described as a “flag” is not meant to be limiting; it may be implemented as a boolean variable or as a more complex data structure or mechanism. - The
kernel loader 751 along with the PE management portion of thekernel 752, therevocation list 754 and two of thekernel components blocks kernel 750 includes a kernelsecure flag 790 which may be used to indicate whether or not thekernel 750 is currently considered secure or not. This illustration is provided as an example and is not intended to be limiting or complete. Thekernel loader 751, the PE management portion of thekernel 752 and/or the other components of the kernel are shown as distinct kernel components for clarity of explanation but, in actual practice, may or may not be distinguishable from other portions of the kernel. - Included in the
computing environment 200 may be arevocation list 714 that may be used in conjunction with the signature andcertificate data 738 associated with thekernel components object 714 may retain a list of signatures, certificates and/or certificate chains that are no longer considered valid as of the creation date of thelist 714. Therevocation list 714 is shown loaded into the kernel asobject 754. Such lists are maintained because a validly-signed and certified component, forexample components list 754 to check kernel components 720-730 as they are loaded, which may be properly signed and/or have trustedcertificate data 738, but that may have subsequently been deemed untrustworthy. Such arevocation list 754 will typically includeversion information 755 so that it can more easily be identified, managed and updated as required. - Another component of the system that may impact kernel security is a
debugger 710. Debuggers may not typically be considered a part of the kernel but may be present in acomputing environment 200. Debuggers, including those known as kernel debuggers, system analyzers, and the like, may have broad access to the system and the processes running on the system along with any data. Adebugger 710 may be able access any data in acomputing environment 200, including media content that should not be accessed in a manner other than that authorized. On the other hand, debugging is typically a part of developing new functionality and it typically is possible to debug within protected environments the code intended to process protected media content. Adebugger 710 may thus includedebug credentials 711 which may indicate that the presence of thedebugger 710 on a system is authorized. Thus detection of the presence of adebugger 710 along with any accompanyingcredentials 711 may be a part of the creation and maintenance of protected environments (FIG. 6, 600 ). - The
computing environment 200 may include akernel dump flag 712. Thisflag 712 may be used to indicate how much of kernel memory is available for inspection in case of a catastrophic system failure. Such kernel dumps may be used for postmortem debugging after such as failure. If such aflag 712 indicates that substantially all memory is available for inspection upon a dump then thekernel 750 may be considered insecure as hacker could run an application which exposes protected media in system memory and then force a catastrophic failure condition which may result in the memory being available for inspection including that containing the exposed media content. Thus akernel dump flag 712 may be used in the creation and maintenance of a protected environments (FIG. 6, 600 ). -
FIG. 8 andFIG. 9 are flow diagrams showing anexemplary process 604 for loading kernel components to create an exemplary secure computing environment. Thisprocess 604 begins after the kernel loader has been started and the PE management portion of the kernel has been loaded and made operational. Not shown in these figures, the PE management portion of the kernel may validate the kernel loader itself and/or any other kernel elements that may have been previously loaded. Validation may be defined as determining whether or not a given component is considered secure and trustworthy as illustrate inpart 2 of thisprocess 604. - The term “authorized for secure use” and the like as used below with respect to kernel components has the following specific meaning. A kernel containing any components that are not authorized for secure use does not provide a secure computing environment within which protected environments may operate. The opposite may not be true as it depends on other factors such as attack vectors.
- 1.
Block 801 shows the start of theloading process 604 after the PE management portion of the kernel has been loaded and made operational. Any component loaded in the kernel prior to this may be validated as described above. - 2.
Block 802 shows that the kernel secure flag initially set to TRUE unless any component loaded prior to the PE management portion of the kernel, or that component itself, is found to be insecure at which point the kernel secure flag may be set to FALSE. In practice the indication of TRUE or FALSE may take various forms; the use of TRUE or FALSE here is only an example and is not meant to be limiting. - 3.
Block 804 indicates a check for the presence of a debugger in the computing environment. Alternatively a debugger could reside remotely and be attached to the computing environment via a network or other communications media to a process in the computing environment. If no debugger is detected theloading process 604 continues atblock 810. Otherwise it continues at block 809. Not shown in the diagram, this check may be performed periodically and the state of the kernel secure flag updated accordingly. - 4. If a debugger is detected, block 806 shows a check for debug credentials which may indicate that debugging may be authorized on the system in the presence of a protected environment. If such credentials are not present, the kernel secure flag may be set to FALSE as shown in
block 808. Otherwise theloading process 604 continues atblock 810. - 5.
Block 810 shows a check of the kernel dump flag. If this flag indicates that a full kernel memory dump or the like may be possible then the kernel secure flag may be set to FALSE as shown inblock 808. Otherwise theloading process 604 continues atblock 812. Not shown in the diagram, this check may be performed periodically and the state of the kernel secure flag updated accordingly. - 6.
Block 812 shows the loading of the revocation list into the kernel. In cases where the revocation list may be used to check debug credentials, or other previously loaded credentials, signatures, certificate data, or the like, this step may take place earlier in the sequence (prior to the loading of credentials and the like to be checked) than shown. Not shown in the diagram is that, once this component is loaded, any and all previously loaded kernel components may be checked to see if their signature and/or certificate data has been revoked per the revocation list. If any have been revoked, the kernel secure flag may be set to FALSE and theloading process 604 continues atblock 814. Note that a revocation list may or may not be loaded into the kernel to be used in the creation and maintenance of a protected environments. - 7.
Block 814 shows the transition topart 2 of this diagram shown inFIG. 9 and continuing atblock 901. - 8.
Block 902 shows a check for any additional kernel components to be loaded. If all components have been loaded then theload process 604 is usually complete and the kernel secure flag remains in whatever state it was last set to, either TRUE or FALSE. If there are additional kernel components to be loaded theload process 604 continues atblock 906. - 9.
Block 906 shows a check for a valid signature of the next component to be loaded. If the signature is invalid then the kernel secure flag may be set to FALSE as shown in block 91 8. Otherwise theloading process 604 continues atblock 908. If no component signature is available the component may be considered insecure and the kernel secure flag may be set to FALSE as shown inblock 918. Signature validity may be determined by checking for a match on a list of valid signatures and/or by checking whether the signer's identity is a trusted identity. As familiar to those skilled in the security technology area, other methods could also be used to validate component signatures. - 10.
Block 908 shows a check of the component's certificate data. If the certificate data is invalid then the kernel secure flag may be set to FALSE as shown inblock 918. Otherwise theloading process 604 continues atblock 910. If no component certificate data is available the component may be considered insecure and the kernel secure flag may be set to FALSE as shown inblock 918. Certificate data validity may be determined by checking the component's certificate data to see if the component is authorized for secure use. As familiar to those skilled in the art, other methods could also be used to validate component certificate data. - 11.
Block 910 shows a check of the component's signature against a revocation list loaded in the kernel. If the signature is present on the list, indicating that it has been revoked, then the kernel secure flag may be set to FALSE as shown inblock 918. Otherwise theloading process 604 continues at block 912. - 12. Block 912 shows a check of the component's certificate data against a revocation list. If the certificate data is present on the list, indicating that it has been revoked, then the kernel secure flag may be set to FALSE as shown in
block 918. Otherwise theloading process 604 continues atblock 914. - 13.
Block 914 shows a check of the component's signature to determine if it is OK for use. This check may be made by inspecting the component's leaf certificate data to see if the component is authorized for secure use. Certain attributes in the certificate data may indicate if the component is approved for protected environment usage. If not the component may not be appropriately signed and the kernel secure flag may be set to FALSE as shown inblock 918. Otherwise theloading process 604 continues at block 916. - 14. Block 916 shows a check of the component's root certificate data. This check may be made by inspecting the component's root certificate data to see if it is listed on a list of trusted root certificates. If not the component may be considered insecure and the kernel secure flag may be set to FALSE as shown in
block 918. Otherwise theloading process 604 continues atblock 920. - 15.
Block 920 shows the loading of the component into the kernel where it is now considered operational. Then theloading process 604 returns to block 902 to check for any further components to be loaded. - Creating Protected Environments
-
FIG. 10 is a block diagram showing asecure computing environment 200 loading anapplication 105 into an exemplary protectedenvironment 203 to form a trusted application that is typically resistant to attacks. In this example the kernel may be the same as that described inFIG. 7 , has already been loaded and thesystem 200 is considered fully operational. At this point, as an example, a user startsmedia application 105. Themedia application 105 may call for the creation of a protectedenvironment 203 for one or more of its processes and/or components to operate within. The protectedenvironment creation process 606 creates the protectedenvironment 203 and loads theapplication 105 and/or its components as described below. -
FIG. 11 is a flow diagram showing anexemplary process 606 for creating a protected environment and loading an application into the protected environment. Thisprocess 606 includes the initial step of creating a secure process followed by validating the software component to be loaded into it and then loading the software component into the new secure process and making it operational. Upon success, the result may be a software component operating in a protected environment supported by a secure kernel. Such a software component, along with any digital media content or other data it processes, may be protected from various attacks, including those described above. - 1.
Block 1101 shows the start of the protectedenvironment creation process 606. This point is usually reached when some application or code calls for a protected environment to operate. - 2.
Block 1102 shows the establishment of a protected environment. While not shown in the diagram, this may be accomplished by requesting the operating system to create a new secure process. Code later loaded and operating in this secure process may be considered to be operating in a protected environment. If the kernel secure flag is set to FALSE then the “create new secure process” request may fail. This may be because the system as a whole may be considered insecure and unsuitable for a protected environment and any application or data requiring a protected environment. Alternatively, the “create new secure process” request may succeed and the component loaded into the new process may be informed that the system is considered insecure so that it can modify its operations accordingly. Otherwise theprocess 606 continues atblock 1106. - 3.
Block 1106 shows a check for a valid signature of the software component to be loaded into the new secure process or protected environment. If the signature is invalid then theprocess 606 may fail as shown inblock 1118. Otherwise theprocess 606 continues atblock 1108. Not shown in the process is that the program, or its equivalent, creating the new secure process may also be checked for a valid signature. Thus, for either the component itself and/or the program creating the new secure process, if no signature is available the component may be considered insecure and theprocess 606 may fail as shown inblock 1118. Signature validity may be determined by checking for a match on a list of valid signatures and/or by checking whether the signer's identity is a trusted identity. As familiar to those skilled in the security technology area, other methods could also be used to validate component signatures. - 4.
Block 1108 shows a check of the software component's certificate data. If the certificate data is invalid then theprocess 606 may fail as shown inblock 1118. Otherwise theprocess 606 continues atblock 1110. If no component certificate data is available the component may be considered insecure and theprocess 606 may fail as shown inblock 1118. Certificate data validity may be determined by checking the component's certificate data to see if the component is authorized for secure use. As familiar to those skilled in the art, other methods could also be used to validate component certificate data. - 5.
Block 1110 shows a check of the component's signature against a revocation list. If the signature is present on the list, indicating that it has been revoked, then theprocess 606 may fail as shown inblock 1118. Otherwise theprocess 606 continues at block 1112. - 12. Block 1112 shows a check of the component's certificate data against a revocation list. If the certificate data is present on the list, indicating that it has been revoked, then the
process 606 may fail as shown inblock 1118. Otherwise theprocess 606 continues atblock 1114. - 13.
Block 1114 shows a check of the component's signature to determine if it is acceptable for use. This check may be made by inspecting the component's leaf certificate data to see if the component is authorized for secure use. Certain attributes in the certificate data may indicate if the component is approved for protected environment usage. If not the component may be considered to not be appropriately signed and theprocess 606 may fail as shown inblock 1118. Otherwise theprocess 606 continues at block 1116. - 14. Block 1116 shows a check of the component's root certificate data. This check may be made by inspecting the component's root certificate data to see if it is listed on a list of trusted root certificates. If not the component may be considered insecure and the
process 606 may fail as shown inblock 1118. Otherwise theprocess 606 continues at block 1120. - 15.
Block 1118 shows the failure of the software component to load followed byblock 1130, the end of the protectedenvironment creation process 606. - 16. Block 1120 shows the software component being loaded into the protected environment, where it is considered operational, followed by
block 1130, the end of the protectedenvironment creation process 606. - Validating A Secure Kernel Over Time
-
FIG. 12 is a block diagram showing an exemplary trusted application utilizing an exemplary protectedenvironment 202 periodically checking 608 thesecurity state 790 of thesecure computing environment 200. In this example, thecomputing environment 200 and thekernel 750 may be the same as those described inFIGS. 7 and 8 . Thekernel 750 has already been loaded and thecomputer 200 is considered fully operational. Further, a protected environment has been created and the appropriate components of the trusted application have been loaded into it and made operational, establishing a trusted application utilizing a protectedenvironment 202, hereafter referred to simply as the “protected environment”. - The protected
environment 202 may periodically check with the PE management portion of thekernel 752 to determine whether thekernel 750 remains secure over time. This periodic check may be performed because it is possible for a new component to be loaded into thekernel 750 at any time, including a component that may be considered insecure. If this were to occur, the state of the kernelsecure flag 790 would change to FALSE and the code operating in the protectedenvironment 202 has the opportunity to respond appropriately. - For example, consider a media player application that was started on a
PC 200 with asecure kernel 750 and a portion of the media player application operating in a protectedenvironment 202 processing digital media content that is licensed only for secure use. In this example, if a new kernel component that is considered insecure is loaded while the media player application is processing the media content, then the check kernel secure state process 240 would note the kernelsecure flag 790 has changed to FALSE indicating thekernel 750 may no longer be secure. - Alternatively, the revocation list 745 may be updated and a kernel component previously considered secure may no longer be considered secure, resulting in the kernel
secure flag 790 being set to FALSE. At this point the application may receive notification that thesystem 200 is no longer considered secure and can terminate operation, or take other appropriate action to protect itself and/or the media content it is processing. -
FIG. 13 is a flow diagram showing anexemplary process 608 for periodically checking the security state of the secure computing environment. Thisprocess 608 may be used by a protectedenvironment 202 to determine if the kernel remains secure over time. The protectedenvironment 202 may periodically use thisprocess 608 to check the current security status of the kernel. The protectedenvironment 202 and/or the software component operating within it may use the current security status information to modify its operation appropriately. Periodic activation of the process may be implemented using conventional techniques. - The diagram shows a sequence of
communications 608, illustrated with exemplary pseudo code, between the protectedenvironment 202 and the PE management portion of thekernel 752. This communication may include a check of the version of a revocation list which may give an application the ability to specify a revocation list of at least a certain version. This communications sequence may be cryptographically secured using conventional techniques. - 1. The protected
environment 202 makes a IsKernelSecure(MinRLVer) call 1320 to the PE management portion of the kernel to query the current security state of the kernel. Included in thiscall 1320 may be the minimum version (MinRLVer) of the revocation list expected to be utilized. - 2. The PE management portion of the kernel checks to see if the protected environment, which is the calling process, is secure. If not, then it may provide a Return(SecureFlag=FALSE)
indication 1322 to the protected environment and thecommunications sequence 608 is complete. This security check may be done by the PE management portion of the kernel checking the protected environment for a valid signature and/or certificate data as described above. - 3. Otherwise, the PE management portion of the kernel checks the kernel secure flag in response to the
call 1320. If the state of the flag is FALSE then it may provide a Return(SecureFlag=FALSE)indication 1324 to the protected environment and thecommunications sequence 608 is complete. - 4. Otherwise, the PE management portion of the kernel checks the revocation list version information for the revocation list. If the revocation list has version information that is older than that requested in the IsKernelSecure(MinRLVer) call 1320 then several options are possible. First, as indicated in the diagram, the PE management portion of the kernel may provide a Return(SecureFlag=FALSE)
indication 1326 to the protected environment and thecommunications sequence 608 is complete. - Alternatively, and not shown in the diagram, an appropriate version revocation list may be located and loaded into the kernel, all kernel components could be re-validated using this new or updated list, the kernel secure flag updated as appropriate and the
previous step # 3 of thiscommunications sequence 608 repeated. - 5. Otherwise, the PE management portion of the kernel may provide a Return(SecureFlag=TRUE)
indication 1328 to the protected environment and thecommunications sequence 608 is complete. - Exemplary Computing Environment
-
FIG. 14 is a block diagram showing anexemplary computing environment 1400 in which the processes, systems and methods for establishing a secure computing environment including a protectedenvironment 203 may be implemented. Exemplarypersonal computer 1400 is only one example of a computing system or device that may provide secure computing environment and/or a protected environment and is not intended to limit the examples described in this application to this particular computing environment or device type. - A suitable computing environment can be implemented with numerous other general purpose or special purpose systems. Examples of well known systems may include, but are not limited to, personal computers (“PC”) 1400, hand-held or laptop devices, microprocessor-based systems, multiprocessor systems, set top boxes, programmable consumer electronics, gaming consoles, consumer electronic devices, cellular telephones, PDAs, and the like.
- The
PC 1400 includes a general-purpose computing system in the form of acomputing device 1401 couple to variousperipheral devices computing device 1401 may include one or more processors (including CPUs, GPUs, microprocessors and the like) 1407, asystem memory 1409, and a system bus 1408 that couples the various system components.Processor 1407 processes various computer executable instructions to control the operation ofcomputing device 1401 and to communicate with other electronic and/or computing devices (not shown) via various communications connections such as anetwork connection 1414 an the like. The system bus 1408 represents any number of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and/or a processor or local bus using any of a variety of bus architectures. - The
system memory 1409 may include computer readable media in the form of volatile memory, such as random access memory (RAM), and/or non-volatile memory, such as read only memory (ROM). A basic input/output system (BIOS) may be stored in ROM. RAM typically contains data and/or program modules that are immediately accessible to and/or presently operated on by one or more of theprocessors 1407. By way of example, shown loaded in system memory for operation is a trustedapplication 202 utilizing a protectedenvironment 203 and the media content being processed 106. -
Mass storage devices computing device 1401 or incorporated into thecomputing device 1401 by coupling to the system bus. Suchmass storage devices readable media - Any number of program programs or modules may be stored on the
hard disk 1410, othermass storage devices 1404, and system memory 1409 (typically limited by available space) including, by way of example, an operating system(s), one or more application programs, other program modules, and/or program data. Each of such operating system, application program, other program modules and program data (or some combination thereof) may include an embodiment of the systems and methods described herein. Kernel components 720-730 may be stored on thedisk 1410 along with other operating system code.Media application 105 and/or a digitalrights management system 204 may be stored on thedisk 1410 along with other application programs. These components 720-730 andapplications system memory 1409 and made operational. - A
display device 1416 may be coupled to the system bus 1408 via an interface, such as avideo adapter 1411. A user can interface withcomputing device 1400 via any number ofdifferent input devices 1403 such as a keyboard, pointing device, joystick, game pad, serial port, and/or the like. These and other input devices may be coupled to theprocessors 1407 via input/output interfaces 1412 that may be coupled to the system bus 1408, and may be coupled by other interface and bus structures, such as a parallel port(s), game port(s), and/or a universal serial bus (USB) and the like. -
Computing device 1400 may operate in a networked environment using communications connections to one or more remote computers and/or devices through one or more local area networks (LANs), wide area networks (WANs), the Internet, radio links, optical links and the like. Thecomputing device 1400 may be coupled to a network via anetwork adapter 1413 or alternatively via a modem, DSL, ISDN interface or the like. -
Communications connection 1414 is an example of communications media. Communications media typically embody computer readable instructions, data structures, program modules and/or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communications media include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency, infrared, and other wireless media. - Those skilled in the art will realize that storage devices utilized to store computer-readable program instructions can be distributed across a network. For example a remote computer or device may store an example of the system described as software. A local or terminal computer or device may access the remote computer(s) or device(s) and download a part or all of the software to run a program(s). Alternatively the local computer may download pieces of the software as needed, or distributively process the software by executing some of the software instructions at the local terminal and some at remote computers and/or devices.
- Those skilled in the art will also realize that by utilizing conventional techniques known to those skilled in the art that all, or a portion, of the software instructions may be carried out by a dedicated electronic circuit such as a digital signal processor (“DSP”), programmable logic array (“PLA”), discrete circuits, or the like. The term electronic apparatus as used herein includes computing devices and consumer electronic devices comprising any software and/or firmware and the like, and/or electronic devices or circuits comprising no software and/or firmware and the like.
- The term computer readable medium may include system memory, hard disks, mass storage devices and their associated media, communications media, and the like.
Claims (20)
1. A method of establishing a protected environment within a computing device comprising:
validating a kernel component loaded into a kernel of the computing device;
establishing a security state for the kernel based on the validation;
creating a secure process and loading a software component into the secure process;
periodically checking the security state of the kernel; and
notifying the secure process when the security state of the kernel has changed.
2. The method of establishing a protected environment within a computing device of claim 1 , in which validating a kernel component loaded into a kernel of the computing device further comprises setting a kernel secure flag.
3. The method of establishing a protected environment within a computing device of claim 2 in which periodically checking the security state of the kernel further comprises checking the kernel secure flag.
4. The method of establishing a protected environment within a computing device of claim 1 , in which the kernel component includes a loader.
5. The method of establishing a protected environment within a computing device of claim 1 , in which the software component is a trusted media component.
6. A method of loading kernel components to create a secure computing environment comprising:
setting a kernel secure flag to a true state:
checking to determine if a debugger is present in an operating system; and
checking to see if a debug credential associated with the debugger is present.
7. The method of loading kernel components to create a secure computing environment of claim 6 , further comprising, setting the kernel secure flag to a false state if a debug credential is not present.
8. The method of loading kernel components to create a secure computing environment of claim 6 , further comprising:
determining that there is another component to load;
validating a signature of the component;
verifying that a certificate is valid;
determining if the signature is on a revocation list; and
determining if the certificate in on the revocation list.
9. The method of loading kernel components to create a secure computing environment of claim 8 , further comprising:
determining if the signature is acceptable for use;
determining if the is acceptable for use; and
loading the component into the kernel.
10. A method of creating a protected environment comprising:
creating a protected environment for loading a component;
checking the validity of a signature;
checking the validity of a certificate;
checking to see if the signature is in a revocation list;
checking to see if the certificate is in the revocation list;
checking to see that the signature is acceptable for use
checking to see that a certificate is acceptable for use;
setting a kernel secure flag; and
loading the component into the protected environment.
11. The method of creating a protected environment for loading a component of claim 10 , in which the kernel secure flag is set to a false state if checking the validity of the signature fails.
12. The method of creating a protected environment for loading a component of claim 10 , in which the kernel secure flag is set to a false state if checking the validity of a certificate fails.
13. The method of creating a protected environment for loading a component of claim 10 , in which the kernel secure flag is set to a false state if checking to see if the certificate is in the revocation list fails.
14. The method of creating a protected environment for loading a component of claim 10 , in which the kernel secure flag is set to a false state if checking to see that the signature is acceptable for use fails.
15. The method of creating a protected environment for loading a component of claim 10 , in which the kernel secure flag is set to a false state if checking to see that the certificate is acceptable for use fails.
16. The method of creating a protected environment for loading a component of claim 10 , in which the component is a portion of a media application.
17. The method of creating a protected environment for loading a component of claim 10 , further comprising periodically checking a security state of the protected environment.
18. The method of creating a protected environment for loading a component of claim 17 , in which periodically checking the security state of the protected environment further comprises checking the kernel secure flag.
19. The method of creating a protected environment for loading a component of claim 18 , in which periodically checking the security state of the protected environment further comprises submitting a call of a calling process to a kernel.
20. The method of creating a protected environment for loading a component of claim 19 , in which the calling process to the kernel is checked to determine if it is secure.
Priority Applications (12)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/116,598 US20060242406A1 (en) | 2005-04-22 | 2005-04-27 | Protected computing environment |
US11/191,448 US8074287B2 (en) | 2004-04-30 | 2005-07-28 | Renewable and individualizable elements of a protected environment |
CN2005800495249A CN101167296B (en) | 2005-04-22 | 2005-08-26 | Renewable and individualizable elements of a protected computing environment |
CN2005800495535A CN101189615B (en) | 2005-04-22 | 2005-08-26 | Method for establishing and maintaining protected computing environment |
CN2008101897184A CN101458748B (en) | 2005-04-22 | 2005-08-26 | Method for loading into kernel component to establish computing environment |
KR1020077024145A KR101238496B1 (en) | 2005-04-22 | 2005-08-26 | Protected computing environment |
KR1020077023842A KR101265887B1 (en) | 2005-04-22 | 2005-08-26 | Renewable and individualizable elements of a protected computing environment |
PCT/US2005/030490 WO2006115533A2 (en) | 2005-04-22 | 2005-08-26 | Protected computing environment |
CN2008101897199A CN101458749B (en) | 2005-04-22 | 2005-08-26 | Method for establishing protected environment |
PCT/US2005/030489 WO2006115532A2 (en) | 2005-04-22 | 2005-08-26 | Renewable and individualizable elements of a protected computing environment |
TW094130187A TWI428786B (en) | 2005-04-22 | 2005-09-02 | Protected computing environment |
US12/390,505 US9189605B2 (en) | 2005-04-22 | 2009-02-23 | Protected computing environment |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US67397905P | 2005-04-22 | 2005-04-22 | |
US11/116,598 US20060242406A1 (en) | 2005-04-22 | 2005-04-27 | Protected computing environment |
Related Child Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/835,951 Continuation-In-Part US7500267B2 (en) | 2004-04-30 | 2004-04-30 | Systems and methods for disabling software components to protect digital media |
US11/191,448 Continuation-In-Part US8074287B2 (en) | 2004-04-30 | 2005-07-28 | Renewable and individualizable elements of a protected environment |
US12/390,505 Division US9189605B2 (en) | 2005-04-22 | 2009-02-23 | Protected computing environment |
Publications (1)
Publication Number | Publication Date |
---|---|
US20060242406A1 true US20060242406A1 (en) | 2006-10-26 |
Family
ID=40754843
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/116,598 Abandoned US20060242406A1 (en) | 2004-04-30 | 2005-04-27 | Protected computing environment |
US12/390,505 Active 2026-07-04 US9189605B2 (en) | 2005-04-22 | 2009-02-23 | Protected computing environment |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/390,505 Active 2026-07-04 US9189605B2 (en) | 2005-04-22 | 2009-02-23 | Protected computing environment |
Country Status (1)
Country | Link |
---|---|
US (2) | US20060242406A1 (en) |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050268115A1 (en) * | 2004-04-30 | 2005-12-01 | Microsoft Corporation | Renewable and individualizable elements of a protected environment |
US20090125716A1 (en) * | 2007-11-14 | 2009-05-14 | Microsoft Corporation | Computer initialization for secure kernel |
WO2009082245A1 (en) | 2007-12-21 | 2009-07-02 | Rpk New Zealand Limited | System and method for preventing unauthorised use of digital media |
US20120304310A1 (en) * | 2011-03-21 | 2012-11-29 | Mocana Corporation | Secure execution of unsecured apps on a device |
US8347078B2 (en) | 2004-10-18 | 2013-01-01 | Microsoft Corporation | Device certificate individualization |
US8438645B2 (en) | 2005-04-27 | 2013-05-07 | Microsoft Corporation | Secure clock with grace periods |
US8700535B2 (en) | 2003-02-25 | 2014-04-15 | Microsoft Corporation | Issuing a publisher use license off-line in a digital rights management (DRM) system |
US8725646B2 (en) | 2005-04-15 | 2014-05-13 | Microsoft Corporation | Output protection levels |
US8781969B2 (en) | 2005-05-20 | 2014-07-15 | Microsoft Corporation | Extensible media rights |
US8812868B2 (en) | 2011-03-21 | 2014-08-19 | Mocana Corporation | Secure execution of unsecured apps on a device |
US20140359774A1 (en) * | 2013-05-31 | 2014-12-04 | Microsoft Corporation | Protecting Anti-Malware Processes |
US8955142B2 (en) | 2011-03-21 | 2015-02-10 | Mocana Corporation | Secure execution of unsecured apps on a device |
US9167002B2 (en) | 2013-08-15 | 2015-10-20 | Microsoft Technology Licensing, Llc | Global platform health management |
US9189605B2 (en) | 2005-04-22 | 2015-11-17 | Microsoft Technology Licensing, Llc | Protected computing environment |
US9224168B2 (en) | 2004-11-15 | 2015-12-29 | Microsoft Technology Licensing, Llc | Tuning product policy using observed evidence of customer behavior |
US9363481B2 (en) | 2005-04-22 | 2016-06-07 | Microsoft Technology Licensing, Llc | Protected media pipeline |
US9396325B2 (en) | 2011-03-21 | 2016-07-19 | Mocana Corporation | Provisioning an app on a device and implementing a keystore |
US9436804B2 (en) * | 2005-04-22 | 2016-09-06 | Microsoft Technology Licensing, Llc | Establishing a unique session key using a hardware functionality scan |
US9473485B2 (en) | 2011-03-21 | 2016-10-18 | Blue Cedar Networks, Inc. | Secure single sign-on for a group of wrapped applications on a computing device and runtime credential sharing |
US9507621B1 (en) * | 2014-08-26 | 2016-11-29 | Amazon Technologies, Inc. | Signature-based detection of kernel data structure modification |
US9530007B1 (en) | 2014-08-26 | 2016-12-27 | Amazon Technologies, Inc. | Identifying tamper-resistant characteristics for kernel data structures |
US9575793B1 (en) | 2014-08-26 | 2017-02-21 | Amazon Technologies, Inc. | Identifying kernel data structures |
US9767276B1 (en) | 2014-08-26 | 2017-09-19 | Amazon Technologies, Inc. | Scanning kernel data structure characteristics |
US20180322313A1 (en) * | 2016-01-14 | 2018-11-08 | Intel Corporation | Secure communication channel for system management mode |
US10440036B2 (en) * | 2015-12-09 | 2019-10-08 | Checkpoint Software Technologies Ltd | Method and system for modeling all operations and executions of an attack and malicious process entry |
WO2020056015A1 (en) * | 2018-09-11 | 2020-03-19 | Amari.Ai Incorporated | Deployment and communications gateway for deployment, trusted execution, and secure communications |
US10880316B2 (en) | 2015-12-09 | 2020-12-29 | Check Point Software Technologies Ltd. | Method and system for determining initial execution of an attack |
WO2024027472A1 (en) * | 2022-08-03 | 2024-02-08 | 华为技术有限公司 | Method for determining state of kernel, and related device |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9281948B2 (en) * | 2012-02-09 | 2016-03-08 | Microsoft Technology Licensing, Llc | Revocation information for revocable items |
US10819743B2 (en) * | 2018-11-05 | 2020-10-27 | Nanning Fugui Precision Industrial Co., Ltd. | Anti-replay processing method and device utilizing the same |
Citations (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4183085A (en) * | 1976-11-18 | 1980-01-08 | International Business Machines Corporation | Protection of data processing system against unauthorized programs |
US4817094A (en) * | 1986-12-31 | 1989-03-28 | International Business Machines Corporation | Fault tolerant switch with selectable operating modes |
US4910692A (en) * | 1985-10-09 | 1990-03-20 | Outram John D | Adaptive data logger |
US5001752A (en) * | 1989-10-13 | 1991-03-19 | Fischer Addison M | Public/key date-time notary facility |
US5295266A (en) * | 1991-12-20 | 1994-03-15 | International Computers Limited | Program attribute control in a computer system |
US5490216A (en) * | 1992-09-21 | 1996-02-06 | Uniloc Private Limited | System for software registration |
US5500897A (en) * | 1993-07-22 | 1996-03-19 | International Business Machines Corporation | Client/server based secure timekeeping system |
US5615268A (en) * | 1995-01-17 | 1997-03-25 | Document Authentication Systems, Inc. | System and method for electronic transmission storage and retrieval of authenticated documents |
US5710706A (en) * | 1994-12-23 | 1998-01-20 | Francotyp-Postalia Ag & Co. | Method for entering data into a scale |
US5717926A (en) * | 1995-02-28 | 1998-02-10 | International Business Machines Corporation | Efficient forking of a process |
US5724425A (en) * | 1994-06-10 | 1998-03-03 | Sun Microsystems, Inc. | Method and apparatus for enhancing software security and distributing software |
US5875236A (en) * | 1995-11-21 | 1999-02-23 | At&T Corp | Call handling method for credit and fraud management |
US5883670A (en) * | 1996-08-02 | 1999-03-16 | Avid Technology, Inc. | Motion video processing circuit for capture playback and manipulation of digital motion video information on a computer |
US6021438A (en) * | 1997-06-18 | 2000-02-01 | Wyatt River Software, Inc. | License management system using daemons and aliasing |
US6026293A (en) * | 1996-09-05 | 2000-02-15 | Ericsson Inc. | System for preventing electronic memory tampering |
US6185678B1 (en) * | 1997-10-02 | 2001-02-06 | Trustees Of The University Of Pennsylvania | Secure and reliable bootstrap architecture |
US6188995B1 (en) * | 1997-07-28 | 2001-02-13 | Apple Computer, Inc. | Method and apparatus for enforcing software licenses |
US6189146B1 (en) * | 1998-03-18 | 2001-02-13 | Microsoft Corporation | System and method for software licensing |
US6192392B1 (en) * | 1995-05-29 | 2001-02-20 | Siemens Aktiengesellschaft | Updating mechanism for user programs in a computer system |
US20020002597A1 (en) * | 2000-06-29 | 2002-01-03 | Calvin Morrell | Systems and methods for producing reward advertising and distributing by click-through incentives |
US20020007310A1 (en) * | 2000-05-08 | 2002-01-17 | Long Timothy Merrick | Information appliance cost subsidy |
US6345294B1 (en) * | 1999-04-19 | 2002-02-05 | Cisco Technology, Inc. | Methods and apparatus for remote configuration of an appliance on a network |
US20020023212A1 (en) * | 2000-08-18 | 2002-02-21 | Hewlett-Packard Company | Performance of a service on a computing platform |
US20030005135A1 (en) * | 2001-06-11 | 2003-01-02 | Mitsuhiro Inoue | License management server, license management system and usage restriction method |
US20030005335A1 (en) * | 2001-06-28 | 2003-01-02 | Hidekazu Watanabe | Protecting secured codes and circuits in an integrated circuit |
US20030014323A1 (en) * | 2001-07-16 | 2003-01-16 | Jan Scheer | Computer system and method for ordering a product |
US20030028454A1 (en) * | 2001-08-01 | 2003-02-06 | Masahiro Ooho | Device and method for managing content usage right |
US20030027549A1 (en) * | 2001-07-30 | 2003-02-06 | Msafe Inc. | Prepaid communication system and method |
US20030037246A1 (en) * | 2001-08-16 | 2003-02-20 | International Business Machines Corporation | Flash update using a trusted platform module |
US20030035409A1 (en) * | 2001-08-20 | 2003-02-20 | Wang Jiwei R. | Method and apparatus for providing service selection, redirection and managing of subscriber access to multiple WAP (Wireless Application Protecol) geteways simultaneously |
US20030040960A1 (en) * | 2001-08-22 | 2003-02-27 | Eckmann Eduardo Enrique | Method for promoting online advertising |
US20030046026A1 (en) * | 2001-09-06 | 2003-03-06 | Comverse, Ltd. | Failure prediction apparatus and method |
US20030048473A1 (en) * | 2001-09-13 | 2003-03-13 | Allan Rosen | Printing device having a built-in device driver |
US20030056107A1 (en) * | 2001-09-17 | 2003-03-20 | Cammack William E. | Secure bootloader for securing digital devices |
US20040003288A1 (en) * | 2002-06-28 | 2004-01-01 | Intel Corporation | Trusted platform apparatus, system, and method |
US20040003268A1 (en) * | 2002-06-28 | 2004-01-01 | Microsoft Corporation | Using a rights template to obtain a signed rights label (SRL) for digital content in a digital rights management system |
US20040003269A1 (en) * | 2002-06-28 | 2004-01-01 | Microsoft Corporation | Systems and methods for issuing usage licenses for digital content and services |
US20040003190A1 (en) * | 2002-06-27 | 2004-01-01 | International Business Machines Corporation | Remote authentication caching on a trusted client or gateway system |
US20040001088A1 (en) * | 2002-06-28 | 2004-01-01 | Compaq Information Technologies Group, L.P. | Portable electronic key providing transportable personal computing environment |
US20040003270A1 (en) * | 2002-06-28 | 2004-01-01 | Microsoft Corporation | Obtaining a signed rights label (SRL) for digital content and obtaining a digital license corresponding to the content based on the SRL in a digital rights management system |
US6678828B1 (en) * | 2002-07-22 | 2004-01-13 | Vormetric, Inc. | Secure network file access control system |
US20040010440A1 (en) * | 2002-07-10 | 2004-01-15 | Rohan Lenard | Predictive software license balancing |
US20040019456A1 (en) * | 2002-07-23 | 2004-01-29 | Edgar Circenis | Hardware based utilization metering |
US20040023636A1 (en) * | 2002-07-31 | 2004-02-05 | Comverse Network Systems, Ltd. | Wireless prepaid payphone system and cost control application |
US6690556B2 (en) * | 1999-01-29 | 2004-02-10 | Infineon Technologies Ag | Integrated circuit |
US20040030912A1 (en) * | 2001-05-09 | 2004-02-12 | Merkle James A. | Systems and methods for the prevention of unauthorized use and manipulation of digital content |
US6694000B2 (en) * | 2000-04-11 | 2004-02-17 | Telecommunication Systems, Inc. | Prepaid real-time web based reporting |
US20040034816A1 (en) * | 2002-04-04 | 2004-02-19 | Hewlett-Packard Development Company, L.P. | Computer failure recovery and notification system |
US20040039960A1 (en) * | 2002-08-23 | 2004-02-26 | Reza Kassayan | Method and apparatus for automatic hibernation after a power failure |
US20040039924A1 (en) * | 2001-04-09 | 2004-02-26 | Baldwin Robert W. | System and method for security of computing devices |
US20040039916A1 (en) * | 2002-05-10 | 2004-02-26 | David Aldis | System and method for multi-tiered license management and distribution using networked clearinghouses |
US20040044629A1 (en) * | 2002-08-30 | 2004-03-04 | Rhodes James E. | License modes in call processing |
US6704873B1 (en) * | 1999-07-30 | 2004-03-09 | Accenture Llp | Secure gateway interconnection in an e-commerce based environment |
US6708176B2 (en) * | 2001-10-19 | 2004-03-16 | Bank Of America Corporation | System and method for interactive advertising |
US20040054907A1 (en) * | 2002-07-30 | 2004-03-18 | Alain Chateau | Indirect data protection using random key encryption |
US20040054908A1 (en) * | 2002-08-30 | 2004-03-18 | Edgar Circenis | Tamper-evident data management |
US20040054909A1 (en) * | 2002-08-30 | 2004-03-18 | Serkowski Robert J. | Licensing duplicated systems |
US20040059937A1 (en) * | 2002-09-24 | 2004-03-25 | Takehiko Nakano | Apparatus, method and computer program for controlling use of a content |
US6839841B1 (en) * | 1999-01-29 | 2005-01-04 | General Instrument Corporation | Self-generation of certificates using secure microprocessor in a device for transferring digital information |
US6844871B1 (en) * | 1999-11-05 | 2005-01-18 | Microsoft Corporation | Method and apparatus for computer input using six degrees of freedom |
US20050015343A1 (en) * | 2002-09-11 | 2005-01-20 | Norihiro Nagai | License management device, license management method, and computer program |
US6847942B1 (en) * | 2000-05-02 | 2005-01-25 | General Electric Canada Equipment Finance G.P. | Method and apparatus for managing credit inquiries within account receivables |
US20050021992A1 (en) * | 2002-07-15 | 2005-01-27 | Taku Aida | Client terminal, software control method and control program |
US20050021859A1 (en) * | 2003-07-25 | 2005-01-27 | Educational Testing Service | System and method for parallel conversion, compilation, and distribution of content |
US20050021944A1 (en) * | 2003-06-23 | 2005-01-27 | International Business Machines Corporation | Security architecture for system on chip |
US6851051B1 (en) * | 1999-04-12 | 2005-02-01 | International Business Machines Corporation | System and method for liveness authentication using an augmented challenge/response scheme |
US20050028000A1 (en) * | 2003-07-28 | 2005-02-03 | Mallik Bulusu | Method and apparatus for trusted blade device computing |
US6853380B2 (en) * | 2002-03-04 | 2005-02-08 | Hewlett-Packard Development Company, L.P. | Graphical display system and method |
US20050033747A1 (en) * | 2003-05-25 | 2005-02-10 | Erland Wittkotter | Apparatus and method for the server-sided linking of information |
US20050039013A1 (en) * | 2003-08-11 | 2005-02-17 | Bajikar Sundeep M. | Method and system for authenticating a user of a computer system that has a trusted platform module (TPM) |
US20050044197A1 (en) * | 2003-08-18 | 2005-02-24 | Sun Microsystems.Inc. | Structured methodology and design patterns for web services |
US6983050B1 (en) * | 1999-10-20 | 2006-01-03 | Microsoft Corporation | Methods and apparatus for protecting information content |
US6986042B2 (en) * | 2000-08-18 | 2006-01-10 | Hewlett-Packard Development Company, L.P. | Computer system operable to revert to a trusted state |
US20060010326A1 (en) * | 2004-07-08 | 2006-01-12 | International Business Machines Corporation | Method for extending the CRTM in a trusted platform |
US20060015718A1 (en) * | 2004-07-15 | 2006-01-19 | Sony Corporation | Use of kernel authorization data to maintain security in a digital processing system |
US20060015717A1 (en) * | 2004-07-15 | 2006-01-19 | Sony Corporation And Sony Electronics, Inc. | Establishing a trusted platform in a digital processing system |
US20060015732A1 (en) * | 2004-07-15 | 2006-01-19 | Sony Corporation | Processing system using internal digital signatures |
US6990174B2 (en) * | 2003-12-15 | 2006-01-24 | Instrumentarium Corp. | Method and apparatus for performing single-point projection imaging |
US20060020860A1 (en) * | 2004-07-22 | 2006-01-26 | Microsoft Corporation | Digital signature generation for hardware functional test |
US20060020821A1 (en) * | 2004-07-24 | 2006-01-26 | International Business Machines Corp. | System and method for data processing system planar authentication |
US20060020784A1 (en) * | 2002-09-23 | 2006-01-26 | Willem Jonker | Certificate based authorized domains |
US6993648B2 (en) * | 2001-08-16 | 2006-01-31 | Lenovo (Singapore) Pte. Ltd. | Proving BIOS trust in a TCPA compliant system |
US20060026418A1 (en) * | 2004-07-29 | 2006-02-02 | International Business Machines Corporation | Method, apparatus, and product for providing a multi-tiered trust architecture |
US20060026422A1 (en) * | 2004-07-29 | 2006-02-02 | International Business Machines Corporation | Method, apparatus, and product for providing a backup hardware trusted platform module in a hypervisor environment |
US20060026419A1 (en) * | 2004-07-29 | 2006-02-02 | International Business Machines Corporation | Method, apparatus, and product for providing a scalable trusted platform module in a hypervisor environment |
US7000100B2 (en) * | 2001-05-31 | 2006-02-14 | Hewlett-Packard Development Company, L.P. | Application-level software watchdog timer |
US7000829B1 (en) * | 2002-07-16 | 2006-02-21 | Diebold, Incorporated | Automated banking machine key loading system and method |
US7162645B2 (en) * | 2001-02-07 | 2007-01-09 | Renesas Technology Corp. | Storage device including a non-volatile memory |
US7171539B2 (en) * | 2002-11-18 | 2007-01-30 | Arm Limited | Apparatus and method for controlling access to a memory |
US7174457B1 (en) * | 1999-03-10 | 2007-02-06 | Microsoft Corporation | 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 |
US20070033102A1 (en) * | 2005-03-29 | 2007-02-08 | Microsoft Corporation | Securely providing advertising subsidized computer usage |
US20080040800A1 (en) * | 2006-08-03 | 2008-02-14 | Seung Bae Park | Code injection prevention |
US7490356B2 (en) * | 2004-07-20 | 2009-02-10 | Reflectent Software, Inc. | End user risk management |
US7493487B2 (en) * | 2004-10-15 | 2009-02-17 | Microsoft Corporation | Portable computing environment |
US7494277B2 (en) * | 2006-05-31 | 2009-02-24 | Palodex Group Oy | Method and apparatus for medical X-radiography |
US7644239B2 (en) * | 2004-05-03 | 2010-01-05 | Microsoft Corporation | Non-volatile memory cache performance improvement |
US7669056B2 (en) * | 2005-03-29 | 2010-02-23 | Microsoft Corporation | Method and apparatus for measuring presentation data exposure |
Family Cites Families (579)
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 |
US3718906A (en) | 1971-06-01 | 1973-02-27 | R Lightner | Vending system for remotely accessible stored information |
US4405829A (en) | 1977-12-14 | 1983-09-20 | Massachusetts Institute Of Technology | Cryptographic communications system and method |
FR2448825A1 (en) | 1979-02-06 | 1980-09-05 | Telediffusion Fse | SYSTEM FOR TRANSMITTING INFORMATION BETWEEN A TRANSMISSION CENTER AND RECEIVING STATIONS, WHICH IS PROVIDED WITH A MEANS OF CONTROLLING ACCESS TO THE INFORMATION TRANSMITTED |
FR2523745B1 (en) | 1982-03-18 | 1987-06-26 | Bull Sa | METHOD AND DEVICE FOR PROTECTING SOFTWARE DELIVERED BY A SUPPLIER TO A USER |
US4558176A (en) | 1982-09-20 | 1985-12-10 | Arnold Mark G | Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software |
US4528643A (en) | 1983-01-10 | 1985-07-09 | Fpdc, Inc. | System for reproducing information in material objects at a point of sale location |
US4967273A (en) | 1983-03-21 | 1990-10-30 | Vidcode, Inc. | Television program transmission verification method and apparatus |
US4658093A (en) | 1983-07-11 | 1987-04-14 | Hellman Martin E | Software distribution system |
US5103392A (en) | 1983-10-05 | 1992-04-07 | Fujitsu Limited | System for storing history of use of programs including user credit data and having access by the proprietor |
US4620150A (en) | 1984-04-12 | 1986-10-28 | General Electric Company | Electric meter with electronic rolling demand register |
US6289319B1 (en) | 1984-05-24 | 2001-09-11 | Lawrence B. Lockwood | Automatic business and financial transaction processing system |
US4959774A (en) | 1984-07-06 | 1990-09-25 | Ampex Corporation | Shadow memory system for storing variable backup blocks in consecutive time periods |
JPH0535461Y2 (en) | 1985-08-21 | 1993-09-08 | ||
US5050213A (en) | 1986-10-14 | 1991-09-17 | Electronic Publishing Resources, Inc. | Database usage metering and protection system and method |
US4827508A (en) | 1986-10-14 | 1989-05-02 | Personal Library Software, Inc. | Database usage metering and protection system and method |
US4977594A (en) | 1986-10-14 | 1990-12-11 | Electronic Publishing Resources, Inc. | Database usage metering and protection system and method |
US5117457A (en) | 1986-11-05 | 1992-05-26 | International Business Machines Corp. | Tamper resistant packaging for information protection in electronic circuitry |
US4916738A (en) | 1986-11-05 | 1990-04-10 | International Business Machines Corp. | Remote access terminal security |
US5109413A (en) | 1986-11-05 | 1992-04-28 | International Business Machines Corporation | Manipulating rights-to-execute in connection with a software copy protection mechanism |
US4750034A (en) | 1987-01-21 | 1988-06-07 | Cloeck En Moedigh Bioscoopreclame B.V. | Apparatus for monitoring the replay of audio/video information carriers |
US4855922A (en) | 1987-03-20 | 1989-08-08 | Scientific-Atlanta, Inc. | Apparatus and method for monitoring an energy management system |
US4855730A (en) | 1987-05-08 | 1989-08-08 | Rca Licensing Corporation | Component audio/video system with timed control of plural peripheral devices |
JPH0635718Y2 (en) | 1987-08-26 | 1994-09-21 | セイレイ工業株式会社 | Front glass seal structure in the backhoe cabin |
US4953209A (en) | 1988-10-31 | 1990-08-28 | International Business Machines Corp. | Self-verifying receipt and acceptance system for electronically delivered data objects |
US4857999A (en) | 1988-12-20 | 1989-08-15 | Peac Media Research, Inc. | Video monitoring system |
US4933971A (en) | 1989-03-14 | 1990-06-12 | Tandem Computers Incorporated | Method for encrypting transmitted data using a unique key |
GB8916586D0 (en) | 1989-07-20 | 1989-09-06 | Int Computers Ltd | Distributed data processing system |
JPH0736559Y2 (en) | 1989-08-02 | 1995-08-23 | アラコ株式会社 | Seat Cover |
JPH086729Y2 (en) | 1989-08-02 | 1996-02-28 | 藤森工業株式会社 | Liquid sealant supply device for degassing valve |
CA2010591C (en) | 1989-10-20 | 1999-01-26 | Phillip M. Adams | Kernels, description tables and device drivers |
US5249184A (en) | 1990-01-30 | 1993-09-28 | Johnson Service Company | Network control system with improved reliability |
US6507909B1 (en) | 1990-02-13 | 2003-01-14 | Compaq Information Technologies Group, L.P. | Method for executing trusted-path commands |
US5012514A (en) | 1990-06-26 | 1991-04-30 | Paul Renton | Hard drive security system |
US5301268A (en) | 1990-10-10 | 1994-04-05 | Fuji Xerox Co., Ltd. | Apparatus for transferring information between different window systems |
US5222134A (en) | 1990-11-07 | 1993-06-22 | Tau Systems Corporation | Secure system for activating personal computer software at remote locations |
US5103476A (en) | 1990-11-07 | 1992-04-07 | Waite David P | Secure system for activating personal computer software at remote locations |
DE4039355C2 (en) | 1990-12-10 | 1998-07-30 | Bosch Gmbh Robert | Device for checking the function of a watchdog circuit |
US5274368A (en) | 1991-02-15 | 1993-12-28 | Motorola, Inc. | Method and apparatus for controlling access to a communication system |
US5269019A (en) | 1991-04-08 | 1993-12-07 | Storage Technology Corporation | Non-volatile memory storage and bilevel index structure for fast retrieval of modified records of a disk track |
ATE175281T1 (en) | 1991-05-08 | 1999-01-15 | Digital Equipment Corp | LICENSE MANAGEMENT SYSTEM |
US5940504A (en) | 1991-07-01 | 1999-08-17 | Infologic Software, Inc. | Licensing management system and method in which datagrams including an address of a licensee and indicative of use of a licensed product are sent from the licensee's site |
US5414861A (en) | 1991-09-11 | 1995-05-09 | Fujitsu Limited | Data protection system using different levels of reserve power to maintain data in volatile memories for any period of time |
EP0605618A4 (en) | 1991-09-23 | 1998-05-13 | Microsystems Z | Enhanced security system for computing devices. |
US5437040A (en) | 1991-12-20 | 1995-07-25 | Codar Technology | Electronic system with variable threshold power failure signaling |
US6850252B1 (en) | 1999-10-05 | 2005-02-01 | Steven M. Hoffberg | Intelligent electronic appliance system and method |
US5448045A (en) | 1992-02-26 | 1995-09-05 | Clark; Paul C. | System for protecting computers via intelligent tokens or smart cards |
US5389738A (en) | 1992-05-04 | 1995-02-14 | Motorola, Inc. | Tamperproof arrangement for an integrated circuit device |
CA2097360A1 (en) | 1992-06-03 | 1993-12-04 | Paul Dvorkis | Optical readers |
US5193573A (en) | 1992-06-15 | 1993-03-16 | Chronister Clyde H | Ball valve having replaceable seals under full service pressure |
US5721788A (en) | 1992-07-31 | 1998-02-24 | Corbis Corporation | Method and system for digital image signatures |
DE4232271C1 (en) | 1992-09-25 | 1994-02-17 | Siemens Ag | Electronic component with a shift register test architecture (boundary scan) |
US5319705A (en) | 1992-10-21 | 1994-06-07 | International Business Machines Corporation | Method and system for multimedia access control enablement |
US5303370A (en) | 1992-11-13 | 1994-04-12 | Score Group, Inc. | Anti-counterfeiting process using lenticular optics and color masking |
US5509070A (en) | 1992-12-15 | 1996-04-16 | Softlock Services Inc. | Method for encouraging purchase of executable and non-executable software |
US5373561A (en) | 1992-12-21 | 1994-12-13 | Bell Communications Research, Inc. | Method of extending the validity of a cryptographic certificate |
GB9303595D0 (en) | 1993-02-23 | 1993-04-07 | Int Computers Ltd | Licence management mechanism for a computer system |
US5644364A (en) | 1993-04-16 | 1997-07-01 | Avid Technology, Inc. | Media pipeline with multichannel video processing and playback |
JP3500662B2 (en) | 1993-06-25 | 2004-02-23 | 株式会社三洋物産 | Control device |
US5513319A (en) | 1993-07-02 | 1996-04-30 | Dell Usa, L.P. | Watchdog timer for computer system reset |
US5355161A (en) | 1993-07-28 | 1994-10-11 | Concord Media Systems | Identification system for broadcast program segments |
US5771354A (en) | 1993-11-04 | 1998-06-23 | Crawford; Christopher M. | Internet online backup system provides remote storage for customers using IDs and passwords which were interactively established when signing up for backup services |
US5636292C1 (en) | 1995-05-08 | 2002-06-18 | Digimarc Corp | Steganography methods employing embedded calibration data |
NZ336413A (en) | 1993-12-01 | 2000-01-28 | Rpk Nz Ltd | Method of generating random numbers by manipulating electronic pointer with coordinates at points corresponding to time instants being used for selection of points subset and computation of number function |
US5495411A (en) | 1993-12-22 | 1996-02-27 | Ananda; Mohan | Secure software rental system using continuous asynchronous password verification |
US5530846A (en) | 1993-12-29 | 1996-06-25 | International Business Machines Corporation | System for decoupling clock amortization from clock synchronization |
ATE202439T1 (en) | 1994-01-13 | 2001-07-15 | Certco Inc | ENCRYPTION DEVICE AND METHOD WITH POSSIBILITY FOR SECURE CENTRAL KEY STORAGE |
US5442704A (en) | 1994-01-14 | 1995-08-15 | Bull Nh Information Systems Inc. | Secure memory card with programmed controlled security access control |
CA2143874C (en) | 1994-04-25 | 2000-06-20 | Thomas Edward Cooper | Method and apparatus for enabling trial period use of software products: method and apparatus for utilizing a decryption stub |
US5473692A (en) | 1994-09-07 | 1995-12-05 | Intel Corporation | Roving software license for a hardware agent |
JP3531978B2 (en) | 1994-08-10 | 2004-05-31 | 富士通株式会社 | Software billing system |
DE69534757T2 (en) | 1994-09-15 | 2006-08-31 | International Business Machines Corp. | System and method for secure storage and distribution of data using digital signatures |
US5715314A (en) | 1994-10-24 | 1998-02-03 | Open Market, Inc. | Network sales system |
US5563799A (en) | 1994-11-10 | 1996-10-08 | United Technologies Automotive, Inc. | Low cost/low current watchdog circuit for microprocessor |
US5845065A (en) | 1994-11-15 | 1998-12-01 | Wrq, Inc. | Network license compliance apparatus and method |
US5629980A (en) | 1994-11-23 | 1997-05-13 | Xerox Corporation | System for controlling the distribution and use of digital works |
US5638443A (en) | 1994-11-23 | 1997-06-10 | Xerox Corporation | System for controlling the distribution and use of composite digital works |
US5634012A (en) | 1994-11-23 | 1997-05-27 | Xerox Corporation | System for controlling the distribution and use of digital works having a fee reporting mechanism |
JPH08263438A (en) | 1994-11-23 | 1996-10-11 | Xerox Corp | Distribution and use control system of digital work and access control method to digital work |
US5715403A (en) | 1994-11-23 | 1998-02-03 | Xerox Corporation | System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar |
MY127916A (en) | 1994-12-22 | 2006-12-29 | Sony Corp | Recording medium for protecting copyrighted data |
US5586291A (en) | 1994-12-23 | 1996-12-17 | Emc Corporation | Disk controller with volatile and non-volatile cache memories |
SE504085C2 (en) | 1995-02-01 | 1996-11-04 | Greg Benson | Methods and systems for managing data objects in accordance with predetermined conditions for users |
US6157721A (en) | 1996-08-12 | 2000-12-05 | Intertrust Technologies Corp. | Systems and methods using cryptography to protect secure computing environments |
US5892900A (en) | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
JPH10512074A (en) | 1995-02-13 | 1998-11-17 | インタートラスト テクノロジーズ コーポレイション | System and method for secure transaction management and electronic rights protection |
US5742682A (en) | 1995-03-31 | 1998-04-21 | Pitney Bowes Inc. | Method of manufacturing secure boxes in a key management system |
US5618268A (en) * | 1995-06-06 | 1997-04-08 | B. Braun Medical Inc. | Medical infusion devices and medicine delivery systems employing the same |
US5883955A (en) | 1995-06-07 | 1999-03-16 | Digital River, Inc. | On-line try before you buy software distribution system |
US5768382A (en) | 1995-11-22 | 1998-06-16 | Walker Asset Management Limited Partnership | Remote-auditing of computer generated outcomes and authenticated biling and access control system using cryptographic and other protocols |
US5671412A (en) | 1995-07-28 | 1997-09-23 | Globetrotter Software, Incorporated | License management system for software applications |
US5793839A (en) | 1995-08-03 | 1998-08-11 | Bell Atlantic Network Services, Inc. | Common channel signaling event detection and control |
US5809144A (en) | 1995-08-24 | 1998-09-15 | Carnegie Mellon University | Method and apparatus for purchasing and delivering digital goods over a network |
US5710887A (en) | 1995-08-29 | 1998-01-20 | Broadvision | Computer system and method for electronic commerce |
US6147773A (en) | 1995-09-05 | 2000-11-14 | Hewlett-Packard Company | System and method for a communication system |
US5758068A (en) | 1995-09-19 | 1998-05-26 | International Business Machines Corporation | Method and apparatus for software license management |
US5765152A (en) | 1995-10-13 | 1998-06-09 | Trustees Of Dartmouth College | System and method for managing copyrighted electronic media |
JP3982848B2 (en) | 1995-10-19 | 2007-09-26 | 富士通株式会社 | Security level control device and network communication system |
US5825883A (en) | 1995-10-31 | 1998-10-20 | Interval Systems, Inc. | Method and apparatus that accounts for usage of digital applications |
WO1997019537A1 (en) | 1995-11-22 | 1997-05-29 | Walker Asset Management L.P. | Remote-auditing of computer generated outcomes using cryptographic and other protocols |
US5825876A (en) | 1995-12-04 | 1998-10-20 | Northern Telecom | Time based availability to content of a storage medium |
US5708709A (en) | 1995-12-08 | 1998-01-13 | Sun Microsystems, Inc. | System and method for managing try-and-buy usage of application programs |
US5774870A (en) | 1995-12-14 | 1998-06-30 | Netcentives, Inc. | Fully integrated, on-line interactive frequency and award redemption program |
US6885994B1 (en) | 1995-12-26 | 2005-04-26 | Catalina Marketing International, Inc. | System and method for providing shopping aids and incentives to customers through a computer network |
JPH09185504A (en) | 1995-12-28 | 1997-07-15 | Presto Japan Kk | Device and method for rewriting data |
WO1997025798A1 (en) | 1996-01-11 | 1997-07-17 | Mrj, Inc. | System for controlling access and distribution of digital property |
DE19612999C2 (en) | 1996-03-22 | 1999-04-01 | Wasy Ges Fuer Wasserwirtschaft | System for protecting protected software against unauthorized use in computer networks |
US5673316A (en) | 1996-03-29 | 1997-09-30 | International Business Machines Corporation | Creation and distribution of cryptographic envelope |
CN1139067C (en) | 1996-05-15 | 2004-02-18 | 英特托拉斯技术公司 | Cryptographic method, apparatus and systems for storage media electronic rights management in closed and connected appliances |
KR100473536B1 (en) | 1996-05-22 | 2005-05-16 | 마츠시타 덴끼 산교 가부시키가이샤 | An encryption apparatus for ensuring security in communication between devices and communication system |
US5802592A (en) | 1996-05-31 | 1998-09-01 | International Business Machines Corporation | System and method for protecting integrity of alterable ROM using digital signatures |
US5825877A (en) | 1996-06-11 | 1998-10-20 | International Business Machines Corporation | Support for portable trusted software |
US5809145A (en) | 1996-06-28 | 1998-09-15 | Paradata Systems Inc. | System for distributing digital information |
US6125352A (en) | 1996-06-28 | 2000-09-26 | Microsoft Corporation | System and method for conducting commerce over a distributed network |
US5812930A (en) | 1996-07-10 | 1998-09-22 | International Business Machines Corp. | Information handling systems with broadband and narrowband communication channels between repository and display systems |
US20010014884A1 (en) | 1996-07-12 | 2001-08-16 | Kelly Eugene Dillard | Copy protection for database updates transmitted via the internet |
US5892906A (en) | 1996-07-19 | 1999-04-06 | Chou; Wayne W. | Apparatus and method for preventing theft of computer devices |
US6272538B1 (en) | 1996-07-30 | 2001-08-07 | Micron Technology, Inc. | Method and system for establishing a security perimeter in computer networks |
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 |
EP1693804B1 (en) | 1996-09-04 | 2009-11-11 | Intertrust Technologies Corp. | Trusted infrastructure support systems, methods and techniques for secure electronic commerce, electronic transactions, commerce process control and automation, distributed computing and rights management |
US7039603B2 (en) | 1996-09-04 | 2006-05-02 | Walker Digital, Llc | Settlement systems and methods wherein a buyer takes possession at a retailer of a product purchased using a communication network |
US5949879A (en) | 1996-09-06 | 1999-09-07 | Pitney Bowes Inc. | Auditable security system for the generation of cryptographically protected digital data |
US6035403A (en) | 1996-09-11 | 2000-03-07 | Hush, Inc. | Biometric based method for software distribution |
US5926624A (en) | 1996-09-12 | 1999-07-20 | Audible, Inc. | Digital information library and delivery system with logic for generating files targeted to the playback device |
US5983350A (en) | 1996-09-18 | 1999-11-09 | Secure Computing Corporation | Secure firewall supporting different levels of authentication based on address or encryption status |
JPH1093914A (en) | 1996-09-18 | 1998-04-10 | Sony Corp | Data transmitting method, data transmitter, parameter setting method of data receiver, data receiver, data transmitting system, reproducing method and reproducing device |
US5844986A (en) | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
US5825879A (en) | 1996-09-30 | 1998-10-20 | Intel Corporation | System and method for copy-protecting distributed video content |
US5754763A (en) | 1996-10-01 | 1998-05-19 | International Business Machines Corporation | Software auditing mechanism for a distributed computer enterprise environment |
US5948061A (en) | 1996-10-29 | 1999-09-07 | Double Click, Inc. | Method of delivery, targeting, and measuring advertising over networks |
US6537352B2 (en) | 1996-10-30 | 2003-03-25 | Idatech, Llc | Hydrogen purification membranes, components and fuel processing systems containing the same |
US6367017B1 (en) | 1996-11-07 | 2002-04-02 | Litronic Inc. | Apparatus and method for providing and authentication system |
US6167520A (en) | 1996-11-08 | 2000-12-26 | Finjan Software, Inc. | System and method for protecting a client during runtime from hostile downloadables |
US5889860A (en) | 1996-11-08 | 1999-03-30 | Sunhawk Corporation, Inc. | Encryption system with transaction coded decryption key |
CA2271012A1 (en) | 1996-11-25 | 1998-06-04 | Hyperlock Technologies, Inc. | Method for securely triggering the playing of crippled local media through the web |
US6523119B2 (en) | 1996-12-04 | 2003-02-18 | Rainbow Technologies, Inc. | Software protection device and method |
US5913038A (en) | 1996-12-13 | 1999-06-15 | Microsoft Corporation | System and method for processing multimedia data streams using filter graphs |
GB9626241D0 (en) | 1996-12-18 | 1997-02-05 | Ncr Int Inc | Secure data processing method and system |
US5763832A (en) | 1997-01-02 | 1998-06-09 | Anselm; Anthony C. | Apparatus for affixing a strain wire into the wiring of flexible electric conduit |
US5943248A (en) | 1997-01-17 | 1999-08-24 | Picturetel Corporation | w-bit non-linear combiner for pseudo-random number generation |
US6073124A (en) | 1997-01-29 | 2000-06-06 | Shopnow.Com Inc. | Method and system for securely incorporating electronic information into an online purchasing application |
US6141698A (en) | 1997-01-29 | 2000-10-31 | Network Commerce Inc. | Method and system for injecting new code into existing application code |
US5953502A (en) | 1997-02-13 | 1999-09-14 | Helbig, Sr.; Walter A | Method and apparatus for enhancing computer system security |
US5920861A (en) | 1997-02-25 | 1999-07-06 | Intertrust Technologies Corp. | Techniques for defining using and manipulating rights management data structures |
DE19712375A1 (en) | 1997-03-25 | 1998-10-01 | Bosch Gmbh Robert | Watchdog circuit |
US5925127A (en) | 1997-04-09 | 1999-07-20 | Microsoft Corporation | Method and system for monitoring the use of rented software |
US6119229A (en) | 1997-04-11 | 2000-09-12 | The Brodia Group | Virtual property system |
US6441813B1 (en) | 1997-05-16 | 2002-08-27 | Kabushiki Kaisha Toshiba | Computer system, and video decoder used in the system |
US6073172A (en) | 1997-07-14 | 2000-06-06 | Freegate Corporation | Initializing and reconfiguring a secure network interface |
US6230185B1 (en) | 1997-07-15 | 2001-05-08 | Eroom Technology, Inc. | Method and apparatus for facilitating communication between collaborators in a networked environment |
US6314408B1 (en) | 1997-07-15 | 2001-11-06 | Eroom Technology, Inc. | Method and apparatus for controlling access to a product |
US6233600B1 (en) | 1997-07-15 | 2001-05-15 | Eroom Technology, Inc. | Method and system for providing a networked collaborative work environment |
US6425081B1 (en) | 1997-08-20 | 2002-07-23 | Canon Kabushiki Kaisha | Electronic watermark system electronic information distribution system and image filing apparatus |
US6061796A (en) | 1997-08-26 | 2000-05-09 | V-One Corporation | Multi-access virtual private network |
US6233685B1 (en) | 1997-08-29 | 2001-05-15 | Sean William Smith | Establishing and employing the provable untampered state of a device |
US6061794A (en) | 1997-09-30 | 2000-05-09 | Compaq Computer Corp. | System and method for performing secure device communications in a peer-to-peer bus architecture |
US6170060B1 (en) | 1997-10-03 | 2001-01-02 | Audible, Inc. | Method and apparatus for targeting a digital information playback device |
DE19744375A1 (en) | 1997-10-08 | 1999-04-15 | Philips Patentverwaltung | Control circuit for a microcontroller |
US6230272B1 (en) | 1997-10-14 | 2001-05-08 | Entrust Technologies Limited | System and method for protecting a multipurpose data string used for both decrypting data and for authenticating a user |
US6286051B1 (en) | 1997-11-12 | 2001-09-04 | International Business Machines Corporation | Method and apparatus for extending a java archive file |
US6078909A (en) | 1997-11-19 | 2000-06-20 | International Business Machines Corporation | Method and apparatus for licensing computer programs using a DSA signature |
US6334189B1 (en) | 1997-12-05 | 2001-12-25 | Jamama, Llc | Use of pseudocode to protect software from unauthorized use |
US6128740A (en) | 1997-12-08 | 2000-10-03 | Entrust Technologies Limited | Computer security system and method with on demand publishing of certificate revocation lists |
DE69806821T2 (en) | 1997-12-10 | 2003-01-16 | Thomson Licensing S.A., Boulogne | METHOD FOR PROTECTING IMAGE / SOUND DATA THROUGH AN NRSS INTERFACE |
US6567793B1 (en) | 1997-12-22 | 2003-05-20 | Christian Bielefeldt Hicks | Remote authorization for unlocking electronic data system and method |
US5983238A (en) | 1997-12-26 | 1999-11-09 | Diamond Id | Gemstons identification tracking and recovery system |
US6134659A (en) | 1998-01-07 | 2000-10-17 | Sprong; Katherine A. | Controlled usage software |
US6148417A (en) | 1998-01-14 | 2000-11-14 | Micron Electronics, Inc. | Method for determining a source of failure during a file system access |
US6069647A (en) | 1998-01-29 | 2000-05-30 | Intel Corporation | Conditional access and content security method |
US6295577B1 (en) | 1998-02-24 | 2001-09-25 | Seagate Technology Llc | Disc storage system having a non-volatile cache to store write data in the event of a power failure |
JP3743594B2 (en) | 1998-03-11 | 2006-02-08 | 株式会社モリタ製作所 | CT imaging device |
US20020055906A1 (en) | 1998-03-11 | 2002-05-09 | Katz Ronald A. | Methods and apparatus for intelligent selection of goods and services in telephonic and electronic commerce |
US6553420B1 (en) | 1998-03-13 | 2003-04-22 | Massachusetts Institute Of Technology | Method and apparatus for distributing requests among a plurality of resources |
US7233948B1 (en) | 1998-03-16 | 2007-06-19 | Intertrust Technologies Corp. | Methods and apparatus for persistent control and protection of content |
US7809138B2 (en) | 1999-03-16 | 2010-10-05 | Intertrust Technologies Corporation | Methods and apparatus for persistent control and protection of content |
US6253224B1 (en) | 1998-03-24 | 2001-06-26 | International Business Machines Corporation | Method and system for providing a hardware machine function in a protected virtual machine |
US6279156B1 (en) | 1999-01-26 | 2001-08-21 | Dell Usa, L.P. | Method of installing software on and/or testing a computer system |
US6226747B1 (en) | 1998-04-10 | 2001-05-01 | Microsoft Corporation | Method for preventing software piracy during installation from a read only storage medium |
US7503072B2 (en) | 1998-04-29 | 2009-03-10 | Microsoft Corporation | Hardware ID to prevent software piracy |
US5994710A (en) | 1998-04-30 | 1999-11-30 | Hewlett-Packard Company | Scanning mouse for a computer system |
DE19820605A1 (en) | 1998-05-08 | 1999-11-11 | Giesecke & Devrient Gmbh | Method for secure distribution of software |
US6219788B1 (en) | 1998-05-14 | 2001-04-17 | International Business Machines Corporation | Watchdog for trusted electronic content distributions |
IL124571A0 (en) | 1998-05-21 | 1998-12-06 | Miki Mullor | Method of restricting software operation within a licensed limitation |
US6219652B1 (en) | 1998-06-01 | 2001-04-17 | Novell, Inc. | Network license authentication |
US20040225894A1 (en) | 1998-06-04 | 2004-11-11 | Z4 Technologies, Inc. | Hardware based method for digital rights management including self activating/self authentication software |
US20040107368A1 (en) | 1998-06-04 | 2004-06-03 | Z4 Technologies, Inc. | Method for digital rights management including self activating/self authentication software |
US6684332B1 (en) | 1998-06-10 | 2004-01-27 | International Business Machines Corporation | Method and system for the exchange of digitally signed objects over an insecure network |
US6279111B1 (en) | 1998-06-12 | 2001-08-21 | Microsoft Corporation | Security model using restricted tokens |
US6298446B1 (en) | 1998-06-14 | 2001-10-02 | Alchemedia Ltd. | Method and system for copyright protection of digital images transmitted over networks |
US6049789A (en) | 1998-06-24 | 2000-04-11 | Mentor Graphics Corporation | Software pay per use licensing system |
US6587684B1 (en) | 1998-07-28 | 2003-07-01 | Bell Atlantic Nynex Mobile | Digital wireless telephone system for downloading software to a digital telephone using wireless data link protocol |
US6374355B1 (en) | 1998-07-31 | 2002-04-16 | Lucent Technologies Inc. | Method for securing over-the-air communication in a wireless system |
US6226618B1 (en) | 1998-08-13 | 2001-05-01 | International Business Machines Corporation | Electronic content delivery system |
US6868433B1 (en) | 1998-09-11 | 2005-03-15 | L.V. Partners, L.P. | Input device having positional and scanning capabilities |
US6385727B1 (en) | 1998-09-25 | 2002-05-07 | Hughes Electronics Corporation | Apparatus for providing a secure processing environment |
US6671803B1 (en) | 1998-10-06 | 2003-12-30 | Koninklijke Philips Electronics N.V. | Method and system for consumer electronic device certificate management |
US6266420B1 (en) | 1998-10-08 | 2001-07-24 | Entrust Technologies Limited | Method and apparatus for secure group communications |
CN100426263C (en) | 1998-10-16 | 2008-10-15 | 松下电器产业株式会社 | Recording medium device and access device |
CA2347211A1 (en) | 1998-10-23 | 2000-05-04 | L-3 Communications Corporation | Apparatus and methods for managing key material in heterogeneous cryptographic assets |
US6330670B1 (en) | 1998-10-26 | 2001-12-11 | Microsoft Corporation | Digital rights management operating system |
US6327652B1 (en) | 1998-10-26 | 2001-12-04 | Microsoft Corporation | Loading and identifying a digital rights management operating system |
EP1127421A4 (en) | 1998-10-28 | 2004-12-15 | L 3 Comm Corp | Encryption and authentication methods and apparatus for securing telephone communications |
US6321335B1 (en) | 1998-10-30 | 2001-11-20 | Acqis Technology, Inc. | Password protected modular computer method and device |
US6799270B1 (en) | 1998-10-30 | 2004-09-28 | Citrix Systems, Inc. | System and method for secure distribution of digital information to a chain of computer system nodes in a network |
US6442529B1 (en) | 1998-11-17 | 2002-08-27 | Novaweb Technologies, Inc. | Methods and apparatus for delivering targeted information and advertising over the internet |
US6272469B1 (en) | 1998-11-25 | 2001-08-07 | Ge Medical Systems Global Technology Company, Llc | Imaging system protocol handling method and apparatus |
US6303924B1 (en) | 1998-12-21 | 2001-10-16 | Microsoft Corporation | Image sensing operator input device |
US6263431B1 (en) | 1998-12-31 | 2001-07-17 | Intle Corporation | Operating system bootstrap security mechanism |
US20020023207A1 (en) | 1999-01-14 | 2002-02-21 | Olik Zbigniew T. | Secure data transfer between a client and a back-end resource via an intermediary |
WO2000048062A1 (en) | 1999-02-15 | 2000-08-17 | Hewlett-Packard Company | Communications between modules of a computing apparatus |
US7552166B2 (en) | 1999-02-22 | 2009-06-23 | Chack Michael A | Method of queuing requests to access a communications network |
JP3779837B2 (en) | 1999-02-22 | 2006-05-31 | 松下電器産業株式会社 | Computer and program recording medium |
WO2000054126A1 (en) | 1999-03-05 | 2000-09-14 | Hewlett-Packard Company | Smartcard user interface for trusted computing platform |
AU776027C (en) | 1999-03-08 | 2005-04-07 | Spyrus, Inc. | Method and system for enforcing access to a computing resource using a licensing attribute certificate |
US7124938B1 (en) | 1999-03-24 | 2006-10-24 | Microsoft Corporation | Enhancing smart card usage for associating media content with households |
US6223291B1 (en) | 1999-03-26 | 2001-04-24 | Motorola, Inc. | Secure wireless electronic-commerce system with digital product certificates and digital license certificates |
US6463534B1 (en) | 1999-03-26 | 2002-10-08 | Motorola, Inc. | Secure wireless electronic-commerce system with wireless network domain |
US7024393B1 (en) | 1999-03-27 | 2006-04-04 | Microsoft Corporation | Structural of digital rights management (DRM) system |
US7103574B1 (en) | 1999-03-27 | 2006-09-05 | Microsoft Corporation | Enforcement architecture and method for digital rights management |
US6829708B1 (en) | 1999-03-27 | 2004-12-07 | Microsoft Corporation | Specifying security for an element by assigning a scaled value representative of the relative security thereof |
US20020012432A1 (en) | 1999-03-27 | 2002-01-31 | Microsoft Corporation | Secure video card in computing device having digital rights management (DRM) system |
US7073063B2 (en) | 1999-03-27 | 2006-07-04 | Microsoft Corporation | Binding a digital license to a portable device or the like in a digital rights management (DRM) system and checking out/checking in the digital license to/from the portable device or the like |
US6816596B1 (en) | 2000-01-14 | 2004-11-09 | Microsoft Corporation | Encrypting a digital object based on a key ID selected therefor |
US8131648B2 (en) | 1999-10-20 | 2012-03-06 | Tivo Inc. | Electronic content distribution and exchange system |
US6920567B1 (en) | 1999-04-07 | 2005-07-19 | Viatech Technologies Inc. | System and embedded license control mechanism for the creation and distribution of digital content files and enforcement of licensed use of the digital content files |
JP2000293369A (en) | 1999-04-08 | 2000-10-20 | Canon Inc | Device with machine type identifying function, machine type identifying method and storage medium |
EP1045388A1 (en) | 1999-04-16 | 2000-10-18 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for preventing illegal usage of multimedia content |
SE514105C2 (en) | 1999-05-07 | 2001-01-08 | Ericsson Telefon Ab L M | Secure distribution and protection of encryption key information |
US6581102B1 (en) | 1999-05-27 | 2003-06-17 | International Business Machines Corporation | System and method for integrating arbitrary isochronous processing algorithms in general media processing systems |
US6957186B1 (en) | 1999-05-27 | 2005-10-18 | Accenture Llp | System method and article of manufacture for building, managing, and supporting various components of a system |
US7089194B1 (en) | 1999-06-17 | 2006-08-08 | International Business Machines Corporation | Method and apparatus for providing reduced cost online service and adaptive targeting of advertisements |
US6631478B1 (en) | 1999-06-18 | 2003-10-07 | Cisco Technology, Inc. | Technique for implementing high performance stable storage hierarchy in a computer network |
US6874087B1 (en) | 1999-07-13 | 2005-03-29 | International Business Machines Corporation | Integrity checking an executable module and associated protected service provider module |
EP1076279A1 (en) | 1999-08-13 | 2001-02-14 | Hewlett-Packard Company | Computer platforms and their methods of operation |
US6609201B1 (en) | 1999-08-18 | 2003-08-19 | Sun Microsystems, Inc. | Secure program execution using instruction buffer interdependencies |
US7406603B1 (en) | 1999-08-31 | 2008-07-29 | Intertrust Technologies Corp. | Data protection systems and methods |
US6449598B1 (en) | 1999-09-02 | 2002-09-10 | Xware Compliance, Inc. | Health care policy on-line maintenance dissemination and compliance testing system |
JP2001075870A (en) | 1999-09-02 | 2001-03-23 | Sony Corp | Method and system for transmitting information signal, and information signal transmitting device and information signal receiving device |
US6158657A (en) | 1999-09-03 | 2000-12-12 | Capital One Financial Corporation | System and method for offering and providing secured credit card products |
EP1085396A1 (en) | 1999-09-17 | 2001-03-21 | Hewlett-Packard Company | Operation of trusted state in computing platform |
JP2001101033A (en) | 1999-09-27 | 2001-04-13 | Hitachi Ltd | Fault monitoring method for operating system and application program |
US6763458B1 (en) | 1999-09-27 | 2004-07-13 | Captaris, Inc. | System and method for installing and servicing an operating system in a computer or information appliance |
US6738810B1 (en) | 1999-11-03 | 2004-05-18 | D. Michael Corporation | Method and apparatus for encouraging timely payments associated with a computer system |
US20020123964A1 (en) | 1999-11-03 | 2002-09-05 | Gerald Arthur Kramer | Payment monitoring system |
JP2003514306A (en) | 1999-11-05 | 2003-04-15 | クォーク・メディア・ハウス・ソシエテ・ア・レスポンサビリテ・リミテ | Method and process for pricing calculations using a computer system |
US6826690B1 (en) | 1999-11-08 | 2004-11-30 | International Business Machines Corporation | Using device certificates for automated authentication of communicating devices |
US7340055B2 (en) | 1999-12-02 | 2008-03-04 | Sanyo Electric Co., Ltd. | Memory card and data distribution system using it |
WO2001045012A2 (en) | 1999-12-15 | 2001-06-21 | E-Scoring, Inc. | Systems and methods for providing consumers anonymous pre-approved offers from a consumer-selected group of merchants |
JP2001175606A (en) | 1999-12-20 | 2001-06-29 | Sony Corp | Data processor, and data processing equipment and its method |
JP2001184472A (en) | 1999-12-27 | 2001-07-06 | Hitachi Ltd | Supply method for application program, smart card, script supply method, terminal device, and storage medium with application program |
US6460140B1 (en) | 1999-12-30 | 2002-10-01 | Starnet Communications Corporation | System for controlling the use of licensed software |
US6816900B1 (en) | 2000-01-04 | 2004-11-09 | Microsoft Corporation | Updating trusted root certificates on a client computer |
US7353209B1 (en) | 2000-01-14 | 2008-04-01 | Microsoft Corporation | Releasing decrypted digital content to an authenticated path |
US6571216B1 (en) | 2000-01-14 | 2003-05-27 | International Business Machines Corporation | Differential rewards with dynamic user profiling |
US6772340B1 (en) | 2000-01-14 | 2004-08-03 | Microsoft Corporation | Digital rights management system operating on computing device and having black box tied to computing device |
US6791157B1 (en) | 2000-01-18 | 2004-09-14 | Advanced Micro Devices, Inc. | Integrated circuit package incorporating programmable elements |
SG103829A1 (en) | 2000-01-28 | 2004-05-26 | Canon Kk | Digital contents distribution system, digital contents distribution method, roaming server, information processor, and information processing method |
FR2805062B1 (en) | 2000-02-10 | 2005-04-08 | Bull Cp8 | METHOD FOR TRANSMITTING HIGH-FLOW DATA STREAMS OVER AN INTERNET-TYPE NETWORK BETWEEN A SERVER AND A CHIP-CARD TERMINAL, IN PARTICULAR A MULTIMEDIA DATA STREAM |
EP1128342B1 (en) | 2000-02-21 | 2008-08-13 | IRIS CORPORATION BERHAD, Iris Smart Technology Complex | System for providing access to secured data |
WO2001063512A1 (en) | 2000-02-23 | 2001-08-30 | Park Jong Hyouk | The method of advertisement using an online chatting |
JP2001236324A (en) | 2000-02-24 | 2001-08-31 | Fujitsu Ltd | Portable electronic device having personal authentication function based on biometric information |
US7421480B2 (en) | 2000-02-28 | 2008-09-02 | O2 Micro International Limited | Personal computing environment using mozilla |
JP2001290650A (en) | 2000-02-28 | 2001-10-19 | Hewlett Packard Co <Hp> | Device and method for automatically installing application program |
WO2001065368A2 (en) | 2000-03-01 | 2001-09-07 | Tashenberg Bradley A | A distributed operating network and method for using and implementing same |
JP2001338233A (en) | 2000-03-24 | 2001-12-07 | Sony Corp | Electronic equipment, system and method for charging based on hours used, charging processor, recording medium and prepaid card |
US6625729B1 (en) | 2000-03-31 | 2003-09-23 | Hewlett-Packard Company, L.P. | Computer system having security features for authenticating different components |
WO2001077795A2 (en) | 2000-04-07 | 2001-10-18 | Viatech Technologies Inc. | System and embedded license control mechanism for the creation and distribution of digital content files and enforcement of licensed use of the digital content files |
US7155415B2 (en) | 2000-04-07 | 2006-12-26 | Movielink Llc | Secure digital content licensing system and method |
JP2001312325A (en) | 2000-04-28 | 2001-11-09 | Hitachi Ltd | Method and system for issuing program license key |
US6954728B1 (en) | 2000-05-15 | 2005-10-11 | Avatizing, Llc | System and method for consumer-selected advertising and branding in interactive media |
US7274667B2 (en) | 2000-05-19 | 2007-09-25 | Scientific-Atlanta, Inc. | Monitoring and allocating access across a shared communications medium |
JP2001331229A (en) | 2000-05-23 | 2001-11-30 | Nec Software Hokuriku Ltd | System for selling program use ticket and method for the same and recording medium |
FI20001326A0 (en) | 2000-06-02 | 2000-06-02 | Sonera Oyj | Dissemination of information to a receiving device |
US20020010863A1 (en) | 2000-06-08 | 2002-01-24 | Stefan Mankefors | Method for protecting software |
US7213266B1 (en) | 2000-06-09 | 2007-05-01 | Intertrust Technologies Corp. | Systems and methods for managing and protecting electronic content and applications |
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 |
US6961858B2 (en) | 2000-06-16 | 2005-11-01 | Entriq, Inc. | Method and system to secure content for distribution via a network |
US6976162B1 (en) | 2000-06-28 | 2005-12-13 | Intel Corporation | Platform and method for establishing provable identities while maintaining privacy |
US7036011B2 (en) | 2000-06-29 | 2006-04-25 | Cachestream Corporation | Digital rights management |
US7039801B2 (en) | 2000-06-30 | 2006-05-02 | Microsoft Corporation | System and method for integrating secure and non-secure software objects |
WO2002007440A2 (en) | 2000-07-15 | 2002-01-24 | Filippo Costanzo | Audio-video data switching and viewing system |
US20020104096A1 (en) | 2000-07-19 | 2002-08-01 | Cramer Allen Brett | System and methods for providing web-based multimedia presentations |
AUPQ897300A0 (en) | 2000-07-24 | 2000-08-17 | Voyager Media Ltd | A reward system |
JP3527211B2 (en) | 2000-08-01 | 2004-05-17 | 日立マクセル株式会社 | Electronic coupon system |
KR100471053B1 (en) | 2000-08-04 | 2005-03-07 | 삼성전자주식회사 | Computer and method for controlling the same |
DE50007300D1 (en) | 2000-08-24 | 2004-09-09 | Wibu Systems Ag | Process for the protection of computer software and / or computer-readable data and protective device |
US7043633B1 (en) | 2000-08-28 | 2006-05-09 | Verizon Corporation Services Group Inc. | Method and apparatus for providing adaptive self-synchronized dynamic address translation |
US6931545B1 (en) | 2000-08-28 | 2005-08-16 | Contentguard Holdings, Inc. | Systems and methods for integrity certification and verification of content consumption environments |
US7596784B2 (en) | 2000-09-12 | 2009-09-29 | Symantec Operating Corporation | Method system and apparatus for providing pay-per-use distributed computing resources |
US7171558B1 (en) | 2000-09-22 | 2007-01-30 | International Business Machines Corporation | Transparent digital rights management for extendible content viewers |
US6963972B1 (en) | 2000-09-26 | 2005-11-08 | International Business Machines Corporation | Method and apparatus for networked information dissemination through secure transcoding |
JP2002108870A (en) | 2000-09-27 | 2002-04-12 | Oki Electric Ind Co Ltd | System and method for processing information |
JP3776705B2 (en) | 2000-09-28 | 2006-05-17 | 株式会社東芝 | COMMUNICATION SYSTEM, MOBILE TERMINAL DEVICE, GATEWAY DEVICE, AND COMMUNICATION CONTROL METHOD |
US6895504B1 (en) | 2000-09-29 | 2005-05-17 | Intel Corporation | Enabling secure communications with a client |
US7096469B1 (en) | 2000-10-02 | 2006-08-22 | International Business Machines Corporation | Method and apparatus for enforcing capacity limitations in a logically partitioned system |
JP2002108478A (en) | 2000-10-02 | 2002-04-10 | Heisei Kikaku System:Kk | Method and system for selling software use license with use time unit charge |
WO2002031742A2 (en) | 2000-10-12 | 2002-04-18 | Maggio Frank S | Method and system for communicating advertising and entertainment content and gathering consumer information |
US20060282319A1 (en) | 2000-10-12 | 2006-12-14 | Maggio Frank S | Method and system for substituting media content |
CN1401171A (en) | 2000-10-18 | 2003-03-05 | 皇家菲利浦电子有限公司 | Generation of a common encryption key |
KR20010000805A (en) | 2000-10-20 | 2001-01-05 | 박명산 | Improved credit card settlement system in e-commerce and the method thereof |
US6986030B2 (en) | 2000-10-27 | 2006-01-10 | M-Systems Flash Disk Pioneers Ltd. | Portable memory device includes software program for interacting with host computing device to provide a customized configuration for the program |
US20020057795A1 (en) | 2000-11-10 | 2002-05-16 | Spurgat Jeffrey Jonathan | Content protection through the audio and video decrypting and decoding device |
KR20020037453A (en) | 2000-11-14 | 2002-05-22 | 전영삼 | An electronic medical insurance card and an electronic medical insurance card system and operating method thereof |
JP4524480B2 (en) | 2000-11-24 | 2010-08-18 | 三洋電機株式会社 | Data terminal equipment |
US20020129359A1 (en) | 2000-11-27 | 2002-09-12 | Lichner Randall Manton | Cross platform system and method for the management and distribution of pay per view video on demand |
US6585158B2 (en) | 2000-11-30 | 2003-07-01 | Agilent Technologies, Inc. | Combined pointing device and bar code scanner |
US20020116707A1 (en) | 2000-12-11 | 2002-08-22 | Morris Richard M. | Streaming media client system and method |
US6636270B2 (en) | 2000-12-14 | 2003-10-21 | Microsoft Corporation | Clock slaving methods and arrangements |
JP2002182562A (en) | 2000-12-14 | 2002-06-26 | Hitachi Ltd | Date and time information setting device |
KR20020060572A (en) | 2001-01-11 | 2002-07-18 | 포만 제프리 엘 | Security system for preventing a personal computer from being used by unauthorized people |
US7165109B2 (en) | 2001-01-12 | 2007-01-16 | Microsoft Corporation | Method and system to access software pertinent to an electronic peripheral device based on an address stored in a peripheral device |
JP4281252B2 (en) | 2001-01-16 | 2009-06-17 | ソニー株式会社 | Information recording apparatus, information reproducing apparatus, information recording method, information reproducing method, information recording medium, and program storage medium |
WO2002057865A2 (en) | 2001-01-17 | 2002-07-25 | Contentguard Holdings, Inc. | System and method for digital rights management using a standard rendering engine |
US7340530B2 (en) | 2001-01-17 | 2008-03-04 | International Business Machines Corporation | Methods, for providing data from network secure communications in a cluster computing environment |
US7350228B2 (en) | 2001-01-23 | 2008-03-25 | Portauthority Technologies Inc. | Method for securing digital content |
US7073200B2 (en) | 2001-01-24 | 2006-07-04 | Intel Corporation | Method of providing secure content-based user experience enhancement within a content protection architecture |
US7975023B2 (en) | 2001-01-26 | 2011-07-05 | Dell Products L.P. | System and method for using resources of a computer system in conjunction with a thin media client |
US7310734B2 (en) | 2001-02-01 | 2007-12-18 | 3M Innovative Properties Company | Method and system for securing a computer network and personal identification device used therein for controlling access to network components |
US7012957B2 (en) * | 2001-02-01 | 2006-03-14 | Broadcom Corporation | High performance equalizer having reduced complexity |
US20020107701A1 (en) | 2001-02-02 | 2002-08-08 | Batty Robert L. | Systems and methods for metering content on the internet |
US7499545B1 (en) | 2001-02-05 | 2009-03-03 | Ati Technologies, Inc. | Method and system for dual link communications encryption |
US20020111916A1 (en) | 2001-02-12 | 2002-08-15 | Coronna Mark S. | Payment management |
US20020124046A1 (en) | 2001-02-20 | 2002-09-05 | Fischer William A. | Peripheral devices which manage application upload to computing devices |
GB2373605B (en) | 2001-03-23 | 2005-04-27 | Ibm | A method of metering use of digitally encoded products |
US7987510B2 (en) | 2001-03-28 | 2011-07-26 | Rovi Solutions Corporation | Self-protecting digital content |
US8949878B2 (en) | 2001-03-30 | 2015-02-03 | Funai Electric Co., Ltd. | System for parental control in video programs based on multimedia content information |
US7117183B2 (en) | 2001-03-31 | 2006-10-03 | First Data Coroporation | Airline ticket payment and reservation system and methods |
GB2374165A (en) | 2001-04-02 | 2002-10-09 | Global Knowledge Network | Secure distribution of electronic media |
US20020147601A1 (en) | 2001-04-05 | 2002-10-10 | Fagan Von E. | Lease arrangements for providing computer equipment |
US7516325B2 (en) | 2001-04-06 | 2009-04-07 | Certicom Corp. | Device authentication in a PKI |
US7933407B2 (en) | 2001-04-11 | 2011-04-26 | Nice Systems Ltd. | Digital video protection for authenticity verification |
KR20020083851A (en) | 2001-04-30 | 2002-11-04 | 주식회사 마크애니 | Method of protecting and managing digital contents and system for using thereof |
US7814532B2 (en) | 2001-05-02 | 2010-10-12 | Lenovo (Singapore) Pte. Ltd. | Data processing system and method for password protecting a boot device |
US7184548B2 (en) | 2001-05-04 | 2007-02-27 | Hewlett-Packard Development Company, L.P. | Encoding and decoding methods for secure scalable streaming and related systems |
US20040015874A1 (en) * | 2001-05-14 | 2004-01-22 | David Ungar | Method and apparatus for finding resource allocation errors in virtual machine compilers |
US6824051B2 (en) | 2001-06-07 | 2004-11-30 | Contentguard Holdings, Inc. | Protected content distribution system |
US7395245B2 (en) | 2001-06-07 | 2008-07-01 | Matsushita Electric Industrial Co., Ltd. | Content usage management system and server used in the system |
US20020193101A1 (en) | 2001-06-15 | 2002-12-19 | Mcalinden Paul | Configuring a portable device |
FI114416B (en) | 2001-06-15 | 2004-10-15 | Nokia Corp | Procedure for securing electronic device, fuse system and electronic device |
JP2002374327A (en) | 2001-06-18 | 2002-12-26 | Dainippon Printing Co Ltd | Mobile communication terminal with free-memory capacity detecting function of ic card |
GB2376762A (en) | 2001-06-19 | 2002-12-24 | Hewlett Packard Co | Renting a computing environment on a trusted computing platform |
EP1271875A1 (en) | 2001-06-21 | 2003-01-02 | Koninklijke Philips Electronics N.V. | Device arranged for exchanging data, and method of manufacturing |
US6716652B1 (en) | 2001-06-22 | 2004-04-06 | Tellabs Operations, Inc. | Method and system for adaptive sampling testing of assemblies |
US7203966B2 (en) | 2001-06-27 | 2007-04-10 | Microsoft Corporation | Enforcement architecture and method for digital rights management system for roaming a license to a plurality of user devices |
US6976010B2 (en) | 2001-06-28 | 2005-12-13 | International Business Machines Corporation | Method for syndicating online content |
US7421411B2 (en) | 2001-07-06 | 2008-09-02 | Nokia Corporation | Digital rights management in a mobile communications environment |
US20030009681A1 (en) | 2001-07-09 | 2003-01-09 | Shunji Harada | Digital work protection system, recording medium apparatus, transmission apparatus, and playback apparatus |
US20030018892A1 (en) | 2001-07-19 | 2003-01-23 | Jose Tello | Computer with a modified north bridge, security engine and smart card having a secure boot capability and method for secure booting a computer |
US6664948B2 (en) | 2001-07-30 | 2003-12-16 | Microsoft Corporation | Tracking pointing device motion using a single buffer for cross and auto correlation determination |
US7203753B2 (en) | 2001-07-31 | 2007-04-10 | Sun Microsystems, Inc. | Propagating and updating trust relationships in distributed peer-to-peer networks |
JP2003157334A (en) | 2001-07-31 | 2003-05-30 | Matsushita Electric Ind Co Ltd | Contents distributing system and device, method, program and program recording medium therefor |
JP2003157335A (en) | 2001-08-01 | 2003-05-30 | Matsushita Electric Ind Co Ltd | Device and method for managing contents usage rights |
GB2378780B (en) | 2001-08-14 | 2003-07-09 | Elan Digital Systems Ltd | Data integrity |
JP2003058060A (en) | 2001-08-21 | 2003-02-28 | Dainippon Printing Co Ltd | Sheet for attachment permitting peeling of base material sheet |
US6934942B1 (en) | 2001-08-24 | 2005-08-23 | Microsoft Corporation | System and method for using data address sequences of a program in a software development tool |
US7310821B2 (en) | 2001-08-27 | 2007-12-18 | Dphi Acquisitions, Inc. | Host certification method and system |
RU2207618C2 (en) | 2001-08-27 | 2003-06-27 | Щеглов Андрей Юрьевич | Data resource access control system |
US7110982B2 (en) | 2001-08-27 | 2006-09-19 | Dphi Acquisitions, Inc. | Secure access method and system |
US7131004B1 (en) | 2001-08-31 | 2006-10-31 | Silicon Image, Inc. | Method and apparatus for encrypting data transmitted over a serial link |
US20030084337A1 (en) | 2001-10-03 | 2003-05-01 | Simionescu Dan C. | Remotely controlled failsafe boot mechanism and manager for a network device |
JP2003115017A (en) | 2001-10-04 | 2003-04-18 | Matsushita Electric Ind Co Ltd | Contents information recorder, accounting system and accounting method |
US20030069981A1 (en) | 2001-10-09 | 2003-04-10 | Koninklijke Philips Electronics N.V. | IP hopping for secure data transfer |
CA2462673C (en) | 2001-10-18 | 2012-12-04 | Macrovision Corporation | Systems and methods for providing digital rights management compatibility |
US6925557B2 (en) | 2001-10-26 | 2005-08-02 | International Business Machines Corporation | Method and system for a clean system booting process |
US7490250B2 (en) | 2001-10-26 | 2009-02-10 | Lenovo (Singapore) Pte Ltd. | Method and system for detecting a tamper event in a trusted computing environment |
US7035920B2 (en) | 2001-10-30 | 2006-04-25 | Hewlett-Packard Development Company, L.P. | Remote execution of software using windows management instrumentation |
US20030084352A1 (en) | 2001-10-30 | 2003-05-01 | Schwartz Jeffrey D. | Appliance security model system and method |
JP2003140761A (en) | 2001-10-31 | 2003-05-16 | Nec Infrontia Corp | Information terminal and settlement terminal |
US20030084104A1 (en) | 2001-10-31 | 2003-05-01 | Krimo Salem | System and method for remote storage and retrieval of data |
JP2003140762A (en) | 2001-11-01 | 2003-05-16 | Matsushita Electric Ind Co Ltd | Software selling system through network |
JP3993416B2 (en) | 2001-11-02 | 2007-10-17 | 富士通株式会社 | Electronic commerce method, program, recording medium, and server |
US7243366B2 (en) | 2001-11-15 | 2007-07-10 | General Instrument Corporation | Key management protocol and authentication system for secure internet protocol rights management architecture |
US7159120B2 (en) | 2001-11-19 | 2007-01-02 | Good Technology, Inc. | Method and system for protecting data within portable electronic devices |
US6865555B2 (en) | 2001-11-21 | 2005-03-08 | Digeo, Inc. | System and method for providing conditional access to digital content |
US7054468B2 (en) | 2001-12-03 | 2006-05-30 | Honda Motor Co., Ltd. | Face recognition using kernel fisherfaces |
US7203310B2 (en) | 2001-12-04 | 2007-04-10 | Microsoft Corporation | Methods and systems for cryptographically protecting secure content |
US20030115458A1 (en) | 2001-12-19 | 2003-06-19 | Dongho Song | Invisable file technology for recovering or protecting a computer file system |
US6646244B2 (en) | 2001-12-19 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Optical imaging device with speed variable illumination |
US7398389B2 (en) | 2001-12-20 | 2008-07-08 | Coretrace Corporation | Kernel-based network security infrastructure |
US6744616B2 (en) | 2001-12-28 | 2004-06-01 | General Electric Company | Method and apparatus for controlling an electronic control |
DE10164134A1 (en) | 2001-12-30 | 2003-07-17 | Juergen K Lang | System for preparing and distributing copyright-protected electronic media in a receiver, involves encoding data for reproduction after applying cryptographic processes. |
US20030126608A1 (en) | 2001-12-31 | 2003-07-03 | General Instrument Corporation | Methods and systems for providing streaming media content in existing video delivery systems |
US20030126086A1 (en) | 2001-12-31 | 2003-07-03 | General Instrument Corporation | Methods and apparatus for digital rights management |
US7242773B2 (en) | 2002-09-09 | 2007-07-10 | Sony Corporation | Multiple partial encryption using retuning |
US7234144B2 (en) | 2002-01-04 | 2007-06-19 | Microsoft Corporation | Methods and system for managing computational resources of a coprocessor in a computing system |
JP2003208314A (en) | 2002-01-15 | 2003-07-25 | Mitsubishi Electric Corp | Computer system of which operating system can be automatically replaced and automatic replacement method of operating system using the system |
US8271400B2 (en) | 2002-01-15 | 2012-09-18 | Hewlett-Packard Development Company, L.P. | Hardware pay-per-use |
US7013384B2 (en) | 2002-01-15 | 2006-03-14 | Lenovo (Singapore) Pte. Ltd. | Computer system with selectively available immutable boot block code |
US20040010717A1 (en) | 2002-01-29 | 2004-01-15 | Intertainer Asia Pte Ltd. | Apparatus and method for preventing digital media piracy |
JP4197608B2 (en) | 2002-02-01 | 2008-12-17 | パナソニック株式会社 | Value information exchange system |
CN1273877C (en) | 2002-02-01 | 2006-09-06 | 松下电器产业株式会社 | License information exchange system |
US7742992B2 (en) | 2002-02-05 | 2010-06-22 | Pace Anti-Piracy | Delivery of a secure software license for a software product and a toolset for creating the software product |
US8606704B2 (en) | 2002-02-08 | 2013-12-10 | Apple Inc. | Customer billing in a communications network |
US20030200336A1 (en) | 2002-02-15 | 2003-10-23 | Suparna Pal | Apparatus and method for the delivery of multiple sources of media content |
US7298717B2 (en) | 2002-02-15 | 2007-11-20 | Texas Instruments Incorporated | Method and apparatus for providing transmit diversity with adaptive basis |
US7110987B2 (en) | 2002-02-22 | 2006-09-19 | At&T Wireless Services, Inc. | Secure online purchasing |
JP3736473B2 (en) | 2002-02-22 | 2006-01-18 | ソニー株式会社 | Broadcast receiver and recording method |
WO2003073688A1 (en) | 2002-02-22 | 2003-09-04 | Emc Corporation | Authenticating hardware devices incorporating digital certificates |
US20030163712A1 (en) | 2002-02-28 | 2003-08-28 | Lamothe Brian P. | Method & system for limiting use of embedded software |
CN1305159C (en) | 2002-03-07 | 2007-03-14 | 日东电工株式会社 | Electrolyte film and solid polymer fuel cell using the same |
US7299504B1 (en) | 2002-03-08 | 2007-11-20 | Lucent Technologies Inc. | System and method for implementing security management using a database-modeled security policy |
US20030172376A1 (en) | 2002-03-11 | 2003-09-11 | Microsoft Corporation | User controlled targeted advertisement placement for receiver modules |
US7127579B2 (en) | 2002-03-26 | 2006-10-24 | Intel Corporation | Hardened extended firmware interface framework |
US7343493B2 (en) | 2002-03-28 | 2008-03-11 | Lenovo (Singapore) Pte. Ltd. | Encrypted file system using TCPA |
US7069442B2 (en) | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7028149B2 (en) | 2002-03-29 | 2006-04-11 | Intel Corporation | System and method for resetting a platform configuration register |
US6708893B2 (en) | 2002-04-12 | 2004-03-23 | Lucent Technologies Inc. | Multiple-use smart card with security features and method |
US6782477B2 (en) | 2002-04-16 | 2004-08-24 | Song Computer Entertainment America Inc. | Method and system for using tamperproof hardware to provide copy protection and online security |
US7130951B1 (en) | 2002-04-18 | 2006-10-31 | Advanced Micro Devices, Inc. | Method for selectively disabling interrupts on a secure execution mode-capable processor |
US6782349B2 (en) | 2002-05-03 | 2004-08-24 | International Business Machines Corporation | Method and system for updating a root of trust measurement function in a personal computer |
US7680743B2 (en) | 2002-05-15 | 2010-03-16 | Microsoft Corporation | Software application protection by way of a digital rights management (DRM) system |
US7181010B2 (en) | 2002-05-24 | 2007-02-20 | Scientific-Atlanta, Inc. | Apparatus for entitling remote client devices |
US6748080B2 (en) | 2002-05-24 | 2004-06-08 | Scientific-Atlanta, Inc. | Apparatus for entitling remote client devices |
US7315896B2 (en) | 2002-06-06 | 2008-01-01 | International Business Machines Corporation | Server network controller including packet forwarding and method therefor |
JP4474845B2 (en) | 2002-06-12 | 2010-06-09 | 株式会社日立製作所 | Authentication infrastructure system with CRL issue notification function |
SG105005A1 (en) | 2002-06-12 | 2004-07-30 | Contraves Ag | Device for firearms and firearm |
KR20050013583A (en) | 2002-06-17 | 2005-02-04 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | System for authentication between devices using group certificates |
US7296154B2 (en) | 2002-06-24 | 2007-11-13 | Microsoft Corporation | Secure media path methods, systems, and architectures |
US8484696B2 (en) | 2002-07-05 | 2013-07-09 | Igt | Secure game download |
US7565325B2 (en) | 2002-07-09 | 2009-07-21 | Avaya Technology Corp. | Multi-site software license balancing |
US7121460B1 (en) | 2002-07-16 | 2006-10-17 | Diebold Self-Service Systems Division Of Diebold, Incorporated | Automated banking machine component authentication system and method |
JP2004062561A (en) | 2002-07-30 | 2004-02-26 | Dainippon Printing Co Ltd | Software management system, software management server, client, program, and record medium |
DE10235564A1 (en) | 2002-08-03 | 2004-02-12 | Robert Bosch Gmbh | Watchdog circuit for microprocessor or microcontroller monitoring, has means for checking the watchdog circuit itself by resetting it and then executing a number of wait loops such that a processor monitoring time is exceeded |
JP2004086392A (en) | 2002-08-26 | 2004-03-18 | Hitachi Ltd | Computer configuration changing method and system |
US20040054629A1 (en) | 2002-09-13 | 2004-03-18 | Sun Microsystems, Inc., A Delaware Corporation | Provisioning for digital content access control |
JP4129216B2 (en) | 2002-09-27 | 2008-08-06 | 松下電器産業株式会社 | Group judgment device |
US7376840B2 (en) | 2002-09-30 | 2008-05-20 | Lucent Technologies, Inc. | Streamlined service subscription in distributed architectures |
US20040067746A1 (en) | 2002-10-03 | 2004-04-08 | Johnson Jeffrey A. | System for providing communications equipment |
JP2004127040A (en) | 2002-10-03 | 2004-04-22 | Internatl Business Mach Corp <Ibm> | Information processor, control method, program and recording medium |
US20040088218A1 (en) | 2002-11-04 | 2004-05-06 | Abraham Daniel M. | Coupon discounts redemption/cash back program |
US7904720B2 (en) | 2002-11-06 | 2011-03-08 | Palo Alto Research Center Incorporated | System and method for providing secure resource management |
US7149801B2 (en) | 2002-11-08 | 2006-12-12 | Microsoft Corporation | Memory bound functions for spam deterrence and the like |
JP4099039B2 (en) | 2002-11-15 | 2008-06-11 | 松下電器産業株式会社 | Program update method |
US7398392B2 (en) | 2002-11-15 | 2008-07-08 | Cable Television Laboratories, Inc. | Method for using communication channel round-trip response time for digital asset management |
US7818519B2 (en) | 2002-12-02 | 2010-10-19 | Silverbrook Research Pty Ltd | Timeslot arbitration scheme |
US7493289B2 (en) | 2002-12-13 | 2009-02-17 | Aol Llc | Digital content store system |
US8745409B2 (en) | 2002-12-18 | 2014-06-03 | Sandisk Il Ltd. | System and method for securing portable data |
DE60309929T2 (en) | 2002-12-20 | 2007-06-28 | Nagracard S.A. | Safety device for plug connection of a safety module |
US20050080701A1 (en) | 2002-12-23 | 2005-04-14 | Ge Corporate Financial Services, Inc. | Methods and systems for managing risk management information |
US7200760B2 (en) | 2002-12-31 | 2007-04-03 | Protexis, Inc. | System for persistently encrypting critical software data to control the operation of an executable software program |
US20040128251A1 (en) | 2002-12-31 | 2004-07-01 | Chris Adam | Apparatus, system and method for licensing |
US7801820B2 (en) | 2003-01-13 | 2010-09-21 | Sony Corporation | Real-time delivery of license for previously stored encrypted content |
US7356709B2 (en) | 2003-01-31 | 2008-04-08 | Microsoft Corporation | Systems and methods for deterring software piracy in a volume license environment |
US7322042B2 (en) | 2003-02-07 | 2008-01-22 | Broadon Communications Corp. | Secure and backward-compatible processor and secure software execution thereon |
US7457411B2 (en) | 2003-03-13 | 2008-11-25 | New Mexico Technical Research Foundation | Information security via dynamic encryption with hash function |
US20040187011A1 (en) | 2003-03-18 | 2004-09-23 | Lee Long K. | Prevention of unauthorized software distribution |
US7278165B2 (en) | 2003-03-18 | 2007-10-02 | Sony Corporation | Method and system for implementing digital rights management |
CN1764883A (en) | 2003-03-24 | 2006-04-26 | 松下电器产业株式会社 | Data protection management device and data protection management method |
JP2004295846A (en) | 2003-03-28 | 2004-10-21 | Dainippon Printing Co Ltd | System, server, and method for managing license, program, and recording medium |
US20040193919A1 (en) | 2003-03-31 | 2004-09-30 | Dabbish Ezzat A. | Method and apparatus for identifying trusted devices |
GB2400461B (en) | 2003-04-07 | 2006-05-31 | Hewlett Packard Development Co | Control of access to of commands to computing apparatus |
US8041957B2 (en) | 2003-04-08 | 2011-10-18 | Qualcomm Incorporated | Associating software with hardware using cryptography |
US7149829B2 (en) | 2003-04-18 | 2006-12-12 | Sonics, Inc. | Various methods and apparatuses for arbitration among blocks of functionality |
JP2006525581A (en) | 2003-04-28 | 2006-11-09 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | How to update the revocation list |
US20040220858A1 (en) | 2003-05-02 | 2004-11-04 | Maggio Frank S. | Method and system for verifying exposure to message content delivered via subscription networks |
WO2004102459A1 (en) | 2003-05-15 | 2004-11-25 | Nokia Corporation | Transferring content between digital rights management systems |
US7233666B2 (en) | 2003-05-29 | 2007-06-19 | Intel Corporation | Method and apparatus for increasing the entropy of a pseudorandom number |
CA2528428C (en) | 2003-06-05 | 2013-01-22 | Intertrust Technologies Corporation | Interoperable systems and methods for peer-to-peer service orchestration |
US20040268120A1 (en) | 2003-06-26 | 2004-12-30 | Nokia, Inc. | System and method for public key infrastructure based software licensing |
KR20050008439A (en) | 2003-07-10 | 2005-01-21 | 주식회사 비즈모델라인 | Card with Cardholder`s Definition Information for Using It and Method for Operating It |
US7382879B1 (en) | 2003-07-23 | 2008-06-03 | Sprint Communications Company, L.P. | Digital rights management negotiation for streaming media over a network |
US20050044391A1 (en) | 2003-07-25 | 2005-02-24 | Matsushita Electric Industrial Co., Ltd. | Data processing apparatus and data distribution apparatus |
US20050044397A1 (en) | 2003-08-19 | 2005-02-24 | Telefonaktiebolaget Lm Ericsson | Method and system for secure time management in digital rights management |
KR20050021782A (en) | 2003-08-26 | 2005-03-07 | 블루칩인터넷 (주) | Phonemicization (method) of transaction information record and automated dispatch of information using wireless network |
GB0320141D0 (en) | 2003-08-28 | 2003-10-01 | Ibm | Data storage systems |
US7366914B2 (en) | 2003-08-29 | 2008-04-29 | Intel Corporation | Source code transformation based on program operators |
US7584353B2 (en) | 2003-09-12 | 2009-09-01 | Trimble Navigation Limited | Preventing unauthorized distribution of media content within a global network |
US20050066353A1 (en) | 2003-09-18 | 2005-03-24 | Robert Fransdonk | Method and system to monitor delivery of content to a content destination |
US7660755B2 (en) | 2003-09-18 | 2010-02-09 | At&T Intellectual Property I, L.P. | Methods, systems, and computer-readable-mediums for managing rollover usage units of communication services |
US7668950B2 (en) | 2003-09-23 | 2010-02-23 | Marchex, Inc. | Automatically updating performance-based online advertising system and method |
US7389273B2 (en) | 2003-09-25 | 2008-06-17 | Scott Andrew Irwin | System and method for federated rights management |
US7958029B1 (en) | 2003-10-20 | 2011-06-07 | Thomas Bobich | Method for minimizing financial risk for wireless services |
US7296296B2 (en) | 2003-10-23 | 2007-11-13 | Microsoft Corporation | Protected media path and refusal response enabler |
US7254836B2 (en) | 2003-10-23 | 2007-08-07 | Microsoft Corporation | Protected media path and refusal response enabler |
JP2005141635A (en) | 2003-11-10 | 2005-06-02 | Sony Corp | Content sharing system, content processing apparatus, information processing apparatus, program, recording medium and content sharing method |
US7533274B2 (en) | 2003-11-13 | 2009-05-12 | International Business Machines Corporation | Reducing the boot time of a TCPA based computing system when the core root of trust measurement is embedded in the boot block code |
JP4040570B2 (en) | 2003-11-14 | 2008-01-30 | キヤノン株式会社 | Image forming apparatus, data reception processing method, and control program |
US20050203801A1 (en) | 2003-11-26 | 2005-09-15 | Jared Morgenstern | Method and system for collecting, sharing and tracking user or group associates content via a communications network |
JP4450609B2 (en) | 2003-11-28 | 2010-04-14 | 株式会社日立製作所 | Storage device |
US7900140B2 (en) | 2003-12-08 | 2011-03-01 | Microsoft Corporation | Media processing methods, systems and application program interfaces |
US7523316B2 (en) | 2003-12-08 | 2009-04-21 | International Business Machines Corporation | Method and system for managing the display of sensitive content in non-trusted environments |
FI20031835L (en) | 2003-12-15 | 2005-06-16 | Instrumentarium Corp | Method and system for locating a reference mark in digital projection images |
US9286445B2 (en) | 2003-12-18 | 2016-03-15 | Red Hat, Inc. | Rights management system |
US20050138389A1 (en) | 2003-12-23 | 2005-06-23 | International Business Machines Corporation | System and method for making password token portable in trusted platform module (TPM) |
US7424610B2 (en) | 2003-12-23 | 2008-09-09 | Intel Corporation | Remote provisioning of secure systems for mandatory control |
US7222062B2 (en) | 2003-12-23 | 2007-05-22 | Intel Corporation | Method and system to support a trusted set of operational environments using emulated trusted hardware |
US20050149729A1 (en) | 2003-12-24 | 2005-07-07 | Zimmer Vincent J. | Method to support XML-based security and key management services in a pre-boot execution environment |
US20050144099A1 (en) | 2003-12-24 | 2005-06-30 | Indrojit Deb | Threshold billing |
US7207039B2 (en) | 2003-12-24 | 2007-04-17 | Intel Corporation | Secure booting and provisioning |
US7421588B2 (en) | 2003-12-30 | 2008-09-02 | Lenovo Pte Ltd | Apparatus, system, and method for sealing a data repository to a trusted computing platform |
US7526649B2 (en) | 2003-12-30 | 2009-04-28 | Intel Corporation | Session key exchange |
US7426752B2 (en) | 2004-01-05 | 2008-09-16 | International Business Machines Corporation | System and method for order-preserving encryption for numeric data |
US20050166051A1 (en) | 2004-01-26 | 2005-07-28 | Mark Buer | System and method for certification of a secure platform |
US7802095B2 (en) | 2004-02-03 | 2010-09-21 | Music Public Broadcasting, Inc. | Method and system for preventing unauthorized recording of media content on a Macintosh operating system |
US7237103B2 (en) | 2004-02-18 | 2007-06-26 | Wyse Technology, Inc. | Computing device deployment using mass storage device |
US20050229250A1 (en) | 2004-02-26 | 2005-10-13 | Ring Sandra E | Methodology, system, computer readable medium, and product providing a security software suite for handling operating system exploitations |
CN1287665C (en) | 2004-02-27 | 2006-12-06 | 广州甘蔗糖业研究所 | Sex-attractant for cane stripe pyralid, and application thereof |
US7609653B2 (en) | 2004-03-08 | 2009-10-27 | Microsoft Corporation | Resolving partial media topologies |
US7703141B2 (en) | 2004-03-11 | 2010-04-20 | Microsoft Corporation | Methods and systems for protecting media content |
US7549048B2 (en) | 2004-03-19 | 2009-06-16 | Microsoft Corporation | Efficient and secure authentication of computing systems |
US7441246B2 (en) | 2004-03-19 | 2008-10-21 | Microsoft Corporation | Configurable collection of computer related metric data |
US7653727B2 (en) | 2004-03-24 | 2010-01-26 | Intel Corporation | Cooperative embedded agents |
US20050221766A1 (en) | 2004-03-31 | 2005-10-06 | Brizek John P | Method and apparatus to perform dynamic attestation |
US7437771B2 (en) | 2004-04-19 | 2008-10-14 | Woodcock Washburn Llp | Rendering protected digital content within a network of computing devices or the like |
US8271783B2 (en) | 2004-04-19 | 2012-09-18 | Hewlett-Packard Development Company, L.P. | Subordinate trusted platform module |
JP3804670B2 (en) * | 2004-04-21 | 2006-08-02 | セイコーエプソン株式会社 | Semiconductor device, electronic device, and access control method for semiconductor device |
US7568096B2 (en) | 2004-04-23 | 2009-07-28 | Microsoft Corporation | Rendering digital content in a content protection system according to a plurality of chained digital licenses |
US8060923B2 (en) | 2004-04-23 | 2011-11-15 | Microsoft Corporation | Trusted license removal in a content protection system or the like |
US7266569B2 (en) | 2004-04-23 | 2007-09-04 | Microsoft Corporation | Metering accessing of content and the like in a content protection system or the like |
US20050279827A1 (en) | 2004-04-28 | 2005-12-22 | First Data Corporation | Methods and systems for providing guaranteed merchant transactions |
US7380119B2 (en) | 2004-04-29 | 2008-05-27 | International Business Machines Corporation | Method and system for virtualization of trusted platform modules |
US7480804B2 (en) | 2004-04-29 | 2009-01-20 | International Business Machines Corporation | Method and system for hierarchical platform boot measurements in a trusted computing environment |
US7484091B2 (en) | 2004-04-29 | 2009-01-27 | International Business Machines Corporation | Method and system for providing a trusted platform module in a hypervisor environment |
US7664965B2 (en) | 2004-04-29 | 2010-02-16 | International Business Machines Corporation | Method and system for bootstrapping a trusted server having redundant trusted platform modules |
US8074287B2 (en) | 2004-04-30 | 2011-12-06 | Microsoft Corporation | Renewable and individualizable elements of a protected environment |
US7552434B2 (en) | 2004-04-30 | 2009-06-23 | Hewlett-Packard Development Company, L.P. | Method of performing kernel task upon initial execution of process at user level |
US20060242406A1 (en) | 2005-04-22 | 2006-10-26 | Microsoft Corporation | Protected computing environment |
US7500267B2 (en) | 2004-04-30 | 2009-03-03 | Microsoft Corporation | Systems and methods for disabling software components to protect digital media |
US7584502B2 (en) | 2004-05-03 | 2009-09-01 | Microsoft Corporation | Policy engine and methods and systems for protecting data |
US7289016B2 (en) | 2004-05-25 | 2007-10-30 | Eaton Corporation | Portable timer apparatus, home system and method of timing for an object |
US7463374B2 (en) | 2004-05-26 | 2008-12-09 | Electronics For Imaging, Inc. | Methods and apparatus for secure printing |
US7097357B2 (en) | 2004-06-02 | 2006-08-29 | General Electric Company | Method and system for improved correction of registration error in a fluoroscopic image |
US7881267B2 (en) | 2004-06-04 | 2011-02-01 | Hewlett-Packard Development Company, L.P. | Portable computing device for wireless communications and method of operation |
US20050289343A1 (en) | 2004-06-23 | 2005-12-29 | Sun Microsystems, Inc. | Systems and methods for binding a hardware component and a platform |
US8290970B2 (en) | 2004-06-29 | 2012-10-16 | Hewlett-Packard Development Company, L.P. | System and method for offering one or more drivers to run on the computer |
EP1615381A1 (en) | 2004-07-07 | 2006-01-11 | Thomson Multimedia Broadband Belgium | Device and process for wireless local area network association |
US7343496B1 (en) | 2004-08-13 | 2008-03-11 | Zilog, Inc. | Secure transaction microcontroller with secure boot loader |
US7860922B2 (en) | 2004-08-18 | 2010-12-28 | Time Warner, Inc. | Method and device for the wireless exchange of media content between mobile devices based on content preferences |
US20060074600A1 (en) | 2004-09-15 | 2006-04-06 | Sastry Manoj R | Method for providing integrity measurements with their respective time stamps |
US7395452B2 (en) | 2004-09-24 | 2008-07-01 | Microsoft Corporation | Method and system for improved reliability in storage devices |
US8179870B2 (en) | 2004-09-29 | 2012-05-15 | Intel Corporation | Method and apparatus for securing devices in a network |
US20060072748A1 (en) | 2004-10-01 | 2006-04-06 | Mark Buer | CMOS-based stateless hardware security module |
US7653819B2 (en) | 2004-10-01 | 2010-01-26 | Lenovo Singapore Pte Ltd. | Scalable paging of platform configuration registers |
US8160244B2 (en) | 2004-10-01 | 2012-04-17 | Broadcom Corporation | Stateless hardware security module |
KR100611740B1 (en) | 2004-10-13 | 2006-08-11 | 한국전자통신연구원 | Fingerprint-based Piracy Content Tracking System and Its Method |
US7516326B2 (en) | 2004-10-15 | 2009-04-07 | Hewlett-Packard Development Company, L.P. | Authentication system and method |
US8347078B2 (en) | 2004-10-18 | 2013-01-01 | Microsoft Corporation | Device certificate individualization |
US7441121B2 (en) | 2004-10-18 | 2008-10-21 | Microsoft Corporation | Device certificate self-individualization |
US8166296B2 (en) | 2004-10-20 | 2012-04-24 | Broadcom Corporation | User authentication system |
US20060089917A1 (en) | 2004-10-22 | 2006-04-27 | Microsoft Corporation | License synchronization |
US8332653B2 (en) | 2004-10-22 | 2012-12-11 | Broadcom Corporation | Secure processing environment |
US7464103B2 (en) | 2004-10-29 | 2008-12-09 | Microsoft Corporation | Multi-level nested open hashed data stores |
US7610631B2 (en) | 2004-11-15 | 2009-10-27 | Alexander Frank | Method and apparatus for provisioning software |
US7562220B2 (en) | 2004-11-15 | 2009-07-14 | Microsoft Corporation | System and method for programming an isolated computing environment |
US8464348B2 (en) | 2004-11-15 | 2013-06-11 | Microsoft Corporation | Isolated computing environment anchored into CPU and motherboard |
US7979721B2 (en) | 2004-11-15 | 2011-07-12 | Microsoft Corporation | Enhanced packaging for PC security |
US20060165005A1 (en) | 2004-11-15 | 2006-07-27 | Microsoft Corporation | Business method for pay-as-you-go computer and dynamic differential pricing |
US7694153B2 (en) | 2004-11-15 | 2010-04-06 | Microsoft Corporation | Changing product behavior in accordance with license |
US20060106920A1 (en) | 2004-11-15 | 2006-05-18 | Microsoft Corporation | Method and apparatus for dynamically activating/deactivating an operating system |
US8336085B2 (en) | 2004-11-15 | 2012-12-18 | Microsoft Corporation | Tuning product policy using observed evidence of customer behavior |
US20060112267A1 (en) | 2004-11-23 | 2006-05-25 | Zimmer Vincent J | Trusted platform storage controller |
US7987356B2 (en) | 2004-11-29 | 2011-07-26 | Broadcom Corporation | Programmable security platform |
US7457960B2 (en) | 2004-11-30 | 2008-11-25 | Analog Devices, Inc. | Programmable processor supporting secure mode |
US20060129496A1 (en) | 2004-12-14 | 2006-06-15 | Motorola, Inc. | Method and apparatus for providing digital rights management |
US20060129824A1 (en) | 2004-12-15 | 2006-06-15 | Hoff James P | Systems, methods, and media for accessing TPM keys |
US7373551B2 (en) | 2004-12-21 | 2008-05-13 | Intel Corporation | Method to provide autonomic boot recovery |
US7392429B2 (en) | 2004-12-22 | 2008-06-24 | Microsoft Corporation | System and method for maintaining persistent state data |
US7360253B2 (en) | 2004-12-23 | 2008-04-15 | Microsoft Corporation | System and method to lock TPM always ‘on’ using a monitor |
US7512795B2 (en) | 2005-01-04 | 2009-03-31 | Motorola, Inc. | Method and apparatus for authenticating components |
US7500269B2 (en) | 2005-01-07 | 2009-03-03 | Cisco Technology, Inc. | Remote access to local content using transcryption of digital rights management schemes |
US7770205B2 (en) | 2005-01-19 | 2010-08-03 | Microsoft Corporation | Binding a device to a computer |
US7359807B2 (en) | 2005-02-14 | 2008-04-15 | Microsoft Corporation | Maintaining and managing metering data for a subsidized computer |
US7406446B2 (en) | 2005-03-08 | 2008-07-29 | Microsoft Corporation | System and method for trustworthy metering and deactivation |
US20060206618A1 (en) | 2005-03-11 | 2006-09-14 | Zimmer Vincent J | Method and apparatus for providing remote audio |
US7849311B2 (en) * | 2005-03-15 | 2010-12-07 | Silicon Graphics International | Computer system with dual operating modes |
US20060213997A1 (en) | 2005-03-23 | 2006-09-28 | Microsoft Corporation | Method and apparatus for a cursor control device barcode reader |
US8386520B2 (en) | 2005-03-30 | 2013-02-26 | Hewlett-Packard Development Company, L.P. | Database security structure |
US7558463B2 (en) | 2005-04-18 | 2009-07-07 | Microsoft Corporation | Retention of information about digital-media rights in transformed digital media content |
US7617401B2 (en) | 2005-04-22 | 2009-11-10 | Microsoft Corporation | Hardware functionality scan for device authentication |
US7739505B2 (en) | 2005-04-22 | 2010-06-15 | Microsoft Corporation | Linking Diffie Hellman with HFS authentication by using a seed |
US9436804B2 (en) | 2005-04-22 | 2016-09-06 | Microsoft Technology Licensing, Llc | Establishing a unique session key using a hardware functionality scan |
US9363481B2 (en) | 2005-04-22 | 2016-06-07 | Microsoft Technology Licensing, Llc | Protected media pipeline |
US7665143B2 (en) | 2005-05-16 | 2010-02-16 | Microsoft Corporation | Creating secure process objects |
US8353046B2 (en) | 2005-06-08 | 2013-01-08 | Microsoft Corporation | System and method for delivery of a modular operating system |
US7376976B2 (en) | 2005-07-11 | 2008-05-20 | Microsoft Corporation | Transcryption of digital content between content protection systems |
US7903117B2 (en) | 2005-07-11 | 2011-03-08 | Microsoft Corporation | Strategies for processing media information using a plug-in processing module in a path-agnostic manner |
US7590841B2 (en) | 2005-07-19 | 2009-09-15 | Microsoft Corporation | Automatic update of computer-readable components to support a trusted environment |
US7822863B2 (en) | 2006-05-12 | 2010-10-26 | Palo Alto Research Center Incorporated | Personal domain controller |
US7881315B2 (en) | 2006-06-27 | 2011-02-01 | Microsoft Corporation | Local peer-to-peer digital content distribution |
-
2005
- 2005-04-27 US US11/116,598 patent/US20060242406A1/en not_active Abandoned
-
2009
- 2009-02-23 US US12/390,505 patent/US9189605B2/en active Active
Patent Citations (99)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4183085A (en) * | 1976-11-18 | 1980-01-08 | International Business Machines Corporation | Protection of data processing system against unauthorized programs |
US4910692A (en) * | 1985-10-09 | 1990-03-20 | Outram John D | Adaptive data logger |
US4817094A (en) * | 1986-12-31 | 1989-03-28 | International Business Machines Corporation | Fault tolerant switch with selectable operating modes |
US5001752A (en) * | 1989-10-13 | 1991-03-19 | Fischer Addison M | Public/key date-time notary facility |
US5295266A (en) * | 1991-12-20 | 1994-03-15 | International Computers Limited | Program attribute control in a computer system |
US5490216A (en) * | 1992-09-21 | 1996-02-06 | Uniloc Private Limited | System for software registration |
US5500897A (en) * | 1993-07-22 | 1996-03-19 | International Business Machines Corporation | Client/server based secure timekeeping system |
US5724425A (en) * | 1994-06-10 | 1998-03-03 | Sun Microsystems, Inc. | Method and apparatus for enhancing software security and distributing software |
US5710706A (en) * | 1994-12-23 | 1998-01-20 | Francotyp-Postalia Ag & Co. | Method for entering data into a scale |
US5615268A (en) * | 1995-01-17 | 1997-03-25 | Document Authentication Systems, Inc. | System and method for electronic transmission storage and retrieval of authenticated documents |
US5717926A (en) * | 1995-02-28 | 1998-02-10 | International Business Machines Corporation | Efficient forking of a process |
US6192392B1 (en) * | 1995-05-29 | 2001-02-20 | Siemens Aktiengesellschaft | Updating mechanism for user programs in a computer system |
US5875236A (en) * | 1995-11-21 | 1999-02-23 | At&T Corp | Call handling method for credit and fraud management |
US5883670A (en) * | 1996-08-02 | 1999-03-16 | Avid Technology, Inc. | Motion video processing circuit for capture playback and manipulation of digital motion video information on a computer |
US6026293A (en) * | 1996-09-05 | 2000-02-15 | Ericsson Inc. | System for preventing electronic memory tampering |
US6021438A (en) * | 1997-06-18 | 2000-02-01 | Wyatt River Software, Inc. | License management system using daemons and aliasing |
US6188995B1 (en) * | 1997-07-28 | 2001-02-13 | Apple Computer, Inc. | Method and apparatus for enforcing software licenses |
US6185678B1 (en) * | 1997-10-02 | 2001-02-06 | Trustees Of The University Of Pennsylvania | Secure and reliable bootstrap architecture |
US6189146B1 (en) * | 1998-03-18 | 2001-02-13 | Microsoft Corporation | System and method for software licensing |
US6690556B2 (en) * | 1999-01-29 | 2004-02-10 | Infineon Technologies Ag | Integrated circuit |
US6839841B1 (en) * | 1999-01-29 | 2005-01-04 | General Instrument Corporation | Self-generation of certificates using secure microprocessor in a device for transferring digital information |
US7174457B1 (en) * | 1999-03-10 | 2007-02-06 | Microsoft Corporation | 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 |
US6851051B1 (en) * | 1999-04-12 | 2005-02-01 | International Business Machines Corporation | System and method for liveness authentication using an augmented challenge/response scheme |
US6345294B1 (en) * | 1999-04-19 | 2002-02-05 | Cisco Technology, Inc. | Methods and apparatus for remote configuration of an appliance on a network |
US6704873B1 (en) * | 1999-07-30 | 2004-03-09 | Accenture Llp | Secure gateway interconnection in an e-commerce based environment |
US6983050B1 (en) * | 1999-10-20 | 2006-01-03 | Microsoft Corporation | Methods and apparatus for protecting information content |
US6844871B1 (en) * | 1999-11-05 | 2005-01-18 | Microsoft Corporation | Method and apparatus for computer input using six degrees of freedom |
US6694000B2 (en) * | 2000-04-11 | 2004-02-17 | Telecommunication Systems, Inc. | Prepaid real-time web based reporting |
US6847942B1 (en) * | 2000-05-02 | 2005-01-25 | General Electric Canada Equipment Finance G.P. | Method and apparatus for managing credit inquiries within account receivables |
US20020007310A1 (en) * | 2000-05-08 | 2002-01-17 | Long Timothy Merrick | Information appliance cost subsidy |
US20020002597A1 (en) * | 2000-06-29 | 2002-01-03 | Calvin Morrell | Systems and methods for producing reward advertising and distributing by click-through incentives |
US6986042B2 (en) * | 2000-08-18 | 2006-01-10 | Hewlett-Packard Development Company, L.P. | Computer system operable to revert to a trusted state |
US20020023212A1 (en) * | 2000-08-18 | 2002-02-21 | Hewlett-Packard Company | Performance of a service on a computing platform |
US7162645B2 (en) * | 2001-02-07 | 2007-01-09 | Renesas Technology Corp. | Storage device including a non-volatile memory |
US20040039924A1 (en) * | 2001-04-09 | 2004-02-26 | Baldwin Robert W. | System and method for security of computing devices |
US20040030912A1 (en) * | 2001-05-09 | 2004-02-12 | Merkle James A. | Systems and methods for the prevention of unauthorized use and manipulation of digital content |
US7000100B2 (en) * | 2001-05-31 | 2006-02-14 | Hewlett-Packard Development Company, L.P. | Application-level software watchdog timer |
US20030005135A1 (en) * | 2001-06-11 | 2003-01-02 | Mitsuhiro Inoue | License management server, license management system and usage restriction method |
US20030005335A1 (en) * | 2001-06-28 | 2003-01-02 | Hidekazu Watanabe | Protecting secured codes and circuits in an integrated circuit |
US20030014323A1 (en) * | 2001-07-16 | 2003-01-16 | Jan Scheer | Computer system and method for ordering a product |
US20030027549A1 (en) * | 2001-07-30 | 2003-02-06 | Msafe Inc. | Prepaid communication system and method |
US20030028454A1 (en) * | 2001-08-01 | 2003-02-06 | Masahiro Ooho | Device and method for managing content usage right |
US6993648B2 (en) * | 2001-08-16 | 2006-01-31 | Lenovo (Singapore) Pte. Ltd. | Proving BIOS trust in a TCPA compliant system |
US20030037246A1 (en) * | 2001-08-16 | 2003-02-20 | International Business Machines Corporation | Flash update using a trusted platform module |
US20030035409A1 (en) * | 2001-08-20 | 2003-02-20 | Wang Jiwei R. | Method and apparatus for providing service selection, redirection and managing of subscriber access to multiple WAP (Wireless Application Protecol) geteways simultaneously |
US20030040960A1 (en) * | 2001-08-22 | 2003-02-27 | Eckmann Eduardo Enrique | Method for promoting online advertising |
US20030046026A1 (en) * | 2001-09-06 | 2003-03-06 | Comverse, Ltd. | Failure prediction apparatus and method |
US20030048473A1 (en) * | 2001-09-13 | 2003-03-13 | Allan Rosen | Printing device having a built-in device driver |
US20030056107A1 (en) * | 2001-09-17 | 2003-03-20 | Cammack William E. | Secure bootloader for securing digital devices |
US6708176B2 (en) * | 2001-10-19 | 2004-03-16 | Bank Of America Corporation | System and method for interactive advertising |
US6853380B2 (en) * | 2002-03-04 | 2005-02-08 | Hewlett-Packard Development Company, L.P. | Graphical display system and method |
US20040034816A1 (en) * | 2002-04-04 | 2004-02-19 | Hewlett-Packard Development Company, L.P. | Computer failure recovery and notification system |
US20040039916A1 (en) * | 2002-05-10 | 2004-02-26 | David Aldis | System and method for multi-tiered license management and distribution using networked clearinghouses |
US20040003190A1 (en) * | 2002-06-27 | 2004-01-01 | International Business Machines Corporation | Remote authentication caching on a trusted client or gateway system |
US20040003268A1 (en) * | 2002-06-28 | 2004-01-01 | Microsoft Corporation | Using a rights template to obtain a signed rights label (SRL) for digital content in a digital rights management system |
US20040001088A1 (en) * | 2002-06-28 | 2004-01-01 | Compaq Information Technologies Group, L.P. | Portable electronic key providing transportable personal computing environment |
US7891007B2 (en) * | 2002-06-28 | 2011-02-15 | Microsoft Corporation | Systems and methods for issuing usage licenses for digital content and services |
US20040003288A1 (en) * | 2002-06-28 | 2004-01-01 | Intel Corporation | Trusted platform apparatus, system, and method |
US20040003270A1 (en) * | 2002-06-28 | 2004-01-01 | Microsoft Corporation | Obtaining a signed rights label (SRL) for digital content and obtaining a digital license corresponding to the content based on the SRL in a digital rights management system |
US20040003269A1 (en) * | 2002-06-28 | 2004-01-01 | Microsoft Corporation | Systems and methods for issuing usage licenses for digital content and services |
US20040010440A1 (en) * | 2002-07-10 | 2004-01-15 | Rohan Lenard | Predictive software license balancing |
US20050021992A1 (en) * | 2002-07-15 | 2005-01-27 | Taku Aida | Client terminal, software control method and control program |
US7000829B1 (en) * | 2002-07-16 | 2006-02-21 | Diebold, Incorporated | Automated banking machine key loading system and method |
US6678828B1 (en) * | 2002-07-22 | 2004-01-13 | Vormetric, Inc. | Secure network file access control system |
US20040019456A1 (en) * | 2002-07-23 | 2004-01-29 | Edgar Circenis | Hardware based utilization metering |
US20040054907A1 (en) * | 2002-07-30 | 2004-03-18 | Alain Chateau | Indirect data protection using random key encryption |
US20040023636A1 (en) * | 2002-07-31 | 2004-02-05 | Comverse Network Systems, Ltd. | Wireless prepaid payphone system and cost control application |
US20040039960A1 (en) * | 2002-08-23 | 2004-02-26 | Reza Kassayan | Method and apparatus for automatic hibernation after a power failure |
US20040044629A1 (en) * | 2002-08-30 | 2004-03-04 | Rhodes James E. | License modes in call processing |
US7877607B2 (en) * | 2002-08-30 | 2011-01-25 | Hewlett-Packard Development Company, L.P. | Tamper-evident data management |
US20040054908A1 (en) * | 2002-08-30 | 2004-03-18 | Edgar Circenis | Tamper-evident data management |
US20040054909A1 (en) * | 2002-08-30 | 2004-03-18 | Serkowski Robert J. | Licensing duplicated systems |
US20050015343A1 (en) * | 2002-09-11 | 2005-01-20 | Norihiro Nagai | License management device, license management method, and computer program |
US20060020784A1 (en) * | 2002-09-23 | 2006-01-26 | Willem Jonker | Certificate based authorized domains |
US20040059937A1 (en) * | 2002-09-24 | 2004-03-25 | Takehiko Nakano | Apparatus, method and computer program for controlling use of a content |
US7171539B2 (en) * | 2002-11-18 | 2007-01-30 | Arm Limited | Apparatus and method for controlling access to a memory |
US20050033747A1 (en) * | 2003-05-25 | 2005-02-10 | Erland Wittkotter | Apparatus and method for the server-sided linking of information |
US20050021944A1 (en) * | 2003-06-23 | 2005-01-27 | International Business Machines Corporation | Security architecture for system on chip |
US20050021859A1 (en) * | 2003-07-25 | 2005-01-27 | Educational Testing Service | System and method for parallel conversion, compilation, and distribution of content |
US20050028000A1 (en) * | 2003-07-28 | 2005-02-03 | Mallik Bulusu | Method and apparatus for trusted blade device computing |
US20050039013A1 (en) * | 2003-08-11 | 2005-02-17 | Bajikar Sundeep M. | Method and system for authenticating a user of a computer system that has a trusted platform module (TPM) |
US20050044197A1 (en) * | 2003-08-18 | 2005-02-24 | Sun Microsystems.Inc. | Structured methodology and design patterns for web services |
US6990174B2 (en) * | 2003-12-15 | 2006-01-24 | Instrumentarium Corp. | Method and apparatus for performing single-point projection imaging |
US7644239B2 (en) * | 2004-05-03 | 2010-01-05 | Microsoft Corporation | Non-volatile memory cache performance improvement |
US20060010326A1 (en) * | 2004-07-08 | 2006-01-12 | International Business Machines Corporation | Method for extending the CRTM in a trusted platform |
US20060015718A1 (en) * | 2004-07-15 | 2006-01-19 | Sony Corporation | Use of kernel authorization data to maintain security in a digital processing system |
US20060015732A1 (en) * | 2004-07-15 | 2006-01-19 | Sony Corporation | Processing system using internal digital signatures |
US20060015717A1 (en) * | 2004-07-15 | 2006-01-19 | Sony Corporation And Sony Electronics, Inc. | Establishing a trusted platform in a digital processing system |
US7490356B2 (en) * | 2004-07-20 | 2009-02-10 | Reflectent Software, Inc. | End user risk management |
US20060020860A1 (en) * | 2004-07-22 | 2006-01-26 | Microsoft Corporation | Digital signature generation for hardware functional test |
US20060020821A1 (en) * | 2004-07-24 | 2006-01-26 | International Business Machines Corp. | System and method for data processing system planar authentication |
US20060026419A1 (en) * | 2004-07-29 | 2006-02-02 | International Business Machines Corporation | Method, apparatus, and product for providing a scalable trusted platform module in a hypervisor environment |
US20060026422A1 (en) * | 2004-07-29 | 2006-02-02 | International Business Machines Corporation | Method, apparatus, and product for providing a backup hardware trusted platform module in a hypervisor environment |
US20060026418A1 (en) * | 2004-07-29 | 2006-02-02 | International Business Machines Corporation | Method, apparatus, and product for providing a multi-tiered trust architecture |
US7493487B2 (en) * | 2004-10-15 | 2009-02-17 | Microsoft Corporation | Portable computing environment |
US20070033102A1 (en) * | 2005-03-29 | 2007-02-08 | Microsoft Corporation | Securely providing advertising subsidized computer usage |
US7669056B2 (en) * | 2005-03-29 | 2010-02-23 | Microsoft Corporation | Method and apparatus for measuring presentation data exposure |
US7494277B2 (en) * | 2006-05-31 | 2009-02-24 | Palodex Group Oy | Method and apparatus for medical X-radiography |
US20080040800A1 (en) * | 2006-08-03 | 2008-02-14 | Seung Bae Park | Code injection prevention |
Cited By (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8700535B2 (en) | 2003-02-25 | 2014-04-15 | Microsoft Corporation | Issuing a publisher use license off-line in a digital rights management (DRM) system |
US8719171B2 (en) | 2003-02-25 | 2014-05-06 | Microsoft Corporation | Issuing a publisher use license off-line in a digital rights management (DRM) system |
US20050268115A1 (en) * | 2004-04-30 | 2005-12-01 | Microsoft Corporation | Renewable and individualizable elements of a protected environment |
US8074287B2 (en) | 2004-04-30 | 2011-12-06 | Microsoft Corporation | Renewable and individualizable elements of a protected environment |
US9336359B2 (en) | 2004-10-18 | 2016-05-10 | Microsoft Technology Licensing, Llc | Device certificate individualization |
US8347078B2 (en) | 2004-10-18 | 2013-01-01 | Microsoft Corporation | Device certificate individualization |
US9224168B2 (en) | 2004-11-15 | 2015-12-29 | Microsoft Technology Licensing, Llc | Tuning product policy using observed evidence of customer behavior |
US8725646B2 (en) | 2005-04-15 | 2014-05-13 | Microsoft Corporation | Output protection levels |
US9363481B2 (en) | 2005-04-22 | 2016-06-07 | Microsoft Technology Licensing, Llc | Protected media pipeline |
US9189605B2 (en) | 2005-04-22 | 2015-11-17 | Microsoft Technology Licensing, Llc | Protected computing environment |
US9436804B2 (en) * | 2005-04-22 | 2016-09-06 | Microsoft Technology Licensing, Llc | Establishing a unique session key using a hardware functionality scan |
US8438645B2 (en) | 2005-04-27 | 2013-05-07 | Microsoft Corporation | Secure clock with grace periods |
US8781969B2 (en) | 2005-05-20 | 2014-07-15 | Microsoft Corporation | Extensible media rights |
US7921286B2 (en) | 2007-11-14 | 2011-04-05 | Microsoft Corporation | Computer initialization for secure kernel |
US20090125716A1 (en) * | 2007-11-14 | 2009-05-14 | Microsoft Corporation | Computer initialization for secure kernel |
EP2235657A1 (en) * | 2007-12-21 | 2010-10-06 | General instrument Corporation | System and method for preventing unauthorised use of digital media |
WO2009082245A1 (en) | 2007-12-21 | 2009-07-02 | Rpk New Zealand Limited | System and method for preventing unauthorised use of digital media |
EP2235657A4 (en) * | 2007-12-21 | 2013-08-28 | Gen Instrument Corp | System and method for preventing unauthorised use of digital media |
US9473485B2 (en) | 2011-03-21 | 2016-10-18 | Blue Cedar Networks, Inc. | Secure single sign-on for a group of wrapped applications on a computing device and runtime credential sharing |
US8769305B2 (en) * | 2011-03-21 | 2014-07-01 | Moncana Corporation | Secure execution of unsecured apps on a device |
US8955142B2 (en) | 2011-03-21 | 2015-02-10 | Mocana Corporation | Secure execution of unsecured apps on a device |
US20120304310A1 (en) * | 2011-03-21 | 2012-11-29 | Mocana Corporation | Secure execution of unsecured apps on a device |
US8812868B2 (en) | 2011-03-21 | 2014-08-19 | Mocana Corporation | Secure execution of unsecured apps on a device |
US9396325B2 (en) | 2011-03-21 | 2016-07-19 | Mocana Corporation | Provisioning an app on a device and implementing a keystore |
KR20160016816A (en) * | 2013-05-31 | 2016-02-15 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | Protecting anti-malware processes |
US9424425B2 (en) * | 2013-05-31 | 2016-08-23 | Microsoft Technology Licensing, Llc | Protecting anti-malware processes |
US9836601B2 (en) | 2013-05-31 | 2017-12-05 | Microsoft Technology Licensing, Llc | Protecting anti-malware processes |
US20140359774A1 (en) * | 2013-05-31 | 2014-12-04 | Microsoft Corporation | Protecting Anti-Malware Processes |
US9208313B2 (en) | 2013-05-31 | 2015-12-08 | Microsoft Technology Licensing, Llc | Protecting anti-malware processes |
KR102076878B1 (en) | 2013-05-31 | 2020-02-12 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | Protecting anti-malware processes |
US9167002B2 (en) | 2013-08-15 | 2015-10-20 | Microsoft Technology Licensing, Llc | Global platform health management |
US9576134B2 (en) | 2013-08-15 | 2017-02-21 | Microsoft Technology Licensing, Llc | Global platform health management |
US10176330B2 (en) | 2013-08-15 | 2019-01-08 | Microsoft Technology Licensing, Llc | Global platform health management |
US9946881B2 (en) | 2013-08-15 | 2018-04-17 | Microsoft Technology Licensing, Llc | Global platform health management |
US9507621B1 (en) * | 2014-08-26 | 2016-11-29 | Amazon Technologies, Inc. | Signature-based detection of kernel data structure modification |
US9530007B1 (en) | 2014-08-26 | 2016-12-27 | Amazon Technologies, Inc. | Identifying tamper-resistant characteristics for kernel data structures |
US10706146B2 (en) | 2014-08-26 | 2020-07-07 | Amazon Technologies, Inc. | Scanning kernel data structure characteristics |
US9575793B1 (en) | 2014-08-26 | 2017-02-21 | Amazon Technologies, Inc. | Identifying kernel data structures |
US9767276B1 (en) | 2014-08-26 | 2017-09-19 | Amazon Technologies, Inc. | Scanning kernel data structure characteristics |
US10452421B2 (en) | 2014-08-26 | 2019-10-22 | Amazon Technologies, Inc. | Identifying kernel data structures |
US20200084230A1 (en) * | 2015-12-09 | 2020-03-12 | Check Point Software Technologies Ltd. | Method And System For Modeling All Operations And Executions Of An Attack And Malicious Process Entry |
US10440036B2 (en) * | 2015-12-09 | 2019-10-08 | Checkpoint Software Technologies Ltd | Method and system for modeling all operations and executions of an attack and malicious process entry |
US10880316B2 (en) | 2015-12-09 | 2020-12-29 | Check Point Software Technologies Ltd. | Method and system for determining initial execution of an attack |
US10972488B2 (en) * | 2015-12-09 | 2021-04-06 | Check Point Software Technologies Ltd. | Method and system for modeling all operations and executions of an attack and malicious process entry |
US20180322313A1 (en) * | 2016-01-14 | 2018-11-08 | Intel Corporation | Secure communication channel for system management mode |
US10776524B2 (en) * | 2016-01-14 | 2020-09-15 | Intel Corporation | Secure communication channel for system management mode |
WO2020056015A1 (en) * | 2018-09-11 | 2020-03-19 | Amari.Ai Incorporated | Deployment and communications gateway for deployment, trusted execution, and secure communications |
US11042641B2 (en) | 2018-09-11 | 2021-06-22 | Amari.Ai Incorporated | Deployment and communications gateway for deployment, trusted execution, and secure communications |
WO2024027472A1 (en) * | 2022-08-03 | 2024-02-08 | 华为技术有限公司 | Method for determining state of kernel, and related device |
Also Published As
Publication number | Publication date |
---|---|
US9189605B2 (en) | 2015-11-17 |
US20090158036A1 (en) | 2009-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9189605B2 (en) | Protected computing environment | |
US11120126B2 (en) | Method and system for preventing and detecting security threats | |
US20160006714A1 (en) | Protected media pipeline | |
US8074287B2 (en) | Renewable and individualizable elements of a protected environment | |
RU2413295C2 (en) | System and method for secure operating system booting using status checkup | |
US8789037B2 (en) | Compatible trust in a computing device | |
RU2390836C2 (en) | Authenticity display from highly reliable medium to non-secure medium | |
KR101190479B1 (en) | Ticket authorized secure installation and boot | |
US20150040224A1 (en) | Method And System For Dynamic Platform Security In A Device Operating System | |
US8656190B2 (en) | One time settable tamper resistant software repository | |
KR101238496B1 (en) | Protected computing environment | |
Maruyama et al. | Trusted platform on demand (TPod) | |
KR101265887B1 (en) | Renewable and individualizable elements of a protected computing environment | |
US20250103702A1 (en) | Method and system for preventing and detecting security threats | |
Κασαγιάννης | Security evaluation of Android Keystore |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BARDE, SUMEDH N;SCHWARTZ, JONATHAN D;KUHN, REID JOSEPH;AND OTHERS;REEL/FRAME:016296/0829;SIGNING DATES FROM 20050713 TO 20050720 |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034543/0001 Effective date: 20141014 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |