EICS - External Information Checksum System


Overview:

EICS, the External Information Checksum System, is a way to put information about external objects into a text file. It is specifically designed to allow a cryptographically-signed mail message to contain information about the envelope used to send it, such as the "From", the "To", and the "Subject".


(Very) Brief Summary

EICS-H: f6a753ee7a514d809bffde90d4bd2080

The above line in an email indicated that the common fields in the header of the email (From, To, and Subject) will create the checksum shown.


Background:

With the introuction of PGP, and especially the open-source program Gnu Privacy Guard (GnuPG), it became possible to cryptographically sign your emails (also called digital signing). This has many advantages, the most important of which was ensuring the integrity and the authenticity of the email message, tasks which the existing Internet mail system cannot do. A signed email ensures that only the person who owns the key wrote the message, and that the message was not changed in transit.

One problem concerning signed email is that only the body of the email can be signed. Important information, such as who the email was sent to and from whom the email was sent, can not be easily included without cumbersome measures such as repeating the information inside of the body of the message.

A solution to this problem is to create a small checksum which, along with some standard characters, can verify the external information. Standard uses include verifying attached files and verifying the subject, sender, date, and/or recipients of an email message.


Details:

The EICS information should be of a form easily parsed from inside a message. The computing of checksums is not something humans can do, so typically the mail program, or a simple script, is used to parse out the EICS message and perform the checks. An EICS line has the following characteristics:


EICS-H: the Email Header type

The following is the specifications for the email header information type:

Examples of the email header information type:

  1. Basic header type with default options and a MD5 checksum:
    EICS-H: f6a753ee7a514d809bffde90d4bd2080
     
  2. Header type with an additional "Date" field, using MD5:
    EICS-H: +D f6a753ee7a514d809bffde90d4bd2080
     
  3. Header with an additional CC field, using a SHA1 checksum
    EICS-H: +C d62075892d20a26286dde452ff65a846e3c4a333
     
  4. Header without the From, with a X-PGP-Key field, using SHA1:
    EICS-H: -F+P f6a753ee7a514d809bffde90d4bd20803e12ca76
     
  5. Header with a "Date", a custom field, and a policy URL (MD5)
    EICS-H: +D+b f6a753ee7a514d809bffde90d4bd2080 http://www.biglumber.com/eics.html
     

EICS-F: the File type

The following is the specifications for the attached file information type:

Examples of the file attachment information type:

  1. Attached file named "joy.doc" with a SHA1 checksum:
    EICS-F: f6a753ee7a514d809bffde90d4bd208013ed4765 joy.doc
     
  2. Three attached text files, using MD5:
    EICS-F: ce4c084cfa1f6a6d9e63782f3a152654 notes.txt
    EICS-F: b3767b6725f958b9f1f91748b14df36c support.txt
    EICS-F: f409b93d94192428d9cc25a9370d160f license.txt

Feedback

Feedback is very welcome and encouraged. Send email to greg at turnstep.com. My PGP key is available and encrypted email is always welcome.