RPC(3) FreeBSD ライブラリ関数マニュアル RPC(3)
名称
rpc_secure − 安全なリモートプロシージャコールのためのライブラリルーチン |
書式
#include <rpc/rpc.h> AUTH * |
authdes_create(char *name, unsigned window, struct sockaddr *addr,des_block *ckey); int
authdes_getucred(struct authdes_cred *adc, uid_t *uid, gid_t *gid, int *grouplen, gid_t *groups); int int int int int int int int int 解説 |
このルーチンは、 RPC ライブラリの一部で、 DES 認証を実現しています。 RPC の詳細については、 rpc(3) を参照してください。 DES 認証として知られる、 RPC 安全認証システムのインタフェースとなる最初の ルーチンは、 authdes_create() です。次のルーチンは authdes_getucred() で す。 注意: DES 認証システムを動作させるには、キーサーバデーモン keyserv(8) を 実行する必要があります。 クライアント側で使用する authdes_create() は、安全認証システムを使用でき るようにする認証ハンドルを戻します。最初のパラメータ name は、サーバプロ セスの所有者のネットワーク名、つまり netname です。通常の場合、このフィー ルドは、ユーティリティルーチン host2netname() から引き出された hostname を表しますが、 user2netname() を使用してユーザ名を表すこともできます。第 2 フィールドは、クライアント証明書の正当性に関するウィンドウで、秒単位で 指定されます。小さいウィンドウの方が大きいウィンドウより安全ですが、ウィ ンドウを小さくしすぎると、クロックの揺れのため、再同期化の頻度が上がりま す。第 3 パラメータ addr はオプションです。このパラメータを NULL にする と、ローカルクロックとサーバのクロックで常に同期が取られていることを認証 システムが仮定するため、再同期化は実行されなくなります。しかしアドレスを 指定すると、システムは、再同期化が必要な時は常に、そのアドレスを使用して リモートタイムサービスから情報を得ます。通常の場合、このパラメータは RPC サーバのアドレスになります。最後のパラメータ ckey もオプションです。この パラメータを NULL にすると、認証システムは、証明書の暗号化に使用するラン ダムな DES キーを作成します。このパラメータを指定すると、それがランダムな キーの代わりに使用されます。 DES 認証の第 2 ルーチン authdes_getucred() は、オペレーティングシステムに 依存しない DES 証明書を UNIX 証明書に変換するためにサーバ側で使用されま す。 authdes_getucred() はキャッシュから情報を引き出すので、情報を得よう として関数が呼び出されるたびに Yellow Page 検索をする必要はないという面 で、ユーティリティルーチン netname2user() とは異なります。 getnetname() は、固有でありオペレーティングシステムに依存しない、呼び出し 側のネット名を固定長配列 name にインストールします。問題がない場合は TRUE を戻し、問題がある場合は FALSE を戻します。 host2netname() は、ドメイン特有なホスト名をオペレーティングシステムに依存 しないネット名に変換します。問題がない場合は TRUE を戻し、問題がある場合 は FALSE を戻します。これは、 netname2host() の逆です。 key_decryptsession() は、 RPC の安全認証システム ( DES 認証) に関連した キーサーバデーモンとのインタフェースです。このルーチン、およびこのルーチ ンに関連した key_encryptsession(), key_gendes(), key_setsecret() をユーザ プログラムが呼び出す必要はほとんどありません。 login(1) などのシステムコ マンドと RPC ライブラリが、この 4 つのルーチンの主なクライアントです。 key_decryptsession() は、サーバのネット名と DES キーを受け取り、サーバの 公開鍵と呼び出しプロセスの実効ユーザ ID に関連した秘密鍵を使用してキーを 復号化します。これは、 key_encryptsession() の逆です。 key_encryptsession() は、キーサーバインタフェースルーチンです。サーバの ネット名と DES キーを受け取り、サーバの公開鍵と呼び出しプロセスの実効ユー ザ ID に関連した秘密鍵を使用してキーを暗号化します。これは、 key_decryptsession() の逆です。 key_gendes() は、キーサーバインタフェースルーチンです。安全な変換キーを キーサーバに要求するために使用します。大抵の場合、 1 つの "ランダム" を選 択するだけでは十分ではありません。なぜなら、現在時刻を利用する様なランダ ム数値のよくある選択方法はとても容易に推測できるからです。 key_setsecret() は、キーサーバインタフェースルーチンです。呼び出しプロセ スの実効 uid のキーを設定するために使用します。 netname2host() は、オペレーティングシステムに依存しないネット名をドメイン 特有のホスト名に変換します。問題がない場合は TRUE を戻し、問題がある場合 は FALSE を戻します。これは、 host2netname() の逆です。 netname2user() は、オペレーティングシステムに依存しないネット名をドメイン 特有のユーザ ID に変換します。問題がない場合は TRUE を戻し、問題がある場 合は FALSE を戻します。これは、 user2netname() の逆です。 user2netname() は、ドメイン特有のユーザ名をオペレーティングシステムに依存 しないネット名に変換します。問題がない場合は TRUE を戻し、問題がある場合 は FALSE を戻します。これは、 netname2user() の逆です。 |
関連項目
以下のマニュアル |
Remote Procedure Calls: Protocol Specification. Remote Procedure Call Programming Guide. Rpcgen Programming Guide. RPC: Remote Procedure Call Protocol Specification, RFC1050, SunMicrosystems Inc., USC-ISI. FreeBSD 10.0 February 16, 1988 FreeBSD 10.0