• Tidak ada hasil yang ditemukan

BAB III ANALISIS DAN PERANCANGAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III ANALISIS DAN PERANCANGAN"

Copied!
38
0
0

Teks penuh

(1)

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

(2)

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)

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.

(4)

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

(5)

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.

(6)

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.

(7)

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

(8)

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

(9)

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.

(10)

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

(11)

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.

(12)

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).

(13)

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.

(14)

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

(15)

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).

(16)

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).

(17)

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

(18)

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.

(19)

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.

(20)

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

(21)

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.

(22)

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

(23)

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

(24)

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.

(25)

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.

(26)

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 >>

(27)

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

(28)

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.

(29)

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

(30)

Adapun Activity Diagram dari proses SSL Handshake ditunjukan pada Gambar 3.16 dan Gambar 3.17.

(31)

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

(32)

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.

(33)

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.

(34)

Gambar 3.20 Deployment Diagram 6. Component Diagram

Component diagram dari sistem yang dibuat ditunjukkan pada Gambar 3.21.

Gambar 3.21 Diagram Component

(35)

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.

(36)

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

(37)

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 -

(38)

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

Gambar

Gambar 3.1. Hasil pencarian pada situs www.google.com
Gambar 3.3. Session Hijacking
Tabel 3.1. Daftar Pesan Handshake Sequence [Sumber: Stephen Thomas 76]
Gambar 3.4. Proses Handshake Sequence [Sumber: IETF 22]
+7

Referensi

Dokumen terkait

Setelah komunikasi antar anggota organisasi berjalan efektif maka hal tersebut akan mempengaruhi pelayanan yang diberikan kepada masyarakat, tentunya jika komunikasi

Interferensi ini tidak memiliki padanan dalam bahasa Indonesia karena dalam BI tidak memiliki prefiks yang secara detail menggambarkan makna yang sama dengan mar

Ohoi/Ohoi Rat adalah kesatuan masyarakat hukum adat yang bersifat Geneologis Territorial yang memiliki batas-batas wilayah, berfungsi mengatur dan mengurus kepentingan

Tingkat Pengetahuan Tentang Pencegahan dan Penyembuhan Kanker Serviks dan Perilaku Deteksi Dini Kanker Serviks Pada Wanita Pasangan Usia Subur”. Untuk maksud di atas,

a. Isi penting dari paket ini adalah: 1) menghapuskan persyaratan laba minimum 10% dari modal sendiri dan 2) dibukanya kesempatan bagi investor asing untuk berpartisipasi di Pasar

bahwa mereka yang namanya tercantum dalam Lampiran Keputusan ini, memenuhi syarat untuk ditunjuk sebagai Panitia Nasional Pelaksanaan Hari Internasional Penyandang Cacat

Setelah adukan beton dipindahkan ke concrete placing machine, pengecoran dilakukan dengan menjalankan concrete placing machine sepanjang mould yang akan dicor sambil membuka

Gambar 3.21 Gambar Sequence Diagram Melihat Seluruh laporan performance agent seluruh wilayah jakarta (View Layer) .... Gambar 3.22 Gambar Communication Diagram Registrasi