Patent Description:
Government and private organizations have invested millions of dollars into products and resources for preventing unauthorized access to personal, proprietary and/or classified data. Data security schemes and algorithms must be particularly robust when dealing with prevalence of mobile computing devices in use on an organization's network. Restricting access to data and files can be particularly important when the mobile computing devices are under the control of various users and are freely transported between public spaces and spaces controlled by the organization.

<CIT> relates to a mobile computing device comprising an RFID component receiving and storing a control policy when in range of an RFID reader. The control policy includes operating instructions for the mobile computing device while in location of a proximity signal received. A power state of the device may be controlled based on the control policy. A signature of the control policy is checked when read/received from the RFID component before setting up the control policy locally.

<CIT> relates to anti-theft protection for a mobile device, which may be shut off if a theft thereof is detected. A transition between an armed state and an unarmed state may be performed after communication with an NFC device.

These and other features and advantages of particular embodiments of the system and method for location-based security will now be described by way of exemplary embodiments to which they are not limited.

The scope of the present disclosure is best understood from the following detailed description of exemplary embodiments when read in conjunction with the accompanying drawings. The following figures are included in the drawings.

Further areas of applicability of the present disclosure will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description of exemplary embodiments is intended for illustration purposes only and is, therefore, not intended to necessarily limit the scope of the disclosure.

This description provides exemplary embodiments only, and is not intended to limit the scope, applicability or configuration of the mobile computing device, system, and method for power interruption of the present disclosure. Rather, the ensuing description of the embodiments will provide those skilled in the art with an enabling description for implementing embodiments of the mobile computing device, system, and method of the present disclosure.

Exemplary embodiments of the present disclosure are directed to systems and methods for controlling the power states of a mobile computing device (e.g., computer or system) based on the validity of a control policy. The control policy specifies a functional configuration of the mobile computing device based on security requirements associated with a physical or geographic location within which the mobile computing device is operating or has moved into for operation. The mobile computing device can include any portable, movable, or otherwise transportable computing device. The mobile computing device can be configured with a boot control program that initializes and tests software and hardware components according to a first functional configuration. As will be disclosed in detail herein, a control policy can be used to initiate a second functional configuration of the mobile computing device according to operational and/or security requirements specified for the physical or geographic location. The mobile computing device can be configured to execute software for executing and retrieving the control policy from a storage location in a remote or external device. The control policy can include instructions for changing the functional configuration of the mobile computing device such that one or more software and/or hardware components of the mobile computing device <NUM> can be disabled or not initialized by the processor. Further, the control policy can specify a change in power state of the mobile computing device such that power is interrupted upon enforcement. Still further, the control policy could specify under certain operational and location specific conditions that the hard disk and/or non-volatile memory devices be wiped. The boot loader program is program code, which when executed by the processor allows the control policy stored to be accessed from memory and the validity of the control policy to be evaluated. The power state of the mobile computing device is controlled based on the results of the evaluation, where the current state of the mobile computing device is maintained, the mobile computing device is rebooted, the mobile computing device is moved into a powered off, or the mobile computing device is rebooted and a disk wipe is initiated.

With reference to <FIG> and <FIG>, exemplary embodiments of the present disclosure provide a system and method of location-based security, in which RFID components <NUM> (e.g., RFID tags) removably or fixedly attached or affixed to a mobile computing device <NUM> comprise microcontrollers (e.g., at least one hardware processor), and the communications infrastructure <NUM> (e.g., internal and external serial buses) of mobile computing devices <NUM> exchange location information between the RFID components <NUM> and the firmware and operating system(s) <NUM> of the mobile computing device <NUM>. As used herein, a mobile computing device <NUM> includes at least one hardware processor <NUM> configured to execute computer-readable programs and an operating system <NUM> tangibly recorded on a non-transitory computer-readable recording medium ("memory") <NUM> (e.g., ROM, hard disk drive, optical memory, flash memory, etc.). Examples of a mobile computing device <NUM> include a laptop, tablet computer, smartphone, etc. as known in the art.

<FIG> is a block diagram of components of a system for location-based security according to an exemplary embodiment of the present disclosure. In <FIG>, the mobile computing device <NUM> is shown as having an RFID component <NUM> affixed thereto. The RFID component <NUM> may be removably or fixedly attached or affixed to the mobile computing device <NUM>. For example, the RFID component <NUM> may be comprised within the housing containing the electronic circuitry of the mobile computing device <NUM>. In an exemplary embodiment, the RFID component <NUM> may have its own hardware processor <NUM> separate from the hardware processor(s) of the mobile computing device <NUM>. In addition, the RFID component <NUM> can have its own non-transitory memory <NUM> (e.g., ROM, hard disk drive, optical memory, flash memory, etc.) separate from the memory <NUM> of the mobile computing device <NUM>, and a transceiver <NUM>. In an exemplary embodiment, the RFID component <NUM> does not have its own hardware processor <NUM>, but contains the memory <NUM> and the transceiver <NUM>. The RFID component <NUM> may be passive, active, or battery-assisted passive. An active RFID component <NUM> has an on-board battery and periodically transmits a signal containing a data message (the message can include, e.g., identification information of the RFID component, etc.). A battery-assisted passive RFID component <NUM> has a small battery on board and is activated when in the presence of an RFID reader <NUM>. A passive RFID component <NUM> is cheaper and smaller because it has no battery; instead, the RFID component <NUM> uses the radio energy transmitted by the RFID reader <NUM>. The RFID component <NUM> contains at least two parts: an integrated circuit for storing and processing information, modulating and demodulating a radio-frequency (RF) signal, collecting DC power from the incident reader signal, and other specialized functions; and a transceiver <NUM> (e.g., antenna) for receiving and transmitting the signal. In an exemplary embodiment, the transceiver <NUM> can include two antennas in different polarizations such as linear and circular or horizontal and vertical. A single antenna can also be used. The RFID component <NUM> can operate, for example, in a frequency range between <NUM> and <NUM>. The sensitivity of the antenna is important to the operation of the RFID component <NUM>, and a minimum receive gain of the antenna greater than -2dB should be maintained to ensure proper operation. In an exemplary embodiment, the antenna provides a roughly omni-directional radiation pattern. Due to regional banding of the ~<NUM> ISM frequency space, the antenna(s) may be regionally designed. For instance, the North American ISM band is <NUM>-<NUM>. With a transmitter at 28dBm complying with FCC and UHF RFID Gen2 Specifications, this should yield a free space range of approximately <NUM> meters.

The RFID component <NUM> information (i.e. tag information) is stored in a non-volatile memory, e.g., memory <NUM>. The RFID component <NUM> includes either fixed or programmable logic for processing the transmission and sensor data, respectively. In an exemplary embodiment, the RFID component <NUM> includes an Impinj MonzaX-<NUM> Dura RFID integrated circuit or similar integrated circuit. <FIG> illustrates only one RFID reader <NUM> and RFID component <NUM> for clarity of illustration. However, it is to be understood that several RFID readers <NUM> may be equipped in a room or other area to which the mobile computing device may be carried. An RFID reader <NUM> transmits a radio signal, which may be encoded, to interrogate the RFID component <NUM>. The RFID component <NUM> receives the message from the RFID reader <NUM> and then responds with its identification information. The RFID reader <NUM> can include a non-transitory memory device that can store the proximity signal (which can include the location data and/or a control policy), a hardware processor (e.g., CPU), and a transceiver.

The RFID reader(s) <NUM> send a proximity signal (e.g., location-related information includes, for example, geographic coordinates, configured zones, and/or proximity information)) to the RFID component <NUM> embedded within or affixed to the mobile computing device <NUM>, indicating the defined physical location of the RFID reader(s) <NUM> and/or the mobile computing device <NUM>. The location information can be transmitted to the RFID component <NUM> while the mobile computing device <NUM> is in both the powered-on and powered-off states. The message stored in the RFID component's memory <NUM> is accessed by the hardware processor <NUM> of the RFID component <NUM>. The hardware processor <NUM> serves three functions: <NUM>) processes the location information provided by the RFID component <NUM> against corresponding control or management policies to determine the appropriate power state for the mobile computing device <NUM>; <NUM>) communicate with the power controls of the mobile computing device <NUM> to manage power states (e.g., force power off, enable power on, and disable power on); and <NUM>) pass the location information to the mobile computing device's serial buses <NUM>. In an exemplary embodiment, the RFID reader <NUM> can adjust its transmission frequency to avoid standard frequencies.

<FIG> is a block diagram illustrating a mobile computing device <NUM> architecture in accordance with an exemplary embodiment. A person having ordinary skill in the art may appreciate that embodiments of the disclosed subject matter can be practiced with various computer system configurations, including multi-core multiprocessor systems, minicomputers, mainframe computers, computers linked or clustered with distributed functions, as well as pervasive or miniature computers that may be embedded into virtually any device. For instance, at least one processor device and a memory may be used to implement the above described embodiments.

A hardware processor device as discussed herein may be a single hardware processor, a plurality of hardware processors, or combinations thereof. Hardware processor devices may have one or more processor "cores. " The terms "computer program medium," "non-transitory computer readable medium," and "computer usable medium" as discussed herein are used to generally refer to tangible media such as a memory device <NUM> and a memory device <NUM>.

Various embodiments of the present disclosure are described in terms of this exemplary mobile computing device <NUM>. After reading this description, it will become apparent to a person skilled in the relevant art how to implement the present disclosure using other computer systems and/or computer architectures.

Hardware processors <NUM> and <NUM> may be special purpose or general purpose processor devices. The hardware processor device <NUM> may be connected to a communication infrastructure <NUM>, such as a bus, message queue, network, multi-core message-passing scheme, etc. The network may be any network suitable for performing the functions as disclosed herein and may include a local area network (LAN), a wide area network (WAN), a wireless network (e.g., Wi-Fi) such as Bluetooth, a mobile communication network, a satellite network, the Internet, fiber optic, coaxial cable, infrared, radio frequency (RF), networks using the global positioning system (GPS) platform, networks using ultra-wideband or pulse radio, any other suitable communication network, or any combination thereof. Other suitable network types and configurations will be apparent to persons having skill in the relevant art. The mobile computing device <NUM> may also include a memory <NUM> (e.g., random access memory, read-only memory, etc.), and may also include a memory <NUM>. The memory <NUM> and the memory <NUM> may be read from and/or written to in a well-known manner. In an exemplary embodiment, the memory <NUM> and the memory <NUM> (and memory <NUM>) may be non-transitory computer readable recording media.

Data stored in the mobile computing device <NUM> (e.g., in the memory <NUM> and the memory <NUM>) may be stored on any type of suitable computer readable media, such as optical storage (e.g., a compact disc, digital versatile disc, Blu-ray disc, etc.), magnetic tape storage (e.g., a hard disk drive), or solid-state drive. An operating system <NUM> and one or more applications <NUM> can be stored in the memory <NUM>.

