Lagi-lagi saya mendapatkan sebuah tugas yang cukup menarik. Tugas tersebut merupakan sebagian dari tugas-tugas yang ada pada kuliah Keamanan Informasi.
OK, tidak perlu panjang lebar. Pada tugas kali ini, saya diminta untuk “membedah” sebuah email sehingga saya mampu melihat struktur yang menyusun suatu email. Struktur tersebut berupa header dan body dari email tersebut. Header biasanya merupakan identitas dan email pengirim dan berbagai hal mengenai kondisi pengiriman seperti IP Address dari pengirim, protocol, dan host pengirim. Sedangkan body merupakan isi email atau pesan yang kita sampaikan dan attachment yang kita attach.
Biasanya, email yang saat ini digunakan umumnya sudah berbentuk “simplified” sehingga anatomi asli dari suatu email tidak begitu terlihat. Oleh karena itu, untuk melihat struktur asli suatu emaik kita dapat melihatnya dari source email tersebut. Jika kita iseng-iseng ingin melihat struktur tersebut, beberapa email provider seperi Gmail menyediakan fitur untuk melihat bentuk asli dari sebuah email. Jika kita memiliki program email client, sebagian besar email client sudah memiliki fitur tersebut sehingga dapat dijadikan alternatif. Mungkin jika kita lihat sekilas akan merasa kaget karena bentuknya sangatlah ruwet tidak seperti bentuk email yang biasa kita lihat. Tulisan kali ini akan membahas mengenai bagaimana kita mengetahui mana yang header dan mana yang body jika dilihat dari anatomi asli suatu email.
Langkah pertama dari eksperimen ini adalah mengirimkan email ke email milik kita sendiri. Pada kasus ini, saya menuliskan pesan singkat dan 2 buah attachment yang berupa file header suatu bahasa pemrograman (.h) dan file MS Word 2003 (.doc). Lalu saya membuka email yang saya kirim tersebut dengan menggunakan email client bernama Evolution versi 2.28.1. Berikut ini adalah screenshot dari email yang saya buka dengan menggunakan email client tersebut.

email client view
Jika saya mengubah tampilannya menjadi original source, maka akan muncul tampilan sebagai berikut. Semua tampilan tidak akan di tampilkan karena akan sangat panjang.

