会社や学校でWindowsパソコンにログインすると、ファイルサーバーやプリンターに自動的にアクセスできますよね?
「パスワードを入れてないのに、なんで使えるんだろう?」と不思議に思ったことはありませんか?
その裏側で働いているのがNTLM(エヌティーエルエム)という認証の仕組みです。今回は、このWindowsネットワークに欠かせない技術について、初心者の方でも分かりやすく解説していきますよ!
NTLMとは?基本を理解しよう

NTLMは「NT LAN Manager」の略称で、Microsoftが開発した認証プロトコルです。
認証プロトコルって何?
認証プロトコルは、「あなたが本当にあなたかどうか」を確認する手順のことです。
パスワードを使った本人確認の方法と考えれば分かりやすいですね。
NTLMの歴史
誕生:1990年代前半
Windows NT 3.1で初めて登場しました。当時としては画期的な技術でしたが、もう30年以上前の技術なんです。
進化:NTLMv2の登場
1998年にセキュリティを強化したNTLMv2が登場しました。現在でも多くの環境で使われています。
現状:レガシー技術
Microsoftは、より安全なKerberos(ケルベロス)への移行を推奨していますが、互換性のためNTLMも残っています。
NTLMが使われる場面
どんなときにNTLMが活躍するのか見てみましょう。
シーン1:ファイルサーバーへのアクセス
典型的な使用例:
社内のファイルサーバー「\server01\share」にアクセスするとき、NTLMが自動的に認証を行います。
ユーザーは何も意識せず、透過的にアクセスできるんですね。
シーン2:プリンターへの接続
ネットワークプリンターに印刷する際も、NTLMが使われることがあります。
一度認証すれば、次からは自動的につながります。
シーン3:Webアプリケーションの認証
社内のイントラネットサイトやSharePointなど、Windows統合認証を使うWebアプリでもNTLMが活躍しますよ。
Internet Explorerなら、特に設定しなくても自動ログインできるのはこのためです。
シーン4:VPN接続
一部のVPN環境では、NTLMを使ってユーザー認証を行います。
シーン5:レガシーシステムとの互換性
古いアプリケーションやシステムが、Kerberosに対応していない場合、NTLMがフォールバック(代替手段)として使われます。
NTLM認証の仕組み:チャレンジ/レスポンス方式
NTLMがどのように認証を行うのか、その流れを見ていきましょう。
基本的な流れ
ステップ1:ネゴシエーション(交渉)
クライアント:「ログインしたいです!」
サーバー:「分かりました。NTLMで認証しましょう」
お互いに使用する認証方式を確認します。
ステップ2:チャレンジ(挑戦)
サーバー:「この問題を解いてください」(ランダムな数値を送信)
サーバーが、毎回異なるランダムな値(チャレンジ)を生成して送ります。
ステップ3:レスポンス(応答)
クライアント:「答えはこれです!」(パスワードのハッシュを使って計算した値を送信)
クライアントは、パスワードとチャレンジを組み合わせて計算し、その結果を返すんですね。
ステップ4:検証
サーバー:同じ計算を行って、クライアントの答えと一致するか確認
一致すれば認証成功!
重要なポイント:パスワードは送らない
NTLMの優れた点は、ネットワーク上にパスワードを流さないことです。
チャレンジとレスポンスのやり取りだけで、パスワードを知っていることを証明できます。盗聴されても、パスワード本体は漏れないんですよ。
ハッシュとは
ハッシュは、パスワードを一方向に変換した値です。
例:
- パスワード:
MyPassword123 - NTLMハッシュ:
8846F7EAEE8FB117AD06BDD830B7586C
元のパスワードに戻すことは(理論上)できませんが、同じパスワードなら必ず同じハッシュになります。
NTLMv1とNTLMv2の違い
NTLMには2つのバージョンがあります。
NTLMv1(旧バージョン)
特徴:
- 1990年代の技術
- 暗号化が弱い
- レインボーテーブル攻撃に脆弱
セキュリティリスク:
現代のコンピュータなら、数時間でパスワードを解析できてしまいます。
NTLMv2(改良版)
特徴:
- より強力な暗号化
- クライアント側のチャレンジも追加
- タイムスタンプを含めることでリプレイ攻撃を防ぐ
セキュリティ:
NTLMv1よりはるかに安全ですが、それでも完璧ではありません。
どちらが使われている?
Windows Vista以降: デフォルトでNTLMv2
Windows XP以前: NTLMv1も使用可能
現代の環境では、NTLMv1は無効化すべきです。セキュリティリスクが高すぎますね。
互換性レベルの設定
Windowsでは、どのバージョンのNTLMを許可するか設定できます。
レベル一覧:
| レベル | 説明 |
|---|---|
| 0 | LM、NTLM、NTLMv2すべて許可 |
| 1 | NTLMとNTLMv2を許可(LMは非推奨) |
| 2 | NTLMv2のみ許可(推奨) |
| 3 | NTLMv2のみ送信 |
| 4 | NTLMv2のみ、LM拒否 |
| 5 | NTLMv2のみ、LMとNTLM拒否(最も安全) |
企業環境では、レベル5に設定することが推奨されています。
KerberosとNTLMの違い
Microsoftが推奨する後継技術、Kerberosとの比較です。
Kerberos認証とは
Kerberosは、より安全で効率的な認証プロトコルです。
MIT(マサチューセッツ工科大学)で開発され、Active Directory環境で標準的に使われています。
主な違い
| 項目 | NTLM | Kerberos |
|---|---|---|
| 開発年 | 1993年 | 1980年代(Windows採用は2000年) |
| サーバー負荷 | 高い | 低い |
| 相互認証 | なし | あり |
| チケット | なし | あり |
| セキュリティ | 中 | 高 |
| Active Directory | 不要 | 必要 |
NTLMの欠点
相互認証がない:
クライアントはサーバーを認証しますが、サーバーがクライアントに対して「私が本物のサーバーです」と証明する仕組みがありません。
偽のサーバーに騙される可能性があるんですね。
サーバー負荷が高い:
毎回サーバーが認証処理を行う必要があります。多数のクライアントがいると、サーバーに負担がかかります。
ドメイン間認証が苦手:
複数のActive Directoryドメインをまたいだ認証が複雑です。
Kerberosの利点
チケット方式:
一度認証すると「チケット」が発行され、それを使って複数のサービスにアクセスできます。効率的ですよね。
相互認証:
サーバーもクライアントも、お互いに本物であることを確認できます。
拡張性:
大規模な環境でもスムーズに動作します。
なぜNTLMがまだ使われる?
互換性の問題:
古いアプリケーションやシステムが、Kerberosに対応していない場合があります。
ワークグループ環境:
Active Directoryがない小規模ネットワークでは、NTLMの方が簡単です。
フォールバック:
Kerberos認証が失敗した場合、自動的にNTLMにフォールバックする設定が一般的です。
NTLMのセキュリティリスク

