Penggunaan dan Cara Kerja Kerberos.docx

1. Pendahuluan
Pada zaman era computer ini, kebutuhan akan sharing information
secara cepat sangatlah dibutuhkan. Sekarang ini, sudah banyak komputer
yang terhubung dengan jaringan dan mengikuti jalannya mobilisasi
informasi. Namun, tidak selamanya kenyamanan dalam pertukaran informasi
selalu terpenuhi. Biasanya yang terjadi adalah tingkat kenyamanan
berbanding terbalik dengan tingkat keamanan.
Protokol komunikasi yang sudah ada, yaitu protokol autentikasi
konvensional dianggap sudah tidak relevan lagi karena tingkat kenyamanan
dan keamanannya sudah tidak memenuhi kebutuhan user saat ini. Semakin
banyak user yang terhubung ke dalam jaringan, maka semakin banyak pula
kemungkinan serangan keamanan yang muncul. Pada sistem jaringan
terbuka, biasanya serangan lebih mudah terjadi. Serangan bisa berupa
tampering, eavesdropping dan bahkan impersonation yang mampu
mengancam berbagai aspek keamanan. Di samping hal itu juga, sistem
komputer modern menyediakan layanan untuk multiple user dan
membutuhkan kemampuan untuk mengidentifikasi permintaan user. Oleh
karena itu, sudah seharusnya kita memikirkan solusi terbaik untuk
menangani masalah kerahasiaan, otoritas dan integritas data, serta suatu
sistem autentikasi yang aman, efisien dan efektif untuk menciptakan
kenyamanan dalam share information.

Sebenarnya, studi penelitian tentang protokol telah dilakukan
sebelumnya yaitu oleh MIT dalam proyek Athena dan menghasilkan suatu
penyelesaian awal yaitu sebuah protokol Kerberos. Protokol ini dirancang
guna mempermudah distribusi kunci sekaligus membatasi hubungan
komunikasi antara user dengan server.
Protokol Kerberos terdiri dari beberapa versi yaitu versi 1,2,3 (yang
digunakan untuk kalangan MIT sendiri), versi 4 (yang digunakan secara
umum) dan kini telah dikembangkan kerberos versi 5. Namun dalam paper
ini hanya akan dibahas kerberos secara umum. Protokol Kerberos ini
merupakan protokol yang melibatkan pihak ketiga terpercaya (Trusted third
party), yang nantinya akan memberikan autentikasi dua arah, baik terhadap
client maupun servernya. Ketika pemakai login, Kerberos mengautentikasi
pemakai tersebut (menggunakan password), dan memberikan pemakai
suatu cara untuk membuktikan identitasnya ke server dan host lain yang
tersebar di jaringan. Autentikasi ini kemudian digunakan oleh program
seperti rlogin untuk membolehkan pemakai login ke host lain tanpa
password.
Penulisan ini bertujuan untuk menawarkan solusi keamanan jaringan,
dimana protokol Kerberos ini dapat dijadikan sebagai salah satu alternatif.
2. Model, Analisa, Desain dan Implementasi


I. Enkripsi
Kerberos merupakan protokol autentikasi yang menggunakan sistem
kriptografi simetrik. Biasanya menggunakan DES ataupun triple DES dan
bahkan
telah
dirancang
menggunakan
AES.
Namun
dalam
perkembangannya telah menggunakan sistem public key. Kunci simetri
mengizinkan autentikasi secara real time karena karakteristiknya yang
cepat. Algoritma kriptografi kunci simetrik menggunakan kunci yang sama
untuk melakukan enkripsi maupun dekripsi.
II. Istilah dan komponen dalam Kerberos
Berikut ini kami perkenalkan terlebih dahulu tentang istilah-istilah di dalam
Kerberos :
Protokol : serangkaian langkah yang melibatkan dua pihak atau lebih dan
dirancang untuk menyelesaikan suatu tugas, memiliki urutan dari awal

