NTLM (ראשי תיבות של New Technology LAN Manager) הוא פרוטוקול אימות. בעבר היה הפרוטוקול ברירת מחדל לשימוש במערכות ההפעלה Windows הישנות. פרוטוקול זה מספק אימות, שלמות המידע וסודיותו. NTLM עדיין נמצא בשימוש כיום, במקרים שהשימוש בפרוטוקול Kerberos כשל (אך ניתן לבטל את האפשרות הזאת).
ברשתות מחשבים מבוססות Microsoft Windows, NTLM (NT LAN Manager) הוא פרוטוקול אימות מסוג "אתגר-מענה". כאשר משתמש בדומיין מסוים מבצע תהליך אימות למכונת דומיין מרוחקת בשימוש בפרוטוקול NTLM, השרת שולח למשתמש "אתגר" באמצעות בקשת NTLM_CHALLENGE. המשתמש צריך להצפין את האתגר באמצעות hash קריפטוגרפי של סיסמתו (שנקרא NT hash), ולשלוח אותו אל השרת באמצעות הודעת NTLM_AUTHENTICATE. מכיוון שהשרת לא מאחסן בתוכו את סיסמאות המשתמשים, הוא צריך לאמת את שם המשתמש והסיסמה באמצעות Domain Controller. פעולה זאת נעשית באמצעות שליחת בקשת NETLOGON אל ה-Domain Controller באמצעות ערוץ מאובטח. הודעה זאת כוללת חלקים של בקשת ה-NTLM_AUTHENTICATE שנשלחה את השרת. ה-Domain Controller מאמת את האתגר והמענה של ה-NTLM, ושולח הודעה שמראה האם ניסיון האימות הצליח או נכשל.
בנוסף, ה-Domain Controller מצרף מפתח Session שבו התקשורת תוצפן/תיחתם, אם יש צורך בהצפנת/חתימת ה-Session. מכיוון שמפתח ה-Session מחושב על בסיס הסיסמה של החשבון המאומת, הלקוח מחשב אותה באופן עצמאי. על מנת למנוע מחשבונות לקבל מפתחות Session שאינם מיועדים אליהם, יש לבצע תהליכי אימות על ה-Domain Controllers.[1]
ב-NTLM הסיסמה לא עוברת ברשת, היא נשמרת מקומית כ-HASH. הפרוטוקול מחליף את LM (LANMANAGER). פונקציית הגיבוב שמשתמשים בה בדרך כלל נקראת NTHASH. ב-NTLMV2 יש "המלחה" (Nonce - הוספת מספר תווים רנדומלי לפני/אחרי/באמצע הקלט שקיבלת) של ה-HASH של הסיסמה על מנת שיהיה יותר קשה לפענח את ההצפנה. אך גם NTLM בגרסה השנייה יחסית פריצה.
פרוטוקול זה פועל בשיטת Response-Challenge (אתגר-מענה), להלן התהליך:
ברגע שמציפים את השרת בבקשות - השרת עלול לחזור על אותו "אתגר" וכך ניתן לעקוב אחרי הפקטות (באמצעות הסנפה) ולשלוח את ה"תגובה" הנכונה (וכך להתחבר ל-Domain כמשתמש לגיטימי).
אם תוקף יאזין הרבה זמן הוא ימצא שהשרת יכול לשלוח בטעות את אותו "אתגר" פעמיים וכך התוקף יכול לעלות על התגובה.
להתגברות על הנושא פותחה שיטת EPA.