NTLM Protocol چیست

یک پروتکل احراز هویت Single sign-on (ورود تک مرحله ای) است که توسط ماکروسافت ایجاد شده است. در نوشتار به صورت خلاصه به ساختار و نحوه عملکرد این پروتکل اشاره خواهد شد اما جزییات این پروتکل را می توانید در این ادرس ها مطالعه کنید.

احراز هویت تک مرحله ای چیست؟

در این روش معمولاً با طرح یک سوال که پاسخی از پیش معین دارد به هویت کاربر پی می بریم.

برای مثال پرسش یک نام کاربری( پرسش) و رمز عبور(پاسخ) - که روش معمولی در احراز هویت هاست - یک نمونه از این نوع احراز هویت است.

عیب احراز هویت تک مرحله ای چیست؟

مهمترین مشکل این روش لو رفتن پرسش و پاسخ است ( لو رفتن نام کاربری و رمز عبور) که مهاجم می تواند از طریق شنود شبکه (sniff) یا ترفند مرد میانی (middle-man) یا جعل هویت (phishing ) اقدام به بدست اوردن این اطلاعات کند. طبیعی است برای مقابله با هر یک از این حمله ها باید روش های مختلفی را در بکار برد.

اما مهمترین ایراد این روش ثابت بودن پرسش و پاسخ است.

راه حل چیست؟

باید در هر بار پرسش سوال کاربر پاسخ ها متفاوتی را بدهد و هر پاسخ فقط یکبار قابل استفاده باید ( این روش را با ورود دو مرحله اشتباه نگیریددر این روش کاربر به ابزار دیگه برای دریافت پاسخ پویا دسترسی ندارد)

راه حل ماکروسافت چیست؟

پروتکل NTLM راه کار ماکروسافت برای این مشکل است.

نحوه عملکرد پروتکل چگونه است؟

  1. در این روش سرور پیامی ( که به ان چالش challenge می گویم ) برای کاربر ارسال می کند.
  2. کاربر چالش را با پاسخ خودش حل می کند.( در این جا همین رمز عبور است) پاسخ به سرور ارسال می شود.
  3. سرور خودش صحت پاسخ را بررسی می کند یا پاسخ و چالش را به یک سرور کنترلی (domain control) ارسال می کند.
  4. سرور کنترلی در صورت احراز درست بودن پاسخ با بله خیر به سرور پاسخ می دهد سرور اجازه (یا منع) دسترسی به منابع را به کاربر می دهد.

به این نمودار توجه کنید:

NTLM2 Session
  Client<-Server:  SC
  Client->Server:  H(P,H'(SC,CC)), CC
  Server->DomCntl: H(P,H'(SC,CC)), H'(SC,CC)
  Server<-DomCntl: yes or no

آسیب پذیری این پروتکل چیست؟

برای توضیحات کامل درباره این موضوع به لینک زیر مراجعه کنید.

https://en.wikipedia.org/wiki/Pass_the_hash