1 Penggunaan Steganografi pada Gambar dalam Perancangan Protokol Web Baru Achmad Baihaqi Program Studi Teknik Informatika Sekolah Teknik Elektro dan I...
Penggunaan Steganografi pada Gambar dalam Perancangan Protokol Web Baru Achmad Baihaqi - 135080301 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia 1 [email protected]
Abstrak—Pada masa sekarang, siapa yang tidak mengenal internet dan web. Pasti semua orang sudah mengenalnya dan mengaksesnya. Internet dan web merupakan media penting untuk berkomunikasi saat ini. Protokol komunikasi web yang saat ini digunakan yaitu protokol HTTP. Pada makalah ini, akan dijelaskan suatu protokol baru bernama HQWP dengan fungsi yang sama dengan protokol HTTP, akan tetapi memiliki kelebihan dalam hal tertentu. Protokol yang akan dirancang ini, menggunakan aplikasi steganografi pada gambar. Dengan perancangan protokol ini, diharapkan terdapat penurunan jumlah kapasitas transfer data dari server yang mempunyai halaman web menuju client yang merequest halaman tersebut. Di makalah ini juga akan dijelaskan implementasi protokol ini pada web server dan web browser, sehingga diharapkan protokol ini dapat diaplikasikan oleh umum. Kata kunci—HQWP, Protokol Komunikasi, Jaringan Komputer, World Wide Web, Steganografi Gambar, Web Server, Web Browser, HTML.
I. PENDAHULUAN Saat ini, internet merupakan media yang banyak digunakan untuk berkomunikasi. Internet menyediakan berbagai fitur yang membantu orang-orang untuk berkomunikasi. Salah satu fitur yang disediakan internet adalah implementasi website. Website adalah sebutan bagi sekelompok halaman web yang umumnya merupakan bagian dari suatu nama domain atau subdomain di World Wide Web (WWW) di internet. Halaman-halaman sebuah situs web diakses dari sebuah URL yang menjadi akar, yaitu sebuah homepage.[3] Website terdiri dari berbagai macam halaman web dan resource-resource pendukungnya, yaitu bisa berupa client script javascript, stylesheet (css), gambar, dll. Semua konten-konten tersebut dikirim secara langsung sesuai dengan isi datanya dari web server ke client yang merequest halaman tersebut. Protokol yang digunakan dalam request dan response halaman web ini saat ini kebanyakan menggunakan protokol HTTP. Pada makalah ini akan dibahas cara lain untuk mengirim suatu halaman web beserta konten-konten pendukungnya dengan mengikutsertakan penggunaan metode steganografi pada gambar.
Makalah IF3058 Kriptografi – Sem. II Tahun 2010/2011
II. TEORI DASAR A. Protokol HTTP Protokol adalah sebuah aturan atau standar yang mengatur atau mengijinkan terjadinya hubungan, komunikasi, dan perpindahan data dari dua atau lebih titik komputer. Protokol dapat diterapkan pada perangkat keras, perangkat lunak atau dari kombinasi keduanya.[5] HTTP adalah salah satu protocol umum yang digunakan dalam internet. Protokol HTTP adalah sebuah protokol jaringan aplikasi yang digunakan untuk sistem informasi terdistribusi, kolaboratif, dan menggunakan hypermedia.[4] Hingga kini, ada dua versi mayor dari protokol HTTP, yakni HTTP/1.0 dyang menggunakan koneksi terpisah untuk setiap dokumen, dan HTTP/1.1 yang dapat menggunakan koneksi yang sama untuk melakukan transaksi. Pengembangan standar HTTP telah dilaksanakan oleh Konsorsium World Wide Web (World Wide Web Consortium/W3C). Penulis akan mencoba membuat protokol komunikasi baru yang tidak serumit protokol HTTP. Pada protokol yang akan penulis buat terdapat beberapa header yang mirip seperti pada protokol HTTP. Namun, protokol yang akan dibuat menggunakan metode yang berbeda dengan protokol HTTP ini.
B. Steganografi Steganografi adalah ilmu dan seni menyembunyikan (embedded) informasi dengan cara menyisipkan pesan rahasia di dalam pesan lain. Steganografi digital adalah steganografi pada data digital dengan menggunakan komputer digital.[1] Dalam steganografi dibutuhkan beberapa macam properti yaitu: 1. Embedded message (hiddentext): pesan yang akan disembunyikan. Bisa berupa teks, gambar, audio, video, dll. 2. Cover-object (covertext): pesan yang digunakan untuk menyembunyikan embedded message. Bisa berupa teks, gambar, audio, video, dll. 3. Stego-object (stegotext): pesan yang sudah berisi pesan embedded message. 4. Stego-key: kunci yang digunakan untuk
menyisipkan pesan dan mengekstraksi pesan dari stegotext. covertext
hiddentext
Encoding (embeddin)
covertext
stegotext
Decoding (extraction)
key
hiddentext
key
Gambar 1. Diagram Steganografi
Pada penggunaan steganografi yang akan penulis buat, properti stego-key tidak digunakan, jadi penggunaan steganografinya tanpa enkripsi. Cover-object yang akan digunakan yaitu gambar. Embedded message yang bisa digunakan bisa bermacam-macam, dari mulai teks sampai bisa berupa gambar.
Dengan menggunakan teknik diatas, maka penulis berharap akan terdapat pengurangan jumlah data yang di transfer dari server kepada client. Hal ini karena file-file non-gambar bisa disisipkan ke dalam gambar, sehingga apabila gambar tersebut dikirim, maka otomatis isi filefile yang disisipkan tersebut juga ikut dikirim. Sehingga file-file non-gambar tersebut tidak perlu dikirim.
B. Posisi Protokol pada Model Referensi OSI Model OSI didasarkan proposal yang dikembangkan oleh Organisasi Standar Internasional (ISO). Model ini terdiri dari tujuh layer/lapisan yang mempunyai fungsi yang berbeda-beda. Masing-masing lapisan juga mempunyai protokol masing-masing.[2]
III. METODE A. Abstraksi Metode yang Digunakan Biasanya pada halaman web terdapat beberapa konten pendukung selain halaman itu sendiri, diantaranya bisa berupa file stylesheet(css), javascript(js), gambar, audio, dll. Pada kali ini, penulis menggunakan metode yaitu bagaimana kalau ketika file-file halaman web beserta file pendukungnya dikirimkan dari server menuju client (browser), digunakan teknik steganografi gambar. Jadi steganografi gambar ini dilakukan untuk menyisipkan konten-konten non-gambar seperti halaman web-nya, stylesheet, dll ke dalam gambar-gambar yang mendukung halaman web ini. Karena berdasarkan pengamatan penulis sebelumnya kualitas gambar tidak mencolok menurunnya apabila disisipi pesan dengan steganografi, maka client yang me-request halaman, mungkin akan tidak menyadari bahwa gambar-gambar yang diterima telah sedikit berubah. Pada perancangan protokol web ini, penggunakan steganografi pada setiap gambar harus dilakukan secara maksimal. Jadi, setiap pixel-pixel pada semua gambargambar pendukung akan dipakai untuk disisipkan pesan. Apabila jumlah dan ukuran gambar tidak cukup untuk disisipkan semua konten non-gambar, makan sisa konten non-gambar tersebut akan dikirimkan secara langsung tanpa disisipkan ke gambar. Steganografi dilakukan tanpa menggunakan kunci. Jadi urutan penyisipan datanya urut sesuai nomor pixelnya. Untuk penerapan protokol web ini, diperlukan web server dan web client yang berbeda dari biasanya. Apabila biasanya web server mengirimkan ke client dengan menggunakan protokol HTTP, kali ini berbeda. Penulis akan mencoba merancang protokol web sederhana. Selain itu, penulis akan mencoba membuat aplikasi web server sederhana dan aplikasi web client sederhana yang bisa berkomunikasi dengan server dan mendukung protokol tersebut.
Makalah IF3058 Kriptografi – Sem. II Tahun 2010/2011
Gambar 2. Model Referensi OSI
Protokol yang penulis rancang, diletakkan pada layer aplikasi (layer nomor 7). Hal ini didasarkan bahwa protokol ini berfungsi sebagai antarmuka dengan aplikasi dengan fungsionalitas jaringan (web browser dan web server). Protokol ini juga mengatur bagaimana aplikasi dapat mengakses jaringan, dan kemudian membuat pesanpesan kesalahan. Protokol lain yang sudah ada yang berada pada lapisan ini yaitu HTTP, FTP, SMTP, POP, IMAP, dll. Pada model referensi lain seperti model refernsi TCP/IP, protokol ini juga diletakkan pada layer aplikasi yang merupakan layer teratas sendiri dalam model ini.
C. Metode Steganografi Gambar Metode steganografi yang digunakan yaitu metode LSB. Metode LSB ini didasarkan pada pergerseran warna sebesar 1 dari 256 warna tidak dapat dilihat oleh manusia.[1] Proses penyisipan metode LSB ini dicontohkan sebagai berikut: Jika pesan = 10 bit, maka jumlah byte yang digunakan = 10 byte. Contoh susunan byte yang lebih panjang: 00110011 10100010 11100010 10101011 00100110
10010110 11001001 11111001 10001000 10100011 Misalkan pesan: 1110010111 Hasil penyisipan pada 1 bit LSB: 00110011 10100011 11100011 10101010 00100110 10010111 11001000 11111001 10001001 10100011 Berdasarkan contoh diatas, maka ukuran data yang akan disisipkan bergantung pada ukuran cover-object. Jadi misalkan terdapat citra 24-bit dengan ukuran 256 x 256 pixel, total pixel-nya adalah 65536 pixel. Setiap pixel berukuran 3 byte (komponen RGB), berarti ada 65536 x 3 = 196608 byte. Setiap 1 byte menyembunyikan satu bit di LSB-nya maka ukuran data yang dapat disembunyikan yaitu 196608/8 = 24576 byte. Pada perancangan protokol ini penentuan jumlah bit yang disisipkan LSB yaitu bisa 1 bit atau 2 bit, tergantung dari server. Meskipun angka ini ditentukan oleh server, akan tetapi client masih bisa mengetahuinya, karena angka ini akan disisipkan pada header dari response.
IV. PERANCANGAN PROTOKOL A. Arsitektur Komunikasi Arsitektur komunikasi sebagai berikut: Server: Web Server
Response
C.HQWP - Methods Dalam suatu request, pesan request harus mengikuti format yang ditentukan. Operasi method perlu ada dalam pesan request ini. Jenis method menentukan bagaimana request tersebut dikirim. Pada protokol ini hanya terdapat satu request method yang diimplementasikan yaitu method GET. Method GET meminta server untuk mengirimkan halaman. Bentuk dari GET yaitu: GET nama_file
Client: Web Browser
Internet
dikarenakan agar antara browser dan server tidak perlu menangani pesan yang hilang dalam perjalanan, duplikasi pesan, pesan yang panjang, atau acknowledgement. Hal ini karena, hal itu sudah ditangani oleh protokol TCP yang berada pada layer dibawahnya yaitu layer transport pada model referensi OSI maupun model referensi TCP/IP. Pada protokol ini, setelah koneksi TCP dibangun, suatu request dikirim dan kemudian suatu response akan diterima. Kemudian diakhiri dengan melepas koneksi TCP (seperti protokol HTTP 1.0). Jadi apabila user ingin meminta request pada server yang sama kembali, maka sebuah koneksi TCP harus dibangun kembali.
Request
Gambar 3. Arsitektur Komunikasi
Komponen-komponennya terdiri dari: 1. Server Pada server berisi halaman-halaman web, juga aplikasi web server yang menangani permintaan dari client yang meminta halaman web. 2. Client Pada client terdapat aplikasi browser yang bertugas meminta dan membaca halaman yang direquest, kemudian ditampilkan dalam format tertentu kepada user. 3. Jaringan Internet Jaringan internet sangat penting, karena sebagai media penghubung komunikasi antara server dan client. Proses komunikasi diawali dari request client yang dikirim ke server, request tersebut kemudian diterima server untuk dicarikan halaman mana yang diminta client, selanjutnya halaman tersebut kemudian dikirimkan dengan metode khusus ke client. Client yang menerima halaman tersebut, kemudian mengolah halaman tersebut dengan metode khusus kemudian ditampilkan ke user dengan format tertentu.
B.HQWP – HQ Web Protocol Nama dari protokol yang dirancang adalah HQWP (HQ Web Protocol). Koneksi yang dipakai menggunakan koneksi TCP pada port 88. Penggunaan koneksi TCP Makalah IF3058 Kriptografi – Sem. II Tahun 2010/2011
dimana nama_file merupakan file yang akan diminta. Contohnya yaitu: GET index.html
Setiap request akan mendapatkan response yang berisi baris status dari request dan tambahan informasi (header dan isi dari halaman). Baris status terdiri dari tiga digit status code yang mengatakan apakah request yang dikirim benar atau salah. Hanya terdapat dua status yaitu: Kode Arti 200 Sukses 404 Error, muncul apabila halaman yang diminta tidak ada Tabel 1. Kode-kode Status Response
C.HQWP – Header Pesan Baris request (GET method) bisa diikuti oleh tambahan baris dengan lebih informasi. Ini dinamakan request headers. Informasi ini bisa dianalogikan dengan parameter dari pemanggilan prosedur pada bahasa pemrograman. Suatu response juga bisa punya response headers. Header-header yang boleh digunakan pada protokol ini yaitu: Header Tipe Penjelasan Host Request Nama DNS dari server ContentResponse Tipe MIME dari halaman. type Contoh pada protokol ini: text/html LSB Response Jumlah bit LSB yang digunakan dalam steganografi. Hanya diterapkan 2 angka yaitu 1 bit atau 2 bit. Tabel 2. Header Pesan
Penjelasan tambahan: Pada Host header merupakan nama dari server. Nama dari server ini diambil dari URL yang diketikkan user pada web browser. URL akan dijelaskan kemudian. Header ini wajib berada pada setiap request karena beberapa alamat IP bisa punya lebih dari satu nama DNS dan server butuh tahu yang mana host yang menangani request tersebut. Untuk menandai akhir dari header maka digunakan 1 baris kosong setelah header paling akhir.
D.HQWP – Content Pada response yang dikirim oleh server, setelah baris status dan baris-baris header ditulis dalam bentuk text ASCII, maka berikutnya diikuti oleh content halaman yang diminta. Format content harus mengikuti format seperti berikut: Jumlah gambar (4 byte) Daftar gambar Gambar 1. Ukuran Gambar (4 yang disisipi byte) resource Nama Path halaman. Gambar (Variable length) Karakter ASCII nomor 13 Isi File Gambar yang sudah disisipi. Gambar 2 Sama dengan : diatas. : Ukuran sisa (4 byte) Sisa dari resource halaman yang tidak disisipkan ke gambar. Gambar 4. Format Content
Pada format diatas, setelah header response selanjutnya diikuti oleh daftar semua gambar yang merupakan pendukung dari halaman tersebut. Sebelumnya gambargambar tersebut terlebih dahulu disisipkan resource dari halaman yang diminta. Format penyisipan resource halaman ke dalam gambar harus mengikuti format sebagai berikut: Daftar resource Resource 1 Ukuran File (4 dari halaman byte) Nama Path File (Variable length) Karakter ASCII nomor 13 Isi dari File Resource 2 Sama dengan : diatas. : Gambar 5. Format Penyisipan Resource
Resource yang disisipkan adalah file-file pendukung
Makalah IF3058 Kriptografi – Sem. II Tahun 2010/2011
halaman (termasuk file halaman itu sendiri) yang bukan merupakan gambar. Bentuk penyisipan beberapa resource halaman ke dalam banyak gambar direpresentasikan sebagai berikut: Gambar 1: 1.bmp Header resource 1 (ukuran file dan nama file) Awal dari isi resource 1
Akhir dari Isi Resource Header resource 2 Awal dari isi resource 2 (ukuran file dan nama file)
Gambar 2: 2.bmp
Akhir dari resource 2 Header resource 3 (ukuran file dan nama file) Awal dari resource 3
(Sisa dari resource 3 yang belum disisipkan, dikirimkan langsung dibawah gambar paling terakhir sesuai dengan isi asli dari filenya) Gambar 6. Contoh Penyisipan Resource ke Gambar
Pada contoh diatas terdapat 2 gambar pendukung yaitu 1.bmp dan 2.bmp, juga terdapat 3 resource yaitu resource 1 sampai resource 3. Resource 1 disisipkan gambar 1, dan penyisipan berakhir pada bagian tengah gambar 1 sehingga menghasilkan sisa pada gambar 1. Sisa tersebut digunakan untuk disisipi resource 2. Karena gambar 1 tidak cukup lagi untuk menampung resource 2, maka sisa resource 2 tersebut disisipkan ke gambar selanjutnya yaitu gambar 2. Gambar 2 masih memiliki sisa untuk disisipi resource 3. Akan tetapi, setelah daya tampung gambar 2 habis, resource 3 masih menyisakan beberapa byte yang belum disisipkan sedangkan semua gambar daya tampungnya sudah habis. Sisa dari resource 3 tersebut nantinya akan dikirimkan secara langsung pada bagian akhir. Urutan pengiriman dari gambar 1 sampai gambar 2 harus berurut sesuai urutan penyisipan resource ke dalam gambar. Apabila dalam suatu halaman tidak terdapat gambar pendukung, maka pengirimannya resource halamannya langsung sesuai isi datanya tanpa disisipkan. Jadi dianggap bahwa semua resource halaman adalah sisa resource halaman yang tidak disisipkan ke gambar. Pada protokol HQWP versi awal ini, hanya file gambar dengan format .bmp yang bisa disisipi.
HQWP adalah gabungan dari ASCII dan data binari protokol. ASCII protokol digunakan untuk mengirim request dan response pada bagian header, sedangkan data binari protokol digunakan untuk mengirimkan gambar. Dibawah ini hanya dicontohkan pada pengiriman pada bagian ASCII saja. Contoh request halaman index.html pada server localhost:
B.Implementasi di Sisi Server
GET /index.html Host: localhost (diakhiri dengan baris kosong)
Contoh response dari server localhost: HQWP 200 OK Content-type: text/html LSB: 2 (dibaris ini berisi gambar resource: dalam format data binari)
halaman yang diminta. Dari hasil ekstraksi diatas, browser membuat filefile temporary yang merupakan isi halaman web yang diminta lengkap beserta seluruh resource pendukungnya (gambar, css, js, dll) 10. Browser menampilkan semua isi halaman web sesuai dengan format isinya (text/html) beserta gambar-gambar pendukungnya dari file temporary tersebut. 9.
E.Contoh Penggunaan HQWP
dan
sisa
Pada komunikasi diatas, baris pertama dari response berisi status request yang bernilai 200, yang berarti sukses dengan pesan tambahan „OK‟. Informasi tambahan lain yaitu server mengirimkan halaman web yang disisipkan dalam gambar dengan metode LSB 2 bit.
Setelah melihat implementasi di sisi client diatas, mari kita lihat implementasi pada sisi server. Pada sisi server ini, impelementasi untuk menangani request user dengan cara multithread. Pada desain multithread ini, server terdiri dari front-end modul yang bertugas untuk mengaccept semua request yang masuk. Ketika ada request yang masuk, maka front-end modul akan menerima dan membuat suatu thread baru (processing modul) yang bertugas untuk membalas request yang baru masuk tersebut. Dengan desain ini, maka server dapat menangani banyak request dalam waktu yang bersamaan. File System
Processing Module (Thread)
V. IMPLEMENTASI PROGRAM A.Implementasi di Sisi Client Untuk memulai request, user perlu mengetikkan sebuah URL dari halaman yang ingin diminta. URL akronim dari Uniform Resource Location. Contoh URL untuk menggunakan protokol ini yaitu: hqwp://localhost/index.html
URL terdiri dari 3 bagian: nama protokol (hqwp), nama DNS mesin dimana halaman berada (localhost), dan path file yang merupakan halaman yang dimina (/index.html). Ketika user mengetikkan URL tersebut ke browser dan menekan tombol Go, browser akan melakukan proses berikut: 1. Browser mem-parsing URL (untuk mendapatkan host, protokol, path file, dll). 2. Browser meminta DNS untuk alamat IP dari localhost. 3. Server DNS membalas dengan 127.0.0.1 4. Browser membut koneksi TCP ke port 88 (sesuai protokol) pada IP 127.0.0.1 5. Browser membuat format request sesuai dengan URL yang dimasukkan dan format protokol yang didefinisikan untuk meminta gile /index.html. 6. Server localhost mengirim response halaman /index.html dengan format yang sudah didefinisikan. 7. Koneksi TCP dilepaskan browser. 8. Browser mengekstrak isi dari gambar yang dikirim (apabila ada) untuk mendapatkan isi resource dari Makalah IF3058 Kriptografi – Sem. II Tahun 2010/2011
Front End Module (Thread)
Gambar 6. Arsitektur Web Server
Secara umum yang terjadi pada web server pada waktu menerima request dari client sebagai berikut: 1. Front-End Thread menerima (accept) request dari client, dan membuat thread baru berupa processing module untuk menangani request dari client tersebut. 2. Thread processing module yang baru dibentuk mempunyai akses penuh untuk menangani client tersebut, pada awalnya thread ini mem-parsing request dari user, untuk didapatkan halaman apa yang diminta. 3. Alamat halaman yang diminta tersebut kemudian dicari pada file system. 4. Apabila halaman tersebut tidak ditemukan, maka server akan mengembalikan status error ke client (404) diikuti dengan halaman error (page not found). 5. Apabila halaman tersebut ada, maka server akan memparsing semua alamat resource pendukung selain gambar dari halaman tersebut. Pada implementasi web server ini resource yang dimaksud adalah file javascript, HTML, dan CSS. File javascript ditandai oleh tag:
Sedangkan file HTML yaitu file itu sendiri. Dari hasil parsing diatas didapatkan daftar semua file pendukung dari halaman yang diminta. Kemudian, server juga harus memparsing semua alamat path gambar pendukung pada file HTML maupun file CSS. Pada file HTML ditandai dengan tag:
Pada file CSS ditandai dengan: url(‘path file gambar’);
8.
Dari hasil parsing diatas didapatkan daftar semua gambar pendukung halaman yang diminta. 9. Server melakukan penyisipan seluruh resource halaman ke dalam gambar-gambar dengan format yang sudah didefinisikan diatas. 10. Server kemudian membentuk suatu data output stream response yang berisi status, header, dan content yang sudah dibuat berdasarkan penyisipan diatas. 11. Stream tersebut kemudian dikirim ke client yang meminta tadi. 12. Thread yang menangani client tersebut tadi kemudian di kill.
C.Diagram Kelas Program dan Prosedurprosedurnya Diagram kelas pada server, sebagai berikut:
Gambar 7. Diagram Kelas Pada Server
Makalah IF3058 Kriptografi – Sem. II Tahun 2010/2011
Gambar 8. Diagram Kelas Pada Client
Prosedur-prosedur yang terdapat pada masing-masing kelas yaitu: 1. HQWPServer: modul front-end pada server. Terdapat main program untuk menjalankan server. a. startServer: memulai modul front-end pada server, bertugas meng-accept request client. b. readConfig: membaca file konfigurasi server. File konfigurasi berisi: - folder-location: path tempat isi web disimpan - index-file: menunjukkan apabila request yang diminta user tanpa path filenya, maka file apa yang akan dikirim. (default: berisi index.html) - port: nomor port incoming dari server. (HQWP menggunakan port nomor 88) 2. ClientHandler: modul processing pada server. a. run: berisi proses yang dijalankan oleh thread clienthandler ini, yaitu: menangani request client dan mengirim balik response. 3. HTMLParser: mem-parsing file HTML untuk mendapatkan resource dan gambar, digunakan pada server. a. getAllImagesPathFromHTML: mendapatkan seluruh daftar gambar pada file HTML. b. getAllCSSPath: mendapatkan seluruh daftar file CSS yang digunakan. c. getAllJavascriptPath: mendapatkan seluruh
4.
5.
6.
7.
8.
9.
daftar file javascript yang digunakan. d. getResourceHTML: mendapatkan isi dari file HTML. e. getAllImagesCanBeInserted: mendapatkan semua daftar gambar yang bisa disisipkan (syarat: ekstensi .bmp). f. getAllResourceNonStego: mendapatkan semua daftar resource yang bukan merupakan gambar yang bisa disisipkan, disini termasuk file HTML, CSS, Javascript, dan Gambar lain yang tidak bisa disisipkan. HQWPSender: bertugas untuk me-response request dengan membuat stream output. a. getBytesStream: mendapatkan bytes stream dari response yang akan dikirim. Prosesnya menyisipkan file-file resource ke dalam gambar, dan mengubahnya jadi array of byte data yang akan dikirimkan. b. writeToOutputStream: menulis response ke output stream c. createBytesStreamFile: membuat array of byte dari daftar file yang akan disisipkan. HQWPClient: membuat HQWP request untuk dikirimkan ke server. a. getResponseFromServer: mengambil response yang dikirim oleh server, dari request yang sudah diberikan. HQWPReceiver: bertugas untuk mem-parsing response yang diterima dari server. a. readFromInputStream: membaca dan memparsing response dari server, dan membuat file temporary untuk halaman web beserta file pendukungnya dari response tersebut. b. getHTMLFileTemporaryPath: mendapatkan alamat path file temporary yang telah dibuat. HQWPBrowser: Kelas yang berisi GUI Browser. a. sendRequest: memanggil kelas HQWPClient untuk memproses URL yang diberikan User. b. convertAllImages: mengubah semua gambar yang berformat bmp menjadi png. Hal ini karena penampil halaman yang digunakan tidak bisa menampilkan gambar bmp, oleh karena itu supaya bisa ditampilkan maka file bmp tersebut harus diubah ke format lain yang bisa ditampilkan. Extractor: Kelas pada modul steganografi untuk megekstrak suatu file yang sudah disisipkan pada gambar. a. extract: mengekstrak file yang sudah disisipkan pada gambar. b. getBit: mendapatkan sebuah nilai bit (1/0) pada nomor bit pada parameter. c. get2Bit: mendapatkan dua buah nilai bit pada nomor bit LSB. d. putBitToByte: menyisipkan 1 bit ke dalam 1 byte. Inserter: Kelas pada modul steganografi untuk
Makalah IF3058 Kriptografi – Sem. II Tahun 2010/2011
menyisipkan array of byte ke dalam gambar. a. getMaxSizeEmbed: mendapatkan jumlah byte maksimal data yang bisa disisipkan ke dalam gambar. b. modifyBit: mengubah nilai bit pada suatu byte pada posisi tertentu. c. addSizeContent: menambahkan ukuran content untuk disisipkan pada gambar (ini bagian header dari file). d. insert: menyisipkan array of byte ke dalam gambar. e. rawToBufferedImage: mengubah gambar yang formatnya array of integer menjadi object bufferedimage. 10. Tools: Berisi fungsi-fungsi bantuan untuk steganografi. a. standardizeBinaryString: menstandarkan binary string sehingga panjangnya menjadi 8. b. openImage: membuka file gambar dan menyimpannya dalam object BufferedImage c. saveImage: menyimpan object BufferedImage dalam file. d. getExtensionImage: mendapatkan ekstensi dari gambar. e. getSizeFile: mendapatkan ukuran dari file. f. toBoolean: mengubah integer ke Boolean, kalau angkanya 1 menjadi true, kalau angkanya 0 menjadi false.
VI. PENGUJIAN PROGRAM Berikut ini adalah pengujian program yang telah dibuat. Sistem terdiri dari dua program, yaitu program web server dan web browser. Untuk memulainya, web server harus dinyalakan terlebih dahulu. Pada web server juga harus terdapat suatu halaman beserta pendukungnya yang akan diakses oleh client. Setelah web server dinyalakan, kemudian web browser dibuka. Misalkan user meminta URL yaitu hqwp://localhost/photosharing/photo.html. Maka browser akan menampilkan halaman sebagai berikut ini:
asli oleh mata manusia.
VII. KESIMPULAN
Gambar 9. Tampilan Web Browser
Log pada web server:
Protokol HQWP ini bisa digunakan oleh masyarakat di dunia sebagai protokol untuk World Wide Web. Perlu ditekankan, bahwa protokol HQWP ini diciptakan bukan untuk menggantikan protokol HTTP yang saat ini digunakan. Namun, protokol ini dapat digunakan sebagai fitur baru pada pengembangan protokol HTTP selanjutnya. Dengan kelebihan dari protokol ini yaitu dapat mengurangi jumlah transfer data, protokol ini cocok dipakai untuk web hosting dengan kapasitas bandwidth yang tidak besar. Protokol ini juga cocok dipakai untuk situs photo sharing, social network, dan situs web lain yang mengandung banyak gambar. Hal ini karena dengan adanya gambarlah yang membuat protokol ini memiliki kelebihan. Mungkin apabila protokol ini diterapkan pada situs “flat” yang tidak ada gambarnya, maka protokol ini tidak berpengaruh apa-apa. Untuk pengembangan ke depan, protokol ini dapat diberi fitur-fitur penyisipan data pada berbagai format gambar seperti jpg, png, gif, dll. Dengan pengembangan fitur diatas, maka akan semakin memaksimalkan pengurangan jumlah transfer data karena semakin banyak gambar yang bisa disisipi. Demikian kesimpulan dari makalah yang penulis buat apabila ada kesalahan dalam tulisan makalah ini mohon dimaklumi dan dimaafkan.
Gambar 10. Tampilan Log Web Server 1
Pada halaman tersebut terdapat dua file gambar berformat bmp, yaitu photo1.bmp dan avatar.bmp. Pada log ditunjukkan bahwa total jumlah byte yang dikirim yaitu 820960 byte, sedangkan ukuran semula yaitu 908339 byte. Jadi terdapat pengurangan jumlah data yaitu sebesar 9,62 % dari data semula. Apabila dalam halaman yang diminta tidak terdapat gambar berformat bmp, maka terjadi penambahan ukuran dari ukuran semula. Penambahan ini disebabkan oleh ukuran text header, tambahan 4 byte jumlah gambar stego yang dikirim, dan tambahan 4 byte dari jumlah sisa.
REFERENSI [1] [2] [3] [4] [5]
R. Munir, “Slide Pembelajaran Kriptografi Bab Steganografi”. A. S. Tanenbaum, “Computer Networks 4 th Edition”, New Jersey: Prentice Hall, 2003. http://id.wikipedia.org/wiki/Situs_Web, waktu akses 15 Maret 2011, 20:00. http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol, waktu akses 15 Maret 2011, 20:00. http://id.wikipedia.org/wiki/Protokol_(komputer), waktu akses 15 Maret 2011, 20:00.
PERNYATAAN Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi. Bandung, 15 Maret 2011
Gambar 11. Tampilan Log Web Server 2
Akan tetapi, angka penambahan ukuran ini sangat kecil. Contohnya pada log diatas, penambahannya hanya 0,02%. Pada gambar yang telah disisipi terlihat bahwa tidak ada penurunan kualitas gambar. Malahan tidak terlihat perbedaanya antara gambar yang disisipi dengan gambar Makalah IF3058 Kriptografi – Sem. II Tahun 2010/2011