Authentication
Pendahuluan
Authentication (otentikasi) adalah proses verifikasi identitas pengguna, sistem, atau entitas lain sebelum diberikan akses ke sumber daya. Ini merupakan lapisan pertahanan pertama dalam keamanan sistem operasi. Tanpa otentikasi yang kuat, seluruh sistem menjadi rentan terhadap penyusupan.
Password-Based Authentication
Shadow Password dan Hashing
Pada sistem Linux/Unix, password disimpan di /etc/shadow
dalam bentuk hash, bukan plaintext. File shadow hanya dapat diakses
oleh root. Algoritma hashing yang umum digunakan:
- MD5 - sudah tidak direkomendasikan karena rentan terhadap collision.
- SHA-256/SHA-512 - masih banyak digunakan di distribusi Linux modern.
- bcrypt, scrypt, Argon2 - algoritma modern dengan cost factor yang dapat diatur untuk memperlambat brute force.
Hash disimpan dengan format: $id$salt$hash, di mana
$id menunjukkan algoritma (6=SHA-512, 2y=bcrypt,
Argon2=argon2).
Key-Based Authentication (SSH)
Otentikasi berbasis kunci publik menggunakan pasangan kunci privat dan publik. SSH key pair jauh lebih aman dibanding password karena:
- Tidak dapat ditebak (brute force).
- Tidak rentan terhadap keylogger di sisi server.
- Mendukung passphrase untuk enkripsi kunci privat di sisi klien.
Kunci publik disimpan di ~/.ssh/authorized_keys di
server.
Kerberos
Kerberos adalah protokol otentikasi berbasis ticket yang dikembangkan MIT. Cara kerja:
- Klien meminta Ticket Granting Ticket (TGT) ke Authentication Server (AS).
- TGT digunakan untuk mendapatkan service ticket dari Ticket Granting Server (TGS).
- Service ticket digunakan untuk mengakses layanan tanpa perlu mengirim ulang password.
Kerberos mencegah password dikirim melalui jaringan dan mendukung mutual authentication. Digunakan secara luas di Active Directory Microsoft dan jaringan enterprise.
LDAP
Lightweight Directory Access Protocol (LDAP) digunakan untuk otentikasi terpusat. Server LDAP menyimpan direktori pengguna dan kredensial. Sistem klien melakukan bind ke server LDAP dengan DN (Distinguished Name) dan password untuk verifikasi. LDAP sering dikombinasikan dengan Kerberos untuk otentikasi yang lebih aman.
PAM (Pluggable Authentication Modules)
PAM adalah framework modular yang memisahkan logika otentikasi dari
aplikasi. Konfigurasi PAM berada di /etc/pam.d/. Setiap
modul PAM memiliki fungsi spesifik:
- pam_unix - otentikasi tradisional dengan shadow password.
- pam_ldap - otentikasi ke server LDAP.
- pam_google_authenticator - TOTP untuk MFA.
- pam_cracklib/pam_pwquality - memvalidasi kekuatan password.
Keuntungan PAM: aplikasi tidak perlu diubah saat metode otentikasi berubah - cukup mengganti modul PAM.
Multi-Factor Authentication (MFA/2FA)
MFA menambahkan lapisan keamanan ekstra dengan mewajibkan lebih dari satu faktor:
- Something you know - password, PIN.
- Something you have - token hardware (YubiKey), TOTP (Google Authenticator), SMS.
- Something you are - biometric (sidik jari, wajah, retina).
Implementasi 2FA di Linux dapat menggunakan Google Authenticator PAM module, YubiKey PAM, atau FreeOTP.
Biometric Authentication
Otentikasi biometrik menggunakan karakteristik fisik unik: sidik jari, pengenalan wajah, iris mata, suara, atau pola pembuluh darah. Pada Linux, fprintd menyediakan dukungan untuk pembaca sidik jari. Pada Windows, Windows Hello mendukung pengenalan wajah dan sidik jari.
Common Attacks
Brute Force Attack
Penyerang mencoba semua kemungkinan kombinasi password. Mitigasi:
- Rate limiting menggunakan
fail2banataupam_tally2. - Account lockout setelah N kali gagal.
- Password policy yang ketat (kompleksitas, panjang minimal).
Pass-the-Hash
Penyerang menangkap hash password (misalnya dari memory LSASS di Windows) dan menggunakannya langsung untuk otentikasi tanpa perlu mengetahui plaintext. Mitigasi:
- Gunakan Kerberos daripada NTLM.
- Aktifkan Credential Guard di Windows.
- Restrict debug privilege pada proses sensitif.
Credential Stuffing
Penyerang menggunakan kombinasi username-password dari kebocoran data di situs lain. Mitigasi:
- Gunakan password unik untuk setiap layanan.
- Aktifkan MFA.
- Monitoring login anomali.
Kesimpulan
Otentikasi adalah fondasi keamanan sistem operasi. Implementasi yang baik menggabungkan password hashing yang kuat, MFA, protokol aman seperti Kerberos, dan mekanisme modular seperti PAM. Tidak ada satu metode yang sempurna - pertahanan berlapis (defense in depth) adalah pendekatan terbaik.