Windows環境では、NTLM(NT LAN Manager)とKerberosの2つの認証プロトコルが主に利用される。 Windows 2000以降はKerberos認証が推奨になっているが、未だによく見るNTLM認証の動きを整理する

NTLMはいわゆるチャレンジ、レスポンス方式で、チャレンジといわれるランダムデータを元にパスワード値を組み合わせて計算し、クライアント側とサーバ側でその比較をおこなうことで認証要求の正当性を判断する。

NTLM Flow NTLM Flow

1.クライアントからサーバ側へ認証をリクエストする

2.認証リクエストを受けてチャレンジデータを生成、クライアントに送信する

3.入力したパスワードとサーバから受けたチャレンジデータを掛け合わせてレスポンスを生成し、サーバ側に送信する

4.一方、サーバ側でも生成したチャレンジデータと保存されたパスワードからレンスポンスを計算しておく

5.サーバ側で計算したレスポンスと、クライアントから送付されたレスポンスを比較する

6.5が一致している場合、認証の許可をクライアントに応答する

7.ログオンを実行する

なお、サーバサイドでNTLM認証でログインしたかどうかは、Windows EventのSecurity Logで判断できる。 EventLog