Fingerprint Documentation

  1. Introduction
  2. Installation
  3. Generating Fingerprints
  4. Comparing Fingerprints
  5. Archival Usage
  6. Data Preservation
  7. Data Transmission
  8. Backup Integrity
  9. Security Tripwire
  10. Cryptographic Sealing
  11. Notarizing
  12. Final Words
Matter and energy degrade to more probable, less informative states. The larger the amounts of information processed or diffused, the more likely it is that information will degrade toward meaningless variety, like noise or information overload, or sterile uniformity — Orrin Klapp

Due to the unreliability of physical storage and transmission systems used today, data may become corrupt. However, modern society relies heavily on data, and degradation can cause massive problems. Further, data can also be manipulated maliciously for specific purpose, and unless it is being explicitly observed, such changes may not be detected.

Data analysis and verification give visibility to these types of problems so that remedial actions can be taken before major problems are created. As an example, if file corruption or manipulation is detected, a correct version can be restored from backup. To this end, Fingerprint is a tool for data analysis and verification, and provides a basic framework for comparing directories of files.

An example...

In the following example, we deliberately manipulate information, and Fingerprint detects the changes:

$ mkdir toplevel
$ echo "Hello World" > toplevel/alice
$ echo "Goodbye World" > toplevel/bob

-- Take a fingerprint of the directory...
$ <span class="function">fingerprint</span> toplevel -o first.fingerprint

-- Make a modification...
$ echo "Goodbye World" > toplevel/alice

-- Run fingerprint on the updated directory...
$ <span class="function">fingerprint</span> toplevel -o second.fingerprint

-- Compare the two fingerprints...
$ <span class="function">fingerprint</span> -c first.fingerprint second.fingerprint 
File: "./alice" is different!

Warranty

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.