ldapにログイン(バインド)する時にパスワードは平文でネットワークに流れてしまうのか?

LDAPのセキュリティの話です。
WindowsのADサーバーのLDAPサービスは、LDAPでログインしないと使えません。
このLDAPサーバーにログインすることを、LDAPでは「バインド」と言います。
LDAPサーバーにバインドする時に、LDAPSのように暗号化されていないLDAPではパスワードがネットワーク上に平文で流れてしまっているのでしょうか?

環境・前提条件

  • LDAPサーバーとしてWindows Server 2019 AD を使用
  • LDAPクライアントとしてドメインに参加していないWindows Server 2016のldp.exeを使用

バインドしていない場合は、ADのLDAPは当然検索や操作できないです。

Error 0x4DC ユーザーが認証されていないため、要求された操作は実行されませんでした。

結論、LDAPではパスワードはネットワーク上に平文で流れていませんでした!NTLM認証のチャレンジレスポンス式

LDAPのバインド時に、ネットワークのパケットキャプチャしてみました。
その結果、LDAPのバインドリクエスト時にパスワードは平文でネットワーク上に流れていませんでした。
NTML認証を利用しており、パスワードが直接ネットワーク上に流れないチャレンジレスポンス形式の通信でした。

調べると、LDAPのプロトコルバージョン3からこのような認証フレームワークが実装されたようですね。

LDAPのバインドで使用できる認証方式は?LDAPのセキュリティ

LDAPのパスワード認証方式では、

  • シンプル認証
  • MD5ダイジェスト認証
  • Kerberos認証
  • NTLM認証
  • 匿名認証

が利用出来、シンプル認証ではネットワーク上にパスワードが平文で流れてしまいます。
Kerberos認証も使えるようですので、本来Windowsでは Kerberos認証を使用しているかもしれませんが、今回確認した環境ではNTML認証を使用していました。

LDAPで使用されていたWindowsのNTML認証とは?

NTLM認証と言うのは、Windows NT LAN Manager認証の略で、 Kerberos認証が使われる前、Windowsで広く使われていた認証方式ですね。
まず、サーバー側が「チャレンジ」というランダムな文字列を送り、クライアント側が、この「チャレンジ」をパスワードを暗号化キーとして使用し、暗号化したものを「レスポンス」としてサーバーに返します。
サーバーも自信で「チャレンジ」をパスワードを暗号化キーとして暗号化し、クライアントから来た「レスポンス」と比較し、認証する方式です。
この方式の場合、パスワードは平文でネットワーク上に流れないことがわかりますね。

パスワードが平文でネットワーク上に流れていないことがわかり、安心しましたが、さらにセキュリティを高めるためにはやはり、LDAPS(LDAP over SSL)ですね。最近、少し話題になっていますね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です