22
Implementasi Hashing menggunakan Metode MD5 pada Aplikasi Email Client Artikel Ilmiah Peneliti : Krisaldi Pampei (672010170) Dian W. Chandra, S.Kom., M.Cs. Alz Danny Wowor, S.Si., M.Cs. Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga Agustus 2015

Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

  • Upload
    dinhthu

  • View
    222

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

Implementasi Hashing menggunakan Metode MD5 pada Aplikasi

Email Client

Artikel Ilmiah

Peneliti :

Krisaldi Pampei (672010170)

Dian W. Chandra, S.Kom., M.Cs.

Alz Danny Wowor, S.Si., M.Cs.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

Salatiga

Agustus 2015

Page 2: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

Implementasi Hashing menggunakan Metode MD5 pada Aplikasi

Email Client

Artikel Ilmiah

Diajukan kepada

Fakultas Teknologi Informasi

untuk memperoleh Gelar Sarjana Komputer

Peneliti :

Krisaldi Pampei (672010170)

Dian W. Chandra, S.Kom., M.Cs.

Alz Danny Wowor, S.Si., M.Cs.

Program Studi Teknik Informatika

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

Salatiga

Agustus 2015

Page 3: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

Lembar Persetujuan

Page 4: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5
Page 5: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5
Page 6: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5
Page 7: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5
Page 8: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5
Page 9: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

Implementasi Hashing menggunakan Metode MD5 pada Aplikasi

Email Client

1) Krisaldi Pampei,

2)Dian W. Chandra,

3)Alz Danny Wowor

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

Jl. Diponegoro 52-60, Salatiga 50711, Indonesia

Email: 1)

[email protected],2)

[email protected], 3)

[email protected]

Abstract Email as one form of information which is passed to the Internet network that have

a security risk, for instance manipulating the message content. At the mail server, every

email stored in the form of files that can be changed deliberately or inadvertently, by

others who have access to the server, or by an application. To ensure that the contents of

the message to the email does not change, needed a mechanism to detect the integrity

of the content of such messages, one of which the MD5 hash algorithm. Value of

representation (hash) is used to compare the initial data and final data. In this study

developed a detection mechanism changes the contents of the email message, which is

implemented in the form of software. Before the email is sent, the calculated hash value of

the message, and then attached to the email. Test results show that changes to the content

of messages can be detected. Additional advertising or information scanned by the

antivirus to the email structure can not detected as a change, because it does not change

the contents a message written by the sender.

Keywords: Data Integrity, Hash, Email, MD5

Abstrak Email sebagai salah satu bentuk informasi yang dilewatkan pada jaringan internet

yang memiliki resiko keamanan, misalnya adalah memanipulasi isi pesan. Pada mail

server, tiap email tersimpan dalam bentuk file yang dapat diubah sengaja maupun tidak

sengaja, oleh orang lain yang memiliki akses ke server, atau oleh suatu aplikasi. Untuk

memastikan bahwa isi pesan pada email tidak mengalami perubahan, diperlukan

mekanisme untuk mendeteksi keutuhan isi pesan tersebut, salah satunya algoritma hash

MD5. Nilai representasi (hash) digunakan untuk membandingkan data awal dan data

akhir. Pada penelitian ini dikembangkan suatu mekanisme deteksi perubahan isi pesan

email, yang diimplementasikan dalam bentuk perangkat lunak. Sebelum email dikirim,

dihitung nilai hash pesan, kemudian dilampirkan pada email. Hasil pengujian

menunjukkan bahwa perubahan pada isi pesan dapat terdeteksi. Penambahan iklan atau

informasi hasil scan oleh antivirus pada struktur email tidak dapat terdeteksi sebagai

perubahan, karena tidak mengubah isi pesan yang ditulis oleh pengirim.

Kata Kunci: Integritas Data, Hash, Email, MD5

1)Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas Kristen Satya

Wacana 2)3)Staf Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana.

Page 10: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

1

1. Pendahuluan

Maraknya kasus penyadapan serta manipulasi data yang terjadi melalui

media internet, seperti yang terjadi pada surat elektronik atau yang biasa disebut

dengan email. Hal tersebut terjadi dikarenakan tingkat keamanan dari suatu data

pada email belum terjamin sepenuhnya, sehingga beberapa orang melakukan

pengaman tersendiri dalam mengamankan pengiriman file seperti dengan

menambahkan fungsi enkripsi pada data pengiriman. Email merupakan media komunikasi yang masih sering digunakan untuk

keperluan pertukaran informasi, sejak pertama kali ditemukan. Penggunaannya

bervariasi dari sekedar untuk bertukar informasi, sampai kepada alat komunikasi

bisnis yang paling dipercaya.

Email digunakan dengan cara mendaftarkan akun pada mail server.

Layanan mail server dapat diperoleh dengan cara membangun sendiri mail server

dengan berbagai macam software open source maupun bukan. Layanan mail

server juga dapat diperoleh pada layanan-layanan web hosting.

Pada mail server, email tersimpan dalam bentuk file yang memiliki resiko

untuk berubah atau rusak, dikarenakan berbagai penyebab, salah satu contohnya

karena tindakan manipulasi atau penyadapan yangdilakukan oleh pihak lain

(ketiga). Informasi yang terdapat dalam email bisa saja diganti tanpa disadari oleh

pihak penerima. Untuk mengatasi hal tersebut, diperlukan mekanisme untuk

memastikan bahwa isi dari suatu email masih utuh dan tidak mengalami

perubahan saat pengiriman (valid).

Berkaitan dengan masalah yang ada maka dilakukan penelitian untuk

memastikan keutuhan suatu email. Solusi yang diajukan adalah dengan

menambahkan checksum pada email. Checksum diperoleh dengan menggunakan

algoritma MD5.

2. Tinjauan Pustaka

Pada penelitian Buana[1] dibahas mengenai ancaman keamanan integritas

data pada Internet. Ancaman yang ditekankan adalah ancaman modification dan

fabrication. Modification berarti data diakses dan diubah oleh pihak yang tidak

berhak.Fabrication berarti data ditiru dan dipalsukan untuk dimasukkan ke dalam

sistem. Solusi yang diajukan pada penelitian tersebut adalah dengan menggunakan

mekanisme pengujian integritas data, dengan menggunakan salah satu algoritma

hash, yaitu MD5. Penelitian tersebut menghasilkan aplikasi yang menunjukkan

keuntungan penggunakan pengujian integritas ini.

Penelitian Buana menjadi acuan bagi penelitian ini karena pada penelitian

Buana, dibahas tentang masalah yang sama yaitu masalah integritas file yang

dilewatkan pada Internet. File memiliki resiko diubah dan dipalsukan oleh pihak

tidak berwenang. Ketika file tidak utuh, akan memberikan akibat yang tidak

semestinya bagi sistem yang menggunakan file tersebut. Buana menggunakan

fungsi hash karena memiliki kelebihan yaitu, fungsi hash sangat peka terhadap

perubahan sekecil apapun. Hal ini akan tercermin pada berubahnya nilai hash

yang dihasilkan oleh fungsi hash. MD5 sebagai salah satu algoritma hash telah

diimplementasikan ke dalam berbagai bahasa pemrograman, dan telah terintegrasi

Page 11: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

2

ke berbagai pustaka, misalnya JDK, .Net Framework, dan PHP. Sehingga tidak

diperlukan untuk menulis sendiri kode program MD5 untuk dapat

menggunakannya.

Penelitian Hafiz[2] membahas tentang pemanfaatan MD5 dalam tanda

digital pada SMS. Ponsel adalah salah satu alat komunikasi yang paling populer.

Sayangnya, popularitas ini juga meningkatkan jumlah kejahatan menggunakan

telepon seluler. Penipuan SMS adalah salah satu jenis kejahatan menggunakan

ponsel. Metode verifikasi pengirim diperlukan untuk menghindari kejahatan

semacam ini. Tanda tangan digital dapat digunakan untuk memverifikasi

pengirim. Pengirim mengirimkan SMS dengan tanda tangan digital dan penerima

akan melakukan verifikasi tanda tangan. Pada penelitian tersebut dikembangkan

aplikasi ini dengan menggunakan J2ME dan algoritma MD5-RSA sebagai metode

tanda tangan. Parameter kunci pasangan dapat dihasilkan dalam 15 detik sampai 4

menit tergantung pada teknologi telepon seluler. Tanda tangan digital dapat

dibentuk dengan waktu rata-rata 1,35 detik sampai 1,97 detik. Verifikasi tanda

tangan digital dapat dilakukan dengan waktu rata-rata 3,73 detik sampai 12,09

detik. Tanda tangan digital yang dihasilkan, menggunakan parameter kunci

pribadi dan diverifikasi menggunakan parameter kunci publik. Hanya sepasang

kunci yang benar akan memberikan hasil yang valid. Waktu untuk mengirim

menandatangani-SMS tergantung pada kemampuan jaringan. Tidak ada perbedaan

dibandingkan dengan mengirim SMS biasa.

Penelitian Hafiz merupakan acuan dalam hal pemanfaatan MD5 untuk

menjamin keutuhan pesan dimana yang menjadi obyek penelitian adalah pesan

SMS. Pemanfaatan MD5 tersebut dapat diperluas untuk menjamin keutuhan pesan

email, seperti yang dilakukan pada penelitian ini. Hafiz pada pengujian,

mengambil kesimpulan bahwa fungsi hash tidak memberikan perbedaan waktu

pada proses yang menggunakannya

Berdasarkan penelitian-penelitian yang telah dilakukan tentang ancaman

integritas data, dan pemanfaatan MD5 untuk menjamin keutuhan data, maka

dilakukan penelitian yang bertujuan untuk merancang dan mengimplementasikan

MD5 sebagai checksum[3] pada email untuk memastikan keutuhan suatu email.

Batasan masalah dalam penelitian ini adalah sebagai berikut: (1)

Checksum dihitung dengan menggunakan algoritma MD5; (2) Checksum

ditambahkan pada email dalam bentuk attachment; (3) Aplikasi dikembangkan

dengan menggunakan .Net Framework 4.5, dan berjalan pada sistem operasi

Microsoft Windows 7; (4) Tidak membahas sistem keamanan dari aplikasi yang

dirancang.

Kriptografi (cryptography) merupakan ilmu dan seni penyimpanan pesan,

data, atau informasi secara aman. Kriptografi (cryptography) berasal dari bahasa

Yunani yaitu dari kata Crypto dan Graphia yang berarti penulisan rahasia[4].

Kriptografi merupakan bagian dari suatu cabang ilmu matematika yang disebut

Cryptology. Dalam mengenkripsi dan mendekripsi data, kriptografi membutuhkan

suatu algoritma (cipher) dan kunci (key). Cipher adalah fungsi matematika yang

digunakan untuk mengenkripsi dan mendekripsi. Sedangkan kunci merupakan

sederetan bit yang diperlukan untuk mengenkripsi dan mendekripsi data[7].

Secara umum proses kriptografi dibagi menjadi dua bagian yaitu enkripsi dan

Page 12: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

3

dekripsi. Data yang telah dienkripsi disebut ciphertext karena data asli telah

mengalami proses di dalam sebuah algoritma kriptografi atau lebih dikenal

dengan nama cipher. Kebalikannya, proses mengubah pesan yang telah dienkripsi

(ciphertext) menjadi pesan asli (plaintext) disebut sebagai proses dekripsi. Proses

enkripsi dan dekripsi dapat dilihat pada Gambar 1.

Gambar 1 Proses Enkripsi dan Dekripsi

MD5 yang merupakan singkatan dari Message-Digest algortihm 5, adalah

fungsi hash (prosedur terdefinisi atau fungsi matematika yang mengubah variabel

dari suatu data yang berukuran besar menjadi lebih sederhana) kriptografik yang

digunakan secara luas dengan hash value 128-bit. MD5 dimanfaatkan dalam

berbagai aplikasi keamanan, dan umumnya digunakan untuk meguji integritas

sebuah file. Hash MD5 sepanjang 128-bit (16-byte), yang dikenal juga sebagai

ringkasan pesan, secara tipikal ditampilkan dalam bilangan heksadesimal 32-digit.

Berikut ini merupakan contoh pesan ASCII sepanjang 43-byte sebagai masukan

dan hash MD5 terkait: MD5(“The quick brown fox jumps over the lazy dog”) =

9e107d9d372bb6826bd81d3542a419d6

Bahkan perubahan yang kecil pada pesan akan (dengan probabilitas lebih)

menghasilkan hash yang benar-benar berbeda, misalnya pada kata “dog”, huruf d

diganti menjadi c: MD5(“The quick brown fox jumps over the lazy cog”) =

1055d3e698d289f2af8663725127bd4b

Hash dari panjang-nol ialah: MD5(“”) = d41d8cd98f00b204e9800998ecf8427e

Ringkasan MD5 digunakan secara luas dalam dunia perangkat lunak untuk

menyediakan semacam jaminan bahwa berkas yang diambil (download) belum

terdapat perubahan. Seorang pengguna dapat membandingkan MD5 sum yang

dipublikasikan dengan checksum dari berkas yang diambil. Dengan asumsi bahwa

checksum yang dipublikasikan dapat dipercaya akan keasliannya, seorang

pengguna dapat secara yakin bahwa berkas tersebut adalah berkas yang sama

dengan berkas yang dirilis oleh para developer. Bagaimanapun juga, seringkali

kasus yang terjadi bahwa checksum yang dipublikasikan tidak dapat dipercaya

(sebagai contoh, checksum didapat dari channel atau lokasi yang sama dengan

tempat mengambil berkas), dalam hal ini MD5 hanya mampu melakukan error-

checking. MD5 akan mengenali berkas yang diunduh tidak sempurna, cacat atau

tidak lengkap. Untuk aplikasi pengujian integritas sebuah file atau lebih dikenal

dengan istilah MD5 checksum, dapat menggunakan aplikasi desktop atau aplikasi

berbasis web MD5 checksum seperti “MD5 Checksum Verifier” dan sebagainya.

Software semacam ini akan menghasilkan kode MD5 dari file yang diuji

integritasnya. Selanjutnya kode MD5 ini akan digunakan untuk menguji apakah

Page 13: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

4

file tersebut memiliki integritas atau tidak. Artinya jika file akan diberikan atau

dikirimkan atau diunduh, penerima dapat mencocokkan dengan yang diterima

apakah ukuran, struktur, dan jenis file sesuai dengan yang diberikan oleh pembuat

file. Contohnya jika suatu file diunduh, kemudian diberikan juga kode MD5

checksum-nya, jika diperiksa (validasi) dengan aplikasi seperti MD5 Checksum

Verifier, dinyatakan valid atau sama dengan file yang diuji, maka dikatakan file

tersebut tidak mengalami perubahan dari pengirim hingga ke tangan penerima[7].

3. Metode dan Perancangan Sistem

Metode perancangan sistem dilakukan dengan menggunakan metodologi

pengembangan perangkat lunak prototype model[5]. Pada proses implementasi

dihasilkan beberapa prototype yang dapat dijelaskan sebagai berikut. Tahap

pertama: mendengarkan atau wawancara customer atau user; Tahap kedua;

merancang program kemudian membuat perbaikan terhadap hasil yang diperoleh;

Tahap ketiga: melakukan evaluasi ke customer atau user dimana pada tahap ini

proses akan kembali lagi ketahap pertama. Diagram prototype model ditunjukkan

pada Gambar 2.

Gambar 2 Prototype Model

Sesuai dengan tahapan penelitian, tahap kedua yaitu melakukan

perancangan sistem. Rancangan yang dilakukan adalah rancangan proses

pemberian checksum, proses validasi checksum, tampilan antarmuka aplikasi.

Page 14: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

5

Mulai

Selesai

Pengguna memasukkan isi pesan

Aplikasi menghitung nilai checksum

Meletakkan nilai checksum sebagai attachment

Mengirim Email

Gambar 3 Proses Pembuatan Checksum dan Pengiriman Email

Gambar 3 menjelaskan proses penghitungan checksum, kemudian disisipkan ke

dalam email dalam bentuk attachment. Proses tersebut terjadi sebelum proses

pengiriman email. Sehingga emailakan terkirim ke penerima, dilengkapi dengan

file attachment yang berisi nilai checksum.

Mulai

Selesai

Program membaca

pesan dalam inbox

Aplikasi menghitung nilai checksum

Checksum sama

Status Valid

Status not valid

Jika ada attachment checksum

Status unknown

YA YA

TIDAK TIDAK

Gambar 4 Proses Validasi Checksum

Page 15: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

6

Gambar 4 menunjukkan proses validasi checksum. Program membaca isi

email kemudian dihitung nilai checksum dengan algoritma MD5. Nilai checksum

yang diperoleh, kemudian dibandingkan dengan nilai checksum yang tersimpan di

dalam attachment files. File dinyatakan valid hanya ketika nilai kedua checksum

tersebut sama.

4. Hasil dan Pembahasan

Pada bagian ini dijelaskan tentang hasil penelitian yang telah dilakukan.

Pembahasan terbagi pada pembahasan hasil penelitian dan pembahasan aspek

