Abstract:
A personal communication system (PCS) incorporates a secure storage device, which includes a device processor, a CPU interface, and a system interface, a storage means and a removable storage media component. The device processor is communicably connected to the CPU of the PCS through the CPU interface, which exclusively enables communications between the device processor and the CPU. The system interface enables the device processor to manage one or more hardware components of the PCS. A network interface is also included to enable the device processor to communicate over a network with select file servers to the exclusion of other file servers. The storage means is communicably connected to the device processor and includes first and second designated storage sections. The device processor has read-write access to both storage sections and gives the CPU read-only access to the first storage section and read-write access to the second storage section.

Description:
PRIORITY 
       [0001]    Priority is claimed to U.S. provisional patent application No. 61/332,075, filed May 6, 2010, the disclosure of which is incorporated herein by reference in its entirety. 
       RELATED APPLICATIONS 
       [0002]    The present application is related to U.S. Pat. No. 7,069,351, issued on Jun. 27, 2006, U.S. Pat. No. 7,444,393, issued on Oct. 28, 2008, U.S. patent application Ser. No. 12/113,294, filed on May 1, 2008, and U.S. patent application Ser. No. 12/186,120, filed on Aug. 5, 2008, the disclosures of which are incorporated herein by reference in their entirety. 
     
    
     BACKGROUND OF THE INVENTION 
       [0003]    1. Field of the Invention 
         [0004]    The field of the present invention is personal communication systems (hereinafter “PCS”), also commonly known as personal digital assistants (PDA&#39;s), smart phones, and hand-held gaming or entertainment devices. 
         [0005]    2. Background 
         [0006]    A typical personal communication system (PCS), such as a PDA, a smart phone, and a hand-held gaming or entertainment device, has many components integrated together. Some of the common components are CPU, memory for program execution, memory for storing programs and data, microphone, speaker, camera, display, keypad, touchpad, general purpose input/output module (such as a Bluetooth®), environmental sensor, global positioning system (GPS) module, battery/power module, cellular network module, wireless network module, etc., as depicted in U.S. Pat. No. 7,321,783. Depending on the particular use for a PCS, many variations are possible utilizing all or some of these, and other, components. 
         [0007]    An operating system (often referred to as “firmware”) is responsible for proper control and operation of all the components of a PCS. Some of the common operating systems used on smart phones, for instance, are Microsoft Windows Mobile®, Google Android®, Palm OS®, Nokia Symbian®, and RIM Blackberry® OS, to name a few. The operating system provides a platform on which applications can access and utilize various components of a PCS to accommodate a wide range of user experience, such as making a phone call, sending and receiving text messages, listening to music, recording voice memos, taking or watching pictures or videos, browsing the Internet, playing games, etc. In fact, the functionalities of PCS&#39;s are quite analogous to how personal computers are used today, but PCS&#39;s are quite compact and have far less powerful processing power than typical personal computers. 
         [0008]    The files used by a PCS&#39;s operating system and applications are usually stored in memory, typically in a flash memory embedded in the PCS or in a removable media that extend the capacity of the embedded flash memory. The flash memory or the removable media would essentially look like a local storage device of a personal computer (i.e. a hard disk drive) to the PCS operating system and would have file systems that manage the stored files. The operating system of a PCS uses the file systems to handle file requests from applications or from the operating system itself in a manner quite analogous to how an operating system running on a personal computer handles file requests. Furthermore, the way the operating system of a PCS manages its various components are very similar to how a personal computer manages its various components programmatically. Thus, PCS&#39;s have the same kind of security vulnerabilities that personal computers have, such as viruses, malware, unauthorized access, file corruptions due to user errors or application errors, etc. To mitigate the security vulnerabilities a PCS has, the PCS often mimics various methods available to a personal computer. 
         [0009]    For instance, a PCS may implement directory-level or file-level access controls to provide certain level of file protection against computer viruses, malware, unauthorized access, file corruptions due to user errors or application errors, etc. The drawback of this method is that this is operating system dependant. Thus, a super user, an administrator, or a process running with full access privileges can accidentally modify, delete, or corrupt important files used by the operating system or applications. 
         [0010]    Alternatively, a PCS may use an anti-virus and/or anti-spyware program to deter malicious programs (viruses and spyware) that can inflict detrimental damages to the PCS, especially when such malicious programs gain full access privileges on the PCS. But the use of an anti-virus anti-spyware program on a PCS is quite impractical because, among many other reasons, (a) anti-virus anti-spyware programs are operating system dependent, (b) there are many different operating systems for PCS&#39;s, so it is almost impossible to develop anti-virus anti-spyware programs for various brands and models of PCS&#39;s, (c) virus/spyware signature files are getting bigger as the number of viruses and spyware are growing, (d) the processors used in most PCS&#39;s are not quite powerful enough to perform continuous scan for viruses and spyware, and (e) anti-virus anti-spy programs may have false-positive and erroneously delete or quarantine important files used by the operating system or applications, making PCS&#39;s not functional. 
         [0011]    In addition, one of the growing concerns in today&#39;s wide use of PCS&#39;s has to do with data security. Because of their portable sizes, PCS&#39;s are often lost or stolen while they hold sensitive data. Anyone who has gained physical access to a PCS can easily access the data stored in the PCS. Many PCS users don&#39;t lock their PCS&#39;s with passwords. And even if a PCS is locked with a password, there are many ways to rest the password without losing the data stored in the PCS. Some PCS&#39;s, such as some smart phone models, have a feature commonly called “remote device wipe” in which a remote command can be sent to a PCS to wipe out the data stored in the PCS. But this “remote device wipe” won&#39;t work if the PCS is not connected to the network (i.e. the PCS is in “airplane mode” or the SIM card used by certain cellular carriers is taken out of the PCS). 
         [0012]    Thus, a new approach is needed to address the security vulnerabilities inherent to PCS&#39;s. 
       SUMMARY OF THE INVENTION 
       [0013]    The present invention is directed to a PCS. The PCS includes all or some of the common components mentioned previously, such as CPU, memory for program execution, microphone, speaker, camera, display, keypad, touchpad, general purpose input/output module (such as a Bluetooth®), environmental sensor, global positioning system (GPS) module, battery/power module, etc., but memory for storing programs and data, cellular network module, and wireless network module are replaced with a storage device disclosed in the related applications referenced above. 
         [0014]    The storage device includes a device processor, a CPU interface, a network interface, and a system interface. The device processor is communicably connected to the CPU of the PCS through a CPU interface. The device processor is also communicably connected to a network through network interface that can be cellular network interface (or satellite network interface) and/or wireless network interface, such as WiFi, WiMAX, etc. The CPU interface enables the device processor to communicate exclusively with the CPU of the PCS. The system interface is configured to enable the device processor to manage one or more hardware components included as part of the PCS. The network interface enables the device processor to communicate over a network with select file servers of a service provider to the exclusion of other file servers. A storage means is communicably connected to the device processor and includes first and second designated storage sections. The device processor has read-write access to both storage sections and controls CPU access to each storage section, giving the CPU read-only access to the first storage section and read-write access to the second storage section. A removable media storage component is also communicably connected to the device processor. 
         [0015]    The storage device may be constructed with additional options to improve functionality of the storage device and the PCS with which the storage device is associated. Any of these options may be implemented on their own or in combination. 
         [0016]    As one option, the storage device may include an encryption module, with the device processor being adapted to utilize the encryption module for one or more encryption/decryption functions. Such functions may include encrypted communications with the select file servers, encrypted storage of files on the storage means, and encrypted storage of files using the removable media storage component. Encryption keys used by the encryption module may be obtained from one of the select file servers through the network interface of the storage device. 
         [0017]    As another option, the device processor may be programmed to follow a series of sequential steps when a request for a file is received from the CPU. First, the device processor determines whether the file is cached within the first designated storage section, and if the file is there, provides the file to the CPU on a read-only basis (without giving the CPU any capability of modifying or deleting the file). Next, if the file is not found cached, the device processor requests the file from one or more of the select file servers. If the file is available from one of the select file servers, the file is retrieved, cached within the first designated storage area, and provided to the CPU on a read-only basis. Lastly, if the file is not otherwise found, a file unavailable notice is returned to the CPU. As an additional step within this sequence, the device processor may be programmed to determine whether the file is available from the removable media storage component if the file is not available from one of the select file servers. As before, if the file is available, it is cached and provided to the CPU on a read-only basis. 
         [0018]    As yet another option, the device processor may be programmed to monitor, control, and/or process user files written to the second designated storage section. Also, if the CPU is communicably connected to a network through the network interface of the storage device, the device processor may be programmed to monitor, control, and/or process network traffic passing through the network interface to and from the CPU. 
         [0019]    As yet another option, the storage device may be programmed to copy user files stored within the second designated storage area, whether for backup or archive purposes, to the removable media storage component. Alternatively, or in addition, the storage device may be programmed to copy user files stored within the second designated storage area to one or more of file servers of a service provider if the service provider offers such as an optional data backup/archiving service. 
         [0020]    As yet another option, the device processor may be adapted to delete a cached file from the storage means upon receiving a delete command for the cached file from one or more of the select file servers. Alternatively, the cached files may include a file expiration tag, with the device processor being adapted to delete a cached file according to criteria determined by the file expiration tag. Such tags may include an absolute time and date stamp, a relative time and date stamp, or some other non-time related criteria which serves as indicia for when the file should be deleted. 
         [0021]    Accordingly, a secure PCS is disclosed. Advantages of the improvements will appear from the drawings and the description of the preferred embodiment. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0022]    In the drawings, wherein like reference numerals refer to similar components: 
           [0023]      FIG. 1  is a schematic diagram of common components of a typical PCS according to the prior art (mainly, U.S. Pat. No. 7,321,783); 
           [0024]      FIG. 2  is a schematic diagram of a PCS incorporating an anti-virus module of U.S. Pat. No. 7,654,941; 
           [0025]      FIG. 3  is a schematic diagram of a first storage device found in the prior art; 
           [0026]      FIG. 4  is a schematic diagram of a PCS incorporating the storage device of  FIG. 3 ; 
           [0027]      FIG. 5  is a schematic diagram of a second storage device found in the prior art; 
           [0028]      FIG. 6  is a schematic diagram of a PCS partially incorporating the storage device of  FIG. 5  to manage a few key components of the PCS; 
           [0029]      FIG. 7  is a schematic diagram of a PCS fully incorporating the storage device of  FIG. 5  to manage all components of the PCS; and 
           [0030]      FIG. 8  is a schematic diagram of another PCS fully incorporating the storage device of  FIG. 5 . 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0031]    For purposes of the present description, the term “non-user file” means a file that is a component of an operating system of a PCS, a component of an application, or a file that is designated as one to which a user should have read-only access. The term “user file” as used herein means a file that is not defined as a non-user file and is usually generated as a direct result of the user&#39;s use of the PCS. Such user files may include temporary files generated by the operating system or the applications for the benefit of the user. Under these definitions, the delineation between a non-user file and a user file is preferably determined by PCS and network administrators and/or service providers (hereinafter simply “administrators”) for any particular PCS and network. Thus, one skilled in the art will recognize that different administrators may elect to place the same file in different categories, i.e., the administrator of a first network may choose to treat a particular file as a non-user file, while the administrator of a second network may choose to treat the exact same file as a user file. 
         [0032]    In addition, the term “server” encompasses both a computing device configured to operate as an independent server on a network and a “virtual server”, which effectively simulates the functionality of an independent server in software and enables multiple virtual servers to be hosted by a single networked computing device. While some virtual servers may only simulate the functionality necessary to perform the function of a server, other virtual servers may simulate part or all of the hardware components of a computing device in order to replicate the desired server functionality. 
         [0033]    Turning in detail to the drawings,  FIG. 1  is representative of common components of a typical PCS according to the prior art (mainly, U.S. Pat. No. 7,321,783). The PCS can be a PDA, a smart phone, or a hand-held gaming or entertainment device. Depending on the usage, the PCS can have all or some the components shown on the drawing: a CPU  109 , memory  115  for BIOS or firmware, memory  114  for program execution, memories  112  and  113  for storing programs and data, microphone/speaker  101 , camera  102 , display  103 , keypad/touchpad  104 , general purpose input/output module  105 , environmental sensor  106 , GPS module  107 , battery/power module  108 , cellular network module  110 , wireless network module  111 , etc. Those skilled in the art will recognize that many options and choices are available for the components and will be able to incorporate any other components available today or in the future. 
         [0034]    The CPU  109 , loaded with an operating system, is responsible for managing the interaction between the components to form a functional PCS. In particular, the CPU  109  handles file requests that may originate from applications or from the operating system running on the PCS. These file requests arise when the applications or the operating system require access to a file which resides on either memories  112  and  113  that store programs and data. To handle the file requests, the CPU  109  is programmed with the characteristics of how the memories  112  and  113  store programs and data. As such, the CPU  109  is solely responsible for all files, both non-user files and user files, stored in the memories  112  and  113 . It can add, modify, or delete files with full access rights. Thus, if the CPU  109  is compromised (i.e. the operating system is hacked, an application is infected with virus, or a malicious program is running in the background), then the functionality of the PCS is seriously compromised and sensitive data may be leaked to an unauthorized person(s). 
         [0035]    As mentioned above, a PCS may use an anti-virus anti-spyware program to deter malicious programs (viruses and spyware). But as also mentioned above, use of an anti-virus anti-spyware program on a PCS is quite impractical because, among many other reasons, (a) anti-virus anti-spyware programs are operating system dependent, (b) there are many different operating systems for PCS&#39;s, so it is almost impossible to develop anti-virus anti-spyware programs for various brands and models of PCS&#39;s, (c) virus/spyware signature files are getting bigger as the number of viruses and spyware are growing, (d) the processors used in most PCS&#39;s are not quite powerful enough to perform continuous scan for viruses and spyware, and (e) anti-virus anti-spy programs may have false-positive and erroneously delete or quarantine important files used by the operating system or applications, making PCS&#39;s not functional. 
         [0036]      FIG. 2  illustrates a PCS incorporating an anti-virus module  201  of U.S. Pat. No. 7,654,941. The anti-virus module  201  off-loads the virus scanning task from the CPU  109 ; therefore, virus scanning can be performed independent of the CPU  109 . Even if the CPU  109  is compromised or the operating system or applications running on the CPU  109  are compromised (i.e. the operating system is hacked, an application is infected with virus, or a malicious program is running in the background), the anti-virus module  201  can continuously scan for viruses and safeguard the files stored in the memories  112  and  113 . However, obtaining updates to the scanning engine of the anti-virus module  201  or updates to virus/spyware signature files are dependent on the CPU  109 . If the CPU  109  is compromised in such a way that prevents the anti-virus module  201  from obtaining updates, virus scanning may become antiquated and ineffective against new breeds of viruses and spywares. In addition, the anti-virus module  201  may have false-positive and erroneously delete or quarantine non-user files, making the PCS not functional. Furthermore, the anti-virus module  201  is not at all effective against file corruptions due to user errors or application errors, etc. A user or a process running with full access privileges can accidentally modify, delete, or corrupt non-user files and make the PCS not functional as well. 
         [0037]      FIG. 3  illustrates a first storage device introduced in U.S. patent application Ser. No. 12/113,294, referenced by the related applications above, and its six basic components. The storage device  301  includes the device processor  304  (also referred to as the cache engine), the main CPU interface  302 , the system interface  303 , the network interface  306 , the cache  307  (also referred to as the storage means), and the removable media storage component  308 . The storage device  301  may be used in conjunction with a PCS, as shown in  FIG. 4 . 
         [0038]      FIG. 5  illustrates a second storage device introduced in U.S. patent application Ser. No. 12/113,294, referenced by the related applications above. The storage device  501  has the user computing space  502  that is configured to interface with the CPU  109  of the PCS. The device processor  304  is configured to interface with the other peripherals  503  directly, and the storage device  501  is configured so that the CPU  109  of the PCS has access to the peripherals  503  only through the user computing space  502  and the device processor  304 . Access to all other components of the storage device  501  is managed by the device processor  304  so that the CPU  109  of the PCS does not have direct access to files stored on the cache  307 . Therefore, non-user files cached on the first designated storage section can be protected from malicious programs (viruses and spyware), user errors, or application errors. Even if there&#39;s a virus running on the CPU  109 , there&#39;s no need to continuously scan for viruses on the first designated storage section since the virus can&#39;t infect (i.e. modify or alter) any of the non-user files or write itself to the first designated storage section. Furthermore, user files stored on the second designated storage section can be protected from unauthorized access even if the CPU  109  is compromised or the operating system or applications running on the CPU  109  are compromised (i.e. the operating system is hacked, an application is infected with virus, or a malicious program is running in the background). For instance, the device processor  304 , which is independent of the CPU  109 , can allow or disallow access to the user files, encrypt/decrypt the user files, or completely erase any or all user files to prevent unauthorized access (i.e. hackers trying to forcefully access sensitive data). 
         [0039]      FIG. 6  illustrates a PCS that incorporates the storage device of  FIG. 5  to manage a few key components, namely the audio input/output  101 , the video input  102 , and the video output  103  of the PCS. 
         [0040]      FIG. 7  illustrates a PCS that incorporates the storage device of  FIG. 5  to manage all components of the PCS. These components include the audio input/output  101 , the video input  102 , the video output  103 , the user input  104 , a general purpose input/output module  105 , an environment sensor  106 , a GPS module  107 , a batter/power module  108 . Other modules with different functionality may be included as components in the PCS and controlled by the storage device. 
         [0041]      FIG. 8  illustrates a PCS that incorporates the storage device of  FIG. 5  one of whose network interfaces is adapted as a host connection  801  to a host computing device  802 . The host computing device is configured to emulate a select file server by establishing an authoritative pairing relationship with the storage device, where the authoritative paring relationship can be established in many ways (i.e. by using device ID&#39;s, passwords, security certificates, or by an administrator on a select file server on the network). 
         [0042]    The storage device  301  or  501  described herein is independent of the operating system of the PCS and is not constricted by having to conform to any particular protocols or file structures. The operating system of the PCS interacting with the storage device  301  or  501  needs to be programmed only with the protocol needed to request files stored on the storage device  301  or  501  or to access the peripherals of the storage device  501 . Advantageously, communications between the CPU  109  of the PCS and the storage devices  301  or  501  may be performed using a small number of procedures. These procedures would be the only ones dependent on the operating system and system architecture of the PCS, and they can be standardized on any PCS platform. 
         [0043]    Thus, a secure PCS having a storage device that has separate read-only space and read-write space, removable media component, system management interface, and network interface is disclosed. While embodiments of this invention have been shown and described, it would be apparent to those skilled in the art that many more modifications are possible without departing from the inventive concepts herein. The invention, therefore, is not to be restricted, except in the spirit of the following claims.