Embodiments of the invention relate to data processing systems, and more particularly to securely configuring devices using profiles.
In one embodiment described herein, a method for configuring a wireless device includes receiving a request, from the wireless device, to create configuration profile, the request being received by a data processing system of an enterprise, creating, in response to the request, the configuration profile for the wireless device, the configuration profile being designed to configure the wireless device for communication with one or more data processing systems of the enterprise, and wherein the creating includes signing the configuration profile to allow the wireless device to authenticate the configuration profile, and transmitting the configuration profile to the wireless device. The communication may be through a network of devices, and the configuration profile may be transmitted with a connectionless network protocol.
In one embodiment described herein, a method for configuring a wireless device includes receiving, at the wireless device, an input for a request to establish communication with at least one data processing system of an enterprise, and receiving, in response to the request, a configuration profile for the wireless device, the configuration profile being designed to configure the wireless device for communication with the at least one data processing system of the enterprise, wherein the configuration profile is signed to allow the wireless device to authenticate the configuration profile. In one embodiment described herein, a method for configuring a device includes receiving a first configuration profile comprising a first configuration and a first certificate and a second certificate, verifying the first configuration profile with the first certificate, receiving a user input indicating to accept the first configuration profile, configuring the device according to the first configuration, receiving a second configuration profile comprising a second configuration, verifying the second configuration profile with the second certificate and updating the device according to the second configuration, wherein the user is unaware of the updating.
In one embodiment, a user accesses an enterprise website and selects a configuration setting on the enterprise website and the enterprise website creates the first configuration profile using the configuration setting. In one embodiment, receiving the first configuration profile comprises transferring the first configuration profile from one of the following: a website, a media management application, a FTP site, a SMS message, and an e-mail message.
The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements.
Various embodiments and aspects of the inventions will be described with reference to details discussed below, and the accompanying drawings will illustrate the various embodiments. The following description and drawings are illustrative of the invention and are not to be construed as limiting the invention. Numerous specific details are described to provide a thorough understanding of various embodiments of the present invention. However, in certain instances, well-known or conventional details are not described in order to provide a concise discussion of embodiments of the present inventions.
Reference in the specification to one embodiment or an embodiment means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearance of the phrase “in one embodiment” in various places in the specification do not necessarily refer to the same embodiment.
Unless specifically stated otherwise, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a data processing system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required machine-implemented method operations. The required structure for a variety of these systems will appear from the description below. In addition, embodiments of the present invention are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of embodiments of the invention as described herein.
At least certain embodiments of the inventions may be part of a digital media player, such as a portable music and/or video media player, which may include a media processing system to present the media, a storage device to store the media and may further include a radio frequency (RF) transceiver (e.g., an RF transceiver for a cellular telephone) coupled with an antenna system and the media processing system. In certain embodiments, media stored on a remote storage device may be transmitted to the media player through the RF transceiver. The media may be, for example, one or more of music or other audio, still pictures, or motion pictures.
The portable media player may include a media selection device, such as a touch screen input device, pushbutton device, movable pointing input device or other input device. The media selection device may be used to select the media stored on the storage device and/or the remote storage device. The portable media player may, in at least certain embodiments, include a display device which is coupled to the media processing system to display titles or other indicators of media being selected through the input device and being presented, either through a speaker or earphone(s), or on the display device, or on both display device and a speaker or earphone(s).
Embodiments of the inventions described herein may be part of other types of data processing systems, such as, for example, entertainment systems or personal digital assistants (PDAs), or general purpose computer systems, or special purpose computer systems, or an embedded device within another device, or cellular telephones which do not include media players, or devices which combine aspects or functions of these devices (e.g., a media player, such as an iPod®, combined with a PDA, an entertainment system, and a cellular telephone in one portable device), or devices or consumer electronic products which include a multi-touch input device such as a multi-touch handheld device or a cell phone and handheld computer with a multi-touch input device.
The particular enterprise may, when creating the configuration profile, sign the profile with its own digital certificate (or have another service sign the profile with a certificate) to prove that the configuration profile is from the enterprise (or otherwise is authorized to be used to configure the device receiving the profile to communicate with a data processing system owned or controlled by the enterprise). The signed profile assures the device that it can rely upon the profile to configure the device for secure (e.g., fully authenticated at both ends) communication between the device and one or more data processing systems of the enterprise.
The enterprise may be a commercial for-profit entity (e.g., Fed Ex), or a government entity (e.g., the U.S. Treasury), or a non-profit entity (e.g., PBS) or an educational entity (e.g., M.I.T.), etc. Once the profile configures the device, it can participate in two-way communication with data processing systems of the enterprise in a secure manner knowing that such systems have been initially authenticated by the initial configuration profile (and vice versa).
VPN 115 and WPA2 120 provide configuration information specific to accessing a virtual private network and a wireless network, respectively. In one embodiment, a virtual private network provides a communication channel between the device and an enterprise data processing system. In one embodiment, data transmitted between the device and the enterprise data processing system through the virtual private network is encrypted. In one embodiment, WPA2 120 includes a root of trust, overcoming a shortcoming in the WPA2 design. Profile 130 includes user restrictions 135 and certificate 140. Certificate 140 operates similarly to certificate 125. In one embodiment, different signing entities provide certificate 125 and certificate 140. User restrictions 135 form part of a policy setting mechanism for the device. In one embodiment, restrictions 135 prevent a cellular phone user from using the phone to make long distance calls. In one embodiment, restrictions 135 prevent the user from using a digital camera built into device 105. In one embodiment, restriction 135 prevents a media player on the device from playing digital media files that fail DRM verification. In one embodiment, restrictions 135 restrict a web-enabled device to a single proxy server for web browsing. In one embodiment, restriction 135 enforces a larger PIN length, which increases security of the device by making it more difficult to penetrate a locked device.
At block 215, the method presents the profile to the user and how the profile will configure the device. It will be understood that block 215 may precede block 210 in time. For example, an enterprise seeking to enforce its ownership of the device would configure the device in several ways. One way would be to provide WPA2 and VPN access for the device. Another would be to restrict certain functions of the device. The configuration might provide a root of trust certificate for the device, allowing the device to authenticate anything using the enterprise as a signature authority. The configuration might provide an identity corresponding to the user of the device, which would allow the user to sign documents and otherwise provide a digital signature via the device.
At block 220, the method receives a user input accepting the profile. In one embodiment, the user must accept configuration profiles in their entirety. In another embodiment, the user may accept configuration profiles piecemeal. For example, an enterprise asserting ownership and setting policy on a device may prefer that users of the enterprise devices accept a configuration entirely. Alternatively, a configuration profile containing several wallpapers for the background of the device display may be accepted piecemeal (i.e., only the desired wallpaper is accepted). At block 225, the method configures the device according the configuration profile received by the method at block 205. In one embodiment, a user may subsequently undo a configuration profile and remove the configuration from the device, or deactivate it while leaving the configuration profile present in a data storage component of the device.
At block 310, the method authenticates the configuration profile using a certificate contained in the profile. At block 315, the method presents the profile, potential configuration, and the request for automatic updates to the user of the device. It will be understood that block 315 may precede block 310. At block 320, the method receives input from a user accepting the configuration. At block 325, the method configures the device according to the accepted configuration. In one embodiment, an enterprise uses an initial configuration profile to implement policy, network access, etc. on a device. Over time, elements of the initial configuration profile may require changing, such as the VPN access information, the enterprise root of trust, etc. The user, having accepted the initial configuration, is likely to accept the updated configuration as well. The update certificate provided by the initial configuration profile allows the device to determine that an update configuration profile is an authentic update to a previously accepted initial configuration profile.
At block 330, the device receives a configuration profile signed with the update certificate received at block 305, such as through transfer means 145 in
At block 410, the user selects, through a user interface provided by the enterprise website, one or more settings, services, and information sources. For example, the user may select a VPN configuration, an identity, a root of trust certificate for the enterprise, a proprietary application used by the enterprise on devices of this kind, a file containing the enterprise phone listing, etc. In one embodiment, the user selects from a list of pre-existing configurations. For example, an enterprise IT group may create configurations. In one embodiment, the user is restricted as to which configurations or settings the user can select.
At block 415, the enterprise website creates a configuration profile containing the settings, services, and information sources selected by the user at block 410. Using the enterprise key, the website signs the configuration profile and inserts the certificate into the profile, allowing the device to authenticate the profile. At block 420, the device downloads the signed configuration profile from the website, through the web browser on the device, for use by the profile service. In one embodiment, the profile service is associated with a configuration profile user interface providing high level and detailed views and management features for managing configuration profiles on the device. In one embodiment, a media management application, such as Apple iTunes®, creates the signed profile. In one embodiment, the enterprise website is accessed from a data processing system other than the device and the signed configuration profile is sent to the device through, for example, transfer means 145 in
In one embodiment, update certificate 625 indicates to the device (and through the device, to the user) that the enterprise may update profile 605 through subsequent profiles signed with certificate 625. In one embodiment, certificate 625 is the same certificate as certificate 635. In one embodiment, certificate 625 and certificate 635 are certificates formatted according to the X.509 standard. In one embodiment, user ID 630 is an identity or digital signature provided by the enterprise to the user. In one embodiment, ID 630 is a PKCS#12 container for a storing private keys and accompanying public certificates, protected with a symmetric key. ID 630 is described in greater detail below in conjunction with
In one embodiment, provisioning profile 645 is included in profile 605 to authenticate an application on the device and to provide the device with the entitlements corresponding to the application. For example, a user might download a proprietary application used by the enterprise on the device. In one embodiment, the device is not permitted to execute the code image of the application until it has been verified and even if it has been verified, the entitlements may specify limits on the use of the application. Verification of an application may be provided with a provisioning profile. In one embodiment, entitlements of the application are included by the enterprise in the application verification. Application entitlements describe the extent to which an application may directly and indirectly utilize the functionality of a device. For example, an application may not be entitled to use the network interface on the device or the application may only be allowed to operate for a limited period of time, or the camera is disabled when the application is executing or the cellular telephone is disabled when the application is executing, etc. These entitlements may be created on an application by application basis (e.g. each application is restricted by its own associated entitlement) or the entitlements may establish how a group of applications behave on a device (e.g. a common set of restrictions for the applications in the group).
The one or more profiles described herein may be created on a host data processing system or server data processing system and then transmitted and installed on a device, such as a wireless device shown in
In one embodiment, a host data processing system may determine that a configuration profile should be removed from a wireless device. The host data processing system may transmit a command to the wireless device which causes the wireless device to render the configuration profile inoperable on the wireless device. For example, if a wireless device is stolen, the host data processing system could disable the wireless device by rendering the configuration profile inoperable. An inoperable configuration profile may deny user access to the device, delete all data from the device, etc. In another embodiment, the host data processing system may transmit a command to the wireless device causing the wireless device to automatically transmit location information to the host data processing system (e.g., GPS coordinates).
In one embodiment, the user interface shown in
The source list view region 1103 may display device records, provisions (e.g., provisioning profiles for applications), configuration profiles (e.g., to configure a VPN connection between a device and one or more servers of an enterprise), and connected devices. The user may select items displayed within the region 1103. After the selection, the user may perform an operation (e.g., profile creation, editing, removal, distribution, etc.) on the selected item. The selection list view region 1105 may display items relating to an item selected in the region 1103. For example, if a user selects an item, such as a provisioning profile or a configuration profile, in the region 1103, further information and/or commands relating to the item selected in region 1103 can be displayed in the selection list view region 1105. If the item selected in region 1103 is a configuration profile, the region 1105 may display information relating to that profile, such as the type of communication configured by the profile (e.g., a secure VPN) and other information (e.g., see
The detail view region 1107 may be a tabbed interface to display, edit, or create the context of the selected item (e.g., to display and edit a provisioning profile or a configuration profile). The detail view region 1107 may be a tabbed interface to display, edit, and create device record information (e.g., owner and/or contact information), profiles (e.g., allows for complete creation and/or management of configuration profiles and/or provisioning profiles), and connected devices (e.g., allows for management of configuration profile distribution).
As shown in
The mass storage 711 is typically a magnetic hard drive or a magnetic optical drive or an optical drive or a DVD RAM or a flash memory or other types of memory systems which maintain data (e.g. large amounts of data) even after power is removed from the system. Typically, the mass storage 711 will also be a random access memory although this is not required. While
The term “memory” as used herein is intended to encompass all volatile storage media, such as dynamic random access memory (DRAM) and static RAM (SRAM). Computer-executable instructions can be stored on non-volatile storage devices, such as magnetic hard disk, an optical disk, and are typically written, by a direct memory access process, into memory during execution of software by a processor. One of skill in the art will immediately recognize that the term “machine-readable storage medium” includes any type of volatile or non-volatile storage device that is accessible by a processor.
A display controller and display device 807 provide a visual user interface for the user; this digital interface may include a graphical user interface which is similar to that shown on a Macintosh computer when running OS X operating system software. The system 800 also includes one or more wireless transceivers 803 to communicate with another data processing system, such as the system 700 of
The data processing system 800 also includes one or more input devices 813 which are provided to allow a user to provide input to the system. These input devices may be a keypad or a keyboard or a touch panel or a multi touch panel. The data processing system 800 also includes an optional input/output device 815 which may be a connector for a dock. It will be appreciated that one or more buses, not shown, may be used to interconnect the various components as is well known in the art. The data processing system shown in
In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope of the invention as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.
This application claims priority to co-pending U.S. Provisional Patent Application No. 61/033,755 filed on Mar. 4, 2008, which provisional application is incorporated herein by reference in its entirety; this application claims the benefit of the provisional's filing date under 35 U.S.C. §119(e).
Number | Date | Country | |
---|---|---|---|
61033755 | Mar 2008 | US |