Mobile device applications have become a focus for application design and innovation. Open and customizable mobile device platforms enable third party application designers to create and distribute general and specialized applications. Thus, communication network operators and device manufacturers have an increasingly smaller amount of control over how the applications are created, distributed, and used. While this has encouraged innovation, accountability in application use and control has not been strictly maintained. Furthermore, as mobile devices become more advanced, these applications increasingly use the mobile device and network resources.
Due to the lack of control over application creation and use, serious risks to mobile devices and communication networks arise. Applications may unintentionally or even purposely misuse device and/or network resources. For example, applications may improperly use device resources, such as a battery, CPU, and/or memory. This can cause significant performance problems and potentially compromise device security. Additionally, applications may misuse communication network resources. A rogue application may intentionally or accidentally consume network data resources and have adverse effects on both the device's user and the network operator. Applications may bypass network entitlements and thus cause violations of network terms of services. Current preventative and reactive approaches may help in certain instances, but they are often insufficient to adequately cover the expanding mobile device application field.
The present disclosure is directed to controlled access by applications to mobile device resources, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.
The following description contains specific information pertaining to implementations in the present disclosure. The drawings in the present application and their accompanying detailed description are directed to merely exemplary implementations. Unless noted otherwise, like or corresponding elements among the figures may be indicated by like or corresponding reference numerals. Moreover, the drawings and illustrations in the present application are generally not to scale, and are not intended to correspond to actual relative dimensions.
As shown in
Device 110 is shown connected to communication network server 120 over network 130. Communication network server 120 may correspond to a server available over network 130 to device 110 including application policies, updates, communication network resources, and other processes and features for controlling access by applications to device and/or network resources. Communication network server 120 may contain databases and memory for storage of policies, updates, application and device analytics, and other relevant data. Communication network server 120 may also contain processors capable of performing the processes required by communication network server 120. While communication network server 120 is shown as one server, it is understood that communication network server 120 may correspond to one server or a plurality of servers.
Communication network server 120 includes network resources 122. Network resources 122 may correspond to access to network components, such as radio access network resources, core network resources, wireless spectrum, and/or other network components. Network resources 122 may be universal or specific to device 110. For example, network resources 122 may correspond to data transfer speeds and consumption limits. Thus, device 110 may be limited to certain data consumption plans and/or features based on network resources 122.
Communication network server 120 is shown in communication with policy server 124. Policy server 124 may correspond to a push and/or pull mechanism including necessary processors and memory, for enforcing policy rules necessary to control access by applications to device and/or network resources. Thus, policy server 124 may include policy rules determining what applications are given access to device and/or network resources, as well as the level of access. Furthermore, policy server 124 may include a policy editor and/or policy updater necessary for changing application access. Policy server 124 may include an analytic function for receiving and processing analytics corresponding to device applications. While policy server 124 is shown separate from communication network server 120, in other implementations policy server 124 may be part of or reside within communication network server 120.
Device 110 is connected to communication network server 120 over network 130. Network 130 may correspond to a network connection, such as a wireless phone service communication network, broadband network, or other network capable of sending of receiving data. Network 130 may allow for user 102 to utilize device 110 to transmit and receive data.
User 102 may utilize an application on device 110. In cases where the application is given unlimited access to device and/or network resources, the application may over consume the resource. For example, an application utilizing excessive signaling may cause performance degradation; while excessive data consumption may adversely effect data plan limits of user 102. However, as will be discussed further in reference to
Moving to
According to
Memory 214 of
Policies 242 may also designate other device and/or network resources to be given a discretionary access control. Certain device and/or network resources will be assigned application access and use by an administrator. Thus, device and/or network resources designated in policies 242 may allow application access to be assigned by users. Policies 242 may be defined by a single application or group of applications. Policies 242 contains information necessary to identity restricted access by an application. Thus, policies 242 may contain package, process, and application identifiers as well as device and/or network resource identifiers. Policies 242 may also contain actions performed by policy manager 244 when restricted access is detected, such as launching another application, enabling access to a different resource, modifying the resource access entitlement, recording analytics 248, displaying an advertisement for increased network resource entitlement or mobile device application, or other designated action.
In order to utilize policies 242, application policy unit 240 also contains policy manager 244 and policy enforcer 246. Policy manager 244 may correspond to a component running in a user space of the device operating system of device 210 that loads, interprets, executes, and updates policies 242. Thus, policy manager 244 may read policies 242 in memory 214, update policies 242 when required, and respond to requests from policy enforcer 246 when access to device and/or network resources are requested. Policy manager 244 may also verify entitlement to resources of current and running applications and store results as analytics 248 for data processing and/or policy updates by an outside server.
Application policy unit 240 of
Application policy unit 240 further contains analytics 248. Analytics may correspond to a set of information containing application access requests, device resource use, device conditions, or other data relevant to application access to protected device and/or network resources. Application policy unit 240 may transmit analytics 248 over network 230 to a server, such as a communication network server, analytics server, or other server, for analysis of analytics 248. Analytics 248 may be used to change and adapt policies 242 for changing device and/or network resources. Analytics 248 may also be used to determine the effectiveness of current use policies in policies 242. Further, analytics 242 may also be used by application designers in order to tune and adjust their applications for better and more efficient device use or to comply with policies 242.
Memory 214 of device 210 further includes applications 250. Applications 250 may correspond to device applications and processes that a user may install and run on device 210. Applications 250 may be downloaded over network 230 or installed by a user through user input 206. As previously discussed, network 230 may correspond to a communication network, such as a wireless phone service communication network, broadband network, or other network capable of sending of receiving data. User input 206 may correspond to a connection to another device and/or memory unit, such as a personal computer, an external hard drive, USB flash drive, or other memory unit.
Device 210 of
Device 210 is also shown with display 218 connected to processor 212. Display 218 may correspond to a visual display unit capable of displaying application interfaces to a user. Display 218 may correspond to a liquid crystal display, plasma display panel, cathode ray tube, or other display. Processor 212 is configured to access display 218 in order to display application interfaces for use. For example, display 218 may present an interface for application policy unit 240. Additionally, display 218 may render and display content, such as advertisements and notifications from policies 242. While
Moving to
According to
As seen in
When application 350a requests access to device resource 316a, policy enforcer 346 enforces policy control over protected device resource 316a. Thus, when policy enforcer 346 intercepts access requests to device resource 316a, policy enforcer 346 will send appropriate information to policy manager 344 in order to determine the appropriate access level of application 350a to device resource 316a. Policy enforcer 346 may inform policy manager 344 of the process and application identifiers as well as the device and network resource requested.
Policy manager 344 may be run in the native user space of device operating system environment 310. Policy manager 344 may load, interpret, and execute the access control policies in policies 342. As shown in
Device resource 316a is further connected to network resource 322. Device resource 316a and network resource 322 may correspond to the appropriate radio and data transfer function of a communication network. Network resource 322 is further connected to communication network server 320, such as a wireless communication network server. Thus, in the implementation of
Also shown in policy manager 344 of
Policy manager 344 is shown in communication with policy server 324. Thus, policy manager 344 may transmit analytics 348 to policy server 324. Analytics 348 may then be used by policy server 324 to update policies 342, analyze device and network resource consumption, and provide historical data to communication network server 320. Analytics 348 may also be used to provide targeted content and/or advertisement by communication network server 320 to specific users depending on device and/or network resource consumption.
As previously discussed, device resource 316b is not a protected resource under policies 342. Thus, as can be seen in
In order to prevent unauthorized access to device resource 316a, policy enforcer 346 may be configured to prevent access to device resource 316a if it does not receive access information from policy manager 344. Thus, policy enforcer 346 may be configured to always deny access in cases where policy manager 344 is compromised. Policy enforcer 346 may also use data security techniques, such as digital signatures, to ensure the integrity of policy manager 344 and policies 342. Additionally, policy manager 344 may be configured to send periodic “heartbeat messages,” or policy manager status messages to policy server 324. As policy server 324 is either in communication with or resides on communication network server 320, if policy server 324 does not receive a “heartbeat message” when a specific network resource is requested, communication network server 320 may prevent access to network resource 322 by device resource 316a.
Referring to
Flowchart 400 continues with determining whether the first resource 316a/316b/324 of the plurality of resources 124/216 is classified as a protected resource 316a (420). The determining may be performed by processor 212 of device 110/210 running policy enforcer 246/346. The determining may be clone by policy enforcer 246/346 after receiving the request to access device resource 316a/316b. Policy enforcer 246/346 may determine device resource 316a is classified as protected, while device resource 316b is unprotected.
Policy enforcer 246/346 may be called by the device kernel when application 350a attempts to access protected resources 316a. After determining resource 316a is protected, identifying information of application 350a may be sent to policy manager 244/344. However, if application 350b attempts to access unprotected resource 316b, policy enforcer 246/346 is not utilized and the application 350b is given access to device resource 316b, pending any system administrator access controls.
The method of flowchart 400 continues with if the first resource 316a/316b/324 of the plurality of resources 124/216 is classified as the protected resource 316a, identifying an application authorization for the first resource 316a of the plurality of resources 124/216 (430). Processor 212 of device 110/210 may perform the identifying by running policy manager 244/344 and utilizing policies defined in policies 242/342. As previously discussed, policy manager 244/344 may be a component running in the device user space of device operating system environment 310. Policy manager 244/344 may be responsible for checking policies 242/342 and identifying an application authorization for application 350a to device resource 316a. The application authorization may include permission to access device resource 316a, access level to device resource 316a, and/or permission and access to network resource 322.
Policy enforcer 346 may communicate application identifiers to application 350a when intercepting an access request to device resource 316a. Thus, policy manager 244/344 may have access to application identifiers and corresponding requests to device resource 316a. Policy manager 244/344 may check policies 242/342 to determine the application authorization to device resource 316a and may also save and transmit access request information and application information as analytics 248/348. Policies 242/342 may be a defined by a single application or group of applications and may exist as a file that is encrypted and digitally signed for confidentiality and integrity.
Flowchart 400 continues with configuring access by the one 350a of the plurality of applications 250 to the first resource 316a of the plurality of resources 124/216 according to the application authorization (440). The configuring may be performed by processor 212 of device 110/210 running policy manager 244/344. Policy manager 244/344 may determine an application authorization for application 350a using policies 242/342. After determining the application authorization, policy manager 244/344 may instruct policy enforcer 246/346 to configure access to device resource 316a and/or network resource 322 based on policies 242/342.
Thus, using the above description, controlled access by applications to mobile device resources may be more easily enforced. Using the above implementations gives a strong yet flexible resource by device manufacturers and communication network operators to control valuable resources. This allows users to configure access to basic device and network resources while preventing possible overuse and breaches of terms of service and/or accepted use policies.
From the above description it is manifest that various techniques can be used for implementing the concepts described in the present application without departing from the scope of those concepts. Moreover, while the concepts have been described with specific reference to certain implementations, a person of ordinary skill in the art would recognize that changes can be made in form and detail without departing from the scope of those concepts. As such, the described implementations are to be considered in all respects as illustrative and not restrictive. It should also be understood that the present application is not limited to the particular implementations described above, but many rearrangements, modifications, and substitutions are possible without departing from the scope of the present disclosure.
This application claims priority of U.S. Provisional Application No. 61/605,080 filed on Feb. 29, 2012, which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61605080 | Feb 2012 | US |