|
Structure of NTLM Message |
|
Subject: Structure of NTLM Message
Author: authen
In response to: NTLM Authentication Protocol
Posted on: 06/06/2006 02:17:25 AM
Structure of NTLM Message --------------------------------
NTLM Message ::= <signature><messageType><messageBody>
<signature> ::= 'NTLMSSP' '0x00' (Hex 0x4e 0x54 0x4c 0x4d 0x53 0x53 0x50 0x00)
<messageType> ::= CHOICE {
type 1 [0] long (hexadecimal 0x01 0x00 0x00 0x00)
type 2 [1] long (hexadecimal 0x02 0x00 0x00 0x00)
type 3 [2] long (hexadecimal 0x03 0x00 0x00 0x00)
}
<messageBody> ::= SEQUENCE {
securityBuffer SecurityBuffer,
messageFlag MessageFlag,
dataBlock DataBlock
}
>
> On 06/06/2006 02:13:50 AM authen wrote:
What is NTLM?
NTLM is a challenge-response authentication protocol used in various Microsoft network protocol implementations and supported by the NTLM Security Support Provider ("NTLMSSP"). Originally used for authentication and negotiation of secure DCE/RPC, NTLM is also used throughout Microsoft's systems as an integrated single sign-on mechanism.
NTLM employs a challenge-response mechanism for authentication, in which clients are able to prove their identities without sending a password to the server. It consists of three messages, commonly referred to as Type 1 (negotiation), Type 2 (challenge) and Type 3 (authentication). It basically works like this:
The client first sends a Type 1 message containing a set of flags of features supported or requested (such as encryption key sizes, request for mutual authentication, etc.) to the server.
The server responds with a Type 2 message containing a similar set of flags supported or required by the server (thus enabling an agreement on the authentication parameters between the server and the client) and, more importantly, a random challenge (8 bytes).
Finally, the client uses the challenge obtained from the Type 2 message and the user's credentials to calculate the response. The calculation methods differ based on the NTLM authentication parameters negotiated previously, but in general they apply MD4/MD5 hashing algorithms and DES encryption to compute the response. The client then sends the response to the server in a Type 3 message.
References:
|
|
|
|