ForensicsWiki will continue to operate as it has before and will not be shutting down. Thank you for your continued support of ForensicsWiki.
Email Headers are lines of metadata attached to each email that contain lots of useful information for a forensic investigator. However, email headers can be easily forged, so they should never be used as the only source of information.
Making Sense of Headers
There is no single way to make sense of email headers. Some examiners favor reading from the bottom up, some favor reading from the top down. Because information in the headers can be put there at any time (e.g. when the message is created, in transit, or by the reader's MUA), there is no single method for making sense of them.
Many legitimate programs put data in a fixed order that can be validated. If parts of the data are not in the correct order or missing, the header can be shown to be forged. For example, if an email purports to have been sent by Apple Mail but has a Message-Id field that could not have been generated by that program, it has been forged.
Message Id Field
According to the current guidelines for email (RFC 2822), every email should have a Message-ID field:
The "Message-ID:" field provides a unique message identifier that refers to a particular version of a particular message. The uniqueness of the message identifier is guaranteed by the host that generates it (see below). This message identifier is intended to be machine readable and not necessarily meaningful to humans. A message identifier pertains to exactly one instantiation of a particular message; subsequent revisions to the message each receive new message identifiers. ... The message identifier (msg-id) itself MUST be a globally unique identifier for a message. The generator of the message identifier MUST guarantee that the msg-id is unique. There are several algorithms that can be used to accomplish this. Since the msg-id has a similar syntax to angle-addr (identical except that comments and folding white space are not allowed), a good method is to put the domain name (or a domain literal IP address) of the host on which the message identifier was created on the right hand side of the "@", and put a combination of the current absolute date and time along with some other currently unique (perhaps sequential) identifier available on the system (for example, a process id number) on the left hand side. Using a date on the left hand side and a domain name or domain literal on the right hand side makes it possible to guarantee uniqueness since no two hosts use the same domain name or IP address at the same time. Though other algorithms will work, it is RECOMMENDED that the right hand side contain some domain identifier (either of the host itself or otherwise) such that the generator of the message identifier can guarantee the uniqueness of the left hand side within the scope of that domain.
Where known, the Message-ID algorithms for known programs are given on the separate pages for those programs.
Known Header Formats
This is an (incomplete) excerpt from an email header:
Received: from lists.securityfocus.com (lists.securityfocus.com [126.96.36.199]) by outgoing2.securityfocus.com (Postfix) with QMQP id 7E9971460C9; Mon, 9 Jan 2006 08:01:36 -0700 (MST) Mailing-List: contact email@example.com; run by ezmlm Precedence: bulk List-Id: <forensics.list-id.securityfocus.com> List-Post: <mailto:firstname.lastname@example.org> List-Help: <mailto:email@example.com> List-Unsubscribe: <mailto:firstname.lastname@example.org> List-Subscribe: <mailto:email@example.com> Delivered-To: mailing list firstname.lastname@example.org Delivered-To: moderator for email@example.com Received: (qmail 20564 invoked from network); 5 Jan 2006 16:11:57 -0000 From: YJesus <firstname.lastname@example.org> To: email@example.com Subject: New Tool : Unhide User-Agent: KMail/1.9 MIME-Version: 1.0 Content-Disposition: inline Date: Thu, 5 Jan 2006 16:41:30 +0100 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Message-Id: <firstname.lastname@example.org> X-HE-Spam-Level: / X-HE-Spam-Score: 0.0 X-HE-Virus-Scanned: yes Status: RO Content-Length: 586 Lines: 26
- http://www.forensictracer.com software for forensic analysis of internet resources