hingga akhir, harus dilaksanakan secara bergiliran, protokol harus
mencapai suatu hasil.
Realm : sebutan untuk jaringan yang menggunakan Kerberos.
Kerberos Server : merupakan server khusus bereupa KDC yang di
dalamnya terdapat Kerberos Authentication Server (AS) dan Ticket
Granting Server (TGS).
Ticket : merupakan sarana autentikasi antara user dengan server
sekaligus penunjuk identitas sementara yang dapat digunakan berkalikali sampai expired time, dienkripsi dengan server key.
Principal : anggota yang identitasnya telah diverifikasi.
Verifier : anggota jaringan Kerberos yang meminta jaminan identitas dari
principal .
Credential : kumpulan dari ticket dan authenticator yang dimiliki oleh
user.
Komponen-komponen dalam Kerberos :
Aplication library.
Library yang menjadi penghubung antara client dengan server.
Encryption library.
Libarary untuk melakukan fungsi crypto.
Database library.
Library yang mengatur database untuk Kerberos

Database administration program.
Program yang mengatur operasi database Kerberos.
Administration server.
Melayani perubahan database Kerberos.
Authentication server.

Melakukan autentikasi dan membuat session key.
Database propagation software.
Program untuk mengatur replikasi dari database, seperti mengatur
peng-update-an database.
User program.
Program di tempat user yang mengatur login dan pemasukan
password. Juga berfungsi untuk pengaturan ticket.
III. Trusted Third Party
Untuk meminta suatu layanan kepada beberapa server, kita harus
melog-in username dan password sebanyak layanan yang kita minta dan
tentunya di setiap layanan kita harus memasukkan username dan password
yang berbeda-beda, tentu hal ini kurang efisien. Namun apabila
memasukkan username dan pasword yang sama dalam setiap log-in ke
dalam suatu layanan, hal ini juga menyebabkan sistem menjadi tidak aman.

Jika suatu saat password mampu diketahui oleh pihak yang tidak berhak,
maka semua account yang dimiliki oleh user akan bocor. Seorang attacker
yang telah berhasil mendapatkan password dari user akan dapat masuk ke
dalam account user (dalam istilahnya yaitu man in the middle attack), hal ini
dikarenakan tak ada jaminan autentikasi. Berbeda dengan jika kita
menggunakan protokol kerberos, kita hanya cukup sekali memasukkan
password. Dan untuk masuk ke dalam suatu layanan, maka kita cukup
meminta ticket kepada pihak ketiga terpercaya (Trusted Third Party).
Dalam hal ini, Kerberos menggunakan KDC sebagai pihak ketiga
terpercaya. KDC ini didalamnya terdapat Authentication Server dan Ticket
Granting Service. KDC ini bertugas mengatur pendistribusian session key
kepada user/client dan server sekaligus untuk mengautentikasi server dan
client tersebut.
IV. Software Kerberos
Biasanya software yang digunakan autentikasi Kerberos adalah AFS,
Apache 1 (dengan mod_auth_kerb module), Apache 2 (menggunakan
libapache-mod-auth-kerb), Cisco routers dan switches running IOS, Code File
System, Eudora, Mac OS X, Microsoft Windows (2000 dan seterusnya)
protocol autentikasi asli dari Mulberry, sebuah client e-mail yang
dikembangkan oleh Cyrusoft., NFS (sejak NFSv3), OpenSSH (with Kerberos v5

or higher), PAM (dengan pam_krb5 module), Samba v3.x, SOCKS (since
SOCKS5), Netatalk, GSS, API, The X Window System implementations dan
beberapa software yang mengijinkan penggunanaan SASL untuk autentikasi,
seperti Dovecot IMAP4 dan server POP3, Postfix mail server. The Kerberos
software juga cocok dengan kerberos-enabled clients and servers pada rsh,

FTP, dan Telnet. Beberapa software berbasis Java yang menggunakan
JAAS/JGSS dapat memakai Kerberos untuk keamanan.
V. Hardware Kerberos
Kerberos memerlukan sedikit alokasi memori pada aplikasi hardware.
Berdasarkan penelitian sebelumnya, Versi 5 saja dapat diimplementasikan
pada mikroprosesor intel Pentium dan 2 hardware RAID 1 drive. Mesin
tersebut dapat mengakomodir seratus ribu autentikasi per hari namun perlu
menghindari penggunaan Kerberos yang bergabung-gabung. Perlu dicatat
bahwa aplikasi Kerberos ini harus diaplikasikan ke mesin yang telah
dikhususkan penggunaannya artinya bahwa mesin tersebut hanya bisa di log
in atau dijalankan oleh admin Kerberos dan juga tidak ada aplikasi lain yang
dijalankan di mesin tersebut. Password dari user juga terdapat di mesin
tersebut sehingga akses ke mesin tersebut sebisa mungkin harus dibatasi .
Secara teknis hal itu dapat dilakukan dengan mengadakan pengamanan fisik

yang sudah kita ketahui misalnya menyimpan server dalam suatu cabinet
kemudian mengkuncinya ataupun penerapan system kripto misalnya double
enkripsi dalam membuka cabinet tersebut Pada penerapan hardware
terdapat 2 mesin yaitu Master dan Slave KDC yang akan dijelaskan
aplikasinya saja pada jaringan.
VI. Operasi Kerberos secara umum.
Secara detailnya maka protokol Kerberos ini secara umum dapat
dijelaskan sebagai berikut :
User
memasukkan
username
dan
password
client.
Client
membangkitkankan fungsi one-way hash dalam setiap enter password,
menjadi secret key client. Client mengirim plain message kepada AS untuk
meminta pelayanan. Contoh Message: “User AAA akan meminta request
services”. Secret key dan password dikirim ke AS.
AS_request= ( Principalclient, Principalservice, IP_list, Lifetime )

AS memeriksa apakah nama client berada pada database. Jika ada
maka AS mengirim balasan ke klien tersebut..Balasan tersebut berupa;
Message A: session key client/TGS yang dienkripsi dengan secret key user.
Message B: Ticket-Granting Ticket (termasuk client ID, client network
address, ticket validity period, dan session key client/TGS) yang dienkripsi
menggunakan secret key TGS.
TGT = ( Principalclient , krbtgt/REALM@REALM , IP_list , Timestamp ,
Lifetime , SKTGS )
AS_reply={PrincipalService,Timestamp, Lifetime, SKTGS} K User{TGT}KTGS
Client menerima messages A dan B, dan mendecrypt message A untuk
mendapatkan session key client/TGS. Session key digunakan untuk

berkomunikasi dengan TGS. (Client tidak dapat mendecrypt Message B yang
diencrypt menggunakan secret key. TGS). Client mempunyai cukup informasi
untuk mengautentikasi dirinya sendiri ke TGS. Kmeudian user mengirim dua
message ke TGS;
Message C: terdiri dari Ticket-Granting Ticket dari message B dan ID pada
saat requesting service.
Message D: Authenticator (terdiri dari client ID dan timestamp), diencrypt
menggunakan session key client/TGS.

TGS_request=(Principalservice, Lifetime, Authenticator) {TGT}KTGS
Setelah menerima messages C and D, TGS mendecrypt message D
(Authenticator) menggunakan session key client/TGS dan mengirim dua
message kepada client:
Message E: Client-to-server ticket (termasuk client ID, client network
address, validity period dan session key client/server) yang diencrypt
menggunakan secret key server.
TService= ( PrincipalClient, Principalservice,IP_list ,Timestamp , Lifetime , SK
)Service
Message E: session key client/server yang dienkripsi menggunakan session
key TGS.
TGS_reply={PrincipalService,Timestamp,Lifetime,SKService}SKTGS{TService}
KService
Setelah menerima messages E dan F dari TGS, client menghubungi
service server dan mengirim dua messages:
Message F dari step sebelumnya (ticket client ke server, yang dienkripsi
menggunakan secret key layanan).
Message G: Authenticator, termasuk client ID, timestamp dan yang dienkripsi
menggunakan session key client/server.
Authenticator = { PrincipalClient , Timestamp }SKServic

