これは、私が本当に答えることができず、好きなものでもありません:NTLMの代わりにIISでKerberos認証を使用する本当の利点は何ですか?
多くの人々がそれをセットアップするのに本当に苦労しているのを見てきました(私も含めて)、それを使用する正当な理由を思い付くことができませんでした。しかし、かなり重要な利点がいくつかあるに違いありません。そうでなければ、セットアップするのに苦労する価値はないでしょう。
Windowsの観点からのみ:
MaxConcurrentAPI
、 AuthPersistSingleRequest
(false) 、より高速なDC。)( 自己参照ボーナス =。)lmcompatibilitylevel
)可能性プロキシを通過できますが、上記のDCポイントを参照してください:サーバーと同様に、アクティブなDCと同じネットワーク上にある必要があります。
ticket is long-lived(10h)意味less DC通信チケットの有効期間中-そして強調します:これは数千を節約できますその存続期間中のクライアントごとの数百万のリクエスト---(AuthPersistNonNTLM
はまだ物事です Kerberos PAC検証 以前は物でした)
UserA
にIISへのアクセスを許可し、IISがSQL Serverにアクセスするときに同じユーザーアカウントを使用するには、これが「認証の委任」です。KRB_ERR_AP_MODIFIED
)私たちがそれをしている間:
LogonType
を構成してこれを実現する必要がある場合があります(デフォルトが2000から2003の間にネットワークのクリアテキストに変更されたと思いますが、覚えていない場合があります)まとめると:
縁石はセットアップが難しい場合がありますが、プロセスを簡略化しようとするガイド( my one )がたくさんあり、ツールがvastly2003年から2008年まで(SetSPN
は、最も一般的な重大な問題である重複を検索できます; se SETSPN -S
-Aを使用するためのガイダンスが表示されたらいつでも、幸せになります)。
制限された委任は、入場料に見合う価値があります。
別のアプローチは、認証をnegotiate
に設定し、一方ではなく両方を使用することです。
Microsoft Application Verifier から、開発者の一般的なミスを検出します。それらの間違いの1つはNTLMの使用です:
NTLMは、アプリケーションとオペレーティングシステムのセキュリティを危険にさらす可能性のある欠陥を持つ古い認証プロトコルです。最も重要な欠点はサーバー認証がないことです。これにより、攻撃者はユーザーをだまして、なりすましのサーバーに接続させることができます。不足しているサーバー認証の結果として、NTLMを使用するアプリケーションは、「リフレクション」攻撃と呼ばれる種類の攻撃に対して脆弱になる可能性もあります。後者の場合、攻撃者はユーザーの認証会話を正当なサーバーに乗っ取り、それを使用して攻撃者をユーザーのコンピューターに対して認証することができます。 NTLMの脆弱性とそれらを悪用する方法は、セキュリティコミュニティにおける研究活動の増加の標的です。
Kerberosは何年もの間利用可能でしたが、多くのアプリケーションはまだNTLMのみを使用するように作成されています。これにより、アプリケーションのセキュリティが不必要に低下します。ただし、KerberosはすべてのシナリオでNTLMを置き換えることはできません。主に、クライアントがドメインに参加していないシステムに対して認証する必要があるシナリオです(おそらくこれらの中で最も一般的なホームネットワークです)。 Negotiateセキュリティパッケージでは、可能な限りKerberosを使用し、他に選択肢がない場合にのみNTLMに戻るという下位互換性のある妥協案が許可されています。 NTLMの代わりにNegotiateを使用するようにコードを切り替えると、アプリケーションの互換性がほとんどないかまったくなくなり、お客様のセキュリティが大幅に向上します。ネゴシエーション自体は特効薬ではありません。攻撃者がNTLMに強制的にダウングレードできる場合がありますが、これらを悪用することは非常に困難です。ただし、すぐに改善される点の1つは、Negotiateを正しく使用するように作成されたアプリケーションが自動的にNTLMリフレクション攻撃の影響を受けないことです。
NTLMの使用に対する最後の注意として、Windowsの将来のバージョンでは、オペレーティングシステムでのNTLMの使用を無効にすることができます。アプリケーションがNTLMに強く依存している場合、NTLMが無効になっていると、認証に失敗するだけです。
あなたは非常に重要なポイントを追加する必要があります:
Kerberosは20年以上にわたってUnixで標準でオープンなプロトコルでしたが、NTLMはMicrosoftの純粋に独自のソリューションであり、Microsoftだけが知っています。
ユーザーになりすましてiisサーバー上にないリソースにアクセスする必要がある場合は、Kerberosが必要です。