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(Ticket Granting Service)にその特定サービス用の新規チケットを要求します。 サービス用のチケットはそのサービスに対し、透過的にユーザーを認証するのに使用されます。
![]() | 警告 |
---|---|
ネットワーク上で、任意のユーザーがKerberos化されていないサービスに対し プレーンテキストでパスワードを送信して認証が行なわれてしまうと、 Kerberos システムはいつでも被害を受けてしまう恐れがあります。したがって、Kerberos化されていないサービスの使用は推薦できません。 このようなサービスには、telnet や ftp などがあります。 理想的ではありませんが、他の安全なサービスの OpenSSH や SSL など、 他の暗号化されたプロトコルを使用してください。 |
ここでは、どのようにKerberos認証が動作するのか大まかな概観だけを説明しています。 Kerberos認証について更に詳細をお知りになりたい方は、 項18.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を参照してください。 |