Kerberosは、他の認証方法とは異なります。個別のユーザーを個別のネットワーク サービスに認証するのではなく、Kerberosは対称暗号法と信用できるサードパーティ —Key Distribution Center (KDC)として知られています。 —を使用して 一連のネットワークサービスへユーザーを認証します。ひとたびKDCにユーザーが認証されると、 その通信固有のチケットをユーザのマシンに送信し、パスワードを使う認証をユーザに求める 代わりに全てのKerberos化されたサービスはユーザーマシン上のこのチケットを探します。
kerberos化されたネットワーク上で、ユーザーが自分のワークステーションにログインすると、 ユーザーのプリンシパルがKey Distribution Centerに送信され、Ticket Granting Service (TGS)からの Ticket Granting Ticket(TGT)を要求します。この要求は、ログインプログラムによって送信するので、 ユーザーには透過的です。またログインした後でユーザーがkinitプログラムを使って 送信したりすることができます。
KDCは、データベース内にプリンシパルが存在するかどうかをチェックします。 プリンシパルが見つかった場合、KDCはTGSに指示してTGTを作成し、ユーザーの 鍵を使用してそのTGTを暗号化してからユーザーへと返信します。
クライアントマシン上のログインか、kinitプログラムのどちらかが、 ユーザーの鍵(ユーザーのパスワードから計算されます)を使用してTGTを復号化します。 ユーザーの鍵は、クライアントマシン上でのみ使用され、ネットワークには送信 されません。
TGTは一定の時間(通常10時間)が経過すると有効期限が切れるように設定されていますが、 クライアントマシンの証明書キャッシュの中に保存されます。有効期間が設定されているのは、 TGTが盗まれたとしても、侵入者が使用できるのを一定の時間に限定するためです。 一度TGTが発行されると、TGTの有効期限が切れるか、ログアウトして再度ログインするまで、 ユーザーはKDCへ再度パスワードを入力する必要はありません。
ユーザーがネットワークサービスにアクセスする必要が生じた場合は、 クライアントソフトウェアがTGTを使って、TGS(Ticket Granting Service)に そのサービス用の新規のチケットを要求します。サービス用のチケットは そのサービスに対し、透過的にユーザーを認証するのに使用されます。
警告 | |
---|---|
Kerberosシステムではいつでもネットワーク上のどのユーザにも、Kerberos化されていない サービスに対して、プレインテキストでパスワード認証を送ると、被害を受けることになります。 したがって、Kerberos化されていないサービスの使用は推薦できません。このようなサービスの 例として、telnetやftpがあります。理想的ではありませんが、他のセキュアなプロトコル、 OpenSSHやSSL等で安全なサービスを使う事をお勧めします。 |
これは、どのようにKerberos認証がネットワーク上で動作するかを概観したに過ぎません。 Kerberos認証に関する探求には、項17.7を参照してください。
注意 | |
---|---|
Kerberosは、正しく動作するために特定のネットワークサービスに依存しています。 まず、Kerberosはネットワーク上のマシン群の間で、ほぼ正確に時計の同期が取られていることを 必要とします。ネットワークに対し、ntpdなどの時計の同期化プログラムを セットアップする必要があります。ntpdの設定に付いての詳細は /usr/share/doc/ntp-<version-number>/index.htmで ネットワークタイムプロトコルサーバの設定法を御覧下さい。 また、Kerberosの特定の部分がDNS(Domain Name Service)に依存していますで、 ネットワーク上のDNSエントリとホストがすべて正しく設定されていることを確認してください。 この詳細については/usr/share/doc/krb5-server-<version-number>の 中で、PostScript形式とHTML形式で提供されているKerberos V5 System Administrator's Guideを 御覧下さい。 |