BAB I PENDAHULUAN Bab pertama ini berisi penjelasan hal-hal yang menjadi latar belakang, rumusan masalah, tujuan, batasan masalah, metodologi dan sistematika pembahasan laporan tugas akhir ini. 1.1 Latar Belakang Perkembangan teknologi informasi dewasa ini tidak terlepas dari peran internet sebagai tulang punggung utamanya. Berbagai macam layanan dapat disediakan dalam sistem yang melibatkan jaringan seluruh dunia. Salah satu layanan utama yang disediakan dalam sistem internet adalah situs web. Situs web adalah suatu fasilitas yang tersedia di internet berupa sekelompok halaman web (web page), gambar, video dan data digital yang disediakan di satu atau beberapa web server. Sebuah halaman situs bisa dibuat dari berbagai macam format file di server, antara lain HTML, PHP, JSP atau ASP. Format paling sederhana yang bisa digunakan adalah HTML. Situs yang menggunakan file HTML sebagai halamannya tidak bisa melakukan otorisasi user disebabkan sifat file HTML yang statik. Oleh karena itu, situs-situs yang membutuhkan otentikasi user untuk bisa mengaksesnya menggunakan format PHP, JSP atau ASP sebagai pembangun halaman situsnya. Selain bisa melakukan otorisasi user, situs yang menggunakan format PHP, JSP, atau ASP bisa melakukan update content situs secara dinamik sehingga pembuat situs tidak perlu melakukan coding terhadap isi file melainkan bisa melalui fasilitas query ke basis data. Ketiga format yang memiliki sifat dinamik seperti disebut sebelumnya menggunakan cara server-side scripting, yaitu suatu cara mengeksekusi isi file yang ada di server sebelum dikirimkan ke klien dalam bentuk HTML[W3S07]. Jadi, isi file yang diterima di pihak klien tidak sama dengan isi file di server. Dalam sebuah situs, server bisa menyediakan berbagai layanan bagi kliennya, seperti berita, ilmu pengetahuan, riset, hiburan dan sebagainya. Sebagian besar situs di internet bisa diakses secara bebas oleh siapa saja yang membutuhkan layanan dari situs tersebut. Artinya, setiap klien mempunyai hak akses terhadap segala content I-1 situs. Akan tetapi, tidak semua situs bisa diakses secara bebas oleh setiap klien. Hal ini bisa disebabkan oleh kerahasiaan content situs tersebut sehingga server tidak ingin klien yang tidak berhak mengaksesnya. Metode yang umumnya digunakan dalam pengamanan situs dari akses klien yang tidak terotentikasi adalah dengan sistem password, yaitu suatu cara dimana klien yang ingin mengakses halaman sebuah situs diminta memasukkan username dan password yang sah atau sudah disetujui oleh server. Sistem ini sudah dianggap cukup aman sehingga banyak diterapkan di berbagai situs. Namun, dalam sistem ini terdapat suatu celah yang bisa disusupi serangan oleh pihak ketiga, yaitu ketika user mengirimkan username dan password miliknya ke server dengan method POST yang digunakan. Hal ini bisa dimanfaatkan oleh pihak ketiga tersebut dengan melakukan eavesdropping (penyadapan) terhadap username dan password yang dikirimkan. Contoh situs yang menggunakan sistem ini antara lain situs-situs surat elektronik seperti Yahoo!, Gmail atau situs surat elektronik milik ITB (students.itb.ac.id). Celah yang dimiliki oleh sistem password yang disebutkan sebelumnya disebabkan karena otorisasi dilakukan di pihak server sehingga ada suatu saat dimana data yang seharusnya rahasia dilewatkan begitu saja di jaringan. Username dan password yang dikirimkan ini terkadang dienkripsi dalam pengirimannya. Akan tetapi, panjang username dan password yang umumnya pendek memudahkan penyerang dalam melakukan kriptanalisis (ilmu dan seni untuk memecahkan teks terenkripsi menjadi teks aslinya tanpa mengetahui kunci yang digunakan untuk penyandian[RIN06]). Gambar I-1 Situs email mahasiswa ITB I-2 Untuk membuktikan bahwa penggunaan username dan password tidak aman, diberikan contoh kasus sebagai berikut. Pada Gambar I-1 terlihat situs email untuk mahasiswa ITB (students.itb.ac.id). Dalam situs tersebut, mahasiswa yang ingin melihat email pribadi diminta memasukkan username dan password yang bersesuaian. Dalam contoh ini, username yang dimasukkan adalah “username” sedangkan password adalah “password”. Gambar I-2 memperlihatkan screenshot dari Wireshark, sebuah aplikasi pemantau aktivitas interkomunikasi yang melalui sebuah komputer. Terlihat bahwa ketika user melakukan posting username dan password, aplikasi Wireshark mencatat aktivitas tersebut dan menyimpan nilai yang dimasukkan oleh user tersebut dalam log sehingga pihak lain yang memasang aplikasi ini di komputer gateway bisa mengetahui username dan password user tersebut. Gambar I-2 Log aplikasi Wireshark Seperti disebutkan sebelumnya, penggunaan enkripsi bisa mencegah pencurian data oleh pihak luar. Algoritma enkripsi sendiri terdiri dari cipher blok dan cipher aliran. Cipher aliran memiliki keuntungan dibanding cipher blok dilihat dari sisi kompleksitas dan kecepatan komputasinya karena hanya bergantung dari algoritma yang digunakan. Selain itu, cipher aliran memiliki perambatan kesalahan yang kecil[BLE07]. Berdasarkan kunci yang digunakan, algoritma enkripsi terbagi menjadi algoritma kunci simetri dan kunci asimetri yang juga dikenal sebagai kunci publik. I-3 Salah satu algoritma kunci simetri yang dikenal adalah RC4. Algoritma ini merupakan salah satu algoritma cipher aliran. RC4 terkenal dengan kecepatan prosesnya. Hal ini ditulis di [BUD98] dengan membandingkan RC4 dan Blowfish. Menurut hasil pengujian kecepatan algoritma kriptografi RC4 adalah 5.380,035 Kbyte/detik pada Pentium133 memori 16MB pada Windows 95 sedangkan algoritma Blowfish pada jenis komputer yang sama menghasilkan kecepatan 2.300 KByte/detik. 1.2 Rumusan Masalah Masalah yang ingin dipecahkan dalam tugas akhir ini adalah bagaimana mengimplementasikan suatu sistem otorisasi user pada situs web di sisi klien sehingga user tidak perlu melakukan posting username dan password miliknya melalui jaringan. 1.3 Tujuan Pada tugas akhir ini tujuan yang ingin dicapai adalah: 1. Mempelajari cara melakukan enkripsi HTML yang dihasilkan melalui server-side scripting dan mengimplementasikannya di pihak server 2. Mempelajari cara melakukan dekripsi HTML di pihak klien yang diperoleh melalui transaksi dengan server yang melakukan enkripsi. 3. Membuat aplikasi yang menyediakan fasilitas enkripsi halaman HTML di sisi server dan dekripsi di sisi klien. 4. Melakukan pengujian tingkat keamanan sistem, yaitu dengan melakukan sniffing dan menganalisis hasil sniffing tersebut. 1.4 Batasan Masalah Dalam pengerjaan Tugas Akhir ini, ditetapkan beberapa batasan masalah, yaitu sebagai berikut : 1. File server-side scripting yang digunakan hanya PHP. 2. Tidak ada mekanisme manajemen kunci, dengan kata lain aplikasi tidak menangani penyampaian kunci antara klien dan server. I-4 1.5 Metodologi Metodologi yang diterapkan dalam pengerjaan Tugas Akhir ini antara lain: 1. Studi literatur terhadap perintah-perintah output dalam PHP. PHP memiliki beberapa perintah untuk melakukan output hasil eksekusinya ke dalam bentuk plain HTML. Nantinya, akan dipelajari cara agar sistem tidak langsung mengirimkan output melainkan melakukan enkripsi output terlebih dahulu. 2. Studi literatur terhadap algoritma enkripsi RC4. Untuk melakukan enkripsi terdapat berbagai macam algoritma enkripsi baik cipher blok ataupun cipher aliran. Untuk aplikasi yang akan dikembangkan ini, algoritma enkripsi yang dipilih adalah algoritma RC4. Pemilihan ini sesuai dengan fakta bahwa RC4 adalah algoritma cipher karakter menggunakan kunci simetri yang paling cepat. Oleh karena itu, akan dipelajari bagaimana algoritma RC4 berjalan. 3. Implementasi dan pengujian algoritma enkripsi ke file server. Algoritma enkripsi RC4 kemudian diterapkan ke dalam file PHP yang ada di server. Dalam tahap ini, akan dipelajari apakah perlu dibuat aplikasi baru yang menggunakan sistem enkripsi atau mengubah aplikasi lama yang sudah ada lalu ditambahkan sistem enkripsi. 4. Implementasi dan pengujian algoritma dekripsi di pihak klien. Setelah ciphertext diterima di pihak klien, diperlukan cara untuk mendekripsinya. Dekripsi dilakukan menggunakan algoritma dan kunci yang sama dengan yang digunakan oleh server untuk mengenkripsi teks tersebut. Oleh karena itu, diperlukan cara agar user bisa melakukan dekripsi halaman tersebut. Cara tersebut akan dipelajari dalam tahap ini. 1.6 Sistematika Pembahasan Sistematika Pembahasan dalam tugas akhir ini adalah sebagai berikut : 1. Bab I Pendahuluan, menguraikan hal-hal yang menjadi latar belakang pelaksanaan tugas akhir, perumusan masalah, penentuan tujuan, ruang lingkup dan batasan masalah, metodologi penyusunan tugas akhir dan sistematika pembahasan dalam laporan tugas akhir. I-5 2. Bab II Dasar Teori, menguraikan teori-teori yang digunakan dan teori yang berkaitan dan mendukung pelaksanaan tugas akhir. 3. Bab III Analisis Permasalahan, menguraikan hal-hal yang menjembatani antara permasalahan dengan solusi yang akan dibuat. 4. Bab IV Analisis dan Perancangan Perangkat Lunak, menguraikan dan mendeskripsikan kebutuhan perangkat lunak, studi kasus model situs dan model analisis perangkat lunak. 5. Bab V Implementasi dan Pengujian, menjelaskan bagaimana aplikasi diimplementasikan dan pengujian terhadap hasil implementasi tersebut. 6. Bab VI Penutup, berisi kesimpulan pengerjaan tugas akhir ini dan saran untuk mengembangkan aplikasi lebih lanjut. I-6