IP Library Granted Patent US 8,443,207
Granted Patent B2
US 8,443,207 · App. 12/727,030 · Granted May 14, 2013

File system filter authentication

Inventors: Mei Yan (Cupertino, CA); Chieh-Hao Yang (Sunnyvale, CA); Junzhi Wang (San Jose, CA); Paul McAvoy (Los Gatos, CA); Bahman Qawami (San Jose, CA); Farshid Sabet-Sharghi (Los Altos Hills, CA); Patricia Dwyer (San Carlos, CA); Po Yuan (Milpitas, CA)
Assignee: Sandisk Technologies Inc.
View Patent ↗
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 8,443,207
App. No.
12/727,030
Granted
May 14, 2013
Kind
B2
Abstract

A method of accessing content includes installing a file system filter for a secure removable memory device on a host device. A challenge is sent from the file system filter to a software entity on the host device, and a software entity response is received at the file system filter in response to the challenge. A file system filter response is calculated at the file system filter using the challenge, and access to first content on the secure removable memory device is provided if the software entity response matches the file system filter response.

Claims (65)

1. A method comprising:

installing a file system filter for a secure removable memory device on a host device, wherein installing includes executing file system filter installation code received from the secure removable memory device;

sending, by the host device, a challenge from the file system filter on the host device to a software entity on the host device;

receiving a software entity response at the file system filter on the host device from the software entity in response to sending the challenge;

calculating a file system filter response at the file system filter on the host device using the challenge; and

enabling the software entity to access first content stored in the secure removable memory device in response to the software entity response matching the file system filter response.

2. The method of claim 1 , further comprising intercepting control of a host file system on the host device by the file system filter.

3. The method of claim 1 , further comprising:

determining whether the first content requested by the software entity is protected in the secure removable memory device, wherein the determining is performed by the file system filter;

accessing the first content using a host file system on the host device if the first content is not protected; and

accessing the first content using a secure file system on the host device if the first content is protected.

4. The method of claim 1 , further comprising receiving a request for the first content from the software entity, wherein sending the challenge is performed in response to receiving the request.

5. The method of claim 1 , wherein access by the software entity to the first content is provided by using a secure file system on the host device.

6. The method of claim 1 , wherein the challenge is a random number generated by the file system filter.

7. The method of claim 1 , wherein the software entity response is a response to a cryptographic function.

8. The method of claim 1 , wherein the file system filter response is calculated using a cryptographic function and the file system filter response is calculated based on the challenge and a first system time indicating when the challenge is sent to the software entity.

9. The method of claim 8 , further comprising:

calculating a set of responses to the cryptographic function for a window of times, wherein the window of times includes the first system time and a number of times subsequent to the first system time; and

returning an error to the software entity in response to the file system filter not receiving the software entity response within the window of times.

10. The method of claim 1 , further comprising returning an error to the software entity in response to the software entity response failing to match the file system filter response.

11. The method of claim 1 , further comprising:

registering the software entity and a domain location of the first content in an authentication registration table for managing authenticated software entities in response to the software entity response matching the file system filter response, wherein the registering is performed by the file system filter; and

permitting the software entity to access other content in the domain location while the software entity is registered in the authentication registration table.

12. The method of claim 11 , further comprising unregistering the software entity and the domain location of the first content from the authentication registration table after a predetermined amount of time has elapsed from a registration time when the software entity and the domain location of the first content is registered in the authentication registration table.

13. The method of claim 1 , wherein the host device provides access by the software entity to the first content by:

accessing permissions associated with the first content including accessing a content encryption key within the permissions; and

sending decrypted first content to the software entity.

14. The method of claim 1 , wherein the host device provides access by the software entity to the first content by:

receiving, from the secure removable memory device, first encrypted content, the first encrypted content including the first content that has been encrypted using a session encryption key;

decrypting the first encrypted content within the host device using the session encryption key; and

permitting the software entity to read the first content.

15. The method of claim 1 , further comprising:

generating a unique file handler with a secure flag indicating that an application has been authenticated for access to the first content; and

allowing the software entity to access other content within a same path as the first content without sending a challenge to the software entity in response to a request for the other content.

16. A method comprising:

requesting, by a software entity on a host device, content stored on a secure removable memory device;

receiving a challenge associated with the secure removable memory device, wherein the challenge is received by the software entity upon the host device executing first code received from the secure removable memory device;

generating, by the software entity, a software entity response using the challenge; and

receiving, by the software entity, the content from the secure removable memory device in response to the software entity response matching a first code response, wherein the first code response is generated by the first code executed by the host device and the first code response is based on the challenge.

17. The method of claim 16 , wherein generating the software entity response comprises:

inputting, into a cryptographic function, the challenge and a system time indicating when the challenge is received; and

calculating, by the cryptographic function, the software entity response based on the challenge and the system time.

18. The method of claim 16 , further comprising receiving an error in response to the software entity response failing to match the first code response.

19. A method of authenticating application entities, the method comprising:

receiving, at a host device, a request for first content stored on a secure removable memory device, wherein the request is received from a software entity on the host device; and

executing, by the host device, first code received from the secure removable memory device to:

send a challenge to the software entity in response to the first content being protected in the secure removable memory device;

generate a first code response using the challenge in response to the host device receiving, from the software entity, a software entity response to the challenge; and

enable the software entity to access the first content through a secure file system in response to the software entity response matching the first code response.

20. The method of claim 19 , further comprising determining whether the first content is stored in a secure memory partition of the secure removable memory device.

21. The method of claim 19 , wherein generating the first code response includes calculating the first code response using a cryptographic function, wherein the first code response is calculated based on the challenge and based on a first system time indicating when the challenge is sent to the software entity.

22. The method of claim 21 , further comprising:

calculating a set of responses using the cryptographic function for a window of times, wherein the window of times includes the first system time and a number of times subsequent to the first system time;

returning an error to the software entity in response to the software entity response is not being received within the window of times; and

returning the error to the software entity in response to the software entity response failing to match the first code response.

23. A data storage device configured to interface with a host device, the data storage device comprising:

a communication interface;

non-volatile memory to store content and first code; and

a processor operatively coupled to the non-volatile memory and operatively coupled to the communication interface, the processor configured to provide the first code to the host device, wherein the first code, upon execution by the host device, causes the host device to:

intercept a request from a software entity to access the stored content;

send a challenge to the software entity in response to the request;

receive a first response from the software entity in response to the challenge sent to the software entity; and

calculate a second response based on the challenge by executing the first code,

wherein access by the software entity to the stored content is permitted conditioned on the first response matching the second response.

24. The data storage device of claim 23 , wherein the processor is further configured to transfer the stored content from the non-volatile memory to the host device conditioned on the software entity being permitted to access the stored content.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2025
From: SANDISK TECHNOLOGIES LLC
To: PALISADE TECHNOLOGIES, LLP
Reel/Frame 071435/0463 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2011
From: SANDISK CORPORATION
To: SANDISK TECHNOLOGIES INC.
Reel/Frame 026276/0460 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2010
From: YAN, MEI; YANG, CHIEH-HAO; WANG, JUNZHI; MCAVOY, PAUL; QAWAMI, BAHMAN; SABET-SHARGHI, FARSHID; DWYER, PATRICIA; YUAN, PO
To: SANDISK CORPORATION
Reel/Frame 024104/0078 →
Continuity (2)
Continuation 11963960 · Dec 24, 2007
Related Publication 20100191962A1 · Jul 29, 2010