BAB II DASAR TEORI Pada bab ini akan dibahas mengenai teori dan konsep yang dibutuhkan dalam pengerjaan tugas akhir ini. Dasar teori yang dibahas akan memberikan pengetahuan dan pemahaman mengenai protokol TCP/IP yang digunakan untuk transportasi data pada jaringan dewasa ini, konsep MAC address dalam memberikan pengalamatan fisik untuk setiap node pada jaringan, protokolprotokol pada internet layer model TCP/IP di mana teknik serangan MiTM diimplementasikan, Hypertext Transfer Protocol (HTTP) beserta Otentikasi Akses Dasar, serta pengetahuan mengenai software Squid Proxy yang digunakan pada jaringan kampus ITB. 2.1 Protokol TCP/IP TCP/IP (Transmission Control Protocol/Internet Protocol) adalah sekumpulan protokol komunikasi yang distandarkan untuk internet dan jaringan sejenis dalam proses pertukaran data dari satu komputer ke komputer lain. Protokol TCP/IP ini merupakan protokol yang paling banyak digunakan dewasa ini. Protokol TCP/IP dikembangkan pada akhir dekade 1970-an hingga awal 1980-an sebagai sebuah protokol standar untuk menghubungkan komputer-komputer dan jaringan untuk membentuk sebuah jaringan yang luas (WAN). TCP/IP merupakan sebuah standar jaringan terbuka yang bersifat independen terhadap mekanisme transport jaringan fisik yang digunakan, sehingga dapat digunakan di mana saja. Protokol ini menggunakan skema pengalamatan yang sederhana yang disebut sebagai alamat IP (IP address) yang mengizinkan hingga beberapa ratus juta komputer untuk dapat saling berhubungan satu sama lainnya di internet. Protokol ini juga bersifat routable yang berarti protokol ini cocok untuk menghubungkan sistem-sistem berbeda (seperti Microsoft Windows dan keluarga UNIX) untuk membentuk jaringan yang heterogen [WIK09-a]. II-1 II-2 2.1.1 Arrsitektur TCP/IP T Arsitekturr TCP/IP tidaklah t beerbasis moddel referen nsi tujuh laapis OSI, tetapi t menggunaakan modeel referensii DARPA, yaitu terdiri dari 4 layer (lapis). Arsitekturr empat lapiis ini dapat dipetakan (meski ( tidak k secara lan ngsung) terhhadap model refferensi OSII. Empat laapis ini, kaddang-kadanng disebut sebagai s DA ARPA model, intternet modeel, atau DoD D model, mengingat m TCP/IP T merrupakan prootokol yang awaalnya dikeembangkan dari proyyek ARPA ANET yangg dimulai oleh Departemeen Pertahannan Amerikaa Serikat. Berikut gaambar perbaandingan model m referennsi OSI dann model TCP P/IP. Gambar II-11 Model Refereensi OSI dan TCP/IP T Setiap lappisan yang dimiliki oleh kumpuulan protokool (protocool suite) TC CP/IP diasosiasik kan dengann protokolny ya masing-m masing. Protokol utamaa dalam prootokol TCP/IP ad dalah sebagaai berikut: Protok kol Lapisann Aplikasi (A Applicationn Layer) Bertannggung jaw wab untuk menyediaakan akses kepada applikasi terhhadap layanaan jaringann TCP/IP. Protokol inni mencaku up protokoll Dynamic Host Config iguration Protocol P (DHCP), Dom main Namee System (D DNS), Hypeertext Transf sfer Protocool (HTTP), File F Transffer Protocoll (FTP), Tellnet, Simplee Mail Transf sfer Protocool (SMTP), Simple Network Mana agement Prrotocol (SN NMP), II-3 dan masih banyak protokol lainnya. Dalam beberapa implementasi stack protokol, seperti halnya Microsoft TCP/IP, protokol-protokol lapisan aplikasi berinteraksi dengan menggunakan antarmuka Windows Sockets (Winsock) atau NetBIOS over TCP/IP (NetBT). Protokol Lapisan Antar Host (Host to Host/Transport Layer) Berguna untuk membuat komunikasi menggunakan sesi koneksi yang bersifat connection-oriented atau broadcast yang bersifat connectionless. Protokol dalam lapisan ini adalah Transmission Control Protocol (TCP) dan User Datagram Protocol (UDP). Protokol Lapisan Internet (Internet Layer) Bertanggung jawab untuk melakukan pemetaan (routing) dan enkapsulasi paket-paket data jaringan menjadi paket-paket IP. Protokol yang bekerja dalam lapisan ini adalah Internet Protocol (IP), Address Resolution Protocol (ARP), Internet Control Message Protocol (ICMP), dan Internet Group Management Protocol (IGMP). Karena pengerjaan Tugas Akhir ini difokuskan pada Internet Layer, maka protokol-protokol pada lapisan ini akan dibahas lebih mendalam pada subbab tersendiri selanjutnya. Protokol Lapisan Antarmuka Jaringan (Network Access Layer) Bertanggung jawab untuk meletakkan frame-frame jaringan di atas media jaringan yang digunakan. TCP/IP dapat bekerja dengan banyak teknologi transport, mulai dari teknologi transport dalam LAN (seperti halnya Ethernet dan Token Ring), MAN dan WAN (seperti halnya dial-up modem yang berjalan di atas Public Switched Telephone Network (PSTN), Integrated Services Digital Network (ISDN), serta Asynchronous Transfer Mode (ATM). 2.1.2 Layanan Berikut ini adalah layanan standar yang berjalan di atas protokol TCP/IP: Pengiriman berkas (file transfer). File Transfer Protocol (FTP) memungkinkan pengguna komputer yang satu untuk dapat mengirim ataupun menerima berkas ke sebuah host di dalam jaringan. Metode otentikasi yang II-4 digunakannya adalah penggunaan nama pengguna (username) dan password, meskipun banyak juga FTP yang dapat diakses secara anonim. Remote Login. Network terminal Protocol (Telnet) memungkinkan pengguna komputer dapat melakukan login ke dalam suatu komputer di dalam suatu jaringan secara jarak jauh. Jadi hal ini berarti bahwa pengguna menggunakan komputernya sebagai perpanjangan tangan dari komputer jaringan tersebut. Electronic Mail. Digunakan untuk menerapkan sistem surat elektronik/email. Network File System (NFS). Pelayanan akses berkas-berkas yang dapat diakses dari jarak jauh yang memungkinkan klien-klien untuk mengakses berkas pada komputer jaringan, seolah-olah berkas tersebut disimpan secara lokal. Remote Execution. Memungkinkan pengguna komputer untuk menjalankan suatu program tertentu di dalam komputer yang berbeda. Biasanya berguna jika pengguna menggunakan komputer yang terbatas, sedangkan ia memerlukan sumber yg banyak dalam suatu sistem komputer. Ada beberapa jenis remote execution, ada yang berupa perintah-perintah dasar saja, yaitu yang dapat dijalankan dalam sistem komputer yang sama dan ada pula yg menggunakan sistem Remote Procedure Call (RPC), yang memungkinkan program untuk memanggil subrutin yang akan dijalankan di sistem komputer yg berbeda. Name server. Berguna sebagai penyimpanan basis data nama host yang digunakan pada Internet. 2.2 Pengalamatan Fisik (MAC Address) MAC Address (Media Access Control Address) adalah sebuah alamat jaringan yang diimplementasikan pada lapisan data-link dalam tujuh lapisan model OSI atau lapisan internet pada model TCP/IP, yang merepresentasikan sebuah node tertentu dalam jaringan. Dalam sebuah jaringan berbasis Ethernet, MAC address merupakan alamat yang unik yang memiliki panjang 48-bit (6 byte) yang mengidentifikasikan sebuah komputer, interface dalam sebuah router, atau node II-5 lainnya dalam jaringan. MAC address juga sering disebut sebagai ethernet address, physical address, atau hardware address [WIK09-b]. MAC Address mengizinkan perangkat-perangkat dalam jaringan agar dapat berkomunikasi antara satu dengan yang lainnya. Sebagai contoh, dalam sebuah jaringan berbasis teknologi ethernet, setiap header dalam frame ethernet mengandung informasi mengenai MAC address dari komputer sumber (source) dan MAC address dari komputer tujuan (destination). Beberapa perangkat, seperti halnya bridge dan switch akan melihat pada informasi MAC address dari komputer sumber dari setiap frame yang ia terima dan menggunakan informasi MAC address ini untuk membuat routing table internal secara dinamis. Perangkat-perangkat tersebut pun kemudian menggunakan tabel yang baru dibuat itu untuk meneruskan frame yang ia terima ke sebuah port atau segmen jaringan tertentu di mana komputer atau node yang memiliki MAC address tujuan berada. Dalam sebuah komputer, MAC address ditetapkan ke sebuah kartu jaringan (Network Interface Card/NIC) yang digunakan untuk menghubungkan komputer yang bersangkutan ke jaringan. MAC address umumnya tidak dapat diubah karena telah dimasukkan ke dalam ROM. Beberapa kartu jaringan menyediakan utilitas yang mengizinkan pengguna untuk mengubah MAC address, meski hal ini kurang disarankan. Jika dalam sebuah jaringan terdapat dua kartu jaringan yang memiliki MAC address yang sama, maka akan terjadi konflik alamat dan komputer pun tidak dapat saling berkomunikasi antara satu dengan lainnya. Beberapa kartu jaringan, seperti halnya kartu token ring mengharuskan pengguna untuk mengatur MAC address (tidak dimasukkan ke dalam ROM), sebelum dapat digunakan. II-6 Gamba ar II-2 Skema MAC Addresss u dan unntuk itulah,, Institute of o Electricaal and MAC adddress memaang harus unik, Electroniccs Engineerrs (IEEE) mengalokasik m kan blok-blok dalam MAC M addresss. 24 bit pertam ma dari MA AC address merepresenntasikan siaapa pembuaat kartu terssebut, dan 24 bitt sisanya merepresenta m asikan nom mor kartu terrsebut. Setiap kelompook 24 bit tersebuut dapat diirepresentassikan dengaan menggunnakan enam m digit bilaangan heksadesim mal, sehinggga menjaddikan total 12 digit biilangan hekksadesimal yang merepreseentasikan keeseluruhan MAC M addreess. 2.3 Pro otokol La apisan In nternet (IInternet Layer) L Dari berbaagai referennsi yang diddapat [SIN006] [ANS08], teknik serangan s M in Man The Midddle ini diim mplementasiikan untukk melakukan n serangan n terhadap suatu jaringan dengan d mem manfaatkan protokol-prrotokol yan ng disediakaan pada Laapisan Internet TCP/IP, T yaitu: Internett Protocol (IP) dan Ad ddress Resoolution Prootocol (ARP). II-7 2.3.1 Protokol Internet (IP) Internet Protocol merupakan salah satu protokol yang bekerja pada lapisan internet model TCP/IP. Perannya adalah melakukan pengalamatan dan routing paket data antar host pada jaringan komunikasi berbasis TCP/IP. Versi IP yang paling banyak diimplementasikan pada jaringan dewasa ini adalah IP versi 4 (IPv4). Sedangkan ke depannya, untuk menangani kebutuhan jumlah pengalamatan yang lebih besar lagi IP versi 6 (IPv6) telah dipersiapkan. IP menawarkan layanan sebagai protokol antar jaringan (inter-network), karena itulah IP juga sering disebut sebagai protokol yang bersifat routable. Header IP mengandung informasi yang dibutuhkan untuk menentukan rute paket, yang mencakup alamat IP sumber (source IP address) dan alamat IP tujuan (destination IP address). Anatomi alamat IP terbagi menjadi dua bagian, yakni alamat jaringan (network address) dan alamat node (node address/host address). Penyampaian paket antar jaringan (umumnya disebut sebagai proses routing), dimungkinkan karena adanya alamat jaringan tujuan dalam alamat IP. Selain itu, IP juga mengizinkan pembuatan sebuah jaringan yang cukup besar, yang disebut sebagai IP internetwork, yang terdiri atas dua atau lebih jaringan yang dihubungkan dengan menggunakan router berbasis IP. IP mendukung banyak protokol klien, karena memang IP merupakan pembawa data yang dikirimkan oleh protokol-protokol lapisan yang lebih tinggi dibandingkan dengannya. Protokol IP dapat membawa beberapa protokol lapisan tinggi yang berbeda-beda, tapi setiap paket IP hanya dapat mengandung data dari satu buah protokol dari banyak protokol tersebut dalam satu waktu. Contoh dari protokol-protokol lapisan yang lebih tinggi dibandingkan IP adalah Internet Control Management Protocol (ICMP), Internet Group Management Protocol (IGMP), User Datagram Protocol (UDP), dan Transmission Control Protocol (TCP). II-8 I mengirimkan data d dalam bentuk dattagram, karrena memanng IP Protokol Internet hanya meenyediakan layanan peengiriman data d secara connectionnless serta tidak andal (unrreliable) kepada protokkol-protokool yang beraada lebih tinnggi. Pengirriman connection nless, berarrti tidak perrlu ada neggosiasi koneeksi (handshhaking) sebbelum mengirimk kan data daan tidak adaa koneksi yaang harus dibuat d atau dipelihara d d dalam lapisan inni. Unreliaable, berarrti IP akann mengirim mkan pakeet tanpa proses p pengurutaan dan tanpaa acknowled dgment ketikka pihak yaang dituju teelah dapat diraih. d IP hanya akan melaakukan penngiriman sekali kirim saja untukk menyampaikan paket-pakeet kepada hhop selanjutnnya atau tujjuan akhir (teknik yangg dikenal seebagai best effortt delivery). Keandalan K data bukan merupakan n tugas dari protokol IP P, tapi merupakann protokol yang beradda pada lappisan yang lebih tinggi, seperti halnya h protokol TCP. T Tabel T II-1 IP Datagram D IP bersifaat independeen dari lapisan antarm muka jaringgan (lapisann pertama dalam d DARPA Reference R M Model), kareena memang IP didesaain agar men ndukung baanyak komputer dan antarm muka jaringaan. IP bersiffat independ den terhadaap atribut laapisan fisik, sepeerti halnya pengabelann, pensinyaalan, dan bit rate. Sellain itu, IP juga bersifat inndependen terhadap t atrribut lapisaan data linkk seperti haalnya mekannisme Media acccess controol (MAC), pengalamata p an MAC, serta ukurann frame terbbesar. II-9 IP menggunakan skema pengalamatannya sendiri, yang disebut sebagai IP address, yang merupakan bilangan 32-bit dan independen terhadap skema pengalamatan yang digunakan dalam lapisan antarmuka jaringan. Untuk mendukung ukuran frame terbesar yang dimiliki oleh teknologi lapisan antarmuka jaringan yang berbeda-beda, IP dapat melakukan pemecahan terhadap paket data ke dalam beberapa fragmen sebelum diletakkan di atas sebuah saluran jaringan. Paket data tersebut akan dipecah ke dalam fragmen-fragmen yang memiliki ukuran Maximum Transmission Unit (MTU) yang lebih rendah dibandingkan dengan ukuran datagram IP. Proses ini dinamakan dengan fragmentasi. Router atau host yang mengirimkan data akan memecah data yang hendak ditransmisikan, dan proses fragmentasi dapat berlangsung beberapa kali. Selanjutnya host yang dituju akan menyatukan kembali fragmen-fragmen tersebut menjadi paket data utuh, seperti halnya sebelum dipecah. Dapat diperluas dengan menggunakan fitur IP options dalam IP header. Fitur yang dapat ditambahkan contohnya adalah kemampuan untuk menentukan jalur yang harus diikuti oleh datagram melalui sebuah internetwork. 2.3.2 Protokol Resolusi Alamat (ARP) Address Resolution Protocol (ARP) adalah suatu protokol pada TCP/IP lapisan Internet yang bertanggungjawab dalam melakukan resolusi alamat IP ke dalam alamat MAC address. Pengiriman suatu paket data ke suatu host atau router membutuhkan 2 level pengalamatan, yaitu alamat logik (IP address), dan alamat fisik (MAC address). Ketika sebuah aplikasi yang mendukung teknologi protokol jaringan TCP/IP mencoba untuk mengakses sebuah host TCP/IP dengan menggunakan alamat IP, maka alamat IP yang dimiliki oleh host yang dituju harus diterjemahkan terlebih dahulu ke dalam MAC Address agar frame data dapat diteruskan ke tujuan dan diletakkan di atas media transmisi (kabel, radio, atau cahaya), setelah diproses II-10 d oleh Network Interface I C Card (NIC).. Hal ini dikarenakan d NIC terlebih dahulu beroperasii dalam lappisan fisik dan lapisaan data-linnk pada tujjuh lapis model m referensi OSI O dan meenggunakann alamat fisiik daripadaa menggunaakan alamat logis (seperti haalnya alamaat IP atau naama NetBIO OS) untuk melakukan m komunikasii data dalam jariingan [RHE E03]. Gamb bar II-3 ARP Request-Reply R b ARP akann melakukann broadcastting terhadaap suatu pakket ARP reqquest yang berisi seolah-olaah "Siapa yaang memiliiki alamat IP I www.xxxx.yyy.zzz???". Broadcaast ini akan melaakukan perm mintaan terrhadap MAC address dari kompu uter yang dituju. d Host tujuaan kemudiaan merespons dengan mengirimk kan paket ARP A reply secara s unicast yaang menganndung alam mat MAC yaang dimilikiinya. Host yang melakkukan request seelanjutnya menyimpan m pemetaan alamat a IP kee alamat MA AC ini ke dalam d local ARP P cache secaara sementaara, mungkinn sewaktu-w waktu akan kembali diiakses sehingga tidak t perlu lagi l melakuukan ARP reequest. Namun, jiika memangg alamat yanng dituju beerada di luaar jaringan lokal, l maka ARP akan menncoba untukk mendapattkan MAC address daari antarmuuka router lokal yang mennghubungkaan jaringan lokal ke luuar jaringan n (di manaa komputer yang dituju berrada), apakaah ARP cache pada router r tersebut menganndung inforrmasi II-11 utuhkan. Jiika tidak, maka m routeer akan meelakukan forwarding fo ARP yang dibu request kee host yang dituju padaa jaringan luuar. T Tabel II-2 ARP P Format Keterangaan: Haardware typpe (HTYPE)) Prootokol lapissan data lin nk ditunjukkkan oleh angka a yang digunakan pada field ini. Conttohnya untuuk ethernet aadalah 1 Prrotocol type (PTYPE) Meenunjukkann protokol yang diguunakan. Co ontohnya untuk u IP adalah a 0x0800 Haardware lenngth (HLEN N) Paanjang dalaam bytes dari alam mat fisik/haardware. Alamat A ethhernet pannjangnya 6 bytes Prrotocol lenggth (PLEN) Paanjang dalam m bytes darii alamat loggik/IP. Alam mat Ipv4 pan njangnya 4 bytes Opperation Meenunjukkann jenis operrasi apa yanng dilakukaan pengirim m; 1: requeest, 2: repply, 3: RAR RP request dan d 4: RARP reply Sennder hardw ware addresss (SHA) Alamat fisik pengirim p Sennder protoccol address (SPA) Alamat IP penngirim Taarget hardware addresss (THA) II-12 Alamat fisik penerima yang dituju. Field ini dibiarkan kosong jika melakukan request Target protocol address (TPA) Alamat IP penerima yang dituju ARP cache adalah suatu tabel yang mengandung pemetaan antara alamat MAC dengan alamat IP suatu host yang bersesuaian. Ada 2 cara bagaimana ARP cache dibangkitkan, yaitu: a. Secara statis Dengan cara ini, entri untuk tabel ditambahkan secara manual dan disimpan ke dalam ARP cache secara permanen b. Secara dinamik Pasangan alamat IP dan alamat fisik yang ditambahkan pada ARP cache dilakukan oleh perangkat lunak itu sendiri sebagai hasil dari proses resolusi ARP. Entri ini hanya disimpan dalam periode waktu tertentu yang kemudian dihapus. Selanjutnya jika pemetaan alamat dibutuhkan, resolusi yang baru kemudian dilakukan untuk melakukan update ARP cache. Reserve Address Resolution Protocol (rARP) adalah kebalikan dari ARP, yaitu protokol yang digunakan untuk mendapatkan alamat IP dari alamat MAC yang diberikan. Untuk mendapatkan alamat IP, pengirim melakukan broadcast paket rARP request ke semua host pada jaringan. Setiap host akan mendapatkan paket ini, namun hanya host yang dituju yang akan membalas dengan mengirimkan secara unicast paket rARP reply kepada pengirim. 2.4 Otentikasi HTTP 2.4.1 Protokol Hyper Text Transfer HTTP (HyperText Transfer Protocol) adalah protokol yang dipergunakan untuk melakukan transfer dokumen dalam World Wide Web (WWW). Protokol ini adalah protokol ringan, tidak berstatus dan generik yang dapat dipergunakan berbagai macam tipe dokumen. II-13 HTTP adalah suatu protokol standar request-response antara klien (browser) dan server (website). Klien membangkitkan suatu HTTP request menggunakan web browser, spider atau tool end-user lainnya, yang ditunjuk sebagai user agent. Server yang merespon, yaitu yang menyimpan dan membangkitkan data misalnya berkas HTML dan gambar, disebut sebagai server asal. Di antara user-agent dan server asal mungkin terdapat penghubung, misalnya proxy, gateway ataupun tunnel [GOU02]. Secara umum, suatu klien HTTP menciptakan suatu request, bertujuan untuk membangkitkan koneksi TCP pada port tertentu pada suatu host (biasanya port 80). Server HTTP yang mendengarkan pada port tersebut menunggu klien mengirimkan pesan request. Setelah menerima request, server mengirim balik kode status, misalnya “HTTP/1.1 200 OK”, resources yang diminta, pesan error atau informasi lainnya. HTTP mendefinisikan 8 methods yang menunjukkan operasi yang ingin dikerjakan pada resource yang dituju. Apakah resource ini tersedia, apakah datanya sudah tersedia atau dibangkitkan secara dinamik, tergantung pada implementasinya pada server. Kadangkala resource yang diminta dapat berhubungan juga dengan suatu berkas ataupun keluaran (output) dari program yang dieksekusi di sisi server. Berikut HTTP methods yang tersedia. HEAD Menanyakan suatu jawaban yang berhubungan dengan suatu permintaan GET, namun tanpa body jawaban. Hal ini berguna untuk mendapatkan meta-informasi yang ditulis pada header respon tanpa perlu mengirimkan seluruh isinya GET Permintaan yang merepresentasikan resource tertentu. Perlu dicatat bahwa GET harusnya tidak digunakan untuk operasi yang menimbulkan efek, misalnya menggunakannya untuk melakukan sesuatu pada aplikasi web. Salah satu alasannya adalah GET mungkin digunakan oleh robots atau II-14 crawlers, yang mana tidak memperhatikan efek samping akibat dari request POST Mengirimkan data untuk diproses (misalnya form HTML) pada resource yang dituju. Data ini disisipkan ke dalam body request. Hal ini mungkin menghasilkan resource baru, perbaharuan resource yang sudah ada atau keduanya PUT Melakukan upload suatu representasi dari resource tertentu DELETE Menghapus resource tertentu TRACE Mengirimkan balik request yang diterima, sehingga klien dapat mengetahui apakah server antara melakukan penambahan atau perubahan pada request OPTIONS Mengembalikan HTTP method yang mana server mendukung pada URL tertentu. Hal ini dapat digunakan untuk melakukan pengecekan fungsionalitas dari web server dengan request ‘*’ daripada resource tertentu CONNECT Melakukan perubahan permintaan koneksi ke suatu TCP/IP tunnel transparan, biasanya untuk memfasilitasi komunikasi SSL-terenkripsi (HTTPS) melalui suatu HTTP proxy yang tidak terenkripsi HTTP server dibutuhkan untuk mengimplementasikan minimal GET dan HEAD methods dan kapanpun memungkinkan, juga terhadap OPTIONS method. 2.4.2 Otentikasi Akses Dasar Pada konteks transaksi HTTP, basic access authentication adalah suatu metode yang dirancang guna mengijinkan web browser, atau program klien lainnya untuk II-15 menyediakan kredensial – dalam bentuk username dan password – ketika melakukan suatu request. Sebelum melakukan pengiriman, informasi username ditambahkan dengan titik dua (:) kemudian digabungkan dengan password. Sebagai contoh, diberikan username ‘Aladdin’ dan password ‘open sesame’, maka string Aladdin:open sesame dienkodekan dengan Base64, menghasilkan QWxhZGRpbjpvcGVuIHNlc2FtZQ==. String ini kemudian dikirimkan dan didekodekan oleh penerima menghasilkan username dan password yang dipisah dengan titik dua kembali. Keunggulan dari otentikasi akses dasar ini adalah didukung oleh oleh semua web browser populer saat ini. Namun walaupun mudah diimplementasikan, penggunaannya diasumsikan bahwa koneksi antara komputer klien dan server adalah aman dan dapat dipercaya. Hal ini dikarenakan kerahasiaan yang dilewatkan ini berupa plaintext dimana informasi penting yang terkandung didalamnya dapat diekstraksi dengan mudah. Skema tersebut juga tidak menyediakan perlindungan terhadap informasi yang dilewatkan kembali dari server. Format pesan HTTP dibagi menjadi 3 bagian, yaitu start line, header (empty line) dan body. Start line dan header hanya berupa ASCII teks yang dipisahkan dengan baris. Setiap baris diakhiri dengan karakter ASCII 13 (carriage return) dan 10 (line feed). Gabungan dari karakter akhir baris ini ditulis sebagai ‘CRLF’. Sedangkan bagian body, yang merupakan isi dari pesan dapat mengandung data teks maupun biner [GOU02]. II-16 Start line HTTP/1.0 200 OK Header Content-type: text/plain Content-length: 19 Empty line Body Hi! I’m a message.. … Semua pesan HTTP dibagi menjadi 2 jenis, yaitu pesan request dan pesan response. Pesan request dikirimkan oleh klien untuk meminta suatu aksi/operasi pada server (web/proxy). Pesan response merupakan balasan yang dikirim balik oleh server yang berisikan hasil dari pesan request klien. Berikut format kedua jenis pesan HTTP ini. Request message: <method> <request-URL> <version> <headers> <entity-body> Response message: <version> <status> <reason-phrase> <headers> <entity-body> II-17 Start line Start line pada pesan request menunjukkan apa yang ingin dilakukan, biasanya berisikan HTTP methods. Sedangkan pada pesan response menunjukkan apa yang terjadi, biasanya berisikan status code. Header HTTP header berisikan informasi tambahan yang diikutkan pada pesan request dan response, biasanya berupa pasangan nama field dan nilainya. Misalnya: Content-length: 15040, Content-type: image/gif, Accept: image/gif, image/jpeg, text/html Entity body Bagian dari pesan HTTP ini bersifat opsional, merupakan payload dari pesan HTTP. Bagian ini dirancang untuk dapat membawa berbagai jenis data digital: HTML dokumen, gambar, video, software, email dan lain sebagainya. Secara umum, berikut contoh suatu transaksi antara klien dan server HTTP yang berjalan pada mesin lokal (localhost). Langkah-langkahnya dapat dijelaskan sebagai berikut. Klien menanyakan suatu halaman yang membutuhkan otentikasi namun tidak memberikan suatu username dan password. Hal ini biasa terjadi ketika klien langsung membuka suatu alamat atau melakukan klik suatu link suatu halaman. Server merespon dengan mengembalikan kode 401 untuk web server, 407 untuk proxy server dan meminta otentikasi Pada titik ini, klien akan mendapatkan permintaan otentikasi yang mengharuskan klien untuk mengisi dengan username dan password. Klien dapat membatalkannya. Jika username dan password kemudian dimasukkan, klien akan mengirim ulang request yang sama namun mengikutsertakan header otentikasi Jika otentikasi berhasil, maka halaman yang diminta akan dikirimkan ke klien oleh server. Sebaliknya jika username atau password tidak valid, II-18 server akan mengembalikan kode error 401 atau 407 dan klien diminta kembali untuk mengisi informasi yang valid. Klien request (tidak ada otentikasi): GET /private/index.html HTTP/1.0 Host: localhost Server response: HTTP/1.0 401 UNAUTHORIZED Server: HTTPd/1.0 Date: Sat, 27 Nov 2004 10:18:15 GMT WWW-Authenticate: Basic realm="Secure Area" Content-Type: text/html Content-Length: 311 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> <HTML> <HEAD> <TITLE>Error</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> </HEAD> <BODY><H1>401 Unauthorised.</H1></BODY> </HTML> Client request (user name "Aladdin", password "open sesame"): GET /private/index.html HTTP/1.0 Host: localhost Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== Server response: HTTP/1.0 200 OK Server: HTTPd/1.0 Date: Sat, 27 Nov 2004 10:19:07 GMT Content-Type: text/html Content-Length: 10476 II-19 2.5 Squid Web Proxy 2.5.1 Tentang Squid Squid adalah suatu caching proxy untuk web yang mendukung protokol HTTP, HTTPS, FTP dan lain sebagainya. Tujuannya adalah untuk mengurangi bandwidth dan meningkatkan waktu respon dengan melakukan penyimpanan sementara (caching) dan penggunaan kembali halaman-halaman web yang sering diminta oleh pengguna. Squid memiliki konfigurasi akses kontrol yang luas dan meningkatkan performansi server. Squid berjalan di hampir semua sistem operasi yang ada, termasuk Windows dan lisensi dibawah GNU/GPL. Caching adalah suatu cara untuk menyimpan objek internet yang diminta (misalnya data seperti halaman web) melalui protokol HTTP, FTP dan Gopher pada suatu sistem yang terdekat dengan host yang meminta. Web browser kemudian menggunakan Squid cache proxy lokal sebagai server proxy HTTP, sehingga mengurangi waktu akses dan konsumsi bandwidth. Hal ini sangat berguna bagi penyedia layanan internet untuk meningkatkan kecepatan koneksi bagi konsumen mereka, dan juga LAN yang melakukan sharing koneksi internet. Karena juga bertindak sebagai proxy, maka Squid juga menyediakan fitur keamanan dan anonimitas bagi klien. Namun walaupun demikian, privasi menjadi masalah utama karena Squid melakukan pencatatan (logging) terhadap banyak data termasuk permintaan URL, waktu akses, nama dan versi web browser dan OS pengakses, dan lain sebagainya. Program klien misalnya web browser harus menentukan secara eksplisit server proxy yang digunakannya, atau juga dapat menggunakan suatu proxy tanpa melakukan konfigurasi (transparent caching), sehingga semua permintaan HTTP keluar ditangkap oleh Squid dan semua respon kemudian disimpan. Squid juga memiliki fitur yang dapat membantu untuk melakukan koneksi yang anonim (penyamaran identitas), seperti dengan menonaktifkan atau mengubah field header tertentu pada HTTP request klien. Apakah fitur ini diaktifkan atau tidak, tergantung kepada pihak yang mengontrol komputer yang menjalankan Squid. II-20 Gambar II-4 Squid Web W Proxy Serveer 2.5.2 Me ekanisme Otentikas si Squid W Web Proxy y Dalam melakukan m o otentikasi t terhadap peengguna Squid mengggunakan model m keamanan n ACL-Based. ACL (Access ( Coontrol List)) dalam deefinisi kom mputer adalah dafftar sekumppulan periziinan yang diberikan d teerhadap suaatu objek. Daftar D ini menen ntukan siapaa atau apa saja yang diizinkan untuk u melak kukan akses dan operasi-opperasi apa saaja yang dipperbolehkann dilakukan terhadap ob bjek tersebuut. quid pada prroxy server dikonfigurrasi mengguunakan apa itu yang diisebut Ketika Sq ACLs, pengguna yang dengan proxy_auth p y hendaak melakuk kan akses akan diotentikaasi terlebih dahulu. Apabila A Squuid mendap patkan suattu request yang dikirimkan n oleh brow wser pengg guna, Squid akan menncari autho orization heeader, jika headeer tersebut ada, maka akan didekkodekan unttuk mendappatkan userrname dan passw word. Jika heeader terseb but tidak dittemukan, Squid mengeembalikan HTTP H ion required). Browserr pengguna yang reply deng gan status 407 4 (Proxy authenticat a menerimaanya akan memunculka m an prompt kepada penngguna untuuk memasuukkan username dan passwoord [SQU099]. II-21 Berikut salah satu contoh entri proxy_auth ACLs untuk melakukan konfigurasi terhadap Squid. acl foo proxy_auth REQUIRED acl bar proxy_auth lisa sarah frank joe acl daytime time 08:00-17:00 http_access allow bar http_access allow foo daytime http_access deny all Pada contoh di atas, kata REQUIRED berarti untuk setiap pengguna yang telah terutentikasi akan dicocokkan dengan ACL yang diberi nama foo. Pengguna dengan nama lisa, sarah, frank, joe diizinkan mengakses proxy sepanjang waktu, sedangkan yang lain hanya pada waktu daytime (08.00 – 17.00). Username dan password yang dilewatkan dari browser pengguna ke proxy server dienkode menggunakan base64. Base64 ini hanya melakukan enkode binary-totext yang artinya username dan password yang ditransmisikan tidak dilakukan enkripsi. Oleh karena itu, otentikasi Squid ini rentan terhadap penyadapan dan pencurian akun pengguna untuk melakukan akses terhadap proxy server.