# Patent

## Title
Storing and transmitting sensitive data

## Abstract

A computer-implemented method for storing and transmitting sensitive data is disclosed including storing source data on a secure data storage of a secondary device connected to a computing device, wherein the computing device is configured to operate via an operating system with a central processor, and wherein the secure data storage is adapted to receive input unilaterally from the computing device and store it as source data, and transferring the source data from the secure data storage to a communications interface component that connects the computing device to a computer network, wherein the transferring is implemented via the secondary device while bypassing the central processor. A system is also provided.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
This application claims the benefit of U.S. Provisional Application No. 62/010,201 filed Jun. 10, 2014, and incorporated herein by reference in its entirety.


FIELD OF DISCLOSURE
The present disclosure generally relates to the field of data security systems and methods, and in particular, to a system and method for secure storage and assured transmission of sensitive data.
BACKGROUND
When a computer operating system is processing, creating, or storing data, various types of malicious software (malware, computer viruses, etc.) can be used to gather sensitive data for the purpose of stealing (or infiltrating) sensitive information of personal, financial, or business importance. Malware can be designed to intercept this information in a variety of ways, such as by key logging, random access memory (“RAM”) scraping, cold booting, direct memory access (“DMA”) attacking or obtaining a print screen of the sensitive data from the computer. Malware can also access data that is stored, such as on a hard drive, especially when such data is being processed by the operating system.
A number of anti-malware/antivirus strategies exist to detect and remove malware software and to provide real-time protection against the installation of malware software on a computer. However, if the computer has already been compromised and malicious software already exists and is running on the computer, user remains vulnerable to having sensitive data hijacked. Furthermore, these software defined anti-virus mechanisms require frequent virus definition updates and leave a healthy window of vulnerability from when new Malware is introduced to society or when a counter measure or detection and quarantine method is available.
Data security issues become more complex in a network environment. Steps are usually taken to ensure that access to the network is controlled, and that data is not vulnerable to attack during transmission. Many technologies are also available to encrypt data to help ensure privacy of sensitive data. Encrypted data generally depends on the existence of a secret key (or certificate) shared between the communicating parties. This type of data security is often used for online credit/debit card purchases. However, in most system architectures, this type of encryption is often handled by the operating system and as such can be compromised by software running on a preexisting malicious node.
SUMMARY
Embodiments relate to method and system for secure storage and assured transmission of sensitive data. The method is a computer-implemented method for storing and transmitting sensitive data that comprises storing source data on a secure data storage of a secondary device connected to a computing device, wherein the computing device is configured to operate via an operating system with a central processor, and wherein the secure data storage is adapted to receive input unilaterally from the computing device and store it as source data. The computer-implemented method also provides for transferring the source data from the secure data storage to a communications interface component that connects the computing device to a computer network, wherein the transferring is implemented via the secondary device while bypassing the central processor and the operating system.
The system comprises a secondary device comprising a programmable hardware component and an associated secure data storage. The secondary device is connected to a computing device. The computing device is configured to operate via an operating system with a central processor. The secondary device is adapted to receive input unilaterally from the computing device, store the input as source data on the secure data storage, and transfer the source data from the secure data storage to a communications interface component that connects the computing device to a computer network, wherein the transfer is adapted to bypass the central processor.



BRIEF DESCRIPTION OF THE DRAWINGS
The present subject matter may take form in various components and arrangements of components, and in various steps and arrangements of steps. The appended drawings are only for purposes of illustrating example embodiments and are not to be construed as limiting the subject matter.
FIG. 1 shows a general flow diagram of an isolated DMA transfer from peripheral-to-peripheral via bus mastering according to an embodiment herein.
FIGS. 2a-2b show a block diagram of an independent hardware-based system for storing and transmitting sensitive data referred to as “HardWallet,” of an embodiment herein.
FIG. 2c shows a flow diagram illustrating an embodiment of HardWallet for unsecure source data ingest into encryption key-protected, secure HardWallet memory.
FIG. 2d shows a flowchart illustrating an embodiment of a method.
FIG. 3a is a block diagram of a secure key management system (SKMS) according to an embodiment herein.
FIG. 3b shows a flowchart illustrating an embodiment of SKMS.
FIG. 3c shows a flowchart illustrating a SKMS method.
FIGS. 4a-4c show block diagrams of an independent hardware-based system for storing and transmitting sensitive data referred to as “HardSafe,” of an embodiment herein.
FIG. 4d shows a flowchart illustrating an embodiment of the HardSafe.
FIG. 4e shows a flowchart illustrating an embodiment of a HardSafe method.
FIGS. 5a-5b show flow and block diagrams of a secure transfer of sensitive data for mobile devices, hereinafter referred to as “HardMobile,” of an embodiment herein.
FIG. 5c shows a flowchart illustrating an embodiment of a HardMobile method.
FIG. 6 shows a flow diagram of a hardware system for secure and selective transmission between system and banking institution, hereinafter referred to as “HardPoint2Point,” of an embodiment herein.
FIG. 7 shows a trusted data input platform of an embodiment herein.
FIGS. 8a-8d illustrate a number of use cases for a number of embodiments.
FIG. 9 shows a block diagram of HardWallet in use for a retail store.



