Implementasi dan Analisis Steganografi pada Protokol IP dengan Metode Manipulasi Paket Header Menggunakan Algoritma Lempel-Ziv-Welch Sebagai Metode Encoding Compression Erwin Saut Martua 1, Maman Abdurohman 2, Niken Dwi Cahyani 3 Fakultas Informatika Institut Teknologi Telkom, Bandung 1
[email protected],
[email protected],
[email protected]
Abstrak Steganografi adalah salah satu teknik penyembunyian. Dengan memanfaatkan keterbatasan manusia untuk mendeteksi pesan yang tidak berbentuk teks yang mudah terlihat, steganografi menyembunyikan pesan di dalam pesan lain yang bisa berupa teks, gambar, dan sebagainya. Saat ini telah banyak pendekatan steganografi pada file gambar, file audio tetapi masih jarang menggunakan pendekatan pada jaringan komputer. Dalam penelitian ini diimplementasikan teknik steganografi pada jaringan dengan melakukan manipulasi paket header yaitu field ip identification dari protokol IP. Dimana nilai ip identification ini akan digantikan oleh bit bit yang tidak lebih dari 2 byte, hasil dari encode dan kompresi pesan oleh algoritma Lempel-Ziv-Welch. Hasil penelitian menunjukan bahwa header paket IP dapat digunakan untuk mengirimkan informasi antar end-system. Kata kunci : Steganografi, covert channel, LZW, Protokol IP. 1.
Pendahuluan
Kemajuan teknologi ternyata tidak terhindar dari risiko. Kemudahan pertukaran pesan melalui media elektronik masih mempunyai beberapa risiko, diantaranya risiko penyadapan, pengubahan, dan perusakan pesan, sehingga diperlukan suatu cara yang bisa mengurangi dampak negatif atas terjadinya risiko tersebut. Beberapa solusi diterapkan untuk mengurangi risiko berkomunikasi melalui media elektronik yaitu dengan teknik enkripsi (penyandian pesan) dan steganografi. Dimana steganografi adalah seni dan ilmu menyamarkan data (pesan) pada suatu medium seolah-olah data tidak ada. Steganografi mempunyai dua bagian penting yaitu carrier yang merupakan wadah untuk menyembunyikan informasi dan payload yang merupakan informasi yang akan disembunyikan dalam carrier. TCP/IP merupakan salah satu media carrier yang cocok digunakan untuk menyampaikan pesan rahasia. Hal ini dikarenakan : Protokol TCP/IP merupakan protokol yang umum digunakan untuk berkomunikasi baik di Internet maupun lokal. Protokol TCP/IP bersifat terbuka, sehingga kita bisa mengimplementasikan steganografi. Dalam mengimplementasikan steganografi di dalam TCP/IP header, dipilih protokol IP pada header Identification sebagai carrier. Karena protokol IP dapat berjalan pada jaringan yang heterogeneous, dan IP Identification (IP ID) merupakan bagian dari IP header yang fungsinya membedakan antara paket satu dengan paket lainnya dengan unik yang nantinya berguna untuk menyusun kembali paket paket yang dipecah karena terjadinya fragment. Salah satu hal yang penting dalam menyisipkan pesan dalam IP ID adalah menyisipkan pesan dalam nilai yang unik dengan kapasitas yang terbatas sebesar 16 bit. Hal ini diatasi menggunakan metode manipulasi paket header sebagai metode penyisipan pesan dan algoritma Lempel-ZivWelch sebagai metode encodingnya.
2.
Dasar Teori
2.1 Steganografi Kata steganografi berasal dari bahasa Yunani steganos, yang artinya tersembunyi atau terselubung dan graphein yang artinya menulis. Steganografi adalah seni dan ilmu menulis atau menyembunyikan pesan tersembunyi dengan suatu cara sehingga selain si pengirim dan si penerima, tidak ada seorangpun yang mengetahui atau menyadari bahwa ada suatu pesan rahasia. Dalam steganografi dikenal beberapa terminologi. Carrier, cover-data atau cover-text merupakan media penyembunyian pesan. Sedangkan hasil penggabungan antara carrier dengan pesan yang disembunyikan disebut stego-text, stego-data atau stego-object. Algoritma yang menghasilkan stego text disebut stegosystem. Pihak yang menciptakan stegosystem disebut steganografer. Secara umum stegosystem terdiri dari tiga tahap yaitu algoritma untuk mendapatkan kunci, mengkodekan pesan, dan men-decode pesan. 2.2 Algoritma Lempel-Ziv-Welch Algoritma LZW dikembangkan oleh Terry A.Welch dari metode kompresi sebelumnya yang ditemukan Abraham Lempel dan Jacob Ziv pada tahun 1977. algoritma ini melakukan kompresi dengan menggunakan dictionary, dimana fragment-fragment teks digantikan dengan indeks yang diperoleh dari sebuah ”kamus”. Pendekatan ini bersifat adaptif dan efektif karena banyak karakter dapat dikodekan dengan mengacu pada string yang telah muncul sebelumnya dalam teks. Prinsip kompresi tercapai jika referensi dalam bentuk pointer dapat disimpan dalam jumlah bit yang lebih sedikit dibandingkan string aslinya. Ukuran tabel dictionari pada algoritma LZW 4096 atau 12 bit, dimana 256 sampel pertama digunakan untuk tabel ASCII, dan sisanya digunakan untuk pasangan karakter atau string dalam data input. 2.3 Steganografi pada Header Protokol IP Steganografi adalah proses untuk menyisipkan pesan yang bersifat rahasia ke dalam suatu media, dalam hal ini field identification pada Internet Protokol. Pesan yang disisipkan disini adalah berupa bilangan decimal tidak lebih dari 2 byte yaitu kurang dari 65535. Proses steganografi pada ip identifikasi adalah sebagai berikut : Pesan rahasia yang akan dikirim harus dalam bentuk file teks. encoding kompresi pesan rahasia ke dalam biner tidak lebih dari 2 byte. Encoding kompresi pesan rahasia dilakukan dengan membaca inputan pesan rahasia per karakter. Setiap kali karakter dibaca, karakter tersebut langsung di encode dengan algoritma LZW dan algoritma LZW akan mengenerate dictionary sebag. Hasil encode kemudian disisipkan pada field identification. kemudian dilakukan pengiriman paket data yang telah menyimpan pesan rahasia pada field identification pada Internet Protokol. Sebagai tanda berakhirnya pengiriman pesan rahasia digunakan nilai 60000. Pada proses pengambilan pesan rahasia yang telah disisipkan ke dalam field identification. Setiap paket karir yang datang langsung diambil nilai filed identificationnya yang kemudian dilakukan decode sampai ditemukan nilai 60000 sebagai akhir pesan yang dikirim. 3.
Analisis
3.1 Posisi Perangkat Lunak dalam Arsitektur TCP/IP TCP/IP adalah sekumpulan protokol yang didesain untuk melakukan fungsi – fungsi komunikasi data pada jaringn komputer. TCP/IP terdiri atas sekumpulan protokol yang masing – masing bertanggung jawab atas bagian – bagian tertentu dari komunikasi data.
Sekumpulan protokol TCP/IP ini dimodelkan dengan empat layer TCP/IP, yang terdiri dari : Layer Fisik dan datalink, layar jaringan, layer transport dan layer aplikasi. Aplikasi steganografi pada penelitian ini berjalan pada layer transport dan layer network. Pada layer network digunakan bagian field identification untuk menyisipkan bit bit pesan hasil algoritma LZW, dan field flags untuk membedakan apakah paket yang dikirim merupakan paket pengiriman ulang atau tidak. Jika pengiriman ulang maka field flags akan bernilai 0x02 atau don’t fragment, jika tidak maka flags bernilai 0x00 atau no flags. Pada layer transport digunakan field source port, destination port, dan flags syn sebagai penanda bahwa paket merupakan inisialisasi koneksi tcp. Dalam aplikasi steganografi pada protokol ip ini, paket yang dikirim tidak membawa data, sehingga pergerakan data dalam layer TCP/IP dapat dilihat seperti gambar di bawah ini : IP Header
Network Interface Header
Transport Layer
TCP Header
IP Header
Network Layer
TCP Header
IP Header
Network Interface Layer
Gambar 1. Pergerakan data dalam layer TCP/IP dalam Aplikasi Steganografi 3.2 Cara Kerja Perangkat Lunak Steganografi pada Field IP Identifikasi Proses steganografi memanfaatkan bagian header yang memungkinkan untuk menerapkan proses steganografi, salah satunya pada field IP Identifikasi. Pada proses steganografi hal pertama yang dilakukan yaitu dengan membaca karakter per karakter pada file yang berisi pesan rahasia, kemudian akan di encode dan dikompresi oleh algoritma Lempel-Ziv-Welch. Hasil dari proses encoding tadi akan menggantikan nilai dari IP Identifikasi pada paket yang digenerate untuk dikirmkan kepada tujuan. Proses Encoding Compression Oleh Algoritma Lempel-Ziv_Welch
Proses Steganografi dengan metode manipulasi paket header
KAMUS Kode Baru
Stringg Baru
256
/W
257
/WE
258
ED
259
D/
260
/WE GENERATE PAKET
Generete kamus Output Hasil Encoding Kompresi algoritma LZW / = 92 W = 87
FILE
E = 69
/WED/WE/WEE/WEB/WET
D = 68
Pegnirim Penerima
256 E = 69
Akhir Tansmisi
PAKET JARINGAN FLAG SYN
Kirim
60000
PROSES PENGIRIMAN SELESAI / PROGRAM BERHENTI
Gambar 2. Proses Steganografi pada Pengirim Proses stgeganografi terdiri dari beberapa tahap, sebagai berikut : File pesan dengan isi /WED/WE/WEE/WEB/WET akan dikirimkan ke penerima. Proses yang pertama kali dilakukan yaitu memproses file dengan algoritma Lempel-Ziv-Welch sebagai encoding compression.
Pada proses encoding compression LZW output pertama adalah karakter ‘\’ dengan bilangan ascii dalam desimalnya 92, LZW akan mengenerate kamus. Paket untuk membawa pesan akan digenerate dengan flag SYN yang merupakan inisialisasi koneksi awal. Kemudian nilai 92 akan menggantikan nilai dari IP Identification. Paket yang telah melalui proses steganografi dikirim ke tujuan. Lakukan proses encoding LZW lagi dan menghasilkan output berikutnya. Proses dari point 3 sampai point 6 akan berulang terus sampai ketemu akhir dari file, dan akan mengirimkan nilai 60000 sebagai tanda akhir dari pengiriman.
Pada gambar 3-4, setiap paket yang berisi pesan rahasia datang, nilai IP Identicationnya akan diambil dan kemudian dilakukan decode oleh algoritma LZW, hasil decoding LZW akan ditulis ke dalam file. Proses ini akan berulang terus sampai ditemukan nilai IP Identification 60000, yang menandakan akhir dari pengiriman. Proses Decoding Oleh Algoritma Lempel-Ziv_Welch
Proses Pengambilan Pesan Rahasia
KAMUS Karakter
Kode Baru
W
256 = /W
E
257 = WE
D
258 = ED
/
259 = D/
E
260 Generate kamus
NILAI IP ID
Terima
PAKET JARINGAN Yang telah disteganografi
Output Hasil Decoding Kompresi algoritma LZW
92
/
87
W
69
E
FILE /WED/WE/WEE/WEB/WET
68
D
256
/W
69
E
Akhir Tansmisi
60000
PROSES PENERIMAAN SELESAI / PROGRAM BERHENTI
Gambar 3. Proses Pengambilan Pesan Rahasia pada Penerima 3.3 Model Pengiriman Paket Steganografi Steganografi pada protokol jaringan tidak terlepas pada bagaimana paket yang memuat informasi dikirimkan, dikarenakan pada jaringan kemungkinan terjadi paket loss, maka diperlukan mekanisme untuk memastikan bahwa paket-paket data tiba pada tujuan dan dapat mengatasi jika terjadi paket loss dan telah terkirim dengan urutan yang benar. Pada bagian ini penanganan paket loss dibagi dua yaitu : Hitung timer
TCP SYN
packet (IP
ID: bit pe
san)
Ignore ACK
PENGIRIM TCP SYN
packet
im Pener
Lost Timer timout Hitung timer
PENERIMA
a
Tunggu 1 detik
Time
Resp diterima Hitung timer
1)on pesan+ (IP ID: bit Resp
Timeout
TCP SYN
packet (IP ID: bit pe san) (KIRIM UL ANG)
Resp diterima
TCP SYN
packet (IP
ID: bit pe
san+1)
Gambar 4 : Mekanisme Loss Paket Data Steganografi
Pengirim Fungsi ini mengatasi paket data yang loss di sisi pengirim seperti terlihat pada Gambar 3-4.
Penerima Fungsi ini mengatasi bagaimana jika ternyata respon dari penerima loss, dan pengirim mengirim ulang kembali paket yang telah diterima oleh penerima seperti terlihat pada Gambar 3-5: Mekanisme Loss Paket respon. Hitung timer
TCP SYN
packet (IP
ID: bit pes
an)
Ignore ACK
PENGIRIM TCP SYN
PENERIMA
R ima Pener
Tunggu 1 detik
TCP SYN Timer timout Hitung timer
1) n pesan+ espo
packet (IP
ID: bit pes
Time
Resp diterima Hitung timer
ID: bit packet (IP
an)
Timeout
Lost TCP SYN
packet (IP ID: bit pes (KIRIM UL an) ANG)
if flag kirimulang==1 && IpIDSebelumnya = IPID skrng then Ignored IP ID Else accept IP ID
Paket Ignored
Resp diterima
pac TCP SYN
ket (IP ID:
1) bit pesan+
Gambar 5 : Mekanisme Loss Paket respon Pada mekanisme loss paket, digunakan field flags pada ip header untuk membedakan paket kirim ulang atau tidak. Jika field flags bernilai 0x02 atau don’t fragment menandakan bahwa paket yang dikirim merupakan paket kirim ulang, jika nilai 0x00 atau no flags berarti paket bukan paket kirim ulang. 4. Implementasi dan Pengujian 4.1 Implementasi Untuk mengimplementasikan sistem, dibuat program aplikasi dengan menggunakan bahasa C. Agar aplikasi dapat dijalankan, user harus mempunyai hak akses sebagai root. Perangkat lunak ini dibangun dengan menggunakan Sistem Operasi Linux Ubuntu 8.04 (Hardy Heron). 4.2 Model Pengujian Pengujian akan dilakukan pada model jaringan seperti terlihat pada Gambar 4-1 pengirim dengan alamat 192.168.0.20, port 1234 dan penerimadengan alamat 192.168.0.10, port 80. IP : 192.168.0.15 OS : Linux UBUNTU 8.04
IP : 192.168.0.20 OS : Linux UBUNTU 8.04 IP : 192.168.0.10 OS : Windows XP
IP : 192.168.0.30 OS : Windows XP
` IP : 192.168.0.25 OS : Windows XP
SWITCH
IP : 192.168.0.35 OS : Windows XP
SWITCH
INTERNET
Gambar 6. Model Jaringan 4.3 Skenario Pengujian Pada skenario pengujian dibagi dua pengujian, skenario pengujian pertama merupakan pengujian perangkat lunak yang menguji keberhasilan proses steganografi dan pengambilan pesan rahasia yang telah disisipkan ke dalam field identification, dengan cara membandingkan pesan yang dikirim dengan pesan yang diterima dalam hal ukuran file pesan dan isi file pesan. Skenario pengujian kedua merupakan pengujian ketahanan metode steganografi dan mekanisme penanganan loss paket yang diterapkan, dimana pada penerima menerapkan
pengamanan standar yang terdapat pada linux untuk menangani SYN flood yaitu dengan memberi rules pada iptables untuk mengurangi SYN flood dan mengaktifkan SYN cookies pada kernel. 4.4 Analisa Hasil Pengujian Pada uji coba telah dilakukan pengujian pengiriman pesan rahasia berdasarkan skenario pertama dari 20 pengiriman yang dilakukan, tidak ada pesan pada penerima yang salah akibat paket yang loss, dikarenakan metode yang digunakan pada perangkat lunak ini untuk menjamin reliability dapat mengatasi dengan baik paket yang loss, dapat dilihat pada bagian jumlah pengiriman ulang. Dari 20 pengiriman 15 pengiriman terjadi pengiriman ulang tetapi hasil pesan yang diterima tidak mengalami kesalahan atau corrupt. Pada pengujian skenario kedua, penerima mengimplementasikan pencegahan serangan SYN flood dengan mengaktifkan SYN cookies dan mengeset rule pada ip tables dengan rule --limit rate 1/s dan --limit burst number 4. pengiriman masih dapat berjalan walaupun rata-rata jumlah paket yang loss mencapai setengah dari total keseluruhan paket yang akan dikirim. Pada skenario ini mekanisme penanganan paket loss yang diterapkan berjalan dengan baik. 5. 1.
2. 3.
Kesimpulan Penggunaan algoritma Lempel-Ziv-Welch sebagai metode encoding compression dan manipulasi paket header sebagai metode steganografi dapat berjalan dengan baik sehingga informasi dapat disembunyikan pada field IP Identification dan dapat diambil kembali informasi yang disembunyikan. Proses steganografi dan desteganografi pada perangkat lunak terbukti berjalan dimana dari 20 percobaan yang dilakukan tidak ada pesan di sisi penerima mengalami. Penggunaan pertahanan serangan SYN flood pada penerima menghasilkan rata-rata jumlah paket yang loss mencapai setengah dari total keseluruhan paket yang akan dikirim.
Daftar Pustaka: [1] Ahsan, K., Kundur, D., 2002, Practical data hiding in TCP/IP, ACM Workshop on Multimedia and Security. [2] C. H. Rowland, 1997, Covert channels in the TCP/IP protocol suite, Tech. Rep. 5, First Monday, Peer Reviewed Journal on the Internet. [3] Gay, Warren W, 2000, Linux Socket Programming by Example, Que. [4] Mark, 1989, LZW Data Compression, Magazine Article. [5] Mansfield, Niall, 2004, Jilid 1 Practical TCP/IP, Penerbit Andi. [6] Mansfield, Niall, 2004, Jilid 2 Practical TCP/IP, Penerbit Andi. [7] Rogers, Russ, 2004, Understanding Covert Channel of Communication, Black Hat Japan. [8] Sobel, Mark G, 2008, A Practical Guide to Ubuntu Linux, Prentice Hall. [9] Tanenbaum, Andrew S, 2003, Computer Network Fourth Edition, Prentice Hall. [10] U. S. C. Information Science Institute, 1981, Transmission control protocol, darpa Internet program, protocol specification, Prepared for Defense Advanced Research Projects Agency.