keamanan.

Sistem yang dihasilkan pada penelitian ini merupakan aplikasi berbasis

windows. Gambar 5 menunjukkan halaman yang digunakan untuk membaca

email, sekaligus menunjukkan status uji integritas valid. Nilai checksum yang

dibandingkan adalah nilai checksum isi email.

Gambar 5 Tampilan Email Valid

Pada Gambar 5, sebagai contoh isi email adalah Universitas Kristen

Satya Wacana, dan nilai checksum yang dihasilkan dengan menggunakan

algoritma MD5 adalah 783C7DDA37773B69D673CC6E098EE0CE atau dalam

format base64 eDx92jd3O2nWc8xuCY7gzg==.

Gambar 6 Tampilan Email Tidak Valid

Page 16: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

7

Gambar 6 menunjukkan status email yang tidak valid. Email tersebut telah

mengalami perubahan tidak sah, sehingga nilai MD5 yang dihasilkan dari isi

email, berbeda dengan nilai MD5 yang terdapat pada file attachment. Nilai

checksum yang dihasilkan dari hasil validasi adalah

4597081C0EDFC9C79ACB8A00644BE7B9 yang berbeda dengan nilai checksum

awal, yaitu 783C7DDA37773B69D673CC6E098EE0CE.

Gambar 7 Tampilan Email Tanpa Checksum

Pada Gambar 7, menunjukkan kondisi ketika suatu email tidak memiliki

checksum didalamnya. Hal ini menyebabkan tidak dapat dilakukan proses

pembandingan atau validasi integritas pesan.

Isi (content) dari sebuah email dideskripsikan dalam kata kunci Content-

Type. Jika email memiliki beberapa content dan berbeda jenis, maka pada bagian

awal, disebutkan Content-Type: multipart/mixed. Isi pesan yang ditulis oleh

pengirim diletakkan setelah kata kunci Content-Type: text/plain. Attachment

diletakkan setelah Content-Type: application/octec-stream, dengan nilai Content-

Disposition adalah attachment. Aturan ini disebutkan pada RFC2183 [6].

Attachment ditulis dalam format encoding base64. Suatu content, diawali dan

diakhiri dengan kata kunci boundary. Kata kunci boundary diikuti dengan suatu

nilai (setelah tanda „=‟), yaitu dua karakter „-„, kemudian nilai Content-Type

header field[8].

Pada Gambar 8 terdapat beberapa tambahan akibat dari proses scan

antivirus. Perubahan tersebut tidak mengubah isi pesan yang ditulis oleh pengirim.

Perubahan terdapat pada penambahan header X-Antivirus dan X-AVG-ID. Dua

header ini ditambahkan oleh AVG antivirus, untuk menandai bahwa email

tersebut telah diperiksa oleh AVG. X-Antivirus berisi versi AVG, dan X-AVG-ID

berisi kode unik antivirus yang terinstal pada komputer pengguna.

Page 17: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

8

Gambar 8 Strukur Email yang Tersimpan di Server

Pada Gambar 8 ditunjukkan struktur email yang tersimpan pada server.

Email disimpan dalam bentuk file. Adapun struktur email yaitu terdiri dari

Header, Body, dan Attachment. Berdasarkan Gambar 8, dapat dilihat bahwa pada

kolom merah menunjukkan bagian header dari struktur email yang berisi alamat

email baik pengirim maupun penerima, judul email, tanggal pengiriman, dan lain-

lain. Pada kolom biru menunjukkan bagian body dari struktur email yang berisi isi

pesan dari email, dan pada kolom hijau menunjukkan bagian attachment dari

struktur email yang berisi script attachment dari email. Pada email disimpan

dalam format Base64 Encoding[9].

Kode Program1 Perintah untuk Menambahkan Checksum 1. var message = new MailMessage(

2. Program.Alamat, this.toTextBox.Text);

3. message.Subject = this.subjectTextBox.Text;

4. message.Body = this.bodyTextBox.Text;

5.

6. varhash = HashCheck.GetHash(

7. Encoding.Default.GetBytes(message.Body));

8.

9. MemoryStream stream = new MemoryStream(hash);

10. message.Attachments.Add(new Attachment(stream, "MD5"));

Kode Program 1 merupakan perintah yang digunakan untuk menghitung

nilai checksum dengan algoritma MD5. MD5 yang digunakan adalah class yang

