bab ii dasar teori - · pdf file2.1.1 ar arsitektur mengguna arsitektur ... aplikasi (a ab...
TRANSCRIPT
II-1
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, protokol-
protokol 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].
2.1.1 Ar
Arsitektur
mengguna
Arsitektur
model ref
model, int
yang awa
Departeme
Berikut ga
Setiap lap
diasosiasik
TCP/IP ad
Protok
Bertan
layana
Config
Transf
Transf
rsitektur T
r TCP/IP t
akan mode
r empat lapi
ferensi OSI
ternet mode
alnya dike
en Pertahan
ambar perba
pisan yang
kan dengan
dalah sebaga
kol Lapisan
nggung jaw
an jaringan
iguration P
sfer Protoco
sfer Protoco
TCP/IP
tidaklah be
el referensi
is ini dapat
I. Empat la
el, atau DoD
embangkan
nan Amerika
andingan m
Gambar II-1
dimiliki o
n protokolny
ai berikut:
n Aplikasi (A
wab untuk
n TCP/IP.
Protocol (D
ol (HTTP), F
ol (SMTP),
erbasis mod
i DARPA,
dipetakan (
apis ini, kad
D model, m
dari proy
a Serikat.
model referen
1 Model Refere
leh kumpu
ya masing-m
Application
menyedia
Protokol in
HCP), Dom
File Transf
Simple Ne
del referen
yaitu ter
(meski tidak
dang-kadan
mengingat T
yek ARPA
nsi OSI dan
ensi OSI dan T
ulan protoko
masing. Pro
n Layer)
akan akses
ni mencaku
main Name
fer Protocol
twork Mana
nsi tujuh la
diri dari 4
k secara lan
ng disebut s
TCP/IP mer
ANET yang
n model TCP
TCP/IP
ol (protoco
tokol utama
kepada ap
up protokol
e System (D
l (FTP), Tel
agement Pr
apis OSI, t
4 layer (l
ngsung) terh
sebagai DA
rupakan pro
g dimulai
P/IP.
ol suite) TC
a dalam pro
plikasi terh
l Dynamic
DNS), Hype
lnet, Simple
rotocol (SN
II-2
tetapi
apis).
hadap
ARPA
otokol
oleh
CP/IP
otokol
hadap
Host
ertext
e Mail
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.
MAC add
Electronic
bit pertam
dan 24 bit
bit tersebu
heksadesim
mereprese
2.3 Pro
Dari berba
The Midd
jaringan d
Internet T
(ARP).
dress mema
cs Engineer
ma dari MA
t sisanya m
ut dapat di
mal, sehing
entasikan ke
otokol La
agai referen
dle ini diim
dengan mem
TCP/IP, yai
Gamba
ang harus u
rs (IEEE) m
AC address
merepresenta
irepresentas
gga menjad
eseluruhan M
apisan In
nsi yang did
mplementasi
manfaatkan
tu: Internet
ar II-2 Skema
unik, dan un
mengalokasik
merepresen
asikan nom
sikan denga
dikan total
MAC addre
nternet (I
dapat [SIN0
ikan untuk
protokol-pr
t Protocol
MAC Address
ntuk itulah,
kan blok-bl
ntasikan sia
mor kartu ter
an menggun
12 digit bi
ess.
Internet L
06] [ANS0
k melakukan
rotokol yan
(IP) dan Ad
s
, Institute o
ok dalam M
apa pembua
rsebut. Seti
nakan enam
ilangan hek
Layer)
8], teknik s
n serangan
ng disediaka
ddress Reso
of Electrica
MAC addres
at kartu ters
ap kelompo
m digit bila
ksadesimal
serangan M
n terhadap
an pada La
olution Pro
II-6
al and
ss. 24
sebut,
ok 24
angan
yang
Man in
suatu
apisan
otocol
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).
Protokol I
hanya me
andal (unr
connection
mengirimk
lapisan in
penguruta
IP hanya
paket-pake
best effort
merupakan
protokol T
IP bersifa
DARPA R
komputer
fisik, sepe
bersifat in
Media acc
Internet me
enyediakan
reliable) ke
nless, berar
kan data da
ni. Unrelia
an dan tanpa
akan mela
et kepada h
t delivery). K
n protokol
TCP.
at independe
Reference M
dan antarm
erti halnya
ndependen t
cess contro
ngirimkan d
layanan pe
pada protok
rti tidak per
an tidak ada
able, berar
a acknowled
akukan pen
hop selanjutn
Keandalan
yang berad
T
en dari lap
Model), kare
muka jaringa
pengabelan
terhadap atr
ol (MAC), p
data dalam
engiriman d
kol-protoko
rlu ada neg
a koneksi ya
rti IP akan
dgment ketik
ngiriman se
nya atau tuj
data bukan
da pada lap
Tabel II-1 IP D
isan antarm
ena meman
an. IP bersif
n, pensinya
ribut lapisa
pengalamata
bentuk dat
data secara
ol yang bera
gosiasi kone
ang harus d
n mengirim
ka pihak ya
kali kirim
juan akhir (
merupakan
pisan yang
Datagram
muka jaring
g IP didesa
fat independ
alan, dan b
an data link
an MAC, s
tagram, kar
connection
ada lebih tin
eksi (handsh
dibuat atau d
mkan pake
ang dituju te
saja untuk
teknik yang
n tugas dari
lebih tingg
gan (lapisan
ain agar men
den terhada
it rate. Sel
k seperti ha
erta ukuran
rena meman
nless serta
nggi. Pengir
haking) seb
dipelihara d
et tanpa p
elah dapat d
k menyamp
g dikenal se
protokol IP
i, seperti h
n pertama d
ndukung ba
ap atribut la
lain itu, IP
alnya mekan
n frame terb
II-8
ng IP
tidak
riman
belum
dalam
proses
diraih.
aikan
ebagai
P, tapi
halnya
dalam
anyak
apisan
juga
nisme
besar.
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
terlebih d
beroperasi
referensi O
(seperti ha
dalam jari
ARP akan
seolah-ola
akan mela
Host tujua
unicast ya
request se
local ARP
sehingga t
Namun, ji
akan men
yang men
dituju ber
dahulu oleh
i dalam lap
OSI dan me
alnya alama
ingan [RHE
n melakukan
ah "Siapa ya
akukan perm
an kemudia
ang mengan
elanjutnya m
P cache seca
tidak perlu l
ika memang
ncoba untuk
nghubungka
rada), apaka
Network I
pisan fisik
enggunakan
at IP atau na
E03].
Gamb
n broadcast
ang memili
mintaan ter
an merespo
ndung alam
menyimpan
ara sementa
lagi melaku
g alamat yan
k mendapat
an jaringan
ah ARP ca
Interface C
dan lapisa
n alamat fisi
ama NetBIO
bar II-3 ARP R
ting terhada
iki alamat I
rhadap MA
ns dengan
mat MAC ya
pemetaan a
ara, mungkin
ukan ARP re
ng dituju be
tkan MAC
lokal ke lu
che pada r
Card (NIC).
an data-lin
ik daripada
OS) untuk m
Request-Reply
ap suatu pak
IP www.xxx
C address
mengirimk
ang dimiliki
alamat IP ke
n sewaktu-w
equest.
erada di lua
address da
uar jaringan
router terse
. Hal ini d
nk pada tuj
a mengguna
melakukan
ket ARP req
x.yyy.zzz??
dari kompu
kan paket A
inya. Host
e alamat MA
waktu akan
ar jaringan l
ari antarmu
n (di mana
but mengan
dikarenakan
juh lapis m
akan alamat
komunikasi
quest yang b
?". Broadca
uter yang d
ARP reply s
yang melak
AC ini ke d
kembali di
lokal, maka
uka router
a komputer
ndung infor
II-10
NIC
model
logis
i data
berisi
ast ini
dituju.
secara
kukan
dalam
iakses
ARP
lokal
yang
rmasi
yang dibu
request ke
Keteranga
Ha
Pro
fie
Pr
Me
0x
Ha
Pa
pan
Pr
Pa
Op
Me
rep
Sen
Al
Sen
Al
Ta
utuhkan. Ji
e host yang
an:
ardware typ
otokol lapis
ld ini. Cont
rotocol type
enunjukkan
0800
ardware len
anjang dala
njangnya 6
rotocol leng
anjang dalam
peration
enunjukkan
ply, 3: RAR
nder hardw
amat fisik p
nder protoc
amat IP pen
arget hardw
ika tidak, m
dituju pada
T
pe (HTYPE)
san data lin
tohnya untu
(PTYPE)
n protokol
ngth (HLEN
am bytes
bytes
gth (PLEN)
m bytes dari
n jenis oper
RP request d
ware address
pengirim
col address
ngirim
are address
maka route
a jaringan lu
Tabel II-2 ARP
)
nk ditunjuk
uk ethernet a
yang digu
N)
dari alam
i alamat log
rasi apa yan
dan 4: RAR
s (SHA)
(SPA)
s (THA)
er akan me
uar.
P Format
kkan oleh a
adalah 1
unakan. Co
mat fisik/ha
gik/IP. Alam
ng dilakuka
P reply
elakukan fo
angka yang
ontohnya u
ardware. A
mat Ipv4 pan
an pengirim
forwarding
digunakan
untuk IP a
Alamat eth
njangnya 4
m; 1: reque
II-11
ARP
pada
adalah
hernet
bytes
est, 2:
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
Header
Empty line
Body
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:
Response message:
HTTP/1.0 200 OK
Content-type: text/plain Content-length: 19
Hi! I’m a message.. …
<method> <request-URL> <version>
<headers>
<entity-body>
<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):
Server response:
Client request (user name "Aladdin", password "open sesame"):
Server response:
GET /private/index.html HTTP/1.0 Host: localhost
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>
GET /private/index.html HTTP/1.0 Host: localhost Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
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.
2.5.2 Me
Dalam m
keamanan
adalah daf
ini menen
operasi-op
Ketika Sq
dengan p
diotentika
dikirimkan
jika heade
dan passw
reply deng
menerima
username
ekanisme
melakukan o
n ACL-Bas
ftar sekump
ntukan siapa
perasi apa sa
quid pada pr
proxy_auth
asi terlebih
n oleh brow
er tersebut
word. Jika he
gan status 4
anya akan m
dan passwo
Gamba
Otentikas
otentikasi t
ed. ACL (
pulan perizi
a atau apa
aja yang dip
roxy server
ACLs, p
dahulu. A
wser pengg
ada, maka
eader terseb
407 (Proxy a
memunculka
ord [SQU09
r II-4 Squid W
si Squid W
terhadap pe
(Access Co
inan yang d
saja yang
perbolehkan
dikonfigur
engguna y
Apabila Squ
guna, Squi
akan didek
but tidak dit
authenticat
an prompt
9].
Web Proxy Serve
Web Proxy
engguna S
ontrol List)
diberikan te
diizinkan u
n dilakukan
rasi menggu
yang henda
uid mendap
d akan men
kodekan unt
temukan, S
ion require
kepada pen
er
y
quid meng
) dalam de
erhadap sua
untuk melak
terhadap ob
unakan apa
ak melakuk
patkan suat
ncari autho
tuk mendap
quid menge
d). Browser
ngguna untu
ggunakan m
efinisi kom
atu objek. D
kukan akse
bjek tersebu
itu yang di
kan akses
tu request
orization he
patkan user
embalikan H
r pengguna
uk memasu
II-20
model
mputer
Daftar
s dan
ut.
isebut
akan
yang
eader,
rname
HTTP
yang
ukkan
II-21
Berikut salah satu contoh entri proxy_auth ACLs untuk melakukan konfigurasi
terhadap Squid.
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-to-
text 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.
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