Method and apparatus for authenticating an open system application to a portable IC device
First Claim
Patent Images
1. An apparatus comprising:
- a processor; and
a nonvolatile memory, coupled to the processor, that stores both data and a program that, when a request to access the data is received, causes the processor to allow access to the data only if the requester can prove that the requester is an application on a list of trusted applications maintained by the apparatus, wherein the program further causes the processor to send the list of trusted applications to the requester, and receive from the requester a certificate chain proving that the application is an application on the list of trusted applications.
2 Assignments
0 Petitions
Accused Products
Abstract
A secure communication channel between an open system and a portable IC device is established. An application running on the open system desiring access to the information on the portable IC device authenticates itself to the portable IC device, proving that it is trustworthy. Once such trustworthiness is proven, the portable IC device authenticates itself to the application. Once such two-way authentication has been completed, trusted communication between the open system and the portable IC device can proceed, and private information that is maintained on the portable IC device can be unlocked and made available to the application.
-
Citations
30 Claims
-
1. An apparatus comprising:
-
a processor; and
a nonvolatile memory, coupled to the processor, that stores both data and a program that, when a request to access the data is received, causes the processor to allow access to the data only if the requester can prove that the requester is an application on a list of trusted applications maintained by the apparatus, wherein the program further causes the processor to send the list of trusted applications to the requester, and receive from the requester a certificate chain proving that the application is an application on the list of trusted applications. - View Dependent Claims (2, 3, 4)
send, to the requester, a challenge;
receive a response to the challenge from the requester;
verify the response; and
determine whether the requester is an application on the list of trusted applications only after the response is verified.
-
-
5. An apparatus comprising:
-
a processor; and
a memory, coupled to the processor, including one or more programs that, when executed by the processor, causes the processor to, receive a list of trusted applications, generate a certificate chain proving that an application being executed by the processor is on the list of trusted applications, and send the certificate chain to a portable integrated circuit device. - View Dependent Claims (6, 7)
request that the portable integrated circuit device allow the application to access data stored on the portable integrated circuit device;
receive a challenge from the portable integrated circuit device;
send a response to the challenge; and
receive the list of trusted applications in response to the response to the challenge.
-
-
7. An apparatus as recited in claim 5, wherein the certificate chain includes an operating system certificate, a processor manufacturer'"'"'s certificate, and an original equipment manufacturer (OEM) certificate.
-
8. A method comprising:
-
establishing communication between a computer and a portable integrated circuit device; and
authenticating, to the portable integrated circuit device, an application running on the computer without regard for whether an operating system running on the computer can be authenticated. - View Dependent Claims (9, 11)
-
-
10. A method comprising:
-
establishing communication between a computer and a portable integrated circuit device; and
authenticating, to the portable integrated circuit device, an application running on the computer without regard for whether an operating system running on the computer can be authenticated, wherein the authenticating comprises generating a certificate chain corresponding to the application and sending the certificate to the portable integrated circuit device.
-
-
12. A method comprising:
-
receiving, at a computer, a challenge from a portable integrated circuit device;
generating, in response to the challenge, a certificate identifying whether an application at the computer can be authenticated at the time the challenge is received;
providing the certificate to the portable integrated circuit device. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
establishing, prior to the receiving, a secure communication channel between the computer and the portable integrated circuit device.
-
-
17. A method as recited in claim 12, wherein the certificate includes a boot log identifying which operating system (OS) extensions were executing on the computer at the time when the challenge was received.
-
18. A method as recited in claim 12, wherein the generating comprises generating the certificate using an authenticated boot methodology.
-
19. A method as recited in claim 12, wherein the generating comprises generating the certificate using a curtaining methodology.
-
20. At least one computer-readable memory containing a computer program that is executable by a processor to perform the method recited in claim 12.
-
21. At least one computer-readable storage medium having stored thereon a computer program, the program comprising the following steps:
-
receiving, at a computer, a challenge from a portable integrated circuit device, the challenge corresponding to an application running at the computer;
authenticating, at the computer, an application executing at the computer;
certifying, to the portable integrated circuit device, that the application is authenticated. - View Dependent Claims (22, 23, 24)
-
-
25. At least one computer-readable storage medium having stored thereon a computer program, the program comprising the following steps:
-
receiving, at a computer, a challenge from a portable integrated circuit device, the challenge corresponding to an application running at the computer;
authenticating, at the computer, an application executing at the computer;
certifying, to the portable integrated circuit device, that the application is authenticated, wherein the certifying comprises providing a certificate chain to the portable integrated circuit device.
-
-
26. In a system having a computer and a portable integrated circuit device, in which the computer has a central processing unit (CPU), an operating system (OS), and an original equipment manufacturer (OEM) certificate, and the CPU further includes a pair of private and public keys, a manufacturer certificate supplied by a manufacturer of the CPU, and a software identity register that holds an identity of the operating system, a method for establishing a chain of trust between the computer and the portable integrated circuit device, the method comprising:
-
submitting a request, from the computer to the portable integrated circuit device, for the portable integrated circuit device to unlock itself and make data stored on the portable integrated circuit device accessible to the computer;
accessing, at the portable integrated circuit device, a list of trusted applications;
sending the list of trusted applications from the portable integrated circuit device to the computer;
forming, at the computer, an OS certificate containing the identity from the software identity register, information describing the operating system, the list of trusted applications, information describing applications running on the computer, and the CPU public key;
signing the OS certificate using the CPU private key;
passing the OS certificate, the CPU manufacturer certificate, and the OEM certificate from the computer to the portable integrated circuit device; and
evaluating, at the portable integrated circuit device, the OS certificate, the CPU manufacturer certificate, and the OEM certificate to determine whether to unlock the portable integrated circuit device. - View Dependent Claims (27)
-
-
28. In a system having a computer and a portable integrated circuit device, in which the computer has a central processing unit (CPU) and an operating system, a method comprising:
-
designating a section of the memory in the computer as a secure section that can be accessed only by a trusted application despite any lack of trustworthiness of the operating system;
loading the program instructions for the trusted application into the secure section of memory;
using a portion of the secured section of memory to store data for the trusted application;
submitting a request, from the computer to the portable integrated circuit device, for the portable integrated circuit device to unlock itself and make data stored on the portable integrated circuit device accessible to the computer;
generating a certificate, at the computer, indicating that the trusted application is running in the secure section of memory;
passing the certificate to the portable integrated circuit device;
evaluating, at the portable integrated circuit device, the certificate to determine whether to unlock the portable integrated circuit device; and
if the evaluation is successful, unlocking the portable integrated circuit device, and indicating to a user that it is safe to use the computer. - View Dependent Claims (29, 30)
-
Specification