残念ながら、NTLMには多くの脆弱性があります。
リスク1:Pass-the-Hash攻撃
攻撃の仕組み:
攻撃者がNTLMハッシュを盗み出すと、元のパスワードを知らなくても認証できてしまいます。
パスワード本体ではなく、ハッシュを直接使って認証するんですね。これは非常に危険な攻撃です。
対策:
- 管理者アカウントの使用を最小限に
- ローカル管理者アカウントを無効化
- Windows Defenderの資格情報ガードを有効化
リスク2:リレー攻撃
攻撃の仕組み:
攻撃者が中間者となって、認証情報を別のサーバーに「転送」してしまいます。
クライアントA → 攻撃者 → サーバーB
攻撃者は、Aの認証をBに対して使い回すことができるんです。
対策:
- SMB署名を有効化
- 拡張保護機能(EPA)を有効化
- NTLMの使用を制限
リスク3:ブルートフォース攻撃
NTLMハッシュを入手できれば、オフラインで総当たり攻撃が可能です。
弱いパスワードなら、短時間で解析されてしまいますよ。
対策:
- 複雑なパスワードポリシーを設定
- 定期的なパスワード変更
- 多要素認証の導入
リスク4:ダウングレード攻撃
攻撃者が、NTLMv2の使用を妨害して、より弱いNTLMv1やLMを使わせることがあります。
対策:
- NTLMv1とLMを完全に無効化
- 互換性レベルを最高(5)に設定
NTLMの設定方法
Windows環境でのNTLM設定を見ていきましょう。
グループポリシーでの設定
管理者権限で設定:
Win + Rで「gpedit.msc」を実行- 「コンピューターの構成」→「Windowsの設定」→「セキュリティの設定」→「ローカルポリシー」→「セキュリティオプション」
- 「ネットワークセキュリティ: LAN Manager認証レベル」を探す
推奨設定:
NTLMv2応答のみ送信する
これで、NTLMv2のみが使用されます。
レジストリでの設定
直接レジストリを編集する場合:
キー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
値: LmCompatibilityLevel
型: REG_DWORD
データ: 5(最も安全)
注意:レジストリの編集は慎重に行ってください。間違えるとシステムが起動しなくなる可能性があります。
NTLMの無効化(Kerberosのみ使用)
最もセキュアな設定:
Active Directory環境で、NTLMを完全に無効化することも可能です。
キー: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
値: RestrictReceivingNTLMTraffic
型: REG_DWORD
データ: 2(すべて拒否)
注意:この設定を行う前に、すべてのシステムがKerberosに対応しているか十分にテストしてください。
トラブルシューティング
NTLMで問題が起きたときの対処法です。
問題1:「アクセスが拒否されました」エラー
症状:
ファイルサーバーやプリンターに接続できない。
原因1:認証レベルの不一致
クライアントとサーバーで、許可されているNTLMバージョンが異なる可能性があります。
対処法:
# イベントビューアーで確認
eventvwr.msc
→ Windowsログ → システム
→ イベントID 5805, 5827などを確認
原因2:アカウントのロックアウト
パスワードを何度も間違えると、アカウントがロックされます。
対処法:
管理者に連絡してアカウントのロックを解除してもらいましょう。
問題2:認証に時間がかかる
症状:
ファイルサーバーへの接続に数十秒かかる。
原因:Kerberosが失敗してNTLMにフォールバック
DNSの設定ミスなどで、Kerberos認証が失敗すると、NTLMに切り替わります。この切り替えに時間がかかるんですね。
対処法:
# DNSの名前解決を確認
nslookup ドメインコントローラー名
# Kerberos認証をテスト
klist purge
klist get krbtgt
DNS設定を修正して、Kerberosが正常に動作するようにしましょう。
問題3:特定のサーバーにだけ接続できない
症状:
サーバーAには接続できるが、サーバーBには接続できない。
原因:サーバー側のNTLM設定
サーバーBがNTLMv2のみを許可している可能性があります。
対処法:
クライアント側の認証レベルを上げるか、サーバー側の設定を緩和します(後者は非推奨)。
問題4:ログインはできるがファイル共有にアクセスできない
症状:
Windowsにログインできるが、ネットワークドライブにアクセスできない。
原因:ネットワーク認証の問題
ローカルアカウントとドメインアカウントが混在している可能性があります。
対処法:
# 現在のログオン情報を確認
whoami
# ネットワーク資格情報を確認
cmdkey /list
# 必要に応じて資格情報を追加
cmdkey /add:サーバー名 /user:ドメイン名\ユーザー名 /pass
NTLMの監査とログ
セキュリティ対策として、NTLM使用状況を監視しましょう。
イベントログで確認
主要なイベントID:
| イベントID | 内容 |
|---|---|
| 4624 | ログオン成功 |
| 4625 | ログオン失敗 |
| 4768 | Kerberosチケット要求 |
| 4776 | NTLM認証の試行 |
| 5805 | NTLM認証が拒否された |
確認方法:
イベントビューアー → Windowsログ → セキュリティ
フィルター → イベントIDで絞り込み
監査ポリシーの有効化
グループポリシーで設定:
コンピューターの構成
→ Windowsの設定
→ セキュリティの設定
→ ローカルポリシー
→ 監査のポリシー
→ 「アカウントログオンイベントの監査」を有効化
これで、すべての認証試行がログに記録されます。
PowerShellで分析
NTLM使用状況を確認:
# 最近のNTLM認証を表示
Get-WinEvent -LogName Security | Where-Object {$_.Id -eq 4776} | Select-Object -First 10
# 失敗した認証を検索
Get-WinEvent -LogName Security | Where-Object {$_.Id -eq 4625}
定期的にログを確認して、不審な活動がないかチェックしましょう。
ベストプラクティス

セキュアなNTLM運用のための推奨事項です。
推奨1:Kerberosへの移行計画
段階的な移行:
- 現状の把握(どこでNTLMが使われているか調査)
- 優先順位の決定(重要度の高いシステムから)
- テスト環境での検証
- 段階的な本番導入
- 最終的にNTLMを無効化
急がず、計画的に進めることが大切ですよ。
推奨2:最小権限の原則
管理者権限を持つアカウントの使用を最小限にしましょう。
対策:
- 日常業務は一般ユーザーアカウントで
- 管理作業時のみ管理者権限を使用
- 管理者アカウントのパスワードは特に複雑に
推奨3:ネットワークセグメンテーション
重要なサーバーは、別のネットワークセグメントに配置します。
例:
- ユーザーセグメント:192.168.1.0/24
- サーバーセグメント:192.168.10.0/24
- 管理セグメント:192.168.100.0/24
攻撃の範囲を限定できますね。
推奨4:多要素認証(MFA)の導入
パスワードだけでなく、スマートフォンアプリや生体認証も組み合わせましょう。
NTLMの脆弱性を補完できます。
推奨5:定期的なセキュリティ監査
- 月次でイベントログを確認
- 四半期ごとにNTLM使用状況を報告
- 年次でセキュリティポリシーを見直し
継続的な改善が重要です。
今後の方向性:脱NTLMへ
Microsoftは、NTLMの廃止を進めています。
Microsoftの方針
2023年の発表:
将来的にWindowsからNTLMを削除する計画が発表されました。
ただし、互換性の問題があるため、段階的に進められます。
代替技術
Kerberos: 主力の認証プロトコル
Azure AD認証: クラウドベースの認証
FIDO2: パスワードレス認証
これらの新しい技術への移行が推奨されていますね。
移行のタイムライン
現在(2024-2025年):
- NTLMは引き続きサポート
- ただし、新規環境ではKerberos推奨
近い将来(2026-2028年頃):
- NTLMのサポートが段階的に縮小
- 一部の機能で利用不可に
長期的(2030年以降):
- NTLMの完全廃止の可能性
今から準備を始めることが大切です。
よくある質問
Q: NTLMとLMの違いは?
A: LM(LAN Manager)は、NTLMのさらに前の認証方式で、極めて脆弱です。現代では絶対に使用すべきではありません。NTLMは、LMの後継としてセキュリティを改善したものですが、それでも現代の基準では不十分ですね。
Q: 家庭のWindowsでもNTLMは使われている?
A: はい、ワークグループ環境(Active Directoryがない環境)では、NTLMが使われます。家庭内のファイル共有などでNTLMが動作していますよ。
Q: NTLMを完全に無効化しても大丈夫?
A: Active Directory環境で、すべてのシステムがKerberosに対応していれば可能です。ただし、レガシーなアプリケーションやプリンターなどが動作しなくなる可能性があるため、十分なテストが必要ですね。
Q: LinuxやMacからWindowsサーバーにアクセスする際は?
A: Samba(Linuxのファイル共有ソフト)もNTLMをサポートしています。ただし、最近のバージョンではKerberosの使用が推奨されています。
Q: NTLMハッシュが漏れたらどうすれば?
A: 直ちにパスワードを変更してください。NTLMハッシュはパスワードから計算されるため、パスワードを変更すればハッシュも変わります。また、セキュリティチームに報告して、他のアカウントへの影響を調査しましょう。
まとめ:NTLMを理解して安全に使おう
NTLM認証について、重要なポイントをおさらいします。
今日学んだこと:
- NTLMはWindowsの認証プロトコル
- チャレンジ/レスポンス方式で動作
- NTLMv2はNTLMv1より安全
- Kerberosが後継技術として推奨されている
- Pass-the-Hash攻撃など、複数の脆弱性がある
- 企業環境では段階的にKerberosへ移行すべき
- 最小権限と多要素認証で対策を強化
- 将来的にはNTLMが廃止される見込み
NTLMは、長年Windowsネットワークを支えてきた重要な技術です。
しかし、セキュリティ上の問題も多く、現代では「レガシー技術」として扱われています。企業のIT管理者の方は、Kerberosや新しい認証技術への移行を検討すべき時期に来ていますね。
個人ユーザーの方も、会社のシステムがどのように動いているか理解しておくと、トラブル時に役立ちますよ。パスワード管理をしっかり行い、セキュリティ意識を高めることが大切です!
関連記事:
- Kerberos認証の仕組みを理解する
- Active Directoryの基礎知識
- 企業ネットワークのセキュリティ対策


コメント