ネットワーク認証—Kerberos

目次

45.1. Kerberosで使われる用語
45.2. Kerberosの仕組み
45.3. ユーザ側から見たKerberos
45.4. 詳細情報

オープンネットワークでは、従来から使われているパスワードメカニズムを利用する以外、ワークステーションのユーザを正しく認識、識別する手段はありませんでした。通常のインストールでは、ネットワーク内のサービスにアクセスする場合、ユーザは毎回パスワードを入力する必要があります。Kerberosを利用すれば、ユーザは1回登録するだけで、以降のセッションでネットワーク全体へのアクセスに認証情報を入力する必要がなくなります。ネットワークを安全な状態に保つためには、次の要件を満たしていなければなりません。

これらの要件を満たすには、Kerberosの強力な暗号認証機能を利用します。ここでは、この目的を達成するための、Kerberosの使用方法について説明します。ただし、ここではKerberosの基本的な機能についてのみ取り上げます。技術的な詳細については、Kerberosのマニュアルを参照してください。

Kerberosで使われる用語

ここでは、Kerberosで使われる用語の定義を説明します。

資格情報

ユーザやクライアントは、サービスを要求する資格があることを証明する、一種の資格情報を提示する必要があります。Kerberosは、チケットとオーセンティケータの2種類の資格情報を知っています。

チケット

チケットは、サービスを要求するサーバに対して、クライアントが認証に使用するサーバ単位の資格情報です。チケットには、サーバ名、クライアント名、クライアントのインターネットアドレス、タイムスタンプ、利用期間、およびランダムなセッションキー情報が保管されています。このデータはすべて、サーバのキーを使って暗号化されます。

オーセンティケータ

オーセンティケータはチケットとともに、クライアントが提示したチケットが正しいかどうかを証明するために使われます。オーセンティケータは、クライアント名、ワークステーションのIPアドレス、および現在のワークステーションの時刻などの情報を、サービスを要求するクライアントとサーバだけが知っているセッションキーで暗号化したデータから作成されます。オーセンティケータは、チケットと違い、1回しか使用できません。クライアントは、オーセンティケータ自身を作成することができます。

プリンシパル

Kerberosのプリンシパルは、チケットを割り当てることができる一意のエンティティ(ユーザやサービス)です。プリンシパルは次のコンポーネントで構成されます。

  • プライマリ—プリンシパルの最初の部分で、ユーザの場合はユーザ名になります。

  • インスタンス—プライマリの特徴を説明するオプション情報。プライマリとこの文字列は、/で区切られます。

  • レルム—Kerberosのレルムを指定します。通常、レルムはドメイン名を大文字で表したものになります。

相互認証

Kerberosでは、クライアントとサーバの両方が、互いのIDを確認することができます。クライアントとサーバはセッションキーを共有し、それを使って安全に通信することができます。

セッションキー

セッションキーは、Kerberosが生成する一時的な秘密鍵です。クライアントはセッションキーを使って、チケットを要求したり受け取る場合の、クライアント-サーバ間の通信を暗号化します。

再生

ネットワークに送信されるメッセージは、盗聴、傍受、または改ざんされる危険性があります。Kerberosの場合、攻撃者によりユーザのチケットやオーセンティケータを含むサービス要求が傍受された場合、重大な危険性があります。攻撃者は入手したサービス要求を再送信(再生)して、そのユーザになりすますことができます。ただし、Kerberosにはこのような問題に対処するための、さまざまな機能が実装されています。

サーバ/サービス

サービスは、実行する特定のアクションを表す場合に用いられます。このアクションの背後にあるプロセスのことを、サーバと呼んでいます。