Method for strongly authenticating another process in a different address space
DC CAFCFirst Claim
1. A method of authenticating a first process operating in an address space different than that of a second process comprising:
- creating, by the second process, a tamper resistant module containing a secret;
sending the tamper resistant module and a challenge from the second process to the first process;
executing the tamper resistant module by the first process and recovering the secret when the integrity of the first process is verified by the tamper resistant module;
encoding the challenge using the secret to produce a response;
sending the response to the second process; and
decoding the response by the second process.
5 Assignments
Litigations
1 Petition
Accused Products
Abstract
Authenticating a remote process operating in an address space different than that of a local process includes the steps of creating, by the local process, a tamper resistant module containing a temporary secret, sending the tamper resistant module and a challenge from the local process to the remote process, executing the tamper resistant module by the remote process and recovering the secret when the integrity of the remote process is verified by the tamper resistant module, encoding the challenge using the secret to produce a response, sending the response to the local process, and decoding the response by the local process. Optionally, the tamper resistant module includes a request for information from the second process and the response includes the answer to the request for information.
-
Citations
23 Claims
-
1. A method of authenticating a first process operating in an address space different than that of a second process comprising:
-
creating, by the second process, a tamper resistant module containing a secret; sending the tamper resistant module and a challenge from the second process to the first process; executing the tamper resistant module by the first process and recovering the secret when the integrity of the first process is verified by the tamper resistant module; encoding the challenge using the secret to produce a response; sending the response to the second process; and decoding the response by the second process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus for authenticating a first process operating in an address space different than that of a second process comprising:
-
a processing unit for executing programming instructions; and a storage medium having stored therein a plurality of programming instructions of the second process to be executed by the processing unit, wherein when executed, the plurality of programming instructions create a tamper resistant module containing a secret, create a challenge, send the tamper resistant module and the challenge to the first process, receive a response to the challenge from the first process, and decode the response. - View Dependent Claims (11, 12, 13)
-
-
14. An apparatus for authenticating a first process operating in an address space different than that of a second process comprising:
-
a processing unit for executing programming instructions; and a storage medium having stored therein a plurality of programming instructions of the first process to be executed by the processing unit, wherein when executed, the plurality of programming instructions receive a tamper resistant module from the second process, initiate execution of the tamper resistant module, recover a secret embedded in the tamper resistant module when the integrity of the first process is verified during execution of the tamper resistant module, receive a challenge from the second process, encode the challenge using the secret to produce a response, and send the response to the second process. - View Dependent Claims (15, 16, 17)
-
-
18. An apparatus for authenticating a first process operating in an address space different than that of a second process comprising:
-
a processing unit for executing programming instructions; and a storage medium having stored therein a plurality of programming instructions to be executed by the processing unit, wherein when executed, the plurality of programming instructions create a tamper resistant module containing a secret, create a challenge, send the tamper resistant module and the challenge to the first process, initiate execution of the tamper resistant module in the address space of the first process, recover the secret embedded in the tamper resistant module when the integrity of the first process is verified during execution of the tamper resistant module, receive the challenge from the second process, encode the challenge using the secret to produce a response, send the response to the second process, receive the response to the challenge from the first process, and decode the response.
-
-
19. An apparatus for bilateral authentication of local and remote processes comprising:
-
a processing unit for executing programming instructions; and a storage medium having stored therein a plurality of programming instructions of a local process to be executed by the processing unit, wherein when executed, the plurality of programming instructions create a first tamper resistant module containing a first secret, create a first challenge, send the first tamper resistant module and the first challenge to a remote process, receive a first response to the first challenge from the remote process, decode the first response, receive a second tamper resistant module, initiate execution of the second tamper resistant module, recover a second secret embedded in the second tamper resistant module when the integrity of the local process is verified during execution of the second tamper resistant module, receive a second challenge from the remote process, encode the second challenge using the second secret to produce a second response, and send the second response to the remote process.
-
-
20. A machine readable medium having stored therein a plurality of machine readable instructions designed to be executed by a processor, the machine readable instructions for creating a tamper resistant module containing a secret, creating a challenge, sending the tamper resistant module and the challenge to a remote process, receiving a response to the challenge from the remote process, and decoding the response.
-
21. A machine readable medium having stored therein a plurality of machine readable instructions designed to be executed by a processor, the machine readable instructions for receiving a tamper resistant module from a remote process, initiating execution of the tamper resistant module, recovering a secret embedded in the tamper resistant module when the integrity of a local process is verified during execution of the tamper resistant module, receiving a challenge from the remote process, encoding the challenge using the secret to produce a response, and sending the response to the remote process.
-
22. A machine readable medium having stored therein a plurality of machine readable instructions designed to be executed by a processor, the machine readable instructions for creating a tamper resistant module containing a secret, creating a challenge, sending the tamper resistant module and the challenge to a first process, initiating execution of the tamper resistant module in the address space of the first process, recovering the secret embedded in the tamper resistant module when the integrity of the first process is verified during execution of the tamper resistant module, receiving the challenge from a second process, encoding the challenge using the secret to produce a response, sending the response to the second process, receiving the response to the challenge from the first process, and decoding the response.
-
23. A machine readable medium having stored therein a plurality of machine readable instructions designed to be executed by a processor, the machine readable instructions for creating a first tamper resistant module containing a first secret, creating a first challenge, sending the first tamper resistant module and the first challenge to a remote process, receiving a first response to the first challenge from the remote process, decoding the first response, receiving a second tamper resistant module from the remote process, initiating execution of the second tamper resistant module, recovering a second secret embedded in the second tamper resistant module when the integrity of a local process is verified during execution of the second tamper resistant module, receiving a second challenge from the remote process, encoding the second challenge using the second secret to produce a second response, and sending the second response to the remote process.
Specification