Abstract:
An external storage medium adapter for establishing a connection between a computer and an external storage medium, said external storage medium adapter comprising: 
     an first interface for connecting to said computer and for receiving through said interface from said computer data which is to be stored in encrypted form on a separate persistent storage device; 
     an interface for connecting said external storage medium adapter to said separate persistent storage device; 
     an encryption engine for encrypting data which is received from said computer and which is to be written in encrypted form onto said persistent storage device by using one or more credentials; 
     a credential storage for storing said one or more credentials used to encrypt said data.

Description:
RELATED APPLICATIONS 
       [0001]    The present application is related to U.S. patent application Ser. No. 11/707,842 titled “External Storage Medium”, and to European Patent application no. 07109378.5 filed at the European Patent Office titled “External Storage Device”, and to European Patent application no. 07114320.0 titled “External Storage Medium”, all of which are incorporated herein by reference. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The present invention relates to an external storage medium adapter. 
       BACKGROUND OF THE INVENTION 
       [0003]    The present invention relates to an external storage medium on which data can be stored in encrypted form. More particular, it relates to an external storage as described in European Patent application no. 06101719.0 filed by the same applicant as the present application which is incorporated herein by reference. 
         [0004]    The external storage as described in this application no. 06101719.0 can store data in encrypted form together with access credentials which allow the decryption of the stored data. The external storage detects if it is disconnected from its host, and then a counter or timer starts and if an expiration criterion based on an expired time or a predefined number of counted events is met the access to the data is denied due to the fact that the data cannot be decrypted anymore since the access credentials which were stored on the external storage are deleted. 
         [0005]    In this manner data can securely be stored on the external storage because the access is not unlimited but will be made impossible after the expiration criterion is met. E. g. if the storage medium gets lost or is stolen, the unauthorized user cannot access the storage after the expiration criterion is met, e.g. after the expiration of a certain time. If this time is set sufficiently small (e.g. a few minutes) it is extremely unlikely that the data stored on this device can be accessed by a user for which the data are not intended. 
         [0006]      FIG. 1  schematically illustrates a configuration of an external storage as described in the previous European Patent application no. 06101719.0. When it connects to a “trusted host” data and access credentials can be written onto the storage module. There, data will be encrypted and stored on encrypted user data storage  27  after encryption of the data by the encryption engine  25 . The credentials needed to encrypt data and decrypt the encrypted data are written into credential storage  24  by the trusted host. Connectivity detection module  22  detects when the storage is disconnected from the host and then the timer  23  starts to operate. As long as the expiration condition (the expiration of the time limit defined by the timer) is not met, any host other than the trusted host can access the encrypted data through using the credentials stored in credential storage  24 . After expiration of the timer, however, the access credentials are deleted and access is not possible anymore. A more detailed description of this and other embodiments may be found in the aforementioned European patent application no. 06101719.0. 
         [0007]    However the external storage as defined in the previous patent application no. 06101719.0 mentioned before has limited amount of persistent memory because the built-in persistent memory of the external storage medium has a fixed size. To extend the storage capacity, a new storage medium is to be used/purchased in case of the previous external storage medium. It is therefore desirable to overcome this deficiency. 
       SUMMARY OF THE INVENTION 
       [0008]    According to one embodiment there is provided an external storage medium adapter for establishing a connection between a computer and a separate persistent storage device, said external storage medium adapter comprising: 
         [0009]    a first interface for connecting to said computer and for receiving through said interface from said computer data which is to be stored in encrypted form on a separate persistent storage device; 
         [0010]    a second interface for connecting said external storage medium adapter to said separate persistent storage device; 
         [0011]    an encryption engine for encrypting data which is received from said computer and which is to be written in encrypted form onto said persistent storage device or for decrypting data which is to be retrieved from said persistent storage device to be decrypted by using one or more credentials; 
         [0012]    a credential storage for storing said one or more credentials used to encrypt or decrypt said data. 
         [0013]    This provides more flexibility with respect to the available storage amount, and it allows also a backup of encrypted data. 
         [0014]    According to one embodiment said adapter maintains a mapping between a credential and its corresponding identifier, and said adapter is adapted such that further to said encrypted data there is written metadata onto said persistent storage device, said metadata enabling for said encrypted data to identify the credential which is to be used by said adapter in order to decrypt said encrypted data. 
         [0015]    This allows the adapter to retrieve the correct credential for encryption/decryption. 
         [0016]    According to one embodiment said identifiers for identifying credentials are unique or at least stochastically unique across all external storage medium adapters. This avoids a collision between credentials of different adapters. 
         [0017]    According to one embodiment said interface for connecting said external storage medium adapter to said separate persistent storage device is a block-based interface. 
         [0018]    According to one embodiment said interface for connecting said external storage medium adapter to said separate persistent storage device is a file-based interface. This enables the persistent storage to require access to it based on a file-based interface, and it thereby allows e.g. to use network attached storage devices (NASs) which offer a file based interface to be used as persistent storage. 
         [0019]    According to one embodiment said interface for connecting said external storage medium adapter to said computer is a block-based interface and said adapter comprises: 
         [0020]    a mapping module for mapping blocks to files and vice versa to access the files of said persistent storage device through said file based interface connecting said adapter with said persistent storage via said block based interface connecting said adapter to said computer. 
         [0021]    In this manner the block-based access from the host can be translated into a file-based access towards the persistent storage. 
         [0022]    According to one embodiment said external storage medium adapter comprises: 
         [0023]    a file system generated inside said adapter for accessing data on said separate persistent storage via a file-based interface. 
         [0024]    According to one embodiment said adapter further comprises: 
         [0025]    an operations buffer for storing all write operations until it is detected that the file system is in a consistent state again, and as soon as this happens, the files touched by the write operation are updated on the persistent storage device. 
         [0026]    The operations buffer in one embodiment is also used to collect operations on blocks until it can be determined what kind of operation it is and on what file. After that, in the block/file mapping based embodiment, the adapter is able to contact the separate storage device on its file interface to read/write the file. 
         [0027]    According to one embodiment the consistency of the file system is detected based on one or more of the following triggers: 
         [0028]    a certain time without write operations; 
         [0029]    write operations to certain blocks such as those containing directory structures or file system tables or predefined files; 
         [0030]    detaching the external medium adapter from said computer. 
         [0031]    According to one embodiment instead of said separate persistent storage outside said adapter said adapter comprises an internal storage inside said adapter which is accessed through said second interface, said second interface being a files based interface and said adapter generating inside said adapter a file system, such as to provide in said internal storage a source location into which data to be encrypted or decrypted can be written, and a target location into which said data after having performed encryption or decryption is written, wherein said encryption engine is adapted to encrypt or decrypt said data after it has been written into said source location and then said encrypted or decrypted data being written to said target location, wherein 
         [0032]    the access of said source location and said target location is performed using said file based interface and said first interface through which said adapter is accessed by said computer is a block based interface, where the block based access is translated into a file-based access using a block/file mapping performed in said adapter. 
         [0033]    According to one embodiment credentials are added to said credential storage on the adapter by storing them as special files in either a specific location or with a specific name so that they can be identified by the encryption engine. This enables the writing of credentials without a specific dedicated command set. Normal mass storage device class commands can be used for writing credentials. 
         [0034]    According to one embodiment the adapter comprises a user interface which displays based on the file system of said adapter to the user the file operation which is to be performed. 
         [0035]    This enables the user of the adapter to monitor the file operations performed by the computer through said adapter. 
         [0036]    Accorrding to one embodiment said user interface of said adapter provides the user the possibility to confirm or to deny a file operation which was requested by said computer. 
         [0037]    This enables the user of the adapter to control the file operations performed by the host computer. 
     
    
     
       DESCRIPTION OF THE DRAWINGS 
         [0038]      FIG. 1  schematically illustrates an external storage medium of a related invention as described in an earlier application. 
           [0039]      FIG. 2  schematically illustrates an external storage medium adapter according to an embodiment of the invention. 
           [0040]      FIG. 3  schematically illustrates an external storage medium adapter according to a further embodiment of the invention. 
           [0041]      FIG. 4  schematically illustrates an operation of an embodiment of the invention. 
           [0042]      FIG. 5  schematically illustrates an operation of a further embodiment of the invention. 
           [0043]      FIG. 6  schematically illustrates a mapping to be used with an embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0044]    According to one embodiment there is provided an external storage medium adapter which together with a separate persistent memory which can be accessed through this adapter provides a functionality similar to the one of the external storage medium of the previous application, however, which overcomes the deficiency of the limited storage amount. This is achieved by providing a separation of the persistent memory from the encryption engine and credential management and storage as schematically illustrated in  FIG. 2 . The persistent memory for storing the (encrypted) user data is kept in another device. Thus, the encryption engine and credential management which is provided in the external storage medium adapter in fact acts as an adapter or intermediary taking unencrypted data on one interface (on the left-hand side of  FIG. 2 ) and storing the encrypted data and associated metadata via another interface (shown on the right-hand side of  FIG. 2  as interface to persistent storage). For reading the data which has been stored in the separate device which contains the persistent memory, the reverse operation is performed. In one embodiment different persistent memory devices can be used with the same adapter. 
         [0045]    In this embodiment the encryption engine encrypts the data to be written into the persistent storage by using the credentials (which may be one or more encryption keys) stored in credential storage  24  and then stores them into the persistent storage. When reading the data they are decrypted using the corresponding credentials stored in credential storage  24 . The credentials may have been written to the external storage medium adapter using a “trusted host” as schematically illustrated in  FIG. 2 , or they may have been downloaded into the credential storage  24  from a “credential provider” as described in the parallel European Patent application number 07114320.0 filed on Aug. 14, 2007, by the same applicant as the present one and titled “External Storage Medium” which is incorporated herein by reference. For details regarding the loading of the credentials into the external storage medium reference is made to this parallel application. In the same manner the credentials may be loaded also into the credential storage  24  of the present embodiment. 
         [0046]    The external storage medium adapter further comprises a module (not shown in  FIG. 2 ) for credential management which maintains a mapping between the data stored in the persistent storage and the corresponding credential(s) used to encrypt them. In one embodiment the same credential or key is used for all of the data on the persistent storage, however, according to a further embodiment different data may be encrypted using different credentials. The external storage medium adapter then performs a suitable credential management to identify which credential is to be used to encrypt or decrypt which data. 
         [0047]    In the described manner, by decoupling encryption engine, credential management and storage from persistent memory, storage capacity can be extended flexibly, by just using different or multiple storage devices. 
         [0048]    In the following further embodiments of the invention will be described. 
         [0049]    The embodiments of the invention are related to an external storage medium shown in  FIG. 1  and which is described in more detail in the already mentioned earlier European Patent application no. 06101719.0 which is incorporated herein by reference and to which reference is made for a more detailed description of such an external storage medium. 
         [0050]    According to an embodiment of the present invention, encrypted user data storage ( 27 ) and unencrypted user data storage ( 28 ) (which is an optional feature for storing unencrypted data) are kept outside of the Secure External Storage Medium shown in  FIG. 1 . Such an embodiment forming an external storage medium adapter is schematically illustrated in  FIG. 2 . The data in this embodiment is stored in a separate persistent storage outside the adapter. 
         [0051]    Now a further embodiment will be explained referring to  FIG. 3 . In this embodiment, for communication between the External Storage Medium Adapter ( 2 ) and the Persistent Storage Device ( 3 ), the interface ( 4 ) is used. The Interface ( 4 ) can be any kind of interface that is suitable to set-up communication between the devices. Suitable interfaces are for instance a direct mass storage media connection (such as USB) or a network based communication, where both devices are connected to the network. For the latter communication, according to one embodiment means to detect integrity violations are added. 
         [0052]    According to one embodiment, to read and write data from/to the Persistent Storage Device, blocks are addressed using their block number, which identifies them uniquely. The Interface  4  is able to exchange these block numbers and the data stored at that block or the data to be stored at that block. In this embodiment the data between the persistent storage and the adapter via interface  4  is block based, and the access to the adapter from the host via the communication module  21  is block-based as well. In this manner the adapter “transparently” enables a block based access of the persistent storage. The persistent storage in this embodiment may be of the “mass storage device class” which means that the access to the device is block based and not file-based. A file system may be provided on the host (not shown in  FIG. 3 ) which accesses the adapter by block based commands using the mass storage device class interface, and this access is then “transparently” forwarded to the persistent storage. This is schematically illustrated in  FIG. 4 , which shows that the host (the computer which accesses the persistent storage through the adapter) performs a block based access on the adapter which then is “forwarded” as block based access to the persistent storage. The access in this embodiment may e.g. be the mass storage device class interface of the USB interface, which is implemented in almost all modern computer systems. 
         [0053]    According to one embodiment as shown in  FIG. 3  the persistent data storage comprises a metadata storage ( 33 ) which stores sufficient information to enable the external storage medium adapter to determine which credential can be used for encryption and decryption. This metadata may e.g. comprise an identifier which identifies a corresponding credential stored in credential storage  24  of the adapter. Using this identifier which is then transmitted together with the corresponding encrypted data from the persistent storage medium to the adapter the adapter can identify the credential to be used to decrypt the data. The adapter for that purpose performs a mapping between the credentials and their corresponding identifiers, and at the persistent storage the metadata are stored such that there is maintained a mapping between the blocks or files and the corresponding credential identifiers. 
         [0054]    In view of the foregoing, it is preferable if the credentials in the adapter are named uniquely (or stochastically uniquely) across all adapters. This helps ensure that the persistent storage device is handled properly when used with different adapters. The term “stochastically unique” here means for example that the likelihood for two different credentials of different adapters having the same identifier is small, preferably sufficiently small to be negligible. 
         [0055]    Instead of using a block interface, according to one embodiment a file based interface can be used as interface  4  in  FIG. 3 . This enables the adapter to operate on the level of files and directories, identified by their names and their path through parent directories, instead of addressing blocks. Because the interface between the host and the adapter may still remain a block based interface, in this embodiment the directory structure is recreated inside the adapter. The block/file mapping component ( 292 ) performs this task. The operation of such an embodiment is schematically illustrated in  FIG. 5  which shows a situation where the access from the host to the adapter is block-based and the access from the adapter to the persistent storage is file-based. 
         [0056]    The operation of the block/file mapping is schematically illustrated in  FIG. 6 . In order to enable a file based access through interface  4  if the access which comes into the adapter from the host through communication module  21  is block-based, there must be performed a translation or a “mapping” of the blocks to the corresponding files or directories. As can be seen from  FIG. 5 , this can be achieved by performing a suitable mapping between the blocks and the files/directories. A block-based request in this manner can be translated into a corresponding file-based request and vice versa. The mapping may be performed using one or more suitable tables which maintain the mapping. 
         [0057]    In this manner, it becomes possible to access a persistent storage which requires a file-based access through an interface (the host-adapter interface) which is block-based. This means that e.g. through a mass storage device class interface (which is available on almost all computers which may act as a host accessing the adapter) there may be accessed a persistent storage which requires a file-based access, such as e.g. a network attached storage device (NAS) or any other devices requiring a file-based access. 
         [0058]    According to one embodiment the adapter generates a file system based on the mapping mentioned before. This file system (which may also be called “virtual file system” because from the host accessing the adapter it is not noticed) is then used to perform the file-based access through interface  4 . 
         [0059]    According to one embodiment, when the adapter ( 2 ) is connected to the persistent storage device ( 3 ), it first scans the directory structure on the persistent storage device. It then builds a virtual file system, which allows accessing of these files through a block based interface. The mapping between block address and position in a file is kept by the block/file mapping component ( 292 ). The mapping is available until the adapter is disconnected from the persistent storage device. 
         [0060]    It will be apparent for the skilled person that for performing the task of creating and maintaining the virtual file system the adapter is provided with suitable components like a suitably programmed microprocessor and a storage for maintaining the necessary data for maintaining the file system. 
         [0061]    In the following there will be described the operation of an embodiment where the access to the persistent storage is file-based and the access of the adapter from the host is block based. When a read request for one or more blocks is received via the Communication module ( 21 ), the corresponding file is looked up in the mapping to acquire the file from the persistent storage device. To decrypt the file, the credential used at time of encryption is to be looked up in the Encryption metadata storage ( 33 ). The credential is acquired from Credential storage ( 24 ) and the Encryption Engine performs decryption. 
         [0062]    When a write request for one or more blocks is received via the Communication module ( 21 ), the operations buffer ( 291 ) stores all write operations until the file system is in a consistent state again. As soon as this happens, the files touched by the write operation are updated on the persistent storage device. File update is encrypted with the appropriate credential and the Encryption metadata is updated accordingly. Triggers to detect file system consistency are e.g. certain time without write operations, write operation to certain blocks, e.g. those containing directory structures or file system tables or predefined files, or detaching the external medium adapter from the host. Buffering operations until file system is consistent is required to deduce from the write commands sent on the Block interface level, which file is meant to be written. 
         [0063]    The credential management in this embodiment may be performed like in the previous European Patent application no. 06101719.0 or like in the parallel application mentioned before and filed on Aug. 14, 2007 at the European Patent Office and having the application number 07114320.0. 
         [0064]    According to one embodiment the adapter provides a user an interface through which he can monitor the file operations performed by the host computer on the persistent storage device via the adapter. One possible scenario is for example that the host computer belongs to company A, the adapter belongs to a staff member of company B and may be e.g. a mobile phone or any similar device, and the persistent storage may also belong to company B. Then the staff member may through his mobile phone (the adapter) enable the user of the computer to download some file from the persistent storage via his mobile device using the decryption capability of the adapter. The owner of the mobile device may, however, wish to control what file the computer which belongs to company A downloads from the persistent storage (e.g. a harddisk) belonging to company B. For that purpose the mobile device (the adapter) is equipped with a user interface which is built based on the file system maintained inside the adapter and which enables the user of the mobile device (the adapter) to monitor the file operations performed by the host computer. In one embodiment the interface at the adapter may just resemble the interface which is provided to the user of the host computer. 
         [0065]    According to one embodiment there may further be provided some mechanism which enables the user of the adapter not only to monitor the file operations but also to either deny or allow any file operations. This mechanism may provide something similar like a “greenlight” button which allows the file operation and a “redlight button” which prohibits it. The interface may in one embodiment ask for each file operation the user of the adapter whether the operation is allowed or not. Depending on the response to this query the file operation is either performed or not performed. 
         [0066]    According to embodiments of the invention the persistent storage device connected to the adapter may be any mass storage device such as an USB stick, a SD card, or any storage medium like e.g. a harddisk or a CD or DVD. The interface through which the connection between the adapter and the persistent storage is established may be a USB interface, a LAN or WLAN connection, or any other interface or connection. 
         [0067]    According to one embodiment the external storage medium adapter ( 2 ) is used without a separate persistent storage device. Instead the adapter has a storage (which needs not to be a persistent storage but can be a volatile storage) into which data can be written from the computer (the host) to which it is connected. In this embodiment there is furthermore provided a file system which is generated inside the adapter, similar to the embodiment described before. It can be said that this embodiment is similar to the one described before, but that instead of the persistent storage outside the adapter there is provided a—persistent or non-persistent—storage inside the adapter which is accessed in a file-based manner. Therefore, like in the previous embodiment, there is performed a mapping between blocks and files/directories. The file system is built inside the adapter on top of the storage, and it is used to access the storage by translating block based access commands into file-based access commands like in the previous embodiment. 
         [0068]    In this embodiment, however, the storage inside the adapter based on the file system provided inside has a file structure which provides an input file or input directory for writing data thereto and which in response to being written thereto is then encrypted and the encrypted file is then written into an output file or output directory. 
         [0069]    Data that has been written to the adapter, e.g. into a certain directory, will be encrypted by using credentials and the encryption engine and can be retrieved via another directory (the “target location” or “output” directory) immediately after encryption has finished. For decryption this encrypted file can be written into a designated directory, from where it is decrypted and placed into a target (or output) directory. The adapter in this embodiment therefore acts as an encryption/decryption dongle. In this embodiment, however, the host accessing the adapter uses the block address based mass storage device interface but the storage access inside the adapter works on file level. In this way the adapter can be used by almost all hosts because almost all computers are equipped with a block address based mass storage device interface. Nevertheless the access to the storage inside the adapter is based on file-based access, which makes it possible to provide predefined source and/or target files/directories which can be used for encryption or decryption as described before. There may also be provided different source directories which have correspondingly different target directories, each pair of source/target directory using a different credential for encryption and/or decryption. 
         [0070]    In some sense one may say that this embodiment is the same as the one described before where the persistent storage was accessed with a file-based interface and the adapter was accessed with a block-based interface, except that the “persistent storage” is now located not separately outside the adapted but is located inside the adapter, that the persistent storage may also be a volatile storage, and that the file system created inside the adapted provides a “source location” and a “target location”, the source location being for data to be encrypted or decrypted, and the target location being for writing thereto the data after encryption or decryption was performed. 
         [0071]    According to one embodiment credentials are added to the Credential storage on the adapter by storing them as special files in either a specific location or with a specific name. In this embodiment, like in the previous one, the adapter has a file system generated inside it and there is performed a translation of a block-based access into a file based access using a block/file mapping. In this manner these files can be written to the adapter using the ordinary mass storage device class command set without the need of an extended command set. The thus written files may based on their location or based on their name be recognised, and the encryption engine may then use them directly or store them at first in the credential storage so that from there they are then used for encryption/decryption by the encryption engine. 
         [0072]    In the foregoing the present invention has been described by means of exemplary embodiments. The skilled person will understand that modifications may be made to these embodiments. For example, if an interface is said to be block-based, this interface may be of the type “block based mass storage device interface”, but also any other interfaces which implement a block based access may be used. One example of a block-based interface which may be used in the embodiments of the invention is the USB interface or its variations. 
         [0073]    It will be understood by the skilled person that the embodiments described hereinbefore may be implemented by hardware, by software, or by a combination of software and hardware. The modules and functions described in connection with embodiments of the invention may be as a whole or in part implemented by microprocessors or computers which are suitably programmed such as to act in accordance with the methods explained in connection with embodiments of the invention. 
         [0074]    According to an embodiment of the invention there is provided a computer program, either stored in a data carrier or in some other way embodied by some physical means such as a recording medium or a transmission link which when being executed on a computer enables the computer to operate in accordance with the embodiments of the invention described hereinbefore. 
         [0075]    For example, the invention may be implemented by a mobile phone or a mobile is device which is suitably programmed to operate as an external storage medium adapter in accordance with one of the embodiments described before.