Analisis Otentikasi Paket Transfer Data Menggunakan OpenSSL

advertisement
Analisis Otentikasi Paket Transfer Data
Menggunakan OpenSSL
Artikel Ilmiah
Peneliti :
Jerly Sabuna (672009141)
Dr. Irwan Sembiring, S.T., M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
April 2016
Analisis Otentikasi Paket Transfer Data
Menggunakan OpenSSL
Artikel Ilmiah
Diajukan kepada
Fakultas Teknologi Informasi
Untuk memperoleh gelar Sarjana Komputer
Peneliti :
Jerly Sabuna (672009141)
Dr. Irwan Sembiring, S.T., M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
April 2016
Lembar Pernyataan Tidak Plagiat
Lembar Pernyataan Peretujuan Akses
Lembar Persetujuan
Lembar Pengesahan
Lembar Persetujuan Publish Jurnal
Lembar Pengesahan
Analisis Otentikasi Paket Transfer Data
Menggunakan OpenSSL
1)
Jerly Sabuna, 2)Irwan Sembiring
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Jl. Diponegoro 52-60, Salatiga 50711, Indonesia
Email: 1) [email protected], 2) [email protected]
Abstract
An authentication process contains several important information such as
username and password that is used by a user to log into system. Without any
additional security protocol, the user will be susceptible to network security attack
like sniffing and man in the middle attack (MITM Attack). Server is demanded to
provide security and guarantee to any user who do the authentication process and
give certainty to every data transfer process that they will not be sniffed or hacked
bay attacker. By using OpenSSL, data transfer package will be guaranteed in public
network.
Keyword: OpenSSL, Authentication, Network Security.
Abstrak
Dalam suatu proses otentikasi terdapat informasi yang sangat penting seperti
username dan password yang digunakan pengguna untuk dapat masuk ke dalam satu
sistem. Pengguna yang melakukan proses otentikasi tanpa menggunakan protokol
keamanan tambahan akan rentan terhadap serangan keamanan jaringan seperti
sniffing dan man in the middle attack (MITM Attack). Sebuah server dituntut untuk
memberikan keamanan dan menjamin setiap pengguna yang melakukan proses
otentikasi ke sistem dan memastikan setiap proses transfer data yang terjadi tidak disniffing atau disadap oleh attacker. Paket transfer data dikirim menggunakan
OpenSSL sehingga menjamin keamanan paket transfer data dalam jaringan publik.
Kata Kunci : OpenSSL, Otentikasi, Keamanan Jaringan.
1)
2)
Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas
Kristen Satya Wacana Salatiga
Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana Salatiga
1
1.
Pendahuluan
Dalam suatu proses otentikasi terdapat informasi yang sangat penting seperti
username dan password yang digunakan pengguna untuk dapat masuk ke dalam
satu sistem. Pengguna yang melakukan proses otentikasi tanpa menggunakan
protokol keamanan tambahan akan rentan terhadap serangan keamanan jaringan
seperti penyadap (sniffing) dan man in the middle attack (MITM Attack). Setiap
proses otentikasi yang tidak menggunakan protocol SSL menjadi tanggung jawab
Internet Protocol (IP). IP akan mengarahkan lintasan yang akan dilalui oleh
paket. Jika paket yang mengalami perubahan atau kehilangan data, maka
Transnission Control Protocol (TCP) akan meminta pengiriman ulang. TCP/IP
tidak memiliki pengamanan komunikasi yang bagus sehingga tidak dapat
mengetahui jika ada pesan yang diubah oleh pihak ketiga (man in the middle
attack).
Sebuah server dituntut untuk memberikan jaminan keamanan untuk setiap
pengguna yang melakukan proses otentikasi ke sistem dan memastikan setiap
proses transfer data yang terjadi tidak disadap oleh hacker atau cracker. Oleh
karena itu diperlukan suatu protokol dalam sebuah server yang dapat diandalkan
dalam proses otentikasi.
Dari rumusan masalah tersebut, muncul satu gagasan untuk menerapkan
protokol tersebut dalam penelitian yang berjudul “Analisis Paket Transfer Data
menggunakan OpenSSL”. Tujuannya adalah untuk dapat menganalisis dan
membandingkan keamanan antara web server yang menggunakan OpenSSL dan
yang tidak menggunakan OpenSSL. Analisis dilakukan pada sebuah server yang
memiliki protokol keamanan agar dapat menjamin semua keamanan data pada
proses ontentiksi dalam sebuah sistem. Penelitian ini terfokus hanya pada proses
otentikasi dan analisis hanya dilakukan pada jaringan lokal. Analisis dilakukan
pada Ubuntu Server 14.04 yang di-install dalam Oracle VM VirtualBox
Manager. Pengujian dilakukan terhadap website opensource yang ada dalam
server local.
2.
Tinjauan Pustaka
Salah satu penelitian yang membahas tentang keamanan otentikasi adalah
penelitian yang dilakukan oleh Dyana Marisa Khairina tahun 2011 berjudul
“Ananlisis Keamanan Sistem Login”. Karena sistem login merupakan suatu hal
yang pasti ditemukan dalam dunia internet yang bersifat privasi dan rahasia, maka
penelitian ini menghasilkan sistem login yang lebih aman. Sistem dibuat dengan
pemrograman PHP. Keamanan dalam sistem tersebut dibangun melalui proses
enkripsi dengan penggunaan MD5 yang dikombinasikan dengan pengacak atau
menggabungkan password asli dengan suatu string tertentu sehingga isi serta
format untuk enkripsi hanya diketahui oleh aplikasi yang membuatnya. Proses
pengamanan username dan password pada sistem login sebelum data dikirim ke
server merupakan hal yang penting dan harus diperhatikan [1].
Penelitian selanjutnya dilakukan oleh Harvard Najoan berjudul “Analisis
Implementasi Digital Certificate pada Web Server Apache Menggunakan
OpenSSL”. Penelitian tersebut memberikan penjelasan bahwa komunikasi internet
pada umumnya menggunakan Hypertext Tranfer Protocol (HTTP) yang berjalan
2
pada port 80. Pada dasarnya port 80 tidak memiliki keamanan karena HTTP
dibuat hanya untuk menciptakan komunikasi antar client dan server. Protokol ini
hanya memberikan layanan akses antarmuka pengguna yang menggunakan
browser dengan web server di mana pengguna mengisi alamat web server
tersebut. Salah satu solusi untuk menjamin keamanan komunikasi antar client dan
server adalah dengan menggunkan digital certificate yang nantinya akan
melindungi pertukaran informasi pada saat melakukan komunikasi antar client dan
server [2].
Berdasarkan penelitian-penelitian yang telah dilakukan sebelumnya tentang
keamanan sistem login dan implementasi digital certificate pada web server
apache menggunakan OpenSSL maka dapat disimpulkan bahwa sistem login
sangat penting dalam dunia internet sehinga dibutuhkan suatu protokol keamanan
untuk proses otentikasi dalam web server sehingga dapat menjamin keamanan
data username dan password. Solusinya adalah melakukan analisis otentikasi
menggunakan OpenSSL dan mengimplementasikan dalam web server.
Secure Socket Layer (SSL) adalah standar teknologi keamanan untuk
membangun koneksi terenkripsi antara web server dan client. SSL dikembangkan
oleh Netscape Communication Corp. pada tahun 1994. SSL melindungi transmisi
HTTP dengan menambahkan lapisan enkripsi pengamanan. SSL melindungi data
yang dikirim melalui internet agar tidak dapat dibajak oleh hacker atau cracker
karena bisa meyakinkan pihak-pihak yang berkomunikasi bahwa lawan bicara
mereka di internet dapat dipercaya melalui penggunaan sertifikat digital. SSL
memberikan tiga keamanan yaitu menjadikan saluran komunikasi sebagai saluran
yang bersifat private, mengotentikasi server dan client, dan menggunakan
message integrity (authentication) check Message Authentication Code (MAC)
untuk mengetahui setiap data yang disadap dan dimodifikasi saat data dikirm oleh
pihak yang tidak bertanggung jawab.
Protokol SSL bekerja di bawah lapisan aplikasi (application layer) pada
protokol TCP/IP. SSL pada dasarnya merupakan protokol berlapis. SSL Record
Protocol, yang merupakan lapisan paling bawah, berjalan di atas protokol
transport yang dapat diandalkan seperti TCP. SSL Record Protocol juga berfungsi
mengenkapsulasi berbagai protokol pada lapisan yang lebih tinggi (higher-level
protocol), seperti HTTP yang menyediakan layanan transfer pada web. Arsitektur
SSL ditunjukan pada Gambar 1.
Gambar 1 Arsitektur Protokol SSL
3
Tiga protokol pada lapisan yang lebih tinggi adalah Handshake Protocol
Change Cipher Spec Protocol, dan Alert Protocol. SSL record protocol melapisi
protokol TCP sehingga menjadi lebih handal, SSL handshake protocol berfungsi
membangun parameter keamanan sebelum terjadinya pertukaran data antara dua
sistem, dan SSL alert protocol memberikan peringatan bahwa kondisi sudah tidak
terkoneksi lagi jika pengirim pesan dan yang akan menerima sedang offline
sehingga pesan akan ditunda sampai penerima terkoneksi kembali [3].
OpenSSL adalah sebuah piranti lunak yang mengimplementasikan protokol
SSL. OpenSSL ditulis dalam bahasa C dan memiliki fungsi utama untuk
melakukan proses kriptografi dan menghasilkan sertifikat digital. OpenSSL
bersifat open source dan mendukung banyak sistem operasi seperti Solaris, Linux,
Mac OS, dan Windows. OpenSSL dibuat berdasarkan library dari SSLeay yang
ditulis oleh Eric Young dan Tim Hudson dengan menggunakan algoritma MD5
dan RSA [4].
OpenSSL juga merupakan command line tool yang menggunakan berbagai
fungsi kriptografi OpenSSL's crypto library dari shell. OpenSSL dapat digunakan
untuk melakukan proses 1) penciptaan RSA, DH dan DSA parameter kunci, 2)
penciptaan sertifikat X.509, CSRs dan CRLs, 3) perhitungan Pesan Digests, 4)
enkripsi dan Dekripsi dengan Ciphers, 5) pengujian SSL / TLS Client dan Server,
dan 6) penanganan S/MIME signed or encrypted mail [5].
Setiap data yang melewati OpenSSL akan dienkripsi oleh server
menggunakan kunci publik yang ada pada sertifikat digital. Kemudian data
tersebut akan didekripsi oleh client menggunakan kunci privat. Sertifikat digital
berisi kunci publik dan informasi penting mengenai jati diri pemilik kunci publik
seperti nama, alamat, pekerjaan, jabatan, dan perusahaan. Sertifikat digital
tersebut ditandatangani oleh sebuah pihak yang dapat dipercaya yaitu Certificate
Authority (CA).
Linux adalah sebuah Operating System (OS) turunan UNIX, yang
merupakan implementasi independen dari standar Institude of Electrical and
Electronics Engineers (IEEE) untuk OS yang bernama POSIX (Portable
Operating System Interface). Linux merupakan kependekan dari Linux Is Not
UniX. Linux merupakan sebuah program open source yang gratis di bawah lisensi
GNU. Linux memiliki kemampuan yang berbasis ke standard POSIX meliputi
true-multitasking, virtual memory, shared libraries, demand-loading, proper
memory management dan multiuser [6].
Ubuntu merupakan salah satu distribusi Linux yang berbasiskan Derbian dan
didistribusikan sebagai perangkat lunak bebas. Nama Ubuntu berasal dari filosofi
dari Afrika Selatan yaitu Humanity to Others yang berarti “kemanusiaan kepada
sesama”. Sebuah perusahaan yang dimiliki oleh Mark Shuttleworth bernama
Canonical Ltd adalah perusahaan resmi yang mensponsori proyek Ubuntu. Tujuan
dari distribusi Linux Ubuntu adalah membawa semangat yang terkandung di
dalam Filosofi Ubuntu ke dalam dunia perangkat lunak. Ubuntu adalah sistem
operasi lengkap berbasis Linux, tersedia secara bebas dan mempunyai dukungan
baik yang berasal dari komunitas maupun tenaga ahli professional [7].
Otentikasi merupakan proses verifikasi identitas dari seorang anggota yang
memberikan suatu data dan integritas dari data tersebut. Otentikasi juga dapat
4
didefinisikan sebagai fungsi pemeriksaan data pengguna pada saat pengguna
memberikan data ke dalam sistem. Setelah menerima data, sistem lalu mengenali
dan mencocokkan data tersebut, lalu menentukan apakah pengguna tersebut
memiliki hak akses atau tidak. Untuk melakukan satu proses otentikasi ke dalam
sebuah sistem, pada umumnya dibutuhkan pasangan username dan password.
Proses ini dilakukan untuk memastikan bahwa pengguna yang mengakses sistem
adalah pengguna yang sah. Proses ini juga membatasi pengguna dalam mengakses
sebuah jaringan. Agar dapat melakukan otentikasi, pertama kali pengguna harus
didaftarkan dulu pada sistem yang ada. Dalam proses otentikasi diperlukan datadata yang unik sebagai pembeda. Menurut G. Scott Owen, pada dasarnya bentuk
otentikasi pada manusia dapat berupa kombinasi mengenai siapa diri anda
(biometric), apa yang dipunyai (token), dan apa yang diketahui (knowledge based)
[8].
Wireshark adalah sebuah Network Packet Analyzer. Network Packet
Analyzer akan mencoba menangkap paket-paket jaringan dan berusaha untuk
menampilkan semua informasi dipaket tersebut sedetail mungkin. Network Packet
Analyzer diumpamakan sebagai alat untuk memeriksa apa yang sebenarnya
sedang terjadi di dalam kabel jaringan. Wireshark juga merupakan salah satu tool
gratis terbaik untuk menganalisa paket jaringan. Salah satu penggunaan wireshark
yang sering dilakukan oleh orang yang tidak bertanggungjawab adalah orang usil
yang bertindak sebagai sniffer atau pengendus data-data privasi di jaringan [9].
3.
Metode dan Perancangan Sistem
Penelitian yang dilakukan, diselesaikan melalui tahapan penelitian yang
terbagi dalam empat tahapan, yaitu, 1) Tahap Identifikasi Masalah dan
Pengumpulan Data, 2) Perancangan Sistem, 3) Implementasi Sistem, 4) Pengujian
Sistem, serta Analisis Hasil Pengujian. Dengan adanya tahapan-tahapan tersebut,
proses analisis dan perancangan akan menjadi lebih mudah.
Gambar 2 Tahapan Penelitian
Tahapan penelitian pada Gambar 2, dijelaskan sebagai berikut. Tahap
pertama merupakan tahapan identifikasi masalah dan pengumpulan data. Pada
5
tahapan ini data-data yang berkaitan dengan masalah otentikasi yang terjadi pada
website yang tidak menggunakan protokol keamanan SSL dikumpulkan dengan
cara melakukan pengujian login pada website yang tanpa OpenSSL. Tahap kedua
adalah perancangan proses autentikas menggunakan OpenSSL. Tahapan ini yang
akan dijadikan sebagai parameter dan perlu mendapat perhatian sebelum
membangun server. Yang harus diperhatikan pada tahapan ini adalah kebutuhankebutuhan fisik dan perangkat lunak yang akan digunakan dalam merancang
sistem. Komunikasi data melalui jaringan komputer dilakukan dengan
menggunakan jaringan virtual sehingga tidak diperlukan infrastruktur jaringan
fisik. Komunikasi dilakukan antara client yang menggunakan web browser
dengan web server.
Gambar 3 Topologi jaringan
Gambar 3 menunjukan topologi komunikasi menggunakan protokol HTTP
dan HTTPS. Komunikasi antara client dan server yang menggunakan HTTP
sangat terbuka tanpa keamanan enkripsi sehingga plain text yang dikirim dapat
dilihat oleh penyusup yang sengaja melakukan pencurian data pada protokol
HTTP. Sedangkan komunikasi antara client dan server yang menggunakan
protokol HTTPS sudah aman karena setiap kali melakukan komunikasi pertukaran
data antara client dengan server diperlukan otentikasi melalui sebuah sertifikat
digital. Sertifikat digital ini memiliki algoritma kunci publik yang digunakan
untuk melakukan enkripsi dan kunci privat untuk melakukan dekripsi terhadap
informasi yang akan dipertukarkan antara client dan server [10].
Server akan dibangun dalam Oracle VM Virtualbox menggunakan sistem
operasi Linux Ubuntu Server 14.04 sedangkan client mengakses sistem melalui
laptop dengan sistem operasi Windows 7. Tahap ketiga adalah tahap
implementasi hasil perancangan sistem dengan membangun web server yang
aman berbasis OpenSSL. Dalam komputer server terpasang paket Linux Apache
MySQL PHP (LAMP server) untuk mendukung sistem yang akan dibuat. Pada
tahap keempat dilakukan pengujian terhadap sistem yang telah dibuat untuk
6
memastikan sistem telah berjalan sesuai dengan yang dirancangkan. Setelah
pengujian dilakukan, sistem tersebut dianalisis menggunakan aplikasi Wireshark.
Tujuan dari sistem yang dibangun ini adalah untuk membandingkan proses
otentikasi pada web server tanpa OpenSSL dan web server yang aman
menggunakan OpenSSL. Adapun proses yang terjadi dalam sistem yang telah
dibangun, ditujukan pada Gambar 4 dan Gambar 5.
Gambar 4 Proses Otentikasi tanpa OpenSSL
Gambar 4 adalah proses otentikasi dalam website yang tidak menggunakan
OpenSSL. Proses ini cukup sederhana karena setelah pengguna melakukan login
dengan memasukan username dan password, pengguna langsung masuk dalam
halaman utama website tersebut karena tidak ada protokol keamanan tambahan
yang dapat melindungi komunikasi antara client dan server pada web server.
Proses ini tidak menjamin keamanan otentikasi karena nilai string dari username
dan password dapat dilihat oleh pihak ketiga sehingga lebih rentan terhadap
serangan keamanan jaringan. Oleh karena itu dibangun sistem yang lebih aman
agar dapat menjamin keamanan data pada proses otentikasi.
7
Gambar 5 Proses Otentikasi dengan OpenSSL
Gambar 5 adalah proses otentikasi yang aman berbasis OpenSSL. Sebelum
pengguna melakukan login terhadap website, OpenSSL melalui webserver sudah
memastikan pengguna melewati jalur yang aman. Server melakukan validasi
kunci publik dan memberikan sertifikat server kepada pengguna. Setelah
mendapat jaminan keamanan, pengguna melakukan login dalam website berbasis
OpenSSL.
4.
Hasil dan Pembahasan
Analisis sistem dilakukan dengan 2 tahap terhadap website
www.tokomeranti.com. Website ini berada pada Ubuntu Server 14.04 yang
dipasang menggunakan Oracle VirtualBox. Pada tahap pertama analisis dilakukan
terhadap website tersebut tanpa menggunakan OpenSSL. Pengguna akan
memasukkan data username dan password dan mengirimkannya kepada server.
Sebagai contoh pada gambar 6 pengguna memasukkan alamat e-mail
[email protected] dan “magnum” sebagai password.
Pengujian akan dilakukan dengan cara masuk ke dalam halaman login
website tersebut kemudian memasukan username dan password pada form login
8
yang ada di halaman login tersebut kemudian klick login. Sebagai contoh
username yang dimasukkan berupa alamat email : [email protected]
dan password : magnum.
Gambar 6 Capture HTTP
Gambar 6 mengunjukan bahwa seluruh informasi dari proses otentikasi
tanpa OpenSSL terlihat sangat jelas. Protokol HTTP menampilkan seluruh
aktifitas yang sedang dilakukan pada website www.tokomeranti.com. Hal ini
mengakibatkan informasi berupa identitas client, identitas server, dan protokol
yang berjalan dapat dengan mudah dilihat melalui analisis yang dilakukan
menggunakan wireshark. Metode request yang dipakai adalah Post yang
merupakan salah satu standar query yang biasa dipakai oleh protokol HTTP pada
port 80 untuk mengirimkan data ke server sebagai bagian dari request oleh client.
Beberapa informasi yang juga diperlihatkan adalah alamat host, user agent dan
sistem operasi yang merupakan identitas dari client. Alamat host yang diakses
adalah www.tokomeranti.com, user agent atau browser yang digunakan adalah
Mozilla Firefox 45.0 dan sistem operasinya adalah Windows NT 6.1 atau
Windows 7 64 bit. Selain informasi mengenai identitas client, paket data berupa
string dari username dan password yang dimasukan pada saat melakukan proses
otentikasi juga dapat terlihat dengan jelas. Plaintext tetap terbuka karena tidak ada
protokol keamanan yang dapat menutupnya. Situasi seperti ini sangat rentan
terhadap serangan Man in the Middle Attack.
Pada tahap kedua terlebih dahulu dilakukan proses instalasi OpenSSL pada
web server yang memuat website www.tokomeranti.com. Instalasi dilakukan pada
server dengan menggunakan perintah ‘apt-get install openssl’. Setelah OpenSSL
terpasang barulah dilakukan proses analisis. Sistem otentikasi dibangun pada
server menggunakan protokol SSL untuk menjamin keamanan paket data.
Konfigurasi OpenSSL pada server dimulai dari pembuatan private key dengan
nama “server.key” menggunakan perintah ‘openssl -des3 -out server.key 2048’.
9
Proses dilanjutkan dengan pembuatan pass phrase untuk mengenkripsi private key
tersebut.
Gambar 7 Pembuatan Private Key
Gambar 7 adalah proses pembuatan private key dengan keluaran
“server.key” dengan panjang 2048 bit. Private key yang dihasilkan dipakai untuk
membuat Certificate Signing Request (CSR) menggunakan file “server.key”.
Selanjutnya CSR tersebut dienkripsi lagi menggunakan algoritma SHA1. Proses
tersebut membutuhkan pass phrase untuk membuka private key sebelumnya.
Langkah-langkah tersebut dilakukan dengan perintah ‘openssl req -new -key
server.key -out server.csr –sha1’.
Gambar 8 Pembuatan Certificate Signing Request
Gambar 8 merupakan informasi tentang sertifikat digital yang akan dibuat
sehingga semua data tentang sertifikat harus jelas. Informasi yang diperlihatkan
dalam sertifikat ini adalah nama negara, nama provinsi, nama kota, nama
organisassi, dan Common Name (CN) yaitu nama website. Informasi inilah yang
harus diperhatikan dalam pembuatan sertifikat digital. CN harus sesuai dengan
nama website atau alamat IP server. Dalam hal ini CN yang dipakai adalah
www.tokomeranti.com. Proses pembuatan sertifikat digital dilanjutkan dengan
membuat self-signed certificate menggunakan file “server.key” dan “server.csr”.
Keluaran yang dihasilkan adalah “server.crt”. Pada umumnya web server akan
10
meminta Certificate Authoritie (CA) professional dalam proses pembuatan
sertifikat digital, namun pada penelitian ini sertifikat yang dihasilkan bersifat
mandiri (self-signing certificate) menggunakan perintah ‘openssl x509 –req –days
365 –in server.csr –signkey server.key –out server.crt’.
Gambar 9 Pembuatan Self-signing Certificate
Gambar 9 menunjukan pembuatan self-signing certificate menggunakan
file “server.csr” dan file “server.key” berhasil. Selanjutnya dilakukan konfigurasi
OpenSSL untuk mengaktifkan port 443 pada Ubuntu Server dengan perintah
‘nano /etc/apache2/sites-available/tokomeranti.conf’.
Kode Program 1 Konfigurasi OpenSSL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName www.tokomeranti.com:443
DocumentRoot /var/www/html/tokomeranti
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/html/tokomeranti>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Kode program 1 adalah proses konfigurasi OpenSSL yang ada pada file
tokomeranti.conf. Dalam file tersebut dilakukan proses konfigurasi shell script
untuk mengaktifkan port HTTPS yaitu 443 (baris 1). Proses dilanjutkan dengan
penambahan servername sesuai dengan nama website yang telah dikonfigurasi
dalam web server yang berjalan pada port 443 (baris 3). Direktori utama
diarahkan ke direktori yang berisi aplikasi web www.tokomeranti.com (baris 4).
Direktori file SSLCertificateFile dan SSLCertificateKeyFile diarahkan sesuai
dengan kunci privat dan sertifikat digital yang telah dibuat (baris 16 dan 17).
Setelah melakukan konfigurasi pada file tokomeranti.conf, protokol SSL dan
website diaktifkan dengan perintah secara berturut-turut ‘a2enmod ssl’ dan
11
‘a2ensite www.tokomeranti.com’. Akhirnya web server pada Ubuntu dijalankan
ulang dengan perintah ‘service apache2 restart’.
Setelah web server dijalankan ulang, pengujian dilakukan dengan
mengakses web https://www.tokomeranti.com/ menggunakan aplikasi browser
pada komputer client.
Gambar 10 Tampilan Web Dengan Protokol HTTPS
Tampilan awal website www.tokomeranti.com yang menggunakan OpenSSL
diperlihatkan oleh Gambar 10. Pada address bar terdapat tanda gembok yang
berarti website tersebut sudah terlindungi oleh OpenSSL, yang di dalamnya
terdapat kunci publik yang telah diverifikasi oleh CA.
Gambar 11 Tampilan Sertifikat Digital
Gambar 11 merupakan tampilan sertifikat digital yang dimiliki oleh
www.tokomeranti.com yang telah diverifikasi oleh UKSW sebagai perusahaan
yang memiliki CA. Dalam sertifikat digital tersebut terdapat rincian berupa serial
number, tanggal kadaluarsa dan sertifikat digital yang dienkripsi menggunakan
SHA-256bit dan SHA1. Website www.tokomerati.com sudah dinyatakan aman
karena telah memiliki sertifikat digital.
Untuk membuktikan bahwa website www.tokomeranti.com sudah aman,
dilakukan uji coba otentikasi dengan skenario yang sama dengan tahap pertama.
12
Uji coba dimulai dengan melakukan login ke dalam website. Proses login
dimonitor menggunakan aplikasi wireshark untuk menangkap informasi paketpaket data yang lewat pada proses otentikasi.
Gambar 12 Hasil Capture HTTPS
Gambar 12 menunjukan informasi proses komunikasi antara client dan
server menggunakan protokol HTTPS dari OpenSLL pada aplikasi Wireshark.
Informasi yang ditampilkan adalah Client Hello, Server Hello, Change Chiper
Spec, dan Application Data. Client Hello merupakan informasi yang ditangkap
ketika komunikasi antara client dan server akan menggunakan protokol keamanan
HTTPS. Informasi ini dilakukan oleh client untuk memastikan komunikasi antara
client dan server dapat dilakukan melalui protokol HTTPS. Server Hello
merupakan pesan dari server yang merespon pesan Client Hello. Server akan
menanggapi pesan tersebut dengan memberikan keputusan akhir untuk melakukan
komunikasi antara client dan server melalui protokol keamanan HTTPS. Change
Chiper Spec merupakan pesan yang menandakan negosiasi untuk melakukan
komunikasi menggunakan protokol HTTPS yang sudah terpenuhi. Change Cipher
Spec dibawa oleh Transport Layer Security (TLS) dengan melakukan handshake
terhadap pesan terenkripsi. Proses handshake ini mengenkripsi kunci sesi dan
sertifikat antara client dan server. Hal ini dilakukan untuk mengotentikasi
identitaas server dan identitas client dalam rangka menjaga keamanan komunikasi
dan intergritas masing-masing pihak dalam berkomunikasi. Apllication Data
merupakan suatu penanda yang mengindikasikan bahwa pertukaran informasi
dalam komunikasi data antara client dan server sudah terenkripsi, terotentikasi,
dan terverifikasi oleh OpenSSL. Hal ini menandakan bahwa komunikasi yang
dijalankan merupakan komunikasi yang aman. Data yang dipertukarkan dalam
komunikasi antara client dan server merupakan data yang dienkripsi, sehingga
pihak lain tidak dapat mengetahui informasi tersebut [9].
Proses otentikasi yang secure berbasis OpenSSL dimulai pada saat
pengguna melakukan submit form login pada website www.tokomeranti.com.
Aplikasi akan mengirimkan username dan password yang sudah dimasukkan.
Username dan password sudah terbungkus dalam satu paket protokol keamanan
yang telah disediakan oleh OpenSSL. Server akan mengeksekusi query ke basis
data, untuk meminta satu record user di tabel yang bersangkutan, dengan
mengirimkan kedua informasi yang diterima dari form login yang ada pada
website. Berikut penggalan query yang diterima oleh database management
system (DBMS):
13
SELECT * FROM user WHERE username='[email protected]' AND
password='magnum' LIMIT 1;
Setelah query di atas selesai dieksekusi, DBMS akan mengirimkan hasil
kepada web server untuk diolah. Setelah menerima hasil tersebut, web server akan
melakukan pemeriksaan, apakah hasil yang diterima memuat record yang sesuai
dengan username dan password yang dikirimkan atau tidak, untuk selanjutnya
menentukan tindak lanjut terhadap masing-masing kemungkinan.
Gambar 13 Hasil Capture Proses Otentikasi
Gambar 13 merupakan rincian hasil penangkapan informasi paket data dari
proses otentikasi yang terjadi pada website yang aman berbasis OpenSSL. Hasil
tersebut menunjukan proses komunikasi antar client dan server melalui ethertnet.
Informasi diakses dari komputer client menggunakan Internet Protocol versi 4
(IPv4) dengan alamat IP 192.168.1.4. Hasil tersebut juga menampilkan informasi
transport layer yang menunjukan port yang digunakan untuk berkomunikasi.
Source port yang digunakan adalah port 59067 sedangkan destination port yang
digunakan adalah port 443.
14
Gambar 14 Hasil Capture Enkripsi Proses Otentikasi
Gambar 15 Hasil Capture Dekripsi Proses Otentikasi
15
Gambar 14 menunjukan hasil penangkapan informasi pada proses otentikasi.
Ketika client melakukan proses otentikasi, penyadapan terhadap data seperti
username dan password yang dimasukan tidak dapat dilakukan. Lalu lintas data
tidak dapat diketahui karena sudah dilindungi oleh protokol keamanan HTTPS
yang di dapat dari OpenSSL. Website yang menggunakan OpenSSL memberikan
jaminan keamanan terhadap proses otentikasi yang terjadi. Semua proses
dienkripsi sehingga kerahasiaan informasi username dan password terjamin.
Informasi tersebut tidak dapat diketahui oleh orang lain yang melakukan sniffing
atau man in the middle attack. Namun proses otentikasi dapat didekripsi oleh
Wireshark menggunakan kunci privat yang digunakan untuk melakukan enkripsi
pada protokol HTTPS. Gambar 15 menunjukan hasil dekripsi pada pada protokol
HTTPS menggunakan kunci privat. Pengguna harus lebih berhati-hati dan
menjaga kerahasiaan kunci privat sehingga penyadap tidak memanfaatkannya
untuk mendekripsi paket yang berjalan pada protokol HTTPS.
Tabel 1 Perbandingan Web Server Tanpa OpenSSL dan Web Server dengan OpenSSL
HTTP
HTPPS
Port
80
Keamanan data
-
Kebutuhan SSL
Enkripsi
Input Data ke Sistem
OSI Layer
Certificates
Client - Server
Tidak
Plaintext terbuka
Aplication Layer
No certificates required
Proses otentikasi
- Proses dilakukan tanpa
enkripsi.
- Informasi
yang
dimasukan
rentan
terhadap penyadapan.
Komunikasi Data
Komunikasi data melalui
protokol http sangat rentan
terhadap penyadapan data.
Attacker dapat mengetahui
alur komunikasi, indentitas
server dan client, data sensitif
dan
waktu akses
yang
dilakukan.
443
Otentikasi Server
Kerahasiaan Data
Integritas Data
Sertifikat SSL
Ya
Plainteks tertutup
Transport Layer
Certificates required
- Proses dilakukan dengan
enkripsi.
- Proses otentikasi lebih
terjamin.
- OpenSSL
menyediakan
protokol keamanan HTTPS.
Penyadapan
data
yang
dilakukan pada protokol https
hanya akan menghasilkan
informasi acak yang telah
dienkripsi.
Data
yang
dipertukarkan antara client dan
server tidak dapa disadap oleh
attacker.
Proses otentikasi yang dilakukan pada web server yang tidak menggunakan
OpenSSL sangat rentan terhadap interfensi pihak lain karena terdapat
kemungkinan pencurian dan pengubahan informasi data username dan password
antara client dan server. OpenSSL memberikan jalur komunikasi yang aman
menggunakan protokol HTTPS sehingga proses otentikasi lebih tejamin. Pada
jalur komunikasi yang diberikan oleh OpenSSL terdapat otentikasi dengan
16
sertifikat digital dan algoritma kunci publik yang mengenkripsi data. Hal inilah
yang memastikan keamanan data pada proses otentikasi yang sedang dilakukan.
OpenSSL memiliki fitur Heartbeat yang diperkenalkan pada tahun 2012.
Tujuannya adalah untuk mengecek apakah client masih terhubung dengan server.
Sering kali router yang menjadi perantara antara client dan server memutuskan
koneksi jika terjadi idle yang terlalu lama. Heartbeat akan memastikan client dan
server tetap terhubung dalam satu koneksi. Heartbeat juga merupakan kelemahan
dari OpenSSL karena sistem kerja Heartbeat terlalu mempercayai client.
Kelemahan dari Hearthbeat diberi nama bug heartbleed. Heartbleed
memungkinkan penyerang untuk membaca memori dari server yang diproteksi
oleh OpenSSL. Isi dari memori tersebut berupa cookie website, source code
script, kombinasi username dan password, dan privatkey OpenSSL. Bug
heartbleed merupakan tanggung jawab dari penyedia situs. Untuk menghindari
adanya bug heartbleed maka penyedia situ harus meng-update OpenSSL ke versi
yang terbaru yaitu OpenSSL versi 1.0.1g ke atas sehingga data yang dikirim
menggunakan HTTPS diamankan melalui protokol Transport Layer Security
(TLS). Protokol TLS memberikan tiga lapis perlindungan kunci yaitu melakukan
enkripsi pada pertukaran data untuk melindungi dari penyadap, melakukan
integritas data agar data tidak dapat diubah atau dicuri tanpa terdeteksi selama
melakukan proses transfer data, dan melakukan otentikasi agar dapat
membuktikan bahwa client berkomunikasi dengan server yang dituju sehingga
terhindar dari serangan MIMT Attack dan membangun kepercayaan antara client
dan server.
5.
Simpulan
Berdasarkan hasil penelitian dan analisis yang dilakukan maka dapat diambil
kesimpulan sebagai berikut: 1) OpenSSL memberikan jaminan keamanan pada
proses otentikasi dengan memberikan protokol keamaman pada jalur komunikasi
antara client dan server yang dilindungi dengan enkripsi sehingga menghasilkan
informasi acak pada saat melakukan proses otentikasi. 2) Paket transfer data yang
dikirim menggunakan protokol OpenSSL dienkripsi sehingga menjamin
keamanan paket transfer data. Saran pengembangan yang dapat diberikan untuk
penelitian lebih lanjut adalah menambahkan protokol otentikasi Kerberos kedalam
sistem agar proses otentikasi semakin terjamin.
6.
[1]
[2]
[3]
[4]
[5]
Pustaka
Khairina, Dyana Marisa. 2011. Analisis Keamanan Sistem Login. FMIPA
Universitas Mulawarman.
Najoan, Harvard. 2010. Analisis Implementasi Digital Certificate pada Web
Server Apache Menggunakan OpenSSL. FTI. Universitas Kristen Satya
Wacana.
Ariyus, Dony. 2006. Computer Security. Yogyakarta: Andi Offset.
Sadikin,Rifki. 2012. Kriptografi Untuk Keamanan Jaringan. Yogyakarta:
Andi Offset.
Chandra, Prayir. Matt Messier, John Viega. 2002. Network Security with
OpenSSL. O'Reilly.
17
[6] Armansyah, Wawang. 2015. Belajar Linux dan Kelebihan Linux.
http://www.belajarbagus.com/2015/04/belajar-linux.html (diakses tanggal 8
Januari 2016)
[7] Kita, Linux. 2010. Macam-Macam Distro Linux Varian Debian.
http://linuxkita.net/macam-macam-distro-linux-varian-debian.html (diakses
tanggal 9 januari 2016)
[8] Suo, X., Zhu, Y., G. S. Owen. 2005. Graphical Passwords: A Survey. In21st
Annual Computer Security Applications Conference (ACSAC). halaman.463472.
[9] Kurniawan, Agus. 2014. Cara menggunakan Wireshark (diakses tanggal 9
Januari 2016)
[10] Hendri. 2010. Penggunaan Teknologi Secure Socket Layer pada Komunikasi
Data Hypertext Transfer Protocol dalam Pencegahan Serangan Man In The
Middle Attack. FTI. Universitas Kristen Satya Wacana.
18
Download