IP Library Granted Patent US 10,193,886
Granted Patent B2
US 10,193,886 · App. 15/838,275 · Granted Jan 29, 2019

Hostless mDNS-SD responder with authenticated host wake service

Inventors: Joseph Anthony Enke (Campbell, CA); David Boone (Belmont, CA); Jeffrey S. Youel (Rancho Santa Fe, CA); Bich Nguyen (Los Altos, CA); Mark Petersen (San Diego, CA); Kevin Fry (Escondido, CA)
Assignee: GOPRO, INC.
H04L63/0876H04W12/06H04W52/0209H04L61/1511H04L63/0492Y02B70/30Y02D70/00Y02D70/142
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,193,886
App. No.
15/838,275
Granted
Jan 29, 2019
Kind
B2
Abstract

Conventional wireless interface (WiFi) controllers cannot resolve authentication for trusted client devices without calculation from a host processor. Leaving the host processor on or awaking it from a sleep state each time a non-authenticated trusted client device attempts to connect wastes power. A hostless authenticated wake service allows a host controller to enter a sleep state while the WiFi controller responds to multicast domain name service-service discovery (mDNS-SD) queries from trusted client devices. Once a client device is authenticated, the WiFi controller may respond to a trusted client request to awake the host processor for further command processing and service provision. Not only does this approach reduce power consumption by allowing the host processor to remain in the sleep state, it allows trusted client devices to discover its presence while ensuring security.

Claims (64)

1. A method for configuring a wireless interface (WiFi) controller of a host device with a multicast domain name system-service discovery (mDNS-SD) responder module, the method comprising:

receiving, by a host processor of the host device, a power on signal from a power manager of the host device in order to place the host processor in an awake state so as to enable configuring of the mDNS-SD responder module;

exchanging a secret key between the host processor and a trusted client device;

generating, by the host processor of the host device, a random number;

using the generated random number in a cryptographic hash function in order to calculate a host processor payload value;

writing the generated random number to memory associated with the WiFi controller;

writing the calculated host processor payload value to the memory associated with the WiFi controller, the writing of the host processor payload value to the memory being configured for later authentication of the trusted client device; and

sending a configuration complete signal to the host processor to allow the host processor to subsequently enter a sleep state subsequent to the configuring, the configuring enabling the mDNS-SD responder module to respond to service discovery queries from the trusted client device.

2. The method of claim 1 , further comprising:

transmitting, by the host processor of the host device, a request to power off to the power manager of the host device.

3. The method of claim 2 , further comprising:

sending, by the power manager of the host device, a power off signal to the host processor in response to receiving the request to power off.

4. The method of claim 3 , further comprising:

transitioning the host processor of the host device to the sleep state in response to the host processor receiving the power off signal.

5. The method of claim 4 , further comprising:

receiving, from the trusted client device, a request to wake the host processor while the host processor is in the sleep state; and

transmitting, by the WiFi controller of the host device, the generated random number to the trusted client device.

6. The method of claim 5 , further comprising:

receiving a calculated payload value from the trusted client device, the calculated payload value being generated at least in part by the transmitted random number and the exchanged secret key; and

comparing the calculated payload value with the calculated host processor payload value in order to authenticate the trusted client device.

7. A non-transitory computer readable apparatus comprising a non-transitory storage medium having a computer program stored thereon, the computer program which, when executed by one or more hardware processors, configures a WiFi controller of a host device with a mDNS-SD responder module via:

receipt, by a host processor of the host device, a power on signal from a power manager of the host device in order to place the host processor in an awake state so as to enable configuration of the mDNS-SD responder module;

exchange of a secret key between the host processor and a trusted client device;

generate, by the host processor of the host device, a random number;

utilization of the generated random number in a cryptographic hash function in order to calculate a host processor payload value;

a write of the generated random number to memory associated with the WiFi controller;

a write of the calculated host processor payload value to the memory associated with the WiFi controller, the write of the host processor payload value to the memory being configured for later authentication of the trusted client device; and

transmit a configuration complete signal to the host processor to allow the host processor to subsequently enter a sleep state subsequent to the configuration of the mDNS-SD responder module, the configuration enabling the mDNS-SD responder module to respond to service discovery queries from the trusted client device.

8. The non-transitory computer readable apparatus of claim 7 , where the computer program which, when executed, is further configured to:

transmit, by the host processor of the host device, a request to power off to the power manager of the host device.

