【NTLM認証について】
このHPは、NTLM認証についてまとめたものです。
1-1 NTLM認証とは
NTLM認証とは、WindowsNT4.0で使われていた認証方法。
NTLM認証には、NTLMバージョン1認証と、NTLMバージョン2認証の2種類がある。
NTLMバージョン1は、NTLMの初期バージョンで、認証方法に「チャレンジレスポンス認証」を採用している。サーバーから取得したチャレンジコードを取得し、クライアントはハッシュ化されたパスワードを使用してレスポンスを生成してサーバーに返す。
NTLMバージョン2は、NTLMバージョン1に様々なセキュリティ上の問題があったため、その問題を解決すべくリリースされた。
このバージョンでは、サーバーとクライアントがそれぞれチャレンジコードを作成し、それらを使用してレスポンス計算を行う方法を採用している。
1-2 NTLM認証の特徴
NTLM認証では、「チャレンジ&レスポンス方式」を使用してセキュリティ強度を上げている。サーバーがクライアントに対して、あらかじめランダムな数値である「チャレンジ」を送り、クライアントはそのチャレンジを利用して、自分の秘密情報と組み合わせて計算した値をサーバーに返送する。
サーバーはこの値を検証し、正しいクライアントかどうか判断する。
この仕組みを使用し、相互関係を確認し、確認した情報に妥当性がある場合は、「認可」する。
1-3 NTLM認証の流れ
NTLM認証のフローは下記の通り。

@クライアントはリソースサーバーにNTLM認証の要求を送信する。
ANTLM認証では、クライアントからリソースサーバーに認証要求を行うと、リソースサーバー上にはアカウン情報(SAM)が無いために、ドメインコントローラーに問い合わせる。
Bドメインコントローラーは、クライアントのパスワードから「チャレンジ」を生成する。
Cドメインコントローラーは、生成したチャレンジのデータをサーバーに転送する。
Dリソースサーバーは、チャレンジをクライアントに転送する。
Eクライアントは、パスワードを使用しチャレンジを解析し、サーバーから送信されてきたチャレンジを暗号化する。この暗号化したデータを「レスポンス」と呼ぶ。
Fクライアントは、認証情報としてリソースサーバーにレスポンスを送信する。
Gリソースサーバーは、レスポンスをドメインコントローラーに転送する。
Hドメインコントローラーはチャレンジを暗号化し、暗号化したチャレンジを、リソースサーバーから転送されてきたレスポンスと比較して、値が一致しているか確認する。
値が一致していればクライアントが認証された事をリソースサーバーに通知する。値が一致しなければ、不正なユーザーとして、認証に失敗し、その結果をリソースサーバーに通知する。
このHPは、NTLM認証についてまとめたものです。
1-1 NTLM認証とは
NTLM認証とは、WindowsNT4.0で使われていた認証方法。
NTLM認証には、NTLMバージョン1認証と、NTLMバージョン2認証の2種類がある。
NTLMバージョン1は、NTLMの初期バージョンで、認証方法に「チャレンジレスポンス認証」を採用している。サーバーから取得したチャレンジコードを取得し、クライアントはハッシュ化されたパスワードを使用してレスポンスを生成してサーバーに返す。
NTLMバージョン2は、NTLMバージョン1に様々なセキュリティ上の問題があったため、その問題を解決すべくリリースされた。
このバージョンでは、サーバーとクライアントがそれぞれチャレンジコードを作成し、それらを使用してレスポンス計算を行う方法を採用している。
1-2 NTLM認証の特徴
NTLM認証では、「チャレンジ&レスポンス方式」を使用してセキュリティ強度を上げている。サーバーがクライアントに対して、あらかじめランダムな数値である「チャレンジ」を送り、クライアントはそのチャレンジを利用して、自分の秘密情報と組み合わせて計算した値をサーバーに返送する。
サーバーはこの値を検証し、正しいクライアントかどうか判断する。
この仕組みを使用し、相互関係を確認し、確認した情報に妥当性がある場合は、「認可」する。
1-3 NTLM認証の流れ
NTLM認証のフローは下記の通り。

@クライアントはリソースサーバーにNTLM認証の要求を送信する。
ANTLM認証では、クライアントからリソースサーバーに認証要求を行うと、リソースサーバー上にはアカウン情報(SAM)が無いために、ドメインコントローラーに問い合わせる。
Bドメインコントローラーは、クライアントのパスワードから「チャレンジ」を生成する。
Cドメインコントローラーは、生成したチャレンジのデータをサーバーに転送する。
Dリソースサーバーは、チャレンジをクライアントに転送する。
Eクライアントは、パスワードを使用しチャレンジを解析し、サーバーから送信されてきたチャレンジを暗号化する。この暗号化したデータを「レスポンス」と呼ぶ。
Fクライアントは、認証情報としてリソースサーバーにレスポンスを送信する。
Gリソースサーバーは、レスポンスをドメインコントローラーに転送する。
Hドメインコントローラーはチャレンジを暗号化し、暗号化したチャレンジを、リソースサーバーから転送されてきたレスポンスと比較して、値が一致しているか確認する。
値が一致していればクライアントが認証された事をリソースサーバーに通知する。値が一致しなければ、不正なユーザーとして、認証に失敗し、その結果をリソースサーバーに通知する。