The present invention relates to the technical fields of Computer Security, Embedded Systems, Encryption, Mobile Computing, Telecommunications, Digital Communications, and Computer Technology.
Recent years have brought the emergence and rapid proliferation of mobile computing devices such as mobile telephones or “handsets” with extensive computing, communication, and input and interaction capabilities (“smart phones”) plus a growing array of other mobile computing devices such as touchscreen tablets, “netbooks”, electronic document readers, and laptops in a wide range of sizes and with wireless and wired communication capabilities.
This proliferation of mobile devices has been accompanied by complementary advances in development and adoption of long range wireless broadband technologies such as 3G and 4G, as well as commonplace deployment of shorter range wireless technologies such as the 802.11 series of wireless standards and “Bluetooth” short range wireless, all with considerable bandwidth. These technologies span multiple radio frequency bands and protocols.
Alongside the radio transceivers for such communications capabilities, many of these mobile devices also contain an array of onboard sensors such as cameras, microphones, and GPS receivers plus other locating technologies, as well as considerable fixed-onboard and removable memory for information and multimedia storage.
Furthermore, smartphones and similar devices are typically capable of running a wide variety of software applications such as browsers, e-mail clients, media players, and other applications, which in some cases may be installed by the user. Mobile devices are now fully capable computing environments that require security to the same extent as any other computing environment would.
Along with the profusion of smartphones and other mobile, wireless-capable devices, there has also been a dramatic increase in the use of social networks and related technologies for information sharing for consumer as well as for professional uses. Access to social networks on mobile devices has heightened concerns about individual, government, and corporate information security, and about possibilities for privacy violations and other unintended and undesirable information sharing. Furthermore, the possible professional and personal use of any given handset presents a complex set of usage contexts under which rules for device capability usage and information access need be considered.
Such sophisticated and capable smartphones and similar devices, along with the vast amounts of information that they can contain and access, present a large set of potential security vulnerabilities (a large “attack surface”) that might allow information to be accessed by malicious parties or allow undesirable use and exploitation of the device capabilities for malicious purposes such as “phishing” fraud, other online fraud, or inclusion in botnets for spam transmission, denial-of-service attacks, malicious code distribution, and other undesirable activities.
Furthermore, compared with conventional desktop personal computers, smartphone handsets by nature are portable and thus more easily stolen. Portability also means that the devices will encounter security contexts that cannot be foreseen, and which may never occur again. The mobile threat landscape is complex and presents a vast set of extant and emergent security concerns.
There is, therefore, a growing need to improve upon not only the degree of protection provided by components and systems that enhance the security of mobile devices, but also to improve on the efficiency and security of such security-related components and systems themselves, so that both they and the devices and the information that they protect are more robust and are better able to withstand attempts to thwart or otherwise compromise them.
Because modern mobile systems must connect to external (peripheral) devices and they must also be able to update their firmware and other executable programs in a secure manner, the present invention is an efficient system and method to encrypt files for transmission, and then either pass them securely through peripheral devices or directly to the firmware memory for updating. There are three key steps presented. The encryption is made more efficient by appending a small data segment to the end of the encrypted file to ensure that the binding parameters being used are correct. Peripherals are connected to the system via a dongle for encrypting or decrypting files that pass through the peripheral device that sits between the secure and normal operating environments. Finally, the invention proposes a system and method to securely update firmware or other executable programs to secure memory by segmenting the update file into signed and encrypted parts that are transmitted separately. They are then received, decrypted, and written to a secure memory location. When complete the system reboots (restarts) with the new updated firmware or executable program.
The invention has a number of advantages. The encryption method is more efficient than conventional methods because it is able to ensure that the best binding parameters are used. The dongle then uses the encryption technique to ensure that the inherent vulnerability of unsecure data reaching the secure world via peripheral devices is closed. All data is now encrypted. Lastly, the encryption technique is applied to each data segment of the firmware update or executable program to be written to ensure that the data that reaches the secure memory location is verified.
The present invention consists of a set of capabilities and techniques for enhancing the security and privacy of information storage on computing devices, and for performing secure updates to network-connected computing devices.
Encryption Techniques for Secure Binding and Fast Decryption Processing
Security of encryption of digital data for mobile devices can be enhanced by binding the encryption key to one or more specific digital objects, such that it is difficult or impossible to decrypt the data without the presence of, and access to, those objects. As a non-limiting example, such binding may be performed through the use of some complex computation with inputs that include each of the digital objects to be bound to, and with one of the outputs being the encryption key. In the following list, a set of such objects is presented which may be used in some combination to perform such secure binding:
The set of objects used for binding can be a combination of these listed objects, as selected prior to or during binding.
Among the drawbacks to encryption, and particularly to public key encryption over symmetric encryption, are the computational time and computational expense required for decryption of the encrypted data (
As a specific, non-limiting example, during the encryption process, the Secure Hash Algorithm SHA256 is applied to a copy of the first X bytes (201) of the unencrypted file and the encrypted copy is appended to the whole file, encrypted (202), to the end of the encrypted file (203). After this procedure, post-encryption, unencrypt and extract the appended SHA256 component (205) and compare it with the first X bytes (204), and verify that they match, as a fast test that the binding parameters being used in the decryption are correct.
Methods for Securing Peripherals
One key approach to defending security-related systems, data, and components from malicious attack is to have them reside within especially secure areas, partitions, or environments on device hardware that are inaccessible to unauthorized parties or for unauthorized purposes, with this “secure world” separated from the main device operating system and, in some cases, from certain of its insecure resources, with these insecure components comprising the “normal world”. A further degree of security can be provided if the secure partitions or areas are also invisible and undetectable to the greatest degrees possible, under unauthorized circumstances and by unauthorized parties.
However, even with the use of such secure areas and other measures internal to the computer, due to a need for interaction and input with computer users in many cases, weak points for security of entire systems remain, such as the input and output devices themselves, and their connections and interfaces with other system components and with operating system software and applications. Malicious use of software for intercepting keyboard entries, or “key logging”, is common, as is “phishing” software for unwanted interception of entered data, and this represents a considerable threat that can reveal passwords and other sensitive data to parties not intended to see it.
In the present invention (
Connections between peripheral, dongle, and host may be through standard interfaces such as USB, PS/2, or by other means, but in each case with the dongle securely separating peripheral and host. The components include storage for digital encryption key(s) as needed for encryption of data prior to transmission, as well as required hardware for interfacing with the input device and the computer. This allows for data to be encrypted before transmission to the normal world of the host for passage through to the secure world for use in secure or otherwise trusted applications there such as payment applications or healthcare-related applications. Corresponding encryption keys are stored in the secure world (303) for appropriate encryption data as needed for communication with the secured peripherals. Each secured peripheral has a corresponding “handler” module (304) in the secure world for managing communication out into the normal world through to the peripheral.
In some cases, peripheral input and output cannot be communicated directly to a secure world, and in such cases, a normal world application may be required as an intermediary to route traffic from the input device such as a keyboard, to a trusted application for processing, but in such a case the data is already encrypted prior to reaching the intermediary. Similarly, output to a display device could be done using an intermediary normal world application driving a GPU, but with though the normal world to a display being encrypted by an intermediary dongle.
In cases where such secure communication with the peripheral is not required, the dongle is permitted to go into a non-encrypting mode and act as a transparent “pass through” of unencrypted or otherwise unsecured data to a normal world unsecured application, upon receipt of an acceptable signal such as a key sequence or special key code from the user.
Methods for Secure Device Firmware Updates
Modern computing devices such as smartphones, tablet computers, and also internet-connected devices in the “Internet of Things”, typically contain non-volatile memory and persistent memory content collectively known as “firmware” that is stored in the non-volatile memory on the device. Firmware content may include operating system code, “boot loader” code for device initialization and loading the operating system, and other code essential to device operations, plus data and in some cases application software.
Inevitably, whether to fix software bugs, patch security vulnerabilities, to update features, or for other reasons, it is desirable to be able to update the firmware content. For reasons such as lower cost, manageability, and ease of update, it can be preferable to update the firmware via the internet or some other network connection, rather than by other means such as hardware replacement or by transfer of the new firmware content from a locally connected storage device. However, such “Over the Air” (OTA) network updates present certain security risks such as possible malicious interception of the in-transit firmware and subsequent injection of malicious code onto the device (401), or other undesired exploits of firmware target content (402). The following methods are presented for securing such firmware updates (
First, the method requires that at least some amount of size U of non-volatile memory (403) be designated for use for the secure updating process. The new firmware of the update, the net “payload” in this case, is encrypted that can be securely verified on the target device and split into data segments of size U or smaller (404). Each segment is digitally signed. A secure other portion of non-volatile memory such as a locked “boot” portion must contain trusted drivers (405) for network connections such as wired internet or wireless technology such as 802.11 variants or cellular, and/or other network modalities, and that portion or another locked portion should contain certificates or root certificates as required to decrypt received segments of encrypted payload. The means to call cryptographic verification functions should also either reside in or have its driver in the boot sector (406).
Data segments are then transmitted over the network (407) from a secure server or other secure source and received via the trusted network driver (405) and used to update other non-volatile memory areas appropriately. Data segments may be received sequentially and loaded into successive non-volatile memory locations in received order, or in other cases may be loaded in any sequence and may be loaded into assigned non-volatile memory locations designated for individual identified segments; these and other segment transmission possibilities are contemplated within the invention. As each data segment is received, its signature is verified (406), and the data segment is written to the appropriate portion of non-volatile memory (408). The download, verify, install procedure of data segments is repeated until the entire set of segments, comprising the update payload is received. Once entire set of data segments has been installed into memory, the device can boot (restart) with the newly updated firmware. Note that this procedure is not exclusive to firmware updates but can be used to safely write any executable program into secure memory.
This method has the strengths or advantages as follows:
The invention is generally useful to any application where the computing device used may be connected to external peripheral devices and must be updated periodically. Neither the firmware update technique nor the peripheral dongles require the use of the aforementioned encryption technique but some accepted form of encryption must be employed. Any computing device can use these techniques, not only mobile or handheld devices.
This application is a continuation-in-part application and claims priority benefit of U.S. patent application Ser. No. 15/568,407 filed Oct. 20, 2017; which is a 371 application of PCT/US2016/029144 filed Apr. 25, 2016; which claims benefit of Provisional Patent Application No. 62/153,671 filed Apr. 28, 2015; which is incorporated by reference herein in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5881225 | Vorth | Mar 1999 | A |
6535607 | Chandersekaran | Mar 2003 | B1 |
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 | Soffer | 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 | Atffield | Aug 2016 | B2 |
9537657 | Char | Jan 2017 | B1 |
10503713 | Gattu | Dec 2019 | B1 |
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 |
20050177713 | Sim | Aug 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 |
20060265595 | Scottodiluzio | Nov 2006 | A1 |
20070033320 | Wu | Feb 2007 | 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 |
20080256363 | Balacheff | Oct 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 |
20110264922 | Beaumont | Oct 2011 | A1 |
20110270751 | Csinger | Nov 2011 | A1 |
20120030731 | Bhargava | Feb 2012 | A1 |
20120129450 | Lee | May 2012 | A1 |
20120197743 | Grigg | 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 |
20130138955 | Darcy | 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 |
20140019497 | 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 |
20220335147 | Yedluri | Oct 2022 | A1 |
Number | Date | Country |
---|---|---|
1339199 | Aug 2003 | EP |
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 |
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/pbrna/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, jan99/lecgureslec 13.pdf, accessed May 2014. |
IEEE P 1076 Working Group. http://www.eda.org/twiki/bin/view.cgi/P1076, accessed May 12, 2014. |
Number | Date | Country | |
---|---|---|---|
62153671 | Apr 2015 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15568407 | US | |
Child | 17386336 | US |