Autentikasi AD menggunakan dua protokol utama: Kerberos dan NTLM
NTLM
Proses sertifikasi adalah sebagai berikut:
- Klien menghasilkan hash NTLM secara lokal, dan nilainya adalah nilai hash kata sandi pengguna.
- Klien mengirimkan nama pengguna ke server aplikasi.
- Server aplikasi menghasilkan nilai acak untuk klien, yang biasanya disebut nonce atau tantangan.
- klien mengenkripsi nonce dengan hash NTLM dan mengirimkannya ke server aplikasi.
- Setelah menerimanya, server aplikasi mengirimkannya ke server AD bersama dengan nama pengguna dan nonce.
- AD menghasilkan hash NTLM berdasarkan kata sandi pengguna, mengenkripsi nonce, lalu membandingkan pesan klien.
- Jika nilainya sama, autentikasi berlalu, dan jika berbeda, autentikasi gagal.
Kerberos
Istilah kunci:
- KDC: Pusat Distribusi Kunci, yang menyediakan dua layanan: Layanan Otentikasi (AS) dan Layanan Pemberian Tiket (TGS). Domain menghasilkan akun domain yang disebut krbtgt untuk KDC, dan TGT menggunakan kata sandi untuk enkripsi dan dekripsi. Saat pengguna domain mengakses untuk pertama kalinya, mereka ingin AS mengautentikasi, dan setelah lulus, AS meminta TGS untuk memberikan tiket (TGT) kepada pengguna domain.
- SPN:Nama Prinsipal Layanan。 Selain akun pengguna, akun AD juga memiliki akun layanan. Aplikasi ini juga akan memiliki akun layanan yang terkait dengannya, yang akan memfasilitasi aplikasi untuk mengakses sumber daya server, seperti pertukaran, SQL, IIS, dll. SPN adalah layanan yang digunakan untuk mengaitkan layanan, yang diaktifkan oleh aplikasi, dengan akun layanan di AD.
Proses Sertifikasi:
1. Saat pengguna domain masuk, permintaan AS (AS_REQ) dikirim ke DC, yang berisi stempel waktu terenkripsi yang dienkripsi dengan hash sandi dan nama pengguna pengguna.
2. Setelah menerima permintaan, DC menggunakan hash nama pengguna dan kata sandi pengguna untuk mendekripsinya. DC membalas balasan AS (AS_REP) ke klien, yang mencakup kunci sesi dan TGT (Ticket Granting Ticket). Kunci sesi dienkripsi dengan hash sandi pengguna. TGT berisi keanggotaan grup, domain, stempel waktu, IP klien, dan kunci sesi. TGT juga dienkripsi, dienkripsi dengan kata sandi akun layanan KDC, dan klien tidak dapat mendekripsinya. (TGT berlaku selama 10 jam secara default, dan pembaruan yang terjadi setelah itu tidak mengharuskan pengguna untuk memasukkan kembali kata sandi)
3. Saat pengguna meminta resource di domain, Ticket Granting Service Request (TGS_REQ) dikirim, termasuk nama pengguna, stempel waktu, TGT, dan SPN. Stempel waktu dan nama pengguna dienkripsi dengan kunci sesi.
4. Setelah menerima permintaan, KDC pertama-tama menentukan apakah ada SPN dalam permintaan, kemudian mendekripsi TGT, mengekstrak kunci sesi dan stempel waktu di TGT, dan menggunakan kunci sesi di TGT untuk mendekripsi nama pengguna dan stempel waktu terenkripsi. Lakukan beberapa pemeriksaan:
(1) Stempel waktu yang didekripsi oleh TGT harus valid. (Jika serangan pemutaran ulang terjadi, stempel waktu tidak valid.) )
(2) Apakah nama pengguna dalam TGT konsisten dengan nama pengguna dalam permintaan.
(3) Apakah alamat IP dalam TGT sama dengan alamat IP dalam permintaan.
Pemeriksaan akan membalas Pemberian Tiket ServiceReply(TGS_REP) klien, yang berisi akses resmi SPN, kunci sesi baru yang digunakan untuk akses antara klien dan SPN, dan tiket layanan Tiket Layanan baru (termasuk kunci sesi baru, nama pengguna, dan grup pengguna). Baik SPN yang disahkan maupun kunci sesi yang mengakses SPN dienkripsi dengan kunci sesi di TGT. Tiket layanan dienkripsi dengan kata sandi akun layanan SPN yang sesuai.
1. Setelah proses di atas, pengguna telah memperoleh kunci sesi dan tiket layanan yang terkait dengan layanan aplikasi. Pengguna mengirimkan Permintaan Aplikasi (AP_REQ) ke layanan aplikasi, yang berisi nama pengguna dan stempel waktu, dan dienkripsi dengan kunci sesi.
2. Layanan aplikasi menggunakan hash kata sandi akun layanan untuk mendekripsi tiket layanan dan mengekstrak pengguna, grup pengguna, dan kunci sesi. Dekripsi nama pengguna dan stempel waktu di AP_REQ dengan kunci sesi yang didekripsi. AP_REQ Jika demikian, permintaan diterima, dan layanan aplikasi menetapkan izin berdasarkan informasi grup pengguna dalam tiket layanan, lalu pengguna dapat mengakses layanan yang diminta.
Alamat asli:Login hyperlink terlihat.
|