• Tidak ada hasil yang ditemukan

Autentikasi dengan metode MD5 one way hash function challenge response pada web-based transaction - USD Repository

N/A
N/A
Protected

Academic year: 2019

Membagikan "Autentikasi dengan metode MD5 one way hash function challenge response pada web-based transaction - USD Repository"

Copied!
98
0
0

Teks penuh

(1)

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

(2)

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

(3)

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

(4)
(5)
(6)

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,

(7)

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)

(8)

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.

(9)

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.

(10)
(11)
(12)

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.

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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.

(21)

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

(22)

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 :

(23)

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)

(24)

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

(25)

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

(26)

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

(27)

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.

(28)

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

(29)

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.

(30)

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

(31)

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.

(32)

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.

(33)

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

(34)

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

(35)

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).

(36)

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

(37)

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

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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

(43)

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.

(44)

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

(45)

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

(46)

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’).

(47)

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

(48)

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

(49)

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

(50)

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.

(51)

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

(52)

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:

ab + CLSs(a + g(b, c, d) + X[k] + T[i])

yang dalam hal ini,

(53)

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) (bc) ∨ (~bd)

fG G(b, c, d) (bd) ∨ (c ∧ ~d)

fH H(b, c, d) bcd

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)

(54)

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)

(55)
(56)
(57)

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

(58)

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

(59)

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

(60)

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

(61)

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.

(62)

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

(63)

 

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 

(64)

 

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

(65)

 

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

(66)

 

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

(67)

 

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

(68)

 

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

Gambar

Gambar 2.2 kunci simetris
Gambar 2.5  Pengiriman password p dalam bentuk
Gambar 2.7  Verifikasi  password yang dikirim dalam
Gambar 2.8  Replay attack pada pengiriman password
+7

Referensi

Dokumen terkait

Nur dan Widyastuti (2014) dalam penelitian yang dilakukan pada tiga orang subjek dengan anak terlambat bicara menunjukkan bahwa salah satu reaksi negatif yang

management pada perusahaan di Surabaya yang baik akan mampu meningkatkan keunggulan bersaing yang dimiliki oleh perusahaan. 2) Terdapat pengaruh signifikan

Penelitian ini bertujuan untuk mengetahui kondisi proses digesti herba rumput mutiara yang dapat memberikan kadar triterpen total yang optimal pada level yang

Angka-angka statistik tersebut menunjukkan bahwa variabel budaya kerja mempunyai pengaruh positif terhadap produktivitas pegawai di Balai Pengkajian Teknologi Pertanian

Berdasarkan hasil penelitian yang telah dilakukan oleh penulis, maka dapat disimpulkan bahwa komunikasi antarpribadi orangtua dan anak dalam penggunaan gadget dari segi

hal.. kemanusiaan adalah menghasilkan karya dalam memajukan iptek yang berguna untuk pembangunan dan kemanusiaan, ikut menanggulangi bencana alam, mencegah

Based on the concentration of mud volcanoes along the crests of the anticlinal ridges in the depocentre and the structural position of the BSR, we suggest that folding along

Hasil penelitian menunjukkan bahwa akurasi dari pengenalan motif Songket Palembang tergantung pada jenis motif Songket yang digunakan dalam pelatihan dan pengujian, serta nilai