In an exemplary embodiment, the data may be configured in any type of suitable database configuration, such as a relational database, a structured query language (SQL) database, a distributed database, an object database, etc. Suitable configurations and storage types will be apparent to persons having skill in the relevant art.

The mobile computing device <NUM> may also include a communications interface <NUM>. The communications interface <NUM> may be configured to allow software and data to be transferred between the mobile computing device <NUM> and external or remote devices. Exemplary communications interfaces <NUM> may include a modem, a network interface (e.g., an Ethernet card), a communications port, a PCMCIA slot and card, etc. Software and data transferred via the communications interface <NUM> may be in the form of signals, which may be electronic, electromagnetic, optical, or other signals as will be apparent to persons having skill in the relevant art. The signals may travel via a communications path <NUM>, which may be configured to carry the signals and may be implemented using wire, cable, fiber optics, a phone line, a cellular phone link, a radio frequency link, etc..

Computer program medium and computer usable medium may refer to memories, such as the memory <NUM> and the memory <NUM>, which may be memory semiconductors (e.g., DRAMs, etc.). These computer program products may be means for providing software to the mobile computing device <NUM>. Computer programs (e.g., computer control logic) may be stored in the memory <NUM> and/or the memory <NUM>. Such computer programs, when executed, may enable mobile computing device <NUM> to implement the present methods as discussed herein. In particular, the computer programs, when executed, may enable hardware processor device <NUM> to implement the method illustrated by <FIG>, or similar methods, as discussed herein. Accordingly, such computer programs may represent controllers of the mobile computing device <NUM>. Where the present disclosure is implemented using software, the software may be stored in a computer program product or non-transitory computer readable medium and loaded into the mobile computing device <NUM> using a removable storage drive or communications interface <NUM>.

The mobile computing device <NUM> may also include various hardware devices, such as a camera <NUM>, a microphone (not shown), a power controller <NUM>, a peripheral interface <NUM>, and input/output ports <NUM> such as USB, firewire, thunderbolt ports, etc. As described in greater detail below, the RFID component <NUM> may be located within and integrated with the mobile computing device <NUM>, or the RFID component <NUM> can be external to the mobile computing device <NUM> and connected thereto by a signal transmission means such as a wire(s), wireless communications, etc..

Lastly, the mobile computing device <NUM> may also include a display interface <NUM> that outputs display signals to a display unit <NUM>, e.g., LCD screen, plasma screen, LED screen, DLP screen, CRT screen, or other suitable display device as desired.

The operating system(s) <NUM> of the mobile computing device <NUM> can receive RFID-based location information from either the serial buses <NUM> directly, if running as a native operating system <NUM> or as a pass-through from the hypervisor (not shown), if running on a guest virtual machine. The location-based security techniques of the present disclosure integrate with the operating system(s) <NUM> to control access to device hardware and device power states using the defined policy rules. Access to one or more applications <NUM> and one or more files stored or running on the operating system(s) <NUM> are also enabled or disabled using the device management functionality of the location-based security system and method of the present disclosure. A file can be, for example, a document, picture, video, database records, etc..

In an exemplary embodiment shown in <FIG>, the mobile computing device <NUM> includes the memory device <NUM> having computer-readable instructions tangibly recorded thereon. The mobile computing device <NUM> can also include a hardware processor <NUM> configured to execute the computer-readable instructions recorded on the memory device <NUM>. The mobile computing device <NUM> can also include an RFID component <NUM> that includes a transceiver <NUM> (e.g., an antenna) configured to receive a proximity signal from at least one RFID reader <NUM> when the RFID component <NUM> is within a predetermined range (e.g., within a couple feet or meters) of the at least one RFID reader <NUM>. The predetermined range can be configured based on (<NUM>) the processing and/or telecommunication capabilities of the mobile computing device <NUM>, RFID component <NUM> and/or RFID reader(s) <NUM>, and/or (<NUM>) based on selectable distances (e.g., <NUM> feet, <NUM> feet, <NUM> feet) for specific control objectives, and/or (<NUM>) location restrictions such as the physical size of a room, building, or segment of a building (e.g., the second floor of the building). The mobile computing device <NUM> can also include a memory device <NUM> configured to store the proximity signal. In an exemplary embodiment, the hardware processor <NUM> is configured to, upon executing the instructions recorded on the memory device <NUM>, control at least one operation of the mobile computing device <NUM> in accordance with the proximity signal received by the transceiver <NUM> of the RFID component <NUM> from the at least one RFID reader <NUM>.

The memory device <NUM> can be in the form of a hard disk, optical disk, flash memory (e.g., EEPROM, SSN, NAND), or any other suitable memory device including memory chips as desired. The memory device <NUM> can include one or more devices having addressable locations for storing data related to applications, software, and information, and/or data related to software and hardware components of the mobile computer device.

<FIG> is a block diagram illustrating a memory device in accordance with an exemplary embodiment of the present disclosure.

As shown in <FIG>, the memory device <NUM> can store a boot control program <NUM> (e.g., firmware) according to a Basic Input/Output System (BIOS) format or Unified Extensible Firmware Interface (UEFI) specification; a control policy <NUM> for access by the mobile computing device <NUM> during system boot; a first bootloader (e.g., firmware application) <NUM>, an operating system runtime policy module (OSRPM) (e.g., software application) <NUM>, an operating system (OS) boot loader (e.g., software application) <NUM>, a power control module <NUM>, encryption keys <NUM>, and application program modules (e.g., applications, software modules, etc.) <NUM>.

The first bootloader <NUM> is the first program (e.g., firmware application) in the boot sequence of the boot control program <NUM>. The first bootloader is initiated at system boot and is an application that configures the processor <NUM> to retrieve the control policy from a memory device located on the computing device or from a device/process connected to a network and evaluates the control policy for validity. The OS Runtime Policy Module <NUM> is a program module initiated by the computer operating system when the mobile computing device is powered on and configures the processor <NUM> to retrieve the control policy from the memory device <NUM>, <NUM> of the mobile computing device or from a device/process connected to the network and evaluate its validity. The OS boot loader <NUM> is a program module (e.g., software application) initiated by the first bootloader <NUM> at system boot for causing the processor <NUM> to execute the computer's native OS. The power control module <NUM> is program code initiated by the OSRPM <NUM> for monitoring communication between the power controller <NUM> and the OSRPM <NUM>. The encryption keys are provided for decrypting the control policy when received from the RFID reader <NUM> or over the network <NUM>.

In an exemplary embodiment, the hardware processor <NUM> is configured to control at least one of: (<NUM>) at least one hardware component (e.g., memory device <NUM>, display interface <NUM>, camera <NUM>, microphone, peripheral interface <NUM>, communications interface <NUM>, ports <NUM>, etc.) of the mobile computing device <NUM>; (<NUM>) at least one operating system <NUM> recorded on the memory device <NUM>; (<NUM>) at least one hypervisor recorded on the memory device <NUM>; and (<NUM>) at least one application program <NUM> executable on the mobile computing device <NUM>.

In an exemplary embodiment, the proximity signal includes a control policy including identifications of operations of the mobile computing device <NUM> that are performable (e.g., by the mobile computing device <NUM>). For example, according to the control policy, the hardware processor <NUM> is configured to enable or disable access to at least one of an executable application <NUM> stored in the memory device <NUM>, a file stored in the memory device <NUM>, at least one operating system <NUM> of the mobile computing device <NUM>, and a peripheral hardware component (e.g., external hard drive, server, external disk drive, etc.) with which the mobile computing device <NUM> is configured to communicate. In addition, the control policy provides instructions that configure the hardware processor <NUM> for placing the mobile computing device into a specified power state. That is, when the mobile computing device <NUM> is within a certain range of the RFID reader <NUM>, the RFID reader <NUM> sends the proximity signal, which includes the control policy, to the RFID component <NUM>. Because the control policy identifies a power state along and in addition which operations, devices, files, or applications can be accessed and/or used by the mobile computing device <NUM>, the hardware processor <NUM> is able to control the computer to be powered off, powered on, or placed in sleep mode or hibernation mode, and control the operations and/or access to devices, files, applications, etc. of the mobile computing device <NUM> in accordance with the control policy that was received.

According to an exemplary embodiment of the present disclosure, the mobile computing device <NUM> can be placed into a brick state when the proximity signal is no longer received by the transceiver <NUM> of the RFID component <NUM>, or an operating signal, which for this embodiment can be in the form of a ping or other suitable monitoring signal, is no longer received by the communications interface <NUM> or peripheral interface <NUM> of the mobile computing device <NUM>. In the brick state, the computing device will terminate execution of the first computer-readable instructions such that the mobile computing device <NUM> no longer receives input from peripheral devices or installed components and suspends execution of any processes. According to an exemplary embodiment, termination of execution of the first computer-readable instructions can include initiating a reboot of the hardware processor <NUM>, such that when the control policy cannot be validated the mobile computing device <NUM> is powered off.

In an exemplary embodiment, a server can store multiple control policies for individual RFID readers <NUM> and/or mobile computing devices <NUM>, and each control policy can be sent to the appropriate RFID reader <NUM> to which the control policy applies. The control policies can be updated on the server, and the updated control policies can be pushed by the server to the appropriate RFID readers <NUM>. When an RFID reader <NUM> receives its intended control policy, it is saved in the memory <NUM> of the RFID reader <NUM> where it can subsequently be transmitted to the RFID component <NUM> of the mobile computing device <NUM> by the transceiver <NUM>.

In an exemplary embodiment, the proximity signal includes location-related data indicating a current physical location of at least one of the RFID component <NUM> and the at least one RFID reader <NUM>. In an exemplary embodiment, the location-related data can identify the reader that transmitted the proximity signal (by name, MAC ID, serial number, code, room name, etc.). In an exemplary embodiment, the location-related data can identify a defined zone (i.e. an area of space in which the mobile computing device <NUM> is located). In an exemplary embodiment, the location-related data can be geographical coordinates. For example, an RFID reader <NUM> can be disposed on an exterior of the building or in an interior of the building such as a room, walkway, or other space having a security specification or requirement with respect data access or communication. According to an exemplary embodiment, the RFID reader <NUM> can be disposed on or in a mobile or portable object such as a vehicle or portable computing device.

In an exemplary embodiment, the memory device <NUM> has recorded thereon a control policy for the mobile computing device <NUM>, the control policy including identifications of operations of the mobile computing device <NUM> which are performable based on the physical location of the mobile computing device <NUM>. The hardware processor <NUM> is configured to compare the location-related data with the control policy, and determine which operations of the mobile computing device <NUM> are permitted to be performed based on the comparison.

Based on the comparison of the location-related data with the control policy, the hardware processor <NUM> is configured to control access to at least one hardware component (e.g., memory device <NUM>, display interface <NUM>, camera <NUM>, microphone, peripheral interface <NUM>, communications interface <NUM>, ports <NUM>, etc.) of the mobile computing device <NUM>. This control also extends to enabling or disabling access to at least one of an executable application <NUM>, <NUM> stored in the memory device <NUM>, a file stored in the memory device <NUM>, at least one operating system <NUM> of the mobile computing device <NUM>, and a peripheral hardware component with which the mobile computing device <NUM> is configured to communicate.

In an exemplary embodiment, the transceiver <NUM> of the RFID component <NUM> is configured to receive an update signal from at least one RFID reader <NUM>, the update signal containing an update to at least one of the identifications included in the control policy recorded on the memory device <NUM>. The hardware processor <NUM> is configured to update the control policy recorded in the memory device <NUM> in accordance with the update contained in the update signal.

According to another exemplary embodiment, the communications interface <NUM> of the mobile computing device <NUM> is configured to receive the update signal from at least one remote device/process <NUM> connected to the network <NUM>. The hardware processor <NUM> under control of the OSRPM is configured to update the control policy <NUM> recorded in the memory device <NUM> in accordance with the update contained in the update signal.

In an exemplary embodiment, at least one of the control policy and the proximity signal are encrypted. Thus, the location data received from the RFID reader <NUM> or over the network <NUM> can be encrypted. For example, for RF communication the control policy and/or the proximity signal can be encrypted using an AES-<NUM> GCM algorithm and signed with an ECDSA Curve P-<NUM> signature or with a similar encryption scheme. In an exemplary embodiment, certificates for the ECDSA process are distributed as part of the system configuration and are assigned based on organizational region. Policy signatures can be generated, for example, on the message bytes <NUM> to <NUM>. In an exemplary embodiment, encryption is performed on the entirety of the message bytes <NUM> to <NUM> after the signature is generated. Pre-distributed key material unique to each RFID tag is stored in the device TPM and on a server. The key material is hashed with a NONCE that is part of the RFID transmission to generate individual session keys for each of the written policies. In an exemplary embodiment, a single policy can be used for both the UEFI/firmware of the mobile computing device <NUM> and operating system <NUM> of the mobile computing device <NUM>, so both have cryptographic capabilities capable of decrypting the entire message and verifying the signature. Key storage can be handled in a TPM <NUM> capable TPM. In an exemplary embodiment, all messages of the RFID component <NUM> except for the NONCE(s) are encrypted, for example using the scheme above.

The messages used in the present disclosure can be stored on the memory device <NUM> of the RFID component <NUM>. In an exemplary embodiment, the memory device <NUM> is <NUM>,<NUM> bytes in storage size, and stores the control policy along with a CRC16, ECDS curve P-<NUM> generated signature and a <NUM> bit random NONCE unique to that configuration.

For network communication, the update can be encrypted using symmetric key or public key schemes, along with algorithms including message authentication codes or digital signatures. Encryption keys <NUM> stored in the memory device <NUM> are provided for decrypting the control policies upon retrieval from the RFID reader <NUM>, external devices <NUM>, and remote devices/processes <NUM>.

In an exemplary embodiment, as shown in <FIG>, a system includes the mobile computing device <NUM>, at least one least one RFID reader <NUM>, and the RFID component <NUM>. The at least one RFID reader <NUM> is configured to communicate wirelessly with the RFID component <NUM> of the mobile computing device <NUM> and transmit the proximity signal to the RFID component <NUM> of the mobile computing device <NUM> when the RFID component <NUM> is within the predetermined range. In an exemplary embodiment, at least one server (not shown) is configured to transmit the update signal to the RFID reader <NUM> for updating the control policy recorded on the memory device <NUM> when the mobile computing device <NUM> is in communicative range with the RFID reader <NUM>.

In an exemplary embodiment, the memory device <NUM> has recorded thereon computer-readable instructions and a control policy for the mobile computing device <NUM>, the control policy including identifications of operations of the mobile computing device <NUM> which are performable based on the location-related data of the received proximity signal.

<FIG> also shows another exemplary embodiment in which the system includes the mobile computing device <NUM>, a network <NUM>, an external device <NUM>, and at least one remote device/process <NUM> connected to the network <NUM>. The mobile computing device <NUM> can be connected to the network <NUM> via the communications interface <NUM>. As already discussed, the communication interface <NUM> can provide wireless or wired connection to the network <NUM>, which is used for accessing and receiving the control policy from the device/process <NUM>. The received control policy is stored in the memory device for later retrieval and enforcement by the hardware processor <NUM> under control of the appropriate application or program code.

In an exemplary embodiment, the RFID component <NUM> includes a hardware processor <NUM> configured to execute computer-readable instructions recorded on the memory device <NUM>, compare the location-related data with the control policy, determine which operations of the mobile computing device <NUM> are permitted to be performed based on the comparison, and generate an operation signal identifying the operations of the mobile computing device <NUM> which are determined to be performable. The RFID component <NUM> is configured to transmit the operation signal to the hardware processor <NUM> of the mobile computing device <NUM>, and the hardware processor <NUM> is configured to control at least one operation of the mobile computing device <NUM> in accordance with the operation signal received from the transceiver <NUM> of the RFID component <NUM>.