DETAILED DESCRIPTION
The present disclosure will now be described more fully hereinafter with reference to the accompanying drawings in which example embodiments of the disclosure are shown. However, this disclosure may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. These example embodiments are provided so that this disclosure will be both thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art. Like reference numbers refer to like elements throughout the various drawings.
Generally, a system and method for storing and transmitting sensitive data is provided herein that allows for the creation and routing of data as shown in FIG. 1. This may be accomplished independently from a central processing unit (CPU) 15 of a computer system 2, and any associated and running operating systems. An isolated direct point to point communications (bus mastering) is used to transfer the secure data from peripheral-to-peripheral. The system and method configures the bus controller with source address and block size and destination address, causing a CPU 15 to discontinue bus mastering and allows for direct peripheral-to-peripheral communications, and starts transferring data between peripherals only; when concluded, an interrupt request is sent to the CPU 15 when finished, and then returns control to the CPU 15.
Different embodiments of the system are generally referred to herein as HardWallet, HardSafe, and HardMobile, and collectively the “HardSuite” along with a Secure Key Management System (SKMS). The hardware used with the HardSuite includes, as a non-limiting example, a controller 20 (illustrated in FIG. 2a), for example a field-programmable gate array (FPGA), representing the HardWallet, HardSafe, and HardMobile IP with PCIe carrier (Peripheral Component Interconnect Express high-speed serial computer expansion bus), or any other form of interconnect such as InifiniBand, FSB, QPI, HyperTransport . . . etc. The controller 20 may be referred to as integrated circuit, programmable integrated circuit, FPGA, lattice FPGA, and control circuitry. The network interface card (NIC) 16 may be an optional shared NIC or HardWallet/HardSafe can support onboard NICs. For setup, a trusted bootable CD (e.g., Live CD), or jump drive with HardWallet/HardSafe specific operating system (OS) that does not enable NIC is used (or it can be made into a partition on the existing hard drive). For HardMobile, a Mobile App similar to LiveCD may be used.
In a first embodiment, shown in FIGS. 2a-2b, sensitive data is protected by independent hardware 10 (hereinafter referred to as generally “HardWallet”), isolated from the native Operating System 19 of a computer system 14, which enables fully private and secure transmission of sensitive data via encryption keys of local encryption module 21 that are also private and secure and even only known by the HardWallet 10. (The term computer system 14 may be interchangeably referred to as computing device 14.) System 5, hereinafter referred to generally as “HardWallet system,” is a two-part system with the computer system 14 being a first part and the HardWallet 10 being the second part and having a one-way trusted hardware interface 13 from a peripheral bus 17 of the native computer system 14 (i.e. a PCMCIA card or other bus connection and associated protocol) to an encrypted data storage device 12 (i.e. a jump drive or remote hard drive) that contains the sensitive data to be permanently secured for future retrieval. The encrypted data storage device (EDSD) 12 may sometimes be referred to as data storage device, storage device, data storage or secure data storage. A TCP/IP interpreter 23 may be provided in association with the data storage device 12 to provide from communications to the data storage device 12. In this manner, the CPU 15 of the computing system 14 only has unilateral communication to HardWallet 10, not from. The system 5 may be designed such that data cannot be retrieved because there will be no hardware support for said function; rather, data can only be “pushed.” The HardWallet 10 handles communication between sensitive data either stored, for example, on the SRAM 12A or an external device, such as with the TCP/IP interpreter 23. The HardWallet 10 (and the HardSafe described hereinafter) is adapted for bus mastering, encrypted DMA streams, data sync operation (for Federal Information Processing Standard Level 4—FIPS L4), SWARM routing (for FIPS L4), USB/Ethernet (Common Internet File System—CIFS)/(Serial Advanced Technology Attachment—SATA) interfacing, and time/priority scheduling. The HardWallet 10 is designed such that only header data (such as file names, and time stamps) is returned. The system 5 is further adapted for data streaming. For live streaming, the “data save” function (i.e., initial input into the HardWallet) can be combined with the “transfer out” function simultaneously such as a graphics processing unit (GPU) 201 for direct point to point video processing and delivery.
To initially program the HardWallet system 5 with sensitive data, the system 5 uses a one-way entrance to the HardWallet 10 via a trusted hardware interface 13 to store sensitive data (see also FIG. 7 described in more detail hereinafter). The data entered into the HardWallet 10 is initially and remains encrypted with a local encryption process of encryption module 21, as is the encryption key 1 itself, and thus both are fully secure from any system read or recovery method or mechanism. To use (i.e., read) the sensitive data from the secure HardWallet 10, the data consumer on the other hardware-connected end must have the same encryption key 11 in order to receive the data. At all points along the hardware path to the data consumer, the data is encrypted and secure. As disclosed in further detail with respect to FIG. 3a, a secure key management system (SKMS) 22 may be provided to store encryption keys and to manage key utilization.
The HardWallet system 5 may be adapted for many uses, including making purchases from online retailers (described in more detail hereinafter with reference to the use cases shown in FIGS. 8a-8d). Generally, a computer system 14 adapted for HardWallet support with the appropriate hardware and software will allow for safer purchases online. Initially, HardWallet 10 is configured by the user with vendor specific data using the trusted hardware interface 13 to store sensitive data. This may be accomplished via a bootable CD (e.g., LiveCD) with a specially adapted HardWallet Operating System (HardWallet OS) used to initially boot the computer system 14 and configure the HardWallet 10 (as illustrated in FIG. 2a). The secure HardWallet environment disables network adapters and only enables lateral communications with HardWallet 10. In order to use the HardWallet 10 with online transactions, the HardWallet 10 also installs a browser Add-on for operation that assists in syncing the HardWallet secure data with the online retailer's servers by issuing a command that instructs HardWallet 10 to initiate a bus master protocol from HardWallet 10 to the NIC (Network Interface Card) 16 to route the sensitive stored in the HardWallet 10 out, such as but not limited to a requester (through the Internet 18) via the routing information. The term Internet 18 will be interchangeably used with computer network 18.
Generally, this embodiment advantageously includes one or more of the following: a hardware-based and encryption key 11 protected storage device 12; single-path (i.e., trusted hardware interface 13) assured encrypted storage through existing computer system 14 and operating system 19; single-path, hardware-based encrypted output 44 to any network-connected device agnostic of the interface technology (no operating system dependencies); leveraging complete isolation between the general computer system 14 and its native operating system 19 allowing the sensitive data to be encryption key secured; an interface that is hardware-independent from the native operating system and the sensitive data; implementation of a preconfigured “all or nothing” policy for routing of secure data from networked or non-networked devices; and a system that is independent of the interface technology and easily scalable with next generation technology.
FIG. 2c shows a flow diagram illustrating an embodiment of HardWallet 10. A trusted application platform 50 is provided in which a boot process is initiated, at block 150. At block 151, data entry into the HardWallet 10 takes place, wherein the type of data entry may involve, but is not limited to, account information, routing information, profile information, etc. The information from the data entry may be stored in a secondary device, the HardWallet hardware, where the data is authenticated. Storing the data may be implemented simultaneously with transferring by the single-path, hardware-based encrypted output 44 the data to provide for simultaneously transferring the data to provide for data streaming to a communications interface, or communications interface component (i.e., NIC 16), which may output to a computer network 18, such as but not limited to the Internet. In addition to being authenticated, the data is controlled, such as with a programmable integrated circuit 20. A pointer to non-sensitive header data is created and a profile header 46 with the non-sensitive header data is communicated to the computing device 14. The profile header 46 may not be transferred to the computing device 14 until an initiate transfer request 40 is received from the computing device 14. With the profile header 46, a header/pointer/alias/reference/tag etc. of the document and not the document itself is being communicated to the computing device 14.
Thus, the system 5 comprises a secondary device (i.e., HardWallet 10) that comprises a programmable integrated circuit 20 and an associated secure data storage device 12. The secondary device (i.e., HardWallet 10) may be connected to a computing device 14. The computing device 14 may be configured to operate via an operating system 19 with a CPU 15. The secondary device (i.e., HardWallet 10) may be adapted to receive input unilaterally via trusted hardware interface 13 from the computing device 14, store the input as source data on the secure data storage device 12, and transfer by the single-path, hardware-based encrypted output 44 the source data from the secure data storage device 12 to a communications interface (i.e., NIC 16) that connects the computing device 14 to a computer network 18, wherein the transfer is adapted to bypass the CPU 15.
In an embodiment, the system 5 may further comprise a trusted application platform 50 for inputting of initial data into the secure data storage. The trusted application platform 50 is adapted to boot the computing device 14 separate from the operating system 19 of the computing device 14, deactivate select operations of the computing device 14 for security including executables and network connections, and transmit initial data from the computing device 14 to the secure data storage device 12 via an isolated one-way communications link (i.e., trusted hardware interface 13) to store the initial data as source data. In another embodiment, the system 5 may further comprise an encryption module 21 for encrypting sensitive information of the source data, and a secure key management system 22 for generating encryption keys 11 and storing the encryption keys 11 together with the source data on the secure data storage device 12.
In an embodiment, the secondary device (i.e., HardWallet 10) may be further adapted to employ DMA or bus mastering for transferring the source data from the secure data storage device 12 to the communications interface (i.e., NIC 16) to bypass the CPU 15. In another embodiment, the secondary device (i.e., HardWallet 10) may be connected to a bus 17 of the computing device 14 and may comprise the programmable integrated circuit 20 and the secure data storage device 12. The secondary device (i.e., HardWallet 10) may be configured to receive an initiate transfer request 40 from the operating system 19 for initiating transfer of source data, authenticate the initiate transfer request, transfer by the-single-path, hardware-based encrypted output 44 the source data from the secure data storage device 12 to the communications interface (i.e., NIC 16) employing DMA or bus mastering for output to the computer network 18, and return a profile header 46 that may comprises non-sensitive header data to the operating system. In another embodiment, the secondary device (i.e., HardWallet 10) may be adapted to transmit the source data with bus mastering via the controller 20 configured with a source address and a destination address. The secondary device (i.e., HardWallet 10) may also be adapted to store the source data simultaneously with the transfer of the source data to provide for data streaming.
The secure data storage device 12 may comprise an internal storage medium 12a of the secondary device or an external data storage device 12b in communication with the secondary device (i.e., HardWallet 10). The communications interface component may comprise the NIC 16 in communication with a node on a computer network 18 or another peripheral on the computer network 18 as a destination for the source data.
FIG. 2d shows a flowchart illustrating a method. The method 60 comprises storing source data on a secure data storage of a secondary device (i.e., HardWallet 10) connected to a computing device 14, wherein the computing device 14 is configured to operate via an operating system with a CPU 15, and wherein the secure data storage is adapted to receive input unilaterally from the computing device 14 and store it as source data, at 62. The method further comprises transferring the source data from the secure data storage device 12 to a communications interface (i.e., NIC 16) that connects the computing device 14 to a computer network, wherein the transferring is implemented via the secondary device (i.e., HardWallet 10) while bypassing the CPU 15, at 64.
The method 60 may further comprise employing DMA or bus mastering by the secondary device (i.e., HardWallet 10) for transferring the source data from the secure data storage to the communications interface to bypass the CPU 15, at 66. The method 60 may further comprise receiving input of initial data into the secure data storage via a trusted application platform 50, wherein the trusted application platform 50 may be adapted to boot the computing device 14 independent of the operating system 19 of the computing device 14, deactivate select operations of the computing device 14 for security including executables and network connections, and transmit initial data from the computing device 14 to the secure data storage via an isolated one-way communications link (i.e., trusted hardware interface 13) to store the initial data as source data, at 68. The method 60 may further comprise encrypting sensitive information of the source data and generating encryption keys 11 by a secure key management system 22 and storing the encryption keys 11 together with the source data on the secure data storage device 12, at 70. As illustrated, steps 68 and 70 may occur prior to steps 62, 64, and 66. Though the steps in FIG. 2d are illustrated as being in sequence, they may be performed in different orders. Furthermore, the addition of dependent steps 66, 68 and 70 may be performed independent of these other dependent steps.
In another embodiment, shown in FIG. 3a, a secure key management system (SKMS) is shown. The Secure Key Management System (SKMS) 22 stores encryption keys used for secure communications and is able to manage key utilization in an encrypted device. The functions of a SKMS 22 may include permission-based access, assured security of all keys from compromise and theft, and add/delete capabilities between clients. This system is highly configurable and scalable to the nodes of a secure network. The SKMS 22 can create new keys, replace keys as determined by the clients and/or the trusted application platform 50, and SKMS trust can be reestablished as desired. This SKMS 22 is independent from the native OS and data is fully secure from malicious attack. Most key features are held in software including key generation and automatic manipulations given a network.
As further shown in FIG. 3b, a trusted application platform 50 is provided in which a boot process is initiated, at block 350. Data entry into the SKMS 22 takes place. The information is authenticated prior to generating and distributing the keys. The keys may then be communicated over the network interface (i.e., NIC 16) to a component in the HardSuite (i.e., HardSafe 25a, HardMobile 35a, or another computing system 14a).
Generally, this embodiment advantageously includes one or more of the following: programming of data through encrypted single path IN; management of encryption key distribution, routing, and authentication; management of keys through a hardware-only mechanism to maintain security (independent of the native operating systems involved); creation of a hardware system that manages and distributes keys to networked or non-networked nodes that need security for data transmission; a source for configuring mass secure encrypted network streams.
FIG. 3c shows a flowchart illustrating a method. The method 72 may be a computer-implemented for secure key management utilizing a secondary device (i.e., SKMS 22) comprising a programmable hardware component (i.e., control circuit 360) and an associated secure data storage device 361. The method comprises receiving input unilaterally via a one-way communications link (i.e., trusted hardware interface 13) from a computing device 14 to the secondary device, at 74. The method further comprises generating and storing encryption keys on the secure data storage device 361 via an encryption key generator 362, at 76. The method 72 also comprises distributing encryption keys via an encryption key distribution module 364 to one or more destinations on computer network through a communications interface, wherein the encryption key distribution module 364 is adapted to bypass a central processor unit (CPU) 15 of the computing device 14, at 78.
The method 72 may further comprise inputting of initial data into the secure data storage device 361 of the secondary device (i.e., SMKS 22) via a trusted application platform 50, wherein the trusted application platform 50 may be adapted to boot the computing device 14 independent of an operating system 19 of the computing device 14, deactivate select operations of the computing device 14 for security including executables and network connections, and transmit initial data from the computing device 14 to the secure data storage device 361 via the one-way communications link (i.e., trusted hardware interface 13) to store the initial data, at 80. The method may further comprise managing the encryption keys via an encryption key management module 366 adapted to coordinate with the encryption key generator 362 and the encryption key distribution module 364 to provide one or more functionalities, comprising auto-generation of private keys 370, distribution of public keys 371, synchronization of send/receive nodes 372, refreshing of obsolete keys 373, transferring of a prioritization algorithm 374, and transferring of scheduling management 375, at 82. The method 72 may further comprise providing permission-based access to the secondary device via an authentication module, at 84. Though the steps in FIG. 3c are illustrated as being in sequence, they may be performed in different orders. Furthermore, the addition of dependent steps 80, 82 and 84 may be performed independent of these other dependent steps.
Distributing the encryption keys comprises DMA or bus mastering that bypasses the CPU 15 of the computing device 14. The initial data comprises addressing and routing information for the one or more destinations on the computer network. The one or more destinations on the computer network comprise further secure data storage devices adapted to securely store the encryption key and further encrypted data. The secure data storage comprises an internal storage medium of the secondary device or an external data storage device in communication with the secondary device. The secondary device (i.e., SKMS 22) is connected to a bus of the computing device 14 for input and connected to the communications interface for output. The communications interface may comprises a NIC 16 in communication with a node on a computer network or another peripheral on the computer network. Furthermore, the secondary device (i.e., SKMS 22) may be adapted to execute input, processing, and output related functions simultaneously to provide for data streaming.
In another embodiment, shown in FIGS. 4a-4c, sensitive data is protected by an independent hardware-based component referred to herein as “HardSafe 25.” The system 6 provides fully secure transfer of sensitive data between two storage mediums (i.e., encrypted data storage device (EDSD) 412, computer systems 14a-n, HardSafes 25a-n or networks) using open and public network connections, such as, but not limited to the Internet 18 via encrypted data and encrypted keys 11. HardSafe 25 creates a secure point-to-multipoint hardware system storage system that allows for the transfer and storage of sensitive data across multiple nodes via Internet 18. HardSafe 25 manages routes, schedules, and prioritizes the sensitive data kept in local or distributed secure storage. Sensitive data in such a system will remain uncompromised even after physical theft as the encryption key is also encrypted onboard.
As illustrated in further detail in FIG. 4b, the HardSafe 25 comprises control circuitry (controller) 420 and a secure (encrypted) data storage device (EDSD) 412. Communication portals are provided to communicate to a computer network (illustrated as the Internet) and a bus 17. Additional information about the communication protocols are provided herein.
To initially store sensitive data onto the HardSafe 25, the system 6 uses a one-way entrance trusted hardware interface 13 to the HardSafe 25 via a trusted software interface to store the sensitive data (see also FIG. 7 described in more detail hereinafter). The data entered into the HardSafe 25 is initially and always encrypted, as is the encryption key 411 itself, and thus both are fully secure from any system read or recovery method or mechanism.
The HardSafe 25 may be adapted for many uses, including transmitting sensitive data between two storage mediums (i.e., computer system 14, computer systems 14a-n, and HardSafes 25 a-n) (described in more detail hereinafter with reference to FIGS. 8a-8d). As further illustrated in FIG. 4c, if a user wishes to transfer sensitive data (e.g., binaries) from a secure jump drive 412b (e.g., removable USB drive 140) to an external hard drive, a computer adapted for HardSafe support with the appropriate hardware and software will allow for safer transfer. As further illustrated in FIG. 4c, the HardSafe 25 may be used in association with a router.
As further illustrated in FIG. 4d, to implement the transfer, the user connects both storage mediums to the user's computer and boots a HardSafe partition with HardSafe OS (or uses a bootable CD with HardSafe OS), such as but not limited to via a trusted application platform 50 via blocks 450 to set up the routing information which includes, for example, file name(s) and, IP address (which can include wild cards *), with scheduling data regarding when to deploy. Public and privates keys, such as, but not limited to generated by HardSafe software, are generated for both source and target nodes and places them on the source and target file systems and scrambles it so that both nodes are now synced and authenticated. Each HardSafe 25 can stage data in its external encrypted hard drive 412a and send data based on scheduled releases. Endpoints that are not HardSafe 25 (i.e., Hard Drive—HD) will be immediately copied to destination.
The data transfer is then initiated via the HardSafe Partition or through normal OS function (where only the data header will be available to OS) or scheduling is setup for when the data needs to be deployed. In this manner, the data copying will be handled all in hardware with no main memory interference or CPU intervention. There is external memory that is isolated by HardSafe 25 that allows software to be staged until the scheduler either manually kicks it off, or when it is due. In a distributed scenario, data can be received from a CIFS based protocol directly into HardSafe 25, encrypted and stored.
Generally, this embodiment advantageously includes one or more of the following: an assured, tamper-safe, trusted delivery of data to any network-connected peripheral device; a single-path, protected data input; a one-to-many prioritization, scheduling and delivery of encrypted data; a mechanism to recover physically lost data when a hardware re-connection is made to any connected network by providing data on where the hardware connection was made (valuable for identification); a mechanism to initiate encryption key permanent destruction/deletion; an internal monitor and self-destruction mechanism; accommodation of multiple encryption keys and multiple encrypted storage devices; configurable to be self-aware of the allowable environments and when violated, deletes any encryption keys that are being held in HardSafe 25, which renders the data unusable and permanently lost (i.e., similar to an aircraft Black Box only being readable by a known environment. If any other environment attempts to retrieve data, it is permanently destroyed); permits data recovery in the event it has been physically compromised, by a trusted environment; configuration of a single system in a point-to-point fashion, or a single system can accommodate multiple unsecure systems in a server-connected network architecture; support of multiple secure storage mediums with their own respective encryption keys; segmentation of data for added security and implements hardware-accelerated compression; and operation without requiring an operating system on the computer environment (Data is pushed to unsecure storage medium through hardware, and the operating system cannot request a data transmission. Data is routed via the scheduler and routing tables).
Thus, the system 6, as illustrated in FIG. 4b, may comprise a secondary device (i.e., HardSafe 25) that has a control circuitry 420 and associated secure data storage device 412. The plurality of components are illustrated with respect to the control circuitry 420, other embodiments of the control circuitry 420 may be used. This secondary device may be considered the HardSafe 25. The secondary device (i.e., HardSafe 25) is connected to a computing device 14. The computing device 14 is configured to operate with an operating system 19 and a CPU 15. The secondary device (i.e., HardSafe 25) is adapted to receive input unilaterally, through a trusted hardware interface 13, from the computing device 14. The input may include one or more of routing, scheduling, and prioritization information for one or more destinations, which may comprise other network-connected storage mediums or network-connected peripheral devices (i.e., computer systems 14a-n, HardSafes 25a-n). The secure data storage device 412 is provided to store the input as source data. The source data may be transferred from the secure data storage device 412 to the one or more destinations through the communications interface (i.e., NIC 16) connected to the computer network 18. The transfer bypasses the CPU 15 and is in accordance with the one or more of routing, scheduling, and prioritization information.
The system 6 may further receive input of initial data into the secure data storage device 412 via a trusted application platform 50. The trusted application platform 50 may be adapted to boot the computing device 14 separate from the operating system 19 of the computing device 14, deactivate select operations of the computing device 14 for security including executables and network connections, and transmit initial data from the computing device 14 to the secure data storage device 412 via the isolated one-way (communications link) trusted hardware interface 13 to secure the initial data as source data. In another embodiment, the system 6 may further comprise an encryption/decryption module 421 for encrypting sensitive information of the source data, a secure key management system 422 for generating encryption keys 411 and storing the encryption keys 411 together with the source data on the secure data storage device 412, and a monitoring mechanism for monitoring connections of the secondary device (i.e., HardSafe 25) and initiating destruction of encryption keys 411 upon detection of a connection of the secondary device (i.e., HardSafe 25) to an unknown environment.
The secondary device (i.e., HardSafe 25) may comprise control circuitry 420 and the secure (encryption) data storage device 412. The secondary device (i.e., HardSafe 25) may be connected to a bus 17 of the computing device 14 for data input and connected to a communications interface (i.e., NIC 16). In another embodiment, secondary device is configured to receive an initiate transfer request 440 from the operating system 19 for initiating transfer of the source data, authenticate the initiate transfer request, access the one or more of routing, scheduling, and prioritization information for the one or more destinations, transfer by the single-path, hardware-based encrypted output 44 the source data, employing DMA or bus mastering to bypass the CPU 15, from the secure data storage device 412 to the one or more destinations via the communications interface (i.e., NIC 16) for output to the computer network 18, and return a profile header 446 comprising non-sensitive header data to the operating system. The secure data storage device 412 may also comprise an internal storage medium 412a/b of the secondary device or an external data storage device 412a/b in communication with the secondary device (i.e., HardSafe 25). Additionally, the secondary device (i.e., HardSafe 25) may be adapted to transmit the source data with bus mastering via a controller (i.e., control circuitry 420) configured with one or more of routing, scheduling, and prioritization information for the one or more destinations. The secondary device (i.e., HardSafe 25) may be adapted to store the source data simultaneously with the transfer of the source data to provide for data streaming to the one or more destinations.
The communications interface may comprise the NIC 16 in communication with a node on a computer network 18 or another peripheral on the computer network 18 as a destination for the source data.
FIG. 4e shows a flowchart illustrating an embodiment of a method. The method 86 may be computer-implemented. The method 86 comprises storing source data on a secure data storage of a secondary device (i.e., HardSafe 25) connected to a computing device 14, at 88. The computing device 14 is configured to operate via an operating system 19 with a CPU 15, and the secure data storage device 412 is adapted to receive input unilaterally from the computing device 14 and store it as source data. The method 86 further comprises receiving one or more of routing, scheduling, and prioritization information for one or more destinations comprising other network-connected storage mediums or network-connected computing or peripheral devices, at 90. The method 86 further comprises transferring the source data from the secure data storage to the one or more destinations through a communications interface connected to the computer network, at 92. The transferring is implemented via the secondary device (i.e., HardSafe 25) while bypassing the central processor and in accordance with the one or more of routing, scheduling, and prioritization information.
In an embodiment, the method 86 may further comprise employing DMA or bus mastering by the secondary device (i.e., HardSafe 25) for transferring the source data from the secure data storage to the communications interface to bypass the central processor, at 94. In another embodiment, the method 86 may further comprise receiving input of initial data into the secure data storage via a trusted application platform, at 96. The trusted application platform 50 may be adapted to boot the computing device 14 independent of the operating system 19 of the computing device 19, deactivate select operations of the computing device 14 for security including executables and network connections, and transmit initial data from the computing device to the secure data storage via an isolated one-way communications link (i.e., trusted hardware interface 13) to store the initial data as source data. The initial data may include sensitive information and associated routing, scheduling, and prioritization information for the one or more destinations. In another embodiment, the method 86 may further comprise encrypting sensitive information of the source data, generating encryption keys by a secure key management system 422 and storing the encryption keys together with the source data on the secure data storage, and monitoring connections of the secondary device and initiating destruction of encryption keys upon detection of a connection of the secondary device to an unknown environment, at 98. Though the steps in FIG. 4e are illustrating being in sequence, they may be performed in any different order. Furthermore, the addition of dependent steps 94, 96 and 98 may be individually performed independent of the other dependent steps.
In another embodiment, shown in FIGS. 5a-5b, secure transfer of sensitive data for mobile devices is shown, hereinafter referred to as “HardMobile.” HardMobile permits the secure transfer of sensitive data (such as credit/debit card number, security code, name, address, social security number, phone number, etc. as desired) from one HardMobile device to another without needing to process the data. As a non-limiting example, the HardMobile device may allow for purchasing an item from a merchant at a flea market using a hardware interface that is fully secure for the consumer and vendor, validated by the banking institution (as is done today), and only synchronization information (not sensitive information) is shared with the merchant. The synchronization/encrypted data may be a credit-alias that the bank recognizes and pays the merchant accordingly. A second non-limiting capability may be when pre-established pairings exist, and the mobile device triggers a transaction to take place, while sharing no data, and not using the mobile device software. This implementation changes the architecture of the mobile device to include fully secure authentication. i.e., if a biometric fingerprint were used to initiate the transaction, the fingerprint storage is encrypted and therefore unreadable if the mobile device is lost and no transactions can occur.
As illustrated in FIG. 5a, a merchant may have a HardMobile device which interacts with a mobile device used by the user. As a non-limiting example, the user's HardMobile device may be a part of a cell phone or smart phone. A communication then takes place between the user's HardMobile device and device at the user's financial institution. The device at the user's financial institution matches and validate the user with the user's HardMobile device. A merchant-to-merchant transaction then takes place between the user's financial institution and the merchant's financial institution, wherein this transaction may take place through devices at each financial institution. Merchant mobile device 38a communicates with consumer mobile device 38b, denoted by arrow 501. Barcode is read, then from arrow 501A, transaction reviewed. From arrow 501B, identity validated and from arrow 501C, communications follow along arrow 502 to consumer financial bank 540a. Purchase request reviewed, then from arrow 502A, transaction processed. From arrow 502B, confirmation is sent to consumer mobile device 38b and Merchant Financial Bank 540b along arrows 5031 and 5032, respectively. Bank-to-bank funds are transferred, then from arrow 503A, the transaction is processed. Then from arrow 503B, confirmation is sent to merchant mobile device 38a on arrow 5042 and consumer bank on arrow 5041. At the merchant mobile device 38a, sale is completed.
FIG. 5b illustrates a block diagram of hardware that may be within the HardMobile device 35. As illustrated a controller (control circuitry/finite state machine) 520, such as, but not limited to a programmable integrated circuit is provided along with a secure data storage device 512. A processor 515 and operating system 519 are also included. A wireless interface 516, such as, but not limited to Bluetooth® or Wi-Fi, etc. is provided. In the exploded view, the HardMobile device 35 may be within a mobile phone on an internal FPGA card (such as, but not limited to, a Lattice® FPGA as used within certain smart phones). The HardMobile device 35 may be connected to a computer system 14, or a trusted input platform, for initial input. In a non-limiting example, the FPGA may control the wireless interface 516 (Wi-Fi or Bluetooth®) similar to how the HardWallet 10 controls the NIC 16.
Generally, this embodiment advantageously includes one or more of the following: remotely triggering of sensitive data transmission with an encrypted key, fully independent of the mobile device operating system 519 (This is a hardware architecture difference to mobile devices, and is NOT a mobile device application); direct hardware storage of unique authentication information (password, biometric, etc.); an ad hoc mechanism to temporarily pair mobile devices for secure point-of-sale directly to the consumer/vendor financial institution; creation of a hardware system that remotely triggers secure data transfer between multiple trusted local or distributed nodes (via modified mobile device architecture employing a hardware-based, encrypted authentication mechanism); a hardware user verification layer that uniquely authenticates each user; a trusted ad-hoc connection to a single or multiple wireless devices and servers allowing for secure point of sales transactions (i.e., the system is able to pair and synchronize transactions in a point of sales, including isolated secure storage or sensitive data which cannot be accessed through the OS, furthermore, the system does not allow any intermediate (middle men) to see sensitive data as well as not allow transmission to any unauthorized destinations).
Thus, a system 8 may comprise a secondary device (i.e., HardMobile 35) comprising a programmable hardware component (i.e., control circuitry 520) and an associated secure data storage device 512. The secondary device (i.e., HardMobile 35) may be connected to a mobile device 38. The mobile device 38 may be configured to operate via an operating system 519 with a central processor 515. The secondary device (i.e., HardMobile 35) may be adapted to receive input unilaterally from the mobile device 38, encrypt sensitive information of the input, store the input as source data on the secure data storage, and transfer the source data from the secure data storage to a wireless interface 516 that connects the mobile device 38 to another mobile device 38a or remote server 39. The transferring is implemented via the secondary device (i.e., HardMobile 35) while bypassing the central processor 515.
The system 8 may further be capable of employing DMA or bus mastering by the secondary device (i.e., HardMobile 35) for transferring the source data from the secure data storage device 512 to the wireless interface 516 to bypass the central processor 515 and pairing the wireless interface 516 of the mobile device 38 to another mobile device 38a or remote server 39. In another embodiment, the system 8 may further comprise a trusted application platform 50 capable of running on a computing device 14 connected to the mobile device 38 for receiving input of initial data into the secure data storage device 512, The trusted application platform 50 may be adapted to boot the computing device 14 independent of the operating system of the computing device 14, deactivate select operations of the computing device 14 for security including executables and network connections, and transmit initial data from the computing device to the secure data storage device 512 in the connected mobile device 38 via an isolated one-way communications link to store the initial data as source data.
In another embodiment, the system 8 may further comprise a connected device for receiving input into the mobile device 38 for input of initial data into the secure data storage device 512 or for transaction initiation and authentication, wherein the connected device comprises one or more of an imaging input device, audio input device, a scanner, an external storage medium, a human interface device, or a connected computing device.
In an embodiment, the source data relates to business transactions between a vendor and a customer across an unsecured mobile or computer network and comprises customer account information for transacting with the vendor, routing information for communicating with the vendor, and profile information for the customer. In another embodiment, the secondary device 35 may comprise the programmable integrated circuit (i.e., control circuitry 520) and the secure data storage device 512. In another embodiment, the secure data storage device 512 may comprise an internal storage medium of the secondary device or an external data storage device in communication with the secondary device. In another embodiment, the communications interface may comprise a wireless interface 516 in communication with a node on a mobile or computer network or another peripheral connected to the mobile device as a destination for the source data.
In another embodiment, the secondary device (i.e., HardMobile 35) may be adapted for receiving, encrypting, and storing unique authentication information into the secure data storage. In another embodiment, the secondary device (i.e., HardMobile 35) is adapted to authenticate and trigger the transfer of the source data from the secure data storage to the communications interface that connects the mobile device 38 to another mobile device 38a or remote server 39 independent of the operating system, central processor, or mobile applications running via the central processor 515 of the mobile device 38.
FIG. 5c is a flowchart illustrating a method. The method 100 may be a computer-implemented method for storing and transmitting sensitive information from a mobile device 38 to another mobile device 38a or remote server 39. The method 100 comprises storing source data on a secure data storage of a secondary device (i.e., HardMobile 35) connected to a mobile device 38, at 102. The mobile device 38 is configured to operate via an operating system 519 with a central processor 515. The secure data storage is adapted to receive input unilaterally from the mobile device 38, encrypt sensitive information of the input, and store the input as source data. The method 100 may further comprise transferring the source data from the secure data storage to a communications interface that connects the mobile device 38 to another mobile device 38a or remote server 39, wherein the transferring is implemented via the secondary device (i.e., HardMobile 35) while bypassing the central processor 515, at 104.
The method 100 may further comprise employing DMA or bus mastering by the secondary device (i.e., HardMobile 35) for transferring the source data from the secure data storage to the communications interface to bypass the central processor 515, and pairing the communications interface of the mobile device 38 to another mobile device 38a or remote server 39, at 106. In another embodiment, the method 100 may further comprise receiving input of initial data into the secure data storage via a trusted application platform running on a computing device 14 connected to the mobile device 38, wherein the trusted application platform is adapted to boot the computing device 14 independent of the operating system of the computing device 14, deactivate select operations of the computing device 14 for security including executables and network connections, and transmit initial data from the computing device 14 to the secure data storage in the connected mobile device 38 via an isolated one-way communications link to store the initial data as source data, at 108. The method 100 may further comprise receiving input into the mobile device 38 for input of initial data into the secure data storage or for transaction initiation and authentication, wherein the input is received via a connected device comprising one or more of an imaging input device, audio input device, a scanner, an external storage medium, a human interface device, or a connected computing device, at 110.
With respect to the method 100, as disclosed above, the source data relates to business transactions between a vendor and a customer across an unsecured mobile or computer network and comprises customer account information for transacting with the vendor, routing information for communicating with the vendor, and profile information for the customer. In another embodiment, the secondary device may comprise a programmable integrated circuit and the secure data storage. The secure data storage may comprise an internal storage medium of the secondary device or an external data storage device in communication with the secondary device. The communications interface component may comprise a wireless interface in communication with a node on a mobile or computer network or another peripheral connected to the mobile device as a destination for the source data.
The method 100 may further comprise receiving, encrypting, and storing unique authentication information into the secure data storage of the secondary device, at 112. The step of receiving, encrypting, and storing may further comprise authenticating and triggering the transfer of the source data from the secure data storage to the communications interface that connects the mobile device to another mobile device or remote server by the secondary device independent of the operating system, central processor, or mobile applications running via the central processor of the mobile device.
Though the steps in FIG. 5c are illustrating being in sequence, they may be performed in any different order. Furthermore, the addition of dependent steps 106, 108, 110 and 112 may be individually performed independent of the other dependent steps.
In another embodiment, shown in FIG. 6, a hardware system 600 for secure and selective transmission between system and banking institution is shown, hereinafter referred to as “HardPoint2Point.” The system allows for purchases to be made through electronic means directly from a customer 670 to the banking institution to complete a purchase. The customer 670 swipes credit card at a HardWallet and enables cash registers at 601A. The customer 670 may provide a second verification of identity at 601B, such as, but not limited to, a bioscan, personal identification number (PIN), etc. The HardWallet will send secure data to the backing house and the local OS at 602. The system carries a private key that is used to form a virtual private connection between customer (leveraging vendor (retailer) network 660 for marketing purposes) and bank (i.e., Customer Bank/Credit Service 690). Key management system is solely based at the banking institution. The system synchronizes a purchase transaction and auditable data (such as receipts for accountability) provided by the banking institution to the retail store at 603. At 608, the receipt data is received and printed for customer 670 and retail records. The system also has a user validation layer for authentication of user. The system also provides for configuration by multiple banking institutions through a trusted platform. This system allows for multiple accounts to be profiled on a single device. The system does not allow the OS access to the sensitive data after programming. The data on the HardWallet 10 may already be encrypted. Thus, there is no need to verify encrypted data whereas the “Bank/Credit Service” 690 is the only entity with decryption keys.
FIG. 7 shows a trusted data input platform (trusted platform software (TPSW)) adapted to be used with the embodiments herein that require input of data. This software (and/or hardware) system allows for a pre-boot environment where data can be inputted into a standalone trusted transmission network. The system is uniquely paired with hardware to be single source of inputting data into the hardware for assured delivery. The system is independent of the operating system. This system only allows for unidirectional inputting of data and does not support query or extracting data from the hardware. System allows for the loading of data in an all or nothing policy and cannot be partially reprogrammed. The system allows for the use of a keyboard and monitor to input the data and observe the data.
In operation, the TPSW may be implemented as follows: A TPSW media is provided and inserted (at 702) into the computing device. The TPSW is adapted to deactivate executables and network connections (at 704) and deactivate caches (at 706). It may also schedule an iterative RAM wipe protocol (at 707). Appropriate authentication with the current HardSuite (also referred to as Hard-X) is completed (at 708). Then the TPSW is activated (at 710) to pair with local/distributed resources where keys are generated and applied in HW (at 712) if data is needed by the HardSuite (e.g., HardWallet). Data is then transferred by inputting the sensitive data or a configuration of data is accomplished from software to hardware or hardware to hardware (at 714). Then the TPSW media may be removed and the computing device re-started (at 716) using its normal operating system.
The embodiments described herein provide for a number of commercial applications and can be illustrated via a number of use case scenarios as shown in FIGS. 8a-8d. For example, embodiments herein provide the capability for banking instituting to reduce risk of credit/debit card and other sensitive identity data from their customers. The process includes being able to support secure transmission from the customer directly to the banking institution at the moment of point of sales. The process will allow a customer to authorize a transaction between a banking institution and a retail store. This process will listen to a request for a transfer to a retail store on a per customer bases, and will provide some form of audit (such as a receipt) to the retail store. The process will protect the identity and sensitive data between the customer and the banking institution. The process does not allow for middle man access to marketing information (address, time, items purchased) unless otherwise approved by a consumer institution.
For Ad-hoc transactions between two individuals (not retail), the process will support partial transactions, such that a request constituting a monetary value, account information, and a source and destination will come from separate and trusted streams (TCP/IP). The process will allow a request for transaction between a sender and/or receiver at discrete times and vice-verse. The process will allow for a whole transaction to be gathered and executed real-time on the financial institution's system.
With respect to retail stores, this process allows for retail stores to asynchronously compete transactions through a hardware process instead of a software process for greater security. The process will allow customers to send sensitive data separately from the mean of selecting the items of purchase. The process will allow hardware/software (HW/SW) at the retailer end to await final shipping and billing information through a pre-configured trusted means isolated from the operating system. This process also supports the means of receiving confirmation from unique point of sales purchases from the customer to the banking institution for auditing. The process will allow customers to use the retailer's network to conduct a secure transmission to the banking institution.
Specific use case examples are described below (See FIGS. 8a-8d) to illustrate the embodiments herein that transmit sensitive information to different nodes in a network (i.e., personal desktop or mobile device to online remote servers) in a secure manner where the OS is not involved in the processing for transmission of the sensitive data.
Use case 1 (FIG. 8a) describes an example of making a purchase from an online retailer, such as from Amazon.com, Inc. using HardWallet 10. Initially, a user may configure the user's HardWallet 10 using a Setup Procedure (at 802). This may be accomplished using a specially adapted bootable CD (at 804) or bootable USB drive (such as a LiveCD—a complete bootable computer installation including an operating system (OS) which runs in a computer's memory, rather than loading from a hard disk drive) with the HardWallet driver. The user may boot the user's computer and a Basic Input/Output System (BIOS) may appear with an option to load the operating system normally, or configure HardWallet 10. The user can then configure his HardWallet 10 with account information specifically for the vendor/online retailer, such as Amazon.com, including Internet Protocol (IP) Address, billing and shipping information, wherein a profile for that vendor is created. A wizard interface may be provided to configure the routing, certificates, and billing (at 806). The secure HardWallet OS disables network adapters and only enables lateral communications with HardWallet 10. Appropriate drivers are installed (at 810) from the HardWallet bootable CD to the computer. These drivers provide for an add-on to appear in the web browser for the online retailer for which the HardWallet 10 was set up to operate (at 812).
In operation, the computer is booted into its normal OS mode (at 808). The user can begin his secure online shopping experience. The user opens a web browser on his client machine and navigates to an online retailer, such as Amazon.com (at 820). The users shops and adds items to his online shopping cart (e.g., three books). The user then synchronizes with the vendors servers with his HardWallet 10 by selecting a “Sync Purchase” button (at 822) on the online retailer's site (this prepares the online retailer's servers to receive the final purchasing data, such as credit/debit card, shipping, etc.) After selecting “Sync Purchase” from the site, the online retailer's servers are waiting for billing and shipping information to finalize purchase. To accomplish this, a software driver is configured to instruct HardWallet 10 to bus master to the NIC 16 where then it creates a secure packet of final purchasing data (i.e., sensitive data) to the NIC 16 (without OS intervention) with the address to the online retailer's billing servers (routing information) to complete the transaction. The HardWallet browser add-on is used to select the account that is mapped to this particular retailer and send the final purchasing data (at 824). This transaction remains hardware based between the HardWallet 10 and the NIC 16. Optionally an encryption scheme may be included. A similar case for mobile devices works essentially the same as Use case 1 described above but is applied via a wireless physical layer (PHY).
The HardWallet 10 can also be used to send sensitive documents where data from an external machine, scanner, or fax is loaded directly into HardWallet 10 without the OS knowing the contents of that transaction. These devices are adapted to have the capability of sending and accepting data to/from HardWallet 10, so, the same principle applies to documents being transmitted without OS knowledge. The principle is that HardWallet 10 can bus master data from a scanner, fax, jump drive or external machine, without OS intervention. Packets are generated by the NIC 16 and the Payload is housed in HardWallet 10, and the bus mastering mechanism connects those two devices independently of the CPU (running the OS).
Use case 2 (FIG. 8b) describes an example of using the HardSafe to send sensitive documents. Initially, a user must configure his HardSafe using a Setup Procedure (similar to that of HardWallet) (at 830). This may be accomplished using a specially adapted bootable CD (at 832) or bootable USB drive or partition having the HardWallet OS. After setup, the user inserts the storage device having the secure source data (such as a USB drive) (at 834). A public key is generated (at 836) and loaded on to the destination external drive (at 838). The routing table information is completed with source and destination and file name (e.g., a network path) (at 840). The computer may then be re-booted under its normal OS and the HardSafe drivers are installed. In operation and use (at 842), a HardSafe GUI (graphical user interface) (at 844) may be provided where the user selects a profile (at 846) and then selects to transfer (at 848) the data between the source and destination. The HardSafe software driver is configured to instruct HardSafe to transfer the data. The data copying and routing information will be handled all in hardware with no main memory interference or CPU intervention.
Use case 3 (FIG. 8c and FIG. 9) describes an example of using the HardWallet 10 to make a purchase in a retail brick-and-mortar store (not online) 854 using a credit/debit card. In this case, the vendor implements the set up procedure using a bootable CD/LiveCD with HardWallet OS and has a peripheral device for receiving credit/debit card information (e.g., credit/debit card scanner 905). Setup will configure routing information for audit data and destination address for credit. Thereafter, the computer is re-booted into normal OS mode. At 850A, account data is sitting in HardWallet 10. At 850B, default key(s) have been assigned via self or cellular provider. At 851, key is sent to financial institution. At 852, financial institution responds with a new key. At 853, key is stored in key table with a pointer to data in BRAM and re-encrypted.
In use, a customer swipes the user's credit/debit card with the peripheral device for receiving credit/debit card information (e.g., credit/debit card scanner). A pseudo key is generated and sent to the local database 952. The encrypted credit/debit card information is sent to the card processor (e.g., MasterCard, Visa, Banks) for processing. In this manner, customer information does not need to be saved at the retailer's site. There is a pseudo key that is generated that can lead to an audit trail, but credit data is sent directly to the card processor. At 855, the customer is going to purchase an item from a festival. At 856, vendor/customer pair devices. At 857, vendor's mobile device send over Transaction ID, Routing data, and total amount to customer mobile. At 8581, vendor sends Transaction ID, account information and total to Vendor/Retail Bank at arrow step 8c1. At 8582, the Vendor/Retail Bank receives partial transaction from vendor and awaits customer data. At 859, customer authenticates identity and approves transaction. At 8601, vendor sends Transaction ID, account information and total to Customer Bank at arrow step 8c2. At 8602, Customer Bank receives request from customer, validates a request is pending from Vendor/Retail Bank (given the Transaction ID). At 8611, the Customer Bank completes the transaction and send a receipt at step 8c41. At 8612, Vendor/Retailer Bank completes transaction and send receipt at step 8c42. At 8613, the vendor and customer await confirmation and any other relevant data (warranty).
Use case 4 (FIG. 8d) describes an example of using the HardMobile to make a purchase using a mobile device, such as a mobile phone (e.g., Samsung Galaxy mobile phone). This example uses a setup procedure similar in some respects to HardWallet 10. The set up procedure uses a bootable CD/LiveCD with HardWallet OS. The mobile device (e.g., mobile phone) is connected to the computer. HardWallet 10 is uploaded into FGPA and configured with routing data based on the retailer's information, shipping and billing data. The mobile device may thereafter be disconnected. A HardWallet Mobile App is then installed on the mobile device.
In use, the user browses to the online retailer's site with his mobile device, shops and adds items to his online shopping cart. The user then synchronizes the vendor with his HardWallet to prepare the online retailer's servers to receive the final purchasing data, such as credit/debit card, shipping, etc. The online retailer's servers wait for billing and shipping information to come through. The HardWallet Mobile App is then used to select the account that is mapped to this particular retailer and send the final purchasing data. This transaction remains hardware based between HardWallet 10 and the NIC 16. At 870A, account data is sitting in HardWallet 10. At 870B, default key(s) have been assigned via self or cellular provider. At 871, key is sent to financial institution. At 872, financial institution responds with a new key. At 873, key is stored in key table with a pointer to data in BRAM and re-encrypted. At 875, customer makes a purchase through a website. At 876, the customer goes to website and selects items to purchase. At 877, “synchronize” is selected on website. From step 8d1, at 878, server is set to standby and returns a Transaction ID. At 879, customer selects profile from add-on, submits transaction ID and sends data. At 880, Retailer Network forwards request to backing house. From step 8d2, at 881, transaction is verified. At 882, receipt is generated. From step 8d3, at 883, transactions are completed.
A number of advantages are seen herein, including no Software or Firmware, Hardware accelerated Advanced Encryption Standard (AES) 128/256, Transmission impervious to SW attacks, All or nothing configuration policy, Partial Read Only memory access from OS perspective, HW Only transfer mechanism (no SW monitoring or intervention), Data is never seen by the OS or Main Memory, Enterprise use: account information is not stored on retailer networks, External HD encryption with scrambled keys, Multiple Industries: Point of Sales, home use, mobile use, and industrial use, Time delay/Priority routing from HardSafe to Host, Supports multiple types of deployment plans to save on throughput, Swarm routing/updating of data within HardSafe, Synchronization Monitoring of data across multiple hardware using hashing, Support hardware distribution of public key for trusted communications, Magic Packet transaction initiation to HardSafe, Data staging and secure routing, Hardware accelerated data compression, Auto deletion of keys when updating HardSafe keys through a trusted or untrusted for FIPS L4 compliance.
Advantageously, the HardSuite described herein ensures that there is no software intrusion that can occur to infiltrate or corrupt sensitive information after it is input into the HardSuite. Data is input into the HardSuite through a trusted platform (TPSW), in many examples, with a LiveCD that is paired with the HardSuite hardware. Public and private keys can only be configured through a trusted platform such as a live CD paired to the hardware or a trusted pre-boot environment. If attempts are made to alter the existing key through any means (whether trusted or not) the current key can be overwritten and data on the hard drive will be unable to be decrypted. Therefore, HardSafe will essentially format the HD and start fresh with the new key. Also, through synchronization mechanism, when the HardSafe comes back online, the Swarm routing table will ensure that the data in that specific HardSafe is in sync with all other HardSafes, hence, getting updated data from its neighboring HardSafes. Any authorized or unauthorized access to any HardSafe will cause the key to essentially auto delete and data will be irretrievable, data is re-updated based on the Swarm updating via the Swarm routing table from other trusted HardSafe. The routing tables are trusted IP addresses that are known to be good. If someone were to attempts to physically compromise a HardSafe, it will conduct a series of checks for physical awareness, such as IP address, GPS location, etc. . . . . If HardSafe deems it's in a location it shouldn't be, it will execute a protocol to flush unique and delete key data.
Moreover, information (data, keys and routing data) can easily be put in the HardSuite by either a bootable jump drive, trusted partition, or a LiveCD. Through the jump drive, LiveCD or trusted partition, the only data that can be pulled out is partial routing and timing, and priority data. One cannot retrieve keys, or sensitive data after they have been inputted. Data is transmitted to other HardSuites, via the hardware mechanism through an AES (or other encryption standard) encrypted TCP/IP link. The network interface device described in US 2012/0266230 A1 can be used as the trusted partition, assuring that the entry point into HardSafe is virus and malware free.
The HardSuite described herein protects against Keylogging, RAM scrapping, cold booting, malware, and physical intrusion. HardWallet is used to store small data structures and routing information such as billing and shipping data through a LiveCD or trusted partition. After being input into HardWallet, the data is no longer accessible through the OS; only profile header data is accessible. Then purchases can be made without the OS awareness of the underlying data. Since the data does not exist in RAM during normal operating procedure, or during transmission, there is no need to worry about ram scrapping or cold booting scenarios. Each stream in the computer is either encrypted or the data in the stream is encrypted, therefore if you even attempt to probe the lines with sophisticated equipment, data is not accessible without the key.
An exemplary system for implementing the invention includes a computing device or a network of computing devices with appropriate hardware/software adapted to implement the HardSuite sensitive data storing and transmitting system. In a basic configuration, computing device may include any type of stationary computing device or a mobile computing device. Computing device typically includes at least one processing unit and system memory. Depending on the exact configuration and type of computing device, system memory may be volatile (such as RAM), non-volatile (such as read only memory (ROM), flash memory, and the like) or some combination of the two. System memory typically includes operating system, one or more applications, and may include program data. Computing device may also have additional features or functionality. For example, computing device may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Computer storage media may include volatile and non-volatile, non-transitory, removable and non-removable media implemented in any method or technology for storage of data, such as computer readable instructions, data structures, program modules or other data. System memory, removable storage and non-removable storage are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, Electrically Erasable Read-Only Memory (EEPROM), flash memory or other memory technology, compact-disc-read-only memory (CD-ROM), digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other physical medium which can be used to store the desired data and which can be accessed by computing device. Any such computer storage media may be part of device. Computing device may also have input device(s) such as a keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s) such as a display, speakers, printer, etc. may also be included. Computing device also contains communication connection(s) that allow the device to communicate with other computing devices, such as over a network or a wireless network. By way of example, and not limitation, communication connection(s) may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared and other wireless media.
Computer program code for carrying out operations of the invention described above may be written in a high-level programming language, such as C or C++, for development convenience. In addition, computer program code for carrying out operations of embodiments of the present invention may also be written in other programming languages, such as, but not limited to, interpreted languages. Some modules or routines may be written in assembly language or even micro-code to enhance performance and/or memory usage. It will be further appreciated that the functionality of any or all of the program modules may also be implemented using discrete hardware components, one or more application specific integrated circuits (ASICs), or a programmed Digital Signal Processor (DSP) or microcontroller. A code in which a program of the present invention is described can be included as a firmware in a RAM, a ROM and a flash memory. Otherwise, the code can be stored in a tangible computer-readable storage medium such as a magnetic tape, a flexible disc, a hard disc, a compact disc, a photo-magnetic disc, a digital versatile disc (DVD). The present invention can be configured for use in a computer or a data processing apparatus which includes a memory, such as a central processing unit (CPU), a RAM and a ROM as well as a storage medium such as a hard disc.
The “step-by-step process” for performing the claimed functions herein is a specific algorithm, and may be shown as a mathematical formula, in the text of the specification as prose, and/or in a flow chart. The instructions of the software program create a special purpose machine for carrying out the particular algorithm. Thus, in any means-plus-function claim herein in which the disclosed structure is a computer, or microprocessor, programmed to carry out an algorithm, the disclosed structure is not the general purpose computer, but rather the special purpose computer programmed to perform the disclosed algorithm.
A general purpose computer, or microprocessor, may be programmed to carry out the algorithm/steps of the present invention creating a new machine. The general purpose computer becomes a special purpose computer once it is programmed to perform particular functions pursuant to instructions from program software of the present invention. The instructions of the software program that carry out the algorithm/steps electrically change the general purpose computer by creating electrical paths within the device. These electrical paths create a special purpose machine for carrying out the particular algorithm/steps.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which embodiments of the invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
In particular, unless specifically stated otherwise as apparent from the discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such data storage, transmission or display devices.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. Furthermore, to the extent that the terms “including,” “includes,” “having,” “has,” “with,” or variants thereof are used in either the detailed description and/or the claims, such terms are intended to be inclusive in a manner similar to the term “comprising.” Moreover, unless specifically stated, any use of the terms first, second, etc., does not denote any order or importance, but rather the terms first, second, etc., are used to distinguish one element from another.
The embodiments described above provide advantages over conventional cyber security systems and methods. It will be apparent to those skilled in the art that various modifications and variations can be made to the present disclosure without departing from the spirit and scope of the disclosure. Thus, it is intended that the present disclosure cover the modifications and variations of this disclosure provided they come within the scope of the claims and their equivalents. Furthermore, the foregoing description of the disclosure are provided for the purpose of illustration only and not for the purpose of limitation—the disclosure being defined by the claims.

