RPC(3)

명칭
rpc_secure - 안전한 리모트 프로듀서 콜을 위한 프로그램 라이브러리 routine

서식
<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 getnetname(char *name) int host2netname(char *name, char *host, char *domain) int key_decryptsession(const char *remotename, des_block *deskey) int key_encryptsession(const char *remotename, des_block *deskey) int key_gendes(des_block *deskey) int key_setsecret(const char *key) int netname2host(char *name, char *host, int hostlen) int netname2user(char *name, uid_t *uidp, gid_t *gidp, int *gidlenp, gid_t *gidlist) int user2netname(char *name, uid_t uid, char *domain)

해설
이 routine는, RPC 프로그램 라이브러리의 일부로, DES 인증을 실현하고 있습니다. RPC 의 상세한 것에 대하여는, rpc(3) (을)를 참조해 주세요.

DES 인증으로서 알려진, RPC 안전 인증 시스템의 인터페이스가 되는 최초의 routine는, authdes_create() 입니다. 다음의 routine는 authdes_getucred() 입니다.

주의: DES 인증 시스템을 동작시키려면 , 키 서버 demon keyserv(8) (을)를 실행할 필요가 있습니다.

클라이언트측에서 사용한다 authdes_create() (은)는, 안전 인증 시스템을 사용할 수 있도록(듯이) 하는 인증 핸들을 되돌립니다. 최초의 파라미터 name (은)는, 서버 프로세스의 소유자의 네트워크명, 즉 netname 입니다. 통상의 경우, 이 필드는, 유틸리티루틴 host2netname() (으)로부터 나타났다 hostname (을)를 나타냅니다만, user2netname() (을)를 사용해 유저명을 나타낼 수도 있습니다. 제 2 필드는, 클라이언트 증명서의 정당성에 관한 윈도우로, 초단위로 지정됩니다. 작은 윈도우가 큰 윈도우보다 안전합니다만, 윈도우를 작게 너무 작게 하면(자) , 클락의 흔들림이기 때문에, 재동기화의 빈도가 오릅니다. 제 3 파라미터 addr (은)는 옵션입니다. 이 파라미터를 NULL (으)로 하면(자), 로컬 클락과 서버의 클락으로 항상 동기가 놓치고 있다 일을 인증 시스템이 가정하기 (위해)때문에, 재동기화는 실행되지 않게 됩니다. 그러나 주소를 지정하면(자), 시스템은, 재동기화가 필요한 때는 항상, 그 주소를 사용해 리모트 타임 서비스로부터 정보를 얻습니다. 통상의 경우, 이 파라미터는 RPC 서버의 주소가 됩니다. 마지막 파라미터 ckey 도 옵션입니다. 이 파라미터를 NULL (으)로 하면(자), 인증 시스템은, 증명서의 암호화에 사용하는 랜덤인 DES 키를 작성합니다. 이 파라미터를 지정하면(자), 그것이 랜덤인 키 대신에 사용됩니다.

DES 인증의 제 2 routine authdes_getucred() (은)는, operating system에 의존하지 않는다 DES 증명서를 UNIX 증명서로 변환하기 위해서(때문에) 서버측에서 사용됩니다. authdes_getucred() (은)는 캐쉬로부터 정보를 꺼내므로, 정보를 얻으려고 함수가 불려 갈 때마다 Yellow Page 검색을 할 필요는 없다고 하는 면에서, 유틸리티루틴 netname2user() (와)과는 다릅니다.

getnetname() (은)는, 고유하고 operating system에 의존하지 않는, 호출측의 넷명을 고정 쵸하이열 name 에 인스톨 합니다. 문제가 없는 경우는 TRUE (을)를 되돌려, 문제가 있는 경우는 FALSE (을)를 되돌립니다.

host2netname() (은)는, 도메인 특유인 호스트명을 operating system에 의존하지 않는다 넷명으로 변환합니다. 문제가 없는 경우는 TRUE (을)를 되돌려, 문제가 있는 경우는 FALSE (을)를 되돌립니다. 이것은, netname2host() 의 역입니다.

key_decryptsession() (은)는, RPC 의 안전 인증 시스템 ( DES 인증)에 관련한 키 서버 demon와의 인터페이스입니다. 이 routine, 및 이 routine에 관련했다 key_encryptsession(), key_gendes(), key_setsecret() (을)를 유저 프로그램이 호출할 필요는 거의 없습니다. login(1) 등의 시스템 명령와 RPC 프로그램 라이브러리가, 이 4 개의 routine의 주된 클라이언트입니다.

key_decryptsession() (은)는, 서버의 넷명과 DES 키를 받아, 서버의 공개열쇠라고 불러 방편 프로세스의 실효 유저 ID 에 관련한 비밀열쇠를 사용해 키를 복호화(decode) 합니다. 이것은, key_encryptsession() 의 역입니다.

key_encryptsession() (은)는, 키 서버 인터페이스 routine입니다. 서버의 넷명과 DES 키를 받아, 서버의 공개열쇠라고 불러 방편 프로세스의 실효 유저 ID 에 관련한 비밀열쇠를 사용해 키를 암호화합니다. 이것은, key_decryptsession() 의 역입니다.

key_gendes() (은)는, 키 서버 인터페이스 routine입니다. 안전한 변환 키를 키 서버에 요구하기 위해서 사용합니다. 대체로의 경우, 1 개(살)의 "랜덤" (을)를 선택하는 것 만으로는 충분하지는 않습니다. 왜냐하면, 현재 시각을 이용하는 것 같은 랜덤 수치가 좋게 있는 선택 방법은 매우 용이하게 추측할 수 있기 때문입니다.

key_setsecret() (은)는, 키 서버 인터페이스 routine입니다. 호출 프로세스의 실효 uid 의 키를 설정하기 위해서 사용합니다.

netname2host() (은)는, operating system에 의존하지 않는 넷명을 도메인 특유의 호스트명으로 변환합니다. 문제가 없는 경우는 TRUE (을)를 되돌려, 문제가 있는 경우는 FALSE (을)를 되돌립니다. 이것은, host2netname() 의 역입니다.

netname2user() (은)는, operating system에 의존하지 않는 넷명을 도메인 특유의 유저 ID (으)로 변환합니다. 문제가 없는 경우는 TRUE (을)를 되돌려, 문제가 있는 경우는 FALSE (을)를 되돌립니다. 이것은, user2netname() 의 역입니다.

user2netname() (은)는, 도메인 특유의 유저명을 operating system에 의존하지 않는다 넷명으로 변환합니다. 문제가 없는 경우는 TRUE (을)를 되돌려, 문제가 있는 경우는 FALSE (을)를 되돌립니다. 이것은, netname2user() 의 역입니다.

관련 항목
rpc(3), xdr(3), keyserv(8)

이하의 메뉴얼 Remote Procedure Calls: Protocol Specification. Remote Procedure Call Programming Guide. Rpcgen Programming Guide. RPC: Remote Procedure Call Protocol Specification, RFC1050, Sun Microsystems Inc., USC-ISI.