.\" @(#) 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: doc/ja_JP.eucJP/man/man3/rpc_secure. 3, v 1.5 2002/05/18 07:12:56 horikawa Exp $ .\" .\" $Id: rpc_secure.3,v 1.2 2002/11/19 19:14:46 perky Exp $ .Dd February 16, 1988 .Dt RPC 3 .Os .Sh ¸íĪ .Nm rpc_secure .Nd ¾ÈÀüÇÑ ¸®¸ðÆ® ÇÁ·Îµà¼­ ÄÝÀ» À§ÇÑ ÇÁ·Î±×·¥ ¶óÀ̺귯¸® routine .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 ÇØ¼³ ÀÌ routine´Â, .Tn RPC ÇÁ·Î±×·¥ ¶óÀ̺귯¸®ÀÇ ÀϺηÎ, .Tn DES ÀÎÁõÀ» ½ÇÇöÇϰí ÀÖ½À´Ï´Ù. .Tn RPC ÀÇ »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â, .Xr rpc 3 (À»)¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. .Pp .Tn DES ÀÎÁõÀ¸·Î¼­ ¾Ë·ÁÁø, .Tn RPC ¾ÈÀü ÀÎÁõ ½Ã½ºÅÛÀÇ ÀÎÅÍÆäÀ̽º°¡ µÇ´Â ÃÖÃÊÀÇ routine´Â, .Fn authdes_create ÀÔ´Ï´Ù. ´ÙÀ½ÀÇ routine´Â .Fn authdes_getucred ÀÔ´Ï´Ù. .Pp ÁÖÀÇ: .Tn DES ÀÎÁõ ½Ã½ºÅÛÀ» µ¿ÀÛ½ÃŰ·Á¸é , Ű ¼­¹ö demon .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 routine .Fn authdes_getucred (Àº)´Â, operating system¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â´Ù .Tn DES Áõ¸í¼­¸¦ .Ux Áõ¸í¼­·Î º¯È¯Çϱâ À§Çؼ­(¶§¹®¿¡) ¼­¹öÃø¿¡¼­ »ç¿ëµË´Ï´Ù. .Fn authdes_getucred (Àº)´Â ij½¬·ÎºÎÅÍ Á¤º¸¸¦ ²¨³»¹Ç·Î, Á¤º¸¸¦ ¾òÀ¸·Á°í ÇÔ¼ö°¡ ºÒ·Á °¥ ¶§¸¶´Ù Yellow Page °Ë»öÀ» ÇÒ ÇÊ¿ä´Â ¾ø´Ù°í ÇÏ´Â ¸é¿¡¼­, À¯Æ¿¸®Æ¼·çƾ .Fn netname2user (¿Í)°ú´Â ´Ù¸¨´Ï´Ù. .Pp .Fn getnetname (Àº)´Â, °íÀ¯Çϰí operating system¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â, È£ÃâÃøÀÇ ³Ý¸íÀ» °íÁ¤ ÃÝÇÏÀÌ¿­ .Fa name ¿¡ ÀνºÅç ÇÕ´Ï´Ù. ¹®Á¦°¡ ¾ø´Â °æ¿ì´Â .Dv TRUE (À»)¸¦ µÇµ¹·Á, ¹®Á¦°¡ ÀÖ´Â °æ¿ì´Â .Dv FALSE (À»)¸¦ µÇµ¹¸³´Ï´Ù. .Pp .Fn host2netname (Àº)´Â, µµ¸ÞÀΠƯÀ¯ÀΠȣ½ºÆ®¸íÀ» operating system¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â´Ù ³Ý¸íÀ¸·Î º¯È¯ÇÕ´Ï´Ù. ¹®Á¦°¡ ¾ø´Â °æ¿ì´Â .Dv TRUE (À»)¸¦ µÇµ¹·Á, ¹®Á¦°¡ ÀÖ´Â °æ¿ì´Â .Dv FALSE (À»)¸¦ µÇµ¹¸³´Ï´Ù. À̰ÍÀº, .Fn netname2host ÀÇ ¿ªÀÔ´Ï´Ù. .Pp .Fn key_decryptsession (Àº)´Â, .Tn RPC ÀÇ ¾ÈÀü ÀÎÁõ ½Ã½ºÅÛ ( .Tn DES ÀÎÁõ)¿¡ °ü·ÃÇÑ Å° ¼­¹ö demon¿ÍÀÇ ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. ÀÌ routine, ¹× ÀÌ routine¿¡ °ü·ÃÇß´Ù .Fn key_encryptsession , .Fn key_gendes , .Fn key_setsecret (À»)¸¦ À¯Àú ÇÁ·Î±×·¥ÀÌ È£ÃâÇÒ ÇÊ¿ä´Â °ÅÀÇ ¾ø½À´Ï´Ù. .Xr login 1 µîÀÇ ½Ã½ºÅÛ ¸í·É¿Í .Tn RPC ÇÁ·Î±×·¥ ¶óÀ̺귯¸®°¡, ÀÌ 4 °³ÀÇ routineÀÇ ÁÖµÈ Å¬¶óÀ̾ðÆ®ÀÔ´Ï´Ù. .Pp .Fn key_decryptsession (Àº)´Â, ¼­¹öÀÇ ³Ý¸í°ú .Tn DES ۸¦ ¹Þ¾Æ, ¼­¹öÀÇ °ø°³¿­¼è¶ó°í ºÒ·¯ ¹æÆí ÇÁ·Î¼¼½ºÀÇ ½ÇÈ¿ À¯Àú ID ¿¡ °ü·ÃÇÑ ºñ¹Ð¿­¼è¸¦ »ç¿ëÇØ ۸¦ º¹È£È­(decode) ÇÕ´Ï´Ù. À̰ÍÀº, .Fn key_encryptsession ÀÇ ¿ªÀÔ´Ï´Ù. .Pp .Fn key_encryptsession (Àº)´Â, Ű ¼­¹ö ÀÎÅÍÆäÀ̽º routineÀÔ´Ï´Ù. ¼­¹öÀÇ ³Ý¸í°ú .Tn DES ۸¦ ¹Þ¾Æ, ¼­¹öÀÇ °ø°³¿­¼è¶ó°í ºÒ·¯ ¹æÆí ÇÁ·Î¼¼½ºÀÇ ½ÇÈ¿ À¯Àú ID ¿¡ °ü·ÃÇÑ ºñ¹Ð¿­¼è¸¦ »ç¿ëÇØ ۸¦ ¾ÏȣȭÇÕ´Ï´Ù. À̰ÍÀº, .Fn key_decryptsession ÀÇ ¿ªÀÔ´Ï´Ù. .Pp .Fn key_gendes (Àº)´Â, Ű ¼­¹ö ÀÎÅÍÆäÀ̽º routineÀÔ´Ï´Ù. ¾ÈÀüÇÑ º¯È¯ ۸¦ Ű ¼­¹ö¿¡ ¿ä±¸Çϱâ À§Çؼ­ »ç¿ëÇÕ´Ï´Ù. ´ëü·ÎÀÇ °æ¿ì, 1 °³(»ì)ÀÇ .Qq ·£´ý (À»)¸¦ ¼±ÅÃÇÏ´Â °Í ¸¸À¸·Î´Â ÃæºÐÇÏÁö´Â ¾Ê½À´Ï´Ù. ¿Ö³ÄÇϸé, ÇöÀç ½Ã°¢À» ÀÌ¿ëÇÏ´Â °Í °°Àº ·£´ý ¼öÄ¡°¡ ÁÁ°Ô ÀÖ´Â ¼±Åà ¹æ¹ýÀº ¸Å¿ì ¿ëÀÌÇÏ°Ô ÃßÃøÇÒ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù. .Pp .Fn key_setsecret (Àº)´Â, Ű ¼­¹ö ÀÎÅÍÆäÀ̽º routineÀÔ´Ï´Ù. È£Ãâ ÇÁ·Î¼¼½ºÀÇ ½ÇÈ¿ .Fa uid ÀÇ Å°¸¦ ¼³Á¤Çϱâ À§Çؼ­ »ç¿ëÇÕ´Ï´Ù. .Pp .Fn netname2host (Àº)´Â, operating system¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â ³Ý¸íÀ» µµ¸ÞÀΠƯÀ¯ÀÇ È£½ºÆ®¸íÀ¸·Î º¯È¯ÇÕ´Ï´Ù. ¹®Á¦°¡ ¾ø´Â °æ¿ì´Â .Dv TRUE (À»)¸¦ µÇµ¹·Á, ¹®Á¦°¡ ÀÖ´Â °æ¿ì´Â .Dv FALSE (À»)¸¦ µÇµ¹¸³´Ï´Ù. À̰ÍÀº, .Fn host2netname ÀÇ ¿ªÀÔ´Ï´Ù. .Pp .Fn netname2user (Àº)´Â, operating system¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â ³Ý¸íÀ» µµ¸ÞÀΠƯÀ¯ÀÇ À¯Àú ID (À¸)·Î º¯È¯ÇÕ´Ï´Ù. ¹®Á¦°¡ ¾ø´Â °æ¿ì´Â .Dv TRUE (À»)¸¦ µÇµ¹·Á, ¹®Á¦°¡ ÀÖ´Â °æ¿ì´Â .Dv FALSE (À»)¸¦ µÇµ¹¸³´Ï´Ù. À̰ÍÀº, .Fn user2netname ÀÇ ¿ªÀÔ´Ï´Ù. .Pp .Fn user2netname (Àº)´Â, µµ¸ÞÀΠƯÀ¯ÀÇ À¯Àú¸íÀ» operating system¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â´Ù ³Ý¸íÀ¸·Î º¯È¯ÇÕ´Ï´Ù. ¹®Á¦°¡ ¾ø´Â °æ¿ì´Â .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