## Claims

1. A computer-implemented method for storing and transmitting sensitive data, comprising:
receiving input data having sensitive information at a secure data storage of a secondary device unilaterally from a computing device via an isolated one-way communication link of a one-way hardware interface from a peripheral bus of the computing device to the secondary device, the secondary device comprising a local encryption module, the secure data store, and a single-path, hardware-based output;
encrypting, by the local encryption module of the secondary device, the sensitive information;
storing the encrypted sensitive information as source data on the secure data storage of the secondary device, wherein the computing device comprising an operating system, a central processor, the peripheral bus and a communications interface component, the communications interface component connects the computing device to a computer network; and
transferring to the computer network, in response to an initiate transfer request from the operating system of the computing device, the stored source data including the encrypted sensitive information in the secure data storage of the secondary device through the single-path, hardware-based output of the secondary device connected to the communications interface component of the computing device while bypassing the central processor and the operating system.

2. The method of claim 1, further comprising:
employing direct memory access (DMA) and bus mastering by the secondary device for transferring the source data from the secure data storage to the communications interface component to bypass the central processor and the operating system and wherein the secondary device is a wallet.

3. The method of claim 1, wherein the receiving input data comprises:
receiving the input data by the secondary device via a trusted application platform having a removable operating system, wherein the trusted application platform:
boots the computing device independent of the operating system of the computing device;
deactivates select operations of the computing device for security including executables and network connections; and
transmits the input data from the computing device to the secondary device via the isolated one-way communications link.

