Subject : Introduction to NIS+
Description :
1. NIS+ ¿ë¾îÁ¤¸®
* domain : directory object ¿Í ±× ÀڽĵéÀÇ ¸ðµç°Í.
* namespace : root directory ÇÏÀÇ ¸ðµç domain À¸·Î ±¸¼ºµÊ.
* directory object : NIS+ objects ÀÇ database ¸¦ ³ªÅ¸³»°í ±× database ÀÇ
¼ÓÇÏ´Â objects ´Â ±× directory object ÀÇ children À¸·Î Ç¥ÇöµÈ´Ù.
- directory ¿Í domain Àº ´Ù¼Ò °°Àº°ÍÀ¸·Î °í·ÁµÉ¼öÀÖ´Ù.
±â¼úÀûÀ¸·Î domains Àº groups_dir °ú org_dir sub-directories ¸¦ Æ÷ÇÔ
Çϰí ÀÖ´Â NIS+ directories ÀÌ´Ù.
- NIS+ names are not case-sensitive.
* Structure of Names : ÀÌ character sequences ´Â label ·Î ºÒ¸°´Ù.
¿¹: table_name.org_dir.domainname
hosts table --> hosts.org_dir.domainname
* Serach Path : file °ú ¸¸Âù°¡Áö·Î search path ´Â table °ú °°Àº object ¸¦
ã´Âµ¥ »ç¿ëµÈ´Ù. NIS+ ´Â domainname À» objects ¸¦ ã±âÀ§ÇÑ path ·Î
»ç¿ëÇÑ´Ù. ±×·¯¹Ç·Î ÇϳªÀÇ table À» ÂüÁ¶ÇϱâÀ§Çؼ ´ç½ÅÀº directory name
org_dir À» table name °ú Á¦ÇÑÇØ¾ßÇÑ´Ù.
NIS+ ´Â domainname À» ºÙÀδÙ. default search path ¸¦ º¸±âÀ§Çؼ´Â
nisdefaults ¸¦ »ç¿ëÇÑ´Ù. default search path ¸¦ º¯°æÇϱâÀ§Çؼ´Â
NIS_PATH º¯¼ö¸¦ setting ÇÑ´Ù.
ex)hyundai3% nisdefaults
Principal Name : nobody (not authenticated)
Domain Name : svc.hei.co.kr.
Host Name : hyundai3.svc.hei.co.kr.
Group Name :
Access Rights : ----rmcdr---r---
Time to live : 12:00:00
Search Path : svc.hei.co.kr.
hei.co.kr.
co.kr.
hyundai3%
hyundai3% setenv NIS_PATH hei.co.kr
hyundai3% nisdefaults
Principal Name : nobody (not authenticated)
Domain Name : svc.hei.co.kr.
Host Name : hyundai3.svc.hei.co.kr.
Group Name :
Access Rights : ----rmcdr---r---
Time to live : 12:00:00
Search Path : hei.co.kr.
* root server : . ÀÇ server ·Î¼ namespace ±¸Á¶ÀÇ top ¿¡ À§Ä¡ÇÑ´Ù.
domain ´ç ÇϳªÀÇ root server °¡ ÀÖ´Ù.
* master server : Çϳª´Ì domain À» serve ÇÑ´Ù.ÇϳªÀÇ master server ´Â
°èÃþ±¸Á¶¿¡¼ »óÀ§ server ÀÇ client ÀÌ´Ù.
* replica server : master server ÀÇ copy. service availability ¿Í better
performance ¸¦ À§ÇØ ¸¸µé¾îÁø´Ù.
* client : name service ¸¦ ¿äûÇϴ°Í.
2. NIS+ ÀÇ ÀÕÁ¡.
* °èÃþ±¸ÀúÀÇ namespace
* ºü¸¥ table ÀÇ Àü¼Û
* È®ÀåµÈ º¸¾È.
3. Secure RPC
* Secure RPC ´Â NIS+ ¿¡ ÀÖ¾î ±âº»ÀûÀÌ´Ù. À̰ÍÀÇ ¸ñÇ¥´Â
time-shared system °ú °°ÀºÁ¤µµÀÇ ¾ÈÀüÇÑ ½Ã½ºÅÛÀ» ¸¸µå´Â°ÍÀÌ´Ù.
Áï, time-sharing system Àº login passwd ¸¦ ÅëÇÏ¿© ÇϳªÀÇ user ¸¦ °ËÁõÇÑ´Ù.
DES(Data encryption standard) µµ ¸¶Âù°¡ÁöÀÌ´Ù. user ´Â local terminal ¿¡
login ÇÒ¼öÀִ°Ͱú ¸¶Âù°¡Áö·Î ¾î¶°ÇÑ remote machine ¿¡µµ login ÇÒ¼öÀÖ´Ù.
time-sharing system ¿¡ ÀÖ¾î¼ °ËÁõµÈ »ç¶÷(trusted person) Àº ½Ã½ºÅÛ °ü¸®ÀÚ
À̸ç ÀÌ´Â µµ´öÀûÀÎ Àǹ«¸¦ °¡Áö¸ç ´©±º°¡¸¦ ±¸Ã¼ÈÇϱâÀ§ÇØ passwd ¸¦ º¯°æÇؼ´Â
¾ÈµÈ´Ù.
secure RPC ¿¡¼µµ network admin Àº public keys °¡ ÀúÀåµÈ database ³»¿¡¼
entry ¸¦ ¹Ù²ÙÁö ¾Ê¾Æ¾ßÇÑ´Ù.
¿©±â¼ ´ç½ÅÀº RPC authentication system À» ÀÌÇØÇϱâÀ§Çؼ´Â µÎ°¡ÁöÀÇ
¿ë¾î¿¡ Àͼ÷ÇØ¾ßÇÑ´Ù. credentials ¿Í verifiers.
¿¹·Î¼ ID badge ¸¦ »ç¿ëÇÒ¶§, credential Àº »ç¶÷À» ±¸º°Çϴ°ÍÀÌ´Ù.
Áï, name, address, birth date µîµî.
verifier´Â ±× badge ¿¡ ºÙÀº »çÁøÀÌ´Ù. º¸Åë badge ´Â badge »ó¿¡ »çÁøÀ» °Ë»çÇÏ¿©
»ç¶÷ÀÌ ±×°ÍÀ» À߸ø°¡Áö°í °¡´Â°ÍÀ» ¹æÁöÇÑ´Ù.
In RPC, client ´Â °¢°¢ RPC request ¿¡ °ü·ÃµÈ server ¿¡ credential °ú verifier
¸¦ °°À̺¸³½´Ù.À̶§ server ´Â ´ÜÁö verifier(»çÁø)¸¸ º¸³½´Ù. ¿Ö³ÄÇϸé
client ´Â ¹ú½á server ÀÇ credential ¸¦ ¾Ë°íÀֱ⶧¹®ÀÌ´Ù.
RPC °ËÁõÀº °³¹æÀûÀε¥ À̰ÍÀº ¿©·¯Á¾·ùÀÇ °ËÁõ½Ã½ºÅ۵鿡 RPC °ËÁõÀÌ Àû¿ë
µÉ¼ö ÀÖ´Ù´ÂÀǹ̷νá ÇöÀç µÎ°¡Áö ½Ã½ºÅÛÀÌ ÀÖ´Ù.(UNIX and DES).
network service ¿¡ ÀÇÇØ UNIX °ËÁõÀÌ »ç¿ëµÉ¶§, credential Àº
client ÀÇ machine name, user id, gid group access list¸¦ Æ÷ÇÔÇÏÁö¸¸
verifier ´Â ¾Æ¹«°Íµµ °¡ÁöÁö¾Ê´Â´Ù. ¿Ö³ÄÇϸé verifier °¡ ¾øÀ¸¸ç
superuser °¡ su °°Àº command ·Î¼ ÀûÀýÇÑ crednetials ¸¦ À¯ÃßÇÒ¼öÀֱ⶧¹®ÀÌ´Ù.
UNIX °ËÁõ¿¡ ´Ù¸¥ ¹®Á¦Á¡Àº network »óÀÇ ¸ðµç machine µéÀÌ UNIX machine À̶ó°í
°¡Á¤Çϱ⶧¹®ÀÌ´Ù. ±×·¡¼ heterogeneous network »ó¿¡¼ ´Ù¸¥ OS ¿¡
Àû¿ëµÉ¶§ UNIX °ËÁõÀº ½ÇÆÐÇÑ´Ù.
ÀÌ·¯ÇÑ UNIX °ËÁõÀÇ ¹®Á¦Á¡À» ±Øº¹ÇϱâÀ§Çؼ secure RPC ´Â DES °ËÁõÀ» »ç¿ë
ÇÑ´Ù. À̰ÍÀº verifiers ¸¦ »ç¿ëÇÏ¸ç ´ëºÎºÐÀÇ OS ¿¡ÀÇÇØ »ç¿ëµÇ¾îµµ ÃæºÐÇÏ´Ù.
4. DES Authentication
* DES °ËÁõÀº DES(Data Encryption Standard) °ú public key cryptography ¸¦
»ç¿ëÇÏ¿© network »óÀÇ user ¿Í machine À» °ËÁõÇÑ´Ù.
DES ´Â Ç¥ÁØ ¾ÏÈ£È ±â¹ýÀÌ´Ù.public key cryptography(°ø°³Å° ¾ÏÈ£ÀÛ¼º¹× ÇØµ¶¹ý)
´Â µÎ°³ÀÇ key ¸¦ °¡Áö°í ÇØµ¶ÇÏ´Â °ÍÀÌ´Ù.(one public and one private)
* DES °ËÁõ¹æ¹ýÀÇ º¸¾ÈÀº ÇöÀç½Ã°£À» ¾ÏÈ£ÈÇÏ´Â º¸³»´Â»ç¶÷ÀÇ ´É·ÂÀ» ±âº»À¸·Î
ÇϰíÀÖÀ¸¸ç ÀÌ´Â ¹Þ´ÂÂÊÀÌ ÇØµ¶Çϰí ÀÚ½ÅÀÇ ½Ã°£°ú check ÇÒ¼ö°¡ ÀÖ¾î¾ßÇÑ´Ù.
ÀÌ timestamp ´Â DES ¿Í °°ÀÌ ¾ÏȣȵȴÙ. ÀÌ timestamp ´Â µÎ°¡ÁöÀÏÀÌ ÇÊ¿äÇÏ´Ù.
ù¹øÂ°´Â µÎ agent ´Â ÇöÀç½Ã°£À» ÀÏÄ¡½ÃÄѾ߸¸µÇ°í µÎ¹øÂ°´Â º¸³»´ÂÂʰú
¹Þ´ÂÂÊÀº µ¿ÀÏÇÑ ¾ÏÈ£È key ¸¦ »ç¿ëÇØ¾ß¸¸ ÇÑ´Ù.
¸¸¾à, ÇϳªÀÇ network ÀÌ ÇϳªÀÇ syncronization program À» ¿î¿ëÇÑ´Ù¸é
±×¶§ client ¿Í server ´Â ÀÚµ¿ÀûÀ¸·Î syncronize µÈ´Ù. ¸¸¾à,
time synchronization ÀÌ °¡´ÉÇÏÁö¾Ê´Ù¸é, timestamp ´Â network time ´ë½Å¿¡
server time À» »ç¿ëÇÏ¿© °è»êµÇ¾îÁú¼ö ÀÖ´Ù.
client ´Â RPC session À» »ç¿ëÇϱâÀü¿¡ server ¿¡°Ô ½Ã°£À» ¿äûÇÒ¼öÀÖ°í ±×¶§
ÀÚ½ÅÀÇ clock °ú server clock °£ÀÇ Â÷À̸¦ °è»êÇÒ¼ö ÀÖ´Ù.
ÀÌ·¯ÇÑ ½Ã°£Â÷ÀÌ´Â timestamp ¸¦ °è»ê½Ã¿¡ client clock ÀÇ offset À¸·Î »ç¿ëµÈ´Ù.
¸¸¾à, client ¿Í server clock ÀÌ sync ¸¦ ÇÒ¼ö°¡ ¾øÀ»°æ¿ì server ´Â clientÀÇ
request ¸¦ reject Çϱâ½ÃÀÛÇϰí DES °ËÁõÀº server ¿Í resynchronize ÇÑ´Ù.
client ¿Í server °¡ random conversation key ¸¦ »ý¼ºÇÒ¶§¿¡ °°Àº encrytion
key °¡ ¸¸µé¾îÁö¸é ±×¶§ public key cryptography ¸¦ »ç¿ëÇÏ¿© common key ¸¦
À¯ÃßÇÑ´Ù. common key ´Â ´ÜÁö client¿Í server ¸¸ÀÌ deducing ÇÒ¼ö ÀÖ´Â
Ű À̸ç conversation key ´Â client ÀÇ timestamp ¸¦ ¾ÏÈ£È Çϰí ÇØµ¶Çϴµ¥
»ç¿ëµÇ´Â key ÀÌ´Ù.
common key ´Â conversation key ¸¦ ¾ÏÈ£È Çϰí ÇØµ¶Çϴµ¥ »ç¿ëµÊ.
5. A Secure RPC Client-Server Session
´ÙÀ½Àº secure RPC ¸¦ »ç¿ëÇÑ client-server session ¿¡¼¹ß»ýÇÏ´Â
transaction ÀÇ °úÁ¤ÀÌ´Ù.
a. transaction ÀÇ ¾Õ¼¼ user ´Â public key ¿Í secret key ¸¦ »ý¼ºÇÏ´Â
ÇϳªÀÇ ÇÁ·Î±×·¥À» µ¹¸°´Ù.
(°¢ À¯Àú´Â À¯ÀÏÇÑ public key ¿Í secret key ¸¦ °¡Áø´Ù.)
ÀÌ Å°´Â ¾ÏÈ£ÈµÈ ÇüÅ·Π/etc/publickey file ¿¡ ÀúÀåµÈ´Ù.
NIS map Àº publickey.byname, NIS+ ´Â cred.org_dir ÀÌ´Ù.
b. ±× user ´Â login ÇÏ¿© keylogin program À» ¼öÇàÇÑ´Ù.(¶Ç´Â keylogin
program Àº /etc/profile ¿¡ Æ÷ÇԵǾîÀÖ¾î¼ user °¡ login ÇÒ¶§¸¶´Ù ÀÚµ¿ÀûÀ¸·Î
µ¹¾Æ°£´Ù.
ÀÌ keylogin program Àº user ¿¡°Ô secure RPC passwd ¸¦ ¹°¾îº¸°í À̰ÍÀ»ÀÌ¿ëÇÏ¿©
±× secret key ¸¦ ÇØµ¶ÇÑ´Ù.
ÀÌ keylogin program Àº ±×¶§ passwd ·Î secret key ¸¦ ÇØµ¶ÇÏ¿© keyserv daemon
¿¡°Ô ´øÁ®ÁØ´Ù À̶§ keyserv daemon Àº ÇØ¼®µÈ secret key ¸¦ ÀúÀåÇϰí server¿Í
transaction À» ½ÃÀÛÇϱâÀ§ÇØ¿© user ¸¦ wait ÇÑ´Ù.
c. user °¡ server ¿Í transaction À» ½ÃÀÛÇÒ¶§
1)keyserv ´Â ÀÓÀÇ´ë·Î ÇϳªÀÇ conversation key ¸¦ ¸¸µç´Ù.
2)À̶§ kernel Àº conversation key ¸¦ client ÀÇ timestamp (´Ù¸¥°ÍÁß¿¡¼)
¸¦ ¾ÏÈ£ÈÇÑ´Ù.
3)keyserv ´Â public databasde ¿¡¼ server ÀÇ public key ¸¦ ã´Â´Ù.
4)keyserv´Â client ÀÇ secret key ¿Í server ÀÇ public ley ¸¦ °¡Áö°í
common key ¸¦ ¸¸µç´Ù.
5)keyserv ´Â common key ¸¦ °¡Áö°í conversation key ¸¦ ¾ÏÈ£ÈÇÑ´Ù.
d. timestamp ¿Í conversation key ¸¦ Æ÷ÇÔÇÏ´Â transmission Àº À̶§ server
¿¡ º¸³»Áø´Ù. Àü¼Û¿¡´Â ÇϳªÀÇ credential °ú ÇϳªÀÇ verifier ¸¦ Æ÷ÇÔÇÑ´Ù.
credential Àº ´ÙÀ½ ¼¼°¡Áö¸¦ Æ÷ÇÔÇÑ´Ù.
( client ÀÇ À̸§, common key ·Î ¾ÏÈ£ÈµÈ conversation key,
conversation key ·Î ¾ÏÈ£ÈµÈ ÇϳªÀÇ window.)
±× window ´Â server colck °ú client timestamp °£ÀÇ Çã¿ëµÇ´Â Â÷ÀÌÀÌ´Ù.
¸¸¾à server clock °ú timestamp °£ÀÇ Â÷À̰¡ ±× window º¸´ÙÅ©¸é, ±× server ´Â
client ÀÇ request ¸¦ °ÅÀýÇØ¾ß¸¸ ÇÑ´Ù.
client ÀÇ verifier ´Â ¾ÏÈ£ÈµÈ timestamp ¿Í 1 ¾¿ Áõ°¡Çϴ ƯÁ¤ÇÑ window ÀÇ
¾ÏÈ£ÈµÈ verifier ¸¦ °¡Áö°í ÀÖ´Ù.
e. server °¡ client ·Î ºÎÅÍ transmission À» ¹Þ¾ÒÀ»¶§
1)keyserv local Àº server ÀÇ public database ¿¡¼ client ÀÇ public key
¸¦ ã´Â´Ù.
2)keyserv ´Â client ÀÇ public key ¿Í server ÀÇ secret key ¸¦ »ç¿ëÇÏ¿©
common key ¸¦ À¯ÃßÇÑ´Ù.
3)kernel Àº common key ·Î½á conversation key ¸¦ ÇØµ¶ÇÑ´Ù.
4) kernel Àº keyserv ¸¦ ºÒ·¯ ÇØµ¶µÈ conversation key ¿Í client ÀÇ
timestamp ¸¦ ÇØµ¶ÇÑ´Ù.
f. server °¡ client ÀÇ timestamp ¸¦ ÇØµ¶ÈÄ, ÇϳªÀÇ credential table dp
4 °³ÀÇ °ªÀ» ÀúÀåÇÑ´Ù.
(client ÀÇ machine name, conversation key, window, client ÀÇ timestamp)
server ´Â ³ªÁß»ç¿ëÀ» À§ÇØ Ã¹¹øÂ° 3 °³¸¦ ÀúÀåÇÑ´Ù.server ´Â ºÒ¹ýÀç»ç¿ë(replay)
¸¦ ¹æÁöÇϱâÀ§ÇØ timestamp ¸¦ ÀúÀåÇÑ´Ù. server ´Â ´ÜÁö ¸¶Áö¸·À¸·Î º»
°Íº¸´Ù ½Ã°£ÀûÀ¸·Î ´õÅ« °Í¸¸ accept ÇØ¼ ¾î¶² replay µÈ transaction ÀÌ
reject µÇ´Â°ÍÀ» guarantee ÇÑ´Ù.
g. server ´Â client ¿¡°Ô ÇϳªÀÇ verifier ¸¦ return Çϴµ¥ ³»¿ëÀº
index ID(a unique tarnsaction number:server °¡ ÀÚ½ÅÀÇ credential table
¿¡ µé·ÏÇÏ´Â ID) ¿Í conversation key ¿¡ ÀÇÇØ ¾ÏȣȵǴ client ÀÇ
timestamp -1 ÇÑ °ªÀÌ´Ù.
¿©±â¼ timestamp ·Î ºÎÅÍ -1 À» ÇÏ´ÂÀÌÀ¯´Â client verifier ·Î¼
Àç»ç¿ëµÉ¼ö ¾øµµ·Ï ÇϱâÀ§ÇÔÀÌ´Ù.
h. client ´Â verifier ¸¦ ¹Þ°í ±× server ¸¦ °ËÁõÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ´ÜÁö
¼¹ö°¡ ±× verifier ¸¦ º¸³ÂÀ»°ÍÀ̶ó°í ¾Ë°íÀִµ¥ ¿Ö³ÄÇÏ¸é ´ÜÁö server ¸¸ÀÌ
client °¡ º¸³½ timestamp ¸¦ ¾Ë°íÀֱ⠶§¹®ÀÌ´Ù.
i. client ´Â ¼¹ö¿¡°Ô ´Ù¸§ transaction ³»¿¡¼ ±× index ID ¸¦ return Çϰí
´Ù¸¥ ¾ÏÈ£ÈµÈ timestamp ¸¦ º¸³½´Ù.
j. server ´Â conversation key ¿¡ ÀÇÇØ ¾ÏÈ£ÈµÈ clinet ÀÇ timestamp ¿¡ -1 À»
ÇÑÈÄ ´Ù½Ãº¸³»ÁØ´Ù.
ù¹øÂ° ÈÄ¿¡ ¸ðµç transaction ¿¡¼ client ´Â ±×°ÍÀÇ index ID ¿Í ´Ù¸¥
¾ÏÈ£ÈµÈ timestamp ¸¦ º¸³»°í server ´Â timestamp -1 ¸¦ ÇÏ¿© return.
Revision History
ÀÛ¼ºÀÏÀÚ : 96.09.05
ÀÛ¼ºÀÚ : À̽ÂÈÆ
¼öÁ¤ÀÏÀÚ :
¼öÁ¤ÀÚ :