IP Library Granted Patent US 12,284,163
Granted Patent B2
US 12,284,163 · App. 17/662,726 · Granted Apr 22, 2025

Remote debugging for the internet of things

Inventors: Jonathan Williams (Cambridge, GB); Hugo Fiennes (Palo Alto, CA); Tejas Patil (Cambridge, GB); Joseph Birr-Pixton (Cambridge, GB)
Assignee: KORE Wireless Group, Inc.
H04L63/0435G06F11/3664G16Y30/10H04L63/0464
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 12,284,163
App. No.
17/662,726
Granted
Apr 22, 2025
Kind
B2
Abstract

An Internet of Things (IoT) device is deployed with embedded software. A debug client device stores an end-to-end encryption key that corresponds to an end-to-end encryption key stored on the IoT device. The debug client encrypts a debug instruction using the end-to-end encryption key and encrypts additional data using a point-to-point encryption key. The encrypted debug instruction and the encrypted additional data are sent to a debug server over a network. The debug server decrypts the additional data and identifies the IoT device from among multiple IoT devices. The debug server generates a message to the IoT device including the encrypted debug instruction, encrypts the message, and transmits the message to the IoT device. The IoT device decrypts the message using a first decryption key associated with the debug server, retrieves the encrypted message payload, and decrypts the message payload using the stored end-to-end encryption key.

Claims (79)

1. A method comprising:

receiving, via a first network, a first communication from a first device, the first communication encrypted using point-to-point encryption and comprising a payload encrypted using end-to-end encryption;

decrypting the first communication using a first point-to-point encryption key;

based on the decrypted first communication, determining a second device;

encrypting a second communication using a second point-to-point encryption key, the second communication comprising the payload encrypted using end-to-end encryption;

transmitting, via a second network, the second communication to the second device; and

multiplexing, on a single connection to the second device, multiple data streams comprising a first data stream for communication by an application and a second data stream for debugging the application.

2. The method of claim 1 , wherein the payload comprises a debug command for the second device.

3. The method of claim 1 , further comprising:

receiving, by the first device, a command from a debugging application using a first protocol;

converting, by the first device, the command to a second protocol; and

encrypting, by the first device, the converted command using an end-to-end encryption key;

wherein the payload of the first communication comprises the encrypted converted command.

4. The method of claim 1 , further comprising:

decrypting, by the second device, the payload using an end-to-end decryption key; and

based on the decrypted payload, performing a debugging operation on the application running on the second device.

5. The method of claim 4 , wherein the debugging operation comprises setting a breakpoint.

6. The method of claim 1 , further comprising:

receiving an incoming communication from the second device, the incoming communication comprising an identifier of the second device;

determining, based on the identifier of the second device, an account associated with the second device; and

allowing the first device to communicate with the second device based on the account.

7. The method of claim 6 , wherein:

the incoming communication is a first incoming communication;

the identifier of the second device is a first identifier; and

the method further comprises:

receiving a second incoming communication from a third device, the second incoming communication comprising a second identifier of the third device;

determining, based on the second identifier, that the account is associated with the third device; and

causing to be presented a user interface that allows selection of either the second device or the third device for debugging.

8. A system comprising:

one or more computer processors; and

one or more computer-readable mediums storing instructions that, when executed by the one or more computer processors, cause the system to perform operations comprising:

receiving, via a first network, a first communication from a first device, the first communication encrypted using point-to-point encryption and comprising a payload encrypted using end-to-end encryption;

decrypting the first communication using a first point-to-point encryption key;

based on the decrypted first communication, determining a second device;

encrypting a second communication using a second point-to-point encryption key, the second communication comprising the payload encrypted using end-to-end encryption;

transmitting, via a second network, the second communication to the second device; and

multiplexing, on a single connection to the second device, multiple data streams comprising a first data stream for communication by an application and a second data stream for debugging the application.

9. The system of claim 8 , wherein the payload comprises a debug command for the second device.

10. The system of claim 8 , wherein the operations further comprise:

receiving, by the first device, a command from a debugging application using a first protocol;

converting, by the first device, the command to a second protocol; and

encrypting, by the first device, the converted command using an end-to-end encryption key;

wherein the payload of the first communication comprises the encrypted converted command.