4. The method of claim 1, wherein the secondary device comprises a field programmable gate array to transfer the source data out from the secure data storage.

5. The method of claim 1, further comprising:
authenticating, by the secondary device, the initiate transfer request;
transferring, by the secondary device, the source data from the secure data storage to the communications interface component employing direct memory access (DMA) and bus mastering for output to the computer network; and
returning, by the secondary device, a profile header comprising non-sensitive header data to the operating system.

6. The method of claim 1, wherein the secure data storage comprises an internal storage medium of the secondary device and wherein the input data, after input into the secondary device as the source data, can only be pushed from the secondary device and no longer accessible through the operating system wherein there is no hardware support for a retrieval function in the secondary device to retrieve the stored source data.

7. The method of claim 1, wherein the transferring includes, by the secondary device, transmitting the source data with bus mastering via a controller configured with a source address and a destination address.

8. The method of claim 1, wherein the communications interface component comprises a network interface card (NIC) in communication with a node on a computer network or another peripheral on the computer network as a destination for the source data.

9. The method of claim 1, wherein storing the source data is implemented simultaneously with transferring the source data to provide for data streaming.

10. A system for storing and transmitting sensitive data, comprising:
a secondary device comprising a programmable hardware component (PHC), a local encryption module, a single-path, hardware-based output, and an associated secure data storage, wherein the secondary device is connected to a computing device via a one-way hardware interface and the signal-path, hardware-based output, and wherein the computing device including an operating system, a peripheral bus, a central processor and a communications interface component that connects the computing device to a computer network;
wherein the secondary device:
receives input data including sensitive information unilaterally from the computing device via an isolated one-way communication link of the one-way hardware interface from the peripheral bus of the computing device to the secondary device;
encrypts, by the local encryption module of the secondary device, the sensitive information;
stores the encrypted sensitive information as source data on the secure data storage; and
transfers to the computer network, in response to an initiate transfer request from the operating system of the computing device, the source data including the encrypted sensitive information from the secure data storage through the single-path, hardware-based output of the secondary device connected to the communications interface component of the computing device while bypassing the central processor and the operating system.

