US20160006714A1 - Protected media pipeline - Google Patents
Protected media pipeline Download PDFInfo
- Publication number
- US20160006714A1 US20160006714A1 US14/852,520 US201514852520A US2016006714A1 US 20160006714 A1 US20160006714 A1 US 20160006714A1 US 201514852520 A US201514852520 A US 201514852520A US 2016006714 A1 US2016006714 A1 US 2016006714A1
- Authority
- US
- United States
- Prior art keywords
- media
- protected
- digital media
- kernel
- pipeline
- 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 191
- 230000008569 process Effects 0.000 claims abstract description 173
- 230000007246 mechanism Effects 0.000 claims abstract description 63
- 230000009471 action Effects 0.000 claims description 5
- 230000001131 transforming effect Effects 0.000 claims 2
- 238000012545 processing Methods 0.000 abstract description 49
- 238000010586 diagram Methods 0.000 description 51
- 238000007726 management method Methods 0.000 description 35
- 239000013598 vector Substances 0.000 description 20
- 238000004891 communication Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 238000009877 rendering Methods 0.000 description 6
- 230000001010 compromised effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 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
- 230000005236 sound signal Effects 0.000 description 1
- 238000012358 sourcing Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/162—Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
- H04N7/163—Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only
-
- 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42646—Internal components of the client ; Characteristics thereof for reading from or writing on a non-volatile solid state storage medium, e.g. DVD, CD-ROM
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/43615—Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
- H04N21/4627—Rights management associated to the content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/835—Generation of protective data, e.g. certificates
- H04N21/8355—Generation of protective data, e.g. certificates involving usage data, e.g. number of copies or viewings allowed
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/0021—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
Definitions
- FIG. 1 is a block diagram showing an example of a typical prior art media player or application designed to operate on an exemplary personal computer.
- FIG. 2 is a block diagram showing an example of a trusted media system comprising an application space and a distinct protected space.
- FIG. 3 is a block diagram showing exemplary components comprising an end-to-end system for protecting media content and other data from initial input to final output of a computing environment.
- FIG. 4 is a block diagram showing exemplary components comprising a protected media pipeline operating in a protected space as part of a trusted media system.
- FIG. 5 is a block diagram showing an alternate example of a protected media pipeline having a proxied media source as part of a trusted media system.
- FIG. 6 is a block diagram showing an example of a further alternative example of a trusted media system.
- FIG. 7 is a block diagram showing a plurality of protected media pipelines.
- FIG. 8 is a block diagram showing an exemplary computing environment in which the software applications, systems and methods described in this application may be implemented.
- FIG. 9 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. 10 is a block diagram showing a trusted application processing media content and utilizing a protected environment or protected space that tends to be resistant to attack.
- FIG. 11 is a block diagram showing exemplary components of a trusted application that may be included in the protected environment.
- FIG. 12 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. 13 is a block diagram showing exemplary attack vectors that may be exploited by a user or mechanism attempting to access media content or other data typically present in a computing environment in an unauthorized manner.
- FIG. 14 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. 15 is a block diagram showing exemplary kernel components and other components utilized in creating an exemplary secure computing environment.
- FIG. 16 and FIG. 17 are flow diagrams showing an exemplary process for loading kernel components to create an exemplary secure computing environment.
- FIG. 18 is a block diagram showing a secure computing environment loading an application into an exemplary protected environment to form a trusted application that may be resistant to attack.
- FIG. 19 is a flow diagram showing an exemplary process for creating a protected environment and loading an application into the protected environment.
- FIG. 20 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. 21 is a flow diagram showing an exemplary process for periodically checking the security state of the secure computing environment.
- FIG. 22 is a block diagram showing an exemplary computing environment including a representation of a protected environment, a trusted media system, and other related elements.
- Digital media content is widely used in the form of CDs, DVDs and downloadable files.
- Various devices are able to process this media content including personal computers running various media player applications and the like, CD and DVD players, MP3 players and other general-purpose and/or dedicated electronic devices designed to process digital media content.
- media content often comes in the form of a for-sale consumer products and the like, producers and providers may be anxious to protect their media content from unauthorized access, duplication, use, etc. Therefore, media content is often encrypted and/or otherwise secured.
- Some form of encryption key and/or other access mechanism may be provided for use with the media so that it can be accessed when and how appropriate. This key or mechanism may be used by a media application or the like to gain access to the protected media for processing, playing, rendering, etc.
- the media content may be vulnerable in its unprotected form. It may be possible to attack the system and/or media application so as to gain access to the unprotected media content. This may lead to the unauthorized access, use, duplication, distribution, etc. of the media content.
- a system that rightfully accesses the media content should be capable of protecting the media content. This protection should extend from the time the key or the like is obtained, used to access the media content, throughout any processing performed on the content, until the content is appropriately rendered in its authorized form. For example, a particular meeting may be recorded and encrypted using an access key with the intent of making the recording available to authorized personnel. Later, the recording is made available to an authorized individual via a media application on a PC. The media application uses the key to decrypt and access the media content, process it and play it for the listener. But if the media application itself has been compromised, or the application and/or content is attacked, the unencrypted media may no longer be protected.
- One approach may be to construct a system for accessing, processing and rendering the media content within a protected environment that is designed to prevent unauthorized access to the media content.
- the example provided here describes a process and system for protecting media content from unauthorized access. Protection may be afforded by a protected media pipeline, among other mechanisms, which processes some, or all, of a media within a protected environment or protected space.
- a protected media pipeline may be composed of several elements.
- a media source that may be part of the protected media pipeline accesses the media content, passes it through a set of transform functions or processes (decoders, effects, etc.) and then to a media sink which renders the processed media to a media output(s) (video rendering process, audio rendering process, etc).
- rendering may be as simple as sending audio signals to a set of headphones or it may be sending protected content in a secure manner to yet another process, system or mechanism external to the protected media pipeline.
- a protected media pipeline may be constructed as a set or chain of media processing mechanisms operating in a secure or protected environment.
- a protected media pipeline can be thought of as a software process that operates in a secure environment which protects the media content from unauthorized access while the content is being accessed, played and/or otherwise processed by the media system.
- a protected media pipeline can be thought of as a set of media processing mechanisms operating within a secure environment such that the media being processed is resistant to unauthorized access.
- the mechanism for providing this resistance may be purely physical in nature, such as a sealed case or lack of access points to the media content.
- a trusted media system may be designed and constructed in such a way that it acknowledges and adheres to any access rules of the media content by ensuring that no actions are taken with the content above and beyond those allowed.
- Various mechanisms known to those skilled in this technology area may be used to address this first point. These mechanisms may include using encryption/decryption, key exchanges, passwords, licenses, interaction with a digital rights management system, and the like. Further, this may be as simple as storing the media content on/in a device such that it is resistant to physical, electronic or other methods of accessing and using the media content, except as intended.
- the trusted media system may be designed and constructed such that the media content being processed is secure from malicious attacks and/or unauthorized access and use. Processing the media content via a protected media pipeline operating in a protected environment or protected space addresses this second point. So in short, a protected media pipeline operating in a protected space refers to a media processing environment that resists unauthorized access to the media content being processed.
- FIG. 1 is a block diagram showing an example of a typical prior art media player or application 100 designed to operate on an exemplary personal computer ( FIG. 8 , 800 ). Equivalently, media players may operate on other devices with similar processing capabilities such as consumer electronic devices and the like. Other media applications may include, but are not limited to, media processors, media manipulators, media analyzers, or media formatters.
- a media application may be a software application program that provides a way of playing media such as audio and video by a digital processor such as a CPU ( FIG. 8 , 807 ) or the like.
- a media application may include a user interface or graphic 101 that may indicate the media being played and provides various user controls.
- Controls may be accessed through activation with a computer pointing device such as a mouse or by conventional buttons or the like.
- a media application may be thought of as a software application program operating in an application space 102 that is provided by the PC's computing environment ( FIG. 8 , 801 ) or operating system.
- a media player may be a hardware device comprising a memory capable of storing media content and various button, switches, displays and controls and the like to allow a user to control the device, select the media to be played, control volume, download media content, etc.
- the media player 100 may be comprised of mechanisms 104 , 106 and 108 . These mechanisms may operate in the application space 102 .
- an application space 102 may be a space created in system memory ( FIG. 8 , 809 ) on a PC ( FIG. 8 , 800 ) where various software components or processes can be loaded and executed.
- an application space 102 may be a printed circuit board and an electronic module containing the electronic elements that perform the processing and functions of the media player 100 .
- the media player application 100 may include other spaces and mechanisms which may provide additional capabilities or features that may or may not be directly related to the processing of media. For example, a second media player playing a music selection may operate in a media application at the same time as a media player playing a newscast.
- the application space 102 may include a user interface process 104 coupled to a media control process 106 which in turn is coupled to a media processing process 108 .
- these processes enable the media application 100 to couple to a source of media content 110 , process the media content 110 and render it via media output 130 .
- the media content 110 may or may not be encrypted or otherwise protected as part of an overall security and access control scheme.
- the media application 100 may access audio content 112 and video content 114 typically available on a DVD ROM, an on-line source, or the like.
- the media content 110 may be played via media processing 108 which renders the content as audio output 132 and/or video output 134 .
- Audio and video may typically be rendered on the speakers and/or display of a PC ( FIG. 8 , 800 ).
- This system is only one example of common media applications and environments that enable audio and video and the like to be processed, played and/or provided to other processes or systems.
- Another example of a media application would be a consumer electronic device such as an electronic juke box or the like.
- Yet another example would be a dedicated electronic device, with or without software and/or firmware.
- Application space 102 may contain various processes and, in this example, includes the user interface process 104 , the media control process 106 , the media processing process 108 , or their equivalents, used to coordinate and control the overall operation of the media application 100 and its processes.
- the user interface process 104 may provide an interface 101 for interaction between the user and the application.
- the media control process 106 or its equivalents may provide the overall management and control of the internal operations of the media application 100 .
- the media processing process 108 may perform the processing of the media content 110 making it possible to render the media content via the media output 130 , or perform whatever other media processing it may have been designed to perform.
- the processes described above may not be secure against unauthorized access to the media content 110 .
- Processing the media content 110 via such a system may expose it to unauthorized access.
- Such an unprotected application may enable users and/or attackers, with varying degrees of effort, to access and make use of the media content 110 in an unauthorized manner.
- unauthorized access may enable the unauthorized sharing, copying, modifying, and/or distributing of media content 110 .
- FIG. 2 is a block diagram showing an example of a trusted media system 200 comprising an application space 202 and a distinct protected space 230 .
- the system comprises a protected media pipeline 232 operating within a protected space 230 in addition to user interface 204 and media control 206 mechanisms operating in the application space 202 .
- the protected space 230 typically provides a protected environment for media content 110 processing, the protected space 230 resisting unauthorized access to the media content 110 during processing.
- Media content 110 is typically protected by various built-in security schemes to deliver it un-tampered—with to a user, such as encryption and the like. However, once the media content 110 is decrypted or the like for processing, additional mechanisms to protect it from unauthorized access are required.
- a protected media pipeline 232 operating in a protected space 230 is required.
- Application space 202 may be contain various mechanisms including, but not limited to, a user interface mechanism 204 and a media control mechanism 206 , or their equivalents, which are coupled to the protected media pipeline 232 operating within the protected space 230 .
- the user interface process 204 may provide an interface 201 or set of controls for interaction between the user and the system.
- the media control process 206 may provide the overall management and control of the internal operations of the trusted media system 200 .
- the protected media pipeline 232 operating in the protected space 230 may perform the processing of the media content 110 and render the content via the media output 130 , or perform whatever other media processing the media system 200 is designed to perform.
- One or more protected spaces 230 may be provided as an extension of a computing environment ( FIG. 8 , 801 ) and typically possess a heightened level of security and access control.
- a protected space 230 may also include mechanisms to ensure that any mechanism operating inside it, such as a protected media pipeline 232 , along with any media content being processed within the protected space 230 , are used and accessed appropriately.
- the access and use privileges may be indicated by a media content license and/or a digital rights management system.
- mechanisms such as password protection, encryption and the like may provide access control.
- FIG. 3 is a block diagram showing exemplary components comprising an end-to-end system for protecting media content 110 and other data from initial input 302 to final output 308 of a computing environment 800 .
- Such a system tends to protect media 110 or other data from the point of entry into a computing environment 800 to its final output 130 in addition to providing protection during processing within a protected media pipeline 232 and/or other processing components.
- Such end-to-end protection may be provided via three major components-protected input 302 , a protected space 230 for processing and protected output 308 .
- Protected input 302 may be implement in hardware and/or software and may limit unauthorized access to media content 110 and/or other data as it is initially received onto the system 800 from some source such as a storage device, network connection, physical memory device and the like.
- the protected input 302 may be coupled to a protected media pipeline 232 via a secure connection 304 .
- the secure connection 304 allows transfer of the media content 110 between the protected input 302 and the protected media pipeline 232 and/or other processing components and may be implemented using mechanisms such that it is tamper resistant.
- Protected output 306 may be implemented in hardware and/or software and may limit unauthorized access to media content 110 as it is transferred from a protected media pipeline 232 or other processing to the output of the computing environment 800 which may be speakers, video displays, storage media, network connections and the like.
- the protected output 308 may be coupled to a protected media pipeline 232 via a secure connection 306 .
- the secure connection 306 allows transfer of the media content 110 , which may be in a processed form, between the protected media pipeline 232 and the protected output 308 and may be implemented using mechanisms such that it is tamper resistant.
- Tamper resistance as used here includes limiting unauthorized access, resisting attack and otherwise protecting media content and/or other data from being compromised.
- a protected space may also be referred to as a protected environment.
- Protected spaces or environments and their creation and maintenance are described beginning with the description of FIG. 9 below.
- FIG. 4 is a block diagram showing exemplary components comprising a protected media pipeline 232 operating in a protected space 230 as part of a trusted media system 200 .
- the components 400 , 421 , 422 , 425 , and 480 form a protected media pipeline 232 operating in a protected space 230 .
- the transforms mechanisms 420 process the media content to prepare it for output.
- the protected space 230 may also contain other protected elements 410 of the trusted media system 200 .
- the protected media pipeline 232 typically performs the function of accessing and processing protected media content 110 and producing a protected output in the format determined by the trusted media system 200 .
- Unprotected media content may also be processed in a protected media pipeline 232 .
- unprotected media pipelines may be constructed and operate in the application space 202 or other spaces. However, an unprotected media pipeline operating in the application space 202 would not benefit from a protected environment 230 which limits unauthorized access to the media content.
- an unprotected pipeline may be acceptable.
- a media source 400 may be coupled to a series of transform functions or mechanisms 420 .
- a first transform function F(a) 1 421 may be coupled to a second transform function F(b) 2 422 which in turn may be coupled to any number of additional transform functions represented by F(z)n 425 .
- the output of the set of transform functions 420 may be coupled to a media sink 480 .
- There are typically one or more transform functions in a protected media pipeline 232 the specific function of each transform depending on the media content 110 and the processing that the trusted media system 200 is designed to perform.
- transform mechanisms that may be connected in series forming a transform chain.
- two or more of the transform mechanisms may be coupled in parallel and/or two or more media pipelines may be coupled at some point in each pipeline's transform chain forming a single pipeline from that point forward.
- each transform may have a single input or a plurality of inputs and they may have a single output or a plurality of outputs.
- the media source 400 may access media content 110 via hardware and/or appropriate driver software or the like. For example, using a PC for processing music stored on a CD, the media source 400 couples to CD ROM driver software which controls the CD ROM drive hardware ( FIG. 8 , 804 ) to read audio data from a CD ROM disk ( FIG. 8 , 806 ).
- the media source 400 is a mechanism used in the construction of a media pipeline to access and receive the media content 110 and make it available to the remaining mechanisms of the media pipeline.
- a media source 400 may couple with a semiconductor memory in a consumer electronic device to access music stored on the device. Equivalent media sources may provide access to one or more types of media content, including video, digital recordings, and the like.
- the media transforms 420 represented by F(a) 1 , F(b) 2 and F(z)n, ( 421 , 422 and 425 respectively) perform specific operations on the media content provided by the media source 400 and may each perform different operations. There are typically at least one media transform in a media pipeline.
- the media transforms 421 , 422 and 425 prepare and/or process the media content 110 for rendering via the media output 130 and/or for further processing.
- the specific transformations performed may include operations such as encryption and/or decryption of media content, image enhancement of video content, silence detection in audio content, decompression, compression, volume normalization, and the like. Transforms may process media content 110 automatically or be controlled by a user via virtual or physical handles provided through a user interface 204 .
- the specific transforms provided in a pipeline depend on the media content 110 to be processed and the function the trusted media system 200 has constructed the pipeline to perform.
- the processing may be as minimal as decoding an audio media and controlling the volume of the media accessed from a semiconductor memory and played on a headset.
- a more complex media system or application a wide variety of processing and media manipulation are possible.
- one of the transform mechanisms may be a codec which decodes the media content such that it may be further processed.
- decryption and/or decompression operations may be performed by distinct mechanisms and one or both operations may be eliminated depending on the format of media content being processed.
- the media sink 480 may couple the processed or transformed media content 110 to the media output 130 via the media I/O hardware ( FIG. 8 , 812 ) controlled by appropriate driver programs.
- the media sink 480 may couple to an available sound driver program which couples audio data that has been transformed to audio output hardware such as an amplifier and/or speakers ( FIG. 2 , 132 ).
- the media sink 480 may be coupled, for example, to an audio amplifier which in turn couples to speakers or a headset through a connector on the device's case.
- the output of the protected media pipeline 232 may be coupled to the input of a media output 130 .
- the output of a protected media pipeline 232 may couple to the input of another protected media pipeline or some other process. This coupling may be implemented such that it is tamper resistant and restricts unauthorized access to any data or media content flowing from one pipeline to another or to some other process.
- the remainder of the elements illustrated in FIG. 4 operate as previously described for FIG. 2 .
- FIG. 5 is a block diagram showing an alternate example of a protected media pipeline 552 having a proxied media source 510 as part of a trusted media system 500 .
- the proxied media source 510 includes a media source portion 518 and a stub portion 520 that may operate in an unprotected application space 502 , and a proxy portion 540 that may operate in a protected space 550 .
- the proxied media source 510 may allow media content 110 to be transferred from the application space 502 via the media source 518 and the stub 520 to the protected space 550 via the proxy 540 by using remote procedure calls or the like.
- the proxied media source 510 architecture described here may simplify the creation of the media source modules by third-party software makers or content providers. Such a simplification may be provided by splitting the proxied media source 510 such that media application writers may only need to implement the media source portion 518 .
- the stub portion 520 and proxy portion 540 may be provided as an element of the protected environment 550 .
- a proxied media source 510 may support mixing protected and unprotected media content 110 by allowing protected media content to be directed from a media source 518 to a first stub operating as part of a protected media pipeline while the unprotected media content may be directed from the media source 518 to processing modules operating within the unprotected application space 502 or other unprotected space via a second stub portion also operating within the unprotected application space 502 or some other unprotected space.
- the media sink 480 may also be proxied and split into stub and proxy portions.
- the stub portion may operate in the protected space 650 and may encrypt data prior to forwarding it to the proxy portion operating in an application space 202 or some other space.
- the remainder of the elements in FIG. 5 operate as previously described for FIG. 4 .
- FIG. 6 is a block diagram showing an example of a further alternative example of a trusted media system 600 .
- the trusted media system 600 includes a protected media source 610 constructed to include a media source portion 618 and a stub portion 620 which operate in a protected media space 609 , and a proxy portion 640 which operates in a protected space 650 .
- the two protected regions 609 and 650 are coupled by the protected media source 610 with data being passed from the media source portion 618 via the stub portion 620 operating in the protected media space 609 to the proxy portion 640 operating in the protected space 650 .
- the protected media source 610 may allow media content 110 to be transferred from the protected media space 609 to the protected pipeline space 650 using remote procedure calls or the like.
- the protected media source 610 architecture described here may simplify the creation of the media source by third-parties or content providers and result in more stable and secure protected media applications 600 .
- the remaining elements of FIG. 6 operate as previously described for FIG. 4 and FIG. 5 .
- FIG. 7 is a block diagram showing a plurality of protected media pipelines 751 - 759 .
- the protected media pipelines 751 , 752 , 759 operate in a protected space 700 .
- each protected media pipeline may operate in its own protected space or various numbers of pipelines may be grouped into one or more protected spaces in any combination.
- a trusted media system may provide several such protected media pipelines.
- An example of such a system may be a trusted media system playing a DVD with its audio content in Dolby digital 5.1 format.
- two or more of the sources, transform mechanisms and/or sinks may be coupled in parallel and/or two or more media pipelines may be coupled at some point in each pipeline forming a single pipeline from that point forward.
- a single pipeline may split into two pipelines.
- sources, transforms and/or sinks may have a single input or a plurality of inputs and/or they may have a single output or a plurality of outputs.
- the remaining elements of FIG. 7 operate as previously described for FIG. 4 .
- FIG. 8 is a block diagram showing an exemplary computing environment 800 in which the software applications, systems and methods described in this application may be implemented.
- Exemplary personal computer 800 is only one example of a computing system or device that may process media content ( FIG. 4 , 110 ) and is not intended to limit the examples described in this application to this particular computing environment or device type.
- the computing environment can be implemented with numerous other general purpose or special purpose computing system configurations.
- Examples of well known computing systems may include, but are not limited to, personal computers 800 , 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 800 includes a general-purpose computing system in the form of a computing device 801 .
- the components of computing device 801 may include one or more processors (including CPUs, GPUs, microprocessors and the like) 807 , a system memory 809 , and a system bus 808 that couples the various system components.
- Processor 807 processes various computer executable instructions to control the operation of computing device 801 and to communicate with other electronic and computing devices (not shown) via various communications connections such as a network connection 814 an the like.
- the system bus 808 represents any number of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures.
- the system memory 809 includes 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 807 .
- a trusted media system 200 may be contained in system memory 809 .
- Mass storage devices 804 and 810 may be coupled to the computing device 801 or incorporated into the computing device by coupling to the system bus.
- Such mass storage devices 804 and 810 may include a magnetic disk drive which reads from and/or writes to a removable, non volatile magnetic disk (e.g., a “floppy disk”) 805 , or an optical disk drive that reads from and/or writes to a removable, non-volatile optical disk such as a CD ROM, DVD ROM or the like 806 .
- Computer readable media 805 and 806 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 modules may be stored on the hard disk 810 , other mass storage devices 804 , and system memory 809 (limited by available space), including by way of example, an operating system(s), one or more application programs, other program modules, and 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.
- a trusted media system 200 may be stored on mass storage devices 804 and 810 and/or in system memory 809 .
- a display device 134 may be coupled to the system bus 808 via an interface, such as a video adapter 811 .
- a user can interface with computing device 800 via any number of different input devices 803 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 807 via input/output interfaces 812 that may be coupled to the system bus 808 , and may be coupled by other interface and bus structures, such as a parallel port, game port, and/or a universal serial bus (USB).
- USB universal serial bus
- Computing device 800 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, optical links and/or the like.
- the computing device 800 may be coupled to one or more networks via network adapter 813 or alternatively by a modem, DSL, ISDN interface and/or the like.
- Communications connection 814 is an example of communications media.
- Communications media typically embody computer readable instructions, data structures, program modules 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 or device and download a part or all of the software to run the program.
- 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 or devices.
- DSP digital signal processor
- PLA programmable logic array
- electronic apparatus includes computing devices, consumer electronic devices including any software and/or firmware and the like, and electronic devices or circuits containing 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.
- FIG. 9 is a block diagram showing a conventional media application 100 processing media content 110 operating in a conventional computing environment 900 with an indication of an attack 907 against the system 901 .
- a conventional computing environment 900 may be provided by a personal computer (“PC”) or consumer electronics (“CE”) device 901 that may include operating system (“OS”) 902 .
- OS operating system
- Typical operating systems often partition their operation into a user mode 903 , and a kernel mode 904 .
- User mode 903 and kernel mode 904 may be used by one or more application programs 100 .
- An application program 100 may be used to process media content 110 that may be transferred to the device 901 via some mechanism, such as a CD ROM drive, Internet connection or the like.
- An example of content 110 would be media files that may be used to reproduce audio and video information.
- the computing environment 900 may typically include an operating system (“OS”) 902 that facilitates operation of the application 100 , in conjunction with the one or more central processing units (“CPU”). Many operating systems 902 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 100 running on the system, the user mode 903 and the kernel 904 . Such a computing environment 900 may be susceptible to various types of attacks 907 . Attacks may include not only outsiders seeking to gain access to the device 901 and the content 110 on it, but also attackers having administrative rights to the device 901 or other types of users having whatever access rights granted them.
- FIG. 10 is a block diagram showing a trusted application 200 processing media content 110 and utilizing a protected environment or protected space 230 that tends to be resistant to attack 1005 .
- 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 1005 and limit unauthorized access to any media content 110 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 200 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 200 may be designed to play media content 110 that is typically licensed only for use such that the media content 110 cannot be accessed in an unauthorized manner. Such a trusted application 200 may not operate and/or process the media content 110 unless the computing environment 1000 can provide the required level of security, such as by providing a protected environment 230 resistant to attack 1005 .
- process may 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 1004 or the like may be utilized with the protected environment 230 .
- the use of a digital rights management system 1004 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 200 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 200 or may be accessed via interfaces that communicate with complex systems otherwise distinct from the trusted application 200 .
- FIG. 11 is a block diagram showing exemplary components of a trusted application 200 that may be included in the protected environment 230 .
- a trusted application 200 will typically utilize a protected environment 230 for at least a portion of its subcomponents 232 , 400 , 480 . Other components 1101 of the trusted application may not utilize a protected environment. Components 232 , 400 and 480 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 230 .
- a protected environment 230 may be utilized by a single trusted application 200 or, possibly, by a plurality of trusted applications. Alternatively, a trusted application 200 may utilize a plurality of protected environments.
- a trusted application 200 may also couple to and/or utilize a digital rights management system 1004 .
- source 400 and sink 480 are shown as part of a media pipeline 232 operating in the protected environment 230 .
- a protected environment 230 tends to ensure that, once protected and/or encrypted content 1109 has been received and decrypted, the trusted application 200 and its components prevent unauthorized access to the content 1109 .
- Digital rights management 1004 may provide a further avenue of protection for the trusted application 200 and the content 1109 it processes.
- a content provider is typically able to have confidence that encrypted content 1109 has been delivered to the properly authorized device and that the content 1109 is used as intended.
- FIG. 12 is a block diagram showing a system for downloading digital media content 1210 from a service provider 1207 to an exemplary trusted application 200 utilizing a protected environment 230 .
- the trusted application 200 is shown being employed in two places 1201 , 1203 .
- the trusted application 200 may be used in a CE device 1201 or a PC 1203 .
- Digital media 1210 may be downloaded via a service provider 1207 and the Internet 1205 for use by the trusted application 200 .
- 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 1210 may be provided in an encrypted form 1109 requiring a system of decryption keys, licenses, certificates and/or the like which may take the form of a digital rights management system 1004 .
- the data or media content 1210 provided to the trusted application may or may not be protected, i.e., encrypted or the like.
- a trusted application 200 may utilize a digital rights management (“DRM”) system 1004 or the like along with a protected environment 230 .
- the trusted application 200 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 1004 .
- 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 application Ser. Nos. 10/185,527, 10/185,278, and 10/185,511, each of which filed on Jun. 28, 2002, and incorporated herein by reference in its entirety.
- a trusted application 200 that may be utilized in the CE device 1201 or the PC 1203 may include making sure the trusted application 200 which decrypts and processes the content 1109 may be “secure” from malicious attacks.
- a protected environment 230 typically refers to an environment that may not be easy to attack.
- the trusted applications 200 operate in a consumer electronics device 1201 , which can be periodically synced to a PC 1203 that also provides a trusted application.
- the PC 1203 is in turn coupled 1204 to the internet 1205 .
- the internet connection allows digital media 1210 to be provided by a service provider 1207 .
- the service provider 1207 may transmit licenses and encrypted media 1206 over the internet 1205 to trusted application 200 . 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 limit 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 it 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 ( FIG. 9 , 903 ) processes and kernel mode ( FIG. 9 , 904 ) processes and any data they may be processing.
- Processes operating in the kernel may be susceptible to attack.
- objects are created, including processes, which 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 mechanism. Typically, access to the protected content is granted through the DRM system or other security 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, most system and peripheral drivers 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 being created.
- 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. 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.
- the usual result is that all drivers running in kernel mode 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 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”).
- DLL dynamic link libraries
- a DLL or the like 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. 13 is a block diagram showing exemplary attack vectors 1307 - 1310 that may be exploited by a user or mechanism attempting to access media content or other data 1300 typically present in a computing environment 900 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 made by users of the system or mechanisms that may include executable code.
- the media application 100 is shown at the center of the diagram and the attack vectors 1307 - 1310 tend to focus on accessing sensitive data 1300 being stored and/or processed by the application 100 .
- a possible attack vector 1309 may be initiated via a malicious user mode application 1302 .
- 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 and/or processes.
- a possible attack vector 1308 is the loading of malicious code 1303 into a process 1301 . 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 1310 is through malicious kernel mode code 1304 .
- Code running in kernel mode 904 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. 11 , 1109 ). 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 1307 is by external attacks 1306 to the system 900 .
- This group represents the set of attacks that typically do not require malicious code to be running on the system 900 . For instance, attaching a debugger to an application and/or a process on the system, searching a machine 900 for sensitive data, etc.
- a protected environment may be created to resist these types of attacks.
- FIG. 14 is a flow diagram showing the process 1400 for creating and maintaining a protected environment that tends to limit unauthorized access to media content and other data.
- the sequence 1400 begins when a computer system is started 1402 and the kernel of the operating system is loaded and a kernel secure flag is set 1404 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 1406 .
- the process includes periodic checking 1408 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 1402 represents the start-up of a computer system. This typically begins what is commonly known as the boot process and includes loading 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 1404 .
- a user may start an application such as a trusted media player which may call for a protected environment.
- an application such as a trusted media player which may call for a protected environment.
- This example provides a secure kernel with an application operating in a protected environment, as shown in block 1406 .
- the trusted environment may periodically check the kernel secure flag to ensure the kernel remains secure, as shown in block 1408 . 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. 15 is a block diagram showing exemplary kernel components 1520 - 1530 and other components 1510 - 1514 utilized in creating an exemplary secure computing environment 1000 .
- This figure shows a computer system containing several components 1510 - 1530 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 1404 indicates the process of loading the kernel components into memory forming the operational kernel of the system.
- the loaded kernel 1550 is shown containing its various components 1551 - 1562 and a kernel secure flag 1590 indicating whether or not the kernel is considered secure for a protected environment.
- the kernel secure flag 1590 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 1520 - 1530 are typically “signed” and may include certificate data 1538 that may enable 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 1538 may be present in each kernel component 1520 - 1530 and/or each loaded kernel component 1560 , 1562 .
- the signature and/or certificate data 1538 may be unique to each component.
- the signature and/or certificate data 1538 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 1538 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 1551 When a typical computer system is started or “booted” the operating system's loading process or “kernel loader” 1551 will 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 1520 thru kernel component #n 1530 may be stored on a disk or other storage media, along with a revocation list 1514 , a kernel dump flag 1512 and a debugger 1510 along with a debug credential 1511 .
- Arrow 1404 indicates the kernel loading process which reads the various components 1514 - 1530 from their storage location and loads them into system memory forming a functional operating system kernel 1550 .
- the kernel dump flag 1512 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 1551 along with the PE management portion of the kernel 1552 , the revocation list 1554 and two of the kernel components 1520 and 1522 are shown loaded into the kernel, the latter as blocks 1560 and 1562 , along with an indication of space for additional kernel components yet to be loaded into the kernel, 1564 and 1570 .
- the kernel 1550 includes a kernel secure flag 1590 which may be used to indicate whether or not the kernel 1550 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 1551 , the PE management portion of the kernel 1552 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 1514 may be used in conjunction with the signature and certificate data 1538 associated with the kernel components 1560 and 1562 .
- This object 1514 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 1514 .
- the revocation list 1514 is shown loaded into the kernel as object 1554 .
- Such lists are maintained because a validly-signed and certified component, for example components 1560 and 1562 , may later be discovered to have some problem.
- the system may use such a list 1554 to check kernel components 1520 - 1530 as they are loaded, which may be properly signed and/or have trusted certificate data 1538 , but that may have subsequently been deemed untrustworthy.
- Such a revocation list 1554 will typically include version information 1555 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 1000 .
- 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 present.
- a debugger 1510 may be able access any data in a computing environment 1000 , 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 should be possible to debug within protected environments the code intended to process protected media content.
- a debugger 1510 may thus include debug credentials 1511 which may indicate that the presence of the debugger 1510 on a system is authorized. Thus detection of the presence of a debugger 1510 along with any accompanying credentials 1511 may be a part of the creation and maintenance of protected environments ( FIG. 14 , 1400 ).
- the computing environment 1000 may include a kernel dump flag 1512 .
- This flag 1512 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 1512 indicates that system memory is available for inspection upon a dump then the kernel 1550 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 system memory being available for inspection, including that containing the exposed media content. Thus a kernel dump flag 1512 may be used in the creation and maintenance of a protected environments ( FIG. 14 , 1400 ).
- FIG. 16 and FIG. 17 are flow diagrams showing an exemplary process 1404 for loading kernel components to create an exemplary secure computing environment.
- This process 1404 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 is usually defined as determining whether or not a given component is considered secure and trustworthy as illustrated in part 2 of this process 1404 .
- 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 1601 shows the start of the loading process 1404 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 1602 shows 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 1604 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 1404 continues at block 1610 . Otherwise it continues at block 1609 . Not shown in the diagram, this check may be performed periodically and the state of the kernel secure flag updated accordingly.
- block 1606 shows a check for debug credentials which may indicate that debugging is 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 1608 . Otherwise the loading process 1404 continues at block 1610 .
- Block 1610 shows a check of the kernel dump flag. If this flag indicates that a full kernel memory dump or the like is possible then the kernel secure flag may be set to FALSE as shown in block 1608 . Otherwise the loading process 1404 continues at block 1612 . Not shown in the diagram, this check may be performed periodically and the state of the kernel secure flag updated accordingly.
- Block 1612 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 1404 continues at block 1614 .
- 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 1614 shows the transition to part 2 of this diagram shown in FIG. 17 and continuing at block 1701 .
- Block 1702 shows a check for any additional kernel components to be loaded. If all components have been loaded then the load process 1404 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 1404 continues at block 1706 .
- Block 1706 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 1718 . Otherwise the loading process 1404 continues at block 1708 . 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 1718 . 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 1708 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 1718 . Otherwise the loading process 1404 continues at block 1710 . 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 1718 . 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 1710 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 kernel secure flag may be set to FALSE as shown in block 1718 . Otherwise the loading process 1404 continues at block 1712 .
- Block 1712 shows a check of the component's certificate data against a revocation. 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 1718 . Otherwise the loading process 1404 continues at block 1714 .
- Block 1714 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 1718 . Otherwise the loading process 1404 continues at block 1716 .
- Block 1716 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 1718 . Otherwise the loading process 1404 continues at block 1720 .
- Block 1720 shows the loading of the component into the kernel where it is now considered operational. Then the loading process 1404 returns to block 1702 to check for any further components to be loaded.
- FIG. 18 is a block diagram showing a secure computing environment 1000 loading an application 100 into an exemplary protected environment 230 to form a trusted application that may be resistant to attack.
- the kernel may be the same as that described in FIG. 15 , has already been loaded and the system 1000 is considered fully operational.
- a user starts media application 100 .
- the media application 100 may call for the creation of a protected environment 230 for one or more of its processes and/or components to operate within.
- the protected environment creation process 1406 creates the protected environment 230 and loads the application 100 and/or its components as described below.
- FIG. 19 is a flow diagram showing an exemplary process 1406 for creating a protected environment and loading an application into the protected environment.
- This process 1406 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 1901 shows the start of the protected environment creation process 1406 . This point is usually reached when some application or code calls for a protected environment to operate.
- Block 1902 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 is 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 1406 continues at block 1906 .
- Block 1906 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 1406 may fail as shown in block 1918 . Otherwise the process 1406 continues at block 1908 . 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 and the like. 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 1406 may fail as shown in block 1918 . 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 1908 shows a check of the software component's certificate data. If the certificate data is invalid then the process 1406 may fail as shown in block 1918 . Otherwise the process 1406 continues at block 1910 . If no component certificate data is available the component may be considered insecure and the process 1406 may fail as shown in block 1918 . 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 1910 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 1406 may fail as shown in block 1918 . Otherwise the process 1406 continues at block 1912 .
- Block 1912 shows a check of the component's certificate data against the revocation list. If the certificate data is present on the list, indicating that it has been revoked, then the process 1406 may fail as shown in block 1918 . Otherwise the process 1406 continues at block 1914 .
- Block 1914 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 1406 may fail as shown in block 1918 . Otherwise the process 1406 continues at block 1916 .
- Block 1916 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 1406 may fail as shown in block 1918 . Otherwise the process 1406 continues at block 1920 .
- Block 1918 shows the failure of the software component to load followed by block 1930 , the end of the protected environment creation process 1406 .
- Block 1920 shows the software component being loaded into the protected environment, where it is considered operational, followed by block 1930 , the end of the protected environment creation process 1406 .
- FIG. 20 is a block diagram showing an exemplary trusted application utilizing an exemplary protected environment 230 periodically checking 1408 the security state 1590 of the secure computing environment 1000 .
- the computing environment 1000 and the kernel 1550 may be the same as those described in FIG. 15 and FIG. 16 .
- the kernel 1550 has already been loaded and the computer 1000 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 230 , hereafter referred to simply as the “protected environment”.
- the protected environment 230 may periodically check with the PE management portion of the kernel 1552 to determine whether the kernel 1550 remains secure over time. This periodic check may be performed because it is possible for a new component to be loaded into the kernel 1550 at any time, including a component that may be considered insecure. If this were to occur, the state of the kernel secure flag 1590 may change to FALSE and the code operating in the protected environment 230 has the opportunity to respond appropriately.
- the check kernel secure state process 1040 would note the kernel secure flag 1590 has changed to FALSE indicating the kernel 1550 may no longer be secure.
- the revocation list 1545 may be updated and a kernel component previously considered secure may no longer be considered secure, resulting in the kernel secure flag 1590 being set to FALSE.
- the application may receive notification that the system 1000 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. 21 is a flow diagram showing an exemplary process 1408 for periodically checking the security state of the secure computing environment.
- This process 1408 may be used by a protected environment 230 to determine if the kernel remains secure over time.
- the protected environment 230 may periodically use this process 1408 to check the current security status of the kernel.
- the protected environment 230 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 in FIG. 21 shows a sequence of communications 1408 , illustrated with exemplary pseudo code, between the protected environment 230 and the PE management portion of the kernel 1552 .
- 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 230 makes a IsKernelSecure(MinRLVer) call 2120 to the PE management portion of the kernel to query the current security state of the kernel. Included in this call 2120 may be the minimum version (MinRLVer) of the revocation list expected to be utilized.
- an appropriate version revocation list may be located and utilized, all kernel components may 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 1408 repeated.
- FIG. 22 is a block diagram showing an exemplary computing environment 800 including a representation of a protected environment 230 , a trusted media system 200 , and other related elements.
- Exemplary personal computer 800 is similar to that shown in FIG. 8 with the addition of kernel components 1520 - 1530 that may be stored on the disk 810 along with the other operating system code and the like.
- Media application 100 and/or a digital rights management system 1004 may be stored on the disk 810 along with other application programs.
- These components 1520 - 1530 and applications 100 , 1004 may be loaded into system memory 809 and considered operational. Shown loaded in system memory 809 is a trusted application 200 utilizing a protected environment 230 and media content 110 .
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
Description
- This application is a Continuation of and claims benefit from U.S. patent application Ser. No. 11/116,689 that was filed on Apr. 27, 2005, and that is a Non-Provisional of U.S. Provisional Patent Application No. 60/673,979 that was filed on Apr. 22, 2005, each of which is incorporated herein by reference in its entirety.
- The present description will be better understood from the following detailed description read in light of the accompanying drawings, wherein:
-
FIG. 1 is a block diagram showing an example of a typical prior art media player or application designed to operate on an exemplary personal computer. -
FIG. 2 is a block diagram showing an example of a trusted media system comprising an application space and a distinct protected space. -
FIG. 3 is a block diagram showing exemplary components comprising an end-to-end system for protecting media content and other data from initial input to final output of a computing environment. -
FIG. 4 is a block diagram showing exemplary components comprising a protected media pipeline operating in a protected space as part of a trusted media system. -
FIG. 5 is a block diagram showing an alternate example of a protected media pipeline having a proxied media source as part of a trusted media system. -
FIG. 6 is a block diagram showing an example of a further alternative example of a trusted media system. -
FIG. 7 is a block diagram showing a plurality of protected media pipelines. -
FIG. 8 is a block diagram showing an exemplary computing environment in which the software applications, systems and methods described in this application may be implemented. -
FIG. 9 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. 10 is a block diagram showing a trusted application processing media content and utilizing a protected environment or protected space that tends to be resistant to attack. -
FIG. 11 is a block diagram showing exemplary components of a trusted application that may be included in the protected environment. -
FIG. 12 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. 13 is a block diagram showing exemplary attack vectors that may be exploited by a user or mechanism attempting to access media content or other data typically present in a computing environment in an unauthorized manner. -
FIG. 14 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. 15 is a block diagram showing exemplary kernel components and other components utilized in creating an exemplary secure computing environment. -
FIG. 16 andFIG. 17 are flow diagrams showing an exemplary process for loading kernel components to create an exemplary secure computing environment. -
FIG. 18 is a block diagram showing a secure computing environment loading an application into an exemplary protected environment to form a trusted application that may be resistant to attack. -
FIG. 19 is a flow diagram showing an exemplary process for creating a protected environment and loading an application into the protected environment. -
FIG. 20 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. 21 is a flow diagram showing an exemplary process for periodically checking the security state of the secure computing environment. -
FIG. 22 is a block diagram showing an exemplary computing environment including a representation of a protected environment, a trusted media system, and other related elements. - 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. 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 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 electronic systems.
- Digital media content is widely used in the form of CDs, DVDs and downloadable files. Various devices are able to process this media content including personal computers running various media player applications and the like, CD and DVD players, MP3 players and other general-purpose and/or dedicated electronic devices designed to process digital media content.
- Because media content often comes in the form of a for-sale consumer products and the like, producers and providers may be anxious to protect their media content from unauthorized access, duplication, use, etc. Therefore, media content is often encrypted and/or otherwise secured. Some form of encryption key and/or other access mechanism may be provided for use with the media so that it can be accessed when and how appropriate. This key or mechanism may be used by a media application or the like to gain access to the protected media for processing, playing, rendering, etc.
- Once the key or other mechanism has been used to decrypt or otherwise access media content within a system the media content may be vulnerable in its unprotected form. It may be possible to attack the system and/or media application so as to gain access to the unprotected media content. This may lead to the unauthorized access, use, duplication, distribution, etc. of the media content.
- To avoid unauthorized access, a system that rightfully accesses the media content should be capable of protecting the media content. This protection should extend from the time the key or the like is obtained, used to access the media content, throughout any processing performed on the content, until the content is appropriately rendered in its authorized form. For example, a particular meeting may be recorded and encrypted using an access key with the intent of making the recording available to authorized personnel. Later, the recording is made available to an authorized individual via a media application on a PC. The media application uses the key to decrypt and access the media content, process it and play it for the listener. But if the media application itself has been compromised, or the application and/or content is attacked, the unencrypted media may no longer be protected.
- One approach may be to construct a system for accessing, processing and rendering the media content within a protected environment that is designed to prevent unauthorized access to the media content. The example provided here describes a process and system for protecting media content from unauthorized access. Protection may be afforded by a protected media pipeline, among other mechanisms, which processes some, or all, of a media within a protected environment or protected space. A protected media pipeline may be composed of several elements.
- A media source that may be part of the protected media pipeline accesses the media content, passes it through a set of transform functions or processes (decoders, effects, etc.) and then to a media sink which renders the processed media to a media output(s) (video rendering process, audio rendering process, etc). As an example, rendering may be as simple as sending audio signals to a set of headphones or it may be sending protected content in a secure manner to yet another process, system or mechanism external to the protected media pipeline.
- A protected media pipeline may be constructed as a set or chain of media processing mechanisms operating in a secure or protected environment. In a PC, a protected media pipeline can be thought of as a software process that operates in a secure environment which protects the media content from unauthorized access while the content is being accessed, played and/or otherwise processed by the media system. When media content is being processed by an electronic device, a protected media pipeline can be thought of as a set of media processing mechanisms operating within a secure environment such that the media being processed is resistant to unauthorized access. The mechanism for providing this resistance may be purely physical in nature, such as a sealed case or lack of access points to the media content.
- There may be two major aspects to constructing a trusted media system with a protected media pipeline. First, a trusted media system may be designed and constructed in such a way that it acknowledges and adheres to any access rules of the media content by ensuring that no actions are taken with the content above and beyond those allowed. Various mechanisms known to those skilled in this technology area may be used to address this first point. These mechanisms may include using encryption/decryption, key exchanges, passwords, licenses, interaction with a digital rights management system, and the like. Further, this may be as simple as storing the media content on/in a device such that it is resistant to physical, electronic or other methods of accessing and using the media content, except as intended.
- Second, the trusted media system may be designed and constructed such that the media content being processed is secure from malicious attacks and/or unauthorized access and use. Processing the media content via a protected media pipeline operating in a protected environment or protected space addresses this second point. So in short, a protected media pipeline operating in a protected space refers to a media processing environment that resists unauthorized access to the media content being processed.
-
FIG. 1 is a block diagram showing an example of a typical prior art media player orapplication 100 designed to operate on an exemplary personal computer (FIG. 8 , 800). Equivalently, media players may operate on other devices with similar processing capabilities such as consumer electronic devices and the like. Other media applications may include, but are not limited to, media processors, media manipulators, media analyzers, or media formatters. A media application may be a software application program that provides a way of playing media such as audio and video by a digital processor such as a CPU (FIG. 8 , 807) or the like. A media application may include a user interface or graphic 101 that may indicate the media being played and provides various user controls. Controls may be accessed through activation with a computer pointing device such as a mouse or by conventional buttons or the like. Such a media application may be thought of as a software application program operating in anapplication space 102 that is provided by the PC's computing environment (FIG. 8 , 801) or operating system. - Another example of a media player may be a hardware device comprising a memory capable of storing media content and various button, switches, displays and controls and the like to allow a user to control the device, select the media to be played, control volume, download media content, etc.
- The
media player 100 may be comprised ofmechanisms application space 102. For a software media player, anapplication space 102 may be a space created in system memory (FIG. 8 , 809) on a PC (FIG. 8 , 800) where various software components or processes can be loaded and executed. For a hardware media player anapplication space 102 may be a printed circuit board and an electronic module containing the electronic elements that perform the processing and functions of themedia player 100. Themedia player application 100 may include other spaces and mechanisms which may provide additional capabilities or features that may or may not be directly related to the processing of media. For example, a second media player playing a music selection may operate in a media application at the same time as a media player playing a newscast. - The
application space 102 may include a user interface process 104 coupled to amedia control process 106 which in turn is coupled to amedia processing process 108. Typically these processes enable themedia application 100 to couple to a source ofmedia content 110, process themedia content 110 and render it viamedia output 130. Themedia content 110 may or may not be encrypted or otherwise protected as part of an overall security and access control scheme. - For example, when activated the
media application 100 may accessaudio content 112 andvideo content 114 typically available on a DVD ROM, an on-line source, or the like. Themedia content 110 may be played viamedia processing 108 which renders the content asaudio output 132 and/orvideo output 134. Audio and video may typically be rendered on the speakers and/or display of a PC (FIG. 8 , 800). This system is only one example of common media applications and environments that enable audio and video and the like to be processed, played and/or provided to other processes or systems. Another example of a media application would be a consumer electronic device such as an electronic juke box or the like. Yet another example would be a dedicated electronic device, with or without software and/or firmware. -
Application space 102 may contain various processes and, in this example, includes the user interface process 104, themedia control process 106, themedia processing process 108, or their equivalents, used to coordinate and control the overall operation of themedia application 100 and its processes. Typically, to prepare themedia content 110, the user interface process 104 may provide aninterface 101 for interaction between the user and the application. Themedia control process 106 or its equivalents may provide the overall management and control of the internal operations of themedia application 100. Themedia processing process 108 may perform the processing of themedia content 110 making it possible to render the media content via themedia output 130, or perform whatever other media processing it may have been designed to perform. - The processes described above may not be secure against unauthorized access to the
media content 110. Processing themedia content 110 via such a system may expose it to unauthorized access. Such an unprotected application may enable users and/or attackers, with varying degrees of effort, to access and make use of themedia content 110 in an unauthorized manner. For example, unauthorized access may enable the unauthorized sharing, copying, modifying, and/or distributing ofmedia content 110. -
FIG. 2 is a block diagram showing an example of a trustedmedia system 200 comprising anapplication space 202 and a distinct protectedspace 230. In this exemplary embodiment of a media player the system comprises a protectedmedia pipeline 232 operating within a protectedspace 230 in addition to user interface 204 and media control 206 mechanisms operating in theapplication space 202. - The protected
space 230 typically provides a protected environment formedia content 110 processing, the protectedspace 230 resisting unauthorized access to themedia content 110 during processing.Media content 110 is typically protected by various built-in security schemes to deliver it un-tampered—with to a user, such as encryption and the like. However, once themedia content 110 is decrypted or the like for processing, additional mechanisms to protect it from unauthorized access are required. A protectedmedia pipeline 232 operating in a protectedspace 230. -
Application space 202 may be contain various mechanisms including, but not limited to, a user interface mechanism 204 and amedia control mechanism 206, or their equivalents, which are coupled to the protectedmedia pipeline 232 operating within the protectedspace 230. Typically the user interface process 204 may provide aninterface 201 or set of controls for interaction between the user and the system. Themedia control process 206 may provide the overall management and control of the internal operations of the trustedmedia system 200. The protectedmedia pipeline 232 operating in the protectedspace 230 may perform the processing of themedia content 110 and render the content via themedia output 130, or perform whatever other media processing themedia system 200 is designed to perform. - One or more
protected spaces 230 may be provided as an extension of a computing environment (FIG. 8 , 801) and typically possess a heightened level of security and access control. A protectedspace 230 may also include mechanisms to ensure that any mechanism operating inside it, such as a protectedmedia pipeline 232, along with any media content being processed within the protectedspace 230, are used and accessed appropriately. In some embodiments the access and use privileges may be indicated by a media content license and/or a digital rights management system. Alternatively, mechanisms such as password protection, encryption and the like may provide access control. -
FIG. 3 is a block diagram showing exemplary components comprising an end-to-end system for protectingmedia content 110 and other data frominitial input 302 tofinal output 308 of acomputing environment 800. Such a system tends to protectmedia 110 or other data from the point of entry into acomputing environment 800 to itsfinal output 130 in addition to providing protection during processing within a protectedmedia pipeline 232 and/or other processing components. Such end-to-end protection may be provided via three major components-protectedinput 302, a protectedspace 230 for processing and protectedoutput 308. -
Protected input 302 may be implement in hardware and/or software and may limit unauthorized access tomedia content 110 and/or other data as it is initially received onto thesystem 800 from some source such as a storage device, network connection, physical memory device and the like. The protectedinput 302 may be coupled to a protectedmedia pipeline 232 via asecure connection 304. Thesecure connection 304 allows transfer of themedia content 110 between the protectedinput 302 and the protectedmedia pipeline 232 and/or other processing components and may be implemented using mechanisms such that it is tamper resistant. -
Protected output 306 may be implemented in hardware and/or software and may limit unauthorized access tomedia content 110 as it is transferred from a protectedmedia pipeline 232 or other processing to the output of thecomputing environment 800 which may be speakers, video displays, storage media, network connections and the like. The protectedoutput 308 may be coupled to a protectedmedia pipeline 232 via asecure connection 306. Thesecure connection 306 allows transfer of themedia content 110, which may be in a processed form, between the protectedmedia pipeline 232 and the protectedoutput 308 and may be implemented using mechanisms such that it is tamper resistant. - Tamper resistance as used here includes limiting unauthorized access, resisting attack and otherwise protecting media content and/or other data from being compromised.
- A protected space may also be referred to as a protected environment. Protected spaces or environments and their creation and maintenance are described beginning with the description of
FIG. 9 below. -
FIG. 4 is a block diagram showing exemplary components comprising a protectedmedia pipeline 232 operating in a protectedspace 230 as part of a trustedmedia system 200. Thecomponents media pipeline 232 operating in a protectedspace 230. Of these components, thetransforms mechanisms 420 process the media content to prepare it for output. The protectedspace 230 may also contain other protectedelements 410 of the trustedmedia system 200. - The protected
media pipeline 232 typically performs the function of accessing and processing protectedmedia content 110 and producing a protected output in the format determined by the trustedmedia system 200. Unprotected media content may also be processed in a protectedmedia pipeline 232. Further, unprotected media pipelines may be constructed and operate in theapplication space 202 or other spaces. However, an unprotected media pipeline operating in theapplication space 202 would not benefit from a protectedenvironment 230 which limits unauthorized access to the media content. For processing some types of media content, such as unprotected or unencrypted media content, an unprotected pipeline may be acceptable. In some embodiments there may be a plurality of media content having different security levels (some protected and some unprotected), processed through one or more pipelines each adapted to provide the desired level of protection. - In the protected media pipeline 232 a
media source 400 may be coupled to a series of transform functions ormechanisms 420. A first transform function F(a)1 421 may be coupled to a second transform function F(b)2 422 which in turn may be coupled to any number of additional transform functions represented by F(z)n 425. The output of the set of transform functions 420 may be coupled to amedia sink 480. There are typically one or more transform functions in a protectedmedia pipeline 232, the specific function of each transform depending on themedia content 110 and the processing that the trustedmedia system 200 is designed to perform. - The example shown illustrates transform mechanisms that may be connected in series forming a transform chain. In alternative embodiments of a protected
media pipeline 232, two or more of the transform mechanisms may be coupled in parallel and/or two or more media pipelines may be coupled at some point in each pipeline's transform chain forming a single pipeline from that point forward. Further, each transform may have a single input or a plurality of inputs and they may have a single output or a plurality of outputs. - The
media source 400 may accessmedia content 110 via hardware and/or appropriate driver software or the like. For example, using a PC for processing music stored on a CD, themedia source 400 couples to CD ROM driver software which controls the CD ROM drive hardware (FIG. 8 , 804) to read audio data from a CD ROM disk (FIG. 8 , 806). Themedia source 400 is a mechanism used in the construction of a media pipeline to access and receive themedia content 110 and make it available to the remaining mechanisms of the media pipeline. Alternatively, amedia source 400 may couple with a semiconductor memory in a consumer electronic device to access music stored on the device. Equivalent media sources may provide access to one or more types of media content, including video, digital recordings, and the like. - The media transforms 420, represented by F(a)1, F(b)2 and F(z)n, (421, 422 and 425 respectively) perform specific operations on the media content provided by the
media source 400 and may each perform different operations. There are typically at least one media transform in a media pipeline. The media transforms 421, 422 and 425 prepare and/or process themedia content 110 for rendering via themedia output 130 and/or for further processing. The specific transformations performed may include operations such as encryption and/or decryption of media content, image enhancement of video content, silence detection in audio content, decompression, compression, volume normalization, and the like. Transforms may processmedia content 110 automatically or be controlled by a user via virtual or physical handles provided through a user interface 204. The specific transforms provided in a pipeline depend on themedia content 110 to be processed and the function the trustedmedia system 200 has constructed the pipeline to perform. In a simple media system or application the processing may be as minimal as decoding an audio media and controlling the volume of the media accessed from a semiconductor memory and played on a headset. In a more complex media system or application a wide variety of processing and media manipulation are possible. - In a trusted
media system 200 designed to process encrypted media content one of the transform mechanisms, typically the first transform F(a)1 421, may be a codec which decodes the media content such that it may be further processed. In alternative examples, decryption and/or decompression operations may be performed by distinct mechanisms and one or both operations may be eliminated depending on the format of media content being processed. - When operating on a PC, the media sink 480 may couple the processed or transformed
media content 110 to themedia output 130 via the media I/O hardware (FIG. 8 , 812) controlled by appropriate driver programs. For example, in the case of audio data, the media sink 480 may couple to an available sound driver program which couples audio data that has been transformed to audio output hardware such as an amplifier and/or speakers (FIG. 2 , 132). When operating on a consumer electronic device, the media sink 480 may be coupled, for example, to an audio amplifier which in turn couples to speakers or a headset through a connector on the device's case. - By constructing a pipeline that performs the sourcing, transform and sinking functions within a protected
space 230, unauthorized access to themedia content 110 may be restricted in a manner that conforms to the wishes of the media content provider/owner. Thus, this approach tends to provide a secure processing environment such that a media content provider may trust that theirmedia content 110 will not be compromised while being processed. - The output of the protected
media pipeline 232 may be coupled to the input of amedia output 130. Alternatively the output of a protectedmedia pipeline 232 may couple to the input of another protected media pipeline or some other process. This coupling may be implemented such that it is tamper resistant and restricts unauthorized access to any data or media content flowing from one pipeline to another or to some other process. The remainder of the elements illustrated inFIG. 4 operate as previously described forFIG. 2 . -
FIG. 5 is a block diagram showing an alternate example of a protectedmedia pipeline 552 having a proxiedmedia source 510 as part of a trusted media system 500. Theproxied media source 510 includes a media source portion 518 and astub portion 520 that may operate in anunprotected application space 502, and aproxy portion 540 that may operate in a protectedspace 550. Theproxied media source 510 may allowmedia content 110 to be transferred from theapplication space 502 via the media source 518 and thestub 520 to the protectedspace 550 via theproxy 540 by using remote procedure calls or the like. - When used in a PC environment (
FIG. 8 , 800), the proxiedmedia source 510 architecture described here may simplify the creation of the media source modules by third-party software makers or content providers. Such a simplification may be provided by splitting the proxiedmedia source 510 such that media application writers may only need to implement the media source portion 518. Thestub portion 520 andproxy portion 540 may be provided as an element of the protectedenvironment 550. - Further, the use of a proxied
media source 510 may support mixing protected andunprotected media content 110 by allowing protected media content to be directed from a media source 518 to a first stub operating as part of a protected media pipeline while the unprotected media content may be directed from the media source 518 to processing modules operating within theunprotected application space 502 or other unprotected space via a second stub portion also operating within theunprotected application space 502 or some other unprotected space. - Similar to the proxied
media source 510, the media sink 480 may also be proxied and split into stub and proxy portions. The stub portion may operate in the protectedspace 650 and may encrypt data prior to forwarding it to the proxy portion operating in anapplication space 202 or some other space. The remainder of the elements inFIG. 5 operate as previously described forFIG. 4 . -
FIG. 6 is a block diagram showing an example of a further alternative example of a trusted media system 600. In this embodiment the trusted media system 600 includes a protectedmedia source 610 constructed to include amedia source portion 618 and astub portion 620 which operate in a protectedmedia space 609, and aproxy portion 640 which operates in a protectedspace 650. The two protectedregions media source 610 with data being passed from themedia source portion 618 via thestub portion 620 operating in the protectedmedia space 609 to theproxy portion 640 operating in the protectedspace 650. The protectedmedia source 610 may allowmedia content 110 to be transferred from the protectedmedia space 609 to the protectedpipeline space 650 using remote procedure calls or the like. The protectedmedia source 610 architecture described here may simplify the creation of the media source by third-parties or content providers and result in more stable and secure protected media applications 600. The remaining elements ofFIG. 6 operate as previously described forFIG. 4 andFIG. 5 . -
FIG. 7 is a block diagram showing a plurality of protected media pipelines 751-759. The protectedmedia pipelines space 700. Alternatively each protected media pipeline may operate in its own protected space or various numbers of pipelines may be grouped into one or more protected spaces in any combination. A trusted media system may provide several such protected media pipelines. - An example of such a system may be a trusted media system playing a DVD with its audio content in Dolby digital 5.1 format. In this example there may be six different audio pipelines, one for each of the audio channels, in addition to a video pipeline for the video portion of the DVD. All of the protected media pipelines may operate in the same protected space as shown or, alternatively, the protected media pipelines may be grouped in groups of one or more with each group operating in its own distinct protected space.
- In alternative embodiments of a protected
media pipeline 232, two or more of the sources, transform mechanisms and/or sinks may be coupled in parallel and/or two or more media pipelines may be coupled at some point in each pipeline forming a single pipeline from that point forward. Alternatively a single pipeline may split into two pipelines. Further, sources, transforms and/or sinks may have a single input or a plurality of inputs and/or they may have a single output or a plurality of outputs. The remaining elements ofFIG. 7 operate as previously described forFIG. 4 . -
FIG. 8 is a block diagram showing anexemplary computing environment 800 in which the software applications, systems and methods described in this application may be implemented. Exemplarypersonal computer 800 is only one example of a computing system or device that may process media content (FIG. 4 , 110) and is not intended to limit the examples described in this application to this particular computing environment or device type. - The computing environment can be implemented with numerous other general purpose or special purpose computing system configurations. Examples of well known computing systems may include, but are not limited to,
personal computers 800, 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 800 includes a general-purpose computing system in the form of acomputing device 801. The components ofcomputing device 801 may include one or more processors (including CPUs, GPUs, microprocessors and the like) 807, asystem memory 809, and asystem bus 808 that couples the various system components.Processor 807 processes various computer executable instructions to control the operation ofcomputing device 801 and to communicate with other electronic and computing devices (not shown) via various communications connections such as anetwork connection 814 an the like. Thesystem bus 808 represents any number of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. - The
system memory 809 includes 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 807. A trustedmedia system 200 may be contained insystem memory 809. -
Mass storage devices computing device 801 or incorporated into the computing device by coupling to the system bus. Suchmass storage devices readable media - Any number of program modules may be stored on the
hard disk 810, othermass storage devices 804, and system memory 809 (limited by available space), including by way of example, an operating system(s), one or more application programs, other program modules, and 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. For example, a trustedmedia system 200 may be stored onmass storage devices system memory 809. - A
display device 134 may be coupled to thesystem bus 808 via an interface, such as avideo adapter 811. A user can interface withcomputing device 800 via any number ofdifferent input devices 803 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 807 via input/output interfaces 812 that may be coupled to thesystem bus 808, and may be coupled by other interface and bus structures, such as a parallel port, game port, and/or a universal serial bus (USB). -
Computing device 800 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, optical links and/or the like. Thecomputing device 800 may be coupled to one or more networks vianetwork adapter 813 or alternatively by a modem, DSL, ISDN interface and/or the like. -
Communications connection 814 is an example of communications media. Communications media typically embody computer readable instructions, data structures, program modules 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 or device and download a part or all of the software to run the program. 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 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”), or the like. The term electronic apparatus as used herein includes computing devices, consumer electronic devices including any software and/or firmware and the like, and electronic devices or circuits containing 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.
-
FIG. 9 is a block diagram showing aconventional media application 100processing media content 110 operating in aconventional computing environment 900 with an indication of an attack 907 against thesystem 901. Aconventional computing environment 900 may be provided by a personal computer (“PC”) or consumer electronics (“CE”)device 901 that may include operating system (“OS”) 902. Typical operating systems often partition their operation into a user mode 903, and akernel mode 904. User mode 903 andkernel mode 904 may be used by one ormore application programs 100. Anapplication program 100 may be used to processmedia content 110 that may be transferred to thedevice 901 via some mechanism, such as a CD ROM drive, Internet connection or the like. An example ofcontent 110 would be media files that may be used to reproduce audio and video information. - The
computing environment 900 may typically include an operating system (“OS”) 902 that facilitates operation of theapplication 100, in conjunction with the one or more central processing units (“CPU”).Many operating systems 902 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 100 running on the system, the user mode 903 and thekernel 904. Such acomputing environment 900 may be susceptible to various types of attacks 907. Attacks may include not only outsiders seeking to gain access to thedevice 901 and thecontent 110 on it, but also attackers having administrative rights to thedevice 901 or other types of users having whatever access rights granted them. -
FIG. 10 is a block diagram showing atrusted application 200processing media content 110 and utilizing a protected environment or protectedspace 230 that tends to be resistant to attack 1005. 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 1005 and limit unauthorized access to anymedia content 110 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 200 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 200 may be designed to playmedia content 110 that is typically licensed only for use such that themedia content 110 cannot be accessed in an unauthorized manner. Such a trustedapplication 200 may not operate and/or process themedia content 110 unless thecomputing environment 1000 can provide the required level of security, such as by providing a protectedenvironment 230 resistant to attack 1005. - As used herein, the term “process” may 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 1004 or the like may be utilized with the protectedenvironment 230. The use of a digitalrights management system 1004 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 atrusted application 200 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 200 or may be accessed via interfaces that communicate with complex systems otherwise distinct from the trustedapplication 200. -
FIG. 11 is a block diagram showing exemplary components of a trustedapplication 200 that may be included in the protectedenvironment 230. A trustedapplication 200 will typically utilize a protectedenvironment 230 for at least a portion of itssubcomponents Other components 1101 of the trusted application may not utilize a protected environment.Components environment 230. A protectedenvironment 230 may be utilized by a single trustedapplication 200 or, possibly, by a plurality of trusted applications. Alternatively, a trustedapplication 200 may utilize a plurality of protected environments. A trustedapplication 200 may also couple to and/or utilize a digitalrights management system 1004. - In the example shown,
source 400 and sink 480 are shown as part of amedia pipeline 232 operating in the protectedenvironment 230. A protectedenvironment 230 tends to ensure that, once protected and/orencrypted content 1109 has been received and decrypted, the trustedapplication 200 and its components prevent unauthorized access to thecontent 1109. -
Digital rights management 1004 may provide a further avenue of protection for the trustedapplication 200 and thecontent 1109 it processes. Through a system oflicenses 1108,device certificates 1111, and other security mechanisms a content provider is typically able to have confidence thatencrypted content 1109 has been delivered to the properly authorized device and that thecontent 1109 is used as intended. -
FIG. 12 is a block diagram showing a system for downloadingdigital media content 1210 from aservice provider 1207 to an exemplarytrusted application 200 utilizing a protectedenvironment 230. In the example shown the trustedapplication 200 is shown being employed in twoplaces application 200 may be used in aCE device 1201 or aPC 1203.Digital media 1210 may be downloaded via aservice provider 1207 and theInternet 1205 for use by the trustedapplication 200. 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 1210 may be provided in anencrypted form 1109 requiring a system of decryption keys, licenses, certificates and/or the like which may take the form of a digitalrights management system 1004. The data ormedia content 1210 provided to the trusted application may or may not be protected, i.e., encrypted or the like. - In one example, a trusted
application 200 may utilize a digital rights management (“DRM”)system 1004 or the like along with a protectedenvironment 230. In this case, the trustedapplication 200 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 1004. 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 application Ser. Nos. 10/185,527, 10/185,278, and 10/185,511, each of which filed on Jun. 28, 2002, and incorporated herein by reference in its entirety. - Building a
trusted application 200 that may be utilized in theCE device 1201 or thePC 1203 may include making sure thetrusted application 200 which decrypts and processes thecontent 1109 may be “secure” from malicious attacks. Thus, a protectedenvironment 230 typically refers to an environment that may not be easy to attack. - As shown, the trusted
applications 200 operate in aconsumer electronics device 1201, which can be periodically synced to aPC 1203 that also provides a trusted application. ThePC 1203 is in turn coupled 1204 to theinternet 1205. The internet connection allowsdigital media 1210 to be provided by aservice provider 1207. Theservice provider 1207 may transmit licenses andencrypted media 1206 over theinternet 1205 to trustedapplication 200. 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 limit 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 it 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 (
FIG. 9 , 903) processes and kernel mode (FIG. 9 , 904) processes 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, which 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 mechanism. Typically, access to the protected content is granted through the DRM system or other security 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.
- 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, most system and peripheral drivers 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 being created. 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. 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 all drivers running in kernel mode 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”). A DLL or the like 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. 13 is a block diagram showing exemplary attack vectors 1307-1310 that may be exploited by a user or mechanism attempting to access media content or other data 1300 typically present in acomputing environment 900 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 made by users of the system or mechanisms that may include executable code. Themedia application 100 is shown at the center of the diagram and the attack vectors 1307-1310 tend to focus on accessing sensitive data 1300 being stored and/or processed by theapplication 100. - A possible attack vector 1309 may be initiated via a malicious user mode application 1302. 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 and/or processes.
- A possible attack vector 1308 is the loading of malicious code 1303 into a process 1301. 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 1310 is through malicious kernel mode code 1304. Code running in
kernel mode 904 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. 11 , 1109). 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 1307 is by external attacks 1306 to the
system 900. This group represents the set of attacks that typically do not require malicious code to be running on thesystem 900. For instance, attaching a debugger to an application and/or a process on the system, searching amachine 900 for sensitive data, etc. A protected environment may be created to resist these types of attacks. -
FIG. 14 is a flow diagram showing the process 1400 for creating and maintaining a protected environment that tends to limit unauthorized access to media content and other data. The sequence 1400 begins when a computer system is started 1402 and the kernel of the operating system is loaded and a kernel secure flag is set 1404 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 1406. The process includesperiodic checking 1408 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 1402 represents the start-up of a computer system. This typically begins what is commonly known as the boot process and includes loading 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 1404. - 3. After the computer system is considered fully operational a user may start an application such as a trusted media player which may call for a protected environment. This example provides a secure kernel with an application operating in a protected environment, as shown in
block 1406. - 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 1408. 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. 15 is a block diagram showing exemplary kernel components 1520-1530 and other components 1510-1514 utilized in creating an exemplarysecure computing environment 1000. This figure shows a computer system containing several components 1510-1530 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 1404 indicates the process of loading the kernel components into memory forming the operational kernel of the system. The loadedkernel 1550 is shown containing its various components 1551-1562 and a kernelsecure flag 1590 indicating whether or not the kernel is considered secure for a protected environment. The kernelsecure flag 1590 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 1520-1530 are typically “signed” and may include
certificate data 1538 that may enable 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 1538 may be present in each kernel component 1520-1530 and/or eachloaded kernel component certificate data 1538 may be unique to each component. The signature and/orcertificate data 1538 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 1538 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” 1551 will 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 1520 thru kernelcomponent #n 1530, in the computing environment, may be stored on a disk or other storage media, along with arevocation list 1514, akernel dump flag 1512 and adebugger 1510 along with adebug credential 1511.Arrow 1404 indicates the kernel loading process which reads the various components 1514-1530 from their storage location and loads them into system memory forming a functionaloperating system kernel 1550. Thekernel dump flag 1512 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 1551 along with the PE management portion of thekernel 1552, therevocation list 1554 and two of thekernel components blocks kernel 1550 includes a kernelsecure flag 1590 which may be used to indicate whether or not thekernel 1550 is currently considered secure or not. This illustration is provided as an example and is not intended to be limiting or complete. Thekernel loader 1551, the PE management portion of thekernel 1552 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 1000 may be arevocation list 1514 that may be used in conjunction with the signature andcertificate data 1538 associated with thekernel components object 1514 may retain a list of signatures, certificates and/or certificate chains that are no longer considered valid as of the creation date of thelist 1514. Therevocation list 1514 is shown loaded into the kernel asobject 1554. Such lists are maintained because a validly-signed and certified component, forexample components list 1554 to check kernel components 1520-1530 as they are loaded, which may be properly signed and/or have trustedcertificate data 1538, but that may have subsequently been deemed untrustworthy. Such arevocation list 1554 will typically includeversion information 1555 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 1510. Debuggers may not typically be considered a part of the kernel but may be present in acomputing environment 1000. 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 present. Adebugger 1510 may be able access any data in acomputing environment 1000, 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 should be possible to debug within protected environments the code intended to process protected media content. Adebugger 1510 may thus includedebug credentials 1511 which may indicate that the presence of thedebugger 1510 on a system is authorized. Thus detection of the presence of adebugger 1510 along with any accompanyingcredentials 1511 may be a part of the creation and maintenance of protected environments (FIG. 14 , 1400). - The
computing environment 1000 may include akernel dump flag 1512. Thisflag 1512 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 1512 indicates that system memory is available for inspection upon a dump then thekernel 1550 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 system memory being available for inspection, including that containing the exposed media content. Thus akernel dump flag 1512 may be used in the creation and maintenance of a protected environments (FIG. 14 , 1400). -
FIG. 16 andFIG. 17 are flow diagrams showing anexemplary process 1404 for loading kernel components to create an exemplary secure computing environment. Thisprocess 1404 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 is usually defined as determining whether or not a given component is considered secure and trustworthy as illustrated inpart 2 of thisprocess 1404. - 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 1601 shows the start of theloading process 1404 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 1602 shows 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 1604 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 1404 continues atblock 1610. Otherwise it continues at block 1609. 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 1606 shows a check for debug credentials which may indicate that debugging is 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 1608. Otherwise theloading process 1404 continues atblock 1610. - 5.
Block 1610 shows a check of the kernel dump flag. If this flag indicates that a full kernel memory dump or the like is possible then the kernel secure flag may be set to FALSE as shown inblock 1608. Otherwise theloading process 1404 continues atblock 1612. Not shown in the diagram, this check may be performed periodically and the state of the kernel secure flag updated accordingly. - 6.
Block 1612 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 1404 continues atblock 1614. 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 1614 shows the transition topart 2 of this diagram shown inFIG. 17 and continuing atblock 1701. - 8.
Block 1702 shows a check for any additional kernel components to be loaded. If all components have been loaded then theload process 1404 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 1404 continues atblock 1706. - 9.
Block 1706 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 1718. Otherwise theloading process 1404 continues atblock 1708. 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 1718. 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 1708 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 1718. Otherwise theloading process 1404 continues atblock 1710. 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 1718. 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 1710 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 kernel secure flag may be set to FALSE as shown in block 1718. Otherwise theloading process 1404 continues at block 1712. - 12. Block 1712 shows a check of the component's certificate data against a revocation. 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 1718. Otherwise the
loading process 1404 continues atblock 1714. - 13.
Block 1714 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 1718. Otherwise theloading process 1404 continues at block 1716. - 14. Block 1716 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 1718. Otherwise the
loading process 1404 continues atblock 1720. - 15.
Block 1720 shows the loading of the component into the kernel where it is now considered operational. Then theloading process 1404 returns to block 1702 to check for any further components to be loaded. -
FIG. 18 is a block diagram showing asecure computing environment 1000 loading anapplication 100 into an exemplary protectedenvironment 230 to form a trusted application that may be resistant to attack. In this example the kernel may be the same as that described inFIG. 15 , has already been loaded and thesystem 1000 is considered fully operational. At this point, as an example, a user startsmedia application 100. Themedia application 100 may call for the creation of a protectedenvironment 230 for one or more of its processes and/or components to operate within. The protectedenvironment creation process 1406 creates the protectedenvironment 230 and loads theapplication 100 and/or its components as described below. -
FIG. 19 is a flow diagram showing anexemplary process 1406 for creating a protected environment and loading an application into the protected environment. Thisprocess 1406 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 1901 shows the start of the protectedenvironment creation process 1406. This point is usually reached when some application or code calls for a protected environment to operate. - 2.
Block 1902 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 is 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 1406 continues atblock 1906. - 3.
Block 1906 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 1406 may fail as shown inblock 1918. Otherwise theprocess 1406 continues atblock 1908. 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 and the like. 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 1406 may fail as shown inblock 1918. 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 1908 shows a check of the software component's certificate data. If the certificate data is invalid then theprocess 1406 may fail as shown inblock 1918. Otherwise theprocess 1406 continues atblock 1910. If no component certificate data is available the component may be considered insecure and theprocess 1406 may fail as shown inblock 1918. 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 1910 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 1406 may fail as shown inblock 1918. Otherwise theprocess 1406 continues at block 1912. - 12. Block 1912 shows a check of the component's certificate data against the revocation list. If the certificate data is present on the list, indicating that it has been revoked, then the
process 1406 may fail as shown inblock 1918. Otherwise theprocess 1406 continues atblock 1914. - 13.
Block 1914 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 1406 may fail as shown inblock 1918. Otherwise theprocess 1406 continues atblock 1916. - 14.
Block 1916 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 theprocess 1406 may fail as shown inblock 1918. Otherwise theprocess 1406 continues atblock 1920. - 15.
Block 1918 shows the failure of the software component to load followed byblock 1930, the end of the protectedenvironment creation process 1406. - 16.
Block 1920 shows the software component being loaded into the protected environment, where it is considered operational, followed byblock 1930, the end of the protectedenvironment creation process 1406. -
FIG. 20 is a block diagram showing an exemplary trusted application utilizing an exemplary protectedenvironment 230 periodically checking 1408 thesecurity state 1590 of thesecure computing environment 1000. In this example, thecomputing environment 1000 and thekernel 1550 may be the same as those described inFIG. 15 andFIG. 16 . Thekernel 1550 has already been loaded and thecomputer 1000 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 230, hereafter referred to simply as the “protected environment”. - The protected
environment 230 may periodically check with the PE management portion of thekernel 1552 to determine whether thekernel 1550 remains secure over time. This periodic check may be performed because it is possible for a new component to be loaded into thekernel 1550 at any time, including a component that may be considered insecure. If this were to occur, the state of the kernelsecure flag 1590 may change to FALSE and the code operating in the protectedenvironment 230 has the opportunity to respond appropriately. - For example, consider a media player application that was started on a
PC 1000 with asecure kernel 1550 and a portion of the media player application operating in a protectedenvironment 230 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 1040 would note the kernelsecure flag 1590 has changed to FALSE indicating thekernel 1550 may no longer be secure. - Alternatively, the revocation list 1545 may be updated and a kernel component previously considered secure may no longer be considered secure, resulting in the kernel
secure flag 1590 being set to FALSE. At this point the application may receive notification that thesystem 1000 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. 21 is a flow diagram showing anexemplary process 1408 for periodically checking the security state of the secure computing environment. Thisprocess 1408 may be used by a protectedenvironment 230 to determine if the kernel remains secure over time. The protectedenvironment 230 may periodically use thisprocess 1408 to check the current security status of the kernel. The protectedenvironment 230 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 in
FIG. 21 shows a sequence ofcommunications 1408, illustrated with exemplary pseudo code, between the protectedenvironment 230 and the PE management portion of thekernel 1552. 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 230 makes a IsKernelSecure(MinRLVer) call 2120 to the PE management portion of the kernel to query the current security state of the kernel. Included in thiscall 2120 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 2122 to the protected environment and thecommunications sequence 1408 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 2120. If the state of the flag is FALSE then it may provide a Return(SecureFlag=FALSE)indication 2124 to the protected environment and thecommunications sequence 1408 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 2120 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 2126 to the protected environment and thecommunications sequence 1408 is complete. - Alternatively, and not shown in the diagram, an appropriate version revocation list may be located and utilized, all kernel components may be re-validated using this new or updated list, the kernel secure flag updated as appropriate and the
previous step # 3 of thiscommunications sequence 1408 repeated. - 5. Otherwise, the PE management portion of the kernel may provide a Return(SecureFlag=TRUE)
indication 2128 to the protected environment and thecommunications sequence 1408 is complete. -
FIG. 22 is a block diagram showing anexemplary computing environment 800 including a representation of a protectedenvironment 230, a trustedmedia system 200, and other related elements. Exemplarypersonal computer 800 is similar to that shown inFIG. 8 with the addition of kernel components 1520-1530 that may be stored on thedisk 810 along with the other operating system code and the like.Media application 100 and/or a digitalrights management system 1004 may be stored on thedisk 810 along with other application programs. These components 1520-1530 andapplications system memory 809 and considered operational. Shown loaded insystem memory 809 is a trustedapplication 200 utilizing a protectedenvironment 230 andmedia content 110.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/852,520 US20160006714A1 (en) | 2005-04-22 | 2015-09-12 | Protected media pipeline |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US67397905P | 2005-04-22 | 2005-04-22 | |
US11/116,689 US9363481B2 (en) | 2005-04-22 | 2005-04-27 | Protected media pipeline |
US14/852,520 US20160006714A1 (en) | 2005-04-22 | 2015-09-12 | Protected media pipeline |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/116,689 Continuation US9363481B2 (en) | 2005-04-22 | 2005-04-27 | Protected media pipeline |
Publications (1)
Publication Number | Publication Date |
---|---|
US20160006714A1 true US20160006714A1 (en) | 2016-01-07 |
Family
ID=37235970
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/116,689 Active 2032-10-03 US9363481B2 (en) | 2005-04-22 | 2005-04-27 | Protected media pipeline |
US14/852,520 Abandoned US20160006714A1 (en) | 2005-04-22 | 2015-09-12 | Protected media pipeline |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/116,689 Active 2032-10-03 US9363481B2 (en) | 2005-04-22 | 2005-04-27 | Protected media pipeline |
Country Status (1)
Country | Link |
---|---|
US (2) | US9363481B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9436804B2 (en) | 2005-04-22 | 2016-09-06 | Microsoft Technology Licensing, Llc | Establishing a unique session key using a hardware functionality scan |
WO2019137268A1 (en) * | 2018-01-12 | 2019-07-18 | 中国移动通信有限公司研究院 | Data transmission method and device, network apparatus, and storage medium |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7370212B2 (en) | 2003-02-25 | 2008-05-06 | Microsoft Corporation | Issuing a publisher use license off-line in a digital rights management (DRM) system |
US20060242406A1 (en) | 2005-04-22 | 2006-10-26 | Microsoft Corporation | Protected computing environment |
US8074287B2 (en) * | 2004-04-30 | 2011-12-06 | Microsoft Corporation | Renewable and individualizable elements of a protected environment |
US8347078B2 (en) | 2004-10-18 | 2013-01-01 | Microsoft Corporation | Device certificate individualization |
US8336085B2 (en) | 2004-11-15 | 2012-12-18 | Microsoft Corporation | Tuning product policy using observed evidence of customer behavior |
US8438645B2 (en) | 2005-04-27 | 2013-05-07 | Microsoft Corporation | Secure clock with grace periods |
US8725646B2 (en) | 2005-04-15 | 2014-05-13 | Microsoft Corporation | Output protection levels |
US7665143B2 (en) * | 2005-05-16 | 2010-02-16 | Microsoft Corporation | Creating secure process objects |
US20060265758A1 (en) | 2005-05-20 | 2006-11-23 | Microsoft Corporation | Extensible media rights |
KR100827227B1 (en) * | 2005-06-24 | 2008-05-07 | 삼성전자주식회사 | Method and apparatus for managing DRM right object in low-processing power's storage efficiently |
US20080256341A1 (en) * | 2007-04-11 | 2008-10-16 | Microsoft Corporation | Data Processing Pipeline Selection |
US9355253B2 (en) * | 2012-10-18 | 2016-05-31 | Broadcom Corporation | Set top box architecture with application based security definitions |
US9049208B2 (en) * | 2012-10-18 | 2015-06-02 | Broadcom Corporation | Set top box architecture supporting mixed secure and unsecure media pathways |
WO2015099698A1 (en) * | 2013-12-24 | 2015-07-02 | Intel Corporation | Content protection for data as a service (daas) |
US10880316B2 (en) | 2015-12-09 | 2020-12-29 | Check Point Software Technologies Ltd. | Method and system for determining initial execution of an attack |
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 |
US10044691B1 (en) | 2018-02-12 | 2018-08-07 | Symantec Corporation | Decrypting network traffic on a middlebox device using a trusted execution environment |
US11681781B2 (en) * | 2018-02-21 | 2023-06-20 | Comcast Cable Communications, Llc | Systems and methods for content security |
TWI674784B (en) * | 2018-05-16 | 2019-10-11 | 瑞昱半導體股份有限公司 | Multimedia pipeline device |
FR3103987A1 (en) * | 2019-11-29 | 2021-06-04 | Sagemcom Broadband Sas | PROCESS FOR SECURING DATA FLOWS BETWEEN A COMMUNICATION EQUIPMENT AND A REMOTE TERMINAL, EQUIPMENT IMPLEMENTING THE PROCESS |
US11687627B2 (en) | 2021-08-03 | 2023-06-27 | International Business Machines Corporation | Media transit management in cyberspace |
Citations (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3642072A (en) * | 1969-10-08 | 1972-02-15 | Factory Mutual Res Corp | Fixed tire extinguishing system with additive injection apparatus |
US4051276A (en) * | 1974-12-24 | 1977-09-27 | The United States Government As Represented By The Librarian Of Congress | Method of deacidifying paper |
US4090063A (en) * | 1975-12-11 | 1978-05-16 | Societe D'etude Et De Construction D'appareils De Precision (S.E.C.A.P.) | Franking machine comprising an electronic counting system |
US4633363A (en) * | 1985-08-05 | 1986-12-30 | Ameron, Inc. | Conductive flanged fitting |
US4793164A (en) * | 1985-12-02 | 1988-12-27 | Sloop Sr Clifford E | Locking assembly for utility meter boxes |
US4830925A (en) * | 1988-01-04 | 1989-05-16 | Dow Corning Corporation | Cathodic protection method and compositions |
US4880542A (en) * | 1988-05-13 | 1989-11-14 | Combustion Engineering, Inc. | Biofilter for the treatment of sour water |
US4918876A (en) * | 1988-03-26 | 1990-04-24 | Messer Griesheim Gmbh | Device to deburr molded parts subject to low-temperature brittleness |
US5102140A (en) * | 1991-01-24 | 1992-04-07 | Gene Vincent | Automated hole-in-one recording system |
US5163077A (en) * | 1990-07-30 | 1992-11-10 | Gemplus Card International | Device for the counting of chip cards contained in a batch |
US5170252A (en) * | 1990-04-09 | 1992-12-08 | Interactive Media Technologies, Inc. | System and method for interconnecting and mixing multiple audio and video data streams associated with multiple media devices |
US5337410A (en) * | 1990-03-16 | 1994-08-09 | Hewlett-Packard Company | Data stream concentrator providing attribute data storage and graphics pipeline access |
US5577885A (en) * | 1994-06-28 | 1996-11-26 | Abb Patent Gmbh | Condensing turbine having at least two seals for sealing off the turbine casing |
US5814739A (en) * | 1997-05-30 | 1998-09-29 | Micro Motion, Incorporated | Coriolis flowmeter having corrugated flow tube |
US5838078A (en) * | 1996-11-25 | 1998-11-17 | Basic Resources, Inc. | Apparatus and systems that interface to facilities and equipment that provide temporary electric utilities to construction sites |
US5850039A (en) * | 1997-02-27 | 1998-12-15 | Micro Motion | Coriolis flowmeter having axially compliant case ends |
US6000028A (en) * | 1996-01-29 | 1999-12-07 | Digital Equipment Corporation | Means and apparatus for maintaining condition codes in an unevaluated state |
US6006230A (en) * | 1997-01-15 | 1999-12-21 | Sybase, Inc. | Database application development system with improved methods for distributing and executing objects across multiple tiers |
US6047883A (en) * | 1998-09-08 | 2000-04-11 | Westvaco Corporation | Bagless barrier paperboard container with a tamper evident reclosable fitment |
US6091897A (en) * | 1996-01-29 | 2000-07-18 | Digital Equipment Corporation | Fast translation and execution of a computer program on a non-native architecture by use of background translator |
US6209785B1 (en) * | 1998-02-03 | 2001-04-03 | Allied Balfour Limited | Boxes |
US6226789B1 (en) * | 1996-01-29 | 2001-05-01 | Compaq Computer Corporation | Method and apparatus for data flow analysis |
US6263379B1 (en) * | 1992-07-06 | 2001-07-17 | Microsoft Corporation | Method and system for referring to and binding to objects using identifier objects |
US20010038624A1 (en) * | 1999-03-19 | 2001-11-08 | Greenberg Jeffrey Douglas | Internet telephony for ecommerce |
US20020046294A1 (en) * | 2000-08-08 | 2002-04-18 | International Business Machines Corporation | Common application metamodel including C/C++ metamodel |
US20020056012A1 (en) * | 2000-08-08 | 2002-05-09 | International Business Machines Corporation | COBOL metamodel |
US6390366B1 (en) * | 2000-08-31 | 2002-05-21 | First Data Corp. | Currency exchange and merchandise sales system and method |
US20020078010A1 (en) * | 2000-08-08 | 2002-06-20 | International Business Machines Corporation | High level assembler metamodel |
US20020095416A1 (en) * | 2001-01-12 | 2002-07-18 | Keith Schwols | Integration of a database into file management software for protecting, tracking, and retrieving data |
US20020097872A1 (en) * | 2001-01-24 | 2002-07-25 | Maliszewski Richard L. | Method of providing secure content-based user experience enhancement within a content protection architecture |
US6426947B1 (en) * | 1998-10-21 | 2002-07-30 | Kim K. Banker | Apparatus and method for unilateral topology discovery in network management |
US6446155B1 (en) * | 1999-06-30 | 2002-09-03 | Logitech Europe S. A. | Resource bus interface |
US20020161907A1 (en) * | 2001-04-25 | 2002-10-31 | Avery Moon | Adaptive multi-protocol communications system |
US20020194496A1 (en) * | 2001-06-19 | 2002-12-19 | Jonathan Griffin | Multiple trusted computing environments |
US20030001851A1 (en) * | 2001-06-28 | 2003-01-02 | Bushey Robert D. | System and method for combining graphics formats in a digital video pipeline |
US6510550B1 (en) * | 1999-05-12 | 2003-01-21 | Intel Corporation | Method and apparatus for providing intermittent connectivity support in a computer application |
US6525737B1 (en) * | 1998-08-20 | 2003-02-25 | Apple Computer, Inc. | Graphics processor with pipeline state storage and retrieval |
US20030078958A1 (en) * | 2000-09-01 | 2003-04-24 | Pace Charles P. | Method and system for deploying an asset over a multi-tiered network |
US6553602B1 (en) * | 1997-09-13 | 2003-04-29 | Slovensky Plynarensky Priemysel, S.P. | Device for pipeline interior cleaning |
US20030156552A1 (en) * | 1998-04-20 | 2003-08-21 | Kim K. Banker | Apparatus and method for unilateral topology discovery in network management |
US20030167355A1 (en) * | 2001-07-10 | 2003-09-04 | Smith Adam W. | Application program interface for network software platform |
US6621500B1 (en) * | 2000-11-17 | 2003-09-16 | Hewlett-Packard Development Company, L.P. | Systems and methods for rendering graphical data |
US20030177187A1 (en) * | 2000-11-27 | 2003-09-18 | Butterfly.Net. Inc. | Computing grid for massively multi-player online games and other multi-user immersive persistent-state and session-based applications |
US20030226487A1 (en) * | 2002-03-08 | 2003-12-11 | Fmc Technologies, Inc. | Disconnectable mooring system and LNG transfer system and method |
US6674430B1 (en) * | 1998-07-16 | 2004-01-06 | The Research Foundation Of State University Of New York | Apparatus and method for real-time volume processing and universal 3D rendering |
US6717576B1 (en) * | 1998-08-20 | 2004-04-06 | Apple Computer, Inc. | Deferred shading graphics pipeline processor having advanced features |
US20040098354A1 (en) * | 2002-11-15 | 2004-05-20 | Pitney Bowes Incorporated | Method and system for conveying funds and secure information between secure devices |
US20040125103A1 (en) * | 2000-02-25 | 2004-07-01 | Kaufman Arie E. | Apparatus and method for volume processing and rendering |
US6775779B1 (en) * | 1999-04-06 | 2004-08-10 | Microsoft Corporation | Hierarchical trusted code for content protection in computers |
US20040202383A1 (en) * | 2003-04-14 | 2004-10-14 | Larson Bradley R. | Image processor |
US20040232590A1 (en) * | 2003-05-22 | 2004-11-25 | Satoshi Iwami | Method of producing a golf ball |
US20040268407A1 (en) * | 2001-09-20 | 2004-12-30 | Sparrell Carlton J | Centralized resource manager |
US20040268406A1 (en) * | 2001-09-20 | 2004-12-30 | Sparrell Carlton J. | Centralized resource manager with passive sensing system |
US6853385B1 (en) * | 1999-11-09 | 2005-02-08 | Broadcom Corporation | Video, audio and graphics decode, composite and display system |
US20050086632A1 (en) * | 2003-10-01 | 2005-04-21 | Hiroshi Oyama | Interface method for a device driver |
US20050091530A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Providing secure input to a system with a high-assurance execution environment |
US20050091672A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Facilitating presentation functionality through a programming interface media namespace |
US20050097620A1 (en) * | 2003-10-30 | 2005-05-05 | Honeywell International Inc. | Architecture for multi-channel video processing |
US20050188382A1 (en) * | 2004-02-20 | 2005-08-25 | Gururaj Nagendra | Methods and apparatus to optimize managed application program interfaces |
US20050188413A1 (en) * | 2004-02-21 | 2005-08-25 | Microsoft Corporation | System and method for accessing multimedia content |
US20050204205A1 (en) * | 2004-02-26 | 2005-09-15 | Ring Sandra E. | Methodology, system, and computer readable medium for detecting operating system exploitations |
US20050210467A1 (en) * | 2004-03-18 | 2005-09-22 | Zimmer Vincent J | Sharing trusted hardware across multiple operational environments |
US20050212285A1 (en) * | 2004-03-29 | 2005-09-29 | Ope International, L.P. | Dual-walled piping system and methods |
US20060031888A1 (en) * | 2004-04-30 | 2006-02-09 | Sparrell Carlton J | Centralized resource management and un-managed device support |
US20060031557A1 (en) * | 2001-12-21 | 2006-02-09 | Rod Walsh | Method to improve perceived access speed to data network content using a multicast channel and local cache |
US20060047448A1 (en) * | 2004-08-31 | 2006-03-02 | Cecil Kenneth B | Intrusion detection system and method thereof |
US20060053405A1 (en) * | 2002-05-23 | 2006-03-09 | Koninklijke Philips Electronics N.V. | Integrated circuit design method |
US20060075509A1 (en) * | 2003-05-22 | 2006-04-06 | Jakob Kishon | Data storage protection device |
US20060230406A1 (en) * | 2005-03-31 | 2006-10-12 | Microsoft Corporation | Tiered command distribution |
US20060232590A1 (en) * | 2004-01-28 | 2006-10-19 | Reuven Bakalash | Graphics processing and display system employing multiple graphics cores on a silicon chip of monolithic construction |
US7202867B1 (en) * | 2003-01-31 | 2007-04-10 | Microsoft Corporation | Generation of glow effect |
US20070098152A1 (en) * | 1999-10-26 | 2007-05-03 | International Business Machines Corporation | Encryption/decryption of stored data using non-accessible, unique encryption key |
US20070131251A1 (en) * | 2004-03-26 | 2007-06-14 | Putzmeister Aktiengesellschaft | Device and method for cleaning a thick matter delivery pipe |
US7242408B1 (en) * | 2003-01-31 | 2007-07-10 | Microsoft Corporation | Graphical processing of object perimeter information |
US20070226344A1 (en) * | 2004-07-23 | 2007-09-27 | General Instrument Corporation | Centralized Resource Manager With Power Switching System |
US20070256055A1 (en) * | 2004-11-19 | 2007-11-01 | Adrian Herscu | Method for building component-software for execution in a standards-compliant programming environment |
US20080008072A1 (en) * | 2004-12-27 | 2008-01-10 | Tomoaki Ito | Method for Disposing of a Data Recording Means |
US20080094403A1 (en) * | 2003-11-19 | 2008-04-24 | Reuven Bakalash | Computing system capable of parallelizing the operation graphics processing units (GPUs) supported on a CPU/GPU fusion-architecture chip and one or more external graphics cards, employing a software-implemented multi-mode parallel graphics rendering subsystem |
US7389246B1 (en) * | 2000-02-15 | 2008-06-17 | Insweb Corporation | Insurance rating calculation software component architecture |
US20080211817A1 (en) * | 2003-11-19 | 2008-09-04 | Reuven Bakalash | Internet-based application profile database server system for updating graphic application profiles (GAPS) stored within the multi-mode parallel graphics rendering system of client machines running one or more graphic applications |
US20090096798A1 (en) * | 2005-01-25 | 2009-04-16 | Reuven Bakalash | Graphics Processing and Display System Employing Multiple Graphics Cores on a Silicon Chip of Monolithic Construction |
US7627655B2 (en) * | 2004-12-13 | 2009-12-01 | Sap Ag | Increased performance of grid applications |
US20100146576A1 (en) * | 2000-07-15 | 2010-06-10 | Filippo Costanzo | Audio-video data switching and viewing system |
US7890927B2 (en) * | 1999-05-17 | 2011-02-15 | Invensys Systems, Inc. | Apparatus and method for configuring and editing a control system with live data |
Family Cites Families (887)
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 |
GB1561482A (en) | 1976-11-18 | 1980-02-20 | Ibm | Protection of data processing system against unauthorised programmes |
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 |
US4529870A (en) | 1980-03-10 | 1985-07-16 | David Chaum | Cryptographic identification, financial transaction, and credential device |
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 | ||
US4910692A (en) | 1985-10-09 | 1990-03-20 | Outram John D | Adaptive data logger |
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 |
US5050213A (en) | 1986-10-14 | 1991-09-17 | Electronic Publishing Resources, Inc. | Database usage metering and protection system and method |
US5047928A (en) | 1986-10-24 | 1991-09-10 | Wiedemer John D | Billing system for computer software |
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 |
US5117457A (en) | 1986-11-05 | 1992-05-26 | International Business Machines Corp. | Tamper resistant packaging for information protection in electronic circuitry |
US4817094A (en) | 1986-12-31 | 1989-03-28 | International Business Machines Corporation | Fault tolerant switch with selectable operating modes |
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 |
US5005200A (en) | 1988-02-12 | 1991-04-02 | Fischer Addison M | Public key/signature cryptosystem with enhanced digital signature certification |
US4926479A (en) | 1988-04-29 | 1990-05-15 | Massachusetts Institute Of Technology | Multiprover interactive verification system |
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 |
US5001752A (en) | 1989-10-13 | 1991-03-19 | Fischer Addison M | Public/key date-time notary facility |
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 |
US5103476A (en) | 1990-11-07 | 1992-04-07 | Waite David P | Secure system for activating personal computer software at remote locations |
US5222134A (en) | 1990-11-07 | 1993-06-22 | Tau Systems Corporation | 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 |
AU2247092A (en) | 1991-05-08 | 1992-12-21 | Digital Equipment Corporation | License management system |
US5204897A (en) | 1991-06-28 | 1993-04-20 | Digital Equipment Corporation | Management interface for 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 |
WO1993006695A1 (en) | 1991-09-23 | 1993-04-01 | Z-Microsystems | Enhanced security system for computing devices |
US5437040A (en) | 1991-12-20 | 1995-07-25 | Codar Technology | Electronic system with variable threshold power failure signaling |
EP0549104B1 (en) | 1991-12-20 | 1998-05-06 | International Computers Limited | Program attribute control in a computer system |
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 |
US5261002A (en) | 1992-03-13 | 1993-11-09 | Digital Equipment Corporation | Method of issuance and revocation of certificates of authenticity used in public key networks and other systems |
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 |
IL107044A0 (en) | 1992-09-21 | 1993-12-28 | Uniloc Singapore Private Ltd | System for software registration |
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 |
US5444780A (en) | 1993-07-22 | 1995-08-22 | International Business Machines Corporation | Client/server based secure timekeeping system |
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 |
NZ277128A (en) | 1993-12-01 | 1998-04-27 | William Michael Raike | Public key encryption system and mixture generator |
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 |
HU216231B (en) | 1994-01-13 | 1999-05-28 | Certco, Llc | Method for creating encripted communication |
US5442704A (en) | 1994-01-14 | 1995-08-15 | Bull Nh Information Systems Inc. | Secure memory card with programmed controlled security access control |
US5509074A (en) | 1994-01-27 | 1996-04-16 | At&T Corp. | Method of protecting electronically published materials using cryptographic protocols |
US5553143A (en) | 1994-02-04 | 1996-09-03 | Novell, Inc. | Method and apparatus for electronic licensing |
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 |
US5598470A (en) | 1994-04-25 | 1997-01-28 | International Business Machines Corporation | Method and apparatus for enabling trial period use of software products: Method and apparatus for utilizing a decryption block |
US5473692A (en) | 1994-09-07 | 1995-12-05 | Intel Corporation | Roving software license for a hardware agent |
US5724425A (en) | 1994-06-10 | 1998-03-03 | Sun Microsystems, Inc. | Method and apparatus for enhancing software security and distributing software |
US5469506A (en) | 1994-06-27 | 1995-11-21 | Pitney Bowes Inc. | Apparatus for verifying an identification card and identifying a person by means of a biometric characteristic |
US5535276A (en) | 1994-11-09 | 1996-07-09 | Bell Atlantic Network Services, Inc. | Yaksha, an improved system and method for securing communications using split private key asymmetric cryptography |
US5905799A (en) | 1994-07-20 | 1999-05-18 | Bell Atlantic Network Services, Inc. | Programmed computer for identity verification, forming joint signatures and session key agreement in an RSA public cryptosystem |
JP3531978B2 (en) | 1994-08-10 | 2004-05-31 | 富士通株式会社 | Software billing system |
US5557765A (en) | 1994-08-11 | 1996-09-17 | Trusted Information Systems, Inc. | System and method for data recovery |
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 |
DE69535013T2 (en) | 1994-10-27 | 2006-12-28 | Intarsia Software LLC, Las Vegas | Copyright data management 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 |
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 |
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 |
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 |
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 |
MY122982A (en) | 1994-12-22 | 2006-05-31 | Sony Corp | Recording medium and apparatus for protecting copyrighted digital data |
US5586291A (en) | 1994-12-23 | 1996-12-17 | Emc Corporation | Disk controller with volatile and non-volatile cache memories |
DE4447404C2 (en) | 1994-12-23 | 1998-08-20 | Francotyp Postalia Gmbh | Method for entering data into a balance and arrangement for carrying out the method |
US5615268A (en) | 1995-01-17 | 1997-03-25 | Document Authentication Systems, Inc. | System and method for electronic transmission storage and retrieval of authenticated documents |
SE504085C2 (en) | 1995-02-01 | 1996-11-04 | Greg Benson | Methods and systems for managing data objects in accordance with predetermined conditions for users |
US5604801A (en) | 1995-02-03 | 1997-02-18 | International Business Machines Corporation | Public key data communications system under control of a portable security device |
US5943422A (en) | 1996-08-12 | 1999-08-24 | Intertrust Technologies Corp. | Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels |
CN102693378A (en) | 1995-02-13 | 2012-09-26 | 英特特拉斯特技术公司 | Systems and methods for secure transaction management and electronic rights protection |
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 |
US7133846B1 (en) | 1995-02-13 | 2006-11-07 | Intertrust Technologies Corp. | Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management |
US5717926A (en) | 1995-02-28 | 1998-02-10 | International Business Machines Corporation | Efficient forking of a process |
US5742682A (en) | 1995-03-31 | 1998-04-21 | Pitney Bowes Inc. | Method of manufacturing secure boxes in a key management system |
CN1097773C (en) | 1995-05-29 | 2003-01-01 | 西门子公司 | User preogramme establishing mechanism in a computer network |
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 |
JPH0922352A (en) | 1995-07-07 | 1997-01-21 | Mitsubishi Electric Corp | Copyright managing device |
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 |
US5754657A (en) | 1995-08-31 | 1998-05-19 | Trimble Navigation Limited | Authentication of a message source |
JP3688356B2 (en) | 1995-08-31 | 2005-08-24 | 富士通株式会社 | Licensee notification system |
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 |
US5875236A (en) | 1995-11-21 | 1999-02-23 | At&T Corp | Call handling method for credit and fraud management |
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 |
AU1690597A (en) | 1996-01-11 | 1997-08-01 | Mitre Corporation, The | System for controlling access and distribution of digital property |
JP2812312B2 (en) | 1996-01-12 | 1998-10-22 | 三菱電機株式会社 | Encryption system |
JP2991099B2 (en) | 1996-01-26 | 1999-12-20 | 富士ゼロックス株式会社 | Signature device and method |
US5790664A (en) | 1996-02-26 | 1998-08-04 | Network Engineering Software, Inc. | Automated system for management of licensed software |
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 |
US5883958A (en) | 1996-04-01 | 1999-03-16 | Sony Corporation | Method and device for data decryption, a method and device for device identification, a recording medium, a method of disk production, and a method and apparatus for disk recording |
KR100245921B1 (en) | 1996-04-23 | 2000-03-02 | 가나이 쓰도무 | Analog interface liquid crystal display apparatus and analog interface display apparatus |
US5864620A (en) | 1996-04-24 | 1999-01-26 | Cybersource Corporation | Method and system for controlling distribution of software in a multitiered distribution chain |
US5903651A (en) | 1996-05-14 | 1999-05-11 | Valicert, Inc. | Apparatus and method for demonstrating and confirming the status of a digital certificates and other data |
ES1034812Y (en) | 1996-05-16 | 1997-07-16 | Lecha Gomez Francisco | REPAIR AND CLEANING DEVICE FOR COMPACT DISCS OF INFORMATION AND SOUND (CD). |
US6058476A (en) | 1996-05-22 | 2000-05-02 | Matsushita Electric Industrial Co., Inc. | Encryption apparatus for ensuring security in communication between devices |
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 |
US6125352A (en) | 1996-06-28 | 2000-09-26 | Microsoft Corporation | System and method for conducting commerce over a distributed network |
US5809145A (en) | 1996-06-28 | 1998-09-15 | Paradata Systems Inc. | System for distributing digital information |
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 |
KR19990044590A (en) | 1996-07-15 | 1999-06-25 | 니시무로 타이죠 | Device with digital interface, network system and copy protection method using the device |
US5892906A (en) | 1996-07-19 | 1999-04-06 | Chou; Wayne W. | Apparatus and method for preventing theft of computer devices |
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 |
US6272538B1 (en) | 1996-07-30 | 2001-08-07 | Micron Technology, Inc. | Method and system for establishing a security perimeter in computer networks |
JP2879792B2 (en) | 1996-08-01 | 1999-04-05 | 日本電信電話株式会社 | Method and apparatus for splitting and using electronic cash |
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 |
CN1953417B (en) | 1996-09-04 | 2010-12-29 | 英特托拉斯技术公司 | A method to distribute use data from user site to external site |
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 |
US6026293A (en) | 1996-09-05 | 2000-02-15 | Ericsson Inc. | System for preventing electronic memory tampering |
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 |
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 |
US5983350A (en) | 1996-09-18 | 1999-11-09 | Secure Computing Corporation | Secure firewall supporting different levels of authentication based on address or encryption status |
US5931917A (en) | 1996-09-26 | 1999-08-03 | Verifone, Inc. | System, method and article of manufacture for a gateway system architecture with system administration information accessible from a browser |
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 |
US5893920A (en) | 1996-09-30 | 1999-04-13 | International Business Machines Corporation | System and method for cache management in mobile user file systems |
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 |
US5872846A (en) | 1996-11-07 | 1999-02-16 | Mci Communications Corporation | System and method for providing security in data communication systems |
US6367017B1 (en) | 1996-11-07 | 2002-04-02 | Litronic Inc. | Apparatus and method for providing and authentication system |
US5889860A (en) | 1996-11-08 | 1999-03-30 | Sunhawk Corporation, Inc. | Encryption system with transaction coded decryption key |
US6167520A (en) | 1996-11-08 | 2000-12-26 | Finjan Software, Inc. | System and method for protecting a client during runtime from hostile downloadables |
US6212634B1 (en) | 1996-11-15 | 2001-04-03 | Open Market, Inc. | Certifying authorization in computer networks |
EP0974217A2 (en) | 1996-11-25 | 2000-01-26 | Hyperlock Technologies, Inc. | Method of secure server control of local media via a trigger through a network for instant local access of encrypted data on local media |
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 |
GB9626200D0 (en) | 1996-12-18 | 1997-02-05 | Ncr Int Inc | Secure data processing method and system |
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 |
US6105069A (en) | 1997-01-22 | 2000-08-15 | Novell, Inc. | Licensing controller using network directory services |
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 |
US5949877A (en) | 1997-01-30 | 1999-09-07 | Intel Corporation | Content protection for transmission systems |
CA2228185C (en) | 1997-01-31 | 2007-11-06 | Certicom Corp. | Verification protocol |
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 |
US6862602B2 (en) | 1997-03-07 | 2005-03-01 | Apple Computer, Inc. | System and method for rapidly identifying the existence and location of an item in a file |
IL131876A0 (en) | 1997-03-14 | 2001-03-19 | Cryptoworks Inc | Digital product rights management technique |
US6005945A (en) | 1997-03-20 | 1999-12-21 | Psi Systems, Inc. | System and method for dispensing postage based on telephonic or web milli-transactions |
DE19712375A1 (en) | 1997-03-25 | 1998-10-01 | Bosch Gmbh Robert | Watchdog circuit |
US5995625A (en) | 1997-03-24 | 1999-11-30 | Certco, Llc | Electronic cryptographic packing |
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 |
JP3864401B2 (en) | 1997-04-23 | 2006-12-27 | ソニー株式会社 | Authentication system, electronic device, authentication method, and recording medium |
US6441813B1 (en) | 1997-05-16 | 2002-08-27 | Kabushiki Kaisha Toshiba | Computer system, and video decoder used in the system |
US6335972B1 (en) | 1997-05-23 | 2002-01-01 | International Business Machines Corporation | Framework-based cryptographic key recovery system |
US6131162A (en) | 1997-06-05 | 2000-10-10 | Hitachi Ltd. | Digital data authentication method |
US6611358B1 (en) | 1997-06-17 | 2003-08-26 | Lucent Technologies Inc. | Document transcoding system and method for mobile stations and wireless infrastructure employing the same |
US6021438A (en) | 1997-06-18 | 2000-02-01 | Wyatt River Software, Inc. | License management system using daemons and aliasing |
US6236727B1 (en) | 1997-06-24 | 2001-05-22 | International Business Machines Corporation | Apparatus, method and computer program product for protecting copyright data within a computer system |
US6085976A (en) | 1998-05-22 | 2000-07-11 | Sehr; Richard P. | Travel system and methods utilizing multi-application passenger cards |
US6389535B1 (en) | 1997-06-30 | 2002-05-14 | Microsoft Corporation | Cryptographic protection of core data secrets |
US5893086A (en) | 1997-07-11 | 1999-04-06 | International Business Machines Corporation | Parallel file system and method with extensible hashing |
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 |
US6233600B1 (en) | 1997-07-15 | 2001-05-15 | Eroom Technology, Inc. | Method and system for providing a networked collaborative work environment |
US6314408B1 (en) | 1997-07-15 | 2001-11-06 | Eroom Technology, Inc. | Method and apparatus for controlling access to a product |
US6058188A (en) | 1997-07-24 | 2000-05-02 | International Business Machines Corporation | Method and apparatus for interoperable validation of key recovery information in a cryptographic system |
US6188995B1 (en) | 1997-07-28 | 2001-02-13 | Apple Computer, Inc. | Method and apparatus for enforcing software licenses |
DE19733605A1 (en) | 1997-07-29 | 1999-02-04 | Francotyp Postalia Gmbh | Procedure for billing shipping services |
US5951642A (en) | 1997-08-06 | 1999-09-14 | Hypertak, Inc. | System for collecting detailed internet information on the basis of the condition of activities of information viewers viewing information of service providers |
JPH1166732A (en) | 1997-08-13 | 1999-03-09 | Sony Corp | Data transmitter |
JPH1166734A (en) | 1997-08-13 | 1999-03-09 | Sony Corp | Data transmitter and method therefor |
EP0898396B1 (en) | 1997-08-20 | 2006-11-22 | 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 |
US6684198B1 (en) | 1997-09-03 | 2004-01-27 | Sega Enterprises, Ltd. | Program data distribution via open network |
US6199068B1 (en) | 1997-09-11 | 2001-03-06 | Abb Power T&D Company Inc. | Mapping interface for a distributed server to translate between dissimilar file formats |
JP2001517822A (en) | 1997-09-19 | 2001-10-09 | パク,ヒョ,ジョーン | Software usage right management system using independent software registration server |
US6122741A (en) | 1997-09-19 | 2000-09-19 | Patterson; David M. | Distributed method of and system for maintaining application program security |
EP0989497A1 (en) | 1997-09-25 | 2000-03-29 | CANAL+ Société Anonyme | Method and apparatus for protection of recorded digital data |
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 |
US6185678B1 (en) | 1997-10-02 | 2001-02-06 | Trustees Of The University Of Pennsylvania | Secure and reliable bootstrap 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 |
US6549626B1 (en) | 1997-10-20 | 2003-04-15 | Sun Microsystems, Inc. | Method and apparatus for encoding keys |
US6052735A (en) | 1997-10-24 | 2000-04-18 | Microsoft Corporation | Electronic mail object synchronization between a desktop computer and mobile device |
US6112181A (en) | 1997-11-06 | 2000-08-29 | Intertrust Technologies Corporation | Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information |
US7092914B1 (en) | 1997-11-06 | 2006-08-15 | Intertrust Technologies Corporation | Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information |
US6289452B1 (en) | 1997-11-07 | 2001-09-11 | Cybersource Corporation | Method and system for delivering digital products electronically |
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 |
US6141754A (en) | 1997-11-28 | 2000-10-31 | International Business Machines Corporation | Integrated method and system for controlling information access and distribution |
US6490680B1 (en) | 1997-12-04 | 2002-12-03 | Tecsec Incorporated | Access control and authorization system |
US6334189B1 (en) | 1997-12-05 | 2001-12-25 | Jamama, Llc | Use of pseudocode to protect software from unauthorized use |
US6502079B1 (en) | 1997-12-08 | 2002-12-31 | Aprisma Management Technologies, Inc. | Method and system for enforcing floating licenses |
US6128740A (en) | 1997-12-08 | 2000-10-03 | Entrust Technologies Limited | Computer security system and method with on demand publishing of certificate revocation lists |
NZ504971A (en) | 1997-12-10 | 2002-02-01 | Thomson Licensing S | Method for protecting the audio/visual data across the NRSS interface |
US6567793B1 (en) | 1997-12-22 | 2003-05-20 | Christian Bielefeldt Hicks | Remote authorization for unlocking electronic data system and method |
US6023510A (en) | 1997-12-24 | 2000-02-08 | Philips Electronics North America Corporation | Method of secure anonymous query by electronic messages transported via a public network and method of response |
US6151676A (en) | 1997-12-24 | 2000-11-21 | Philips Electronics North America Corporation | Administration and utilization of secret fresh random numbers in a networked environment |
DE69829938T2 (en) | 1997-12-26 | 2006-02-23 | Nippon Telegraph And Telephone Corp. | Method for introducing electronic money for an issuer with electronic balance counters, corresponding device and memory element with stored program for carrying out the method |
US5983238A (en) | 1997-12-26 | 1999-11-09 | Diamond Id | Gemstons identification tracking and recovery system |
JPH11194987A (en) | 1998-01-05 | 1999-07-21 | Toshiba Corp | Communication device |
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 |
US6049878A (en) | 1998-01-20 | 2000-04-11 | Sun Microsystems, Inc. | Efficient, secure multicasting with global knowledge |
US6069647A (en) | 1998-01-29 | 2000-05-30 | Intel Corporation | Conditional access and content security method |
US6243470B1 (en) | 1998-02-04 | 2001-06-05 | International Business Machines Corporation | Method and apparatus for advanced symmetric key block cipher with variable length key and block |
US6385596B1 (en) | 1998-02-06 | 2002-05-07 | Liquid Audio, Inc. | Secure online music distribution system |
US7095852B2 (en) | 1998-02-13 | 2006-08-22 | Tecsec, Inc. | Cryptographic key split binder for use with tagged data elements |
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 |
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 |
JP3743594B2 (en) | 1998-03-11 | 2006-02-08 | 株式会社モリタ製作所 | CT imaging device |
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 |
US6189146B1 (en) | 1998-03-18 | 2001-02-13 | Microsoft Corporation | System and method for software licensing |
US6615350B1 (en) | 1998-03-23 | 2003-09-02 | Novell, Inc. | Module authentication and binding library extensions |
US6532451B1 (en) | 1998-03-23 | 2003-03-11 | Novell, Inc. | Nested strong loader apparatus and method |
US6701433B1 (en) | 1998-03-23 | 2004-03-02 | Novell, Inc. | Method and apparatus for escrowing properties used for accessing executable modules |
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 |
US6738905B1 (en) | 1998-04-15 | 2004-05-18 | Digital Video Express, L.P. | Conditional access via secure logging with simplified key management |
US6374357B1 (en) | 1998-04-16 | 2002-04-16 | Microsoft Corporation | System and method for regulating a network service provider's ability to host distributed applications in a distributed processing environment |
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 |
US6389541B1 (en) | 1998-05-15 | 2002-05-14 | First Union National Bank | Regulating access to digital content |
IL124571A0 (en) | 1998-05-21 | 1998-12-06 | Miki Mullor | Method of restricting software operation within a licensed limitation |
US6243692B1 (en) | 1998-05-22 | 2001-06-05 | Preview Software | Secure electronic software packaging using setup-external unlocking module |
EP1212505A4 (en) | 1998-05-26 | 2004-09-22 | Joseph Michael Kral | Window and door closing mechanism |
US6397259B1 (en) | 1998-05-29 | 2002-05-28 | Palm, Inc. | Method, system and apparatus for packet minimized communications |
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 |
US6438690B1 (en) | 1998-06-04 | 2002-08-20 | International Business Machines Corp. | Vault controller based registration application serving web based registration authorities and end users for conducting electronic commerce in secure end-to-end distributed information system |
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 |
US6438235B2 (en) | 1998-08-05 | 2002-08-20 | Hewlett-Packard Company | Media content protection utilizing public key cryptography |
US6959288B1 (en) | 1998-08-13 | 2005-10-25 | International Business Machines Corporation | Digital content preparation system |
US6983371B1 (en) | 1998-10-22 | 2006-01-03 | International Business Machines Corporation | Super-distribution of protected digital content |
US6226618B1 (en) | 1998-08-13 | 2001-05-01 | International Business Machines Corporation | Electronic content delivery system |
US6493758B1 (en) | 1998-09-08 | 2002-12-10 | Microsoft Corporation | Offline viewing of internet content with a mobile device |
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 |
DE69900178T2 (en) | 1998-10-16 | 2001-10-31 | Matsushita Electric Industrial Co., Ltd. | System for protecting digital content |
US6324544B1 (en) | 1998-10-21 | 2001-11-27 | Microsoft Corporation | File object synchronization between a desktop computer and a mobile device |
WO2000025466A1 (en) | 1998-10-23 | 2000-05-04 | L-3 Communications Corporation | Apparatus and methods for managing key material in heterogeneous cryptographic assets |
US7194092B1 (en) | 1998-10-26 | 2007-03-20 | Microsoft Corporation | Key-based secure storage |
US6327652B1 (en) * | 1998-10-26 | 2001-12-04 | Microsoft Corporation | Loading and identifying a digital rights management operating system |
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 |
US6330670B1 (en) | 1998-10-26 | 2001-12-11 | Microsoft Corporation | Digital rights management operating system |
CA2347011A1 (en) | 1998-10-28 | 2000-05-04 | Ellwood Mcgrogan | Apparatus and methods for cryptographic synchronization in packet based communications |
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 |
US6321335B1 (en) | 1998-10-30 | 2001-11-20 | Acqis Technology, Inc. | Password protected modular computer method and device |
US7017188B1 (en) | 1998-11-16 | 2006-03-21 | Softricity, Inc. | Method and apparatus for secure content delivery over broadband access networks |
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 |
US6343280B2 (en) | 1998-12-15 | 2002-01-29 | Jonathan Clark | Distributed execution software license server |
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 |
WO2000044119A1 (en) | 1999-01-26 | 2000-07-27 | Infolio, Inc. | Universal mobile id system and method for digital rights management |
JP2002536727A (en) | 1999-01-29 | 2002-10-29 | インフィネオン テクノロジース アクチエンゲゼルシャフト | 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 |
JP4603167B2 (en) | 1999-02-15 | 2010-12-22 | ヒューレット・パッカード・カンパニー | Communication between modules of computing devices |
GB2346989A (en) | 1999-02-19 | 2000-08-23 | Ibm | Software licence management system uses clustered licence servers |
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 |
EP1159662B2 (en) | 1999-03-05 | 2010-10-06 | Hewlett-Packard Company | Smartcard user interface for trusted computing platform |
WO2000054127A1 (en) | 1999-03-08 | 2000-09-14 | Spyrus, Inc. | Method and system for enforcing access to a computing resource using a licensing certificate |
US6393427B1 (en) | 1999-03-22 | 2002-05-21 | Nec Usa, Inc. | Personalized navigation trees |
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 |
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 |
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 |
US6816596B1 (en) | 2000-01-14 | 2004-11-09 | Microsoft Corporation | Encrypting a digital object based on a key ID selected therefor |
US20020019814A1 (en) | 2001-03-01 | 2002-02-14 | Krishnamurthy Ganesan | Specifying rights in a digital rights license according to events |
US7136838B1 (en) | 1999-03-27 | 2006-11-14 | Microsoft Corporation | Digital license and method for obtaining/providing a digital license |
US6973444B1 (en) | 1999-03-27 | 2005-12-06 | Microsoft Corporation | Method for interdependently validating a digital content package and a corresponding digital license |
US7383205B1 (en) | 1999-03-27 | 2008-06-03 | Microsoft Corporation | Structure of a digital content package |
US20020012432A1 (en) | 1999-03-27 | 2002-01-31 | Microsoft Corporation | Secure video card in computing device having digital rights management (DRM) system |
US7103574B1 (en) | 1999-03-27 | 2006-09-05 | Microsoft Corporation | Enforcement architecture and method for digital rights management |
US7051005B1 (en) | 1999-03-27 | 2006-05-23 | Microsoft Corporation | Method for obtaining a black box for performing decryption and encryption functions in a digital rights management (DRM) system |
US7024393B1 (en) | 1999-03-27 | 2006-04-04 | Microsoft Corporation | Structural of digital rights management (DRM) system |
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 |
US6851051B1 (en) | 1999-04-12 | 2005-02-01 | International Business Machines Corporation | System and method for liveness authentication using an augmented challenge/response scheme |
US6557105B1 (en) | 1999-04-14 | 2003-04-29 | Tut Systems, Inc. | Apparatus and method for cryptographic-based license management |
EP1045388A1 (en) | 1999-04-16 | 2000-10-18 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for preventing illegal usage of multimedia content |
US6345294B1 (en) | 1999-04-19 | 2002-02-05 | Cisco Technology, Inc. | Methods and apparatus for remote configuration of an appliance on a network |
US6389537B1 (en) | 1999-04-23 | 2002-05-14 | Intel Corporation | Platform and method for assuring integrity of trusted agent communications |
SE514105C2 (en) | 1999-05-07 | 2001-01-08 | Ericsson Telefon Ab L M | Secure distribution and protection of encryption key information |
US6959291B1 (en) | 1999-05-19 | 2005-10-25 | International Business Machines Corporation | Management of a concurrent use license in a logically-partitioned computer |
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 |
US6721713B1 (en) | 1999-05-27 | 2004-04-13 | Andersen Consulting Llp | Business alliance identification in a web architecture framework |
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 |
US6704873B1 (en) | 1999-07-30 | 2004-03-09 | Accenture Llp | Secure gateway interconnection in an e-commerce based environment |
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 |
US6463445B1 (en) | 1999-08-27 | 2002-10-08 | Sony Electronics Inc. | Multimedia information retrieval system and method including format conversion system and method |
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 |
US7123608B1 (en) | 1999-09-10 | 2006-10-17 | Array Telecom Corporation | Method, system, and computer program product for managing database servers and service |
US6393434B1 (en) | 1999-09-14 | 2002-05-21 | International Business Machines Corporation | Method and system for synchronizing data using fine-grained synchronization plans |
EP1085396A1 (en) | 1999-09-17 | 2001-03-21 | Hewlett-Packard Company | Operation of trusted state in computing platform |
US6781956B1 (en) | 1999-09-17 | 2004-08-24 | Cisco Technology, Inc. | System and method for prioritizing packetized data from a distributed control environment for transmission through a high bandwidth link |
US6671737B1 (en) | 1999-09-24 | 2003-12-30 | Xerox Corporation | Decentralized network system |
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 |
US6981045B1 (en) | 1999-10-01 | 2005-12-27 | Vidiator Enterprises Inc. | System for redirecting requests for data to servers having sufficient processing power to transcast streams of data in a desired format |
US7020704B1 (en) | 1999-10-05 | 2006-03-28 | Lipscomb Kenneth O | System and method for distributing media assets to user devices via a portal synchronized by said user devices |
US6983050B1 (en) | 1999-10-20 | 2006-01-03 | Microsoft Corporation | Methods and apparatus for protecting information content |
JP2001118332A (en) | 1999-10-20 | 2001-04-27 | Sony Corp | System and method for data distribution, data processor, device for controlling data use and machine readable recording medium with data for distribution recorded thereon |
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 |
EP1141873A4 (en) | 1999-11-05 | 2002-02-06 | Quark Media House Sarl | Methods and processes for pricing calculation using a computer system |
US6844871B1 (en) | 1999-11-05 | 2005-01-18 | Microsoft Corporation | Method and apparatus for computer input using six degrees of freedom |
US6826690B1 (en) | 1999-11-08 | 2004-11-30 | International Business Machines Corporation | Using device certificates for automated authentication of communicating devices |
US6449719B1 (en) | 1999-11-09 | 2002-09-10 | Widevine Technologies, Inc. | Process and streaming server for encrypting a data stream |
US8271336B2 (en) | 1999-11-22 | 2012-09-18 | Accenture Global Services Gmbh | Increased visibility during order management in a network-based supply chain environment |
CN1277364C (en) | 1999-12-02 | 2006-09-27 | 三洋电机株式会社 | Memory card and data distribution system using it |
GB2357229B (en) | 1999-12-08 | 2004-03-17 | Hewlett Packard Co | Security protocol |
US7213005B2 (en) | 1999-12-09 | 2007-05-01 | International Business Machines Corporation | Digital content distribution using web broadcasting services |
US7720750B2 (en) | 1999-12-15 | 2010-05-18 | Equifax, Inc. | Systems and methods for providing consumers anonymous pre-approved offers from a consumer-selected group of merchants |
US7047411B1 (en) | 1999-12-17 | 2006-05-16 | Microsoft Corporation | Server for an electronic distribution system and method of operating same |
JP2001175605A (en) | 1999-12-17 | 2001-06-29 | Sony Corp | Data processor |
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 |
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 |
US6571216B1 (en) | 2000-01-14 | 2003-05-27 | International Business Machines Corporation | Differential rewards with dynamic user profiling |
US6791157B1 (en) | 2000-01-18 | 2004-09-14 | Advanced Micro Devices, Inc. | Integrated circuit package incorporating programmable elements |
US7177841B2 (en) | 2000-01-28 | 2007-02-13 | Canon Kabushiki Kaisha | Digital contents distribution system, digital contents distribution method, roaming server, information processor, and information processing method |
US6542546B1 (en) | 2000-02-02 | 2003-04-01 | Mitsubishi Electric Research Laboratories, Inc. | Adaptable compressed bitstream transcoder |
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 |
US7426750B2 (en) | 2000-02-18 | 2008-09-16 | Verimatrix, Inc. | Network-based content distribution system |
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 with individual authenticating function by biometric information |
JP2001290650A (en) | 2000-02-28 | 2001-10-19 | Hewlett Packard Co <Hp> | Device and method for automatically installing application program |
US7421480B2 (en) | 2000-02-28 | 2008-09-02 | O2 Micro International Limited | Personal computing environment using mozilla |
US20010034711A1 (en) | 2000-03-01 | 2001-10-25 | Tashenberg Bradley A. | Distributed operating network and method for using and implementing same |
JP2001251616A (en) | 2000-03-02 | 2001-09-14 | Media Glue Corp | Method and device for converting multiplexed sound/ moving picture compressing-coded signal, and medium recorded with conversion program |
JP2001256318A (en) | 2000-03-14 | 2001-09-21 | Sony Corp | System and method for contents transaction and program providing medium |
US7080039B1 (en) | 2000-03-23 | 2006-07-18 | David J Marsh | Associating content with households using smart cards |
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 |
AU2001253273A1 (en) | 2000-04-07 | 2001-10-23 | 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 |
US6694000B2 (en) | 2000-04-11 | 2004-02-17 | Telecommunication Systems, Inc. | Prepaid real-time web based reporting |
US6386894B2 (en) | 2000-04-28 | 2002-05-14 | Texas Instruments Incorporated | Versatile interconnection scheme for beverage quality and control sensors |
JP2001312325A (en) | 2000-04-28 | 2001-11-09 | Hitachi Ltd | Method and system for issuing program license key |
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 |
AUPQ736200A0 (en) | 2000-05-08 | 2000-06-01 | Canon Kabushiki Kaisha | Information appliance cost subsidy |
US6785713B1 (en) | 2000-05-08 | 2004-08-31 | Citrix Systems, Inc. | Method and apparatus for communicating among a network of servers utilizing a transport mechanism |
US6922724B1 (en) | 2000-05-08 | 2005-07-26 | Citrix Systems, Inc. | Method and apparatus for managing server load |
US6954728B1 (en) | 2000-05-15 | 2005-10-11 | Avatizing, Llc | System and method for consumer-selected advertising and branding in interactive media |
US6993044B2 (en) | 2000-05-19 | 2006-01-31 | Scientific-Atlanta, Inc. | Computerized method for allocating access across a shared communication 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 |
US7028180B1 (en) | 2000-06-09 | 2006-04-11 | Northrop Grumman Corporation | System and method for usage of a role certificate in encryption and as a seal, digital stamp, and signature |
US7213266B1 (en) * | 2000-06-09 | 2007-05-01 | Intertrust Technologies Corp. | Systems and methods for managing and protecting electronic content and applications |
US6961858B2 (en) | 2000-06-16 | 2005-11-01 | Entriq, Inc. | Method and system to secure content for distribution via a network |
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 |
US6976162B1 (en) | 2000-06-28 | 2005-12-13 | Intel Corporation | Platform and method for establishing provable identities while maintaining privacy |
US7111058B1 (en) | 2000-06-28 | 2006-09-19 | Cisco Technology, Inc. | Server and method for transmitting streaming media to client through a congested network |
WO2002007038A2 (en) | 2000-06-29 | 2002-01-24 | Morrell Calvin Jr | Systems and methods for producing reward advertising and distributing by click-through incentives |
WO2002003604A2 (en) | 2000-06-29 | 2002-01-10 | 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 |
US6976163B1 (en) | 2000-07-12 | 2005-12-13 | International Business Machines Corporation | Methods, systems and computer program products for rule based firmware updates utilizing certificate extensions and certificates for use therein |
US20020104096A1 (en) | 2000-07-19 | 2002-08-01 | Cramer Allen Brett | System and methods for providing web-based multimedia presentations |
JP4366845B2 (en) | 2000-07-24 | 2009-11-18 | ソニー株式会社 | Data processing apparatus, data processing method, and program providing medium |
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 |
GB0020441D0 (en) | 2000-08-18 | 2000-10-04 | Hewlett Packard Co | Performance of a service on a computing platform |
GB0020488D0 (en) | 2000-08-18 | 2000-10-11 | Hewlett Packard Co | Trusted status rollback |
ATE272858T1 (en) | 2000-08-24 | 2004-08-15 | Wibu Systems Ag | METHOD FOR PROTECTING COMPUTER SOFTWARE AND/OR COMPUTER READABLE DATA AND PROTECTIVE DEVICE |
US7010808B1 (en) | 2000-08-25 | 2006-03-07 | Microsoft Corporation | Binding digital content to a portable storage device or the like in a digital rights management (DRM) system |
US6931545B1 (en) | 2000-08-28 | 2005-08-16 | Contentguard Holdings, Inc. | Systems and methods for integrity certification and verification of content consumption environments |
US7043633B1 (en) | 2000-08-28 | 2006-05-09 | Verizon Corporation Services Group Inc. | Method and apparatus for providing adaptive self-synchronized dynamic address translation |
JP4581200B2 (en) | 2000-08-31 | 2010-11-17 | ソニー株式会社 | Personal authentication system, personal authentication method, information processing apparatus, and program providing medium |
JP4556308B2 (en) | 2000-08-31 | 2010-10-06 | ソニー株式会社 | Content distribution system, content distribution method, information processing apparatus, and program providing medium |
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 |
US7114168B1 (en) * | 2000-09-29 | 2006-09-26 | Intel Corporation | Method and apparatus for determining scope of content domain |
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 |
US20060282319A1 (en) | 2000-10-12 | 2006-12-14 | Maggio Frank S | Method and system for substituting media content |
WO2002031742A2 (en) | 2000-10-12 | 2002-04-18 | Maggio Frank S | Method and system for communicating advertising and entertainment content and gathering consumer information |
US7058806B2 (en) | 2000-10-17 | 2006-06-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for secure leveled access control |
EP1329051A2 (en) | 2000-10-18 | 2003-07-23 | Koninklijke Philips Electronics N.V. | 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 |
US6789193B1 (en) | 2000-10-27 | 2004-09-07 | Pitney Bowes Inc. | Method and system for authenticating a network user |
US7343324B2 (en) | 2000-11-03 | 2008-03-11 | Contentguard Holdings Inc. | Method, system, and computer readable medium for automatically publishing content |
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 |
CA2430062A1 (en) | 2000-12-08 | 2002-07-18 | Matsushita Electric Industrial Co., Ltd. | Distribution device, terminal device, and program and method for use therein |
US20020116707A1 (en) | 2000-12-11 | 2002-08-22 | Morris Richard M. | Streaming media client system and method |
JP2002182562A (en) | 2000-12-14 | 2002-06-26 | Hitachi Ltd | Date and time information setting device |
US6636270B2 (en) | 2000-12-14 | 2003-10-21 | Microsoft Corporation | Clock slaving methods and arrangements |
US6898286B2 (en) | 2000-12-19 | 2005-05-24 | International Business Machines Corporation | Method and system verifying product licenses using hardware and product identifications |
US6934840B2 (en) | 2000-12-21 | 2005-08-23 | International Business Machines Corporation | Composite keystore facility apparatus and method therefor |
US6407680B1 (en) | 2000-12-22 | 2002-06-18 | Generic Media, Inc. | Distributed on-demand media transcoding system and method |
US7242324B2 (en) | 2000-12-22 | 2007-07-10 | Sony Corporation | Distributed on-demand media transcoding system and method |
JP2002261748A (en) | 2000-12-28 | 2002-09-13 | Sony Corp | Data transmitter, method therefor, data recorder and method thereof |
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 |
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 |
KR100609263B1 (en) | 2001-01-17 | 2006-08-04 | 콘텐트가드 홀딩즈 인코포레이티드 | System and method for digital rights management using a standard rendering engine |
US7350228B2 (en) | 2001-01-23 | 2008-03-25 | Portauthority Technologies Inc. | Method for securing digital content |
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 |
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 |
JP2002229861A (en) | 2001-02-07 | 2002-08-16 | Hitachi Ltd | Recording device with copyright protecting function |
AU1547402A (en) | 2001-02-09 | 2002-08-15 | Sony Corporation | Information processing method/apparatus and program |
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 |
JP4191902B2 (en) | 2001-02-28 | 2008-12-03 | 株式会社日立製作所 | Content distribution device |
US7134144B2 (en) | 2001-03-01 | 2006-11-07 | Microsoft Corporation | Detecting and responding to a clock rollback in a digital rights management system on a computing device |
US20030028643A1 (en) | 2001-03-13 | 2003-02-06 | Dilithium Networks, Inc. | Method and apparatus for transcoding video and speech signals |
US7089309B2 (en) | 2001-03-21 | 2006-08-08 | Theplatform For Media, Inc. | Method and system for managing and distributing digital media |
GB2373605B (en) | 2001-03-23 | 2005-04-27 | Ibm | A method of metering use of digitally encoded products |
US7065507B2 (en) | 2001-03-26 | 2006-06-20 | Microsoft Corporation | Supervised license acquisition in a digital rights management system on a computing device |
US7987510B2 (en) | 2001-03-28 | 2011-07-26 | Rovi Solutions Corporation | Self-protecting digital content |
US7216368B2 (en) | 2001-03-29 | 2007-05-08 | Sony Corporation | Information processing apparatus for watermarking digital content |
WO2002080448A1 (en) | 2001-03-29 | 2002-10-10 | Sony Corporation | Information processing apparatus |
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 |
US20030037237A1 (en) | 2001-04-09 | 2003-02-20 | Jean-Paul Abgrall | Systems and methods for computer device authentication |
US7039643B2 (en) | 2001-04-10 | 2006-05-02 | Adobe Systems Incorporated | System, method and apparatus for converting and integrating media files |
WO2002084990A2 (en) * | 2001-04-11 | 2002-10-24 | 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 |
US7054335B2 (en) | 2001-05-04 | 2006-05-30 | Hewlett-Packard Development Company, L.P. | Method and system for midstream transcoding of secure scalable packets in response to downstream requirements |
WO2002091146A2 (en) | 2001-05-09 | 2002-11-14 | Ecd Systems, Inc. | Systems and methods for the prevention of unauthorized use and manipulation of digital content |
US6757517B2 (en) | 2001-05-10 | 2004-06-29 | Chin-Chi Chang | Apparatus and method for coordinated music playback in wireless ad-hoc networks |
US7359882B2 (en) | 2001-05-11 | 2008-04-15 | Bea Systems, Inc. | Distributed run-time licensing |
US7233668B2 (en) | 2001-05-23 | 2007-06-19 | Sharestream, Llc | System and method for a commercial multimedia rental and distribution system |
US7000100B2 (en) | 2001-05-31 | 2006-02-14 | Hewlett-Packard Development Company, L.P. | Application-level software watchdog timer |
US8275716B2 (en) | 2001-05-31 | 2012-09-25 | Contentguard Holdings, Inc. | Method and system for subscription digital rights management |
US8099364B2 (en) | 2001-05-31 | 2012-01-17 | Contentguard Holdings, Inc. | Digital rights management of content when content is a future live event |
US7143354B2 (en) | 2001-06-04 | 2006-11-28 | Sharp Laboratories Of America, Inc. | Summarization of baseball video content |
WO2002101490A2 (en) | 2001-06-07 | 2002-12-19 | Contentguard Holdings, Inc. | Cryptographic trust zones in digital rights management |
US7395245B2 (en) | 2001-06-07 | 2008-07-01 | Matsushita Electric Industrial Co., Ltd. | Content usage management system and server used in the system |
JP2003058660A (en) | 2001-06-07 | 2003-02-28 | Matsushita Electric Ind Co Ltd | Contents use management system and server used for the same |
US6824051B2 (en) | 2001-06-07 | 2004-11-30 | Contentguard Holdings, Inc. | Protected content distribution system |
US7103663B2 (en) | 2001-06-11 | 2006-09-05 | Matsushita Electric Industrial Co., Ltd. | License management server, license management system and usage restriction method |
US20020193101A1 (en) | 2001-06-15 | 2002-12-19 | Mcalinden Paul | Configuring a portable device |
FI114416B (en) | 2001-06-15 | 2004-10-15 | Nokia Corp | Method for securing the electronic device, the backup system and the 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 |
US20030014496A1 (en) | 2001-06-27 | 2003-01-16 | Spencer Donald J. | Closed-loop delivery system |
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 |
US20030005335A1 (en) | 2001-06-28 | 2003-01-02 | Hidekazu Watanabe | Protecting secured codes and circuits in an integrated circuit |
US6976010B2 (en) | 2001-06-28 | 2005-12-13 | International Business Machines Corporation | Method for syndicating online content |
US7203620B2 (en) | 2001-07-03 | 2007-04-10 | Sharp Laboratories Of America, Inc. | Summarization of video content |
US7421411B2 (en) | 2001-07-06 | 2008-09-02 | Nokia Corporation | Digital rights management in a mobile communications environment |
US7224805B2 (en) | 2001-07-06 | 2007-05-29 | Nokia Corporation | Consumption of content |
US7237121B2 (en) | 2001-09-17 | 2007-06-26 | Texas Instruments Incorporated | Secure bootloader for securing digital devices |
US20030009681A1 (en) | 2001-07-09 | 2003-01-09 | Shunji Harada | Digital work protection system, recording medium apparatus, transmission apparatus, and playback apparatus |
DE10134541A1 (en) | 2001-07-16 | 2003-02-13 | Siemens Ag | Computer system and method for ordering a product, in particular a food or beverage |
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 |
US20030021416A1 (en) | 2001-07-26 | 2003-01-30 | International Business Machines Corporation | Encrypting a messaging session with a symmetric key |
US6959348B1 (en) | 2001-07-30 | 2005-10-25 | Vixs Systems, Inc. | Method and system for accessing data |
US6664948B2 (en) | 2001-07-30 | 2003-12-16 | Microsoft Corporation | Tracking pointing device motion using a single buffer for cross and auto correlation determination |
US20030027549A1 (en) | 2001-07-30 | 2003-02-06 | Msafe Inc. | Prepaid communication system and method |
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 |
US7203753B2 (en) | 2001-07-31 | 2007-04-10 | Sun Microsystems, Inc. | Propagating and updating trust relationships in distributed peer-to-peer networks |
EP1428098B1 (en) | 2001-08-01 | 2006-12-20 | Matsushita Electric Industrial Co., Ltd. | Device and method for managing content usage right |
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 |
US7484105B2 (en) | 2001-08-16 | 2009-01-27 | Lenovo (Singapore) Ptd. Ltd. | Flash update using a trusted platform module |
US6993648B2 (en) | 2001-08-16 | 2006-01-31 | Lenovo (Singapore) Pte. Ltd. | Proving BIOS trust in a TCPA compliant system |
US7039037B2 (en) | 2001-08-20 | 2006-05-02 | Wang Jiwei R | Method and apparatus for providing service selection, redirection and managing of subscriber access to multiple WAP (Wireless Application Protocol) gateways simultaneously |
US20030041008A1 (en) | 2001-08-22 | 2003-02-27 | William Grey | System and method for facilitating transactions among disparate entities |
US20030040960A1 (en) | 2001-08-22 | 2003-02-27 | Eckmann Eduardo Enrique | Method for promoting online advertising |
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 |
US7050936B2 (en) | 2001-09-06 | 2006-05-23 | 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 |
US20040255000A1 (en) | 2001-10-03 | 2004-12-16 | Simionescu Dan C. | Remotely controlled failsafe boot mechanism and remote 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 |
US20030069854A1 (en) | 2001-10-09 | 2003-04-10 | Hsu Michael M. | Expiring content on playback devices |
EP1436984B2 (en) | 2001-10-18 | 2018-05-30 | Rovi Solutions Corporation | Systems and methods for providing digital rights management compatibility |
US6708176B2 (en) | 2001-10-19 | 2004-03-16 | Bank Of America Corporation | System and method for interactive advertising |
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 |
US6925557B2 (en) | 2001-10-26 | 2005-08-02 | International Business Machines Corporation | Method and system for a clean system booting process |
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 |
US20030084104A1 (en) | 2001-10-31 | 2003-05-01 | Krimo Salem | System and method for remote storage and retrieval of data |
JP2003140761A (en) | 2001-10-31 | 2003-05-16 | Nec Infrontia Corp | Information terminal and settlement terminal |
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 |
US6646244B2 (en) | 2001-12-19 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Optical imaging device with speed variable illumination |
US20030115458A1 (en) | 2001-12-19 | 2003-06-19 | Dongho Song | Invisable file technology for recovering or protecting a computer file system |
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. |
US20030126086A1 (en) | 2001-12-31 | 2003-07-03 | General Instrument Corporation | Methods and apparatus for digital rights management |
US20030126608A1 (en) | 2001-12-31 | 2003-07-03 | General Instrument Corporation | Methods and systems for providing streaming media content in existing video delivery systems |
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 |
US7013384B2 (en) | 2002-01-15 | 2006-03-14 | Lenovo (Singapore) Pte. Ltd. | Computer system with selectively available immutable boot block code |
US8271400B2 (en) | 2002-01-15 | 2012-09-18 | Hewlett-Packard Development Company, L.P. | Hardware pay-per-use |
US7120873B2 (en) | 2002-01-28 | 2006-10-10 | Sharp Laboratories Of America, Inc. | Summarization of sumo video content |
US20040010717A1 (en) | 2002-01-29 | 2004-01-15 | Intertainer Asia Pte Ltd. | Apparatus and method for preventing digital media piracy |
KR100958229B1 (en) | 2002-02-01 | 2010-05-17 | 파나소닉 주식회사 | License information exchange system |
JP4197608B2 (en) | 2002-02-01 | 2008-12-17 | パナソニック株式会社 | Value 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 |
US7747531B2 (en) | 2002-02-05 | 2010-06-29 | Pace Anti-Piracy | Method and system for delivery of secure software license information |
US8606704B2 (en) | 2002-02-08 | 2013-12-10 | Apple Inc. | Customer billing in a communications network |
US7298717B2 (en) | 2002-02-15 | 2007-11-20 | Texas Instruments Incorporated | Method and apparatus for providing transmit diversity with adaptive basis |
US20030200336A1 (en) * | 2002-02-15 | 2003-10-23 | Suparna Pal | Apparatus and method for the delivery of multiple sources of media content |
US7155475B2 (en) | 2002-02-15 | 2006-12-26 | Sony Corporation | System, method, and computer program product for media publishing request processing |
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 |
AU2003213056A1 (en) | 2002-02-22 | 2003-09-09 | 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 |
US6853380B2 (en) | 2002-03-04 | 2005-02-08 | Hewlett-Packard Development Company, L.P. | Graphical display system and method |
DE60313442T2 (en) | 2002-03-07 | 2008-01-03 | Nitto Denko Corp., Ibaraki | ELECTROLYTE FILM AND FESTPOLYMER FUEL CELL THEREWITH |
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 |
US7200680B2 (en) | 2002-03-11 | 2007-04-03 | Ericsson Inc. | Method, apparatus and system for providing multimedia messages to incompatible terminals |
US7127579B2 (en) | 2002-03-26 | 2006-10-24 | Intel Corporation | Hardened extended firmware interface framework |
US7080043B2 (en) | 2002-03-26 | 2006-07-18 | Microsoft Corporation | Content revocation and license modification in a digital rights management (DRM) system on a computing device |
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 |
US7299292B2 (en) | 2002-03-29 | 2007-11-20 | Widevine Technologies, Inc. | Process and streaming server for encrypting a data stream to a virtual smart card client system |
US7284188B2 (en) | 2002-03-29 | 2007-10-16 | Sony Corporation | Method and system for embedding MPEG-7 header data to improve digital content queries |
EP1351145A1 (en) | 2002-04-04 | 2003-10-08 | Hewlett-Packard Company | Computer failure recovery and notification system |
US7433546B2 (en) | 2004-10-25 | 2008-10-07 | Apple Inc. | Image scaling arrangement |
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 |
US7092527B2 (en) | 2002-04-18 | 2006-08-15 | International Business Machines Corporation | Method, system and program product for managing a size of a key management block during content distribution |
US7055169B2 (en) | 2002-04-19 | 2006-05-30 | Opentv, Inc. | Supporting common interactive television functionality through presentation engine syntax |
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 |
AU2003223802A1 (en) | 2002-05-10 | 2003-11-11 | Protexis Inc. | System and method for multi-tiered license management and distribution using networked clearinghouses |
US7680743B2 (en) | 2002-05-15 | 2010-03-16 | Microsoft Corporation | Software application protection by way of a digital rights management (DRM) system |
US7523490B2 (en) | 2002-05-15 | 2009-04-21 | Microsoft Corporation | Session key security protocol |
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 |
US7146504B2 (en) | 2002-06-13 | 2006-12-05 | Microsoft Corporation | Secure clock on computing device such as may be required in connection with a trust-based system |
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 |
US7234157B2 (en) | 2002-06-27 | 2007-06-19 | Lenovo Singapore Pte Ltd | Remote authentication caching on a trusted client or gateway system |
US7174021B2 (en) | 2002-06-28 | 2007-02-06 | Microsoft Corporation | Systems and methods for providing secure server key operations |
US7549060B2 (en) | 2002-06-28 | 2009-06-16 | Microsoft Corporation | Using a rights template to obtain a signed rights label (SRL) for digital content in a digital rights management system |
US7353402B2 (en) | 2002-06-28 | 2008-04-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 |
US7891007B2 (en) | 2002-06-28 | 2011-02-15 | Microsoft Corporation | Systems and methods for issuing usage licenses for digital content and services |
US7502945B2 (en) | 2002-06-28 | 2009-03-10 | Microsoft Corporation | Using a flexible rights template to obtain a signed rights label (SRL) for digital content in a 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 |
US7216369B2 (en) | 2002-06-28 | 2007-05-08 | Intel Corporation | Trusted platform apparatus, system, and method |
WO2004004855A1 (en) | 2002-07-05 | 2004-01-15 | Cyberscan Technology, Inc. | Secure game download |
US7565325B2 (en) | 2002-07-09 | 2009-07-21 | Avaya Technology Corp. | Multi-site software license balancing |
US8041642B2 (en) | 2002-07-10 | 2011-10-18 | Avaya Inc. | Predictive software license balancing |
US7133925B2 (en) | 2002-07-15 | 2006-11-07 | Hewlett-Packard Development Company, L.P. | System, method, and format thereof for scalable encoded media delivery |
JP2004046708A (en) | 2002-07-15 | 2004-02-12 | Sony Corp | System, server, method and program for providing software, terminal, control program, and method and program for utilizing the software |
US7000829B1 (en) | 2002-07-16 | 2006-02-21 | Diebold, Incorporated | Automated banking machine key loading system and method |
US7121460B1 (en) | 2002-07-16 | 2006-10-17 | Diebold Self-Service Systems Division Of Diebold, Incorporated | Automated banking machine component authentication system and method |
US6678828B1 (en) | 2002-07-22 | 2004-01-13 | Vormetric, Inc. | Secure network file access control system |
US6816809B2 (en) | 2002-07-23 | 2004-11-09 | Hewlett-Packard Development Company, L.P. | Hardware based utilization metering |
EP1429224A1 (en) | 2002-12-10 | 2004-06-16 | Texas Instruments Incorporated | Firmware run-time authentication |
JP2004062561A (en) | 2002-07-30 | 2004-02-26 | Dainippon Printing Co Ltd | Software management system, software management server, client, program, and record medium |
US20040023636A1 (en) | 2002-07-31 | 2004-02-05 | Comverse Network Systems, Ltd. | Wireless prepaid payphone system and cost control application |
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 |
US20040039960A1 (en) | 2002-08-23 | 2004-02-26 | Reza Kassayan | Method and apparatus for automatic hibernation after a power failure |
JP2004086392A (en) | 2002-08-26 | 2004-03-18 | Hitachi Ltd | Computer configuration changing method and system |
US7877607B2 (en) | 2002-08-30 | 2011-01-25 | Hewlett-Packard Development Company, L.P. | Tamper-evident data management |
US7216363B2 (en) | 2002-08-30 | 2007-05-08 | Avaya Technology Corp. | Licensing duplicated systems |
US7698225B2 (en) | 2002-08-30 | 2010-04-13 | Avaya Inc. | License modes in call processing |
JP2004102789A (en) | 2002-09-11 | 2004-04-02 | Sony Corp | License management device, license management method and computer program |
US20040054629A1 (en) | 2002-09-13 | 2004-03-18 | Sun Microsystems, Inc., A Delaware Corporation | Provisioning for digital content access control |
CN1685706A (en) | 2002-09-23 | 2005-10-19 | 皇家飞利浦电子股份有限公司 | Domain based on certificate granting |
JP2004118327A (en) | 2002-09-24 | 2004-04-15 | Sony Corp | Contents usage control device, contents usage control method and computer program |
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 |
JP2004127040A (en) | 2002-10-03 | 2004-04-22 | Internatl Business Mach Corp <Ibm> | Information processor, control method, program and recording medium |
US20040067746A1 (en) | 2002-10-03 | 2004-04-08 | Johnson Jeffrey A. | System for providing communications equipment |
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 |
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 |
JP4099039B2 (en) | 2002-11-15 | 2008-06-11 | 松下電器産業株式会社 | Program update method |
US7171539B2 (en) | 2002-11-18 | 2007-01-30 | Arm Limited | Apparatus and method for controlling access to a memory |
US7302592B2 (en) | 2002-12-02 | 2007-11-27 | Silverbrook Research Pty Ltd | Integrated circuit which disables writing circuitry to memory when the power drops below a power threshold predetermined and controlled by the processor |
KR20040050625A (en) | 2002-12-10 | 2004-06-16 | 한국전자통신연구원 | Authentication Method using Symmetric Authenticated Key Exchange and Asymmetric Authenticated Key Exchange |
US20050239434A1 (en) | 2002-12-11 | 2005-10-27 | Marlowe Ira M | Multimedia device integration system |
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 |
EP1573646B1 (en) | 2002-12-20 | 2006-11-22 | Nagracard SA | Securing device for a security module connector |
KR20050091898A (en) | 2002-12-20 | 2005-09-15 | 마쯔시다덴기산교 가부시키가이샤 | Information management system |
US20050080701A1 (en) | 2002-12-23 | 2005-04-14 | Ge Corporate Financial Services, Inc. | Methods and systems for managing risk management information |
US20040128251A1 (en) | 2002-12-31 | 2004-07-01 | Chris Adam | Apparatus, system and method for licensing |
CA2415334C (en) | 2002-12-31 | 2012-04-24 | Protexis Inc. | System for persistently encrypting critical software data to control operation of an executable software program |
US7801820B2 (en) | 2003-01-13 | 2010-09-21 | Sony Corporation | Real-time delivery of license for previously stored encrypted content |
US20040139312A1 (en) | 2003-01-14 | 2004-07-15 | General Instrument Corporation | Categorization of host security levels based on functionality implemented inside secure hardware |
US7181016B2 (en) | 2003-01-27 | 2007-02-20 | Microsoft Corporation | Deriving a symmetric key from an asymmetric key for file encryption or decryption |
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 |
US20060173787A1 (en) * | 2003-03-24 | 2006-08-03 | Daniel Weber | Data protection management apparatus 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 |
US7406176B2 (en) | 2003-04-01 | 2008-07-29 | Microsoft Corporation | Fully scalable encryption for scalable multimedia |
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 |
CN1781068A (en) | 2003-04-28 | 2006-05-31 | 皇家飞利浦电子股份有限公司 | Method of updating revocation list |
WO2004099928A2 (en) | 2003-05-02 | 2004-11-18 | Maggio Frank S | Method and system for verifying exposure to message content delivered via subscription networks |
AU2003230086A1 (en) | 2003-05-15 | 2004-12-03 | Nokia Corporation | Transferring content between digital rights management systems |
DE102004026083A1 (en) | 2003-05-25 | 2005-01-20 | Wittkötter, Erland, Dr. | Server based linking of information e.g. for finding information on internet, has functional unit having content signature unit, to form document section and or file content which are embedded in electronic document. |
US7233666B2 (en) | 2003-05-29 | 2007-06-19 | Intel Corporation | Method and apparatus for increasing the entropy of a pseudorandom number |
KR100965437B1 (en) | 2003-06-05 | 2010-06-24 | 인터트러스트 테크놀로지즈 코포레이션 | Interoperable systems and methods for peer-to-peer service orchestration |
US7729992B2 (en) | 2003-06-13 | 2010-06-01 | Brilliant Digital Entertainment, Inc. | Monitoring of computer-related resources and associated methods and systems for disbursing compensation |
US8838950B2 (en) | 2003-06-23 | 2014-09-16 | International Business Machines Corporation | Security architecture for system on chip |
US20040268120A1 (en) | 2003-06-26 | 2004-12-30 | Nokia, Inc. | System and method for public key infrastructure based software licensing |
US7421024B2 (en) | 2003-06-30 | 2008-09-02 | Intel Corporation | Method for transcoding MPEG encoded streams |
KR20050008439A (en) | 2003-07-10 | 2005-01-21 | 주식회사 비즈모델라인 | Card with Cardholder`s Definition Information for Using It and Method for Operating It |
US7089594B2 (en) | 2003-07-21 | 2006-08-08 | July Systems, Inc. | Application rights management in a mobile environment |
US7382879B1 (en) | 2003-07-23 | 2008-06-03 | Sprint Communications Company, L.P. | Digital rights management negotiation for streaming media over a network |
EP1571556A1 (en) | 2003-07-25 | 2005-09-07 | Matsushita Electric Industrial Co., Ltd. | Data processing apparatus and data distributing apparatus |
US7912892B2 (en) | 2003-07-25 | 2011-03-22 | Educational Testing Service | System and method for parallel conversion, compilation, and distribution of content |
US7444667B2 (en) | 2003-07-28 | 2008-10-28 | Intel Corporation | Method and apparatus for trusted blade device computing |
US7275263B2 (en) | 2003-08-11 | 2007-09-25 | Intel Corporation | Method and system and authenticating a user of a computer system that has a trusted platform module (TPM) |
US7831693B2 (en) | 2003-08-18 | 2010-11-09 | Oracle America, Inc. | Structured methodology and design patterns for web services |
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 |
TWI234741B (en) | 2003-08-26 | 2005-06-21 | Inventec Corp | Software protection method and system of same |
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 |
WO2005031589A1 (en) | 2003-09-23 | 2005-04-07 | Marchex, Inc. | 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 |
US20060008256A1 (en) | 2003-10-01 | 2006-01-12 | Khedouri Robert K | Audio visual player apparatus and system and method of content distribution using the same |
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 |
CN100468429C (en) | 2003-11-27 | 2009-03-11 | 松下电器产业株式会社 | Content distribution system and content license management method |
JP4450609B2 (en) | 2003-11-28 | 2010-04-14 | 株式会社日立製作所 | Storage device |
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 |
US7900140B2 (en) * | 2003-12-08 | 2011-03-01 | Microsoft Corporation | Media processing methods, systems and application program interfaces |
US6990174B2 (en) | 2003-12-15 | 2006-01-24 | Instrumentarium Corp. | Method and apparatus for performing single-point projection imaging |
US7574706B2 (en) | 2003-12-15 | 2009-08-11 | Microsoft Corporation | System and method for managing and communicating software updates |
FI20031835A (en) | 2003-12-15 | 2005-06-16 | Instrumentarium Corp | Procedure 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 |
US7207039B2 (en) | 2003-12-24 | 2007-04-17 | Intel Corporation | Secure booting and provisioning |
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 |
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 |
US7116969B2 (en) | 2004-02-12 | 2006-10-03 | Sharp Laboratories Of America, Inc. | Wireless device having a secure clock authentication method and apparatus |
US7676846B2 (en) | 2004-02-13 | 2010-03-09 | Microsoft Corporation | Binding content to an entity |
US7237103B2 (en) | 2004-02-18 | 2007-06-26 | Wyse Technology, Inc. | Computing device deployment using mass storage device |
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 |
US20050229228A1 (en) | 2004-04-07 | 2005-10-13 | Sandeep Relan | Unicast cable content delivery |
US20050221766A1 (en) | 2004-03-31 | 2005-10-06 | Brizek John P | Method and apparatus to perform dynamic attestation |
US8271783B2 (en) | 2004-04-19 | 2012-09-18 | Hewlett-Packard Development Company, L.P. | Subordinate trusted platform module |
US7437771B2 (en) | 2004-04-19 | 2008-10-14 | Woodcock Washburn Llp | Rendering protected digital content within a network of computing devices or the like |
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 |
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 |
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 |
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 |
US7500267B2 (en) | 2004-04-30 | 2009-03-03 | Microsoft Corporation | Systems and methods for disabling software components to protect digital media |
US20060242406A1 (en) | 2005-04-22 | 2006-10-26 | Microsoft Corporation | Protected computing environment |
US7644239B2 (en) | 2004-05-03 | 2010-01-05 | Microsoft Corporation | Non-volatile memory cache performance improvement |
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 |
US7266714B2 (en) | 2004-06-15 | 2007-09-04 | Dolby Laboratories Licensing Corporation | Method an apparatus for adjusting the time of a clock if it is determined that the degree of adjustment is within a limit based on the clocks initial time |
US20050283601A1 (en) | 2004-06-22 | 2005-12-22 | Sun Microsystems, Inc. | Systems and methods for securing a computer boot |
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 |
US20060010326A1 (en) | 2004-07-08 | 2006-01-12 | International Business Machines Corporation | Method for extending the CRTM in a trusted platform |
US20060010074A1 (en) | 2004-07-09 | 2006-01-12 | Zeitsiff Adam M | Delivery and storage system for secured content library |
US20060015732A1 (en) | 2004-07-15 | 2006-01-19 | Sony Corporation | Processing system using internal digital signatures |
US7552326B2 (en) | 2004-07-15 | 2009-06-23 | Sony Corporation | Use of kernel authorization data to maintain security in a digital processing system |
US7716494B2 (en) | 2004-07-15 | 2010-05-11 | Sony Corporation | Establishing a trusted platform in a digital processing system |
US7490356B2 (en) | 2004-07-20 | 2009-02-10 | Reflectent Software, Inc. | End user risk management |
US7461312B2 (en) | 2004-07-22 | 2008-12-02 | Microsoft Corporation | Digital signature generation for hardware functional test |
US7490245B2 (en) | 2004-07-24 | 2009-02-10 | Lenovo (Singapore) Pte. Ltd. | System and method for data processing system planar authentication |
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 |
US7478246B2 (en) | 2004-07-29 | 2009-01-13 | International Business Machines Corporation | Method for providing a scalable trusted platform module in a hypervisor environment |
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 |
US7743069B2 (en) | 2004-09-03 | 2010-06-22 | Sybase, Inc. | Database system providing SQL extensions for automated encryption and decryption of column data |
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 |
US8160244B2 (en) | 2004-10-01 | 2012-04-17 | Broadcom Corporation | Stateless hardware security module |
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 |
KR100611740B1 (en) * | 2004-10-13 | 2006-08-11 | 한국전자통신연구원 | System and method for tracing illegally copied contents on the basis of fingerprint |
US7493487B2 (en) | 2004-10-15 | 2009-02-17 | Microsoft Corporation | Portable computing environment |
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 |
US8332653B2 (en) | 2004-10-22 | 2012-12-11 | Broadcom Corporation | Secure processing environment |
US20060089917A1 (en) | 2004-10-22 | 2006-04-27 | Microsoft Corporation | License synchronization |
US7464103B2 (en) | 2004-10-29 | 2008-12-09 | Microsoft Corporation | Multi-level nested open hashed data stores |
US7669056B2 (en) | 2005-03-29 | 2010-02-23 | Microsoft Corporation | Method and apparatus for measuring presentation data exposure |
US7979721B2 (en) | 2004-11-15 | 2011-07-12 | Microsoft Corporation | Enhanced packaging for PC security |
US7610631B2 (en) | 2004-11-15 | 2009-10-27 | Alexander Frank | Method and apparatus for provisioning software |
US20060165227A1 (en) | 2004-11-15 | 2006-07-27 | Microsoft Corporation | System and method for distribution of provisioning packets |
US8464348B2 (en) | 2004-11-15 | 2013-06-11 | Microsoft Corporation | Isolated computing environment anchored into CPU and motherboard |
US8336085B2 (en) | 2004-11-15 | 2012-12-18 | Microsoft Corporation | Tuning product policy using observed evidence of customer behavior |
US7694153B2 (en) | 2004-11-15 | 2010-04-06 | Microsoft Corporation | Changing product behavior in accordance with license |
US7562220B2 (en) | 2004-11-15 | 2009-07-14 | Microsoft Corporation | System and method for programming an isolated computing environment |
US20060106920A1 (en) | 2004-11-15 | 2006-05-18 | Microsoft Corporation | Method and apparatus for dynamically activating/deactivating an operating system |
US20060165005A1 (en) | 2004-11-15 | 2006-07-27 | Microsoft Corporation | Business method for pay-as-you-go computer and dynamic differential pricing |
US8176564B2 (en) | 2004-11-15 | 2012-05-08 | Microsoft Corporation | Special PC mode entered upon detection of undesired state |
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 |
KR100725918B1 (en) | 2004-12-16 | 2007-06-11 | 한국전자통신연구원 | System and method of issuing licenses to protect the multi-level distributed digital content |
US7315941B2 (en) | 2004-12-17 | 2008-01-01 | Ntt Docomo Inc. | Multi-certificate revocation using encrypted proof data for proving certificate's validity or invalidity |
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 |
US20060156008A1 (en) | 2005-01-12 | 2006-07-13 | Microsoft Corporation | Last line of defense ensuring and enforcing sufficiently valid/current code |
US7770205B2 (en) | 2005-01-19 | 2010-08-03 | Microsoft Corporation | Binding a device to a computer |
US20060174110A1 (en) | 2005-01-31 | 2006-08-03 | Microsoft Corporation | Symmetric key optimizations |
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 |
US8438645B2 (en) | 2005-04-27 | 2013-05-07 | Microsoft Corporation | Secure clock with grace periods |
US20070033102A1 (en) | 2005-03-29 | 2007-02-08 | Microsoft Corporation | Securely providing advertising subsidized computer usage |
US8386520B2 (en) | 2005-03-30 | 2013-02-26 | Hewlett-Packard Development Company, L.P. | Database security structure |
US7856404B2 (en) | 2005-04-14 | 2010-12-21 | Microsoft Corporation | Playlist burning in rights-management context |
US8738536B2 (en) | 2005-04-14 | 2014-05-27 | Microsoft Corporation | Licensing content for use on portable device |
US8725646B2 (en) | 2005-04-15 | 2014-05-13 | Microsoft Corporation | Output protection levels |
US7558463B2 (en) | 2005-04-18 | 2009-07-07 | Microsoft Corporation | Retention of information about digital-media rights in transformed digital media content |
US9436804B2 (en) | 2005-04-22 | 2016-09-06 | Microsoft Technology Licensing, Llc | Establishing a unique session key using a hardware functionality scan |
US7739505B2 (en) | 2005-04-22 | 2010-06-15 | Microsoft Corporation | Linking Diffie Hellman with HFS authentication by using a seed |
WO2006115533A2 (en) | 2005-04-22 | 2006-11-02 | Microsoft Corporation | Protected computing environment |
US7617401B2 (en) | 2005-04-22 | 2009-11-10 | Microsoft Corporation | Hardware functionality scan for device authentication |
US7665143B2 (en) | 2005-05-16 | 2010-02-16 | Microsoft Corporation | Creating secure process objects |
US20060265758A1 (en) | 2005-05-20 | 2006-11-23 | Microsoft Corporation | Extensible media rights |
US8353046B2 (en) | 2005-06-08 | 2013-01-08 | Microsoft Corporation | System and method for delivery of a modular operating system |
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 |
US7376976B2 (en) | 2005-07-11 | 2008-05-20 | Microsoft Corporation | Transcryption of digital content between content protection systems |
US7590841B2 (en) | 2005-07-19 | 2009-09-15 | Microsoft Corporation | Automatic update of computer-readable components to support a trusted environment |
JP2007067340A (en) | 2005-09-02 | 2007-03-15 | Nec Electronics Corp | Semiconductor integrated circuit device and method for testing the same |
US8447121B2 (en) | 2005-09-14 | 2013-05-21 | Microsoft Corporation | Efficient integrated digital video transcoding |
GB0525527D0 (en) | 2005-12-15 | 2006-01-25 | Levett David L | Optimization of remote content delivery and presentation by composition and conversion on the remote device |
US7822863B2 (en) | 2006-05-12 | 2010-10-26 | Palo Alto Research Center Incorporated | Personal domain controller |
FI120760B (en) | 2006-05-31 | 2010-02-26 | Palodex Group Oy | Method and apparatus for medical X-ray imaging |
US7881315B2 (en) | 2006-06-27 | 2011-02-01 | Microsoft Corporation | Local peer-to-peer digital content distribution |
US8769672B2 (en) | 2006-08-03 | 2014-07-01 | Symantec Corporation | Code injection prevention |
-
2005
- 2005-04-27 US US11/116,689 patent/US9363481B2/en active Active
-
2015
- 2015-09-12 US US14/852,520 patent/US20160006714A1/en not_active Abandoned
Patent Citations (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3642072A (en) * | 1969-10-08 | 1972-02-15 | Factory Mutual Res Corp | Fixed tire extinguishing system with additive injection apparatus |
US4051276A (en) * | 1974-12-24 | 1977-09-27 | The United States Government As Represented By The Librarian Of Congress | Method of deacidifying paper |
US4090063A (en) * | 1975-12-11 | 1978-05-16 | Societe D'etude Et De Construction D'appareils De Precision (S.E.C.A.P.) | Franking machine comprising an electronic counting system |
US4633363A (en) * | 1985-08-05 | 1986-12-30 | Ameron, Inc. | Conductive flanged fitting |
US4793164A (en) * | 1985-12-02 | 1988-12-27 | Sloop Sr Clifford E | Locking assembly for utility meter boxes |
US4830925A (en) * | 1988-01-04 | 1989-05-16 | Dow Corning Corporation | Cathodic protection method and compositions |
US4918876A (en) * | 1988-03-26 | 1990-04-24 | Messer Griesheim Gmbh | Device to deburr molded parts subject to low-temperature brittleness |
US4880542A (en) * | 1988-05-13 | 1989-11-14 | Combustion Engineering, Inc. | Biofilter for the treatment of sour water |
US5337410A (en) * | 1990-03-16 | 1994-08-09 | Hewlett-Packard Company | Data stream concentrator providing attribute data storage and graphics pipeline access |
US5170252A (en) * | 1990-04-09 | 1992-12-08 | Interactive Media Technologies, Inc. | System and method for interconnecting and mixing multiple audio and video data streams associated with multiple media devices |
US5163077A (en) * | 1990-07-30 | 1992-11-10 | Gemplus Card International | Device for the counting of chip cards contained in a batch |
US5102140A (en) * | 1991-01-24 | 1992-04-07 | Gene Vincent | Automated hole-in-one recording system |
US6263379B1 (en) * | 1992-07-06 | 2001-07-17 | Microsoft Corporation | Method and system for referring to and binding to objects using identifier objects |
US5577885A (en) * | 1994-06-28 | 1996-11-26 | Abb Patent Gmbh | Condensing turbine having at least two seals for sealing off the turbine casing |
US6091897A (en) * | 1996-01-29 | 2000-07-18 | Digital Equipment Corporation | Fast translation and execution of a computer program on a non-native architecture by use of background translator |
US6000028A (en) * | 1996-01-29 | 1999-12-07 | Digital Equipment Corporation | Means and apparatus for maintaining condition codes in an unevaluated state |
US6226789B1 (en) * | 1996-01-29 | 2001-05-01 | Compaq Computer Corporation | Method and apparatus for data flow analysis |
US5838078A (en) * | 1996-11-25 | 1998-11-17 | Basic Resources, Inc. | Apparatus and systems that interface to facilities and equipment that provide temporary electric utilities to construction sites |
US6006230A (en) * | 1997-01-15 | 1999-12-21 | Sybase, Inc. | Database application development system with improved methods for distributing and executing objects across multiple tiers |
US5850039A (en) * | 1997-02-27 | 1998-12-15 | Micro Motion | Coriolis flowmeter having axially compliant case ends |
US5814739A (en) * | 1997-05-30 | 1998-09-29 | Micro Motion, Incorporated | Coriolis flowmeter having corrugated flow tube |
US6553602B1 (en) * | 1997-09-13 | 2003-04-29 | Slovensky Plynarensky Priemysel, S.P. | Device for pipeline interior cleaning |
US6209785B1 (en) * | 1998-02-03 | 2001-04-03 | Allied Balfour Limited | Boxes |
US20030156552A1 (en) * | 1998-04-20 | 2003-08-21 | Kim K. Banker | Apparatus and method for unilateral topology discovery in network management |
US6674430B1 (en) * | 1998-07-16 | 2004-01-06 | The Research Foundation Of State University Of New York | Apparatus and method for real-time volume processing and universal 3D rendering |
US6717576B1 (en) * | 1998-08-20 | 2004-04-06 | Apple Computer, Inc. | Deferred shading graphics pipeline processor having advanced features |
US6525737B1 (en) * | 1998-08-20 | 2003-02-25 | Apple Computer, Inc. | Graphics processor with pipeline state storage and retrieval |
US6047883A (en) * | 1998-09-08 | 2000-04-11 | Westvaco Corporation | Bagless barrier paperboard container with a tamper evident reclosable fitment |
US6426947B1 (en) * | 1998-10-21 | 2002-07-30 | Kim K. Banker | Apparatus and method for unilateral topology discovery in network management |
US20010038624A1 (en) * | 1999-03-19 | 2001-11-08 | Greenberg Jeffrey Douglas | Internet telephony for ecommerce |
US6775779B1 (en) * | 1999-04-06 | 2004-08-10 | Microsoft Corporation | Hierarchical trusted code for content protection in computers |
US6510550B1 (en) * | 1999-05-12 | 2003-01-21 | Intel Corporation | Method and apparatus for providing intermittent connectivity support in a computer application |
US7890927B2 (en) * | 1999-05-17 | 2011-02-15 | Invensys Systems, Inc. | Apparatus and method for configuring and editing a control system with live data |
US6446155B1 (en) * | 1999-06-30 | 2002-09-03 | Logitech Europe S. A. | Resource bus interface |
US20070098152A1 (en) * | 1999-10-26 | 2007-05-03 | International Business Machines Corporation | Encryption/decryption of stored data using non-accessible, unique encryption key |
US6853385B1 (en) * | 1999-11-09 | 2005-02-08 | Broadcom Corporation | Video, audio and graphics decode, composite and display system |
US7389246B1 (en) * | 2000-02-15 | 2008-06-17 | Insweb Corporation | Insurance rating calculation software component architecture |
US20040125103A1 (en) * | 2000-02-25 | 2004-07-01 | Kaufman Arie E. | Apparatus and method for volume processing and rendering |
US20100146576A1 (en) * | 2000-07-15 | 2010-06-10 | Filippo Costanzo | Audio-video data switching and viewing system |
US20020078010A1 (en) * | 2000-08-08 | 2002-06-20 | International Business Machines Corporation | High level assembler metamodel |
US20020056012A1 (en) * | 2000-08-08 | 2002-05-09 | International Business Machines Corporation | COBOL metamodel |
US20020046294A1 (en) * | 2000-08-08 | 2002-04-18 | International Business Machines Corporation | Common application metamodel including C/C++ metamodel |
US6390366B1 (en) * | 2000-08-31 | 2002-05-21 | First Data Corp. | Currency exchange and merchandise sales system and method |
US20030078958A1 (en) * | 2000-09-01 | 2003-04-24 | Pace Charles P. | Method and system for deploying an asset over a multi-tiered network |
US6621500B1 (en) * | 2000-11-17 | 2003-09-16 | Hewlett-Packard Development Company, L.P. | Systems and methods for rendering graphical data |
US20030177187A1 (en) * | 2000-11-27 | 2003-09-18 | Butterfly.Net. Inc. | Computing grid for massively multi-player online games and other multi-user immersive persistent-state and session-based applications |
US20020095416A1 (en) * | 2001-01-12 | 2002-07-18 | Keith Schwols | Integration of a database into file management software for protecting, tracking, and retrieving data |
US20020097872A1 (en) * | 2001-01-24 | 2002-07-25 | Maliszewski Richard L. | Method of providing secure content-based user experience enhancement within a content protection architecture |
US20020161907A1 (en) * | 2001-04-25 | 2002-10-31 | Avery Moon | Adaptive multi-protocol communications system |
US20020194496A1 (en) * | 2001-06-19 | 2002-12-19 | Jonathan Griffin | Multiple trusted computing environments |
US20030001851A1 (en) * | 2001-06-28 | 2003-01-02 | Bushey Robert D. | System and method for combining graphics formats in a digital video pipeline |
US20030167355A1 (en) * | 2001-07-10 | 2003-09-04 | Smith Adam W. | Application program interface for network software platform |
US20040268407A1 (en) * | 2001-09-20 | 2004-12-30 | Sparrell Carlton J | Centralized resource manager |
US20040268406A1 (en) * | 2001-09-20 | 2004-12-30 | Sparrell Carlton J. | Centralized resource manager with passive sensing system |
US20060031557A1 (en) * | 2001-12-21 | 2006-02-09 | Rod Walsh | Method to improve perceived access speed to data network content using a multicast channel and local cache |
US20030226487A1 (en) * | 2002-03-08 | 2003-12-11 | Fmc Technologies, Inc. | Disconnectable mooring system and LNG transfer system and method |
US20060053405A1 (en) * | 2002-05-23 | 2006-03-09 | Koninklijke Philips Electronics N.V. | Integrated circuit design method |
US20040098354A1 (en) * | 2002-11-15 | 2004-05-20 | Pitney Bowes Incorporated | Method and system for conveying funds and secure information between secure devices |
US7242408B1 (en) * | 2003-01-31 | 2007-07-10 | Microsoft Corporation | Graphical processing of object perimeter information |
US7202867B1 (en) * | 2003-01-31 | 2007-04-10 | Microsoft Corporation | Generation of glow effect |
US20040202383A1 (en) * | 2003-04-14 | 2004-10-14 | Larson Bradley R. | Image processor |
US20060075509A1 (en) * | 2003-05-22 | 2006-04-06 | Jakob Kishon | Data storage protection device |
US20040232590A1 (en) * | 2003-05-22 | 2004-11-25 | Satoshi Iwami | Method of producing a golf ball |
US20050086632A1 (en) * | 2003-10-01 | 2005-04-21 | Hiroshi Oyama | Interface method for a device driver |
US20050091530A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Providing secure input to a system with a high-assurance execution environment |
US20050091672A1 (en) * | 2003-10-24 | 2005-04-28 | Microsoft Corporation | Facilitating presentation functionality through a programming interface media namespace |
US20050097620A1 (en) * | 2003-10-30 | 2005-05-05 | Honeywell International Inc. | Architecture for multi-channel video processing |
US20080094403A1 (en) * | 2003-11-19 | 2008-04-24 | Reuven Bakalash | Computing system capable of parallelizing the operation graphics processing units (GPUs) supported on a CPU/GPU fusion-architecture chip and one or more external graphics cards, employing a software-implemented multi-mode parallel graphics rendering subsystem |
US20080211817A1 (en) * | 2003-11-19 | 2008-09-04 | Reuven Bakalash | Internet-based application profile database server system for updating graphic application profiles (GAPS) stored within the multi-mode parallel graphics rendering system of client machines running one or more graphic applications |
US20060232590A1 (en) * | 2004-01-28 | 2006-10-19 | Reuven Bakalash | Graphics processing and display system employing multiple graphics cores on a silicon chip of monolithic construction |
US20050188382A1 (en) * | 2004-02-20 | 2005-08-25 | Gururaj Nagendra | Methods and apparatus to optimize managed application program interfaces |
US20050188413A1 (en) * | 2004-02-21 | 2005-08-25 | Microsoft Corporation | System and method for accessing multimedia content |
US20050204205A1 (en) * | 2004-02-26 | 2005-09-15 | Ring Sandra E. | Methodology, system, and computer readable medium for detecting operating system exploitations |
US20050210467A1 (en) * | 2004-03-18 | 2005-09-22 | Zimmer Vincent J | Sharing trusted hardware across multiple operational environments |
US20070131251A1 (en) * | 2004-03-26 | 2007-06-14 | Putzmeister Aktiengesellschaft | Device and method for cleaning a thick matter delivery pipe |
US20050212285A1 (en) * | 2004-03-29 | 2005-09-29 | Ope International, L.P. | Dual-walled piping system and methods |
US20060031888A1 (en) * | 2004-04-30 | 2006-02-09 | Sparrell Carlton J | Centralized resource management and un-managed device support |
US20070226344A1 (en) * | 2004-07-23 | 2007-09-27 | General Instrument Corporation | Centralized Resource Manager With Power Switching System |
US20060047448A1 (en) * | 2004-08-31 | 2006-03-02 | Cecil Kenneth B | Intrusion detection system and method thereof |
US20070256055A1 (en) * | 2004-11-19 | 2007-11-01 | Adrian Herscu | Method for building component-software for execution in a standards-compliant programming environment |
US7627655B2 (en) * | 2004-12-13 | 2009-12-01 | Sap Ag | Increased performance of grid applications |
US20080008072A1 (en) * | 2004-12-27 | 2008-01-10 | Tomoaki Ito | Method for Disposing of a Data Recording Means |
US20090096798A1 (en) * | 2005-01-25 | 2009-04-16 | Reuven Bakalash | Graphics Processing and Display System Employing Multiple Graphics Cores on a Silicon Chip of Monolithic Construction |
US20060230406A1 (en) * | 2005-03-31 | 2006-10-12 | Microsoft Corporation | Tiered command distribution |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9436804B2 (en) | 2005-04-22 | 2016-09-06 | Microsoft Technology Licensing, Llc | Establishing a unique session key using a hardware functionality scan |
WO2019137268A1 (en) * | 2018-01-12 | 2019-07-18 | 中国移动通信有限公司研究院 | Data transmission method and device, network apparatus, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
US9363481B2 (en) | 2016-06-07 |
US20060248594A1 (en) | 2006-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9363481B2 (en) | Protected media pipeline | |
US9189605B2 (en) | Protected computing environment | |
US8074287B2 (en) | Renewable and individualizable elements of a protected environment | |
US6327652B1 (en) | Loading and identifying a digital rights management operating system | |
US7194092B1 (en) | Key-based secure storage | |
US6330670B1 (en) | Digital rights management operating system | |
US6820063B1 (en) | Controlling access to content based on certificates and access predicates | |
US7949877B2 (en) | Rights enforcement and usage reporting on a client device | |
US8136166B2 (en) | Installation of black box for trusted component for digital rights management (DRM) on computing device | |
US20080295174A1 (en) | Method and System for Preventing Unauthorized Access and Distribution of Digital Data | |
US20050060568A1 (en) | Controlling access to data | |
US20050114683A1 (en) | Tamper-resistant trusted java virtual machine and method of using the same | |
KR101247044B1 (en) | Hardware functionality scan for device authentication | |
US20050060549A1 (en) | Controlling access to content based on certificates and access predicates | |
US20030191944A1 (en) | Method of providing adaptive security | |
US8656190B2 (en) | One time settable tamper resistant software repository | |
KR101238496B1 (en) | Protected computing environment | |
Mohanty et al. | Media data protection during execution on mobile platforms–A review | |
KR101265887B1 (en) | Renewable and individualizable elements of a protected computing environment | |
US8661234B2 (en) | Individualized per device initialization of computing devices in avoidance of mass exploitation of vulnerabilities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GRIGOROVITCH, ALEXANDRE;KNOWLTON, CHADD;DEBIQUE, KIRT;AND OTHERS;SIGNING DATES FROM 20050812 TO 20050816;REEL/FRAME:037440/0191 |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:037960/0921 Effective date: 20141014 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |