Solaris のシステム管理 (セキュリティサービス)

SEAM の用語

この節では、用語とその定義について説明します。これらの用語は、SEAM のマニュアル全体で使用されます。SEAM の概念を理解するには、これらの用語を理解する必要があります。

Kerberos 固有の用語

KDC を管理するには、この節で説明する用語を理解する必要があります。

「鍵配布センター (Key Distribution Center、KDC)」は、資格の発行を担当する SEAM の構成要素です。資格は、KDC データベースに格納されている情報に基づいて作成されます。各レルムには 2 つ以上の KDC サーバー (マスターと 1 つ以上のスレーブ) が必要です。すべての KDC が資格を生成できますが、KDC データベースを変更できるのはマスター KDC だけです。

KDC のマスター鍵を暗号化したコピーは「stash ファイル」に含まれます。サーバーがリブートされると、この鍵を使用して KDC が自動的に認証されて、kadmindkrb5kdc コマンドが起動されます。このファイルにはマスター鍵が入っているため、このファイルやバックアップは安全な場所に保管する必要があります。暗号が破られると、この鍵を使用して KDC データベースのアクセスや変更が可能になります。

認証固有の用語

認証処理を理解するには、この節で説明する用語を理解する必要があります。プログラマやシステム管理者はこれらの用語に精通している必要があります。

「クライアント」は、ユーザーのワークステーションで動作するソフトウェアです。クライアントで動作する SEAM ソフトウェアは、処理中に多数の要求を作成します。このため、SEAM ソフトウェアとユーザーの動作を区別することが重要です。

「サーバー」と「サービス」はよく同じ意味で使われます。明確に定義すると、「サーバー」は、SEAM ソフトウェアが動作する物理システムです。「サービス」は、サーバー上でサポートされる特定の機能 ( nfs など) です。サーバーがサービスの一部として記述されることがよくありますが、これはこれらの用語の定義をあいまいにします。このマニュアルでは、サーバーという用語は、物理システムを指し、サービスという用語は、ソフトウェアを指します。

SEAM 製品には 3 種類の鍵があります。1 つは「非公開鍵」です。この鍵は各ユーザー (主体) に与えられ、主体のユーザーと KDC だけに知られています。ユーザー主体に対しては、鍵はユーザーのパスワードに基づいています。サーバーとサービスに対する鍵は「サービス鍵」と呼ばれます。サービス鍵は非公開鍵と同じ目的で使われますが、これはサーバーとサービスによって使用されます。3 つ目の鍵は「セッション鍵」です。セッション鍵は、認証サービスまたはチケット認可サービスによって生成されます。セッション鍵は、クライアントとサービス間のトランザクションのセキュリティを保護するために生成されます。

「チケット」は、ユーザーの識別情報をサーバーやサービスに安全に渡すために使用される情報パケットです。チケットは、単一クライアントと特定サーバー上の特定サービスだけに有効です。チケットには、サービスの主体名、ユーザーの主体名、ユーザーのホストの IP アドレス、タイムスタンプ、チケットの有効期限を定義する値などが含まれます。チケットは、クライアントとサービスによって使用されるランダムセッション鍵を使用して作成されます。チケットは、作成されてから有効期限まで再使用できます。

「資格」は、対応するセッション鍵とチケットを含む情報パケットです。一般に資格は、資格を暗号化するソフトウェアにより、非公開鍵かサービス鍵を使用して暗号化されます。

「オーセンティケータ (authenticator)」はさらに別の種類の情報です。これをチケットとともに使用すると、ユーザー主体の認証に使用できます。オーセンティケータには、ユーザーの主体名、ユーザーのホストの IP アドレス、タイムスタンプが含まれます。チケットとは異なり、オーセンティケータは一度しか使用できません。通常、サービスへのアクセスが要求されたときに使用されます。オーセンティケータは、そのクライアントとそのサーバーのセッション鍵を使用して暗号化されます。

チケットの種類

チケットには、チケットがどのように使用されるかを決めるプロパティがあります。これらのプロパティは、チケットの作成時にチケットに割り当てられます。ただし、チケットのプロパティはあとから変更できます。たとえば、チケットのプロパティを「転送可能」から「転送済み」に変更できます。チケットのプロパティを表示するには、klist コマンドを使用します (チケットを表示する方法 を参照)。

チケットは、次の 1 つまたは複数のプロパティで表されます。

転送可能 / 転送済み

転送可能チケットはホストからホストに転送されます。これによって、クライアントは再び認証を受ける必要がありません。たとえば、ユーザー david がユーザー jennifer のマシンで転送可能チケットを取得した場合、david は自分のマシンにログインするときに新しいチケットを取得する必要はありません (再び認証を受けることもありません)。転送可能チケットの例については、例 — チケットを作成する を参照してください。

初期

初期チケットは、チケット認可チケットを使わずに直接発行されるチケットです。パスワードを変更するアプリケーションなどの一部のサービスでは、クライアントが非公開鍵を知っていることを確認するために、「初期」と指定されたチケットを要求することができます。初期チケットは、チケット認可チケットを使用せずに、クライアントが最近認証されたことを証明します。チケット認可チケットの場合は、認証されてから時間が経っている可能性があります。

無効

無効チケットは、まだ使用可能になっていない遅延チケットです。無効チケットは、有効になるまでアプリケーションサーバーから拒否されます。これを有効にするには、開始時期が過ぎたあと、TGS 要求で VALIDATE フラグをオンにしてクライアントがこのチケットを KDC に提示する必要があります。

遅延可能 / 遅延

遅延チケットは、作成されても指定された時期まで有効にならないチケットです。たとえばこのようなチケットは、夜遅く実行するバッチジョブに使用するのに便利です。チケットが盗まれてもバッチジョブが実行されるまで使用できないためです。「遅延」チケットは「無効」チケットとして発行されます。開始時期がきてクライアントが KDC から検証を受けるまでは、無効チケットのままです。遅延チケットは通常、チケット認可チケットの有効期限まで有効です。ただし、チケットに「更新可能」が指定されている場合、その有効期限は通常、チケット認可チケットの有効期限に設定されます。

プロキシ可能 / プロキシ

場合によっては、サービスがそれ自身のために操作できることが主体にとって必要な場合があります。たとえば、主体がサービスを要求して、サーバーとクライアント以外のホストで印刷ジョブを実行するとします。サービスにはクライアントの ID を使用する権限が必要になりますが、その権限はこの操作だけに制限する必要があります。その場合、サービスは、クライアントの「プロキシ」として動作するといいます。チケットを作成するときには、プロキシの主体名を指定する必要があります。

「プロキシ可能」チケットは「転送可能」チケットに似ていますが、プロキシ可能チケットが 1 つのサービスに対してだけ有効であることに対し、転送可能チケットはサービスに対しクライアントの識別情報の完全な使用を許可します。したがって、転送可能チケットは一種のスーパープロキシと考えられます。

更新可能

チケットに非常に長い有効期限を与えるとセキュリティを損なうおそれがあるため、チケットを「更新可能」にすることができます。更新可能チケットには 2 つの有効期限があります。1 つはチケットの現在のインスタンスの有効期限で、もう 1 つは任意のチケットの最長有効期限です。クライアントがチケットの使用を継続したいときは、最初の有効期限が切れる前にチケットの有効期限を更新します。たとえば、すべてのチケットの最長有効期限が 10 時間のときに、あるチケットが 1 時間だけ有効だとします。このチケットを保持するクライアントが 1 時間を超えて使用したい場合は、その時間内にチケットの有効期限を更新する必要があります。チケットが最長有効期限 (10 時間) に達すると、チケットの有効期限が自動的に切れ、それ以上更新できなくなります。

チケットを表示してその属性を見る方法については、チケットを表示する方法を参照してください。

チケットの有効期限

主体がチケットを取得すると、チケット認可チケットであっても、チケットの有効期限は次の中で最も小さい値に設定されます。

図 13–1 は、TGT の有効期限の決定方法と 4 つの有効期限値の指定元を示しています。この図は TGT の有効期限がどのようにして決まるかを示しますが、基本的には、どの主体がチケットを取得する場合でも同じです。違いは、kinit で有効期限値を指定しないことと、krbtgt/realm 主体の代わりに、チケットを提供するサービス主体が最長有効期限値を提供することです。

図 13–1 TGT の有効期限の決定方法

kinit コマンド、ユーザー主体、サイトデフォルト、チケット認可者のどれかによって与えられる最小値が、チケットの有効期限となります。

「更新可能」チケットの有効期限も次の 4 つの最小値で決まります。ただし、この場合は更新可能有効期限が使用されます。

主体名

チケットは主体名で識別され、主体名はユーザーやサービスを識別します。 次の表に主体名の例を示します。

表 13–4 主体名の例

主体名 

説明 

root/boston.example.com@EXAMPLE.COM

NFS クライアントの root アカウントに関連付けられた主体。root 主体と呼ばれ、認証された NFS マウントを正常終了する場合に必要

host/boston.example.com@EXAMPLE.COM

ネットワークアプリケーションサーバー (ftpdtelnetd など) によって使用される主体。この主体は、pam_krb5 認証モジュールでも使用される。この主体は host またはサービス主体と呼ばれる

username@EXAMPLE.COM

ユーザー用の主体 

username/admin@EXAMPLE.COM

KDC データベースを管理するために使用できる admin 主体

nfs/boston.example.com@EXAMPLE.COM

NFS サービスによって使用される主体。この主体は host 主体の代わりに使用できる

K/M@EXAMPLE.COM

マスター鍵名の主体。各マスター KDC には、1 つのマスター鍵名の主体が関連付けられる 

kadmin/history@EXAMPLE.COM

この主体に含まれる鍵を使用して、ほかの主体のパスワード履歴が保管される。各マスター KDC には、これらの主体のいずれかが割り当てられる 

kadmin/kdc1.example.com@EXAMPLE.COM

kadmind を使用して KDC にアクセスできるマスター KDC サーバーの主体

changepw/kdc1.example.com@EXAMPLE.COM

パスワードを変更するときに、KDC にアクセスできるマスター KDC の主体 

krbtgt/EXAMPLE.COM@EXAMPLE.COM

この主体を使用して、チケット認可チケットを生成する