11. The system of claim 10, wherein the secondary device employs direct memory access (DMA) and bus mastering for transferring the source data from the secure data storage to the communications interface component to bypass the central processor and wherein the secondary device is a wallet.

12. The system of claim 10, wherein the secondary device when receiving the input data, receives the input data via a trusted application platform having a removable operating system, wherein the trusted application platform:
boots the computing device separate from the operating system of the computing device;
deactivates select operations of the computing device for security including executables and network connections; and
transmits initial data from the computing device via the isolated one-way communications link to the secondary device.

13. The system of claim 10, wherein the secondary device further comprising:
a secure key management system for generating encryption keys and storing the encryption keys together with the source data on the secure data storage.

14. The system of claim 10, wherein the PHC comprises a field programmable gate array to transfer the source data out from the secure data storage.

15. The system of claim 10, wherein the secondary device:
authenticates the initiate transfer request;
transfers the source data from the secure data storage to the communications interface component employing direct memory access (DMA) and bus mastering for output to the computer network; and
returns a profile header comprising non-sensitive header data to the operating system.

16. The system of claim 10, wherein the secure data storage comprises an internal storage medium of the secondary device wherein the input data, after input into the secondary device, can only be pushed from the secondary device and no longer accessible through the operating system wherein there is no hardware support for a retrieval function in the secondary device to retrieve the stored source data.

17. The system of claim 10, wherein the secondary device is adapted transmit the source data with bus mastering via the PHC configured with a source address and a destination address.

18. The system of claim 10, wherein the communications interface component comprises a network interface card (NIC) in communication with a node on a computer network or another peripheral on the computer network as a destination for the source data.

19. The system of claim 10, wherein the secondary device stores the source data simultaneously with the transfer of the source data to provide for data streaming.