According to an exemplary embodiment, the hardware processor <NUM> is configured to control a power state of the mobile computing device <NUM> based on an operation signal received from the transceiver <NUM> of the RFID component <NUM> or from the device/process <NUM> on the network <NUM>. The hardware processor <NUM> is configured to retrieve the control policy from a remote/process device <NUM> on the network, store the control policy in the memory device (e.g., Computer Memory <NUM> or RFID Memory <NUM>), and evaluate the control policy for expired, corrupted, or malicious instructions. Based on the evaluation results, the hardware processor <NUM> enforces the power state instructions provided in the control policy.

In an exemplary embodiment shown in <FIG>, a system includes, for example, the mobile computing device <NUM>, at least one RFID reader <NUM>, and the RFID component <NUM>. The at least one RFID reader <NUM> is configured to communicate wirelessly with the RFID component <NUM> of the mobile computing device <NUM> and transmit the proximity signal to the RFID component <NUM> of the mobile computing device <NUM> when the RFID component <NUM> is within the predetermined range. At least one server is configured to transmit the update signal to the at least one RFID reader <NUM> for updating the control policy recorded in the memory device <NUM> when the mobile computing device <NUM> is in communicative range with the at least one RFID reader <NUM>.

<FIG> illustrates a method of controlling a power state of a computer in accordance with an exemplary embodiment of the present disclosure. The method steps are performed by the hardware processor <NUM> under the control of one or more of the native OS <NUM>, applications <NUM>, or program code stored in the memory device <NUM>. As provided in the details that follow, one or a combination of the program modules can control the hardware processor <NUM> to manage or control the power states of the mobile computing device <NUM> when the mobile computing device <NUM> is in a powered on state or a powered off state and based on triggers received from a stand-alone external device <NUM> or received from an remote device/process <NUM> over the network <NUM>.

As shown in <FIG>, the hardware processor <NUM> accesses the control policy <NUM> and stores the control policy in memory (step <NUM> ("s400")). Control policy access can be triggered by receipt of a proximity signal, which includes the control policy, from an RFID reader <NUM> or receipt of an update or control signal from an external device <NUM>, or a remote device/process <NUM> connected to a network. The hardware processor <NUM> retrieves the control policy <NUM> from memory (s402) and determines whether the control policy <NUM> is valid (s404). At s406, the processor places the mobile computing device in one of plural states based on whether the control policy is valid. <FIG> and <FIG> illustrate exemplary variations of the general process of <FIG> based on whether the mobile computing device <NUM> starts in a powered on or powered off state. In addition these processes can be initiated based on external or network triggers, such as an update or control signal received by the hardware processor <NUM> via the first bootloader <NUM> or the OSRPM <NUM>. The external trigger can involve communication of the control policy between the RFID component <NUM> of the mobile computing device <NUM> and an RFID reader <NUM>. The network trigger can involve communication of the control policy between the mobile computing device <NUM> and a remote device/process <NUM> over a network <NUM>.

The exemplary methods illustrated in <FIG> and <FIG> will first be described for an exemplary mobile computing device <NUM> configured for controlling the power state based on an external trigger such as communication of an update signal, operation signal, or the control policy <NUM> via an RFID reader <NUM>.

As shown in <FIG>, the RFID component <NUM> receives the control policy <NUM> from an RFID reader <NUM> and stores the control policy in RFID memory <NUM> (s502). The control policy <NUM> is included in a proximity signal received by the transceiver <NUM> of the RFID component <NUM> from the RFID reader <NUM>. Receipt and storage of the control policy can include decrypting the control policy prior to storage using the encryption keys <NUM> stored in memory <NUM>. The RFID transceiver <NUM> receives the control policy <NUM> when the RF signal emitted by the RFID reader <NUM> meets at least a threshold power level. If the RFID component <NUM> is in proximity of plural RFID tags <NUM>, the RFID transceiver <NUM> selects the RF signal having the highest signal level, which represents the RFID reader <NUM> closest in proximity to the RFID component <NUM>.

When the mobile computing device <NUM> is turned on, the hardware processor <NUM> accesses the boot control program <NUM> stored in memory <NUM> (s504) and initiates the boot process (s506). During a boot sequence the hardware processor <NUM> executes a first bootloader <NUM> (s508) for retrieving the control policy <NUM> from the RFID memory <NUM> (s510) and evaluating it for expired, corrupted, or malicious instructions (s518). The evaluation process determines whether the control policy <NUM> is valid. By executing the first boot loader <NUM> the hardware processor <NUM> is configured to evaluate various properties of or information contained in the control policy <NUM> including, for example, information identifying a physical location for enforcement of the control policy <NUM>, a date or date range of enforcement, a user or device identifier against which the policy is to be enforced, formatting of the control policy <NUM>, syntax, and/or various other attributes or parameters of the control policy <NUM> as desired. The information and/or properties of the control policy <NUM> can be compared with verified values to determine whether the control policy <NUM> has expired, is corrupted, or is malicious (e.g., execution of the control policy may result in an adverse condition or event in the mobile computing device or network).

If the evaluation results in a valid control policy <NUM> (s520), the hardware processor <NUM> under the control of the first bootloader <NUM> determines whether the valid control policy <NUM> allows boot up of the mobile computing device (s522). If the boot up of the mobile computing device is allowed, the first bootloader <NUM> controls the hardware processor <NUM> to initiate the OS bootloader <NUM> (s524). On the other hand, if the hardware processor <NUM> determines that boot up of the mobile computing <NUM> is not allowed, the first bootloader <NUM> does not initiate the OS bootloader <NUM> controls the hardware processor <NUM> to interrupt power and force a power off of the mobile computing device <NUM> (S526).

