BAB II
LANDASAN TEORI
Pada bab ini akan membahas landasan atas teori-teori yang bersifat ilmiah untuk mendukung penulisan skripsi ini. Teori-teori yang dibahas mengenai Internet, Sejarah perkembangan website, Keamanan Web, Teori Client-server, Kriptografi, algoritma XXTEA dan beberapa subpokok pembahasan lainnya yang menjadi landasan dalam penulisan skripsi ini.
2.1 Interconnection Network (Internet)
Internet adalah sebuah sistem global dari seluruh jaringan komputer yang saling terhubung dengan menggunakan standar Internet Protocol Suite (TCP/IP) untuk melayani miliaran pengguna di seluruh dunia sebagai protokol pertukaran paket (packet switching communication protocol). Cara menghubungkan rangkaian dengan kaedah ini dinamakan internetworking.
Perkembangan Internet berawal pada tahun 1957, melalui Advanced Research Projects Agency (ARPA), Amerika Serikat bertekad mengembangkan jaringan komunikasi terintegrasi yang saling menghubungkan komunitas sains dan keperluan militer. Hal ini dilatarbelakangi oleh terjadinya perang dingin antara Amerika Serikat dengan Uni Soviet. Perkembangan besar Internet pertama adalah ditemukannya packet switching pada tahun 1960 oleh ARPA. Packet switching membuat pengiriman pesan dapat dipecah dalam paket-paket kecil yang masing-masing paketnya dapat melalui berbagai alternatif jalur jika salah satu jalur rusak untuk mencapai tujuan yang telah ditentukan. Packet switching juga memungkinkan jaringan dapat digunakan secara bersamaan untuk melakukan banyak koneksi, berbeda dengan jalur telepon yang memerlukan jalur khusus untuk melakukan koneksi. Maka ketika ARPANET menjadi jaringan komputer nasional di Amerika Serikat pada 1969, packet switching
Universitas Sumatera Utara
8
digunakan secara menyeluruh sebagai metode komunikasinya menggantikan circuit switching yang digunakan pada sambungan telepon publik.
Perkembangan besar Internet kedua yang dicatat pada sejarah internet adalah pengembangan lapisan protokol jaringan yang terkenal karena paling banyak digunakan sekarang yaitu TCP/IP (Transmission Control Protocol/ Internet Protocol). Protokol adalah suatu kumpulan aturan untuk berhubungan antar jaringan. Protokol ini dikembangkan oleh Robert Kahn dan Vinton Cerf pada tahun 1974. Dengan protokol yang standar dan disepakati secara luas, maka jaringan lokal yang tersebar di berbagai tempat dapat saling terhubung membentuk jaringan raksasa bahkan sekarang ini menjangkau seluruh dunia. Jaringan dengan menggunakan protokol internet inilah yang sering disebut sebagai jaringan internet. Protokol TCP/IP menjadi protokol umum yang disepakati sehingga dapat saling berkomunikasi pada jaringan internet ini. Perkembangan besar Internet ketiga adalah terbangunnya aplikasi World Wide Web pada tahun 1990 oleh Tim Berners-Lee. Aplikasi World Wide Web (WWW) ini menjadi konten yang dinanti semua pengguna internet. WWW membuat semua pengguna dapat saling berbagi bermacam-macam aplikasi dan konten, serta saling mengaitkan materi-materi yang tersebar di internet.
Dalam skripsi ini, sistem yang akan dibangun akan berbasis internet sehingga diharapkan dapat menyerupai bentuk nyata dari penggunaan login dan password yang biasanya banyak digunakan.
2.2 Sejarah Perkembangan Website
Website atau Situs Web merupakan tempat penyimpanan data dan informasi dengan berdasarkan topik tertentu. Diumpamakan situs web ini adalah sebuah buku yang berisi topik tertentu. Website atau Situs Web juga merupakan kumpulan dari halaman-halaman web yang saling berkaitan didalam website tersebut (Irawan, 2005). Penemu situs web adalah Sir Timothy John Tim Berners-Lee, sedangkan situs web yang tersambung dengan jaringan pertama kali muncul pada tahun 1991. Maksud dari Tim ketika merancang situs web adalah untuk memudahkan tukar-menukar dan memperbarui informasi pada sesama peneliti di tempat Dia bekerja. Pada tanggal 30
Universitas Sumatera Utara
9
April 1993, CERN (tempat dimana Tim bekerja) mengumumkan bahwa WWW dapat digunakan secara gratis oleh publik.
Sejarah perkembangan website dimulai dari Web 1.0 yang merupakan teknologi awal dari sebuah website, teknologi ini masih statis dimana antara pembuat website dan penikmat website hanya terjadi komunikasi satu arah dimana pembuat sebagai pemberi informasi dan penikmat hanya sebagai pembaca. Web 1.0 merupakan website yang digunakan untuk pertama kalinya, dimana seluruh data yang dibuat, ditampilkan dan design dari web tersebut itu semuanya ditentukan oleh admin, hingga sedikit terasa agak monoton. Web 1.0 tidak terlalu interaktif dikarenakan sifat dari Web 1.0 adalah read, maka ketika ada seseorang yang akan menambahkan atau memberikan komentar, seseorang tersebut harus menghubungi langsung admin yang bersangkutan melalui address yang telah ditentukan oleh admin. Jadi dalam penggunaan Web 1.0 hanya bisa untuk browsing sesuatu. Hal ini yang membuat website tidak praktis dan masih bersifat pasif atau statis. Adapun ciri-ciri dari web 1.0 adalah sebagai berikut:
1. Halaman statis, perubahan dan isi seluruhnya tergantung oleh pihak admin/ pemilik web tersebut. 2. Banyak menggunakan framesets. 3. Halaman masih didesain sebagai html murni, yang hanya memungkinkan orang untuk melihat tanpa ada interaksi 4. Biasanya hanya menyediakan semacam buku tamu online tapi tidak ada interaksi yang intens 5. Menggunakan form-form yang dikirim melalui e-mail, sehingga komunikasi biasanya baru satu arah.
Selanjutnya pada tahun 2004 dikembangkan Web 2.0 yang dimulai dari perkembangan semantik web. Perkembangan dari Web 2.0 lebih pada penyajian konten dan tampilan di dalam suatu website, yang versi sebelumnya berpusat pada sang pemilik website. Web 2.0 lebih bersifat interaktif daripada Web 1.0 dengan sifatnya yang Read Write, sehingga memudahkan dalam menambahkan materi, berkomentar , dan lain-lain, yang dilakukan oleh pembaca web tersebut, sesuai dengan sifat web 2.0 yang digunakan untuk share, collaborate dan exploite.
Universitas Sumatera Utara
10
Dalam web 2.0 user interface suatu situs web yang digunakan adalah teknologi flex (aplikasi rich internet berbasis flash dari macromedia yang sekarang disebut adobe), lazlo (platform aplikasi flash open source) atau menggunakan ajax secara intensif seperti gmail atau google map. Web-web yang menggunakan teknologi seperti itu dapat dikatakan merupakan situs tipe web 2.0, selain itu karena didukung oleh teknolgi AJAX maka web 2.0 dapat melakukan aktivitas drag and drop, auto complete, chat, voice dan lain sebagainya. AJAX adalah penggabungan dari JavaScript dan XML yang menekankan pada pengelolaan konten. Dalam web 2.0, XML juga digunakan untuk mendefinisikan format data. Adapun ciri dari web 2.0 adalah sebagai berikut:
1.
Konten dinamis, metadata, web standar dan skalabilitas.
2.
Mudah untuk memasukkan data atau mengambil data dari system.
3.
Berbasis web murni.
4.
Pengguna memiliki datanya sendiri pada situs.
5.
Pelaku utama Perusahaan Pengguna/Komunitas.
6.
Hubungan dengan server Client-server Peer to peer.
7.
Bahasa pemrograman penampil konten HTML XML.
8.
Pola hubungan penerbit-pengguna Searah Dua arah/ Interaktif.
9.
Pengelolaan konten Taksonomi/direktori Folksonomi/penanda/tag.
10.
Penayangan berbagai kanal informasi Portal RSS/Sindikasi.
11.
Hubungan antar pengakses Tidak ada Berjejaring.
12.
Sumber konten Penerbit/pemilik situs Pengguna.
Web 3.0 adalah generasi ketiga dari layanan internet berbasis web. Konsep Web 3.0 pertama kali diperkenalkan pada tahun 2001, saat Tim Berners-Lee, penemu World Wide Web, menulis sebuah artikel ilmiah yang menggambarkan Web 3.0 sebagai sebuah sarana bagi mesin untuk membaca halaman-halaman Web. Hal ini berarti bahwa mesin akan memiliki kemampuan membaca Web sama seperti yang manusia dapat lakukan sekarang ini. Web 3.0 berhubungan dengan konsep Web semantik, yang memungkinkan isi web dinikmati tidak hanya dalam bahasa asli pengguna, tapi juga
Universitas Sumatera Utara
11
dalam bentuk format yang bisa diakses oleh agen-agen software. Beberapa ahli bahkan menamai Web 3.0 sebagai Web Semantik itu sendiri.
Keunikan dari Web 3.0 adalah konsep dimana manusia dapat berkomunikasi dengan mesin pencari. Kita bisa meminta Web untuk mencari suatu data spesifik tanpa bersusah-susah mencari satu per satu dalam situs-situs Web. Web 3.0 juga mampu menyediakan keterangan-keterangan yang relevan tentang informasi yang ingin kita cari, bahkan tanpa kita minta. Web 3.0 terdiri dari Web semantik, Format mikro, pencarian dalam bahasa pengguna, penyimpanan data dalam jumlah besar, pembelajaran lewat mesin, dan kemampuan membuat rekomendasi, yang merujuk pada kecerdasan buatan Web. Web 3.0 menawarkan metode yang efisien dalam membantu komputer mengorganisasi dan menarik kesimpulan dari data online. Web 3.0 juga memungkinkan fitur Web menjadi sebuah sarana penyimpanan data dengan kapasitas yang luar biasa besar.
Walaupun masih belum sepenuhnya direalisasikan, Web 3.0 telah memiliki beberapa standar operasional untuk bisa menjalankan fungsinya dalam menampung metadata, misalnya Resource Description Framework (RDF) dan the Web Ontology Language (OWL). Konsep Web Semantik metadata juga telah dijalankan pada Yahoo’s Food Site, Spivack’s Radar Networks, dan sebuah development platform, Jena, di HewlettPackard. Jika diformulasikan, web 3.0 bisa dijabarkan dalam perumusan berikut : WEB 3.0 = 4C + P +VS, 4C = content, commerce, community, context P = personality dan VS = virtual search. Web 3.0 dapat bekerja sebagai asisten personal penggunanya yang tahu segala sesuatu tentang penggunanya dan mengakses internet untuk mencari jawaban dari kebutuhannya.
Dalam pengembangannya pada skripsi ini, system yang digunakan berbasis web. Dimana halaman login pada website akan dienkripsi untuk menambah keamanan proses autentifikasi.
Universitas Sumatera Utara
12
2.3 Keamanan Web
Munculnya Web 2.0 memberi kesempatan pada peningkatan berbagi informasi melalui jaringan sosial akibatnya website sering diserang langsung. Hacker berusaha untuk melakukan penetrasi pada jaringan perusahaan atau pengguna-akhir yang mengakses website dengan mengendalikan jaringan perusahaan atau pengguna akhir. Akibatnya, industri akan membayar lebih demi ditingkatkannya perhatian pada keamanan aplikasi web sendiri di samping keamanan jaringan komputer yang mendasari dan sistem operasi. Masalah keamanan web pada dasarnya bisa dibagi menjadi 3 bagian:
A. Keamanan di Server-side. Keamanan pada sisi ini meliputi berbagai layanan yang disediakan oleh server serta keamanan sistem operasi itu sendiri. Pada dasarnya, hal-hal yang perlu diperhatikan adalah berbagai security hole yang ada pada software-software penyedia layanan tersebut, diantaranya seperti: Web server, Database server, Mail server, DNS, application Server (JEE, Zope, dan lain-lain). Penyerangan biasanya diawali dengan mengumpulkan sebanyak mungkin data mengenai web yang bersangkutan, terutama berkaitan dengan software-software yang digunakan tersebut. Hal yang perlu diwaspadai adalah setting konfigurasi default dari software-software tersebut. Sebagai contoh, Apache Tomcat mempunyai user admin dengan password default yang terdapat pada dokumentasinya.
B. Keamanan Client-side. Keamanan ini meliputi keamanan dari sisi web browser serta transport data dari client ke server. Keamanan yang berhubungan dengan hal ini seperti:
Session hijacking, merupakan eksploitasi dari session yang valid untuk memperoleh akses.
XSS (Cross-site Scripting), keamanan terutama berkaitan dengan kodekode HTML dan client-side script seperti JavaScript dan VBScript.
Spoofing, yaitu “menipu” dengan cara memalsukan data yang ditransfer antar node. Beberapa bentuk spoofing ini antara lain seperti URL spoofing,
Universitas Sumatera Utara
13
referer spoofing, poisoning of file-sharing network, caller ID spoofing, email address spoofing, IP address spoofing, dan login spoofing.
MITM (man-in-the-middle) attack, yaitu penyerangan dalam bentuk membaca / memasukkan / memodifikasi data antar dua pihak tanpa diketahui bahwa data yang lewat antar link tersebut telah diserang.
C. Social Engineering. Merupakan berbagai teknik yang digunakan untuk membujuk korban melakukan tindakan tertentu atau memberikan informasi tertentu. Berbagai teknik yang digunakan antara lain adalah: Pretexting, yaitu penggunaan skenario tertentu untuk membujuk korban melakukan tindakan tertentu atau memberikan informasi tertentu.
Phising, yaitu penggunaan e-mail sedemikian rupa sehingga bisa membujuk orang untuk melakukan sesuatu atau memberikan informasi tertentu.
Trojan Horse/Gimmes, yaitu memanfaatkan rasa ingin tahu seseorang dan memberikan malware untuk keperluan itu.
Road Apple, yaitu menggunakan media fisik yang bisa memancing rasa ingin tahu seseorang dan memberikan malware sebagai isinya.
Menyediakan pertukaran data yang aman menggunakan internet adalah masalah memeriksa arus informasi dalam sistem anda dan memastikan bahwa, pada setiap titik, informasi anda aman. Dalam konteks keamanan jaringan, tidak ada yang absolut. Tidak ada sistem yang benar-benar tidak dapat ditembus. Aman berarti tingkat upaya yang diperlukan untuk membahayakan system atau transmisi lebih tinggi dibandingkan dengan nilai dari informasi yang terlibat (Welling & Thompson, 2009). Cara yang paling umum digunakan untuk pertukaran data yang aman di internet adalah Menggunakan SSL (Secure Sockets Layer). Protokol Secure Sockets Layer didesain oleh Netscape untuk memfasilitasi komunikasi data yang aman antara web server dan web browser. HTTPS adalah HTTP melalui SSL. Oleh karena itu untuk memahami HTTPS diperlukan pengertian yang lebih dalam terlebih dahulu mengenai HTTP atau Hyper Text Transfer Protocol, dimana HTTP adalah protokol atau bahasa yang digunakan oleh semua web browser saat berkomunikasi atau berhubungan
Universitas Sumatera Utara
14
dengan web server. Sedangkan SSL atau Secure Sockets Layer adalah protocol yang menyediakan jalan yang aman bagi web browser dan web
server untuk saling
berkomunikasi (Thomas Boutell, 2011).
Ketika web browser dan web server saling berkomunikasi melalui HTTPS, keduanya perlu melakukan verifikasi mengenai identitas masing-masing dan juga metode enkripsi yang hendak digunakan. Enkripsi digunakan untuk mengenkripsi kunci yang dikirim, data utama dan juga HTTPS memanfaatkan fungsi hash untuk mengirimkan message digest dari komunikasi yang terlaksana antara web browser dan web server. Penentuan algoritma enkripsi dan juga fungsi hash yang digunakan dilakukan melalui sertifikat SSL, dan untuk memperoleh sertifikat SSL ini diperlukan biaya sesuai dengan spesifikasi dan waktu berlaku dari sertifikat SSL tersebut. Metode enkripsi yang digunakan pun ditentukan berdasarkan sertifikat SSL. Pada proses komunikasi melalui HTTPS, koneksi terlaksana pada TCP/IP dengan port nomor 443. Sedangkan komunikasi yang melalui HTTP menggunakan koneksi TCP/IP pada port 80.
Beberapa penelitian tentang secure login antara lain penelitian yang dilakukan oleh Arkhan Subari, Mustafid dan Kodrat Iman Satoto. Mereka membuat desain secure login dengan algoritma RC-6. Hasil yang diperoleh adalah form login pada website dimana form password yang dikirimkan melalui metode POST sudah terenkripsi dengan algoritma RC-6 sehingga password yang dikirimkan bukan lagi berupa plain text, melainkan ciphertext. Dari hasil pengujian menggunakan FireBug, diperoleh kesimpulan bahwa waktu yang dibutuhkan untuk mengakses halaman website dengan form yang aman menggunakan algoritma RC-6 lebih lama 64,67 ms dibandingkan dengan form login standar. Ada juga penelitian yang dilakukan oleh Cao Xiao-jing dan Luo Wei-qi. Mereka membuat Desain dan implementasi dari sistem Secure login menggunakan Elliptic Curve Cryptography (ECC). Hasilnya diperoleh sistem yang bebas dari reply-attack karena client mengirimkan pesan dengan time stamp dan server memverifikasi time stamp. Sistem yang dibuat juga saling memverifikasi sehingga dapat memberi perlindungan terhadap serangan man-in-the-middle. Client mengirimkan pesan yang terenkripsi dengan public key yang ada di server dan hanya dapat di-dekripsi menggunakan private key yang ada pada server. Hal ini membuat keamanan komunikasi data antar client dan server lebih terjamin.
Universitas Sumatera Utara
15
Dalam Skripsi ini, perancangan secure login website menggunakan XXTEA, keamanan web lebih difokuskan pada client-side, yaitu meningkatkan keamanan web dari serangan Man-In-The-Middle Attack yaitu mencegah pencurian plaintext password dengan melakukan enkripsi pada password menggunakan algoritma XXTEA sehingga apabila password dicuri pada saat dikirimkan, yang didapatkan oleh attacker hanya berupa ciphertext.
2.4 Server dan Client-Server Jaringan client – server adalah jaringan dimana komputer client bertugas melakukan permintaan data dan server bertugas melayani permintaan tersebut (Mulyanto,2009). Client adalah komputer yang melakukan permintaan resource kepada server melalui software client. Server kemudian akan mengolah permintaan dari client, memilih informasi yang sesuai dan mengirimkannya kembali ke data hasil pengolahan ke client. Kemudian data yang diminta akan ditampilkan sebagai informasi pada layar komputer client melalui interface yang tersedia bagi pengguna. Server merupakan komputer yang meyediakan informasi dan memproses permintaan dari client, kemudian mengirimkan informasi yang sesuai dengan permintaan dapat merespons permintaan
client
client. Server
secara simultan dalam jumlah yang besar.
Komputer server juga bertugas menjamin keamanan resource jaringan.
SERVER
Gambar 2.1 Ilustrasi jaringan Client-Server Dalam model client/server, sebuah aplikasi dibagi menjadi dua bagian yang terpisah, tapi masih merupakan sebuah kesatuan yakni komponen client dan komponen server.
Universitas Sumatera Utara
16
Komponen client juga sering disebut sebagai front-end, sementara komponen server disebut sebagai back-end. Komponen client dari aplikasi tersebut dijalankan dalam sebuah workstation dan menerima masukan data dari pengguna. Komponen client tersebut akan menyiapkan data yang dimasukkan oleh pengguna dengan menggunakan teknologi pemrosesan tertentu dan mengirimkannya kepada komponen server yang dijalankan di atas mesin server, umumnya dalam bentuk request terhadap beberapa layanan yang dimiliki oleh server. Komponen server akan menerima request dari client, dan langsung memprosesnya dan mengembalikan hasil pemrosesan tersebut kepada client. Client kemudian menerima informasi hasil pemrosesan data yang dilakukan server dan menampilkannya kepada pengguna, dengan menggunakan aplikasi yang berinteraksi dengan pengguna.
Web Secure login dengan algoritma XXTEA adalah sebuah contoh dari aplikasi client/server yang didesain dengan menggunakan PHP dan Javascript. Javascript yang bertugas mengenkripsi password yang berjalan pada browser di pihak client sementara Script PHP untuk mendekripsi password yang dikirimkan dari client akan dijalankan di dalam web server.
2.5 Kriptografi Kriptografi berasal dari bahasa Yunani yaitu kryptos yang artinya “rahasia” dan graphein yang artinya “tulisan”, jadi kriptografi berarti tulisan rahasia (Munir, 2006). Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi yaitu :
Kerahasiaan, layanan yang digunakan untuk menjaga isi informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka/mengupas informasi yang telah disandi.
Integritas data, berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara
Universitas Sumatera Utara
17
lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.
Autentikasi,
berhubungan dengan identifikasi/pengenalan,
baik secara
kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.
Non-repudiasi, usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman suatu informasi oleh yang mengirimkan.
Sebuah algoritma enkripsi adalah proses matematis untuk mengubah informasi menjadi data sting yang acak (Welling & Thompson, 2009). Data yang dapat dibaca disebut plaintext dan teknik untuk membuat data tersebut menjadi tidak dapat dibaca disebut
enkripsi. Data hasil dari enkripsi disebut ciphertext,
dan proses untuk
mengembalikan ciphertext menjadi plaintext disebut dekripsi.
Cryptographic system atau cryptosystem adalah suatu fasilitas untuk mengkonversikan plaintext ke ciphertext dan sebaliknya. Dalam sistem ini, seperangkat parameter yang menentukan transformasi pencipheran tertentu disebut suatu set kunci. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa kunci kriptografi. Secara umum, kuncikunci yang digunakan untuk proses pengenkripsian dan pendekripsian tidak perlu identik, tergantung pada sistem yang digunakan. Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara matematis sebagai berikut :
EK (M) = C (Proses Enkripsi) DK (C) = M (Proses Dekripsi)
Pada saat proses enkripsi kita menyandikan pesan M dengan suatu kunci K lalu dihasilkan pesan C. Sedangkan pada proses dekripsi, pesan C tersebut diuraikan dengan menggunakan kunci K sehingga dihasilkan pesan M yang sama seperti pesan sebelumnya. Dengan demikian keamanan suatu pesan tergantung pada kunci ataupun kunci-kunci yang digunakan, dan tidak tergantung pada algoritma yang digunakan. Sehingga algoritma-algoritma yang digunakan tersebut dapat dipublikasikan dan
Universitas Sumatera Utara
18
dianalisis. Tidaklah menjadi masalah apabila seseorang mengetahui algoritma yang kita gunakan. Selama ia tidak mengetahui kunci yang dipakai, ia tetap tidak dapat membaca pesan.
2.5.1 Algoritma kriptografi Klasik
Sebelum komputer ada, kriptografi dilakukan dengan algoritma berbasis karakter. Algoritma yang digunakan termasuk ke dalam sistem kriptografi simetri dan digunakan jauh sebelum sistem kriptografi kunci publik ditemukan.Terdapat sejumlah algoritma yang tercatat dalam sejarah kriptografi (sehingga dinamakan algoritma kriptografi klasik), namun sekarang algoritma tersebut sudah usang karena ia sangat mudah dipecahkan. Algoritma kriptografi klasik dikelompokkan menjadi 2 macam yaitu:
1. Cipher Substitusi: dalam cipher substitusi setiap unit plain text akan diganti dengan satu unit ciphertext. Satu unit disini bisa berarti satu huruf, pasangan huruf, atau kelompok lebih dari dua huruf. Contohnya adalah Caesar Cipher.
2. Cipher Transposisi: huruf-huruf di dalam plaintext tetap sama, hanya saja urutannya diubah. Dengan kata lain algoritma ini melakukan transpose terhadap rangkaian karakter di dalam teks. Nama lain untuk metode ini adalah pengacakan atau permutasi karena transpose setiap karakter
di dalam teks sama dengan
mempermutasikan karakter-karakter tersebut. Contohnya seperti kriptografi dengan alat scytale yang digunakan tentara sparta pada zaman yunani.
2.5.2 Algoritma Kriptografi Modern
Kriptografi modern menggunakan gagasan dasar yang sama seperti kriptografi klasik (permutasi dan transposisi) tetapi penekanannya berbeda. Pada kriptografi klasik, kriptografer menggunakan algoritma yang sederhana, yang memungkinkan cipherteks dapat dipecahkan dangan mudah (melalui penggunaan statistik, terkaan, intuisi, dan sebagainya). Algoritma kriptografi modern dibuat sedemikian kompleks sedemikian sehingga kriptanalis sangat sulit memecahkan cipherteks tanpa mengetahui kunci.
Universitas Sumatera Utara
19
Algoritma kriptografi modern umumnya beroperasi dalam mode bit ketimbang mode karakter. Operasi dalam mode bit berarti semua data dan informasi (baik kunci, plainteks, maupun cipherteks) dinyatakan dalam rangkaian (string) bit biner, 0 dan 1. Algoritma enkripsi dan dekripsi memproses semua data dan informasi dalam bentuk rangkaian bit. Rangkaian bit yang menyatakan plainteks dienkripsi menjadi cipherteks dalam bentuk rangkaian bit, demikian sebaliknya. Algoritma kriptografi modern terdiri dari tiga bagian:
A. Algoritma Simetris. Algoritma simetris adalah algoritma yang menggunakan kunci yang sama untuk enkripsi dan dekripsinya. Algoritma kriprografi simetris sering disebut algoritma kunci rahasia, algoritma kunci tunggal, atau algoritma satu kunci, dan mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu. Kelebihan dari algoritma kriprografi simetris adalah waktu proses untuk enkripsi dan dekripsi relatif cepat. Hal ini disebabkan efesiensi yang terjadi pada pembangkit kunci. Karena prosesnya relative cepat maka algoritma ini tepat untuk digunakan pada sistem komunikasi digital secara real time seperti GSM. Aplikasi dari algoritma simetris digunakan oleh beberapa algoritma seperti: Data Encryption Standard (DES), Advance Encryption Standard (AES),dan lain sebagainya.
B. Algoritma Asimetris. Algoritma Asimetris adalah pasangan kunci kriptografi yang salah satunya digunakan untuk proses enkripsi dan satu lagi deskripsi. Semua orang yang mendapatkan kunci publik dapat menggunakannya untuk mengenkripsi suatu pesan, sedangkan hanya satu orang saja yang memiliki rahasia itu, yang dalam hal ini kunci rahasia, untuk melakukan pembongkaran terhadap kode yang dikirim untuknya. Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA (merupakan singkatan dari nama penemunya, yakni Rivest, Shamir dan Adleman).
C. Algoritma Hibrida. Algoritma hibrida adalah algoritma yang memanfaatkan dua tingkatan kunci, yaitu kunci rahasia (simetri) – yang disebut juga session key (kunci sesi) – untuk enkripsidata dan pasangan kunci rahasia – kunci publik untuk pemberian tanda tangan digital serta melindungi kunci simetri.
Universitas Sumatera Utara
20
Dalam skripsi ini,akan digunakan algoritma kriptografi XXTEA yang bersifat algoritma simetris untuk mengenkripsi dan dekripsi user-id dan password.
2.6.1 Linear Congruential Generator
Pembangkit bilangan acak kongruen-lanjar ( Linear Congruential Generator atau LCG) adalah salah satu bilangan acak tertua dan sangat terkenal. LCG didefinisikan dalam relasi rekurens sebagai berikut: Xn = (a * Xn – 1 + b) mod m
Yang dalam hal ini: Xn = bilangan acak ke-n dari deretnya Xn – 1 = bilangan acak sebelumnya a = faktor pengali b = increment m = modulus pembagi
Meskipun LCG secara teoritis mampu menghasilkan bilangan acak yang lumayan, namun LCG sangat sensitif terhadap pemilihan nilai nilai a, b dan m. Pemilihan nilainilai yang buruk dapat mengarah pada implementasi LCG yang tidak bagus. Berikut ini adalah tabel beberapa nilai konstanta a, b dan m yang bagus untuk LCG
Tabel 2.2 Konstanta a, b dan m yang bagus untuk LCG
a
b
m
106
1283
6075
211
1663
7875
421
1663
7875
430
2351
11979
936
1399
6655
1366
1283
6075
Universitas Sumatera Utara
21
a
b
m
171
11213
53125
859
2531
11979
419
6173
29282
967
3041
14406
141
28411
134456
625
6571
31104
1541
2957
14000
1741
2731
12960
1291
4621
21870
205
29573
139968
421
17117
81000
1255
6173
29282
281
28411
134456
2.6.2 Corrected Block Tiny Encryption Algorithm (XXTEA)
Correted Block TEA (atau biasa disebut dengan XXTEA) adalah cipher block yang dirancang untuk memperbaiki kelemahan dalam Block TEA sebelumnya (XTEA). XXTEA adalah operasi jaringan Feistel pada blok yang terdiri dari setidaknya dua buah
kata 32 -bit dan menggunakan kunci 128-bit (Yarrkov, 2010). Algoritma
XXTEA didesain oleh Roger Needham dan David Wheeler dari Laboratorium Komputer Cambridge, Algoritma ini dipublikasikan dalam laporan teknis pada bulan Oktober 1998. XXTEA juga merupakan sebuah algoritma enkripsi efektif yang mirip dengan DES yang dapat digunakan untuk aplikasi web yang membutuhkan keamanan. Ketika menggunakan algoritma ini, sebuah perubahan dari teks asal akan mengubah sekitar setengah dari teks hasil tanpa meninggalkan jejak dimana perubahan berasal.
XXTEA beroperasi pada blok yang berukuran tetap yang merupakan kelipatan 32 bits dengan ukuran minimal 64 bits. Jumlah dari putaran lengkap bergantung pada ukuran blok, tetapi terdapat minimal 6 (bertambah terus hingga 32 untuk ukuran blok yang
Universitas Sumatera Utara
22
lebih kecil). Algoritma ini menggunakan lebih banyak fungsi pengacakan yang menggunakan kedua blok tetangganya dalam pemrosesan setiap kata dalam blok.
Gambar 2.2 XXTEA Cipher
Keterangan simbol:
1. Xr, Xr-1, Xr+1: blok plaintext, dimana r adalah urutan blok yang sedang diacak. 2. q : jumlah iterasi yang sedang dilakukan. 3. DELTA : q dikalikan dengan konstanta yang bernilai 0x9E377B9. 4. Kr : blok kata kunci ke-r, dimana r sama dengan keterangan di atas. 5. <
>n : pergeseran bit ke kanan sebanyak n kali. 7.
8.
: operasi XOR.
: operasi penambahan.
seperti gambar 2.2 menampilkan proses pengacakan yang dilakukan pada satu iterasinya. Proses iterasi dalam XXTEA dilakukan dalam 2 kali iterasi yang dilakukan secara bersarang. Pada iterasi teratas, iterasi dilakukan sebanyak q, dimana:
Universitas Sumatera Utara
23
q=6+52/n dengan n ≥ 1 dimana n adalah jumlah blok dari plaintext. Lalu, pada iterasi selanjutnya, iterasi dilakukan sebanyak n kali. Proses pengacakan yang dilakukan dalam satu iterasi XXTEA adalah sebagai berikut:
1. Algoritma akan mengacak blok ke-r dari plaintext. 2. Proses akan mengambil xr-1, xr+1, DELTA, dan kata kunci sebagai input 3. Pengacakan pertama: xr-1<<2 di-XOR-kan dengan xr+1>>5. 4. Pengacakan kedua: xr-1>>3 di-XOR-kan dengan xr+1<<4. 5. Hasil yang didapat dari tahap 4 dan 5 ditambahkan. 6. Pengacakan ketiga: xr-1 di-XOR-kan dengan D yang merupakan perkalian antara konstanta DELTA yang bernilai 0x9E3779B dengan jumlah iterasi pertama yang telah dilakukan. 7. Pengacakan keempat: xr+1 di-XOR-kan dengan salah satu blok kata kunci, yaitu blok ke-(r XOR D>>2). 8. Hasil yang didapat dari tahap ke 6 dan 7 ditambahkan. 9. Hasil yang didapat dari tahap 5 dan 8 di-XOR-kan. 10. Hasil yang didapat pada tahap 9 ditambahkan ke blok plaintext ke-r. Detail proses enkripsi dan dekripsi algoritma XXTEA dapat dilihat dalam lampiran
XXTEA tidak memiliki
batas
ukuran
blok,
XXTEA
dapat digunakan untuk
mengenkripsi satu buah pesan utuh tanpa memerlukan mode operasi cipher. Meski XXTEA dapat mengenkripsi
keseluruhan pesan atau
file
sekaligus,
pada
implementasinya XXTEA dapat dioperasikan dengan mode operasi untuk filefile yang
berukuran
sangat besar
sehingga
tidak
bisa
dibaca
ke
dalam
memory sekaligus. Untuk kemudahan penggunaan dan keamanan secara umum, XXTEA lebih tepat digunakan ketika dapat dipakai untuk kondisi berikut:
1. Perubahan satu bit pada plaintext akan mengubah sekitar setengah dari total bits dari seluruh blok tanpa meninggalkan jejak dimana perubahan dimulai. 2. Tidak ada pilihan dari mode involved
Universitas Sumatera Utara
24
3. Walaupun terdapat perubahan yang teratur pada plaintext (misalkan nomor pesan), hanya pesan yang sama yang akan memberikan ciphertext yang sama dan kebocoran informasi minimal. 4. Nomor pesan harus selalu diperiksa sebagai redundansi untuk memeriksa pesan acak yang diterima. 5. Jika tidak memungkinkan untuk memasukkan pesan yang panjang, pesan tersebut dapat dipecah menjadi beberapa bagian yang masing-masing berukuran 60 kata. 6. Serangan cut and join nampaknya tidak mungkin dilakukan.
Kelebihan dari XXTEA menurut hatipoglu (2009) adalah:
Kunci 128 bit
Panjang blok adalah kelipatan 32 bit dengan minimal block adalah 64 bit
Hanya membutuhkan komputasi dan kebutuhan memory yang sangat rendah
Memberikan keamanan terbaik dilihat dari cycle ratio nya
Mudah diimplementasikan
Memberikan keamanan yang baik pada cycle yang lebih sedikit
Lebih efisien untuk pesan panjang
Bebas dipublikasikan karena tidak membutuhkan lisensi atau hak paten
Beberapa penelitian penggunaan algoritma XXTEA adalah penelitian yang dilakukan oleh Khandar William. Dia meneliti tentang Tiny Encryption Algorithm (TEA) dan turunan-turunannya (XTEA dan XXTEA). Hasil yang diperolehnya adalah waktu enkripsi dan dekripsi XTEA sedikit lebih lama dari TEA, namun lebih secure dibandingkan TEA dan waktu enkripsi dan dekripsi XXTEA hampir 100 kali lebih cepat dibandingkan XTEA. Penelitian juga dilakukan oleh Arif Rahman Sujatmika. Dia meneliti tentang Implementasi Enkripsi dengan Algoritma XXTEA pada Virtual Disk Berbasis Windows.
Dalam skripsi ini, akan digunakan algoritma enkripsi XXTEA karena kelebihankelebihan yang dimilikinya seperti yang telah dijelaskan di atas.
Universitas Sumatera Utara
25
2.6.3 Enkode Base64
Base64 adalah istilah umum untuk sejumlah skema pengkodean serupa yang mengkodekan data biner dan menerjemahkannya ke dalam representasi basis 64. Istilah Base64 berasal dari konten pengkodean MIME tertentu. Skema encoding base64 biasanya digunakan ketika ada kebutuhan untuk menyandikan data biner yang perlu disimpan dan ditransfer melalui media yang dirancang untuk menangani data tekstual. Hal ini untuk memastikan bahwa data tetap utuh tanpa perubahan selama pengiriman. Base64 digunakan umum dalam beberapa aplikasi termasuk email melalui MIME, dan penyimpanan data yang kompleks dalam XML. Base64 menggunakan karakter A – Z, a – z dan 0 – 9 untuk 62 nilai pertama, sedangkan 2 nilai terakhir digunakan untuk symbol (+ dan /). Beberapa metode encoding lain seperti uuencode dan binhex menggunakan 64 karakter yang berbeda untuk mewakili 6 binary digit, namun metodemetode tersebut tidak disebut sebagai encoding Base64.
Tabel 2.1 Enkoding Base64 Value Char 0 A 1 B 2 C 3 D 4 E 5 F 6 G 7 H 8 I 9 J 10 K 11 L 12 M 13 N 14 O 15 P
Value Char 16 Q 17 R 18 S 19 T 20 U 21 V 22 W 23 X 24 Y 25 Z 26 a 27 b 28 c 29 d 30 e 31 f
Value Char 32 g 33 h 34 i 35 j 36 k 37 l 38 m 39 n 40 o 41 p 42 q 43 r 44 s 45 t 46 u 47 v
Value Char 48 w 49 x 50 y 51 z 52 1 53 2 54 3 55 4 56 5 57 6 58 7 59 8 60 9 61 0 62 + 63 /
Ketika jumlah byte untuk mengkodekan tidak terbagi oleh 3 (yaitu, jika hanya ada satu atau dua byte masukan untuk blok terakhir), maka tindakan berikut dilakukan:
Universitas Sumatera Utara
26
Tambahkan byte ekstra dengan nilai nol sehingga ada tiga byte , dan lakukan konversi ke base64. Jika hanya ada satu byte masukan yang signifikan, hanya dua digit base64 pertama yang dipetik, dan jika ada dua byte masukan yang signifikan, tiga digit base64 yang dipetik. Karakter '=' dapat ditambahkan untuk membuat blok terakhir berisi empat karakter base64. Hasilnya adalah kelompok terakhir berisi satu oktet, empat bit paling signifikan dari blok 6-bit akhir diatur ke nol, dan ketika kelompok terakhir berisi dua oktet, dua bit paling signifikan dari 6-bit blok akhir diatur ke nol.
2.7 Bahasa Pemrograman dan Database yang Digunakan
Berikut ini akan dibahas beberapa bahasa pemrograman dan database yang akan digunakan untuk mengimplementasi sistem secure login dengan XXTEA.
2.7.1 Javascript
JavaScript adalah bahasa skrip yang populer di internet dan dapat bekerja di sebagian besar penjelajah web populer seperti Internet Explorer (IE), Mozilla Firefox, Netscape dan Opera. Kode JavaScript dapat disisipkan dalam halaman web menggunakan tag SCRIPT (Sunyoto, 2008). JavaScript diresmikan dalam standar bahasa ECMAScript dan terutama digunakan dalam bentuk JavaScript pada client-side, diimplementasikan sebagai bagian dari sebuah Web browser untuk menyediakan pengayaan antarmuka pengguna dan website dinamis. Hal ini memungkinkan akses program ke objek komputasi dalam lingkungan server. JavaScript menggunakan sintaks yang dipengaruhi oleh bahasa C. JavaScript menggunakan banyak nama dan konvensi penamaan dari Java, tetapi keduanya adalah dua bahasa pemrograman yang tidak sama dan memiliki semantik yang sangat berbeda. Prinsip-prinsip desain utama dalam JavaScript diambil dari bahasa pemrograman Self and Scheme.
JavaScript pertama kali dikembangkan oleh Brendan Eich dari Netscape dibawah nama Mocha, yang nantinya namanya diganti menjadi LiveScript, dan akhirnya menjadi JavaScript. JavaScript bisa digunakan untuk banyak tujuan, misalnya untuk membuat efek rollover baik di gambar maupun teks, dan yang penting juga adalah untuk membuat AJAX. JavaScript adalah bahasa yang digunakan untuk AJAX.
Universitas Sumatera Utara
27
Penggunaan JavaScript pada aplikasi diluar halaman Web misalnya dalam dokumen PDF, situs khusus browser, dan widget desktop.
2.7.2 Bahasa Pemrograman PHP: Hypertext Preprocessor
PHP adalah bahasa skrip di server-side yang dirancang khusus untuk Web. Dengan Sebuah halaman HTML, kode PHP bisa ditanamkan dan dapat dijalankan setiap kali halaman dikunjungi. Kode PHP akan diinterpretasikan pada web server dan menghasilkan HTML atau output lain yang akan dilihat pengunjung website (Welling & Thompson, 2009).
Pada awalnya PHP merupakan kependekan dari Personal Home Page (Situs personal). PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada waktu itu PHP masih bernama Form Interpreted (FI), yang wujudnya berupa sekumpulan skrip yang digunakan untuk mengolah data formulir dari web. Selanjutnya Rasmus merilis kode sumber tersebut untuk umum dan menamakannya PHP/FI. Pada November 1997, dirilis PHP/FI 2.0. Pada rilis ini, interpreter PHP sudah diimplementasikan dalam program bahasa C. Dalam rilis ini disertakan juga modul-modul ekstensi yang meningkatkan kemampuan PHP/FI secara signifikan. Pada tahun 1997, sebuah perusahaan bernama Zend menulis ulang interpreter PHP menjadi lebih bersih, lebih baik, dan lebih cepat. Kemudian pada Juni 1998, perusahaan tersebut merilis interpreter baru untuk PHP dan meresmikan rilis tersebut sebagai PHP 3.0 dan singkatan PHP diubah menjadi akronim berulang PHP, Hypertext Prerocessing.
Pada pertengahan tahun 1999, Zend merilis interpreter PHP baru dan rilis tersebut dikenal dengan PHP 4.0. PHP 4.0 adalah versi PHP yang paling banyak dipakai pada awal abad ke-21. Versi ini banyak dipakai disebabkan kemampuannya untuk membangun aplikasi web kompleks tetapi tetap memiliki kecepatan dan stabilitas yang tinggi. Pada Juni 2004, Zend merilis PHP 5.0. Dalam versi ini, inti dari interpreter PHP mengalami perubahan besar. Versi ini juga memasukkan model pemrograman berorientasi objek ke dalam PHP untuk menjawab perkembangan bahasa pemrograman ke arah paradigma berorientasi objek. Beberapa kelebihan PHP dari bahasa pemrograman web, antara lain (Sutarman, 2003):
Universitas Sumatera Utara
28
1. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaannya. 2. Web Server yang mendukung PHP dapat ditemukan dimana - mana dari mulai apache, IIS, Lighttpd, hingga Xitami dengan konfigurasi yang relatif mudah. 3. Dalam sisi pengembangan lebih mudah, karena banyaknya milis - milis dan developer yang siap membantu dalam pengembangan secara gratis di internet 4. Dalam sisi pemahamanan, PHP adalah bahasa scripting yang paling mudah karena memiliki referensi yang banyak. 5. PHP adalah bahasa open source yang dapat digunakan di berbagai mesin (Linux, Unix, Macintosh, Windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah system.
Perkembangan PHP dapat dilihat dari berbagai versinya sebagai berikut:
I. PHP/FI Ini merupakan cikal bakal PHP yang sekarang. Pertama dibuat oleh Rasmus Lerdorf pada 1995, pada awalnya dia menamakan script ini “Personal Home Page Tool” yang merupakan bahasa sederhana dari bahasa pemrograman C dimana Personal Home Page Tool ini dapat berkomunikasi dengan database dan bersipat Open Source. Pada awalnya Rasmus membuat bahasa pemrograman ini bertujuan untuk menyimpan data pengunjung yang melihat biodata pada web sitenya. Perkembangannya pertengahan tahun 1997 pemakai bahasa bahasa PHP semakin banyak, terlihat dari jumlah statistik domain yang menggunakan PHP hampir lebih dari 50.000 web site. Karena itu Rasmus mengembangkan bahasa pemrograman ini lebih lanjut, dan pada bulan November tahun 1997 muncul PHP/FI versi 2.0 yang merupakan cikal bakal PHP 3
II. PHP Versi 3
Universitas Sumatera Utara
29
PHP Versi 3 merupakan versi penyempurnaan dari bugs-bugs pada PHP/FI versi 1.0 dan PHP/FI versi 2.0. PHP Versi 3 ini dikembangkan oleh Andi Gutmans and Zeev Suraski pada tahun 1997 yang berhasil ditulis secara sempurna pada waktu itu. Fasilitas tambahan PHP Versi 3 dibandingkan versi sebelumnya, selain tambahan fungsi-fungsi baru, juga mendukung beberapa akses ke banyak database, pengelolaan protokol, dan API. Dari versi 3 ini singkatan PHP muncul, yaitu PHP Hypertext Preprocessor, dan pada tahun 1998 hampir 10% web site di dunia
menggunakan PHP sebagai web
servernya.
III. PHP Versi 4 Pada musim dingin di tahun 1998, tim PHP menulis ulang bahasa pemrograman PHP untuk membuat ketangguhan bahasa pemrograman ini. Akhirnya pada pertengahan tahun 1999 diperkenalkanlah PHP versi 4.0 yang menggunakan
script
engine
Zend
untuk
meningkatkan
penampilan
(performance) dan mempunyai dukungan yang sangat banyak terhadap ekstensi dan berbagai library beserta modul. PHP versi 4.0 ini juga mempunyai keunggulan dibandingkan versi-versi sebelumnya, diantaranya mendukung ke beberapa web server, fasilitas HTTP session, output buffer dan sistem keamanan. Pada perkembangannya, pada saat itu hampir 20% web server menggunakan bahasa pemrograman PHP sebagai interpreternya.
IV. PHP Versi 5 Pada bulan Juli tahun 2005 muncul PHP versi 5.0 yang menggunakan Zend Engine 2.0 dengan penambahan beberapa featur dan beberapa objek baru. PHP Versi 5 ini sangat mendukung pemrograman berbasis Object Oriented Programming atau OOP.
2.7.3 Database MySQL
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL
Universitas Sumatera Utara
30
tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL. Tidak sama dengan proyek-proyek seperti Apache, dimana perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya.
MySQL adalah sebuah implementasi dari sistem manajemen basis data relasional (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap pengguna dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam basisdata yang telah ada sebelumnya; SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian basisdata, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis.
Kehandalan suatu sistem basisdata (DBMS) dapat diketahui dari cara kerja pengoptimasi-nya dalam melakukan proses perintah-perintah SQL yang dibuat oleh pengguna maupun program-program aplikasi yang memanfaatkannya. Sebagai aplikasi basis data, MySQL mendukung operasi basisdata transaksional maupun operasi basisdata non-transaksional. Pada modus operasi non-transaksional, MySQL dapat dikatakan unggul dalam hal unjuk kerja dibandingkan aplikasi basis data kompetitor lainnya. Namun demikian pada modus non-transaksional tidak ada jaminan atas reliabilitas terhadap data yang tersimpan, karenanya modus nontransaksional hanya cocok untuk jenis aplikasi yang tidak membutuhkan reliabilitas data seperti aplikasi blogging berbasis web (wordpress), CMS, dan sejenisnya. Untuk kebutuhan sistem yang ditujukan untuk bisnis sangat disarankan untuk menggunakan modus basisdata transaksional, hanya saja sebagai konsekuensinya unjuk kerja MySQL pada modus transaksional tidak secepat unjuk kerja pada modus nontransaksional. MySQL memiliki beberapa keistimewaan, antara lain :
Universitas Sumatera Utara
31
1. Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi. 2. Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis. 3. Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik. 4. 'Performance tuning', MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu. 5. Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lainlain. 6. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query). 7. Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi. 8. Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya. 9. Konektivitas. MySQL dapat melakukan koneksi dengan client menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT). 10. Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada client dengan menggunakan lebih dari dua puluh bahasa. 11. Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface). 12. Client dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool) yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online.
Universitas Sumatera Utara
32
13. Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle.
MySQL sangat populer dalam aplikasi web dan berfungsi sebagai komponen basis data dalam LAMP. Popularitas sebagai aplikasi web dikarenakan kedekatannya dengan popularitas PHP, sehingga seringkali disebut sebagai Dynamic Duo. Dalam skripsi ini, MySQL akan digunakan untuk menyimpan data username dan password yang akan digunakan untuk secure login dengan XXTEA
2.8 Aplikasi-Aplikasi Pendukung lainnya
Dalam pembuatan sistem secure login menggunakan XXTEA membutuhkan beberapa aplikasi-aplikasi pendukung yang digunakan untuk menjalankan serta menguji sistem yang dibuat.
2.8.1 Browser
Browser adalah perangkat lunak yang berfungsi menampilkan dan melakukan interaksi dengan dokumen-dokumen yang disediakan oleh web server. Sebuah sumber informasi diidentifikasi dengan Uniform Resource Identifier (URI) dan mungkin saja halaman web, gambar, video, atau bagian lain dari isi (Jacob&Walsh, 2004). Hyperlink hadir dalam sumber daya untuk memungkinkan pengguna dengan mudah menavigasi peramban web mereka ke sumber daya terkait. Sebuah peramban web juga dapat didefinisikan sebagai aplikasi perangkat lunak atau program yang dirancang untuk memungkinkan pengguna untuk mengakses, mengambil dan melihat dokumen dan sumber daya lainnya di Internet.
Tujuan utama dari peramban web adalah untuk membawa sumber informasi kepada pengguna. Proses ini dimulai ketika masukan pengguna sebuah Uniform Resource Locator (URL), misalnya http://www.google.co.id/, ke peramban web. Awalan dari URL, Uniform Resource Identifier atau URI, menentukan bagaimana URL akan ditafsirkan. Jenis URI yang paling umum digunakan dimulai dengan http:
Universitas Sumatera Utara
33
mengidentifikasi sumber daya yang akan melewati Hypertext Transfer Protocol (HTTP). Banyak peramban web juga mendukung berbagai prefiks lainnya, seperti https: untuk HTTPS, ftp: untuk File Transfer Protocol, dan file: untuk berkas lokal.
Dalam kasus http, https, file, dan lain-lain, sekali sumber daya telah diambil, maka web peramban web akan menampilkannya. HTML akan diteruskan ke layout engine browser untuk diubah dari markup ke dalam dokumen interaktif. Selain dari HTML, peramban web umumnya dapat menampilkan berbagai jenis konten yang dapat menjadi bagian dari suatu halaman web. Kebanyakan peramban web dapat menampilkan gambar, audio, video, dan file XML, dan sering memiliki plug-in untuk mendukung aplikasi Flash dan Java Aplet. Apabila peramban web menemukan file dari jenis yang tidak didukung atau file yang telah diatur untuk di-download, peramban web akan meminta pengguna untuk menyimpan file ke disk. Sumber daya Informasi dapat berisi hyperlink ke sumber informasi lain. Setiap link berisi URI dari sumber daya menuju halaman lain. Ketika link di klik, peramban web menavigasi ke sumber yang ditunjukkan oleh target link URI, dan proses membawa konten ke pengguna dimulai lagi dari awal.
Peramban web pertama bernama World Wide Web berbasis teks, seperti halnya Lynx yang populer hingga sekarang, karena memang sistem dengan antarmuka grafis belum umum digunakan pada saat itu. Baru setelah sistem berbasis grafis mulai banyak digunakan, seorang mahasiswa bernama Marc Andressen dari University of Illinois, Urbana-Champaign, Amerika Serikat, membuat sebuah peramban web berbasis grafis pertama yang berjalan di atas sistem operasi Windows dan UNIX (berbasis Motif). Peramban web tersebut dinamai Mosaic. Selanjutnya, setelah lulus dari universitas, Marc ditawari oleh Jim Clarc, salah seorang petinggi Silicon Graphics Incorporated (SGI), untuk membuat perusahaan dengan nama Mosaic Communication, yang kemudian berubah menjadi Netscape Communication. Marc membuat sebuah peramban web populer pertama yang digunakan oleh umum, yang disebut dengan Netscape Navigator. Pada saat pengembangannya, Navigator memiliki nama kode Mozilla. Navigator merupakan peramban web komersial, akan tetapi seiring dengan waktu akhirnya Navigator pun menjadi dapat diperoleh secara gratis. Sementara itu, peramban web Mosaic yang gratis tidak diteruskan lagi pengembangannya, dan
Universitas Sumatera Utara
34
diserahkan kepada NCSA (National Computing for Supercomputer Application). Karena NCSA tidak memiliki izin untuk mengomersialkan produk Mosaic, NCSA akhirnya menjual Mosaic kepada Spyglass, yang akhirnya membuat Mosaic menjadi peramban web komersial.
Microsoft, yang terlambat turun di pasar peramban web, pun membeli lisensi Mosaic dari Spyglass, sehingga pada akhirnya merilis produk peramban web-nya, yang disebut sebagai Internet Explorer. Dengan dirilisnya Internet Explorer, muncullah perang besar antara peramban web populer, yakni antara Netscape Navigator, dan Microsoft Internet Explorer. Dalam skripsi ini, browser Firefox versi 11 akan digunakan untuk menjalankan aplikasi secure login dengan XXTEA.
2.8.2 Fiddler
Fiddler adalah Debugging Web Proxy yang mencatat log semua lalu lintas HTTP (S) antara komputer dan Internet. Fiddler digunakan untuk memeriksa lalu lintas, breakpoints set, dan fiddle menggunakan data yang masuk atau keluar. Fiddler juga memasukkan fasilitas event-based scripting subsystem yang powerfull, dan dapat diperkaya menggunakan bahasa pemrograman .NET. Fiddler adalah perangkat lunak gratis dan dapat digunakan untuk men-debug lalu lintas dari hampir semua aplikasi yang mendukung proxy, termasuk Internet Explorer, Google Chrome, Apple Safari, Mozilla Firefox, Opera, dan ribuan lainnya. Fiddler juga bisa digunakan untuk mendebug lalu lintas dari perangkat populer seperti Windows Phone, iPod / iPad, dan lainnya. Dalam skripsi ini, versi yang digunakan adalah fiddler 2,Fiddler akan digunakan untuk menangkap data yang dikirimkan dari client ke server.
2.8.3 Firebug
Firebug adalah Web Development Tool yang memfasilitasi debugging, editing, dan monitoring dari setiap CSS, HTML, DOM, XHR, dan JavaScript pada sebuah Website.
Firebug juga menyediakan Web Development Tool lainnya.
Panel
JavaScript pada Firebug dapat mencatat kesalahan, profile function calls, dan memungkinkan pengembang menjalankan sebarang JavaScript. Net panel pada
Universitas Sumatera Utara
35
Firebug dapat digunakan untuk memantau URL yang di-request oleh browser, seperti eksternal CSS, JavaScript, dan file gambar. Net panel pada Firebug juga dapat digunakan untuk menampilkan request headers dan response headers untuk setiap halaman aset, serta dapat memperkirakan waktu yang dibutuhkan setiap aset untuk ditampilkan.
Firebug adalah perangkat lunak gratis dan bersifat open source bawah lisensi BSD. Firebug awalnya dibuat pada Januari 2006 oleh Joe Hewitt, salah satu pencipta Firefox. Kelompok Kerja Firebug mengawasi pengembangan open source dan ekstensi Firebug. Firebug memiliki dua implementasi utama yaitu: Ekstensi (add-on) untuk Mozilla Firefox dan implementasi bookmarklet yang disebut Firebug Lite, sebuah versi cross-browser yang dalam tahap pengembangan. Saat ini, add-on Firebug memiliki lebih dari 3 juta pengguna aktif sehari-hari. Selain debugging halaman web, Firebug adalah digunakan untuk pengujian keamanan web dan menganalisis kinerja halaman web. Dalam skripsi ini,Firebug akan digunakan untuk menghitung waktu load halaman web sebelum dipasangkan secure login dengan XXTEA,dan sesudah dipasangkan secure login dengan XXTEA.
2.8.4 Fireforce Fireforce adalah pengaya Firefox yang didesain untuk melakukan serangan Bruteforce pada form GET dan POST. Fireforce dapat menggunakan serangan bertipe dictionary atau meng-generate password berdasarkan beberapa tipe karakter. Serangan dapat dilakukan pada field menggunakan dua sumber password yang berbeda.. Fireforce dapat digunakan pada berbagai platform yang dapat menjalankan Web Browser Firefox dan didistribusikan dibawah lisensi GPL. Dalam skripsi ini akan digunakan Fireforce versi 2.1 untuk melakukan serangan brute-force terhadap form login. Akan dilihat dua kondisi penggunaan Fireforce yaitu pada form login standard dan form login yang sudah dipasang secure login dengan algoritma XXTEA.
Universitas Sumatera Utara
36
2.9 Beberapa catatan-catatan dari penelitian sebelumnya
Adapun beberapa catatan-catatan yang dapat dirangkum dari penelitian-penelitian sebelumnya dapat dilihat dibawah ini:
1. Penelitian yang dilakukan oleh Arkhan Subari, Mustafid dan Kodrat Iman Satoto. Mereka membuat desain secure login dengan algoritma RC-6. Hasil yang diperoleh adalah form login pada website dimana form password yang dikirimkan melalui metode POST sudah terenkripsi dengan algoritma RC-6 sehingga password yang dikirimkan bukan lagi berupa plain text, melainkan cipher text. Dari hasil pengujian menggunakan FireBug, diperoleh kesimpulan bahwa waktu yang dibutuhkan untuk mengakses halaman website dengan form yang aman menggunakan algoritma RC-6 lebih lama 64,67 ms dibandingkan dengan form login standar.
2. Penelitian yang dilakukan oleh Cao Xiao-jing dan Luo Wei-qi. Mereka membuat Desain dan implementasi dari sistem Secure login menggunakan Elliptic Curve Cryptography (ECC). Hasilnya diperoleh sistem yang bebas dari reply-attack karena client mengirimkan pesan dengan time stamp dan server memverifikasi time stamp. Sistem yang dibuat juga saling memverifikasi sehingga dapat memberi perlindungan terhadap serangan man-in-the-middle. Client mengirimkan pesan yang terenkripsi dengan public key yang ada di server dan hanya dapat di-dekripsi menggunakan private key yang ada pada server. Hal ini membuat keamanan komunikasi data antar client dan server lebih terjamin.
3. Penelitian yang dilakukan oleh Khandar William. Dia meneliti tentang Tiny Encryption Algorithm (TEA) dan turunan-turunannya (XTEA dan XXTEA). Hasil yang diperolehnya adalah waktu enkripsi dan dekripsi XTEA sedikit lebih lama dari TEA, namun lebih secure dibandingkan TEA dan waktu enkripsi dan dekripsi XXTEA hampir 100 kali lebih cepat dibandingkan XTEA.
Universitas Sumatera Utara
37
4. Penelitian yang dilakukan oleh Arif Rahman Sujatmika. Dia meneliti tentang Implementasi Enkripsi dengan Algoritma XXTEA pada Virtual Disk Berbasis Windows.
Universitas Sumatera Utara