bab ii dasar teori - Perpustakaan Digital ITB

advertisement
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.
Download