source-view
Struktur email di atas sudah merupakan struktur header-body sehingga tugas kita kali ini adalah mengidentifikasikan mana yang merupakan header dan mana yang merupakan body. Berikut ini adalah penjelasannya.
Header pada email tersebut adalah :
Delivered-To: rizkydaya@gmail.com
Received: by 10.231.152.202 with SMTP id h10cs179812ibw; Tue, 9 Mar 2010
03:33:24 -0800 (PST)
Received: by 10.150.67.4 with SMTP id p4mr1696510yba.231.1268134404242;
Tue, 09 Mar 2010 03:33:24 -0800 (PST)
Return-Path: <rizkydaya@students.itb.ac.id>
Received: from mx2.ITB.ac.id (mx2.itb.ac.id [167.205.1.67]) by
mx.google.com with ESMTP id 27si15513656iwn.4.2010.03.09.03.33.23; Tue, 09
Mar 2010 03:33:24 -0800 (PST)
Received-SPF: pass (google.com: domain of rizkydaya@students.itb.ac.id
designates 167.205.1.67 as permitted sender) client-ip=167.205.1.67;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of
rizkydaya@students.itb.ac.id designates 167.205.1.67 as permitted sender)
smtp.mail=rizkydaya@students.itb.ac.id
Received: from students.itb.ac.id (students.itb.ac.id [167.205.1.72]) by
mx2.ITB.ac.id (Postfix) with ESMTP id 8538E2AF60 for <rizkydaya@gmail.com>;
Tue, 9 Mar 2010 18:33:26 +0700 (WIT)
Received: from localhost (localhost.localdomain [127.0.0.1]) by
students.itb.ac.id (Postfix) with ESMTP id B319AC0E0002 for
<rizkydaya@gmail.com>; Tue, 9 Mar 2010 18:33:21 +0700 (WIT)
X-Virus-Scanned: amavisd-new at students.itb.ac.id
Received: from students.itb.ac.id ([127.0.0.1]) by localhost
(students.itb.ac.id [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id
gEfQ0nZo408H for <rizkydaya@gmail.com>; Tue, 9 Mar 2010 18:33:20 +0700
(WIT)
Received: from students.itb.ac.id (localhost.localdomain [127.0.0.1]) by
students.itb.ac.id (Postfix) with ESMTP id C43FDC0E0001 for
<rizkydaya@gmail.com>; Tue, 9 Mar 2010 18:33:19 +0700 (WIT)
Date: Tue, 9 Mar 2010 18:33:19 +0700 (WIT)
From: Rizkydaya Aditya Putra <rizkydaya@students.itb.ac.id>
To: rizkydaya@gmail.com
Message-ID: <1932580136.10271268134399197.JavaMail.root@students.itb.ac.id>
In-Reply-To: <1007008554.10251268134389391.JavaMail.root@students.itb.ac.id>
Subject: Ini email coba-coba
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=”—-=_Part_288_2049416998.1268134399195″
X-Originating-IP: [167.205.34.133]
X-Mailer: Zimbra 6.0.1_GA_1816.RHEL5_64 (ZimbraWebClient – FF3.0
(Linux)/6.0.1_GA_1816.RHEL5_64)
X-Evolution-Source: imap://rizkydaya@imap.gmail.com/
Kita dapat melihat berbagai informasi mengenai pengirim baik berupa email pengirim, host yang digunakan, IP address, domain email, waktu pengiriman, port email yang digunakan, dan lain-lain.
Sedangkan bagian body adalah sebagai berikut :
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
ini BODY !!!!
–
Rizkydaya Aditya Putra
13506037
Teknik Informatika ITB 2006
http://rizkydaya.wordpress.com/
Dari email di atas, kita dapat mengidentifikasikan bahwa email ini menggunakan tipe charset utf-8 yang merupakan tipe variasi enkoding karakter yang umum digunakan untuk email. Sedangkan “Content-Transfer-Encoding: 7bit” maksudnya adalah tipe enkoding yang digunakan untuk mendukung tipe US-ASCII. Setelah baris tersebut, kita dapat melihat isi pesan yang dikirimkan pengirim.
Berikut ini adalah bentuk dari attachment jika dilihat sebagai source original.
Content-Type: text/x-chdr; name=MainFrm.h
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=MainFrm.h
// MainFrm.h : interface of the CMainFrame class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_MAINFRM_H__AF5E6E7A_57D9_43E2_97F8_098B5D47F327__INCLUDED_)
#define AFX_MAINFRM_H__AF5E6E7A_57D9_43E2_97F8_098B5D47F327__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CMainFrame : public CFrameWnd
{
protected: // create from serialization only
CMainFrame();
DECLARE_DYNCREATE(CMainFrame)
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMainFrame)
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CMainFrame();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected: // control bar embedded members
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
// Generated message map functions
protected:
//{{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
// NOTE – the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_MAINFRM_H__AF5E6E7A_57D9_43E2_97F8_098B5D47F327__INCLUDED_)
——=_Part_288_2049416998.1268134399195
Content-Type: application/msword; name=”Dunia Kata_24_26.doc”
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=”Dunia Kata_24_26.doc”
0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAOwADAP7/CQAGAAAAAAAAAAAAAAABAAAAHAAAAAAAAAAA
EAAAAgAAAAEAAAD+////AAAAAAAAAAD/////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////…
Kita dapat melihat bahwa bentuk file yang berupa header (.h) tidak dienkoding, tetapi langsung ditampilkan begitu saja pada source email original ini. Content type dari attachment header dapat dilihat dari tipenya yang berupa text/x-chdr yang mendukung tampilan asli dari file text tersebut. Sedangkan bentuk enkoding yang dipakai tetap menggunakan 7bit untuk mendukung tampilan teks yang ada.
Selanjutnya dapat dilihat bahwa file attachment yang berupa file MS Word Office 2003 (.doc) tidak dapat ditampilkan, melainkan dienkoding menjadi bentuk binary oleh tipe enkoding base64.
Jika kita sedikit melihat ke gambar source email yang ditampilkan sebelumnya, kita dapat melihat terdapat suatu tanda pemisah antara header dan body. Tanda tersebut biasanya ditandai dengan kode sebagai berikut :
——=_Part_288_2049416998.1268134399195
Biasanya setiap protokol email memiliki bentuk pemisah yang berbeda-beda. Namun bentuk umumnya tidak berbeda jauh satu sama lain (dimulai dengan dash —)
Sekian penjelasan saya mengenai “bedah” anatomi email kali ini. Semoga bermanfaat.
Komentar Terkini