TDCTF Academy Logo TDCTF ACADEMY

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:

  1. Klien meminta Ticket Granting Ticket (TGT) ke Authentication Server (AS).
  2. TGT digunakan untuk mendapatkan service ticket dari Ticket Granting Server (TGS).
  3. 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 fail2ban atau pam_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.

PADA HALAMAN INI