Microcode-based challenge/response process
View Patent ↗Augmented processor hardware contains a microcode interpreter. When encrypted microcode is included in a challenge from a service requiring authentication, the microcode may be passed to the microcode interpreter. Based on decryption and execution of the microcode taking place at the processor hardware, tampering by potentially abusive device software may be avoided.
1. A method of responding to a challenge at a device, said method comprising:
receiving an unsolicited challenge from an authentication server, said challenge including an encrypted block of microcode, said unsolicited challenge requiring no previous communication from the device to the authentication server;
passing said encrypted block of microcode to a microcode interpreter, thereby allowing:
decryption, by said microcode interpreter, of said encrypted block of microcode to form decrypted microcode; and
execution, by said microcode interpreter, of said decrypted microcode, where said execution of said decrypted microcode includes accessing a software memory space of said device;
receiving a result of said execution of said decrypted microcode;
based on said result, generating a response; and
transmitting said response to said authentication server.
2. The method as claimed in claim 1 further comprising encrypting said response.
3. The method as claimed in claim 1 wherein said microcode functions to validate an identity of a processor.
4. The method as claimed in claim 1 wherein said microcode functions to validate software on a processor.
5. The method as claimed in claim 1 wherein said microcode functions to validate data available to a processor.
6. The method as claimed in claim 1 wherein said microcode functions to reorder a chain of encrypted data.
7. The method as claimed in claim 1 wherein said microcode functions to perform a functional computation on data available to a processor.
8. The method as claimed in claim 1 wherein said microcode functions to recall a sequence of data.
9. The method as claimed in claim 1 wherein said challenge comprises encrypted data and instructions to maintain said encrypted data for future use in generating a response.
10. A device comprising:
a software memory space;
a processor including a microcode interpreter, said processor configured to:
receive an unsolicited challenge from an authentication server, said challenge including an encrypted block of microcode, said unsolicited challenge requiring no previous communication from the device to the authentication server;
pass said encrypted block of microcode to said microcode interpreter;
said microcode interpreter configured to:
decrypt said encrypted block of microcode to form decrypted microcode; and
execute said decrypted microcode, where said execution of said decrypted microcode includes:
accessing said software memory space; and
returning, to said processor, a result;
said processor further configured to:
receive said result;
generate, based on said result, a response; and
transmit said response to said authentication server.
11. A non-transitory computer readable medium containing computer-executable instructions that, when performed by processor of a device, said processor including a microcode interpreter, cause said processor to:
receive an unsolicited challenge from an authentication server, said challenge including an encrypted block of microcode, said unsolicited challenge requiring no previous communication from the device to the authentication server;
pass said encrypted block of microcode to said microcode interpreter, thereby allowing:
decryption, by said microcode interpreter, of said encrypted block of microcode to form decrypted microcode; and
execution, by said microcode interpreter, of said decrypted microcode, where said execution of said decrypted microcode includes accessing a software memory space of said device;
receive a result of said execution of said decrypted microcode;
generate, based on said result, a response; and
transmit said response to said authentication server.
12. The non-transitory computer readable medium as claimed in claim 11 wherein the instructions further cause the processor to encrypt said response.
13. The non-transitory computer readable medium as claimed in claim 11 wherein said microcode functions to validate an identity of a processor.
14. The non-transitory computer readable medium as claimed in claim 11 wherein said microcode functions to validate software on a processor.
15. The non-transitory computer readable medium as claimed in claim 11 wherein said microcode functions to validate data available to a processor.
16. The non-transitory computer readable medium as claimed in claim 11 wherein said microcode functions to reorder a chain of encrypted data.
17. The non-transitory computer readable medium as claimed in claim 11 wherein said microcode functions to perform a functional computation on data available to the processor.
18. The non-transitory computer readable medium as claimed in claim 11 wherein said microcode functions to recall a sequence of data.
19. The non-transitory computer readable medium as claimed in claim 11 wherein said challenge comprises encrypted data and instructions to maintain said encrypted data for future use in generating a response.