Digital content, such as music, video or photographs, is often copied from one platform to another without the consent of the digital content owner. For example, when an owner of a digital copy of a photograph sends that photograph to a client electronic device (e.g., a computer, an MP3 player, an iPod®, a cellular phone, a personal digital assistant (PDA), a portable media player, etc.) of another, that photograph can then be sent to yet another electronic device without the consent of the original owner.
Often, the owner of digital content may wish to share such digital content with another by sending it from an electronic device of the owner to another electronic device of another person. However, the owner may intend/desire to prevent the other person from sending the received digital content to a third entity and/or may desire to limit the length of time or number of times that the other person can use such digital content.
The following presents a simplified summary of the innovation in order to provide a basic understanding of some aspects described herein. This summary is not an extensive overview of the claimed subject matter. It is intended to neither identify key or critical elements of the claimed subject matter nor delineate the scope of the subject innovation. Its sole purpose is to present some concepts of the claimed subject matter in a simplified form as a prelude to the more detailed description that is presented later.
In one aspect of the disclosed subject matter, a digital rights management (DRM) agent-server can be implemented in hardware. This can be done in a local environment between a limited number of parties (e.g., about two parties), where both sides are trusted. For example, an owner of digital content (e.g., video, music, multimedia, photograph, etc.) can send the digital content with a rights attachment and an agent can be trusted to carry out the required content protection. The content can be opened by an application agent that is utilized by the agent and only allows the receiving party or user to use the content in accordance with the rights granted to the user. The application agent can output the content to a presentation component, such as a display component or audio component, so that the user can perceive the content.
In another aspect of the disclosed subject matter, the application agent can be sent with the digital content to the user, and the application agent can facilitate the management of the rights to the digital content as well as the display of the digital content to the user. In another aspect, the rights attachment can be sent from the electronic device of the owner to the electronic device of the receiving party/user, and the user can download an application agent from a mutually trusted third party (e.g., Adobe® Reader® with DRM) to display the digital content, where the application agent allows the user to use the digital content in accordance with the rights granted via the rights attachment.
In yet another aspect, a system is provided wherein transfer of DRM content and rights is managed in a secure environment. The system can include an agent-server component that creates the secure environment. The agent-server component can comprise a control component that facilitates the security of data to and from memory, such as non-volatile memory and volatile memory. Furthermore, the non-volatile memory (e.g., flash memory) of the agent-server component can store security software for use by the control component. The control component can provide for concurrent processing of security protocols creating the secure environment within the agent-server component and can communicate with a server component and application agent component located within the agent-server component. The server component can communicate with another electronic device to transfer rights and digital content. According, the server component is located witin the agent-server component such that the transfer of content and rights is managed in the secure environment.
In yet another aspect, the agent-server can be implemented by an application-specific integrated circuit (ASIC) that can include all components associated with the agent-server, such as a control processing unit, memory, crypto logic, and an embedded agent-server in firmware, for example. Moreover, the agent-server can be implemented on a single integrated circuit chip, in accordance with one other aspect of the disclosed subject matter.
The following description and the annexed drawings set forth in detail certain illustrative aspects of the disclosed subject matter. These aspects are indicative, however, of but a few of the various ways in which the principles of the innovation may be employed and the disclosed subject matter is intended to include all such aspects and their equivalents. Other advantages and novel features of the claimed subject matter will become apparent from the following detailed description of the innovation when considered in conjunction with the drawings.
The disclosed subject matter is described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the subject innovation. It may be evident, however, that the claimed subject matter may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the subject innovation.
Often, the owner of digital content (e.g., a photograph, music, video, multimedia, etc.) may wish to share such digital content with another by sending it from the electronic device of the owner to the electronic device of another person, but desires to prevent the other person from sending the digital content to a third entity and/or desires to limit the length of time or number of times the other person can use such digital content.
A digital rights management (DRM) agent-server can be implemented in hardware. This can be done in a local environment between a limited number of parties (e.g., two parties, three parties, etc.), where both/all sides are trusted. For example, an owner of digital content can send the digital content with a rights attachment and the agent can be trusted to carry out the required content protection. The content can be opened by an application agent that is utilized by the agent and only allows the user to use the content in accordance with the rights granted to the user. The application agent can output the content to a presentation component, such as a display component or audio component, so that a user can perceive the content.
Now turning to
Agent component 110 can include an agent control component 135 that can include an agent memory 140 which can store digital content transferred to the agent component 110 from the agent-server component 105. As stated, agent component 110 can also include an application agent component 130 that can manage the enforcement of rights associated with particular digital content transferred to the agent component 110 as well as facilitate the display of the digital content in a display component 145 that can be associated with the application agent component 140. Application agent component 130 can process data associated with the digital content, and make sure the digital content is used in accordance with the rights associated with the digital content, where such rights can be detailed in the rights object associated therewith. Such rights can include various parameters, such as the length of time the content can be used by the agent component 110, the number of times the content can be used by agent component 110, a limit or prohibition as to the distribution of the content to a third device, and/or a requirement that the application agent component 110 facilitate the automatic erasure or deletion of data associated with the digital content when the rights to such content have been exhausted. The DRM server component 125 and application agent component 130 can be matched pairs and can use the same language (e.g., eXtensible Markup Language (XML)) to describe the rights object.
The application agent 130 can be placed in the agent component 110 during manufacture. Alternatively, the application agent 130 can be sent from the agent-server component 105 and loaded into agent component 110. In another alternative, application agent 130 can be obtained (e.g., downloaded) from a mutually trusted third party (e.g., Adobe® Reader® with DRM).
The agent component 110, including the application agent component 130, agent control component 135, and agent memory 140 can be situated on a single integrated circuit chip. Alternatively, the agent component 110, including the application agent component 130, agent control component 135, and agent memory 140 can be situated on an integrated circuit chip set.
While not shown here, the agent-server component 105 can further include all components necessary to perform acts and functions typically associated with an agent, including acts and functions associated with agent component 110, and thus can act as an agent-type component when receiving information, such as digital content, from another server. Further, while not shown here, agent component 110 can further include all components necessary to perform acts and functions typically associated with a server, including acts and functions associated with agent-server component 105, and thus can act as a server when transferring information, such as digital content, to an agent-type component. The term “agent component” 110 is given, in part, to distinguish it from agent-server component 105 when discussing certain aspects of the disclosed subject matter.
The memory 120 and agent memory 140 can each include one or more volatile memory (e.g, random access memory (RAM), static RAM (SRAM), and the like) and non-volatile memory (e.g., read only memory (ROM), programmable ROM (PROM), flash, and the like). The memory 120 and agent memory 140 each can contain separate memory addresses to which data can be stored. Memory 120 and agent memory 140 each can also be partitioned into two or more partitions, which can be utilized to provide varying levels of security, for example. The respective partitions can be dynamic, as the partitions can either be fixed or programmable at run time.
For example, a user of a portable electronic device (e.g., a cellular phone, a laptop computer, a PDA, etc.) may desire to send music (e.g., a song) stored in the memory of the portable electronic device to an electronic device of another person, but may only want the other person to have limited rights of use to the music. Limited rights can include such limitations as only being able to listen to the song for a certain period of time, only being able to listen to the music a certain number of times, and/or prohibiting distribution of the music to other devices, for example, after which the owner of the music may want the music deleted from the electronic device of the other person.
In accordance with one aspect of the disclosed subject matter, the device of the content owner can contain an agent-server component 105. The agent-server component can include a control component 115 that can manage secure processing of information, including information associated with the music, to and from a memory 120 as well as facilitate management, including digital rights management, of digital content (e.g., music in digitized form) transferred to an agent component 110 included in the device of the other person. A DRM server component 125 can create a rights object detailing the rights granted to the other person with regard to the music. The DRM server component 125 can also encrypt the digital content and rights object. The encrypted content and rights object can be transferred to the electronic device of the other person, and can be received by the agent component 110. The device of the other person can then utilize an application agent component 130 to decrypt the content and rights, and the application agent component 130 can facilitate the use of the content while at the same time enforcing the rights granted by the content owner. Further, the rights object can specify when the content is to be automatically deleted from the agent memory 140 of the device of the other person by the application agent component 130, in accordance with the limits placed on the content by the content owner.
The memory 208 can be comprised of one or more partitions 210. Further, the memory 208 can include one or more of volatile memory (e.g, RAM, SRAM, and the like) and non-volatile memory (e.g., ROM, PROM, flash, and the like). The partitions 210 can be dynamic, and can be fixed or programmable at run time, and the host processor 202 and control component 206 can each know to which partition 210 a particular memory location belongs based on the memory address associated with that memory location.
The agent-server component 204 can include security software including password authentication software, shared key authentication software, public key infrastructure (PKI) authentication software, integrity check software, encryption/decryption software, anti-virus software, anti-spyware software, secure communication software, and any other type of security software available. The security software can be directly embedded into the memory 208 to provide integrated security capabilities within the agent-server component 204. The control component 206 can access the security software from the memory 208 and perform security functions based on the specific security software stored. The control component 206 can control the entire memory storage and monitor all traffic to and from the memory 208 thereby enhancing the security of information stored in memory 208.
The agent-server component 204 can also provide for authentication services and secure channel communications based on this heightened level of security that is established. Authentication services and secure channel communications can be utilized in a variety of applications to create a secure environment. For example, the agent-server component 204 can provide security for secure partitioning, secure boot, virus rollback, firmware over the air update (FOTA), near field communication (NFC) secure payment, digital rights management, enterprise remote data management and mobile TV broadcasting.
Authentication services utilized by the agent-server component 204 can include password authentication, shared key authentication, and PKI authentication, for example. These authentication services can be used in association with three types of authentication. Type 1 can include authenticating a user to the secure memory 208, type 2 can include authenticating a host processor 202 to the secure memory 208, and type 3 can include authenticating a server to the secure memory 208. Further, authentication applications may require secure channel communications. The control component 204 can provide for two types of secure channel communications used in association with the authentication services. Type 1 can establish a secure channel of communication from a host processor 202 to the memory 208, and type 2 can establish a secure channel of communication from a back-end server to the memory 208.
The control component 206 can include a processing component 212 or any other type of low power application processor. The processing component 212 can provide a secure environment to implement authentication algorithms and security software. All timing associated with the reading or writing of data to the memory 208 by the control component 206 can be derived from and controlled by the host processor 202. Host processor 202 can generate read or write cycles associated with the control component 206 during cycles that the host processor 202 does not need access to the memory bus associated with memory 208. Further, host processor 202 and control component 206 can share access to the memory bus and thus the memory 208.
Processing component 212 can execute various applications that can facilitate and effectuate partitioning of the memory 208, ascertain whether access can be granted to entities requesting access to particular partitions, determine in concert with the host processor 202 whether authentication supplied by a requesting entity comports with corresponding authentication information that can be stored in associated ROM 214, RAM 216, and/or memory component 208, and can facilitate the encryption and decryption of data that is communicated between the host 202 and security processor 206 to ensure against phishing and man-in-the middle attacks, for example. In addition, processing component 212 can configure the cryptographic component 218, discussed in more detail, infra, and can control data flow through security processor 206. Further, the processing component 212 can facilitate management of rights associated with digital content.
While the host processor 202, control component 206, and memory 208 are shown configured in series, the host processor 202, control component 206, and memory 208 may be alternatively configured in any way that can facilitate the processing of data as described herein. Further, while, as shown, the host processor 202 arbitrates access to the memory 208 for the host processor 202 and control component 206, the memory 208, host processor 202, and control component 206 can be configured in any way that can facilitate the processing of data as described herein.
Control component 206 can also include a host memory I/F 220 that can be associated with system bus 222 and can handle all memory transactions with the host processor 202. Specifically, the host memory I/F 220 can manage signaling, thus complying with the interface definitions of the memory 208. The host memory I/F 220 also can manage interpreting or differentiating between a secure and non-secure request, and monitoring requests via enforcing access rights and permissions associated with the control component 206.
As stated, the control component 206 can include a cryptographic component 218 that can be associated with the system bus 222 and perform all the cryptographic algorithms, symmetric and asymmetric, or the like, needed by the system 200. The cryptographic component 218 can include one or more buffers (not shown) that can be utilized by the cryptographic component 218 when performing its operations. The processing component 212 can configure the cryptographic component 218 and control data flow through the control component 206. The cryptographic component 218 can encrypt data associated with digital content being transferred from agent-server component 204 to an agent or decrypt data associated with digital content being transferred to agent-server component 204 from a server.
The processing component 212 can interface the system bus 222 and the security applications that run on the processing component 212, arbitrating with the host processor 202. The control component 206 can also include a memory I/F 224 that can be associated with the system bus 222, and can handle all transactions to and from the memory 208, and the control component 206, such as signaling and interpretation.
The control component 206 can employ the processing component 212 to receive and retrieve authentication information (e.g., biometric information and/or password information) associated with an entity attempting to access one or more memory partitions. The authentication information can be used to determine which memory partitions, and thus, which memory addresses, in the memory 208 that the entity has authority to access.
The control component 206 can further employ a bypass component 226 that can be associated with the system bus 222, host memory I/F 220, and memory I/F 224, and when selected or enabled can allow data and other information to flow through it via system bus 222, so the host processor 202 can access the memory 208 directly without any processing or interference by the control component 206. The bypass component 226 can be a co-processor, for example, such as a simple co-processor that is able to receive memory address data, and select or enable the bypass mode when the memory address in the read/write cycle is associated with the host processor 202, or de-select or disable the bypass mode when the memory address is associated with the control component 206. In the bypass mode, the control component 206 is essentially “transparent” to the host processor 202 and memory 208, as the data and other information flows via the shared or split bus to/from the host processor 202, through the control component 206, via system bus 222 and from/to the memory 208 via the memory bus associated therewith. For example, the bypass component 226 can be selected or enabled to put the control component 206 into bypass mode when the host processor 202 is performing memory reads or writes associated with the host processor 202 that involve instructions, or data or other information that are not secured, such as with regard to application programs, etc.
When the bypass component 226 is de-selected or not enabled, the control component 206 can access the memory 208 via the shared memory bus. It is to be understood that the host processor 202 can provide the signal timing to both the control component 206 and memory 208 to control the access of the control component 206 to the memory bus, and thus the memory 208. Thus, the host processor 202 can control when data is moved in/out of the memory 208 from/to the security processor 206, as well as moved between internal components (e.g., cryptographic component 218) of the control component 206. An aspect of the disclosed subject matter is that the host processor 202 can “move” data to and from the memory 208 without the host processor 202 actually making a copy of the memory data. This architecture can thereby enhance the security of the system as well as simplify the design of the interface.
Control component 206 can also include a use tracking component 228 that can facilitate monitoring of the use of digital content and the enforcement of rights associated with digital content. Further, control component 206 can include ID Tag 230 that can be a unique identification (e.g., alphanumeric or numeric) that can be utilized to allow an agent or server device to identify the control component 206, which can allow the agent or server device to know whether the control component 206 (e.g. a device associated with the control component 206) can be trusted by the agent or server.
Control component 206 can further include an agent-server I/F 232 that can facilitate the transfer of information between application agent 234 and server component 236. Application agent 234 can process data associated with digital content and can ensure that the content is used in accordance with rights associated with the content which can be specified by the content provider. For example, when application agent 234 receives digital content, it can also receive a rights object that can specify what rights the agent-server component 204 has with regard to the content. Such rights can include various parameters, such as the length of time the server-agent component 204 can use the content, the number of times the content can be used, a limit or prohibition as to the distribution of the content to a third party, and/or a requirement that the content be deleted or erased when the use rights are exhausted. Further, application agent 234 can facilitate decryption of data associated with digital content sent to the application agent 234, so that such data can be perceived by the user via a presentation component (not shown).
Server component 236 can facilitate the generation and communication of an encrypted rights object and encrypted digital content to an agent device when agent-server component 204 is performing a server role. The server component 236 can encrypt the digital content to be sent to an agent, or alternatively, the content can be encrypted by the cryptographic component 218. For example, server component 236 can generate a rights object associated with digital content, and digital content that has been encrypted by cryptographic component 218. The rights object and encrypted digital content can be sent to an agent, where the trusted agent is only be able to use the content in accordance with the rights associated with the content.
Application agent 234 can also be associated with a presentation I/F 238 that can facilitate the communication of data associated with the digital content, so that the digital content can be presented to a user via the presentation component. To further ensure that the digital content is not used in a manner inconsistent with the rights associated therewith, the output from the application agent 234 can be in a format, such as that associated with raster vectors, that is not easily reproducible by the presentation component, such as a display monitor, for example.
Application agent 234 and server component 236 each can be associated with an external I/F 240, which can facilitate communication of data associated with digital content and rights associated therewith between the agent-server component 204 and another agent (or server). In one aspect of the disclosed subject matter, data can be communicated via a wired or wireless Internet or intranet connection. In another aspect of the disclosed subject matter, data can be communicated via Ultra-Wideband (UWB) or Bluetooth.
For example, the agent-server 204 can facilitate the transfer of content from the agent-server 204 to an agent in a local environment, where both sides are trusted. The owner of digital content (e.g., video, music, multimedia, photograph, etc.) can send the digital content with a rights attachment from the agent-server 204 to the agent, and the agent can be trusted to carry out the required content protection, as specified in the rights attachment (e.g., rights object). The agent-server 204 can be implemented in a portable electronic device (e.g., a cellular phone, a laptop computer, a PDA, etc.). The agent device can be an electronic device, such as a cellular phone, a computer, a PDA, an MP3 player, an iPod, a media player, etc., that is capable of using and presenting such content. The content can be opened by an application agent that is utilized by the agent device and only allows the user to use the content in accordance with the rights granted to the user by the content owner. The application agent can output the content to a presentation component, such as a display component or audio component, so that a user can perceive the content.
As further example, an owner of digital content, such as a photograph in digital form may desire to send the photograph stored in memory 208 on his cellular phone to a laptop computer of another person. The cellular phone of the content owner can contain an agent-server architecture, in accordance with the disclosed subject matter. The content owner can specify the rights the owner desires the other person to have with regard to the photograph, and can have the server component 236 in the agent-server 204 generate a rights object that contains information regarding the rights the owner is granting to the user as to the photograph. For example, the rights can include a length of time the other person can use or access the photograph on his agent device (e.g., laptop computer), the number of times the other person can open the photograph on his laptop computer, and/or deletion or erasure of the content from the memory of the laptop computer when the rights are exhausted or otherwise discontinued.
After the cellular phone of the owner and the laptop computer of the other person are mutually authenticated, which can be accomplished via authentication procedures, such as PKI authentication, as detailed herein, the transfer of data can be initiated between the two devices. The digital content and the rights object can then be encrypted by the server component 236 in the agent-server 204 and then transferred to the device of the other person. The rights object and content can be sent using a session key generated by the server component 236 of the agent-server 204, for example.
To open and use the content, the device of the other person needs an application agent that can decrypt the transferred data, enforce the rights as specified in the rights object, and facilitate presentation of the content in the display of the laptop computer. In one aspect, the application agent can be sent with the digital content to the user. In another aspect, the rights object can be sent from the device of the owner to the device of the other person, and the user can download an appropriate application agent from a mutually trusted third party (e.g., Adobe® Reader®) with DRM) to facilitate displaying the digital content, where the application agent can allow the user to use the digital content in accordance with the rights granted via the rights object.
Once the application agent is provided to the agent device, the application agent can be activated, and can return a signature to the server component 236. The server component 236 can verify intact receipt from the signature that the application agent software, digital content, rights object, and other information associated therewith, by the application agent. The control component 206 in the agent-server 204 can then send a decryption key to a control component in the laptop computer of the other person.
The application agent can then obtain the decryption key from the control component and decrypt the content and rights object. The application can facilitate the display of the photograph in the display of the laptop computer by outputting the decrypted content to the display. The application agent can also provide additional security that the rights are not be breached by the other person, as the application agent can output the decrypted content in a format, such as that associated with raster vectors, that is not easily reproducible.
The application system can work in conjunction with a use tracking component on the laptop computer to monitor the use of the content to enforce the rights associated therewith. Once the rights to the content is exhausted or discontinued, the application agent can cause the content to be automatically deleted from the memory of the laptop computer. Thus, the application agent can facilitate the use of the content while at the same time managing the rights granted by the content owner, even though the content owner does not have access to the agent device after the content is transferred.
In another aspect, the application agent can compute a new signature associated with the erased data image. This signature can be sent to the server component 236 as confirmation of the erasure. Thus, if additional data is to be sent after the erasure or deletion of previously transferred data, the server component 236 can be aware of the status of the previously sent data. Further, the server component 236 can have actual notice of the erasure of the content.
In yet another aspect, the agent-server 204 can be implemented by an ASIC that can include all components associated with the agent-server 204, such as the processing component 212, memory 208, cryptographic component 218, as it is implemented as an embedded agent-server in firmware, for example. Moreover, the agent-server 204 can be implemented on a single integrated circuit chip, or in a chip set, in accordance with one other aspect of the disclosed subject matter.
Application agent 130 can also include a DRM rights enforcement component 330 that can ensure that the digital content is used by agent 110 (or similarly agent-server 204) in accordance with the rights associated with the content. For example, when a server sends digital content to agent 110, a rights object that can include information associated with the rights granted as to the digital content can be sent to the agent 110 as well. The DRM rights enforcement component 330 can analyze the rights object information and can ensure that the application agent 130 only permits use of the digital content consistent with the rights granted with regard to the content. The DRM rights enforcement component 330 can enforce various rights, such as the length of time the content can be used by the agent 110, and/or the number of times the content can be used, and/or deleting or erasing the content once the rights to the content are exhausted or the right to use the content is otherwise discontinued. Further, the DRM rights enforcement component 330 can receive information from the use tracking component 228, such as the length of time or number of times that content is used, and/or whether use rights are exhausted, to determine what course of action to take, if any, with regard to particular content.
For example, the rights object associated with particular digital content may specify that the digital content may only be viewed three times. The monitor component 420 can monitor the use of the digital content, and when the content is used, such information can be sent to the counter component 430. Once the content is used three times, the counter component 430 can communicate that information to the DRM rights enforcement component 330, which can act in accordance with the rights object information and prohibit further accessing of the digital content and further, can delete or erase the digital content from memory, if the rights object so provides.
Partitioning component 610 can divide the memory component 208 into multiple partitions 210. A partition can be created by specifying an identifier (e.g., GUID) that can be associated with the location of the memory component 208, the start address from whence the partition 210 should commence, and an end address within the memory component 208. Since a created partition 210 can typically span over multiple erase units the start and end addresses can be rounded to erase units. Moreover, since a partition 210 can typically exist in one of two states, “open” or “closed”, partitioning component 610 can, upon appropriate command being issued, change the state. Thus, where a partition 210 is in an “open” state, partitioning component 610 can, upon receipt of a command and with proper authentication, close the partition. Conversely, where a partition is set to a “closed” state, partitioning component 610 can place the partition in an “open” state upon receipt of an appropriate command and with proper authentication.
Access component 620 can assign and determine access types and rights to partitions created by partitioning component 610. Typically access types that can be assigned by the access component 620 to a partition can include, but are not limited to, “read”, “write”, and “change access right”. Further, access component 620 can also assign and ascertain access permissions associated with a partition. Access permissions can include one of: “ALWAYS, WHEN_OPEN, WITH_PKI, or WHEN—OPEN_OR_WITH PKI”, wherein access permission “ALWAYS” indicates that access to a partition is always allowed, “WHEN_OPEN” indicates that access to the partition is allowed only when a partition is in an “open” state, “WITH_PKI” denotes that access to a partition is permitted only when appropriate PKI authentication information has been supplied, and “WHEN_OPEN_OR_WITH PKI” connotes that access is allowed when a partition is in an “open” state or when appropriate PKI authentication information is supplied.
In addition, access component 620 can further set partition attributes on the “change access right” access type to: “ALWAYS”, “WITH_PASSWORD”, “WITH_PKI”, and “WITH_PASSWORD_OR_WITH PKI”, wherein a “change access right” attribute set to “ALWAYS” is indicative that access rights on a partition can always be changed, “WITH_PASSWORD” denotes that access rights can only be changed when an appropriate password is supplied by the entity requesting the change, “WITH_PKI” indicates that access rights to the partition can only be changed when appropriate PKI authentication information is supplied by the entity requesting the change, and “WITH_PASSWORD_OR_WITH_PKI” requires that the entity requesting the access change supply either an appropriate password or relevant PKI authentication information.
Authentication component 630 can receive and retrieve credential information (such as biometric information and/or password information) associated with an entity attempting to access one or more memory partitions. In addition authentication component 630 can manage and maintain credential information which can be stored in associated ROM 214 and/or RAM 216, and/or alternative such credential information can also be stored in one or more of the memory component 208. In addition to merely receiving credential information, authentication component 630 can also solicit additional credential information where the authentication component 630 deems such information may be necessary to appropriately establish the identity of the entity seeking access to a particular partition. Upon receipt of credential information from an entity, authentication component 630 can consult with stored credential information (e.g., in associated ROM 214, RAM 216, and/or memory component 208), and, upon identifying a correspondence between the supplied credential information and the stored credential information, can grant and/or indicate to access component 620 the appropriate access that should be accorded to the requesting entity.
Encryption/decryption component 640 can facilitate the utilization of one or more encryption/decryption facilities to ensure that communications between the control component 206 and the host processor 202 are not compromised by one of the many malicious extant viruses. The encryption/decryption component 640 can utilize one or more encryption/decryption mechanisms to obscure data communicated between control component 206 and the host processor 202. Examples of encryption/decryption mechanisms that can be employed to obscure the data can include utilization of hashing algorithms, public key encryption, elliptic curve encryption, and the like.
Further, the cryptographic component 218 can be utilized to encrypt and decrypt data associated with digital content and a rights object associated therewith to facilitate the management of rights associated with such content as well as the security of such content.
Password and PKI module 820 can solicit authentication data from an entity, and, upon the authentication data so solicited, can be employed, individually and/or in conjunction with information acquired and ascertained by the biometric module 810, to control access to memory 208. The authentication data can be in the form of a password (e.g. a sequence of humanly cognizable characters), a pass phrase (e.g., a sequence of alphanumeric characters that can be similar to a typical password but is conventionally of greater length and contains non-humanly cognizable characters in addition to humanly cognizable characters), a pass code (e.g. Personal Identification Number (PIN)), and the like. Additionally and alternatively, PKI data can also be employed by password and PKI module 820. PKI arrangements provide for trusted third parties to vet, and affirm, entity identity through the use of public keys that typically are certificates issued by the trusted third parties. Further, shared key authentication can be employed as well as any other type of authentication process available. Such arrangements enable entities to be authenticated to each other, and to use information in certificates (e.g., public keys) to encrypt and decrypt messages communicated between entities.
For example, an agent-server can be provided a private/public key pair from a certified authority (e.g., VeriSign®) during product manufacturing. Further an agent can be provided a private/public key pair from a certified authority during product manufacturing. If agent-server is intending to transfer digital content to the agent, PKI authentication can first be initiated and completed to ensure that the devices trust each other and the agent is the device to which agent-server wants to send the content.
For example,
Further, the access rights can support different security levels of authentication. Accordingly, some objects can utilize higher levels of protection than others. For example, the partition that stores the operating system can be protected more securely than a partition that stores a downloaded game. The access rights can also support remote users who do not assume that the host is trusted. Authentication of a remote user must work correctly even if the host is not trusted. In addition to the access rights, partitions can be made inaccessible when an associated mobile handset is not in a trusted state.
As shown in
Specifically, early boot and emergency code 902 includes access rights such that read access can be allowed but write (or erase) can be allowed only after PKI authentication 904. The operating system 906 can allow read access only after authorized boot confirmation and write (or erase) access only after PKI authentication 908. The operator and OEM trusted code and data 910 can allow read access only after authorized boot confirmation and write (or erase) access only after PKI authentication 912. Third party trusted code 914 can allow read access only after authorized boot confirmation and write (or erase) access only after User Password Permission 916. Secure or encrypted user data 918 can allow read and write (or erase) access only after user password permission is received 920.
Plain user data and suspicious code 922 can allow read and write (or erase) access without any security constraints 924. Secure device keys 926 can allow only the security processor (not shown) read access and can prohibit write (or erase) access 928. Secure certification and key storage 930 can allow only the security processor read access and allow write (or erase) access only after proper authentication 932. The read and write (or erase) security constraints disclosed in
Referring now to
Referring now to
As utilized herein, terms “component,” “system,” “interface,” and the like are intended to refer to a computer-related entity, either hardware, software (e.g., in execution), and/or firmware. For example, a component can be a process running on a processor, a processor, an object, an executable, a program, and/or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and a component can be localized on one computer and/or distributed between two or more computers.
Artificial intelligence based systems (e.g. explicitly and/or implicitly trained classifiers) can be employed in connection with performing inference and/or probabilistic determinations and/or statistical-based determinations as in accordance with one or more aspects of the disclosed subject matter as described herein. As used herein, the term “inference,” “infer” or variations in form thereof refers generally to the process of reasoning about or inferring states of the system, environment, and/or user from a set of observations as captured via events and/or data. Inference can be employed to identify a specific context or action, or can generate a probability distribution over states, for example. The inference can be probabilistic—that is, the computation of a probability distribution over states of interest based on a consideration of data and events. Inference can also refer to techniques employed for composing higher-level events from a set of events and/or data. Such inference results in the construction of new events or actions from a set of observed events and/or stored event data, whether or not the events are correlated in close temporal proximity, and whether the events and data come from one or several event and data sources. Various classification schemes and/or systems (e.g., support vector machines, neural networks, expert systems, Bayesian belief networks, fuzzy logic, data fusion engines . . . ) can be employed in connection with performing automatic and/or inferred action in connection with the disclosed subject matter.
Furthermore, the disclosed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosed subject matter. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. For example, computer readable media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips . . . ), optical disks (e.g., compact disk (CD), digital versatile disk (DVD) . . . ), smart cards, and flash memory devices (e.g., card, stick, key drive . . . ). Additionally, a carrier wave can be employed to carry computer-readable electronic data such as those used in transmitting and receiving electronic mail or in accessing a network such as the Internet or a local area network (LAN). Of course, those skilled in the art recognize many modifications may be made to this configuration without departing from the scope or spirit of the disclosed subject matter.
Moreover, the word “exemplary” is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs.
It is proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. It should be borne in mind, however, that all of these and similar terms are associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the foregoing discussion, it is appreciated that throughout the disclosed subject matter, discussions utilizing terms such as processing, computing, calculating, determining, and/or displaying, and the like, refer to the action and processes of computer systems, and/or similar consumer and/or industrial electronic devices and/or machines, that manipulate and/or transform data represented as physical (electrical and/or electronic) quantities within the computer's and/or machine's registers and memories into other data similarly represented as physical quantities within the machine and/or computer system memories or registers or other such information storage, transmission and/or display devices.
In order to provide a context for the various aspects of the disclosed subject matter,
With reference to
The system bus 1218 can be any of several types of bus structure(s) including the memory bus or memory controller, a peripheral bus or external bus, and/or a local bus using any variety of available bus architectures including, but not limited to, Industrial Standard Architecture (ISA), Micro-Channel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Card Bus, Universal Serial Bus (USB), Advanced Graphics Port (AGP), Personal Computer Memory Card International Association bus (PCMCIA), Firewire (IEEE 1394), and Small Computer Systems Interface (SCSI).
The system memory 1216 includes volatile memory 1220 and nonvolatile memory 1222. The basic input/output system (BIOS), containing the basic routines to transfer information between elements within the computer 1212, such as during start-up, is stored in nonvolatile memory 1222. By way of illustration, and not limitation, nonvolatile memory 1222 can include ROM, PROM, electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memory 1220 includes RAM, which acts as external cache memory. By way of illustration and not limitation, RAM is available in many forms such as SRAM, dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), Rambus direct RAM (RDRAM), direct Rambus dynamic RAM (DRDRAM), and Rambus dynamic RAM (RDRAM).
Computer 1212 also includes removable/non-removable, volatile/non-volatile computer storage media.
A user enters commands or information into the computer 1212 through input device(s) 1236. Input devices 1236 include, but are not limited to, a pointing device such as a mouse, trackball, stylus, touch pad, keyboard, microphone, joystick, game pad, satellite dish, scanner, TV tuner card, digital camera, digital video camera, web camera, and the like. These and other input devices connect to the processing unit 1214 through the system bus 1218 via interface port(s) 1238. Interface port(s) 1238 include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB). Output device(s) 1240 use some of the same type of ports as input device(s) 1236. Thus, for example, a USB port may be used to provide input to computer 1212, and to output information from computer 1212 to an output device 1240. Output adapter 1242 is provided to illustrate that there are some output devices 1240 like monitors, speakers, and printers, among other output devices 1240, which require special adapters. The output adapters 1242 include, by way of illustration and not limitation, video and sound cards that provide a means of connection between the output device 1240 and the system bus 1218. Other devices and/or systems of devices provide both input and output capabilities such as remote computer(s) 1244.
Computer 1212 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) 1244. The remote computer(s) 1244 can be a personal computer, a server, a router, a network PC, a workstation, a microprocessor based appliance, a peer device or other common network node and the like, and typically includes many or all of the elements described relative to computer 1212. For purposes of brevity, only a memory storage device 1146 is illustrated with remote computer(s) 1244. Remote computer(s) 1244 is logically connected to computer 1212 through a network interface 1248 and then physically connected via communication connection 1250. Network interface 1248 encompasses wire and/or wireless communication networks such as local-area networks (LAN) and wide-area networks (WAN). LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet, Token Ring and the like. WAN technologies include, but are not limited to, point-to-point links, circuit switching networks like Integrated Services Digital Networks (ISDN) and variations thereon, packet switching networks, and Digital Subscriber Lines (DSL).
Communication connection(s) 1250 refers to the hardware/software employed to connect the network interface 1248 to the bus 1218. While communication connection 1250 is shown for illustrative clarity inside computer 1212, it can also be external to computer 1212. The hardware/software necessary for connection to the network interface 1248 includes, for exemplary purposes only, internal and external technologies such as, modems including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards.
The system 1300 includes a communication framework 1350 that can be employed to facilitate communications between the client(s) 1310 and the server(s) 1330. The client(s) 1310 are operatively connected to one or more client data store(s) 1360 that can be employed to store information local to the client(s) 1310. Similarly, the server(s) 1330 are operatively connected to one or more server data store(s) 1340 that can be employed to store information local to the servers 1330.
What has been described above includes examples of aspects of the claimed subject matter. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the claimed subject matter, but one of ordinary skill in the art may recognize that many further combinations and permutations of the disclosed subject matter are possible. Accordingly, the disclosed subject matter is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims. Furthermore, to the extent that the terms “includes,” “has,” or “having,” or variations thereof, are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim.