System and methods for facilitating secure computing device control and operation

Information

  • Patent Grant
  • 11425168
  • Patent Number
    11,425,168
  • Date Filed
    Friday, May 13, 2016
    8 years ago
  • Date Issued
    Tuesday, August 23, 2022
    2 years ago
  • Inventors
  • Examiners
    • Smithers; Matthew
    • Gao; Shu Chun
    Agents
    • JRG Attorneys at Law
Abstract
A system and methods for facilitating secure computing device control and operation. The invention discloses a framework to supply security and policy-based control to computing applications as a software service. Clients running the framework make requests for services whereby they identify the service needed and its required parameters, encrypt and sign them, and send them to the service handler. The service handler decrypts, checks for policy allowance, and then, if allowed, executes the functions. The handler then encrypts and returns the response to the client. The framework allows for an aggregator that collects service requests for any number of clients and manages the distribution to service handlers and communications back to the clients.
Description
TECHNICAL FIELD

The present invention relates to the technical fields of Computer Security, Software as a Service, Mobile Computing, Telecommunications, Digital Communications, and Computer Technology.


BACKGROUND OF THE INVENTION

With the rapid proliferation of network enabled computing devices (the so-called Internet of Things) along with ubiquitous mobile personal devices and conventional computing platforms, the importance of secure, reliable computing environments is paramount. Failure to properly implement security on these new network enabled devices does not only threaten the devices themselves but could be a vulnerability for entire networks. This is a critical problem.


Secure access, management, and control of computing devices with compact or otherwise constrained processing hardware and networking hardware such as those found in the Internet of Things presents a number of challenges. Such devices may be constantly exposed to malicious attacks via the internet and can be remote and physically difficult or time-consuming to access directly by the permitted device users and administrators.


Many developers of devices and services do not focus on security as a priority—they understandably focus on their device or service. Also, these devices tend to be computationally lightweight and therefore have limited resources with which to implement reliable security. What is needed is a security framework that operates as a service whereby application developers need only subscribe to the service to receive appropriate implementation of security policies pertaining to their products and services.


Developers of computer code for such devices would benefit from having secure computing tools and secure services available so as to assist them in the development of secure computing code for the operation and control of these devices. A set of basic services is therefore provided that such developers can confidently and securely utilize without having to take the time and trouble to implement such services themselves.


This invention discloses a system and method for facilitating secure services over the network (as a software-as-a-service (SaaS) model) that also solves the problem of simplifying implementations for application programmers who need to implement security but who may not have the requisite expertise to do so.


The following device service framework and service design is disclosed herein as a way to provide developers with pre-built secure computing tools and services. As a whole, the framework represents a “base platform” for operation, control, and updating of online devices. Individual components or services from the framework may in some cases also be incorporated into devices to facilitate or simplify device development.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 Schematic representation of policy-based control system.



FIG. 2 Flow diagram showing a hypothetical client and server framework response to security service requests.



FIG. 3 Schematic diagram of the Secure Framework Service Architecture.





DETAILED DESCRIPTION OF THE INVENTION

In the present invention, a secure framework is proposed for registering, managing, and operating computing services simply but securely. The framework is designed to facilitate access to secure services on network-connected computing devices and to simplify secure software development for such devices.


The system is a transport mechanism that establishes “file system” and “network” services based on functions that the client registers with the framework. The framework runs on both the client and the servers that supply services to the client (see FIG. 2). The client issues “commands” to the server that name a service to be provided by the server and also provide any arguments that are required for that service. This can be accomplished either by a naming scheme whereby the client knows what services and commands are available, or by a discovery protocol so that it can be further extensible at run time.


The system can be further abstracted where an aggregator can be used to aggregate commands from individual components in the client without having to know the structure of the client itself. In FIG. 2, the Service/Receiver (205) is one such aggregator. The aggregator can handle requesting services and delivering responses back to the client components as needed. This is useful because it relieves client components from having to handle their own interface to security services.


On initialization, the framework runs in a loop whereby it executes “work” functions. Within the work functions in the loop, the framework constructs and sends commands and then receives responses. The client (designated as Node A, 201) creates remote service objects (202) that include the named service and command as well as arguments. This is useful because it allows the security services to run remotely or on the same hardware as the device if that is desired. The system then hashes, signs and encrypts the service call (203) and it is sent to the server for processing (204). Each request for services has a transaction number so that the calling client can track outstanding requests while it continues to compute.


The receiver (205), then authenticates, authorizes, and decrypts the service call (206) before it is dispatched for processing to the service handler. The receiver conducts a policy check to ensure that execution of the command is allowed for this client. If not allowed, a return message is sent, otherwise, the service handler is called. The service handlers may be remote or may run on the same hardware as the aggregator. This is useful because the service handlers know they will only receive properly vetted requests. Only authorized commands can be executed.


At this point, the client and the service are operating asynchronously. The client is not halted at any time while it waits for a response from the server. Execution continues with local execution of services (207). When the service handler completes, the response is encrypted and returned to the sender with its associated transaction number for identification (208).


When the response is received by the client, it is decrypted, verified, and passed to the appropriate function while computation continues (209). At this point, the process can repeat itself as needed.


The following components, shown schematically in FIG. 3, are the core components of the framework:

    • Scheduler (301): This component handles the scheduling of the service handlers that perform the actual work functions for the client.
    • Function Invocation Interface (302): This component is the interface to the framework by which services are requested.
    • Registration mechanism for above (303) so that a client (304) can define services of their own.


Abstraction of device specifics from the framework is accomplished via unix-like poll( ), ioctl( )and ioctl_completion( )functions, and other functions as required. However, in each case, policy-based control of each function call is provided by couplings to the policy-based system shown in FIG. 1, wherein each function or service invokes a Policy Decision Point (PDP) call to request a policy-based decision to allow or disallow the requested operation or take other appropriate action as specified by policy. In essence, each function or service in the framework incorporates or otherwise can invoke a Policy Enforcement Point (PEP). A service is defined by registering those functions with the framework (and giving each function a name). Services can then be targeted by remote endpoint for activity by invoking ioctl( )on the named services.


INDUSTRIAL APPLICATION

The invention disclosed herein is useful for any application domain where secure computing services are required but need not be executed or integrated into the local system directly. Mobile device applications are well suited to this invention because of their inherent lightweight computing capabilities and integrated networking. However, any computing application would benefit from the invention especially if the application developers want to “outsource” security to this service rather than implement it themselves.