11. The system of claim 8 , wherein the operations further comprise:

decrypting, by the second device, the payload using an end-to-end decryption key; and

based on the decrypted payload, performing a debugging operation on the application running on the second device.

12. The system of claim 11 , wherein the debugging operation comprises setting a breakpoint.

13. The system of claim 8 , wherein the operations further comprise:

receiving an incoming communication from the second device, the incoming communication comprising an identifier of the second device;

determining, based on the identifier of the second device, an account associated with the second device; and

allowing the first device to communicate with the second device based on the account.

14. The system of claim 13 , wherein:

the incoming communication is a first incoming communication;

the identifier of the second device is a first identifier; and

the operations further comprise:

receiving a second incoming communication from a third device, the second incoming communication comprising a second identifier of the third device;

determining, based on the second identifier, that the account is associated with the third device; and

causing to be presented a user interface that allows selection of either the second device or the third device for debugging.

15. A non-transitory computer-readable medium storing instructions that, when executed by one or more computer processors of one or more computing devices, cause the one or more computing devices to perform operations comprising:

receiving, via a first network, a first communication from a first device, the first communication encrypted using point-to-point encryption and comprising a payload encrypted using end-to-end encryption;

decrypting the first communication using a first point-to-point encryption key;

based on the decrypted first communication, determining a second device;

encrypting a second communication using a second point-to-point encryption key, the second communication comprising the payload encrypted using end-to-end encryption;

transmitting, via a second network, the second communication to the second device; and

multiplexing, on a single connection to the second device, multiple data streams comprising a first data stream for communication by an application and a second data stream for debugging the application.

16. The non-transitory computer-readable medium of claim 15 , wherein the payload comprises a debug command for the second device.

17. The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise:

receiving, by the first device, a command from a debugging application using a first protocol;

converting, by the first device, the command to a second protocol; and

encrypting, by the first device, the converted command using an end-to-end encryption key;

wherein the payload of the first communication comprises the encrypted converted command.

18. The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise:

decrypting, by the second device, the payload using an end-to-end decryption key; and

based on the decrypted payload, performing a debugging operation on the application running on the second device.

19. The non-transitory computer-readable medium of claim 18 , wherein the debugging operation comprises setting a breakpoint.

20. The non-transitory computer-readable medium of claim 15 , wherein the operations further comprise:

receiving an incoming communication from the second device, the incoming communication comprising an identifier of the second device;

determining, based on the identifier of the second device, an account associated with the second device; and

allowing the first device to communicate with the second device based on the account.

Assignments (7)
SECURITY INTEREST Recorded Jul 22, 2026
From: KORE WIRLESS GROUP INC.; KORE WIRELESS INC.
To: WHITEHORSE CAPITAL ORIGINATION, LLC
Reel/Frame 075362/0959 →
SECURITY INTEREST Recorded Jul 21, 2026
From: WHITEHORSE CAPITAL MANAGEMENT, LLC
To: KORE WIRELESS GROUP INC.
Reel/Frame 075348/0522 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2023
From: TWILIO INC.
To: KORE WIRELESS GROUP INC.
Reel/Frame 065772/0805 →
SECURITY INTEREST Recorded Nov 15, 2023
From: KORE WIRELESS GROUP INC.
To: WHITEHORSE CAPITAL MANAGEMENT, LLC
Reel/Frame 065574/0807 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2023
From: TWILIO INC.
To: KORE WIRELESS GROUP, INC.
Reel/Frame 071393/0799 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2023
From: TWILIO INC.
To: KORE WIRELESS GROUP, INC.
Reel/Frame 063896/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2022
From: WILLIAMS, JONATHAN; FIENNES, HUGO; PATIL, TEJAS; BIRR-PIXTON, JOSEPH
To: TWILIO INC.
Reel/Frame 059881/0873 →
Continuity (2)
Provisional Application 63267562 · Feb 4, 2022
Related Publication 20230254294A1 · Aug 10, 2023
References Cited (4)
US 20030235308A1 · Boynton · 2003 [cited by examiner]
US 20150309916A1 · Chen · 2015 [cited by examiner]
US 20190227908A1 · Munafo · 2019 [cited by examiner]
US 20220407695A1 · Shim · 2022 [cited by examiner]