Authentication
Last updated
Last updated
Two types of authentication protocols available in AD:
NTLM
Kerberos
is used to agree on which authentication protocols can/should be used.
GSS-API: Generic Security Service - Application Programming Interface
API that is implemented by security packages to provide authentication.
Some GSS-API:
gss_acquire_cred
: returns a handle for credentials
GSS-API also handles integrity and confidentiality:
gss_get_mic
: Calculates the MIC (message integrity code) for a message
gss_verify_mic
: Checks MIC to verify the message integrity
gss_wrap
: Attach MIC to a message and optionally encrypt the message content.
gss_unwrap
: Verify the MIC and decrypts the message.
Security Support Provider Interface
Microsoft's version of GSS-API with some extensions
Security Support Providers in form of DLLs.
kerberos.dll
Manages kerberos authentication.
Caches kerberos tickets and keys
msv1_0.dll
Manages NTLM authentication.
Caches NTLM hashes.
Can be extracted from lsass process.
secur32.dll
wdigest.dll
Implements the Digest Access Protocol.
Used for HTTPs.
schannel.dll
Provides TLS/SSL for HTTPS communication.
credssp.dll
Creates TLS channel, authenticates the client through Negotiate SSP and allows client to send credentials to the server.
Used by RDP, in NLA(Network Level Authentication) mode, verifies and authenticate before beginning the RDP session.
Simple and Protected (GSS-API) Negotiation.
Mechanism that allows client and server to negotiate authentication mechanism that is GSS-API compliant. (NTLM or Kerberos).
Windows uses microsoft's version of SPNEGO
, called SPNG
.
Implements , so that it can used by applications (clients, servers).
Intermediary SSP than manages negotiation and delegates authentication to NTLM SSP or Kerberos SSP based on negotiation.