LM связан с LAN Manager, NT — с Windows NT. LM-хеш использует устаревшую схему с верхним регистром, ограничением длины и двумя независимыми частями. NT-хеш вычисляется как MD4 от пароля в UTF-16LE, сохраняет регистр, но не использует соль и вычисляется быстро. Хеш нельзя путать с ответом challenge-response или версиями NTLM. Для хранения паролей нового приложения нужна современная специализированная схема.
Что означают NT и LM в контексте NTLM и чем отличаются соответствующие хеши?
LM и NT-хеши — производные пароля, а не сам протокол и не сетевой ответ. Чем различаются схемы и почему NT-хеш не подходит новому приложению.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В этом вопросе важно разделить историю названий, производные пароля и сетевой протокол. LM означает LAN Manager, а NT связан с Windows NT. Термин NTLM обычно обозначает семейство механизмов аутентификации, а не один хеш.
LM-хеш формируется устаревшей схемой: она рассчитана максимум на 14 байт пароля в старой однобайтовой кодировке. Регистр переводится в верхний, недостающие позиции дополняются нулями. Две семибайтовые части независимо используются в DES-преобразованиях фиксированной строки. Ограничение длины, потеря регистра и раздельная обработка частей сильно ослабляют защиту. Хранение LM-хешей не следует включать ради неопределённой «совместимости».
NT-хеш вычисляется как MD4(UTF-16LE(password)). Он сохраняет регистр и не имеет ограничения LM на 14 байт, но остаётся быстрым несолёным преобразованием. Отсутствие соли у обеих схем подтверждает Microsoft; формула и кодирование определены в MS-NLMP.
В протокольном обмене используются ответы на challenge, вычисляемые с участием производных пароля. Ответ не тождественен сохранённому хешу. Поэтому нельзя смешивать LM-хеш, NT-хеш, LM/NT responses и версии NTLMv1/NTLMv2. Улучшение протокольного ответа не превращает NT-хеш в современную схему хранения паролей.
Для нового приложения не выбирают NT-хеш: применяют специализированное парольное хеширование с солью и настроенной стоимостью, например Argon2id, согласно OWASP. В Windows защищают учётные данные и планируют отказ от устаревших механизмов с проверкой реальных зависимостей.