tersedia di pustaka .Net Framework. Nilai checksum yang dihasilkan kemudian

disisipkan ke dalam pesan dalam bentuk attachment. Nilai checksum yang

diperoleh adalah hasil pengolahan dari isi pesan, yang ditulis oleh pengirim pada

control this.bodyTextBox.Text;. Tujuan dari penggunaan checksum

adalah untuk melindungi isi pesan dari modifikasi yang tidak diharapkan, oleh

karena itu, hanya isi pesan saja, dan bukan keseluruhan tubuh email yang dihitung

nilai checksum-nya. Cara ini memberikan keuntungan yaitu tidak perlu dilakukan

Page 18: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

9

proses perhitungan checksum untuk keseluruhan tubuh email. Kelemahan dari

cara tersebut adalah jika modifikasi dilakukan bukan pada isi email, semisal time

stamp (tanggal dan jam) email, maka modifikasi ini tidak dapat dideteksi.

Kode Program2 Perintah untuk Validasi Checksum 1. varhash = HashCheck.GetHash(

2. Encoding.Default.GetBytes(this.bodyTextBox.Text));

3. var attachHash = GetAttachment(items.OriginalObject);

4. if (attachHash == null)

5. {

6. this.pictureBox1.Image = Resources.unknown;

7. this.label3.Text = "Checksum Result: Unknown";

8. this.label3.ForeColor = Color.DarkOrange;

9. }

10. else 11. { 12. var valid = HashCheck.CompareHash(hash, attachHash);

13. if (valid)

14. {

15. this.pictureBox1.Image = Resources.valid;

16. this.label3.Text = "Checksum Result: Valid";

17. this.label3.ForeColor = Color.DarkGreen;

18. }

19. else

20. {

21. this.pictureBox1.Image = Resources.invalid;

22. this.label3.Text = "Checksum Result: Not Valid";

23. this.label3.ForeColor = Color.Red;

24. }

25. }

Kode Program 2 merupakan perintah yang digunakan untuk menghitung

nilai checksum pada email yang diterima. Nilai ini kemudian dibandingkan

dengan nilai yang terdapat pada file attachment. Pesan akan dikategorikan ke

dalam 3 kondisi, yaitu (1) valid, ketika nilai hash hasil perhitungan sama dengan

nilai hash pada attachment; (2) not valid, ketika nilai berbeda; (3) unknown,

ketika email tidak memiliki attachment.

Pada aplikasi yang telah dibangun, dilakukan pengujian untuk mengetahui

apakah aplikasi telah berhasil mengetahui perubahan pesan. Hasil pengujian

ditunjukkan pada Tabel 1.

Tabel 1 Pengujian Deteksi Perubahan Isi Email

No Pengujian Hasil yang

Diharapkan

Output

Aplikasi

Kesimpulan

1 Email dikirim dengan

menggunakan aplikasi.

Ada attachment

MD5. Terdeteksi

sebagai email

valid.

Email valid Berhasil.

Massage

checksum

dan attached

checksum

sama.

2 Email dikirim dengan

menggunakan webmail

Tidak ada

attachment.

Terdeteksi

sebagai email

asing.

Email unknown Berhasil.

Tidak

terdetiksi

adanya

attachment.

Page 19: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

10

3 Email dikirim dengan

menggunakan aplikasi.

Kemudian dengan

menggunakan webmail,

isi pesan diubah, dan

diteruskan (forward).

Tidak ada

attachment.

Terdeteksi

sebagai email

asing.

Email unknown Berhasil.

Tidak

terdetiksi

adanya

attachment.

4

5

6

Email dikirim dengan

aplikasi. Kemudian file

email di server diubah isi

pesannya tetapi tidak

mengubah attachment.

Isi email diubah,

attachment diubah sesuai

dengan isi email yang

baru.

Isi email tidak diubah,

tetapi mengubah

attachment.

Terdeteksi

sebagai email

tidak valid

Terdeteksi

sebagai email

valid

Terdeteksi

sebagai email

valid

Email not valid

Email valid

Email not valid

Berhasil.

Manipulasi

terdeteksi.

Berhasil.

Manipulasi

tidak

terdeteksi

seakan tidak

mengalami

perubahan.

Tidak

Berhasil.

Manipulasi

terdeteksi.

7 Isi email ditambahkan

iklan oleh aplikasi lain,

contohnya adalah

antivirus. Dalam

pengujian ini adalah

