235 lines
5.7 KiB
Groff
235 lines
5.7 KiB
Groff
.\" @(#)rpc_secure.3n 2.1 88/08/08 4.0 RPCSRC; from 1.19 88/06/24 SMI
|
|
.\" %FreeBSD: src/lib/libc/rpc/rpc_secure.3,v 1.6.2.5 2001/12/14 18:33:57 ru Exp %
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.\" $Id: rpc_secure.3,v 1.5 2002-05-18 07:12:56 horikawa Exp $
|
|
.Dd February 16, 1988
|
|
.Dt RPC 3
|
|
.Os
|
|
.Sh 名称
|
|
.Nm rpc_secure
|
|
.Nd 安全なリモートプロシージャコールのためのライブラリルーチン
|
|
.Sh 書式
|
|
.In rpc/rpc.h
|
|
.Ft AUTH *
|
|
.Fo authdes_create
|
|
.Fa "char *name"
|
|
.Fa "unsigned window"
|
|
.Fa "struct sockaddr *addr"
|
|
.Fa "des_block *ckey"
|
|
.Fc
|
|
.Ft int
|
|
.Fn authdes_getucred "struct authdes_cred *adc" "uid_t *uid" "gid_t *gid" "int *grouplen" "gid_t *groups"
|
|
.Ft int
|
|
.Fn getnetname "char *name"
|
|
.Ft int
|
|
.Fn host2netname "char *name" "char *host" "char *domain"
|
|
.Ft int
|
|
.Fn key_decryptsession "const char *remotename" "des_block *deskey"
|
|
.Ft int
|
|
.Fn key_encryptsession "const char *remotename" "des_block *deskey"
|
|
.Ft int
|
|
.Fn key_gendes "des_block *deskey"
|
|
.Ft int
|
|
.Fn key_setsecret "const char *key"
|
|
.Ft int
|
|
.Fn netname2host "char *name" "char *host" "int hostlen"
|
|
.Ft int
|
|
.Fn netname2user "char *name" "uid_t *uidp" "gid_t *gidp" "int *gidlenp" "gid_t *gidlist"
|
|
.Ft int
|
|
.Fn user2netname "char *name" "uid_t uid" "char *domain"
|
|
.Sh 解説
|
|
このルーチンは、
|
|
.Tn RPC
|
|
ライブラリの一部で、
|
|
.Tn DES
|
|
認証を実現しています。
|
|
.Tn RPC
|
|
の詳細については、
|
|
.Xr rpc 3
|
|
を参照してください。
|
|
.Pp
|
|
.Tn DES
|
|
認証として知られる、
|
|
.Tn RPC
|
|
安全認証システムのインタフェースとなる最初のルーチンは、
|
|
.Fn authdes_create
|
|
です。次のルーチンは
|
|
.Fn authdes_getucred
|
|
です。
|
|
.Pp
|
|
注意:
|
|
.Tn DES
|
|
認証システムを動作させるには、キーサーバデーモン
|
|
.Xr keyserv 8
|
|
を実行する必要があります。
|
|
.Pp
|
|
クライアント側で使用する
|
|
.Fn authdes_create
|
|
は、安全認証システムを使用できるようにする認証ハンドルを戻します。
|
|
最初のパラメータ
|
|
.Fa name
|
|
は、サーバプロセスの所有者のネットワーク名、つまり
|
|
.Fa netname
|
|
です。通常の場合、このフィールドは、ユーティリティルーチン
|
|
.Fn host2netname
|
|
から引き出された
|
|
.Fa hostname
|
|
を表しますが、
|
|
.Fn user2netname
|
|
を使用してユーザ名を表すこともできます。第 2 フィールドは、
|
|
クライアント証明書の正当性に関するウィンドウで、秒単位で指定されます。
|
|
小さいウィンドウの方が大きいウィンドウより安全ですが、ウィンドウを
|
|
小さくしすぎると、クロックの揺れのため、再同期化の頻度が
|
|
上がります。第 3 パラメータ
|
|
.Fa addr
|
|
はオプションです。このパラメータを
|
|
.Dv NULL
|
|
にすると、ローカルクロックとサーバのクロックで常に同期が取られている
|
|
ことを認証システムが仮定するため、再同期化は実行されなくなります。
|
|
しかしアドレスを指定すると、システムは、再同期化が必要な時は常に、
|
|
そのアドレスを使用してリモートタイムサービスから情報を得ます。
|
|
通常の場合、このパラメータは
|
|
.Tn RPC
|
|
サーバのアドレスになります。最後のパラメータ
|
|
.Fa ckey
|
|
もオプションです。このパラメータを
|
|
.Dv NULL
|
|
にすると、認証システムは、証明書の暗号化に使用するランダムな
|
|
.Tn DES
|
|
キーを作成します。このパラメータを指定すると、それが
|
|
ランダムなキーの代わりに使用されます。
|
|
.Pp
|
|
.Tn DES
|
|
認証の第 2 ルーチン
|
|
.Fn authdes_getucred
|
|
は、オペレーティングシステムに依存しない
|
|
.Tn DES
|
|
証明書を
|
|
.Ux
|
|
証明書に変換するためにサーバ側で使用されます。
|
|
.Fn authdes_getucred
|
|
はキャッシュから情報を引き出すので、情報を得ようとして関数が
|
|
呼び出されるたびに
|
|
Yellow Page 検索をする必要はないという面で、ユーティリティルーチン
|
|
.Fn netname2user
|
|
とは異なります。
|
|
.Pp
|
|
.Fn getnetname
|
|
は、固有でありオペレーティングシステムに依存しない、呼び出し側のネット名を
|
|
固定長配列
|
|
.Fa name
|
|
にインストールします。問題がない場合は
|
|
.Dv TRUE
|
|
を戻し、問題がある場合は
|
|
.Dv FALSE
|
|
を戻します。
|
|
.Pp
|
|
.Fn host2netname
|
|
は、ドメイン特有なホスト名をオペレーティングシステムに依存しない
|
|
ネット名に変換します。問題がない場合は
|
|
.Dv TRUE
|
|
を戻し、問題がある場合は
|
|
.Dv FALSE
|
|
を戻します。これは、
|
|
.Fn netname2host
|
|
の逆です。
|
|
.Pp
|
|
.Fn key_decryptsession
|
|
は、
|
|
.Tn RPC
|
|
の安全認証システム (
|
|
.Tn DES
|
|
認証) に関連したキーサーバデーモンとのインタフェースです。
|
|
このルーチン、およびこのルーチンに関連した
|
|
.Fn key_encryptsession ,
|
|
.Fn key_gendes ,
|
|
.Fn key_setsecret
|
|
をユーザプログラムが呼び出す必要はほとんどありません。
|
|
.Xr login 1
|
|
などのシステムコマンドと
|
|
.Tn RPC
|
|
ライブラリが、この
|
|
4 つのルーチンの主なクライアントです。
|
|
.Pp
|
|
.Fn key_decryptsession
|
|
は、サーバのネット名と
|
|
.Tn DES
|
|
キーを受け取り、サーバの公開鍵と呼び出しプロセスの実効ユーザ
|
|
ID
|
|
に関連した秘密鍵を使用してキーを復号化します。これは、
|
|
.Fn key_encryptsession
|
|
の逆です。
|
|
.Pp
|
|
.Fn key_encryptsession
|
|
は、キーサーバインタフェースルーチンです。サーバのネット名と
|
|
.Tn DES
|
|
キーを受け取り、サーバの公開鍵と呼び出しプロセスの実効ユーザ
|
|
ID
|
|
に関連した秘密鍵を使用してキーを暗号化します。これは、
|
|
.Fn key_decryptsession
|
|
の逆です。
|
|
.Pp
|
|
.Fn key_gendes
|
|
は、キーサーバインタフェースルーチンです。安全な変換キーをキーサーバに
|
|
要求するために使用します。大抵の場合、
|
|
1 つの
|
|
.Qq ランダム
|
|
を選択するだけでは十分ではありません。なぜなら、
|
|
現在時刻を利用する様なランダム数値のよくある選択方法は
|
|
とても容易に推測できるからです。
|
|
.Pp
|
|
.Fn key_setsecret
|
|
は、キーサーバインタフェースルーチンです。呼び出しプロセスの実効
|
|
.Fa uid
|
|
のキーを設定するために使用します。
|
|
.Pp
|
|
.Fn netname2host
|
|
は、オペレーティングシステムに依存しないネット名をドメイン特有の
|
|
ホスト名に変換します。問題がない場合は
|
|
.Dv TRUE
|
|
を戻し、問題がある場合は
|
|
.Dv FALSE
|
|
を戻します。これは、
|
|
.Fn host2netname
|
|
の逆です。
|
|
.Pp
|
|
.Fn netname2user
|
|
は、オペレーティングシステムに依存しないネット名をドメイン特有のユーザ
|
|
ID
|
|
に変換します。問題がない場合は
|
|
.Dv TRUE
|
|
を戻し、問題がある場合は
|
|
.Dv FALSE
|
|
を戻します。これは、
|
|
.Fn user2netname
|
|
の逆です。
|
|
.Pp
|
|
.Fn user2netname
|
|
は、ドメイン特有のユーザ名をオペレーティングシステムに依存しない
|
|
ネット名に変換します。問題がない場合は
|
|
.Dv TRUE
|
|
を戻し、問題がある場合は
|
|
.Dv FALSE
|
|
を戻します。これは、
|
|
.Fn netname2user
|
|
の逆です。
|
|
.Sh 関連項目
|
|
.Xr rpc 3 ,
|
|
.Xr xdr 3 ,
|
|
.Xr keyserv 8
|
|
.Pp
|
|
以下のマニュアル
|
|
.Rs
|
|
.%B Remote Procedure Calls: Protocol Specification
|
|
.Re
|
|
.Rs
|
|
.%B Remote Procedure Call Programming Guide
|
|
.Re
|
|
.Rs
|
|
.%B Rpcgen Programming Guide
|
|
.Re
|
|
.Rs
|
|
.%B RPC: Remote Procedure Call Protocol Specification
|
|
.%O RFC1050, Sun Microsystems Inc., USC-ISI
|
|
.Re
|