Patient Control Analgesia (PCA) pumps are commonly used for administering pain medication intravenously. In order to efficiently and secure transmit data with various other medical devices in a care setting, PCA pumps, and the other devices, must be able to communicate via a network. The preferred scheme is a Control Area Network (CAN) bus. A CAN bus is a half-duplex bus network. Moreover, in a medical setting, communications must be encrypted on a point to point manner and then be broadcasted. As part of existing information exchange schemes, there is use of Transport Layer Security (TLS), but this requires point to point connection between two devices. Relatedly, to exchange information over a CAN bus, keys are exchanged. Unfortunately, encrypted communication, point to point and broadcast, via CAN bus, when many devices are in a network, can present significant challenge for key exchange.
Currently, there are various key exchange methods via a CAN bus network, such as Diffie-Hellman. Unfortunately, existing key exchange methods make public key infrastructure (PKI) very “expensive” in terms of bandwidth utilization, memory use, and time. Specifically, key exchange via standard methods is very “costly” when used over a CAN bus communication. Existing key exchanges rely on significant amount of data communication between devices at a point to point level of communication. CAN bus has limited bandwidth for communication. Each device would need to do a key exchange with each other device. This would require ((n−1)*n)/2) key exchanges with the respective data for each exchange (amount of data for each exchange varies). The key exchange occurs during operation and there must be no interruption of device operation as the result of key exchange. Moreover, TLS requires a direct point to point connection between two devices. In a medical setting, PCA pump hubs need to utilize broadcast communication. Relying only on TLS would require each device to maintain ((n−1)*n)/2) tunnels, and repeat each packet (n−1) times. This would consume virtually all bandwidth on communication that is of no interest to any particular device. As such, for PCA pump hubs, current key exchange methodologies are not practical, effective methods.
A need accordingly exists for a key master for use by a multi-device system, where the key master maintains a rekey timer and updates keys as needed, and where each client connects to the key master to obtain the key.
Example systems, methods, and apparatus are disclosed herein for symmetric key exchange via TLS on CAN bus interface for multiple devices. The example systems, methods, and apparatus are configured to allow devices, such as PCA pumps, to attain master heartbeat status within a CAN bus network. Additionally, the example systems, methods, and apparatus are configured to allow devices in the CAN bus network to vote for a master device and for a new master device to be elected if the current master device is removed from the CAN bus network. The disclosed systems, methods, and apparatus minimize data usage on a CAN bus network by reducing the need to use excessive broadband communications because each device on the network does not need to be individually connected to each other device on the network. As such, the disclosed systems, methods, and apparatus increase network efficiency simplify communication between devices in a network, such as networks including PCA pumps.
In light of the disclosure herein, and without limiting the scope of the invention in any way, in a first aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, an infusion pump system including a plurality of infusion pumps, each of the infusion pumps including a MAC identifier stored in a memory device; a hub including a plurality of mechanical connectors, each mechanical configured to retain one of the plurality of infusion pumps when connected, a plurality of CAN interfaces, each CAN interface configured to communicatively couple to a respective infusion pump, and a CAN bus connected to each of the plurality of CAN interfaces; and each infusion pump is configured to: perform a first stage of a Bootstrap Timeout during which each of the plurality of PCA pumps creates a MAC ID table by broadcasting its MAC identifier and receiving broadcasts of MAC identifiers from the other infusion pumps, when the MAC identifier of the infusion pump is not the lowest MAC identifier within the MAC ID table, refrain from being designated as a potential key master, and when the MAC identifier of the infusion pump is the lowest MAC identifier within the MAC ID table, enter a second stage, and perform the second stage, in which the infusion pump transmits a master request message and its MAC identifier to the plurality of PCA pumps and increases its vote counter by one, concurrently subsequent potential key masters send their master request and MAC identifier to the infusion pump, and the infusion pump transmits a master reject to the subsequent potential key masters when their MAC identifiers have a higher value than the MAC identifier of the infusion pump and the infusion pump increases its vote count by one, and the infusion pump withdraws from voting and sets its counter to zero when at least one of the MAC identifiers of the other potential key masters is lower than the MAC identifier of the infusion pump. The infusion pump is designated as a key master when its vote counter reaches a value of three. The key master transmits a master reject to any additional master request message, the key master updates its heartbeat key status to master, and the key master starts a rekey timer.
In a second aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, the Bootstrap Timeout is 3 seconds.
In a third aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, the infusion pump withdraws from voting and sets its counter to zero when it receives a master reject.
In a fourth aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, the infusion pump increases its vote counter by one three seconds after it transmits the master request message and its MAC identifier to the plurality of PCA pumps.
In a fifth aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, the infusion pump includes at least one of a syringe pump, a PCA pump, a large volume pump, or a nutrition pump.
In a sixth aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, the infusion pumps further comprise a transceiver.
In a seventh aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, a networked system comprising: a plurality of devices, each of the devices including a MAC identifier stored in a memory device; a hub including: a plurality of mechanical connectors, each mechanical configured to retain one of the plurality of devices when connected, a plurality of CAN interfaces, each CAN interface configured to communicatively couple to a respective device, and a CAN bus connected to each of the plurality of CAN interfaces; and each device is configured to: perform a first stage of a Bootstrap Timeout during which each of the plurality of devices creates a MAC ID table by broadcasting its MAC identifier and receiving broadcasts of MAC identifiers from the other devices, when the MAC identifier of the device is not the lowest MAC identifier within the MAC ID table, refrain from being designated as a potential key master, and when the MAC identifier of the device is the lowest MAC identifier within the MAC ID table, enter a second stage, and perform the second stage, during which the device transmits a master request message and its MAC identifier to the plurality of devices and increases its vote counter by one, concurrently subsequent potential key masters send their master request and MAC identifier to the device, and the device transmits a master reject to the subsequent potential key masters when their MAC identifiers have a higher value than the MAC identifier of the infusion pump and the device increases its vote count by one, and the device withdraws from voting and sets its counter to zero when at least one of the MAC identifiers of the other potential key masters is lower than the MAC identifier of the device. The device is designated as a key master when its vote counter reaches a value of three. The key master transmits a master reject to any additional master request message, the key master updates its heartbeat key status to master, and the key master starts a rekey timer.
In an eighth aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, the Bootstrap Timeout is 3 seconds.
In a ninth aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, the device withdraws from voting and sets its counter to zero when it receives a master reject.
In a tenth aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, the device increases its vote counter by one three seconds after it transmits the master request message and its MAC identifier to the plurality of devices.
In an eleventh aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, the device is an infusion pump.
In a twelfth aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, the infusion pump includes at least one of a syringe pump, a PCA pump, a large volume pump, or a nutrition pump.
In a thirteenth aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, the infusion pumps further comprise a transceiver.
In a fourteenth aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, an infusion pump system comprising: a hub including: a plurality of mechanical connectors, each mechanical configured to retain one of the plurality of infusion pumps when connected, a plurality of CAN interfaces, each CAN interface configured to communicatively couple to a respective infusion pump, and a CAN bus connected to each of the plurality of CAN interfaces; and a plurality of infusion pumps. Each infusion pump includes a processor and a memory storing (i) a MAC identifier, and (ii) machine-readable instructions, which when executed, cause the processor of the infusion pump to: perform a first stage of a Bootstrap Timeout during which each of the plurality of PCA pumps creates a MAC ID table by broadcasting its MAC identifier and receiving broadcasts of MAC identifiers from the other infusion pumps, when the MAC identifier of the infusion pump is not the lowest MAC identifier within the MAC ID table, refrain from being designated as a potential key master, and when the MAC identifier of the infusion pump is the lowest MAC identifier within the MAC ID table, enter a second stage, and perform the second stage, during which the infusion pump transmits a master request message and its MAC identifier to the plurality of PCA pumps and increases its vote counter by one, concurrently subsequent potential key masters send their master request and MAC identifier to the infusion pump, and the infusion pump transmits a master reject to the subsequent potential key masters when their MAC identifiers have a higher value than the MAC identifier of the infusion pump and the infusion pump increases its vote count by one, and the infusion pump withdraws from voting and sets its counter to zero when at least one of the MAC identifiers of the other potential key masters is lower than the MAC identifier of the infusion pump. The infusion pump is designed as a key master when its vote counter reaches a value of three. The key master transmits a master reject to any additional master request message, the key master updates its heartbeat key status to master, and the key master starts a rekey timer.
In a fifteenth aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, the Bootstrap Timeout is 3 seconds.
In a sixteenth aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, the infusion pump withdraws from voting and sets its counter to zero when it receives a master reject.
In a seventeenth aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, the infusion pump increases its vote counter by one three seconds after it transmits the master request message and its MAC identifier to the plurality of PCA pumps.
In a eighteenth aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, the infusion pump includes at least one of a syringe pump, a PCA pump, a large volume pump, or a nutrition pump.
In a nineteenth aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, the infusion pumps further comprise a transceiver.
In a twentieth aspect of the present disclosure, which may be combined with any other aspect listed herein unless specified otherwise, the rekey timer is 1 minute, 5 minutes, 15 minutes, 30 minutes, 60 minutes, 90 minutes, or 120 minutes.
In a twenty-first aspect of the present disclosure, any of the structure, functionality, and alternatives disclosed in connection with any one or more of
In light of the present disclosure and the above aspects, it is therefore an advantage of the present disclosure to remove the overhead of TLS tunnels.
It is another advantage of the present disclosure to eliminate the need for key exchange with each device in a network and the associated use of broadcast communication.
Additional features and advantages are described in, and will be apparent from, the following Detailed Description and the Figures. The features and advantages described herein are not all-inclusive and, in particular, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the figures and description. Also, any particular embodiment does not have to have all of the advantages listed herein and it is expressly contemplated to claim individual advantageous embodiments separately. Moreover, it should be noted that the language used in the specification has been selected principally for readability and instructional purposes, and not to limit the scope of the inventive subject matter.
Methods, systems, and apparatus are disclosed herein for symmetric key exchange via TLS on CAN bus interface for multiple devices. The example methods, systems, and apparatus are configured to elect a master PCA pump for key exchanges in a CAN bus network with a plurality of PCA pumps. Additionally, the example methods, systems, and apparatus are configured to prevent any two PCA pumps being the key master. As such, the bandwidth for the network is not excessively taxed for symmetric key exchanges. When PCA pumps are connected to a hub, the PCA pumps join the CAN bus network. Upon joining the CAN bus network, during each PCA pump's bootstrap timeout, the PCA pumps use transceivers to exchange their MAC identifiers (IDs), from a memory, to all the existing PCA pumps in the CAN bus network. Once the bootstrap timeout ends, each PCA pump populates a MAC ID table in its memory and compares all the entries in the MAC ID table to determine if the PCA pump should advance to the voting stage. If the PCA pump has the lowest MAC ID within its MAC ID table, the PCA pump enters the voting stage. During the voting stage, the PCA pump sends master requests prompts to all the PCA pumps in the network. If the PCA pump's internal vote counter reaches a count of three, such that the PCA pump sends a master request without any master rejects from the other PCA pumps, the PCA pump becomes key master. Moreover, the method described herein is coded into the PCA pumps to be performed after the PCA pumps are connected to and receive an address from the hub. Thus, after the pumps are added to the hub, there is a handshake with the hub where the hub determines which pumps are located at which positons of pump modules. After the pumps are identified by the hub, they then determine which of the pumps is to be the key master. As such, there is no need for every PCA pump to exchange information individually with all other PCA pumps in the network, as the key master is elected to exchange the symmetric key. In turn, this removes the need to use already limited bandwidth in a CAN network for communication. Electing a key master is a solution because each PCA pump or device in the network will only need to connect to the key master to get a symmetric key for secure communication.
Reference is made herein to a memory. As disclosed herein, a memory refers to a device that holds electronic data and/or instructions for immediate use by a processor and/or device control system. The memory is able to receive and transmit data.
Reference is made herein to a processor. As disclosed herein, a processor refers to a device that executes instructions stored by the memory. The memory receives and transmits data.
Reference is made herein to a transceiver. As disclosed herein, a transceiver refers to a device that is a combination transmitter and receiver. The transceiver is able to receive and transmit data.
While the example methods, apparatus, and systems are disclosed herein as operating with medical devices, specifically PCA pumps, it should be appreciated that the methods, apparatus, and systems may be operable with other devices. For example, the methods, apparatus, and systems may provide for symmetric key exchange via TLS on CAN bus interface for applications in automotive, aviation, or agricultural devices.
As such, the PCA pumps 125, 130 are physically and communicatively coupled to the hub 101 and, therefore, the CAN bus network 11. This means, the PCA pumps 125, 130 are part of the network 11 and, therefore, able to transmit and receive information with all devices in the network 11. While the present embodiment involves a CAN bus network, it must be noted that in an alternate embodiment, these connections may be wireless, such as via Bluetooth®, or wired, via a serial, Ethernet, or USB connection.
Furthermore, in alternate embodiments, other non-CAN local networks can be used, such as, but not limited to, Hart and Fieldbus networks.
In an alternate embodiment, the system 1 may also include a clinician device (not shown; e.g., a smartphone, tablet computer, laptop computer, workstation, etc.) such that a clinician can connect to the network 11 to monitor the PCA pumps 125, 130. Relatedly, in an alternate embodiment, additional devices such as, but not limited to, respirators, vitals monitors, or other medical devices are part of the system 1 and connect to the network 11.
Stage One & Stage Two Operations
As noted previously, PCA pumps 125, 130, 135, 140 are connected to and communicate with the hub 101 (
The symmetric key exchange 100 comprises a stage one 105 of operations, followed by a stage two 145 of operations. Stage one 105 includes an initial bootstrap timeout 110, followed by a MAC identifier (MAC ID) table comparison 115. Stage two, also referred herein as a “voting stage,” 145 includes the exchange of master requests 150 followed by a master identification 155.
Beginning with stage one 105, specifically, with the bootstrap timeout 110, each PCA pump 125, 130, 135, 140 shares its MAC identifier with all PCA pumps 125, 130, 135, 140 in the network 101. In this embodiment, the bootstrap timeout 110 is three seconds long. In
First, each PCA pump 125, 130, 135, 140 shares its MAC identifier with all PCA pumps in the network. Relatedly, each PCA pump 125, 130, 135, 140, receives the MAC identifiers for all other PCA pumps 125, 130, 135, 140 through its transceiver 104. The PCA pump 125, 130, 135, 140 stores all MAC IDs in a MAC table in its memory 102. Next, the processor 103 in each PCA pump 125, 130, 135, 140 retrieves the MAC ID table, and instructions to compare all MAC IDs, from the memory 102. The processor 103 in each PCA pump 125, 130, 135, 140 compares all the MAC IDs in each PCA pump's MAC table as further explained below.
Next, the PCA pumps 125, 130, 135, 140 enter stage two 145, also known as the voting stage. During the voting stage 145, each PCA pump 125, 130, 135, 140 At the conclusion of the MAC ID table comparison 115 each PCA pump 125, 130, 135, 140 determines if it should send a master request respective PCA pump 125, 130, 135, 140. During the voting stage 145, each potential key master (PCA pump 125 in this example) sends a master request 150 to all other PCA pumps 130, 135, 140. In accordance with the operations further explained below, the potential key master (125 in this example) can be identified as key master 155. Once a potential key master 125 is identified as key master 155, the key master updates its heartbeat key status to “master,” automatically rejects any master requests received immediately with a master reject, and starts a rekey timer. The rekey timer can range from seconds, to minutes, or hours. It should be noted that if the key master is removed or disappears from the network, the previously explained operations are repeated in the system to elect a new master.
Each PCA pump then compares all the MAC IDs in the MAC ID table to determine if the respective PCA pump will enter the next stage 1002. If the respective PCA pump has a MAC ID value that is higher than the other MAC ID values in the MAC ID table, then the respective PCA pump withdraws from the voting stage 1010. However, if the respective PCA pump has a MAC ID value that is lower than the other MAC ID values in the MAC ID table, then the respective PCA pump enters the voting stage 1011. Specifically, the respective PCA pump sends a master request to the other PCA pumps connected the hub 1003. The master request includes both a request to be key master and the respective PCA pump's MAC ID. Concurrently with sending the master request, the respective PCA increments its internal counter to one 1004.
Also concurrently, the respective PCA pump receives master requests from other PCA pumps 1005. Upon receiving master requests from other PCA pumps, the respective pump compares the MAC IDs of the other PCA pumps 1006. If the other PCA pumps have a lower MAC ID, then the respective PCA pump withdraws from voting 1009 and sets its internal vote counter to zero.
By contrast, if the other PCA pumps have a higher MAC ID, then the respective PCA pump sends another master request and repeats the process described about until the respective PCA pump's internal counter reaches three 1007. Once the respective PCA pump's internal counter reaches three, the respective PCA pump becomes master 1008. Once the respective PCA pump becomes master, it responds to any master requests with a master reject that prompts the senders of those master requests to withdraw from voting and set their respective internal counters to zero. Also, once the respective PCA pump becomes master, it updates its heartbeat key status to “master.” Finally, once the respective PCA pump becomes master, it starts a rekey timer.
As a result, in the voting stage 145, pump two 130 sends a master request 150 and increased its internal vote counter as previously described. Pump two 130 continues to send a master request 150 and increase its internal counter until pump two's internal counter reaches three and, as such, pump two 130 becomes master 155.
As such, pump one 125 first populates its MAC ID table 126 at second three and determines, since pump one's MAC ID is not the lowest of all the MAC IDs in its table, not to enter the voting stage 145. Pump two 130 next populates its MAC ID table 131 at second four, thereby including pump four's MAC ID. Pump two 130 therefore determines that pump two's MAC ID is not the lowest in its table, and determines, not to enter the voting stage 145. However, pump four 140 enters the voting stage 145 because pump four 140 has the lowest MAC ID in its MAC ID table 141.
Similar to the previous example, in the voting stage 145, pump four 140 sends a master request 150 and increases its internal vote counter. Pump four 140 continues to send a master request 150 and increase its internal counter until pump four's internal counter reaches three and, as such, pump four 140 becomes master 155.
For illustrative purposes, in this example, pump one 125 populates its MAC ID table 126 with the MAC IDs for pump two and three 130, 135, but not pump five 160. As such, pump one 125, has lowest of all the MAC IDs in its table, and enters the voting stage 145. Similarly, pump five 160 populates its MAC ID table 161 with MAC IDs from pump one, two, and three 125, 130, 135. Therefore, pump five 160, has lowest of all the MAC IDs in its table, and also enters the voting stage 145. Pump two 130 next populates its MAC ID table 131 and determines, not to enter the voting stage 145.
Unlike previous examples, in this voting stage 145, pump one 125 sends a master request 150a and pump five 160 sends a master request 150b. In this example, when pump five 160 receives a master request 150a, it compares the MAC ID number included in the master request 150a, which is pump one's MAC ID, and pump five 160 determines that its own MAC ID is lower than pump one's MAC ID. As a result, pump five 160 sends a master reject 165, which prompts pump one 125 to withdraw from voting. In turn similar to the previous examples, in the voting stage 145, pump five continues to send a master request 150 and increase its internal counter until pump five's internal counter reaches three and, as such, pump five 160 becomes master 155.
For illustrative purposes, in this example, pump one 125 populates its MAC ID table 126 with the MAC IDs for pump two and three 130, 135, but not pump five 160. As such, pump one 125, has lowest of all the MAC IDs in its table, and enters the voting stage 145. Similarly, pump five 160 populates its MAC ID table 161 with MAC IDs from pump one, two, and three 125, 130, 135. Therefore, pump five 160, has lowest of all the MAC IDs in its table, and also enters the voting stage 145. Pump two 130 next populates its MAC ID table 131 and determines, not to enter the voting stage 145. Pump four 140 also enters the voting stage because its MAC ID table 141 includes the MAC IDs for pump two 130 and pump three 135, and pump four's MAC ID is the lowest of those three MAC IDs.
In this voting stage 145, pump one 125 sends a master request 150a and pump five 160 sends a master request 150b. In this example, when pump five 160 receives a master request 150a, it compares the MAC ID number included in the master request 150a, which is pump one's MAC ID, and pump five 160 determines that its own MAC ID is lower than pump one's MAC ID. As a result, pump five 160 sends a master reject 165, which prompts pump one 125 to withdraw from voting. In turn similar to the previous examples, in the voting stage 145, pump five continues to send a master request 150 and increase its internal counter until pump five's internal counter reaches three and, as such, pump five 160 becomes master 155.
Pump four 140 sends a master request 150c, but pump five 160, which is already master, immediately responds by sending a master reject 165, which prompts pump four 140 to withdraw from voting. As such,
The operations described above allow symmetric key exchange in a multiple device network dynamically and without excessive bandwidth utilization.
It should be understood that various changes and modifications to the presently preferred embodiments described herein will be apparent to those skilled in the art. Such changes and modifications can be made without departing from the spirit and scope of the present subject matter and without diminishing its intended advantages. It is therefore intended that such changes and modifications be covered by the appended claims.
The present application claims the benefit of U.S. Provisional Application No. 63/542,991, entitled SYMMETRIC KEY EXCHANGE VIA TLS (TRANSPORT LAYER SECURITY) ON CAN (CONTROLLER AREA NETWORK) BUS INTERFACE and filed Oct. 6, 2023, the contents of which are hereby incorporated by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
63542991 | Oct 2023 | US |