Abstract:
A system and method for hardware implementations of policy-based secure computing environments for Internet enabled devices. The present invention facilitates a secure computing environment for any Internet enabled device where policy rules can be described as hardware components that allow or deny access to resources on the device. A compiler produces a hardware description language (HDL) of the hardware components based on given policy rules for that component. The system may be partially or completely implemented in hardware to address inherent limitations of a software only solution. The invention provides greater flexibility to the overall system in terms of performance, security, and expressiveness of the policy rules that must be executed.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is entitled to the benefit of, and claims priority to U.S. Provisional Application 61/992,960, filed on May 14, 2014. 
     
    
     TECHNICAL FIELD 
       [0002]    The present invention relates generally to Telecommunications, Digital Communication, Computer Technology, and IT Methods for Management. 
       BACKGROUND OF THE INVENTION 
       [0003]    With the proliferation of Internet connected devices there exists a growing need for secure computing environments that can be customized to the unique resources available on each device that take into consideration that the device may have to operate in a wide variety of locations in many different contexts. 
         [0004]    U.S. patent application Ser. No. 13/945,677 discloses a system for policy-based access control and management for mobile computing devices that addresses this need. That application is included by reference as if fully set forth herein. The basic system presented in that application is summarized in  FIG. 1  and  FIG. 2 . 
         [0005]    The system described therein provides extensive granularity of control over permitted operations, plus network, file system, and device access on handsets controlled by the system. Furthermore, the system utilizes one or more policy decision point (PDP) servers ( 101 ) Which respond to encrypted queries from handsets controlled by a given instance of the system. These PDP servers may be remote from the handset, or may even be hosted within the handset ( 102 ). The queries typically encapsulate requests for use of specific handset or network-accessible assets, and the PDP response to such a request is then received by the querying handset, with subsequent decisions made by the PDP then enforced at the Policy Enforcement Points (PEPs) on the handset ( 103 ). Note that for the purpose of brevity in the present description, we use the term “handset” largely in regard to “smartphone” devices and similar phone devices, but the invention should be considered generally applicable for the case of any computing device that might be a client in the system. 
         [0006]    The system and methods described in U.S. patent application Ser. No. 13/945,677 refer to software implementations whereby software that implements the policy control is loaded onto the computing hardware. However, there are instances where a purely hardware implementation or a hybrid implementation is advantageous. This new configuration is the focus of the present invention. 
       SUMMARY OF THE INVENTION 
       [0007]    The present invention facilitates a secure computing environment for any Internet enabled device Where policy rules can be described that allow or deny access to resources on the device. The system described herein may be partially or completely implemented in hardware to address performance and security limitations of a software only solution. 
         [0008]    The policy decision point (PDP) servers are the adjudicating components of the system. A hardware description language (HDL) is used to define components of the PDP which will be implemented in hardware. Any hardware implementation can be used including logic gates, content addressable RAM, or similar. The system can be fully implemented in hardware that may gain performance efficiencies but would yield flexibility. Alternatively, the system can be partially implemented in hardware whereby only some components of the PDP are hardware while others remain in executable software form. This provides greater flexibility to the overall system in terms of performance, security, and expressiveness of the policy rules hat must be executed. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0009]      FIG. 1  is a schematic representation of one embodiment of a policy-based device access and control system. (Prior art) 
           [0010]      FIG. 2  is a schematic representation of one embodiment of a PDP server without specification of hardware implementation. (Prior art) 
           [0011]      FIG. 3  is a schematic representation of one embodiment of a PDP server including hardware definition language output. 
           [0012]      FIG. 4  is a simplified schematic representation of PDP policy-invariant hardware components and PDP policy-dependent hardware components, in one non-limiting example of a potential hardware implementation of a PDP server within a system-on-chip (SoC). 
       
    
    
     DESCRIPTION OF THE INVENTION 
       [0013]    The present invention is a system and set of methods for implementing in electronic hardware all or parts of a secure, high performance policy-based access and resource control system. for protecting computing devices from various threats and for controlling their usage and access to information. 
         [0014]    The policy decision point (PDP) is where the policies that pertain to the device resources are executed and adjudicated. It may be preferable or advantageous in some circumstances to implement all or some of the PDP functionality in hardware rather than in loadable executable software. Such a hardware implementation of a PDP server has advantages such as higher performance in some circumstances, minimum required computing resources and low power operation due to dedicated hardware formed or generated in a way conforming precisely to suit the required computations, suitability for deployment within certain specialized hardware, and also hardening against attack due to the difficulty or impossibility of changing the hardware-implemented logic. 
         [0015]    The description that follows is for purpose of illustration and not limitation. Other systems, methods, features and advantages will be apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the inventive subject matter, and be protected by the accompanying claims. 
         [0016]    First, by way of non-limiting examples, a hardware platform suitable for such a hardware implementation of a PDP server for the system could consist of sets of logic gates, programmable logic, or could be rendered as contents of RAM or as content addressable RAM. The goal is to have the output of the compiler presented in  FIG. 2  ( 201 ), or some portions of that output, be implemented in such hardware components rather than as executable software for the reasons listed previously.  FIG. 3  presents schematically such a modified PDP compiler and its output. 
         [0017]    The following steps are representative of generating such a hardware implementation. 
         [0018]    1. Create or select a hardware architecture or platform for the PDP. As noted above, this might be some form of logic gates, or some other hardware type in which digital logic can be represented. 
         [0019]    2. Have the compiler render the full PDP or some portion of PDP functionality in a hardware description language (HDL) ( 301 ). One non-limiting example of such an HDL is Verilog (2014). Another non-limiting example is VHDL (VHSIC (Very High Speed Integrated Circuit) Hardware Description Language) (IEEE, 2014). 
         [0020]    3. Render or otherwise represent the HDL output of the PDP compiler in the chosen hardware form ( 302 ), or alternately, in a synthesized hardware form for purposes such as further design refinement, simulation, and testing. 
         [0021]    In regard to steps 2 and 3, many variants on which portions of PDP functionality are implemented in hardware or in specific hardware components are possible. Furthermore, there can be both policy-dependent and policy-invariant portions of a given PDP server. A purely software implementation is highly dynamic but may suffer from performance issues as described previously. Also, because the policy itself is dynamic, it is not as secure as a static hardware implementation. Therefore, flexibility as to which components will reside in hardware and which will reside in software is the key to this invention. 
         [0022]    For example, query-response communication aspects may be policy-invariant (i.e. static), whereas policies themselves as expressed in the POL (policy object language) language are expected to vary for different policies and policy sets. The present invention contemplates any hardware implementation of a PDP server or portions thereof. 
         [0023]      FIG. 4  is a simplified, non-limiting representation of one such implementation within one System On Chip (SoC), but many variants are contemplated within the invention, whether on a single integrated circuit, or as individual components, with any form(s) of interconnects or bus configurations. The following are some non-limiting examples of some possible implementations of the PDP itself where the degree to which the PDP is implemented in hardware varies. 
         [0024]    1. The entire PDP server is represented in HDL and expressed as logic gates. Such a representation is relatively inflexible but may be appropriate for certain applications. 
         [0025]    2. One or more policy-invariant portions of PDP functionality are represented in HDL and ultimately rendered as gates (see Woods et al, 2014), while other portions, such as policy dependent portions, are rendered as contents of RAM, or as Content Addressable RAM (CAM), or as some other addressable form, or even in software form. This would make for a very fast, reprogrammable, hardened hardware platform for answering policy queries. 
         [0026]    3. Specific individual elements of PDP functionality are represented as independent hardware components, and one or more PDP servers are then assembled by connecting instances of these hardware components together. Such a modular component approach may lead to re-usability of certain components such as policy-invariant ones, and may result in hardware cost savings. 
         [0027]    Regarding implementations 1-3 above, and other similar implementations, it is notable that any of these representations of PDP functionality or partial functionality may have significant utility and value in System-On-Chip (SoC) designs and in microprocessors. A multitude of hardware forms are possible and contemplated within the present invention, including but not restricted to Application-specific integrated circuit (ASICs), Application-specific Standard Products (ASSPs), and Field Programmable Gate Arrays (FPGAs), with the latter form allowing for some programmability and configuration after instantiation of the hardware form. Furthermore, such functional blocks could form major components of micro-controllers for use in the Internet of Things. 
         [0028]    In regard to hardware implementations of a PDP server and related performance aspects, policies could be compiled into hardware structures that are highly efficient for candidate policy selection. Having such a policy representation, it would then be possible to perform operations such as expression evaluation that leads to the selection of the final successful policy, if any, from this candidate set, using technologies such as, but not limited to, Direct Memory Access (DMA) or Cycle Stealing. 
         [0029]    Within the present invention, it is not required that all of the logic, whether fixed or variant, be produced by a single tool chain and compiled into hardware from that tool chain. By way of non-limiting example, policy information can be contained in RAM or other volatile or non-volatile storage. That policy information can be provided by a separate tool chain and then compiled separately into hardware. 
         [0030]    A wide variety of interconnection methods and technologies are feasible between PDP functionality units themselves, and between instances of PDP hardware implementations and other functional components of a system. The present invention is not limited to a particular interconnect method. With PDP functionality incorporated into a system architecture, there are a wide variety of ingress/egress mechanisms that could be utilized: bus mechanisms (shown in  FIG. 4  ( 401 )) when the PDP server or components of it are close enough to the host&#39;s pins to communicate with the outside world; shared memory, and internal I/O such as interrupt mechanisms, when the PDP is an internal component of a host with no direct visibility to the host&#39;s own external I/O. 
         [0031]    Furthermore, many system architectures are possible and contemplated here, including, but not limited to, the use of dedicated or subordinate processors specifically for PDP-specific processing or shared processing with other required computations during system operation. 
       INDUSTRIAL APPLICATION 
       [0032]    The invention pertains to securing and managing network-connected computing devices and any industry where that may be of value or importance. 
       CITATION LIST 
       [0033]    Verilog, http://www.verilog.com/, accessed May 12, 2014. 
         [0034]    IEEE P1076 Working Group, http:/www.eda.org/twiki/bin/view.cgi/P1076, accessed May 12, 2014. 
         [0035]    University of British Columbia, Department of Electrical and Computer Engineering, http://www.ece.ubc.ca/˜edc/379.jan99/lectures/lec13pdf, accessed May 12, 2014. 
         [0036]    L. Woods, Zs. Istvan, G. Alonso, Ibex (2014) “An Intelligent Storage Engine with Support for Advanced SQL Off-loading.” VLDB 2014, Hangzhou, China, September 2014.