Kerberos : Pengertian,Cara Kerja Dan Tingkat Keamanannya
Di artikel kali ini kita akan membahas mengenai apa itu Kerberos?Mulai dari pengertiannya,cara kerja hingga seberapa besar tingkat keamanan dalam penggunaannya.Mari kita mulai dengan pembahasan apa itu Kerberos ?
Pengertian Kerberos
Merupakan suatu protokol keamanan jaringan komputer yang mengautentikasi permintaan layanan antara 2 host terpercaya atau lebih di jaringan yang tidak tepercaya,seperti internet.Protokol ini menggunakan kriptografi kunci rahasia dan pihak ketiga terpercaya untuk mengautentikasi aplikasi server klien dan memverifikasi identitas pengguna.
Kerberos memiliki 3 subprotokol ketika proses dijalankan,yakni :
- Authentication Service (AS) Exchange : digunakan Key Distribution Center (KDC) untuk menyediakan Ticket-Granting Ticket (TGT) kepada klien dan membuat kunci sesi logon.
- Ticket-Granting Service (TGS) Exchange : digunakan KDC untuk mendistribusikan kunci sesi layanan dan tiket yang diasosiasikan dengannya.
- Client/Server (CS) Exchange : digunakan klien untuk mengirimkan sebuah tiket sebagai pendaftaran kepada sebuah layanan.
Perkembangan Kerberos
Pertama kali dikembangkan pada tahun 1980-an oleh Massachusetts Institute of Technology (MIT) untuk Project Athena.Protokol ini dinamai Kerberos,karena memang Kerberos (Cerberus) merupakan seekor anjing berkepala tiga (protokol Kerberos memiliki tiga subprotokol) dalam mitologi Yunani yang menjadi penjaga Tartarus.
Microsoft meluncurkan versi Kerberosnya pada Windows tahun 2000 dan itu menjadi protokol standar untuk situs web dan diimplementasikan single sign on di berbagai platform.Konsorsium Kerberos mempertahankan Kerberos sebagai proyek bersifat open-source.Lambang Kerberos berbentuk tiga kepala anjing dengan ketiga kepala Kerberos tersebut mewakili klien, server, dan Pusat Distribusi Kunci (KDC). Simbol yang terakhir berfungsi sebagai layanan otentikasi pihak ketiga tepercaya.
Pengguna, mesin dan layanan yang menggunakan Kerberos bergantung pada KDC saja,yang berfungsi sebagai satu proses yang menyediakan 2 fungsi : otentikasi dan pemberian tiket.KDC ‘tiket’ menawarkan otentikasi kepada semua pihak,memungkinkan node untuk memverifikasi identitas mereka dengan aman.Proses otentikasi Kerberos menggunakan kriptografi rahasia bersama konvensional untuk mencegah paket yang berjalan di seluruh jaringan dibaca atau diubah,serta melindungi pesan agar tidak didengarkan dan mencegah reply serangan.
Istilah Yang Sering Muncul Pada Kerberos
Agar memahami Kerberos,kalian harus mengetahui istilah-istilah yang sering muncul berkaitan dengan Kerberos,yakni :
- Protokol : Serangkaian langkah melibatkan 2 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 : Server khusus berupa KDC yang di dalamnya terdapat Kerberos Authentication Server (AS) dan Ticket Granting Server (TGS).
- Ticket : Sarana autentikasi antara user dengan server sekaligus penunjuk identitas sementara yang dapat digunakan berkali-kali 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 tiket dan authenticator yang dimiliki oleh user.
Komponen Pada Kerberos
Kalian harus mengetahui komponen-komponen yang ada pada Kerberos,setidaknya ada 8 komponen yang berjalan pada kerberos diantaranya sebagai berikut :
- Aplication library :Library yang menjadi penghubung antara client dengan server.
- Encryption library : Library untuk melakukan fungsi enkripsi.
- 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 database,seperti mengatur update database.
- User program : Program di tempat user yang mengatur login dan pemasukan password dan berfungsi untuk pengaturan tiket.
Pengaplikasian Kerberos
Kerberos ditemukan di mana-mana di dunia digital,namun protokol tersebut digunakan untuk keamanan sistem yang tergantung pada fitur audit dan otentikasi yang handal.Kerberos digunakan dalam otentikasi Posix,Active Directory,NFS dan Samba.Protokol ini juga merupakan sistem otentikasi alternatif untuk SSH,POP dan SMTP.
Flow Protokol Kerberos
Mari lihat lebih rinci apa otentikasi Kerberos dan bagaimana cara kerjanya dengan menjabarkannya menjadi komponen intinya.
Berikut entitas utama yang terlibat dalam alur kerja Kerberos yaitu :
- Client : Klien bertindak atas nama pengguna dan memulai komunikasi untuk permintaan layanan.
- Server : Server meng-host layanan yang ingin diakses pengguna.
- Authentication Server (AS) : AS melakukan otentikasi klien yang diinginkan.Jika otentikasi berhasil terjadi, AS mengeluarkan tiket kepada klien yang disebut TGT (Ticket Granting Ticket). Tiket ini menjamin server lain bahwa klien diautentikasi.
- Key Distribution Center (KDC) : Di environmen Kerberos, server autentikasi secara logis dipisahkan menjadi 3 bagian: Database (db), Authentication Server (AS), dan Ticket Granting Server (TGS).Ketiga bagian ini,berada dalam satu server yang disebut Key Distribution Center.
- Ticket Granting Server (TGS) : TGS adalah server aplikasi yang mengeluarkan tiket layanan sebagai layanan.
Sekarang mari pecah flow protokol Kerberos.
Ada 3 kunci rahasia penting yang terlibat dalam flow Kerberos.Ada kunci rahasia unik untuk klien/pengguna,TGS, dan server yang dibagikan dengan AS :
- Client/user : Hash berasal dari kata sandi pengguna.
- TGS secret key : Hash kata sandi yang digunakan dalam menentukan TGS.
- Server secret key : Hash kata sandi yang digunakan untuk menentukan server yang menyediakan layanan.
Flow protokol Kerberos terdiri dari langkah-langkah berikut :
- Permintaan awal otentikasi klien : Pengguna meminta Ticket Granting Ticket (TGT) dari Authentication Server (AS). Permintaan ini mencakup ID klien.
- KDC memverifikasi kredensial klien : AS memeriksa database untuk ketersediaan klien dan TGS.Jika AS menemukan kedua nilai tersebut, maka akan menghasilkan kunci rahasia klien/pengguna,menggunakan hash kata sandi pengguna.
AS kemudian menghitung kunci rahasia TGS dan membuat session key (SK1) yang dienkripsi oleh kunci rahasia klien/pengguna.AS kemudian menghasilkan TGT yang berisi ID klien,alamat jaringan klien,timestamp,lifetime dan SK1.Kunci rahasia TGS kemudian mengenkripsi tiket.
- Klien mendekripsi pesan : Klien menggunakan kunci rahasia klien/pengguna untuk mendekripsi pesan dan mengekstrak SK1 dan TGT serta menghasilkan otentikator yang memvalidasi TGS klien.
- Klien menggunakan TGT untuk meminta akses : Klien meminta tiket dari server yang menawarkan layanan dengan mengirim TGT yang telah diekstrak dan authenticator yang telah dibuat ke TGS.
- KDC membuat tiket untuk server file : TGS kemudian menggunakan kunci rahasia TGS untuk mendekripsi TGT yang diterima dari klien dan mengekstrak SK1. TGS mendekripsi otentikator dan memeriksa untuk melihat apakah itu cocok dengan ID klien dan alamat jaringan klien. TGS juga menggunakan timestamp yang diekstrak untuk memastikan waktu TGT belum kadaluwarsa.
Jika proses berhasil melakukan semua pemeriksaan,maka KDC menghasilkan layanan session key (SK2) yang dibagikan antara klien dan server target.Terakhir, KDC membuat tiket layanan yang mencakup id klien,alamat jaringan klien,timestamp dan SK2.Tiket ini kemudian dienkripsi dengan kunci rahasia server yang diperoleh dari db.Klien menerima pesan yang berisi tiket layanan dan SK2, semuanya dienkripsi dengan SK1.
- Klien menggunakan tiket file untuk mengautentikasi : Klien mendekripsi pesan menggunakan SK1 dan mengekstrak SK2. Proses ini menghasilkan otentikator baru yang berisi alamat jaringan klien, ID klien, dan timestamp, kemudian dienkripsi dengan SK2, dan mengirimkannya dan tiket layanan ke server target.
- Server target menerima dekripsi dan otentikasi : Server target menggunakan kunci rahasia server untuk mendekripsi tiket layanan dan mengekstrak SK2. Server menggunakan SK2 untuk mendekripsi otentikator, melakukan pemeriksaan untuk memastikan ID klien dan alamat jaringan klien dari otentikator dan pencocokan tiket layanan. Server juga memeriksa tiket layanan untuk melihat apakah waktunya sudah kadaluwarsa.
Setelah pemeriksaan terpenuhi,server target mengirim pesan kepada klien yang memverifikasi bahwa klien dan server telah mengautentikasi satu sama lain.Sehingga pengguna sekarang berada dalam sesi aman.
Amankah Kerberos ?
Karena protokol Kerberos sudah ada begitu lama,peretas pun sudah memiliki kesempatan selama beberapa waktu untuk menemukan cara menembus keamanan sistem,biasanya dengan memalsukan tiket,melakukan upaya berulang untuk menebak kata sandi (berisi brute force / kredensial) dan menggunakan malware untuk menurunkan enkripsi.Meski begitu,Keberos masih menjadi protokol akses keamanan terbaik yang tersedia saat ini.Protokol ini cukup fleksibel dengan menggunakan algoritma enkripsi yang lebih kuat untuk membantu mencegah ancaman yang baru.
sekian artikel kali semoga bisa bermanfaat untuk kalian semuanya 🙂