The invention relates to methods and systems for detecting unauthorized alterations of data stored on a storage system such as a disk drive.
The typical hard disk drive (HDD) used in computers is not tamper resistant. With current HDD architecture, an attacker with physical access can probe the electronics card and its interconnects; remove the electronics card and replace it with custom electronics; and/or physically remove the disks on which information is recorded. Physical access to the device allows an attacker to defeat some security measures and may even allow data to be altered in a manner that is undetectable to users. Making HDDs resistant to physical tampering would be expensive, as well as, requiring significant changes in the manufacturing process.
One method of protecting stored data uses encryption. Key encryption methods include, DES (Data Encryption Standard) and AES (Advanced Encryption Standard) and RSA a public key encryption method. Although the user application or host system can perform the encryption, the encryption and decryption can also be performed in the storage device hardware in a way that is transparent to the user. For example, the LRW-AES method is “tweakable” block cipher for encryption of stored data. It can protect each 16-byte narrow block. LRW-AES uses a secret AES key, a secret 16 byte secondary key, and a 16-byte tweak generated from the secondary key and the logical position of the block. The tweak value is computed from the logical position of the current narrow block within the scope of the current key. The application for LRW-AES is encryption of storage at the sector level. It addresses threats such as copy-and-paste attacks and dictionary attacks.
Unauthorized reading of data is one risk, but alteration of data is also possible. Some types of alteration result in gross loss of data which can at least be easily detected. More problematic are alterations that are difficult to detect such as data roll-back attacks in which the data is restored to a previously valid state through unauthorized tampering. In a roll-back attack the system may appear to be a normal, valid condition, but new data acquired since the rollback checkpoint will have been lost. Encryption alone does not prevent roll back of the data to a previously good state if the encryption keys are the same for the old and updated data.
In published application 20020152396 (Oct. 17, 2002), Fox, et al. describe the use of duplicate databases with authentication codes to deter a rollback attack against a database. When the second database is not corrupted, the method recalculates the second authentication code using a portion of the first authentication code and copies the second database over the first database. This solution is expensive in that it requires a complete redundant copy of the database. Moreover, it is not applicable to individual storage device design.
In published application 20050044401 (Feb. 24, 2005) Morrow, et al. describe a rollback attack prevention method for a gaming machine that uses a configuration log and a revocation list. The configuration log includes a protected record of software that has been installed on the gaming machine. The revocation list includes an inventory of unauthorized software that the prevention system prevents from being installed and/or used on the gaming machine.
In published application 20070185902 (Aug. 9, 2007) Messinger, et al. describe an object-based data storage device with multiple media zone attributes of storage performance. The storage device receives an object from the host system that has a requested storage attribute attached to the object. The storage device comprises an object-based storage interface that couples between the data channel and the storage media. The object-based storage interface schedules the object for storage in a selected zone of the multiple media zones based on the attributes and requested attributes.
In published application 20070156763 (Jul. 5, 2007) Liu, et al. describe a storage management system that includes a file system server, a metadata server, and an object storage device (OSD). The file system server is used for accessing a file through a virtual partition. The metadata server is used for storing the metadata of the accessed file. When a file is accessed, the file system server transmits a command of accessing the partition to the metadata server and performs the file accessing operation to the OSD through the metadata of the accessed file transmitted back by the metadata server.
Although various schemes allow hosts to detect unauthorized rollbacks, there is a need to detect such data roll-back attacks at the device level.
A storage system according to the invention maintains an arithmetic signature or fingerprint generated using the content of selected units of data stored on the media. The signature is stored in metadata in non-volatile storage on the system's electronics card preferably in a tamper resistant module (TRM). When reading a data unit from storage, the system uses the saved signature to verify that the data unit has not been altered by unauthorized means after it was stored. The content of the stored data is thereby bound to the metadata stored in the system's non-volatile storage so that by-passing or physically separating the bulk storage media (e.g. disks) from the system's electronics will not allow alteration of the data without detection. The method also prevents unauthorized data roll-back because the signature of old data will not match the current signature in the metadata even though it is otherwise consistent with the system's architecture.
The invention can be used with any type of data units including user-defined objects, files, tables, sectors and/or any other distinguishable unit. More than one type of data unit can be used. The units can also be defined by the drive in a way that is transparent to the user. A storage system according to an embodiment of the invention could maintain internal definitions of data units such as sectors, blocks, tracks, etc. However, the process is more efficient if the data units are relatively large as is typically the case for user-defined files, rather than at the sector level.
When a data unit is created or updated, the system creates the electronic signature as a function of the content of the data. Any prior art method for creating arithmetic signatures, such as CRCs, hash codes, etc., can be used with the invention. The arithmetic signature for each data unit is stored in a separate trusted storage region of non-volatile memory on the electronics card. Each data unit is preferably encrypted before being written on the media. As part of the read back process, in one embodiment the system computes a new signature using the data unit read from the media and compares that new signature with the one previously stored in the metadata. If the two signatures do not match, an error is reported to the host.
The signature can also optionally be concatenated to the data unit to form a system object which is then encrypted and stored on the system's media. In this embodiment when the system object is read back, the system first decrypts the system object and then verifies the signature of the data unit by comparing it with the stored electronic signature on the electronics card. If the signatures do not match, the system will report an error.
Preferably bulk encryption of data units and/or system objects is used with keys stored in the TRM on the electronics card. Bulk encryption protects the data on the disks from being read in the event that the disks are removed from the system because the keys will remain protected on the electronics card.
The signature for the old object as read from the media is computed 64. The system retrieves the previously stored signature for the object from metadata in non-volatile memory and compares the computed signature to the stored signature 65. If the two signatures do not match, then the system sends an error message to the host indicating that the mismatch has been found and exits 66. If the two signatures are the same, the storage system replaces the section of the object at the specified position/offset with the new data and computes a new signature 67. The updated object is then encrypted, and the encrypted data is written back to the storage media 68. The storage system stores the new signature in the non-volatile memory table of user defined objects 69.
Optionally, the storage system can use prior art journaling techniques to ensure that the updating of the object on the media and the updating of the signature in the non-volatile memory table of user defined objects are performed together atomically.
The invention has been described with reference to specific embodiments, but one of ordinary skill in the art will readily recognize variations to the embodiments and those variations are within the spirit and scope of the present invention.