IP Library Patent Application 11347069
Patent Application
App. No. 11/347,069

Methods and apparatus for facilitating a secure session between a processor and an external device

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
11/347,069
Abstract

Methods and apparatus provide for verifying operating system software integrity prior to being executed by a processor, the processor including an associated local memory and capable of operative connection to a main memory such that data may be read from the main memory for use in the local memory; storing a status flag indicating whether the operating system software integrity is or is not satisfactory; and ensuring that the status flag indicates that the operating system software integrity is satisfactory before permitting the processor to continue in a course of action.

Claims (105)

1 . A method, comprising:

verifying operating system software integrity prior to being executed by a processor, the processor including an associated local memory and capable of being coupled to a main memory such that data may be read from the main memory for use in the local memory;

storing a status flag indicating whether the operating system software integrity is or is not satisfactory; and

ensuring that the status flag indicates that the operating system software integrity is satisfactory before permitting the processor to use the data.

2 . The method of claim 1 , further comprising verifying data integrity prior to checking the status flag.

3 . The method of claim 1 , wherein the step of verifying operating system software integrity includes:

entering a secure mode of operation where externally initiated requests to read data from or write data into the processor are not serviced but internally initiated data transfers are serviced;

reading a decryption program from a storage medium into the local memory of the processor;

reading an encrypted authentication program into the local memory of the processor;

decrypting the encrypted authentication program using the decryption program;

reading encrypted operating system software into the local memory, the operating system software having been encrypted using a private key of a private/public key pair; and

using the authentication program to authenticate the operating system software.

4 . The method of claim 3 , further comprising:

decrypting the encrypted operating system software using the authentication program and the public key of the private/public key pair;

verifying the integrity of the operating system software by executing a hash function thereon to produce a hash result and comparing the hash result with a predetermined hash value; and

permitting the processor to run the operating system software if the hash result matches the predetermined hash value.

5 . The method of claim 4 , further comprising verifying data integrity prior to checking the status flag.

6 . The method of claim 5 , wherein the step of verifying the data integrity includes:

reading an encrypted version of the data into the local memory, the data having been encrypted using a private key of a private/public key pair; and

using the authentication program to authenticate the data.

7 . The method of claim 6 , further comprising:

decrypting the encrypted data using the authentication program and the public key of the private/public key pair;

verifying the integrity of the data by executing a hash function thereon to produce a hash result and comparing the hash result with a predetermined hash value; and

permitting the processor to use the data if the hash result matches the predetermined hash value.

8 . The method of claim 1 , further comprising:

checking the status flag as part of a course of action in another processor, the processors being part of a multi-processor system; and

permitting the other processor to continue in the course of action only after ensuring that the status flag indicates that the operating system software integrity is satisfactory.

9 . The method of claim 1 , further comprising:

verifying the integrity of the operating system software from time to time and updating the status flag; and

checking the status flag from time to time to ensure that the status flag indicates that the operating system software integrity is satisfactory before permitting the processor to continue in a course of action.

10 . A method, comprising:

verifying operating system software integrity prior to being executed by a processor, the processor including an associated local memory and capable of operative connection to a main memory such that data may be read from the main memory for use in the local memory;

storing a status flag indicating whether the operating system software integrity is or is not satisfactory; and

ensuring that the status flag indicates that the operating system software integrity is satisfactory before permitting the processor to using the data or certain processing resources.

11 . The method of claim 10 , wherein at least one of:

the processing resources include a non-volatile memory sub-system, and one or more functional circuits;

the non-volatile memory sub-system includes at least portions of software and/or hardware components of an electromagnetic memory medium, an electronic memory medium, a silicon memory medium, an optical memory medium, a hard disc memory medium, an a CD-ROM memory medium, a DVD-ROM memory medium, and an external memory medium; and

the one or more functional circuits of the apparatus includes at least one graphics processing circuit, a network interface circuit, a display interface circuit, a printer interface circuit, and a local data input and/or output interface.

12 . The method of claim 10 , further comprising establishing a secure session between the processor and one or more processing resources after ensuring that the status flag indicates that the operating system software integrity is satisfactory.

13 . The method of claim 12 , wherein the secure session between the processor and the one or more processing resources includes encrypting data shared therebetween using a pair of keys.

14 . The method of claim 10 , further comprising verifying integrity of the data prior to checking the status flag and permitting the processor to continue in a course of action only after the integrity of the data are ensured and the status flag indicates that the operating system software integrity is satisfactory.

15 . A method, comprising:

verifying operating system software integrity from time to time prior to and/or after being executed by a processor, the processor including an associated local memory and capable of operative connection to a main memory such that data may be read from the main memory for use in the local memory;

storing a status flag indicating whether the operating system software integrity is or is not satisfactory; and

ensuring from time to time that the status flag indicates that the operating system software integrity is satisfactory before permitting the processor to continue in a course of action.

16 . An apparatus, comprising:

at least one processor and associated local memory that are capable of being coupled to a main memory and being operable to request at least some data from the main memory for use in the local memory; and

a storage medium containing a decryption program,

wherein the processor is operable to:

verify operating system software integrity prior to being executed by the processor;

store a status flag indicating whether the operating system software integrity is or is not satisfactory; and

ensure that the status flag indicates that the operating system software integrity is satisfactory before using the data.

17 . The apparatus of claim 16 , wherein the processor is further operable to verify data integrity prior to checking the status flag.

18 . The apparatus of claim 16 , wherein the processor is further operable to verify the operating system software integrity by:

