US20060245590A1 - Method of confirming a secure key exchange - Google Patents

Method of confirming a secure key exchange Download PDF

Info

Publication number
US20060245590A1
US20060245590A1 US11/479,747 US47974706A US2006245590A1 US 20060245590 A1 US20060245590 A1 US 20060245590A1 US 47974706 A US47974706 A US 47974706A US 2006245590 A1 US2006245590 A1 US 2006245590A1
Authority
US
United States
Prior art keywords
peripheral
component
processor
value
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/479,747
Inventor
Ernie Brickell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tahoe Research Ltd
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US11/479,747 priority Critical patent/US20060245590A1/en
Publication of US20060245590A1 publication Critical patent/US20060245590A1/en
Assigned to TAHOE RESEARCH, LTD. reassignment TAHOE RESEARCH, LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INTEL CORPORATION
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys

Definitions

  • the present invention relates generally to computer security and, more specifically, to establishing a shared encryption key between system components.
  • a computer system such as a personal computer (PC), workstation, server, mainframe computer and so on, may comprise a number of different components. Some of the system components may be peripherals used by the system to communicate with a user or another system. For example, keyboards and mice are commonly used by the user to input data into the system.
  • a display may be used to display information to the user.
  • a network interface device may be used to connect the computer system to other computer systems or devices over a network.
  • USB Universal Serial Bus
  • a system may allow multiple peripheral devices to be connected to the system. When a new peripheral is connected to the system, the system detects and identifies the newly added system component.
  • a host controller device known as a USB host controller for systems using the USB
  • USB host controller In systems using a USB host controller, an attacker could gain control of the USB host controller during a “man in the middle” attack and defeat secure communications between a peripheral and a processor in the system.
  • each party receives a certificate of the public key of the other party. Each party then verifies the certificate of the other party.
  • This protocol in the present situation for system components would require that each peripheral (or other system component) have a unique public/private key pair stored thereon. This would increase manufacturing costs of the peripheral.
  • the computer system would need to be “on-line” and communicatively coupled to another networked computer storing the certificate revocation information at the time of the protocol use. This may present usability problems.
  • each party In a thumbprint-based key exchange protocol, each party generates a public/private key pair and exchanges a hash of the public keys over a secured channel (e.g., an “out of band” channel).
  • a secured channel e.g., an “out of band” channel.
  • the peripheral In the present situation, there is no mechanism when using this protocol for the peripheral to send the hash of its public key to the processor. If the processor were to cause the display of the complete hash of its public key, the user could enter it using the peripheral (such as a keyboard), but this would take at least 27 random keystrokes (when using the well-known hash algorithm known as Secure Hash Algorithm (SHA-1)).
  • SHA-1 Secure Hash Algorithm
  • the processor there would be no means for the processor to know that the peripheral had received the correct public key (and not an illegitimate public key inserted by the “man in the middle” attacker). Thus, if there were such an attack, the peripheral would know that the hash entered by the user did not match the hash of the public key received by the peripheral from the processor, but the processor would not know this.
  • the traditional way to solve this problem is for the second party (the peripheral) to generate a public key, send it to the first party (the processor), and then have the two parties compare their hashes. This doesn't work in this case since the peripheral does not have a way to display the peripheral's hash.
  • FIG. 1 is a diagram of a system according to an embodiment of the present invention
  • FIGS. 2 and 3 are flow diagrams illustrating establishing a shared encryption key between system components according to an embodiment of the present invention
  • FIGS. 4 and 5 are flow diagrams illustrating establishing a shared encryption key between system components according to another embodiment of the present invention.
  • FIG. 6 is a flow diagram of another embodiment of the present invention.
  • An embodiment of the present invention is a key exchange protocol that can be performed between components of a system, such as between a computer program being executed by the processor of a PC (or other computer system) and a peripheral.
  • a peripheral with a user input capability and a very limited display capability such as a keyboard or a mouse, may be used to confirm a key exchange between the system components in a way that requires the user to enter only small amounts of input data (e.g., keystrokes or mouse clicks).
  • security between components may be enhanced without having a negative impact on usability of the system.
  • Embodiments of the present invention do not require any uniqueness of the peripheral, the user need enter only a few inputs, and if the peripheral does not receive the correct public key of the other component (such as the processor) during the key exchange protocol, the processor can detect this situation.
  • Embodiments of the present invention help to deter “man in the middle” attacks wherein an attacker gains control of a system component situated between certain communicating system components.
  • FIG. 1 is a high level diagram of a system according to an embodiment of the present invention.
  • System 10 includes various well-known components such as processor 12 and memory 14 . Other components are not shown in FIG. 1 for purposes of clarity.
  • Processor 12 and memory 14 may be communicatively coupled using a bridge/memory controller 16 .
  • the bridge/memory controller may be coupled to a graphics controller 18 .
  • the graphics controller controls the output of display data on display 20 .
  • communication between the processor, the graphics controller and the display comprise a trusted channel, such that an adversary or attacker cannot read or modify the data displayed on the display.
  • Bridge/memory controller 16 may be coupled to one or more buses represented as line 22 .
  • One device communicatively coupled to the one or more buses may be bus host controller 24 . When one of the buses is a Universal Serial Bus (USB), the bus host controller may be a USB host controller.
  • USB Universal Serial Bus
  • an input device being used to securely communicate with other system components includes at least one trust indicator.
  • keyboard 26 may include at least one trust indicator 30
  • mouse 28 may include at least one trust indicator 32 .
  • the at least one trust indicator comprises a plurality of colored light emitting diodes (LEDs).
  • LEDs colored light emitting diodes
  • an LED having three distinct colors such as amber, green, and red
  • peripherals e.g., keyboard and/or mouse
  • a peripheral need not be manufactured with a unique key or value preset.
  • a peripheral according to embodiments of the present invention must include capabilities for asymmetric cryptography, symmetric cryptography, and a hash function.
  • a peripheral that has a random number generator and non-volatile storage enhances the user experience, but are not necessary.
  • the communications path between the peripheral and the processor includes the bus host controller.
  • an attacker may gain control of the bus host controller as part of a “man in the middle” attack, and may then be able to read and/or modify bus traffic. The attacker could read the symmetric key during transmission on the bus and decrypt subsequent traffic over the bus.
  • Asymmetric public key cryptography may be used to protect the symmetric key during the exchange.
  • a first component may encrypt a symmetric key using the second component's public key and send the encrypted symmetric key to the second component.
  • the second component can then decrypt the encrypted symmetric key using the second component's private key.
  • the public key of the second component e.g., processor
  • the first component e.g. peripheral
  • the public key is transmitted on this communications path using typical methods, the attacker may intercept and replace the public key with an illegitimate public key, without being detected.
  • the key exchange protocol of embodiments of the -present invention may be used to initially set up secure communications between the components.
  • FIGS. 2 and 3 are flow diagrams illustrating establishing a shared encryption key between system components according to an embodiment of the present invention.
  • communications between a processor 12 and a peripheral such as a keyboard 26 or a mouse 28 , for example
  • the processor generates a private/public key pair according to known techniques of asymmetric cryptography.
  • the actions attributed to the processor herein may be implemented by a computer program executed by the processor.
  • the actions attributed to the peripheral may be implemented by any combination of circuitry, firmware, and/or software resident in the peripheral.
  • the processor stores the key pair in memory for later use.
  • the processor generates a short nonce (SN) and a long nonce (LN).
  • a nonce may be a sequence of bits randomly generated by a random number generator.
  • the short nonce may comprise four or more characters, each character including at least six bits.
  • each character may represent any of the keys on the keyboard.
  • other numbers of bits may be used for the short nonce.
  • the long nonce may comprise randomly generated 160 bits.
  • other numbers of randomly generated bits may be used for the long nonce.
  • the processor generates a first hash value by applying a hash algorithm using the short nonce, the long nonce, and the public key generated in block 100 as input parameters.
  • the SHA-1 hash algorithm may be employed, although in other embodiments other hash algorithms may be used (e.g., MD5, and so on).
  • the processor sends a first command, the first hash value and the processor's public key to the peripheral.
  • This data may be sent to the peripheral in one or more separate transfers. It is assumed that an adversary could choose to prevent these data transfers from going to the peripheral, or to modify them. The remaining actions described herein generally assume that the data transfers occur (although they may be modified by the attacker).
  • this first command may be known as a “reset-learn” command. Receipt of this command by the peripheral (such as a keyboard 26 or mouse 28 ), puts the peripheral in a “learn” mode and activates one portion of the trust indicator 30 resident in the peripheral. The trust indicator acts as a perceptible sign to the system user that the peripheral is in “learn” mode.
  • the trust indicator may be a colored LED.
  • a selected color of the LED (such as an amber LED) may be illuminated to indicate to the user that the peripheral is now in a “learn” mode or state.
  • the peripheral performs the key exchange protocol described herein, and does not forward any input data entered by the user to the bus host controller 24 until the protocol is complete, except as noted in the remainder of the protocol.
  • the peripheral includes software, firmware and/or circuitry to receive the first command, interpret the command, and activate the trust indicator for perception by the user.
  • the peripheral in response to receiving the “reset-learn” command, the peripheral generates a symmetric key (used as a session key for subsequent communications), encrypts the symmetric key using the processor's public key (received in block 106 ), and sends the encrypted symmetric key to the processor.
  • Generation of the symmetric key may require a random number generator in the peripheral.
  • the symmetric key may be an Advanced Encryption Standard (AES) key having 128 bits, although other symmetric keys of different types and lengths may also be used.
  • AES Advanced Encryption Standard
  • the processor 12 causes the display of the short nonce, and possibly instructions, on the display 20 using some form of trusted output.
  • the user sees the display of the short nonce and the activated trust indicator. For example, the text on the display may instruct the user on the meaning of the activated trust indicator and what to do with the displayed short nonce.
  • the trust indicator still indicates the “learn” mode or state for the peripheral.
  • the user inputs the short nonce using the peripheral. For example, the user may notice the amber LED is illuminated and follow instructions on the display to input the short nonce.
  • the peripheral is a keyboard, the user types the short nonce.
  • the peripheral When the peripheral is a mouse, the user may follow directions to manipulate the mouse to point to certain areas of the display screen and/or depress one or more of the mouse buttons in a sequence corresponding to the short nonce.
  • the peripheral Since the peripheral is in “learn” mode, the peripheral does not forward the user's input data to the bus host controller.
  • the peripheral generates a peripheral nonce (PN) and encrypts the peripheral nonce with the symmetric key to form Encrypt(PN).
  • the peripheral nonce may be any randomly generated value. This may be accomplished by a random number generator in the peripheral, or it may be accomplished by asking the user to enter random keystrokes (when the peripheral is a keyboard) for a short period of time. For a mouse, the random number could be generated by asking the user to move the mouse for a while and capturing input data related to the mouse movement. Processing continues via connector A at block 116 on FIG. 3 .
  • the peripheral generates a second hash value by applying a hash algorithm using the short nonce (received from the user at block 112 ), the peripheral nonce, and Encrypt(PN) as input parameters.
  • the SHA-1 hash algorithm may be used.
  • the peripheral sends the second hash value to the processor. Note that in an effort to defeat this scheme, an attacker (e.g., the “man in the middle”) would have to commit to the second hash value before it sees the short nonce.
  • the processor sends the long nonce to the peripheral after receiving the second hash value.
  • implementation of blocks 114 and 120 may be performed in the order shown or the opposite order.
  • the peripheral has received the long nonce and the processor's public key from the processor, and the short nonce from the user.
  • the peripheral checks that the hash of the short nonce, long nonce, and the processor's public key matches the first hash value sent to the peripheral by the processor (at block 106 ).
  • the same hash algorithms must be used. For example, if the SHA-1 hash algorithm was used at block 104 , then the SHA-1 algorithm must be used at block 122 .
  • the peripheral activates the trust indicator to indicate a second mode or state (e.g., an “OK” state) at block 124 .
  • the peripheral may illuminate a green LED, indicating to the user that processing is proceeding in an authorized manner and that input from the device can be trusted. If the hash values do not match, then the peripheral knows that it did not receive the authentic public key from the processor. The peripheral may then activate the trust indicator to indicate a third mode or state (e.g., an error state) at block 124 .
  • the peripheral may illuminate a red LED, indicating to the user that some unauthorized activity has taken place and that communications between system components are not secure.
  • the amber light may be made to blink when an error is detected. Error handling operations may then be initiated in the system.
  • the peripheral knows whether it has received the authentic public key from the processor, but the processor does not know if the peripheral received the correct key or not.
  • the peripheral sends the peripheral nonce generated at block 114 to the processor.
  • the processor computes the hash value of the short nonce generated at block 102 , the peripheral nonce received from the peripheral at block 126 , and Encrypt(PN) (created by the processor by encrypting the peripheral nonce with the symmetric key, the symmetric key being available to the processor by decrypting the encrypted symmetric key received at block 108 using the processor's private key). If the SHA-1 hash algorithm was used in block 116 , then the processor uses the SHA-1 algorithm in block 128 .
  • the processor compares the computed hash value to the second hash value received from the peripheral at block 118 . If the hash values match, then the processor knows that the peripheral received the processor's public key and that further secure communications are enabled. In one embodiment, the processor may display a key exchange complete message on the display to inform the user that secure communications are now enabled. If the hash values do not match, error processing may be initiated and/or secure communications are disabled. For example, the processor may refuse to accept any trusted input data from the peripheral. In addition, a warning message may be output to the display informing the user that input from the peripheral cannot be trusted.
  • the peripheral includes a non-volatile memory
  • the above method needs to be performed only once, and then the symmetric key may be permanently stored in the peripheral and in memory accessible to the processor.
  • the symmetric key may be used to encrypt and decrypt subsequent communications between system components.
  • the symmetric key may be used to encrypt new session keys that are then used for actual encrypted communications between the peripheral and the processor.
  • the peripheral could create a private/public key pair, encrypt the public key and a machine authentication code (MAC) with the symmetric key, and send the encrypted public key and MAC to the processor.
  • MAC machine authentication code
  • various changes may be made to the above protocol.
  • the actions at block 104 and the checking in block 122 may be replaced with a new block after block 108 , in which the processor generates a hash value of the short nonce, the long nonce, and an encryption of the long nonce using the received symmetric key, and the check in block 122 would be a check on this revised hash value.
  • the checks performed by the processor and the peripheral may be the same.
  • a complication may ensue when the peripheral is a mouse. Because the short nonce generated by the processor and the nonce entered by the user using a mouse may not be exactly the same, since the mouse was clicked within a button, and not an exact location, the processor may send its version of the short nonce along with the long nonce at block 120 , and the mouse may send its version of the short nonce to the processor at block 126 , and each will check that they are close.
  • the chance of defeating the present method is 1 in 2 ⁇ (6*v), where v is the number of characters in the short nonce and assuming that there are six bits per character.
  • v is the number of characters in the short nonce and assuming that there are six bits per character.
  • the chance of defeating the present method when only four characters are used in the short nonce is one in 16 million.
  • Using four characters as the short nonce provides good security for the present invention, yet is a sufficiently small number of characters to require the user to enter into the system so as to have a negligible effect on usability.
  • the method of exchanging the symmetric key may be according to the well-known Diffie-Hellman method.
  • the symmetric key is created from messages sent during the protocol.
  • the processor and the peripheral would confirm that they have the same symmetric key.
  • FIGS. 4 and 5 illustrate this embodiment.
  • the processor forms a commitment to the value of the short nonce, the long nonce, and the shared symmetric key in that after the peripheral has received the hashed value, the processor cannot change these values, so that the processor has “committed” to these values.
  • the processor opens the commitment by disclosing the secret information in the commitment to the peripheral. Because the peripheral already had the shared symmetric key, the peripheral just needs to obtain the value of the short nonce and the long nonce. Part of this step is done through a secure method that cannot be observed by any adversary. This is done at blocks 210 and 212 .
  • the long nonce is revealed at block 220 . This gives the peripheral confidence that the processor has the same symmetric key.
  • the peripheral can commit to a value before the processor has completely opened the processor's value. This is done at blocks 214 , 216 , 218 . The peripheral then opens this commitment, as seen in block 226 . This gives the processor confidence that the peripheral has the same symmetric key.
  • the first component and second component exchange a shared secret (e.g., a symmetric key), through a process such as the Diffie-Hellman key exchange or using a public key cryptographic algorithm.
  • a shared secret e.g., a symmetric key
  • the first component commits to a first value to the second component, such as the mechanism described in blocks 202 , 206 , and 208 .
  • the components securely exchange a shared secret, such as through the mechanism at block 204 .
  • the first component discloses the first value, such as through the mechanisms in blocks 210 , 212 , and 220 .
  • the second component verifies the correctness of the first component's commitment, such as through the mechanism in block 222 .
  • This embodiment may also include the converse commitment and disclose of the second component.
  • the second component commits to a second value, such as through the mechanism used in blocks 214 , 216 , and 218 . Note, if this converse commitment is used, it is important for the second commitment to occur before the first component has revealed its commitment.
  • the second component discloses this second value, such as through the mechanism used in block 226 .
  • the first component verifies the correctness of the commitment and disclosure of the commitment, such as through the mechanism described at block 228 .
  • embodiments of the present invention establish a shared encryption key between a processor and a peripheral even in the case where there is an attacker in control of the bus host controller.
  • the key exchange protocol has an advantage in that it does not require any uniqueness on the peripheral, the user need only enter a few input choices (e.g., keystrokes), and if the peripheral does not receive the correct public key of the processor, the processor will know that outcome.
  • the techniques described herein are not limited to any particular hardware or software configuration; they may find applicability in any computing or processing environment.
  • the techniques may be implemented in hardware, software, or a combination of the two.
  • the techniques may be implemented in programs executing on programmable machines such as mobile or stationary computers, handheld computers, personal digital assistants, set top boxes, cellular telephones and pagers, and other electronic devices, that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and one or more output devices.
  • Program code is applied to the data entered using the input device to perform the functions described and to generate output information.
  • the output information may be applied to one or more output devices.
  • the invention can be practiced with various computer system configurations, including multiprocessor systems, minicomputers, mainframe computers, and the like.
  • the invention can also be practiced in distributed computing environments where tasks may be performed by remote processing devices that are linked through a communications network.
  • Each program may be implemented in a high level procedural or object oriented programming language to communicate with a processing system.
  • programs may be implemented in assembly or machine language, if desired. In any case, the language may be compiled or interpreted.
  • Program instructions may be used to cause a general-purpose or special-purpose processing system that is programmed with the instructions to perform the operations described herein. Alternatively, the operations may be performed by specific hardware components that contain hardwired logic for performing the operations, or by any combination of programmed computer components and custom hardware components.
  • the methods described herein may be provided as a computer program product that may include a machine readable medium having stored thereon instructions that may be used to program a processing system or other electronic device to perform the methods.
  • the term “machine readable medium” used herein shall include any medium that is capable of storing or encoding a sequence of instructions for execution by the machine and that cause the machine to perform any one of the methods described herein.
  • machine accessible medium shall accordingly include, but not be limited to, solid-state memories, optical and magnetic disks, and a carrier wave that encodes a data signal.
  • machine accessible medium shall accordingly include, but not be limited to, solid-state memories, optical and magnetic disks, and a carrier wave that encodes a data signal.

Abstract

A key exchange protocol can be performed between components of a system, such as between a computer program being executed by the processor of a PC (or other computer system) and a peripheral. A peripheral with a user input capability and a very limited display capability, such as a keyboard or a mouse, may be used to confirm a key exchange between the system components in a way that requires the user to enter only small amounts of input data (e.g., keystrokes or mouse clicks). Security between components may be enhanced without having a negative impact on usability of the system. Embodiments of the present invention help to deter “man in the middle” attacks wherein an attacker gains control of a system component situated between certain communicating system components.

Description

  • This U.S. Patent application is a Divisional of U.S. patent application Ser. No. 10/177,626 filed Jun. 18, 2002.
  • BACKGROUND
  • 1. Field
  • The present invention relates generally to computer security and, more specifically, to establishing a shared encryption key between system components.
  • 2. Description
  • A computer system, such as a personal computer (PC), workstation, server, mainframe computer and so on, may comprise a number of different components. Some of the system components may be peripherals used by the system to communicate with a user or another system. For example, keyboards and mice are commonly used by the user to input data into the system. A display may be used to display information to the user. A network interface device may be used to connect the computer system to other computer systems or devices over a network.
  • Some system components may be coupled to other components using protocols known as “plug and play” protocols. For example, by using a Universal Serial Bus (USB), a system may allow multiple peripheral devices to be connected to the system. When a new peripheral is connected to the system, the system detects and identifies the newly added system component. Such a scheme typically relies on at least one host controller device (known as a USB host controller for systems using the USB) to control and monitor access to the system by the connected peripherals.
  • In some cases, it may be desired for various system components to securely communicate with each other. This may be accomplished in some systems by using well-known cryptographic methods. However, difficulties may arise when exchanging cryptographic keys between system components prior to engaging in secure communications. Generally, the actions of exchanging keys may be susceptible to a “man in the middle” attack. That is, an attacker may interpose an unauthorized component or program in between two communicating components to intercept one or more of the exchanged keys. The attacker may also possibly substitute other information in the communication stream between the components.
  • In systems using a USB host controller, an attacker could gain control of the USB host controller during a “man in the middle” attack and defeat secure communications between a peripheral and a processor in the system.
  • In a certificate-based key exchange protocol, each party receives a certificate of the public key of the other party. Each party then verifies the certificate of the other party. Using this protocol in the present situation for system components would require that each peripheral (or other system component) have a unique public/private key pair stored thereon. This would increase manufacturing costs of the peripheral. In addition, to ensure that the certificate has not been revoked, the computer system would need to be “on-line” and communicatively coupled to another networked computer storing the certificate revocation information at the time of the protocol use. This may present usability problems.
  • In a thumbprint-based key exchange protocol, each party generates a public/private key pair and exchanges a hash of the public keys over a secured channel (e.g., an “out of band” channel). In the present situation, there is no mechanism when using this protocol for the peripheral to send the hash of its public key to the processor. If the processor were to cause the display of the complete hash of its public key, the user could enter it using the peripheral (such as a keyboard), but this would take at least 27 random keystrokes (when using the well-known hash algorithm known as Secure Hash Algorithm (SHA-1)). In addition, there would be no means for the processor to know that the peripheral had received the correct public key (and not an illegitimate public key inserted by the “man in the middle” attacker). Thus, if there were such an attack, the peripheral would know that the hash entered by the user did not match the hash of the public key received by the peripheral from the processor, but the processor would not know this. The traditional way to solve this problem is for the second party (the peripheral) to generate a public key, send it to the first party (the processor), and then have the two parties compare their hashes. This doesn't work in this case since the peripheral does not have a way to display the peripheral's hash.
  • Accordingly, a better method of exchanging keys between system components is needed.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The features and advantages of the present invention will become apparent from the following detailed description of the present invention in which:
  • FIG. 1 is a diagram of a system according to an embodiment of the present invention;
  • FIGS. 2 and 3 are flow diagrams illustrating establishing a shared encryption key between system components according to an embodiment of the present invention;
  • FIGS. 4 and 5 are flow diagrams illustrating establishing a shared encryption key between system components according to another embodiment of the present invention; and
  • FIG. 6 is a flow diagram of another embodiment of the present invention.
  • DETAILED DESCRIPTION
  • An embodiment of the present invention is a key exchange protocol that can be performed between components of a system, such as between a computer program being executed by the processor of a PC (or other computer system) and a peripheral. In embodiments of the present invention, a peripheral with a user input capability and a very limited display capability, such as a keyboard or a mouse, may be used to confirm a key exchange between the system components in a way that requires the user to enter only small amounts of input data (e.g., keystrokes or mouse clicks). With the present invention, security between components may be enhanced without having a negative impact on usability of the system. Embodiments of the present invention do not require any uniqueness of the peripheral, the user need enter only a few inputs, and if the peripheral does not receive the correct public key of the other component (such as the processor) during the key exchange protocol, the processor can detect this situation. Embodiments of the present invention help to deter “man in the middle” attacks wherein an attacker gains control of a system component situated between certain communicating system components.
  • Reference in the specification to “one embodiment” or “an embodiment” of the present invention means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of the phrase “in one embodiment” appearing in various places throughout the specification are not necessarily all referring to the same embodiment.
  • FIG. 1 is a high level diagram of a system according to an embodiment of the present invention. System 10 includes various well-known components such as processor 12 and memory 14. Other components are not shown in FIG. 1 for purposes of clarity. Processor 12 and memory 14 may be communicatively coupled using a bridge/memory controller 16. The bridge/memory controller may be coupled to a graphics controller 18. The graphics controller controls the output of display data on display 20. In one embodiment, communication between the processor, the graphics controller and the display comprise a trusted channel, such that an adversary or attacker cannot read or modify the data displayed on the display. Bridge/memory controller 16 may be coupled to one or more buses represented as line 22. One device communicatively coupled to the one or more buses may be bus host controller 24. When one of the buses is a Universal Serial Bus (USB), the bus host controller may be a USB host controller.
  • When using a USB, a plurality of devices may be coupled to the bus. For example, user input devices such as keyboard 26 and mouse 28 may be included in the system for providing input data. Although a keyboard and mouse are shown in FIG. 1, it is contemplated that the present invention may be also applied to the use of other peripherals. In embodiments of the present invention, an input device being used to securely communicate with other system components includes at least one trust indicator. For example, keyboard 26 may include at least one trust indicator 30, and mouse 28 may include at least one trust indicator 32. In one embodiment, the at least one trust indicator comprises a plurality of colored light emitting diodes (LEDs). In one embodiment, an LED having three distinct colors (such as amber, green, and red) may be used to represent three different states. The operational meaning of illuminating the different colors and the states will be explained below. In other embodiments, other methods of indicating a current state of the peripheral may be used in place of a colored LED, such as multiple audible tones, symbols on a liquid crystal display (LCD), or other perceptible indicators.
  • In embodiments of the present invention, peripherals (e.g., keyboard and/or mouse) need not be manufactured with a unique key or value preset. However, a peripheral according to embodiments of the present invention must include capabilities for asymmetric cryptography, symmetric cryptography, and a hash function. A peripheral that has a random number generator and non-volatile storage enhances the user experience, but are not necessary.
  • In the system described at a high level in FIG. 1, it may be desired that communications between a program being executed by the processor and a peripheral such as keyboard 26 be secure. One mechanism for securing such communication is by using known symmetric cryptographic methods to encrypt and decrypt data communicated between the components. Prior to beginning such a communication, a symmetric key must be exchanged between the components. As shown in FIG. 1, the communications path between the peripheral and the processor includes the bus host controller. However, an attacker may gain control of the bus host controller as part of a “man in the middle” attack, and may then be able to read and/or modify bus traffic. The attacker could read the symmetric key during transmission on the bus and decrypt subsequent traffic over the bus.
  • Asymmetric public key cryptography may be used to protect the symmetric key during the exchange. A first component may encrypt a symmetric key using the second component's public key and send the encrypted symmetric key to the second component. The second component can then decrypt the encrypted symmetric key using the second component's private key. In order to use asymmetric keys in this way to defeat a possible attack on transmission of the symmetric key, initially the public key of the second component (e.g., processor) must be securely transmitted to the first component (e.g. peripheral). If the public key is transmitted on this communications path using typical methods, the attacker may intercept and replace the public key with an illegitimate public key, without being detected. To deter such activity, the key exchange protocol of embodiments of the -present invention may be used to initially set up secure communications between the components.
  • FIGS. 2 and 3 are flow diagrams illustrating establishing a shared encryption key between system components according to an embodiment of the present invention. In the embodiment shown, communications between a processor 12 and a peripheral (such as a keyboard 26 or a mouse 28, for example) are discussed, although the present method may be applied to communications between other system components. At block 100, the processor generates a private/public key pair according to known techniques of asymmetric cryptography. Note that the actions attributed to the processor herein may be implemented by a computer program executed by the processor. Furthermore, the actions attributed to the peripheral may be implemented by any combination of circuitry, firmware, and/or software resident in the peripheral. The processor stores the key pair in memory for later use. At block 102, the processor generates a short nonce (SN) and a long nonce (LN). A nonce may be a sequence of bits randomly generated by a random number generator. In one embodiment, the short nonce may comprise four or more characters, each character including at least six bits. When the peripheral is a keyboard, each character may represent any of the keys on the keyboard. In other embodiments, other numbers of bits may be used for the short nonce. In one embodiment, the long nonce may comprise randomly generated 160 bits. In other embodiments, other numbers of randomly generated bits may be used for the long nonce. At block 104, the processor generates a first hash value by applying a hash algorithm using the short nonce, the long nonce, and the public key generated in block 100 as input parameters. In one embodiment, the SHA-1 hash algorithm may be employed, although in other embodiments other hash algorithms may be used (e.g., MD5, and so on).
  • At block 106, the processor sends a first command, the first hash value and the processor's public key to the peripheral. This data may be sent to the peripheral in one or more separate transfers. It is assumed that an adversary could choose to prevent these data transfers from going to the peripheral, or to modify them. The remaining actions described herein generally assume that the data transfers occur (although they may be modified by the attacker). In one embodiment, this first command may be known as a “reset-learn” command. Receipt of this command by the peripheral (such as a keyboard 26 or mouse 28), puts the peripheral in a “learn” mode and activates one portion of the trust indicator 30 resident in the peripheral. The trust indicator acts as a perceptible sign to the system user that the peripheral is in “learn” mode.
  • In one embodiment, the trust indicator may be a colored LED. A selected color of the LED (such as an amber LED) may be illuminated to indicate to the user that the peripheral is now in a “learn” mode or state. In the “learn” mode, the peripheral performs the key exchange protocol described herein, and does not forward any input data entered by the user to the bus host controller 24 until the protocol is complete, except as noted in the remainder of the protocol. Note the peripheral includes software, firmware and/or circuitry to receive the first command, interpret the command, and activate the trust indicator for perception by the user.
  • At block 108, in response to receiving the “reset-learn” command, the peripheral generates a symmetric key (used as a session key for subsequent communications), encrypts the symmetric key using the processor's public key (received in block 106), and sends the encrypted symmetric key to the processor. Generation of the symmetric key may require a random number generator in the peripheral. During this block, there may be an attacker operating as a “man in the middle” by controlling the bus host controller. It is assumed that the attacker could choose to prevent the data transfer of the encrypted symmetric key to the processor, or to modify it. The remaining actions assume that the data transfer occurs (although it could be modified). In one embodiment, the symmetric key may be an Advanced Encryption Standard (AES) key having 128 bits, although other symmetric keys of different types and lengths may also be used.
  • At block 110, once the processor receives the encrypted symmetric key, the processor 12 causes the display of the short nonce, and possibly instructions, on the display 20 using some form of trusted output. At block 112, the user sees the display of the short nonce and the activated trust indicator. For example, the text on the display may instruct the user on the meaning of the activated trust indicator and what to do with the displayed short nonce. At this point the trust indicator still indicates the “learn” mode or state for the peripheral. Based on the display of the short nonce and the activated trust indicator, the user inputs the short nonce using the peripheral. For example, the user may notice the amber LED is illuminated and follow instructions on the display to input the short nonce. When the peripheral is a keyboard, the user types the short nonce. When the peripheral is a mouse, the user may follow directions to manipulate the mouse to point to certain areas of the display screen and/or depress one or more of the mouse buttons in a sequence corresponding to the short nonce. One skilled in the art will realize that other input mechanisms may also be used. Since the peripheral is in “learn” mode, the peripheral does not forward the user's input data to the bus host controller.
  • At block 114, the peripheral generates a peripheral nonce (PN) and encrypts the peripheral nonce with the symmetric key to form Encrypt(PN). The peripheral nonce may be any randomly generated value. This may be accomplished by a random number generator in the peripheral, or it may be accomplished by asking the user to enter random keystrokes (when the peripheral is a keyboard) for a short period of time. For a mouse, the random number could be generated by asking the user to move the mouse for a while and capturing input data related to the mouse movement. Processing continues via connector A at block 116 on FIG. 3. At block 116, the peripheral generates a second hash value by applying a hash algorithm using the short nonce (received from the user at block 112), the peripheral nonce, and Encrypt(PN) as input parameters. In one embodiment, the SHA-1 hash algorithm may be used. At block 118, the peripheral sends the second hash value to the processor. Note that in an effort to defeat this scheme, an attacker (e.g., the “man in the middle”) would have to commit to the second hash value before it sees the short nonce.
  • Next, at block 120, the processor sends the long nonce to the peripheral after receiving the second hash value. In various embodiments, implementation of blocks 114 and 120 may be performed in the order shown or the opposite order. At this point, the peripheral has received the long nonce and the processor's public key from the processor, and the short nonce from the user. At block 122, the peripheral checks that the hash of the short nonce, long nonce, and the processor's public key matches the first hash value sent to the peripheral by the processor (at block 106). The same hash algorithms must be used. For example, if the SHA-1 hash algorithm was used at block 104, then the SHA-1 algorithm must be used at block 122.
  • If the first hash value received from the processor equals the hash value computed by the peripheral, then the peripheral is assured that the peripheral actually received the processor's legitimate public key. When the hash values match, the peripheral activates the trust indicator to indicate a second mode or state (e.g., an “OK” state) at block 124. For example, the peripheral may illuminate a green LED, indicating to the user that processing is proceeding in an authorized manner and that input from the device can be trusted. If the hash values do not match, then the peripheral knows that it did not receive the authentic public key from the processor. The peripheral may then activate the trust indicator to indicate a third mode or state (e.g., an error state) at block 124. For example, the peripheral may illuminate a red LED, indicating to the user that some unauthorized activity has taken place and that communications between system components are not secure. In another embodiment wherein only two colors of LEDs are used, the amber light may be made to blink when an error is detected. Error handling operations may then be initiated in the system.
  • At this point, the peripheral knows whether it has received the authentic public key from the processor, but the processor does not know if the peripheral received the correct key or not. Thus, at block 126 the peripheral sends the peripheral nonce generated at block 114 to the processor. At block 128, the processor computes the hash value of the short nonce generated at block 102, the peripheral nonce received from the peripheral at block 126, and Encrypt(PN) (created by the processor by encrypting the peripheral nonce with the symmetric key, the symmetric key being available to the processor by decrypting the encrypted symmetric key received at block 108 using the processor's private key). If the SHA-1 hash algorithm was used in block 116, then the processor uses the SHA-1 algorithm in block 128. The processor compares the computed hash value to the second hash value received from the peripheral at block 118. If the hash values match, then the processor knows that the peripheral received the processor's public key and that further secure communications are enabled. In one embodiment, the processor may display a key exchange complete message on the display to inform the user that secure communications are now enabled. If the hash values do not match, error processing may be initiated and/or secure communications are disabled. For example, the processor may refuse to accept any trusted input data from the peripheral. In addition, a warning message may be output to the display informing the user that input from the peripheral cannot be trusted.
  • If the peripheral includes a non-volatile memory, the above method needs to be performed only once, and then the symmetric key may be permanently stored in the peripheral and in memory accessible to the processor. In one embodiment, the symmetric key may be used to encrypt and decrypt subsequent communications between system components. In another embodiment, the symmetric key may be used to encrypt new session keys that are then used for actual encrypted communications between the peripheral and the processor. After a session key has been generated, the peripheral could create a private/public key pair, encrypt the public key and a machine authentication code (MAC) with the symmetric key, and send the encrypted public key and MAC to the processor. Then, if the peripheral includes a non-volatile memory, the peripheral's private key may be stored permanently in the peripheral, and the public key of the peripheral may be stored in memory accessible to the processor.
  • Although a particular sequence of actions has been described herein, in various embodiments different actions may be performed in different sequences to achieve the same result.
  • In other embodiments, various changes may be made to the above protocol. For example, the actions at block 104 and the checking in block 122 may be replaced with a new block after block 108, in which the processor generates a hash value of the short nonce, the long nonce, and an encryption of the long nonce using the received symmetric key, and the check in block 122 would be a check on this revised hash value. In this embodiment, the checks performed by the processor and the peripheral may be the same.
  • A complication may ensue when the peripheral is a mouse. Because the short nonce generated by the processor and the nonce entered by the user using a mouse may not be exactly the same, since the mouse was clicked within a button, and not an exact location, the processor may send its version of the short nonce along with the long nonce at block 120, and the mouse may send its version of the short nonce to the processor at block 126, and each will check that they are close.
  • Assuming the hash algorithm used is trustworthy, the best approach the attacker can make in attacking the present method is to try to guess the short nonce. When using the SHA-1 hash algorithm, the chance of defeating the present method is 1 in 2 ˆ(6*v), where v is the number of characters in the short nonce and assuming that there are six bits per character. Hence, the chance of defeating the present method when only four characters are used in the short nonce is one in 16 million. Using four characters as the short nonce provides good security for the present invention, yet is a sufficiently small number of characters to require the user to enter into the system so as to have a negligible effect on usability.
  • In another embodiment, the method of exchanging the symmetric key may be according to the well-known Diffie-Hellman method. With the Diffie-Hellman method, the symmetric key is created from messages sent during the protocol. After the Diffie-Hellman method is used to create a shared symmetric key, the processor and the peripheral would confirm that they have the same symmetric key. FIGS. 4 and 5 illustrate this embodiment.
  • In a protocol shown in FIG. 4, at block 208 the processor forms a commitment to the value of the short nonce, the long nonce, and the shared symmetric key in that after the peripheral has received the hashed value, the processor cannot change these values, so that the processor has “committed” to these values. The processor opens the commitment by disclosing the secret information in the commitment to the peripheral. Because the peripheral already had the shared symmetric key, the peripheral just needs to obtain the value of the short nonce and the long nonce. Part of this step is done through a secure method that cannot be observed by any adversary. This is done at blocks 210 and 212. The long nonce is revealed at block 220. This gives the peripheral confidence that the processor has the same symmetric key. Conversely, the peripheral can commit to a value before the processor has completely opened the processor's value. This is done at blocks 214, 216, 218. The peripheral then opens this commitment, as seen in block 226. This gives the processor confidence that the peripheral has the same symmetric key.
  • One embodiment of this more general protocol is described in FIG. 6. At block 300, the first component and second component exchange a shared secret (e.g., a symmetric key), through a process such as the Diffie-Hellman key exchange or using a public key cryptographic algorithm. At block 302, the first component commits to a first value to the second component, such as the mechanism described in blocks 202, 206, and 208. At block 304, the components securely exchange a shared secret, such as through the mechanism at block 204. At block 308, the first component discloses the first value, such as through the mechanisms in blocks 210, 212, and 220. At block 310, the second component verifies the correctness of the first component's commitment, such as through the mechanism in block 222. This embodiment may also include the converse commitment and disclose of the second component. In block 306, the second component commits to a second value, such as through the mechanism used in blocks 214, 216, and 218. Note, if this converse commitment is used, it is important for the second commitment to occur before the first component has revealed its commitment. In block 312 the second component discloses this second value, such as through the mechanism used in block 226. At block 314, the first component verifies the correctness of the commitment and disclosure of the commitment, such as through the mechanism described at block 228.
  • As described above, embodiments of the present invention establish a shared encryption key between a processor and a peripheral even in the case where there is an attacker in control of the bus host controller. The key exchange protocol has an advantage in that it does not require any uniqueness on the peripheral, the user need only enter a few input choices (e.g., keystrokes), and if the peripheral does not receive the correct public key of the processor, the processor will know that outcome.
  • The techniques described herein are not limited to any particular hardware or software configuration; they may find applicability in any computing or processing environment. The techniques may be implemented in hardware, software, or a combination of the two. The techniques may be implemented in programs executing on programmable machines such as mobile or stationary computers, handheld computers, personal digital assistants, set top boxes, cellular telephones and pagers, and other electronic devices, that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and one or more output devices. Program code is applied to the data entered using the input device to perform the functions described and to generate output information. The output information may be applied to one or more output devices. One of ordinary skill in the art may appreciate that the invention can be practiced with various computer system configurations, including multiprocessor systems, minicomputers, mainframe computers, and the like. The invention can also be practiced in distributed computing environments where tasks may be performed by remote processing devices that are linked through a communications network.
  • Each program may be implemented in a high level procedural or object oriented programming language to communicate with a processing system. However, programs may be implemented in assembly or machine language, if desired. In any case, the language may be compiled or interpreted.
  • Program instructions may be used to cause a general-purpose or special-purpose processing system that is programmed with the instructions to perform the operations described herein. Alternatively, the operations may be performed by specific hardware components that contain hardwired logic for performing the operations, or by any combination of programmed computer components and custom hardware components. The methods described herein may be provided as a computer program product that may include a machine readable medium having stored thereon instructions that may be used to program a processing system or other electronic device to perform the methods. The term “machine readable medium” used herein shall include any medium that is capable of storing or encoding a sequence of instructions for execution by the machine and that cause the machine to perform any one of the methods described herein. The term “machine accessible medium” shall accordingly include, but not be limited to, solid-state memories, optical and magnetic disks, and a carrier wave that encodes a data signal. Furthermore, it is common in the art to speak of software, in one form or another (e.g., program, procedure, process, application, module, logic, and so on) as taking an action or causing a result. Such expressions are merely a shorthand way of stating the execution of the software by a processing system cause the processor to perform an action of produce a result.
  • While this invention has been described with reference to illustrative embodiments, this description is not intended to be construed in a limiting sense. Various modifications of the illustrative embodiments, as well as other embodiments of the invention, which are apparent to persons skilled in the art to which the invention pertains are deemed to lie within the spirit and scope of the invention.

Claims (12)

1. A method of securely exchanging a symmetric key between first and second components of a system comprising:
performing a public key exchange to share a symmetric key;
committing, by the first component, to a first value;
securely exchanging a shared secret between the first component and the second component;
disclosing, by the first component, the first value; and
verifying, by the second component, the correctness of the first component's commitment.
2. The method of claim 1, further comprising:
committing, by the second component, to a second value;
disclosing, by the second component, the second value; and
verifying, by the first component, the correctness of the first component's commitment.
3. The method of claim 1, wherein the first value comprises a value computed from the shared secret, a random nonce, and a public key of the first component used in the key exchange.
4. The method of claim 1, wherein the first value comprises a value computed from the shared secret, a random nonce, and the symmetric key derived from the key exchange.
5. The method of claim 2, wherein the second value comprises a value computed from the shared secret, a random nonce, and the symmetric key derived from the key exchange.
6. The method of claim 2, wherein the second value comprises a value computed from the shared secret, a random nonce, and a public key of the second component used in the key exchange.
7. An article comprising: a machine accessible medium having a plurality of machine accessible instructions, wherein when the instructions are executed by a processor, the instructions provide for securely exchanging a symmetric key between first and second components of a system, the instructions including performing a public key exchange to share a symmetric key; committing, by the first component, to a first value; securely exchanging a shared secret between the first component and the second component; disclosing, by the first component, the first value; and verifying, by the second component, the correctness of the first component's commitment.
8. The article of claim 7, further comprising instructions for committing, by the second component, to a second value; disclosing, by the second component, the second value; and verifying, by the first component, the correctness of the first component's commitment.
9. The article of claim 7, wherein the first value comprises a value computed from the shared secret, a random nonce, and a public key of the first component used in the key exchange.
10. The article of claim 7, wherein the first value comprises a value computed from the shared secret, a random nonce, and the symmetric key derived from the key exchange.
11. The article of claim 8, wherein the second value comprises a value computed from the shared secret, a random nonce, and the symmetric key derived from the key exchange.
12. The article of claim 8, wherein the second value comprises a value computed from the shared secret, a random nonce, and a public key of the second component used in the key exchange.
US11/479,747 2002-06-18 2006-06-30 Method of confirming a secure key exchange Abandoned US20060245590A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/479,747 US20060245590A1 (en) 2002-06-18 2006-06-30 Method of confirming a secure key exchange

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/177,626 US7142674B2 (en) 2002-06-18 2002-06-18 Method of confirming a secure key exchange
US11/479,747 US20060245590A1 (en) 2002-06-18 2006-06-30 Method of confirming a secure key exchange

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10/177,626 Division US7142674B2 (en) 2002-06-18 2002-06-18 Method of confirming a secure key exchange

Publications (1)

Publication Number Publication Date
US20060245590A1 true US20060245590A1 (en) 2006-11-02

Family

ID=29734450

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/177,626 Active 2025-01-10 US7142674B2 (en) 2002-06-18 2002-06-18 Method of confirming a secure key exchange
US11/479,747 Abandoned US20060245590A1 (en) 2002-06-18 2006-06-30 Method of confirming a secure key exchange

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US10/177,626 Active 2025-01-10 US7142674B2 (en) 2002-06-18 2002-06-18 Method of confirming a secure key exchange

Country Status (6)

Country Link
US (2) US7142674B2 (en)
EP (1) EP1514164A2 (en)
CN (1) CN100383693C (en)
AU (1) AU2003229298A1 (en)
TW (1) TWI249315B (en)
WO (1) WO2003107151A2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060224885A1 (en) * 2005-04-05 2006-10-05 Mcafee, Inc. Remotely configurable bridge system and method for use in secure wireless networks
US20060233375A1 (en) * 2005-04-05 2006-10-19 Mcafee, Inc. Captive portal system and method for use in peer-to-peer networks
US20060251258A1 (en) * 2005-04-05 2006-11-09 Mcafee, Inc. System, method and computer program product for updating security criteria in wireless networks
US20070233860A1 (en) * 2005-04-05 2007-10-04 Mcafee, Inc. Methods and systems for exchanging security information via peer-to-peer wireless networks
US20130073850A1 (en) * 2011-09-16 2013-03-21 Certicom Corp. Hybrid encryption schemes
US20130198512A1 (en) * 2012-01-30 2013-08-01 Jonathon Brett Rubin Intercepting encrypted network traffic for internet usage monitoring
WO2019133869A1 (en) * 2017-12-28 2019-07-04 Corlina, Inc. System and method for monitoring the trustworthiness of a networked system
WO2020220034A1 (en) * 2019-04-26 2020-10-29 Csub Auxiliary For Sponsored Programs Administration Reconfigurable security hardware and methods for internet of things (iot) systems
US11509636B2 (en) 2018-01-30 2022-11-22 Corlina, Inc. User and device onboarding

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8180051B1 (en) * 2002-10-07 2012-05-15 Cisco Technology, Inc Methods and apparatus for securing communications of a user operated device
US20050076217A1 (en) * 2003-10-03 2005-04-07 Lord Christopher J. Integrating a device into a secure network
US7644278B2 (en) * 2003-12-31 2010-01-05 International Business Machines Corporation Method for securely creating an endorsement certificate in an insecure environment
US7751568B2 (en) * 2003-12-31 2010-07-06 International Business Machines Corporation Method for securely creating an endorsement certificate utilizing signing key pairs
US8495361B2 (en) * 2003-12-31 2013-07-23 International Business Machines Corporation Securely creating an endorsement certificate in an insecure environment
CN100347625C (en) * 2004-02-27 2007-11-07 英业达股份有限公司 Cipher code controlled mouse and method of controlling computer by using the mouse
WO2005122466A1 (en) * 2004-05-19 2005-12-22 France Telecom Method and system for generating a list signature
JP2006339847A (en) * 2005-05-31 2006-12-14 Brother Ind Ltd Network communication system, communication apparatus, and program
US7783041B2 (en) * 2005-10-03 2010-08-24 Nokia Corporation System, method and computer program product for authenticating a data agreement between network entities
US20070136609A1 (en) * 2005-12-13 2007-06-14 Rudelic John C Methods and apparatus for providing a secure channel associated with a flash device
US20070220134A1 (en) * 2006-03-15 2007-09-20 Microsoft Corporation Endpoint Verification Using Call Signs
US8005223B2 (en) * 2006-05-12 2011-08-23 Research In Motion Limited System and method for exchanging encryption keys between a mobile device and a peripheral device
US8025105B2 (en) * 2006-08-07 2011-09-27 Weatherford/Lamb, Inc. Downhole tool retrieval and setting system
US20080095361A1 (en) * 2006-10-19 2008-04-24 Telefonaktiebolaget L M Ericsson (Publ) Security-Enhanced Key Exchange
US8688986B2 (en) * 2006-12-27 2014-04-01 Intel Corporation Method for exchanging strong encryption keys between devices using alternate input methods in wireless personal area networks (WPAN)
US8345871B2 (en) 2007-03-15 2013-01-01 Palo Alto Research Center Incorporated Fast authentication over slow channels
US8539233B2 (en) * 2007-05-24 2013-09-17 Microsoft Corporation Binding content licenses to portable storage devices
CN101175076B (en) * 2007-10-23 2012-01-11 赵运磊 High-efficiency, deniable, safety-unforgeable cryptographic key exchanging method of on-line computation
DE102008042180B4 (en) * 2008-09-17 2010-09-23 Zf Friedrichshafen Ag Method and system for secure transmission of data
KR101255987B1 (en) * 2008-12-22 2013-04-17 한국전자통신연구원 Paring method between SM and TP in downloadable conditional access system, Setopbox and Authentication device using this
TWI391824B (en) * 2009-12-18 2013-04-01 Feeling Technology Corp Drive the connection system
KR20110090602A (en) * 2010-02-04 2011-08-10 삼성전자주식회사 Method and apparatus for authenticating public key without authentication server
CN103477602B (en) * 2011-04-15 2018-05-18 诺基亚技术有限公司 For providing the method and apparatus of secret delegation
US9323950B2 (en) * 2012-07-19 2016-04-26 Atmel Corporation Generating signatures using a secure device
CN103916851B (en) * 2013-01-06 2017-08-18 华为终端有限公司 A kind of method of safety certification, equipment and system
US9118467B2 (en) 2013-03-13 2015-08-25 Atmel Corporation Generating keys using secure hardware
CN105814859B (en) * 2013-12-31 2019-04-19 华为终端(东莞)有限公司 A kind of network collocating method, relevant apparatus and system
US9641400B2 (en) 2014-11-21 2017-05-02 Afero, Inc. Internet of things device for registering user selections
US20160180100A1 (en) 2014-12-18 2016-06-23 Joe Britt System and method for securely connecting network devices using optical labels
US10291595B2 (en) 2014-12-18 2019-05-14 Afero, Inc. System and method for securely connecting network devices
US9832173B2 (en) 2014-12-18 2017-11-28 Afero, Inc. System and method for securely connecting network devices
US10045150B2 (en) 2015-03-30 2018-08-07 Afero, Inc. System and method for accurately sensing user location in an IoT system
US9704318B2 (en) 2015-03-30 2017-07-11 Afero, Inc. System and method for accurately sensing user location in an IoT system
US9717012B2 (en) 2015-06-01 2017-07-25 Afero, Inc. Internet of things (IOT) automotive device, system, and method
US11042488B2 (en) * 2015-06-01 2021-06-22 Cryptography Research, Inc. Diversifying a base symmetric key based on a public key
US9786108B2 (en) * 2015-06-03 2017-10-10 Nxp B.V. NFC based secure car key
US9729528B2 (en) * 2015-07-03 2017-08-08 Afero, Inc. Apparatus and method for establishing secure communication channels in an internet of things (IOT) system
US9699814B2 (en) 2015-07-03 2017-07-04 Afero, Inc. Apparatus and method for establishing secure communication channels in an internet of things (IoT) system
US10015766B2 (en) 2015-07-14 2018-07-03 Afero, Inc. Apparatus and method for securely tracking event attendees using IOT devices
US9793937B2 (en) 2015-10-30 2017-10-17 Afero, Inc. Apparatus and method for filtering wireless signals
US10178530B2 (en) 2015-12-14 2019-01-08 Afero, Inc. System and method for performing asset and crowd tracking in an IoT system
US10523437B2 (en) * 2016-01-27 2019-12-31 Lg Electronics Inc. System and method for authentication of things
US10482255B2 (en) 2016-02-16 2019-11-19 Atmel Corporation Controlled secure code authentication
US10474823B2 (en) 2016-02-16 2019-11-12 Atmel Corporation Controlled secure code authentication
US10616197B2 (en) 2016-04-18 2020-04-07 Atmel Corporation Message authentication with secure code verification
US11190344B2 (en) 2017-01-25 2021-11-30 Salesforce.Com, Inc. Secure user authentication based on multiple asymmetric cryptography key pairs
US10356088B1 (en) * 2017-01-25 2019-07-16 Salesforce.Com, Inc. User authentication based on multiple asymmetric cryptography key pairs
US11070366B2 (en) * 2018-05-08 2021-07-20 Nec Corporation Dynamic anonymous password-authenticated key exchange (APAKE)
US11146540B2 (en) * 2018-05-09 2021-10-12 Datalogic Ip Tech S.R.L. Systems and methods for public key exchange employing a peer-to-peer protocol
US11245517B1 (en) 2021-03-31 2022-02-08 Cyberark Software Ltd. Identity-based security layer for peripheral computing devices
EP3955516A3 (en) * 2021-03-31 2022-03-09 CyberArk Software Ltd. Identity-based security layer for peripheral computing devices

Citations (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4037214A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4207609A (en) * 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
US4247905A (en) * 1977-08-26 1981-01-27 Sharp Kabushiki Kaisha Memory clear system
US4276594A (en) * 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
US4319323A (en) * 1980-04-04 1982-03-09 Digital Equipment Corporation Communications device for data processing system
US4319233A (en) * 1978-11-30 1982-03-09 Kokusan Denki Co., Ltd. Device for electrically detecting a liquid level
US4430709A (en) * 1980-09-13 1984-02-07 Robert Bosch Gmbh Apparatus for safeguarding data entered into a microprocessor
US4521852A (en) * 1982-06-30 1985-06-04 Texas Instruments Incorporated Data processing device formed on a single semiconductor substrate having secure memory
US4571672A (en) * 1982-12-17 1986-02-18 Hitachi, Ltd. Access control method for multiprocessor systems
US4795893A (en) * 1986-07-11 1989-01-03 Bull, Cp8 Security device prohibiting the function of an electronic data processing unit after a first cutoff of its electrical power
US4802084A (en) * 1985-03-11 1989-01-31 Hitachi, Ltd. Address translator
US4825052A (en) * 1985-12-31 1989-04-25 Bull Cp8 Method and apparatus for certifying services obtained using a portable carrier such as a memory card
US4907272A (en) * 1986-07-11 1990-03-06 Bull Cp8 Method for authenticating an external authorizing datum by a portable object, such as a memory card
US4910774A (en) * 1987-07-10 1990-03-20 Schlumberger Industries Method and system for suthenticating electronic memory cards
US5007082A (en) * 1988-08-03 1991-04-09 Kelly Services, Inc. Computer software encryption apparatus
US5022077A (en) * 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
US5079737A (en) * 1988-10-25 1992-01-07 United Technologies Corporation Memory management unit for the MIL-STD 1750 bus
US5187802A (en) * 1988-12-26 1993-02-16 Hitachi, Ltd. Virtual machine system with vitual machine resetting store indicating that virtual machine processed interrupt without virtual machine control program intervention
US5287363A (en) * 1991-07-01 1994-02-15 Disk Technician Corporation System for locating and anticipating data storage media failures
US5293424A (en) * 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
US5295251A (en) * 1989-09-21 1994-03-15 Hitachi, Ltd. Method of accessing multiple virtual address spaces and computer system
US5317705A (en) * 1990-10-24 1994-05-31 International Business Machines Corporation Apparatus and method for TLB purge reduction in a multi-level machine system
US5319760A (en) * 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5386552A (en) * 1991-10-21 1995-01-31 Intel Corporation Preservation of a computer system processing state in a mass storage device
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5504922A (en) * 1989-06-30 1996-04-02 Hitachi, Ltd. Virtual machine with hardware display controllers for base and target machines
US5506975A (en) * 1992-12-18 1996-04-09 Hitachi, Ltd. Virtual machine I/O interrupt control method compares number of pending I/O interrupt conditions for non-running virtual machines with predetermined number
US5511217A (en) * 1992-11-30 1996-04-23 Hitachi, Ltd. Computer system of virtual machines sharing a vector processor
US5522075A (en) * 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
US5528231A (en) * 1993-06-08 1996-06-18 Bull Cp8 Method for the authentication of a portable object by an offline terminal, and apparatus for implementing the process
US5604805A (en) * 1994-02-28 1997-02-18 Brands; Stefanus A. Privacy-protected transfer of electronic information
US5606617A (en) * 1994-10-14 1997-02-25 Brands; Stefanus A. Secret-key certificates
US5615263A (en) * 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5628022A (en) * 1993-06-04 1997-05-06 Hitachi, Ltd. Microcomputer with programmable ROM
US5633929A (en) * 1995-09-15 1997-05-27 Rsa Data Security, Inc Cryptographic key escrow system having reduced vulnerability to harvesting attacks
US5706469A (en) * 1994-09-12 1998-01-06 Mitsubishi Denki Kabushiki Kaisha Data processing system controlling bus access to an arbitrary sized memory area
US5717903A (en) * 1995-05-15 1998-02-10 Compaq Computer Corporation Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device
US5721222A (en) * 1992-04-16 1998-02-24 Zeneca Limited Heterocyclic ketones
US5720609A (en) * 1991-01-09 1998-02-24 Pfefferle; William Charles Catalytic method
US5729760A (en) * 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
US5737604A (en) * 1989-11-03 1998-04-07 Compaq Computer Corporation Method and apparatus for independently resetting processors and cache controllers in multiple processor systems
US5737760A (en) * 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
US5740178A (en) * 1996-08-29 1998-04-14 Lucent Technologies Inc. Software for controlling a reliable backup memory
US5752046A (en) * 1993-01-14 1998-05-12 Apple Computer, Inc. Power management system for computer device interconnection bus
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US5764969A (en) * 1995-02-10 1998-06-09 International Business Machines Corporation Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization
US5867577A (en) * 1994-03-09 1999-02-02 Bull Cp8 Method and apparatus for authenticating a data carrier intended to enable a transaction or access to a service or a location, and corresponding carrier
US5872994A (en) * 1995-11-10 1999-02-16 Nec Corporation Flash memory incorporating microcomputer having on-board writing function
US5890189A (en) * 1991-11-29 1999-03-30 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5901225A (en) * 1996-12-05 1999-05-04 Advanced Micro Devices, Inc. System and method for performing software patches in embedded systems
US5900606A (en) * 1995-03-10 1999-05-04 Schlumberger Industries, S.A. Method of writing information securely in a portable medium
US5903752A (en) * 1994-10-13 1999-05-11 Intel Corporation Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system
US6014745A (en) * 1997-07-17 2000-01-11 Silicon Systems Design Ltd. Protection for customer programs (EPROM)
US6035374A (en) * 1997-06-25 2000-03-07 Sun Microsystems, Inc. Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency
US6044478A (en) * 1997-05-30 2000-03-28 National Semiconductor Corporation Cache with finely granular locked-down regions
US6055637A (en) * 1996-09-27 2000-04-25 Electronic Data Systems Corporation System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential
US6058478A (en) * 1994-09-30 2000-05-02 Intel Corporation Apparatus and method for a vetted field upgrade
US6061794A (en) * 1997-09-30 2000-05-09 Compaq Computer Corp. System and method for performing secure device communications in a peer-to-peer bus architecture
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6173400B1 (en) * 1998-07-31 2001-01-09 Sun Microsystems, Inc. Methods and systems for establishing a shared secret using an authentication token
US6173417B1 (en) * 1998-04-30 2001-01-09 Intel Corporation Initializing and restarting operating systems
US6175925B1 (en) * 1996-06-13 2001-01-16 Intel Corporation Tamper resistant player for scrambled contents
US6175924B1 (en) * 1997-06-20 2001-01-16 International Business Machines Corp. Method and apparatus for protecting application data in secure storage areas
US6178509B1 (en) * 1996-06-13 2001-01-23 Intel Corporation Tamper resistant methods and apparatus
US6182089B1 (en) * 1997-09-23 2001-01-30 Silicon Graphics, Inc. Method, system and computer program product for dynamically allocating large memory pages of different sizes
US6188257B1 (en) * 1999-02-01 2001-02-13 Vlsi Technology, Inc. Power-on-reset logic with secure power down capability
US6192455B1 (en) * 1998-03-30 2001-02-20 Intel Corporation Apparatus and method for preventing access to SMRAM space through AGP addressing
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US6205550B1 (en) * 1996-06-13 2001-03-20 Intel Corporation Tamper resistant methods and apparatus
US6212635B1 (en) * 1997-07-18 2001-04-03 David C. Reardon Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place
US6222923B1 (en) * 1996-11-28 2001-04-24 Deutsche Telekom Ag Method for securing system protected by a key hierarchy
US6249872B1 (en) * 1996-02-09 2001-06-19 Intel Corporation Method and apparatus for increasing security against unauthorized write access to a protected memory
US6252650B1 (en) * 1999-09-09 2001-06-26 Nikon Corporation Exposure apparatus, output control method for energy source, laser device using the control method, and method of producing microdevice
US6339816B1 (en) * 1997-08-19 2002-01-15 Siemens Noxdorf Informationssysteme Aktiengesellschaft Method for improving controllability in data processing system with address translation
US20020007456A1 (en) * 1999-03-27 2002-01-17 Marcus Peinado Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US20020018892A1 (en) * 2000-07-05 2002-02-14 Dainippon Ink And Chemicals, Inc. Aqueous dry laminate adhesive composition for artificial leather and manufacturing method for artificial leather using the same
US20020023032A1 (en) * 2000-08-18 2002-02-21 Hewlett-Packard Company Trusted system
US6357004B1 (en) * 1997-09-30 2002-03-12 Intel Corporation System and method for ensuring integrity throughout post-processing
US6363485B1 (en) * 1998-09-09 2002-03-26 Entrust Technologies Limited Multi-factor biometric authenticating device and method
US6374317B1 (en) * 1999-10-07 2002-04-16 Intel Corporation Method and apparatus for initializing a computer interface
US6374286B1 (en) * 1998-04-06 2002-04-16 Rockwell Collins, Inc. Real time processor capable of concurrently running multiple independent JAVA machines
US6378072B1 (en) * 1998-02-03 2002-04-23 Compaq Computer Corporation Cryptographic system
US6378068B1 (en) * 1991-05-17 2002-04-23 Nec Corporation Suspend/resume capability for a protected mode microprocesser
US6389537B1 (en) * 1999-04-23 2002-05-14 Intel Corporation Platform and method for assuring integrity of trusted agent communications
US6397379B1 (en) * 1999-01-28 2002-05-28 Ati International Srl Recording in a program execution profile references to a memory-mapped active device
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6412035B1 (en) * 1997-02-03 2002-06-25 Real Time, Inc. Apparatus and method for decreasing the response times of interrupt service routines
US6505279B1 (en) * 1998-08-14 2003-01-07 Silicon Storage Technology, Inc. Microcontroller system having security circuitry to selectively lock portions of a program memory address space
US6507904B1 (en) * 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US6529909B1 (en) * 1999-08-31 2003-03-04 Accenture Llp Method for translating an object attribute converter in an information services patterns environment
US6535988B1 (en) * 1999-09-29 2003-03-18 Intel Corporation System for detecting over-clocking uses a reference signal thereafter preventing over-clocking by reducing clock rate
US20030074548A1 (en) * 2001-10-16 2003-04-17 International Business Machines Corporation Method and system for tracking a secure boot in a trusted computing environment
US6557104B2 (en) * 1997-05-02 2003-04-29 Phoenix Technologies Ltd. Method and apparatus for secure processing of cryptographic keys
US6560627B1 (en) * 1999-01-28 2003-05-06 Cisco Technology, Inc. Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore
US20030115453A1 (en) * 2001-12-17 2003-06-19 Grawrock David W. Connecting a virtual token to a physical token
US6678825B1 (en) * 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US6684326B1 (en) * 1999-03-31 2004-01-27 International Business Machines Corporation Method and system for authenticated boot operations in a computer system of a networked computing environment
US20040117539A1 (en) * 2002-12-17 2004-06-17 Intel Corporation Methods and systems to control virtual machines
US7376826B2 (en) * 2002-05-31 2008-05-20 Broadcom Corporation Methods and apparatus for performing encryption and authentication

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3669532A (en) * 1970-03-23 1972-06-13 Bell & Howell Co Projector control apparatus
US3699532A (en) 1970-04-21 1972-10-17 Singer Co Multiprogramming control for a data handling system
US3996449A (en) 1975-08-25 1976-12-07 International Business Machines Corporation Operating system authenticator
US4162536A (en) 1976-01-02 1979-07-24 Gould Inc., Modicon Div. Digital input/output system and method
US4278837A (en) 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
JPS5576447A (en) 1978-12-01 1980-06-09 Fujitsu Ltd Address control system for software simulation
US4307447A (en) 1979-06-19 1981-12-22 Gould Inc. Programmable controller
US4419724A (en) 1980-04-14 1983-12-06 Sperry Corporation Main bus interface package
US4366537A (en) 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys
US4403283A (en) 1980-07-28 1983-09-06 Ncr Corporation Extended memory system and method
JPS58140862A (en) 1982-02-16 1983-08-20 Toshiba Corp Mutual exclusion system
US4759064A (en) 1985-10-07 1988-07-19 Chaum David L Blind unanticipated signature systems
US4975836A (en) 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
FR2601535B1 (en) 1986-07-11 1988-10-21 Bull Cp8 METHOD FOR CERTIFYING THE AUTHENTICITY OF DATA EXCHANGED BETWEEN TWO DEVICES CONNECTED LOCALLY OR REMOTELY THROUGH A TRANSMISSION LINE
US5434999A (en) 1988-11-09 1995-07-18 Bull Cp8 Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal
FR2640798B1 (en) 1988-12-20 1993-01-08 Bull Cp8 DATA PROCESSING DEVICE COMPRISING AN ELECTRICALLY ERASABLE AND REPROGRAMMABLE NON-VOLATILE MEMORY
JPH02208740A (en) 1989-02-09 1990-08-20 Fujitsu Ltd Virtual computer control system
US5442645A (en) 1989-06-06 1995-08-15 Bull Cp8 Method for checking the integrity of a program or data, and apparatus for implementing this method
US5001752A (en) * 1989-10-13 1991-03-19 Fischer Addison M Public/key date-time notary facility
CA2010591C (en) 1989-10-20 1999-01-26 Phillip M. Adams Kernels, description tables and device drivers
US5075842A (en) 1989-12-22 1991-12-24 Intel Corporation Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism
US5108590A (en) 1990-09-12 1992-04-28 Disanto Dennis Water dispenser
US5230069A (en) 1990-10-02 1993-07-20 International Business Machines Corporation Apparatus and method for providing private and shared access to host address and data spaces by guest programs in a virtual machine computer system
US5437033A (en) 1990-11-16 1995-07-25 Hitachi, Ltd. System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode
US5255379A (en) 1990-12-28 1993-10-19 Sun Microsystems, Inc. Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor
US5455909A (en) 1991-07-05 1995-10-03 Chips And Technologies Inc. Microprocessor with operation capture facility
US5241599A (en) * 1991-10-02 1993-08-31 At&T Bell Laboratories Cryptographic protocol for secure communications
US5574936A (en) 1992-01-02 1996-11-12 Amdahl Corporation Access control mechanism controlling access to and logical purging of access register translation lookaside buffer (ALB) in a computer system
JP2883243B2 (en) 1992-06-11 1999-04-19 ケイディディ株式会社 Remote party authentication / encryption key distribution method
US5237616A (en) 1992-09-21 1993-08-17 International Business Machines Corporation Secure computer system having privileged and unprivileged memories
US5796835A (en) 1992-10-27 1998-08-18 Bull Cp8 Method and system for writing information in a data carrier making it possible to later certify the originality of this information
US5668971A (en) 1992-12-01 1997-09-16 Compaq Computer Corporation Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer
US5469557A (en) 1993-03-05 1995-11-21 Microchip Technology Incorporated Code protection in microcontroller with EEPROM fuses
FR2703800B1 (en) 1993-04-06 1995-05-24 Bull Cp8 Method for signing a computer file, and device for implementing it.
FR2704341B1 (en) 1993-04-22 1995-06-02 Bull Cp8 Device for protecting the keys of a smart card.
US5440635A (en) 1993-08-23 1995-08-08 At&T Corp. Cryptographic protocol for remote authentication
US5555385A (en) 1993-10-27 1996-09-10 International Business Machines Corporation Allocation of address spaces within virtual machine compute system
US5825880A (en) 1994-01-13 1998-10-20 Sudia; Frank W. Multi-step digital signature method and system
US5459869A (en) 1994-02-17 1995-10-17 Spilo; Michael L. Method for providing protected mode services for device drivers and other resident software
US5684881A (en) 1994-05-23 1997-11-04 Matsushita Electric Industrial Co., Ltd. Sound field and sound image control apparatus and method
US5539828A (en) 1994-05-31 1996-07-23 Intel Corporation Apparatus and method for providing secured communications
US5473692A (en) 1994-09-07 1995-12-05 Intel Corporation Roving software license for a hardware agent
FR2725537B1 (en) 1994-10-11 1996-11-22 Bull Cp8 METHOD FOR LOADING A PROTECTED MEMORY AREA OF AN INFORMATION PROCESSING DEVICE AND ASSOCIATED DEVICE
US5564040A (en) 1994-11-08 1996-10-08 International Business Machines Corporation Method and apparatus for providing a server function in a logically partitioned hardware machine
US5560013A (en) 1994-12-06 1996-09-24 International Business Machines Corporation Method of using a target processor to execute programs of a source architecture that uses multiple address spaces
US5555414A (en) 1994-12-14 1996-09-10 International Business Machines Corporation Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals
DE19514084C1 (en) * 1995-04-13 1996-07-11 Siemens Ag Processor-controlled exchange of cryptographic keys, e.g. in mobile communications
JP3451595B2 (en) 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション Microprocessor with architectural mode control capable of supporting extension to two distinct instruction set architectures
US5684948A (en) 1995-09-01 1997-11-04 National Semiconductor Corporation Memory management circuit which provides simulated privilege levels
US5657445A (en) 1996-01-26 1997-08-12 Dell Usa, L.P. Apparatus and method for limiting access to mass storage devices in a computer system
US5809546A (en) 1996-05-23 1998-09-15 International Business Machines Corporation Method for managing I/O buffers in shared storage by structuring buffer table having entries including storage keys for controlling accesses to the buffers
US5844986A (en) 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US5852717A (en) 1996-11-20 1998-12-22 Shiva Corporation Performance optimizations for computer networks utilizing HTTP
US6044462A (en) * 1997-04-02 2000-03-28 Arcanvs Method and apparatus for managing key revocation
US6584565B1 (en) * 1997-07-15 2003-06-24 Hewlett-Packard Development Company, L.P. Method and apparatus for long term verification of digital signatures
US6151676A (en) * 1997-12-24 2000-11-21 Philips Electronics North America Corporation Administration and utilization of secret fresh random numbers in a networked environment
US6339815B1 (en) * 1998-08-14 2002-01-15 Silicon Storage Technology, Inc. Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space

Patent Citations (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4037214A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key register controlled accessing system
US4247905A (en) * 1977-08-26 1981-01-27 Sharp Kabushiki Kaisha Memory clear system
US4276594A (en) * 1978-01-27 1981-06-30 Gould Inc. Modicon Division Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same
US4207609A (en) * 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
US4319233A (en) * 1978-11-30 1982-03-09 Kokusan Denki Co., Ltd. Device for electrically detecting a liquid level
US4319323A (en) * 1980-04-04 1982-03-09 Digital Equipment Corporation Communications device for data processing system
US4430709A (en) * 1980-09-13 1984-02-07 Robert Bosch Gmbh Apparatus for safeguarding data entered into a microprocessor
US4521852A (en) * 1982-06-30 1985-06-04 Texas Instruments Incorporated Data processing device formed on a single semiconductor substrate having secure memory
US4571672A (en) * 1982-12-17 1986-02-18 Hitachi, Ltd. Access control method for multiprocessor systems
US4802084A (en) * 1985-03-11 1989-01-31 Hitachi, Ltd. Address translator
US4825052A (en) * 1985-12-31 1989-04-25 Bull Cp8 Method and apparatus for certifying services obtained using a portable carrier such as a memory card
US4795893A (en) * 1986-07-11 1989-01-03 Bull, Cp8 Security device prohibiting the function of an electronic data processing unit after a first cutoff of its electrical power
US4907272A (en) * 1986-07-11 1990-03-06 Bull Cp8 Method for authenticating an external authorizing datum by a portable object, such as a memory card
US4910774A (en) * 1987-07-10 1990-03-20 Schlumberger Industries Method and system for suthenticating electronic memory cards
US5007082A (en) * 1988-08-03 1991-04-09 Kelly Services, Inc. Computer software encryption apparatus
US5079737A (en) * 1988-10-25 1992-01-07 United Technologies Corporation Memory management unit for the MIL-STD 1750 bus
US5187802A (en) * 1988-12-26 1993-02-16 Hitachi, Ltd. Virtual machine system with vitual machine resetting store indicating that virtual machine processed interrupt without virtual machine control program intervention
US5504922A (en) * 1989-06-30 1996-04-02 Hitachi, Ltd. Virtual machine with hardware display controllers for base and target machines
US5022077A (en) * 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
US5295251A (en) * 1989-09-21 1994-03-15 Hitachi, Ltd. Method of accessing multiple virtual address spaces and computer system
US5737604A (en) * 1989-11-03 1998-04-07 Compaq Computer Corporation Method and apparatus for independently resetting processors and cache controllers in multiple processor systems
US5317705A (en) * 1990-10-24 1994-05-31 International Business Machines Corporation Apparatus and method for TLB purge reduction in a multi-level machine system
US5720609A (en) * 1991-01-09 1998-02-24 Pfefferle; William Charles Catalytic method
US6378068B1 (en) * 1991-05-17 2002-04-23 Nec Corporation Suspend/resume capability for a protected mode microprocesser
US5319760A (en) * 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5522075A (en) * 1991-06-28 1996-05-28 Digital Equipment Corporation Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces
US5287363A (en) * 1991-07-01 1994-02-15 Disk Technician Corporation System for locating and anticipating data storage media failures
US5386552A (en) * 1991-10-21 1995-01-31 Intel Corporation Preservation of a computer system processing state in a mass storage device
US5890189A (en) * 1991-11-29 1999-03-30 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5721222A (en) * 1992-04-16 1998-02-24 Zeneca Limited Heterocyclic ketones
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5293424A (en) * 1992-10-14 1994-03-08 Bull Hn Information Systems Inc. Secure memory card
US5511217A (en) * 1992-11-30 1996-04-23 Hitachi, Ltd. Computer system of virtual machines sharing a vector processor
US5506975A (en) * 1992-12-18 1996-04-09 Hitachi, Ltd. Virtual machine I/O interrupt control method compares number of pending I/O interrupt conditions for non-running virtual machines with predetermined number
US5752046A (en) * 1993-01-14 1998-05-12 Apple Computer, Inc. Power management system for computer device interconnection bus
US5628022A (en) * 1993-06-04 1997-05-06 Hitachi, Ltd. Microcomputer with programmable ROM
US5528231A (en) * 1993-06-08 1996-06-18 Bull Cp8 Method for the authentication of a portable object by an offline terminal, and apparatus for implementing the process
US5604805A (en) * 1994-02-28 1997-02-18 Brands; Stefanus A. Privacy-protected transfer of electronic information
US5867577A (en) * 1994-03-09 1999-02-02 Bull Cp8 Method and apparatus for authenticating a data carrier intended to enable a transaction or access to a service or a location, and corresponding carrier
US5706469A (en) * 1994-09-12 1998-01-06 Mitsubishi Denki Kabushiki Kaisha Data processing system controlling bus access to an arbitrary sized memory area
US6058478A (en) * 1994-09-30 2000-05-02 Intel Corporation Apparatus and method for a vetted field upgrade
US5903752A (en) * 1994-10-13 1999-05-11 Intel Corporation Method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system
US5606617A (en) * 1994-10-14 1997-02-25 Brands; Stefanus A. Secret-key certificates
US5615263A (en) * 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5764969A (en) * 1995-02-10 1998-06-09 International Business Machines Corporation Method and system for enhanced management operation utilizing intermixed user level and supervisory level instructions with partial concept synchronization
US5900606A (en) * 1995-03-10 1999-05-04 Schlumberger Industries, S.A. Method of writing information securely in a portable medium
US5717903A (en) * 1995-05-15 1998-02-10 Compaq Computer Corporation Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device
US5633929A (en) * 1995-09-15 1997-05-27 Rsa Data Security, Inc Cryptographic key escrow system having reduced vulnerability to harvesting attacks
US5737760A (en) * 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
US5872994A (en) * 1995-11-10 1999-02-16 Nec Corporation Flash memory incorporating microcomputer having on-board writing function
US6249872B1 (en) * 1996-02-09 2001-06-19 Intel Corporation Method and apparatus for increasing security against unauthorized write access to a protected memory
US6205550B1 (en) * 1996-06-13 2001-03-20 Intel Corporation Tamper resistant methods and apparatus
US6178509B1 (en) * 1996-06-13 2001-01-23 Intel Corporation Tamper resistant methods and apparatus
US6175925B1 (en) * 1996-06-13 2001-01-16 Intel Corporation Tamper resistant player for scrambled contents
US5729760A (en) * 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US5740178A (en) * 1996-08-29 1998-04-14 Lucent Technologies Inc. Software for controlling a reliable backup memory
US6055637A (en) * 1996-09-27 2000-04-25 Electronic Data Systems Corporation System and method for accessing enterprise-wide resources by presenting to the resource a temporary credential
US6222923B1 (en) * 1996-11-28 2001-04-24 Deutsche Telekom Ag Method for securing system protected by a key hierarchy
US5901225A (en) * 1996-12-05 1999-05-04 Advanced Micro Devices, Inc. System and method for performing software patches in embedded systems
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US6412035B1 (en) * 1997-02-03 2002-06-25 Real Time, Inc. Apparatus and method for decreasing the response times of interrupt service routines
US6557104B2 (en) * 1997-05-02 2003-04-29 Phoenix Technologies Ltd. Method and apparatus for secure processing of cryptographic keys
US6044478A (en) * 1997-05-30 2000-03-28 National Semiconductor Corporation Cache with finely granular locked-down regions
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6175924B1 (en) * 1997-06-20 2001-01-16 International Business Machines Corp. Method and apparatus for protecting application data in secure storage areas
US6035374A (en) * 1997-06-25 2000-03-07 Sun Microsystems, Inc. Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency
US6014745A (en) * 1997-07-17 2000-01-11 Silicon Systems Design Ltd. Protection for customer programs (EPROM)
US6212635B1 (en) * 1997-07-18 2001-04-03 David C. Reardon Network security system allowing access and modification to a security subsystem after initial installation when a master token is in place
US6339816B1 (en) * 1997-08-19 2002-01-15 Siemens Noxdorf Informationssysteme Aktiengesellschaft Method for improving controllability in data processing system with address translation
US6182089B1 (en) * 1997-09-23 2001-01-30 Silicon Graphics, Inc. Method, system and computer program product for dynamically allocating large memory pages of different sizes
US6357004B1 (en) * 1997-09-30 2002-03-12 Intel Corporation System and method for ensuring integrity throughout post-processing
US6061794A (en) * 1997-09-30 2000-05-09 Compaq Computer Corp. System and method for performing secure device communications in a peer-to-peer bus architecture
US6378072B1 (en) * 1998-02-03 2002-04-23 Compaq Computer Corporation Cryptographic system
US6192455B1 (en) * 1998-03-30 2001-02-20 Intel Corporation Apparatus and method for preventing access to SMRAM space through AGP addressing
US6374286B1 (en) * 1998-04-06 2002-04-16 Rockwell Collins, Inc. Real time processor capable of concurrently running multiple independent JAVA machines
US6173417B1 (en) * 1998-04-30 2001-01-09 Intel Corporation Initializing and restarting operating systems
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6173400B1 (en) * 1998-07-31 2001-01-09 Sun Microsystems, Inc. Methods and systems for establishing a shared secret using an authentication token
US6505279B1 (en) * 1998-08-14 2003-01-07 Silicon Storage Technology, Inc. Microcontroller system having security circuitry to selectively lock portions of a program memory address space
US6363485B1 (en) * 1998-09-09 2002-03-26 Entrust Technologies Limited Multi-factor biometric authenticating device and method
US6560627B1 (en) * 1999-01-28 2003-05-06 Cisco Technology, Inc. Mutual exclusion at the record level with priority inheritance for embedded systems using one semaphore
US6397379B1 (en) * 1999-01-28 2002-05-28 Ati International Srl Recording in a program execution profile references to a memory-mapped active device
US6188257B1 (en) * 1999-02-01 2001-02-13 Vlsi Technology, Inc. Power-on-reset logic with secure power down capability
US20020007456A1 (en) * 1999-03-27 2002-01-17 Marcus Peinado Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US6684326B1 (en) * 1999-03-31 2004-01-27 International Business Machines Corporation Method and system for authenticated boot operations in a computer system of a networked computing environment
US6389537B1 (en) * 1999-04-23 2002-05-14 Intel Corporation Platform and method for assuring integrity of trusted agent communications
US6529909B1 (en) * 1999-08-31 2003-03-04 Accenture Llp Method for translating an object attribute converter in an information services patterns environment
US6252650B1 (en) * 1999-09-09 2001-06-26 Nikon Corporation Exposure apparatus, output control method for energy source, laser device using the control method, and method of producing microdevice
US6535988B1 (en) * 1999-09-29 2003-03-18 Intel Corporation System for detecting over-clocking uses a reference signal thereafter preventing over-clocking by reducing clock rate
US6374317B1 (en) * 1999-10-07 2002-04-16 Intel Corporation Method and apparatus for initializing a computer interface
US6678825B1 (en) * 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US6507904B1 (en) * 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US20020018892A1 (en) * 2000-07-05 2002-02-14 Dainippon Ink And Chemicals, Inc. Aqueous dry laminate adhesive composition for artificial leather and manufacturing method for artificial leather using the same
US20020023032A1 (en) * 2000-08-18 2002-02-21 Hewlett-Packard Company Trusted system
US20030074548A1 (en) * 2001-10-16 2003-04-17 International Business Machines Corporation Method and system for tracking a secure boot in a trusted computing environment
US20030115453A1 (en) * 2001-12-17 2003-06-19 Grawrock David W. Connecting a virtual token to a physical token
US7376826B2 (en) * 2002-05-31 2008-05-20 Broadcom Corporation Methods and apparatus for performing encryption and authentication
US20040117539A1 (en) * 2002-12-17 2004-06-17 Intel Corporation Methods and systems to control virtual machines

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060224885A1 (en) * 2005-04-05 2006-10-05 Mcafee, Inc. Remotely configurable bridge system and method for use in secure wireless networks
US20060233375A1 (en) * 2005-04-05 2006-10-19 Mcafee, Inc. Captive portal system and method for use in peer-to-peer networks
US20060251258A1 (en) * 2005-04-05 2006-11-09 Mcafee, Inc. System, method and computer program product for updating security criteria in wireless networks
US20070233860A1 (en) * 2005-04-05 2007-10-04 Mcafee, Inc. Methods and systems for exchanging security information via peer-to-peer wireless networks
US7606370B2 (en) * 2005-04-05 2009-10-20 Mcafee, Inc. System, method and computer program product for updating security criteria in wireless networks
US7757274B2 (en) 2005-04-05 2010-07-13 Mcafee, Inc. Methods and systems for exchanging security information via peer-to-peer wireless networks
US7761710B2 (en) * 2005-04-05 2010-07-20 Mcafee, Inc. Captive portal system and method for use in peer-to-peer networks
US7822972B2 (en) 2005-04-05 2010-10-26 Mcafee, Inc. Remotely configurable bridge system and method for use in secure wireless networks
US20130073850A1 (en) * 2011-09-16 2013-03-21 Certicom Corp. Hybrid encryption schemes
US9172529B2 (en) * 2011-09-16 2015-10-27 Certicom Corp. Hybrid encryption schemes
US8914629B2 (en) * 2012-01-30 2014-12-16 The Nielsen Company (Us), Llc Intercepting encrypted network traffic for internet usage monitoring
US20130198512A1 (en) * 2012-01-30 2013-08-01 Jonathon Brett Rubin Intercepting encrypted network traffic for internet usage monitoring
US9621543B2 (en) 2012-01-30 2017-04-11 The Nielsen Company (Us), Llc Intercepting encrypted network traffic for internet usage monitoring
WO2019133869A1 (en) * 2017-12-28 2019-07-04 Corlina, Inc. System and method for monitoring the trustworthiness of a networked system
US10867055B2 (en) * 2017-12-28 2020-12-15 Corlina, Inc. System and method for monitoring the trustworthiness of a networked system
US11170119B2 (en) 2017-12-28 2021-11-09 Corlina, Inc. System and method for monitoring the trustworthiness of a networked system
US11256818B2 (en) 2017-12-28 2022-02-22 Corlina, Inc. System and method for enabling and verifying the trustworthiness of a hardware system
US11509636B2 (en) 2018-01-30 2022-11-22 Corlina, Inc. User and device onboarding
WO2020220034A1 (en) * 2019-04-26 2020-10-29 Csub Auxiliary For Sponsored Programs Administration Reconfigurable security hardware and methods for internet of things (iot) systems
US11748297B2 (en) 2019-04-26 2023-09-05 Csub Auxiliary For Sponsored Programs Administration Reconfigurable security hardware and methods for internet of things (IOT) systems

Also Published As

Publication number Publication date
TW200405708A (en) 2004-04-01
US20030233550A1 (en) 2003-12-18
US7142674B2 (en) 2006-11-28
TWI249315B (en) 2006-02-11
WO2003107151A3 (en) 2004-09-16
CN100383693C (en) 2008-04-23
AU2003229298A1 (en) 2003-12-31
EP1514164A2 (en) 2005-03-16
WO2003107151A2 (en) 2003-12-24
CN1662867A (en) 2005-08-31

Similar Documents

Publication Publication Date Title
US7142674B2 (en) Method of confirming a secure key exchange
US10142107B2 (en) Token binding using trust module protected keys
KR101343264B1 (en) Secure device authentication
RU2399087C2 (en) Safe data storage with integrity protection
US9432360B1 (en) Security-aware split-server passcode verification for one-time authentication tokens
US7693286B2 (en) Method of delivering direct proof private keys in signed groups to devices using a distribution CD
US20080025514A1 (en) Systems And Methods For Root Certificate Update
CN109361508B (en) Data transmission method, electronic device and computer readable storage medium
JP2012050066A (en) Secure field-programmable gate array (fpga) architecture
CN103036681B (en) A kind of password safety keyboard device and system
WO2006025952A2 (en) Method of delivering direct proof private keys to devices using a distribution cd
WO2023083007A1 (en) Internet of things device identity authentication method, apparatus and system, and storage medium
US20190036689A1 (en) Establishing shared key data for wireless pairing
US20050154890A1 (en) Method for secure key exchange
US20120008784A1 (en) Delegated Key Exchange System and Method of Operation
JPH1139082A (en) Keyboard device having security function and method therefor
US20090239500A1 (en) Maintaining secure communication of a network device
CN112861156B (en) Secure communication method and device for display data, electronic equipment and storage medium
CN107343276B (en) Method and system for protecting SIM card locking data of terminal
WO2021083349A1 (en) Security chip-based security authentication method and system, security chip, and readable storage medium
CN114297355A (en) Method and system for establishing secure session, solid state disk and terminal equipment
CN112398647A (en) Consumable dynamic encryption method for channel distribution management
EP3236631B1 (en) Data checking device and data checking method using the same
US20050076217A1 (en) Integrating a device into a secure network
JP2015015542A (en) Information processing system

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: TAHOE RESEARCH, LTD., IRELAND

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTEL CORPORATION;REEL/FRAME:061175/0176

Effective date: 20220718