autentikasi dengan metode md5 one way hash function...
TRANSCRIPT
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
2010
i
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
2010
ii
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
2010
v
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, (Kalian sungguh sahabatku yang selalu ada untukku)
vi
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)
Memories are bittersweet, the good times we can’t repeat
vii
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.
Tujuan dari Tugas Akhir ini adalah mengimplementasikan algoritma MD5
dengan protokol Challenge-Response untuk melakukan hash masukan berupa
password yang telah di hash, yang akan disambung dengan Challenge. Hasil
implementasi berupa kode hash yang berbeda walaupun dengan Challenge yang sama
dan algoritma yang sama.
viii
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.
The purpose of this final assignment is to see the implementation of MD5
algorithm using Challenge-Response Protocol for hashing input like a hashed
password concated by challenge. The output of this implementation like hash code
and never equal although using the same challenge and the same algorithm.
xi
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.
7. Semua pihak yang telah membantu penulis menyelesaikan studi dan Tugas Akhir,
yang tidak dapat disebutkan satu per satu.
xii
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
Penulis,
xiii
DAFTAR ISI
HALAMAN JUDUL ....................................................................................................i
HALAMAN JUDUL BAHASA INGGRIS .................................................................ii
HALAMAN PERSETUJUAN ....................................................................................iii
HALAMAN PENGESAHAN .....................................................................................iv
HALAMAN PERSEMBAHAN ...................................................................................v
HALAMAN MOTTO ..................................................................................................vi
INTISARI ...................................................................................................................vii
ABSTRACT ..............................................................................................................viii
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.2 Algoritma Kriptografi ......................................................................7
xiv
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
3.4.2 Aplikasi Kalkulator Hash Sederhana ............................................55
xv
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 PUSTAKA .................................................................................................78
xvi
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.6 Halaman Products, Services product.php …………………………….63 Gambar 4.7 Halaman E-Banking online .php ……………………………………...64
xvii
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 Gambar 5.7 Uji Coba ke-7 Avalanche Effect 1 bit ....................................................72
xviii
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 Tabel 3.2 Physical Design ………………………………………………….........…46
1
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.
Terdapat beberapa metode yang sering digunakan untuk proses
autentikasi seperti dengan metode pengiriman password secara langsung,
pengiriman password secara terenkripsi, dll. Tetapi metode yang dianggap
lebih aman yaitu dengan tidak mengirimkan password secara langsung. Salah
satu metode yang menerapkan konsep tentang pengiriman password secara
tidak langsung yaitu dengan menggunakan protokol autentikasi “Challenge-
Response”. Challenge-Response merupakan suatu protokol dalam komputer
security dimana salah satu pihak bertindak sebagai penyedia pertanyaan
(Challenge) dan pihak satunya bertindak sebagai penjawab pertanyaan
(Response). Sehingga dalam metode Challenge-Response ini memerlukan
paling sedikit 2 pihak yang saling berhubungan. Protokol yang digunakan
2
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 challenge client.
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
protokol ”one way function”.
3
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 :
Mengimplementasikan algoritma hash MD5 One Way Hash Function yang
dapat digunakan oleh server untuk mengetahui ke-autentikasi-an dari client
yang masuk.
4
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 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)
Dengan cara melakukan analisa tentang adanya avalanche effect,reflection
attack, birthday paradoks, kerandoman challenge serta analisa hasil hash
(response) yang dihasilkan.
5
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 autentikasi client.
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
Pada bagian penutup ini akan membahas tentang kesimpulan dan juga
saran-saran yang didapat selama penyelesaian skripsi ini.
6
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
penyembunyian pesan.
7
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
berdasarkan kunci yang dipakai, yaitu :
8
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.2 kunci 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.3 kunci asimetris
c. Fungsi Hash
Fungsi Hash berhubungan dengan keamanan data. Fungsi Hash
juga dapat digunakan untuk proses autentikasi dan integritas data.
Fungsi hash secara efisien akan mengubah string input dengan
9
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.4 fungsi 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
pihak yang saling berkomunikasi harus saling memperkenalkan
10
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.
Cryptanalysts memilih-milih kemungkinan teks asli untuk mecoba
memecahkan kode yang ada. Dalam hal ini kriptanalis mencoba menebak
11
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
membuat berita fitnah.
12
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.
Gambar 2.6 Pengiriman password p dalam keluaran
fungsi hash
13
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.
Gambar 2.7 Verifikasi password yang dikirim dalam
bentuk digest
14
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
dengan password asli. Dan jika terjadi penyusupan, maka ia hanya
15
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
challenge.
16
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).
e. Alice kemudian mengirimkan H(H(p) + n) kepada Bob.
17
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
Misal : sidik jari, pola retina, suara, DNA, dan aspek biometrik lainnya.
18
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
iteratif.
19
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 response user,
Beri jawaban ke client (yes/no)
berdasarkan benar/tidaknya response
yang diberikan
Evaluasi : beri akses atau tidak berdasarkan jawaban autentikasi server
20
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 autentikasi server.
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 Way Challenge-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
Protokol Two Way Challenge-Response
21
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
adanya reflection attack. Berikut ini gambar reflection attack :
22
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
terhadap reflection attack.
Gambar 2.14 One Way Function
23
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
mengirimkan hasil (kode) yang telah diolah. Kemudian sistem akan
24
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.
Gambar 2.16 Autentikasi Dengan Challenge-Response Protokol
25
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
dimana h = hash(m).
26
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.18 Hash function dengan MD5
Fungsi One Way Hash Function ini prinsipnya sama dengan
fungsi Trapdoor Function. Prinsip dari fungsi Trapdoor Function
yaitu akan mudah untuk masuk ke dalam suatu sistem, tetapi akan
27
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’).
Ilustrasi dari One Way Hash Function yaitu sebagai berikut :
28
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
enkripsi.
29
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
akan semakin aman.
30
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
bit-bit 0 sampai memenuhi syarat jumlah 64 bit kurang dari kelipatan 512.
31
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.
Setiap operasi dasar memakai sebuah elemen T secara spesifik, yang akan
32
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
])16..1[,,( TYABCDfABCD qF←
])32..17[,,( TYABCDfABCD qG←
])48..33[,,( TYABCDfABCD qH←
])64..49[,,( TYABCDfABCD qI←
A B C D
A B C D
A B C D
+ + + +
MDq
MDq + 1
128
Yq
512
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
semula. MDq adalah nilai message digest 128-bit dari proses HMD5 ke-q.
Pada awal proses, MDq berisi nilai inisialisasi penyangga MD. Fungsi-
33
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
g
+
+
+
CLSs
+
X[k]
T[i]
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,
a, b, c, d = empat buah peubah penyangga 32-bit (berisi nilai
penyangga A, B, C, D)
g = salah satu fungsi F, G, H, I
CLSs = circular left shift sebanyak s bit
X[k] = kelompok 32-bit ke-k dari blok 512 bit message ke
q. Nilai k = 0 - 15.
T[i] = elemen Tabel T ke-i (32 bit)
+ = operasi penjumlahan modulo 232
34
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)
ii(a,b,c,d,Mj,s,ti) menyatakan a = b + ((a + i(b,c,d) + Mj + ti) <<<s)
Empat tahapan MD5 digambarkan sebagai berikut :
35
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)
ff(d, a, b, c, M9, 12, 0x8b44f7af)
36
ff(c, d, a, b, M10, 17, 0xffff5bb1)
ff(b, c, d, a, M11, 22, 0x895cd7be)
ff(a, b, c, d, M12, 7, 0x6b901122)
ff(d, a, b, c, M13, 12, 0xfd987193)
ff(c, d, a, b, M14, 17, 0xa679438e)
ff(b, c, d, a, M15, 22, 0x49b40821)
Round 2 :
gg (a, b, c, d, M1, 5, 0xf61e2562)
gg(d, a, b, c, M6, 9, 0xc040b340)
gg(c, d, a, b, M11, 14, 0x265e5a51)
gg(b, c, d, a, M0, 20, 0xe9b6c7aa)
gg(a, b, c, d, M5, 5, 0xd62f105d)
gg(d, a, b, c, M10, 9,0x02441453)
gg(c, d, a, b, M15, 14, 0xd8a1e681)
gg(b, c, d, a, M4, 20, 0xe7d3fbc8)
gg(a, b, c, d, M9, 5, 0x21e1cde6)
gg(d, a, b, c, M14, 9, 0xc33707d6)
gg(c, d, a, b, M3, 14, 0xf4d50d87)
gg(b, c, d, a, M8, 20, 0x455a14ed)
gg(a, b, c, d, M13, 5, 0xa9e3e905)
gg(d, a, b, c, M2, 9, 0xfcefa3f8)
gg(c, d, a, b, M7, 14, 0x676f02d9)
gg(b, c, d, a, M12, 20, 0x8d2a4c8a)
Round 3 :
hh (a, b, c, d, M5, 4, 0xfffa3942)
hh(d, a, b, c, M8, 11, 0x8771f681)
hh(c, d, a, b, M11, 6, 0x6d9d6122)
37
hh(b, c, d, a, M14, 23, 0fde5380c)
hh(a, b, c, d, M1, 4, 0xa4beea44)
hh(d, a, b, c, M4, 11,0x4bdecfa9)
hh(c, d, a, b, M7, 16, 0xf6bb4b60)
hh(b, c, d, a, M10, 23, 0xbebfbc70)
hh(a, b, c, d, M13, 4, 0x289b7ec6)
hh(d, a, b, c, M0, 11, 0xeaa127fa)
hh(c, d, a, b, M3, 16, 0xd4ef3085)
hh(b, c, d, a, M6, 23, 0x04881d05)
hh(a, b, c, d, M9, 4, 0xd9d4d039)
hh(d, a, b, c, M12, 11, 0xe6db99e5)
hh(c, d, a, b, M15, 16, 0x1fa27cf8)
hh(b, c, d, a, M2, 23, 0xc4ac5665)
Round 4 :
ii(a, b, c, d, M0, 6, 0xf4292244)
ii(d, a, b, c, M7, 10, 0x432aff97)
ii(c, d, a, b, M14, 15, 0xab9423a7)
ii(b, c, d, a, M5, 21, 0xfc93a039)
ii(a, b, c, d, M12, 6, 0x655b59c3)
ii(d, a, b, c, M3, 10,0x8f0ccc92)
ii(c, d, a, b, M10, 15, 0xffeff47d)
ii(b, c, d, a, M1, 21, 0x85845dd1)
ii(a, b, c, d, M8, 6, 0x6fa87e4f)
ii(d, a, b, c, M15, 10, 0xfe2ce6e0)
ii(c, d, a, b, M6, 15, 0xa3014314)
ii(b, c, d, a, M13, 21, 0x4e0811a1)
ii(a, b, c, d, M4, 6, 0xf7537e82)
ii(d, a, b, c, M11, 10, 0xbd3af235)
38
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
sejumlah kurang dari 2L
39
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
sebanyak 264 attemps (usaha).
40
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
memproses 128 bit buffer.
41
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
random integer. Fungsi rand() tersebut digunakan untuk menghasilkan
42
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
atau nilai hash.
44
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
Use case diagram proses transaksi web based yaitu sebagai berikut:
45
Gambar 3.1 Use 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 response client dan memverifikasi client yang masuk.
3.1.2 Entity Relational Diagram
Dalam sistem autentikasi client hanya mempunyai 1 entitas yaitu:
clientPIN /password
serial_number
nama
alamat
jawaban pertanyaan
Gambar 3.2 Entitas 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.1 Relational Model Client serial_
number
PIN/ password nama alamat pertanyaan jawaban
1234 5678 e56ce032480bb6b8f7c467
3c0c8b7a14b7868377
Oga Purwokerto Nama sekolah SMA? SMA N1 Prambanan
46
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
serial_number Int(8)
PIN/password Varchar(40)
nama Varchar(16)
alamat Varchar(45)
Pertanyaan Varchar(100)
Jawaban Varchar(50)
47
3.1.3 Data Flow Diagram (DFD)
Sistem autentikasi client dapat dimodelkan dengan menggunakan
DFD sebagai berikut:
1. Diagram Konteks / Level 0
Gambar 3.3 Diagram 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
mengganggu akses client yang lainnya
48
Gambar 3.4 Konfigurasi Star
2. Diagram Berjenjang
Gambar 3.5 Diagram Berjenjang Sistem Autentikasi Client
Dari diagram berjenjang tersebut, maka terdapat 1 level
yaitu proses login, Memberi challenge, Mengolah hash, dan
Autentikasi client.
49
3. Diagram Alir Data Level 1
Gambar 3.6 Diagram 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
tersebut. Di sisi lain, server juga melakukan penghitungan kode
50
hash dengan menggunakan PIN yang sudah tidak terbaca oleh
manusia (signature). Server akan melakukan autentikasi client
dengan membandingkan kedua nilai hash, dan kemudian
memverifikasi client.
3.2 Analisa Teknologi
Perangkat keras (hardware) dan perangkat lunak (software) yang
dipakai untuk pengembangan sistem ini yaitu :
1. Hardware :
- Prosessor : Pentium IV 2GB
- Harddisk : 80 GB
- Memory : 512 MB
2. Software :
- Bahasa Pemrograman : Bahasa Pemrograman Java, Netbeans
IDE 6.1, MYSQL, PHP apache
- Sistem Operasi : Microsoft Windows® XP Professional
service pack 2
3.3 Analisa Algoritma MD5
MD5 mengolah blok 512 bit, dibagi kedalam 16 subblok berukuran
32 bit. Keluaran algoritma diset menjadi 4 blok yang masing-masing
berukuran 32 bit yang setelah digabungkan akan membentuk nilai hash
128 bit.
Pesan diberi tambahan sedemikian sehingga panjang menjadi k-bit,
dimana k = 512n – 64 bit. n merupakan blok masukan. Tambahan ini
berupa bit tunggal ’1’ yang diletakkan pada akhir pesan, diikuti bit ’0’
sebanyak yang diperlukan sehingga panjangnya menjadi k bit. Kemudian
51
64 bit yang masih kosong, dibagian akhir, diisi dengan panjang pesan asli.
Berikut ini merupakan gambaran dari proses MD5 :
Dari algoritma MD5 ini akan menghasilkan 4 blok masing-masing
8 digit bilangan heksadesimal, tetapi yang akan digunakan sebagai
response yaitu 1 blok (8 digit bilangan heksadesimal).
52
Berikut ini merupakan diagram alir untuk mengolah hash
berdasarkan algoritma MD5 :
Gambar 3.7 Diagram alir algoritma MD5 secara umum
53
3.4 Perancangan Sistem
Terdapat 2 buah sistem aplikasi yang akan dibangun yaitu aplikasi
kalkulator hash sederhana dan interface berupa web.
3.4.1 Perancangan user interface web User interface berupa web yang digunakan yaitu meliputi form
login, dan form response client.
a. Form Login
Form ini akan muncul pada saat situs suatu web dijalankan.
Form ini digunakan jika client hendak masuk ke dalam sistem
transaksi. Client hanya memasukkan serial number. Berikut
rancangan form login client :
Gambar 3.8 Rancangan Form Login
Keterangan gambar 3.12
* Serial number : tempat yang digunakan untuk memasukkan
serial number client pada web.
* LOGIN : tombol yang digunakan untuk proses login
ke dalam sistem, dan jika proses login
berhasil maka akan menuju ke form
Response Client.
54
b. Form Response Client
Form ini digunakan untuk menerima nilai challenge (bilangan
random), dan kemudian client memasukkan nilai response yang
telah dihitung dengan menggunakan salah satu algoritma one
way hash function.
Gambar 3.9 Rancangan Form Response Client
Keterangan gambar 3.13
* Challenge : tempat (field) yang tidak bisa diubah
client maupun server yang digunakan
untuk memberikan nilai tantangan
(challenge).
* Response : tempat (field) yang digunakan untuk
mengirimkan hasil hash (response) ke
server, dan hasil hash ini akan menuju ke
form autentikasi untuk server pada field
hash client.
* SUBMIT : tombol yang digunakan untuk
mengirimkan response, dan jika response
yang dikirimkan sesuai dengan response
yang dihitung server, maka client tersebut
55
autentik dan client tersebut dapat
melakukan transaksi lainnya.
3.4.2 Aplikasi Kalkulator Hash Sederhana
Form ini digunakan untuk memproses bilangan yang menjadi
challenge server. Hasil dari aplikasi ini yaitu berupa kode hash
yang akan menjadi response terhadap server. Form hashing sisi
client ini dengan memasukkan password beserta dengan challenge
server.
Gambar 3.10 Rancangan Form Hashing Client
Keterangan gambar 3.14
* password : suatu tempat (teks field) yang digunakan untuk
mengisi password client.
* hash : suatu tombol yang digunakan untuk mendapatkan
nilai hash dari password yang dimasukkan oleh
client tersebut.
* Challenge : tempat (teks field) untuk memasukkan nilai
tantangan (challenge) dari server.
56
* calculated : tombol yang digunakan untuk mendapatkan nilai
hash hasil penggabungan dari password yang sudah
di hash dengan challenge. Hasil proses calculated
ini akan menjadi response untuk server yang
dikirimkan melalui web pada Form Response Client
pada field Response.
* RESET : tombol untuk menghapus (me-reset) semua data
yang tertampil pada form ini.
* EXIT : tombol untuk keluar dari form hashing ini.
57
BAB 4
IMPLEMENTASI PROGRAM
Dari hasil perancangan yang telah dilakukan, maka langkah-langkah untuk
proses autentikasi yaitu :
Gambar 4.1 Diagram alir sistem autentikasi
58
4.1 Implementasi Program
Aplikasi yang akan dibangun dalam Tugas Akhir ini mencakup 2 sistem, yaitu :
1. User Interface Web
2. Aplikasi Kalkulator Hash Sederhana
4.1.1 Implementasi User Interface Web
Implementasi user interface berupa web yaitu meliputi halaman web
utama (form home), halaman web untuk proses login (form login),
halaman web untuk autentikasi (form challenge response), halaman web
bantuan program (form bantuan) dan halaman web contact (form
contact).
a. Halaman utama client (home.php)
Gambar 4.2 Halaman utama web home.php
59
Pada tampilan web di atas, terdapat beberapa menu seperti
”HOME”, ”LOGIN”, ”PRODUCTS, SERVICES”, ”E-BANKING”,
”ABOUT
Untuk melakukan login, maka tekan menu ”LOGIN”, dan untuk
proses login ini memerlukan file “Koneksi.php” yang digunakan
untuk melakukan koneksi ke database server.
Source code file koneksi tersebut yaitu :
<?php
$host="localhost";
$user="root";
$passwd="";
$database="skripsi";
$connect=mysql_connect($host,$user,$passwd);
if(!$connect)
{
echo "gagal";
}
else
{
echo "sukses";
}
mysql_select_db($database)
or die("database tidak ada");
?>
60
b. Halaman Login (login.php)
Gambar 4.3 Halaman web login.php
Proses Login ini hanya dengan memasukkan serial number client.
Dari serial number tersebut, maka akan di periksa tentang
keberadaan dari client tersebut. Jika serial number tersebut sudah
terdaftar, maka server akan memberikan suatu tantangan
(Challenge), tetapi jika serial number dari client tersebut belum
terdaftar maka server akan memberi peringatan dan akan kembali ke
form login ini lagi.
Berikut source code untuk melakukan pengecekan tentang serial
number client :
<?php
session_start();
require_once"koneksi.php";
61
$sql="select serial_number from client where
serial_number='$userid'";
if(!$hasil=mysql_query($sql))
{
echo "perintah salah".mysql_error();
}
$ada_baris=mysql_num_rows($hasil);
if($ada_baris >= 1)
{
$master=$userid;
session_register("master");
echo "";
include "CR.php";
exit;
}
else
{
echo "";
include "login.php";
exit;
}
?>
Dari tombol ”LOGIN” tersebut jika serial number sudah terdaftar,
maka akan menuju ke form ”CR.php”, tetapi jika serial number
62
belum terdaftar maka akan menuju ke halaman ”login.php”, dan dari
hal tersebut maka client harus memasukkan serial number lagi ke
dalam halaman login tersebut.
c. Halaman Challenge-Response Client (CR.php)
Form ini digunakan untuk memberikan tantangan (Challenge)
kepada client yang berhasil masuk.
Gambar 4.4 Halaman Challenge-Response CR.php
Pada tampilan form diatas terdapat identitas client yang berhasil
masuk, yaitu client yang serial numbernya 12345678.
Setelah client tersebut berhasil masuk, maka ia akan mendapatkan
tantangan dari server, dimana tantangan untuk client tersebut yaitu
berupa bilangan decimal “540778”. Setelah itu maka client harus
63
memasukkan hasil hash (response) kedalam field Response, dan
selanjutnya tekan tombol SUBMIT. Setelah tombol SUBMIT
ditekan, maka server akan melakukan autentikasi, dan server akan
mengirimkan verifikasi atas response tersebut. Jika proses
autentikasi telah berhasil, maka client tersebut dapat melakukan
transaksi-transaksi on-line yang lainnya.
Jika proses autentikasi berhasil, maka akan muncul dialog box
sebagai bentuk konfirmasi dari response yang dimasukkan yaitu
sebagai berikut :
Gambar 4.5 Dialog box untuk client yang autentik
d. Halaman product & service (product.php)
Gambar 4.6 Halaman Products, Services product.php
64
Pada halaman ini terdapat beberapa informasi mengenai product dan
service yang disediakan oleh bank tersebut.
e. Halaman E-Banking (online.php)
Gambar 4.7 Halaman E-Banking online .php
65
f. Program Contact (about.php)
Gambar 4.8 Halaman About about .php
Contact disini berisi tentang data penulis, dan juga langkah-langkah
untuk melakukan login ke dalam system, sampai di dapatkan client
yang benar-benar autentik.
4.1.2 Aplikasi program Java
Aplikasi yang ditangani oleh Java ini yaitu aplikasi kalkulator
hash sederhana dan aplikasi untuk ganti password.
a. Aplikasi kalkulator hash sederhana
Aplikasi ini digunakan untuk mengolah tantangan dari server.
Client memasukkan password yang dimilikinya dan setelah itu
66
dilakukan hashing dengan menekan tombol ”hash”, dan
selanjutnya menuliskan tantangan server pada field Challenge.
Untuk mendapatkan response yaitu dengan menekan tombol
”CALCULATE”. Hasil yang tertera tersebut kemudian disalin
(copy) kedalam field Response pada web untuk proses autentikasi.
Gambar 4.9 kalkulator hash sisi client
Source code tampilan diatas untuk proses hashing yaitu :
public void calculate() {
byte buffer[] = new byte[8192];
byte digest[] = new byte[8192];
byte a[] = new byte[8192];
try {
md = MessageDigest.getInstance(algorithm.toString());
67
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(kalkulatorclient.class.getName()).log(Level.SE
VERE, null, ex);
}
String x = String.valueOf(hasilhashpassword.getText() + "" +
text.getText());
System.out.println(x);
buffer = x.getBytes();
md.update(buffer);
digest = md.digest();
hex = "";
for (int i = 0; i < digest.length; i++) {
int b = digest[i] & 0xff;
if (Integer.toHexString(b).length() == 1) {
hex = hex + "0";
}
hex = hex + Integer.toHexString(b);
}
hasilhash.setText(hex.substring(24));
}
Pada program di atas, jika terdapat salah satu field yang masih
kosong maka akan terdapat dialog box yang menyatakan pesan
kesalahan, yaitu seperti berikut ini :
68
Gambar 4.10 dialog box pesan error
68
BAB 5
UJI COBA DAN ANALISA HASIL
5.1 Uji Coba
Uji coba terhadap system ini dilakukan untuk menjawab pertanyaan-
pertanyaan sebagai berikut :
Apakah sistem yang dibangun sesuai dengan prinsip kriptografi seperti
adanya adanya avalanche effect, bilangan random yang dihasilkan, reflection
attack.
Uji Coba Kesesuaian Hasil Program Dengan Prinsip Kriptografi
Uji coba ini dilakukan untuk menentukan apakah terdapat
avalanche effect, yaitu perubahan kecil pada teks yang mengakibatkan
perubahan besar pada hasil hashnya. Disini juga akan membahas
tentang keacakan bilangan random.
Pada uji coba ini akan dilakukan beberapa kali percobaan
dimana password yang digunakan sama tetapi challenge nya berubah 1
bit. Berikut beberapa percobaan tersebut :
69
Gambar 5.3 Uji Coba Avalanche Effect 1
Gambar 5.4 Uji Coba Avalanche Effect 2
70
Gambar 5.5 Uji Coba Avalanche Effect 3
Gambar 5.6 Uji Coba Avalanche Effect 4
71
Gambar 5.7 Uji Coba Avalanche Effect 5
Gambar 5.8 Uji Coba Avalanche Effect 6
72
Gambar 5.9 Uji Coba Avalanche Effect 7
Dari beberapa kali percobaan (lebih dari 20 kali percobaan)
dengan password yang sama dan Challenge yang berbeda 1 bit, maka
diambil 7 buah sample dalam penulisan Tugas Akhir ini, dan hasilnya
terdapat avalanche effect yang besar juga. Walaupun berbeda 1 bit,
dari hasil hash yang diperoleh tidak begitu jelas adanya interdepedensi
/ ketergantungan antara hash 1 dengan hash yang lain.
Dari uji-coba yang telah dilakukan maka nilai yang dijadikan
sebagai response yaitu hanya 1 blok, dimana nilai hash yang
dihasilkan yaitu 4 blok masing-masing 8 digit bilangan heksadesimal.
Bilangan random dalam system ini bersifat uniform (seragam)
yaitu kemunculan bilangan random 1 dengan bilangan random yang
lainnya sama atau jika dilihat dengan menggunakan diagram maka
berupa garis lurus, dan jarang ditemukan bilangan acak yang sama
73
dalam waktu yang singkat. Berikut 100 buah percobaan bilangan
random telah dilakukan :
610802 397626 398556 873749 792633
929947 151826 566967 341125 374727
712935 183729 342576 601462 428682
658255 506973 948059 650061 921361
573627 705555 029779 932808 818538
746629 634857 162053 908317 188812
983335 295041 339361 695515 795966
598401 630160 657196 808270 927384
778750 616876 653547 626956 629382
999524 130481 606666 234472 919686
255052 423698 333981 951389 179807
793076 657546 988528 481584 136933
313437 717507 886645 616529 789263
018033 567268 374812 155518 761461
577778 473608 756782 557235 137594
200492 114404 350157 296894 483731
060750 366103 174175 696149 295400
382234 366359 204527 393495 138545
376394 132680 127736 157761 944250
304207 884362 676323 476562 536436
Dari hasil percobaan bilangan random tersebut, tidak terlihat
adanya ketergantungan antar bilangan random yang dihasilkan,
walaupun account number yang masuk sama (12345678) untuk semua
challenge tersebut.
74
5.2 Analisa hasil
Dari hasil uji coba diatas, maka dapat dilakukan analisa sebagai berikut :
1. Bilangan random yang dijadikan challenge akan selalu berubah
setiap terjadi kesalahan dalam proses autentikasi (One Time
Password) dan bilangan yang dihasilkan acak, yaitu peluang
kemunculan setiap angka sama yaitu 0,111.
2. Hasil hash dari kalkulator sederhana baik dari pihak client maupun
server akan menghasilkan adanya perbedaan hasil (avalanche effect)
yang sangat besar walaupun dengan menggunakan kunci password
yang sama dan challenge yang berbeda 1 bit, dan bersifat case-
sensitife.
3. Hasil hash ini akan sangat sulit untuk dipecahkan, karena sesuai
dengan sifatnya mudah untuk menghitung nilai hash tetapi sulit
untuk menemukan message aslinya. Dan kemungkinan terjadi collisi
sangat kecil, karena kemungkinan tertebaknya message asli yaitu
10n-1.
4. Tidak terdapat reflection attack karena dalam hal ini hanya pihak
server saja yang berhak untuk memberikan tantangan.
5. Hasil hash yang dihasilkan 4 blok (32 digit bilangan heksadesimal),
akan tetapi yang dijadikan response 1 blok (8 digit bilangan
heksadesimal), sehingga dalam hal ini birthday paradoks akan
menurun menjadi 28 dari 232.
5.3 Analisa Piranti Pengembang
Piranti pengembang yang digunakan dalam implementasi sistem ini
yaitu meliputi piranti Bahasa Pemrograman Java dan PHP.
Bahasa Pemrograman Java ini sesuai untuk menerapkan aplikasi hash
kalkulator sederhana, karena di dalam Java sudah terdapat class (import
java.security.MessageDigest) yang dapat dipanggil yang berhubungan dengan
kriptografi. Sedangkan PHP sesuai untuk menerapkan sistem berbasiskan web
75
karena perintah-perintah yang digunakan cukup sederhana. Untuk menghitung
nilai hash dalam PHP ini juga mudah yaitu dengan memanggil algoritma
MD5. Sedangkan untuk menyimpan data-data client dalam database yaitu
dengan menggunakan MYSQL .
76
BAB 6
KESIMPULAN DAN SARAN
6.1 Kesimpulan
Kesimpulan dari pembuatan perangkat-lunak system autentikasi dengan
menggunakan Challenge-Response ini yaitu :
1. Dalam algoritma MD5 ini akan membutuhkan 264 percobaan untuk
menghasilkan 2 messages yang mempunyai message digest yang
sama, dan 2128 untuk menghasilkan message yang mempunyai
message digest tertentu.
2. Algoritma MD5 ini juga mampu menghasilkan tingkat avalanche
effect yang sangat besar. Hal ini ditunjukkan dengan uji coba
avalanche effect diatas.
3. Tingkat keamanan pada algoritma ini cukup tinggi, karena algoritma
ini akan mengolah teks asli menjadi keluaran 128 bit (walaupun
terdapat 32 bit lebih pendek dari algoritma hash lainnya) dan dengan
looping (perulangan) 60 kali.
4. Sistem autentikasi ini mempunyai tingkat keamanan yang bagus,
karena dalam sistem ini menggunakan protokol Challenge-Response,
dimana Challenge yang dihasilkan selalu berubah-ubah (One Time
Password).
5. Bilangan random yang dibangkitkan acak yaitu karena sifatnya yang
uniform artinya bahwa kemunculan tiap angka adalah sama yaitu
ditunjukkan bahwa peluang kemunculan setiap angka yaitu 0,111.
6. Tidak terdapat adanya reflection attack, karena dalam hal ini hanya 1
pihak saja yang akan menerima tantangan yaitu pihak client, dan client
tidak bisa memberikan tantangan terhadap server untuk memastikan
server yang dituju juga autentik.
77
7. Nilai hash yang dijadikan response server berupa 8 digit bilangan
heksadesimal, sehingga birthday paradoks yang dihasilkan akan
berkurang yaitu 28.
6.2 Saran
Dalam pembuatan program ini masih dapat dikembangkan lagi untuk
mengatasi beberapa kelemahan yang ditemukan dan bahkan program ini dapat
digunakan untuk aplikasi yang lebih besar. Beberapa hal yang dapat
dikembangkan yaitu antara lain :
1. Proses autentikasi ini juga dapat diterapkan dengan menggunakan
jenis fungsi hash yang lainnya.
2. Untuk lebih menjaga keamanan, maka dapat ditambahkan mengenai
”Login Expired”.
Demikianlah kesimpulan dan saran-saran yang dapat dikemukakan oleh
penyusun. Penyusun hanya berharap supaya program ini dapat dikembangkan lagi
menjadi yang lebih baik dan berguna terutama dalam bidang ilmu pengetahuan
hashing kriptografi dan keamanan transfer melalui protokol yang digunakan.
78
DAFTAR PUSTAKA
Ariyus, Dony, Pengantar Ilmu Kriptografi, Andi Offset, 2008
Schneir, B, Applied Cryptography, John Wiley & Sons, Inc., Canada, 1994
http://www.informatika.org/~rinaldi/Buku/Kriptografi/Bab-_Pengantar%20Kriptografi.pdf.
http://ilmukomputer.org/2007/03/27/md5-dan-sha-1-kriptografi-dengan-fungsi-hash/ http://www.informatika.org/~rinaldi/Matdis/2006-2007/Makalah/Makalah0607-42.pdf http://aarriiee.files.wordpress.com/2007/06/karhendana_2006b.pdf