Abstract:
The present invention provides a method for transferring encrypted information from one storage area to other storage area wherein cryptographic data protection scheme having protection attributes are applied on the data. A crypto container having cryptographic properties represents cryptographically protected data. The attributes that have been attached to the container at the time when data is added or removed from the container determine the scheme of data protection being applied. Crypto container can be converted or serialized for storage or transmission, here the conversion spread only to the protected data parts which possibly includes crypto containers in protected form but may not the attached crypto attributes. These attributes must be stored or transmitted in another form.

Description:
FIELD OF INVENTION 
       [0001]    The present invention relates to a method for efficient and secure data migration between data processing systems. More particularly, the invention relates to the field of cryptography for secure transmission or migration of data between data storage systems. 
       BACKGROUND OF THE INVENTION 
       [0002]    In storage systems cryptography may be used to protect data at rest (i.e., when residing on a storage medium) and data in motion (i.e., when traversing a network between components of a storage system). Cryptography refers to the art or science of converting information from its normal comprehensible format into an incomprehensible format rendering it unreadable without secret knowledge and thereby protecting it from illegitimate access. Such unreadable format of data or converted data is called ciphertext. The following two types of cryptographic methods mentioned below are known: 
         [0003]    a) Symmetric cryptography (Secret-key cryptosystems) 
         [0004]    b) Asymmetric cryptography (Public-key cryptosystems) 
         [0000]    A wide variety of cryptographic algorithms are known for both types of cryptography mentioned before. These cryptographic algorithms result in a wide variety of cryptographically secure systems each based on one of the two types of cryptographic methods listed above or on a combination of them. 
         [0005]      FIG. 1  shows an example of symmetric cryptography wherein plaintext is encrypted with a shared or secret key at one site. The result is called ciphertext; it is then transferred to another site, which decrypts it with the help of the key known and shared between the two sites. Note that in this process the same key is used for encryption and decryption therefore the process is called symmetric-key cryptography. The parties in the example are called Alice, Bob, and Eve. Alice and Bob are friends exchanging encrypted messages. Eve is an eavesdropper, trying to read the messages being exchanged between Bob and Alice. In symmetric algorithms as shown, Bob needs to send the encryption key information to Alice or they have to agree on a single key in order to exchange protected messages. [The letters above each party indicate what he or she knows. M represents a message being sent from Bob to Alice, and K(M) represents the enciphered message. To decipher the message, Alice simply applies K to K(M).] 
         [0006]      FIG. 2  illustrates an example of asymmetric cryptography. In asymmetric algorithms each party uses two keys, a public key and a private key. The public keys are published to every one—even Eve knows them—while each party keeps its private key secret. When Bob wants to send a message M to Alice he encrypts the plaintext with the public key of Alice P A . Then the encrypted data P A (M) is sent to Alice who decrypts said data with the private key of Alice Pr A  that is known only to her. Even though Eve knows P A  and P A (M), Eve can&#39;t recover the message without Alice&#39;s private key. [Again, letters near each box indicate what each party knows. M is the message Bob sends to Alice (he knows it since he wrote it, and Alice knows it since she has deciphered it). P A (M) represents the message enciphered with Alice&#39;s public key. To get M from P A (M), Alice applies Pr A  to P A (M).]. The most widely used asymmetric cryptographic algorithm today is the Rivest-Shamir-Adleman (RSA) algorithm. 
         [0007]      FIG. 3  shows an embodiment of a layered data processing system. Typical examples of layered data processing systems are data storage systems and data communication systems. A layered data processing system consists of a stack of data processing layers that offer the same set of interfaces for reading and writing data. An application writes data to the layer at the top and reads data from the layer at the top. Intermediate layers transform the data in a layer-specific way. The layer at the bottom handles the physical transmission or storage of the data. 
         [0008]      FIG. 4  shows one layer in a layered data processing system. The layer may receive write input data from the layer or an application above, transform it in a layer-specific way, and output the result to the layer below. The layer may also receive read input data from below, transform it in a layer-specific way, and output the result to the layer above. The data storage systems of common computer operating systems are typically organized as layered data processing systems. They consist of the data processing layers mentioned below and illustrated in  FIG. 5 . An application accesses the stored data through a file system interface (fs), which provides the means to write and read data to and from files in byte-sequences of arbitrary length, to group files into directories, and to organize directories and files into a hierarchy. The file system layer (fs) typically translates file system operations into operations on byte containers of variable size, which are known as “inodes” in traditional UNIX file systems or as “objects” in object storage areas. The object layer (obj) transforms these operations into accesses to a block interface, which provides only read and write operations on fixed-length data blocks or sectors, which are typically 512 bytes long. Many data storage devices, such as disks, offer the block interface at the block layer (blk). The layer of the host-bus adaptor (hba) transfers the data to the disk subsystem. A disk subsystem usually contains additional layers internally, for example layers for adding error-correcting or error-detecting codes and for accessing the magnetic media. 
         [0009]    A similar layered structure is found also in data communication systems, such as telephone networks and computer data networks, and in many other data processing systems. Commonly known data communication systems might be placed inbetween any layers of a data storage system in order to allow for remote data storage using a networking infrastructure. 
         [0010]    Layered data storage systems and layered data communication systems are collectively referred to as layered data processing systems. 
         [0011]    Cryptographic protection schemes can be applied at any layer of a layered data processing system. Depending on the layer, they provide different security guarantees to the overall system. A security mechanism protects data only at the layer in which the mechanism is applied between the communication end-points at the said layer. Also data processed at some layer is typically opaque i.e., the layer does not know anything about the structure of the data. However, there are data processing systems that make certain heuristic assumptions about the form of the arriving data, in particular to achieve greater efficiency. For example, analog telephone modems and tape drives apply data compression to save bandwidth and gain efficiency. 
         [0012]    In the case of a layered data storage system mentioned before, cryptographic protection is commonly applied at the block layer or at the file layer. 
         [0013]    If encryption is provided at the block layer, where data is divided into blocks of fixed length, encryption is performed on all blocks of data with a single key. The benefits of this system are simplicity and efficiency. The drawback is that anyone with access to the block storage device can decrypt all the information. Encryption at the block layer can be advantageous for instance in tape archival devices where a single key per tape is required. 
         [0014]    If encryption is provided at the file-system layer a different key is used for every file. The advantage of this system is that fine-grained protection is possible because access to the file-encryption key can be controlled depending on the access permission of the file. An attacker with access to any layer below, for example the block layer, gains only access to the files that it is allowed to read. 
         [0015]    Numerous methods have been developed for transmitting data in a secure manner between layered data processing systems using cryptography. Most methods in the prior art for transmitting and migrating data from a first data processing system to a second data processing system decrypt on the first processing system the encrypted data stored on the said first processing system with a key associated to the said first data processing system before the actual transmission or migration of data to the second processing system takes place. The said data is encrypted again on the second data processing system after it reaches its destination, the second data processing system, with a key associated with said second data processing system. This incurs an additional overhead of decrypting the data before migration and performing the process of data encryption more than once. 
         [0016]    An example of the aforementioned situation is when data stored on a cryptographic file system is written to a tape archival device for backup. Typically a backup application first reads the data from the file system and thereby decrypts the data with the associated file key. Later, it re-encrypts the data with the key maintained by the tape backup device. In such cases, additional overhead is incurred due to transformation of data from one encrypted format to another which can be avoided. Analogously, data communication systems might re-encrypt already encrypted data unnecessarily. 
         [0017]    The aforementioned problem is further aggravated due to a layered structure found in most of the storage systems and, more generally, also in other layered data processing systems. Such data processing systems are connected through their standard interfaces at the top layer, so the data must be decrypted before leaving the first system, and re-encrypted again at the destination. This incurs an overhead that can be prohibitive for large amounts of data. 
         [0018]    It would therefore be desirable to provide a method for efficient and secure data migration between layered data processing systems. 
       OBJECTIVES AND SUMMARY OF THE INVENTION 
       [0019]    It is an objective of the present invention to overcome the aforementioned drawbacks and provide a secure and efficient data migration method in storage systems. 
         [0020]    It is an objective of the present invention to reduce the overhead of encryption-decryption-encryption process. 
         [0021]    It is an objective of the present invention to provide efficient security to smaller and high capacity removable storage devices. 
         [0022]    It is still another objective of the present invention to enhance the interface of the data processing system with the help of protection attributes. 
         [0023]    It is still another objective of the present invention to provide security in distributed storage environments in an end-to-end view. 
         [0024]    It is yet another objective of the present invention to provide secure and efficient method for electronic data migration. 
         [0025]    It is yet another objective of the present invention to assure that already encrypted data is sufficiently secure encrypted by using protection policies. 
         [0026]    It is yet another objective of the present invention to provide a method for defeating attacks such as fabrication and interception on storage systems. 
         [0027]    The foregoing objectives are achieved by a method for cryptographically securing data in a secure computing environment which facilitates secure and efficient migration of data between data processing systems. 
         [0028]    The present invention relates to data processing systems that employ cryptography for protection of data, wherein the encrypted data is migrated or transferred in its encrypted format keeping most of the features of the encrypted data intact, to another data processing system and the said transferred data need not be encrypted again at the destination. The invention thereby enables migration or transfer of data between layered data processing systems, such as disk storage and tape storage, without performing decryption or encryption of the bulk data more than once. Protection can be provided cryptographically at any given layer of a layered data processing system. The type and level of security depends on the granularity and the layer at which data is protected. Layers can be augmented with protection policies to ensure that already encrypted data is sufficiently secure encrypted. A security mechanism protects data only at the layer in which the mechanism is applied and between the communication end-points at the given layer. 
     
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0029]    The present invention is described with the help of accompanying drawings: 
           [0030]      FIG. 1  shows an example of symmetric cryptography known in the prior art. 
           [0031]      FIG. 2  shows an example of asymmetric cryptography known in the prior art. 
           [0032]      FIG. 3  shows a layer of a layered data processing system known in the prior art. 
           [0033]      FIG. 4  shows a layered data processing system known in the prior art. 
           [0034]      FIG. 5  shows the layered structure of a storage system known in the prior art. 
           [0035]      FIG. 6  shows an overview of a storage system of the invention 
           [0036]      FIG. 7  shows an embodiment of the invention of the process of transferring protected data between layered data processing systems. 
           [0037]      FIG. 8  shows an embodiment of a layer in a layered data processing system of the invention. 
           [0038]      FIG. 9  shows an embodiment of two layered data storage system interconnected with a data communication system. 
           [0039]      FIG. 10  shows an embodiment of the process applying protection policies in a data processing layer. 
           [0040]      FIG. 11  shows an embodiment of a recursive data processing layer. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0041]    This invention is aimed at achieving faster and more efficient operations for moving data between layered data processing systems that use cryptographic protection internally.  FIG. 6  shows an overview two data storage systems which are connected with each other through a trusted and an untrusted channel. Each of the data storage system is further connected to at least one trusted and at least one untrusted storage device. (The figure only shows one instance of the trusted and untrusted storage devices per data storage system). The data storage devices might be connected to further data storage devices not shown on the figure. As shown in  FIG. 7 , protected (i.e., encrypted or authenticated) data is transferred between data processing systems keeping the format of the protected data intact and adding protection attributes, such as encryption keys or message-authentication keys for a message-authentication code (MAC) separately. The invention is to enhance a layered data processing system to work with separate interfaces for data and protection attributes. More precisely, the invention enhances the interface of the layered data storage system by adding set of protection attributes ( 7 . 1 ), which express the cryptographic operations that were applied to the stored data at the time of storing it. Data that is modified in this way is called protected data. The protected data may have been encrypted with a symmetric cryptosystem or with an asymmetric cryptosystem. In this case, the protection attributes consist of the secret or of the public key that was applied to the data. Protected data may also be authenticated using a MAC or signed using a digital signature scheme. Here, the protection attributes include the secret MAC-key and the authentication tag or the digital signature and the signature private key. In this way it is possible to reconstruct the raw data from the protected data and the protection attributes such as message authentication code, encryption keys, digital signatures etc. Hence the protected data together with the protection attributes provide for a different representation of the data. Such cryptographically protected data can be represented as an abstract Crypto Container data type that separates between data and protection attributes. A crypto container consists of protection attributes and protected data. A protection attribute describes the cryptographic protection scheme that has been applied to the protected data in the container. 
         [0042]    The protected data is then transferred to the second data processing system ( 7 . 2 ) in this form. The protection attributes are themselves not protected but exported and imported as they are (in cleartext). It must be ensured that the protection attributes are only exported in a trusted environment. Hence, if the environment consists of an untrusted data channel the transfer of protection attributes between data processing layers has to be done through a secure channel. Importing protected data is more efficient because it is not necessary to protect the data a second time. At the second system protection attributes alone are encrypted in the format of the second system ( 7 . 3 ). the unaltered data from the first system and the encrypted protection attributes are then stored on the second system ( 7 . 4 ) 
         [0043]      FIG. 7  shows one layer of the enhanced data processing system. The layer now provides for a separation between protected data and protection attributes (PA) for the write input from above and for the read input from below, respectively. Likewise, the layer may output protected data separated from protection attributes for the write output to the lower layer and for the read output to the layer above. 
         [0044]    Transmission of protected data between layered processing systems may involve a further layered data processing system that involves cryptographic protection. In this case, the cryptographic protection can be applied to the protection attributes, but may be skipped for the protected data, which is more efficient. 
         [0045]    It should be noted that the said protected data and the said protection attributes together are not protected but provide for a different representation of the data. This is to allow reconstruction of the plain data from the protected data and the protection attributes. 
         [0046]    The basic aim of the aforementioned representation of the data is to gain efficiency when transferring protected data between data processing systems with different protection schemes. The efficiency arises from the fact that the data to be exported from one data processing system to the target data processing system is not required to be decrypted at the first system and can be transferred in the original encrypted format along with the protection attributes. 
         [0047]    The target data processing system does not need to encrypt the protected data again but can encrypt merely the protection attributes with a key owned by the target data processing system. 
         [0048]    The advantage of this secure and efficient method for migration or transfer of data between data processing systems is that one can avoid going through the complicated decryption process before data migration between data processing systems. 
         [0049]      FIG. 9  shows a preferred embodiment of this invention consisting of at least two data storage systems, at least two data communication systems, at least one trusted and one untrusted storage device. A user or an application of the data storage system  1  writes data to the data storage system. To illustrate this, three data messages A, B, C are shown; however, any arbitrary number of data messages can be written to the data storage system. The protection of the data messages at this point is dependent on the configuration of the system and might be given through existing means such as login password or a Kerberos ticket (J. Kohl and C. Neuman, The Kerberos Authentication Service, RFC 1510, September 1993). The write connector for protection attributes is therefore dashed. The data storage system applies protection attributes to the entering data A, B, and C according to the protection policy PP 1 , stores the protection attributes on one or more trusted storage devices and stores the data on one or more untrusted storage devices. The process of applying the protection policies is explained later in this document. When the data has to be transferred through data communication systems to second data storage system the data storage system  1  writes the protection attributes PA A , PA B , and PA C , and the protected data PA A (A), PA B (B), and PA C (C), as crypto containers CC 1 , CC 2 , and CC 3  to the next layer. 
         [0050]    Data communication systems  1  and  2  share the same crypto object attributes PA D  which have been exchanged using any known key distribution protocol through a trusted channel. Upon receipt of one or more crypto containers the data communication system  1  may wrap several crypto containers into a single one or split crypto containers into two or more containers. It also may apply additional encryption based on the protection policy PP 2 . The actual start and end point of incoming crypto containers which go into a new outgoing crypto container CC 4  depends on the functionality of the data communication system and is not further specified here. In the figure, the three crypto containers CC 1 - 3  are wrapped into crypto container CC 4 , whereby the protection attributes are encrypted by the encryption attributes PA D . The data which is already sufficiently protected according to PP 2 , here PA A (A) and PA B (B), are not reencrypted. Only PA C (C) which is not sufficiently protected is encrypted using the protection attributes PA D . The new crypto container CC 4  is then written to the next layer, residing in the data communication system  2 . The data communication system  2  communicates with the data storage system  2  through a trusted environment. Therefore the crypto container CC 4  can be unwrapped and no protection policies need to be applied to write the restored crypto container CC 5  to the data storage system  2 . Similar as above, the data storage system  2  may wrap or split crypto containers. In this embodiment the data storage system  2  illustrates a tape archival device which splits the crypto container CC 5  into two different crypto containers CC 6  and CC 7 . Here again, the data storage system may apply additional encryption based on the protection policy PP 2  as it is shown for PA F (PA C (C)). For each crypto container the data is stored on a separate storage devices named tape devices whereas the crypto attributes PA E  and PA F  are stored on a trusted storage device. The read process is analogous to the write process and is not further explained here. 
         [0051]    The process of applying protection policies in a data processing layer is shown in  FIG. 10 . A crypto container consisting of crypto attributes PA X  and data PA X (X) is first checked whether the data PA X (X) is sufficiently protected according to the protection policies PPY of the data processing layer. If the data PA X (X) is not sufficiently protected the protection attributes PA Y  provided by the current layer have to be applied to the data to build the new data Y=PA Y (PA X (X)). In a next step the protection attributes PA X  of the crypto container are protected with the protection attributes of the data processing layer PA Y . In case the data is already sufficiently protected, only the protection attributes PA X  are protected with the protection attributes of the data processing layer PA Y  and the new data Y=P A (X) remains unchanged. Finally the new crypto container PA Y (PA X ),Y is ready for further processing by the data processing layer. 
         [0052]    In another embodiment of the present invention one or more data processing layers may be merged into a single processing layer.  FIG. 11  shows two data processing layer, a first one consisting of an encryption device and a second one of storage devices which are merged into one single data processing layer. 
         [0053]    The above description related to specific embodiments of the invention and was described with the help of specific language for the purpose of promoting an understanding of the principles of the invention. It must nevertheless be understood that no limitation of the scope of the invention is thereby intended. The scope of the invention shall include such alterations and modifications in the embodiments and such further applications of the principles of the invention as would normally occur to one skilled in the art to which the invention relates.