Abstract:
The present invention relates to a system and architecture for securing otherwise unsecured computer subsystems. According to one aspect, the invention provides an independent hardware platform for running software in a secure manner. According to another aspect, the invention provides the means to control and secure all disk, network and other I/O transactions. According to still further aspects, the invention provides a means to monitor and prevent unauthorized user and malicious software activity Additional aspects include providing a secure platform for device and user authentication as well as encryption key management, providing a means to perform background backup snapshots, and providing the means for enabling full management over computer operations.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    The present application is a continuation of U.S. patent application Ser. No. 13/971,677 filed Aug. 20, 2013, now U.S. Pat. No. 9,231,921, the contents of which are incorporated by reference herein in their entirety. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The present invention relates to a system and architecture for securing computer systems having non-secure subsystems. 
       BACKGROUND OF THE INVENTION 
       [0003]    U.S. Pat. No. 8,813,218, the contents of which are incorporated herein by reference in their entirety, dramatically advanced the state of the art of computer system security. Nevertheless, certain challenges and opportunities for improvement remain. 
         [0004]    Conventional computing devices typically include one to many conventional types of subsystems such as storage, networking, audio/video, I/O interfaces, etc. However, these subsystems are typically inherently unsecure and vulnerable to many different types of threats. 
         [0005]    For example, as shown in  FIG. 1A , a conventional non-secure computer  150  (e.g. a desktop or notebook computer) includes a host system  102 , typically including a CPU running an operating system, application software and device drivers. Computer  150  further includes devices  106  associated with various computer subsystems such as an internal drive  106 - 1  (e.g. HDD or SSD), audio/video input and output devices  106 - 2  (e.g. display, speakers, etc.), I/O ports and devices  106 - 3  (e.g. USB, Firewire, etc.) and network interfaces  106 - 4  (e.g. WiFi, Ethernet, etc.). 
         [0006]    The lack of security over the subsystems associated with these devices results in many vulnerabilities. More particularly, in connection with internal drive  106 - 1 , data stored on it is typically non-encrypted. This means that if it is discarded or surreptitiously inspected (e.g. by someone stealing computer  150  or by virus software on host  102 ), its contents can be retrieved, including any sensitive, private or confidential data. Further, many users do not regularly back up their data, rendering the data on drive  106 - 1  vulnerable to drive or system failure. 
         [0007]    Even when data is encrypted and/or backed-up, its level of security depends on the specific operating system and application. Further, if encryption keys are also stored locally on computer  150  they can be accessed and used surreptitiously. 
         [0008]    In connection with audio/video input and output devices  106 - 2 , data displayed or audio played can include sensitive information which is subject to eavesdropping, particularly when computer  150  is being operated in a public place. However, when unauthorized copies of this displayed information are discovered, it is sometimes difficult to prove the source or circumstances of the unauthorized copy. 
         [0009]    In connection with I/O ports and devices  106 - 3 , standard I/O communication protocols such as USB do not provide any level of security for the data transmitted from the peripheral devices to the host system. USB data is sent in plain text. Accordingly, the data can be captured and analyzed by any USB protocol analyzer or software application. Moreover, any USB peripheral is capable of connecting to a host computer since USB specification doesn&#39;t provide any means to filter unwanted or potentially harmful devices. This poses a huge risk for enterprises, and more particularly, IT administrators who are responsible for securing their IT systems and devices. Still further, USB devices may contain executable programs that can run on (and potentially harm) the computer  150 . 
         [0010]    In connection with network interfaces  106 - 4 , data sent over a network can include sensitive information that is also subject to interception. Moreover, network data received by computer  150  can include harmful applications such as viruses and malware. Some organizations provide some level of security over their internal networks using such security protocols as VPN. However, not all network connections by computers in an organization utilize a VPN security protocol. And even when they do, they are not always automatically started prior to boot/network connection, providing a window of opportunity for the resident malware to send/receive information. Moreover, VPN connections in software are fairly slow and they do not support high-bandwidth connections, such as those in the hundreds of megabits/sec (e.g. 100 Mbs or 1 Gbs Ethernet and higher). In principle, all network communications using an organization&#39;s computers (whether internal or external) should be secured. 
         [0011]    It should be apparent from the foregoing that many applications would benefit from the ability to seamlessly and unobtrusively add security over the above and other subsystems and/or from the ability to centrally manage such additional security features over the computer devices of an organization. 
       SUMMARY OF THE INVENTION 
       [0012]    The present invention relates to a system and architecture for securing otherwise unsecured computer subsystems and IO interfaces that addresses the above shortcomings among others. According to one aspect, the invention provides an independent hardware platform for running software in a secure manner. According to another aspect, the invention provides the means to control and secure all disk, network and other I/O transactions. According to still further aspects, the invention provides a means to monitor and prevent unauthorized user and malicious software activity Additional aspects include providing a secure platform for device and user authentication as well as encryption key management, providing a means to perform background backup snapshots, and providing the means for enabling full management over computer operations. 
         [0013]    In accordance with these and other aspects, a secure computer according to embodiments of the invention includes a plurality of subsystems for receiving, storing, retrieving from storage and outputting data, a host system running an operating system and applications that receive, store, retrieve and output the data, and a secure subsystem that controls access by the host systems to the plurality of subsystems. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0014]    These and other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures, wherein: 
           [0015]      FIG. 1A  is a block diagram illustrating an example non-secure computer system according to the prior art; 
           [0016]      FIG. 1B  is a block diagram illustrating an example secure computer system according to embodiments of the invention; 
           [0017]      FIG. 2  is a block diagram illustrating an example system for managing a plurality of secure computer devices according to embodiments of the invention; and 
           [0018]      FIG. 3  is a more detailed block diagram illustrating an example architecture for a secure computer system according to embodiments of the invention. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0019]    The present invention will now be described in detail with reference to the drawings, which are provided as illustrative examples of the invention so as to enable those skilled in the art to practice the invention. Notably, the figures and examples below are not meant to limit the scope of the present invention to a single embodiment, but other embodiments are possible by way of interchange of some or all of the described or illustrated elements. Moreover, where certain elements of the present invention can be partially or fully implemented using known components, only those portions of such known components that are necessary for an understanding of the present invention will be described, and detailed descriptions of other portions of such known components will be omitted so as not to obscure the invention. Embodiments described as being implemented in software should not be limited thereto, but can include embodiments implemented in hardware, or combinations of software and hardware, and vice-versa, as will be apparent to those skilled in the art, unless otherwise specified herein. In the present specification, an embodiment showing a singular component should not be considered limiting; rather, the invention is intended to encompass other embodiments including a plurality of the same component, and vice-versa, unless explicitly stated otherwise herein. Moreover, applicants do not intend for any term in the specification or claims to be ascribed an uncommon or special meaning unless explicitly set forth as such. Further, the present invention encompasses present and future known equivalents to the known components referred to herein by way of illustration. 
         [0020]    According to general aspects, embodiments of the invention include a secure computer platform creating a robust area of trust, secure processing, secure I/O and security management. In embodiments, the secure computer architecture includes a secure subsystem that operates independently alongside a host processor, eliminating the need to modify the host CPU hardware or software (e.g. operating system and/or applications). The secure subsystem is responsible for all security, management, data integrity, activity monitoring, archival and collaboration aspects of the secure computer. According to certain additional aspects, the security functions performed by embodiments of the invention can be logically transparent to both the upstream host and to the downstream device(s). 
         [0021]      FIG. 1B  illustrates an example secure computer  120  according to embodiments of the invention. 
         [0022]    As can be seen in comparison to the prior art computer  150  in  FIG. 1A , and in accordance with certain aspects of the invention, secure computer  120  includes secure subsystem  104 . In general, secure subsystem  104  operates alongside of and is agnostic of the host  102  (i.e. its hardware, software and operating system). For example, it does not share memory space with the host  102  nor is it accessible from the host CPU&#39;s operating system and applications. Similarly, the host  102  has little or no knowledge of the existence of the secure subsystem  104 . All data visible to the host  102  is secure, and all data stored on disk  106 - 1  or on other devices connected through ports  106 - 3  (e.g. USB mass storage device) or sent over the network  106 - 4  is secure. According to further aspects, the performance of subsystems associated with devices  106  is not reduced by the actions of secure subsystem  104 . 
         [0023]    Certain other aspects of secure computer  120  contrast with those of prior art computer  150 . In a desktop PC implementation, for example, conventional computer  150  typically includes open interfaces (not shown), such as a PCI or PCIe expansion bus, by which host  102  connects to and communicates with devices  106 . The present inventors recognize, however, that this presents a potential security breach, such as where a probe could be inserted to extract/insert data/viruses, etc. In embodiments, therefore, the host  102  of secure computer  120  communicates with devices  106  only through secure subsystem  104  via secure connection  170  and is not connected to any expansion bus such as PCI or PCIe. 
         [0024]    Secure connection  170  can be implemented in various ways, depending perhaps on the implementation of host system  102  and secure subsystem  104 . In one example where host system  102  includes a CPU on a separate chip as secure subsystem  104  but on a common motherboard, secure connection  170  can be implemented by embedded motherboard traces. In another example, host system  102  and secure subsystem  104  are implemented in a common chip such as a SOC. In this example, secure connection  170  includes internal chip traces. 
         [0025]    Similarly, and in further contrast to conventional computer  150  according to aspects of the invention, connections  172  between secure subsystem  104  and devices  106  are also secured. However, it may not always be physically possible to make connections  172  completely inaccessible to the outside world. Accordingly, in embodiments these connections  172  are made secure by encrypting data between subsystem  104  and devices  106 . It should be noted that certain connections  172  in embodiments of the invention can include a conventional bus such as a dedicated PCIe bus. However, host  102  has no direct access whatsoever to devices  106  connected to these connections  172 , and vice-versa, except via subsystem  104 . 
         [0026]    In accordance with aspects of the invention, embodiments of secure subsystem  104  transparently perform one or more of the following security functions in connection with drive  106 - 1 : data security (e.g. encryption of data stored on drive  106 - 1 , key management, anti-virus scanning); and data integrity (e.g. server-based backup using a snapshot mechanism); 
         [0027]    In connection with ports/devices  106 - 3 , embodiments of secure subsystem  104  transparently perform one or more of the following security functions: data security (e.g. encryption of data sent from host  102 , key management); gatekeeping (e.g. preventing a prohibited device from connecting to host  102 ); data snooping; and keyboard and mouse emulation (e.g. emulating keyboard and mouse commands by subsystem  104  separately from commands from actual keyboards and mice devices  106 - 3 ). 
         [0028]    In connection with network interface  106 - 4 , embodiments of secure subsystem  104  transparently perform one or more of the following security functions: VPN (e.g secure tunnel over Ethernet connection intended to protect all network traffic); and three-way switch (e.g. to direct incoming network traffic to one of the two hosts  102  or  104 ). 
         [0029]    In connection with audio/video devices  106 - 2 , embodiments of secure subsystem  104  transparently perform one or more of the following security functions: video overlay of the video streams from the host system  102  and secure subsystem  104 ; video watermarking; display privacy; screen analytics, such as OCR; remote screen viewing; mixing audio inputs from the host system  102  and secure subsystem  104 ; audio watermarking; and forwarding of audio to a remote management system. 
         [0030]    Secure computer  120  may be implemented as a desktop PC, notebook, thin client, tablet computer, smart phone, server, or any other type of computing device (e.g. TelePresence Unit, ATM machine, Industrial Controls, etc.). 
         [0031]    It should be noted that, in embodiments such as that shown in  FIG. 1 , the secure subsystem  104  controls access to all interfaces and peripheral devices  106  of computer  120 . However, this is not necessary, and other embodiments allow for certain of these devices  106  to be accessed directly by host  102  in the conventional manner. It should be further noted that the particular number and/or combination of devices and interfaces  106  can also depend on the particular implementation of secure computer  120 . 
         [0032]    In one possible implementation, secure subsystem  104  is a standalone subsystem, and is not configurable. However, according to certain management aspects of the invention, in embodiments, secure subsystem  104  is configurable and one or more secure computers are managed either centrally or remotely by a remote management system. 
         [0033]      FIG. 2  shows an example of system for implementing and managing secure computers according to embodiments of the invention. 
         [0034]    In this example, there are three types of secure computers: a PC  220 - 3 , a notebook computer  220 - 2 , and a point-of-sale device  220 - 1 , each connected to a remote management system  206  by a respective communication channel  208 . Although not shown separately, a secure subsystem  104  is embedded into each of the appliances  220  and operates transparently to the normal functioning of the device. 
         [0035]    In this example, secure PC  220 - 3  is similar to a conventional standalone desktop computer. In such an example, host  102  is implemented by a CPU (e.g. x86), a conventional operating system such as Windows and associated device driver software. 
         [0036]    Likewise, in this example, secure notebook computer  220 - 2  is similar to a conventional standalone notebook computer. In such an example, host  102  is implemented by a CPU (e.g. x86), a conventional operating system such as Windows and associated device driver software. Unlike PC  220 - 3 , however, peripherals such as displays, keyboards and mice are integrated within the computer  220 - 2  and are not controlled via external interfaces such as HDMI and USB. 
         [0037]    In secure point-of-sale device  220 - 1 , host  102  can be implemented by an embedded and/or industrial PC. 
         [0038]    In these and other examples of secure computers  220 , subsystem  104  is preferably an embedded system. As such, it runs a designated software system furnished together with an embedded processor, and cannot be modified by the end-user of the computer under any circumstances. Various aspects of the types of security functionality performed by secure subsystem  104  that can be adapted for use in the present invention are described in more detail below. Those skilled in the art will be able to understand how to implement the security functionality of the invention using software and embedded processors after being taught by the present examples. 
         [0039]      FIG. 2  further shows a Remote Management system  206  coupled to secure computers  220  by respective communication channels  208 . Channels  208  can be implemented in various ways, possibly depending on the number and type of devices to be managed by system  206 . Channels  208  can be separate direct point-to-point links between system  206  and computers  220 . In other embodiments, channels  208  can be implemented by a transmission medium that is shared between many computers  220 . In these and other embodiments, the medium can be any combination of wired or wireless media, such as Ethernet or Wireless LAN. In these and other embodiments, channels  208  can be implemented by various types and/or combinations of public and private networks using proprietary protocols running on top of conventional protocols such as UDP or TCP. In some embodiments, data sent over three communication channels described above is encrypted to improve security, for example using a secure VPN connection. 
         [0040]    According to general aspects, in embodiments of the invention, remote management system  206  is responsible for managing policies that control the secure subsystem&#39;s security functionality, including whether or not to perform data encryption, whether and how to perform data snooping, device gatekeeping lists, etc. Based on these lists, and devices attached to interfaces of computers  220 , remote management system  206  sends appropriate configuration information to computers  220  via channels  208 . System  206  also receives and perhaps further processes data sent to system  206  from devices  220  such as video data from a computer&#39;s monitor, history of attached devices, keyboard and mouse input data, and disk backup data. 
         [0041]    Various aspects of a remote management system and/or security policies that can be adapted for use in the present invention are described in more detail in U.S. Pat. No. 9,215,250, the contents of which are incorporated herein by reference in their entirety. 
         [0042]      FIG. 3  is a block diagram of an example secure computer  320  according to embodiments of the invention. 
         [0043]    As shown, secure computer  320  includes a host system  302  and a secure subsystem  304 . Host system  302  includes its own CPU (e.g. x86, ARM-based apps processor, server CPU, MIPS, QorIQ or PowerPC), memory &amp; I/O sub-system. In embodiments, host system  302  has no direct access to the secure subsystem  304 . According to transparency aspects of the invention, the interface between host system  302  and secure processor  304  is implemented using host system  302 ′s standard interfaces with devices  106 , such as standard I/O, networking and storage interface. In some embodiments, there may be a control interface between the secure subsystem  304  and host system  302  with a predefined communications protocol over a dedicated hardware interface (e.g. UART) or a hardware-based handshake only (e.g. GPIO). 
         [0044]    Secure subsystem  304  controls the overall operation of secure computer  320 , including access by host system  302  to all peripherals. Importantly, according to aspects of the invention, host system  302  is unable to directly exchange data with some or all of the computer system peripherals such as USB and other I/O devices, network interfaces, storage devices and audio/video devices except via secure subsystem  304 . In embodiments, secure subsystem  304  further controls all power management functions such as power on sequence, power down sequence, and entering and exiting low-power modes. Further, the secure processor  362  in secure subsystem  304  is booted first, and it goes to sleep or powers-down last. All aspects of BIOS authentication and update are managed by the secure subsystem  304 . Certain aspects of a computer having a host system  302  and whose overall operation is managed by secure subsystem  304  are described in U.S. Pat. No. 8,813,218, and can be adapted for use in the present invention. 
         [0045]    In an example embodiment where computer  320  is similar to a conventional desktop PC, computer  320  includes a motherboard, host CPU, system bus, and memory. Differently from a conventional desktop PC, however, computer  320  does not include an expansion bus such as PCI or PCIe accessible to the host CPU. In one such embodiment, subsystem  304  is implemented by an ASIC or FPGA that is separate from the host CPU and data is sent between host system  302  and secure subsystem  304  over secure, embedded traces on the motherboard. In other embodiments, including where computer  320  is a tablet or mobile device (e.g. smartphone), or in other implementations where power, area and/or cost constraints are factors, both host system  302  and secure subsystem  304  are implemented in the same SOC. 
         [0046]    Another possible embodiment includes providing secure subsystem  304  on a PCIe card in a conventional computer&#39;s PCIe expansion bus. Differently from the conventional computer PCIe expansion bus, however, this embodiment includes a “secure” PCIe connector that would prevent someone from inserting a “probe” between the connector and the card in order to trace the non-encrypted data between the host system  302  and secure subsystem  304 . This secure connector is preferably secure and destructive. The PCIe card could be inserted into a standard motherboard at manufacture time and it wouldn&#39;t be able to be removed thereafter. If someone tried to thereafter extract the PCIe card, the connector would “break” and the card wouldn&#39;t be able to be inserted again (and function properly). This may be achieved mechanically or even through the use of smart sensors that would detect an “abnormal” insertion of the PCIe card (i.e. the existence of a snooping device, like a simple PCIe extender card). 
         [0047]    Secure processor  362  in subsystem  304  is typically implemented as an embedded processor, such as ARM or other embedded processor core. The processor is connected to memory and other system components, including subsystems  352 - 360  via a shared bus, such as AXI. In embodiments, components that require high-speed data transfer are connected via dedicated point-to-point DMA channels. 
         [0048]    Although not shown in detail in  FIG. 3 , embodiments of secure processor  362  include: a CPU (e.g. a single or many core CPU complex); local DDR memory and caches; non-volatile storage (e.g. flash memory); peripherals (e.g. 12C, SPI, UART, GPIO, and others); and media engines (e.g. 2D/3D graphics, audio/video compression). In general, secure processor  362  performs two primary tasks: to configure and manage all the sub-systems, and to run secure software stacks, applications, etc 
         [0049]    As shown in the example of  FIG. 3 , computer  320  also includes peripherals (keyboard, mouse, camera, mic, speakers, etc.), peripheral interfaces (USB, etc.), video (i.e. display), networking (e.g. Ethernet), SATA devices (e.g. storage HDD/SSD). 
         [0050]    As further shown, and as described in more detail below, each of these peripherals has a corresponding subsystem  352 - 360  in secure subsystem  304  that essentially implements a secure I/O environment. They provide a secure bridge between host system  302  and the actual devices and implement security tasks such as data encryption/decryption, gate-keeping and snooping. According to aspects of the invention, each subsystem  352 - 360  performs these functions transparently to the host system  302 , in real-time, with minimal delay and in hardware (fast path). 
         [0051]    In addition to managing the security tasks performed by subsystems  352 - 360 , secure processor  362  performs such tasks as exception handling, analyzing data captured by subsystems  352 - 360 , accumulating traffic statistics, etc. Secure processor  362  also includes a network interface for communicating with remote management system  206  via communication channel  308 . Such communications can include receiving policies for the security functions performed by subsystems  352 - 360  from management system  206 , sending data captured by subsystems  352 - 360  to management system  206 , and sending alerts of certain violations or threats detected by subsystems  352 - 360  to management system  206 . 
         [0052]    In embodiments, the secure processor  362  receives logged/snooped information from the various subsystems and runs an application to store and analyze it for potential threat behavior. This can include correlating data from the various sub-systems of the secure computer as well as cross-correlating data between different secure computers. If a threat is detected, then an alarm is sent to remote system  206 , which will in return modify a policy and apply it to the suspicious secure computer. This may limit or shut down a certain interface, or lockout a certain user or shut down the entire computer, etc. 
         [0053]    In embodiments, USB subsystem  352  is responsible for one or more tasks associated with attached USB devices such as data security (e.g. encryption, key management), gatekeeping, data snooping, and keyboard and mouse emulation. Example aspects of these and other security tasks that can be adapted for use in the present invention are described in more detail in co-pending applications U.S. patent application Ser. Nos. 13/971,582 and 13/971,604, and U.S. Pat. No. 9,076,003, for example. 
         [0054]    In embodiments, networking subsystem  354  is one or more tasks associated with Ethernet, WiFi, and 3G devices such as secure protocols for secure, high-bandwidth connections (e.g. IPSec, SSL/TLS) and network processing, including classification and flow control engines. 
         [0055]    In embodiments, storage subsystem  356  is responsible for one or more tasks associated with internal or external storage devices (e.g. SATA devices) such as data security (encryption, key management, anti-virus scanning), data integrity (e.g. server-based backup using snapshot mechanism) and data compression. Example aspects of these and other security tasks that can be adapted for use in the present invention are described in more detail in co-pending applications U.S. patent application Ser. Nos. 13/971,732 and 13/971,651. 
         [0056]    In embodiments, audio subsystem  358  and video/graphics subsystem  360  are responsible for one or more tasks associated with audio/video devices such as displays, speakers, microphones and cameras such as multi-layer video resize, alpha-blending, audio mixing, audio and video watermarking (visible and invisible), 2D/3D graphics acceleration, compression, secure remote desktop, video conferencing, video surveillance, and desktop and video analytics applications. Example aspects of these and other security tasks that can be adapted for use in the present invention are described in more detail in U.S. Pat. No. 9,232,176. 
         [0057]    In embodiments, every aspect of how secure subsystem  304  manages the operation of computer  320  is controlled by the remote management system  206  either dynamically or according to predefined policies stored and/or sent to the secure subsystem  304 . In embodiments, I/O interfaces are remotely controlled, monitored and backed up by the remote management system  201 , and may be limited or shut down completely if needed. 
         [0058]    In embodiments where data written/read to/from storage and I/O devices as well as network traffic is encrypted/decrypted, the encryption and authentication keys are managed by the remote management system  206  and may be cached locally on the secure subsystem  304 . 
         [0059]    Although the present invention has been particularly described with reference to the preferred embodiments thereof, it should be readily apparent to those of ordinary skill in the art that changes and modifications in the form and details may be made without departing from the spirit and scope of the invention. It is intended that the appended claims encompass such changes and modifications.