Autentikasi Dengan Metode MD5 One Way Hash Function
Challenge Response Pada Web-Based Transaction
Disusun Oleh :
Yohana Sinta Dewi Sari 055314116
JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
AUTENTIKASI DENGAN METODE MD5 ONE WAY HASH
FUNCTION CHALLENGE-RESPONSE PADA WEB-BASED
TRANSACTION
Tugas Akhir
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
Disusun oleh:
Yohana Sinta Dewi Sari NIM: 055314116
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
AUTHENTICATION USING MD5 ONE WAY HASH FUNCTION
CHALLENGE-RESPONSE IN WEB-BASED TRANSACTION
Final Project
Presented as Partial Fulfillment of the Requirements To Obtain Sarjana Teknik Degree
In Informatics Engineering Department
Arranged by : Yohana Sinta Dewi Sari Student number : 055314116
INFORMATICS ENGINEERING STUDY PROGRAM FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY YOGYAKARTA
HALAMAN PERSEMBAHAN
Kupersembahkan karyaku ini kepada
My Lovely Heaven Father, Jesus Christ and Mother, Mary,
(You are the strength, best friends, nothing impossible in you)
Malaikat Gabriella Bonino,
(Malaikat pelindungku yang selalu setia menjaga, melindungiku)
Segenap keluarga, Bapak, Ibu, Kakak-kakakku, Adik-adikku,
(Kalian lah harta terindah dan sumber inspirasi yang ku miliki)
Almamater Teknik Informatika Universitas Sanata Dharma
(yang telah mendidik, mendampingi hingga Tugas Akhir ini selesai)
Seluruh teman-teman,
HALAMAN MOTTO
Kala kita benar-benar sudah angkat tangan,
Tuhan pasti akan segera turun tangan.
Engkau teman sehati, kita teman sejati, hadapilah dunia
genggam tangan ku,
(arti sahabat, untuk semua keluarga, teman-teman)
INTISARI
MD5 merupakan salah satu contoh algoritma hash yang hampir sama dengan proses enkripsi tetapi tidak dapat digunakan untuk proses dekripsi. Algoritma MD5 ini dikembangkan oleh Profesor Ronald Rivest pada tahun 1991. Algoritma MD5 telah berkembang pesat dalam berbagai aplikasi karena tingkat keamanan, kecepatan dan sederhana dalam design.
Sistem ini dibangun untuk dua pihak, yaitu pihak pengguna (client) dan pihak administrator (server). Untuk menghubungkan ke-dua pihak tersebut digunakan protokol Challenge-Response. Cara kerja protokol Challenge-Response yaitu server menyediakan dan memberi challenge, sedangkan client mengolah challenge dan memberi response. Protokol Challenge-Response digunakan dalam beberapa aplikasi yang menghindarkan adanya transfer password secara langsung.
ABSTRACT
MD5 is one of any other hash algorithms looks like encryption, but can’t do decryption. It was created by Professor Ronald Rivest in 1991. MD5 have been developed in many applications because of the safety, quickly in processing and simplicity in design.
The system was built for two sides, namely client side and server side. Challenge-Response Protocol is used to connect them. In Challenge-Response Protocol, server will provide and give challenge, in the other hand client will generate challenge and sent response. Challenge-Response Protocol is used in any applications to avoid the transfer password directly.
KATA PENGANTAR
Puji dan syukur kepada Tuhan Yang Maha Esa atas segala rahmat, kasih dan bimbingan-Nya sehingga penulis dapat menyelesaikan penulisan Tugas Akhir yang berjudul ” Autentikasi dengan Metode Md5 One Way Hash Function Challenge-Response pada Web-Based Transaction”. Tugas Akhir ini disusun guna memenuhi salah satu syarat untuk memperoleh gelar Sarjana Teknik di Jurusan Teknik Informatika, Universitas Sanata Dharma.
Penyusunan Tugas Akhir ini tidak terlepas dari doa, bantuan, bimbingan serta dukungan dari berbagai pihak yang sangat bermanfaat bagi penulis. Dalam kesempatan ini, penulis mengucapkan terimakasih yang tak terhingga kepada :
1. Bapak Bambang Soelistijanto, S.T.,M.Sc. selaku dosen pembimbing atas segala kesabaran, bimbingan dan bantuannya dalam membimbing penulis dalam menyelesaikan Tugas Akhir ini.
2. Bapak Albertus Agung Hadhiatma,S.T., M.T. dan Ibu Sri Hartati Wijono,S.Si., M.Kom. selaku dosen penguji atas saran dan masukan demi kesempurnaan Tugas Akhir ini.
3. Para dosen Universitas Sanata Dharma yang telah membantu dan memberi bekal pengetahuan kepada penulis.
4. Para karyawan dan staff Fakultas Sains dan Teknologi, khususnya Jurusan Teknik Informatika, atas segala bantuan yang diberikan kepada penulis.
5. Bapak, ibu, kakak-kakak, adik-adik tersayang yang telah memberikan perhatian, doa, dukungan yang sangat besar kepada penulis.
6. Seluruh teman-teman yang tidak dapat penulis sebutkan, atas kesediaan membantu, menemani, dan mendengarkan keluh kesah.
Semoga segala kebaikan yang telah penulis terima menjadi berkat dan bekal yang sangat berharga di kehidupan penulis nantinya. Penulis menyadari bahwa penulisan Tugas Akhir ini masih jauh dari kesempurnaan, oleh sebab itu penulis mengharapkan kritik dan saran dari pembaca yang bersifat membangun. Atas kritik dan saran yang diberikan, penulis mengucapkan terima kasih.
Yogyakarta, Januari 2010
DAFTAR ISI
HALAMAN JUDUL ...i
HALAMAN JUDUL BAHASA INGGRIS ...ii
HALAMAN PERSETUJUAN ...iii
LEMBAR PERNYATAAN PERSETUJUAN ...ix
PERNYATAAN KEASLIAN KARYA ...x
KATA PENGANTAR ...xi
DAFTAR ISI ...xiii
DAFTAR GAMBAR ...xvi
DAFTAR TABEL ...xviii
BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah ...1
1.2 Rumusan Masalah ...2
1.3 Batasan Masalah ...3
1.4 Tujuan ...3
1.5 Manfaat ...4
1.5 Metode Penelitian ...4
1.7 Sistematika Penulisan ...5
BAB 2 LANDASAN TEORI 2.1 Pengantar Kriptografi ...6
2.1.1 Komponen Kriptografi ...6
2.1.3 Tujuan Kriptografi ...9
2.2 Jenis Serangan Terhadap Keamanan Data ...10
2.2.1 Pengiriman Password Dan Permasalahannya ...12
2.3 Autentikasi ...17
2.3.1 Sistem Autentikasi ...18
2.3.2 Protokol Challenge Response ...20
2.3.3 Autentikasi Dengan Protokol Challenge Response ...23
2.4 Algoritma Hash Function ...25
2.4.1 Sifat-Sifat Fungsi Hash Kriptografi...25
2.4.2 Fungsi Hash Satu Arah (One Way Hash Function) ………...26
2.4.3 Kegunaan One Way Hash Function ………..28
2.4.4 Kelebihan dan Kekurangan fungsi Hash ...29
2.5 Message Digest 5 (MD5) ...30
2.5.1 Kelemahan (vulnerability) MD5 ...38
2.5.2 Pemecahan Masalah Serangan MD5 ...39
2.5.3 Kelebihan dan Kekurangan MD5 ...40
2.6 Pembangkit Bilangan Random ...41
2.6.1 Fungsi Pembangkit Bilangan Acak Pada PHP...41
BAB 3 ANALISA DAN PERANCANGAN SISTEM 3.1 Analisa Sistem ...43
3.1.1 Use Case Diagram ……...44
3.1.2 Entity Relational Diagram ...45
3.1.3 Data Flow Diagram (DFD) ...47
3.2 Analisa Teknologi ...50
3.3 Analisa Algoritma MD5 ...50
3.4 Perancangan Sistem ...53
3.4.1 Perancangan User Interface Web ...53
BAB 4 IMPLEMENTASI PROGRAM
4.1 Implementasi Program ...58 4.1.1 Implementasi User Interface Web ...58 4.1.2 Aplikasi Program Java ...65 BAB 5 UJI COBA DAN ANALISA HASIL
5.1 Uji Coba ...69 5.2 Analisa Hasil ...74 5.3 Analisa Piranti Pengembang ...75 BAB 6 KESIMPULAN DAN SARAN
6.1 Kesimpulan ...76 6.2 Saran ...77
DAFTAR GAMBAR
Gambar 2.1 Diagram proses enkripsi dan dekripsi ...7
Gambar 2.2 Kunci simetris ...8
Gambar 2.3 Kunci asimetris ...8
Gambar 2.4 Fungsi hash ...9
Gambar 2.5 Pengiriman password p dalam bentuk plainteks ...12
Gambar 2.6 Pengiriman password p dalam keluaran fungsi hash ...12
Gambar 2.7 Verifikasi password yang dikirim dalam bentuk digest ...13
Gambar 2.8 Replay attack pada pengiriman password dalam bentuk plainteks …..14
Gambar 2.9 Verifikasi password dengan satu kali hash ...15
Gambar 2.10 Verifikasi password dengan 2 kali hash ...16
Gambar 2.11 Two Way Challenge Response Protokol ……….21
Gambar 2.12 Three Way Challenge Response I Protokol ………21
Gambar 2.13 Reflection Attack ……….………22
Gambar 2.14 One Way Function ………..……22
Gambar 2.15 Autentikasi dengan Trusted Party ...23
Gambar 2.16 Autentikasi dengan Challenge Response Protokol ...24
Gambar 2.17 Algoritma-algoritma hash ...25
Gambar 2.18 Hash function dengan MD5 ...26
Gambar 2.19 Fungsi hash dari suatu teks ...27
Gambar 2.20 Ilustrasi fungsi one way ...28
Gambar 2.21 Proses setiap putaran pengolahan pesan dalam bok 512 bit ...32
Gambar 2.22 Operasi dasar proses pengolahan pesan dalam blok 512 bit ...33
Gambar 2.23 Empat tahapan MD5 ...35
Gambar 3.1 Use Case Diagram ...44
Gambar 3.2 Entitas account_client ...45
Gambar 3.3 Diagram Konteks ...47
Gambar 3.4 Konfigurasi Star ...48
Gambar 3.5 Diagram Berjenjang Sistem Autentikasi Client ...48
Gambar 3.6 Diagram Alir Data Level 1 ...49
Gambar 3.7 Diagram alir algoritma MD5 secara umum ...52
Gambar 3.8 Rancangan Form Login ...53
Gambar 3.9 Rancangan Form Response Client ...54
Gambar 3.10 Rancangan Form Hashing Client ...55
Gambar 4.1 Diagram alir sistem autentikasi ...57
Gambar 4.2 Halaman utama web home.php ...58
Gambar 4.3 Halaman web login.php ...60
Gambar 4.4 Halaman Challenge Response CR.php ……….62
Gambar 4.5 Dialog box untuk client yang autentik ...63
Gambar 4.8 Halaman About about .php ………...65
Gambar 4.9 Kalkulator hash sisi client ...66
Gambar 4.10 Dialog box pesan error ...68
Gambar 5.1 Uji Coba ke-1 Avalanche Effect 1bit ...69
Gambar 5.2 Uji Coba ke-2 Avalanche Effect 1 bit ...70
Gambar 5.3 Uji Coba ke-3 Avalanche Effect 1 bit ...70
Gambar 5.4 Uji Coba ke-4 Avalanche Effect 1 bit ...71
Gambar 5.5 Uji Coba ke-5 Avalanche Effect 1 bit ...71
Gambar 5.6 Uji Coba ke-6 Avalanche Effect 1 bit ...72
DAFTAR TABEL
Table 2.1 Sistem autentikasi client server ………...…...19
Tabel 2.2 Fungsi-fungsi dasar MD5 ……….…....34
Tabel 3.1 Relational Model Client ………...…45
BAB 1
PENDAHULUAN
1.1 Latar Belakang Masalah
Keamanan atau sekuritas merupakan salah satu hal yang harus diperhatikan dalam setiap permasalahan yang ada, salah satu nya dalam sistem jaringan komputer. Semakin banyak komputer yang saling berhubungan dalam suatu jaringan dan semakin banyaknya user yang memakai komputer, maka keamanan suatu data maupun informasi akan menjadi sangat rentan terhadap ancaman-ancaman (attack) dari pihak-pihak yang tidak berwenang (pihak ke-3). Salah satu masalah yang sering di jumpai dalam sistem kemanan komputer yaitu bagaimana komputer (server) mengetahui bahwa seseorang (client) yang masuk di dalam koneksi jaringan adalah orang yang benar-benar kita harapkan. Dengan arti lain, hal ini merupakan proses autentikasi, dimana setiap kali client mengidentifikasikan dirinya dengan komputer server, maka server akan memastikan ke- autentikasi-an dari data client tersebut.
dalam Challenge-Response yaitu berupa protokol “ two way challenge-response” dan ” three way challeng- response”.
Proses autentikasi dalam tugas akhir ini yaitu berupa password atau PIN (Personal Identification Number). PIN ini akan disimpan oleh setiap orang dan hanya orang yang mempunyai kartu yang mengetahuinya. PIN tersebut merupakan kunci private yang akan disambung dengan bilangan random yang menjadi tantangan (Challenge) dari server untuk menghasilkan kode hash sebagai response server. Dalam tugas akhir ini akan menghindari pengiriman password terenkrip (encrypted password) melalui web, sehingga akan menghindarkan dari berbagai macam serangan atau penyusup yang mencoba mencari tahu password.
1.2 Rumusan Masalah
Dari latar belakang masalah di atas maka masalah yang akan dibahas dalam laporan pra TA ini adalah
Bagaimana mempelajari atau meneliti keamanan transaksi dengan cara autentikasi yang berbasiskan protokol challenge-response. Hal tersebut dapat dilakukan dengan cara :
a. Bagaimana client mendapatkan nilai hash akhir dari perpaduan antara bilangan random yang diberikan oleh server dengan password yang dimilikinya yang nantinya akan menjadi response terhadap server.
b. Bagaimana server dapat membangkitkan bilangan random desimal yang akhirnya akan dijadikan sebagai challengeclient.
c. Bagaimana server dapat mengetahui bahwa client yang masuk sesuai yang diinginkan (intended client), yaitu dengan membandingkan kode hash yang dihitung server dengan kode hash yang dimasukkan client tersebut. d. Melakukan tahapan cryptanalysis untuk menguji tingkat kemanan
1.3 Batasan Masalah
Ruang lingkup penulisan laporan pra TA ini yaitu membahas tentang sistem autentikasi yang berbasiskan web. Adapun batasan-batasan yang dilakukan yaitu antara lain :
a. Aplikasi kalkulator sederhana yang digunakan oleh komputer client untuk mengolah bilangan random dan password dengan menggunakan bahasa pemrograman Java. Hasil akhir dari perhitungan dengan menggunakan aplikasi ini yaitu berupa bilangan heksadesimal 32 digit (4 blok x 8 bilangan heksadesimal), tetapi yang akan digunakan sebagai response hanya 1 blok.
b. Interface berupa web untuk menghubungkan antara client dengan server dengan menggunakan bahasa pemrograman PHP.
c. Algoritma untuk melakukan proses autentikasi dengan menggunakan algoritma hash yaitu MD5.
d. Protokol yang digunakan untuk transfer challenge-response yaitu dengan menggunakan protokol “Two Way Challenge-Response” yang telah dimodifikasi menjadi “One Way Challenge-Response” karena hanya 1 pihak saya yang akan di-autentikasi yaitu pihak client.
e. Tidak membahas detail transaksi setelah proses autentikasi berhasil.
f. Tidak menangani client untuk proses ganti password. Dalam hal ini password client di set saat pertama kali client mendaftarkan dirinya sebagai account.
1.4 Tujuan
Adapun tujuan yang hendak dicapai melalui penulisan laporan pra TA ini yaitu :
1.5 Manfaat
Manfaat yang akan diperoleh dari tugas akhir ini adalah :
Keamanan transaksi dengan cara autentikasi yang berbasiskan protokol Challenge-Response. Dalam transaksi ini akan menghindari adanya transfer password (PIN) secara langsung dalam transaksi berdasarkan web yang kemungkinan dapat diubah atau diserang oleh penyusup.
1.6 Metode Penelitian
Metode penelitian yang dilakukan yaitu dengan melakukan studi kasus dengan langkah-langkah sebagai berikut:
a. Melakukan studi kepustakaan untuk mencari dan mempelajari metode-metode hashing yaitu dengan metode-metode MD5 One Way Hash Function, dan pembangkitan bilangan random dengan menggunakan salah satu fungsi yang terdapat pada PHP. Mencari bahan dari berbagai sumber untuk mencari bahan kajian yang sesuai dengan sistem yang dibuat. Bahan kajian yang digunakan dapat berasal dari buku artikel, internet.
b. Implementasi dan uji coba sistem
Dengan cara menerapkan hasil rancangan ke dalam sebuah program (kode) yang dapat dimengerti oleh mesin sehingga akan menghasilkan sebuah program yang bisa digunakan untuk proses autentikasi pada unit server dan dapat melakukan perhitungan challenge pada unit client.
c. Cryptanalysis (analisa kriptografi)
1.7 Sistimatika Penulisan
Sistimatika penulisan laporan pra TA ini yaitu terdiri dari lima (6) bab: BAB 1 PENDAHULUAN
Dalam bab ini diungkapkan mengenai latar belakang masalah, batasan masalah, tujuan penelitian, rumusan masalah, manfaat penelitian, metode penelitian dan sistematika penulisan.
BAB 2 LANDASAN TEORI
Dasar teori ini menjelaskan tentang teori-teori yang bersangkutan dan yang mendukung yang diperlukan sesuai masalah yang terjadi.
BAB 3 ANALISA DAN PERANCANGAN SISTEM
Perancangan sistem ini menjelaskan tentang rancangan dari setiap sistem secara mendetail, meliputi perancangan input output, perancangan proses dan juga perancangan interface yang digunakan.
BAB 4 IMPLEMENTASI
Pada bagian ini akan membahas tentang implementasi program yang digunakan untuk proses autentikasiclient.
BAB 5 ANALISA HASIL
Pada bagian ini akan menganalisa hasil yang telah didapatkan selama proses implementasi program, dimana dalam bagian ini meliputi tentang analisa hasil perangkat lunak, dan juga analisa hasil perangkat keras.
BAB 6 KESIMPULAN DAN SARAN
BAB 2
LANDASAN TEORI
2.1 Pengantar Kriptografi
Kriptografi berasal dari bahasa Yunani, crypto dan graphia. Crypto
berarti secret (rahasia), dan graphia berarti writing (tulisan). Sehingga
kriptografi berarti ilmu dan seni untuk menjaga keamanan pesan ketika pesan
dikirim dari suatu tempat ke tempat lain (Ariyus, 2008).
Kriptografi yaitu pengamanan data atau informasi dengan
menggunakan kode rahasia (secret code). Atau dapat diartikan metode untuk
meng-enkripsi (menyembunyikan) dan men-dekripsi (memunculkan) data
atau informasi dengan bantuan kunci.
2.1.1 Komponen Kriptografi
Beberapa komponen dalam kriptografi yaitu :
1. Ciphertext : merupakan suatu pesan yang telah melalui proses
enkripsi atau hasil keluaran dari proses hash kriptografi. Pesan
yang ada pada teks kode ini tidak bisa dibaca karena berupa
karakter-karakter yang tidak mempunyai makna (arti).
2. Plaintext : sering disebut juga dengan cleartext. Teks asli ini
merupakan pesan yang ditulis atau diketik yang memiliki makna.
Teks asli inilah yang diproses menggunakan algoritma kriptografi
untuk menjadi ciphertext.
3. Enkripsi : merupakan pengamanan data yang dikirimkan agar
terjaga kerahasiaannya. Pesan asli disebut dengan plaintext, yang
diubah menjadi kode-kode yang tidak dimengerti. Enkripsi bisa
diartikan sebagai kode atau cipher. Enkripsi merupakan suatu
4. Dekripsi : merupakan kebalikan dari enkripsi. Pesan yang telah
dienkripsi akan dikembalikan ke bentuk aslinya, sehingga dekripsi
merupakan pemunculan pesan. Algoritma untuk dekripsi berbeda
dengan algoritma untuk enkripsi.
5. Kunci : kunci disini digunakan untuk proses enkripsi dan dekripsi.
Ada 2 bagian kunci, yaitu kunci rahasia (private key) dan kunci
umum (public key).
6. Cryptanalysis : bisa diartikan sebagai analisis kode atau suatu ilmu
untuk mendapatkan teks asli tanpa harus mengetahui kunci yang
sah secara wajar.
7. Cryptanalysts : orang yang ahli dalam bidang analisis kriptografi
atau orang yang melakukan cryptanalysis.
8. Cryptographic sistem atau cryptosistem : suatu fasilitas untuk
mengkonversi plainteks ke cipherteks dan sebaliknya.
Proses perubahan pesan atau data dapat digambarkan sebagai berikut :
Gambar 2.1 Diagram proses enkripsi dan dekripsi
2.1.2 Algoritma Kriptografi
Secara umum terdapat 3 macam algoritma dalam kriptografi
a. Algoritma Simetrik
Dalam algoritma symetric ini,kunci untuk proses enkripsi dan
dekripsi pada dasarnya sama, sehingga kunci ini sering disebut
dengan secret key (kunci private) dan harus dirahasiakan.
Contoh algoritma yang menggunakan kunci symetris ini seperti
DES, Blowfish, IDEA, twofish, MARS, 3DES, AES.
Gambar 2.2kunci simetris
b. Algoritma Asimetrik
Dalam algoritma Asymetric ini dibutuhkan 2 macam kunci , 1
kunci yang dapat dipublikasikan (Public key) dan 1 kunci yang
tidak dapat dipublikasikan atau harus dirahasiakan (secret key).
Contoh algoritma yang menggunakan kunci asymetris yaitu seperti
Knapsack, RSA (Rivert-Shamir-Adelman), Diffie-Hellman.
Gambar 2.3kunci asimetris
c. Fungsi Hash
Fungsi Hash berhubungan dengan keamanan data. Fungsi Hash
juga dapat digunakan untuk proses autentikasi dan integritas data.
panjang yang tak hingga menjadi string output dengan panjang
tetap yang disebut nilai hash.
Prinsip utama dari fungsi Hash yaitu tidak akan mungkin bisa
membuat pesan (message) M’ yang berhubungan dengan kode
Hash h(M’), sama dengan message M:h(M’)≠h(M). Kode Hash
direpresentasikan dengan n bits, sehingga terdapat kemungkinan
2n -1 kode Hash.
Gambar 2.4fungsi hash
2.1.3 Tujuan Kriptografi
Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga
merupakan aspek keamanan informasi yaitu :
a. Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi
dari informasi dari siapapun kecuali yang memiliki otoritas atau
kunci rahasia untuk membuka/mengupas informasi yang telah
disandi (informasi dengan aman).
b. Integritas data, adalah berhubungan dengan penjagaan dari
perubahan data secara tidak sah. Untuk menjaga integritas data,
sistem harus memiliki kemampuan untuk mendeteksi manipulasi
data oleh pihak-pihak yang tidak berhak, antara lain penyisipan,
penghapusan, dan pensubsitusian data lain kedalam data yang
sebenarnya (informasi tidak dirusak).
c. Autentikasi, adalah berhubungan dengan identifikasi/pengenalan,
baik secara kesatuan sistem maupun informasi itu sendiri. Dua
diri. Informasi yang dikirimkan melalui kanal harus di-autentikasi
keaslian, isi datanya, waktu pengiriman, dan lain-lain (informasi
hanya dapat diakses oleh yang berhak).
d. Non-repudiasi.adalah usaha untuk mencegah terjadinya
penyangkalan terhadap pengiriman/terciptanya suatu informasi
oleh yang mengirimkan/membuat (informasi yang sekali kirim).
2.2 Jenis Serangan Terhadap Keamanan Data
Dibawah ini dijelaskan beberapa macam penyerangan terhadap pesan
yang sudah dienkripsi :
1. Ciphertext – Only – Attack
Penyerang hanya mendapatkan pesan yang sudah tersandikan saja.
Cryptanalysts hanya mempunyai pesan teks-kode dan semuanya dienkrip
dengan algoritma yang sama. Kriptanalis tidak mempunyai kunci dan teks
aslinya, sedangkan pekerjaan kriptanalisis yaitu mendapatkan teks asli
atau mencari kuncinya terlebih dahulu.
2. Known - Plaintext – Attack
Penyerang selain mendapatkan sandi, juga mendapatkan pesan asli
Kemungkinan dalam Cryptanalysis akan mendapatkan beberapa teks asli
dan teks kodenya. Contoh dalam sebuah dokumen terdapat kata ” salam”
dan Cryptanalysis juga mendapatkan kode dari dokumen tersebut.
Cryptanalysts akan mencoba mencari kunci sehingga dia dapat
menemukan teks asli apabila berhasil mendapatkan teks kode yang lain
dengan menggunakan algoritma yang sama.
3. Chosen – Plaintext – Attack
Sama dengan known plaintext attack, namun penyerang bahkan
dapat memilih penggalan mana dari pesan asli yang akan disandikan.
dan mencoba teks asli yang mungkin dapat digunakan untuk memecahkan
kode.
Berdasarkan bagaimana cara dan posisi seseorang mendapatkan
pesan-pesan dalam saluran komunikasi, penyerangan dapat dikategorikan
menjadi:
1. Sniffing : Secara harafiah Sniffing berarti mengendus, dalam hal ini yang diendus adalah pesan (baik yang belum ataupun sudah
dienkripsi) dalam suatu saluran komunikasi. Hal ini umum terjadi pada
saluran publik yang tidak aman. Sang pengendus dapat merekam
pembicaraan yang terjadi.
2. Replay attack : Jika seseorang bisa merekam pesan-pesan handshake
(persiapan komunikasi), ia mungkin dapat mengulang pesan-pesan
yang telah direkamnya untuk menipu salah satu pihak.
3. Spoofing : Penyerang – misalnya Maman – bisa menyamar menjadi Anto. Semua orang dibuat percaya bahwa Maman adalah Anto.
Penyerang berusaha meyakinkan pihak-pihak lain bahwa tak ada salah
dengan komunikasi yang dilakukan, padahal komunikasi itu dilakukan
dengan sang penipu/penyerang. Contohnya jika orang memasukkan
PIN ke dalam mesin ATM palsu – yang benar-benar dibuat seperti
ATM asli – tentu sang penipu bisa mendapatkan PIN-nya dan copy
pita magnetik kartu ATM milik sang nasabah. Pihak bank tidak tahu
bahwa telah terjadi kejahatan.
4. Man-in-the-middle : Jika spoofing terkadang hanya menipu satu pihak, maka dalam skenario ini, saat Anto hendak berkomunikasi
dengan Badu, Maman di mata Anto seolah-olah adalah Badu, dan
Maman dapat pula menipu Badu sehingga Maman seolah-olah adalah
Anto. Maman dapat berkuasa penuh atas jalur komunikas ini, dan bisa
2.2.1 Pengiriman Password Dan Permasalahannya
a. Pengiriman password dalam bentuk plainteks
Pada mekanisme autentikasi dengan password sebagai alat
identitas, maka untuk proses autentikasinya client mengirimkan
password ke sistem dalam bentuk plainteks. Berikut gambar yang
menunjukkan pengiriman password dalam bentuk plainteks.
Gambar 2.5 Pengiriman password p dalam bentuk plainteks
Pengiriman password tersebut masih rentan terhadap serangan,
karena password dikirimkan dalam bentuk plainteks, sehingga
panyadap dapat mengetahui password Alice.
b. Pengiriman password setelah melewati fungsi hash
Untuk mengatasi serangan password dalam bentuk plainteks,
maka dikembangkan metode pengiriman password dengan
memanfaatkan fungsi hash dalam kriptografi, dimana keluaran
dari fungsi hash ini berupa message digest atau digital fingerprint
atau signature. Berikut ini gambar proses pengiriman password
dalam bentuk keluaran fungsi hash.
Metode dengan hash tersebut juga masih rentan terhadap
serangan karena Alice mengirimkan password dalam bentuk
digest, sedangkan Bob hanya menyimpan daftar password yang
valid, sehingga untuk melakukan proses autentikasi Bob harus
melakukan hashing dari password tersebut. Serangan yang ada
yaitu jika terdapat orang yang menyusup atau bertindak sebagai
Bob maka penyusup tersebut dapat mengakses semua daftar
password semua orang.
c. Pengiriman password melewati fungsi hash dan verifikasi password dalam bentuk digest
Oleh sebab itu,password perlu disimpan dalam bentuk
message digest bukan dalam bentuk aslinya. Metode ini akan
menghindarkan penyusup mendapatkan password asli, tetapi hanya
akan mendapatkan message digest dari password tersebut. Berikut
ini gambar metode penyimpanan password dengan menggunakan
message digest.
Namun dalam metode ini, serangan masih dapat menyusup.
Serangan ini disebut dengan replay attack. Replay attack
merupakan bentuk serangan dalam jaringan komputer dimana
pengiriman data yang valid disadap oleh pihak yang tidak
berwenang, kemudian data tersebut dikirim ulang atau ditunda
pengirimannya. Berikut ini ilustrasi serangan replay attack.
Gambar 2.8 Replay attack pada pengiriman password dalam bentuk plainteks
Walaupun Eve hanya mendapatkan message digest dari Alie,
ia dapat bertindak sebagai Alice dengan cara mengirimkan kembali
message digest tersebut kepada Bob.
d. Pengiriman password dengan satu kali hash
Untuk menanggulangi serangan replay attack tersebut dengan
menggunakan nonce (number used once). Nonce ini berupa
bilangan acak atau random sebagai challenge dari pihak yang akan
melakukan proses autentikasi. Karena sifat fungsi hash
kriptografis yang keluarannya akan berubah drastis begitu
masukannya berubah, maka setiap challenge yang berbeda akan
menghasilkan keluaran yang berbeda pula ketika disambung
akan mendapatkan digest yang khusus untuk sebuah challenge
tersebut, dan tidak untuk challenge yang lain.
Kelemahan dari pengiriman password satu kali hash ini yaitu
Bob harus menyimpan daftar password dalam bentuk plainteks
atau asli.
Gambar 2.9 Verifikasi password dengan satu kali hash
e. Pengiriman password dengan dua kali hash
Berikut ini perbaikan dari pengiriman password satu kali
hash. Disini akan dilakukan dua kali hash, yaitu hashing password,
serta hashing antara password yang telah di hash dengan
Gambar 2.10 Verifikasi password dengan 2 kali hash
Dalam metode ini Bob menyimpan password dalam bentuk
messsage digest sehingga akan mengurangi replay attack.
Proses sisi Alice :
a. Alice menerima challenge dari Bob.
b. Password Alice dalam bentuk plainteks diproses dengan
menggunakan fungsi hash H, sehingga diperoleh H(p).
c. Hasil keluaran fungsi hash tersebut disambung atau
dikonkatenasi dengan challenge dari Bob sehingga diperoleh
H(p) + n.
d. Hasil penyambungan tersebut diproses dengan menggunakan
fungsi hash sehingga diperoleh H(H(p) + n).
Proses sisi Bob :
a. Bob melakukan pencarian pada daftar password yang
tersimpan dalam bentuk digest, kemudian diperoleh H(p).
b. Digest dari password ini kemudian disambung dengan
challenge yang sudah dikirim kepada Alice, sehingga diperoleh
H(p) + n.
c. Hasil konkatenasi tersebut diproses dengan menggunakan
fungsi hash sehingga diperoleh H(H(p) + n).
d. Bob membandingkan hasil perhitungannya dengan H(H(p) + n)
dari Alice. Jika keduanya sama, berarti Alice merupakan orang
yang autentik.
2.3 Autentikasi
Autentikasi berhubungan dengan pengenalan identitas seseorang,
menyangkut kewenangan atau hak akses yang dimiliki, dan menyatakan
keotentikan dari orang tersebut. Faktor autentikasi merupakan suatu informasi
untuk memverifikasi identitas seseorang untuk keamanan.
Faktor-faktor autentikasi yaitu meliputi :
1. Sesuatu yang diketahui pengguna
Misal : password, passphrase dan PIN (Personal Identification Number).
2. Sesuatu yang dimiliki pengguna
Misal : ID cards, kartu kredit, telepon selular, perangkat token.
3. Sesuatu yang ’ada’ pada pengguna
2.3.1 Sistem Autentikasi
Sistem autentikasi ini terdiri dari 2 entitas yaitu generator
(client) dan server. Client akan menerima Serial number,dan PIN yang
kemudian akan digunakan untuk menghasilkan kode hash. Sedangkan
server bertugas dalam proses pengiriman challenge yang berupa
bilangan random, menghitung nilai dari bilangan random tersebut, dan
melakukan autentikasi terhadap client.
Keamanan sistem One Way Hash Function yaitu fungsi hash
yang dihasilkan tidak bisa dibalikkan (non-invertability). Oleh sebab
itu, baik client maupun server harus menggunakan algoritma yang
sama untuk dapat beroperasi.
Berikut ini gambar yang menjelaskan tentang autentikasi dari
sisi client dan juga sisi server. Gambar ini juga menjelaskan tentang
sistem Challenge-Response yang akan menghasilkan nilai hash yang
Tabel 2.1 Sistem autentikasi client server
User Autentikasi
Server
Koneksi
Memasukkan nama login (serial
number)
Memberikan response yang sesuai
dengan challenge dari server
Minta nama login user (serial number)
Mencari user pada basis data dan
kirimkan challenge untuk user
tersebut berupa bilangan random.
Periksa responseuser,
Beri jawaban ke client (yes/no)
berdasarkan benar/tidaknya response
yang diberikan
Pertama kali user melakukan ”koneksi”, yaitu dengan proses
login. Setelah user memasukkan nama login user, maka server akan
mencari user pada basis data, dan mengirimkan challenge 6 digit.
Setelah pengiriman challenge, maka server akan meminta response
user atas challenge yang dikirimkan. User menghitung challenge
tersebut dan mengirimkan hasilnya. Dengan arti lain user
mengirimkan response dan server juga menghitung nilai hash atas
bilangan random tersebut. Setelah di dapat response user, maka
autentikasi pihak server yaitu memeriksa response user dan
memberikan jawaban kepada client tentang benar/tidaknya response
yang dikirimkan. Setelah proses pemeriksaan, maka terdapat evaluasi
tentang akses/tidaknya user yang berdasarkan pada autentikasiserver.
2.3.2 Protokol Challenge-Response
Terdapat beberapa protokol dalam Challenge-Response, yaitu
seperti Two Way Challenge-Response, Three Way
Challenge-Response I, Three Way Challenge-Response II.
Dalam protokol Two WayChallenge-Response, misal entity A
memverifikasi ke-autentikasian entity B. A mengirimkan bilangan
random RA (challenge) kepada B. B kemudian akan mengolah nilai
RA menjadi oK(RA) (response) dengan menggunakan fungsi
symmetrical one way dan kunci rahasia K. pada saat bersamaan, A
juga mengolah challenge tersebut dengan menggunakan algoritma dan
kunci yang sama. Dalam hal ini A merupakan pusat computer (server)
yang menyimpan semua kunci client dimana A ini dapat diakses oleh
semua client yang ter-autorisasi..Berikut gambar yang menunjukkan
Gambar 2.11 Two Way Challenge-Response Protokol
Pada gambar di atas A hanya memverifikasi ke-autentikasi-an
B, dan tidak sebaliknya. Dalam Protokol Three Way
Challenge-Response A akan memverifikasi ke-autentikasi-an B begitu juga
sebaliknya B juga akan memverifikasi ke-autentikasi-an A. Berikut
gambar yang menunjukkan proses tersebut
Gambar 2.12 Three Way Challenge-Response I Protokol
Pada gambar di atas, A dapat memastikan autentikasi B dari
hasil oK(RA). B tidak hanya mengembalikan hasil oK(RA) saja tetapi
B juga mampu memverifikasi autentikasi A dengan nilai oK(RB) yang
dikembalikan oleh A.
Kelemahan dari panyusunan protokol seperti diatas yaitu pada
Gambar 2.13 Reflection Attack
Jika seorang pengganggu C datang dengan men-generate 2
session secara parallel, maka ia (C) dapat menyesatkan A dan ia akan
meyakinkan A bahwa A sedang berkomunikasi dengan B, tetapi
kenyataannya A sedang berkomunikasi dengan C. Jika A mengirimkan
challenge RA, maka C akan menerima challenge tersebut. Kemudian
C akan mengembalikan nilai RA tersebut ke A sama seperti yang
dikirim oleh B. A mentrasfer oK(RA) dan challenge baru RA’. C
merepon dengan nilai oK(RA) yang sama. Hal ini akan membuktikan
A bahwa A tidak sedang berkomunikasi dengan B. Dalam hal ini
entity autentikasi tidak dapat dijamin. Masalah ini dapat diatasi
dengan mengirimkan alamat dari A dan B.
Gambar berikut ini menunjukkan hasil dari One Way Function
yang tergantung pada alamat yang relevant dan sistem yang aman
Dalam semua contoh di atas, di asumsikan bahwa sebelum
proses autentikasi di inisialisasikan, A dan B telah mempunyai kunci
rahasia K. Pada gambar di bawah ini A dan B tidak mempunyai akses
terhadap kunci rahasia untuk proses autentikasi. Dalam kasus ini
terdapat pihak ke-3 yang disebut dengan trusted party TP, dimana ia
dapat berkomunikasi dengan A dan B dengan menggunakan 2 kunci
rahasia K1 dan K2.
Gambar 2.15 Autentikasi dengan Trusted Party
2.3.3 Autentikasi Dengan Protokol Challenge-Response
Proses autentikasi dengan Challenge-Response protokol ini
akan melibatkan 2 entitas atau pihak, dimana salah satu pihak sebagai
penyedia pertanyaan (challenge) dan pihak yang lain sebagai
penjawab pertanyaan (response). Contoh sederhana dalam
Challenge-Response yaitu password autentikasi. Ketika seorang client
menginginkan hak akses terhadap sistem, maka sistem akan
mengirimkan challenge kepada client dan kemudian client
membandingkan kode tersebut dengan kode yang diolah oleh server.
Jika hasil pembandingan tersebut sama, maka client bisa mendapatkan
hak akses yang diinginkan dan sistem akan memberikan hak akses
tersebut kepada client.
Contoh Challenge-Response autentikasi dengan password
yaitu terdapat pada penggunaan PIN sebelum mendapatkan hak akses
pada sistem transaksi keuangan web based. Seorang client yang akan
melakukan koneksi terhadap suatu sistem, maka client harus
memasukkan serial number sebelum sistem tersebut memberikan hak
akses terhadap client tersebut. Proses Challenge-Response yang terjadi
disini yaitu client menghubungi server, kemudian server akan
membentuk challenge. Client memberi respon atas challenge tersebut
dengan menggunakan password yang dimilikinya
Pemilihan konsep Challenge-Response diatas didasarkan pada
efisiensi penggunaan kunci. Pada Challenge-Response pihak client
hanya akan menyimpan 1 kunci yaitu kunci untuk password.
Gambar di bawah ini menunjukkan proses autentikasi dengan
menggunakan Challenge-Response protokol, dimana yang menjadi
challenge yaitu berupa bilangan random.
2.4 Algoritma Hash Function
Fungsi hash Kriptografi adalah fungsi hash yang memiliki beberapa
sifat keamanan sehingga dapat dipakai untuk tujuan keamanan data.
Umumnya digunakan untuk keperluan autentikasi dan integritas data. Fungsi
Hash dapat didefinisikan dan di implementasikan dengan menggunakan
pseudo random number generator (PRNG). Berikut ini beberapa algoritma
hash :
Gambar 2.17 Algoritma-algoritma hash
2.4.1 Sifat-Sifat Fungsi Hash Kriptografi
Berikut ini merupakan sifat-sifat yang dimiliki oleh fungsi
hash sekaligus merupakan kekuatan :
1. Tahan preimej (Preimage resistant) : bila diketahui nilai hash h
maka sulit (secara komputasi tidak layak) untuk mendapatkan m
2. Tahan preimej kedua (Second preimage resistant) : bila diketahui
input m1 maka sulit mencari input m2 (tidak sama dengan m1) yang
menyebabkan hash(m1) = hash(m2).
3. Tahan tumbukan (Collision-resistant) : sulit mencari dua input
berbeda m1 dan m2 yang menyebabkan hash(m1) = hash(m2)
2.4.2 Fungsi Hash Satu Arah (One Way Hash)
Fungsi hash merupakan suatu fungsi yang secara efisien
mengubah string input M dengan panjang berhingga menjadi string
output dengan panjang tetap yang disebut nilai hash h. Sedangkan
fungsi satu arah (One Way Function) adalah fungsi yang relatif
mudah untuk dihitung tetapi sulit untuk menghitung kebalikannya
(reverse). Jadi fungsi hash satu arah (One Way Hash Function) adalah
fungsi hash yang merupakan fungsi satu arah, artinya mudah untuk
menghitung nilai hash dari input string yang diberikan, tetapi sulit
untuk menghasilkan string yang nilai hashnya sudah diketahui. Salah
satu contoh dari fungsi hash yang digunakan adalah One Way Hash
Function dengan MD5.
Gambar 2.18Hash function dengan MD5
Fungsi One Way Hash Function ini prinsipnya sama dengan
fungsi Trapdoor Function. Prinsip dari fungsi Trapdoor Function
sangat sulit untuk bisa keluar dari sistem tersebut. Simulasi yang
sesuai dengan fungsi ini yaitu suatu ikan yang dengan mudah masuk
ke dalam suatu keramba, tetapi ikan tersebut akan sangat kesulitan
untuk keluar dari keramba tersebut.
Fungsi Hash bersifat collision free, artinya bahwa tidak akan
mungkin menemukan 2 message berbeda dengan menggunakan kode
Hash yang sama. Untuk menemukan collisions dalam fungsi hash
akan mengalami kesulitan. dimana nilai hash dari sebuah message
dapat digambarkan sebagai berikut :
Gambar 2.19 Fungsi hash dari suatu teks
Terdapat banyak fungsi yang memasukkan input berhingga dan
mengembalikan output dengan nilai tetap, tetapi terdapat beberapa
karakteristik yang dimiliki oleh fungsi One Way Hash Function, yaitu
1. Jika diberikan M, maka akan mudah untuk menghitung nilai h.
2. Jika diberikan h, maka akan sulit untuk menghitung nlai M.
3. Jika diberikan M, maka akan sulit untuk menemukan message lain
M’ seperti H(M) = H(M’).
Gambar 2.20 Ilustrasi fungsi one way
Sulit disini tergantung dari situasi dan kebutuhan security,
tetapi kebanyakan implementasi menggunakan 264 operasinya, bahkan
bisa lebih. Kelebihan fungsi One Way Hash Function yaitu bahwa
mudah untuk menghitung nilai output, tetapi sulit untuk menghitung
atau mengetahui nilai inputnya. Selain itu tingkat sekuritasnya juga
sudah tinggi karena fungsi Hash ini menggunakan sepenuhnya
bilangan random.
2.4.3 Kegunaan One Way Hash Function
1. Challenge hash authentication, merupakan suatu cara sederhana
untuk melindungai password selama proses login.
2. One time password.
3. Mengolah atau mengenerate number id unik, seperti pada alamat
email.
4. Data integrity dan message authentication code.
5. Enkripsi password.
6. Untuk membuat pseudo symmetric, yaitu sebuah algoritma
2.4.4 Kelebihan dan kekurangan fungsi hash
Bila dibanding dengan fungsi enkripsi pada umumnya maka
kelebihan dan kekurangan dari fungsi hash ini yaitu :
1. Kelebihan:
a. Hasil dari fungsi hash panjangnya tetap, panjang masukan
tidak akan mempengaruhi panjang nilai hash.
b. Karena tidak merubah data asli, maka tidak diperlukan proses
dekripsi.
c. Perubahan sekecil apapun pada data asli akan membuat nilai
hash yang sangat jauh berbeda (avalanche effect), sehingga
cukup mudah untuk memeriksa keaslian.
2. Kekurangan
a. Memiliki kemungkinan untuk terjadi bentrokan. Hal ini dapat
dihindari untuk semua fungsi hash, namun ada beberapa fungsi
hash yang dibuat khusus untuk menghindari terjadinya
bentrokan.
b. Fungsi hash adalah fungsi satu arah, jadi jika kita hanya
mendapatkan sebuah nilai hash, kita tidak bisa mengembalikan
menjadi data yang asli. Hal ini dipersulit dengan kemungkinan
terjadinya bentrokan.
c. Tingkat keamanan suatu fungsi hash dinilai berdasarkan
jumlah kemungkinan nilai hash yaitu 2n, dengan n adalah
panjang nilai hash dalam bit. Jadi semakin panjang nilai hash
2.5 Message Digest 5 (MD5)
MD5 ini merupakan salah satu fungsi hash yang merupakan
kelanjutan dari MD4, dan dikembangkan oleh Profesor Ronald Rivest pada
tahun 1991. MD5 ini merupakan perbaikan dari MD4 karena MD4 dianggap
tidak aman lagi setelah adanya serangan yang dapat melemahkan algoritma
tersebut. MD5 menerima masukan pesan dengan ukuran sembarangan dan
mengkonversi pesan tersebut dengan algoritma hash menjadi message digest
berukuran 128 bit, yang merupakan rangkaian 32 digit karakter hexadesimal.
Dengan demikian MD5 bekerja pada satuan blok-blok masukan berukuran
512 bit yang diproses secara berulang.
Langkah pemrosesan pesan menjadi message digest menggunakan
algoritma MD5 ini yaitu :
1. Menambah bit-bit pengganjal
Menambahkan bit-bit pengganjal pada pesan masukan agar
memiliki panjang kelipatan 512 bit dikurang 64 bit.
Pesan ditambah dengan sejumlah bit pengganjal sedemikian
sehingga panjang pesan kongruen dengan 448 bit modulo 512, artinya
panjang pesan setelah ditambahi bit-bit pengganjal adalah 64 bit kurang
dari kelipatan 512, seperti yang sudah disebutkan sebelumnya. Hal ini
berlaku juga untuk pesan dengan panjang 448 bit, dimana pesan tersebut
harus ditambahi bit-bit pengganjal sebanyak 512 bit menjadi 960 bit.Dari
peristiwa khusus tersebut, dapat dilihat bahwa panjang bit-bit pengganjal
yang diperbolehkan adalah 1 sampai 512 bit. Penambahan bit-bit
pengganjal tersebut dilakukan dengan prosedur tersendiri, yaitu diawali
dengan satu buah bit 1 pada akhir pesan dan selanjutnya menambahkan
2. Penambahan panjang pesan
Mengisi sisa ruang 64 bit tersebut dengan informasi panjang pesan
semula. Pesan yang sudah diberi bit-bit pengganjal, seharusnya berukuran
64 bit kurang dari kelipatan 512, selanjutnya ditambah dengan 64 bit yang
menyatakan informasi panjang pesan semula sehingga panjang pesan
menjadi tepat kelipatan 512 bit. Jika panjang pesan lebih besar dari 264
maka dilakukan proses modulo 264 terhadap panjang tersebut, baru
kemudian ditambahkan pada pesan. Dengan kata lain, jika panjang pesan
semula adalah n bit maka 64 bit yang ditambahkan menyatakan n modulo
264
3. Inisialisasi penyangga MD5
Menginisialisasi penyangga untuk memroses pesan. Untuk
melakukan proses hashing, MD5 membutuhkan empat buah penyangga
(buffer) yang masing-masing panjangnya 32 bit sehingga totalnya 128 bit.
Penyangga-penyangga tersebut berfungsi sebagai penampung hasil antara
dan hasil akhir selama menjalankan algoritma hash. Keempat penyangga
ini diberi nama A, B, C, dan D. Setiap penyangga diinisialisasi dengan
pengisian nilai-nilai dalam notasi heksadesimal sebagai berikut:
A = 01234567
B = 89ABCDEF
C = FEDCBA98
D = 76543210
4. Pengolahan Pesan dalam Blok Berukuran 512 bit
Setiap blok berukuran 512 bit diproses bersama dengan penyangga
MD menjadi keluaran 128 bit. Proses ini terdiri dari 4 buah putaran dan
masing-masing putaran melakukan operasi dasar MD5 sebanyak 16 kali.
ditampilkan nanti. Jadi setiap putaran memakai 16 elemen tabel T, dan
jumlah total putaran proses yang dilakukan adalah 64 buah. Proses
tersebut diperlihatkan dalam gambar
])
Gambar 2.21 Proses setiap putaran pengolahan pesan dalam blok 512 bit
Proses HMD5 terdiri dari 4 buah putaran, dan masing-masing
putaran melakukan operasi dasar MD5 sebanyak 16 kali dan setiap operasi
dasar memakai sebuah elemen T. Jadi setiap putaran memakai 16 elemen
Tabel T.Pada Gambar 4, Yq menyatakan blok 512-bit ke-q dari pesan yang
telah ditambah bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan
fungsi fF, fG, fH, dan fI masing-masing berisi 16 kali operasi dasar terhadap
masukan, setiap operasi dasar menggunakan elemen Tabel T. Operasi
dasar MD5 diperlihatkan pada Gambar
a b c d
Gambar 2.22 Operasi dasar proses pengolahan pesan dalam blok 512 bit
Operasi dasar MD5 yang diperlihatkan pada Gambar diatas dapat
ditulis dengan sebuah persamaan sebagai berikut:
a←b + CLSs(a + g(b, c, d) + X[k] + T[i])
yang dalam hal ini,
Fungsi fF, fG, fH, dan fI adalah fungsi untuk memanipulasi masukan a, b, c, dan d dengan ukuran 32-bit. Masing-masing fungsi dapat dilihat pada Tabel 2.2.
Tabel 2.2 Fungsi-fungsi dasar MD5
Nama Notasi g(a, b, c, d)
fF F(b, c, d) (b ∧ c) ∨ (~b ∧ d)
fG G(b, c, d) (b ∧ d) ∨ (c ∧ ~d)
fH H(b, c, d) b ⊕ c ⊕ d
fI I(b, c, d) c ⊕ (b ∧ ~ d)
Catatan: operator logika AND, OR, NOT, XOR masing-masing dilambangkan dengan ∧, ∨, ~, ⊕
Dari persamaan operasi dasar MD5 dapat dilihat bahwa
masing-masing fungsi fF, fG, fH, dan fI melakukan 16 kali operasi dasar.
Bila Mj menyatakan pesan sub-blok ke-j (l bernilai mulai 0 sampai dengan
15), dan <<<s menyatakan pergeseran ke kiri sebanyak s bit, 4 operasi
yang dijalankan yaitu :
ff(a,b,c,d,Mj,s,ti) menyatakan a = b + ((a + f(b,c,d) + Mj + ti) <<<s)
gg(a,b,c,d,Mj,s,ti) menyatakan a = b + ((a + g(b,c,d) + Mj + ti) <<<s)
hh(a,b,c,d,Mj,s,ti) menyatakan a = b + ((a + h(b,c,d) + Mj + ti) <<<s)
Gambar 2.23 Empat tahapan MD5
Berikut ini proses dari 4 round yang di hasilkan :
Round 1 :
ff(a, b, c, d, M0, 7, 0xd76aa478)
ff(d, a, b, c, M1, 12, 0xe8c7b756)
ff(c, d, a, b, M2, 17, 0x242070db)
ff(b, c, d, a, M3, 22, 0xc1bdceee)
ff(a, b, c, d, M4, 7, 0xf57c0faf)
ff(d, a, b, c, M5, 12,0x4787c62a)
ff(c, d, a, b, M6, 17, 0xa8304613)
ff(b, c, d, a, M7, 22, 0xfd469501)
ff(a, b, c, d, M8, 7, 0x698098d8)
ii(c, d, a, b, M2, 15, 0x2ad7d2bb)
ii(b, c, d, a, M9, 21, 0xeb86d391)
Konstanta ti diperoleh dari :
Pada langkah ke-i, ti adalah bagian integer dari 232 x abs(sin i) dimana i
dalam satuan radian.
Setelah semua pesan dimasukkan ke dalam MD5, keluaran akhir
merupakan gabungan dari a, b, c, dan d.
2.5.1 Kelemahan (Vulnerability) MD5
Algoritma kriptografis manapun sampai saat ini belum ada
yang benar-benar sempurna. Selalu ada kemungkinan serangan
berhasil yang ditujukan pada suatu algoritma. Hal ini juga berlaku
pada algoritma MD5. MD5 telah menjadi sorotan publik
kriptografi sejak pertama kali dipublikasikan. Pada tahun 2004,
hampir semua riset serangan terhadap MD5 hanya dapat
menunjukkan kelemahan – kelemahan kecil pada desain
algoritmanya. Meskipun ada 3 serangan yang dapat menunjukkan
adanya permasalahan serius pada desain. Tiga serangan tersebut
dengan properti L adalah panjang nilai hash, yaitu:
1. Serangan terhadap properti Collision Resistant, yaitu
Collision Attack, yang artinya usaha menemukan dua pesan
M1 dan M2 yang memiliki nilai hash yang sama dengan
percobaan sebanyak kurang dari 2L/2
2. Serangan terhadap properti satu arah, yaitu First Preimage
Attack, yang berarti usaha untuk menemukan pesan
masukan jika diketahui nilai hashnya dalam percobaan
3. Serangan kedua terhadap properti satu arah, yaitu Second
Preimage Attack, yang berarti usaha untuk menemukan
pesan masukan M2 jika diketahui pesan M1 yang memiliki
nilai hash yang sama dalam percobaan sejumlah kurang
dari 2L
2.5.2 Pemecahan Masalah Serangan Md5
Dihasilkannya suatu kolisi dalam algoritma MD5 dengan
sangat cepat seperti yang telah disebutkan sebelumnya adalah
masalah besar bagi administrator sistem. Untuk menangani
permasalahan tersebut yang dianggap cukup sulit untuk
dipecahkan, administrator harus memodifikasi algoritma MD5
yang digunakan dengan fungsi hash yang jauh lebih rumit, dengan
tingkat pemecahannya yang jauh lebih tinggi. Salah satu caranya
adalah dengan menambahkan beberapa bit (challenge) untuk
kemudian disambungkan dengan nilai hash pesan tersebut. Hal ini
digunakan sebagai penanda jumlah panjang karakter pesan asli
yang akan dihitung nilai hashnya. Dengan disambungnya
challenge dengan pesan asli (password) yang sudah di hash, maka
kemungkinan brute force menemukan pesan asli = 1032 (panjang
password yang sudah di hash) + 106 (panjang challenge). Dalam
Tugas Akhir ini juga terdapat pengamanan One Time Password,
dan kemungkinan terjadinya untuk menemukan pesan sama yaitu
2.5.3 Kelebihan dan Kekurangan MD5
Kelebihan algoritma MD5:
1. MD5 ada 4 pass pada setiap message yang berukuran 16
word (1 word = 32-bit).
2. Akan butuh mencoba menghash 2128 dokumen untuk
mendapatkan sebuah dokumen yang menghasilkan suatu
message digest tertentu.
3. Akan butuh mencoba menghash 264 dokumen untuk
mendapatkan 2 dokumen yang memiliki hash yang sama.
4. Keamanan terhadap kriptanalisis. Penggunaan bilangan
random sebagai challenge yang selalu berubah-ubah. Hal
ini dapat dilihat dari penggunaan bilangan random yang
sifatnya One Time Password (OTP), sehingga sekali login
client mengalami kegagalan maka sistem akan memberi
challenge baru terhadap client tersebut
5. Simplicity. Algoritma MD5 ini simple dan mudah untuk
diimplementasikan, karena tidak membutuhkan program
yang besar dan table substitusi yang besar pula.
Kekurangan algoritma MD5 :
1. Keamanan terhadap brute force. Dalam hal ini MD5
menghasilkan digest 32 bit lebih pendek dibandingkan
dengan fungsi hash lainnya.
2. Kecepatan. Algoritma ini menggunakan arsitektur 32 bit.
MD5 ini mempunyai 64 langkah dibandingkan dengan
algoritma-algoritma yang lain. Algoritma ini juga harus
2.6 Pembangkit Bilangan Random
Bilangan random atau random number merupakan sebuah bilangan
yang dihasilkan dari sebuah proses, yang keluarannya tidak dapat diprediksi
dan secara berurutan tidak bisa dihasilkan bilangan yang sama.
Secara umum, algoritma bilangan random yang baik yaitu bahwa
algoritma terserbut memiliki sifat statistik yang bagus dimana urutan
kemunculan tidak dapat diprediksikan, kecepatan pengoperasian beserta
dengan bit-bit yang dipergunakan.
Sedangkan tujuan dari pembangkitan bilangan random yaitu :
1. Pembangkitan Initialization Vector (IV) pada algoritma enkripsi cipher
block.
2. Pengambilan data sampel untuk kepentingan statistik dan permodelan.
3. Penentuan aksi yang akan dilakukan Non-Playing Character pada video
games.
4. Penggunaan pada kunci untuk enkripsi data, misalnya pada algoritma One
Time Pad.
2.6.1 Fungsi Pembangkitan Bilangan Acak Pada PHP
Fungsi yang digunakan untuk membangkitkan bilangan acak
dalam PHP adalah fungsi rand(). Fungsi ini akan menghasilkan return value berupa bilangan acak yang range/kisaran nilainya bisa
ditentukan sendiri.
Bentuk umum fungsi rand() :
rand(min, max)
Dimana min adalah nilai minimal dari angka acak yang ingin
dihasilkan dan max adalah nilai maksimalnya.
Fungsi rand() ini akan men-generate (membangkitkan) bilangan
bilangan acak dengan distribusi data uniform, artinya bahwa peluang munculnya setiap bilangan yaitu sama atau jika dilihat secara grafis
maka akan berupa garis horisontal. Peluang yang dihasilkan pada data
distribusi uniform yaitu antara 0 sampai dengan 1. Untuk data
challenge (6 digit yang merupakan penggabungan (concat) antara 2
bilangan) yang akan dihasilkan akan memiliki peluang :
Æ bilangan random 1 = rand(99,999)
Æ bilangan random 2 = rand(99,999)
Peluang yang dihasilkan yaitu :
P(random) = P(random1) + P(random2) + P(random1 U random2)
P(random) = 1/32 + 1/32 + 0
P(random) = 1/9 + 1/9
P(random) = 1/9 = 0,111
P(random1 U random2) = 0, karena dalam hal ini bilangan yang
dihasilkan tidak tergantung dengan bilangan yang lain (independent),
dan peluang bilangan random yang dihasilkan yaitu 0.111.
BAB 3
ANALISA DAN PERANCANGAN SISTEM
3.1 Analisa Sistem
Sistem keamanan pada transaksi on-line, misal e-banking biasanya
menggunakan nomor PIN sebagai password. Untuk mempermudah
pembahasan, untuk selanjutnya diambil contoh transaksi perbankan secara
on-line lewat Internet. Transaksi ini melibatkan client (nasabah bank) dan
bank (server autentikasi). Proses autentikasi transaksi keuangan tersebut
dengan menggunakan perhitungan sebagai berikut :
1. Client berkomunikasi dengan server autentikasi pada bank dengan
menggunakan server side autentication (situs web dari bank yang
dituju). Hal ini akan menjamin bahwa client berkomunikasi dengan
bank yang sah.
2. Client memasukkan informasi berupa identitas (login id) yaitu berupa
serial number, yang selanjutnya bank akan memeriksa dalam database
atas keberadaan serial number tersebut, dan selanjutnya server akan
memberikan bilangan random sebagai tantangan (challenge), dan
meminta jawaban (response) dari bilangan random tersebut.
3. Client membuka aplikasi kalkulator sederhana dan memasukkan
bilangan random tersebut, dimana sebelumnya user harus memasukkan
password (PIN) yang akan digunakan untuk proses pengolahan hash.
4. Selanjutnya aplikasi tersebut akan melakukan proses perhitungan hash
yaitu hashing antara password yang sudah ter-hash dengan challenge
bilangan random dari server.
5. Setelah selesai proses kalkulasi, aplikasi tersebut akan menghasilkan
suatu bilangan yang akan disebut dengan hash code atau kode hash
6. Client memasukkan hasil kalkulasi (hash code) tersebut ke dalam form
web untuk memulai transaksi.
7. Server autentikasi bank akan melakukan autentikasi dengan
membandingkan hasil hash code dari client dengan hasil hash code
yang juga dihitung oleh server.
8. Jika kedua hash code tersebut sama, maka client dapat melakukan
transaksi selanjutnya.
Dalam kasus autentikasi ini, server bank akan selalu memberikan
tantangan (challenge) berupa bilangan random desimal kepada setiap
client yang login. Setiap kali client login, maka challenge yang di hasilkan
juga akan selalu berubah, sehingga akan sedikit sekali kemungkinan
sistem ini terbongkar. Hal ini merupakan sifat dari One Time Pad.
3.1.1 Use Case Diagram
Gambar 3.1Use Case Diagram
Dari use case di atas terdapat 2 entitas yaitu client dan
server. Secara umum,client harus login terlebih dahulu sebelum
masuk sistem. Setelah login maka client akan menerima challenge,
menghitung nilai hash dan memberikan response atas challenge
server. Sedangkan server bertugas untuk mengirimkan challenge,
menerima responseclient dan memverifikasi client yang masuk.
3.1.2 Entity Relational Diagram
Dalam sistem autentikasiclient hanya mempunyai 1 entitas yaitu:
client
Gambar 3.2Entitas account_client
Entitas account_client yang tersimpan dalam database
tersebut mempunyai atribut PIN / password (primary key), atribut
nama,atribut alamat, atribut serial_number, atribut pertanyaan, dan
atribut jawaban. Client hanya memasukkan serial_number ke
dalam sistem, sedangkan PIN dimasukkan untuk proses
perhitungan kode hash.
Tabel 3.1Relational Model Client
serial_
number
PIN/ password nama alamat pertanyaan jawaban
1234 5678 e56ce032480bb6b8f7c467
3c0c8b7a14b7868377
1234 8976 0de76d35871e1e90759e6a
cb6234e58f3481fab3
Ocha Klaten Hewan paling
disukai?
Anjing
4567 1289 677e90849a0b87c65e6cfb
98b20848c0fa1188a7
Mini Solo Tempat favorit? Paingan
Dari tabel di atas, PIN / password client akan tersimpan
dalam database server dalam bentuk digest. Untuk melakukan
proses hashing maka client memasukkan PIN asli nya, sedangkan
pihak server melakukan proses hashing dengan mengambil
password client yang sudah ter-signature. Dalam hal ini, proses
hashing baik dari pihak client maupun pihak server yaitu dengan
menggunakan password yang sudah ter-signature.
Tabel 3.2 Physical Design
3.1.3 Data Flow Diagram (DFD)
Sistem autentikasi client dapat dimodelkan dengan menggunakan
DFD sebagai berikut:
1. Diagram Konteks / Level 0
Gambar 3.3Diagram Konteks
Client memasukkan data client yaitu berupa
serial_number sebanyak 8 karakter Dari serial number tersebut
maka client akan dapat masuk kedalam sistem autentikasi
client. System akan memberikan tantangan dan akan
menghasilkan nilai hash. Server akan memberikan konfirmasi
atas nilai hash tersebut.
Berikut gambaran sistem yang akan dibangun yaitu
dengan menggunakan konfigurasi protokol STAR, dimana
terdapat 1 buah pusat (server) dan banyak client yang dapat
mengakses server tersebut dan antara client satu dengan client
yang lainnya tidak terdapat hubungan sehingga jika dari 1
pihak client mengalami kesulitan maka hal ini tidak akan
Gambar 3.4Konfigurasi Star
2. Diagram Berjenjang
Gambar 3.5Diagram Berjenjang Sistem Autentikasi Client
Dari diagram berjenjang tersebut, maka terdapat 1 level
yaitu proses login, Memberi challenge, Mengolah hash, dan
3. Diagram Alir Data Level 1
Gambar 3.6Diagram Alir Data Level 1
Dari diagram alir di atas maka client harus melakukan
login terlebih dahulu untuk masuk ke dalam system yaitu
dengan memasukkan serial_number ke dalam form web.
Kemudian sistem akan mengecek apakah client tersebut
terdaftar pada bank tersebut. Jika client tersebut tidak terdaftar
maka system akan memberi pesan kesalahan, tetapi jika client
tersebut sudah terdaftar maka system akan memberi pesan
sukses kepada server. Jika proses login berhasil maka server
akan memberikan suatu tantangan (challenge) berupa bilangan
random kepada client untuk proses autentikasi. Setelah client
menerima challenge maka client melakukan pengolahan
challenge untuk mendapatkan kode hash dari challenge
tersebut dengan menggunakan PIN yang dimilikinya.
Kemudian client memberi respon (nilai hash) atas challenge