aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man3/rpc_secure.3
blob: a11b9dd7b9a4f500e2e2596676ca17030ad4b69d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
.\" @(#)rpc_secure.3n	2.1 88/08/08 4.0 RPCSRC; from 1.19 88/06/24 SMI
.\" %Id: rpc_secure.3,v 1.3 1998/01/16 13:33:09 bde Exp %
.\" $FreeBSD$
.Dd February 16, 1988
.Dt RPC 3
.Sh 名称
.Nm rpc_secure
.Nd 安全なリモートプロシージャコールのためのライブラリルーチン
.Sh 書式
.Fd #include <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