Abstract:
An encryption sentinel system and method protects sensitive data stored on a storage device and includes sentinel software that runs on a client machine, sentinel software that runs on a server machine, and a data storage device. When a client machine requests sensitive data from the data storage device, the data storage device interrogates the sentinel software on the server machine to determine if this client machine has previously been deemed to have proper encryption procedures and authentication. If the sentinel server software has this information stored, it provides an approval or denial to the storage device that releases the data if appropriate. If the sentinel server software does not have this information at hand or the previous information is too old, the sentinel server interrogates the sentinel software that resides on the client machine which scans the client machine and provides an encryption update to the sentinel server software, following which data will be released if appropriate.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims priority and is a Continuation of U.S. patent application Ser. No. 12/342,929 filed on Dec. 23, 2008 entitled “Encryption Sentinel System and Method”, which claims priority to U.S. patent application Nos. 61/017,307 filed on Dec. 28, 2007 entitled “Encryption Sentinel System and Method” and 61/030,314 filed on Feb. 21, 2008 entitled “Encryption Sentinel System and Method”, all of which are incorporated fully herein by reference. 
     
    
     TECHNICAL FIELD 
       [0002]    The present invention relates to access to and the movement of sensitive data and more particularly, relates to a system and method for determining whether or not a client is requesting access to data deemed sensitive and perhaps encrypted and if so, making sure that the client computer will maintain the integrity of the data, such as by encryption, obtained from a storage device where that data has been deemed sensitive. 
       BACKGROUND INFORMATION 
       [0003]    Many host computers today store very sensitive data. Although the owner or manager of the data can usually control the dissemination of the data while on the host computer, the task becomes more difficult as the data is disseminated to those individuals who need to use the data in the field. 
         [0004]    What often times happens is that a legitimate user (sometimes referred to as a “client”) of the data will request the data from the host computer. A “user” can be a human being or an application program, running on another computer, that needs to access and use the sensitive data. The host will transfer the data to the user&#39;s computer or other device to enable the user to utilize the data. Although the data may be secured and perhaps encrypted on the host and also encrypted during transmission from the host to the user&#39;s device, once the data is on the user&#39;s device, the data is susceptible to being lost, stolen or otherwise misappropriated. For example, a user may download the data to a file or directory which has no security or encryption attached to it. When the user&#39;s device is connected to the Internet, for example, others may view, copy or otherwise misappropriate such data. 
         [0005]    Accordingly, what is needed is a system and method for ensuring that a user or client receiving sensitive data has all of the necessary encryption and/or security features desired by the data manager or data owner for protecting the integrity of such secure data once it is on the client computer or device. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0006]    These and other features and advantages of the present invention will be better understood by reading the following detailed description, taken together with the drawings wherein: 
           [0007]      FIG. 1  is a block diagram of a system implementing the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0008]    The present invention will be explained in connection with  FIG. 1  using the following defined terms wherein: storage device means a device designed to host storage. One such example would be a “Network Area Storage” (NAS) filer running ONTAP® or equivalent operating system. ONTAP® is an operating system available from NetApp, Inc. of Sunnyvale Calif. 
         [0009]    The present invention is preferably implemented as a software product that is designed to prevent unencrypted network client machines or users from reading sensitive data on storage devices that is meant to be encrypted or otherwise protected on the client machine. The invention is designed to prevent honest users from making honest mistakes. It is not designed to thwart malicious or deliberate users. 
         [0010]    There are five components to a system  10  on which may be implemented the present invention, namely: a client machine  13 , a server machine  15 , a storage device  16 , Encryption Sentinel (ES) client software  12 , and Encryption Sentinel (ES) server software  14 . These components are implemented as a combination of computer hardware and/or software as those skilled in the art will know and understand. The ES client software application portion  12  of the invention  10  is designed or accommodated to operate on all desktops/laptops or other user devices requiring access to stored data such as PDA&#39;s, cell phones, etc. It is responsible for determining whether the local, client fixed disks or storage devices are encrypted or not. It is also responsible for relaying this information to the ES server software  14 . 
         [0011]    The ES server software component  14  is designed to run on a server machine  15  using Windows or other operating system that has access to the storage device  16  which holds or stores sensitive data that may or may not be encrypted on the storage device  16 . The ES server software component  14  is responsible for: determining when a client machine  13  is trying to access sensitive data on a storage device  16 , checking the request by the client against policies (encryption sentinel or ES policies) established by the system administrator; contacting the ES client software component  12  running on the client machine  13 ; and then allowing or denying the client machine&#39;s data access request based on the established policies and the state of the client machine&#39;s encryption status. 
         [0012]    The ES software client component  12  will run as a Windows or similar service on all client machines  13  that need to access sensitive data that may or may not be encrypted, residing on a connected and “protected” storage device  16 . Windows native encryption, as well as any other data encryption techniques, are contemplated by the present invention. 
         [0013]    At startup, the invention must determine the client machine&#39;s “encryption state” as quickly as possible. A machine is considered encrypted if the directories, as configured by the system administrator on all local, fixed disks or other storage device(s), are encrypted. Windows allows the client to enable/disable encryption on any file or directory individually so the encryption state of every directory will need to be determined. For example, a system administrator may configure an ES policy such that if any directory on the client machine  13  is not encrypted, the client and client machine or device  13  is considered unsafe and will not be allowed to access data deemed sensitive on the storage device  16 . Another example would be that a system administrator may configure an ES policy such that not all client directories or files will need to be encrypted to receive data deemed sensitive on the storage device  16 . Thus, what directories need be considered for encryption status is at the discretion of the system administrator, which would be the person configuring the policies using the ES server software. 
         [0014]    “Walking” or scanning the client machine  13  file system may take too long to execute to determine the encryption state in real-time. Accordingly, the current state of the client machine  13  may be determined by the ES client software  12  when this software starts up (which is when the client machine  13  starts up) and cached. The encryption status will be determined by ES client software  12  automatically, re-scanning the local file system on the client machine  13  once every certain number of hours (for example, every  8  hours) and which time is programmable by the system administrator, or as deemed necessary by some other system process, to determine whether or not the requisite encryption is being maintained on the client machine  13 . Entries other than actual time entries in the cache may also be used as a signal to the ES client or Server software concerning the status of the encryption state of the client machine or device  13 . For example, a time entry of zero indicates no cache-check every time. Also the system administrator can configure the ES client software  12  to lock the state of encryption, which disables the ability of the client machine user to make any changes to the encryption state on the client machine  13 . If the encryption state of a machine cannot be determined, it will be considered unencrypted. During the startup process when the client machine  13  is being scanned for the first time, it is considered unencrypted. 
         [0015]    The ES server software  14  will communicate with and to the ES client software component  12  through a standard network interface  22  (for example a Windows Socket). The ES server software  14  will send a single command  18  to the ES client software  12  to retrieve the client&#39;s encryption status, which was determined previously by automatic scans by the ES client software  12 , as scheduled by the system administrator, and saved in a cache on the client machine  13 . If the ES server software  14  cannot communicate with the ES client software  12  on a client machine  13 , it will assume that the client machine  13  is unencrypted and no sensitive data will be allowed to be accessed. Communication to and between the ES client software  12  on a client machine  13  will itself be encrypted as discussed below. 
         [0016]    The ES client software  12  on a client machine  13  will “listen” via a standard network interface (for example Windows Socket)  22  for requests from the ES server software  14 . The ES client software  12  must respond to this command with a simple true or false  20 . True indicates the client is encrypted, false indicates it is not. The status of encryption will be determined by the ES client software  12  by one of two methods, depending on the implementation by the system administrator. One method will entail the ES client software  12  scanning all user accessible directories on the client machine  13  and determining if they are all encrypted. If they are, the status of the client machine will be considered encrypted (“true” response) by the ES client software  12 . If they are not all encrypted, the status will be considered not encrypted (“false” response) by the ES client software  12 . 
         [0017]    A second method is that when a system administrator configures an Encryption Sentinel policy via the ES server software  14 , the system administrator will designate which directories will need to be encrypted on the client machine  13  in order for the machine to be considered encrypted by the ES client software  12  (“true” response). 
         [0018]    Communication with the ES server software  14  must be performed safely and reliably. The standard Windows encryption APIs or equivalent may be used to encrypt the messages between the ES client software  12  on a client machine  13  and the ES server software  14  on the server machine  15 . Fixed or rolling key encryption mechanisms are contemplated as well as any and all other encryption methods. To ensure security, the ES server software  14  may use an industry standard “challenge-response” method (such as Kerberos or equivalent) when communicating with the ES client software  12  to verify its authenticity. 
         [0019]    The ES server software component  14  will typically run as a Windows service on the server machine  15 . The ES server software component  14  will execute on a machine running Windows 2000 Server, Windows 2003 server or equivalent. The service account (i.e. user ID) that the ES server software  14  runs under must have administrative privileges on the storage device  16  which contains the data to be accessed by the client machine  13 . The ES server software  14  allows the user, (typically the system administrator), to configure which directories/volumes on the storage device  16  are to be considered for enforcement of the ES policies such that a client machine  13  accessing this data on the storage device  16  must be considered encrypted, as determined by the ES client software  12  scans. 
         [0020]    The ES server software  14  will control access to files on the storage device  16  through the storage device operating system interface  24  on the storage device  16 . One example of this is the Fpolicy interface designed by NetApp, Inc. for controlling access to files stored on their NAS devices running the ONTAP® operating system. The ES server software component  14  will go through a registration process with the storage device operating system interface  24 . This registration process notifies the storage device operating system interface that the ES server software  14  needs to be made aware of any attempts to open or create a file. Once registered, the storage device  16  will notify the ES server software component  14  each time a client machine  13  attempts to open or create a file on the storage device  16 . The ES server software  14  component must determine whether the client should be allowed access to the file or not and respond appropriately  28  to the storage device  16 . 
         [0021]    The storage device operating system interface  24  provides the mechanism for the ES server software component  14  to allow or deny client machine  13  access to a file based on the client machine&#39;s encryption status. 
         [0022]    The ES server software  14  will maintain a cache of certain client IP addresses and their encryption status. When a client machine  13  attempts to access a file, the ES server software  14  will look in its cache first. If the client&#39;s IP address is not in the cache, or the cached value has been in the cache for more than a predetermined length of time, the ES server software  14  will send a command  18  to the ES client software  12  to request the current encryption status of the client machine  13 . The response  20  will be stored in the cache of the ES server software  14  along with a current date and time stamp. 
         [0023]    If the ES server software  14  is unable to make a connection to the client machine  13 , it will assume the ES client software  12  is not running on the client machine  13 . The ES server software  14  will also assume the client machine  12  is unencrypted, but it will not store this result in the cache. 
         [0024]    Operation of an exemplary embodiment of the invention is as follows: Once ES policies have been established by a system administrator on the ES server software  14 , upon ES server software  14  startup, the ES server software  14  registers with one or more storage device(s)  16  and then waits for a client machine  13  to issue a request  30  to a “protected” storage device  16  indicating that a client machine  13  is attempting to access a file on the storage device  16 . Once installed on the client machine  13 , the ES client software component  12  starts up automatically when the client machine  13  starts up (boots up), determines the client machine&#39;s  13  encryption state, and waits for a request  18  from the ES server software  14  for its encryption state. Next, a user attempts to open a file from his client machine  13  that resides on a storage device  16  managed by the ES server software  14  of present invention. 
         [0025]    The storage device  16  then sends a request  26  to the ES server software component  14  asking whether the client machine  13  should be allowed to open the file. The ES server software  14  looks in its local cache for the encryption state of the client machine  13 . If the client machine  13  is not in the cache or the cached value is older than a certain length of time, for example 4 hours, the ES server software  14  sends an encrypted message  18  to the ES client software component  12  running on the client machine  13  attempting to access the file, requesting the encryption status of the client machine  13 . The ES client software  12  responds to the ES server software  14  with a true or false value  20 . 
         [0026]    The ES server software  14  then makes a reply call  28  back to the storage device  16  indicating whether the client machine  13  can access the file or not. Based on the reply  28  from the ES server software  14  to the storage device  16 , the storage device  16  will allow or not allow access to the requested data by the client machine  13 . 
         [0027]    Accordingly, the present invention provides a novel system and method for ensuring that sensitive data on a storage device will move only to a secure, encrypted user device in accordance with the policies set by the system administrator, thereby minimizing the threat of sensitive data being moved to a non-secure, non-encrypted user device. 
         [0028]    Modifications and substitutions by one of ordinary skill in the art are considered to be within the scope of the present invention, which is not to be limited except by the allowed claims and their legal equivalent.