8
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 jerly.sabunaprotonmail.com
dan “magnum” sebagai password. Pengujian akan dilakukan dengan cara masuk ke dalam halaman login
website tersebut kemudian memasukan username dan password pada form login
9
yang ada di halaman login tersebut kemudian klick login. Sebagai contoh username yang dimasukkan berupa alamat email : jerly.sabunaprotonmail.com
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’.
10
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 a
dalah “server.crt”. Pada umumnya web server akan
11
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 etcapache2sites-availabletokomeranti.conf’.
Kode Program 1
Konfigurasi OpenSSL
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
1. VirtualHost :443
2. ServerAdmin webmasterlocalhost
3. ServerName www.tokomeranti.com:443
4. DocumentRoot varwwwhtmltokomeranti
5. Directory
6. Options FollowSymLinks
7. AllowOverride None
8. Directory
9. Directory varwwwhtmltokomeranti
10. Options Indexes FollowSymLinks MultiViews
11. AllowOverride None
12. Order allow,deny
13. allow from all
14. Directory
15. SSLEngine On
16. SSLCertificateFile etcapache2sslserver.crt
17. SSLCertificateKeyFile etcapache2sslserver.key
18. ErrorLog {APACHE_LOG_DIR}error.log
19. CustomLog {APACHE_LOG_DIR}access.log combined
20. VirtualHost
12
‘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.
13
Uji coba dimulai dengan melakukan login ke dalam website. Proses login dimonitor menggunakan aplikasi wireshark untuk menangkap informasi paket-
paket 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:
14
SELECT FROM user WHERE username=jerly.sabunaprotonmail.com 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.
15
Gambar 14 Hasil Capture Enkripsi Proses Otentikasi
Gambar 15 Hasil Capture Dekripsi Proses Otentikasi
16
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 8 0
443 Keamanan data
- Otentikasi Server
Kerahasiaan Data Integritas Data
Kebutuhan SSL Client - Server
Sertifikat SSL Enkripsi
Tidak Ya
Input Data ke Sistem Plaintext terbuka
Plainteks tertutup OSI Layer
Aplication Layer Transport Layer
Certificates No certificates required
Certificates required
Proses otentikasi -
Proses dilakukan tanpa enkripsi.
- Informasi
yang dimasukan
rentan terhadap penyadapan.
- Proses dilakukan dengan
enkripsi. -
Proses otentikasi lebih terjamin.
- OpenSSL menyediakan
protokol keamanan HTTPS.
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.
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
17
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