Claims
  • 1. A system for secure computing device control and operation to a requesting client from remote security and policy services, the system comprising: the requesting client having a processor and a computer readable storage medium having data stored therein representing software executable by a computer, the software including instructions for: identifying the remote security and policy services; andconnecting application code on the requesting client to service requests;wherein the requesting client creates a service object from a service request that includes the name of the remote security and policy service and required parameters for said remote security and policy service;the remote security and policy services coupled to the requesting client via a digital network, said remote security and policy services having a processor and a computer readable storage medium having data stored therein representing software executable by a computer, the software including instructions for: receiving the service object and for extracting the service request from the service object;adjudicating the service request at a polic decision point to execute the remote security and policy service; andscheduling the execution of remote security and policy services; andat least one policy execution point coupled to the requesting client to enforce the adjudicated service request and to take any other action as specified by the policy decision point.
  • 2. The system of claim 1, wherein the requesting client software further includes instructions for: hash encoding the service request;digitally signing the encoded service request;encrypting the signed and encoded service request;decrypting the signed and encoded service request; andhash verifying the hash encoded service request.
  • 3. The system of claim 2 wherein the remote security and policy services software further includes instructions for receiving encoded, signed, and encrypted service requests from at least one requesting client and dispatching allowed requests to remote security and policy service providers.
  • 4. The system of claim 3 wherein receiving encoded, signed. and encrypted service requests from at least one requesting client and dispatching allowed requests to remote security and policy service providers are executed on the requesting client processor.
  • 5. The system of claim 1 wherein identifying the remote security and policy services uses a discovery protocol.
  • 6. The system of claim 1 wherein the remote security and policy services and the requesting client are executed on the same processor.
  • 7. The system of claim 1 wherein each service request is assigned a unique transaction number.
  • 8. The system of claim I wherein the remote security and policy services further include: a policy object language compiler and generator for specifying policy rules for the policy decision point.
  • 9. A method for secure computing device control and operation to a requesting client from remote security and policy services, the steps comprising: creating a service object for a service request that includes the name of the remote security and policy service and the required parameters for said remote security and policy service;transmitting the service object to the remote security and policy service;receiving the service object at the remote security and policy service;extracting the service request from the service object;adjudicating the service request to execute the remote security and policy service by invoking a policy decision point call to allow or disallow said service request;transmitting the adjudicated service request to a policy enforcement point that enforces the adjudicated service request and takes any other action as specified by the policy decision point;dispatching the service request to a remote service handler for processing;executing the service request at the remote service handler;generating a response at the remote service handler;dispatching the response from the remote service handler to the remote security and policy services;receiving the response from the remote service handler by the remote security and policy services; andtransmitting the response back to the requesting client.
  • 10. The method of claim 9 further including the steps: calculating a hash encoding of the service object at the requesting client;digitally signing the hash encoded service object;encrypting the hash encoded and signed service object prior to transmission to the remote security and policy service;decrypting the service object at the remote security and policy service;verifying the hash encoding of the service object prior to authorizing the execution of the remote security and policy service; andencrypting the response returned from the remote security and policy service prior to transmitting back to the requesting client.
  • 11. The method of claim 9 further including the step connecting application code on the requesting client to service requests via a function invocation interface prior to creating the service object.
  • 12. The method of claim 9 further including the step identifying and accessing the security and policy services that are defined by the requesting client via a function registration.
  • 13. The method of claim 9 further including the step identifying and accessing the security and policy services that are defined by the requesting client via a discovery protocol.
  • 14. The method of claim 9 further including the step assigning a unique transaction number to each service request prior to transmitting the service object.
  • 15. The method of claim 9 further including the step compiling policy rules for the policy decision point using a policy object language compiler and generator.
PRIORITY CLAIM

This non-provisional application claims priority to Provisional Patent Application Ser. No. 62/161,614, entitled “System and Methods for Facilitating Secure Computing Device Control and Operation” filed May 14, 2015.

