19.3. Kerberosの機能

Kerberosは、ユーザー名/パスワード認証方法とは異なります。個別のユーザーを個別のネットワークサービスに認証するのではなく、対称暗号法と信用できるサードパーティ、 KDC (Key Distribution Center)を使用して一連のネットワークサービスへ ユーザーを認証します。ユーザーが KDC に対して認証を行なうと、KDCはその セッション特定のチケットをユーザのマシンに返信してきます。すると、ユーザーに パスワードを使って認証を求める代わりに、Kerberos化されたすべてのサービスが ユーザーマシン上のこのチケットを探します。

kerberos 化されたネットワーク上のユーザーが自分のワークステーションにログインすると、認証サーバーからの TGT (Ticket Granting Ticket)の要求でユーザーのプリンシパルが KDC に送信されます。この要求は、ユーザーには透過的でログイン プログラムで送信できます。又は、ユーザーがログインした後、kinitプログラムを使って送信することもできます。

KDC は、データベース内にプリンシパルが存在するかどうかをチェックします。プリンシパルが見つかった場合、KDC は TGT を作成します。TGT はユーザーの鍵を使って暗号化され、そのユーザーに返されます。

クライアントマシン上のログインか、kinitプログラムのどちらかが、ユーザーの鍵(ユーザーのパスワードから計算されます)を使用して TGTを復号化します。ユーザーの鍵は、クライアントマシン上でのみ使用され、ネットワークには送信 されません。

TGTは一定の時間(通常10時間)が経過すると有効期限が切れるように設定され、クライアントマシンの証明書キャッシュに保存されます。有効期間が設定されているのは、TGTが盗まれたとしても、侵入者が使用できるのを一定の時間に限定するためです。一度 TGTが発行されると、TGTの有効期限が切れるか、ログアウトして再度ログインするまで、ユーザーは KDCへ再度パスワードを入力する必要はありません。

ユーザーがネットワークサービスにアクセスする必要ある場合はいつも、クライアントソフトウェアが TGT を使用して、TGS にその特定サービス用の新規チケットを要求 します。サービスチケットはそのサービスに対し、透過的にユーザーを認証するのに使用されます。

警告警告
 

ネットワーク上で、任意のユーザーがKerberos化されていないサービスに対し プレーンテキストでパスワードを送信して認証が行なわれてしまうと、 Kerberos システムはいつでも被害を受けてしまう恐れがあります。したがって、Kerberos化されていないサービスの使用は推薦できません。 このようなサービスには、telnet や ftp などがあります。 理想的ではありませんが、他の安全なサービスの OpenSSH や SSL など、 他の暗号化されたプロトコルを使用してください。

ここでは、どのように Kerberos認証が動作するのか大まかな概観だけを説明しています。Kerberos認証について更に詳細をお知りになりたい方は、 項19.7を参照してください。

注記注記
 

Kerberosは、正しく動作するために特定のネットワークサービスに依存しています。 まず、Kerberosはネットワーク上のマシン群の間で、ほぼ正確に時計の同期が取られていることを必要とします。従って、ネットワークに対し、ntpdなど、時計の同期化プログラムをセットアップする必要があります。 ntpdの設定についての詳細は、/usr/share/doc/ntp-<version-number>/index.htmで ネットワークタイムプロトコルサーバの設定法を御覧下さい(<version-number>の部分は、システムにインストールされているntpパッケージのバージョン番号を入れます)。

また、Kerberosの特定の部分が DNS(Domain Name Service)に依存しているので、 ネットワーク上のDNSエントリとホストがすべて正しく設定されていることを確認してください。 この詳細については/usr/share/doc/krb5-server-<version-number>に PostScript形式とHTML形式で提供されているKerberos V5 System Administrator's Guideを参照してください。