IP Library › Granted Patent US 10,855,448
Granted Patent B2
US 10,855,448 · App. 15/970,418 · Granted Dec 1, 2020

Apparatus and method for using blockchains to establish trust between nodes in industrial control systems or other systems

Inventors: Kevin McMurdie (Surprise, AZ); Ganesh P. Gadhe (Phoenix, AZ)
Assignee: Honeywell International Inc.
H04L9/0643H04L9/0825H04L9/30H04L9/3263H04L2209/38
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,855,448
App. No.
15/970,418
Filed
May 3, 2018
Granted
Dec 1, 2020
Kind
B2
Art Unit
2435
USPC
713/168
Abstract

An apparatus includes at least one processor configured to determine whether a blockchain identifies a valid smart contract indicating that communication with a specified node is permitted. In response to determining that the blockchain does identify the valid smart contract, the at least one processor is configured to establish a secure communication session with the specified node. In response to determining that the blockchain does not identify the valid smart contract, the at least one processor is configured to generate a new smart contract associated with the specified node, establish the secure communication session with the specified node in response to user approval of the new smart contract, and not establish the secure communication session with the specified node in response to user rejection of the new smart contract.

Claims (65)

1. An apparatus for using blockchains to establish trust between nodes in an industrial control system comprising:

at least one processor and a memory storing a blockchain configured to:

determine whether the blockchain identifies a valid smart contract indicating that communication with a specified node is permitted;

in response to determining that the blockchain does identify the valid smart contract, establish a secure communication session with the specified node; and

in response to determining that the blockchain does not identify the valid smart contract:

generate a new smart contract associated with the specified node;

in response to user approval of the new smart contract, establish the secure communication session with the specified node, wherein the at least one processor is further configured to:

access a copy of the blockchain in the memory to determine whether the blockchain identifies the valid smart contract;

generate an update to the blockchain and updating the copy of the blockchain in the memory using the update, the update identifying the new smart contract; and

publish the updated blockchain to one or more nodes for updating one or more additional copies of the blockchain; and

in response to user rejection of the new smart contract, not establish the secure communication session with the specified node.

2. The apparatus of claim 1 , wherein the at least one processor is further configured, in response to the user rejection of the new smart contract, to:

generate an update to the blockchain and update the copy of the blockchain using the update, the update identifying the rejection of the new smart contract; and

publish the update to one or more host nodes for updating one or more additional copies of the blockchain.

3. The apparatus of claim 1 , wherein:

the at least one processor is further configured, in response to determining that the blockchain does not identify the valid smart contract, to request identifying information from the specified node and to receive the identifying information from the specified node;

the identifying information comprises a public cryptographic key of the specified node; and

the update to the blockchain comprises a hash of the public cryptographic key of the specified node.

4. The apparatus of claim 1 , wherein the at least one processor is configured to determine whether the blockchain identifies the valid smart contract in response to receiving a request for communication from the specified node.

5. The apparatus of claim 1 , wherein the at least one processor is configured to receive an indication whether the blockchain identifies the valid smart contract from another device that has access to the blockchain.

6. The apparatus of claim 1 , wherein the at least one processor is further configured to:

generate a genesis block for the blockchain;

receive one or more requests to join and use the blockchain from one or more host nodes; and

provide one or more copies of the blockchain to the one or more host nodes.

7. A non-transitory computer readable medium containing instructions, for using blockchains to establish trust between nodes in industrial control systems, that when executed cause at least one processor using a memory storing a blockchain to:

determine whether the blockchain identifies a valid smart contract indicating that communication with a specified node is permitted;

in response to determining that the blockchain does identify the valid smart contract, establish a secure communication session with the specified node; and

in response to determining that the blockchain does not identify the valid smart contract:

generate a new smart contract associated with the specified node;

in response to user approval of the new smart contract, establish the secure communication session with the specified node, wherein the at least one processor is further configured to:

access a copy of the blockchain in the memory to determine whether the blockchain identifies the valid smart contract;

generate an update to the blockchain and updating the copy of the blockchain in the memory using the update, the update identifying the new smart contract; and

publish the updated blockchain to one or more nodes for updating one or more additional copies of the blockchain; and

in response to user rejection of the new smart contract, not establish the secure communication session with the specified node.

8. The non-transitory computer readable medium of claim 7 , further containing instructions that when executed cause the at least one processor, in response to the user rejection of the new smart contract, to:

generate an update to the blockchain and update the copy of the blockchain using the update, the update identifying the rejection of the new smart contract; and

publish the update to one or more host nodes for updating one or more additional copies of the blockchain.

9. The non-transitory computer readable medium of claim 7 , further containing instructions that when executed cause the at least one processor, in response to determining that the blockchain does not identify the valid smart contract, to request identifying information from the specified node and to receive the identifying information from the specified node;

wherein the identifying information comprises a public cryptographic key of the specified node;

wherein the update to the blockchain comprises a hash of the public cryptographic key of the specified node.

10. The non-transitory computer readable medium of claim 7 , further containing instructions that when executed cause the at least one processor to:

generate a genesis block for the blockchain;

receive one or more requests to join and use the blockchain from one or more host nodes; and

provide one or more copies of the blockchain to the one or more host nodes.

11. A method for using blockchains to establish trust between nodes in industrial control systems comprising:

determining, by at least one processor, whether a blockchain identifies a valid smart contract indicating that communication with a specified node is permitted;

in response to determining that the blockchain does identify the valid smart contract, establishing a secure communication session with the specified node; and

in response to determining that the blockchain does not identify the valid smart contract:

generating a new smart contract associated with the specified node;

in response to user approval of the new smart contract, establishing the secure communication session with the specified node, wherein in response to the user approval of the new smart contract:

accessing a copy of the blockchain in a memory storing the blockchain to determine whether the blockchain identifies the valid smart contract,

generating an update to the blockchain and updating the copy of the blockchain in the memory using the update, the update identifying the new smart contract; and

publishing the update blockchain to one or more host nodes for updating one or more additional copies of the blockchain; and

in response to user rejection of the new smart contract, not establishing the secure communication session with the specified node.

12. The method of claim 11 , further comprising, in response to the user rejection of the new smart contract:

generating an update to the blockchain and updating the copy of the blockchain using the update, the update identifying the rejection of the new smart contract; and

publishing the update to one or more host nodes for updating one or more additional copies of the blockchain.

13. The method of claim 11 , further comprising:

in response to determining that the blockchain does not identify the valid smart contract, requesting identifying information from the specified node and receiving the identifying information from the specified node;

wherein the identifying information comprises a public cryptographic key of the specified node;

wherein the update to the blockchain comprises a hash of the public cryptographic key of the specified node.

14. The method of claim 11 , wherein:

the blockchain does identify the valid smart contract;

the valid smart contract was generated by one of the specified node and a second node; and

the secure communication session is established between the specified node and a third node.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2018
From: MCMURDIE, KEVIN; GADHE, GANESH P.
To: HONEYWELL INTERNATIONAL INC.
Reel/Frame 045709/0805 →
Continuity (1)
Related Publication 20190342077A1 · Nov 7, 2019
Cited By (2)
US 12,254,467 US 12,658,297