Host device and method for communicating a password between first and second storage devices using a double-encryption scheme

A first storage device provides a host device with access to a private memory area by communicating a password between the first storage device and a second storage device via the host device using a double-encryption scheme. In one embodiment, a host device receives a twice-encrypted password from a first storage device, sends the twice-encrypted password to a second storage device, receives a once-encrypted password from the second storage device, decrypts the once-encrypted password to obtain the password, and sends the password to the first storage device. In another embodiment, a first storage device sends a twice-encrypted password to a host device, receives the password from the host device after the twice-encrypted password is decrypted by a second storage device and the host device, and provides the host device with access to the private memory area only if the password matches one that is stored in the first storage device.

BACKGROUND

In some environments, a host device (such as a personal computer) is used with a first storage device (such as a Universal Serial Bus (USB) device or an embedded or removable memory card) that contains a password-protected private memory area and a second storage device (such as a smart card) that stores the password usable for accessing the private memory area in the first storage device. In operation, the second storage device sends the password to the first storage device via the host device, and, if that password matches one stored in the first storage device, the first storage device provides the host device with access to the private memory area. In this way, the second storage device is used for authenticating access to the private memory area on the first storage device.

A security risk can be presented if the password is transmitted from the second storage device to the host or from the host to the first storage device in an unsecured manner. For example, consider the situation in which the first storage device is a USB device and the second storage device is a smart card. While some currently-available USB devices can communicate with a host device over a secure channel, many currently-available smart cards cannot. Accordingly, even though the smart card may be able to securely store the password and even though the transmission of the password from the host device to the USB device can occur over a secure channel, the absence of a secure channel between the smart card and the host device creates an opportunity for a hacker to access the password (because it is transmitted in plaintext form) and later use that password to gain unauthorized access to the private memory area of the USB device.

OVERVIEW

Embodiments of the present invention are defined by the claims, and nothing in this section should be taken as a limitation on those claims.

By way of introduction, the below embodiments relate to providing a host device with access to a private memory area in a first storage device by communicating a password between the first storage device and a second storage device via the host device using a double-encryption scheme.

In one embodiment, a host device receives a twice-encrypted password from a first storage device, the password being useable for accessing a private memory area in the first storage device. The host device sends the twice-encrypted password to a second storage device, wherein the second storage device is configured to decrypt the twice-encrypted password to obtain a once-encrypted password. The host device then receives the once-encrypted password from the second storage device, decrypts the once-encrypted password to obtain the password, and sends the password to the first storage device. The password can be sent from the host device to the first storage device through a secure channel, if one is available.

In another embodiment, a first storage device sends a twice-encrypted password to a host device, the password being useable for accessing a private memory area in the first storage device. The host device is configured to send the twice-encrypted password to the second storage device for decryption to obtain a once-encrypted password, receive the once-encrypted password from the second storage device, and decrypt the once-encrypted password to obtain the password. The first storage device receives the password from the host device and provides the host device with access to the private memory area only if the password matches one that is stored in the first storage device. The password can be sent from the host device to the first storage device through a secure channel, if one is available.

DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED EMBODIMENTS

Introduction

In general, the below embodiments relate to communicating a password between first and second storage devices via a host device using a double-encryption scheme in order to provide a host device with access to a private memory area in the first storage device. Before turning to the details of such communication, an overview of exemplary host and storage devices is provided.

Exemplary Host and Storage Devices

Turning now to the drawings,FIG. 1shows a host device100in communication with first and second storage devices110,120via first and second interfaces115,125, respectively. As used herein, the phrase “in communication with” could mean directly in communication with or indirectly in communication with through one or more components, which may or may not be shown or described herein. For example, the interfaces115,125can contain the physical and electrical connectors to send data and commands between the first and second storage devices110,120and the host device100.FIG. 1shows that the host device110comprises a controller130and a memory135, although the host device110can contain additional elements, which are not shown inFIG. 1to simply the drawing. A host device110can take any suitable form, such as, but not limited to, a personal computer (PC), a mobile phone, a digital media player, a game device, a personal digital assistant (PDA), a kiosk, a set-top box, a TV system, a book reader, or any combination thereof.

