Patent ID: 8595806

Claim:
A computer-implemented method for providing remote computing services, comprising: under the control of one or more computer systems configured with executable instructions, receiving, at an authentication service, an access key request from a user device, the access key request including data derived from information permanently embedded in the user device; determining, at the authentication service, based at least on the access key request, whether to provide access to a remote computing service distinct from the authentication service, the remote computing service configured to maintain virtual machines corresponding to authorized user devices; at a time after a determination has been made to provide access to the remote computing service, transmitting, from the authentication service, an access key to the user device; receiving, at the remote computing service, a request for access to the remote computing service from the user device, the request for access including the access key provided by the authentication service; authenticating, at the remote computing service, based at least in part on the received access key, the user device as authorized to access a virtual machine maintained by the remote computing service; and at a time after the user device has been authenticated, providing access to the remote computing service by at least: receiving, from the user device, first information identifying user input made in connection with the user device; executing, based at least in part on the received information, an operating system, the operating system including a graphical user interface; and providing, to the user device, second information that enables the user device to display the graphical user interface of the operating system in a current operational state.