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