Microsoft NTLM

Windows Challenge/Response (NTLM) adalah protokol autentikasi yang digunakan pada jaringan yang mencakup sistem yang menjalankan sistem operasi Windows dan pada sistem yang berdiri sendiri.

Paket keamanan Microsoft Kerberos menambahkan keamanan yang lebih besar daripada NTLM ke sistem di jaringan. Meskipun Microsoft Kerberos adalah protokol pilihan, NTLM masih didukung. NTLM juga harus digunakan untuk autentikasi masuk pada sistem yang berdiri sendiri. Untuk informasi selengkapnya tentang Kerberos, lihat Microsoft Kerberos.

Kredensial NTLM didasarkan pada data yang diperoleh selama proses masuk interaktif dan terdiri dari nama domain, nama pengguna, dan hash satu arah kata sandi pengguna. NTLM menggunakan protokol tantangan/respons terenkripsi untuk mengautentikasi pengguna tanpa mengirim kata sandi pengguna melalui kawat. Sebaliknya, sistem yang meminta autentikasi harus melakukan perhitungan yang membuktikan bahwa sistem memiliki akses ke kredensial NTLM yang aman.

Autentikasi NTLM interaktif melalui jaringan biasanya melibatkan dua sistem: sistem klien, di mana pengguna meminta autentikasi, dan pengontrol domain, di mana informasi yang terkait dengan kata sandi pengguna disimpan. Autentikasi noninteraktif, yang mungkin diperlukan untuk mengizinkan pengguna yang sudah masuk untuk mengakses sumber daya seperti aplikasi server, biasanya melibatkan tiga sistem: klien, server, dan pengontrol domain yang melakukan perhitungan autentikasi atas nama server.

Langkah-langkah berikut menyajikan kerangka autentikasi noninteraktif NTLM. Langkah pertama menyediakan info masuk NTLM pengguna dan hanya terjadi sebagai bagian dari proses autentikasi interaktif (masuk).

  1. (Hanya autentikasi interaktif) Pengguna mengakses komputer klien dan menyediakan nama domain, nama pengguna, dan kata sandi. Klien menghitung hash kriptografi kata sandi dan membuang kata sandi yang sebenarnya.

  2. Klien mengirim nama pengguna ke server (dalam teks biasa).

  3. Server menghasilkan angka acak 8-byte, yang disebut tantangan atau nonce, dan mengirimkannya ke klien.

  4. Klien mengenkripsi tantangan ini dengan hash kata sandi pengguna dan mengembalikan hasilnya ke server. Ini disebut respons.

  5. Server mengirimkan tiga item berikut ke pengendali domain:

    • Nama pengguna
    • Tantangan yang dikirim ke klien
    • Respons yang diterima dari klien
  6. Pengendali domain menggunakan nama pengguna untuk mengambil hash kata sandi pengguna dari database Manajer Akun Keamanan. Ini menggunakan hash kata sandi ini untuk mengenkripsi tantangan.

  7. Pengendali domain membandingkan tantangan terenkripsi yang dihitungnya (pada langkah 6) dengan respons yang dihitung oleh klien (di langkah 4). Jika identik, autentikasi berhasil.

Aplikasi Anda tidak boleh mengakses paket keamanan NTLM secara langsung; sebaliknya, ia harus menggunakan paket keamanan Negosiasi . Negosiasi memungkinkan aplikasi Anda untuk memanfaatkan protokol keamanan yang lebih canggih jika didukung oleh sistem yang terlibat dalam autentikasi. Saat ini, paket Negosiasi keamanan memilih antara Kerberos dan NTLM. Negosiasi memilih Kerberos kecuali tidak dapat digunakan oleh salah satu sistem yang terlibat dalam autentikasi.