doc/documentation/manual-pages/ja/man3/rpc_secure.3
Sergio Carlavilla Delgado 989d921f5d Migrate doc to Hugo/AsciiDoctor
I'm very pleased to announce the release of
our new website and documentation using
the new toolchain with Hugo and AsciiDoctor.

To get more information about the new toolchain
please read the FreeBSD Documentation Project Primer[1],
Hugo docs[2] and AsciiDoctor docs[3].

Acknowledgment:
Benedict Reuschling <bcr@>
Glen Barber <gjb@>
Hiroki Sato <hrs@>
Li-Wen Hsu <lwhsu@>
Sean Chittenden <seanc@>
The FreeBSD Foundation

[1] https://docs.FreeBSD.org/en/books/fdp-primer/
[2] https://gohugo.io/documentation/
[3] https://docs.asciidoctor.org/home/

Approved by:    doceng, core
2021-01-26 00:31:29 +01:00

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