If the evaluation results in the control policy <NUM> being found not valid, the hardware processor <NUM> next determines whether a wipe threshold has expired (s528). If the wipe threshold is exceeded, the hardware processor <NUM> is controlled by the first bootloader <NUM> to dump the encryption keys <NUM> from trusted memory and initiate a disk wipe (s530). On the other hand, if the wipe threshold is not expired, the hardware processor <NUM> controls the power controller <NUM> to enter a power off state (s526).

As shown in <FIG>, the mobile computing device <NUM> is in the powered on state (s600). At s602, the RFID component <NUM> receives the control policy <NUM> from an RFID reader <NUM> and stores the control policy in RFID memory <NUM>. As already discussed, access to the control policy <NUM> by the RFID component <NUM> is triggered by receipt of the proximity signal from the RFID reader <NUM>. Receipt and storage of the control policy can also include performing a decryption process using the encryption keys <NUM> stored in memory <NUM>. The OSRPM <NUM> controls the hardware processor <NUM> to retrieve the control policy from the RFID memory (s604) and evaluate the control policy for expired, corrupted, or malicious instructions to determine its validity (s612, s614). The validity determination performed by the OSRPM is the same determination performed by the first bootloader <NUM> in the method of <FIG>. If under the control of the OSRPM the hardware processor <NUM> determines that the control policy <NUM> is valid (s614), the hardware processor <NUM> next evaluates the control policy <NUM> to determine whether it allows a power ON state of the mobile computing device <NUM> (s616). If the control policy <NUM> allows the mobile computing device <NUM> to be in a power ON state, the hardware processor <NUM> maintains the current state of the mobile computing device <NUM> (e.g., powered on state) and does not initiate a power interrupt (s618). On the other hand, if the control policy <NUM> does not allow the power on state the hardware processor <NUM>, under the control of the OSRPM <NUM>, initiates a power interrupt and controls the power controller <NUM> to enter a power off state (s620). In addition, the communication between the OSRPM <NUM> and the power control module <NUM> stops. The hardware processor <NUM> forces the power controller <NUM> to power off via the power control module <NUM> (s622).

If the control policy is not valid, the hardware processor <NUM> (s614), under control of the power control module <NUM>, determines whether the wipe threshold is expired (s624). If the wipe threshold is expired, the hardware processor <NUM> under the control of the OSRPM <NUM> initiates a reboot of the mobile computing device <NUM> and the OSRPM <NUM> stops communication with the power control module <NUM> (s626). Upon reboot, the hardware processor <NUM> executes the boot control program <NUM> (s628). Under control of the boot control program <NUM>, the hardware processor <NUM> initiates the first boot loader <NUM> in the boot sequence (s630). Under control of the first bootloader <NUM>, the hardware processor <NUM> dumps encryption keys <NUM> from trusted memory and initiates a disk wipe (s632).

According to an exemplary embodiment, the external trigger can be a signal, which includes the control policy that is received via the communications interface <NUM>, peripheral interface <NUM>, USB/Firewire/Thunderbolt Ports <NUM>, the camera <NUM>, or other manner of connecting to an external device <NUM>. The control policy when received can be decrypted and stored in memory device <NUM> or other suitable memory device in or connected to the mobile computing device <NUM>.

The processes of <FIG> and <FIG> will now be described for an exemplary mobile computing device <NUM> configured for controlling the power state based on a network trigger such as communication of the control policy over a network <NUM> via a remote device/process <NUM>.

As shown in <FIG>, the mobile computing device <NUM> starts in a powered off state (s500). Upon power up, the hardware processor <NUM> initiates the boot process by executing boot control program <NUM> and initiates the first bootloader <NUM> as already discussed in s502 to s508. At s512, the hardware processor <NUM> under the control of the first bootloader <NUM>, initiates communication over the network <NUM> with a remote device/process <NUM>. The communication with the network <NUM> is established via the communication interface <NUM>, for example, or other suitable interface provided on the mobile computing device <NUM>. The mobile computing device <NUM> receives, receives the control policy <NUM> from the remote device/process <NUM> via the communication interface <NUM> (s514) and stores the control policy <NUM> in the memory device <NUM> (s516). Under control of the first bootloader <NUM>, the hardware processor <NUM> accesses the control policy <NUM> from the memory device <NUM> and evaluates the control policy <NUM> for expired, corrupted, or malicious instructions in a validity determination. In performing the validity determination and enforcement of the control policy, the hardware processor <NUM> performs s518 to s530 which have already been discussed in detail.

Turning again to <FIG>, the mobile computing device <NUM> is initially in a powered on state (s600) and the processor is executing the OSRPM <NUM>. Under the control of the OSRPM <NUM>, the mobile computing device <NUM> establishes communication over the network <NUM> with a remote device/process <NUM> (s606). Using the communication interface <NUM> and under the control of the OSRPM <NUM>, the hardware processor <NUM> retrieves the control policy <NUM> from the remote device/process <NUM> (s608), stores the control policy <NUM> in the memory device <NUM> (s610), and evaluates the control policy <NUM> for expired, corrupted, or malicious instructions in determining its validity (s612). Receipt and storage of the control policy can also include performing a decryption process using the encryption keys <NUM> stored in memory <NUM>. The validity determination and the resulting enforcement actions have already been discussed in detail with respect to s614 to s632.

<FIG> illustrates a method of placing the mobile computing device in a brick state in accordance with an exemplary embodiment of the present disclosure.

