Kerberosにより、セキュリティに対して一般的に容赦なく降りかかってくる脅威が取り除かれます。ではなぜすべてのネットワーク上で使用されていないのでしょうか。いくつかの理由があるために、Kerberosの実装が難しくなることがあります。
標準的なUNIXパスワードデータベース(/etc/passwdや/etc/shadowなど)からKerberosパスワードデータベースへとユーザーのパスワードを移行するための高速なソリューションが存在しません。技術的に移行は可能ですが、この問題は本章の対象ではありません。各自のKerberosインストールにおいてパスワードの移行が意味をなすかどうかを判別するため、『Kerberos FAQ』の「Question 2.23」を参照するか、この問題の詳細について記載されている参考情報項の情報を参照してください。
Kerberosは、Red Hat Linuxを実行するほとんどのサーバーで使用されているPAM(Pluggable Authentication Modules)システムとの互換性を部分的にしか持っていません。この問題の詳細については、KerberosとPAM項を参照してください。
アプリケーションにおいてKerberosを使用するためには、Kerberosのライブラリを正しくコールするために、アプリケーションのソースを修正しなければいけません。アプリケーションによっては、その修正のために多大なプログラミング作業が必要になることがあります。その他のアプリケーションの場合、ネットワークサーバーとクライアントの間で使用されるプロトコルを変更しなければいけません。ここでも、大量のプログラミングが必要になることがあります。さらに、特定のクローズドソースアプリケーションとKerberosを併用することが不可能であることもあります。
Kerberosでは、信用できないネットワーク上で信用できるホストを使用していることを前提とします。Kerberosの第一目標は、プレーンテキストのパスワードがそのネットワーク経由で送信されないようにすることです。ただし、不正なユーザーがいずれかのホスト、特に認証のためのチケットを発行するホストに、物理的にアクセスしていると、Kerberosの認証システム全体が盗み見られる危険性があります。
最後に、ネットワークでKerberosを使用することに決めた場合には、これが「All or Nothing」の問題であることを理解しなければいけません。使用しているサービスの中に、プレーンテキストのパスワードを転送するものが1つでも残っていると、パスワードが盗まれる可能性も残るので、ネットワークでKerberosを使用するメリットはまったくありません。Kerberosによってネットワークを保護するためには、プレーンテキストのパスワードを送信するアプリケーションをすべてkerberos化する(つまり、Kerberosに対応させる)か、ネットワークにおいてこのように不安定なアプリケーションの使用をやめるか、どちらかを行わなければいけません。