|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | constructor¡¡ ¡¡ | ¸Þ¼µå | »ó¼¼: Çʵå | constructor¡¡ ¡¡ | ¸Þ¼µå |
public interface GSSContext
ÀÌ ÀÎÅÍÆäÀ̽º´Â GSS-API ½ÃÅ¥·¯Æ¼ ÄÁÅØ½ºÆ®¸¦ ĸ½¶ÈÇØ, ±× ÄÁÅØ½ºÆ® À¸·Î ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ½ÃÅ¥·¯Æ¼ ¼ºñ½º¸¦ Á¦°øÇÕ´Ï´Ù. ½ÃÅ¥·¯Æ¼ ÄÁÅØ½ºÆ®Àº ·ÎÄÿ¡ ÃëµæÇÑ ÀÚ°ÝÀ» »ç¿ëÇØ ÇǾ¿¡ È®¸³µË´Ï´Ù. 1 Á¶ÀÇ ÇǾ¿¡´Â °°Àº ÀÚ°Ý ¶Ç´Â ´Ù¸¥ ÀÚ°ÝÀ» »ç¿ëÇÏ´Â º¹¼öÀÇ ÄÁÅØ½ºÆ®ÀÌ µ¿½Ã¿¡ Á¸ÀçÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. GSS-API´Â ÇǾÀÇ ½ÃÅ¥·¯Æ¼ ÄÁÅØ½ºÆ®¿¡ ÀÇÇØ »ý¼ºµÇ´Â ÅäÅ«À» Àü¼Û ÇÒ °æ¿ì¿¡ ºÎÇÏÀÇ Àü¼Û ÇÁ·ÎÅäÄÝ¿¡´Â Á¸ÇÏÁö ¾Ê°í, ±× È£ÃâÃø ¾îÇø®ÄÉÀ̼ǿ¡ ÀÇÁ¸ÇÕ´Ï´Ù.
È£ÃâÃøÀÌ µðÆúÆ®ÀÇ GSSManager
ÀνºÅϽº¸¦ »ç¿ëÇØ ÄÁÅØ½ºÆ®¸¦ ÀνºÅϽºÈÇÏ´Â °æ¿ì´Â Kerberos v5 GSS-API µµ±¸¸¦ »ç¿ëÇØ ÄÁÅØ½ºÆ®ÀÌ È®¸³µË´Ï´Ù. ÀÌ µµ±¸´Â OID ¡¸1.2. 840.113554. 1.2. 2¡¹(À¸)·Î¼ ½Äº°µÇ¾î RFC 1964¿¡ Á¤Àǵǰí ÀÖ½À´Ï´Ù.
ÄÁÅØ½ºÆ®
ÀÇ È®¸³ 󸮰¡ °³½ÃµÇ±â Àü¿¡
È®¸³µÇ´Â ÄÁÅØ½ºÆ®
ÀÇ Æ¯¼ºÀ» ½ÃÀÛÃøÀÌ ¿ä±¸ÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. È£ÃâÃøÀÌ ¿ä±¸ÇÑ Æ¯¼ºÀÌ, ºÎÇÏÀÇ µµ±¸¿¡ ÀÇÇØ Áö¿ø
µÇ¾î ÀÖÁö ¾ÊÀº °ÍÀÌ ÀÖ½À´Ï´Ù. ÄÁÅØ½ºÆ®ÀÌ È®¸³Çϸé, È£ÃâÃøÀº ´Ù¾çÇÑ Äí¿¡¸® ¸Þ¼µå¸¦ »ç¿ëÇØ, ±× ÄÁÅØ½ºÆ®
À¸·ÎºÎÅÍ Á¦°øµÈ ½ÇÁ¦ÀÇ Æ¯¼ºÀ̳ª ¼ºñ½º¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. µðÆúÆ®ÀÇ GSSManager
ÀνºÅϽº·ÎºÎÅÍ Á¦°øµÇ´Â Kerberos v5 GSS-API µµ±¸¸¦ »ç¿ëÇϰí ÀÖÀ» ¶§´Â ¸ðµç ¿É¼Ç ¼ºñ½º¸¦ ·ÎÄÿ¡ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î
»óÈ£ ÀÎÁõ, ÀÚ°ÝÀÇ À§¾ç, ±â¹Ð¼º°ú Á¤ÇÕ¼ºÀÇ º¸È£, ¸Þ¼¼Áö¸¶´ÙÀÇ ¸®Ç÷¹ÀÌ °ËÃâÀ̳ª ¼ø¼ºÎµîÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. GSS-API ¿¡¼´Â ¸Þ¼¼ÁöÀÇ ±â¹Ð¼ºÀ» º¸È£ÇÏ·Á¸é,
¸Þ¼¼ÁöÀÇ Á¤ÇÕ¼ºÀ» º¸È£ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
ÄÁÅØ½ºÆ®ÀÌ È®¸³ÇÒ ¶§±îÁö, ½ÃÀÛ Ãø¿¡
ÇÑ initSecContext
È£Ãâ°ú ¹Þ¾Æ µéÀÌ´Â ÂÊ¿¡
ÇÑ acceptSecContext
È£ÃâÀÌ ¹Ýº¹ÇØÁý´Ï´Ù. ÀÌ ·çÇÁ´Â ÄÁÅØ½ºÆ®ÀÌ È®¸³Çϸé Á¾·áÇÕ´Ï´Ù. ÀÌ ·çÇÁÀÇ Ã³¸®Áß¿¡
initSecContext
¹× acceptSecContext
¸Þ¼µå°¡ ÅäÅ«À» »ý¼ºÇØ, ¾îÇø®ÄÉÀ̼ÇÀº ±× ÅäÅ«À» ÇǾ ¼Û½ÅÇÕ´Ï´Ù. ÇǾî´Â acceptSecContext
¶Ç´Â initSecContext
¿¡ ´ëÇØ¼ ÀûÀýÇÑ ÅäÅ«À» ÀÔ·ÂÀ¸·Î¼ °Ç³×ÁÝ´Ï´Ù.
ÄÁÅØ½ºÆ®ÀÌ ¿ÏÀüÇÏ°Ô È®¸³Çϱâ Àü¿¡¼µµ, isProtReady
¸Þ¼µå¸¦ È£ÃâÇØ, wrap
¹× getMIC
¿¡
ÇÑ ¸Þ¼¼Áö¸¶´ÙÀÇ Á¶ÀÛ¿¡ ÄÁÅØ½ºÆ®¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹æ¹ýÀ» »ç¿ëÇϸé, ¿ÏÀüÇÏ°Ô È®¸³µÇ±â ÀüÀÇ ÄÁÅØ½ºÆ®¿¡ ´ëÇØ¼ ¸Þ¼¼Áö¸¶´ÙÀÇ Á¶ÀÛÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÄÁÅØ½ºÆ®
ÀÇ È®¸³ÀÌ ¿Ï·áÇÑ ÈÄ, Áï isProtReady
¸Þ¼µå·ÎºÎÅÍ true
°¡ ¸®ÅÏµÈ ÈÄ¿¡´Â È®¸³µÈ ÄÁÅØ½ºÆ®
ÀÇ ½ÇÁ¦ÀÇ Æ¯¼ºÀ̳ª ¼ºñ½º¸¦ È®ÀÎÇϱâ À§Çؼ Äí¿¡¸® ·çƾÀ» È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ, wrap
¹× getMIC
¸Þ¼¼Áö¸¶´ÙÀÇ ¸Þ¼µå¸¦ »ç¿ëÇØ, ¾îÇø®ÄÉÀ̼ÇÀÌ Á¦°øÇÏ´Â µ¥ÀÌÅÍ¿¡ ´ëÇØ¼ ¾ÏÈ£È Á¶ÀÛÀ» ½Ç½ÃÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
ÄÁÅØ½ºÆ®ÀÌ ºÒÇÊ¿äÇÏ°Ô µÇ¸é, dispose
¸¦
È£ÃâÇØ, ±× ÄÁÅØ½ºÆ®ÀÌ »ç¿ëÇϰí ÀÖ´Â ½Ã½ºÅÛ ÀÚ¿øÀ» ¸ðµÎ ÇØ¹æÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
½ÃÅ¥·¯Æ¼ ÄÁÅØ½ºÆ®Àº º¸Åë, ó¸®ÇÏ´Â ÅäÅ«¿¡ °üÇÑ ¼ø¼ºÎ¿Í ¸®Ç÷¹ÀÌ °ËÃâ Á¤º¸¸¦ º¸°ü À¯ÁöÇϰí ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡
ÅäÅ«ÀÌ ÀÌ ÄÁÅØ½ºÆ®¿¡ °Ô °Ç³×Á® 󸮵Ǵ ¼ø¼°¡ Áß¿äÇÏ°Ô µË´Ï´Ù. ¶Ç, ÀÌ ÀÎÅÍÆäÀ̽º³»ÀÇ ¸Þ¼µå´Â µ¿±âÈ µÇÁö ¾Ê½À´Ï´Ù. º¹¼öÀÇ thread°£¿¡ GSSContext
¸¦ °øÀ¯ÇÒ ¶§´Â ÇϵîÀÇ ¾îÇø®ÄÉÀÌ¼Ç ·¹º§ÀÇ µ¿±âȸ¦ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
GSS-API ÄÁÅØ½ºÆ®¸¦ »ç¿ëÇÒ ¶§ÀÇ ½ÃÅ¥·¯Æ¼ Á¦ÇÑÀº GSS-API µµ±¸ ÇÁ·Î¹ÙÀÌ´õ¿¡ µû¶ó¼ ´Ù¸¨´Ï´Ù. ÀÌ·¯ÇÑ Á¦ÇÑ¿¡ ´ëÇØ¼´Â °¢ µµ±¸ ÇÁ·Î¹ÙÀÌ´õÀÇ ¹®¼¸¦ ÂüÁ¶ÇϽʽÿÀ. ÀÌ·¯ÇÑ ½ÃÅ¥·¯Æ¼ Á¦ÇÑÀ» µµ±¸ Ãþ¿¡¼ °Ë»çÇÏ´Â °æ¿ì´Â ¾îÇø®ÄÉÀ̼ǿ¡ ÀûÀýÇÑ ±ÇÇÑÀÌ ºÎ¿©µÇ°í ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù.
´ÙÀ½¿¡ ³ªÅ¸³»´Â Äڵ忹´Â ½ÃÀÛÃø ÇǾîÀÇ GSSContext
ÀÎÅÍÆäÀ̽ºÀÇ »ç¿ë¹ýÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. GSSContext
°´Ã¼¿¡ ´ëÇØ¼
°´Ã¼ÀÇ ÀνºÅϽºÈ, ÁöÁ¤ÇÏ°í ½ÍÀº Ç÷¡±×ÀÇ ¼³Á¤, ÄÁÅØ½ºÆ®
ÀÇ È®¸³, ½ÇÁ¦ÀÇ ÄÁÅØ½ºÆ®
Ç÷¡±×ÀÇ Á¶È¸, ¾îÇø®ÄÉÀÌ¼Ç µ¥ÀÌÅÍ¿¡ ´ëÇÑ ¸Þ¼¼Áö¸¶´ÙÀÇ Á¶ÀÛ, ÄÁÅØ½ºÆ®
ÀÇ ÃÖÁ¾ °ËÃâµîÀ» ½Ç½ÃÇϰí ÀÖ½À´Ï´Ù.
// Create a context using default credentials // and the implementation specific default mechanism GSSManager manager ... GSSName targetName ... GSSContext context = manager.createContext(targetName, null, null, GSSContext.INDEFINITE_LIFETIME); // set desired context options prior to context establishment context.requestConf(true); context.requestMutualAuth(true); context.requestReplayDet(true); context.requestSequenceDet(true); // establish a context between peers byte []inToken = new byte[0]; // Loop while there still is a token to be processed while (! context.isEstablished()) { byte[] outToken = context.initSecContext(inToken, 0, inToken.length); // send the output token if generated if (outToken ! = null) sendToken(outToken); if (! context.isEstablished()) { inToken = readToken(); } // display context information System.out.println("Remaining lifetime in seconds = " + context.getLifetime()); System.out.println("Context mechanism = " + context.getMech()); System.out.println("Initiator = " + context.getSrcName()); System.out.println("Acceptor = " + context.getTargName()); if (context.getConfState()) System.out.println("Confidentiality (i.e., privacy) is available"); if (context.getIntegState()) System.out.println("Integrity is available"); // perform wrap on an application supplied message, appMsg, // using QOP = 0, and requesting privacy service byte [] appMsg ... MessageProp mProp = new MessageProp(0, true); byte []tok = context.wrap(appMsg, 0, appMsg.length, mProp); sendToken(tok); // release the local-end of the context context.dispose();
ÇÊµå °³¿ä | |
---|---|
static int |
DEFAULT_LIFETIME
ÄÁÅØ½ºÆ® ÀÇ µðÆúÆ®ÀÇ ¼ö¸íÀ» ³ªÅ¸³»´Â ¼ö¸í Á¤¼öÀÔ´Ï´Ù. |
static int |
INDEFINITE_LIFETIME
ÄÁÅØ½ºÆ® ÀÇ ¼ö¸íÀÌ ¹«±âÇÑÀÎ °ÍÀ» ³ªÅ¸³»´Â ¼ö¸í Á¤¼öÀÔ´Ï´Ù. |
¸Þ¼µå °³¿ä | |
---|---|
byte[] |
acceptSecContext (byte[] inToken,
int offset,
int len)
ÇǾî·ÎºÎÅÍ ÅäÅ«ÀÌ Âø½ÅÇßÀ» ¶§¿¡ ÄÁÅØ½ºÆ® ÀÇ ¹Þ¾Æ µéÀÌ´Â ÂÊ¿¡ ÀÇÇØ È£ÃâÇÕ´Ï´Ù. |
void |
acceptSecContext (InputStream inStream,
OutputStream outStream)
ÄÁÅØ½ºÆ® ÀÇ ¹Þ¾Æ µéÀÌ´Â ÂÊ¿¡ ÀÇÇØ È£ÃâµÇ´Â ¸Þ¼µåÀÔ´Ï´Ù. |
void |
dispose ()
ÄÁÅØ½ºÆ® °´Ã¼¿¡ Æ÷ÇԵǰí ÀÖ´Â ½Ã½ºÅÛ ÀÚ¿ø°ú ¾ÏÈ£È Á¤º¸¸¦ ¸ðµÎ ÇØ¹æÇØ, ±× ÄÁÅØ½ºÆ®¸¦ ¹«È¿·Î ÇÕ´Ï´Ù. |
byte[] |
export ()
ÀÌ ÄÁÅØ½ºÆ®¸¦ export ÇØ, ´Ù¸¥ ÇÁ·Î¼¼½º¸¦ ÀÓÆ÷Æ® ÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. |
boolean |
getAnonymityState ()
ÄÁÅØ½ºÆ® ÀÇ ½ÃÀÛÃøÀÌ ÄÁÅØ½ºÆ® ÀÇ ¹Þ¾Æ µéÀÌ´Â ÂÊ¿¡ À͸íÀ¸·Î¼ ÀÎÁõµÇ°í ÀÖ´ÂÁö¸¦ ÆÇÁ¤ÇÕ´Ï´Ù. |
boolean |
getConfState ()
ÀÌ ÄÁÅØ½ºÆ® À¸·Î µ¥ÀÌÅÍÀÇ ±â¹Ð¼ºÀ» ÀÌ¿ëÇÒ ¼ö ÀÖÀ»Áö ¾î¶³Áö¸¦ °Ë»çÇÕ´Ï´Ù. |
boolean |
getCredDelegState ()
ÀÌ ÄÁÅØ½ºÆ® À¸·Î ÀÚ°ÝÀÇ À§¾çÀÌ À¯È¿ÇÏ°Ô µÇ¾î ÀÖ´ÂÁö¸¦ ÆÇÁ¤ÇÕ´Ï´Ù. |
GSSCredential |
getDelegCred ()
ÄÁÅØ½ºÆ® ÀÇ ½ÃÀÛÃøÀ¸·ÎºÎÅÍ ÄÁÅØ½ºÆ® ÀÇ ¹Þ¾Æ µéÀÌ´Â ÂÊ¿¡ À§¾ç µÈ ÀÚ°ÝÀ» ÃëµæÇÕ´Ï´Ù. |
boolean |
getIntegState ()
ÀÌ ÄÁÅØ½ºÆ® À¸·Î µ¥ÀÌÅÍÀÇ Á¤ÇÕ¼ºÀ» ÀÌ¿ëÇÒ ¼ö ÀÖÀ»Áö ¾î¶³Áö¸¦ °Ë»çÇÕ´Ï´Ù. |
int |
getLifetime ()
ÀÌ ÄÁÅØ½ºÆ® ÀÇ ³ª¸ÓÁöÀÇ ¼ö¸íÀ» °Ë»çÇÕ´Ï´Ù. |
Oid |
getMech ()
ÀÌ ÄÁÅØ½ºÆ®¿¡ »ç¿ëµÇ°í ÀÖ´Â µµ±¸¸¦ °Ë»çÇÕ´Ï´Ù. |
byte[] |
getMIC (byte[] inMsg,
int offset,
int len,
MessageProp msgProp)
ÁöÁ¤µÈ ¸Þ¼¼ÁöÀÇ ¾ÏÈ£È MIC (¸Þ¼¼Áö Á¤ÇÕ¼º ÄÚµå)¸¦ Æ÷ÇÔÇÑ ÅäÅ«À» ¸®ÅÏÇÕ´Ï´Ù. |
void |
getMIC (InputStream inStream,
OutputStream outStream,
MessageProp msgProp)
½ºÆ®¸²À» »ç¿ëÇØ, ÁöÁ¤µÈ ¸Þ¼¼ÁöÀÇ ¾ÏÈ£È MIC¸¦ Æ÷ÇÔÇÑ ÅäÅ«À» ¸®ÅÏÇÕ´Ï´Ù. |
boolean |
getMutualAuthState ()
ÀÌ ÄÁÅØ½ºÆ® À¸·Î »óÈ£ ÀÎÁõÀÌ À¯È¿ÇÏ°Ô µÇ¾î ÀÖ´ÂÁö¸¦ ÆÇÁ¤ÇÕ´Ï´Ù. |
boolean |
getReplayDetState ()
ÀÌ ÄÁÅØ½ºÆ® ÀÇ ¸Þ¼¼Áö¸¶´ÙÀÇ ½ÃÅ¥·¯Æ¼ ¼ºñ½º·Î ¸®Ç÷¹ÀÌ °ËÃâÀÌ À¯È¿ÇÏ°Ô µÇ¾î ÀÖ´ÂÁö¸¦ ÆÇÁ¤ÇÕ´Ï´Ù. |
boolean |
getSequenceDetState ()
ÀÌ ÄÁÅØ½ºÆ® ÀÇ ¸Þ¼¼Áö¸¶´ÙÀÇ ½ÃÅ¥·¯Æ¼ ¼ºñ½º·Î sequence check°¡ À¯È¿ÇÏ°Ô µÇ¾î ÀÖ´ÂÁö¸¦ ÆÇÁ¤ÇÕ´Ï´Ù. |
GSSName |
getSrcName ()
ÄÁÅØ½ºÆ® ÀÇ ½ÃÀÛÃøÀÇ À̸§À» ¸®ÅÏÇÕ´Ï´Ù. |
GSSName |
getTargName ()
ÄÁÅØ½ºÆ® ÀÇ ¹Þ¾Æ µéÀÌ´Â ÂÊÀÇ À̸§À» ¸®ÅÏÇÕ´Ï´Ù. |
int |
getWrapSizeLimit (int qop,
boolean confReq,
int maxTokenSize)
wrap ¿¡ °Ç³×ÁÙ ¼ö ÀÖ´Â ¸Þ¼¼Áö »çÀÌÁîÀÇ Á¦ÇÑÀ» °áÁ¤ÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. |
byte[] |
initSecContext (byte[] inputBuf,
int offset,
int len)
ÄÁÅØ½ºÆ® ÀÇ ½ÃÀÛ Ãø¿¡¾ß´Â È£ÃâµÇ´Â ¸Þ¼µåÀÔ´Ï´Ù. |
int |
initSecContext (InputStream inStream,
OutputStream outStream)
ÄÁÅØ½ºÆ® ÀÇ ½ÃÀÛ Ãø¿¡¾ß´Â È£ÃâµÇ´Â ¸Þ¼µåÀÔ´Ï´Ù. |
boolean |
isEstablished ()
ÄÁÅØ½ºÆ®¸¦ È®¸³Çϱâ Àü¿¡ ÄÁÅØ½ºÆ® »óŸ¦ È®ÀÎÇÒ °æ¿ì¿¡ »ç¿ëÇÕ´Ï´Ù. |
boolean |
isInitiator ()
ÀÌ ÇǾ ÄÁÅØ½ºÆ® ÀÇ ½ÃÀÛÃøÀÏÁö ¾î¶³Áö¸¦ °Ë»çÇÕ´Ï´Ù. |
boolean |
isProtReady ()
ÀÌ ÄÁÅØ½ºÆ® À¸·Î ¸Þ¼¼Áö¸¶´ÙÀÇ Á¶ÀÛÀ» °ð¹Ù·Î °³½ÃÇÒ ¼ö ÀÖÀ»Áö ¾î¶³Áö¸¦ °Ë»çÇÕ´Ï´Ù. |
boolean |
isTransferable ()
export ¸Þ¼µå¸¦ »ç¿ëÇØ ÀÌ ÄÁÅØ½ºÆ®¸¦ ´Ù¸¥ ÇÁ·Î¼¼½º¿¡ Àü¼Û ÇÒ ¼ö ÀÖÀ»Áö ¾î¶³Áö¸¦ °Ë»çÇÕ´Ï´Ù. |
void |
requestAnonymity (boolean state)
½ÃÀÛÃøÀÇ ÀÚ°ÝÀ» ¹Þ¾Æ µéÀÌ´Â ÂÊ¿¡ °ø°³ÇÏÁö ¾Ê°Ô ¿ä±¸ÇÕ´Ï´Ù. |
void |
requestConf (boolean state)
wrap ¸Þ¼µå·Î µ¥ÀÌÅÍÀÇ ±â¹Ð¼ºÀ» À¯È¿ÇÏ°Ô Çϵµ·Ï ¿ä±¸ÇÕ´Ï´Ù. |
void |
requestCredDeleg (boolean state)
ÄÁÅØ½ºÆ® ÀÇ È®¸³ ½Ã¿¡ ½ÃÀÛÃøÀÇ ÀÚ°ÝÀ» ¹Þ¾Æ µéÀÌ´Â ÂÊ¿¡ À§¾ç Çϵµ·Ï ¿ä±¸ÇÕ´Ï´Ù. |
void |
requestInteg (boolean state)
wrap ¸Þ¼µå¿Í getMIC ¸Þ¼µå·Î µ¥ÀÌÅÍÀÇ Á¤ÇÕ¼ºÀ» À¯È¿ÇÏ°Ô Çϵµ·Ï ¿ä±¸ÇÕ´Ï´Ù. |
void |
requestLifetime (int lifetime)
ÄÁÅØ½ºÆ® ÀÇ ¼ö¸íÀ» ÃÊ´ÜÀ§·Î ¿ä±¸ÇÕ´Ï´Ù. |
void |
requestMutualAuth (boolean state)
ÄÁÅØ½ºÆ®ÀÌ È®¸³ÇØ ÀÖÀ» ¶§, »óÈ£ ÀÎÁõÀ» Çϵµ·Ï ¿ä±¸ÇÕ´Ï´Ù. |
void |
requestReplayDet (boolean state)
ÄÁÅØ½ºÆ®ÀÌ È®¸³ÇÑ ÈÄ¿¡ ¸Þ¼¼Áö¸¶´ÙÀÇ ½ÃÅ¥·¯Æ¼ ¼ºñ½ºÀÇ ¸®Ç÷¹ÀÌ °ËÃâÀÌ À¯È¿ÇÏ°Ô µÇµµ·Ï ¿ä±¸ÇÕ´Ï´Ù. |
void |
requestSequenceDet (boolean state)
ÄÁÅØ½ºÆ®ÀÌ È®¸³ÇÑ ÈÄ¿¡ ¸Þ¼¼Áö¸¶´ÙÀÇ ½ÃÅ¥·¯Æ¼ ¼ºñ½ºÀÇ sequence check°¡ À¯È¿ÇÏ°Ô µÇµµ·Ï ¿ä±¸ÇÕ´Ï´Ù. |
void |
setChannelBinding (ChannelBinding cb)
ÄÁÅØ½ºÆ®ÀÌ È®¸³ÇØ ÀÖÀ» ¶§ ä³Î ¹ÙÀεùÀÌ »ç¿ëµÇµµ·Ï ¼³Á¤ÇÕ´Ï´Ù. |
byte[] |
unwrap (byte[] inBuf,
int offset,
int len,
MessageProp msgProp)
ÄÁÅØ½ºÆ® ÀÇ »ó´ëÃøÀÇ ÇǾî·Î wrap ¸Þ¼µå¿¡ ÀÇÇØ »ý¼ºµÈ ÅäÅ«À» ó¸®Çϱâ À§Çؼ »ç¿ëÇÕ´Ï´Ù. |
void |
unwrap (InputStream inStream,
OutputStream outStream,
MessageProp msgProp)
½ºÆ®¸²À» »ç¿ëÇØ, ÄÁÅØ½ºÆ® ÀÇ »ó´ëÃøÀÇ ÇǾî·Î wrap ¸Þ¼µå¿¡ ÀÇÇØ »ý¼ºµÈ ÅäÅ«À» ó¸®ÇÕ´Ï´Ù. |
void |
verifyMIC (byte[] inToken,
int tokOffset,
int tokLen,
byte[] inMsg,
int msgOffset,
int msgLen,
MessageProp msgProp)
ÅäÅ« ÆÄ¶ó¹ÌÅÍ¿¡ Æ÷ÇԵǴ ¾ÏÈ£È MIC¸¦, ÁöÁ¤µÈ ¸Þ¼¼Áö¿¡ ´ëÇØ¼ °Ë»çÇÕ´Ï´Ù. |
void |
verifyMIC (InputStream tokStream,
InputStream msgStream,
MessageProp msgProp)
½ºÆ®¸²À» »ç¿ëÇØ, ÅäÅ« ÆÄ¶ó¹ÌÅÍ¿¡ Æ÷ÇԵǴ ÁöÁ¤µÈ ¸Þ¼¼ÁöÀÇ ¾ÏÈ£È MIC¸¦ °ËÁõÇÕ´Ï´Ù. |
byte[] |
wrap (byte[] inBuf,
int offset,
int len,
MessageProp msgProp)
È®¸³µÈ ½ÃÅ¥·¯Æ¼ ÄÁÅØ½ºÆ®¿¡ ´ëÇØ¼ ¸Þ¼¼Áö¸¶´ÙÀÇ ½ÃÅ¥·¯Æ¼ ¼ºñ½º¸¦ Àû¿ëÇÕ´Ï´Ù. |
void |
wrap (InputStream inStream,
OutputStream outStream,
MessageProp msgProp)
½ºÆ®¸²À» »ç¿ëÇØ, È®¸³µÈ ½ÃÅ¥·¯Æ¼ ÄÁÅØ½ºÆ®¿¡ ¸Þ¼¼Áö¸¶´ÙÀÇ ½ÃÅ¥·¯Æ¼ ¼ºñ½º¸¦ Àû¿ëÇÕ´Ï´Ù. |
ÇʵåÀÇ »ó¼¼ |
---|
static final int DEFAULT_LIFETIME
static final int INDEFINITE_LIFETIME
Integer.MAX_VALUE
·Î ¼³Á¤ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
¸Þ¼µåÀÇ »ó¼¼ |
---|
byte[] initSecContext(byte[] inputBuf, int offset, int len) throws GSSException
acceptSecContext
¸Þ¼µå¿¡ ÀÇÇØ »ý¼ºµÈ ÅäÅ«À» ó¸®ÇÕ´Ï´Ù. ÀÌ ¸Þ¼µå·ÎºÎÅÍ ¸®ÅϵÈ
Ãâ·Â ÅäÅ«Àº ÇǾîÀÇ acceptSecContext
¸Þ¼µå·Î 󸮹ޱâ À§Çؼ ¾îÇø®ÄÉÀ̼ÇÀ¸·ÎºÎÅÍ ÇǾ ¼Û½ÅÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀº isEstablished
¸¦
È£ÃâÇÏ´Â °ÍÀ¸·Î ÄÁÅØ½ºÆ®
ÀÇ ÀÌ Æí¿¡ ÄÁÅØ½ºÆ®
ÀÇ È®¸³ 󸮰¡ ¿Ï·áÇß´ÂÁö ¾î¶°Çß´ÂÁö¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. isEstablished
·Î
ºÎÅÍ ¹Ýȯ°ª false
°¡ µ¹·ÁÁÖ°íÁ³À» °æ¿ì´Â initSecContext
¿¡ ¶ÇÇÑ
ÅäÅ«À» Á¦°øÇÒ Çʿ䰡 ÀÖ´Â °ÍÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. ÄÁÅØ½ºÆ®
ÀÇ È®¸³ÀÌ ¿Ï·áÇϸé, ÀÌ¿ë °¡´ÉÇÑ ÄÁÅØ½ºÆ®
¿É¼ÇÀ» get ¸Þ¼µå¸¦ »ç¿ëÇØ Á¶È¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.
initSecContext
¸Þ¼µå·ÎºÎÅÍ ÇǾîÀÇ ÅäÅ«ÀÌ µ¹·ÁÁÖ°íÁ®isEstablished
·Î
ºÎÅ͵µ true
°¡ ¸®ÅϵÈ
ÀÏÀÌ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì
ÅäÅ«Àº ÇǾ ¼Û½ÅÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù¸¸, ÄÁÅØ½ºÆ®
ÀÇ »ó´ëÃøÀº ±× ½ÃÁ¡¿¡¼ ¿ÏÀüÇÏ°Ô È®¸³µÇ¾î ÀÖ½À´Ï´Ù.
ÀϺÎÀÇ µµ±¸
ÇÁ·Î¹ÙÀÌ´õ¿¡¼´Â ½ÃÅ¥·¯Æ¼ ÄÁÅØ½ºÆ®¸¦ ½ÃÀÛÇÏ´Â Á¢±Ù ±ÇÇÑÀÌ È£ÃâÇØ Ãø¿¡ ºÎ¿©µÇ°í ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù. Á¢±Ù ±ÇÇÑÀÇ È®Àο¡ ½ÇÆÐÇßÀ» °æ¿ì, ÀÌ ¸Þ¼µå·ÎºÎÅÍ SecurityException
À» ¹ß»ý½Ãŵ´Ï´Ù.
inputBuf
- ÇǾ ÀÇÇØ »ý¼ºµÈ ÅäÅ«. ÃÖÃÊÀÇ È£Ãâ¿¡¼´Â ÇǾî·ÎºÎÅÍ ÅäÅ«À» ¼ö½ÅÇÏÁö ¾Ê±â ¶§¹®¿¡
ÀÌ ÆÄ¶ó¹ÌÅÍ´Â ¹«½ÃµÇ´Âoffset
- inputBuf ³»ÀÇ ¿ÀÇÁ¼Â(offset). ÀÌ Á¤µµÄ¡·ÎºÎÅÍ ÅäÅ«ÀÌ °³½ÃÇÏ´Âlen
- ÅäÅ«ÀÇ ±æÀÌ
null
ÀÎ °æ¿ì´Â ÅäÅ«ÀÌ »ý¼ºµÇÁö ¾Ê´Â °ÍÀ» ³ªÅ¸³½´Ù
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.DEFECTIVE_TOKEN
,
GSSException.BAD_MIC
,
GSSException.NO_CRED
,
GSSException.CREDENTIALS_EXPIRED
,
GSSException.BAD_BINDINGS
,
GSSException.OLD_TOKEN
,
GSSException.DUPLICATE_TOKEN
,
GSSException.BAD_NAMETYPE
,
GSSException.BAD_MECH
,
GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ùint initSecContext(InputStream inStream, OutputStream outStream) throws GSSException
acceptSecContext
¸Þ¼µå¿¡ ÀÇÇØ »ý¼ºµÈ ÅäÅ«À» ½ºÆ®¸²À» »ç¿ëÇØ ó¸®ÇÕ´Ï´Ù. ÀÌ ¸Þ¼µå·ÎºÎÅÍ OutpuStream
¿¡ ½á³»Áø Ãâ·Â ÅäÅ«Àº ÇǾîÀÇ acceptSecContext
È£Ãâ·Î 󸮹ޱâ À§Çؼ ¾îÇø®ÄÉÀ̼ÇÀ¸·ÎºÎÅÍ ÇǾ ¼Û½ÅÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÀϹÝÀûÀ¸·Î ÀÌ Ã³¸®¸¦ È®½ÇÈ÷ ½Ç½ÃÇϱâ À§Çؼ
OutputStream
¿¡ ´ëÇØ¼ flush
¸Þ¼µå¸¦ È£ÃâÇØ 2°³ÀÇ ÇǾÀÇ Á¢¼ÓÀ» ĸ½¶ÈÇÕ´Ï´Ù. ÅäÅ«ÀÌ OutputStream¿¡ ½á³»Á³´ÂÁö ¾î¶°Çß´ÂÁö´Â ÀÌ ¸Þ¼µåÀÇ ¹Ýȯ°ªÀ¸·ÎºÎÅÍ ÆÇ´ÜÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹Ýȯ°ª 0
Àº ÅäÅ«ÀÌ ½á³»ÁöÁö ¾Ê¾Ò´ø °ÍÀ» ³ªÅ¸³À´Ï´Ù. ÄÁÅØ½ºÆ®
ÀÇ ÀÌ Æí¿¡ ÄÁÅØ½ºÆ®
ÀÇ È®¸³ 󸮰¡ ¿Ï·áÇß´ÂÁö ¾î¶°Çß´ÂÁö´Â isEstablished
¸¦
È£ÃâÇØ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. isEstablished
·Î
ºÎÅÍ ¹Ýȯ°ª false
°¡ µ¹·ÁÁÖ°íÁ³À» °æ¿ì´Â initSecContext
¿¡ ¶ÇÇÑ
ÅäÅ«À» Á¦°øÇÒ Çʿ䰡 ÀÖ´Â °ÍÀ» ³ªÅ¸³» ÀÖ½À´Ï´Ù. ÄÁÅØ½ºÆ®
ÀÇ È®¸³ÀÌ ¿Ï·áÇϸé, ÀÌ¿ë °¡´ÉÇÑ ÄÁÅØ½ºÆ®
¿É¼ÇÀ» get ¸Þ¼µå¸¦ »ç¿ëÇØ Á¶È¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.
initSecContext
¸Þ¼µå·ÎºÎÅÍ ÇǾîÀÇ ÅäÅ«ÀÌ µ¹·ÁÁÖ°íÁ®isEstablished
·Î
ºÎÅ͵µ true
°¡ ¸®ÅϵÈ
ÀÏÀÌ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì
ÅäÅ«Àº ÇǾ ¼Û½ÅÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù¸¸, ÄÁÅØ½ºÆ®
ÀÇ »ó´ëÃøÀº ±× ½ÃÁ¡¿¡¼ ¿ÏÀüÇÏ°Ô È®¸³µÇ¾î ÀÖ½À´Ï´Ù.
GSS-API
ÀÎÁõ ÅäÅ«¿¡´Â °³½Ã ÅäÅ«°ú Á¾·á ÅäÅ«ÀÌ Á¤Àǵǰí ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼µå°¡ È£ÃâµÉ¶§ ¸¶´Ù
ÀÌ·¯ÇÑ ÅäÅ«ÀÌ 1°³
¾¿ ÀÐÈü´Ï´Ù. ÅäÅ«ÀÇ ÀϺΰ¡ ÀÐÈ÷Áö ¾Ê¾Ò´ø °æ¿ì, ±× ½ºÆ®¸²Àº ºí·Ï µË´Ï´Ù. ´Ù¸¥ ¸ðµç Á¡¿¡¼´Â ÀÌ ¸Þ¼µå´Â byte ¹è¿À» º£À̽º·Î ÇÑ initSecContext
¿Í
°°½À´Ï´Ù.
ÀϺÎÀÇ µµ±¸
ÇÁ·Î¹ÙÀÌ´õ¿¡¼´Â ½ÃÅ¥·¯Æ¼ ÄÁÅØ½ºÆ®¸¦ ½ÃÀÛÇÏ´Â Á¢±Ù ±ÇÇÑÀÌ È£ÃâÇØ Ãø¿¡ ºÎ¿©µÇ°í ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù. Á¢±Ù ±ÇÇÑÀÇ È®Àο¡ ½ÇÆÐÇßÀ» °æ¿ì, ÀÌ ¸Þ¼µå·ÎºÎÅÍ SecurityException
À» ¹ß»ý½Ãŵ´Ï´Ù.
´ÙÀ½ÀÇ Äڵ忹´Â ÀÌ ¸Þ¼µåÀÇ »ç¿ë ¹æ¹ýÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.
InputStream is ... OutputStream os ... GSSContext context ... // Loop while there is still a token to be processed while (! context.isEstablished()) { context.initSecContext(is, os); // send output token if generated os.flush(); }
inStream
- ÇǾ ÀÇÇØ »ý¼ºµÈ ÅäÅ«À» Æ÷ÇÔÇÑ InputStream. ÃÖÃÊÀÇ È£Ãâ¿¡¼´Â ÇǾî·ÎºÎÅÍ ¼ö½ÅÇÏ´Â ÅäÅ«ÀÌ ¾ø±â ¶§¹®¿¡
ÀÌ ÆÄ¶ó¹ÌÅÍ´Â ¹«½ÃµÇ´ÂoutStream
- Ãâ·Â ÅäÅ«ÀÌ ½á³»Áö´Â OutputStream. ÄÁÅØ½ºÆ®
È®¸³ÀÇ ÃÖÁ¾ ´Ü°è¿¡¼´Â ½á³»Áö´Â ¹ÙÀÌÆ®°¡ ¾ø´Â °Íµµ ÀÖ´Ù
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.DEFECTIVE_TOKEN
,
GSSException.BAD_MIC
,
GSSException.NO_CRED
,
GSSException.CREDENTIALS_EXPIRED
,
GSSException.BAD_BINDINGS
,
GSSException.OLD_TOKEN
,
GSSException.DUPLICATE_TOKEN
,
GSSException.BAD_NAMETYPE
,
GSSException.BAD_MECH
,
GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ùbyte[] acceptSecContext(byte[] inToken, int offset, int len) throws GSSException
initSecContext
¸Þ¼µå¿¡ ¼Û½ÅÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
¾îÇø®ÄÉÀ̼ÇÀº, isEstablished
¸¦
È£ÃâÇÏ´Â °ÍÀ¸·Î ÀÌ ÇǾî·Î ÄÁÅØ½ºÆ®
ÀÇ È®¸³ 󸮰¡ ¿Ï·áÇß´ÂÁö ¾î¶°Çß´ÂÁö¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. isEstablished
·Î
ºÎÅÍ ¹Ýȯ°ª false
°¡ µ¹·ÁÁÖ°íÁ³À» °æ¿ì´Â ÀÌ ¸Þ¼µå¿¡ ¶ÇÇÑ
ÅäÅ«À» Á¦°øÇÒ Çʿ䰡 ÀÖ´Â °ÍÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. ÄÁÅØ½ºÆ®
ÀÇ È®¸³ÀÌ ¿Ï·áÇϸé, ÀÌ¿ë °¡´ÉÇÑ ÄÁÅØ½ºÆ®
¿É¼ÇÀ» get ¸Þ¼µå¸¦ »ç¿ëÇØ Á¶È¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.
acceptSecContext
¸Þ¼µå·ÎºÎÅÍ ÇǾîÀÇ ÅäÅ«ÀÌ µ¹·ÁÁÖ°íÁ®isEstablished
·Î
ºÎÅ͵µ true
°¡ ¸®ÅϵÈ
ÀÏÀÌ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì
ÅäÅ«Àº ÇǾ ¼Û½ÅÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù¸¸, ÄÁÅØ½ºÆ®
ÀÇ »ó´ëÃøÀº ±× ½ÃÁ¡¿¡¼ ¿ÏÀüÇÏ°Ô È®¸³µÇ¾î ÀÖ½À´Ï´Ù.
ÀϺÎÀÇ µµ±¸
ÇÁ·Î¹ÙÀÌ´õ¿¡¼´Â ½ÃÅ¥·¯Æ¼ ÄÁÅØ½ºÆ®¸¦ ¹Þ¾ÆµéÀÌ´Â Á¢±Ù ±ÇÇÑÀÌ È£ÃâÇØ Ãø¿¡ ºÎ¿©µÇ°í ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù. Á¢±Ù ±ÇÇÑÀÇ È®Àο¡ ½ÇÆÐÇßÀ» °æ¿ì, ÀÌ ¸Þ¼µå·ÎºÎÅÍ SecurityException
À» ¹ß»ý½Ãŵ´Ï´Ù.
´ÙÀ½ÀÇ Äڵ忹´Â ÀÌ ¸Þ¼µåÀÇ »ç¿ë ¹æ¹ýÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.
byte[] inToken; byte[] outToken; GSSContext context ... // Loop while there is still a token to be processed while (! context.isEstablished()) { inToken = readToken(); outToken = context.acceptSecContext(inToken, 0, inToken.length); // send output token if generated if (outToken ! = null) sendToken(outToken); }
inToken
- ÇǾ ÀÇÇØ »ý¼ºµÈ ÅäÅ«offset
- inMsg ³»ÀÇ ¿ÀÇÁ¼Â(offset). ÀÌ Á¤µµÄ¡·ÎºÎÅÍ ÅäÅ«ÀÌ °³½ÃÇÏ´Âlen
- ÅäÅ«ÀÇ ±æÀÌ
null
ÀÎ °æ¿ì´Â ÅäÅ«ÀÌ »ý¼ºµÇÁö ¾Ê´Â °ÍÀ» ³ªÅ¸³½´Ù
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.DEFECTIVE_TOKEN
,
GSSException.BAD_MIC
,
GSSException.NO_CRED
,
GSSException.CREDENTIALS_EXPIRED
,
GSSException.BAD_BINDINGS
,
GSSException.OLD_TOKEN
,
GSSException.DUPLICATE_TOKEN
,
GSSException.BAD_MECH
,
GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ùvoid acceptSecContext(InputStream inStream, OutputStream outStream) throws GSSException
OutpuStream
¿¡ ½á³»Áø Ãâ·Â ÅäÅ«Àº ÇǾîÀÇ initSecContext
¸Þ¼µå·Î 󸮹ޱâ À§Çؼ ¾îÇø®ÄÉÀ̼ÇÀ¸·ÎºÎÅÍ ÇǾ ¼Û½ÅÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÀϹÝÀûÀ¸·Î ÀÌ Ã³¸®¸¦ È®½ÇÈ÷ ½Ç½ÃÇϱâ À§Çؼ
OutputStream
¿¡ ´ëÇØ¼ flush
¸Þ¼µå¸¦ È£ÃâÇØ 2°³ÀÇ ÇǾÀÇ Á¢¼ÓÀ» ĸ½¶ÈÇÕ´Ï´Ù. ÄÁÅØ½ºÆ®
ÀÇ ÀÌ Æí¿¡ ÄÁÅØ½ºÆ®
ÀÇ È®¸³ 󸮰¡ ¿Ï·áÇß´ÂÁö ¾î¶°Çß´ÂÁö´Â isEstablished
¸¦
È£ÃâÇØ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. isEstablished
·Î
ºÎÅÍ ¹Ýȯ°ª false
°¡ µ¹·ÁÁÖ°íÁ³À» °æ¿ì´Â acceptSecContext
¿¡ ¶ÇÇÑ
ÅäÅ«À» Á¦°øÇÒ Çʿ䰡 ÀÖ´Â °ÍÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. ÄÁÅØ½ºÆ®
ÀÇ È®¸³ÀÌ ¿Ï·áÇϸé, ÀÌ¿ë °¡´ÉÇÑ ÄÁÅØ½ºÆ®
¿É¼ÇÀ» get ¸Þ¼µå¸¦ »ç¿ëÇØ Á¶È¸ÇÒ ¼ö ÀÖ½À´Ï´Ù.
acceptSecContext
¸Þ¼µå·ÎºÎÅÍ ÇǾîÀÇ ÅäÅ«ÀÌ µ¹·ÁÁÖ°íÁ®isEstablished
·Î
ºÎÅ͵µ true
°¡ ¸®ÅϵÈ
ÀÏÀÌ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì
ÅäÅ«Àº ÇǾ ¼Û½ÅÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù¸¸, ÄÁÅØ½ºÆ®
ÀÇ »ó´ëÃøÀº ±× ½ÃÁ¡¿¡¼ ¿ÏÀüÇÏ°Ô È®¸³µÇ¾î ÀÖ½À´Ï´Ù.
GSS-API
ÀÎÁõ ÅäÅ«¿¡´Â °³½Ã ÅäÅ«°ú Á¾·á ÅäÅ«ÀÌ Á¤Àǵǰí ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼µå°¡ È£ÃâµÉ¶§ ¸¶´Ù
ÀÌ·¯ÇÑ ÅäÅ«ÀÌ 1°³
¾¿ ÀÐÈü´Ï´Ù. ÅäÅ«ÀÇ ÀϺΰ¡ ÀÐÈ÷Áö ¾Ê¾Ò´ø °æ¿ì, ±× ½ºÆ®¸²Àº ºí·Ï µË´Ï´Ù. ´Ù¸¥ ¸ðµç Á¡¿¡¼´Â ÀÌ ¸Þ¼µå´Â byte ¹è¿À» º£À̽º·Î ÇÑ acceptSecContext
¿Í
°°½À´Ï´Ù.
ÀϺÎÀÇ µµ±¸
ÇÁ·Î¹ÙÀÌ´õ¿¡¼´Â ½ÃÅ¥·¯Æ¼ ÄÁÅØ½ºÆ®¸¦ ¹Þ¾ÆµéÀÌ´Â Á¢±Ù ±ÇÇÑÀÌ È£ÃâÇØ Ãø¿¡ ºÎ¿©µÇ°í ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù. Á¢±Ù ±ÇÇÑÀÇ È®Àο¡ ½ÇÆÐÇßÀ» °æ¿ì, ÀÌ ¸Þ¼µå·ÎºÎÅÍ SecurityException
À» ¹ß»ý½Ãŵ´Ï´Ù.
´ÙÀ½ÀÇ Äڵ忹´Â ÀÌ ¸Þ¼µåÀÇ »ç¿ë ¹æ¹ýÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.
InputStream is ... OutputStream os ... GSSContext context ... // Loop while there is still a token to be processed while (! context.isEstablished()) { context.acceptSecContext(is, os); // send output token if generated os.flush(); }
inStream
- ÇǾ ÀÇÇØ »ý¼ºµÈ ÅäÅ«À» Æ÷ÇÔÇÑ InputStreamoutStream
- Ãâ·Â ÅäÅ«ÀÌ ½á³»Áö´Â OutputStream. ÄÁÅØ½ºÆ®
È®¸³ÀÇ ÃÖÁ¾ ´Ü°è¿¡¼´Â ½á³»Áö´Â ¹ÙÀÌÆ®°¡ ¾ø´Â °Íµµ ÀÖ´Ù
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.DEFECTIVE_TOKEN
,
GSSException.BAD_MIC
,
GSSException.NO_CRED
,
GSSException.CREDENTIALS_EXPIRED
,
GSSException.BAD_BINDINGS
,
GSSException.OLD_TOKEN
,
GSSException.DUPLICATE_TOKEN
,
GSSException.BAD_MECH
,
GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ùboolean isEstablished()
true
. void dispose() throws GSSException
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ùint getWrapSizeLimit(int qop, boolean confReq, int maxTokenSize) throws GSSException
wrap
¿¡ °Ç³×ÁÙ ¼ö ÀÖ´Â ¸Þ¼¼Áö »çÀÌÁîÀÇ Á¦ÇÑÀ» °áÁ¤ÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. ÀÌ ¸Þ¼µå´Â ÃÖ´ë ¸Þ¼¼Áö »çÀÌÁ ¸®ÅÏÇÕ´Ï´Ù. confReq
¹× qop
ÆÄ¶ó¹ÌÅͰ¡ °°Àº wrap
¸Þ¼µå¿¡ ÀÌ »çÀÌÁîÀÇ ¸Þ¼¼Áö¸¦ °Ç³×ÁÖ¸é, maxTokenSize
¹ÙÀÌÆ® ¾Æ·¡ÀÇ Ãâ·Â ÅäÅ«ÀÌ »ý¼ºµË´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀ¸·Î ÀÌ ¸Þ¼µå¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â ÃÖ´ë ¸Þ¼¼Áö »çÀÌÁ »ç¿ëÇÏ´Â ÇÁ·ÎÅäÄÝÀ» °³ÀÔ½ÃÄÑ Åë½ÅÇÏ´Â °ÍÀ» ÀüÁ¦·Î Çϰí ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼µå¸¦ »ç¿ëÇϸé, ¸Þ¼¼Áö¸¦ ´ÜÆíÈÇÏ°í ³ª¼ º¸È£¸¦ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
GSS-API ±¸Çö¿¡¼´Â getWrapSizeLimit
¸¦ È£ÃâÇßÀ» ¶§¿¡
QOP °ªÀÌ À¯È¿ÇѰ¡ ¾î¶²°¡¸¦ °ËÃâÇϵµ·Ï Ãßõ Çϰí ÀÖ½À´Ï´Ù. ´Ù¸¸, Çʼö°¡ ¾Æ´Õ´Ï´Ù. ÀÌ ·çƾ¿¡¼´Â ÃÖ´ë ¸Þ¼¼Áö »çÀÌÁÀÌ º¸ÁõµÇ¾î ¸Þ¼¼Áö º¸È£·Î ÁöÁ¤ÇÑ QOP Ä¡¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖÀ»Áö ¾î¶³Áö¿¡ ´ëÇØ¼´Â º¸ÁõµÇÁö ¾Ê½À´Ï´Ù.
qop
- ·¦¿¡ ¿ä±¸ÇÏ´Â º¸È£ ·¹º§confReq
- ·¦¿¡ ÇÁ¶óÀ̹ö½Ã¸¦ ¿ä±¸ÇÏ´Â °æ¿ì´Â true
. ¿ä±¸ÇÏÁö ¾Ê´Â °æ¿ì´Â false
maxTokenSize
- ·¦¿¡ ÀÇÇØ »ý¼ºµÇ´Â ÅäÅ«ÀÇ ÃÖ´ë »çÀÌÁî·Î¼ ÁöÁ¤ÇÏ´Â °ª
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.CONTEXT_EXPIRED
,
GSSException.BAD_QOP
,
GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ùbyte[] wrap(byte[] inBuf, int offset, int len, MessageProp msgProp) throws GSSException
MessageProp °´Ã¼´Â ¾îÇø®ÄÉÀ̼ǿ¡ ÀÇÇØ ÀνºÅϽºÈ µË´Ï´Ù. ÀÌ °´Ã¼¸¦ »ç¿ëÇØ, ¾ÏÈ£È ¾Ë°í¸®ÁòÀ» ¼±ÅÃÇϱâ À§ÇÑ QOP Ä¡³ª, ÀÓÀÇ ÁöÁ¤À¸·Î ¸Þ¼¼Áö¸¦ ¾ÏÈ£ÈÇϱâ À§ÇÑ ÇÁ¶óÀ̹ö½Ã ¼ºñ½º¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ È£Ãâ¿¡ »ç¿ëµÇ´Â ºÎÇÏÀÇ µµ±¸¿¡ ¼´Â ÀÌ ÇÁ¶óÀ̹ö½Ã ¼ºñ½º¸¦ Á¦°øÇÒ ¼ö ¾ø´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ±× °æ¿ì´Â ºÎÇÏÀÇ µµ±¸°¡ Á¦°øÇÏ´Â ½ÇÁ¦ÀÇ ÇÁ¶óÀ̹ö½Ã ¼ºñ½º°¡ ÀÌ MessageProp °´Ã¼·Î ¼³Á¤µË´Ï´Ù. È£ÃâÃøÀº º¹±ÍÇÏÀÚ ¸¶ÀÚ ÇÁ¶óÀ̹ö½Ã ¼ºñ½º¸¦ Á¶È¸ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ºÎÇÏÀÇ µµ±¸°¡ ¿ä±¸µÈ QOP¸¦ Á¦°øÇÒ ¼ö ¾ø´Â °æ¿ì´Â BAD_QOP Äڵ尡 ¼³Á¤µÈ GSSException°¡ ¹ß»ý µË´Ï´Ù.
¾îÇø®ÄÉÀÌ¼Ç ·¹º§ÀÇ ÇÁ·ÎÅäÄÝ¿¡´Â ·¦¿¡ ÀÇÇØ »ý¼ºµÈ ÅäÅ«À» »ç¿ëÇØ ¡¸¼¼Å¥¾ÆÈÄ·¹À̹֡¹À» Á¦°øÇÏ´Â °ÍÀÌ Àֱ⠶§¹®¿¡ ±¸Çö¿¡¼´Â ±æÀÌ 0 ¸Þ¼¼ÁöÀÇ ·¦À» Áö¿ø ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
¾îÇø®ÄÉÀ̼ÇÀº ÀÌ ÅäÅ«À» ÇǾ ¼Û½ÅÇÕ´Ï´Ù.
inBuf
- º¸È£µÇ´Â ¾îÇø®ÄÉÀÌ¼Ç µ¥ÀÌÅÍoffset
- inBuf ³»ÀÇ ¿ÀÇÁ¼Â(offset). ÀÌ Á¤µµÄ¡·ÎºÎÅÍ µ¥ÀÌÅͰ¡ °³½ÃÇÏ´Âlen
- µ¥ÀÌÅÍÀÇ ±æÀÌmsgProp
- MessageProp
ÀνºÅϽº. ÇÊ¿äÇÑ QOP¿Í
ÇÁ¶óÀ̹ö½Ã »óŸ¦ ¼³Á¤Çϱâ À§Çؼ ¾îÇø®ÄÉÀ̼ÇÀÌ »ç¿ëÇÑ´Ù. µðÆúÆ®ÀÇ QOP¸¦ ¿ä±¸ÇÏ´Â °æ¿ì´Â ÁöÁ¤ÇÏ´Â QOP ·Î¼ 0À» ¼³Á¤ÇÑ´Ù. ÀÌ ¸Þ¼µå·ÎºÎÅÍ º¹±ÍÇϸé, ÀÌ °´Ã¼¿¡´Â ºÎÇÏÀÇ µµ±¸¿¡ ÀÇÇØ ¸Þ¼¼Áö¿¡ Àû¿ëµÈ ½ÇÁ¦ÀÇ ÇÁ¶óÀ̹ö½Ã »óŰ¡ Æ÷ÇԵȴÙ
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.CONTEXT_EXPIRED
,
GSSException.BAD_QOP
,
GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ùvoid wrap(InputStream inStream, OutputStream outStream, MessageProp msgProp) throws GSSException
wrap
¸Þ¼µå¿Í °°½À´Ï´Ù.
¾îÇø®ÄÉÀ̼ÇÀº ÀÌ ÅäÅ«À» ÇǾ ¼Û½ÅÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÀϹÝÀûÀ¸·Î ÀÌ Ã³¸®¸¦ È®½ÇÈ÷ ½Ç½ÃÇϱâ À§Çؼ
OutputStream
¿¡ ´ëÇØ¼ flush
¸Þ¼µå¸¦ È£ÃâÇØ 2°³ÀÇ ÇǾÀÇ Á¢¼ÓÀ» ĸ½¶ÈÇÕ´Ï´Ù.
MessageProp °´Ã¼´Â ¾îÇø®ÄÉÀ̼ǿ¡ ÀÇÇØ ÀνºÅϽºÈ µË´Ï´Ù. ÀÌ °´Ã¼¸¦ »ç¿ëÇØ, ¾ÏÈ£È ¾Ë°í¸®ÁòÀ» ¼±ÅÃÇϱâ À§ÇÑ QOP Ä¡³ª, ÀÓÀÇ ÁöÁ¤À¸·Î ¸Þ¼¼Áö¸¦ ¾ÏÈ£ÈÇϱâ À§ÇÑ ÇÁ¶óÀ̹ö½Ã ¼ºñ½º¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ È£Ãâ¿¡ »ç¿ëµÇ´Â ºÎÇÏÀÇ µµ±¸¿¡ ¼´Â ÀÌ ÇÁ¶óÀ̹ö½Ã ¼ºñ½º¸¦ Á¦°øÇÒ ¼ö ¾ø´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ±× °æ¿ì´Â ºÎÇÏÀÇ µµ±¸°¡ Á¦°øÇÏ´Â ½ÇÁ¦ÀÇ ÇÁ¶óÀ̹ö½Ã ¼ºñ½º°¡ ÀÌ MessageProp °´Ã¼·Î ¼³Á¤µË´Ï´Ù. È£ÃâÃøÀº º¹±ÍÇÏÀÚ ¸¶ÀÚ ÇÁ¶óÀ̹ö½Ã ¼ºñ½º¸¦ Á¶È¸ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ºÎÇÏÀÇ µµ±¸°¡ ¿ä±¸µÈ QOP¸¦ Á¦°øÇÒ ¼ö ¾ø´Â °æ¿ì´Â BAD_QOP Äڵ尡 ¼³Á¤µÈ GSSException°¡ ¹ß»ý µË´Ï´Ù.
¾îÇø®ÄÉÀÌ¼Ç ·¹º§ÀÇ ÇÁ·ÎÅäÄÝ¿¡´Â ·¦¿¡ ÀÇÇØ »ý¼ºµÈ ÅäÅ«À» »ç¿ëÇØ ¡¸¼¼Å¥¾ÆÈÄ·¹À̹֡¹À» Á¦°øÇÏ´Â °ÍÀÌ Àֱ⠶§¹®¿¡ ±¸Çö¿¡¼´Â ±æÀÌ 0 ¸Þ¼¼ÁöÀÇ ·¦À» Áö¿ø ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
inStream
- º¸È£µÇ´Â ¾îÇø®ÄÉÀÌ¼Ç µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ InputStream. InStream ³»ÀÇ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â µ¥ÀÌÅͰ¡ ¸ðµÎ »ç¿ëµÇ´ÂoutStream
- º¸È£µÈ ¸Þ¼¼Áö¸¦ ½á³»´Â OutputStreammsgProp
- MessageProp
ÀνºÅϽº. ÇÊ¿äÇÑ QOP¿Í
ÇÁ¶óÀ̹ö½Ã »óŸ¦ ¼³Á¤Çϱâ À§Çؼ ¾îÇø®ÄÉÀ̼ÇÀÌ »ç¿ëÇÑ´Ù. µðÆúÆ®ÀÇ QOP¸¦ ¿ä±¸ÇÏ´Â °æ¿ì´Â ÁöÁ¤ÇÏ´Â QOP ·Î¼ 0À» ¼³Á¤ÇÑ´Ù. ÀÌ ¸Þ¼µå·ÎºÎÅÍ º¹±ÍÇϸé, ÀÌ °´Ã¼¿¡´Â ºÎÇÏÀÇ µµ±¸¿¡ ÀÇÇØ ¸Þ¼¼Áö¿¡ Àû¿ëµÈ ½ÇÁ¦ÀÇ ÇÁ¶óÀ̹ö½Ã »óŰ¡ Æ÷ÇԵȴÙ
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.CONTEXT_EXPIRED
,
GSSException.BAD_QOP
,
GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ùbyte[] unwrap(byte[] inBuf, int offset, int len, MessageProp msgProp) throws GSSException
wrap
¸Þ¼µå¿¡ ÀÇÇØ »ý¼ºµÈ ÅäÅ«À» ó¸®Çϱâ À§Çؼ »ç¿ëÇÕ´Ï´Ù. ÀÌ ¸Þ¼µå´Â ÇÇ¾î ¾îÇø®ÄÉÀ̼ÇÀ¸·ÎºÎÅÍ ±× ·¦ È£Ãâ¿¡°Ô °Ç³×Áø ¸Þ¼¼Áö¸¦ µ¹·ÁÁÖ°í, µ¿½Ã¿¡ ±× ¸Þ¼¼Áö¿¡ ÆÄ¹¯Èù MIC¸¦ °Ë»çÇÕ´Ï´Ù. MessageProp °´Ã¼´Â ¾îÇø®ÄÉÀ̼ǿ¡ ÀÇÇØ ÀνºÅϽºÈ µË´Ï´Ù. ÀÌ °´Ã¼´Â QOP, ¸Þ¼¼Áö¿¡ ±â¹Ð¼ºÀÌ Àû¿ëµÇ°í ÀÖ´ÂÁö ¾î¶²Áö ¹× ¸Þ¼¼Áö »óÅ¿¡ °üÇÑ ±× ¿ÜÀÇ º¸Ãæ Á¤º¸¸¦ È£ÃâÇØ Ãø¿¡ µ¹·ÁÁÖ±â À§Çؼ ºÎÇÏÀÇ µµ±¸¿¡ ÀÇÇØ »ç¿ëµË´Ï´Ù.
¾îÇø®ÄÉÀÌ¼Ç ·¹º§ÀÇ ÇÁ·ÎÅäÄÝ¿¡´Â ·¦¿¡ ÀÇÇØ »ý¼ºµÈ ÅäÅ«À» »ç¿ëÇØ ¡¸¼¼Å¥¾ÆÈÄ·¹À̹֡¹À» Á¦°øÇÏ´Â °ÍÀÌ Àֱ⠶§¹®¿¡ ±¸Çö¿¡¼´Â ±æÀÌ 0 ¸Þ¼¼ÁöÀÇ ·¦ ¹× ·¦ ÇØÁ¦¸¦ Áö¿ø ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
inBuf
- ÇǾî·ÎºÎÅÍ ¼ö½ÅÇÑ ·¦ ÅäÅ«À» Æ÷ÇÔÇÑ byte ¹è¿offset
- ÅäÅ«ÀÌ °³½ÃÇÏ´Â ¿ÀÇÁ¼Â(offset)len
- ÅäÅ«ÀÇ ±æÀÌmsgProp
- ÀÌ ¸Þ¼µå·ÎºÎÅÍ º¹±ÍÇϸé, ÀÌ °´Ã¼¿¡´Â Àû¿ëµÈ QOP, ¸Þ¼¼ÁöÀÇ ÇÁ¶óÀ̹ö½Ã »óÅ ¹× ÅäÅ«ÀÇ º¸Ãæ Á¤º¸ (Áߺ¹ Çϰí ÀÖ´Â ³°Àº ¼ø¼°¡ ¿Ã¹Ù¸£Áö ¾ÊÀº °¸ÀÇ ÈÄ¿¡ Âø½ÅÇß´ÂÁö ¾î¶°Çß´ÂÁö)°¡ Æ÷ÇԵȴÙ
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.DEFECTIVE_TOKEN
,
GSSException.BAD_MIC
,
GSSException.CONTEXT_EXPIRED
,
GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ùvoid unwrap(InputStream inStream, OutputStream outStream, MessageProp msgProp) throws GSSException
wrap
¸Þ¼µå¿¡ ÀÇÇØ »ý¼ºµÈ ÅäÅ«À» ó¸®ÇÕ´Ï´Ù. ÀÌ ¸Þ¼µå´Â ÇÇ¾î ¾îÇø®ÄÉÀ̼ÇÀ¸·ÎºÎÅÍ ±× ·¦ È£Ãâ¿¡°Ô °Ç³×Áø ¸Þ¼¼Áö¸¦ µ¹·ÁÁÖ°í, µ¿½Ã¿¡ ±× ¸Þ¼¼Áö¿¡ ÆÄ¹¯Èù MIC¸¦ °Ë»çÇÕ´Ï´Ù. MessageProp °´Ã¼´Â ¾îÇø®ÄÉÀ̼ǿ¡ ÀÇÇØ ÀνºÅϽºÈ µË´Ï´Ù. ÀÌ °´Ã¼´Â QOP, ¸Þ¼¼Áö¿¡ ±â¹Ð¼ºÀÌ Àû¿ëµÇ°í ÀÖ´ÂÁö ¾î¶²Áö ¹× ¸Þ¼¼Áö »óÅ¿¡ °üÇÑ ±× ¿ÜÀÇ º¸Ãæ Á¤º¸¸¦ È£ÃâÇØ Ãø¿¡ µ¹·ÁÁÖ±â À§Çؼ ºÎÇÏÀÇ µµ±¸¿¡ ÀÇÇØ »ç¿ëµË´Ï´Ù.
¾îÇø®ÄÉÀÌ¼Ç ·¹º§ÀÇ ÇÁ·ÎÅäÄÝ¿¡´Â ·¦¿¡ ÀÇÇØ »ý¼ºµÈ ÅäÅ«À» »ç¿ëÇØ ¡¸¼¼Å¥¾ÆÈÄ·¹À̹֡¹À» Á¦°øÇÏ´Â °ÍÀÌ Àֱ⠶§¹®¿¡ ±¸Çö¿¡¼´Â ±æÀÌ 0 ¸Þ¼¼ÁöÀÇ ·¦ ¹× ·¦ ÇØÁ¦¸¦ Áö¿ø ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
ÀÌ ¸Þ¼µå°¡ Àо´Â ÀÔ·Â ÅäÅ«ÀÇ Çü½ÄÀº »ç¿ëÇÏ´Â ºÎÇÏÀÇ µµ±¸
ÀÇ »ç¾ç¿¡ Á¤Àǵǰí ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼µå°¡ È£ÃâµÉ¶§ ¸¶´Ù
ÀÌ·¯ÇÑ ÅäÅ«ÀÌ 1°³
¾¿ ÀÐÈü´Ï´Ù. ÀÌ µµ±¸
ÀÇ ÅäÅ«¿¡ °³½Ã ÅäÅ«°ú Á¾·á ÅäÅ«ÀÌ Á¤Àǵǰí ÀÖ´Â °æ¿ì, ÀϺÎÀÇ ÅäÅ«ÀÌ ÀÐÈ÷Áö ¾Ê¾ÒÀ» ¶§´Â InputStream
´Â ºí·Ï µË´Ï´Ù. °³½Ã ÅäÅ«°ú Á¾·á ÅäÅ«ÀÌ Á¤ÀǵǾî ÀÖÁö ¾ÊÀº °æ¿ì´Â »ç¿ëÇÒ ¼ö ÀÖ´Â ¸ðµç ¹ÙÀÌÆ®°¡ ±× ÅäÅ«ÀÇ ÀϺζó°í º¸¿©Áý´Ï´Ù.
ÀÔ·Â ½ºÆ®¸²ÀÇ ºí·ÏÀÌ ¹ß»ýÇÏ´Â ÀÏÀÌ ÀÖ´Â Á¡À» Á¦¿ÜÇϸé, ÀÌ ¸Þ¼µå´Â byte ¹è¿À» º£À̽º·Î ÇÑ unwrap
¸Þ¼µå¿Í °°½À´Ï´Ù.
inStream
- ÇǾ ÀÇÇØ »ý¼ºµÈ ·¦ ÅäÅ«À» Æ÷ÇÔÇÑ InputStreamoutStream
- ¾îÇø®ÄÉÀÌ¼Ç ¸Þ¼¼Áö¸¦ ½á³»´Â OutputStreammsgProp
- ÀÌ ¸Þ¼µå·ÎºÎÅÍ º¹±ÍÇϸé, ÀÌ °´Ã¼¿¡´Â Àû¿ëµÈ QOP, ¸Þ¼¼ÁöÀÇ ÇÁ¶óÀ̹ö½Ã »óÅ ¹× ÅäÅ«ÀÇ º¸Ãæ Á¤º¸ (Áߺ¹ Çϰí ÀÖ´Â ³°Àº ¼ø¼°¡ ¿Ã¹Ù¸£Áö ¾ÊÀº °¸ÀÇ ÈÄ¿¡ Âø½ÅÇß´ÂÁö ¾î¶°Çß´ÂÁö)°¡ Æ÷ÇԵȴÙ
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.DEFECTIVE_TOKEN
,
GSSException.BAD_MIC
,
GSSException.CONTEXT_EXPIRED
,
GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ùbyte[] getMIC(byte[] inMsg, int offset, int len, MessageProp msgProp) throws GSSException
ÇÁ¶óÀ̹ö½Ã´Â ·¦À» È£ÃâÇßÀ» ¶§¿¡¸¸ Àû¿ëµË´Ï´Ù.
¾îÇø®ÄÉÀÌ¼Ç ·¹º§ÀÇ ÇÁ·ÎÅäÄÝ¿¡´Â getMIC¿¡ ÀÇÇØ »ý¼ºµÈ ÅäÅ«À» »ç¿ëÇØ ¡¸¼¼Å¥¾ÆÈÄ·¹À̹֡¹À» Á¦°øÇÏ´Â °ÍÀÌ Àֱ⠶§¹®¿¡ ±¸Çö¿¡¼´Â ±æÀÌ 0 ¸Þ¼¼Áö·ÎºÎÅÍ ÆÄ»ýÇÑ MIC¸¦ Áö¿ø ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
inMsg
- MIC
»ý¼ºÀÇ ´ë»óÀÌ µÇ´Â ¸Þ¼¼Áöoffset
- inMsg ³»ÀÇ ¿ÀÇÁ¼Â(offset). ÀÌ Á¤µµÄ¡·ÎºÎÅÍ ¸Þ¼¼Áö°¡ °³½ÃÇÏ´Âlen
- ¸Þ¼¼ÁöÀÇ ±æÀÌmsgProp
- MessageProp
ÀνºÅϽº. ÇÊ¿äÇÑ QOP¸¦ ¼³Á¤Çϱâ À§Çؼ ¾îÇø®ÄÉÀ̼ÇÀÌ »ç¿ëÇÑ´Ù. µðÆúÆ®ÀÇ QOP¸¦ ¿ä±¸ÇÏ´Â °æ¿ì´Â msgProp
·Î
ÁöÁ¤ÇÏ´Â QOP ·Î¼ 0
À» ¼³Á¤ÇÏ´ÂÁö, msgProp
¿¡ null
À»
°Ç³×ÁØ´Ù
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.CONTEXT_EXPIRED
,
GSSException.BAD_QOP
,
GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ùvoid getMIC(InputStream inStream, OutputStream outStream, MessageProp msgProp) throws GSSException
getMIC
¸Þ¼µå¿Í °°½À´Ï´Ù.
ÇÁ¶óÀ̹ö½Ã´Â ·¦À» È£ÃâÇßÀ» ¶§¿¡¸¸ Àû¿ëµË´Ï´Ù. ¾îÇø®ÄÉÀÌ¼Ç ·¹º§ÀÇ ÇÁ·ÎÅäÄÝ¿¡´Â getMIC¿¡ ÀÇÇØ »ý¼ºµÈ ÅäÅ«À» »ç¿ëÇØ ¡¸¼¼Å¥¾ÆÈÄ·¹À̹֡¹À» Á¦°øÇÏ´Â °ÍÀÌ Àֱ⠶§¹®¿¡ ±¸Çö¿¡¼´Â ±æÀÌ 0 ¸Þ¼¼Áö·ÎºÎÅÍ ÆÄ»ýÇÑ MIC¸¦ Áö¿ø ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
inStream
- MIC
»ý¼ºÀÇ ´ë»óÀÌ µÇ´Â ¸Þ¼¼Áö¸¦ Æ÷ÇÔÇÑ InputStream. InStream ³»¿¡¼ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â µ¥ÀÌÅͰ¡ ¸ðµÎ »ç¿ëµÇ´ÂoutStream
- Ãâ·Â ÅäÅ«À» ½á³»´Â OutputStreammsgProp
- MessageProp
ÀνºÅϽº. ÇÊ¿äÇÑ QOP¸¦ ¼³Á¤Çϱâ À§Çؼ ¾îÇø®ÄÉÀ̼ÇÀÌ »ç¿ëÇÑ´Ù. µðÆúÆ®ÀÇ QOP¸¦ ¿ä±¸ÇÏ´Â °æ¿ì´Â msgProp
·Î
ÁöÁ¤ÇÏ´Â QOP ·Î¼ 0
À» ¼³Á¤ÇÏ´ÂÁö, msgProp
¿¡ null
À»
°Ç³×ÁØ´Ù
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.CONTEXT_EXPIRED
,
GSSException.BAD_QOP
,
GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ùvoid verifyMIC(byte[] inToken, int tokOffset, int tokLen, byte[] inMsg, int msgOffset, int msgLen, MessageProp msgProp) throws GSSException
MessageProp °´Ã¼´Â ¾îÇø®ÄÉÀ̼ǿ¡ ÀÇÇØ ÀνºÅϽºÈ µË´Ï´Ù. ÀÌ °´Ã¼´Â ¸Þ¼¼Áö¿¡ Àû¿ëµÈ º¸È£ÀÇ °ÇÔÀ» ³ªÅ¸³»´Â QOP ¹× ¸Þ¼¼Áö »óÅ¿¡ °üÇÑ ±× ¿ÜÀÇ º¸Ãæ Á¤º¸¸¦ È£ÃâÇØ Ãø¿¡ µ¹·ÁÁÖ±â À§Çؼ ºÎÇÏÀÇ µµ±¸¿¡ ÀÇÇØ »ç¿ëµË´Ï´Ù.
¾îÇø®ÄÉÀÌ¼Ç ·¹º§ÀÇ ÇÁ·ÎÅäÄÝ¿¡´Â getMIC¿¡ ÀÇÇØ »ý¼ºµÈ ÅäÅ«À» »ç¿ëÇØ ¡¸¼¼Å¥¾ÆÈÄ·¹À̹֡¹À» Á¦°øÇÏ´Â °ÍÀÌ Àֱ⠶§¹®¿¡ ±¸Çö¿¡¼´Â ±æÀÌ 0 ¸Þ¼¼Áö¿¡ ´ëÇÑ MIC¸¦ °è»ê ¹× °Ë»çÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
inToken
- ÇǾîÀÇ getMIC ¸Þ¼µå¿¡ ÀÇÇØ »ý¼ºµÈ ÅäÅ«tokOffset
- inMsg ³»ÀÇ ¿ÀÇÁ¼Â(offset). ÀÌ Á¤µµÄ¡·ÎºÎÅÍ ÅäÅ«ÀÌ °³½ÃÇÏ´ÂtokLen
- ÅäÅ«ÀÇ ±æÀÌinMsg
- ¾ÏÈ£È MIC
°Ë»çÀÇ ´ë»óÀÌ µÇ´Â ¾îÇø®ÄÉÀÌ¼Ç ¸Þ¼¼ÁömsgOffset
- inMsg ³»ÀÇ ¿ÀÇÁ¼Â(offset). ÀÌ Á¤µµÄ¡·ÎºÎÅÍ ¸Þ¼¼Áö°¡ °³½ÃÇÏ´ÂmsgLen
- ¸Þ¼¼ÁöÀÇ ±æÀÌmsgProp
- ÀÌ ¸Þ¼µå·ÎºÎÅÍ º¹±ÍÇϸé, ÀÌ °´Ã¼¿¡´Â Àû¿ëµÈ QOP ¹× ÅäÅ«ÀÇ º¸Ãæ Á¤º¸ (Áߺ¹ Çϰí ÀÖ´Â ³°Àº ¼ø¼°¡ ¿Ã¹Ù¸£Áö ¾ÊÀº °¸ÀÇ ÈÄ¿¡ Âø½ÅÇß´ÂÁö ¾î¶°Çß´ÂÁö)°¡ Æ÷ÇԵȴÙ
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.DEFECTIVE_TOKEN
,
GSSException.BAD_MIC
,
GSSException.CONTEXT_EXPIRED
,
GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ùvoid verifyMIC(InputStream tokStream, InputStream msgStream, MessageProp msgProp) throws GSSException
verifyMIC
¸Þ¼µå¿Í °°½À´Ï´Ù.
MessageProp °´Ã¼´Â ¾îÇø®ÄÉÀ̼ǿ¡ ÀÇÇØ ÀνºÅϽºÈ µË´Ï´Ù. ÀÌ °´Ã¼´Â ¸Þ¼¼Áö¿¡ Àû¿ëµÈ º¸È£ÀÇ °ÇÔÀ» ³ªÅ¸³»´Â QOP ¹× ¸Þ¼¼Áö »óÅ¿¡ °üÇÑ ±× ¿ÜÀÇ º¸Ãæ Á¤º¸¸¦ È£ÃâÇØ Ãø¿¡ µ¹·ÁÁÖ±â À§Çؼ
ºÎÇÏÀÇ µµ±¸¿¡ ÀÇÇØ »ç¿ëµË´Ï´Ù. ¾îÇø®ÄÉÀÌ¼Ç ·¹º§ÀÇ ÇÁ·ÎÅäÄÝ¿¡´Â getMIC¿¡ ÀÇÇØ »ý¼ºµÈ ÅäÅ«À» »ç¿ëÇØ ¡¸¼¼Å¥¾ÆÈÄ·¹À̹֡¹À» Á¦°øÇÏ´Â °ÍÀÌ Àֱ⠶§¹®¿¡ ±¸Çö¿¡¼´Â ±æÀÌ 0 ¸Þ¼¼Áö¿¡ ´ëÇÑ MIC¸¦ °è»ê ¹× °Ë»çÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
ÀÌ ¸Þ¼µå°¡ Àо´Â ÀÔ·Â ÅäÅ«ÀÇ Çü½ÄÀº »ç¿ëÇÏ´Â ºÎÇÏÀÇ µµ±¸
ÀÇ »ç¾ç¿¡ Á¤Àǵǰí ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼µå°¡ È£ÃâµÉ¶§ ¸¶´Ù
ÀÌ·¯ÇÑ ÅäÅ«ÀÌ 1°³
¾¿ ÀÐÈü´Ï´Ù. ÀÌ µµ±¸
ÀÇ ÅäÅ«¿¡ °³½Ã ÅäÅ«°ú Á¾·á ÅäÅ«ÀÌ Á¤Àǵǰí ÀÖ´Â °æ¿ì, ÀϺÎÀÇ ÅäÅ«ÀÌ ÀÐÈ÷Áö ¾Ê¾ÒÀ» ¶§´Â InputStream
´Â ºí·Ï µË´Ï´Ù. °³½Ã ÅäÅ«°ú Á¾·á ÅäÅ«ÀÌ Á¤ÀǵǾî ÀÖÁö ¾ÊÀº °æ¿ì´Â »ç¿ëÇÒ ¼ö ÀÖ´Â ¸ðµç ¹ÙÀÌÆ®°¡ ±× ÅäÅ«ÀÇ ÀϺζó°í º¸¿©Áý´Ï´Ù.
ÀÔ·Â ½ºÆ®¸²ÀÇ ºí·ÏÀÌ ¹ß»ýÇÏ´Â ÀÏÀÌ ÀÖ´Â Á¡À» Á¦¿ÜÇϸé, ÀÌ ¸Þ¼µå´Â byte ¹è¿À» º£À̽º·Î ÇÑ verifyMIC
¸Þ¼µå¿Í °°½À´Ï´Ù.
tokStream
- ÇǾîÀÇ getMIC ¸Þ¼µå¿¡ ÀÇÇØ »ý¼ºµÈ ÅäÅ«À» Æ÷ÇÔÇÑ InputStreammsgStream
- ¾ÏÈ£È MIC
°Ë»çÀÇ ´ë»óÀÌ µÇ´Â ¾îÇø®ÄÉÀÌ¼Ç ¸Þ¼¼Áö¸¦ Æ÷ÇÔÇÑ InputStream. msgStream ³»¿¡¼ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â µ¥ÀÌÅͰ¡ ¸ðµÎ »ç¿ëµÇ´ÂmsgProp
- ÀÌ ¸Þ¼µå·ÎºÎÅÍ º¹±ÍÇϸé, ÀÌ °´Ã¼¿¡´Â Àû¿ëµÈ QOP ¹× ÅäÅ«ÀÇ º¸Ãæ Á¤º¸ (Áߺ¹ Çϰí ÀÖ´Â ³°Àº ¼ø¼°¡ ¿Ã¹Ù¸£Áö ¾ÊÀº °¸ÀÇ ÈÄ¿¡ Âø½ÅÇß´ÂÁö ¾î¶°Çß´ÂÁö)°¡ Æ÷ÇԵȴÙ
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.DEFECTIVE_TOKEN
,
GSSException.BAD_MIC
,
GSSException.CONTEXT_EXPIRED
,
GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ùbyte[] export() throws GSSException
ÀÌ ¸Þ¼µå´Â ½ÃÅ¥·¯Æ¼ ÄÁÅØ½ºÆ®¸¦ Á¾·áÇØ, ÇÁ·Î¼¼½º°£ ÅäÅ«À» ÀÛ¼ºÇÕ´Ï´Ù. ÀÌ ÇÁ·Î¼¼½º°£ÅäÅ«À» ´Ù¸¥ ÇÁ·Î¼¼½ºÀÇ GSSManager.createContext
¿¡ °Ç³×ÁÖ¸é, ±× ÇÁ·Î¼¼½º·Î ±× ÄÁÅØ½ºÆ®ÀÌ ÀçÂ÷ ½ÃÀ۵˴ϴÙ. ƯÁ¤ÀÇ ÄÁÅØ½ºÆ®
ÀÇ ÀνºÅϽº´Â 1¹ø¿¡ 1°³
¹Û¿¡ ½ÃÀÛÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ ¶§¹®¿¡
export ÇÑ ½ÃÅ¥·¯Æ¼ ÄÁÅØ½ºÆ®¸¦ ÄÁÅØ½ºÆ®
ÀÇ exportÃø¿¡¼ ¾×¼¼½º ÇÏ·Á°í Çϸé, ½ÇÆÐÇÕ´Ï´Ù.
ÀÌ ±¸Çö¿¡¼´Â ÇÁ·Î¼¼½º°£ ÅäÅ«À» ÀÓÆ÷Æ® ÇÏ´Â ÇÁ·Î¼¼½º°¡ ·ÎÄà ½ÃÅ¥·¯Æ¼ Á¤Ã¥ ¶Ç´Â ±¸ÇöÀÇ ¼³Á¤¿¡ ÀÇÇØ Á¦ÇѵǴ ÀÏÀÌ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î °°Àº ¾îÄ«¿îÆ®·Î µ¿ÀÛÇÏ´Â ÇÁ·Î¼¼½º°£¿¡¸¸ ÄÁÅØ½ºÆ®ÀÌ °Ç³×¹Þ°Å³ª °°Àº ÇÁ·Î¼¼½º ±×·ìÀÇ ÇÁ·Î¼¼½º°£¿¡¸¸ °Ç³×¹Þ°Å³ª ÇÕ´Ï´Ù.
ÇÁ·Î¼¼½º°£ ÅäÅ«¿¡´Â ±â¹Ð Á¤º¸ (¾ÏÈ£È۵î)°¡ Æ÷ÇԵǾî ÀÖ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ±â¹Ð Á¤º¸´Â °¡´ÉÇÑ ÇÑ ÇÁ·Î¼¼½º°£ ÅäÅ«¿¡ Æ÷ÇÔÇÏÁö ¾Ê°Ô ÇÏ´ÂÁö, ÅäÅ«À» ¾ÏÈ£ÈÇÏ°í ³ª¼ ¾îÇø®ÄÉÀ̼ǿ¡ µ¹·ÁÁÖ¼¼¿ä. ´Ù¸¸, Ç¥ÁØÀûÀÎ GSS-API ±¸Çö¿¡¼´Â ÀÌ·¯ÇÑ ´ëÀÀÀ» Àû¿ëÇÒ ¼ö ¾ø´Â °ÍÀÌ ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡ ¾îÇø®ÄÉÀ̼ÇÀ¸·Î ÇÁ·Î¼¼½º°£ ÅäÅ«À» »ç¿ëÇÏ´Â °æ¿ì´Â ½ÃÅ¥·¯Æ¼¿¡ ÃæºÐÈ÷ ¹è·ÁÇØ, ½Å·ÚÇÒ ¼ö ÀÖ´Â ÇÁ·Î¼¼½º¿¡ Àü¼ÛÀÇÇØ ÁÖ¼¼¿ä.
½ÃÅ¥·¯Æ¼ ÄÁÅØ½ºÆ®
ÀÇ ÇÁ·Î¼¼½º°£ Àü¼ÛÀº ±¸Çö¿¡ µû¶ó¼´Â Áö¿ø
µÇ¾î ÀÖÁö ¾ÊÀº °ÍÀÌ ÀÖ½À´Ï´Ù. isTransferable
¸Þ¼µå¸¦ È£ÃâÇϸé, ÄÁÅØ½ºÆ®
°´Ã¼¸¦ Àü¼Û ÇÒ ¼ö ÀÖÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
export ÇÒ ¼ö ¾ø´Â ÄÁÅØ½ºÆ®¿¡ ´ëÇØ¼ ÀÌ ¸Þ¼µå¸¦ È£ÃâÇϸé, ¿¡·¯ ÄÚµå GSSException.UNAVAILABLE
¸¦
Æ÷ÇÔÇÑ ¿¹¿Ü°¡ ¹ß»ý µË´Ï´Ù.
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.UNAVAILABLE
,
GSSException.CONTEXT_EXPIRED
,
GSSException.NO_CONTEXT
,
GSSException.FAILURE
À» Æ÷ÇÔÇÑGSSManager.createContext(byte[])
void requestMutualAuth(boolean state) throws GSSException
initSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
ÀÎÁõ µµ±¸¿¡ µû¶ó¼´Â »óÈ£ ÀÎÁõÀÌ Áö¿ø
µÇ¾î ÀÖÁö ¾ÊÀº °ÍÀÌ ÀÖ½À´Ï´Ù. ¶Ç, ¾îÇø®ÄÉÀ̼ÇÀº »óÈ£ ÀÎÁõÀ» ÇÊ¿ä·Î ÇÏÁö ¾Ê¾Æµµ, ÀÎÁõ µµ±¸°¡ »óÈ£ ÀÎÁõÀ» ÇÊ¿ä·Î Çϰí ÀÖ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ±× ¶§¹®¿¡
ÀÌ ¿ä±¸¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦ È®ÀÎÇϱâ À§ÇØ, ¾îÇø®ÄÉÀ̼ÇÀ¸·Î getMutualAuthState
¸Þ¼µå¸¦ »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
state
- »óÈ£ ÀÎÁõÀ» »ç¿ëÇÒÁö ¾î¶³Áö¸¦ ³ªÅ¸³»´Â boolean Ä¡
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑgetMutualAuthState()
void requestReplayDet(boolean state) throws GSSException
initSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÄÁÅØ½ºÆ®ÀÌ È®¸³ÇØ ÀÖ´Â µ¿¾ÈÀº ¸®Ç÷¹ÀÌ °ËÃâÀº ¿É¼ÇÀº ¾Æ´Ï°í, ºÎÇÏÀÇ µµ±¸
ÀÇ ±â´ÉÀÌ µË´Ï´Ù.
ÀÎÁõ µµ±¸¿¡ µû¶ó¼´Â ¸®Ç÷¹ÀÌ °ËÃâÀÌ Áö¿ø
µÇ¾î ÀÖÁö ¾ÊÀº °ÍÀÌ ÀÖ½À´Ï´Ù. ¶Ç, ¾îÇø®ÄÉÀ̼ÇÀº ¸®Ç÷¹ÀÌ °ËÃâÀ» ÇÊ¿ä·Î ÇÏÁö ¾Ê¾Æµµ, ÀÎÁõ µµ±¸°¡ ¸®Ç÷¹ÀÌ °ËÃâÀ» ÇÊ¿ä·Î Çϰí ÀÖ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ±× ¶§¹®¿¡
ÀÌ ¿ä±¸¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦ È®ÀÎÇϱâ À§ÇØ, ¾îÇø®ÄÉÀ̼ÇÀ¸·Î getReplayDetState
¸Þ¼µå¸¦ »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¸®Ç÷¹ÀÌ °ËÃâÀÌ À¯È¿ÇÏ°Ô µÇ¾î ÀÖ´Â °æ¿ì, MessageProp.isDuplicateToken
¸Þ¼µå¿Í MessageProp.isOldToken
¸Þ¼µå´Â unwrap
¸Þ¼µå ¶Ç´Â verifyMIC
¸Þ¼µå¿¡°Ô °Ç³×Áö´Â MessageProp
°´Ã¼¿¡ ´ëÇØ¼ À¯È¿ÇÑ °á°ú¸¦ ¸®ÅÏÇÕ´Ï´Ù.
state
- È®¸³ÇÑ ÄÁÅØ½ºÆ®¿¡ ´ëÇØ¼ ¸®Ç÷¹ÀÌ °ËÃâÀ» À¯È¿ÇÏ°Ô ÇÒÁö ¾î¶³Áö¸¦ ³ªÅ¸³»´Â boolean Ä¡
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑgetReplayDetState()
void requestSequenceDet(boolean state) throws GSSException
initSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÄÁÅØ½ºÆ®ÀÌ È®¸³ÇØ ÀÖ´Â µ¿¾ÈÀº sequence check´Â ¿É¼ÇÀº ¾Æ´Ï°í, ºÎÇÏÀÇ µµ±¸
ÀÇ ±â´ÉÀÌ µË´Ï´Ù.
ÀÎÁõ µµ±¸¿¡ µû¶ó¼´Â sequence check°¡ Áö¿ø
µÇ¾î ÀÖÁö ¾ÊÀº °ÍÀÌ ÀÖ½À´Ï´Ù. ¶Ç, ¾îÇø®ÄÉÀ̼ÇÀº sequence check¸¦ ÇÊ¿ä·Î ÇÏÁö ¾Ê¾Æµµ, ÀÎÁõ µµ±¸°¡ sequence check¸¦ ÇÊ¿ä·Î Çϰí ÀÖ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ±× ¶§¹®¿¡
ÀÌ ¿ä±¸¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦ È®ÀÎÇϱâ À§ÇØ, ¾îÇø®ÄÉÀ̼ÇÀ¸·Î getSequenceDetState
¸Þ¼µå¸¦ »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. sequence check°¡ À¯È¿ÇÏ°Ô µÇ¾î ÀÖ´Â °æ¿ì, MessageProp.isDuplicateToken
,
MessageProp.isOldToken
,
MessageProp.isUnseqToken
,
MessageProp.isGapToken
°¢ ¸Þ¼µå´Â unwrap
¸Þ¼µå ¶Ç´Â verifyMIC
¸Þ¼µå¿¡°Ô °Ç³×Áö´Â MessageProp
°´Ã¼¿¡ ´ëÇØ¼ À¯È¿ÇÑ °á°ú¸¦ ¸®ÅÏÇÕ´Ï´Ù.
state
- È®¸³µÈ ÄÁÅØ½ºÆ®¿¡ ´ëÇØ¼ sequence check¸¦ À¯È¿ÇÏ°Ô ÇÒÁö ¾î¶³Áö¸¦ ³ªÅ¸³»´Â boolean Ä¡
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑgetSequenceDetState()
void requestCredDeleg(boolean state) throws GSSException
initSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
ÀÎÁõ µµ±¸¿¡ µû¶ó¼´Â ÀÚ°ÝÀÇ À§¾çÀÌ Áö¿ø
µÇ¾î ÀÖÁö ¾ÊÀº °ÍÀÌ ÀÖ½À´Ï´Ù. ±× ¶§¹®¿¡
À§¾çÀ» ÇÊ¿ä·Î ÇÏ´Â ¾îÇø®ÄÉÀ̼ÇÀº ¿ä±¸¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦ È®ÀÎÇϱâ À§Çؼ getCredDelegState
¸Þ¼µå¸¦ »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. À§¾çÀ» »ç¿ëÇØ¼´Â ¾È µÇ¸é ¾îÇø®ÄÉÀ̼ÇÀ¸·ÎºÎÅÍ ³ªÅ¸³µÀ» °æ¿ì, µµ±¸´Â ±× ¿ä±¸¸¦ ¹Þ¾Æ À§¾çÀº ÇàÇØÁöÁö ¾Ê½À´Ï´Ù. À̰ÍÀº ÀÏ¹Ý ±ÔÄ¢¿¡ ´ëÇÑ ¿¹¿Ü·Î ¾î´À ¼ºñ½º°¡ ¿ä±¸µÇÁö ¾Ê¾Æµµ µµ±¸°¡ ±× ¼ºñ½º¸¦ À¯È¿ÇÏ°Ô ÇÏ´Â ÀÏÀÌ ÀÖ´Ù°í ÇÏ´Â °ÍÀÔ´Ï´Ù.
state
- ÀÚ°ÝÀ» À§¾ç ÇÒÁö ¾î¶³Áö¸¦ ³ªÅ¸³»´Â boolean Ä¡
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑgetCredDelegState()
void requestAnonymity(boolean state) throws GSSException
initSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
ÀÎÁõ µµ±¸¿¡ µû¶ó¼´Â ½ÃÀÛÃøÀÇ À͸íÀÌ Áö¿ø
µÇ¾î ÀÖÁö ¾ÊÀº °ÍÀÌ ÀÖ½À´Ï´Ù. ±× ¶§¹®¿¡
¿ä±¸¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦ È®ÀÎÇϱâ À§ÇØ, ¾îÇø®ÄÉÀ̼ÇÀ¸·Î getAnonymityState
¸Þ¼µå¸¦ »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
state
- ½ÃÀÛÃøÀÌ ¹Þ¾Æ µéÀÌ´Â ÂÊ¿¡ À͸í ÁÖü·Î¼ ÀÎÁõµÉÁö ¾î¶³Áö¸¦ ³ªÅ¸³»´Â boolean Ä¡
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑgetAnonymityState()
void requestConf(boolean state) throws GSSException
wrap
¸Þ¼µå·Î µ¥ÀÌÅÍÀÇ ±â¹Ð¼ºÀ» À¯È¿ÇÏ°Ô Çϵµ·Ï ¿ä±¸ÇÕ´Ï´Ù. ÀÌ ¿ä±¸´Â ÄÁÅØ½ºÆ®
ÀÇ ½ÃÀÛ Ãø¿¡¼ÀÇ º¸°í ½Ç½ÃÇÒ ¼ö°¡ ÀÖ¾îinitSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
ÀÎÁõ µµ±¸¿¡ µû¶ó¼´Â ±â¹Ð¼ºÀ» Áö¿ø
Çϰí ÀÖÁö ¾Ê´Â °ÍÀ̳ª, ¾îÇø®ÄÉÀ̼ÇÀ¸·ÎºÎÅÍ ¿ä±¸µÇÁö ¾Ê´Â °æ¿ì¿¡¼µµ ±â¹Ð¼ºÀ» À¯È¿ÇÏ°Ô ÇÏ´Â °ÍÀÌ ÀÖ½À´Ï´Ù. ¿ä±¸¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦ È®ÀÎÇÏ·Á¸é,
¾îÇø®ÄÉÀ̼ÇÀ¸·Î getConfState
¸Þ¼µå¸¦ »ç¿ëÇÕ´Ï´Ù. ±â¹Ð¼ºÀÌ À¯È¿µÇ°í ÀÖ´Â °æ¿ì¿¡ ÇÑÁ¤ÇØ, wrap
¸Þ¼µå¿¡°Ô °Ç³×Áø MessageProp
°´Ã¼¿¡ Æ÷ÇԵǴ ÇÁ¶óÀ̹ö½Ã ¿ä±¸¸¦ ÀÎÁõ µµ±¸°¡ ¹Þ¾ÆµéÀÔ´Ï´Ù. ±â¹Ð¼ºÀ» À¯È¿ÇÏ°Ô Çϸé, Á¤ÇÕ¼ºµµ ÀÚµ¿ÀûÀ¸·Î À¯È¿ÇÏ°Ô µË´Ï´Ù.
state
- ±â¹Ð¼ºÀ» À¯È¿ÇÏ°Ô ÇÒÁö ¾î¶³Áö¸¦ ³ªÅ¸³»´Â boolean Ä¡
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑgetConfState()
,
getIntegState()
,
requestInteg(boolean)
,
MessageProp
void requestInteg(boolean state) throws GSSException
wrap
¸Þ¼µå¿Í getMIC
¸Þ¼µå·Î µ¥ÀÌÅÍÀÇ Á¤ÇÕ¼ºÀ» À¯È¿ÇÏ°Ô Çϵµ·Ï ¿ä±¸ÇÕ´Ï´Ù. ÀÌ ¿ä±¸´Â ÄÁÅØ½ºÆ®
ÀÇ ½ÃÀÛ Ãø¿¡¼ÀÇ º¸°í ½Ç½ÃÇÒ ¼ö°¡ ÀÖ¾îinitSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
ÀÎÁõ µµ±¸¿¡ µû¶ó¼´Â Á¤ÇÕ¼ºÀÌ Áö¿ø
µÇ¾î ÀÖÁö ¾ÊÀº °ÍÀÌ ÀÖ½À´Ï´Ù. ¶Ç, ¾îÇø®ÄÉÀ̼ÇÀÌ Á¤ÇÕ¼ºÀ» ¿ä±¸ÇÏÁö ¾Ê¾Æµµ, ÀÎÁõ µµ±¸°¡ Á¤ÇÕ¼ºÀ» À¯È¿ÇÏ°Ô ÇÏ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ÀÌ ¿ä±¸¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦ È®ÀÎÇÏ·Á¸é,
¾îÇø®ÄÉÀ̼ÇÀ¸·Î getIntegState
¸Þ¼µå¸¦ »ç¿ëÇÕ´Ï´Ù. Á¤ÇÕ¼ºÀ» ¹«È¿·Î Çϸé, ±â¹Ð¼ºµµ ÀÚµ¿ÀûÀ¸·Î ¹«È¿°¡ µË´Ï´Ù.
state
- Á¤ÇÕ¼ºÀ» À¯È¿ÇÏ°Ô ÇÒÁö ¾î¶³Áö¸¦ ³ªÅ¸³»´Â boolean Ä¡
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑgetIntegState()
void requestLifetime(int lifetime) throws GSSException
initSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
ÄÁÅØ½ºÆ®
ÀÇ ½ÇÁ¦ÀÇ ¼ö¸íÀº ºÎÇÏÀÇ µµ±¸
ÀÇ ±â´É¿¡ µû¶ó¼ ´Ù¸£±â ¶§¹®¿¡
¾îÇø®ÄÉÀ̼ÇÀ¸·Î getLifetime
¸Þ¼µå¸¦ È£ÃâÇØ È®ÀÎÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
lifetime
- ÄÁÅØ½ºÆ®
À¸·Î ÁöÁ¤ÇÏ°í ½ÍÀº ¼ö¸í (ÃÊ´ÜÀ§). ¹«±âÇÑÀÇ ¼ö¸íÀ» ¿ä±¸ÇÏ´Â °æ¿ì´Â INDEFINITE_LIFETIME
¸¦ »ç¿ëÇØ, µðÆúÆ®ÀÇ ¼ö¸íÀ» ¿ä±¸ÇÏ´Â °æ¿ì´Â DEFAULT_LIFETIME
¸¦ »ç¿ëÇÑ´Ù
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑgetLifetime()
void setChannelBinding(ChannelBinding cb) throws GSSException
initSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¹Þ¾Æ µéÀÌ´Â ÂÊÀ¸·ÎºÎÅÍ È£ÃâÇÒ ¶§´Â acceptSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
cb
- »ç¿ëÇϴ ä³Î ¹ÙÀεù
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ùboolean getCredDelegState()
requestCredDeleg
¸Þ¼µå´Â ±× ¿ä±¸¸¦ ¹Þ¾Æµé¿© ±× ½ÃÁ¡À¸·ÎºÎÅÍ ½ÃÀÛ Ãø¿¡ ´ëÇØ false
¸¦ ¸®ÅÏÇÕ´Ï´Ù.
requestCredDeleg(boolean)
boolean getMutualAuthState()
requestMutualAuth(boolean)
boolean getReplayDetState()
requestReplayDet(boolean)
boolean getSequenceDetState()
requestSequenceDet(boolean)
boolean getAnonymityState()
initSecContext
¿¡ ÀÇÇØ ±× ½ÃÁ¡±îÁö »ý¼ºµÈ ÄÁÅØ½ºÆ®
È®¸³ ÅäÅ«ÀÇ ¾î´À ÂÊÀΰ¡¿¡
½ÃÀÛÃøÀÇ ID°¡ °ø°³µÇ°í ÀÖ´ÂÁö ¾î¶²Áö°¡ °Ë»çµË´Ï´Ù. À͸íÀ¸·Î¼ÀÇ ÀÎÁõÀÌ ÇÊ¿äÇÑ °æ¿ì´Â initSecContext
¸¦ È£ÃâÇÏ°í ³ª¼ ÀÌ ¸Þ¼µå¸¦ È£ÃâÇØ, »ý¼ºµÈ ÅäÅ«À» ÇǾ ¼Û½ÅÇÏ´ÂÁö, ±× ÄÁÅØ½ºÆ®¸¦ ÁßÁöÇұ °áÁ¤ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¹Þ¾Æ µéÀÌ´Â ÂÊÀ¸·ÎºÎÅÍ ÀÌ ¸Þ¼µå¸¦ È£ÃâÇßÀ» °æ¿ì´Â acceptSecContext
¿¡ ÀÇÇØ ±× ½ÃÁ¡±îÁö ó¸®µÈ ÅäÅ«ÀÇ ¾î´À ÂÊÀΰ¡¿¡
½ÃÀÛÃøÀÇ ID°¡ °ø°³µÇ°í ÀÖ´ÂÁö ¾î¶²Áö°¡ °Ë»çµË´Ï´Ù.
requestAnonymity(boolean)
boolean isTransferable() throws GSSException
export
¸Þ¼µå¸¦ »ç¿ëÇØ ÀÌ ÄÁÅØ½ºÆ®¸¦ ´Ù¸¥ ÇÁ·Î¼¼½º¿¡ Àü¼Û ÇÒ ¼ö ÀÖÀ»Áö ¾î¶³Áö¸¦ °Ë»çÇÕ´Ï´Ù. ÀÌ È£ÃâÀº ¿ÏÀüÇÏ°Ô È®¸³µÈ ÄÁÅØ½ºÆ®¿¡ ´ëÇØ¼¸¸ À¯È¿ÇÕ´Ï´Ù.
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ùboolean isProtReady()
wrap
, unwrap
, getMIC
, verifyMIC
µîÀÇ ¸Þ¼µå¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â °æ¿ì´Â true, ±×·¸Áö ¾ÊÀº °æ¿ì´Â falseboolean getConfState()
isProtReady
¶Ç´Â isEstablished
·ÎºÎÅÍ true
°¡ ¸®ÅÏµÈ ´ÙÀ½ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. ÀÌ ¸Þ¼µå°¡ true
¸¦ µ¹·ÁÁÖ´Â °æ¿ì´Â getIntegState
µµ
true
¸¦ ¸®ÅÏÇÕ´Ï´Ù.
requestConf(boolean)
boolean getIntegState()
isProtReady
¶Ç´Â isEstablished
·ÎºÎÅÍ true
°¡ ¸®ÅÏµÈ ´ÙÀ½ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. getConfState
°¡ true
¸¦ µ¹·ÁÁÖ´Â °æ¿ì´Â ÀÌ ¸Þ¼µåµµ true
¸¦ ¸®ÅÏÇÕ´Ï´Ù.
requestInteg(boolean)
int getLifetime()
isEstablished
·ÎºÎÅÍ true°¡ ¸®ÅÏµÈ ´ÙÀ½ÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù.
requestLifetime(int)
GSSName getSrcName() throws GSSException
isProtReady
¶Ç´Â isEstablished
·ÎºÎÅÍ true
°¡ ¸®ÅÏµÈ ´ÙÀ½¿¡ ¸¶¼Å À¯È¿ÇÕ´Ï´Ù.
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑGSSName
GSSName getTargName() throws GSSException
isProtReady
¶Ç´Â isEstablished
·ÎºÎÅÍ true
°¡ ¸®ÅÏµÈ ´ÙÀ½¿¡ ¸¶¼Å À¯È¿ÇÕ´Ï´Ù.
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´ÙOid getMech() throws GSSException
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´ÙGSSCredential getDelegCred() throws GSSException
getCredDelegState
¸¦
»ç¿ëÇÕ´Ï´Ù.
null
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ùboolean isInitiator() throws GSSException
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦
Æ÷ÇÔÇÑ´Ù
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | constructor¡¡ ¡¡ | ¸Þ¼µå | »ó¼¼: Çʵå | constructor¡¡ ¡¡ | ¸Þ¼µå |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.