The first storage device110can take any suitable form, such as, but not limited to, an embedded memory (e.g., a secure module embedded in the host device110), a universal serial bus (USB) device, a smart card, a handheld, removable memory card, or a removable or non-removable hard drive, such as a solid-state drive. As shown inFIG. 1, the first storage device110comprises an interface140to communicate with the host device140, a controller150, and a memory160. The first storage device110can contain additional elements, which are not shown inFIG. 1to simply the drawing.

The controller150can include, for example, a central processing unit (CPU), a crypto-engine operative to provide encryption and/or decryption operations, read access memory (RAM), and read only memory (ROM) for storing firmware for the basic operations of the first storage device110. The controller150can be implemented in any suitable manner. For example, the controller150can take the form of a microprocessor or processor and a computer-readable medium that stores computer-readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, an application specific integrated circuit (ASIC), a programmable logic controller, and an embedded microcontroller, for example. Examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicon Labs C8051F320. The controller150can also be implemented as part of the memory control logic.

The first storage device110also contains a memory160, which can take any suitable form, such as, but not limited to, a mass storage device with solid-state (e.g., flash) memory. In this embodiment, the memory160of the first storage device110contains three areas or partitions: a hidden memory area162, a private memory area164, and a public memory area166. The hidden memory area162, the private memory area164, and the public memory area166can all be part of the same physical memory device, or some or all of the areas162,164,166can be in separate physical memory devices. The hidden memory area162is “hidden” because it is internally managed by the controller150(and not by the host's controller130). Data stored in the hidden memory area162can also be encrypted. As will be described in more detail below, the hidden memory area162can store a password useable for accessing the private memory area164. The hidden memory area162can also store other information, such as, for example, firmware code used by the controller150to control operation of the first storage device110. Unlike the hidden memory area162, the private and public memory areas164,166can be used to store user data. However, while the public memory area166is generally accessible, the controller150only provides access to the private memory area164if the proper password is provided or some other type of authentication process is satisfied. In this way, the private memory area164can be used to securely store data.

Like the first storage device110, the second storage device120can take any suitable form. In one embodiment, the second storage device120takes the form of a smart card. However, the second storage device120can take other forms, such as, but not limited to, an embedded memory (e.g., a secure module embedded in the host device110), a universal serial bus (USB) device, a handheld, removable memory card, or a removable or non-removable hard drive, such as a solid-state drive. As shown inFIG. 1, the second storage device120comprises an interface170to communicate with the host device140, a controller180, and a memory190. The second storage device120can contain additional elements, which are not shown inFIG. 1to simply the drawing. The controller180and memory190can take any suitable form and can be similar to or different from the form of the controller150and memory160in the first storage device110.

Communicating a Password Using a Double-Encryption Scheme

The host device110and first and second storage devices110,120can be used in any suitable manner. In one embodiment, the second storage device120(e.g., a smart card) is used for authenticating access to the private memory area164in the first storage device110(e.g., a USB drive or embedded memory). As discussed in the background section above, a security risk can be presented in such an arrangement. For example, while some currently-available USB devices can communicate with a host device over a secure channel, many currently-available smart cards cannot. Accordingly, even though the smart card may be able to securely store the password and even though the transmission of the password from the host device to the USB device can occur over a secure channel, the lack of a secure channel between the smart card and the host device creates an opportunity for a hacker to be able to access the password (because it is transmitted in plaintext form) and later use that password to gain unauthorized access to the private memory area of the USB device.

In order to address this problem, the following embodiment uses a double-encryption scheme to protect the password even though there may not be a secure channel between the second storage device120and the host device100. In general, the password (e.g., a device key) using for unlocking the private memory area164of the first storage device110is encrypted twice during system initialization and stored in the hidden memory area162of the first storage device110. In this embodiment, the password is first encrypted with a unique key that is accessible only to the host device100and then is encrypted a second time with a unique key that is accessible only to the second storage device. This twice-encrypted password can be used to securely transmit the password even though a secure channel is not present between the second storage device120and the host device100, as will be illustrated through the discussion of the flow chart200inFIG. 2.

As shown in the flow chart200inFIG. 2, the host device100receives the twice-encrypted password from the first storage device110(act210) and then sends the twice-encrypted password to the second storage device (act220). The second storage device120then uses its unique key to decrypt the twice-encrypted password to obtain a once-encrypted password (i.e., the password encrypted with the host device's unique key). The host device110then receives the once-encrypted password from the second storage device120(act230). Even though the second storage device120does not have a secure channel with the host device110, the transmitted password is encrypted. So, even if a hacker captures the once-encrypted password in transit between the second storage device120and the host device100, the hacker would not have access to the password itself because it is encrypted. When the host device100receives the once-encrypted password, the host device100decrypts it with its unique key to obtain the password (act240) and then sends the password in plaintext form to the first storage device via a secured channel (act250). In addition to storing the once-encrypted password, the first storage device110can store the plaintext form of the password (preferably in the hidden memory area162) and compare the plaintext form of the password received from the host device100with the plaintext form of the password stored in its memory160. If the passwords match, the first storage device110can provide the host device100with access to the private memory area164, and the host device100can send read/write commands to access the private memory area164.

Turning again to the drawings,FIGS. 3 and 4are a block diagram and flowchart400that provides another illustration of this embodiment.FIG. 3shows a host device300in communication with first and second storage devices310,320. The first storage device310contains a hidden memory partition325that stores a password that can be used to unlock the private memory partition345and is twice encrypted: once with a key unique to the second storage device320and afterwards with a key unique to the host device300. The device platform protection block340is part of the first storage device's controller and enables access to the private partition345if a received password matches a device unlock password, which can be stored in the hidden partition325. The host device300implements a “trusted agent”300, which can be a software application running on the host device's controller. The trusted agent can perform encryption, establish a secure channel with the first storage device310, present a graphical user interface to collect user information, and perform other tasks. The second storage device320has an interface335, which can be implemented on the second storage device's controller, that is configured to perform decryption using the second storage device's unique key (the “unlock key”).

With reference to the timing diagram inFIG. 4and the block diagram inFIG. 3, in the embodiment, the trusted agent330asks the user of the host device300for a PIN number (or other type of identifier) to authenticate the user to the second storage device320. The second storage device320then verifies the PIN and grants access the second storage device's unique key (here, an RSA key). The trusted agent330also creates a secure channel with the first storage device310. In this example, the first storage device310is a USB device operating under the U3 standard, and a secure channel is created based on a RSA 512 challenge-response process. After the secure channel is created, the trusted agent reads the twice-encrypted password from the first storage device310and sends it to the second storage device320along with a request to decrypt the twice-encrypted password with the RSA key stored in the second storage device320. The second storage device320decrypts the twice-encrypted password to obtain the once-encrypted password and then sends the once-encrypted password to the trusted agent330. The trusted agent330then decrypts the once-encrypted password to obtain the password in plaintext form. For example, the trusted agent330can calculate or extract a unique device decryption key (e.g., a unique AES key) and then decrypt the once-encrypted password with the unique AES key to obtain the password in plaintext form. The trusted agent330then encrypts the password using the session key of the secure session and sends the password to the first storage device310along with a command to unlock the private U3 partition. The first storage device310verifies the password by having the device platform protection block340compare the password received from the trusted agent with the device unlock password stored in the first storage device310. After the password has been verified, the device platform protection block340enables access to the private partition345, so that the host device300can send read/write legacy commands to read from and write to the private partition345.

As illustrated by these examples, these embodiments can be used to securely communicate a password from a second storage device to a first storage device via a host device even though a secure communication channel does not exist between the second storage device and the host device. This avoids the security risk discussed in the background section above. Like the prior approaches, the second storage device is still used to authenticate the host device to the first storage device. However, instead of sending the password itself, the second storage device provides one level of decryption that is needed to render the password.

Conclusion