UNIFORM COMMUNICATION PROTOCOLS FOR COMMUNICATION BETWEEN CONTROLLERS AND ACCESSORIES
First Claim
1. A method comprising:
- detecting, by a controller, an accessory that is available for pairing;
performing, by the controller, a pair setup operation to establish a pairing with the accessory, the pair setup operation including;
establishing a shared secret using an out-of-band information item exchanged between the accessory and the controller;
using the shared secret to securely exchange a long-term public key of the accessory and a long-term public key of the controller; and
securely and persistently storing, by the controller, the long-term public key of the accessory in association with an identifier of the accessory;
obtaining, by the controller, an accessory definition record from the paired accessory, the accessory definition record including a set of services, each service having a set of characteristics, each characteristic representing an aspect of accessory state; and
communicating, by the controller, a request to the paired accessory to modify one or more of the characteristics specified in the accessory definition record, the request being interpretable by the paired accessory as an instruction invoke an operation of the paired accessory.
2 Assignments
0 Petitions
Accused Products
Abstract
A uniform protocol can facilitate secure, authenticated communication between a controller device and an accessory device that is controlled by the controller. An accessory and a controller can establish a pairing, the existence of which can be verified at a later time and used to create a secure communication session. The accessory can provide an accessory definition record that defines the accessory as a collection of services, each service having one or more characteristics. Within a secure communication session, the controller can interrogate the characteristics to determine accessory state and/or modify the characteristics to instruct the accessory to change its state.
-
Citations
25 Claims
-
1. A method comprising:
-
detecting, by a controller, an accessory that is available for pairing; performing, by the controller, a pair setup operation to establish a pairing with the accessory, the pair setup operation including; establishing a shared secret using an out-of-band information item exchanged between the accessory and the controller; using the shared secret to securely exchange a long-term public key of the accessory and a long-term public key of the controller; and securely and persistently storing, by the controller, the long-term public key of the accessory in association with an identifier of the accessory; obtaining, by the controller, an accessory definition record from the paired accessory, the accessory definition record including a set of services, each service having a set of characteristics, each characteristic representing an aspect of accessory state; and communicating, by the controller, a request to the paired accessory to modify one or more of the characteristics specified in the accessory definition record, the request being interpretable by the paired accessory as an instruction invoke an operation of the paired accessory. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A controller comprising:
-
a communication interface to communicate with one or more accessories; a secure storage element to securely store pairing records for one or more paired accessories; a data storage element configured to store accessory definition records for one or more paired accessories; and a processing subsystem coupled to the communication interface, the secure storage element, and the data storage element, the processing subsystem configured to; establish a pairing with one or more accessories, wherein establishing a pairing with an accessory includes; obtaining an out-of-band information item; securely obtaining, from the accessory, a long-term public key of the accessory and a proof that the accessory has the out-of-band information item; securely providing a long-term public key of the controller to the accessory; and creating and persistently storing a pairing record for the accessory in the secure storage element, the pairing record including a long-term public key of the accessory; obtain, after establishing a pairing with an accessory, an accessory definition record from the paired accessory, the accessory definition record including a set of services, each service having a set of characteristics, each characteristic representing an aspect of accessory state; and invoke an operation of the paired accessory by communicating to the accessory a request to modify one or more of the characteristics specified in the accessory definition record. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A method comprising:
-
advertising, by an accessory, that the accessory is available for pairing; performing, by the accessory, a pair setup operation to establish a pairing with a controller, the pair setup operation including; establishing a shared secret using an out-of-band information item exchanged between the accessory and the controller; using the shared secret to securely exchange a long-term public key of the accessory and a long-term public key of the controller; and securely and persistently storing, by the accessory, the long-term public key of the controller in association with an identifier of the controller, providing, by the accessory to the paired controller, an accessory definition record for the paired accessory, the accessory definition record including a set of services, each service having a set of characteristics, each characteristic corresponding to an aspect of accessory state; receiving, by the accessory, a request from the paired controller to modify one or more of the characteristics specified in the accessory definition record; and performing, by the accessory, an invoked operation in response to the received request. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. An accessory comprising:
-
a communication interface to communicate with one or more controllers; an operational component; a secure storage element to securely store pairing records; an accessory data storage element configured to store an accessory definition record, the accessory definition record including a set of services, each service having a set of characteristics, each characteristic representing an aspect of accessory state including a state of the operational component; and a processing subsystem coupled to the communication interface, the operational component, the secure storage element, and the accessory data storage element, the processing subsystem configured to; establish a pairing with one or more controllers, wherein establishing a pairing with a controller includes; obtaining an out-of-band information item; securely obtaining, from the controller, a long-term public key of the controller and a proof that the controller has the out-of-band information item; securely providing a long-term public key of the accessory to the controller, and creating and persistently storing a pairing record for the controller in the secure storage element, the pairing record including a long-term public key of the controller; provide, after establishing a pairing with a controller, the stored accessory definition record to the paired controller, and receive, from the paired controller, a request to modify one or more of the characteristics specified in the accessory definition record; and effect an operation of the at least one operating component in response to the request. - View Dependent Claims (23, 24, 25)
-
Specification