Some electronic systems include a storage drive that can store data on a removable storage medium. Because the storage medium is removable, the data on the storage medium can be stored by one or more storage drives. For various reasons, knowing which storage drive stored various data on the storage medium, and when during the drive's operational life, is desirable. For instance, a drive may begin experiencing faulty operation over time. Maintaining audit information pertaining to the drive may be useful to determine the nature of a drive's problems. In addition, audit information may facilitate forensic analysis in legal/criminal investigations.
In accordance with at least some embodiments of the invention, a system and associated method comprise a storage drive adapted to accommodate a removable storage medium and a central processing unit (“CPU”) configured to execute code. The code causes the storage drive to record audit information onto the storage medium. The audit information may comprise an identifying value identifying the storage drive and a value indicative of when data was recorded to the storage medium.
For a detailed description of exemplary embodiments of the invention, reference will now be made to the accompanying drawings in which:
Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, computer companies may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . .” Also, the term “couple” or “couples” is intended to mean either an indirect or direct electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections. The verb “record” means to store, write, or otherwise transfer data onto a storage medium.
The storage drive 30 is adapted to receive a removable storage medium 32. The storage medium 32 may comprise any suitable type of medium such as an optical disk, a magnetic disk, or solid state memory. Further, the storage medium may be implemented as a “write once” medium or a “re-writeable” storage medium. Data can be recorded onto a write once medium more than once, but once data is written to a write once medium (e.g., CD-R), such data cannot be overwritten or erased. Data on a re-writeable storage medium can be overwritten or erased.
The storage drive 30 may also include a CPU 36 and code 38 that can be executed by the CPU 36. One or more of the acts described herein may be performed by the storage drive's CPU 36 executing the code 38. The storage drive 30 may also include time logic 40 coupled to, or otherwise accessible to, the CPU 36. The time logic 40 can be programmed with the current time and then function to keep track of time going forward. For example, the host 22 may provide a value indicative of the current time from the host's time logic 28 to the storage drive's time logic 40 to permit the storage drive to track the progression of time.
The storage drive 30 also includes a drive identifier (“ID”) 34 that may uniquely identify the associated drive apart from all other drives. For example, the drive ID may comprise a serial number assigned by the drive manufacturer. In other embodiments, the drive ID 34 may be unique to at least some, but not all, other drives. It is generally sufficient for purposes of the subject matter disclosed herein that the drive ID 34 is such that there is a sufficiently low probability that the same storage medium 32 may be used in two or more drives having the same drive ID. The term “unique” (as in “unique” drive ID) is used in both contexts in this disclosure. The drive ID 34 may be stored in non-volatile memory in the storage drive 30 or may be hard-coded into the drive's circuitry (e.g., in unique patterns on traces formed on a printed circuit board contained in the drive). In some embodiments, the drive ID is permanent and thus not alterable. It is also suitable for the drive ID to be difficult to alter, if not permanent, without specialized equipment or processes. In other embodiments, the drive ID may comprise an identifier of the host 22 instead of, or in addition to, an identifier of the drive. Further still, the drive ID may comprise publicly available information pertaining to the system 10 or a user of system 10. The drive ID may additionally or alternatively contain private information that is lawfully retrievable pursuant to a valid legal process (e.g., a search warrant) to protect the privacy of a user of the system 10.
The drive ID 34 may comprise a value containing alphanumeric characters and/or other symbols. In at least one embodiment, the drive ID 34 comprises a 64-bit value comprising a manufacturer code (16 bits), a model code (16 bits) and a serial number (32 bits). Each different storage drive manufacturer may be assigned a unique manufacturer code and with 16 bits, there are more than 65,000 different manufacturer codes possible. Each different model, including revisions if desired, of a storage device may also be assigned a unique model code. With 16 bits used for the model code, there are more than 65,000 uniquely available model codes. The serial number generally is unique to each drive. As such, two drives of the same model and provided by the same manufacturer will still have different drive IDs because the serial number component of the drive IDs will differ. The three components of the drive ID (manufacturer code, model code, and serial number) may be concatenated together or otherwise combined or used together in any suitable manner.
In an alternative embodiment, every drive of a particular model may have the drive ID encoded in firmware running in the drives. In this embodiment, each drive of a particular model has the same 32-bit serial number. If the firmware is upgraded, the drive serial number is not changed and is still available. In accordance with another embodiment, the drive ID is generated by the host (e.g., by the CPU 24 in accordance with the device driver 26). When the drive is installed, the driver may prompt the operator for a number, which might, for example, be a human-readable serial number printed on the drive but not readable by the drive controller electronics. Alternatively, just the manufacturer number and model number could be manually entered and the device driver 26 could generate a random 32-bit serial number. Alternatively, the device driver could generate a serial number from a unique number associated with the host computer, such as a serial number of the firmware (e.g., BIOS) for the host. If the device driver provides the serial number, either the device driver should save the number in non-volatile memory, or the device driver should employ a deterministic algorithm to always recreate the same number every time the driver is loaded. If the device driver provides the serial number, the drive may obtain the drive identification from the device driver at initialization time.
In general, recorded data is formatted into addressable units that may be referred to in a variety of ways. Examples include sectors, blocks, clusters, tracks, or other unit terminology. In the following discussion, the term “addressable unit” is used to generically refer to any and all of the units of storage listed above or other known units. The recorded time value disclosed herein generally are used in conjunction with addressable units of storage on the storage medium. It should also be understood that a drive may read a portion of the storage medium, modify one sub-portion thereof, and rewrite the entire portion. In this read-modify-write scenario and in accordance with some embodiments, audit information for the sub-portion modified may be recorded and the time value may be used to determine which drive recorded the entire portion.
In accordance with various embodiments of the invention, one or more bitmaps 62 may be recorded onto the storage medium 32 dependent, for example, on the number of times the host records data to the storage medium. The bitmaps 62 may be created and modified by the storage device's CPU 36 executing code 38, by the host's CPU 24 executing the device driver 26, or by a combination of both CPUs executing their respective code/driver. In at least some embodiments, a new bitmap is created, or modified from a previously recorded bitmap, and recorded onto an available, non-user data area of the storage medium when new data is recorded onto one or more addressable units of the storage medium 32. The process of creating the new bitmap may occur concurrent with the recording of new data or at any one or more subsequent points in time, for example, just prior to ejecting the storage medium from the storage drive 30, powering down the storage drive 30 or host 22, after an elapsed period of time since data was recorded, or when a pre-determined amount of data is recorded to the storage medium 32. Each newly created or modified bitmap may identify the addressable units that have data previously recorded or recorded concurrently with the creation of the new bitmap. Recorded with each bitmap is a time value 64 that is provided by the host's time logic 28. The time value 64 corresponding to a bitmap is indicative of the time at which the bitmap was created and recorded onto the storage medium. The time value 64 thus functions as a date or time stamp for the bitmap and may alternatively comprise a sequence number as explained previously. A drive ID 66 is also recorded with each corresponding bitmap and time value and identifies the particular storage drive 30 that was used to record the bitmap 62 and time value 64 onto the removable storage medium 32. As such, a series of bitmaps 62/time values 64/drive IDs 66 may be created and recorded onto the storage medium to form an “audit trail.”
Referring to
The acts depicted in
In an alternative embodiment to that described above in which sectors are recorded in a non-contiguous order, the host 22 records data to the storage medium 32 in a particular order. For example, each addressable unit is numbered in consecutive order beginning with addressable unit number 0 and including addressable unit numbers 1, 2, 3, and so on.
The various embodiments described above result in an audit trail containing time or sequence information being stored on the storage medium. In general, each time the host 22 records data onto the storage medium, audit trail information is also included to identify the storage drive or system that was used to record the data, as well as time or sequence information associated with the recording and an indication of the addressable units that were recorded by the corresponding storage drive. This information can be used in a variety of ways. For example, forensic analysis can be performed to discern information about a particular storage drive or model of storage drive that experiences errors. If a particular model of storage drive is determined to experience errors, an assessment can be as to when during the drives' life cycle the errors typically occur. Further still, such audit trail information can be useful in a criminal or other type of legal investigation. The use of the aforementioned audit trail information is not limited by the preceding examples.
Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. For example, the teachings provided herein are applicable to computer systems as well as stand-alone storage devices such as optical disc video recorders.