The present invention relates to content access management in universal plug and play (UPnP) devices. More particular, the present invention relates to systems for providing improved content security on UPnP media servers and other devices through access management.
This section is intended to provide a background or context to the invention that is recited in the claims. The description herein may include concepts that could be pursued, but are not necessarily ones that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, what is described in this section is not prior art to the description and claims in this application and is not admitted to be prior art by inclusion in this section.
UPnP technology defines an architecture for pervasive peer-to-peer network connectivity of intelligent appliances, wireless devices, and personal computers of all form factors. UPnP is designed to bring easy-to-use, flexible, standards-based connectivity to ad-hoc or unmanaged networks, whether in the home, in a small business, public spaces, or attached to the Internet. UPnP technology provides a distributed, open networking architecture that leverages TCP/IP and Web technologies to enable seamless proximity networking, in addition to enabling control and data transfer among networked devices.
The UPnP Device Architecture (UDA) is designed to support zero-configuration, “invisible” networking and automatic discovery for a breadth of device categories from a wide range of vendors. With UDA, a device can dynamically join a network, obtain an IP address, convey its capabilities, and learn about the presence and capabilities of other devices.
The Content Directory Service (CDS) is the UPnP entity that aggregates the information about the media content available in the UPnP Network. The primary functions of the CDS are to enable clients to browse the content on the server and to obtain detailed information about individual content objects.
Currently, there is no user-friendly method for managing access to individual content items stored in a media server device such as a mobile telephone or a standalone home media server. One of the current weaknesses in the CDS is the inability to distinguish between the originators/creators of objects stored in the CDS others who not the originators or creators.
UPNP CDS versions 1.0 and 2.0 provide a method for restricting access to individual items stored in a device. This is accomplished by placing an attribute called “restricted” and “writeStatus” on individual items. However, this system does not include any metadata for providing access granularity on a per-user basis.
The present invention provides a CDS security service which, in a user friendly manner, specifies which users of a media server or other UPnP device own which content, as well as permitting the owners to control who is permitted to read the content. A CDS account manager is used for defining user accounts and associated rights, such as validity periods and default rights. The CDS account manager is used by the security console or authorized control points which own the media server. A CDS content manager is used for manipulating the rights to objects. The CDS content manager is used by a registered security aware control point (i.e., a control point associated with a user account) and can be used to change read and write access lists on the object.
More broadly, the present invention provides for security middleware that is used on top of UPnP security in order to define user accounts, with the purpose of binding user ID's with device ID's. This middleware can also provide other functionality, such as providing device resource allocation per user account on each device. For example, the middleware can be used to allocate disk space, memory, quality of service (QoS) levels, and priority to specific actions when a device is congested. Other types of allocations are also possible.
The present invention comprises a method, computer program product, and a device for granting a control point certain access to an electronic device containing content objects. This system comprises receiving an identification of the control point; querying an owner of the electronic device as to the amount of access that should be granted to the control point; and, depending upon a response by the owner to the query, granting the control point selective access to the electronic device. Depending upon the owner's response to the query, no access rights can be granted for the control point to the electronic device, access rights can be granted to the control point as a guest to the electronic device, and access rights can be granted to the control point as a normal user to the electronic device. It is also possible for non-security aware legacy control points to be granted certain limited rights to the electronic device.
With the present invention, the CDS can work with users rather than individual control points. A number of control points can be grouped together as representing an individual user, and each of the control points will all get the same permissions, i.e., the permissions of the user. Therefore, the user interface for end users is simplified and, at the same time, security is improved. With the present invention, it is easy for a user to select one of his or her own pictures or other content items on the media server and, if so desired, allow that content item to be shared with another user of the media service, while permitting the other user only to read the content item. The present invention also provides enough flexibility so that legacy UPnP control points are capable of utilizing the same accounts. The present invention can be used in a wide variety of products that are media oriented, and particularly products that are designed to manage content.
These and other advantages and features of the invention, together with the organization and manner of operation thereof, will become apparent from the following detailed description when taken in conjunction with the accompanying drawings, wherein like elements have like numerals throughout the several drawings described below.
The present invention provides a CDS security service which, in a user friendly manner, specifies which users of a media server or other UPnP device own which content, as well as permitting the owners to control who is permitted to read the content. A CDS account manager is used for defining user accounts and associated rights, such as validity periods and default rights. The CDS account manager is used by the security console which owns the media server. A CDS content manager is used for manipulating the rights to objects. The CDS content manager is used by a registered security aware control point (i.e., a control point associated with a user account) and can be used to change read and write access lists on the object.
The CDS portion 140 of the media server 110 includes two new extensions, as well as an account list 170. The first new extension is a content manager 150, while the second new extension is an account manager 160. The account manager 160 is used for adding and removing accounts and is controlled by the security console. Because no state information is maintained at the security console 100, it does not matter whether the security console 100 is inside or outside of the media server 110. The account manager 160 can also be used by the security console 100 to categorize new control points to existing accounts. This is possible because the security console 100 can query the account manager 160 using its account manager control point 120 and obtain the list of existing accounts (i.e., the account list 170).
The content manager 150 is used to manipulate the CDS objects (i.e. elements and attributes used to restrict the access to the object such as “restricted”, “writeStatus” or new proposed elements for including account and permission information associated with the object) and assign permissions to objects stored on the media server 110. A security aware control point can be used to make modifications on the media server content because it hosts a content manager control point. The media server 110 can authenticate a calling control point and restrict it to modifying access rights only on the objects it itself owns on the media server 110.
The present invention involves extensions to the CDS or CDS portion 140 to allow it to recognize that a control point which is accessing it represents a particular user. This user is represented by an account on the media server 110. The present invention makes it possible for a media server 110 to securely determine that a particular control point represents a particular user. This can occur because of the manner in which new control points are granted access to the media server 110.
At this point in time, the new control point 300 observes that the media server 110 is security aware. Therefore, the new control point 300 needs to find the security console which owns that media sever 110 in order to obtain access rights to the media server 110. At some point in time, the new control point 300 receives a UPnP service advertisement from a security console 100, and the new control point assumes this to be the device which owns the media server 110. At step 330, the new control point invokes a “presentkey” action of the security console 100 and passes its own public key to the security console 100, along with a friendly name such as “Alice.” The hash of this public key is used as the unique identifier of that security aware control point.
At step 340, a wizard starts and a dialog is displayed to the user of the security console 100 (i.e., the owner of the media server 110). The dialog informs the owner that the new control point 300 is trying to access the media server 110. The dialog asks the owner if the new control point 300 should be a) rejected (and possibly blacklisted); b) allowed as a guest; or c) allowed as a normal user of the media server 110. The user of the security console 100 can then decide, based upon, for example, the public key hash of the control point 100, the friendly name (Alice), or some other identification, the amount of access that should be granted to the control point 100.
If the new control point 300 is not granted access, and if a decision was made to blacklist the user of the new control point 300 (Alice), that user will not be able to even attempt to access the media server 110 after this point. If the owner of the media server 100 indicates that the new control point 300 should be allowed as a guest, then at step 350, an interaction happens between the security console 100 and the CDS's account manager 160. The security console 100 informs the account manager 160 that the new control point 300 (whose ID is the public key hash for the new control point 300) should be added as an allowed control point for the guest account on the media server 110.
If the owner of the media center 110 determines that the new control point 300 is to be allowed as a normal user of the media server 110, then at step 360, the security console 100 sends a request to the account manager 160 and asks for the list of known accounts (the account list 170) on the media server 110. This is an action supported by the account manager 160. The list of CDS accounts is provided to the security console 100 at step 365. The account list 170 is displayed to the user of the security console 100, and the user is asked if the new control point 300 should be added to one of the existing accounts or if a new private account be made for the new control point 300. An example text, shown at 370, asks if the new control point 300 should be added to the “Family” account or if a new account should be created, for example a “friends” account (for friends of the owner of the media server 110) or an “Alice” account that is only for control points controlled by Alice. If the user of the security console 100 decides to treat the new control point 300 as a family member which would not require a separate storage area on the media server 100, the user would choose to add the new control point 300 to the family account. This is represented at step 375. This would be followed by an interaction between the security console 100 and the account manager 160. This interaction subsequently results in the ID of the new control point 300 being added to the list of control point IDs which are recognized as representing the family account.
In another scenario, the user could select that a new account be created for the new control point 300. In this case, the security console 100 would then request that the account manager 160 create the account and update the account list 170 with the new account name and the single control point ID associated with that account.
In cases where the new control point 300 is granted access as a guest or is allowed as a normal user, the new control point 300, once granted access, can create objects on the media server 100. This is represented at step 385. The objects created are marked with metadata which indicate that they are owned by the account of the new control point 300 of Alice. For example, if “Alice” was added to the family account, the metadata will identify the objects as “Family.” One embodiment of the present invention extends the CDS with new metadata to specify, for each stored object, the set of accounts which are allowed to read it and which are allowed to write it. It is also possible for the user of the new control point 300 (Alice) to then set access control rights on all objects owned by the family account in a very fine grained manner, e.g., by saying that guests should be allowed to read them. This is represented at 390. At step 395, the new control point 300 can set object access control parameters for its own objects.
In addition to the implementations depicted in
The various communication devices may communicate using transmission technologies including, but not limited to, Code Division Multiple Access (CDMA), Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Transmission Control Protocol/Internet Protocol (TCP/IP), Short Messaging Service (SMS), Multimedia Messaging Service (MMS), e-mail, Instant Messaging Service (IMS), Bluetooth, IEEE 802.11, etc. A communication device may communicate using various media including, but not limited to, radio, infrared, laser, cable connection, and the like.
The present invention is described in the general context of method steps, which may be implemented in one embodiment by a program product including computer-executable instructions, such as program code, executed by computers in networked environments. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of program code for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps.
Software and web implementations of the present invention could be accomplished with standard programming techniques with rule based logic and other logic to accomplish the various database searching steps, correlation steps, comparison steps and decision steps. It should also be noted that the words “component” and “module,” as used herein and in the claims, is intended to encompass implementations using one or more lines of software code, and/or hardware implementations, and/or equipment for receiving manual inputs.
The foregoing description of embodiments of the present invention have been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the present invention to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of the present invention. The embodiments were chosen and described in order to explain the principles of the present invention and its practical application to enable one skilled in the art to utilize the present invention in various embodiments and with various modifications as are suited to the particular use contemplated.
Number | Date | Country | |
---|---|---|---|
60757816 | Jan 2006 | US |