Abstract:
A method and apparatus of controlling access to a system containing vital corporation software and storing confidential data assets situated in an open accessible environment is provided. The method includes calculating a signature value for at least one file usable with the system, transferring the calculated signature value to a signature file, and providing at least one signature value in the signature file and at least one associated file to a file system configured to be received by the system. At least one signature value and at least one associated file are inspected by the system to verify the associated file is a known system software application asset. The system comprises an input/output data port configured to receive the external memory storage device, and an operating system capable of reading system data from and writing system data to the memory storage device.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    The present invention relates generally to the art of computer systems, and more specifically to controlling access to software applications and data stored in an external file system connected using an input/output data port. 
         [0003]    2. Description of the Related Art 
         [0004]    Many of today&#39;s deployed commercial, corporate and government systems, such as a nuclear power monitoring and control system or military defense command and control system, telephone system, medical system, or other operational systems of any form, may include computing platforms provisioned with Input/Output (I/O) data ports to enable access from outside of the system. Current system designs are typically realized using computing platforms, including personal computing hardware (e.g. desktop, laptop, and handheld devices), and tailored computing hardware (i.e. customized to perform a specific task such as control and monitoring of a nuclear reactor component), typically provide access from outside of the computing platform via a Universal Serial Bus (USB) I/O data port. A USB data I/O port provides an interface for connecting a USB device. Types of devices that may be connected to the USB I/O data port include a ‘memory-stick’ flash memory storage device, USB CD-ROM or DVD device, or a USB enabled hard drive, each providing access to a file system. To gain access to the file system stored in a USB compliant storage device, the user need only to connect the USB storage device by plugging it into an available system&#39;s computing platform USB data port. 
         [0005]    Providing systems with open data interfaces, such as a USB I/O data port, affords designers flexibility in providing additional functionality to the end users. The increased functionality and capabilities may be realized from software applications and data residing in a USB device. Any number of individuals may have access to the system via the USB I/O data port. Persons able to access the system may include factory representatives, including sales and service personnel, system operators and end users. For example, factory service personnel may store software applications for use in troubleshooting, engage in calibration and diagnostics of the system, transfer files between computing platforms deployed in the system, or repair and upgrade the system software. Sales personnel may demonstrate new features and functionality by executing a pre-configured software application stored in a USB device. System operators and end users may store individual preferences, specific procedure or scenario settings, and other configurable computing platform system parameters. 
         [0006]    Fielded systems may contain vital corporation software and store confidential data assets. A major disadvantage of such open designs is that the system becomes vulnerable to potential corruption. The primary concern involves either virus software or malicious programs that may gain access via the open external data port. When a program is executed from the USB storage device, the software can gain access to all of the resources forming the system. If a malicious program executes from the USB device file system, the program could alter or corrupt the operating system software, modify stored end user settings, and rewrite portions of software applications required for the proper and safe operation of the computing platforms forming the system. In a similar manner, a virus program may execute from the USB device file system and insert a virus into the computing platform systems software. As may be appreciated, even an inadvertent change of data, let alone corruption of a mission critical program, can be devastating and even deadly in a nuclear control or military defense system. 
         [0007]    Today&#39;s deployed systems do not provide a sufficient level of file system access control for externally attached storage devices. Access control is paramount to fielding the highest level of safety required by mission critical system environments. Today&#39;s designers are faced with a difficult and complex implementation challenge to balance providing external interfaces open enough to allow the desired functionality to be realized, yet secure enough to ensure the integrity and continued safe operation of the system. 
         [0008]    In an attempt to mitigate unauthorized system access current designs may require the user to enter a password. Entering the proper password may allow the user access to software programs and data stored at the external device. Unauthorized system access may be implemented using physical protection to block access to the USB I/O data port on the computing platform. In this arrangement, only authorized users are supplied a key needed to unlock the physical protection device. 
         [0009]    Password protection schemes are known to exhibit numerous disadvantages. For example, an authorized user may lose or forget their password. Once lost, it becomes necessary to install a mechanism to allow the password to be restored. These recovery mechanism can be difficult and costly to implement, and may open the system to additional vulnerabilities. Passwords may also be acquired by unauthorized users, either inadvertently or stolen, allowing access to vital corporate software and data assets. More importantly, once system access is gained via entering a valid password, any program or data stored in the external file system may be altered. A malicious program may be substituted for a valid software application stored in the file system. A compromised password can enable the user to unknowingly execute an altered or malicious program on the system. 
         [0010]    Current protection schemes using devices to physically block access to the external I/O data port may be easily compromised. Similar to password protection, only authorized users are given a key needed to unlock the physical block. The key may become lost or stolen and it is often possible to remove the physical block without the key by use of force. Like passwords, once unauthorized access is gained, the contents of the external file system may be altered or substituted. 
         [0011]    Current designs may configure the external storage device as ‘read-only’ to effectively protect external file system contents. In this configuration, a computing platform within the system may send data to the external device, but will not allow any data stored on the external device to enter the computing platform. This protection mechanism limits fielding much of the desired functionality because the ‘read-only’ configuration does not allow application software to execute from the external device. 
         [0012]    Based on the foregoing, it would be advantageous to provide access control for use in systems that overcome the foregoing drawbacks present in previously known methods used in the design of systems. 
       SUMMARY OF THE INVENTION 
       [0013]    According to one aspect of the present design, there is provided a method for controlling access to a system. The method comprises calculating a signature value for at least one file usable with the system, placing the calculated signature value in a signature file; and providing at least one signature value in the signature file and at least one associated file to a file system configured to be received by the system. At least one signature value and at least one associated file are inspected by the system to verify the associated file is a known system software application asset. 
         [0014]    According to a second aspect of the present design, there is provided a system configured to be used in association with an external memory storage device comprising a file system. The system comprises an input/output data port configured to receive the external memory storage device, and an operating system capable of reading system data from and writing system data to the memory storage device. Files in the file system of the external memory storage device are all associated with a signature value readable by the system to determine whether each file is permitted to be used in the system. 
         [0015]    These and other advantages of the present invention will become apparent to those skilled in the art from the following detailed description of the invention and the accompanying drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0016]    The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which: 
           [0017]      FIG. 1  is a block diagram illustrating the components and interfaces of an exemplary system employing a USB attached memory device in accordance with the present design; 
           [0018]      FIG. 2  is a diagram illustrating the creation of an encrypted signature file in accordance with the present design; and 
           [0019]      FIG. 3  is a flowchart representing the computing platform access control operations in accordance with the present design. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0020]    The following description and the drawings illustrate specific embodiments sufficiently to enable those skilled in the art to practice the system and method described. Other embodiments may incorporate structural, logical, process and other changes. Examples merely typify possible variations. Individual components and functions are generally optional unless explicitly required, and the sequence of operations may vary. Portions and features of some embodiments may be included in or substituted for those of others. 
         [0021]    The present design provides a system and method for controlling access to a file system resident on a memory storage device attached via an external USB compliant electrical interface to a computing platform. The present design may provide an access control mechanism, executing on the computer platform within the system, configured to fully identify all programs and data resident on a USB file system. The computing platform access control mechanism may inspect each program stored in the external USB memory device to determine whether access to the system is authorized and/or permissible. The inspection method involves verifying that the desired program stored in the externally connected file system is known to the system manufacture as a valid software application asset. On successful validation, the present design may execute the program from the external file system affording access to the system hardware and software resources. If the present design access control mechanism is unable to verify the selected program, the system may prohibit program execution and deny access to the systems resources. Fundamentally, the present design may format the external file system device in a manner only known to the system designers. The technique employed for formatting the external file system device may be strictly controlled by the system manufacturer and does not require the external file system device format technique to be conveyed or known by the end users. In this arrangement, if the external storage device is misplaced, lost, or stolen, it may be readily replaced. If the external storage device is stolen, the file system may be accessed and the individual possessing the device may execute stored software applications. However, in this arrangement, the file system contents cannot be altered. Any attempt by unauthorized individuals to change the contents of the USB file system, by altering an existing program or substituting a malicious program for a known valid program, may be detected by the system. When an altered or substituted program is encountered, the present design may deny access to the system hardware and software resources In addition, the present design may delete or quarantine the altered or substituted program. 
         [0022]    The present design&#39;s access control mechanism may involve digital signature techniques to identify one or more of the programs contained or stored on the external device. The present design may calculate a signature value using a cryptographic hashing algorithm and store the signature value in a signature file. In addition, the present design may encrypt the signature files by using a variant of the Data Encryption Standard (DES), Triple DES, or Advanced Encryption Standard (AES). In this arrangement, the system&#39;s use of strong encryption may virtually eliminate the risks associated with executing an invalid or unknown application program on a computer platform within the system. 
         [0023]    While the present design may be used in various environments and applications, it will be discussed herein with a particular emphasis to a medical or hospital environment merely for the purposes of illustration in a specific system, where a surgeon or health care practitioner performs. As noted, it is to be understood that the description in such a system is mean to be exemplary and not limiting, and such a system may be employed in any type of system, such as a mission critical system, including to but not limited to an air traffic control system, nuclear power system, military defense system, or a myriad of other applications fulfilling commercial, corporate and government systems For example, one embodiment of the present design is a phacoemulsification/vitrectomy surgical system comprising an independent graphical user interface (GUI) module, an instrument host system module, and a controller module, such as a foot switch, to control the surgical system. 
         [0024]    While the present design may employ various mechanisms of attaching an external memory device to the instrument, GUI host, or other subsystem such as via a network connection realized using Ethernet, Bluetooth, or WiFi (802.11 b/g), it will be discussed herein with a particular emphasis on storing file system contents on an externally attached memory device supporting the Universal Serial Bus (USB) standard. The present design is intended to provide a basic access control mechanism for file system contents stored within an externally attached USB memory device. For simplicity, the present design arrangement and operation will be described using a single program and single signature verification file for storing the program signature value resulting from application of the hashing algorithm. However, the present design may be configured to support multiple programs, multiple signature values, and the generation of more than one signature file located on the USB memory device. 
         [0025]      FIG. 1  illustrates a phacoemulsification/vitrectomy system in a block diagram to show the components and interfaces for a safety critical medical system in accordance with the present design. The particular embodiment illustrated in  FIG. 1  contemplates that the GUI host  101  module and instrument host  102  module are computing platforms connected by a serial communication cable  103  for the purposes of controlling the surgical instrument host  102  by the GUI host  101 . A foot pedal  104  switch module may transmit control signals relating internal physical and virtual switch position information as input to the instrument host  102  over serial communications cable  105 . Instrument host  102  may provide a USB data port  106  for attaching external devices including a USB memory storage device  107 . In addition, the USB data port may be realized on the GUI host  101  or any other subsystem (not shown) that could accommodate such an input/output device. 
         [0026]    The phacoemulsification/vitrectomy system has a handpiece  110  that includes a needle and electrical means, typically a piezoelectric crystal, for ultrasonically vibrating the needle. The instrument host  102  supplies power on line  111  to a phacoemulsification/vitrectomy handpiece  110 . An irrigation fluid source  112  can be fluidly coupled to handpiece  110  through line  113 . The irrigation fluid and ultrasonic power are applied by handpiece  110  to a patient&#39;s eye, or affected area or region, indicated diagrammatically by block  114 . Alternatively, the irrigation source may be routed to the eye  114  through a separate pathway independent of the handpiece. Aspiration is provided to eye  114  by the instrument host  102  pump (not shown), such as a peristaltic pump, through lines  115  and  116 . A switch  117  disposed on the handpiece  110  may be utilized as a means for enabling a surgeon/operator to select an amplitude of electrical pulses to the handpiece via the instrument host and GUI host. Any suitable input means, such as for example, a foot pedal  104  switch may be utilized in lieu of the switch  117 . 
         [0027]    The apparatus and method comprising the present design access control mechanism for securing an externally connected USB file system within a safety critical system will be described.  FIG. 2  is a block diagram illustrating the generation of an encrypted signature file  206  that may contain information specific to each program or data file  201  in accordance with the present design. The present design calculates a parameter, such as a signature value  203 , for each program or data file  201  identified by the manufacturer for field use deployment via an externally connected USB file system. The present design may use a cryptographic hashing algorithm  202 , such as the Secure Hash Algorithm-512 (SHA-512), to calculate signature value  203  for each program or data file  201 . The present design may write each resultant signature value  203  into at least one signature file  204 . 
         [0028]    The SHA-512 hashing algorithm is approved by the Federal Information Processing Standard (FIPS) and is the most secure of a family of algorithms developed and utilized by the National Security Agency. Industry experts and those skilled in the art consider the SHA-512 hashing algorithm to be collision free for all practical purposes. A collision occurs if any two different programs or data files  201  result in the same calculated signature value  203 . Collisions are typically expressed as a probability of collision, where a low probability of collision, as exhibited by the SHA-512 hashing algorithm, is highly desirable. The present design may provide a low probability of collision, thus the system calculated signature values remain sufficiently unique and may reliably be used to detect any possible alteration or substitution of programs or data files  201 . 
         [0029]    The present design may employ alternate hashing algorithms available for calculating signature values  203 , including for example, SHA-1, Message Digest algorithm-5, Cyclic Redundancy Check-32, and linear hashing mechanisms. The appropriate algorithm may be selected by the manufacturer of the instrument host  102  based on the size and number of the files anticipated to be included in signature file  204 . In a further embodiment, the present design may employ a plurality of hashing algorithms to each program or data file  201  to provide alternative hash values or multiple hash values for each program or data file  201  represented and described in the signature file  204 . In this arrangement, each program or data file  201  described in the signature file  204  may be represented by an alternate hash value or multiple hash values. 
         [0030]    Prior to writing the signature file  204  and the associated programs or data files  201  onto an USB file system in an external USB memory device  107 , the present design may encrypt the signature file  204  using encryption block  205  to secure the contents from unauthorized access. The present design may encrypt the signature file  204  using encryption block  205  with a variant of the Data Encryption Standard (DES), Triple DES, or Advanced Encryption Standard (AES) developed and employed by the National Security Agency. Those skilled in the art recognize that Triple DES and AES is unbreakable without the application of prohibitively massive amounts of computer processing power, memory and time. The present design&#39;s use of strongly encrypted signature file  206  may virtually eliminate the risk associated with executing an unknown software application on the instrument host  102 . The present design may be configured to use different encryption algorithms, or may apply multiple different algorithms in creating encrypted signature file  206 . 
         [0031]    Encrypting at point  205  of the signature file  204  to form an encrypted signature file  206  may prevent unauthorized or malicious users from altering the contents of this file in a manner that allows altered programs to appear to have valid signatures. The encryption signature file  206  may require the use of multiple key phrases to enable the file to be decrypted. The use of multiple key phrases is generally well known to those skilled in the art. In this arrangement, the key phrases are available only in software residing in the instrument host  102 , and cannot be accessed by a user or potential hacker of the instrument system. If the encrypted signature file  206  is changed or altered, the decryption operation would fail, causing all calculated program signature values to also fail. 
         [0032]    The present design may write the encrypted signature file(s)  206  and each program or data file  201  identified for distribution onto an external file system realized using, for example, a USB memory device  107 . Alternatively, in a further embodiment of the present design, the encrypted signature file(s)  206  may be written to a memory device, such as a hard drive, within the instrument host  102 , GUI host  101 , or other subsystem in lieu of an external USB memory device  107 . The encrypted signature file  206  may be maintained in a globally accessible file system, such as realized on a network. This arrangement may allow updates to be applied to the encrypted signature file  206  to represent legitimate program changes. 
         [0033]      FIG. 3  is a flowchart illustrating the computing platform instrument host&#39;s (IH)  102  use of digital signatures. Digital signatures may be provided via an encrypted signature file  206  maintained on the USB memory device  107 . The computing platform IH  102 , or ‘system’, typically identifies and verifies each program or data file  201  and data file stored within the attached USB file system. The initial starting conditions at  301  may include an IH  102  being powered on and fully operational in an operating theater environment. The user may at point  302  connect the USB memory device  107  to the USB I/O data port  106  located on IH  102 . The end-user may select a program at point  303 , where the program is stored on USB memory device  107 . The user may intend to execute the selected program, for example a demonstration program exhibiting new IH system functionality. The IH  102  may read and decrypt the encrypted signature file  206  at point  304  and may store the resultant decrypted signature file in system memory (not shown). The present design may decrypt the encrypted signature file  206  using the same mechanism selected during encryption, for example, a variant of the Data Encryption Standard (DES), Triple DES, or Advanced Encryption Standard (AES), typically comprising performing a reverse operation from the encrypting operation. Such decryption and encryption are typical functions offered by the aforementioned processes The encryption signature file  206  may require the use of multiple key phrases to ensure e the file is properly decrypted. In this arrangement, the required key phrases are available only to software residing in the IH  102 , and cannot be accessed by a user or potential hacker of the instrument system, or even the system creator. 
         [0034]    The present design may be alternately be configured to employ a password mechanism to decrypt the encrypted signature file  206  in lieu of embedding the key phrase in the instrument software, as previously described. In addition, the encrypted signature values may be maintained within the program files themselves, in lieu of in a separate signature file. 
         [0035]    The IH  102  may recalculate the signature value at  305  for each program or data file  201  to be executed. The present design may recalculate the signature value for each program or data file  201  using the same cryptographic hashing algorithm selected during encryption; for example, the present design may use SHA-512 to recalculate the signature value for each program or data file  201 . 
         [0036]    The system may compare at point  306  the recalculated signature value to the originally calculated signature value  203  previously stored at point  304 . The comparison mechanism may verify if the computed signature value at point  305  is identical to the signature contained in the decrypted signature file at point  304 . The present design is configure to allow execution at  307  of programs or data files  201  when the comparison mechanism yields an identical match between the recalculated signature value at point  305  and the originally calculated signature value  203  stored in signature file  204 . If the IH  102  fails to find a signature file at  306 , or if the requested program does not have a signature value  203  in signature file  204 , or if the signature file does not match the recalculated signature value at point  305 , the instrument host  102  may prevent the program from executing or gaining access to system resources at point  303 . 
         [0037]    The present design is configured to disable the system from being “boot-loaded” from a USB device. This may involve certain straightforward changes to the systems BIOS startup configuration settings, such as selecting “disable” of the ability to boot from a remote device. In addition, the present design may be configured to disable access to the system BIOS during the boot-up cycle to further protect the IH  102 . One arrangement for access to the system during boot-up may involve using a password, including a variant of the system key phrases, previously described to prevent unauthorized access. 
         [0038]    The signature files, either associated with or incorporated within programs, files, or the like enable the IH to recognize an authorized user file or program and operate on that user file or program. Limited functionality for a generally accessible and readily modified system is the result. Encryption and decryption further minimizes the likelihood that such files or programs may be employed improperly or alter the system, and thus offers an optional added level of security. Signature files for files maintained on file systems of external devices, such as USB devices, may be calculated either on the medical system or on a device external to the USB device using the same hashing algorithm or signature file creation mechanism as is employed on the medical system. Encryption may also be performed at the system or on a system configured to use the appropriate encryption data and processing. Decryption and determination of whether the signature file is acceptable are typically done on the medical system. 
         [0039]    The design presented herein and the specific aspects illustrated are meant not to be limiting, but may include alternate components while still incorporating the teachings and benefits of the invention. While the invention has thus been described in connection with specific embodiments thereof, such as in a medical device similar to that shown in  FIG. 1 , it will be understood that the invention is capable of further modifications. This application is intended to cover any variations, uses or adaptations of the invention following, in general, the principles of the invention, and including such departures from the present disclosure as come within known and customary practice within the art to which the invention pertains. 
         [0040]    The foregoing description of specific embodiments reveals the general nature of the disclosure sufficiently that others can, by applying current knowledge, readily modify and/or adapt the system and method for various applications without departing from the general concept. Therefore, such adaptations and modifications are within the meaning and range of equivalents of the disclosed embodiments. The phraseology or terminology employed herein is for the purpose of description and not of limitation.