25
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
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”.
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.
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
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.
Tabel 3.1. Daftar Pesan Handshake Sequence [Sumber: Stephen Thomas 76]
Nama Pesan Keterangan
Alert 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 Exchange
Pesan yang membawa kunci kriptografi 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
Exchange
Pesan yang membawa kunci kriptografi server yang digunakan dalam komunikasi.
Agar lebih jelas dalam memahami proses hanshake sequence perhatikan Gambar 3.4.
CLIENT
INTERNET
Client Hello
Certificate
Client Key Exchange Certificate Verify [Change Chiper Spec] Finished
Server Hello Server Key Exchange Certificate Request Change Chiper Spec Server Hello Done
[Change Chiper Spec] Finished SERVER
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
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
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).
Handshake Protocol Change Cipher Protocol Alert Protocol RECORD PROTOCOL TCP Application HTTP Secure Sockets Layer
{
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 sequence masing-masing pesan handshake dimulai dengan sebuah byte tunggal yang 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.
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
Handshake Protocol Message
Handshake Protocol Message
Prot: 22 Vers: 3 0 Length...
…Length Msg Type
…Length
Message Length
Msg Type Message Length
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.
Tabel 3.3. Daftar Fatal Alert [Sumber: Stephen Thomas 73] Nomer
Error Nama Error Keterangan
0 Close_Notify 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).
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 Length...
Version
Minor Version
Protocol Message …Length
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.
Tabel 3.4. Daftar struktur Record Message [Sumber: Stephen Thomas 70]
Nama Ukuran Keterangan
Protocol 1 byte 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
Message
n byte Berisi pesan record protokol atau bisa berupa 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
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).
li
br
ege
x
li
ba
p
m
od_a
li
as
m
o
d_r
ew
ri
te
m
od_s
pe
li
n
g
m
od_php
m
od
_s
sl
O
pe
nS
S
L
P
H
P
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).
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
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.
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.
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
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.
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
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 Sing-
katan Keterangan Contoh
Common Name
CN Nama yang terdapat dalam sertifikat
CN=Andoko
Organization or
Company
O Nama Organisasi O=Mercubuana
Organizational Unit
OU Unit organisasi atau departemen OU=Ilkom City/Locality L Kota tempat tinggal pemilik
sertifikat
L=Jakarta
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
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.
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.
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. Pengguna << include >> Lihat Dokumen Proses Handshake SSL Permintaan SSL Buat Dokumen Menampilkan Hasil Permintaan Sistem Web Server SSL Alert Instal sertifikat << include >> < < in cl u d e > > Simpan Dokumen SYSTEM << in clu de > > Register << include > > Cek database << extend >>
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
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.
HTTPS
Register
Jika gagal muncul pesan error
Buat Dokumen
SSL Handshake
Proses berhasil
cek sertifikat dengan database
Belum Pernah Buat
Lihat Dokumen
Tampilkan Permintaan Jika Ya
Keluar
USER WEB SERVER
Validasi sertifikat client Jika Tidak Simpan Isi Formulir Registrasi Jika error Jika Ya Keluar
Sudah Pernah Buat
Adapun Activity Diagram dari proses SSL Handshake ditunjukan pada Gambar 3.16 dan Gambar 3.17.
BROWSER CLIENT WEB SERVER
CertificateVerify
Validasi Client MAC dengan symetric Key Tidak Valid
Pemberitahuan Untuk mengakhiri koneksi
CLIENT SSL
Validasi Pasangan Kunci Buat Server MAC digest
Tidak
valid Valid
Enkripsi Server MAC Digest dengan symetric Key Sambungan dari
SSL Handshake 1
Valid
Dekripsi Server MAC Digest dengan symetric Key
Validasi Server MAC dengan symetric Key
Alert Protocol
Koneksi Ok
Alert Protocol Valid Tidak Valid
Keluar Keluar Keluar Keluar Konfimasi keluar Ya Buat Hubungan SSL Tidak Konfimasi keluar Tidak Ya
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.
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.
Proses SSL Handshake Alert Protocol
= Error
Validasi Sertifikat dgn Basis Data SSL handshake = sukses Dokumen Buat, lihat, simpan dokumen Start Finish Registrasi
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.
Gambar 3.20 Deployment Diagram 6. Component Diagram
Component diagram dari sistem yang dibuat ditunjukkan pada Gambar 3.21.
Gambar 3.21 Diagram Component
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.
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 Nama
Perusahaan
Alamat
Perusahaan Jabatan Email
xxxxx xxxxx xxxxx xxxxx xxxxx
4 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
Nama Tanggal Nama
Proyek
Nomor
Dokument Keterangan
xxxxx xxxxx xxxxx xxxxx Lihat | Baru
5 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
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 Nama
Perusahaan
Alamat
Perusahaan Jabatan Email
xxxxx xxxxx xxxxx xxxxx xxxxx
Data Proyek
Nama Tanggal Nama Proyek Nomor Dokumen
xxxxx xxxxx xxxxx xxxxx
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 -
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.
N 1 Table Data Proyek Memiliki Table Data Pengguna