entering a secure mode of operation where externally initiated requests to read data from or write data into the processor are not serviced but internally initiated data transfers are serviced;

reading a decryption program from a storage medium into the local memory of the processor;

reading an encrypted authentication program into the local memory of the processor;

decrypting the encrypted authentication program using the decryption program;

reading encrypted operating system software into the local memory, the operating system software having been encrypted using a private key of a private/public key pair; and

using the authentication program to authenticate the operating system software.

19 . The apparatus of claim 18 , wherein the processor is further operable to:

decrypt the encrypted operating system software using the authentication program and the public key of the private/public key pair;

verify the integrity of the operating system software by executing a hash function thereon to produce a hash result and comparing the hash result with a predetermined hash value; and

run the operating system software if the hash result matches the predetermined hash value.

20 . The apparatus of claim 19 , wherein the processor is further operable to verify data integrity prior to checking the status flag.

21 . The apparatus of claim 20 , wherein the processor is further operable to verify the data integrity by:

reading an encrypted version of the data into the local memory, the data having been encrypted using a private key of a private/public key pair; and

using the authentication program to authenticate the data.

22 . The apparatus of claim 21 , wherein the processor is further operable to:

decrypt the encrypted data using the authentication program and the public key of the private/public key pair;

verify the integrity of the data by executing a hash function thereon to produce a hash result and comparing the hash result with a predetermined hash value; and

permit the processor to use the data if the hash result matches the predetermined hash value.

23 . The apparatus of claim 16 , wherein the processor is further operable to:

verify the integrity of the operating system software from time to time and update the status flag; and

check the status flag from time to time to ensure that the status flag indicates that the operating system software integrity is satisfactory before continuing in a course of action.

24 . The apparatus of claim 16 , wherein:

any of a plurality of such processors in a multi-processor system are operable to:

check the status flag as part of a course of action; and

continue in the course of action only after ensuring that the status flag indicates that the operating system software integrity is satisfactory.

25 . An apparatus, comprising:

at least one processor and associated local memory capable of being operatively coupled to a main memory and being operable to request at least some data from the main memory for use in the local memory; and

a storage medium containing a decryption program,

wherein the processor is operable to:

verify operating system software integrity prior to being executed;

store a status flag indicating whether the operating system software integrity is or is not satisfactory; and

ensure that the status flag indicates that the operating system software integrity is satisfactory before using the data or certain processing resources.

26 . The apparatus of claim 25 , wherein at least one of:

the processing resources include a non-volatile memory sub-system, and one or more functional circuits;

the non-volatile memory sub-system includes at least portions of software and/or hardware components of an electromagnetic memory medium, an electronic memory medium, a silicon memory medium, an optical memory medium, a hard disc memory medium, an a CD-ROM memory medium, a DVD-ROM memory medium, and an external memory medium; and

the one or more functional circuits of the apparatus includes at least one graphics processing circuit, a network interface circuit, a display interface circuit, a printer interface circuit, and a local data input and/or output interface.

27 . The apparatus of claim 25 , wherein the processor is further operable to establish a secure session with one or more processing resources after ensuring that the status flag indicates that the operating system software integrity is satisfactory.

28 . The apparatus of claim 27 , wherein the secure session between the processor and the one or more processing resources includes encrypting data shared therebetween using a pair of keys.

29 . The apparatus of claim 25 , wherein the processor is further operable to verify integrity of the data prior to checking the status flag and continuing in a course of action only after the integrity of the data are ensured and the status flag indicates that the operating system software integrity is satisfactory.

30 . A storage medium containing a software program that is capable of causing a processor to execute actions, comprising:

verifying operating system software integrity prior to being executed by the processor, the processor including an associated local memory and being capable of operative connection to a main memory such that data may be read from the main memory for use in the local memory;

storing a status flag indicating whether the operating system software integrity is or is not satisfactory; and

ensuring that the status flag indicates that the operating system software integrity is satisfactory before permitting the processor to use the data.

31 . A storage medium containing a software program that is capable of causing a processor to execute actions, comprising:

verifying operating system software integrity prior to being executed by the processor, the processor including an associated local memory and capable of operative connection to a main memory such that data may be read from the main memory for use in the local memory;

storing a status flag indicating whether the operating system software integrity is or is not satisfactory; and

ensuring that the status flag indicates that the operating system software integrity is satisfactory before permitting the processor to using the data or certain processing resources.

32 . A storage medium containing a software program that is capable of causing a processor to execute actions, comprising:

verifying operating system software integrity from time to time prior to and/or after being executed by the processor, the processor including an associated local memory and capable of operative connection to a main memory such that data may be read from the main memory for use in the local memory;

storing a status flag indicating whether the operating system software integrity is or is not satisfactory; and

ensuring from time to time that the status flag indicates that the operating system software integrity is satisfactory before permitting the processor to continue in a course of action.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2011
From: SONY NETWORK ENTERTAINMENT PLATFORM INC.
To: SONY COMPUTER ENTERTAINMENT INC.
Reel/Frame 027449/0469 →
CHANGE OF NAME Recorded Dec 26, 2011
From: SONY COMPUTER ENTERTAINMENT INC.
To: SONY NETWORK ENTERTAINMENT PLATFORM INC.
Reel/Frame 027448/0895 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2006
From: HATAKEYAMA, AKIYUKI
To: SONY COMPUTER ENTERTAINMENT INC.
Reel/Frame 017694/0317 →