BAB III ANALISIS DAN PERANCANGAN
3.1 Analisis Permasalahan Implementasi secure socket layer (SSL) pada suatu situs merupakan satu pendekatan terhadap peningkatan keamanan suatu situs dalam dunia internet. Penyadapan data antara dua komputer (server dan client) yang saling berinteraksi di internet menjadi pokok permasalahan. Sehingga penulis akan membahas bagaimana implementasi suatu situs yang aman dengan menggunakan secure socket layer (SSL) sehingga data dari server dan client yang sedang berinteraksi dapat terlindungi dengan mengambil studi kasus pembuatan dokumen berupa surat dukungan oleh pihak pabrik untuk clientnya menggunakan aplikasi berbasis web. Pada sub bab berikutnya penulis akan membahas analisis faktor apa saja yang penting dalam implementasi secure socket layer (SSL) pada suatu situs menggunakan OpenSSL yang bebas dari biaya dan bersifat opensource.
3.2 Analisis Serangan terhadap Kemanan Data Penerapan keamanan yang kurang baik pada suatu situs akan memungkinkan celah yang bisa disusupi oleh penyadap informasi di internet. Serangan yang biasa dilakukan dalam penyadapan data atau informasi dari client dan server yang sedang berkomunikasi. Pada bab berikutnya penulis akan menjelaskan beberapa serangan yang terjadi untuk pada lalu lintas data antara client dan server yang sedang berkomunikasi .
3.2.1 Sniffing Packet sniffer merupakan suatu aplikasi yang berguna untuk melihat lalu lintas data yang berada pada suatu jaringan. Pada awalnya packet sniffer digunakan oleh seorang administrator jaringan untuk memantau dan memecahkan masalah jaringan. Dengan menggunakan informasi yang ditangkap oleh packet sniffer, administrator dapat melihat packet yang error dan mengidentifikasi bottleneck
25
26
dan menggunakan informasi tersebut untuk membuat suatu jaringan transmisi yang effesien. Hal tersebut dimanfaatkan oleh para cracker untuk mendapatkan informasi seperti nama pengguna dan password pada suatu jaringan dan sering disebut juga sebagai sniffing. Aplikasi sniffing ini banyak terdapat di internet dan bebas di distribusikan oleh siapa saja. Sebagai ilustrasi penulis akan mempraktekan salah satu aplikasi untuk sniffing yaitu Cain & Abel. Disini penulis akan mencari kata test sniffing pada search engine google (memakai protokol http) dan menangkap paket data yang terjadi antara browser pengguna dan server (search engine google). Seperti terlihat pada Gambar 3.1.
Gambar 3.1. Hasil pencarian pada situs www.google.com
Gambar 3.2. Hasil penyadapan program cain & abel Seperti terlihat pada Gambar 3.1 penulis memasukkan kata “Test sniffing” pada kolom pencarian search engine google. Dan pada Gambar 3.2 merupakan hasil penyadapan informasi dari protokol hypertext transport protocol (HTTP) untuk pencarian kata “Test sniffing”.
27
3.2.2 Session Hijacking Hypertext transport protokol (HTTP) merupakan protokol yang stateless yang berarti bahwa web server hanya memberikan apa yang diminta oleh client lalu koneksi akan diputus, sehingga perancang aplikasi mengembangkan suatu cara untuk menelusuri suatu state diantara pengguna aplikasi yang sedang terkoneksi secara multiple. Sehingga digunakan session untuk menyimpan informasi yang relevan tentang user. Session akan dihapus apabila seorang pengguna sudah logout atau tidak aktif lagi dalam waktu tertentu. Session inilah yang dimanfaatkan cracker untuk melakukan session hijacking. Dalam prakteknya session hijacking menggunakan cara membajak lalu lintas data, brute forced attack dan reversed engineering dalam mendapatkan session id pengguna yang kemudian dapat digunakan untuk mengakses server selama session berlangsung. Sebagai ilustrasi penulis menggambarkan seperti terlihat pada Gambar 3.3.
28
Gambar 3.3. Session Hijacking
3.2.3 Password Rangkaian penggunaan password yang mudah ditebak seperti tanggal lahir dan password yang hanya terdiri dari huruf saja atau angka saja memudahkan pihak ketiga untuk menebak password pengguna suatu site dengan menggunakan metode brute force attack (metode menebak password dengan menggunakan kata huruf maupun kombinasinya yang biasanya mempunyai kamus untuk hal tersebut) dan sniffing.
3.2.4 Kesalahan pengetikan hypertext transport protokol secure (HTTPS) Seringkali kita mengetikkan suatu alamat website hanya menggunakan www.namadomain.com tanpa mengetikkan protocol yang digunakan. Hal ini tidak
29
akan berakibat fatal apabila nama domain tersebut tidak mempunyai akses ke protocol
https.
Tapi
apabila
suatu
website
mempunyai
https://www.namadomain.com kemudian pengguna hanya mengetikkan alamat http://www.namadomain.com maka pengguna akan masuk ke dalam situs yang tidak terproteksi yang menyebabkan implementasi https suatu situs menjadi tidak berguna.
3.3 Analisis Secure Socket Layer (SSL) 3.3.1 Analisis Handshake Sequence Handhake sequence merupakan proses negosiasi antara server dan client sebelum client (pengguna) mendapatkan jalur yang terenkripsi. Selama proses handshake sequence terjadi pertukaran pesan antara client dan server. Tabel 3.1 merupakan tabel yang berisi pesan yang dikirimkan selama proses handshake sequence.
30
Tabel 3.1. Daftar Pesan Handshake Sequence [Sumber: Stephen Thomas 76] Nama Pesan
Alert
Keterangan
Menginformasikan apabila terjadi kesalahan atau terjadinya kegagalan dalam komunikasi
Application Data
Berisi informasi pertukaran enkripsi, verifikasi dan otentifikasi client dan server.
Certificate
Pesan yang berisi sertifikat
Certificate Request
Permintaan pengiriman sertifikat client oleh server (bila ada)
Certificate Verifiy
Pesan dari client yang menginformasikan mengetahui public key dari certificate yang dikirimkan
Change Chiper Spec
Pesan untuk mengaktifkan enkripsi yang telah disetujui
Client Hello
Pesan dari client yang menginginkan jalur komunikasi yang aman
Client Change
Pesan yang membawa kunci kriptografi
Exchange
client yang digunakan dalam komunikasi.
Finished
Pesan yang menandakan bahwa negosiasi telah berhasil dilakukan dan jalur komunikasi yang aman dapat digunakan
Hello Request
Permintaan kembali client hello oleh server (restart) dalam proses negosiasi SSL.
Server Hello Done
Pesan yang memberitahu client bahwa semua pesan untuk membuat jalur komunikasi yang aman sudah selesai.
Server Key
Pesan yang membawa kunci kriptografi
Exchange
server yang digunakan dalam komunikasi.
Agar lebih jelas dalam memahami proses hanshake sequence perhatikan Gambar 3.4.
31
INTERNET CLIENT
SERVER
Client Hello Server Hello Server Key Exchange Certificate Request Change Chiper Spec Server Hello Done Certificate Client Key Exchange Certificate Verify [Change Chiper Spec] Finished [Change Chiper Spec] Finished
Gambar 3.4. Proses Handshake Sequence [Sumber: IETF 22] Berikut penjelasan dari Gambar 3.4 : 1. Client Hello Pertama kali browser client mengirimkan pesan hello untuk memulai jalur komunikasi yang aman. Pesan client hello ini berisi: a. Versi Protokol, mengatur versi protokol ssl yang akan digunakan client. Apabila client meminta menggunakan protokol ssl versi 3 ke server dan hanya mendukung protokol ssl versi 2 maka client akan diminta menggunakan versi 2 atau dapat memutuskan hubungaan komunikasi. b. Session ID, berisi session id dari client. Namun apabila sesi SSL merupakan kelajutan dari sesi sebelumnya yang terputus maka isi dari session id client diset 0. c. Chiper Suite, berisi daftar parameter kriptografi yang didukung oleh client. d. Compression method, berisi tentang metode kompresi yang didukung oleh client. e. Random Value, nilai acak yang dipilih oleh client. 2. Server Hello
32
Kemudian server akan merespon dengan mengirimkan pesan hello. Adapun pesan server hello berisi: a. Versi Protokol, mengatur versi protokol ssl yang digunakan oleh server. b. Session ID, berisi nilai yang unik yang dibuat oleh server untuk mengidentifikasikan sesi ssl dengan client. Session ID ini bisa digunakan untuk meneruskan hubungan komunikasi yang terputus dengan client. c. Chiper Suite, disini server harus memilih satu diantara daftar kriptografi yang telah diajukan oleh client. d. Compression method, berisi tentang metode kompresi yang didukung oleh client. e. Random Value, nilai acak yang dipilih oleh server. f. Certificate Request, Server meminta sertifikat milik client. 3. Server mengirimkan informasi kunci publik yang digunakan. 4. Server meminta sertifikat client. 5. Server mengirimkan daftar kriptografi yang digunakan. 6. Server mengirimkan pesan telah selesai dalam mengirimkan pesan. 7. Client mengirimkan sertifikat miliknya. 8. Client mengirimkan kunci sesi yang telah dienkripsi menggunakan kunci publik server. 9. Client mengirimkan Certificate verify untuk memastikan pasangan kunci (private key client dan public key CA) yang digunakan dalam membuat sertifikat dalam sertifikat client. 10. Client mengirimkan pesan change chiper spec untuk mengaktifkan enkripsi di server sehingga pesan akan di enkripsi. 11. Client mengirimkan pesan telah selesai mengirimkan pesan. 12. Server mengirimkan pesan change chiper spec untuk mengaktifkan enkripsi di client sehingga pesan selanjutnya di enkripsi. 13. Server mengirimkan pesan telah selesai.
3.3.2 Analisis Protokol Secure Socket Layer (SSL) Pada Gambar 3.5 merupakan gambaran umum bagaimana secure socket layer (SSL) mengirimkan data melalui transport control protocol (TCP). Empat sumber
33
yang berbeda membuat sebuah pesan SSL (handshake, change chiper, alert dan aplikasi seperti http). Kemudian protokol record menerima semua pesan ini, membungkus dan membuat sebuah format pesan baru kemudian mengirimkannya melalui transport control protocol (TCP).
HTTP
Secure Sockets Layer
{
Handshake Protocol
Change Cipher Protocol
Alert Protocol
Application
RECORD PROTOCOL
TCP
Gambar 3.5. Komponen Protokol SSL [Sumber: Stephen Thomas 69] Berikut akan dijelaskan fungsi dari empat protokol tersebut: 1. Handshake Protocol Handshake Protocol bertanggung jawab di dalam proses negosiasi selama sesi SSL
berlangsung.
Dalam
proses
handshake
masing pesan handshake dimulai dengan sebuah
byte
sequence tunggal
masingyang
mendefinisikan spesifik jenis pesan handshake. Sebagai ilustrasi penulis membuat format umum dari struktur pesan protokol handshake pada Gambar 3.6. Pada Tabel 3.2 berisi daftar dari jenis pesan yang didefiniskan dalam handshake protocol.
34
Tabel 3.2. Daftar nilai dari Handshake Protocol [Sumber: Stephen Thomas 76] Value
Tipe Pesan Protokol Handshake
0
HelloRequest
1
ClientHello
2
ServerHello
11
Certificate
12
ServerKeyExchange
13
CertificateRequest
14
ServerHelloDone
15
CertificateVerify
16
ClientKeyExchange
20
Finished
Prot: 22
Vers: 3
…Length
Msg Type
0
Length...
Message Length
…Length
Handshake Protocol Message
Msg Type
Message Length
Handshake Protocol Message
Gambar 3.6. Struktur Handshake Message [Sumber: Stephen Thomas 75]
35
2. Change Chiper Spec Protocol Berfungsi sebagai pesan untuk mengaktifkan layanan kemanan yang sudah disepakati antara client dan server. Pada Gambar 3.8. (Struktur pesan change chiper spec protocol) terlihat bahwa pesan change chiper spec protocol mempunyai panjang satu byte dan isi pesan mempunyai nilai 1 (CCS:1). 3. Alert Protocol Sistem SSL menggunakan Alert protocol untuk memberikan pesan error apabila terjadi kesalahan dalam komunikasi antara client dan server. Alert Protocol mendefinisikan ke dalam 2 bagian pesan yaitu severity level dan alert description.
a. Severity Level Severity Level terbagi menjadi 2 level yaitu Level 1 dan Level 2. Level 1 menunjukkan tingkat keparahan (severity) yang menyebabkan suatu error terjadi dan di kategorikan sebagai tanda peringatan. Sedangkan pada level 2 dikategorikan sebagai fatal alert. Fatal alert mengindikasikan telah terjadi permasalahan yang serius dalam komunikasi antara client dan server yang mengharuskan kedua belah pihak untuk segera mengakhiri sesi komunikasi. b. Error Alert. Error Alert mendefinisikan error lebih detail. Dalam Tabel 3.3 merupakan deskripsi dari daftar error berikut penjelasannya.
36
Tabel 3.3. Daftar Fatal Alert [Sumber: Stephen Thomas 73] Nomer Error 0
Nama Error Close_Notify
Keterangan menunjukkan secara eksplisit pemberitahuan tentang penutupan koneksi yang sedang berlangsung.
10
Unexpected_Message
menunjukkan bahwa pesan yang diterima tidak layak. Pesan ini mengindikasikan telah terjadi kesalahan fatal (fatal alert).
20
Bad_Record_MAC
Terjadi kesalahan dalam messages authenticate code (MAC) (fatal alert).
30
Decompression_Failure
Terjadi kesalahan pada saat decompression pesan yang diterima oleh pihak penerima pesan (fatal alert).
40
HandShake_Failure
Terjadi kesalahan dalam proses handshake(fatal alert).
41
No_Certificate
Sebuah pesan peringatan dalam menanggapi permintaan sertifikasi jika tidak ada sertifikat yang sesuai.
42
Bad_Certificate
Sertifikat yang diterima rusak (corrupt).
43
Unsupported_Certificate
Pihak penerima menerima tipe sertifikat yang tidak di dukung.
44
Certificate_Revoked
sertifikat yang telah dicabut oleh badan certificate authentification (CA).
45
Certificate_Expired
Client menerima sertifikat yang telah habis masa berlakunya.
46
Certificate_Unknown
Terdapat masalah dalam memproses sertifikat dan error tersebut belum di definisikan.
47
Illegal_Parameter
Pihak pengirim menerima handshake message dengan nilai parameter yang ilegal atau tidak konsisten dengan parameter lainnya (fatal alert).
37
4. Record Protocol Record Protocol berfungsi untuk membungkus semua pesan protokol SSL (handshake, alert, change chiper) dan aplikasi protokol (http).
Record
Protocol memberikan format umum yang terdiri dari 5 byte yang diletakkan pada awal pesan yang diikuti oleh pesan protokol lainnya. Apabila message integrity aktif, sebuah message authentication diletakkan pada akhir pesan dan juga bertanggung jawab untuk enkripsi.
Protocol
Major Version
Minor Version
Length...
…Length
Protocol Message
Message authentication Code (Optional)
Gambar 3.7. Struktur Record Message [Sumber: Stephen Thomas 70] Adapun keterangan dari Gambar 3.7 dijelaskan pada Tabel 3.4.
38
Tabel 3.4. Daftar struktur Record Message [Sumber: Stephen Thomas 70] Nama
Ukuran
Protocol 1 byte
Keterangan Menunjukkan pesan dari protokol yang dimuat. Adapun kode protokol yang digunakan: Kode 20: ChangeCipher protocol Kode 21: Alert protocol Kode 22: Handshake protocol Kode 23: Data protokol aplikasi (http)
Version
2 byte
Berisi mayor dan minor dari versi SSL yang digunakan
Lenght
2 byte
Menunjukkan panjang pesan dari suatu protokol.
Protocol n byte
Berisi pesan record protokol atau bisa berupa
Message
gabungan pesan dari protokol SSL lainnya dan juga kode otentifikasi pesan yang digunakan. Panjang pesan sampai dengan 16384 byte
Pada Gambar 3.8 penulis memberikan contoh dari format pesan protokol yang di definisikan pada record protocol dalam secure socket layer (SSL).
Gambar 3.8. Struktur pesan protokol SSL
39
3.3.3 Analisis Mesage Authenticate Code (MAC) Secure Socket Layer (SSL) mendukung dua algoritma yaitu message digest 5 (MD5) dan Secure Hash Algorithm (SHA). Algoritma yang digunakan oleh server dalam menetukan hash ditentukan pada saat negosiasi chiper suite dengan client. Selain itu hasil hash dari pesan yang menggunakan MD5 dan SHA menghasilkan panjang
pesan
yang
berbeda.
Algoritma MD5 menghasilkan nilai hash 16
byte, sedangkan SHA menciptakan nilai 20 byte. Algoritma hash mempunyai nilai yang digunakan untuk memeriksa integritas dari data yang ditransmisikan. Mengenkripsi message digest dengan kunci private pengirim pesan akan menciptakan message authentication code (MAC).
3.4 Analisis Web Server Apache dan Secure Socket Layer (SSL) Dalam web server Apache versi 2.2 yang juga digunakan penulis dalam tugas akhir ini, Apache sudah terintegrasi dengan module secure socket layer (SSL) yaitu mod_ssl. Pada Gambar 3.9 dijelaskan arsitektur dari apache yang terintegrasi dengan Secure Socket Layer (SSL).
OpenSSL
PHP
mod_ssl
mod_php
mod_speling
mod_rewrite libap
libregex
mod_alias
40
Gambar 3.9 Arsitektur Apache web server Penjelasan mengenai arsitektur Apache web server adalah sebagai berikut: 1. Platform Functionality Fungsi dasar untuk menjalankan Apache yang disediakan oleh sistem operasi dimana apache di instal. Sistem operasi yang di dukung oleh Apache, antara lain Windows XP, Linux, MacOS dan UNIX. 2. Fungsi dasar Apache Merupakan fungsi utama dari aplikasi web server Apache. Yang terdiri dari kernel Apache, modul inti, dan beberapa library dasar. Kernel Apache bersama dengan modul inti menerapkan aturan dasar dari fungsi http server dan menyediakan fungsi pemrograman application programming interface (API) ke dalam lapisan modul. Lapisan ini berisi library kode program yang dapat digunakan kembali (reusable code) yaitu libap, library yang mengimplementasikan regular expression parsing and matching (libregex), dan sebuah library untuk operating system abstraction (libos).
41
3. Fungsi tambahan Pada lapisan ketiga terdapat modul tambahan yang bisa diintegrasikan kedalam Apache seperti modul Secure Socket Layer (mod_ssl). 4. Library pihak ketiga Library pihak ketiga tidak terdapat dalam paket apache, tetapi bisa menggunakan modul yang telah ada dalam paket apache. Sebagai contoh modul secure socket layer (mod_ssl) digunakan oleh toolkit library OpenSSL (pada aplikasi Apache versi 2.2 keatas sudah menyertakan toolkit library OpenSSL versi 0.9.8.o)
3.5 Analisis Virtual Host Untuk mengimplementasikan secure socket layer diatas, maka penulis membuat sebuah virtual host (www.dsl.com) menggunakan protocol http dan port:88 pada komputer penulis menggunakan web server apache. SSL yang diimplementasikan pada web server apache menggunakan protokol https dan port: 443. Pada virtual host (www.dsl.com) yang dibuat untuk keperluan membelokkan permintaan pengguna apabila pengguna hanya mengetikkan http maka langsung dibelokkan untuk menggunakan protocol https. Sehingga keamanan suatu website akan terjamin.
3.6 Analisis Dampak Sistem Pada setiap implementasi suatu aplikasi, perlu kita perhatikan dampak yang ditimbulkan. Dalam hal ini penulis membahas dampak dari implementasi suatu situs yang aman dengan menggunakan secure socket layer (SSL) berikut dampak dari keamanan yang diberikan dan membandingkan dengan web site yang tidak menerapkan secure socket layer (SSL). 1. Dampak secure socket layer (SSL) terhadap web server Pada dasarnya sebuah web server berkomunikasi dengan banyak browser client pada saat bersamaan dengan menggunakan satu protokol dan port yang sudah dibuat sebelumnya. Sehingga
tidak mungkin browser client
menggunakan satu protokol dan port yang sama untuk 2 aplikasi yang berbeda. Misalnya: browser client sedang mengunggah sebuah file akan
42
menggunakan Protokol file transfer protocol (FTP) dengan port:21 dan sambil menunggu unggah file selesai, client membaca berita di www.detik.com dengan menggunakan protokol hypertext transport protocol (HTTP) dengan port: 80. Dalam implementasi Secure socket layer (SSL) yang dibangun akan menggunakan sebuah port dan protokol khusus yang tidak digunakan oleh aplikasi lainnya sehingga akan tercipta jalur khusus dalam berkomunikasi antara server dengan banyak client. 2. Dampak keamanan yang diberikan secure socket layer (SSL) Dengan dienkripsinya jalur komunikasi antara server dan client maka informasi yang dikirimkan akan terlindungi dari penyadapan pihak ketiga. Sehingga serangan man in the middle attack yang terjadi dalam suatu jaringan internet dapat dihindarkan. 3. Tingkat kepercayaan pengguna website Selain jalur yang sudah dienkripsi, kepercayaan client terhadap suatu situs akan meningkat dengan adanya certificate yang telah di verifikasi oleh badan atau organisasi khusus untuk Certificate Authorization (CA). 4. Perbandingan antara web server yang menerapkan dan tidak menerapkan secure socket layer (SSL) Suatu website yang menerapkan secure socket layer (SSL) mempunyai nilai lebih yaitu keamanan dan kepercayaan client. Keamanan berupa jalur yang terenkripsi dan meningkatnya kepercayaan client terhadap situs tersebut dengan adanya certificate dibandingkan dengan website yang tidak menerapkan secure socket layer (SSL). Namun waktu akses suatu website yang menerapkan secure socket layer (SSL) akan sedikit lebih lama karena ada proses handshaking antara server dan client.
3.7 Analisa Kebutuhan Implementasi Secure Socket Layer (SSL) Penulis akan menganalisa kebutuhan dari implementasi Secure Socket Layer (SSL) ini. Penulis akan membahas analisa yang meliputi kebutuhan perangkat lunak, implementasi arsitektur Secure Socket Layer (SSL) beserta proses yang terdapat di dalamnya.
43
3.7.1 Deskripsi Umum Sistem Implementasi Secure Socket Layer (SSL) yang diterapkan pada suatu situs memiliki fungsi untuk enkripsi dan dekripsi informasi yang dikirimkan antara client dan server serta fungsi otentifikasi berupa certificate. Secure Socket Layer (SSL) di implementasikan pada sisi server sedangkan pada client hanya membutuhkan browser yang sudah mendukung Secure Socket Layer (SSL) seperti Internet Explorer versi 6. Pengguna suatu website yang sudah menerapkan Secure Socket Layer (SSL), pertama kali akan diminta untuk menginstal certificate dari server sebagai bukti otentifikasi web server tersebut apabila sebelumnya belum menginstal certificate web server tersebut. Dan selanjutnya client akan mengirimkan certifikat miliknya untuk digunakan sebagai otentifikasi ke server. Dan kemudian server akan mengecek sertifikat milik client di tanda tangani oleh kunci public milik Badan otentifikasi CA. Kemudian akan terjadi proses handshake antara browser client dan web server. Dan apabila tidak terjadi kesalahan atau error maka pengguna sudah dapat melakukan komunikasi yang aman dengan situs tersebut.
3.7.2 Analisis Spesifikasi dan Kebutuhan Aplikasi Pada pengembangan sistem menggunakan Secure Socket Layer (SSL) akan diberikan beberapa fitur, yaitu: 1. Fitur Enkripsi, jalur komunikasi antara client dan server di enkripsi menggunakan algoritma RSA. 2. Fitur Deskripsi, data komunikasi dari client dan server harus mampu di enkripsi oleh kedua belah pihak. 3. Fitur Message Digest, pesan yang dikirimkan memiliki sidik jari sebagai otentifikasi pengirim pesan. 4. Fitur Certificate, server maupun client mempunyai sertifikat sebagai bukti otentifikasi. 5. Fitur HTTP to HTTPS, bila ada permintaan client untuk menggunakan http maka akan di belokan untuk menggunakan https.
44
Dengan melihat 6 fitur utama tersebut maka sistem yang dibangun memiliki kebutuhan fungsional, yaitu: 1. Sistem memiliki kemampuan mengirim data dalam bentuk binary. 2. Sistem dapat melakukan enkripsi menggunakan Algoritma RSA. 3. Sistem harus dapat melakukan deskripsi terhadap pesan yang di enkripsi menggunakan Algoritma RSA. 4. Sistem dapat menyimpan pesan kesalahan dalam sebuah berkas (log file). 5. Sistem dapat melakukan otentifikasi pesan melalui sidik jari yang terdapat dalam pesan. 6. Sistem dapat mengotentifikasi user.
3.8 Perancangan Secure Socket Layer (SSL) Didalam secure socket layer terdapat 3 element dasar yang harus diperhatikan yaitu: 1. Kriptografi 2. Sidik jari (Thumbprint) 3. Certificate Ketiga element tersebut harus ada didalam implementasi secure socket layer suatu web server. Ketiga elemen tersebut akan penulis bahas pada sub bab berikutnya.
3.8.1 Kriptografi Secure socket layer mendukung semua algoritma asimetris dalam pembuatan kunci publik. Dalam pembuatan kunci publik penulis menggunakan algoritma RSA. RSA merupakan singkatan dari nama penemunya yaitu Rivest, Shamir dan Adleman). Algoritma RSA melakukan pemfaktoran bilangan prima yang sangat besar, Oleh karena alasan tersebut dipilih oleh penulis.
3.8.2 Sidik jari (Thumbprint) Sidik jari atau thumbprint dari suatu website yang menggunakan https harus ada karena digunakan sebagai identitas website tersebut. Untuk mendapatkan sidik jari digunakan fungsi hash satu arah. Secure Hash Algorithm (SHA) merupakan algoritma fungsi hash yang dipakai oleh penulis untuk membuat sidik
45
jari. Pada Gambar 3.10 berikut memberikan gambaran tentang fungsi hash yang dibahas.
Gambar. 3.10 Proses pembuatan sidik jari digital
3.8.3 Sertifikat Sebuah web server yang menerapkan SSL harus mempunyai certificate. Sebuah certificate suatu website harus disahkan melalui perusahaan yang khusus mengeluarkan certificate authority (CA) seperti VeriSign, tetapi disini penulis akan membuat seritifikat yang disahkan sendiri yang mengikuti aturan standard dari Internet Engineering Task Force (IETF) menggunakan aplikasi OpenSSL. Adapun struktur dari X.509 certificate sebagai berikut: 1. Version, mengatur tentang nomer versi dari suatu sertifikat yang dibuat 2. Serial Number, memuat nomer yang unik untuk mengidentifikasikan sertifikat 3. Signature Algorithm, memuat algortima yang dipakai untuk tanda tangan 4. Issuer Name, nama atau website yang memverifikasi informasi dan mengeluarkan sertifikat 5. Periode of Validity, masa berlaku suatu sertifikat 6. Subject Name, memuat identitas dari pemilik sertifikat seperti nama, alamat dan email 7. Subject Public Key, memuat tentang publik key dan algoritma yang dipakai suatu website Sebagai contoh penulis akan memperlihatkan Gambar 3.11 merupakan sertifikat yang berhasil dibuat.
46
Gambar 3.11 Sertifikat X.509
Gambar 3.12 Sertifikat paypal Pada Gambar 3.12 menunjukkan printscreen aplikasi Internet Explorer dari sertifikat situs www.paypal.com yang sudah diverifikasi oleh perusahaan CA
47
yaitu VeriSign. Dalam suatu sertifikat X.509 terdapat informasi untuk mengidentifikasikan suatu website atau client. Dalam mengidentifikasikan tersebut telah ditentukan oleh standar sertifikat X.509 yang disebut dengan distinguished names. Pada Tabel 3.5 merupakan daftar dari distinguished names yang digunakan dalam sertifikat X.509. Tabel 3.5. Daftar struktur distinguished names [Sumber: Ralf S. Engelschall 9] DN Field Common Name
Sing-
Keterangan
katan CN
Nama yang terdapat dalam
Contoh CN=Andoko
sertifikat
Organization O or Company Organizational OU Unit City/Locality L
Nama Organisasi
O=Mercubuana
Unit organisasi atau departemen
OU=Ilkom
Kota tempat tinggal pemilik
L=Jakarta
sertifikat State/Province
S
Propinsi pemilik sertifikat
S=Jawa Barat
3.9 OpenSSL OpenSSL yang digunakan penulis adalah versi 0.9.8o. Kode sumber dari OpenSSL ini selain menyediakan fasilitas SSL juga menyediakan sebuah perkakas (toolkit) kriptografi yang dapat digunakan untuk berbagai macam keperluan yang menyangkut pengamanan data dan komunikasi. Kriptografi yang didukung antara lain : 1. Fungsi Hash, MD2, MD5, MDC2, RMD-160, SHA, SHA1, SHA224, SHA256, SHA384, SHA512 2. Encoding dan Enkripsi Simetris, Base64 encoding, Blowfish, DES, Triple DES, IDEA, RC2, RC4 dan RC5 3. Ekripsi Asimetris, RSA dan DSA Dengan menggunakan aplikasi OpenSSL ini penulis membuat public key, tumbprint dan certificate yang digunakan untuk membuat secure socket layer
48
pada web server apache. Secara default aplikasi OpenSSL menyimpan konfigurasinya dalam sebuah file yaitu openssl.cnf. File ini berisi tentang pengaturan yang berhubungan dengan pembuatan sertifikat server, client maupun Badan certificate authority (CA).
3.10 Perancangan Konfigurasi Jaringan Disini penulis menggunakan jaringan 3 tier yang memberikan keuntungan sebagai berikut: 1. Apabila terjadi perubahan pada satu lapisan (misalkan perubahan di server) tidak perlu ada penginstalan ulang pada lapisan lainnya (client) cukup pada lapisan yang ingin dirubah. 2. Semua hal mengenai basis data hanya terinstal pada bagian server saja, menyebabkan biaya yang dikeluarkan bisa diminimalkan. Dalam model 3 tier ini pemrosesan terbagi kedalam tiga bagian yaitu: 1. Layanan presentasi (client side presentation), karena menggunakan aplikasi berbasis web, client hanya perlu menginstal browser saja. 2. Layanan bisnis (server side bussiness logic), application layer yang digunakan penulis adalah web server apache. 3. Layanan data (backend data storage), basis data yang digunakan oleh penulis adalah MySQL.
3.11 Perancangan Program Aplikasi Dalam penulisan tugas akhir ini dirancang suatu aplikasi berbasis web yaitu otentikasi dokumen digital yang aman dengan menerapkan secure socket layer (SSL). Dalam pengembangannya penulis menerapkan sitem model Waterfall dan sebagai alatnya penulis menggunakan Unified Modelling Language (UML). Gambaran umum tentang aplikasi yang dibuat akan dijelaskan pada Gambar 3.13.
49
Gambar 3.13 Gambaran umum aplikasi Seperti terlihat pada
Gambar 3.13 pertama kali browser yang digunakan
pengguna akan meminta jalur koneksi yang aman (https) setelah terjadi proses handshaking antara client dan server dan tidak terdapat kesalahan selama proses tersebut maka antara pengguna dan web server akan terbentuk koneksi yang aman untuk saling bertransaksi. Kemudian Pengguna dapat memasukkan user name dan password yang kemudian dikirimkan ke server. Setelah server melakukan pengecekan user name dan password yang terdapat dalam basis data dan sesuai dengan yang ada dalam basis data maka server akan mengirimkan halaman web site untuk pembuatan dokumen digital.
50
3.11.1 Unified Modelling Language (UML) 1. Use Case Model Use case diagram dari aplikasi yang akan dibangun dapat dilihat pada Gambar 3.14. SYSTEM Permintaan SSL
Proses Handshake SSL
<< include >>
Instal sertifikat
Sistem Web Server
SSL Alert
<< extend >>
Register
Cek database
Pengguna
<<
Lihat Dokumen
e> ud cl in
Buat Dokumen
<<
>
<< include >>
<< i
nclu
include >>
de >
>
Menampilkan Hasil Permintaan
Simpan Dokumen
Gambar 3.14 Use Case Diagram
51
Penjelasan use case diagram diatas dapat dilihat dalam use case description berikut ini: Actor Pengguna Sistem Web server Use Case Permintaan SSL Proses Handshake SSL Instal Sertifikat Milik Client Validasi Sertifikat Milik Client SSL Alert Register Cek Database Membuat Dokumen Simpan Dokumen Melihat Dokumen Menampilkan hasil permintaan
Skenario: 1. Pengguna melakukan permintaan layanan yang aman melalui web browser (https) 2. Sistem web server akan melakukan proses SSL Handshake dengan mengirimkan sertifikat dan publik key miliknya 3. Pengguna Menginstal sertifikat miliknya sebagai otentifikasi 4. Server memvalidasi sertifika client 5. Apabila ada error dalam proses handshake SSL sistem web server akan mengirimkan pesan kesalahan ke pengguna 6. Pengguna melakukan registrasi apabila belum pernah 7. Sistem web server akan mengecek apakah pengguna sudah pernah registrasi atau belum. 8. Pengguna melakukan a. Buat dokumen
52
b. Simpan Dokumen c. Lihat dokumen 9. Sistem web server akan menampilkan hasil permintaan pengguna atau admin
2. Activity Diagram Aktifitas dimulai pada saat pengguna mengetikkan https pada web browse. Setelah terhubung akan dilakukan pengecekan sertifikat client oleh sistem. Apabila sertifikat valid maka user akan masuk ke halaman utama. Dan pengguna akan melihat halaman pilihan untuk register melihat dan membuat dokumen. Untuk lebih jelasnya activity diagram dari program yang dibuat penulis bisa dilihat pada Gambar 3.15.
53
USER
WEB SERVER
HTTPS
SSL Handshake Jika gagal muncul pesan error
Proses berhasil Validasi sertifikat client Jika error
Keluar
Jika Ya cek sertifikat dengan database
Register
Belum Pernah Buat
Isi Formulir Registrasi
Sudah Pernah Buat
Buat Dokumen
Jika Ya
Simpan
Lihat Dokumen
Jika Tidak
Tampilkan Permintaan Keluar
Gambar 3.15 Activity Diagram
54
Adapun Activity Diagram dari proses SSL Handshake ditunjukan pada Gambar 3.16 dan Gambar 3.17.
Gambar 3.16 Activity Diagram SSL Handshake 1
55
BROWSER CLIENT
CLIENT SSL
WEB SERVER
Sambungan dari SSL Handshake 1
Validasi Client MAC dengan symetric Key Pemberitahuan Untuk mengakhiri koneksi
Tidak Valid Valid
Keluar
Buat Server MAC digest
Enkripsi Server MAC Digest dengan symetric Key
Ya
Dekripsi Server MAC Digest dengan symetric Key
Konfimasi keluar
Validasi Server MAC dengan symetric Key
Tidak valid
Tidak
Valid
Alert Protocol Buat Hubungan SSL
CertificateVerify
Keluar
Validasi Pasangan Kunci
Koneksi Ok Tidak Konfimasi keluar
Tidak Valid
Valid
Ya Alert Protocol Keluar Keluar
Gambar 3.17 Activity Diagram SSL Handshake 2
56
3. Class Diagram Gambar 3.18 berikut menjelaskan tentang class diagram dari aplikasi yang dibuat oleh penulis. Terdiri dari 3 kelas, yaitu: 1. Kelas SSL Handshake Kelas ini memiliki tiga atribute yaitu certificate, chiper spec dan certificate request dan memiliki dua operasi yaitu request process untuk melakukan proses permintaan ke server dan execute
process untuk mengeksekusi
permintaan dari pengguna dan akan dikirim hasilnya ke pengguna. 2. Kelas Sertifikat Kelas ini berfungsi untuk memvalidasi sertifikat dari client. 3. Kelas Dokumen Kelas ini berfungsi untuk membuat dokumen baru dan melihat dokumen yang telah ada. 4. Kelas SSL Alert. Kelas ini berfungsi untuk mengirimkan pesan ke pengguna apabila proses SSL handshake tidak dapat dilakukan atau terjadi kesalahan.
Gambar 3.18 Class Diagram
57
4. Statechart Diagram Pendeskripsian statechart diagram dari aplikasi yang dibuat oleh penulis dimulai dari keadaaan / state SSL Handshake berdasarkan permintaan pengguna (dengan mengetikkan https di browser). Jika tidak terjadi kesalahan maka akan dilanjutkan ke dalam proses selanjutnya yaitu validasi login yang berasal dari inputan user yaitu user name dan password. Jika akses login diterima maka dilanjutkan ke dalam proses dokumen dimana pengguna bisa membuat, melihat, dan menghapus dokumen. Start
Alert Protocol = Error Proses SSL Handshake
Buat, lihat, simpan dokumen
SSL handshake = sukses
Registrasi
Validasi Sertifikat dgn Basis Data
Dokumen
Finish
Gambar 3.19 Statechart Diagram
5. Deployment Diagram Deployment dari aplikasi yang dibuat terdiri dari 2 node. Yaitu node pengguna yang memiliki aplikasi client yang berjalan menggunakan browser Internet Explorer (IE) dan memerlukan operating system(OS) Windows XP atau Linux. Sedangkan node web server memiliki operating system(OS) Windows 2000 Server atau Linux dan mempunyai apache sebagai web server, OpenSSL untuk menjalankan security socket layer (SSL), dan basis data menggunakan MySQL. Gambar 3.20 memperlihatkan deployment diagram yang digunakan oleh penulis.
58
Gambar 3.20 Deployment Diagram 6. Component Diagram Component diagram dari sistem yang dibuat ditunjukkan pada Gambar 3.21.
Gambar 3.21 Diagram Component Seperti yang ditunjukkan pada Gambar 3.21 terdapat tiga component yaitu
59
1. Component User Interface Komponen ini memuat semua antar muka yang dilihat oleh pengguna yang meliputi home (layar awal), Register dan dokumen (layar buat dokumen dan lihat dokumen) 2. Component Web Server Apache Merupakan komponen yang diaktifkan dalam membuat sistem secure socket layer (SSL) yang terdiri dari komponen PHP (pemrograman), OpenSSL (untuk membuat sertifikat dan
didalamnya terdapat modul
mod_ssl untuk mengaktifkan secure socket layer (SSL)). 3. Component Server Komponen yang ketiga berisi basis data MySQL untuk menyimpan data dokumen yang dibuat oleh pengguna.
3.12 Perancangan Layar Aplikasi Perancangan layar dari aplikasi yang dibuat penulis terdiri dari layar login, layar menu utama pengguna dan layar menu utama admin. Berikut akan dijelaskan tentang masing-masing layar yang dibuat. 1. Layar Utama Layar Utama merupakan layar selamat datang apabila user berhasil masuk kedalam sistem seperti terlihat pada Gambar 3.22 dibawah ini.
Gambar 3.22 Layar utama 2. Layar Menu Utama Seperti terlihat pada Gambar 3.23 terdapat 3 menu yaitu home, register dan dokumen.
60
HOME
Register
Dokumen
Gambar 3.23 Rancangan Layar Menu Utama 3. Perancangan Menu Register Layar registrasi yang dirancang penulis terdiri dari nama user, password, email, alamat , nama perusahaan dari pengguna seperti yang terlihat pada Tabel 3.6 dibawah ini. Tabel 3.6. Struktur Tabel Menu Register Nama xxxxx
4
Nama
Alamat
Perusahaan
Perusahaan
xxxxx
xxxxx
Jabatan
Email
xxxxx
xxxxx
Rancangan menu dokumen Pada rancangan menu buat dokumen menampilkan data dari dokumen yang telah dibuat sebelumnya dan berisi link untuk melihat dokumen dan membuat dokumen baru. Tabel 3.7 berikut memuat informasi yang tersedia. Tabel 3.7. Struktur Tabel Menu Dokumen
5
Nama
Tanggal
xxxxx
xxxxx
Nama
Nomor
Proyek
Dokument
xxxxx
xxxxx
Keterangan Lihat | Baru
Rancangan Buat Dokumen Baru Pada rancangan buat dokumen Pengguna akan mengisi formulir yang diberikan. Pada Tabel 3.8 berikut isian dari formulir membuat dokumen baru. Tabel 3.8. Struktur Tabel Buat Dokumen Baru Tanggal
Nama Proyek
Alamat Proyek
Nomor Dokument
xxxxx
xxxxx
xxxxx
xxxxx
61
6
Rancangan Lihat Dokumen Baru Pada rancangan lihat dokumen berisi data pengguna dan proyek yang akan dibuat menjadi dokumen dalam bentuk surat dukungan. Pada Tabel 3.9 merupakan data yang akan ditampilkan. Tabel 3.9. Struktur Tabel Menu Dokumen Data Peminta Dokumen Nama
Alamat
Perusahaan
Perusahaan
xxxxx
xxxxx
Nama
Tanggal
Nama Proyek
Nomor Dokumen
xxxxx
xxxxx
xxxxx
xxxxx
Nama xxxxx
Jabatan
Email
xxxxx
xxxxx
Data Proyek
3.13
Perancangan Basis Data Dalam pembuatan aplikasi ini terdapat dua tabel yaitu Tabel data pengguna
dan Tabel data proyek. Berikut struktur Tabel yang dibuat penulis. Tabel 3.10. Tabel data pengguna Nama
Tipe
Panjang
Keterangan
id
integer
30
Primary Key
Nama
char
30
-
Nama Perusahaan
char
30
-
Alamat Perusahaan
char
30
-
Jabatan
char
30
-
Email
varchar
30
-
62
Tabel 3.11. Tabel data proyek Nama
Tipe
Panjang
Keterangan
id
integer
30
Primary Key
Tanggal
varchar
30
-
Nodok
char
30
Nomer dokumen
Napro
char
30
Nama proyek
Alamat
char
30
Alamat Proyek
Nama
char
30
Nama Pengguna
Dari dua Tabel diatas penulis membuat relasi antar tabel seperti yang ditunjukan pada Gambar 3.24.
Table
Table 1
Data Pengguna
Memiliki
N
Data Proyek
Gambar 3.24 Relasi antar Tabel