AVG.

Terdeteksi

sebagai email

Not valid

Email valid Tidak

berhasil

mendeteksi

tambahan

iklan.

Kesimpulan

valid

diperoleh

karena isi

pesan tidak

diubah oleh

aplikasi lain

tersebut.

Sehingga

dianggap

utuh.

Berdasarkan hasil pengujian deteksi perubahan isi email, yaitu ketika

pesan pada attachment dan body dari struktur email diubah atau ditambahkan

karakter baru maka output dari aplikasi email not valid. Hal ini dikarenakan

perubahan pada email, dimana terdapat perbedaan antara nilai hash hasil

perhitungan isi email, dengan nilai hash yang terdapat pada attachment. Pada

pengujian nomor 7, yaitu penambahan iklan, diperoleh hasil valid karena proses

Page 20: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

11

validasi integritas pesan (proses mengecek keutuhan email), dilakukan pada

message body saja (isi pesan). Iklan, bukan mengubah isi pesan, tapi

menambahkan konten baru pada akhir email dalam boundary baru, sehingga tidak

mengubah isi pesan. Perlu diketahui yang dimaksud dengan "isi pesan" adalah

tulisan atau konten yang ditulis oleh pengirim. Perubahan ini ditunjukkan pada

Gambar 9.

Gambar 9 Penambahan Iklan pada Email

Kelemahan muncul ketika manipulasi dilakukan dengan mengganti nilai

hash pada attachment, kemudian menyesuaikan nilai hash pada message

checksum sehingga menghasilkan email not valid, dengan catatan algoritma yang

digunakan untuk menghitung hash adalah sama-sama MD5.

Analisis dilakukan pada hasil implementasi dan hasil pengujian. Email

memiliki susunan format yang didekripsikan pada RFC 822 (Gambar 9). Proses

MD5 dilakukan pada bagian isi email, yaitu isi pesan yang diketikkan oleh user.

Sehingga perubahan pada bagian selain dari isi pesan, tidak akan mengakibatkan

perubahan hash. Pada Gambar 9, terdapat content tambahan baru, yang

diakibatkan dari proses scanning antivirus AVG. Content ini tidak dikategorikan

sebagai attachment, dilihat dari nilai pada kata kunci Content-Disposition. Pada

Content-Type, ditambahkan nilai x-avg=cert untuk menandai bahwa content

tersebut ditambahkan dan digunakan oleh AVG antivirus. Untuk attachment,

Content-Disposition bernilai “attachment”, pada hasil scan AVG, Content-

Disposition bernilai “inline”, yang berarti bahwa informasi ini ditampilkan

bersamaan dengan isi pesan, bukan sebagai file yang bisa diunduh seperti halnya

attachment. Sekalipun ditampilkan dibawah isi pesan, namun content ini tidak

dianggap sebagai isi pesan, dilihat dari Content-Description yang ada[10]. Proses

validasi hash dilakukan pada isi pesan saja, tidak termasuk pada content tambahan

Page 21: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

12

seperti contohnya hasil scan AVG. Pada proses validasi tetap akan menghasilkan

nilai “valid”, karena pada isi pesan, tidak ada perubahan yang terjadi.

Beta testing dilakukan dengan cara pembagian daftar pertanyaan kepada

30 responden dan daftar pertanyaan diisi bersamaan dengan pengujian aplikasi

secara langsung. Hal yang diuji dan hasil pengujian dapat dilihat pada Tabel 2.

Tabel 2 Hasil Data Daftar Pertanyaan

No. Pertanyaan

Jawaban

Tidak

Setuju Setuju

Sangat

Setuju 1 Aplikasi dapat berjalan pada system operasi windows 0 19 11

2 Aplikasi dapat terkoneksi dengan baik 7 18 5

3 Aplikasi dapat menerima pesan dari webmail 0 20 10

4 Aplikasi dapat meneruskan pesan menggunakan

webmail

0 22 8

5 Aplikasi mudah digunakan dan memiliki tampilan

yang menarik

6 14 10

6 Aplikasi membantu dalam melakukan validasi pesan 0 10 20

7 Aplikasi sangat peka terhadap perubahan isi pesan

maupun terhadap nilai checksum

0 7 23

Berdasarkan hasil dari daftar pertanyaan untuk pengujian kepada

pelanggan pada Tabel 2, dapat disimpulkan bahwa: aplikasi sudah berjalan pada

