NTLM(NT LAN Manager)は、Microsoftが開発した認証プロトコルで、Windowsオペレーティングシステムでのユーザー認証に使用されます。元々、Windows NT 4.0や以前のバージョンで広く利用されていましたが、現在でもレガシーシステムや後方互換性のために一部で使用されています。
NTLMは、ユーザー認証、データ整合性の確認、オプションのデータ暗号化を提供するシンプルな認証プロトコルとして設計されました。しかし、設計が古いため、セキュリティの観点でいくつかの課題があります。
NTLMの特徴
1. チャレンジ・レスポンス方式
- パスワードそのものを送信するのではなく、暗号化された形式で認証を行う。
- サーバーが「チャレンジ」と呼ばれる乱数をクライアントに送信し、クライアントがパスワードとこのチャレンジを用いて「レスポンス」を生成して送信する仕組み。
2. 後方互換性
- Windows NTやWindows 2000などの古いOSとの互換性を保つために使用可能。
3. 複数バージョン
NTLMには以下のバージョンが存在し、後になるほどセキュリティが向上しています。
- NTLMv1: 基本的なチャレンジ・レスポンス認証。
- NTLMv2: より強力な暗号化とセキュリティ機能を追加。
NTLMの仕組み
NTLM認証は以下のようなステップで動作します。
- ネゴシエーション
- クライアントとサーバー間で認証を開始し、どの認証方式を使用するかを決定します。
- チャレンジ
- サーバーがチャレンジ(乱数)をクライアントに送信します。
- レスポンス
- クライアントはユーザーのパスワードを基にチャレンジを暗号化し、レスポンスとしてサーバーに送信します。
- 認証確認
- サーバーは、受信したレスポンスを検証して、ユーザーが正当であることを確認します。
NTLMの問題点
1. パスワードハッシュの盗難
- NTLMはハッシュ化された形式でパスワードを保存しますが、このハッシュが漏洩すると、リレー攻撃や辞書攻撃で解読される可能性があります。
2. リレー攻撃
- NTLMリレー攻撃では、認証トークンを中間者が傍受し、他のシステムやサービスに転送することで不正アクセスを実行します。
3. 古い暗号技術
- NTLMv1では、暗号化アルゴリズムが古く、セキュリティが弱い。
- NTLMv2は改善されていますが、現代の基準ではKerberosのほうが安全です。
4. セッションキーの脆弱性
- NTLMはセッションキーの暗号化が弱いため、通信の盗聴に対する耐性が不十分です。
NTLMの防御策
- Kerberosの使用
- Kerberos認証を優先的に使用し、NTLMの使用を制限する。
- グループポリシーでNTLMを無効化または最小限に設定。
- NTLMv1の無効化
- NTLMv1は脆弱性が多いため、必ず無効化し、必要に応じてNTLMv2を使用する。
グループポリシー > セキュリティ設定 > ローカルポリシー > セキュリティオプション > ネットワークセキュリティ:NTLM SSPの使用を制限する
- SMB署名の有効化
- SMB通信の署名を有効化することで、セッションの改ざんを防ぐ。
- セキュリティの監視
- イベントログやネットワークトラフィックを監視し、異常な認証試行を検知。
- パスワードポリシーの強化
- 長く複雑なパスワードを使用し、辞書攻撃やブルートフォース攻撃を防ぐ。
NTLMの現状
- レガシーシステムでの使用
- NTLMは主に古いアプリケーションやシステムで依然として使用されています。
- Active Directoryでの後方互換性
- Active Directory環境では、後方互換性のために一部のシナリオでNTLMが有効になっていることがあります。
- Kerberosへの移行
- Kerberosがデフォルトの認証プロトコルとして広く採用されており、NTLMは徐々に使用されなくなっています。
NTLMとKerberosの比較
特徴 | NTLM | Kerberos |
---|---|---|
認証方式 | チャレンジ・レスポンス | チケットベース |
暗号化アルゴリズム | 古い(NTLMv1は特に弱い) | 強力な暗号化 |
セキュリティレベル | 中程度 | 高い |
パフォーマンス | 低い | 高い |
使用環境 | レガシーシステム、後方互換性 | 現代のWindows環境 |
まとめ
NTLMは、Microsoftの認証プロトコルとして一定の歴史を持ちますが、設計が古いため現代のセキュリティ要件には対応しきれません。Kerberosのようなより安全で効率的なプロトコルへの移行が推奨される一方で、レガシーシステムの維持のためにNTLMが必要な場合もあります。その場合、NTLMv2の使用、SMB署名の有効化、パスワードポリシーの強化など、セキュリティを最大限に確保する措置が重要です。
システム管理者は、NTLMに依存する環境を可能な限り縮小し、将来的にセキュリティリスクを回避できるよう計画を立てるべきです。