INTISARI
SHA 1 adalah salah satu algoritma fungsi has untuk proses enkripsi, pada sistem autentikasi ini dibangun untuk dua pihak yaitu pihak pengguna (klient) dan pihak administrator (server), untuk menghubungkan kedua pihak antara pengguna dan administrator digunakan protokol challenge response. Cara kerja protokol ini adalah server akan memberi tantangan kepada klient, sedangkan klient mengolah tantangan dan memberi respon.
ABSTRACK
SHA 1 is one of the any other hash algorithm to encryption, this authentication system was built for two sides namely client side and server side, challenge response protocol is used to connect between client and server. In this challenge response protocol, server will give challenge to client, and client will generate challenge and send response.
Klien Autentikasi Menggunakan Algoritma SHA-1
Dengan Protokol
Two Way Challenge-Response
pada Transaksi
Web-based
Tugas Akhir
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Disusun Oleh :
Yosafat Maryan Rambonang
105314001
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
Client Autentication Using SHA-1
With Two Way Challenge-Response Protocol In Web-based Transaction
Final Project
Presented as Partial Fulfillment of the Requirements To Obtain Sarjana Komputer Degree
In Informatics Engineering Department
Arranged by:
Yosafat Maryan Rambonang
Student number : 105314001
INFORMATICS ENGINEERING STUDY PROGRAM
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
HALAMAN PERSETUJUAN
Skripsi
Klien Autentikasi Menggunakan Algoritma SHA-1
Dengan Protokol
Two Way Challenge-Response
pada Transaksi
Web-based
Oleh :
Yosafat Maryan Rambonang
NIM : 105314001
Telah disetujui oleh :
Dosen Pembimbing
HALAMAN PENGESAHAN
SKRIPSI
Klien Autentikasi Menggunakan Algoritma SHA-1
Dengan Protokol
Two Way Challenge-Response
pada Transaksi
Web-based
Dipersiapkan dan ditulis oleh :
Yosafat Maryan Rambonang
NIM : 105314001
Telah dipertahankan di depan panitia penguji
Pada tanggal 23 Juli 2015
Dan dinyatakan memenuhi syarat
Susunan panitia penguji
Nama lengkap Tanda tangan
Ketua : Iwan Binanto S.Si., M.Cs ...
Sekretaris : H. Agung Hernawan S.T., M.Kom ...
Anggota : Bambang Soelistijanto S.T., M.Sc., Ph.D ...
Yogyakarta,...
Fakultas Sains dan Teknologi
Universitas Sanata Dharma
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak
memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan
daftar pustaka sebagaimana layaknya karya ilmiah.
Yogyakarta, Agustus 2015
Penulis
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Yosafat Maryan Rambonang
NIM : 105314001
Demi pengembangan ilmu pengetahuan, saya memberikan kepada perpustakaan Universitas
Sanata Dharma karya ilmiah saya yang berjudul :
Klien Autentikasi Menggunakan Algoritma SHA-1
Dengan Protokol
Two Way Challenge-Response
pada Transaksi
Web-based
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada
perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk
media lain, mengelola dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan
mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu
meminta ijin dari saya maupun memberikan royality kepada saya selama tetap
mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada Tanggal : Agustus 2015
Yang menyatakan,
INTISARI
SHA 1 adalah salah satu algoritma fungsi has untuk proses enkripsi, pada sistem
autentikasi ini dibangun untuk dua pihak yaitu pihak pengguna (klient) dan pihak
administrator (server), untuk menghubungkan kedua pihak antara pengguna dan administrator
digunakan protokol challenge response. Cara kerja protokol ini adalah server akan memberi
tantangan kepada klient, sedangkan klient mengolah tantangan dan memberi respon.
Tujuan dari tugas akhir ini adalah Mengimplementasikan protokol two way challenge
response dengan menggunakan algoritma SHA-1 untuk mengolah user id dan password yang
akan disambung dengan tantangan berupa angka acak menjadi bilangan yang digunakan
sebagai respon terhadap tantangan yang diberikan server guna mengetahui keaslian dari klien
ABSTRACK
SHA 1 is one of the any other hash algorithm to encryption, this authentication system
was built for two sides namely client side and server side, challenge response protocol is used
to connect between client and server. In this challenge response protocol, server will give
challenge to client, and client will generate challenge and send response.
The purpose of this final assignment is to see the implementation of challenge
response protocol with used SHA 1 algorithm for generate user id and password with
challenge like random number to be response as challenge be given by server to know
KATA PENGANTAR
Puji dan syukur kepada Tuhan Yang Maha Esa atas karunia dan kesempatan sehingga
penulis dapat menyelesaikan skripsi dengan judul “Klien Autentikasi Menggunakan
Algoritma SHA-1 Dengan Protokol Two Way Challenge-Response pada Transaksi
Web-based”
Penyusunan Tugas Akhir ini tidak lepas dari semua pihak yang turut memberikan
dukungan dan doa yang sangan bermanfaat bagi penulis. Pada kesempatan kali ini penulis
mengucapkan terimakasih yang sebesar-besarnya kepada:
1. Bapak Bambang Soelistijanto S.T., M.Sc., Ph.D. selaku dosen pembimbing
atas segala kesabara, bimbingan dan bantuannya kepada penulis dalam
menyelesaikan Tugas Akhir ini.
2. Bapak Iwan Binanto S.Si., M.Cs. dan bapak H. Agung Hernawan S.T.,
M.Kom. Selaku dosen penguji atas saran dan masuka demi kesempurnaan
Tugas Khir ini.
3. Ibu A.M Polina S.Kom., M.Sc. selaku dosen pembimbing akademik serta
seluruh dosen Universitas Sanata Dharma yang telah membantu dan memberi
bekal kepada penulis.
4. Para karyawan dan staf Fakultas Sain dan Teknologi, khususnya jurusan
Teknik Informatika, atas segala bantuan yang diberikan kepada penulis.
5. Orangtua serta keluarga besar yang telah memberikan perhatian, doa, serta
dukungan yang sangat besar kepada penulis.
6. Semua pihak yang telah membantu penulis menyelesaikan Tugas Akhir. Yang
Terimakasih atas segala pelajaran dan kebaikan yang telah penulis terima dan dapat
menjadi berkat serta bekal yang sangat berharga di kehidupan penulis. Penulis menyadari
bahwa penulisan tugas akhir ini masih jauh dari kesempurnaan, oleh sebab itu diharapkan
kritik dan saran dari pembaca yang bersifat membangun guna menyempurnakan Tugas
Akhir ini. Semoga Tugas Akhir ini dapat bermanfaat bagi para pembaca.
Yogyakarta, Agustus 2015
Penulis
DAFTAR ISI
1.1 Latar Belakang Masalah ………..……….. 11.2 Rumusan Masalah ………..……….2
2.2 Jenis Serangan Terhadap keamanan Data ...8
2.3 Permasalahan Pada Pengiriman Password ...10
2.4 Autentikasi ...16
2.4.1 Sistem Autentikasi ...17
2.6 Fungsi Hash ...23
2.6.1 Sifat-sifat Fungsi Hash Pada Kriptografi ...24
2.6.2 Fungsi Hash Satu Arah (One Way Hash Fungction) ...24
2.6.3 Kegunaan One Way Hash Fungction ...25
2.6.4 Kelebihan dan Kekurangan Fungsi Hash ...26
2.6.5 Algoritma hashFungction ...27
2.7 Secured Hash Algorithm (Sha-1) ...27
2.7.1 Cara Kerja SHA-1 ...28
BAB 3 ANALISIS DAN PERANCANGAN SISTEM 3.1 Analisis Sistem ...32
3.2 Analisa Teknologi ...38
3.3 Perancangan Sistem ...38
3.3.1 Aplikasi Kalkulator Hash Sederhana ...39
3.3.2 Form Login ...40
3.3.3 Form Challenge ...41
BAB 4 IMPLEMENTASI PROGRAM 4.1 Implementasi Program ...44
4.1.1 Aplikasi Kalkulator Hash SHA-1 ...44
4.1.2 User Interface Web ...46
BAB 5 ANALISA DAN KESIMPULAN 5.1 Analisa Hasil Program ...55
5.2 Kesimpulan ...56
DAFTAR PUSTAKA ...58
DAFTAR GAMBAR
Gambar 2.1Diagram proses enkripsi dan dekripsi ...6Gambar 2.2 Pengiriman password dalam bentuk plaintext ...10
Gambar 2.3 Pengiriman password dalam bentuk keluaran fungsi hash ...11
Gambar 2.5 Ilustrasi serangan reply attack ...13
Gambar 2.6 Pengiriman password dengan satukali hash ...14
Gambar 2.7 Pengiriman password dengan duakali hash ...15
Gambar 2.8 Sistem autentikasi klien server ...17
Gambar 2.9 Two Way Challenge Response ...19
Gambar 2.10 Tree Way Challenge Response I ...19
Gambar 2.11 Reflection attack ...20
Gambar 2.12 Tree Way Challenge Response II ...20
Gambar 2.13 Autentikasi dengan Trusted Party...21
Gambar 2.14 Autentikasi menggunakan Challenge-Response ...22
Gambar 2.15 Ilustrasi One Way Hash Fungction ...25
Gambar 2.16 Algoritma-algoritma hash ...27
Gambar 2.17 Messagedigest menggunakan SHA1 ...28
Gambar 2.18 Proses hashing ...30
Gambar 3.1 Flowchat sistem ...33
Gambar 3.2 Diagram usecase ...34
Gambar 3.3 Entitiy Relational Diagram ...35
Gambar 3.4 Diagram konteks ...36
Gambar 3.5 Konfigurasi Star ...37
Gambar 3.6 Diagram berjenjang sistem autentikasi klien ...37
Gambar 3.7 Tampilan Kalkulator hash ...39
Gambar 4.1 Preoses autentikasi ...43
Gambar 4.2 SHA1 Kalkulator ...44
Gambar 4.3 Source code proses hashing ...45
Gambar 4.4 Halaman login ...46
Gambar 4.5 Source code koneksi.php ...47
Gambar 4.6 Nomor pengguna salah ...48
Gambar 4.7 source code login.php ...49
Gambar 4.8 Halaman Challenge ...50
Gambar 4.9source code rand.php ...51
Gambar 4.10 Gambar hasil respon salah ...51
Gambar 4.11 peringatan bahwa akun di blok ...52
Gambar 4.12 Proses autentikasi sukses ...52
Gambar 4.13 source code submit.php ...53
Gambar 4.14 peringatan sistem bahwa akun sudah login ...53
Gambar 4.15 Halaman about ...54
BAB 1
PENDAHULUAN
1.1 Latar Belakang Masalah
Keamanan pada data atau informasi di komputer merupakan sesuatu yang penting
untuk diperhatikan. Seiring berkembangnya teknologi jaringan atau internet dan semakin
banyak pengguna komputer yang menggunakan transmisi internet untuk lebih berhati-hati
sebab data atau informasi akan menjadi sangat rentan terhadap serangan dari pihak lain.
Dalam hal ini sangat penting bahwa sistem keamanan komputer ditingkatkan dengan
autentikasi antara server dengan klien dapat mengetahui dengan pasti bahwa seseorang
(klien) yang masuk dalam koneksi jaringan adalah sungguh-sungguh orang (klien) yang tepat
sesuai dengan yang diharapkan, mengingat bahwa hal tersebut sangat mudah di manipulasi
atau di bobol oleh pihak yang tidak mempunyai hak (pihak ke-3).
Begitu banyak pengguna seperti departemen pertahanan, suatu perusahaan atau
bahkan individu-individu tidak ingin informasi yang disampaikannya diketahui oleh orang
lain atau kompetitornya atau negara lain. Oleh karena itu dikembangkanlah cabang ilmu yang
mempelajari tentang cara-cara pengamanan data atau dikenal dengan istilah Kriptografi.
Keamanan data menjadi salah satu fokus dalam sebuah sistem di berbagai bidang dan
berbagai alat yang digunakan dalam melakukan pertukaran data atau informasi. Salah satu
cara pengamanan data atau informasi dapat dilakukan dengan mencegah agar data atau
informasi yang digunakan tidak dapat dibaca, dimodifikasi atau direkayasa sehingga tidak
terjadi penyalahgunaan data yang ada. Kriptografi merupakan ilmu dalam bidang keamanan
komputer yang dapat melakukan hal diatas.
password secara langsung dan tidak langsung , akan tetapi metode yang dianggap lebih aman
adalah dengan tidak mengirimkan password secara langsung. Salah satu metode autentikasi
untuk tidak mengirimkan password secara tidak langsung dapat dilakukan dengan
menggunakan protokol autentikasi “challenge response”
1.2 Rumusan Masalah
Masalah yang akan dibahas pada laporan skripsi ini adalah mengetahui keamanan
transaksi on-line dengan cara autentikasi pada klien menggunakan protokol challenge
response serta penerapan fungsi algoritma SHA-1 hash fungction guna menjamin keamanan
dalam hak akses suatu transaksi on-line.
1.3 Batasan Masalah
Pada ruang lingkup penulisan laporan skripsi ini yang membahas sistem autentikasi
terhadap nasabah yang ingin melakukan transaksi dengan berbasiskan Web untuk aplikasi
bank online. Adapun batasan-batasan yang dilakukan yaitu antara lain:
a. Untuk proses pendaftaran nasabah bank tidak dilakukan secara online guna
menghindari terjadinya pengiriman password secara langsung
b. Algoritma untuk melakukan proses autentikasi adalah algoritma SHA-1
c. Mengimplementasikan prinsip one way hash menggunakan algoritma SHA-1
d. Protokol yang digunakan yaitu menggunakan protocol two way challenge response
dengan prinsip one way hash fungction karena hanya satu pihak saja yang akan
di-autentikasi yaitu pihal klien
e. Tidak membahas detail transaksi setelah peroses autentikasi berhasil
f. Tidak menangani proses ganti password pada klien, dimana dalam hal ini password
1.4 Tujuan
Adapun tujuan yang hendak dicapai pada penulisan laporan skripsi ini yaitu:
Mengimplementasikan protokol two way challenge response dengan menggunakan algoritma
SHA-1 guna mengetahui keaslian dari klien yang masuk pada transaksi online.
1.5 Manfaat
Manfaat yang diperoleh dari tugas akhir ini adalah :
Mengetahui keamanan transaksi dengan cara autentikasi klien yang menggunakan protokol
challenge-response. Transaksi ini menghindari adannya transfer password secara langsung
dalam transaksi online yang beresiko serta dapat diserang oleh penyusup.
1.6 Metode Penelitian
Metode penelitian yang dilakuakan yaitu dengan melakukan study kasus dengan
langkah-langkah sebagai berikut:
a. Melakukan study kepustakaan untuk mencari dan mempelajari metode-metode
hashing dan fungsi hash yaitu menggunakan fungsi hash SHA-1, serta mencari
informasi dari berbagai sumber untuk bahan kajian sesuai dengan sistem yang dibuat.
Bahan kajian yang digunakan dapat berasal dari buku, artikel, serta internet.
b. Perancangan,Implementasi dan ujicoba sistem
Dengan cara menerapkan hasil rancangan kedalam sebuah bahasa pemrograman
(kode) yang dapat dimengerti oleh mesin sehingga dapat menghasilkan sebuah
program yang bisa digunakan untuk proses autentikasi pada komputer server dan
1.7 Sistematika penulisan
Sistematika penulisan laporan skripsi ini terdiri dari lima (5) bab:
BAB 1 PENDAHULUAN
Dalam bab ini memaparkan mengenai latar belakang masalah, batasan masalah,
tujuan penelitian,rumusan masalah, manfaat penelitian, metode penelitian dan sistematika
penulisan.
BAB 2 LANDASAN TEORI
Pada bab ini menjelaskan tentang teori-teori yang bersangkutan dan yang mendukung
serta diperlukan sesuai dengan masalah yang terjadi.
BAB 3 ANALISIS DAN PERANCANGAN SISTEM
Pada 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 PROGRAM
Pada bagian ini akan membahas mengenai implementasi dari program yang telah
dibuat.
BAB 5 ANALISA HASIL DAN KESIMPULAN
Pada bab ini akan menganalisa hasil yang telah didapat selama proses implementasi
BAB 2
LANDASAN TEORI
2.1 Pengantar Kriptografi
Secara etimologi kata kriptografi (Cryptography) berasal dari bahasa Yunani, yaitu
kryptos yang artinya yang tersembunyi dan graphein yang artinya tulisan (Prayudi, 2005).
Awal mula kriptografi dipahami sebagai ilmu tentang menyembunyikan pesan (Sadikin,
2012), tetapi seiring perkembangan zaman hingga saat ini pengertian kriptografi berkembang
menjadi ilmu tentang teknik matematis yang digunakan untuk menyelesaikan persoalan
keamanan berupa privasi dan otentikasi (Diffie, 1976).
Kriptografi yaitu pengamanan data atau informasi dengan menggunakan kode rahasia
(secret code). Atau dapat juga diartikan sebagai metode untuk meng-enkripsi
(menyembunyikan) dan men-dekripsi (memunculkan) data atau informasi dengan bantuan
kunci.
2.1.1Komponen Kriptografi
Berikut beberapa komponen dalam kriptografi menurut (Riadi, 2014) yaitu:
1. Ciphertext: merupakan suatu pesan yang telah melalui proses enkripsi atau hasil
keluaran dari proses hash kriptografi. Pesan yang terdapat pada kode text ini tidak
bisa dibaca karena tidak memiliki makna (arti).
2. Plaintext :plaintext merupakan teks asli dari pesan yang diketik serta memiliki
makna (arti) teks asli ini yang diproses menggunakan algoritma kriptografi untuk
menjadi chiphertext.
3. enkripsi : merupakan pengamanan data yang dikirimkan agar terjaga
yang tidak dimengerti. Enkripsi bisa diartikan sebagai kode atau chipper. Enkripsi
merupakan suatu penyembunyian pesan.
4. Dekripsi : dekripsi merupakan kebalikan dari enkripsi. Pesan yang telah di
enkripsi akan dikembalikan kedalam bentuk aslinya, sehingga dekripsi merupakan
pemunculan pesan. Algoritma yang digunakan untuk dekripsi berbeda dengan
untuk enkripsi.
5. Kunci : kunci digunakan untuk proses enkripsi dan dekripsi. Kunci sendiri terbagi
menjadi 2 jenis yaitu private key (kunci rahasia) dan public key (kunci umum).
6. Cryptanalysis : dapat 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
plaintext ke chipertext dan sebaliknya.
Proses perubahan pesan atau data dapat digambarkan sebagai berikut :
2.1.2 Algoritma Kriptografi
Algoritma kriptografi dibagi menjadi 2 bagian berdasarkan kunci yang dipakainyayaitu
algoritma simetris dan algoritma asimetris (Prayudi, 2005):
a. Algoritma Simetrik (Syimetric Chipper System)
Pada algoritma simetrik ini, kunci untuk proses enkripsi dan dekripsi pada
dasarnya menggunakan kunci yang sama, sehingga kunci ini sering disebut
dengan secret key (kunci rahasia) sehingga harus dirahasiakan. Bila mengirim
pesan dengan menggunakan algoritma ini, si penerima pesan harus diberitahu kunci
dari pesan tersebut agar bisa mendekripsikan pesan yang terkirim. Keamanan dari
pesan yang menggunakan algoritma ini tergantung pada kunci. Jika kunci tersebut
diketahui oleh orang lain maka orang tersebut akan dapat melakukan enkripsi dan
dekripsi terhadap pesan. Contoh algoritma yang menggunakan kunci simetrik ini
seperti DES, Blowfish, IDEA, twofish, MARS, 3DES, AES.
b. Algoritma Asimetrik (Assymetrick Chipper System)
Algoritma asimetrik sering juga disebut dengan algoritma kunci public, dengan arti kata
kunci yang digunakan melakukan enkripsi dan dekripsi berbeda. Pada algoritma asimetri
kunci terbagi menjadi dua bagian, yaitu :
1. Kunci umum (public key), kunci yang boleh semua orang tahu (dipublikasikan).
2. Kunci rahasia (private key), kunci yang dirahasiakan (hanya boleh diketahui oleh
satu orang).
Kunci-kunci tersebut berhubungan satu sama lain. Dengan kunci public orang dapat
mengenkripsi pesan tetapi tidak bisa mendekripsikannya. Hanya orang yang memiliki
kunci rahasia yang dapat mendekripsikan pesan tersebut. Algoritma asimetri bisa
mengirimkan pesan dengan lebih aman daripada algoritma simetri.
Contoh algoritma yang mengunakan algoritma asimetris seperti Knapsac, RSA
2.1.3 Tujuan Kriptografi
Ada empat tujuan dasar dari ilmu kriptografi ini yang juga merupakan aspek
keamanan pada informasi seperti yang disebutkan dari sebuah blog dengan judul
“Pengertian,Tujuan dan Jenis-jenis Kriptografi” (Ramdani, 2013):
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.
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.
c. Autentikasi : adalah berhubungan dengan identifikasi/pengenalan, baik secara
kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling
berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan
melalui kanal harus diautentikasi 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.
2.2 jenis Serangan Terhadap Keamanan Data
Dibawah ini dijelaskan beberapa mancam jenis-jenis penyerangan yang dilakukan
terhadap pesan yangsudah dienkripsi menurut sebuah blog dengan judul “ kriptografi” yang
a. Chiphertext – only – attack
Penyerang hanya mendapatkan pesan yang sudah tersandikan saja. Cryipanalist hanya
mempunyai pesan teks-kode dan semuanya di enkrip dengan algoritma yang sama.
Crypanalist tidak mempunyai kunci dan teks asinya, Sebelum melakukan serangan,
kripanalis selalu membuat asumsi algoritma sandi yang digunakan dalam ciphertext
itu untuk menentukan teknik memecahkannya. Pekerjaan crypanalist yaitu
mendapatkan teks asli atau mencari kuncinya terleih dahulu.
b. Known – plaintext - attack
Penyerang mempunyai baik plaintext maupun ciphertext-nya dan berusaha untuk
mencari hubungan diantara keduanya. Biasanya dilakukan untuk menemukan kunci
dan algoritma penyandiannya yang akan berguna untuk memecahkan pesan tersandi
berikutnya.
c. Chosen – plaintext – attack
Penyerang memilih plaintext tertentu, yaitu plaintexts yang lebih mengarahkan ke
penemuan kunci, untuk disandikan dan mempelajari/membandingkan hasil sandinya
(ciphertext). Biasanya cara ini digunakan untuk memecahkan sandi pada
metode penyandian asimetris, yang mana kripanalis biasanya telah memiliki kunci
publik-nya.
d. Chosen – ciphertext – attack
Penyerang memilih ciphertext, dan kemudian melalui ciphertext itu berusaha untuk
mendapatkan plaintext yang sesuai. Biasanya dilakukan untuk menyerang kriptografi
sistem kunci publik.
1. Sniffing : Yaitu mengintip pesan (baik yang belum ataupun sudah di-enkripsi) dalam
suatu saluran komunikasi. Sniffer 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 direkam untuk
menipu salah satu pihak.
3. Spoofing : Penyerang bisa menyamar menjadi orang lain. Penyerang berusaha
meyakinkan pihak-pihak lain bahwa tak ada yang salah dengan komunikasi yang
dilakukan, padahal komunikasi dilakukan dengan penyerang.
4. Man in the Middle : Jika spoofing hanya menipu satu pihak, maka pada kategori ini
penyerang dapat berkuasa penuh atas jalur komunikasi dan bisa membuat berita atau
informasi palsu.
2.3 Permasalahan Pada Pengiriman Password
Berikut adalah beberapa sekenario mengenai permasalahan pada pengiriman
password yang tidak aman seperti yang dikutip dari makalah mengenai “Metode Autentikasi
melalui Saluran Komunikasi yang Tidak Aman” yang ditulis oleh (Karhendana, 2006).
a. Pengiriman password dalam bentuk plaintext
Dalam skema yang paling sederhana, password dikirimkan dari pengguna ke
sistem dalam bentuk plainteks. Proses ini dapat dilihat pada Gambar 1. Pada gambar
tersebut, Alice sebagai pengguna yang akan diautentikasi dan Bob sebagai server
Pengiriman password tersebut masih rentan terhadap serangan, karena
password dikirimkan dalam bentuk plaintext sehingga penyadap dapat dengan
langsung mengetahui password Alice.
b. Pengiriman password setelah melalui fungsi hash
Untuk mengatasi serangan password dalam bentuk plaintext, maka
dikembangan pengiriman password dengan memanfaatkan fungsi hash dalam
kriptografi, data yang dikirim adalah hasil keluaran dari fungsi hash / message digest
terhadap password. Berikut gambar pengiriman password dalam bentuk keluaran
fungsi hash
Tujuan dari pengiriman password dengan hash ini adalah untuk menyamarkan
password yang dikirim ke sistem, sehingga jika terjadi penyadapan, tidak akan mudah
untuk mendapatkan password aslinya. Dengan demikian, secara efektif mengurangi Gambar 2.2 Pengiriman password dalam bentuk plaintext
Metode dengan hash tersebut juga masih rentan terhadap serangan karena
pengirim mengirimkan password dalam bentk digest, sedangkan server hanya
menyimpan daftar password yang valid, sehingga untuk melakukan proses autentikasi
server harus melakukan hashing dari password tersebut. Serangan yang ada yaitu jika
ada penyerang yang mengaku sebagai server maka penyerang tersebut dapat
mengakses semua daftar password klien.
c. Pengiriman password menggunakan fungsi hash dan verifikasi password dalam
bentuk digest
Untuk menghindari terjadinya penyusupan seperti pada poin sebelumnya maka
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 gambar
penyimpanan password menggunkaan message digest
Dengan menggunakan cara ini, jika terjadi penyadapan, maka penyadap hanya
aslinya. Namun skema ini masih rentan terhadap jenis serangan replay attack. Replay
attack adalah suatu bentuk serangan pada jaringan komunikasi di mana pengiriman
data yang valid disadap oleh pihak yang tidak sah, kemudian data tersebut dikirimkan
ulang atau ditunda pengirimannya. Ilustrasi serangan replay attack dapat dilihat pada
gambar dibawah ini.
Walaupun penyerang hanya mendapatkan message digest dari korban ia dapat
bertindak sebagai korban dengan mengirimkan kembali message digest tersebut pada
server.
d. Pengiriman password dengan satukali hash
Pada ilustrasi sebelumnya, dapat dilihat bahwa walaupun Eve hanya berhasil
mendapatkan message digest dari password Alice, ia masih dapat mendapatkan akses
dari Bob dengan mengirimkan kembali message digest tersebut. Bob akan mengira
Eve adalah Alice dan verifikasi password dianggap berhasil. Oleh karena itu,
dikembangkanlah sebuah skema perbaikan dari skema sebelumnya. Skema ini
(pseudorandom) yang dikirimkan sebagai challenge oleh pihak yang akan
mengautentikasi. Nonce yang digunakan setiap kali akan berbeda dengan sebelumnya.
Ketika menerima nonce, pihak yang ingin diautentikasi harus mengirim jawaban
sesuai nonce yang diterima. Dengan demikian, jawaban dari Alice akan berbeda-beda
tergantung nonce yang diterimanya. Sehingga, penggunaan nonce akan
menghilangkan kerentanan terhadap replay attack.
Bob mengirimkan nonce sebagai challenge. Alice kemudian menjawab dengan
mengirimkan hasil hash dari password Alice yang sudah disambung atau
dikonkatenasi dengan nonce yang dikirim oleh Bob. Karena sifat fungsi hash
kriptografis yang keluarannya akan berubah drastis begitu masukannya berubah, maka
setiap nonce yang berbeda akan menghasilkan keluaran yang berbeda pula ketika
disambung dengan password asli.
Cara ini dapat menghilangkan kerentanan terhadap replay attack. Namun,
skema ini memiliki kelemahan, yaitu Bob harus menyimpan daftar password dalam
bentuk asli atau plainteks. Seperti telah dijelaskan sebelumnya bahwa menyimpan
password dalam bentuk plainteks sangat beresiko jika terjadi penyusupan ke dalam
sistem. Jika seseorang berhasil menyusup atau mengambil alih Bob, maka penyusup
e. Pengiriman password dengan dua kali hash
Ini adalah perbaikan dari pengiriman password dengan satu kali hash dengan
melakukan hashing antara password yang telah di hash dengan challenge. Dalam
metode ini server akan menyimpan password dalam bentuk message digest sehingga
akan menyulitkan terjadinya reply attack.
Proses pada sisi klien:
a. Clien menerima challenge dari server
b. Password klien dalam bentuk plaintext diproses dengan menggunkan fungsi hash
p, sehingga diperoleh H(p).
c. Hasil keluaran fungsi hash tersebut disambung atau di satukan dengan challenge
dari server sehingga diperoleh H(p) + n.
d. Hasil penyambungan teersebut dip roses dengan menggunakan fungsi hash
sehinga diperoleh H(H(p) + n).
Proses pada sisi server:
a. Server 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 klien sehingga diperoleh H(p) + n.
c. Hasil tersebut kemudian diproses menggunkan fungsi hash sehingga diperoleh
H(H(p) + n).
d. Server membandingan perhitungan H(H(p) + n) dari klien, jika keduanya sama
berarti klien merupakan orang yang autentik/tepat.
2.4 Autentikasi
Autentikasi berhungungan dengan pengenalan identitas seseorang, menyangkut hak
akses yang dimiliki pada saat memasuki sistem. Hasil dari protocol autentikasi adalah berupa
penerimaan identitas dari satu pihak yang dikenal, atau penolakan identitas dari pihak yang
tidak dikenal. Jadi autentikasi adalah menentukan seseorang atau sesuatu tersebut adalah
benar-benar merupakan orang atau sesuatu yang tepat. Faktor autentikasi merupakan suatu
informasi yang digunakan untuk mengidentifikasi identitas seseorang untuk keamanan.
Faktor-faktor autentikasi dapat meliputi :
1. Sesuatu yang dimiliki pengguna
Misalkan : ID cart, kartu kredit, telepon seluler.
2. Sesuatu yang diketahui pengguna
Misalkan : password, PIN (Personal Identification Number)
3. Sesuatu yang ada pada pengguna
2.4.1 Sistem autentikasi
Sistem autentikasi ini terdiri dari 2 entitas yaitu klien dan server. Klien akan
menerima serial number/user id dan PIN yang akan digunakan untuk menghasilkan kode
hash. Sedangan server bertugas melakukan pengiriman challenge yang berupa angka random,
menghitung nilai dari angka random tersebut, dan melakuan autentikasi terhadap klien.
Keamanan sistem one way hash function yaitu fungsi hash yang dihasilkan tidak bisa
dibalikan (non-invertability). Oleh sebab itu, baik klien maupun server harus menggunakan
algoritma yang sama untuk dapat saling beroperasi.
Berikut ilustrasi gambar yang menjelaskan tentang autentikasi dari sisi klien dan juga
sisi server dengan sistem challenge response yang akan menghasilkan nilai hash yang
iterative.
Pertama kali user melakukan “koneksi” yaitu dengan proses login. Setelah user
autentikasi pihak server yaitu memeriksa respon user dan memberikan jawaban kepada klien
tentang benar atau tidaknya respons yang dikirimkan. Setelah proses pemeriksaan, maka
terdapat evaluasi tentang akses atau tidaknya user berdasarkan autentikasi server.
2.5 Protokol Chalenge response
Menurut J.C.A. Van Der Lubbe dalam bukunnya yang berjudul “Basic Methods of
Cryptography” Terdapat beberapa protokol dalam challenge response ini, yaitu seperti Two
Way Challenge Response, Tree Way Challenge response I, Tree Way Challenge response II.
Namun yang akan digunakan pada tugas akhir ini adalah protokol two way challenge
response.
Dalam protokol Two Way Challenge Response, misalkan entitas A memverifikasi
keaslian entitas B. A mengirimkan angka random RA (challenge) kepada B. kemudian B
akan mengola nilai RA menjadi oK(RA) (response dengan menggunkan fungsi symmetrical
one way dan kunci rahasia K. pada saat bersamaan, A juga mengelola challenge tersebut
dengan menggunakan algoritma dan kunci yang sama. Dalam hal ini A merupakan pusat
komputer (server) yang menyimpan semua kunci dari klien dimana A dapat diakses oleh
semua klien yang ter-autorisasi. Berikut gambar yang menunjukan protokol Two Way
Pada gambar diatas A memverivikasi keaslian B, dan tidak sebaliknya. Dalam protokol Tree
Way Challenge Response, A akan memverifikasi keaslian B dan sebaliknya B juga akan
memverifikasi keaslian A. berikut gambaran proses pada protokol Tree Way Challenge
Response
Pada gambar diatas A dapat memastikan keaslian B dari hasil ok(RA), B tidak hanya
mengembalikan hasil oK(RA) saja tetapi B juga mampu memverifikasi keaslian A dengan
nilai oK(RB) yang dikembalikan oleh A. Kelemahan dari penyusunan protokol seperti di atas
yaitu pada adanya reflectionattack, berikut gambarannya
Gambar 2.9 Two Way Challenge Response
Jika seorang penggangu C datang dengan mengenerate 2 session secara parallel, maka C akan
dapat menyesatkan A dan dan akan meyakin kan A bahwa A sedang berkomunikasi dengan
B, tetapi pada kenyataannya A sedang berkomunikasi dengan C. jika A mengirimkan
Chalenge RA maka C akan menerima challenge tersebut, kemudian C akan mengembalikan
nilai RA tersebut pada A sama seperti yang dilakuakan oleh B. A mentransfer oK(RA) dan
challenge baru RA. C merespon dengan nilai oK(RA) yang sama. Hal ini akan membuktikan
bahwa sesungguhnya A tidak sedang berkomunikasi dengan B, dalam hal ini entitiy
autentikasi antara klien dan server tidak dapat dijamin. Masalah ini dapat diatasi dengan
mengirimkan alamat dari A dan B.
Gambar berikut ini menunjukan hasil dari tree way challenge response II yang
tergantung dari alamat yang relevan dan sistem yang aman terhadap reflection attack. Gambar 2.11 Reflection attack
Dalam semua contoh diatas, di asumsikan bahwa sebelum proses autentikasi di
inisialisasikan, A dan B telah mempunyai kunci rahasia K. pada gambar dibawah 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 menggunakan dua kunci rahasia K1 dan K2.
2.5.1 Autentikasi dengen Protokol challenge response
Proses autentikasi dengan Protokol challenge response 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 klien menginginkan hak akses terhadap suatu
sistem, maka sistem akan mengirimkan challenge kepada klien dan kemudian klien
mengirimkan hasil (kode) yang telah diolah, kemudian sistem akan membandingkan kode
tersebut dengan kode yang telah diolah oleh server. Jika hasil perbandingan tersebut sama,
maka klien bisa mendapat hak akses yang diinginkan dan sistem akan memberikan hak akses
tersebut kepada klien.
Seorang klien yang akan melakukan koneksi terhadap suatu sistem, maka klien harus
memasukan serial number/user id sebelum sistem tersebut memberian hak akses terhadap
klien tersebut. Proses calenge-response yang terjadi disini yaitu klien menghubungi server,
kemudian server akan mengirimkan challenge. Klien member response atas challenge
tersebut dengan menggunakan password yang dimilikinya.
Pemilihan konsep challenge-response diatas didasarkan pada efisiensi penggunaan
kunci. Pada challenge-response pihak klien hanya akan menyimpan satu kunci yaitu kunci
untuk password.
Gambar dibawah ini menunujukan proses autentikasi menggunakan protokol
challenge-response, dimana yang menjadi challenge yaitu berupa angka random.
Pada gambar diatas saat Bob hendak melakukan transaksi kepada Alice, kemudian Alice akan
memberikan challenge berupa bilangan random. Bob mengolah respon atas challenge
tersebut dengan password dan bilangan random yang dimilikinnya kemudian Alice akan
membandingkan hasil respon yang dikirimkan, jika hasil perbandingan sama maka Alice
akan memberikan akses pada Bob untuk melakukan transaksi.
2.6 Fungsi Hash
Fungsi hash berhubungan dengan keamanan data. Fungsi hash juga dapat digunakan
untuk autentikasi dan integritas data. Fungsi hash secara efisien akan mengubah string input
dengan panjang yang tak hingga menjadi string output dengan panjang tetap yang disebut
dengan nilai hash. Hash juga termasuk salah satu bentuk teknik kriptografi.
Saat ini penerapan fungsi hash dapat di jumpai pada website-website yang
menyediakan layanan untuk download file ataupun program secara resmi. Hash umumnya
digunakan untuk mengecek integritas dari sebuah pesan atau file. File atau pesan yang sudah
berubah akan memiliki nilai hash yang berbeda. Sebagai contoh, dengan sebuah algoritma
hash, pesan'hello' akan memberikan nilai hash 12345 sedangkan pesan 'hallo' memiliki nilai
hash 83746. Dengan kata lain output hash dari kata 'hello' tidak akan sama dengan 'hallo'.
Seperti yang kita ketahui bahwa kedua pesan tersebut hanya memiliki perbedaan sedikit saja
yaitu satu huruf namun nilai hash yang dimiliki oleh kedua pesan tersebut sangat jauh
berbeda.
Fungsi hash dapat digunakan sebagai :
a. Menyimpan password
Password didalam sebuah sistem dianjurkan untuk disimpan dengan menggunakan
fungsi hash. Dengan demikian administrator sistem tersebut sekalipun tidak akan
dapat melihat atau menggunakan password user yang telah menjadi membernya. Hal
ini akan memberikan impact yang baik kepada user bahwa baik sistem maupun
administrator sangat menghargai privasi dari anggotanya. Selain itu pula, jika
database password pengguna, dengan cara tertentu dapat diakses oleh publik, maka
Penggunaan Hash sebagai sidik jari pesan (message fingerprint) digunakan untuk
mengecek apakah file yang kita simpan masih sesuai dengan file asli ketika hash file
tersebut dibuat dan belum berubah. Jika terdeteksi adanya file yang tidak memiliki
hash yang sama dengan yang telah dibuat sebelumnya, maka dapat dipastikan bahwa
file tersebut telah berubah.
Fungsi hash sangat sensitif terhadap perubahan pada text asli pesan, jika pesan berubah 1 bit
maka nilai hash akan berubah signifikan dengan begitu, fungsi hash menjadi bagian yang
sangat penting dan perlu diterapkan pada sistem keamanan data.
2.6.1 Sifat-sifat Fungsi Hash Pada Kriptografi
Berikut ini merupakan sifat-sifat yang dimiliki oleh fungsi hash sekaligus kelebihan
dari fungsi hash :
1. Tahan Preimej (preimage resistand) : bila diketahui nilai hash h maka sulit untuk
mendapatkan m dimana h=hash(m).
2. Tahan Preimej kedua (second preimage resistand) : bila diketahui input m1 maka
sulit mencari input m2 (tidak sama dengan m1) yang menyebabkan hash (m1)= hash
(m2)
3. Tahan Tumbukan (collision resistand) : sulit mencari dua inpur berbeda yaitu m1
dan m2 yang menyebabkan hash (m1)= hash (m2)
2.6.2 Fungsi Hash Satu Arah (One Way Hash Fungction)
Fungsi hash merupakan fungsi yang secara efisien merubah string input M dengan
panjang berhingga menjadi string output dengan panjang tetap yang disebut nilai hash (h).
sedangkan fungsi satu arah (One Way Fungction) adalah fungsi yang relatif mudah untuk
Fungction artinya mudah untuk menghitung nilai hash dari input string yang diberikan, tapi
sulit untuk menghasilkan string yang nilai hash nya sudah diketahui.
Fungsi hash bersifat collision free, artinya bahwa tidak akan mungkin menemukan 2
message berbeda dengan menggunakan kode hash yang sama, terdapat banyak fungsi yang
memasukan input berhingga dan mengembalikan output dengan nilai tetap, tapi ada beberapa
karakteristik yang dimiliki oleh one wayhash fungction yaitu :
I. Jika diketahui nilai M, maka akan mudah untuk menghitung nilai hash (h).
II. Jika diketahui nilai hash (h), maka sulit untuk mengetahui nilai M.
III. Jika diketahui M, maka akan sulit untuk menemukan message lain M’ seperti H(M) =
H(M’)
Berikut gambaran ilustrasi dari one wayhash fungction
Pada one way hash fungction yaitu bahwa mudah untuk mengetahui nilai
output, tetapi sulit untuk mengetahui nilai input, selain itu tingkat keamanannya juga
sudah tinggi sebab fungsi hash ini menggunakan sepenuhnya bilangan random.
2.6.3 Kegunaan One Way Hash Fungction
1. Challengehashautentification, merupakan cara sederhana untuk melindungi
password pada saat login.
3. Data integrity dan messageauthentication code
4. Enkripsi password
2.6.4 Kelebihan dan Kekurangan Fungsi Hash
Menurut (Pitry, 2010) kelebihan dan kekurangan pada fungsi hash adalah :
1. Kelebihan :
1. Hasil dari funsi hash panjangnya tetap, panjang masukan tidak akan
mempengaruhi panjang nilai hash.
2. Karena tidak merubah data asli maka tidak diperlukan proses dekripsi
3. 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 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 asli. Hal ini dipersulit
dengan kemungkinan terjadinya bentrokan.
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
2.6.5 Algoritma hashFungction
Fungsi hash kriptografi adalah fungsi hash yang memiliki beberapa sifat keamanan
sehingga dapat dipakai untuk tujuan kemanan data. Umumnya digunakan untuk keperluan
autentikasi data, berikut beberapa algoritma fungsi hash:
Dari beberapa algoritma fungsi hash pada gambar diatas, yang akan dipakai pada tugas akhir
ini adalah algoritma fungsi hash SHA-1.
2.7 Secured Hash Algorithm (Sha-1)
SHA-1 merupakan salah satu algoritma hash fungction. Sebagaimana yang dikutip
dari blog “Fungsi Hash MD5 dan SHA-1” yang ditulis oleh (Kurniawan, 2012), dijelaskan
bahwa SHA dibuat berdasarkan rancangan yang serupa dengan MD4 yang dibuat oleh Prof.
Ronald L. Rivest dari MIT. Algoritma SHA menerima masukan berupa pesan dengan ukuran
maksimum 264 bit (2.147.483.648 gigabyte) menghasilkan message digest yang panjangnya
160 bit (20-byte) dan 40 karakter enkripsi, lebih panjang dari message digest dengan
algoritma MD5 yang hanya 128 bit.
Gambaran umum pembuatan message digest dengan algoritma SHA-1 diperlihatkan
pada gambar di bawah ini.
2.7.1 Cara Kerja SHA-1
Secara umum, tahap pembuatan messagedigest dengan SHA-1 adalah sebagai berikut :
a. Preprocessing
Pada tahap preprocessing ini terdiri dari beberapa langkah, yaitu :
1. Penambahan padding bits. Pesan ditambah dengan sejumlah padding bits sedemikian
sehingga panjang pesan setelah ditambahi padding bits adalah 64 bit kurang dari
kelipatan 512. Panjang padding bits haruslah berada antara 1 hingga 512 bit. Hal
tersebut menyebabkan pesan dengan panjang 448 tetap harus ditambahkan bit
penyangga sehingga panjangnya akan menjadi 960 bit. padding bits sendiri terdiri dari
sebuah bit 1 diikuti sisanya dengan bit 0.
2. Penambahan nilai panjang pesan semula. Pesan yang telah diberi padding bits
selanjutnya ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula.
3. Inisialisasi penyangga (buffer) message digest. Algoritma SHA-1 dalam operasinya
membutuhkan lima buah buffer yang masing-masing besarnya 32 bit sehingga nanti
hasil akhirnya akan menjadi 160 bit. Kelima buffer tersebut dalam operasi SHA-1 ini
akan berperan untuk menyimpan hasil antar putaran sekaligus untuk menyimpan hasil
akhir. Kelima buffer tersebut memiliki nama A, B, C, D ,dan E. Buffer-buffer tersebut
harus diinisialisasi dengan nilai-nilai sebagai berikut (dalam notasi heksadesimal):
A = 67452301
B = EFCDAB89
C = 98BADCFE
D = 10325476
E = C3D2E1F0
B.Hashing
Proses hashing dilakukan per blok dengan besar 512 bit tiap bloknya.
Dalam pengolahan ini terdapat 4 putaran yang tiap putarannya dilakukan sebanyak 20
kali. Tiap putaran memiliki proses yang berbeda – beda. Sebelum putaran
pertama dilakukan inisialisasi 5 buah variable dengan besar 32 bit yang menampung
Pesan dibagi menjadi L buah blok yang masing-masing panjangnya 512 bit.
Setiap blok 512-bit diproses bersama dengan buffer MD menjadi keluaran 128-bit.
Proses tersebut disebut proses HSHA . Proses HSHA terdiri dari 80 buah putaran dengan
setiap putarannya dilakukan hal seperti gambar di atas.
Pada gambar, Yang menyatakan blok 512-bit ke-q dari pesan yang telah
ditambah padding bits dan tambahan 64 bit nilai panjang pesan semula. MDq adalah
nilai message digest 160-bit dari proses HSHA ke-q. Pada awal proses, MDq berisi
nilai inisialisasi buffer MD. Setiap putaran menggunakan operasi dasar yang sama
(dinyatakan sebagai fungsi f).
Operasi dasar SHA yang diperlihatkan pada gambar diatas dapat ditulis dengan persamaan
sebagai berikut:
yang dalam hal ini,
a, b, c, d, e = lima buah pengubah penyangga 32-bit (berisi nilai penyangga A, B, C, D, E)
t = putaran, 0 ≤ t ≤ 79
ft = fungsi logika
CLSs = circular left shift sebanyak s bit
Wt = word 32-bit yang diturunkan dari blok 512 bit yang sedang diproses
Kt = konstanta penambah
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Sistem keamanan pada transaksi online misalnya e-banking biasannya menggunakan
PIN sebagai password, contoh yaitu transaksi perbankan lewat internet. Transaksi ini
melibatkan klien (nasabah bank) dan bank (server autentikasi). Proses autentikasi transaksi
keuangan tersebut dengan menggunakan perhitungan sebagai berikut :
1. Klien berkomunikasi dengan sistem autentikasi pada bank dengan menggunakan
server side autentification (situs web dari bank yang dituju). Hal ini menjamin bahwa
klien akan berkomunikasi dengan bank yang sah.
2. Klien memasukan informasi berupa identitas (login id) yaitu berupa serial number,
yang selanjutnya bank akan memeriksa dalam data base atas keberadan serial number
tersebut. Dan selanjutnya bank akan memberikan angka random sebagai tantangan
(challenge), dan meminta jawaban (response) dari angka random tersebut.
3. Klien membuka aplikasi kalkulator sederhana dan memasukan angka random
tersebut, dimana sebelumnya user harus memasukan password yang akan digunakan
untuk proses pengolahan hash.
4. Selanjutnya aplikasi kalkulator tersebut akan melakukan proses perhitungan hash
yaitu hashing antara password yang sudah ter hash dengan challenge angka random
dari bank.
5. Setelah selesai proses kalkulasi, aplikasi tersebut akan menghasilkan satu bilangan
yang akan disebut dengan hash kode atau nilai hash.
6. Klien memasukan hasil perhitungan (nilai hash) tersebut kedalam form web untuk
7. Server autentikasi pada bank akan melakukan autentikasi dengan membandingan hasil
hash kode dari klien dengan hasil hash kode yang juga dihitung oleh server bank.
8. Jika kedua hash kode tersebut identik (sama) maka klien dapat melakukan transaksi
selanjutnya.
Dalam kasus autetikasi ini, bank akan selalu memberikan tantangan (challenge)
berupa angka random kepada setiap klien yang login. Setiap kali klien login, maka challenge
yang dihasilkan juga akan selalu berubah. Sehingga akan sedikit sekali kemungkinan sistem
ini terbongkar. Hal ini merupakan sifat dari one time pad.
a. Diagram Usecase
Gambar 3.2 Diagram usecase
Dari gambar diagram diatas dapat diketahui bahwa terdapat 2 entitas yaitu klien dan bank.
Secara umum, klien harus login terlebih dahulu sebelum masuk kesistem, setelah login maka
klien akan menerima challenge, menghitung nilai hash dan memberikan response atas
challenge yang diberikan bank. Sedangkan bank bertugas untuk mengirimkan challenge,
b. Entity Relational Diagram
Pada sistem autentikasi klien hanya memiliki satu entitas yaitu Entitas klien yang tersimpan
dalam database tersebut mempunyai atribut Password (sebagai Preimary Key), atribut gagal
yang berfungsi untuk mencatat berapakali user gagal dalam memberikan respon, jika lebih
dari 4 kali maka akun user akan di blok, atribut curtime berfungsi untuk mencatat di menit
keberapa terakhir user melakukan kesalahan dalam memberi respon. Terdapat pula atribut
user_id,nama, dan alamat. Klien hanya memasukan serial number kedalam sistem, sedangkan
password dimasukkan untuk proses perhitungan kode hash.
User_id gagal Password(Primary key) Nama Alamat
105314001 0 b148a76bf4a8fe57e882234a97fc4af5e3438f93 Yosafat M R Pts
123456701 0 a7a6265254d36d6c8abf7ca3cdec407bd06cffc3 Analleli Calvillo Arizona
123456702 0 d7cdf09fc0f0426e98c9978ee42da5d61fa54986 Zachary Smith Misisipi
Tabel 3.1 Relational Model Klien
Dari table diatas, password klien akan tersimpan dalam bentuk digest pada database bank.
Untuk melakukan proses hashing maka klien memasukan password aslinya, sedangkan pihak
Dalam hal ini, proses hasing dari pihak klien maupun pihak bank dengan menggunakan
password yang sudah tersignature.
c. Data Flow Diagram
Penggunaan sistem autentikasi klien dapat dimodelkan dengan DFD sebagai berikut
1. Diagram konteks
Klien memasukan data berupa serial number, dari serial number tersebut maka klien dapat
masuk kedalam sistem autentikasi klien. Sistem akan memberikan tantangan dan akan
menghasilkan nilai hash. Sistem akan memberikan konfirmasi atas nilai hash tersebut.
Berikut gabaran sistem yang akan dibangun yaitu dengan menggunakan konfigurasi
topologi STAR, dimana terdapat satu buah pusat sebagai bank dan ada banyak klien yang
dapat mengakses bank tersebut, diantara klien satu dan lainnya tidak dapat terhubung
sehingga jika ada satu pihak klien mengalami kesulitan maka hal ini tidak akan mengganggu
akses klien yang lainnya.
2. Diagram Berjenjang
dari diagram berjenjang tersebut, diketahui terdapat 1 level yaitu proses login,
mengirim challenge, mengolah hash, dan autentikasi klien. Gambar 3.6 Diagram berjenjang sistem autentikasi klien
3.2 Analisa Teknologi
Perangkat keras (hardware) dan perangkat lunak (software) yang digunakan untuk
pembuatan sistem ini yaitu :
1. Hardware :
Prosesor : Intel® Core™ i5-4200U, 1.60 GHz
Harddisk : 128 GB (Solid State Drive)
Memory : 4GB
2. Sofware :
Sistem Operasi : Windows 8 Single Language 64-bit
Bahasa Pemrograman : Bahasa pemrograman java, NetBeans IDE 8.0.1,
MYSQL, php apache
3.3 Perancangan Sistem
Terdapat 2 buah sistem aplikasi yang dibangun yaitu sistem aplikasi kalkulator hash
3.3.1 Aplikasi kalkulator hash sederhana
Aplikasi ini digunakan untuk memproses bilangan challenge yang diberikan bank kepada
klien dan hasil dari aplikasi ini berupa kode hash SHA1 yang akan digunakan sebagai
response kepada bank. Form kalkulator ini di isi oleh klien dengan memasukan user_id,
password dan challenge.Pada aplikasi kalkulator ini, penulis menggunakan listing program
yang bersumber dari sebuah web yang ditulis oleh (Roy Abubakar,2013) “SHA-1
implementation in Java”.
Keterangan gambar
*User ID : tempat (text field) untuk mengisi nomor user id klien
*Password : tempat untuk klien memasukan passwordnya
*Challenge : tempat untuk klien memasukan nilai challenge yang diberikan oleh bank
untuk autentikasi
*Hitung : tombol yang digunakan untuk menghitung masukan nilai yang di isi oleh
klien sesuai dengan nama text field yang ada yaitu User ID, Password, dan
Challenge yang akan diolah menjadi response.
3.3.2 Form login
Form ini muncul pada situs web yang dijalankan dan melalui ini jika klien ingin
masuk kedalam suatu sistem transaksi, klien hanya cukup memasukkan nomor user
id/nomor pengguna saja. Berikut tampilan untuk form login.
Keterangan gambar
*nomor pengguna : merupakan text field untuk memasukkan user id dari klien
yang hendak login untuk melakukan transaksi.
*Masuk : tombol yang digunakan untuk proses login klien, jika proses
login berhasil maka selanjutnya akan menuju form challenge
*About : link menuju halaman tentang web.
3.3.3 Form challenge
Pada form ini klien akan menerima challenge dari bank berupa angka random, dan
kemudian klien akan memasukkan nilai response yang telah di hitung menggunakan
aplikasi SHA1 kalkulator.
Keterangan gambar
*53760 : 53760 merupakan salah satu contoh angka random yang diberikan
oleh bank sebagai challenge pada klien.
*Masukan Response : text filed untuk klien memasukkan hasil response dari challenge
yang diberikan oleh bank
*Submit : tombol yang digunakan untuk mengirimkan hasil response, dan jika
hasil response yang dihitung oleh klien sesuai dengan hasil
teridentifikasi sebagai pemilik akun dan dapat melakukan transaksi
selanjutnya
BAB 4
Dari hasil perancangan yang telah dilakukan maka berikut langkah-langkah untuk proses
autentikasi :
4.1 Implementasi Program
Aplikasi yang dibangun dalam Tugas Akhir ini adalah mencangkup 2 sistem, yaitu :
1. Aplikasi kalkulator hash SHA1
4.1.1 Aplikasi kalkulator hash SHA1
Aplikasi kalkulator ini ditangani oleh java dan digunakan untuk mengolah
challenge yang server berikan. Dengan aplikasi ini klien memasukan User ID,
Password, dan Challenge kemudian dengan menekan tombol Hitung maka
kalkulator akan melakukan proses perhitungan hashing untuk mendapatkan
response dan hasil dari perhitungan kalkulator tersebut kemudian disalin kedalam
field response pada web untuk proses autentikasi
Keterangan gambar 4.2
*105314001 : pada field user_id terdapat nomor 105314001 dan nomor ini merupakan
*Password : terdapat filed password dimana klien akan memasukan password sesuai
dengan yang terdaftar di bank. Password yang di inputkan atau dimiliki klien
bisa huruf maupun angka.
*085353 : pada field challenge, klien harus mengisinya berdasarkan tantangan yang
diberikan oleh bank, dan pada gambar diatas tantangan yang diberikan
adalah 085353.
Source code tampilan diatas untuk proses hashing yaitu
4.1.2 User Interface Web
Implementasi User Interface berupa Web meliputi halaman Web untuk proses
login (login.php), halaman untuk autentikasi (challenge.php) dan halaman tentang
Web yang berisi data penulis (about.php)
A.Halaman Login (login.php)
Keterangan gambar 4.4
Pada gambar diatas, klien akan diminta untuk memasukan nomor pengguna dan 105314001
merupakan contoh nomor pengguna yang akan dimasukkan. Selain itu pada saat pengisian
nomor pengguna, klien hanya dapat memasukan karakter berupa nomor saja.
Pada halaman ini jika klien ingin melakukan login maka akan memerlukan
koneksi.php yang berfungsi untuk melakukan koneksi ke database server.
Source code koneksi.php
Proses login ini hanya dengan memasukkan user id/nomor pengguna. Dari hasil tersebut
maka bank akan memeriksa nomor pengguna yang dimasukkan, jika nomor sudah terdaftar
maka bank akan memberikan challenge/tantangan pada klien yang login. Tetapi, jika nomor
pengguna yang dimasukkan klien tidak terdaftar maka bank akan memberikan peringatan
bahwa nomor pengguna yang dimasukan salah atau tidak terdaftar.
Keterangan gambar 4.6
Jika klien salah dalam memasukkan nomor pengguna maka akan muncul peringatan
seperti gambar diatas bahwa “nomor pengguna anda salah atau tidak terdaftar !” dan klien
diminta untuk memasukan kembali nomor yang benar.
Source code untuk login.php :
Gambar 4.5 Source code koneksi.php
B.Halaman challenge (challenge.php)
Gambar 4.8 Halaman Challenge
Keterangan gambar 4.8
halaman ini tampil jika klien telah login, klien akan diberikan challenge/tantangan berupa
angka random “80301” yang harus diolah menggunakan kalkulator SHA1. Pada halaman ini,
klien juga akan dibatasi dalam memasukan karakter inputan yaitu hanya dapat di isi oleh
Source code untuk menampilkan nomor random :
Setelah klien menghitung challenge maka klien harus memasukkan hasil hash (response)
tersebut kedalam field response dan menekan tombol Submit. Setelah tombol submit ditekan
maka bank akan melakukan verifikasi terhadap response yang diberikan klien dan jika
hasilnya benar maka klien akan diberikan hak akses untuk melakukan transaksi, namu jika
salah maka bank akan memberikan peringatan bahwa hasil response salah.
Keterangan gambar 4.10
Gambar 4.9 source code rand.php
Gambar diatas menerangkan jika hasil respon yang diberikan oleh klien salah maka sistem
akan meminta klien untuk keluar dan mengulangi kembali proses autentikasi dengan
challenge yang berbeda namun jika klien salah lebih dari 4 kali dalam memberi respon pada
bank, maka pihak bank akan memblok akun dari klien yang bersangkutan guna keamanan
dan jika klien tersebut mencoba untuk login maka akan diberi peringatan seperti pada gambar
dibawah ini
Gambar 4.11 peringatan bahwa akun di blok Keterangan gambar 4.11
Pada gambar diatas terdapat pesan “akun anda di blok, silahkan hubungi pihak bank” dan
untuk dapat login serta melakukan transaksi kembali maka klien yang bersangkutan harus
Keterangan gambar 4.12
Gambar diatas merupakan tampilan hasil autentikasi pada klien yang berhasil masuk/login
pada sistem transaksi. Jika klien telah melalui tahap autentikasi dan berhasil masuk maka
klien dapat melakukan transaksi yang di inginkan. Jika klien sudah melakukan proses
transaki dan untuk keluar dari sistem maka tersedia link “Keluar” untuk keluar/logout dari
sistem transaksi.
Source code untuk tombol submit :
Jika klien yang telah login ingin masuk dengan nomor pengguna/akun yang sama tanpa
logout terlebih dahulu maka sistem akan memberikan peringatan seperti gambar dibawah ini
Gambar 4.14 peringatan sistem bahwa akun sudah login
Keterangan gambar 4.14
Peringatan seperti pada gambar diatas akan muncul jika klien ingin melakukan dua session
login dengan satu user_id secara bersamaan. Ketentuan ini bertujuan untuk meningkatkan
keamanan pada sistem agar akun/user_id yang sudah login tidak dapat disusupi penyerang
dari perangkat yang berbeda pada saat sedang login.
C.Halaman About (about.php)
Keterangan gambar 4.15
BAB 5
ANALISA DAN KESIMPULAN
5.1 Analisa Hasil Program
Dari hasil implementasi diatas, maka dapat dilakukan analisa sebagai berikut :
Kelebihan:
1. SHA-1 dapat di imlementasikan sebagai penunjang sistem autentikasi pada klien
dengan menggunkan protokol challenge response.
2. Dengan menggunakan protokol challenge response maka klien yang login akan
terhindar dari pengiriman password dalam bentuk plain-text.
3. Bilangan random yang dijadikan challenge akan selalu berubah tiap terjadi kesalahan
dalam proses autentikasi dan bilangan yang dihasilkan selalu acak sehingga
kemungkinan untuk kemunculan tiap bilangan yang sama sangat kecil..
4. Hasil hash yang dihasilkan menggunakan algoritma SHA-1 terdiri dari 40 digit
bilangan heksadesimal, akan tetapi yang diambil untuk dijadikan response adalah 3
digit bilangan awal dan 3 digit bilangan akhir saja. Hal ini dapat mempermudah user
dalam melakukan response serta akan lebih mempersulit terpecahkannya key yang
digunakan sebagai response sebab adanya kombinasi bilangan yang unik sesuai
kesepakatan klien dan server yaitu hanya menggunakan 3 digit bilangan awal dan 3
digit bilangan akhir dari keseluruhan 40 digit bilangan heksadesimal yang ada.
5. klien tidak dapat melakukan login dengan dua session login menggunakan user_id
yang sama secara bersamaan, jika klien ingin login menggunkan perangkat yang
berbeda maka klien harus logout terlebih dahulu.
6. Jika klien yang ingin melakukan transaksi salah memberi respon sebanyak lebih dari 4
kali maka akun klien tersebut akan di blok dan klien yang bersangkutan harus