sistem operasi windowsdibuktikan dengan 63% responden setuju dan 37% lainnya

sangat setuju, aplikasi terkoneksi dengan baik karena 60% responden setuju,

aplikasi dapat menerima pesan dari webmail berjalan baik karena 66% responden

setuju, dan 33% sangat setuju, aplikasi dapat meneruskan pesan menggunakan

webmail karena 60% responden setuju dan 23% sangat setuju, aplikasi user

friendly dan memiliki tampilan yang menarik karena 46% responden setuju dan

33% sangat setuju, aplikasi membantu dalam melakukan validasi pesan karena

33% responden setuju dan 66% sangat setuju, aplikasi sangat peka terhadap isi

pesan maupun terhadap nilai checksum karena 23% setuju dan 76% sangat setuju.

Seperti ditunjukkan pada Gambar 3, bahwa sistem dikembangkan dengan

metode prototyping, maka berdasarkan hasil evaluasi kuesioner, dilakukan

perbaikan dan pengembangan. Tabel 3 menunjukkan tahap-tahap revisi dan

prototype yang dihasilkan.

Tabel 3 Pengembangan dan Evaluasi Prototype

Prototype Revisi Evaluasi/Masalah

1 Aplikasi dapat terkoneksi dengan baik Email-email pada Inbox tidak di-

download semua, namun hanya

email yang dibaca saja yang di-

download. Sehingga tidak

membebani koneksi internet.

2 Prototype 2 merupakan hasil perbaikan

berdasarkan evaluasi tahap 1.

Aplikasi mudah digunakan dan memiliki

tampilan yang menarik

Ditambahkan icon-icon pada tombol.

Page 22: Implementasi Hashingmenggunakan Metode MD5 pada Aplikasi ...repository.uksw.edu/bitstream/123456789/15146/2/T1_672010170_Full... · diperlukan untuk menulis sendiri kode program MD5

13

3 Prototype 3 merupakan hasil perbaikan

berdasarkan evaluasi tahap 2.

(tidak ada)

5. Kesimpulan

Berdasarkan penelitian, pengujian dan analisis terhadap sistem, maka

dapat diambil kesimpulan sebagai berikut: (1) MD5 dapat digunakan untuk

mendeteksi perubahan pada isi email; (2) Hasil perhitungan MD5 (hash),

ditambahkan pada email sebagai attachment, sehingga berfungsi sebagai nilai

pembanding ketika email divalidasi oleh penerima; (3) Aplikasi yang

dikembangkan dapat mendeteksi perubahan isi email akibat dari perubahan ketika

merubah nilai hash pada attachment, atau email sengaja diubah atau tidak sengaja

pada server. Saran pengembangan yang dapat diberikan untuk penelitian lebih

lanjut adalah sebagai berikut: (1) Nilai hash tersimpan pada attachment, perlu

diamankan lagi dengan algoritma kriptografi yang menggunakan kunci, sebagai

contoh AES. Hal ini bertujuan untuk menghindari manipulasi nilai hash pada

attachment.

6. Daftar Pustaka

[1] Buana, R. G. 2012. Pengujian Integritas Data Menggunakan Algoritma

MD5. DINAMIKA DOTCOM 3.

[2] Hafiz, Y. 2012. Pengembangan Aplikasi Penandaan Digital pada SMS

Menggunakan Algoritme MD5-RSA.

[3] Koopman, P., Driscoll, K. & Hall, B. 2015. Selection of Cyclic Redundancy

Code and Checksum Algorithms to Ensure Critical Data Integrity.

[4] Forouzan, B. A. 2007. Cryptography & Network Security. McGraw-Hill,

Inc.

[5] Pressman, R. S. & Jawadekar, W. S. 1987. Software engineering. New

York 1992

[6] Troost, R. & others 1997. The Content-Disposition Header Field.

[7] Munir, R. 2006. Kriptografi. Informatika, Bandung

[8] W3 1992. The Multipart Content-Type.

http://www.w3.org/Protocols/rfc1341/7_2_Multipart.html. Diakses pada

Agustus 2015.

[9] Josefsson, S. 2006. The base16, base32, and base64 Data Encodings.

https://tools.ietf.org/html/rfc4648. Diakses pada 14 Mei 2015.

[10] Levinson, E. 1998. The mime multipart/related content-type.

https://tools.ietf.org/html/rfc2387. Diakses Agustus 2015.