In a Windows network, NT (New Technology) LAN Manager (NTLM) is a suite of Microsoft security protocols intended to provide authentication, integrity, and confidentiality to users.
NTLM passwords are considered weak because they can be brute-forced very easily with modern hardware.
It is intended as a cryptographically strengthened replacement for NTLMv1, enhancing NTLM security by hardening the protocol against many spoofing attacks and adding the ability for a server to authenticate to the client.
This is a strengthened form of NTLMv1 which maintains the ability to use existing Domain Controller infrastructure yet avoids a dictionary attack by a rogue server.
[18] However, existing NTLMv1 infrastructure allows that the challenge/response pair is not verified by the server, but sent to a Domain Controller for verification.
[citation needed] A major reason is to maintain compatibility with older systems.
Microsoft has added the NTLM hash to its implementation of the Kerberos protocol to improve interoperability (in particular, the RC4-HMAC encryption type).
According to an independent researcher, this design decision allows Domain Controllers to be tricked into issuing an attacker with a Kerberos ticket if the NTLM hash is known.
[20] Microsoft adopted Kerberos as the preferred authentication protocol for Windows 2000 and subsequent Active Directory domains.
Microsoft recommends developers neither to use Kerberos nor the NTLM Security Support Provider (SSP) directly.
Negotiate allows your application to take advantage of more advanced security protocols if they are supported by the systems involved in the authentication.
Any computer acting as server and authenticating a user fulfills the role of DC in this context, for example a Windows computer with a local account such as Administrator when that account is used during a network logon.
Prior to Windows NT 4.0 Service Pack 4, the SSP would negotiate NTLMv1 and fall back to LM if the other machine did not support it.
Starting with Windows NT 4.0 Service Pack 4, the SSP would negotiate NTLMv2 Session whenever both client and server would support it.
This means that LM authentication no longer works if the computer running Windows Vista acts as the server.
[27] In February 2010, Amplia Security discovered several flaws in the Windows implementation of the NTLM authentication mechanism which broke the security of the protocol allowing attackers to gain read/write access to files and remote code execution.
One of the attacks presented included the ability to predict pseudo-random numbers and challenges/responses generated by the protocol.
The security advisory explaining these issues included fully working proof-of-concept exploits.
FreeBSD also supports storing passwords via Crypt (C) in the insecure NT-Hash form.