As shown in <FIG>, the mobile computing system is in a powered on state (s700) and under the control of the OSRPM <NUM> following enforcement of the control policy <NUM> (s702). If the control policy enforcement was initiated by an external device trigger, then the OSRPM <NUM> monitors whether a proximity signal or other suitable monitoring signal from the external device <NUM> has been received (s704). If the proximity signal has been received, the OSRPM continues its current operation, keeps the mobile computing device in the powered on state, returns for next instance of proximity signal (or monitoring signal) detection (s706). On the other hand, if the proximity signal has not been received, the OSRPM <NUM> enters the brick state in which all executable operations are suspended and/or the OSRPM <NUM> initiates a power off of the mobile computing device (s708).

If the control policy enforcement was initiated by a network device trigger, then the OSRPM <NUM> monitors whether a control or monitoring signal from the remote device/process <NUM> has been received (s710). If the control or monitoring signal has been received, the OSRPM continues its current operation, keeps the mobile computing device in the powered on state, returns for next instance of control or monitoring signal detection (s712). On the other hand, if the control or monitoring signal has not been received, the OSRPM <NUM> enters the brick state (s708).

The operations performed by the remote device/process <NUM> described herein can be at least partially processor-implemented. For example, at least some of the operations of a method can be performed by one or processors or processor-implemented circuits. The performance of certain of the operations can be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In an example, the processor or processors can be located in a single location (e.g., within a home environment, an office environment or as a server farm), while in other examples the processors can be distributed across a number of locations.

The one or more processors can also operate to support performance of the relevant operations in a "cloud computing" environment or as a "software as a service" (SaaS). For example, at least some of the operations can be performed by a group of computers (as examples of machines including processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., Application Program Interfaces (APIs).

Exemplary embodiments (e.g., apparatus, systems, or methods) can be implemented in digital electronic circuitry, in computer hardware, in firmware, in software, or in any combination thereof. Example embodiments can be implemented using a computer program product (e.g., a computer program, tangibly embodied in an information carrier or in a machine readable medium, for execution by, or to control the operation of, data processing apparatus such as a programmable processor, a computer, or multiple computers).

A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a software module, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on the remote device/process using one computer or multiple computers at one site or distributed across multiple sites and interconnected by a communication network.

According to an exemplary embodiment, operations can be performed at the remote device/process <NUM> by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Exemplary method operations can also be performed by, and example apparatus can be implemented as, special purpose logic circuitry (e.g., a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)).

The present disclosure provides that different operations can be performed with the mobile computing device <NUM> based on the mobile computing device's <NUM> presence in different areas having different security designations. For example, the mobile computing device <NUM> (abbreviated as "host") can be outside an allowed area or geographic location, enter an unsecured allowed area or geographic location, enter a secured allowed area or geographic location, and leave an allowed area or geographic location. For each of these areas, the RFID reader <NUM>, the RFID component <NUM> and the hardware processor <NUM> of the mobile computing device <NUM> executes the above-described software dedicated to interface with the RFID component <NUM>, an external device <NUM> over a wired or wireless connection, and/or a remote device/process <NUM> over a network.

In accordance with other exemplary embodiments of the present disclosure, a computer readable medium can have program or software code stored thereon such that when in communicable contact with a processor of a computer or computing device, the program causes the processor to perform any of the methods and processes described herein. For example, the computer readable medium can include a hard disk drive, floppy disk drive, magnetic tape drive, optical disk drive, solid state drive, or other suitable non-transitory computer readable storage device as desired. In some embodiments, the memory unit can be removable storage (e.g., flash memory, a compact disc, digital versatile disc, Blu-ray disc, etc.) or a combination of non-removable and removable storage.

Claim 1:
A mobile computing device comprising:
a processor (<NUM>) configured to place the mobile computing device in one of plural states based on a validation result of a control policy (<NUM>);
an RFID component (<NUM>) including an RF transceiver (<NUM>) and RFID memory (<NUM>) for storing the control policy (<NUM>) defining a functional configuration of the mobile computing device;
a power controller configured for controlling a power state of the mobile computing device,
wherein the processor (<NUM>) is configured to:
execute an operating system runtime policy module, OSRPM, for retrieving the control policy (<NUM>) from the RFID memory (<NUM>);
execute a power control module (<NUM>) for communicating with the power controller; and
execute the OSRPM for evaluating the control policy (<NUM>) for at least expired instructions in a validity determination by comparing information contained in the control policy (<NUM>) with verified values;
when the control policy (<NUM>) is valid, the processor (<NUM>) is configured to:
determine, via the OSRPM, whether the control policy (<NUM>) allows a power on state; and
when the control policy (<NUM>) allows a power on state, keep the power controller in a power on state; or
when the control policy (<NUM>) does not allow the power on state, control the power controller to enter a power off state and stop communication between the OSRPM and the power control module (<NUM>); and
characterized in that
the information contained in the control policy indicates a date or date range of enforcement of the control policy (<NUM>);
when the control policy (<NUM>) is not valid, the processor (<NUM>) is configured to determine whether a wipe threshold is expired via the power control module (<NUM>), and
when the wipe threshold is expired, the processor (<NUM>) is configured to:
execute the OSRPM to initiate a reboot of the mobile computing device and stop communication with the power control module (<NUM>);
execute the boot control program (<NUM>);
initiate the first boot loader (<NUM>) in the boot control program (<NUM>); and
initiate a disk wipe via the first boot loader (<NUM>).