A method comprising: using a target computing device, receiving a pairing request from a controller computing device, the pairing request including controller credentials that were previously received by the controller computing device from an authentication server computer and encrypted by the authentication server under a service key that is not available to the controller computing device and the target computing device so as to prevent forgery or alteration of the encrypted controller credentials; using the target computing device, forwarding the pairing request to the authentication server computer, the authentication server computer being configured to return a pairing response based at least in part on the controller credentials; using the target computing device, receiving the pairing response from the authentication server computer, wherein the pairing response includes a shared secret encrypted under a target device key and the same shared secret encrypted under a controller key, the controller key being unavailable to the target computing device and the target device key being unavailable to the controller computing device; using the target computing device, decrypting the shared secret encrypted under the target device key; using the target computing device, forwarding the shared secret encrypted under the controller key to the controller device; using the target computing device, establishing a secure connection to the controller computing device using the decrypted shared secret; using the target computing device, receiving, over the secure connection, one or more control messages from the controller computing device that are configured to control one or more functions of the target computing device. using a target computing device, receiving a pairing request from a controller computing device, the pairing request including controller credentials that were previously received by the controller computing device from an authentication server computer and encrypted by the authentication server under a service key that is not available to the controller computing device and the target computing device so as to prevent forgery or alteration of the encrypted controller credentials; using the target computing device, forwarding the pairing request to the authentication server computer, the authentication server computer being configured to return a pairing response based at least in part on the controller credentials; using the target computing device, receiving the pairing response from the authentication server computer, wherein the pairing response includes a shared secret encrypted under a target device key and the same shared secret encrypted under a controller key, the controller key being unavailable to the target computing device and the target device key being unavailable to the controller computing device; using the target computing device, decrypting the shared secret encrypted under the target device key; using the target computing device, forwarding the shared secret encrypted under the controller key to the controller device; using the target computing device, establishing a secure connection to the controller computing device using the decrypted shared secret; using the target computing device, receiving, over the secure connection, one or more control messages from the controller computing device that are configured to control one or more functions of the target computing device.