PCT Information
Filing Document Filing Date Country Kind
PCT/US2016/032502 5/13/2016 WO
Publishing Document Publishing Date Country Kind
WO2016/183504 11/17/2016 WO A
US Referenced Citations (109)
Number Name Date Kind
5881225 Worth Mar 1999 A
7140035 Karch Nov 2006 B1
7240015 Karmouch Jun 2007 B1
7246233 Brabson et al. Jul 2007 B2
7400891 Aaron Jul 2008 B2
7640429 Huang et al. Dec 2009 B2
7797544 Dillaway Sep 2010 B2
7941647 Yates May 2011 B2
8014721 Johnson Sep 2011 B2
8037318 Tahan Oct 2011 B2
8127982 Casey et al. Mar 2012 B1
8135385 Ohta Mar 2012 B2
8176336 Mao May 2012 B1
8185959 Bellwood May 2012 B2
8230399 Vertes Jul 2012 B2
8285249 Baker et al. Oct 2012 B2
8321498 Maes Nov 2012 B2
8463819 Shashikumar et al. Jun 2013 B2
8468586 Kootayi et al. Jun 2013 B2
8468608 Hernacki Jun 2013 B1
8538843 Smith Sep 2013 B2
8922372 Softer Jan 2014 B2
8688592 Abramson Apr 2014 B1
8880047 Konicek Nov 2014 B2
8904483 Martini Dec 2014 B1
9053456 Verthein Jun 2015 B2
9391782 Mironenko Jul 2016 B1
9411962 Attfield Aug 2016 B2
20010002485 Bisbee May 2001 A1
20020101826 Giacopelli Aug 2002 A1
20020138814 Katayama Sep 2002 A1
20030125925 Walther Jul 2003 A1
20040123139 Aiello Jun 2004 A1
20040123153 Wright Jun 2004 A1
20040204949 Shaji Oct 2004 A1
20050132202 Billaway Jun 2005 A1
20050193196 Huang Sep 2005 A1
20060005239 Mondri Jan 2006 A1
20060026548 Rosener Feb 2006 A1
20060059565 Green Mar 2006 A1
20060150256 Fanton Jul 2006 A1
20060236369 Covington Oct 2006 A1
20060236385 Innes Oct 2006 A1
20070150559 Smith Jun 2007 A1
20080085698 Gamm Apr 2008 A1
20080133914 Isaacson Jun 2008 A1
20080184336 Sarukkai Jul 2008 A1
20080194233 Henry Aug 2008 A1
20090031141 Pearson Jan 2009 A1
20090089125 Sultan Apr 2009 A1
20090100269 Naccache Apr 2009 A1
20090193503 Shevohenko Jul 2009 A1
20090198617 Soghoian Aug 2009 A1
20090204785 Yates, Jr. et al. Aug 2009 A1
20090205016 Milas Aug 2009 A1
20090300174 Floris Dec 2009 A1
20100023454 Exton Jan 2010 A1
20100023703 Christie Jan 2010 A1
20100037311 He Feb 2010 A1
20100199325 Raleigh Aug 2010 A1
20100216429 Mahajan Aug 2010 A1
20100250370 Jones et al. Sep 2010 A1
20110055890 Gaulin Mar 2011 A1
20110063098 Fischer Mar 2011 A1
20110077758 Tran Mar 2011 A1
20110154034 Bailey, Jr. Jun 2011 A1
20110173108 Rjasekar Jul 2011 A1
20110173122 Singhal Jul 2011 A1
20110251958 Aubin Oct 2011 A1
20110258692 Morrison Oct 2011 A1
20110270751 Csinger Nov 2011 A1
20120030731 Bhargava Feb 2012 A1
20120129450 Lee May 2012 A1
20120197743 Grigg Aug 2012 A1
20120204032 Wilkins Aug 2012 A1
20120214516 Rosenberg Aug 2012 A1
20120216012 Vorbach et al. Aug 2012 A1
20120270523 Laudermilch Oct 2012 A1
20120323596 Verhulst Dec 2012 A1
20120323717 Kirsch Dec 2012 A1
20130029653 Baker et al. Jan 2013 A1
20130080411 Rolia Mar 2013 A1
20130125099 Budiu May 2013 A1
20130130650 Cheung May 2013 A1
20130145429 Mendel Jun 2013 A1
20130212022 Lanc Aug 2013 A1
20130253942 Liu et al. Sep 2013 A1
20130275746 Galdwin Oct 2013 A1
20130298664 Gillette, II Nov 2013 A1
20140007193 Qureshi Jan 2014 A1
20140013112 Cidon Jan 2014 A1
20140096186 Barton Apr 2014 A1
20140115659 Attfield et al. Apr 2014 A1
20140143089 Campos May 2014 A1
20140173700 Awan Jun 2014 A1
20140195425 Campos Jul 2014 A1
20140279474 Evan Sep 2014 A1
20140379361 Mahakar Dec 2014 A1
20150227925 Filler Aug 2015 A1
20150278810 Ramatchandirane Oct 2015 A1
20150302409 Malek Oct 2015 A1
20150312277 Rane et al. Oct 2015 A1
20150334133 Schaffner et al. Nov 2015 A1
20150350254 Hendrick et al. Dec 2015 A1
20150358822 Hendrick et al. Dec 2015 A1
20160012216 Attfield et al. Jan 2016 A1
20160314296 Attfield et al. Oct 2016 A1
20170048714 Attfield et al. Feb 2017 A1
20170244759 Attfield et al. Aug 2017 A1
Foreign Referenced Citations (13)
Number Date Country
1339199 Aug 2003 EP
2985728 Feb 2016 EP
2017529786 Dec 2015 JP
PCTUS06017123 Jan 2008 WO
PCTUS08009313 Feb 2009 WO
WO2015026389 Feb 2015 WO
PCTUS1524932 Apr 2015 WO
PCTUS1527561 Apr 2015 WO
PCTUS1470897 Dec 2015 WO
PCTUS15048526 Mar 2016 WO
PCTUS1628481 Oct 2016 WO
PCTUS16032502 Nov 2016 WO
PCTUS16029144 Feb 2017 WO
Non-Patent Literature Citations (15)
Entry
“Computer Architecture: A Quantitative Approach”, Hennessy J. and Patterson, D., 5th Ed. Morgan Kaufman (2011).
“Computer Networks”, Tanenbaum, A. Andrew and Wetherall, D., 5th Ed. Prentice Hall (2010).
“Prolog Programming: A First Course”, Brna, P. (Mar. 5, 2001). Retrieved from <http://homepages.inf.ed.ac.ud/pbma/prolog book/> on Mar. 16, 2013.
NFC Forum (2007), “Near Field Communication and the NFC Forum: The Keys to Truly Interoperable Communications” (PDF), http://www.nfc-forum.org, retrieved Oct. 30, 2012.
Landt, Jeremy (2001), “Shrouds of Time: The history of RFID”, AIM, Inc. pp. 5-7.
Bluetooth Special Interest Group website, “A Look at the Basics of Bluetooth Wireless Technology”, http:www.bluetooth.com/Pages/Basics.aspx, retrieved Oct. 29, 2012.
See e.g. H. Schildt, C ++—The Complete Reference, 2nd edition, pp. 67-70 McGraw Hill, 1995, ISBN 0-07-882123-1.
K. Ashton, “That ‘Internet of Things’ Thing”, RFID Journal Jun. 22, 2009 (available online as of Oct. 20, 2013 at http://www.rfidjournal.com/articles/view?4986).
T. White, Hadoop—The Definitive Guide, O'Reilly, 2009 978-0-596-52197-4.
Nakamoto, Satoshi. “Bitcoin: A peer-to-peer electronic cash system.” Consulted Jan. 2012 (2008): 28. Obtained from http://www.cryptovest.co.ok/resources/Bitcoin%20paper%20 Original.pdf on Apr. 6, 2015.
Bitcoin, Inc. “What are multi-signature transactions?”, Obtained from http://bitcoin.stackexchange.com/questions 3718/what-are-multi-signature-transactions on Apr. 6, 2015.
Verilog, http://www.verilog.comm/, accessed May 12, 2014.
L. Woods, ZS. Istvan, G. Alonzo Ibex(2014) An Intelligent Storage Engine with Support for Advanced SQL Off-loading. VLDB 2014k, Hangzhou, China, Sep. 2014.
University of British Columbia, Department of Electrical and Computer Engineering, http://www.ece.ubc.ca//˜edc/379,an99/lecgureslec 13.pdf, accessed May 2014.
IEEE P 1076 Working Group. http://www.eda.org/twiki/bin/view.cgi/P1076, accessed May 12, 2014.
Related Publications (1)
Number Date Country
20180262532 A1 Sep 2018 US
Provisional Applications (1)
Number Date Country
62161614 May 2015 US