EP3952204B1 - Coordinated management of cryptographic keys for communication with peripheral devices - Google Patents
Coordinated management of cryptographic keys for communication with peripheral devices Download PDFInfo
- Publication number
- EP3952204B1 EP3952204B1 EP21194675.1A EP21194675A EP3952204B1 EP 3952204 B1 EP3952204 B1 EP 3952204B1 EP 21194675 A EP21194675 A EP 21194675A EP 3952204 B1 EP3952204 B1 EP 3952204B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- key
- host computing
- peripheral device
- computing device
- peripheral
- 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.)
- Active
Links
- 230000002093 peripheral effect Effects 0.000 title claims description 668
- 238000004891 communication Methods 0.000 title claims description 191
- 238000000034 method Methods 0.000 claims description 122
- 238000010200 validation analysis Methods 0.000 claims description 44
- 230000008569 process Effects 0.000 claims description 27
- 238000003860 storage Methods 0.000 claims description 27
- 230000015654 memory Effects 0.000 description 80
- 238000007726 management method Methods 0.000 description 49
- 230000004044 response Effects 0.000 description 35
- 238000012545 processing Methods 0.000 description 20
- 238000012790 confirmation Methods 0.000 description 14
- 230000000977 initiatory effect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013481 data capture Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000034184 interaction with host Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- ZLIBICFPKPWGIZ-UHFFFAOYSA-N pyrimethanil Chemical compound CC1=CC(C)=NC(NC=2C=CC=CC=2)=N1 ZLIBICFPKPWGIZ-UHFFFAOYSA-N 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/83—Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/84—Protecting input, output or interconnection devices output devices, e.g. displays or monitors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3231—Biological data, e.g. fingerprint, voice or retina
Definitions
- Such captured state data may include data from a fingerprint scan, facial recognition scan, and various other use cases, such as two-factor authentication or authorization used by applications executing on the computing devices.
- Computing devices receiving such captured data may not check the source's authenticity, resulting in potentially malicious actors presenting incorrect data.
- peripheral device source authentication and the content shared by the peripheral device source.
- Such solutions would advantageously help prevent malicious actors from emulating the peripheral devices or intercepting the peripheral devices' data.
- technological needs to authenticate the integrity of peripheral devices and secure the communications between the peripheral devices and computing devices. Further technical improvements are described in the example embodiments below.
- the making available the first key from the centralized identity management resource to the plurality of host computing devices may be performed according to a security policy.
- Also disclosed is a computer-implemented method for securely communicating between host computing devices and peripheral devices comprising: sending, from a first host computing device to a centralized identity management resource, a prompt indicating that the first host computing device seeks to engage in secure communications with a peripheral device; participating, by the first host computing device, in a validation process with the centralized identity management resource; obtaining by the first host computing device, conditional on a successful result of the validation process, access to a first key that is part of a cryptographic key pair comprising the first key and a second key, wherein the second key is stored at the peripheral device for use by the peripheral device in encrypting data; receiving, by the first host computing device, the encrypted data from the peripheral device; and decrypting, by the first host computing device using the first key, the encrypted data.
- Obtaining access to the first key may include one of: receiving the first key from the centralized identity management resource, receiving the first key from a second host computing device to which the first key was stored in a distributed manner, or retrieving the first key from a secure enclave environment on the first host computing device.
- the method may comprise: participating, by the first host computing device, in a synchronization process with the centralized identity management resource, wherein the centralized identity management resource provides the first host computing device with a replacement key that replaces the first key.
- the validation process may be performed according to a policy implemented at the centralized identity management resource.
- Also disclosed is computer-readable storage medium storing instructions which, when executed by at least one processor of a computing device, cause the computing device to perform any of the methods described in this disclosure.
- the operations can further include participating in secure communications between a group of host computing devices and the peripheral device conditional on a successful result of the validating.
- the operations can further include participating in secure sessions between a group of host computing devices and the peripheral device conditional on a successful result of the validating.
- the operations can further include accessing a third key at the peripheral device, encrypting the third key using the second key, and sending the encrypted third key to the host computing device, wherein the host computing device is configured to decrypt the encrypted third key with the first key, yielding the third key, and to encrypt session traffic to the peripheral device using the third key.
- session traffic from the peripheral device to the host computing device is encrypted by the peripheral device using the third key.
- the validating is performed on a per-connection basis each time the peripheral device is connected to the host computing device.
- the peripheral device stores the second key in a secure memory environment of the peripheral device comprising a memory and a processor, both of which are separate from, and operate independently from, a main memory and a main processor of the peripheral device.
- the peripheral device is at least one of: a Universal Serial Bus device or a High-Definition Multimedia Interface device.
- the peripheral device stores multiple different keys of a same type as the second key, the multiple different keys enabling the peripheral device to be validated by a plurality of corresponding different host computing devices.
- the data associated with the second key is a hash of the second key.
- Certain embodiments of the present disclosure relate to a computer implemented method for validating potentially malicious or unauthorized peripheral devices.
- the method can include identifying, at a host computing device, a peripheral device; accessing, at the host computing device, a cryptographic key pair comprising a first key and a second key; storing, by the host computing device at a memory environment associated with the host computing device, the first key and data associated with the second key; providing the second key to the peripheral device, wherein the peripheral device stores the second key in a memory environment of the peripheral device; and validating, at the host computing device, an identity of the peripheral device based on a decryption, using the first key, of data that was encrypted by the peripheral device using the second key.
- the method can further include sending, from the host computing device, an encrypted challenge to the peripheral device, and receiving, from the peripheral device, a response to the encrypted challenge, wherein the peripheral device decrypts the encrypted challenge using the second key.
- the method can further include determining, at the host computing device, whether the response to the encrypted challenge is successful, and performing at least one of the following operations, conditional on the determination of whether the response to the encrypted challenge is successful: validating the peripheral device as a trusted device for connection with the host computing device, validating the peripheral device as a trusted device for a current session with the host computing device, allowing initialization of a session between the host computing device and the peripheral device, allowing session traffic to be exchanged between the host computing device and the peripheral device, denying initiation of a session between the host computing device and the peripheral device, or terminating a session between the host computing device and the peripheral device.
- the method can further include validating the peripheral device conditional on the validation of the message being successful.
- the method can further include accessing, by the host computing device, a new cryptographic key pair to replace the cryptographic key pair, the new cryptographic key pair comprising a new first key and a new second key.
- the operations can further include validating the first host computing device before making available the first key.
- the first key is received at the centralized identity management resource as part of a registration process for the peripheral device.
- obtaining access to the first key can further include receiving the first key from a second host computing device to which the first key was stored in a distributed manner.
- the synchronization process can further include multiple host computing devices, including the first host computing device, receiving the replacement key.
- the method can further include as part of the validation process, indicating to the centralized identity management resource a version of software on the first host computing device.
- the validation process is performed according to a policy implemented at the centralized identity management resource.
- Systems and methods consistent with the present disclosure are directed to secure communication with peripheral devices using cryptographic encryption keys.
- the disclosed techniques include the management of communication sessions between multiple hosts and peripheral devices using a centralized management service. As described below, these secure communication management techniques with peripheral devices result in various technological improvements in the security and privacy of the data shared by users using peripheral devices connected to host computing devices.
- host computing devices 120 and peripheral devices 130 may connect directly and interact with CIMR 110 over network 140.
- Host computing devices 120 may be a processor or a complete computing device, such as laptops, desktop computers, mobile devices, smart home appliances, IoT devices, etc.
- Host computing devices 120 may be used to interact with peripheral devices 130 or vice versa.
- a user may interact with host computing devices 120 directly or indirectly to retrieve or receive data from peripheral devices 130. For example, a user may indirectly interact with a first host computing device through a second host computing device to access data of a peripheral device connected to the first host computing device.
- a user's interaction with host computing devices 120 may also include interaction using a peripheral device of peripheral devices 130.
- a user intending to interact with a host computing device using a USB keyboard peripheral device may need to prove their identity through a camera peripheral device connected to the host computing device.
- the camera peripheral device may capture the user's image and share it with the host computing device the user intends to interact with using the USB keyboard peripheral device.
- a different host computing device such as a mobile device and its integrated camera peripheral device or fingerprint scan sensor peripheral device, may be used to capture user identity data and share it with the host computing device the user intends to interact with.
- a detailed description of host computing devices 120 is presented in connection with Fig. 3 and its corresponding description below.
- Peripheral devices 130 may only communicate with trusted host computing devices, which may be a subset of host computing devices 120. Peripheral devices 130 may manage the trusted devices list in its memory (e.g., memory 240 as shown in Fig. 2 below). In some embodiments, CIMR 110 and host computing devices 120 may manage a separate trusted devices list for each of the peripheral devices 130. Host computing devices 120 may populate such lists through a registration process. In some embodiments, peripheral devices 130 and host computing devices 120 may conduct an additional validation step to maintain the trusted devices list. A detailed description of registration and validation of devices is provided in connection with Figs. 5 and 6 and their descriptions below.
- network 140 may include an on-premises (e.g., LAN) network, while in other embodiments, network 140 may include a virtualized (e.g., AWS TM , Azure TM , IBM Cloud TM , etc.) network. Further, network 140 may in some embodiments be a hybrid on-premises and virtualized network, including components of both types of network architecture.
- on-premises e.g., LAN
- virtualized e.g., AWS TM , Azure TM , IBM Cloud TM , etc.
- network 140 may in some embodiments be a hybrid on-premises and virtualized network, including components of both types of network architecture.
- Processing unit 251 may be a specialized crypto-processor chip used to manage cryptographic keys stored in secure enclave 250. Processing unit 251 may generate cryptographic keys to encrypt data in a communication session initialized by peripheral device 230. In some embodiments, processing unit 251 may be used to encrypt data generated or captured by peripheral device 230 using the cryptographic keys stored in key store 252. A detailed description of the method for initializing a secure communication session is provided in connection with Fig. 13 and its description below.
- Memory 240 may include both data to be shared with other devices and metadata used to manage data communication with the other devices (e.g., peripheral devices 130, host computing devices 120). Memory 240 may utilize hash map 241 and session keys 242 to manage the data communication with other devices (e.g., host computing devices 120). Peripheral device 230 may use hash map 241 to manage the trusted devices list of host computing devices subset to communicate with. The hash map 241 may be accessed by TPM 253 of secure enclave 250 to determine the list of trusted devices. Hash map 241 may include a hash of the encryption keys present in key store 252 of secure enclave 250. In some embodiments, hash map 241 may also include a hash of keys in session keys 242.
- Fig. 3 is a block diagram of an exemplary computing device 300 used to implement system 100, according to some embodiments of the present disclosure.
- computing device 300 may be a specialized server providing the functionality described herein.
- components of system 100 such as centralized identity management resource 110 or host computing devices 120 of Fig. 1 , may be implemented using the computing device 300 or multiple computing devices 300 operating in parallel.
- the computing device 300 may be a second device providing the functionality described herein or receiving information from a server to provide at least some of the described functionality.
- the computing device 300 may be an additional device or devices that store or provide data consistent with embodiments of the present disclosure.
- computing device 300 may be a virtualized computing device such as a virtual machine, multiple virtual machines, a container instance, or a hypervisor.
- Computing device 300 may include one or more virtual machines or containers and implementing various components of system 100.
- host computing devices 120 and CIMR 110 may be executing on two separate virtual machines running atop computing device 300.
- CPUs 320 may be single or multiple microprocessors, field-programmable gate arrays, or digital signal processors capable of executing sets of instructions stored in a memory (e.g., system memory 321), a cache (e.g., cache 341), or a register (e.g., one of registers 340).
- CPUs 320 may contain one or more registers (e.g., registers 340) for storing various types of data including, inter alia, data, instructions, floating-point values, conditional values, memory addresses for locations in memory (e.g., system memory 321 or graphic memory 326), pointers and counters.
- CPUs 320 may communicate with system memory 321 via a system interface 350, sometimes referred to as a bus.
- GPUs 325 may be any type of specialized circuitry that may manipulate and alter memory (e.g., graphic memory 326) to provide or accelerate images' creation.
- GPUs 325 may have a highly parallel structure optimized for processing large, parallel blocks of graphical data more efficiently than general-purpose CPUs 320.
- a chipset of a special purpose processing unit or a co-processor may include the GPUs 325 functionality.
- computing device 300 may include network interface 318 to interface to a LAN, WAN, MAN, or the Internet through a variety of connections including, but not limited to, standard telephone lines, LAN or WAN links (e.g., 802.21, T1, T3, 56 kb, X.25), broadband connections (e.g., ISDN, Frame Relay, ATM), wireless connections (e.g., those conforming to, among others, the 802.1 1a, 802.11b, 802.11b/g/n, 802.1 lac, Bluetooth, Bluetooth LTE, 3GPP, or WiMax standards), or some combination of any or all of the above.
- standard telephone lines LAN or WAN links
- broadband connections e.g., ISDN, Frame Relay, ATM
- wireless connections e.g., those conforming to, among others, the 802.1 1a, 802.11b, 802.11b/g/n, 802.1 lac, Bluetooth, Bluetooth LTE, 3GPP, or WiMax standards
- host computing device 420 may request system 100 to provide a new copy of cryptographic key pair 431-432 to replace its local copy.
- CIMR 110 (as shown in Fig. 1 ) may help generate the latest version of the cryptographic key pair to replace the existing key pair.
- Host computing device 420 may share a hash of a cryptographic key shared earlier, such as during a registration of peripheral device 230 described in connection with Fig. 5 and its description below.
- Host computing device 420 may generate cryptographic key pair (e.g., first key 431, second key 432) before it or applications running on it need data from peripheral device 230. In some embodiments, host computing device 420 may utilize a previously generated key for requesting data in encrypted format from peripheral device 230. Host computing device 420 may regularly refresh the cryptographic key pairs associated with peripheral devices (e.g., peripheral devices 130). Host computing device 420 may generate and refresh cryptographic key pair 431-432 at regular intervals for security purposes.
- cryptographic key pair e.g., first key 431, second key 432
- host computing device 420 may utilize a previously generated key for requesting data in encrypted format from peripheral device 230.
- Host computing device 420 may regularly refresh the cryptographic key pairs associated with peripheral devices (e.g., peripheral devices 130).
- Host computing device 420 may generate and refresh cryptographic key pair 431-432 at regular intervals for security purposes.
- Host computing device 420 upon receiving session data packet 750, may retrieve session key 741 by decrypting session data packet 750 using first key 431, which pairs with second key 432.
- Host computing device 420 may store session key 741 in memory 770.
- Memory 770 may be a system memory 321 (as shown in Fig. 3 ) or storage 328 implementing a database, such as crypto keys database 150 (as shown in Fig. 1 ).
- host computing device 420 may send an acknowledgment after storing session key 741 in memory 770.
- Host computing device 420 may use session key 741 shared by peripheral device 230 to decrypt future messages from peripheral device 230.
- Session key 741 may be a symmetric key that can be used to encrypt and decrypt a message.
- Fig. 8B is a flow diagram of an exemplary peripheral device 230 registration process using centralized identity management resource (CIMR) 110, according to some embodiments of the present disclosure.
- the flow diagram in Fig. 8B is an alternative to Fig. 8A , where CIMR 110 manages secure communication setup.
- a host computing device e.g., desktop device 823 intending to communicate with peripheral device 230 may convey the intention to CIMR 110.
- Desktop device 823 may convey the intention by sharing data packet 890, including identity 891 of peripheral device 230 with whom it intends to communicate with.
- Identity 891 may include a hash of private key 851 or public key 852 or some other identification of peripheral device 230 shared in step 1.
- CIMR 110 may validate desktop device 823 before forwarding the communication intent to peripheral device 230.
- CIMR 110 may validate desktop device 823 by checking its network connectivity.
- CIMR 110 may validate desktop device 823 by evaluating its capabilities, such as computational power, storage capacity, hardware, software tools availability, and speed of network connection.
- Desktop device 823 may be validated based on a security policy installed in CIMR 110.
- Security policy may include a set of requirements to be satisfied by desktop device 823, such as a version of an operating system running on desktop device 823 or a version of an application in need of data provided by peripheral device 230.
- desktop device 823 may need to provide authentication information to CIMR 110.
- the authentication information may determine if desktop device 823 is a valid device authorized to have a secure communication channel with peripheral device 230.
- the authentication information may validate if the user of desktop device 823 and another host computing device connected to peripheral device 230 is the same user. For example, a host computing device user may be validated by requesting the same user to provide credentials on a mobile device (second host computing device) using a fingerprint scan sensor peripheral device.
- Fig. 9 is a flow diagram of an exemplary communication session between desktop device 823 and peripheral device 230 managed by centralized identity management resource (CIMR) 110, according to some embodiments of the present disclosure.
- CIMR centralized identity management resource
- C ⁇ VIR 110 may send data packet 950 to desktop device 823 upon receiving updated connection status from the peripheral device (e.g., peripheral device 230).
- the connection status update may include peripheral device connection to desktop device 823 or peripheral device 230 or connected to the Internet (e.g., network 140).
- C ⁇ VIR 110 may send cryptographic key pair 851-852 upon receiving a request from desktop device 823 to initiate a communication session with peripheral device 230.
- Peripheral device 230 upon receiving the data packet 960, may attempt the parse challenge message by decrypting the challenge 961.
- Peripheral device 230 may identify the encryption key needed to decrypt message 961 using hash 962 of public key 852.
- Peripheral device 230 may look-up hash 962 in hash map 241 (as shown in Fig. 2 ) to identify the decryption key (e.g., public key 852) needed to decrypt challenge 961.
- Peripheral device 230 may retrieve public key 852 from key store 252 (as shown in Fig. 2 ) to help decrypt message 961.
- Peripheral device 230 may be an integrated internal component of the host computing device (e.g., desktop device 823) and may automatically identify the encryption key needed to decrypt challenge 961.
- the challenge may include successful decryption and retrieval of a challenge message in challenge 961.
- the challenge may also include executing multiple computation steps listed in the challenge message.
- the peripheral device 230 may send an error message upon failure to decrypt challenge 961, or the decrypted challenge message is garbled.
- Challenge 961 may also include a checksum to validate the decrypted message.
- Peripheral device 230 may need to validate the decrypted challenge using the checksum before parsing the challenge message.
- Peripheral device 230 upon successful decryption and validation of challenge 961 may respond to the host computing device (e.g., desktop device 823), as described in step 3 below.
- Desktop device 823 upon receiving the data packet 980, may store the symmetric key 982 in memory 770.
- Desktop device 823 may confirm the success of encrypted challenge 961 before storing symmetric key 982.
- Desktop device 823 confirms the success of encrypted challenge 961 by comparing the received decrypted message 981 with the stored challenge message.
- desktop device 823 may need to decrypt message 981 using symmetric key 982 before confirming the success of encrypted challenge 961. If desktop device 823 fails to decrypt message 981, it may send a new session initiation request to peripheral device 230.
- desktop device 823 may terminate the communication session upon failure to access message 981 or if message 981 includes an error code.
- a host computing device may confirm the initiated communication session and send a request for data to peripheral device 230.
- Desktop device 823 may confirm an initiated communication session by sending data request packet 990 to peripheral device 230.
- Peripheral device 230 upon receiving data request packet 990 may begin capturing data (as described in Fig. 4 above) and sending captured data encrypted using the session key (e.g., symmetric key 982), as described in Fig. 8 above.
- desktop device 823 may send an acknowledgment message upon successful receipt of each data packet (e.g., data packet 980) from peripheral device 230.
- Successful receipt of a data packet may include successful decryption of the data packet contents using symmetric key 982.
- Desktop device 823 may also send commands as part of the acknowledgment message. For example, desktop device 823 may send an acknowledgment message that includes a stop command to stop the communication session.
- the communication session between desktop device 823 and peripheral device 230 may persist until desktop device 823 sends a stop request.
- a communication session between a host computing device (e.g., desktop device 823) and peripheral device (e.g., peripheral device 230) may timeout for lack of data requests from desktop device 823 or delays in sending data from peripheral device 230.
- Desktop device 823 communication session initiation request may include the communication session termination condition.
- the termination condition may be part of challenge 961 and could include a trigger event to terminate the communication session.
- the trigger event may include the number of data requests, amount of data, and time for communication.
- the lack of an acknowledgment message may result in timeout and termination of the communication session.
- Desktop device 823 and peripheral device 230 may terminate the communication session based on certain criteria, such as a number of failed data requests.
- the criteria for terminating a communication session may be configurable by user 460.
- the configurable criteria may be supplied with challenge 961 or separately in data packet 960.
- desktop device 823 and peripheral device 230 may access termination condition criteria or trigger event from CIMR 110.
- Desktop device 823 may revise the termination condition during a communication session.
- Desktop device 823 upon receiving the required data or meeting the requirements, may send a communication termination command to peripheral device 230.
- Fig. 10 is a flowchart depicting operations of an exemplary method 1000 for secure communication channel setup between host computing device 420 and peripheral devices 130, according to some embodiments of the present disclosure.
- the steps of method 1000 may be performed by system 100 for purposes of illustration. It will be appreciated that the illustrated method 1000 may be altered to modify the order of steps and to include additional steps.
- system 100 may begin secure communication channel setup by first validating host computing device 420.
- System 100 may validate host computing device 420 by checking its network connectivity.
- system 100 may validate host computing device 420 by evaluating host computing device 420's capabilities, such as computational power, storage capacity, hardware, software tools availability, and network connection speed, among others.
- System 100 may validate host computing device 420 based on a security policy in some embodiments.
- the security policy may include a set of requirements to be satisfied by host computing device 420, such as requiring a specific version of the operating system running on host computing device 420 or a particular version of an application requesting data from peripheral device 230.
- host computing device 420 may need to provide authentication information to system 100.
- the authentication information determines if the host computing device 420 is a valid device authorized to have a secure communication channel with a peripheral device (e.g., peripheral device 230).
- the authentication information may validate if the user of host computing device 420 and another host computing device connected to peripheral device 230 are the same.
- system 100 may validate a host computing device's user by requesting the same user to provide credentials on a mobile device (second host computing device) using a fingerprint scan sensor peripheral device.
- an application running on a computer may require two-factor authentication resulting in a mobile device (second host computing device) to request fingerprint or face recognition identification.
- the identification is provided by the mobile device using a peripheral device (touch sensor or camera) connected to the mobile device that registers the peripheral device(s) and requests data from them.
- a peripheral device touch sensor or camera
- system 100 may receive a first key (e.g., first key 431) of a cryptographic key pair (e.g., cryptographic key pair 431-432) from a centralized service (e.g., Centralized Identity Management Resource 110).
- the system 100 upon detecting a request to register peripheral device 230, may trigger C ⁇ VIR 110 to generate and send cryptographic key pair 431-432 to the host computing device 420 over network 140.
- host computing device 420 or peripheral device 230 may generate the cryptographic key pair and distribute it to the other devices.
- Host computing device 420 may generate a cryptographic key pair and get ready to register and securely communicate with peripheral device 230 and others.
- peripheral device 230 may generate a cryptographic key pair as part of the registration process.
- system 100 may receive the first key from crypto keys database 150.
- the crypto keys database 150 may include cryptographic key pairs previously provided by CIMR 110.
- system 100 may replace an existing cryptographic key upon receiving first key 431.
- First key 431 may be a private key (e.g., private key 851) of cryptographic key pair 851-852.
- peripheral device 230 may request CIMR 110 to send first key 431 to host computing device 420 of system 100.
- system 100 may associate the identity of peripheral device 230 with first key 431.
- System 100 may receive the identity of peripheral device 230 received as part of the registration request in step 1010.
- Identity of peripheral device 230 may include peripheral device 230's network IP address, MAC address, or the serial number of peripheral device 230.
- CIMR 110 may provide the identity of peripheral device 230 to system 100.
- System 100 may store the associations between peripheral device 230 and first key 431 internal in memory 770 (as shown in Fig. 7 ) or externally in crypto keys database 150.
- system 100 may store second key 432 of cryptographic key pair in peripheral device 230.
- System 100 may request CIMR 110 to provide second key 432 to send to peripheral device 230.
- System 100 may send second key 432 to peripheral device 230 over network 140.
- Second key 432 may be a public key (e.g., public key 852) of a cryptographic key pair 851-852.
- system 100 may identify a set of host computing devices (including host computing device 420) to register with peripheral device 230. Registration of peripheral device 230 may include a request to load appropriate tools to understand the data transmitted by peripheral decide 230. For example, when attached to a host computing device, a camera peripheral device may result in an appropriate driver loaded in the host computing device 420 to communicate with the camera peripheral device. In some embodiments, system 100 may only select host computing devices validated similar to host computing device 420 in step 1010 above.
- System 100 may identify host computing device 420 from a list of host computing devices that previously communicated with peripheral device 230. In some embodiments, system 100 may identify host computing device 420 based on the additional data received along with the peripheral device 230 registration request. For example, a software application may request system 100 to help verify a user (e.g., user 460) using facial recognition method, causing system 100 to reach out to host computing device (e.g., host computing device 420) owned and/or controllable by the same user. The host computing device may then use an attached camera peripheral device to capture an image to verify the user 460 using face recognition technology.
- a software application may request system 100 to help verify a user (e.g., user 460) using facial recognition method, causing system 100 to reach out to host computing device (e.g., host computing device 420) owned and/or controllable by the same user.
- the host computing device may then use an attached camera peripheral device to capture an image to verify the user 460 using face recognition technology.
- Distribution of the first and second key to host computing device 420 and peripheral device 230 allows for secure communication between them using the first and second cryptographic keys 431-432 to encrypt and decrypt the communicated data.
- host computing device 420 may receive both first and second cryptographic keys 431-432 and then sends the second key 432 to peripheral device 230.
- System 100 upon completion of step 1070, completes (step 1099) executing method 1000.
- system 100 may provide a session key to host computing device 420 for secure communication with peripheral device 230.
- the generated session key may only be valid for a limited time, for example, the current communication session.
- the session key may be limited by the number of messages shared between peripheral device 230 and host computing device 420.
- Session key may be generated by CIMR 110 (as shown in Fig. 1 ) or host computing device 420, or peripheral device 230. Based on the device generating the session key, it may be managed differently and shared with other devices in system 100. A detailed description of the management of session key for secure communication by different components of system 100 is provided in connection with Fig. 6 and its corresponding description above.
- Fig. 11 is a flowchart depicting operations of an exemplary method 1100 for host computing device 420 to register peripheral device 230, according to some embodiments of the present disclosure.
- the steps of method 1100 may be performed by components of system 100 for purposes of illustration. It will be appreciated that the illustrated method 1100 may be altered to modify the order of steps and to include additional steps.
- host computing device 420 may receive a response message from peripheral device 230.
- Host computing device 420 may receive the response over network 140 at a network interface (e.g., network interface 318).
- the response message may indicate the successful receipt of second key 432 by peripheral device 230 sent by host computing device 420 in step 1120.
- the response message may be encrypted using second key 432 and needs to be decrypted by host computing device 420 using first key 431 of cryptographic key pair 431-432.
- host computing device 420 may terminate the registration process if the response message includes an error code. In some embodiments, host computing device 420 may take different actions based on different error codes. If the error code indicates that the second key 432 was corrupted, then host computing device 420 may jump back to step 1120 to resend second key 432 to peripheral device 230.
- step 1140 host computing device 420 may proceed to step 1150.
- step 1150 host computing device 420 may check the response's validity by decrypting the response message using first key 431. Host computing device 420 may consider the response message valid if it can successfully decrypt the response message.
- step 1160 host computing device 420 may validate peripheral device 230.
- Validation of peripheral device 230's identity may include registering peripheral device 230 as a trusted device.
- Registration of peripheral device 230 may include associating first key 431 with an identifier of peripheral device 230.
- the registration process may include checking the registration field in a table with previously prepared associations.
- Peripheral device 230 may send an acknowledgment upon receiving registration message with second key 432 allowing system 100 to use host computing device 420 to communicate securely with peripheral device 230.
- Host computing device 420 upon receiving acknowledgment message may confirm peripheral device 230's registration and label it as a trusted device.
- host computing device 420 may conduct the validation using an encrypted challenge. A detailed description of encrypted challenge based validation is provided in Fig. 14 description below.
- Host computing device 420 may communicate with system 100 about the completed registration process.
- Fig. 12 is a flowchart depicting operations of an exemplary method 1200 for sharing data securely by peripheral device 230, according to some embodiments of the present disclosure.
- the steps of method 1200 may be performed by peripheral device 230 for purposes of illustration. It will be appreciated that the illustrated method 1200 may be altered to modify the order of steps and to include additional steps.
- peripheral device 230 may encrypt available data using second key 432.
- Peripheral device 230 may capture data (e.g., data 440) before encrypting data using second key 432.
- peripheral device 230 may capture data (e.g., data 440) before encrypting data using second key 432.
- peripheral device 230 may
- peripheral device 230 may check if there is a feedback response indicating that host computing device 420 has validated peripheral device 230's validity. Peripheral device 230 may confirm its identity validation to share data with host computing device 420. If the answer to the question in step 1240 is no, i.e., host computing device 420 failed to validate peripheral device 230's identity, then execution of method 1200 may jump to step 1299. Host computing device 420 may validate the identity of peripheral device 230 by successfully identifying the first key (e.g., first key 431) to decrypt and decrypting the encrypted data sent in step 1220.
- first key e.g., first key 431
- peripheral device 230 may access a third cryptographic key (e.g., session key 741). Peripheral device 230 may access the third key by requesting secure enclave 250 to provide the third key. Secure enclave 250 may generate the third key or select a previously generated third key from key store 252. Peripheral device 230's request to access the third key may result in locking the third key for use by peripheral device 230 to communicate with host computing device 420.
- a third cryptographic key e.g., session key 741
- Peripheral device 230 may access the third key by requesting secure enclave 250 to provide the third key. Secure enclave 250 may generate the third key or select a previously generated third key from key store 252. Peripheral device 230's request to access the third key may result in locking the third key for use by peripheral device 230 to communicate with host computing device 420.
- peripheral device 230 may encrypt the third key using second key 432.
- Main processing unit 260 of peripheral device 230 may encrypt the third using second key 432.
- Main processing unit 260 may temporarily store the encrypted third key in memory 240 and reuse it for future communication sessions.
- Fig. 13 is a flowchart depicting operations of an exemplary method 1300 for initiating a secure communication session (e.g., communication session 710) by registered peripheral device 230, according to some embodiments of the present disclosure.
- the steps of method 1300 may be performed by peripheral device 230 for purposes of illustration. It will be appreciated that the illustrated method 1300 may be altered to modify the order of steps and to include additional steps.
- peripheral device 230 may receive payload (e.g., session data packet 960) that includes encrypted challenge message (e.g., challenge 961) from a host computing device (host computing device 420).
- Peripheral device 230 may consider receipt of a challenge message as a request from host computing device 420 to initiate a secure communication using an encryption mechanism.
- the receipt of the challenge message may be considered a request to restart a previously paused secure communication between peripheral device 230 and host computing device 420.
- the received payload may also include a hash to a second key (e.g., second key 432).
- the received response may include a decrypted challenge message of challenge 961 sent in step 1410.
- the decrypted challenge may indicate the success of the encrypted challenge.
- the symmetric key's receipt may be considered an indication of a successful encrypted challenge.
- host computing device 420 may store the decrypted symmetric key 982 from step 1445 in a crypto keys database 150.
- Host computing device 420 may associate an identifier of peripheral device 230 with symmetric key 982 before storing the symmetric key 982 in crypto keys database 150.
- An identifier of peripheral device 230 may be a unique ID such as a network IP address, a MAC address, or the device's serial number.
- desktop device 823 may use the second key (e.g., public key 852) shared with peripheral device 230 as its identifier.
- Symmetric key 982 may be a temporary key that expires at the end of the requested communication session and is stored in memory (e.g., system memory 321).
- desktop device 823 may send a session data transmission request to peripheral device 230.
- Desktop device 823 may send an acknowledgment of symmetric key 982's receipt in place of a specialized session data transmission request, resulting in the transmission of session data by peripheral device 230.
- Desktop device 823 may encrypt the session transmission request using symmetric key 982.
- desktop device 823 may stop the session.
- Desktop device 823 may stop the communication session by deleting the symmetric key 982.
- Desktop device 823 may additionally share the termination of session with peripheral device 230 using a command message in step 1490.
- desktop device 823 may send an encrypted command message to continue receiving session data from peripheral device 230.
- the command message may be part of the acknowledgment message sent in step 1480.
- the command message may include error codes related to the received data in step 1470.
- the error code may indicate a request to retransmit data from step 1470.
- the command message may indicate a request for termination of the communication session or include additional information for the future transmitted data.
- the additional information may include an update to the interval or amount of data or pause the data requested by the desktop device 823.
- System 100 upon completion of step 1490, completes (step 1499) executing method 1400.
- a machine or computer readable storage medium may cause a machine to perform the functions or operations described and includes any mechanism that stores information in a form accessible by a machine (e.g., computing device, electronic system, and the like), such as recordable/non-recordable media (e.g., read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, and the like).
- a communication interface includes any mechanism that interfaces with any of a hardwired, wireless, optical, or similar, medium to communicate with another device, such as a memory bus interface, a processor bus interface, an Internet connection, a disk controller, and the like.
- the communication interface may be configured by providing configuration parameters and/or sending signals to prepare the communication interface to provide a data signal describing the software content.
- the communication interface may be accessed via one or more commands or signals sent to the communication interface.
- Embodiments of the present disclosure may be implemented with computer executable instructions.
- the computer-executable instructions may be organized into one or more computer-executable components or modules.
- Aspects of the disclosure may be implemented with any number and organization of such components or modules. For example, aspects of the disclosure are not limited to the specific computer-executable instructions or the specific components or modules illustrated in the figures and described herein. Other embodiments may include different computer-executable instructions or components having more or less functionality than illustrated and described herein.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biodiversity & Conservation Biology (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Computer And Data Communications (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Description
- This disclosure relates to secure communications between host and peripheral devices. In some embodiments, for example, this disclosure relates to systems and methods for encrypted communications between identifiable host and peripheral devices in order to avoid tampering of data communications between host and peripheral devices by malicious actors.
- Applications executing on computing devices may rely on several peripheral devices to capture the state of the external environment. Such captured state data may include data from a fingerprint scan, facial recognition scan, and various other use cases, such as two-factor authentication or authorization used by applications executing on the computing devices. Computing devices receiving such captured data may not check the source's authenticity, resulting in potentially malicious actors presenting incorrect data.
- The authenticity of a peripheral device source may be disguised by emulating a peripheral device in software. Further, the peripheral device's integrity can be compromised by physically tampering with the peripheral device to send incorrect data to computing devices.
- Moreover, even if the peripheral device is not tampered with to provide incorrect data, the correct data transferred by a peripheral device may be intercepted by a third-party and used for inappropriate purposes. A secure communication channel is needed to send the data without any intervention by malicious actors.
- Furthermore, even an authenticated peripheral device cannot guarantee the correctness of transferred data. An intruder may intercept and manipulate a data transmission to send incorrect data to the computing device and the applications executing on it. Such incorrect data may result in misbehavior of applications using the data as input and may further impact other data present on the computing device.
- However, the interception of data from a peripheral device may be made secure by allowing a computing device to connect to only peripheral devices in proximity or integrated into the computing device. While such a restriction of communications to specific peripheral devices may solve the problem of the peripheral device source's authenticity, the source itself may be physically tampered with and replaced with the intruder's own hardware or software to intercept and manipulate data transmissions.
- Additionally, a computing device may rely on multiple peripheral devices simultaneously for capturing the state data. For example, macOS-based computers authenticate users of devices by sending identity confirmation requests to multiple Apple™ devices across the Internet to capture user confirmation, making it difficult to control the data sources.
- Thus, there are needs for technological solutions to manage peripheral device source authentication and the content shared by the peripheral device source. Such solutions would advantageously help prevent malicious actors from emulating the peripheral devices or intercepting the peripheral devices' data. Furthermore, there are technological needs to authenticate the integrity of peripheral devices and secure the communications between the peripheral devices and computing devices. Further technical improvements are described in the example embodiments below.
-
US 2014/0188732 A1 discloses employing a secure provisioning manifest used by a computer to authorize secure communications with peripherals attached to the computer. -
US 2011/0246756 A1 relates to authenticating device identity and functionality in peripheral devices using private keys embedded in the peripheral devices. -
US 2019/0281449 A1 discloses a method that includes transmitting segments of a security certificate on a wireless advertising channel of a peripheral device, where at least one of the segments of the security certificate identifies an authentication server, participating in a public key exchange between the peripheral device and a host device by transmitting a signed public key of the peripheral device, where the signed public key is signed in the security certificate, and transmitting one or more encrypted messages from the peripheral device to the host device via a first secure connection established based on the public key. - The claimed invention is defied by the accompanying independent claims.
- A computer-implemented method for managing cryptographic keys needed for peripheral devices to securely communicate with host computing devices is disclosed. The method comprises: receiving, at a centralized identity management resource, a first key that is part of a cryptographic key pair comprising the first key and a second key, wherein the second key is stored at a peripheral device for use by the peripheral device in encrypting data; identifying, by the centralized identity management resource, a first host computing device that is permitted to engage in secure communications with the peripheral device; and making available the first key from the centralized identity management resource to the first host computing device to enable the first host computing device to decrypt the encrypted data.
- The method may comprise: associating the first key with an identity of the peripheral device.
- The method may comprise: validating the first host computing device before making available the first key to the first host computing device.
- The validating may include one or more of: authenticating the first host computing device or determining that the first host computing device is actively connected to a network; and/or wherein the validating is performed according to a security policy.
- The first key may be received at the centralized identity management resource as part of a registration process for the peripheral device.
- The registration process may include identifying a plurality of host computing devices to which the first key may be made available.
- The method may comprise: making available the first key from the centralized identity management resource to a plurality of host computing devices to enable each of the plurality of host computing devices to decrypt the encrypted data.
- The making available the first key from the centralized identity management resource to the plurality of host computing devices may be performed according to a security policy.
- Also disclosed is a computer-implemented method for securely communicating between host computing devices and peripheral devices, the method comprising: sending, from a first host computing device to a centralized identity management resource, a prompt indicating that the first host computing device seeks to engage in secure communications with a peripheral device; participating, by the first host computing device, in a validation process with the centralized identity management resource; obtaining by the first host computing device, conditional on a successful result of the validation process, access to a first key that is part of a cryptographic key pair comprising the first key and a second key, wherein the second key is stored at the peripheral device for use by the peripheral device in encrypting data; receiving, by the first host computing device, the encrypted data from the peripheral device; and decrypting, by the first host computing device using the first key, the encrypted data.
- Obtaining access to the first key may include one of: receiving the first key from the centralized identity management resource, receiving the first key from a second host computing device to which the first key was stored in a distributed manner, or retrieving the first key from a secure enclave environment on the first host computing device.
- The method may comprise: participating, by the first host computing device, in a synchronization process with the centralized identity management resource, wherein the centralized identity management resource provides the first host computing device with a replacement key that replaces the first key.
- The synchronization process may include multiple host computing devices, including the first host computing device, receiving the replacement key.
- The method may comprise, as part of the validation process, one or more of: indicating to the centralized identity management resource a version of software on the first host computing device; indicating to the centralized identity management resource a network connection status; or providing to the centralized identity management resource authentication information.
- The validation process may be performed according to a policy implemented at the centralized identity management resource.
- Also disclosed is computer-readable storage medium storing instructions which, when executed by at least one processor of a computing device, cause the computing device to perform any of the methods described in this disclosure.
- Certain embodiments of the present disclosure relate to a peripheral device that is configured for communications with a host computing device. The peripheral device can include at least one processor configured to execute instructions to cause the peripheral device to perform operations to participate in a validation process with the host computing device. The operations can include receiving, from the host computing device, a second key that is part of a cryptographic key pair comprising a first key and the second key; encrypting, using the second key and as part of the validation process, data at the peripheral device; and sending the encrypted data to the host computing device; wherein the host computing device validates an identity of the peripheral device based on a decryption, using the first key, of the encrypted data.
- According to some disclosed embodiments, the operations can further include participating in secure communications between the host computing device and the peripheral device conditional on a successful result of the validating.
- According to some disclosed embodiments, the operations can further include participating in secure communications between a group of host computing devices and the peripheral device conditional on a successful result of the validating.
- According to some disclosed embodiments, the operations can further include participating in a secure session between the host computing device and the peripheral device conditional on a successful result of the validating.
- According to some disclosed embodiments, the operations can further include participating in secure sessions between a group of host computing devices and the peripheral device conditional on a successful result of the validating.
- According to some disclosed embodiments, the operations can further include accessing a third key at the peripheral device, encrypting the third key using the second key, and sending the encrypted third key to the host computing device, wherein the host computing device is configured to decrypt the encrypted third key with the first key, yielding the third key, and to encrypt session traffic to the peripheral device using the third key.
- According to some disclosed embodiments, session traffic from the peripheral device to the host computing device is encrypted by the peripheral device using the third key.
- According to some disclosed embodiments, the validating is performed on a per-connection basis each time the peripheral device is connected to the host computing device.
- According to some disclosed embodiments, the peripheral device stores the second key in a secure memory environment of the peripheral device comprising a memory and a processor, both of which are separate from, and operate independently from, a main memory and a main processor of the peripheral device.
- According to some disclosed embodiments, the peripheral device is at least one of: a Universal Serial Bus device or a High-Definition Multimedia Interface device.
- According to some disclosed embodiments, the operations can further include sending to the host computing device a success message that was generated conditional on the peripheral device having successfully received the second key.
- According to some disclosed embodiments, the peripheral device stores multiple different keys of a same type as the second key, the multiple different keys enabling the peripheral device to be validated by a plurality of corresponding different host computing devices.
- According to some disclosed embodiments, the data associated with the second key is a hash of the second key.
- Certain embodiments of the present disclosure relate to a computer implemented method for validating potentially malicious or unauthorized peripheral devices. The method can include identifying, at a host computing device, a peripheral device; accessing, at the host computing device, a cryptographic key pair comprising a first key and a second key; storing, by the host computing device at a memory environment associated with the host computing device, the first key and data associated with the second key; providing the second key to the peripheral device, wherein the peripheral device stores the second key in a memory environment of the peripheral device; and validating, at the host computing device, an identity of the peripheral device based on a decryption, using the first key, of data that was encrypted by the peripheral device using the second key.
- According to some disclosed embodiments, the method can further include sending, from the host computing device, an encrypted challenge to the peripheral device, and receiving, from the peripheral device, a response to the encrypted challenge, wherein the peripheral device decrypts the encrypted challenge using the second key.
- According to some disclosed embodiments, the method can further include determining, at the host computing device, whether the response to the encrypted challenge is successful, and performing at least one of the following operations, conditional on the determination of whether the response to the encrypted challenge is successful: validating the peripheral device as a trusted device for connection with the host computing device, validating the peripheral device as a trusted device for a current session with the host computing device, allowing initialization of a session between the host computing device and the peripheral device, allowing session traffic to be exchanged between the host computing device and the peripheral device, denying initiation of a session between the host computing device and the peripheral device, or terminating a session between the host computing device and the peripheral device.
- According to some disclosed embodiments, the method can further include initiating, conditional on the validation of the message being successful, a session between the peripheral device and the host computing device.
- According to some disclosed embodiments, the method can further include validating the peripheral device conditional on the validation of the message being successful.
- According to some disclosed embodiments, the method can further include accessing, by the host computing device, a new cryptographic key pair to replace the cryptographic key pair, the new cryptographic key pair comprising a new first key and a new second key.
- According to some disclosed embodiments, the method can further include storing, by the host computing device, the new first key and data associated with the new second key, providing the new second key to the peripheral device, wherein the peripheral device is configured to store the new second key in the secure memory environment, receiving, at the host computing device, a new message from the peripheral device, validating, at the host computing device, the new message by attempting to decrypt the new message using the new first key, receiving a new encrypted third key from the peripheral device, the new third key having been encrypted by the peripheral device using the new second key, and encrypting, at the host computing device, new session traffic from the host computing device to the peripheral device using a decrypted version of the new encrypted third key.
- Certain embodiments of the present disclosure relate to a non-transitory computer readable medium including instructions that are executable by at least one processor to perform operations for managing cryptographic keys needed for peripheral devices to securely communicate with host computing devices. The operations can include receiving, at a centralized identity management resource, a first key that is part of a cryptographic key pair comprising the first key and a second key; wherein the second key is stored at a peripheral device for use by the peripheral device in encrypting data; identifying a first host computing device that is permitted to engage in secure communications with the peripheral device; and making available the first key from the centralized identity management resource to the first host computing device to enable the first host computing device to decrypt the encrypted data.
- According to some disclosed embodiments, the operations can further include associating the first key with an identity for the peripheral device.
- According to some disclosed embodiments, the operations can further include validating the first host computing device before making available the first key.
- According to some disclosed embodiments, the validating can further include authenticating the first host computing device.
- According to some disclosed embodiments, the validating can further include determining that the first host computing device is actively connected to a network.
- According to some disclosed embodiments, the first key is received at the centralized identity management resource as part of a registration process for the peripheral device.
- According to some disclosed embodiments, the registration process can further include identifying a plurality of host computing devices to which the first key may be made available.
- According to some disclosed embodiments, the operations can further include making available the first key from the centralized identity management resource to a plurality of host computing devices to enable the plurality of host computing devices to each decrypt the encrypted data.
- According to some disclosed embodiments, making available the first key from the centralized identity management resource to the plurality of host computing devices is performed according to a security policy.
- Certain embodiments of the present disclosure relate to a computer implemented method for securely communicating between host computing devices and peripheral devices. The method can include sending, from a first host computing device to a centralized identity management resource, a prompt indicating that the first host computing device seeks to engage in secure communications with a peripheral device; participating in a validation process with the centralized identity management resource; obtaining, conditional on a successful result of the validation process, access to a first key that is part of a cryptographic key pair comprising the first key and a second key; wherein the second key is stored at the peripheral device for use by the peripheral device in encrypting data; receiving the encrypted data from the peripheral device; and decrypting, using the first key, the encrypted data.
- According to some disclosed embodiments, obtaining access to the first key can further include receiving the first key from the centralized identity management resource.
- According to some disclosed embodiments, obtaining access to the first key can further include receiving the first key from a second host computing device to which the first key was stored in a distributed manner.
- According to some disclosed embodiments, obtaining access to the first key can further include retrieving the first key from a secure enclave environment on the first host computing device.
- According to some disclosed embodiments, securely communicating between host computing devices and peripheral devices can further include participating in a synchronization process with the centralized identity management resource, wherein the centralized identity management resource provides the first host computing device with a replacement key that replaces the first key.
- According to some disclosed embodiments, the synchronization process can further include multiple host computing devices, including the first host computing device, receiving the replacement key.
- According to some disclosed embodiments, the method can further include as part of the validation process, indicating to the centralized identity management resource a version of software on the first host computing device.
- According to some disclosed embodiments, the method can further include as part of the validation process, providing to the centralized identity management resource authentication information.
- According to some disclosed embodiments, the validation process is performed according to a policy implemented at the centralized identity management resource.
- The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate several embodiments and, together with the description, serve to explain the disclosed principles. In the drawings:
-
Fig. 1 is a block diagram showing various exemplary components of a system for secure communication between host computing devices and peripheral devices, according to some embodiments of the present disclosure. -
Fig. 2 shows an exemplary peripheral device, according to some embodiments of the present disclosure. -
Fig. 3 is a block diagram of an exemplary computing device used to implement system ofFig. 1 , according to some embodiments of the present disclosure. -
Fig. 4 shows an exemplary secure data communication channel set up for communication between peripheral devices and host computing devices, according to embodiments of current disclosure. -
Fig. 5 shows an exemplary registration process of a peripheral device with a host computing device, according to some embodiments of the present disclosure. -
Fig. 6 shows an exemplary validation process of a peripheral device and a host computing device, according to some embodiments of the present disclosure. -
Fig. 7 shows an exemplary data communication session between a peripheral device and a host computing device, according to embodiments of the present disclosure. -
Fig. 8A is a flow diagram of an exemplary peripheral device registration process using a centralized identity management resource, according to some embodiments of the present disclosure. -
Fig. 8B is a flow diagram of an exemplary peripheral device registration using a centralized identity management resource, according to some embodiments of the present disclosure. -
Fig. 9 is a flow diagram of an exemplary communication session between a desktop device and a peripheral device managed by a centralized identity management resource, according to some embodiments of the present disclosure. -
Fig. 10 is a flowchart depicting operations of an exemplary method for secure communication channel setup between a host computing device and a peripheral device, according to some embodiments of the present disclosure. -
Fig. 11 is a flowchart depicting operations of an exemplary method for a host computing device to register a peripheral device, according to some embodiments of the present disclosure. -
Fig. 12 is a flowchart depicting operations of an exemplary method for sharing data securely by a peripheral device, according to some embodiments of the present disclosure. -
Fig. 13 is a flowchart depicting operations of an exemplary method for initiating a secure communication session by a registered peripheral device, according to some embodiments of the present disclosure. -
Fig. 14 is a flowchart depicting operations of an exemplary method for a secure communication session in a system, according to some embodiments of the present disclosure. - In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the disclosed example embodiments. However, it will be understood by those skilled in the art that the principles of the example embodiments may be practiced without every specific detail. Well-known methods, procedures, and components have not been described in detail so as not to obscure the principles of the example embodiments. Unless explicitly stated, the example methods and processes described herein are neither constrained to a particular order or sequence nor constrained to a particular system configuration. Additionally, some of the described embodiments or elements thereof may occur or be performed simultaneously, at the same point in time, or concurrently. Reference will now be made in detail to the disclosed embodiments, examples of which are illustrated in the accompanying drawings. Unless explicitly stated, sending and receiving as used herein are understood to have broad meanings, including sending or receiving in response to a specific request or without such a specific request. These terms, thus, cover both active forms, and passive forms, of sending and receiving.
- Systems and methods consistent with the present disclosure are directed to secure communication with peripheral devices using cryptographic encryption keys. In some embodiments, the disclosed techniques include the management of communication sessions between multiple hosts and peripheral devices using a centralized management service. As described below, these secure communication management techniques with peripheral devices result in various technological improvements in the security and privacy of the data shared by users using peripheral devices connected to host computing devices.
-
Fig. 1 is a block diagram showing various exemplary components of asystem 100 for secure communication betweenhost computing devices 120 andperipheral devices 130, respectively, according to some embodiments of the present disclosure.System 100 components may also comprise a centralized identity management resource (CIMR) 110 to manage identities ofhost computing devices 120 andperipheral devices 130 involved in secure communication. TheCIMR 110 may includeidentity management module 111 andidentity database 112. In various embodiments, theidentity database 112 may take several different forms. For example,identity database 112 may be an SQL database or NoSQL database, such as those developed by MICROSOFT™, REDIS, ORACLE™, CASSANDRA, MYSQL, various other types of databases, data returned by calling a web service, data returned by calling a computational function, sensor data, IoT devices, or various other data sources.Identity database 112 may store data that is used or generated during the operation of applications, such asidentity management module 111. For example, ifidentity management module 111 is configured to generate encryption keys specific to certain devices, such asperipheral devices 130 andhost computing devices 120 communicating with each other,identity database 112 may store the encryption keys specific to devices as identities of the devices. Similarly, ifCIMR 110 is configured to provide a previously identified device's identity,identity management module 111 may retrieve previously generated encryption keys associated with a device and other related data stored inidentity database 112. In some embodiments,identity database 112 may be fed data from an external source, or the external source (e.g., server, database, sensors, IoT devices, etc.) may be a replacement. - As illustrated in
Fig. 1 ,host computing devices 120 andperipheral devices 130 may connect directly and interact withCIMR 110 overnetwork 140.Host computing devices 120 may be a processor or a complete computing device, such as laptops, desktop computers, mobile devices, smart home appliances, IoT devices, etc.Host computing devices 120 may be used to interact withperipheral devices 130 or vice versa. A user may interact withhost computing devices 120 directly or indirectly to retrieve or receive data fromperipheral devices 130. For example, a user may indirectly interact with a first host computing device through a second host computing device to access data of a peripheral device connected to the first host computing device. A user's interaction withhost computing devices 120 may also include interaction using a peripheral device ofperipheral devices 130. For example, a user intending to interact with a host computing device using a USB keyboard peripheral device may need to prove their identity through a camera peripheral device connected to the host computing device. The camera peripheral device may capture the user's image and share it with the host computing device the user intends to interact with using the USB keyboard peripheral device. In another scenario, a different host computing device, such as a mobile device and its integrated camera peripheral device or fingerprint scan sensor peripheral device, may be used to capture user identity data and share it with the host computing device the user intends to interact with. A detailed description ofhost computing devices 120 is presented in connection withFig. 3 and its corresponding description below. -
Peripheral devices 130 may include devices externally connected to hostcomputing devices 120 and provide information for applications running onhost computing devices 120. In some embodiments,peripheral devices 130 may be internal components ofhost computing devices 120.Peripheral devices 130 may include USB connector-based devices connected externally tohost computing devices 120. In some embodiments, theperipheral devices 130 may use different connectors such as USB-A, USB-C, Firewire, IEEE-1394, HDMI, or other serial or parallel bus connector technologies.Peripheral devices 130 may be integrated intohost computing devices 120, for example, an integrated camera or fingerprint scan sensor of a laptop computer or mobile phone.Peripheral devices 130 integrated intohost computing devices 120 may still be connected using a USB connector or other serial bus connectors listed above. A detailed description of the internal components of peripheral devices is provided in connection withFig. 2 and its corresponding description below. - A user may securely communicate with
host computing devices 120 usingperipheral devices 130.Peripheral devices 130 may also automatically communicate securely withhost computing devices 120 upon receiving a communication request.Host computing devices 120 may need to set up a secure communication channel forperipheral devices 130 to transmit data to hostcomputing devices 120. In some embodiments,peripheral devices 130 may requestCIMR 110 to set up a secure communication channel to transmit data to hostcomputing devices 120.Peripheral devices 130 may coordinate with each other when communicating withhost computing devices 120. For example, camera and fingerprint scan sensor peripheral devices of a mobile phone (e.g., a host computing device) may coordinate to deactivate themselves when the other peripheral device has securely transmitted user verification data to the mobile phone to unlock the device.Peripheral devices 130 coordinating to communicate withhost computing devices 120 may in some share a common communication channel. A detailed description of setting up a secure communication channel is provided in connection withFig. 4 and its description below. -
Peripheral devices 130 may, for example, continuously stream communication data (e.g., session data, file data, etc.) tohost computing devices 120. In some embodiments,host computing devices 120 may manage the time and amount of communication data using communication commands. In some embodiments,CIMR 110 may manage the communication ofperipheral devices 130 withhost computing devices 120. In some embodiments,CIMR 110 may also review the data transmitted byperipheral devices 130 before sending data to hostcomputing devices 120.CIMR 110 may record the data transmitted byperipheral devices 130 tohost computing devices 120 and may utilize the recorded data for generating usage analytics. -
Peripheral devices 130 may communicate withhost computing devices 120 when an application running onhost computing devices 120 needs certain information. In some embodiments,peripheral devices 130 may automatically communicate withhost computing devices 120. For example, an application executing on a host computing device ofhost computing devices 120 that needs recognition of a person may cause a camera peripheral device integrated into the host computing device, or connected externally, to automatically turn on and capture the person's image. In some embodiments,host computing devices 120 may request data fromperipheral devices 130 independent of applications running onhost computing devices 120.Host computing devices 120 may request data fromperipheral device 230 for a set period or stream continuously until a set trigger event.System 100 may in some situations need to maintain a communication session withperipheral devices 130 andhost computing devices 120 to communicate. A detailed description of managing a communication session is provided in connection withFigs. 7 and9 and their descriptions below. -
Peripheral devices 130 may only communicate with trusted host computing devices, which may be a subset ofhost computing devices 120.Peripheral devices 130 may manage the trusted devices list in its memory (e.g.,memory 240 as shown inFig. 2 below). In some embodiments,CIMR 110 andhost computing devices 120 may manage a separate trusted devices list for each of theperipheral devices 130.Host computing devices 120 may populate such lists through a registration process. In some embodiments,peripheral devices 130 andhost computing devices 120 may conduct an additional validation step to maintain the trusted devices list. A detailed description of registration and validation of devices is provided in connection withFigs. 5 and6 and their descriptions below. -
Host computing devices 120 may include devices for running applications and connecting withperipheral devices 130 and otherhost computing devices 120.Host computing devices 120 may include laptops, desktop computers, smartphones, and computation devices of other forms (e.g., smart home appliances, IoT devices, etc.).Host computing devices 120 may work in tandem to share data received fromperipheral devices 130 in some embodiments.Host computing devices 120 may transmit data requests toperipheral devices 130. In some embodiments, a host computing device ofhost computing devices 120 may broadcast data requests toperipheral devices 130.Host computing devices 120 may directly send their data requests toperipheral devices 130 or indirectly through other host computing devices. For example, a desktop computer (e.g., first host computing device) needing user verification data may send a verification data request to a mobile phone (e.g., second host computing device) operated by the user. -
Host computing devices 120 may send data requests toperipheral device 230 by setting up a secure communication channel. A secure communication channel setup may include exchanging cryptographic keys betweenhost computing devices 120 andperipheral device 230.Host computing devices 120 may access cryptographic keys fromcrypto keys database 150 for setting up a secure communication channel. In some embodiments,CIMR 110 may provide the cryptographic keys for secure communication channel setup.Host computing devices 120 may store cryptographic keys provided byCIMR 110 incrypto keys database 150.Host computing devices 120 may set up a secure communication channel upon detecting a new peripheral device inperipheral devices 130. A new peripheral device may broadcast its presence tohost computing devices 120, triggering secure communication channel setup. In some embodiments,CIMR 110 may forward the presence of a new peripheral device to hostcomputing devices 120. In some embodiments,host computing devices 120 may set up a secure communication channel when an application running on a host computing device requests for data available throughperipheral devices 130. -
Host computing devices 120 may forward data requests from applications toperipheral devices 130 overnetwork 140. The requests for information inidentity database 112 may also optionally be received vianetwork 140.Network 140 may take various forms. For example,network 140 may include or utilize the Internet, a wired Wide Area Network (WAN), a wired Local Area Network (LAN), a wireless WAN (e.g., WiMAX), a wireless LAN (e.g., IEEE 802.11, etc.), a mesh network, a mobile/cellular network, an enterprise or private data network, a storage area network, a virtual private network using a public network, or other types of network communications. In some embodiments,network 140 may include an on-premises (e.g., LAN) network, while in other embodiments,network 140 may include a virtualized (e.g., AWS™, Azure™, IBM Cloud™, etc.) network. Further,network 140 may in some embodiments be a hybrid on-premises and virtualized network, including components of both types of network architecture. -
Fig. 2 shows an exemplaryperipheral device 230 ofperipheral devices 130, according to some embodiments of the present disclosure.Peripheral device 230 may include components such asmemory 240,secure enclave 250, andmain processor unit 260.Peripheral device 230 may usememory 240 to store data and communication requests sent byhost computing devices 120 and other data sources.Memory 240 may be implemented in several ways. For example, in various embodiments,memory 240 may be implemented in Dynamic RAM (DRAM), Static RAM (SRAM), Z-RAM, Advanced-RAM (A-RAM), Synchronous Dynamic RAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Graphics DDR SDRAM (GDDR SDRAM), Flash, or other types of memory. -
Peripheral device 230 may secure metadata required for storing data in a separate location such assecure enclave 250.Secure enclave 250 may contain hardware components, includingprocessing unit 251, to allowsecure enclave 250 to function independently of the rest of theperipheral device 230.Secure enclave 250 may be used to store metadata such as cryptographic keys for secure encrypted communication betweenperipheral device 230 and host computing devices (e.g.,host computing devices 120 ofFig. 1 ).Secure enclave 250 may store the cryptographic keys inkey store 252.Secure enclave 250 may also include Trusted Partner Module (TPM) 253 that helps determine which host computing device can communicate withperipheral device 230. In some embodiments,key store 252 andTPM 253 may be part ofprocessing unit 251.Secure enclave 250 may secure the metadata inkey store 252 by disallowing emulation of aperipheral device 230.Secure enclave 250 disallows emulation by restricting an intruder from copying content and functionality stored insecure enclave 250.Secure enclave 250 may offer additional data security by including a tamper-proof processing unit 251 and/or the wholesecure enclave 250. -
Processing unit 251 may be a specialized crypto-processor chip used to manage cryptographic keys stored insecure enclave 250.Processing unit 251 may generate cryptographic keys to encrypt data in a communication session initialized byperipheral device 230. In some embodiments, processingunit 251 may be used to encrypt data generated or captured byperipheral device 230 using the cryptographic keys stored inkey store 252. A detailed description of the method for initializing a secure communication session is provided in connection withFig. 13 and its description below. -
Key store 252 may include cryptographic keys sent by other devices (e.g., host computing devices 120) to set up a secure communication channel withperipheral device 230.Key store 252 may also include cryptographic keys generated byperipheral device 230 for initializing a secure communication session with host computing devices (e.g., host computing devices 120). Cryptographic keys stored inkey store 252 may include keys to decrypt a message received byperipheral device 230 and encrypt data sent tohost computing devices 120. -
TPM 253 may include software tools to secureperipheral device 230 by limiting commands and data processed by processingunit 251.TPM 253 may reside in theprocessing unit 251 and may be loaded upon accessingsecure enclave 250.Peripheral device 230 may rely onsecure enclave 250 and in turn onTPM 253 to determine when and which data requests can be processed byperipheral device 230.Peripheral device 230 may communicate with only trusted devices that are among a subset ofhost computing devices 120.Peripheral device 230 may utilizeTPM 253 to determine the list of trusted devices in the subset ofhost computing devices 120. -
Main processing unit 260 ofperipheral device 230 may be used for executing any software functions inperipheral device 230. Software functions performed byperipheral device 230, as further discussed below, may include data capturing and data processing functions. For example,main processing unit 260 may be used to encrypt data before sending it to a requesting device, such ashost computing devices 120 or decrypting data received byperipheral device 230. Encryption of data sent tohost computing devices 120 and decryption of data received fromhost computing devices 120 are described in detail in connection withFig. 7 and its description below. -
Main processor unit 260 may be a general processor used to communicate withsecure enclave 250 during a secure communication session betweenperipheral device 230 and host computing device ofhost computing devices 120.Main processor unit 260 may be listed as a trusted source to communicate withsecure enclave 250.Main processor unit 260 may communicate withsecure enclave 250 to retrieve information and store it inmemory 240 before processing and sharing it with a host computing device. -
Memory 240 may include both data to be shared with other devices and metadata used to manage data communication with the other devices (e.g.,peripheral devices 130, host computing devices 120).Memory 240 may utilizehash map 241 andsession keys 242 to manage the data communication with other devices (e.g., host computing devices 120).Peripheral device 230 may usehash map 241 to manage the trusted devices list of host computing devices subset to communicate with. Thehash map 241 may be accessed byTPM 253 ofsecure enclave 250 to determine the list of trusted devices.Hash map 241 may include a hash of the encryption keys present inkey store 252 ofsecure enclave 250. In some embodiments,hash map 241 may also include a hash of keys insession keys 242.Peripheral device 230 may look up keys inhash map 241 to requestsecure enclave 250 to initiate a communication session.Memory 240 may also includesession keys 242 to encrypt data shared with other devices (e.g., host computing devices 120).Secure enclave 250 may generate keys insession keys 242. In some embodiments,session keys 242 may be populated with keys fromkey store 252 when aperipheral device 230 receives a session initiation request.Hash map 241 may include pointers to a memory or file location ofsession keys 242 stored inperipheral device 230. -
Fig. 3 is a block diagram of anexemplary computing device 300 used to implementsystem 100, according to some embodiments of the present disclosure. In some embodiments,computing device 300 may be a specialized server providing the functionality described herein. In some embodiments, components ofsystem 100, such as centralizedidentity management resource 110 orhost computing devices 120 ofFig. 1 , may be implemented using thecomputing device 300 ormultiple computing devices 300 operating in parallel. Further, thecomputing device 300 may be a second device providing the functionality described herein or receiving information from a server to provide at least some of the described functionality. Moreover, thecomputing device 300 may be an additional device or devices that store or provide data consistent with embodiments of the present disclosure. In some embodiments,computing device 300 may be a virtualized computing device such as a virtual machine, multiple virtual machines, a container instance, or a hypervisor.Computing device 300 may include one or more virtual machines or containers and implementing various components ofsystem 100. For example,host computing devices 120 andCIMR 110 may be executing on two separate virtual machines running atopcomputing device 300. -
Computing device 300 may include one or more central processing units (CPUs) 320 and asystem memory 321.Computing device 300 may also include one or more graphics processing units (GPUs) 325 andgraphic memory 326. In some embodiments,computing device 300 may be a headless computing device that does not include GPU(s) 325 orgraphic memory 326. -
CPUs 320 may be single or multiple microprocessors, field-programmable gate arrays, or digital signal processors capable of executing sets of instructions stored in a memory (e.g., system memory 321), a cache (e.g., cache 341), or a register (e.g., one of registers 340).CPUs 320 may contain one or more registers (e.g., registers 340) for storing various types of data including, inter alia, data, instructions, floating-point values, conditional values, memory addresses for locations in memory (e.g.,system memory 321 or graphic memory 326), pointers and counters. CPU registers 340 may include special-purpose registers used to store data associated with executing instructions such as an instruction pointer, an instruction counter, or a memory stack pointer.System memory 321 may include a tangible or a non-transitory computer-readable medium, such as a flexible disk, a hard disk, a compact disk read-only memory (CD-ROM), magneto-optical (MO) drive, digital versatile disk random-access memory (DVD-RAM), a solid-state disk (SSD), a flash drive or flash memory, processor cache, memory register, or a semiconductor memory.System memory 321 may be one or more memory chips capable of storing data and allowing direct access byCPUs 320.System memory 321 may be any type of random-access memory (RAM) or other available memory chip capable of operating as described herein. -
CPUs 320 may communicate withsystem memory 321 via asystem interface 350, sometimes referred to as a bus. In embodiments that includeGPUs 325,GPUs 325 may be any type of specialized circuitry that may manipulate and alter memory (e.g., graphic memory 326) to provide or accelerate images' creation.GPUs 325 may have a highly parallel structure optimized for processing large, parallel blocks of graphical data more efficiently than general-purpose CPUs 320. Furthermore, a chipset of a special purpose processing unit or a co-processor may include theGPUs 325 functionality. - Furthermore,
computing device 300 may includenetwork interface 318 to interface to a LAN, WAN, MAN, or the Internet through a variety of connections including, but not limited to, standard telephone lines, LAN or WAN links (e.g., 802.21, T1, T3, 56 kb, X.25), broadband connections (e.g., ISDN, Frame Relay, ATM), wireless connections (e.g., those conforming to, among others, the 802.1 1a, 802.11b, 802.11b/g/n, 802.1 lac, Bluetooth, Bluetooth LTE, 3GPP, or WiMax standards), or some combination of any or all of the above.Network interface 318 may comprise a built-in network adapter, network interface card, PCMCIA network card, card bus network adapter, wireless network adapter, USB network adapter, modem, or any other device suitable for interfacingcomputing device 300 to any type of network capable of communication and performing the operations described herein. -
CPUs 320 may execute programming instructions stored insystem memory 321 or other memory, operate on data stored in memory (e.g., system memory 321), and communicate withGPUs 325 through thesystem interface 350, which bridges communication between the various components of thecomputing device 300. In some embodiments,CPUs 320,GPUs 325,system interface 350, or any combination thereof, are integrated into a single chipset or processing unit.GPUs 325 may execute sets of instructions stored in memory (e.g., system memory 321), to manipulate graphical data stored insystem memory 321 orgraphic memory 326. For example,CPUs 320 may provide instructions toGPUs 325, andGPUs 325 may process the instructions to render graphics data stored in thegraphic memory 326.Graphic memory 326 may be any memory space accessible byGPUs 325, including local memory, system memory, on-chip memories, and hard disk.GPUs 325 may enable displaying graphical data stored ingraphic memory 326 ondisplay device 324 or process graphical information and provide that information to connected devices throughnetwork interface 318 orperipheral devices 130. -
Computing device 300 may connect to adisplay device 324 and peripheral devices 130 (e.g., a keyboard, a mouse, or a pointing device) connected to peripheral device controller 323. Peripheral device controller 323 may communicate with the other components ofcomputing device 300 viasystem interface 350. Peripheral device controller 323 may be a hub for connecting multipleperipheral devices 130. For example, peripheral devices controller 323 may be a USB hub to connected USB connector based peripheral devices ofperipheral devices 130. In some embodiments,peripheral devices 130 may also connect tocomputing devices 130 usingnetwork interface 318. Peripheral devices controller 323 may connect withnetwork interface 318 to retrieve and parse the data shared byperipheral devices 130 sent over network 140 (as shown inFig. 1 ) tonetwork interface 318 ofcomputing device 300. In some embodiments,CPUs 320 may parse the data received fromperipheral devices 130 vianetwork interface 318.Peripheral devices 130 may communicate withcomputing device 300 vianetwork interface 318 when they are physically connected to other host computing devices ofhost computing devices 120. -
CPUs 320 may also communicate withsystem memory 321 and other devices in manners other than throughsystem interface 350, such as through serial communication or direct point-to-point communication. Similarly,GPUs 325 may communicate withgraphic memory 326 and other devices in ways other thansystem interface 350. In addition to receiving input,CPUs 320 may provide output via peripheral devices 130 (e.g., through a printer, speakers, bone conduction, or other output devices). Peripheral devices controller 323 may be an I/O controller withinCPUs 320 or a separate chipset. -
Computing device 300 may also includestorage 328 to store data received fromperipheral devices 130.Storage 328 may also include information accessed from CIMR 110 (as shown inFig. 1 ).Storage 328 may include a file storage and a database and accessed usingCPUs 320.CPUs 320 may move data insystem memory 321 tostorage 328 at regular intervals or vice versa.Storage 328 may include a cloud storage, such as AMAZON™ S3, Azure™ Storage, GOOGLE™ Cloud Storage accessible via network 140 (as shown inFig. 1 ).Storage 328 may be used to implement a database to store metadata needed for secure communication betweenhost computing devices 120 andperipheral devices 130. For example,storage 328 may includeidentity database 112 orcrypto keys database 150. -
Fig. 4 shows an exemplary secure data communication channel set up for communication betweenperipheral device 230 ofperipheral devices 130 andhost computing device 420 ofhost computing devices 120 according to embodiments of current disclosure.Host computing device 420 may requestperipheral device 230 to provide data securely by encrypting data using a cryptographic key. A request for secure data communication channel setup fromhost computing device 420 may include transmitting a cryptographic key pair toperipheral device 230.Host computing device 420 may generate a pair of cryptographic keys,first key 431 andsecond key 432, before requesting to set up a secure data communication channel toperipheral device 230. In some embodiments,host computing device 420 may share a previously generated cryptographic key pair withperipheral device 230. In some embodiments,host computing device 420 may requestsystem 100 to provide a new copy of cryptographic key pair 431-432 to replace its local copy. CIMR 110 (as shown inFig. 1 ) may help generate the latest version of the cryptographic key pair to replace the existing key pair.Host computing device 420 may share a hash of a cryptographic key shared earlier, such as during a registration ofperipheral device 230 described in connection withFig. 5 and its description below. -
Host computing device 420 may generate multiple sets of cryptographic key pairs to share a different key with each peripheral device (e.g., peripheral device 230) ofperipheral devices 130. In some embodiments,host computing device 420 may share the same key (e.g., second key 432) with several peripheral devices (e.g., peripheral devices 130).Host computing device 420 may share the same key with multiple peripheral devices when the peripheral devices coordinate and share related data. In some embodiments, a set of peripheral devices (e.g., peripheral devices 130) may share the same key when the same host computing device processes all their data together (e.g., host computing device 420). For example, a host computing device that needs to validate a user's identity (e.g., user 460) of the host computing device may activate multiple identification mechanisms such as face and fingerprint recognition. The host computing device may request a secure data communication channel setup sent to camera and fingerprint scan sensor peripheral devices with the same cryptographic encryption key as an input parameter to validate the user. - A secure communication channel setup request may be made by
host computing device 420 for future communication sessions betweenperipheral device 230 and itself. A secure communication channel setup may need to occur only once between each host computing device (e.g., host computing device 420) and peripheral device (e.g., peripheral device 230). In some embodiments, the secure communication channel may need to re-setup at regular intervals or after a certain time delay since the last communication session betweenhost computing device 420 andperipheral device 230. -
Host computing device 420 may generate cryptographic key pair (e.g.,first key 431, second key 432) before it or applications running on it need data fromperipheral device 230. In some embodiments,host computing device 420 may utilize a previously generated key for requesting data in encrypted format fromperipheral device 230.Host computing device 420 may regularly refresh the cryptographic key pairs associated with peripheral devices (e.g., peripheral devices 130).Host computing device 420 may generate and refresh cryptographic key pair 431-432 at regular intervals for security purposes. For example, a host computing device (e.g., host computing device 420) may refresh cryptographic keys (e.g., cryptographic key pair 431-432) after a timeout period to avoid an intruder using a previously generated key for communicating with thehost computing device 420. In some embodiments,host computing device 420 may generate cryptographic key pair 431-432 upon receiving an external event such as a request fromuser 460 or when an event is triggered by a software application or a hardware update. A separate centralized service such asCIMR 110 may manage the generation of cryptographic key pair, i.e.,first key 431 andsecond key 432, for securely communicating withperipheral device 230. A detailed description of centralized management service is provided in connection withFig. 9 and its description below. -
Host computing device 420 may sharesecond key 432 of a cryptographic key pair withperipheral device 230 to request data in encrypted format fromperipheral device 230. In some embodiments,host computing device 420 may share second key 432 withperipheral device 230 overnetwork 140.Peripheral device 230 connected overnetwork 140 may be present on a cloud network or connected to an on-premises server. - In some embodiments,
peripheral device 230 may be connected tohost computing device 420 using a USB-A/C or firewire (IEEE 1394) or HDMI or other serial bus standards connectors.Peripheral device 230 may also be connected tohost computing device 420 using a wireless protocol such as Bluetooth, Apple Airplay, 802.11 b/g/n/ac, etc. -
Host computing device 420 may share second key 432 withperipheral device 230 upon receiving a connection request fromperipheral device 230 or whenhost computing device 420 establishes a connection withperipheral device 230. For example, when connected to a host computing device, such as a laptop, a USB peripheral device may send a connection request to the host computing device, causing the host computing device to set up a secure communication channel. In another scenario, the laptop establishing a connection with Bluetooth peripheral device by successful pairing may send the request for a secure communication channel set up to the Bluetooth peripheral device. -
Peripheral device 230 upon receipt of second key 432 may begin securely communicating by encrypting data and sending it to hostcomputing device 420. In some embodiments,peripheral device 230 may acknowledge second key 232 before securely communicating data withhost computing device 420.Peripheral device 230 may encrypt data usingsecond key 432. In some embodiments,host computing device 420 may share additional information indicating the type of data, amount of data, time of encryption, etc., along with the encrypted data.Peripheral device 230 upon receipt of second key 432 may begin capturing and encryptingdata 440.Peripheral device 230 may capturedata 440 from a surrounding environment or byuser 460's interaction withperipheral device 230. For example,peripheral device 230 may be a sensor capturing temperature or air pressure of the surrounding environment or a fingerprint scanner interacted by theuser 460 to provide fingerprints.Peripheral device 230 may capturedata 440 automatically or capturingdata 440 when initiated byuser 460. For example,peripheral device 230 may be a camera that automatically captures at regular intervals or when it detects a human being in its field of view. In another scenario,peripheral device 230 may be a keyboard waiting to capture keystrokes made byuser 460.Peripheral device 230 may capture data from another data source overnetwork 140. The other datasource providing data 440 toperipheral device 230 may be present on a cloud service, such as AMAZON™ AWS, MICROSOFT™ Azure, GOOGLE™ Cloud, and accessible over the Internet. -
Peripheral device 230 upon capturingdata 440 may encrypt it usingsecond key 432.Peripheral device 230 may capture a certain amount ofdata 440 before beginning the encryption process. For example, a camera peripheral device captures a minimum of three seconds of video before encrypting the captured video data. The amount of data to capture may be determined based on peripheral device capabilities. In some embodiments,host computing device 420 may share data capture requirements used withperipheral device 230 along withsecond key 432. -
Peripheral device 230 upon encryptingdata 440 may sendencrypted data packet 450 tohost computing device 420. In some embodiments,peripheral device 230 may continuously stream captured andencrypted data 440 tohost computing device 420. Communication parameters, such as data transmission time intervals and the amount of data to encrypt, may depend onperipheral device 230 capabilities. In some embodiments, communication parameters may be configurable byhost computing device 420.Host computing device 420 may provide communication parameters configuration as additional information sent toperipheral device 230 along with second key 432 to set up a secure communication channel.Host computing devices 120 may revise communication parameters during a communication session or at the beginning of each communication session using the secure communication channel. -
Host computing device 420 upon receipt ofencrypted data packet 450 may decrypt it usingfirst key 431. In some embodiments, successful decryption offirst data packet 450 may result in the completion of secure communication channel setup and registration ofperipheral device 230 for future communication withhost computing device 420. Registration of a peripheral device is described in detail in connection withFig. 5 and its description below. -
Peripheral device 230 may continuously send encrypted data packets (e.g., data packet 450) tohost computing device 420 upon receiving a request for secure communication channel setup.Peripheral device 230 may stop sending encrypted data packets upon disconnecting theperipheral device 230 fromhost computing device 420. For example,peripheral device 230 may be a keyboard that stops sending the captured user keystrokes when disconnected fromhost computing device 420. In some embodiments,peripheral device 230 may stop transmitting encrypted data packets upon receiving a stop command fromhost computing device 420. -
Peripheral device 230 may utilize trustedpartner module 253 ofsecure enclave 250 to store thesecond key 432 for future communications withhost computing device 420. A detailed description of second key 432's usage for multiple communication sessions is provided in connection withFig. 7 and its description below.Peripheral device 230 may limit the use of second key 432 to establish a connection withhost computing device 420.Peripheral device 230 may use a different cryptographic key to encrypt and share data withhost computing device 420. Usage of multiple cryptographic keys to establish a secure connection session betweenhost computing device 420 andperipheral device 230 and communication over the established secure communication channel is described in detail in connection withFigs. 7 and8 and their descriptions below. -
Fig. 5 shows an exemplary registration ofperipheral device 230 withhost computing device 420, according to some embodiments of the present disclosure.Host computing device 420 may communicate only with a registeredperipheral device 230.Peripheral device 230 may place similar restrictions when communicating with other devices (e.g., host computing devices 120). In some embodiments, a third-party device, such asserver 550, may requesthost computing device 420 to registerperipheral device 230 for it to access data (e.g.,data 440 ofFig. 4 ) captured byperipheral device 230.Host computing device 420 upon registeringperipheral device 230 on behalf of theserver 550, may receive data fromperipheral device 230 and share it withserver 550. In some embodiments,server 550 may directly receive data fromperipheral device 230.Host computing device 420 may registerserver 550 withperipheral device 230 forserver 550 to receive data directly fromperipheral device 230. In some embodiments,peripheral device 230 may communicate simultaneously withhost computing device 420 andserver 550.Peripheral device 230 may send data to all registered devices (e.g.,host computing device 420 and server 550) whose identifiers are shared as part of a registration request. In some embodiments, there may be no registration process.Peripheral device 230 may communicate with the only physically connected host computing device (e.g., host computing device 420). -
Host computing device 420 may registerperipheral device 230 by generating and sharing with peripheral device 230 a cryptographic key pairfirst key 431 andsecond key 432.Peripheral device 230 registration may be part of a secure communication channel setup described in connection withFig. 4 and its description above. In some embodiments,host computing device 420 may need to registerperipheral device 230 before setting up a secure communication channel withperipheral device 230. -
Host computing device 420 may storefirst key 431 and send second key 432 toperipheral device 230. In some embodiments,host computing device 420 may associate a unique identifier ofperipheral device 230 with the storedfirst key 431. Unique identifiers may includeperipheral device 230 network IP address, MAC address, serial number, or a combination of one or more of the listed identifiers.Host computing device 420 may need to include a registration request along with thesecond key 432 to registerperipheral device 230. In some embodiments, the registration request may be encrypted usingfirst key 431. -
Peripheral device 230 may registerhost computing device 420 by storingsecond key 432. In some embodiments,peripheral device 230 may save thesecond key 432 in asecure enclave 250.Peripheral device 230 may associate second key 432 with a unique identifier ofhost computing device 420. Unique identifiers may includehost computing device 420 network IP address, MAC address, device serial number, or a combination of one or more of the listed identifiers.Peripheral device 230 may registerhost computing device 420 by parsing the included registration request, which may include the unique identifier ofhost computing device 420.Peripheral device 230 may parse the registration request by decrypting the registration request usingsecond key 432. -
Peripheral device 230 may send aregistration confirmation message 560 tohost computing device 420.Host computing device 420 may registerperipheral device 230 upon receivingregistration confirmation message 560 to conduct further communication withperipheral device 230.Host computing device 420 may check for any error messages in theregistration confirmation message 560. If theregistration confirmation message 560 includes any error codes, then hostcomputing device 420 may abort registration ofperipheral device 230.Host computing device 420 may forwardregistration confirmation message 560 toserver 550 forserver 550 to registerperipheral device 230 as a trusted data source. In some embodiments,registration confirmation message 560 may be encrypted usingsecond key 432.Registration confirmation message 560 may include decrypted content sent to peripheral device encrypted usingfirst key 431. In some embodiments,peripheral device 230 may broadcastregistration confirmation message 560, allowing all devices (e.g.,host computing device 420, server 550) capable of decryptingregistration confirmation message 560 to registerperipheral device 230. -
Fig. 6 shows an exemplary validation process ofperipheral device 230 andhost computing device 420, according to some embodiments of the present disclosure.System 100 may validatehost computing device 420 andperipheral device 230, orhost computing device 420 andperipheral device 230 may validate each other before a communication session between them. In some embodiments, registration of aperipheral device 230 may result in automatic validation ofperipheral device 230.Peripheral device 230 andhost computing device 420 may need to be validated if a previous communication session has ended, timed out, or errored out. A validation process may determine the connectivity of thehost computing device 420 andperipheral device 230 to each other and a network (e.g., network 140). Validation may include generating achallenge message 631 and encrypting it usingfirst key 431 to generatevalidation data packet 630. Upon receivingvalidation data packet 630,peripheral device 230 may decrypt it usingsecond key 432 stored insecure enclave 250.Peripheral device 230 upon decryption ofchallenge message 631 may respond tohost computing device 420 by encrypting thechallenge message 631 usingsecond key 432 and sendresponse data packet 670.Host computing device 420 may complete the validation process by decryptingresponse data packet 670 usingfirst key 431 and comparing it with the sent challenge for a match. - In some embodiments, validation may include sharing
second key 432 withperipheral device 230 generated during the registration ofperipheral device 230 and receivingvalidation confirmation message 670.Host computing device 420 may need to decryptvalidation confirmation message 670 usingfirst key 431. In some embodiments,host computing device 420 may send a hash ofsecond key 432 for validation purposes. Host computing device may send a validation request along withsecond key 432 and may encrypt it withfirst key 431. -
Peripheral device 230 may consider a request for a communication session (described in connection withFig. 7 and its description below) to validate connectivity ofhost computing device 420. In some embodiments,peripheral device 230 may consider the first response in a communication session as a validation. -
Fig. 7 shows an exemplarydata communication session 710 betweenperipheral device 230 andhost computing device 420, according to embodiments of the present disclosure.Peripheral device 230 may need to generate acryptographic session key 741 to participate incommunication session 710.Peripheral device 230 may usesession key 741 to encryptdata 742 shared withhost computing device 420 duringcommunication session 710.Session key 741 may be stored inmemory 240 along withdata 742 shared withhot computing device 420 during thecommunication session 710. In some embodiments,secure enclave 250 may storesession key 741 and second key 432 used for registration, validation, and secure communication channel setup described in connection withFigs. 4 ,5 , and6 and their descriptions above. - In some embodiments,
session key 741 may be generated byhost computing device 420 or CIMR 110 (as shown inFig. 1 ). Upon generation ofsession key 741 byCIMR 110,system 100 may transfersession key 741 tohost computing device 420. In some embodiments,system 100 may encryptsession key 741 usingfirst key 431.Host computing device 420 may share the session key with peripheral device 430.Session key 741 may act as a symmetric key used for encryption and decryption of communication messages transmitted betweenperipheral device 230 andhost computing device 420. - Upon receiving
session key 741,peripheral device 230 may store it in session keys 242 (as shown inFig. 1 ). In some embodiments,peripheral device 230 may need to decryptsession key 741 before storing it.Peripheral device 230 may then sendsession key 741 encrypted with second key 432 tohost computing device 420.Peripheral device 230 may retrieve second key 432 fromkey store 252. In some embodiments,peripheral device 230 may request CIMR forsecond key 432. Upon receiving session key 741 fromperipheral device 230,host computing device 420 may savesession key 741 in system memory 321 (as shown inFig. 3 ).Host computing device 420 andperipheral device 230 may conduct the rest of the communication session by encrypting messages usingsession key 741. - A scenario where
host computing device 420 may be tasked with generating and managingsession key 741 may operate as follows.Host computing device 420 upon generation ofsession key 741 may transfer it toperipheral device 230.Host computing device 420 may encryptsession key 741 usingfirst key 431. Upon receivingsession key 741,peripheral device 230 may store it insession keys 242. In some embodiments,peripheral device 230 may need to decryptsession key 741 usingpublic key 432 before storing thesession key 741.Peripheral device 230 may send a confirmation of receipt ofsession key 741 by encryptingsession key 741 usingpublic key 432 and sending it to hostcomputing device 420.Host computing device 420 may compare the received session key with thesession key 741 generated byhost computing device 420. In some embodiments,host computing device 420 may savesession key 741 insystem memory 321 after confirming the received session key for a match.Host computing device 420 andperipheral device 230 may conduct the rest of the communication session by encrypting messages usingsession key 741. - A scenario where
peripheral device 230 is tasked with generating a session key for establishing secure communication may operate in the following manner.Peripheral device 230 may initiatecommunication session 710 by generating and share session key 741 withhost computing device 420.Peripheral device 230 may share session key 741 as part ofsession data packet 750 encrypted usingsecond key 432 stored insecure enclave 250. A session data packet (e.g., session data packet 750) is a communication message sent from a peripheral device (e.g., peripheral device 230) to a host computing device (e.g., host computing device 420). The session data packet may include data captured by the peripheral device and encrypted using a cryptographic key (e.g.,second key 432, session key 741).Session data packet 750 may include an indication of the first session data packet. In some embodiments,peripheral device 230 may broadcast a session data packet to all available host computing devices (e.g., host computing devices 120). In some embodiments,peripheral device 230 may multicastsession data packet 750 to multiple host computing devices that registered withperipheral device 230, such ashost computing device 420 andserver 550 described in connection withFig. 5 and its description above. In some embodiments,peripheral device 230 may need to encryptsession data packet 750 containing session key 741 with different cryptographic key (e.g., second key 432) for each of the host computing devices (e.g., host computing devices 120). -
Host computing device 420 upon receivingsession data packet 750, may retrievesession key 741 by decryptingsession data packet 750 usingfirst key 431, which pairs withsecond key 432.Host computing device 420 may storesession key 741 inmemory 770.Memory 770 may be a system memory 321 (as shown inFig. 3 ) orstorage 328 implementing a database, such as crypto keys database 150 (as shown inFig. 1 ). In some embodiments,host computing device 420 may send an acknowledgment after storingsession key 741 inmemory 770.Host computing device 420 may usesession key 741 shared byperipheral device 230 to decrypt future messages fromperipheral device 230.Session key 741 may be a symmetric key that can be used to encrypt and decrypt a message. -
Peripheral device 230 may share additional data, such asdata 742 duringcommunication session 710 withhost computing device 420 by encrypting additional information usingsession key 741.Data 742 may be captured byperipheral device 230, similar todata 440 capture described in connection withFig. 4 and its description above. Encryption ofdata 742 usingsession key 741 may generate asession data packet 760 containing captureddata 742. In some embodiments,session data packet 760 may include additional information related tocommunication session 710. Additional information may include session data packet number, checksum ofdata 742, last session data packet flag. In some embodiments,peripheral device 230 may send a special session data packet to indicate the end ofcommunication session 710.Host computing device 420 upon receiving session data packets (e.g.,session data packet 750, 760) of acommunication session 710 may send an acknowledgment message. The acknowledgment message may include additional information such as an error code or request for more data or command to endcommunication session 710.Peripheral device 230 upon receiving an acknowledgment message with an error code, may resend a session data packet.Peripheral device 230 may deletesession key 741 and captureddata 742 upon completion ofcommunication session 710. -
Fig. 8A is a flow diagram of an exemplaryperipheral device 230 registration process using centralized identity management resource (CIMR) 110, according to some embodiments of the present disclosure. As illustrated inFig. 8A ,host computing devices 120 may include computing devices:mobile device 821,laptop device 822,desktop device 823.Host computing devices 120 may communicate withperipheral device 230 after registeringperipheral device 230 usingCIMR 110. - In
step 1,CΠVIR 110 may providedata packet 850 that includes cryptographic key pair 851-852 to identifyperipheral device 230 and registerperipheral device 230 for initiating future communication sessions. Cryptographic key pair 851-852 may include private andpublic cryptography keys Fig. 4 and its description above.CΠVIR 110 may broadcast cryptographic key pair 851-852 to all available host computing devices 821-823.CΠVIR 110 may share cryptographic key pair 851-852 to registerperipheral device 230 upon receiving a presence request fromperipheral device 230. In some embodiments,CΠVIR 110 may multicast cryptographic key pair 851-852 to host computing devices (e.g.,laptop device 822, desktop device 823) capable of communicating withperipheral device 230.Host computing device 420 may be capable of communicating withperipheral device 230 if it has an appropriate connector (e.g., peripheral devices controller) to connectperipheral device 230 or includes software application to parse the data received from theperipheral device 230. For example, CIMR may share cryptographic key pair associated with a Bluetooth peripheral device capable of pairing using Bluetooth v4.2 to only host computing devices with the latest Bluetooth chipset to pair with a Bluetooth peripheral device. In some embodiments,host computing devices 120 may only receivedata packet 850 withprivate key 851. - In some embodiments,
CΠVIR 110 may share cryptographic key pair 851-852 with host computing device (e.g., desktop device 823) to whichuser 460 has submitted a request to registerperipheral device 230. In some embodiments,peripheral device 230 may communicate withCIMR 110 to share cryptographic key pair 851-852 with host computing devices 821-823. For example,peripheral device 230 may communicate withCIMR 110 to help with registration when powered, turned on, connected to a network (e.g., network 140), or activated by user interaction.CΠVIR 110 may identify and share with peripheral device 230 a list of host computing devices (e.g., host computing devices 821-823) available and/or capable of communicating withperipheral device 230.Peripheral device 230 may register host computing devices 821-823 as trusted devices.Peripheral device 230 may use trusted partner module 253 (as shown inFig. 2 ) to register a host computing device as a trusted device. - Host computing devices 821-823 upon receiving cryptographic key pair 851-852, may store privately key 851 in memory 770 (as shown in
Fig. 7 ) and sendpublic key 852 toperipheral device 230. In some embodiments, the host computing devices 821-823 may store theprivate key 851 in external storage, such as crypto keys database 150 (as shown inFig. 1 ).CIMR 110 may generate cryptographic key pair 851-852 and share them with host computing devices 821-823.Identity management module 111 ofCIMR 110 may aid in generating cryptographic key pair 851-852.CIMR 110 may generate a different cryptographic key pair for each host computing devices 821-823 that may registerperipheral device 230.CIMR 110 may request identity management database 112 (as shown inFig. 1 ) to store the cryptographic key pair 851-852 for future requests to registerperipheral device 230. In some embodiments,CIMR 110 may retrievepublic key 852 fromidentity management database 112 and send it to host computing devices 821-823 to help registerperipheral device 230. Host computing device may access the matchingprivate key 851 from local storage (e.g., crypto keys database 150). In some embodiments,CIMR 110 may send separately cryptographic key pair 851-852 to host computing devices 821-823 andperipheral device 230 to begin registration ofperipheral device 230. - In
step 2, host computing device (e.g., desktop device 823) may begin registration ofperipheral device 230 by sharingpublic key 852 withperipheral device 230.Peripheral device 230 may usepublic key 852 to communicate withdesktop device 823 in the future securely.Desktop device 823 may providepublic key 852 as part ofdata packet 860 along withhash 861 ofpublic key 852. In some embodiments,desktop device 823 may only sendhash 861 toperipheral device 230. - Upon receipt of
data packet 860,peripheral device 230 may storepublic key 852 in a secure location, such assecure enclave 250 and hash in hash map 241 (as shown inFig. 2 ). In some embodiments,peripheral device 230 may locally generate a hash ofpublic key 852 that uniquely identifies thepublic key 852 associated with a host computing device (e.g., desktop device 823).Peripheral device 230 may use thedesktop device 823's unique identifier, such as network IP address, MAC address, or serial number as the hash key.Peripheral device 230 may store the generated hash in a hash map (e.g., hash map 241) that maps the hash of thepublic key 852 to the storage location of thepublic key 852 stored inkey store 252. The storage location ofpublic key 852 may be a network address, a memory location, a file path, or a combination. - In
step 3,peripheral device 230 may generate and sharesuccess message 871 withdesktop device 823 to completeperipheral device 230's registration.Peripheral device 230 may encryptsuccess message 871 withpublic key 852 to generatedata packet 870 and share withdesktop device 823. In some embodiments,success message 871 may include data captured and collected byperipheral device 230. -
Desktop device 823 upon receivingdata packet 870 withsuccess message 871, may decrypt usingprivate key 851. Upon successful decryption,desktop device 823 may parse the success code insuccess message 871 to registerperipheral device 230. Thesuccess message 871 may include additional details such as the amount of time the registration is valid, the amount and type of data available for communication, and other configurable parameters.Desktop device 823 may utilize the shared configurable parameters when communicating withperipheral device 230. Ifdesktop device 823 fails to decryptmessage 871,desktop device 823 may assume interception ofdata packet 870 sent byperipheral device 230. In some embodiments, thedata packet 870 may include an error code indicatingperipheral device 230 failure to registerdesktop device 823.Desktop device 823 upon receiving an error code indata packet 870, may terminate further communication withperipheral device 230. Registration ofperipheral device 230 bydesktop device 823 may result in the setup of a secure communication channel for future communication. Upon successful registration,desktop device 823 may initiate a communication session withperipheral device 230 using the secure communication channel. In some embodiments,peripheral device 230 may securely communicate withdesktop device 823 afterstep 3 by encrypting captured and collected data usingpublic key 852 and sending it todesktop device 823. In some embodiments,peripheral device 230 may generate a session key and utilize it for secure communication withdesktop device 823 afterstep 3. The generated session key may only be valid for a limited time, for example, the current communication session. In some embodiments, the session key may be limited by the number of messagesperipheral device 230 may securely communicate withdesktop device 823.Peripheral device 230 may generate a session key as part of successmessage data packet 870. In some embodiments,peripheral device 230 may include the session key as thesuccess message 871 indata packet 870. -
Fig. 8B is a flow diagram of an exemplaryperipheral device 230 registration process using centralized identity management resource (CIMR) 110, according to some embodiments of the present disclosure. The flow diagram inFig. 8B is an alternative toFig. 8A , whereCIMR 110 manages secure communication setup. - In
step 1,CΠVIR 110 shares with host computing devices (e.g., host computing devices 821-823) adata packet 880, including access toprivate key 851 copy.CIMR 110 may simultaneously sharedata packet 885 withperipheral device 230, including access toprivate key 851 copy. Upon receiving data packet 855,peripheral device 230 may retrieveprivate key 852 and store it insecure enclave 250. In some embodiments,peripheral device 230 and host computing devices 821-823 may now securely communicate by encrypting and decrypting data using cryptographic key pair 851-852. A host computing device (e.g., desktop device 823) upon receivingprivate key 851 may determine the peripheral device (e.g., peripheral device 230) associated withprivate key 851. In some embodiments,data packet 880 may include the identity ofperipheral device 230, such as a network IP address, MAC address, device serial number, or hash ofpublic key 852. - In some embodiments,
CIMR 110 may allowdesktop device 823 to accessprivate key 851 by adding it to the list of host computing devices having access toprivate key 851. In some embodiments,CIMR 110 may share a copy ofprivate key 851 with host computing devices 821-823.CΠVIR 110 may only provide a pointer to the private key. The pointer may point to a location incrypto keys database 150 oridentity database 112. The access toprivate key 851 using a pointer may result in retrieving theprivate key 851 from a secure enclave environment.CIMR 110 may provide access todesktop device 823 based on a security policy residing atCIMR 110. The security policy may be a user-configurable file uploaded by the user ofsystem 100. - In some embodiments, cryptographic key pairs may be managed in a distributed
manner allowing CIMR 110 to request other host computing devices to share theprivate key 851 withdesktop device 823.CΠVIR 110 may request other host computing devices who have previously communicated withperipheral device 230 and thus have access toprivate key 851. -
CIMR 110 may manage the cryptographic key pairs and regularly refresh the keys.CΠVIR 110 may synchronize keys of a host computing device (e.g., desktop device 823) by copying all possible keys associated with various peripheral devices (e.g., peripheral devices 130) available insystem 100. In some embodiments,CIMR 110 may also synchronize the keys present in a host computing device (e.g., desktop device 823) and replace the old versions of the keys. - In
step 2, a host computing device (e.g., desktop device 823) intending to communicate withperipheral device 230 may convey the intention toCIMR 110.Desktop device 823 may convey the intention by sharingdata packet 890, includingidentity 891 ofperipheral device 230 with whom it intends to communicate with.Identity 891 may include a hash ofprivate key 851 orpublic key 852 or some other identification ofperipheral device 230 shared instep 1. -
CIMR 110 may forward the communication intent fromdesktop device 823 toperipheral device 230. In some embodiments,peripheral device 230 may regularly pingCIMR 110 to confirm if any of the host computing devices requested to communicate. In some embodiments,CIMR 110 may forward the communication intent to another host computing device that is physically connected withperipheral device 230. In some embodiments,CIMR 110 may act as a host computing device and directperipheral device 230 to share data withdesktop device 823. - In some embodiments,
CIMR 110 may validatedesktop device 823 before forwarding the communication intent toperipheral device 230.CIMR 110 may validatedesktop device 823 by checking its network connectivity. In some embodiments,CIMR 110 may validatedesktop device 823 by evaluating its capabilities, such as computational power, storage capacity, hardware, software tools availability, and speed of network connection.Desktop device 823 may be validated based on a security policy installed inCIMR 110. Security policy may include a set of requirements to be satisfied bydesktop device 823, such as a version of an operating system running ondesktop device 823 or a version of an application in need of data provided byperipheral device 230. In some embodiment,desktop device 823 may need to provide authentication information toCIMR 110. The authentication information may determine ifdesktop device 823 is a valid device authorized to have a secure communication channel withperipheral device 230. The authentication information may validate if the user ofdesktop device 823 and another host computing device connected toperipheral device 230 is the same user. For example, a host computing device user may be validated by requesting the same user to provide credentials on a mobile device (second host computing device) using a fingerprint scan sensor peripheral device. - In
step 3,peripheral device 230 may sharedata packet 895 withdata 896 captured byperipheral device 230.Data packet 895 is an encrypted copy ofdata 896 captured byperipheral device 230.Peripheral device 230 may capture data upon receiving a communication forwarded byCIMR 110 or share previously collected data stored in memory (e.g., memory 240). In some embodiments,peripheral device 230 may forward the collected data toCΠVIR 110. -
Fig. 9 is a flow diagram of an exemplary communication session betweendesktop device 823 andperipheral device 230 managed by centralized identity management resource (CIMR) 110, according to some embodiments of the present disclosure. - In
step 1,desktop device 823 may receive fromCIMR 110 cryptographic key pair 851-852 needed to set up a communication session.CΠVIR 110 may send the cryptographic key pair 851-852 asdata packet 950. In some embodiments,desktop device 823 may only receivepublic key 852 as part ofdata packet 950 and accessprivate key 851 from crypto keys database 150 (as shown inFig. 1 ).Desktop device 823 may usepublic key 852 to lookup associatedprivate key 851 incrypto keys database 150. In some embodiments,data packet 950 may include a hash ofprivate key 851 andpublic key 852 used to retrieve cryptographic key pair 851-852 fromcrypto keys database 150.CΠVIR 110 may senddata packet 950 todesktop device 823 upon receiving updated connection status from the peripheral device (e.g., peripheral device 230). The connection status update may include peripheral device connection todesktop device 823 orperipheral device 230 or connected to the Internet (e.g., network 140). In some embodiments,CΠVIR 110 may send cryptographic key pair 851-852 upon receiving a request fromdesktop device 823 to initiate a communication session withperipheral device 230. - In
step 2,desktop device 823 may generate hash 962 ofpublic key 852 provided byCIMR 110.Desktop device 823 may sharedata packet 960, includingchallenge 961 and hash 962, withperipheral device 230 indicating a request to initiate a communication session.Desktop device 823 may generate a challenge by encrypting a challenge message withprivate key 851. The challenge message may be a generic text or may include identification information of the host computing device (e.g., desktop device 823),peripheral device 230, or both. The identification information may bedesktop device 823's network IP address or MAC address of the network interface (e.g.,network interface 318 ofFig. 3 ), serial number, or a combination of different IDs. The challenge may also be a randomly generated number, text, or alphanumeric string of characters.Desktop device 823 may store challenge message in storage 328 (as shown inFig. 3 ) before sendingdata packet 960 withchallenge 961 toperipheral device 230. -
Peripheral device 230 upon receiving thedata packet 960, may attempt the parse challenge message by decrypting thechallenge 961.Peripheral device 230 may identify the encryption key needed to decryptmessage 961 usinghash 962 ofpublic key 852.Peripheral device 230 may look-up hash 962 in hash map 241 (as shown inFig. 2 ) to identify the decryption key (e.g., public key 852) needed to decryptchallenge 961.Peripheral device 230 may retrievepublic key 852 from key store 252 (as shown inFig. 2 ) to help decryptmessage 961.Peripheral device 230 may be an integrated internal component of the host computing device (e.g., desktop device 823) and may automatically identify the encryption key needed to decryptchallenge 961. - The challenge may include successful decryption and retrieval of a challenge message in
challenge 961. In some embodiments, the challenge may also include executing multiple computation steps listed in the challenge message. Theperipheral device 230 may send an error message upon failure to decryptchallenge 961, or the decrypted challenge message is garbled.Challenge 961 may also include a checksum to validate the decrypted message.Peripheral device 230 may need to validate the decrypted challenge using the checksum before parsing the challenge message.Peripheral device 230 upon successful decryption and validation ofchallenge 961 may respond to the host computing device (e.g., desktop device 823), as described instep 3 below. - In
step 3,peripheral device 230 may initiate a communication session by sending adata packet 980, including decryptedmessage 981 andsymmetric key 982, todesktop device 823. In some embodiments,data packet 980 may be encrypted usingpublic key 852 of cryptographic key pair 851-852.Peripheral device 230 may generate symmetric key 982 or requestCIMR 110 to aid insymmetric key 982.Symmetric key 982 ofdata packet 980 may be used for a secure communication session betweenperipheral device 230 desktop device.Symmetric key 982 may be used for both encryption and decryption of data shared byperipheral device 230 todesktop device 823.Peripheral device 230 may generate a new symmetric key for a new communication session request sent bydesktop device 823. In some embodiments,peripheral device 230 may encrypt the decrypted challenge message usingsymmetric key 982 and include it indata packet 980 sent todesktop device 823. -
Desktop device 823 upon receiving thedata packet 980, may store thesymmetric key 982 inmemory 770.Desktop device 823 may confirm the success ofencrypted challenge 961 before storingsymmetric key 982.Desktop device 823 confirms the success ofencrypted challenge 961 by comparing the received decryptedmessage 981 with the stored challenge message. In some embodiments,desktop device 823 may need to decryptmessage 981 usingsymmetric key 982 before confirming the success ofencrypted challenge 961. Ifdesktop device 823 fails to decryptmessage 981, it may send a new session initiation request toperipheral device 230. In some embodiments,desktop device 823 may terminate the communication session upon failure to accessmessage 981 or ifmessage 981 includes an error code. - In step 4, a host computing device (e.g., desktop device 823) may confirm the initiated communication session and send a request for data to
peripheral device 230.Desktop device 823 may confirm an initiated communication session by sendingdata request packet 990 toperipheral device 230.Peripheral device 230 upon receivingdata request packet 990, may begin capturing data (as described inFig. 4 above) and sending captured data encrypted using the session key (e.g., symmetric key 982), as described inFig. 8 above. In some embodiments,desktop device 823 may send an acknowledgment message upon successful receipt of each data packet (e.g., data packet 980) fromperipheral device 230. Successful receipt of a data packet may include successful decryption of the data packet contents usingsymmetric key 982.Desktop device 823 may also send commands as part of the acknowledgment message. For example,desktop device 823 may send an acknowledgment message that includes a stop command to stop the communication session. - The communication session between
desktop device 823 andperipheral device 230 may persist untildesktop device 823 sends a stop request. In some embodiments, a communication session between a host computing device (e.g., desktop device 823) and peripheral device (e.g., peripheral device 230) may timeout for lack of data requests fromdesktop device 823 or delays in sending data fromperipheral device 230. In some embodiments,Desktop device 823 communication session initiation request may include the communication session termination condition. The termination condition may be part ofchallenge 961 and could include a trigger event to terminate the communication session. The trigger event may include the number of data requests, amount of data, and time for communication. In some embodiments, the lack of an acknowledgment message may result in timeout and termination of the communication session.Desktop device 823 andperipheral device 230 may terminate the communication session based on certain criteria, such as a number of failed data requests. The criteria for terminating a communication session may be configurable byuser 460. The configurable criteria may be supplied withchallenge 961 or separately indata packet 960. In some embodiments,desktop device 823 andperipheral device 230 may access termination condition criteria or trigger event fromCIMR 110.Desktop device 823 may revise the termination condition during a communication session.Desktop device 823 upon receiving the required data or meeting the requirements, may send a communication termination command toperipheral device 230. -
Fig. 10 is a flowchart depicting operations of anexemplary method 1000 for secure communication channel setup betweenhost computing device 420 andperipheral devices 130, according to some embodiments of the present disclosure. The steps ofmethod 1000 may be performed bysystem 100 for purposes of illustration. It will be appreciated that the illustratedmethod 1000 may be altered to modify the order of steps and to include additional steps. - In
step 1010,system 100 may begin secure communication channel setup by first validatinghost computing device 420.System 100 may validatehost computing device 420 by checking its network connectivity. In some embodiments,system 100 may validatehost computing device 420 by evaluatinghost computing device 420's capabilities, such as computational power, storage capacity, hardware, software tools availability, and network connection speed, among others.System 100 may validatehost computing device 420 based on a security policy in some embodiments. The security policy may include a set of requirements to be satisfied byhost computing device 420, such as requiring a specific version of the operating system running onhost computing device 420 or a particular version of an application requesting data fromperipheral device 230. In some embodiments,host computing device 420 may need to provide authentication information tosystem 100. The authentication information determines if thehost computing device 420 is a valid device authorized to have a secure communication channel with a peripheral device (e.g., peripheral device 230). The authentication information may validate if the user ofhost computing device 420 and another host computing device connected toperipheral device 230 are the same. For example,system 100 may validate a host computing device's user by requesting the same user to provide credentials on a mobile device (second host computing device) using a fingerprint scan sensor peripheral device. - In
step 1020,system 100 may receive a request to register a peripheral device (e.g., peripheral device 230).Host computing device 420 upon validation may begin sharing the peripheral device registration request. In some embodiments,host computing device 420 may begin accepting registration requests from peripheral devices upon successful validation of itself bysystem 100. The request to registerperipheral device 230 may arrive overnetwork 140. The registration request may be initiated byhost computing device 420 based on applications running on the device. In some embodiments, a user (e.g., user 460) may send the request to registerperipheral device 230 tohost computing device 420 to help communicate withperipheral device 230. In some embodiments,host computing device 420 may receive a request to communicate withperipheral device 230, including a registration request by another host computing device. For example, an application running on a computer (first host computing device) may require two-factor authentication resulting in a mobile device (second host computing device) to request fingerprint or face recognition identification. The identification is provided by the mobile device using a peripheral device (touch sensor or camera) connected to the mobile device that registers the peripheral device(s) and requests data from them. A detailed description of a method for peripheral device registration is provided in connection withFig. 11 below. - In
step 1030,system 100 may receive a first key (e.g., first key 431) of a cryptographic key pair (e.g., cryptographic key pair 431-432) from a centralized service (e.g., Centralized Identity Management Resource 110). Thesystem 100 upon detecting a request to registerperipheral device 230, may triggerCΠVIR 110 to generate and send cryptographic key pair 431-432 to thehost computing device 420 overnetwork 140. In some embodiments,host computing device 420 orperipheral device 230 may generate the cryptographic key pair and distribute it to the other devices.Host computing device 420 may generate a cryptographic key pair and get ready to register and securely communicate withperipheral device 230 and others. In some embodiments,peripheral device 230 may generate a cryptographic key pair as part of the registration process. In some embodiments,system 100 may receive the first key fromcrypto keys database 150. Thecrypto keys database 150 may include cryptographic key pairs previously provided byCIMR 110. In some embodiments,system 100 may replace an existing cryptographic key upon receivingfirst key 431. First key 431 may be a private key (e.g., private key 851) of cryptographic key pair 851-852. In some embodiments,peripheral device 230 may requestCIMR 110 to send first key 431 tohost computing device 420 ofsystem 100. - In
step 1040,system 100 may associate the identity ofperipheral device 230 withfirst key 431.System 100 may receive the identity ofperipheral device 230 received as part of the registration request instep 1010. Identity ofperipheral device 230 may includeperipheral device 230's network IP address, MAC address, or the serial number ofperipheral device 230. In some embodiments,CIMR 110 may provide the identity ofperipheral device 230 tosystem 100.System 100 may store the associations betweenperipheral device 230 and first key 431 internal in memory 770 (as shown inFig. 7 ) or externally incrypto keys database 150. - In
step 1050,system 100 may storesecond key 432 of cryptographic key pair inperipheral device 230.System 100 may requestCIMR 110 to provide second key 432 to send toperipheral device 230.System 100 may send second key 432 toperipheral device 230 overnetwork 140.Second key 432 may be a public key (e.g., public key 852) of a cryptographic key pair 851-852. - In
step 1060,system 100 may identify a set of host computing devices (including host computing device 420) to register withperipheral device 230. Registration ofperipheral device 230 may include a request to load appropriate tools to understand the data transmitted by peripheral decide 230. For example, when attached to a host computing device, a camera peripheral device may result in an appropriate driver loaded in thehost computing device 420 to communicate with the camera peripheral device. In some embodiments,system 100 may only select host computing devices validated similar tohost computing device 420 instep 1010 above. -
System 100 may identifyhost computing device 420 from a list of host computing devices that previously communicated withperipheral device 230. In some embodiments,system 100 may identifyhost computing device 420 based on the additional data received along with theperipheral device 230 registration request. For example, a software application may requestsystem 100 to help verify a user (e.g., user 460) using facial recognition method, causingsystem 100 to reach out to host computing device (e.g., host computing device 420) owned and/or controllable by the same user. The host computing device may then use an attached camera peripheral device to capture an image to verify theuser 460 using face recognition technology. - In
step 1070,system 100 may make available first key 431 to the identified and validated host computing devices (including host computing device 420) for secure communication withperipheral device 230.System 100 may make first key 431 available tohost computing device 420 by adding to the list of host computing devices having access tofirst key 431. In some embodiments,system 100 may share a copy of first key 431 withhost computing device 420.System 100 may only provide a pointer tofirst key 431. The pointer may point to a location incrypto keys database 150 oridentity database 112.System 100 may make first key 431 available to the identified host computing devices based on a security policy. In some embodiments,system 100 may skip providing access to first key 431 to some of the identified host computing devices instep 1050 based on the security policy. The security policy used for making available first key 431 may be different from a security policy to validate identified host computing devices instep 1060 above. The security policy may be a user-configurable file provided as part ofperipheral device 230 registration request. - Distribution of the first and second key to host
computing device 420 andperipheral device 230 allows for secure communication between them using the first and second cryptographic keys 431-432 to encrypt and decrypt the communicated data. In some embodiments,host computing device 420 may receive both first and second cryptographic keys 431-432 and then sends thesecond key 432 toperipheral device 230.System 100, upon completion ofstep 1070, completes (step 1099) executingmethod 1000. - In some embodiments,
system 100 may provide a session key tohost computing device 420 for secure communication withperipheral device 230. The generated session key may only be valid for a limited time, for example, the current communication session. In some embodiments, the session key may be limited by the number of messages shared betweenperipheral device 230 andhost computing device 420. Session key may be generated by CIMR 110 (as shown inFig. 1 ) orhost computing device 420, orperipheral device 230. Based on the device generating the session key, it may be managed differently and shared with other devices insystem 100. A detailed description of the management of session key for secure communication by different components ofsystem 100 is provided in connection withFig. 6 and its corresponding description above. -
Fig. 11 is a flowchart depicting operations of anexemplary method 1100 forhost computing device 420 to registerperipheral device 230, according to some embodiments of the present disclosure. The steps ofmethod 1100 may be performed by components ofsystem 100 for purposes of illustration. It will be appreciated that the illustratedmethod 1100 may be altered to modify the order of steps and to include additional steps. - In
step 1110,host computing device 420 may detectperipheral device 230 from a presence request shared byperipheral device 230.Peripheral device 230 may send a presence request upon being physically connected to hostcomputing device 420. For example, a USB connector-based camera peripheral device may send a camera peripheral device's presence request when connected via a USB port to a host computing device. In some embodiments, a user (e.g., user 460) action to operate a peripheral device may result in the peripheral device generating a presence request. For example,user 460 may turn on a Bluetooth keyboard peripheral device pairing mode resulting in the peripheral device sending a presence request to host computing devices available present nearby. - In
step 1120,host computing device 420 may send a second key (e.g., second key 432) toperipheral device 230. The second key may be a public key (e.g., public key 852) of a cryptographic key pair.Host computing device 420 may have received bothsecond key 432 and first key 431 from CIMR 110 (as shown inFig. 1 ). In some embodiments,host computing device 420 may requestCIMR 110 to send thesecond key 432 toperipheral device 230. In some embodiments,host computing device 420 may generate a hash ofsecond key 432 and send it along withsecond key 432. In some embodiments,host computing device 420 may only send a hash of second key 432 toperipheral device 230.Peripheral device 230 upon may look up second key 432's location inkey store 252 usinghash map 241. - In
step 1130,host computing device 420 may receive a response message fromperipheral device 230.Host computing device 420 may receive the response overnetwork 140 at a network interface (e.g., network interface 318). The response message may indicate the successful receipt of second key 432 byperipheral device 230 sent byhost computing device 420 instep 1120. In some embodiments, the response message may be encrypted usingsecond key 432 and needs to be decrypted byhost computing device 420 usingfirst key 431 of cryptographic key pair 431-432. - In
step 1140,host computing device 420 may terminate the registration process if the response message includes an error code. In some embodiments,host computing device 420 may take different actions based on different error codes. If the error code indicates that thesecond key 432 was corrupted, then hostcomputing device 420 may jump back to step 1120 to resend second key 432 toperipheral device 230. - If the answer to the question in
step 1140 was no, then hostcomputing device 420 may proceed to step 1150. Instep 1150,host computing device 420 may check the response's validity by decrypting the response message usingfirst key 431.Host computing device 420 may consider the response message valid if it can successfully decrypt the response message. - If the answer to the question in
step 1150 is no, then proceed to step 1160. Instep 1160,host computing device 420 may validateperipheral device 230. Validation ofperipheral device 230's identity may include registeringperipheral device 230 as a trusted device. Registration ofperipheral device 230 may include associating first key 431 with an identifier ofperipheral device 230. In some embodiments, the registration process may include checking the registration field in a table with previously prepared associations.Peripheral device 230 may send an acknowledgment upon receiving registration message with second key 432 allowingsystem 100 to usehost computing device 420 to communicate securely withperipheral device 230.Host computing device 420 upon receiving acknowledgment message may confirmperipheral device 230's registration and label it as a trusted device. In some embodiments,host computing device 420 may conduct the validation using an encrypted challenge. A detailed description of encrypted challenge based validation is provided inFig. 14 description below.Host computing device 420 may communicate withsystem 100 about the completed registration process. - If the answer to the question in
step 1140 is yes, thenmethod 1100 execution jumps to step 1199. If the answer to the question instep 1150 is no, thenmethod 1100 execution jumps to step 1199. Instep 1199,host computing device 420 completes the execution ofmethod 1100.Host computing device 420, upon completion ofstep 1160, also completes (step 1199) executingmethod 1100. -
Fig. 12 is a flowchart depicting operations of anexemplary method 1200 for sharing data securely byperipheral device 230, according to some embodiments of the present disclosure. The steps ofmethod 1200 may be performed byperipheral device 230 for purposes of illustration. It will be appreciated that the illustratedmethod 1200 may be altered to modify the order of steps and to include additional steps. - In
step 1210,peripheral device 230 may receive a second key (e.g., second key 432) from host computing device (e.g., host computing device 420).Peripheral device 230 may receivesecond key 432. In some embodiments,host computing device 420 may delegate sharing the second key to another host computing device. In some embodiments,CIMR 110 may help hostcomputing device 420 to send the second key toperipheral device 230. - In
step 1220,peripheral device 230 may encrypt available data usingsecond key 432.Peripheral device 230 may capture data (e.g., data 440) before encrypting data usingsecond key 432. In some embodiments,peripheral device 230 may - In
step 1230,peripheral device 230 may send encrypted data to hostcomputing device 420.Peripheral device 230 may send encrypted data directly tohost computing device 420. In some embodiments,peripheral device 230 may request another intermediary host computing device orCIMR 110 to help send the encrypted data to hostcomputing device 420. - In
step 1240,peripheral device 230 may check if there is a feedback response indicating thathost computing device 420 has validatedperipheral device 230's validity.Peripheral device 230 may confirm its identity validation to share data withhost computing device 420. If the answer to the question instep 1240 is no, i.e.,host computing device 420 failed to validateperipheral device 230's identity, then execution ofmethod 1200 may jump to step 1299.Host computing device 420 may validate the identity ofperipheral device 230 by successfully identifying the first key (e.g., first key 431) to decrypt and decrypting the encrypted data sent instep 1220. - If the answer to the question in
step 1240 is yes, i.e.,host computing device 420 could validateperipheral device 230's identity, thenmethod 1200 execution may proceed to step 1245. Instep 1245,peripheral device 230 may check if there is a request for a session. If the answer to the question instep 1250 is no, i.e., there is no session requirement, then execution ofmethod 1200 may jump to step 1295. - If the answer to the question in
step 1245 is yes, i.e., there are session requirements, then execution ofmethod 1200 may proceed to step 1250. Instep 1250,peripheral device 230 may access a third cryptographic key (e.g., session key 741).Peripheral device 230 may access the third key by requestingsecure enclave 250 to provide the third key.Secure enclave 250 may generate the third key or select a previously generated third key fromkey store 252.Peripheral device 230's request to access the third key may result in locking the third key for use byperipheral device 230 to communicate withhost computing device 420. - In
step 1260,peripheral device 230 may encrypt the third key usingsecond key 432.Main processing unit 260 ofperipheral device 230 may encrypt the third usingsecond key 432.Main processing unit 260 may temporarily store the encrypted third key inmemory 240 and reuse it for future communication sessions. - In
step 1270,peripheral device 230 may send the encrypted third key to hostcomputing device 420 directly or overnetwork 140. Similar to data instep 1220,peripheral device 230 may share either directly or through an intermediary encrypted third key withhost computing device 420. In some embodiments,peripheral device 230 may send an encrypted third key with a group of host computing devices for establishing communication sessions. - In
step 1280,peripheral device 230 may encrypt session data with the third key.Peripheral device 230 may capture data (e.g., 440) from the environment before encrypting the data. A user (e.g., user 460) intending to communicate withhost computing device 420 may supply the captured data by interacting withperipheral device 230. - In
step 1290,peripheral device 230 may send encrypted session data to hostcomputing device 420.Peripheral device 230 may directly send encrypted session data to hostcomputing device 420. In some embodiments,peripheral device 230 may rely on other host computing devices andCIMR 110 to send encrypted session data to hostcomputing device 420. In some embodiments,peripheral device 230 may send encrypted data to a group of host computing devices to whom encrypted third key was sent instep 1270.Peripheral device 230, upon completion ofstep 1290, also completes (step 1299) executingmethod 1200. - In
step 1295,peripheral device 230 may securely communicate with a host computing device group (including host computing device 420) by encrypting data atperipheral device 230 and sending it to hostcomputing device 420.Peripheral device 230 may also decrypt data received fromhost computing device 420 usingsecond key 432.Peripheral device 230 participating in secure communication with multiple host computing devices may still use the same second key to encrypt data sent to multiple host computing devices and decrypt data received from the same host computing devices.Peripheral device 230, upon completion ofstep 1295, also completes (step 1299) executingmethod 1200. -
Fig. 13 is a flowchart depicting operations of anexemplary method 1300 for initiating a secure communication session (e.g., communication session 710) by registeredperipheral device 230, according to some embodiments of the present disclosure. The steps ofmethod 1300 may be performed byperipheral device 230 for purposes of illustration. It will be appreciated that the illustratedmethod 1300 may be altered to modify the order of steps and to include additional steps. - In
step 1310,peripheral device 230 may receive payload (e.g., session data packet 960) that includes encrypted challenge message (e.g., challenge 961) from a host computing device (host computing device 420).Peripheral device 230 may consider receipt of a challenge message as a request fromhost computing device 420 to initiate a secure communication using an encryption mechanism. In some embodiments, the receipt of the challenge message may be considered a request to restart a previously paused secure communication betweenperipheral device 230 andhost computing device 420. The received payload may also include a hash to a second key (e.g., second key 432).Peripheral device 230 may use the hash of second key 432 to determine the host computing device (e.g., host computing device 420) who may have previously sharedsecond key 432 and/or hash of second key 432 during the registration process (as described in connection withFig. 11 above). - In
step 1320,peripheral device 230 may check if the received challenge message includes a hash key (e.g., hash 962). In some embodiments, theperipheral device 230 may check if the receivedhash 962 is a valid hash key by using it to lookup inhash map 241. - If the answer in
step 1320 is no, themethod 1300 jumps to step 1380. If the answer instep 1320 is yes, i.e., the message includes a hash key (e.g., hash 962), themethod 1300 proceeds to step 1330. Theperipheral device 230 may utilize thehash key 961 to identify second key 432 associated withhost computing device 420. Theperipheral device 230 may requestmain processing unit 260 tolookup hash 962 findsecond key 432. Thehash map 241 may provide the storage location of second key 432 insecure enclave 250 used to retrieve second key 432 using trustedpartner module 253. The trustedpartner module 253 may access the second key 432 fromkey store 252 and share it withperipheral device 230 to decryptchallenge 961. - If the answer in
step 1330 is no, themethod 1300 jumps to step 1380. If the answer instep 1320 is yes, i.e., ischallenge 961 is valid and can be decrypted, themethod 1300 proceeds to step 1330.Peripheral device 230 may check the validity ofchallenge 961 by evaluating the checksum of receivedchallenge 961 and comparing it with a checksum in the received payload (e.g., data packet 960). - In
step 1340,peripheral device 230 may decryptchallenge 961 usingsecond key 432. Theperipheral device 230 may retrieve thehash 962 from thedata packet 960, includingchallenge 961.Peripheral device 230 may parse the challenge message obtained by decryptingchallenge 961 usingsecond key 432. Parsing challenge message may include executing instructions in thechallenge 961 received byperipheral device 230 fromhost computing device 420. In some embodiments,peripheral device 230 may parse the challenge message to access configurable parameters to initiate a secure communication session. The configurable parameters may include the number of messages, amount of data, and time of communication session requested byhost computing device 420.Peripheral device 230 may also parse challenge message to learn about communication session termination criteria as described in connection withFig. 9 above. - In
step 1350,peripheral device 230 may generate a session key (e.g., session key 871) used in securing messaged shared during a communication session.Session key 871 may be a symmetric cryptographic key used for encryption and decryption of data captured byperipheral device 230 and decryption of captured data received byhost computing device 420. - In
step 1360,peripheral device 230 may generate an encrypted message indicating initiation of communication session and details of a secure communication session.Peripheral device 230 may indicate initiation of the communication session by including the decrypted challenge message in a session data packet (e.g., data packet 870). Encrypted message may also includesession key 871 generated instep 1350 to have secure communication.Peripheral device 230 may encrypt data packet, including decrypted challenge message and session key 871 withsecond key 432. - In
step 1370,peripheral device 230 may send an encrypted message with session key 871 tohost computing device 420 associated withsecond key 432. In some embodiments,peripheral device 230 may broadcast an encrypted message to allhost computing devices 120. In some embodiments,peripheral device 230 may multicast an encrypted message to host computing devices capable of communicating withperipheral device 230. -
Peripheral device 230 may begin sending captured data usingsession key 871 tohost computing device 420. In some embodiments,peripheral device 230 may not send a session message until it receives an acknowledgment for receipt ofsession key 871. -
Peripheral device 230, upon completion ofstep 1370, completes (step 1499) executingmethod 1300. -
Fig. 14 is a flowchart depicting operations of anexemplary method 1400 for a secure communication session insystem 100, according to some embodiments of the present disclosure. The steps ofmethod 1400 may be performed by components ofsystem 100 for purposes of illustration. It will be appreciated that the illustratedmethod 1400 may be altered to modify the order of steps and to include additional steps. - In
step 1410, a host computing device (e.g.,host computing device 420, desktop device 823) may send an encrypted message to a peripheral device (e.g., peripheral device 230). The encrypted message may include a challenge (e.g., challenge 961) indicating a request to initiate a communication session. The communication session initiation request may include a request to initiate data capture byperipheral device 230. - In
step 1420,desktop device 823 may receive a response. The response may include acceptance fromperipheral device 230 to initiate a secure communication session initiation requested instep 1410. - In
step 1430,desktop device 823 may verify if the received response includes an error message. An error message may be represented by an error code that needs to be looked up bydesktop device 823 to determine the actual error message.Desktop device 823 may be implemented usingcomputing device 300.Desktop device 823 may receive the response through peripheral devices controller 323 ornetwork interface 318. Upon reviewing the received response, if the answer to the question instep 1430 is yes, i.e., the received response includes an error message, then execution ofmethod 1400 may jump to step 1485. - If the answer to the question in
step 1420 is no, i.e., the received response has no error message, then execution ofmethod 1400 may proceed to step 1440. Instep 1440,desktop device 823 may verify if the received response is valid by evaluating the received response checksum and comparing it against the checksum provided along with the response. If the answer to the question instep 1440 is yes, i.e., the evaluated and checksum provided with response do not match, then the execution ofmethod 1400 may jump to step 1485. - If the answer to the question in
step 1440 is no, i.e., the received response is considered valid as the evaluated and checksum provided with the response match, then execution ofmethod 1400 may proceed to step 1445. Instep 1445, host computing device may decrypt the received response to access a symmetric key (e.g.,session key 741, symmetric key 982).Desktop device 823 may decrypt the received response using a first key (e.g., private key 851) of a cryptographic key pair (e.g., cryptographic key pair 851-852) that was previously shared withperipheral device 230.Desktop device 823 implemented usingcomputing device 300 may useCPUs 320 to decrypt the received response to access thesymmetric key 982. - In some embodiments, the received response may include a decrypted challenge message of
challenge 961 sent instep 1410. The decrypted challenge may indicate the success of the encrypted challenge. In some embodiment, the symmetric key's receipt may be considered an indication of a successful encrypted challenge. - In some embodiments, upon identifying a successful encrypted challenge,
desktop device 823 may validateperipheral device 230.Desktop device 823 may addperipheral device 230 or an identifier ofperipheral device 230 to a list of trusted peripheral devices to communicate with. The list may be refreshed after the current communication session or maintained for all communication (current and future) withperipheral device 230. The length of time of validation ofperipheral device 230 may be configurable and provided by a user (e.g., user 460). - In
step 1450,host computing device 420 may store the decrypted symmetric key 982 fromstep 1445 in acrypto keys database 150.Host computing device 420 may associate an identifier ofperipheral device 230 with symmetric key 982 before storing thesymmetric key 982 incrypto keys database 150. An identifier ofperipheral device 230 may be a unique ID such as a network IP address, a MAC address, or the device's serial number. In some embodiments,desktop device 823 may use the second key (e.g., public key 852) shared withperipheral device 230 as its identifier.Symmetric key 982 may be a temporary key that expires at the end of the requested communication session and is stored in memory (e.g., system memory 321). - In
step 1460,desktop device 823 may send a session data transmission request toperipheral device 230.Desktop device 823 may send an acknowledgment of symmetric key 982's receipt in place of a specialized session data transmission request, resulting in the transmission of session data byperipheral device 230.Desktop device 823 may encrypt the session transmission request usingsymmetric key 982. - In
step 1470,desktop device 823 may receive encrypted data fromperipheral device 230.Peripheral device 230 may directly send the encrypted data todesktop device 823.Peripheral device 230 may communicate withdesktop device 823 implemented oncomputing device 300 through peripheral devices controller 323. For example, a USB based camera peripheral device connected todesktop device 823 may receive data transmitted by the camera peripheral device at a USB hub peripheral devices controller. In some embodiments,desktop device 823 may receive the encrypted message overcloud network 140 atnetwork interface 318. - In
step 1485,desktop device 823 may send an acknowledgment for the received encrypted data.Desktop device 823 may send an acknowledgment upon successful decryption of the received data. In some embodiments,desktop device 823 may also need to validate the received data before sending an acknowledgment message.Desktop device 823 may validate the received message by evaluating the received message checksum and matching it with the checksum provided by theperipheral device 230 as part of the received data. Upon successful decryption and validation of the received data,desktop device 823 may store the received data in memory (e.g., system memory 321) or persisted storage (e.g., storage 328). - If the answer to the question in
step method 1300 jumps to step 1385. Instep 1485,desktop device 823 may stop the session.Desktop device 823 may stop the communication session by deleting thesymmetric key 982.Desktop device 823 may additionally share the termination of session withperipheral device 230 using a command message instep 1490. - In
step 1490,desktop device 823 may send an encrypted command message to continue receiving session data fromperipheral device 230. In some embodiments, the command message may be part of the acknowledgment message sent instep 1480. The command message may include error codes related to the received data instep 1470. The error code may indicate a request to retransmit data fromstep 1470. In some embodiments, the command message may indicate a request for termination of the communication session or include additional information for the future transmitted data. For example, the additional information may include an update to the interval or amount of data or pause the data requested by thedesktop device 823.System 100, upon completion ofstep 1490, completes (step 1499) executingmethod 1400. - Various operations or functions are described herein, which may be implemented or defined as software code or instructions. Such content may be directly executable ("object" or "executable" form), source code, or difference code ("delta" or "patch" code). Software implementations of the embodiments described herein may be provided via an article of manufacture with the code or instructions stored thereon, or via a communication interface method to send data via the communication interface. A machine or computer readable storage medium may cause a machine to perform the functions or operations described and includes any mechanism that stores information in a form accessible by a machine (e.g., computing device, electronic system, and the like), such as recordable/non-recordable media (e.g., read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, and the like). A communication interface includes any mechanism that interfaces with any of a hardwired, wireless, optical, or similar, medium to communicate with another device, such as a memory bus interface, a processor bus interface, an Internet connection, a disk controller, and the like. The communication interface may be configured by providing configuration parameters and/or sending signals to prepare the communication interface to provide a data signal describing the software content. The communication interface may be accessed via one or more commands or signals sent to the communication interface.
- The present disclosure also relates to a system for performing the operations herein. This system may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CDROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
- Embodiments of the present disclosure may be implemented with computer executable instructions. The computer-executable instructions may be organized into one or more computer-executable components or modules. Aspects of the disclosure may be implemented with any number and organization of such components or modules. For example, aspects of the disclosure are not limited to the specific computer-executable instructions or the specific components or modules illustrated in the figures and described herein. Other embodiments may include different computer-executable instructions or components having more or less functionality than illustrated and described herein.
- Computer programs based on the written description and methods of this specification are within a software developer's skill. The various programs or program modules may be created using a variety of programming techniques. For example, program sections or program modules may be designed by means of JavaScript, Scala, Python, Java, C, C++, assembly language, or any such programming languages, as well as data encoding languages (such as XML, JSON, etc.), query languages (such as SQL), presentation-related languages (such as HTML, CSS, etc.) and data transformation language (such as XSL). One or more of such software sections or modules may be integrated into a computer system, non-transitory computer readable media, or existing communications software.
- The words "comprising," "having," "containing," and "including," and other similar forms are intended to be equivalent in meaning and be interpreted as open ended, in that, an item or items following any one of these words is not meant to be an exhaustive listing of such item or items, or meant to be limited to only the listed item or items. In addition, the singular forms "a," "an," and "the" are intended to include plural references, unless the context clearly dictates otherwise.
- Having described aspects of the embodiments in detail, it will be apparent that modifications and variations are possible without departing from the scope of the appended claims.
Claims (15)
- A computer-implemented method for managing cryptographic keys needed for peripheral devices to securely communicate with host computing devices (120, 420), the method comprising:receiving (1030), at a centralized identity management resource (110), a first key that is part of a cryptographic key pair comprising the first key and a second key;sending (1050) the second key (432) of the cryptographic key pair to a peripheral device (130, 230), wherein the second key is stored at the peripheral device for use by the peripheral device (130; 230) in encrypting data;identifying (1060), by the centralized identity management resource from the host computing devices, a set of host computing devices (120; 420) that is permitted to engage in secure communications with the peripheral device (130; 230) utilizing the first key of the cryptographic key; andmaking available (1070) the first key (431) from the centralized identity management resource to the set of host computing devices (120; 420) to enable the first host computing device (120; 420) to decrypt data encrypted by the peripheral device (130; 230) using the second key.
- The method of claim 1, comprising: associating (1040) the first key with an identity of the peripheral device (130; 230).
- The method of claim 1 or 2, comprising: validating (1010) ahost computing device (120; 420) of the set of host computing devices before making available the first key to the host computing device (120; 420).
- The method of claim 3, wherein the validating includes one or more of: authenticating the host computing device (120; 420) or determining that the host computing device (120; 420) is actively connected to a network; and/or wherein the validating is performed according to a security policy.
- The method of any of claims 1 to 4, wherein the first key is received at the centralized identity management resource as part of a registration process for the peripheral device (130; 230).
- The method of claim 5, wherein the registration process includes identifying a plurality of host computing devices (120; 420) to which the first key may be made available.
- The method of any of claims 1 to 6, comprising: making available the first key from the centralized identity management resource to a plurality of host computing devices (120; 420) to enable each of the plurality of host computing devices (120; 420) to decrypt the encrypted data.
- The method of claim 7, wherein the making available the first key from the centralized identity management resource to the plurality of host computing devices (120; 420) is performed according to a security policy.
- A computer-implemented method for securely communicating between host computing devices (120, 420) and peripheral devices (230), the method comprising:sending, from a first host computing device (120; 420) to a centralized identity management resource (110), a prompt indicating that the first host computing device (120; 420) seeks to engage in secure communications with a peripheral device (230);participating, by the first host computing device (120; 420), in a validation process with the centralized identity management resource, the validation process being for validating the first host computing device (120; 420);obtaining by the first host computing device (120; 420), conditional on a successful result of the validation process, access to a first key (431) that is part of a cryptographic key pair comprising the first key and a second key,
wherein the second key (432) is stored at the peripheral device for use by the peripheral device in encrypting data (440);receiving, by the first host computing device (120; 420) from the peripheral device (130; 230), data encrypted by the peripheral device (130; 230) using the second key; anddecrypting, by the first host computing device (120; 420) using the first key, the encrypted data received from peripheral device (130; 230). - The method of claim 9, wherein obtaining access to the first key includes one of:receiving the first key from the centralized identity management resource; orreceiving the first key from a second host computing device to which the first key was stored in a distributed manner.
- The method of claim 9 or 10, comprising:
participating, by the first host computing device, in a synchronization process with the centralized identity management resource, wherein the centralized identity management resource provides access to a replacement key that replaces the first key. - The method of claim 11, wherein the synchronization process includes multiple host computing devices, including the first host computing device, being provided access to the replacement key.
- The method of any of claims 9 to 12, comprising, as part of the validation process, one or more of:indicating to the centralized identity management resource a version of software on the first host computing device (120; 420);indicating to the centralized identity management resource a network connection status; orproviding to the centralized identity management resource authentication information.
- The method of any of claims 9 to 13, wherein the validation process is performed according to a policy implemented at the centralized identity management resource.
- A computer-readable storage medium storing instructions which, when executed by at least one processor of a computing device, cause the computing device to perform the method of any of claims 1 to 14.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/219,401 US11258590B1 (en) | 2021-03-31 | 2021-03-31 | Coordinated management of cryptographic keys for communication with peripheral devices |
US17/219,333 US11245517B1 (en) | 2021-03-31 | 2021-03-31 | Identity-based security layer for peripheral computing devices |
Publications (3)
Publication Number | Publication Date |
---|---|
EP3952204A2 EP3952204A2 (en) | 2022-02-09 |
EP3952204A3 EP3952204A3 (en) | 2022-03-09 |
EP3952204B1 true EP3952204B1 (en) | 2024-07-03 |
Family
ID=77640378
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP21194676.9A Pending EP3955516A3 (en) | 2021-03-31 | 2021-09-02 | Identity-based security layer for peripheral computing devices |
EP21194675.1A Active EP3952204B1 (en) | 2021-03-31 | 2021-09-02 | Coordinated management of cryptographic keys for communication with peripheral devices |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP21194676.9A Pending EP3955516A3 (en) | 2021-03-31 | 2021-09-02 | Identity-based security layer for peripheral computing devices |
Country Status (1)
Country | Link |
---|---|
EP (2) | EP3955516A3 (en) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7142674B2 (en) * | 2002-06-18 | 2006-11-28 | Intel Corporation | Method of confirming a secure key exchange |
GB0414840D0 (en) * | 2004-07-02 | 2004-08-04 | Ncr Int Inc | Self-service terminal |
US8578161B2 (en) * | 2010-04-01 | 2013-11-05 | Intel Corporation | Protocol for authenticating functionality in a peripheral device |
US10887296B2 (en) * | 2012-12-31 | 2021-01-05 | Ncr Corporation | Secure provisioning manifest for controlling peripherals attached to a computer |
EP3477531A1 (en) * | 2017-10-31 | 2019-05-01 | ETH Zurich | Integrity of user input in web pages |
WO2019130042A1 (en) * | 2017-12-29 | 2019-07-04 | Vandelay | Integrity control of a secured peripheral device |
US11729612B2 (en) * | 2018-03-08 | 2023-08-15 | Cypress Semiconductor Corporation | Secure BLE just works pairing method against man-in-the-middle attack |
-
2021
- 2021-09-02 EP EP21194676.9A patent/EP3955516A3/en active Pending
- 2021-09-02 EP EP21194675.1A patent/EP3952204B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3952204A3 (en) | 2022-03-09 |
EP3952204A2 (en) | 2022-02-09 |
EP3955516A2 (en) | 2022-02-16 |
EP3955516A3 (en) | 2022-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11558381B2 (en) | Out-of-band authentication based on secure channel to trusted execution environment on client device | |
US11258590B1 (en) | Coordinated management of cryptographic keys for communication with peripheral devices | |
CN108476404B (en) | Apparatus and method for pairing | |
US10574460B2 (en) | Mechanism for achieving mutual identity verification via one-way application-device channels | |
KR101941049B1 (en) | Method and system for encrypted communications | |
KR20190104401A (en) | System access using a mobile device | |
US11556617B2 (en) | Authentication translation | |
US20230283475A1 (en) | Identity authentication system, method, apparatus, and device, and computer-readable storage medium | |
US20210328971A1 (en) | Secure service mesh | |
US11677547B1 (en) | Mobile authenticator for performing a role in user authentication | |
US11489674B2 (en) | Method and network node for managing access to a blockchain | |
WO2020000491A1 (en) | File storage method and apparatus, and storage medium | |
CN114513345A (en) | Information transmission system, user device and information security hardware module | |
WO2019120231A1 (en) | Method and device for determining trust state of tpm, and storage medium | |
US11997192B2 (en) | Technologies for establishing device locality | |
CN117041956A (en) | Communication authentication method, device, computer equipment and storage medium | |
EP3952204B1 (en) | Coordinated management of cryptographic keys for communication with peripheral devices | |
US11245517B1 (en) | Identity-based security layer for peripheral computing devices | |
CN116961973A (en) | Data transmission method, device, electronic equipment and computer readable storage medium | |
CN112260997B (en) | Data access method, device, computer equipment and storage medium | |
US20230403138A1 (en) | Agentless single sign-on techniques | |
WO2023141864A1 (en) | Conference data transmission method, apparatus and system, electronic device and readable medium | |
US20240289488A1 (en) | System and method for data access management using auxiliary devices | |
TWI673621B (en) | Information registration, authentication method and device | |
CN115915116A (en) | Data transmission method and device and electronic equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN PUBLISHED |
|
REG | Reference to a national code |
Ref document number: 602021015051 Country of ref document: DE Ref country code: DE Ref legal event code: R079 Free format text: PREVIOUS MAIN CLASS: H04L0009080000 Ipc: H04L0009400000 |
|
PUAL | Search report despatched |
Free format text: ORIGINAL CODE: 0009013 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AK | Designated contracting states |
Kind code of ref document: A3 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: H04L 9/08 20060101ALI20220131BHEP Ipc: H04L 9/40 20220101AFI20220131BHEP |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20220908 |
|
RBV | Designated contracting states (corrected) |
Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230607 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
17Q | First examination report despatched |
Effective date: 20230726 |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
INTG | Intention to grant announced |
Effective date: 20240402 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: H04L 9/32 20060101ALI20240318BHEP Ipc: G06F 21/84 20130101ALI20240318BHEP Ipc: G06F 21/83 20130101ALI20240318BHEP Ipc: H04L 9/08 20060101ALI20240318BHEP Ipc: H04L 9/40 20220101AFI20240318BHEP |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE PATENT HAS BEEN GRANTED |
|
RIN1 | Information on inventor provided before grant (corrected) |
Inventor name: ELKABIR, HADAS Inventor name: HECHT, ASAF Inventor name: TSARFATI, OMER |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602021015051 Country of ref document: DE |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20240918 Year of fee payment: 4 |