9. The non-transitory computer readable apparatus of claim 8 , where the computer program which, when executed, is further configured to:

send, by the power manager of the host device, a power off signal to the host processor in response to receipt of the request to power off.

10. The non-transitory computer readable apparatus of claim 9 , where the computer program which, when executed, is further configured to:

transition the host processor of the host device to the sleep state in response to receipt of the power off signal by the host processor.

11. The non-transitory computer readable apparatus of claim 10 , where the computer program which, when executed, is further configured to:

receive, from the trusted client device, a request to wake the host processor while the host processor is in the sleep state; and

transmit, by the WiFi controller of the host device, the generated random number to the trusted client device.

12. The non-transitory computer readable apparatus of claim 11 , where the computer program which, when executed, is further configured to:

receive a calculated payload value from the trusted client device, the calculated payload value being generated at least in part by the transmitted random number and the exchanged secret key; and

compare the calculated payload value with the calculated host processor payload value in order to authenticate the trusted client device.

13. A host device configured to communicate with one or more trusted client devices, the host device comprising:

a host processor comprising a hardware processor;

a power manager module; and

a WiFi controller;

wherein the WiFi controller of the host device is configured with a mDNS-SD responder module by:

receipt, by the host processor of the host device, a power on signal from the power manager module of the host device in order to place the host processor in an awake state so as to enable configuration of the mDNS-SD responder module;

exchange of a secret key between the host processor and a trusted client device;

generate, by the host processor of the host device, a random number;

utilization of the generated random number in a cryptographic hash function in order to calculate a host processor payload value;

a write of the generated random number to memory associated with the WiFi controller;

a write of the calculated host processor payload value to the memory associated with the WiFi controller, the write of the host processor payload value to the memory being configured for later authentication of the trusted client device; and

transmit a configuration complete signal to the host processor to allow the host processor to subsequently enter a sleep state subsequent to the configuration of the mDNS-SD responder module, the configuration enabling the mDNS-SD responder module to respond to service discovery queries from the trusted client device.

14. The host device of claim 13 , wherein the WiFi controller of the host device is further configured with the mDNS-SD responder module by:

transmission, by the host processor of the host device, a request to power off to the power manager module of the host device.

15. The host device of claim 14 , wherein the WiFi controller of the host device is further configured with the mDNS-SD responder module by:

transmission, by the power manager module of the host device, a power off signal to the host processor in response to receipt of the request to power off.

16. The host device of claim 15 , wherein the WiFi controller of the host device is further configured with the mDNS-SD responder module by:

a transition of the host processor of the host device to the sleep state in response to receipt of the power off signal by the host processor.

17. The host device of claim 16 , wherein the WiFi controller of the host device is further configured with the mDNS-SD responder module by:

receipt, from the trusted client device, a request to wake the host processor while the host processor is in the sleep state; and

a transmission, by the WiFi controller of the host device, the generated random number to the trusted client device.

18. The host device of claim 17 , wherein the WiFi controller of the host device is further configured with the mDNS-SD responder module by:

receipt of a calculated payload value from the trusted client device, the calculated payload value being generated at least in part by the transmitted random number and the exchanged secret key; and

a comparison of the calculated payload value with the calculated host processor payload value in order to authenticate the trusted client device.

Assignments (5)
SECURITY INTEREST Recorded Aug 4, 2025
From: GOPRO, INC.
To: FARALLON CAPITAL MANAGEMENT, L.L.C., AS AGENT
Reel/Frame 072340/0676 →
SECURITY INTEREST Recorded Aug 4, 2025
From: GOPRO, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 072358/0001 →
RELEASE OF PATENT SECURITY INTEREST Recorded Jan 25, 2021
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: GOPRO, INC.
Reel/Frame 055106/0434 →
SECURITY INTEREST Recorded Jun 7, 2018
From: GOPRO, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 047140/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2017
From: ENKE, JOSEPH ANTHONY; BOONE, DAVID; YOUEL, JEFFREY S.; NGUYEN, BICH; PETERSEN, MARK; FRY, KEVIN
To: GOPRO, INC.
Reel/Frame 044412/0285 →
Continuity (3)
Continuation 14864787 · Sep 24, 2015
Provisional Application 62059825 · Oct 3, 2014
Related Publication 20180205730A1 · Jul 19, 2018
Cited By (1)
US 12,321,644