Service server mendecrypt ticket menggunakan secret key layanan
dan mengirim pesan ke client untuk mengkonfirmasikan kebenaran identitas
client:
Message H: timestamp menemukan Authenticator client yang sebelumya
telah didapat plus 1, dienkripsi menggunakan session key client/server.
AP_REQ = Authenticator { TService }KService
Client mendecrypt konfirmasi tersebut menggunakan session key
client/server dan mengecek apakah timestamp masih update.Jika benar
maka client dapat memulai menggunakan layanan yang diinginkan ke server.
Akhirnya server menyediakan layanan yang diminta oleh client.
VI. Aplikasi
Aplikasi kerberos :

Salah satu metode pengamanan TCP/IP. Kerberos ini merupakan metode
pengamanan TCP/IP berbasis server-based password authentication. Pada
sistem kerberos server, service yang disediakan oleh server dibatasi oleh
suatu daftar host serta daftar user yang boleh dan tidah boleh
menggunakan layanan .
Kerberos ini dapat diaplikasikan pada autentikasi Apache web server.
Sebagai protokol otentikasi jaringan. Kerberos sering digunakan untuk

mengautentikasi beberapa layanan jaringan. Berikut ini merupakan
beberapa contoh implementasi service jaringan yang umumnya
memerlukan autentikasi, antara lain penggunaan printer pada sebuah
jaringan yang hanya diperbolehkan bagi anggota kelompok saja, remote
file access, remote login (rlogin), window system, mail dimana pemilik email address saja yang dapat mengambil e-mail di POP3, dan service
management.
3. HASIL
Maka setelah kita mengerti bagaimana pengoperasian pada kerberos,
kitapun dapat mengetahui kelebihan maupun kekurangan protokol Kerberos.
Kelebihan Kerberos :
Salah satu ketidaknyamanan yang dialami oleh user adalah password yang
harus kita masukkan setiap kita mengakses layanan. Hal tersebut tersebut
lumayan menyulitkan karena jika kita mempunyai banyak akun, maka kita
harus memasukkan password satu per satu untuk setiap akun yang berbeda.
Namun seringkali karena malas untuk menghafal password atau takut lupa,
maka satu-satunya jalan pintas adalah membuat password yang sama untuk
semua akun. Tentu saja hal itu semakin membuat akun kita semakin rawan,
jika password kita telah diketahui pihak yang tak berhak maka terbongkarlah
semua akun yang kita miliki. Untuk itu Kerberos menawarkan satu
kenyamanan pada user, hanya dengan memasukkan password sekali dan
meminta ticket (TGT) pada TGS, maka kita bisa meminta layanan pada
banyak akun yang kita inginkan. Selain itu, ticket tersebut berlaku dalam
periode waktu yang pendek sampai masa expirednya.
– Untuk masing–masing aplikasi yang membutuhkan pelayanan Kerberos
maka Kerberos sangat reliable, simple dan mudah digunakan.
– Tingkat keamanannya tinggi. Password tidak dikirimkan melintasi jaringan.
– Kerberos bersifat transparent. User tidak perlu mengetahui tahap-tahap
otentikasi yang dilakukan di dalam jaringan. User hanya tinggal login ke
jaringan
melalui
program
inisialisasi
kinit,
memasukkan username dan password,
lalu user memperoleh
otentikasi
ke server yang dituju.
– Penggunaan sesssion key yang dapat meningkatkan keamanan komunikasi.
– Implementasi di software maupun hardwarenya sederhana, artinya untuk
aplikasi Kerberos kita tidak perlu mesin/komputer/microprocessor yang

spesifikasinya tinggi dan biayanya mahal. Telah diuji coba sebelumnya
menggunakan uniprocessor intel Pentium3 dengan dua buah raid dan satu
drive.
– Cukup mudah dalam proses penginstalasian, artinya tidak perlu memiliki
kemampuan programming untuk menginstal karena sudah ada softwarenya.
– Kerberos menyediakan layanan SSH yang dapat mengelola server jarak
jauh.
Kelemahan Kerberos
Berikut ini adalah beberapa kekurangan Kerberos yaitu :
– Pada protokol kerberos ini belum ditemukan adanya key management yang
baik sedangkan pada protokol ini menggunakan banyak sekali kunci yang
hirarkinya serta perlakuannya harus dibedakan. Padahal letak keamanan
suatu algoritma ataupun protokol terletak pada management kuncinya.
– Walaupun mekanisme enkripsinya tergolong kuat, namun masih terdapat
kemungkinan terjadi serangan berupa password guessing.
– Kerberos bukanlah model pengamanan yang sempurna sehingga perlu
diintegrasikan dengan model pengamanan lain yang dapat mengatasi
beberapa kelemahan yang terutama disebabkan karena kelalaian user. Hal
ini juga dikarenakan authorisasi bukanlah spesifikasi dari Kerberos.
– Untuk menjamin bahwa sistem Kerberos aman, maka penggunaan
password untuk Kerberos tidak digunakan pada sistem yang lain.

Kerberos
menggunakan time-stamp untuk
pengecekan
bahwa
suatu authenticator yang dikirimkan masih baru sehingga memerlukan
sinkronisasi waktu seluruh jaringan.
– Program sinkronisasi waktu yang digunakan (ntpd) yang memerlukan
otentikasi untuk menghindari terjadinya lubang keamanan yang biasanya
berbentuk replay attack.
– Aplikasi yang menggunakan Kerberos harus menambahkan suatu modul
atau plugin agar dapat menggunakan Kerberos.
– Apabila seorang attacker mencuri seluruh tiket yang disimpan dalam
credential, maka ia dapat menyalahgunakan tiket tersebut hingga batas
kadaluarsanya.
– Password yang jatuh ke pihak yang tidak berwenang dapat disalahgunakan
dan berbahaya jika penyusup dapat meyakinkan rlogin bahwa dia adalah
pemakai yang berhak.
– Pengaturan password yang terlalu rumit karena mengharuskan untuk selalu
memasukan password pada saat ingin memperoleh layanan baru.
– Setiap principal dalam jumlah yang besar harus melakukan autentikasi
langsung ke KDC, sehingga menyebabkan efek bottleneck. Oleh karena itu
dilakukan pengaturan flag supaya autentikasi tertentu dapat dilakukan
hanya sampai realm tanpa harus ke KDC.

4. Kesimpulan
Kebutuhan akan sharing informasi saat ini sangatlah penting, hanya saja
banyak hal yang masih harus kita perhatikan mengenai aspek-aspek
kriptografinya, diantaranya yaitu autentikasi. Autentikasi merupakan suatu
hal yang sangat penting dalam pengamanan sistem informasi untuk
mengetahui identitas user yang menginginkan layanan. Padahal autentikasi
konvensional sudah tidak relevan lagi karena jaringan selalu diawasi oleh
pihak penyadap password. Kita memerlukan protokol yang mampu
memberikan solusi terhadap masalah ini. Dalam hal ini, sistem autentikasi
Kerberos mampu mengatasi serangan-serangan keamanan jaringan.Protokol
ini telah mampu memenuhi aspek-aspek keamanan serta implementasi di
hardware dan softwarenya mudah. Kerberos melakukan autentikasi dengan
melakukan share kunci privat antara client / server, dimana privat key dibuat
oleh TTP.
Dengan demikian, para pengguna aplikasi internet dan jaringan
komunikasi bisa mempertimbangkan protokol Kerberos sebagai salah satu
alternative untuk menjamin autentikasi data berdasarkan kelebihankelebihan yang telah ada ataupun bahkan mampu memperbaiki segala
kekurangan-kekurangannya. Diantaranya solusi yang harus dicapai yaitu
perlunya kajian ulang tentang sistem kripto yang digunakan pada kerberos.
Kajian ulang tersebut adalah tentang performancenya serta efisiensi
hardware, dalam hal ini jumlah server yang kita butuhkan karena hal
tersebut erat kaitanya dengan pengamanan fisiknya.
Daftar Pustaka
[1]. Schneier, Bruce, Aplied Cryptography 2nd, John Willey & Sons, 1996.
[2]. Menezes, Alfred J, Handbook of Applied Cryptography, CRC Press, 1996.
[3]. Stalling, William, Internet and Network Security,1996
[4]. Munir, Rinaldi,, Kriptografi, Informatika, 2006.
[5]. B.C Neuman, T.Ts’o. Kerberos: An Authentication Service for Computer
Networks. IEEE Communications, 1994