|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
ÀÌ ÀÎÅÍÆäÀ̽º¿¡¼´Â 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 ±â±¸¸¦ »ç¿ëÇϰí ÀÖÀ» ¶§´Â ¸ðµç ¿É¼Ç ¼ºñ½º¸¦ ·ÎÄÿ¡ ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, »óÈ£ ÀÎÁõ, ÀÚ°ÝÀÇ delegate, ±â¹Ð¼º°ú ¿ÏÀü¼ºÀÇ º¸È£, ¸Þ¼¼Áö¸¶´ÙÀÇ ¸®Ç÷¹ÀÌ °ËÃâÀ̳ª ¼ø¼ºÎµîÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. GSS-API ¿¡¼´Â ¸Þ¼¼ÁöÀÇ ¿ÏÀü¼ºÀ» º¸È£ÇÏ·Á¸é , ¸Þ¼¼ÁöÀÇ ±â¹Ð¼ºÀ» º¸È£ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
¹®¸ÆÀÌ È®¸³ÇÒ ¶§±îÁö ±âµ¿ Ãø¿¡ ÀÇÇÑ initSecContext
È£Ãâ°ú ¹Þ¾Æ µéÀÌ´Â ÂÊ¿¡ ÀÇÇÑ acceptSecContext
È£ÃâÀÌ ¹Ýº¹ÇØÁý´Ï´Ù. ÀÌ ·çÇÁ´Â ¹®¸ÆÀÌ È®¸³Çϸé(ÀÚ) Á¾·áÇÕ´Ï´Ù. ÀÌ ·çÇÁÀÇ Ã³¸®Áß¿¡,initSecContext
¹× acceptSecContext
¸Þ¼Òµå´Â ÅäÅ«À» »ý¼ºÇÕ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀº ±× ÅäÅ«À» ÇǾ ¼Û½ÅÇÕ´Ï´Ù. ÇǾî´Â acceptSecContext
¶Ç´Â initSecContext
¿¡ ´ëÇØ¼ ÀûÀýÇÑ ÅäÅ«À» ÀÔ·ÂÀ¸·Î¼ °Ç³×ÁÝ´Ï´Ù.
¹®¸ÆÀÌ È®¸³Çϱâ Àü¿¡,isProtReady
¸Þ¼Òµå¸¦ È£ÃâÇØ,wrap
¹× getMIC
ÀÇ ¸Þ¼¼Áö¸¶´ÙÀÇ Á¶ÀÛ¿¡ ÀÌ ¹®¸ÆÀ» »ç¿ëÇÒ ¼ö ÀÖÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇϸé, ¿ÏÀüÇÏ°Ô È®¸³µÇ±â ÀüÀÇ ¹®¸Æ¿¡ ´ëÇØ¼ ¸Þ¼¼Áö¸¶´ÙÀÇ Á¶ÀÛÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
¹®¸ÆÀÇ È®¸³ÀÌ ¿Ï·áÇÏ´ÂÁö isProtReady
¸Þ¼Òµå·ÎºÎÅÍ true
°¡ µ¹·ÁÁÖ¾îÁö¸é(ÀÚ), Äí¿¡¸® routine¸¦ È£ÃâÇØ, È®¸³µÈ ¹®¸ÆÀÇ ½ÇÁ¦ÀÇ Æ¯¼ºÀ̳ª ¼ºñ½º¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç,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 ()
ÀÌ ¹®¸ÆÀ¸·Î ÀÚ°ÝÀÇ delegateÀÌ À¯È¿ÇÏ°Ô µÇ¾î ÀÖ´ÂÁö ¾î¶²Áö¸¦ ÆÇÁ¤ÇÕ´Ï´Ù. |
GSSCredential |
getDelegCred ()
¹®¸ÆÀÇ ±âµ¿ÃøÀ¸·ÎºÎÅÍ ¹®¸ÆÀÇ ¹Þ¾Æ µéÀÌ´Â ÂÊ¿¡ delegate µÈ ÀÚ°ÝÀ» ÃëµæÇÕ´Ï´Ù. |
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)
±âµ¿ÃøÀÇ ID °¡ ¹Þ¾Æ µéÀÌ´Â ÂÊ¿¡ °ø°³µÇÁö ¾Ê°Ô ¿ä±¸ÇÕ´Ï´Ù. |
void |
requestConf (boolean state)
wrap ¸Þ¼Òµå¿¡ ´ëÇØ¼ µ¥ÀÌÅÍÀÇ ±â¹Ð¼ºÀÌ À¯È¿ÇÏ°Ô µÇµµ·Ï(µíÀÌ) ¿ä±¸ÇÕ´Ï´Ù. |
void |
requestCredDeleg (boolean state)
¹®¸ÆÀÌ È®¸³ÇØ ÀÖÀ» ¶§, ±âµ¿ÃøÀÇ ÀÚ°ÝÀÌ ¹Þ¾Æ µéÀÌ´Â ÂÊ¿¡ delegate µÇµµ·Ï(µíÀÌ) ¿ä±¸ÇÕ´Ï´Ù. |
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)
½ºÆ®¸²À» »ç¿ëÇØ, È®¸³µÈ ½ÃÅ¥·¯Æ¼ ¹®¸Æ¿¡ ¸Þ¼¼Áö¸¶´ÙÀÇ ½ÃÅ¥·¯Æ¼ ¼ºñ½º¸¦ Àû¿ëÇÕ´Ï´Ù. |
ÇʵåÀÇ »ó¼¼ |
public static final int DEFAULT_LIFETIME
public static final int INDEFINITE_LIFETIME
Integer.MAX_VALUE
·Î ¼³Á¤ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
¸Þ¼ÒµåÀÇ »ó¼¼ |
public 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
¸¦ Æ÷ÇÔÇÑ´Ùpublic 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
¸¦ Æ÷ÇÔÇÑ´Ùpublic 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
- inToken ³»ÀÇ ¿ÀÇÁ¼Â(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
¸¦ Æ÷ÇÔÇÑ´Ùpublic 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
¸¦ Æ÷ÇÔÇÑ´Ùpublic boolean isEstablished()
true
. public void dispose() throws GSSException
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦ Æ÷ÇÔÇÑ´Ùpublic int getWrapSizeLimit(int qop, boolean confReq, int maxTokenSize) throws GSSException
wrap
¿¡ °Ç³×ÁÙ ¼ö°¡ ÀÖ´Â ¸Þ¼¼Áö »çÀÌÁîÀÇ Á¦ÇÑÀ» °áÁ¤ÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â ÃÖ´ë ¸Þ¼¼Áö »çÀÌÁ µ¹·ÁÁÝ´Ï´Ù. confReq
¹× qop
ÆÄ¶ó¹ÌÅͰ¡ °°Àº wrap
¸Þ¼Òµå¿¡ ÀÌ »çÀÌÁîÀÇ ¸Þ¼¼Áö¸¦ °Ç³×ÁÖ¸é(ÀÚ),maxTokenSize
¹ÙÀÌÆ® ÀÌÇÏÀÇ Ãâ·Â ÅäÅ«ÀÌ »ý¼ºµË´Ï´Ù.
¾îÇø®ÄÉÀ̼ÇÀ¸·Î ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â ÃÖ´ë ¸Þ¼¼Áö »çÀÌÁ »ç¿ëÇÏ´Â ÇÁ·ÎÅäÄÝÀ» °³ÀÔ½ÃÄÑ Åë½ÅÇÏ´Â °ÍÀ» ÀüÁ¦·Î Çϰí ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇϸé, ¸Þ¼¼Áö¸¦ ´ÜÆíÈÇÏ°í ³ª¼ º¸È£¸¦ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
GSS-API ±¸Çö¿¡¼´Â getWrapSizeLimit
¸¦ È£ÃâÇßÀ» ¶§¿¡, QOP Ä¡°¡ À¯È¿ÇѰ¡ ¾î¶²°¡¸¦ °ËÃâÇϵµ·Ï(µíÀÌ) Ãßõ Çϰí ÀÖ½À´Ï´Ù. ´Ù¸¸, Çʼö°¡ ¾Æ´Õ´Ï´Ù. ÀÌ routine¿¡¼´Â ÃÖ´ë ¸Þ¼¼Áö »çÀÌÁÀÌ ÇÁ·ÎÅØ¼ÇµÇ¾î ¸Þ¼¼Áö º¸È£·Î ÁöÁ¤ÇÑ QOP Ä¡¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â Á¦¹ß¿¡ ´ëÇØ¼´Â ÇÁ·ÎÅØ¼ÇµÇÁö ¾Ê½À´Ï´Ù.
qop
- ·¦¿¡ ¿ä±¸ÇÏ´Â º¸È£ ·¹º§confReq
- ·¦¿¡ ÇÁ¶óÀ̹ö½Ã¸¦ ¿ä±¸ÇÏ´Â °æ¿ì´Â true
. ¿ä±¸ÇÏÁö ¾Ê´Â °æ¿ì´Â false
maxTokenSize
- ·¦¿¡ ÀÇÇØ »ý¼ºµÇ´Â ÅäÅ«ÀÇ ÃÖ´ë »çÀÌÁî (¸ñÇ¥)
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.CONTEXT_EXPIRED
,GSSException.BAD_QOP
,GSSException.FAILURE
¸¦ Æ÷ÇÔÇÑ´Ùpublic 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
¸¦ Æ÷ÇÔÇÑ´Ùpublic 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
¸¦ Æ÷ÇÔÇÑ´Ùpublic 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
¸¦ Æ÷ÇÔÇÑ´Ùpublic 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
¸¦ Æ÷ÇÔÇÑ´Ùpublic 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
¸¦ Æ÷ÇÔÇÑ´Ùpublic 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
¸¦ Æ÷ÇÔÇÑ´Ùpublic 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
¸¦ Æ÷ÇÔÇÑ´Ùpublic 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
¸¦ Æ÷ÇÔÇÑ´Ùpublic byte[] export() throws GSSException
ÀÌ ¸Þ¼Òµå´Â ½ÃÅ¥·¯Æ¼ ¹®¸ÆÀ» Á¾·áÇØ, ÇÁ·Î¼¼½º°£ ÅäÅ«À» ÀÛ¼ºÇÕ´Ï´Ù. ÀÌ ÅäÅ«ÀÌ ´Ù¸¥ ÇÁ·Î¼¼½ºÀÇ GSSManager.createContext
¿¡°Ô °Ç³×Áö¸é(ÀÚ), ±× ÇÁ·Î¼¼½º·Î ±× ¹®¸ÆÀÌ Àç±âµ¿ÇÕ´Ï´Ù. ƯÁ¤ÀÇ ¹®¸ÆÀÇ ÀνºÅϽº´Â 1 ¹ø¿¡ 1 °³ ¹Û¿¡ ±âµ¿ÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ ¶§¹®¿¡, ¹®¸ÆÀÇ exportÃø¿¡¼ export µÈ ½ÃÅ¥·¯Æ¼ ¹®¸Æ¿¡ ¾×¼¼½º ÇÏ·Á°í Çϸé(ÀÚ), ½ÇÆÐÇÕ´Ï´Ù.
ÀÌ ±¸Çö¿¡¼´Â ÇÁ·Î¼¼½º°£ ÅäÅ«À» ÀÓÆ÷Æ® ÇÏ´Â ÇÁ·Î¼¼½º°¡, ·ÎÄà ½ÃÅ¥·¯Æ¼ Æú¸®½Ã ¶Ç´Â ±¸ÇöÀÇ ¼³Á¤¿¡ ÀÇÇØ Á¦ÇѵǴ ÀÏÀÌ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, °°Àº ¾îÄ«¿îÆ®·Î µ¿ÀÛÇÏ´Â ÇÁ·Î¼¼½º°£¿¡¸¸ ¹®¸ÆÀÌ °Ç³×¹Þ°Å³ª °°Àº ÇÁ·Î¼¼½º ±×·ìÀÇ ÇÁ·Î¼¼½º°£¿¡¸¸ °Ç³×¹Þ°Å³ª ÇÕ´Ï´Ù.
ÇÁ·Î¼¼½º°£ ÅäÅ«¿¡´Â ±â¹Ð Á¤º¸ (¾Ïȣȿ¼èµî)°¡ Æ÷ÇԵǾî ÀÖ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ±â¹Ð Á¤º¸´Â °¡´ÉÇÑ ÇÑ ÇÁ·Î¼¼½º°£ ÅäÅ«¿¡ Æ÷ÇÔÇÏÁö ¾Ê°Ô ÇÏ´ÂÁö ÅäÅ«À» ¾ÏÈ£ÈÇÏ°í ³ª¼ ¾îÇø®ÄÉÀ̼ǿ¡ µ¹·ÁÁÖ¼¼¿ä. ´Ù¸¸, Ç¥ÁØÀûÀÎ GSS-API ÀÇ ±¸Çö¿¡¼´Â ÀÌ·¯ÇÑ ´ëÀÀÀ» Àû¿ëÇÒ ¼ö ¾ø´Â °ÍÀÌ ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡, ¾îÇø®ÄÉÀ̼ÇÀ¸·Î ÇÁ·Î¼¼½º°£ ÅäÅ«À» »ç¿ëÇÏ´Â °æ¿ì´Â ½ÃÅ¥·¯Æ¼¿¡ ÃæºÐÈ÷ ¹è·ÁÇØ, ½Å·ÚÇÒ ¼ö ÀÖ´Â ÇÁ·Î¼¼½º¿¡ Àü¼Û ÇØ ÁÖ¼¼¿ä.
½ÃÅ¥·¯Æ¼ ¹®¸ÆÀÇ ÇÁ·Î¼¼½º°£ Àü¼ÛÀº ¼Æ÷Æ®µÇ¾î ÀÖÁö ¾ÊÀº °ÍÀÌ ÀÖ½À´Ï´Ù. isTransferable
¸Þ¼Òµå¸¦ È£ÃâÇϸé, ¹®¸Æ ¿ÀºêÁ§Æ®¸¦ Àü¼Û ÇÒ ¼ö ÀÖÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
export ÇÒ ¼ö ¾ø´Â ¹®¸Æ¿¡ ´ëÇØ¼ ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇϸé(ÀÚ), ¿¡·¯ ÄÚµå GSSException.UNAVAILABLE
¸¦ Æ÷ÇÔÇÑ GSSException °¡ ½½·Î¿ì µË´Ï´Ù.
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.UNAVAILABLE
,GSSException.CONTEXT_EXPIRED
,GSSException.NO_CONTEXT
,GSSException.FAILURE
À» Æ÷ÇÔÇÑGSSManager.createContext(byte[])
public void requestMutualAuth(boolean state) throws GSSException
initSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
GSS-API ±â±¸¿¡ µû¶ó¼´Â »óÈ£ ÀÎÁõÀÌ ¼Æ÷Æ®µÇ¾î ÀÖÁö ¾ÊÀº °ÍÀÌ ÀÖ½À´Ï´Ù. ¶Ç, GSS-API ±â±¸´Â »óÈ£ ÀÎÁõÀ» ÇÊ¿ä·Î ÇÏÁö ¾ÊÁö¸¸, ¾îÇø®ÄÉÀ̼ÇÀÌ ÇÊ¿ä·Î ÇÏ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡, ÀÌ ¿ä±¸¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦, ¾îÇø®ÄÉÀ̼ÇÀ¸·Î getMutualAuthState
¸Þ¼Òµå¸¦ »ç¿ëÇØ È®ÀÎÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
state
- »óÈ£ ÀÎÁõÀ» »ç¿ëÇÒÁö ¾î¶³Áö¸¦ ³ªÅ¸³»´Â boolean Ä¡
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦ Æ÷ÇÔÇÑgetMutualAuthState()
public void requestReplayDet(boolean state) throws GSSException
initSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¹®¸ÆÀÌ È®¸³ÇØ ÀÖ´Â µ¿¾ÈÀº ¸®Ç÷¹ÀÌ °ËÃâÀº ¿É¼ÇÀº ¾Æ´Ï°í, ºÎÇÏÀÇ ±â±¸ÀÇ ±â´ÉÀÌ µË´Ï´Ù.
GSS-API ±â±¸¿¡ µû¶ó¼´Â ¸®Ç÷¹ÀÌ °ËÃâÀÌ ¼Æ÷Æ®µÇ¾î ÀÖÁö ¾ÊÀº °ÍÀÌ ÀÖ½À´Ï´Ù. ¶Ç, GSS-API ±â±¸´Â ¸®Ç÷¹ÀÌ °ËÃâÀ» ÇÊ¿ä·Î ÇÏÁö ¾ÊÁö¸¸, ¾îÇø®ÄÉÀ̼ÇÀÌ ÇÊ¿ä·Î ÇÏ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡, ÀÌ ¿ä±¸¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦, ¾îÇø®ÄÉÀ̼ÇÀ¸·Î getReplayDetState
¸Þ¼Òµå¸¦ »ç¿ëÇØ È®ÀÎÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¸®Ç÷¹ÀÌ °ËÃâÀÌ À¯È¿ÇÏ°Ô µÇ¾î ÀÖ´Â °æ¿ì,MessageProp.isDuplicateToken
¹× MessageProp.isOldToken
¸Þ¼Òµå´Â unwrap
¶Ç´Â verifyMIC
¸Þ¼Òµå¿¡°Ô °Ç³×Áö´Â MessageProp
¿ÀºêÁ§Æ®¿¡ ´ëÇØ¼ À¯È¿ÇÑ °á°ú¸¦ µ¹·ÁÁÝ´Ï´Ù.
state
- È®¸³ÇÑ ¹®¸Æ¿¡ ´ëÇØ¼ ¸®Ç÷¹ÀÌ °ËÃâÀ» À¯È¿ÇÏ°Ô ÇÒÁö ¾î¶³Áö¸¦ ³ªÅ¸³»´Â boolean Ä¡
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦ Æ÷ÇÔÇÑgetReplayDetState()
public void requestSequenceDet(boolean state) throws GSSException
initSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¹®¸ÆÀÌ È®¸³ÇØ ÀÖ´Â µ¿¾ÈÀº sequence check´Â ¿É¼ÇÀº ¾Æ´Ï°í, ºÎÇÏÀÇ ±â±¸ÀÇ ±â´ÉÀÌ µË´Ï´Ù.
GSS-API ±â±¸¿¡ µû¶ó¼´Â sequence check°¡ ¼Æ÷Æ®µÇ¾î ÀÖÁö ¾ÊÀº °ÍÀÌ ÀÖ½À´Ï´Ù. ¶Ç, GSS-API ±â±¸´Â sequence check¸¦ ÇÊ¿ä·Î ÇÏÁö ¾ÊÁö¸¸, ¾îÇø®ÄÉÀ̼ÇÀÌ ÇÊ¿ä·Î ÇÏ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡, ÀÌ ¿ä±¸¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦, ¾îÇø®ÄÉÀ̼ÇÀ¸·Î getSequenceDetState
¸Þ¼Òµå¸¦ »ç¿ëÇØ È®ÀÎÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. sequence check°¡ À¯È¿ÇÏ°Ô µÇ¾î ÀÖ´Â °æ¿ì,MessageProp.isDuplicateToken
,MessageProp.isOldToken
,MessageProp.isUnseqToken
, ¹× MessageProp.isGapToken
¸Þ¼Òµå´Â unwrap
¶Ç´Â verifyMIC
¸Þ¼Òµå¿¡°Ô °Ç³×Áö´Â MessageProp
¿ÀºêÁ§Æ®¿¡ ´ëÇØ¼ À¯È¿ÇÑ °á°ú¸¦ µ¹·ÁÁÝ´Ï´Ù.
state
- È®¸³µÈ ¹®¸Æ¿¡ ´ëÇØ¼ sequence check¸¦ À¯È¿ÇÏ°Ô ÇÒÁö ¾î¶³Áö¸¦ ³ªÅ¸³»´Â boolean Ä¡
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦ Æ÷ÇÔÇÑgetSequenceDetState()
public void requestCredDeleg(boolean state) throws GSSException
initSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. GSS-API ±â±¸¿¡ µû¶ó¼´Â ÀÚ°ÝÀÇ delegateÀÌ ¼Æ÷Æ®µÇ¾î ÀÖÁö ¾ÊÀº °ÍÀÌ ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡, ÀÌ ¿ä±¸¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦, ¾îÇø®ÄÉÀ̼ÇÀ¸·Î getCredDelegState
¸Þ¼Òµå¸¦ »ç¿ëÇØ È®ÀÎÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÀÚ°ÝÀÇ delegateÀ» »ç¿ëÇÒ ¼ö ¾ø´Â °æ¿ì, GSS-API ±â±¸°¡ ±× ¿ä±¸¸¦ ¹Þ¾Æµé¿© delegateÀº ÇàÇØÁöÁö ¾Ê½À´Ï´Ù. Åë»óÀº ¼ºñ½º°¡ ¿ä±¸µÇÁö ¾Ê¾Ò´ø °æ¿ì¿¡¼µµ, ±× ¼ºñ½º´Â À¯È¿ÇÏ°Ô µË´Ï´Ù¸¸, ÀÌ °æ¿ì´Â ¿¹¿ÜÀÔ´Ï´Ù.
state
- ÀÚ°ÝÀ» delegate ÇÒÁö ¾î¶³Áö¸¦ ³ªÅ¸³»´Â boolean Ä¡
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦ Æ÷ÇÔÇÑgetCredDelegState()
public void requestAnonymity(boolean state) throws GSSException
initSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. GSS-API ±â±¸¿¡ µû¶ó¼´Â ±âµ¿ÃøÀÇ À͸íÀÌ ¼Æ÷Æ®µÇ¾î ÀÖÁö ¾ÊÀº °ÍÀÌ ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡, ¾îÇø®ÄÉÀ̼ÇÀ¸·Î getAnonymityState
¸Þ¼Òµå¸¦ »ç¿ëÇØ ÀÌ ¿ä±¸¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦ üũÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÀÌ ¶§¹®¿¡, ÀÌ ¿ä±¸¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ¾ú´ÂÁö ¾î¶°Çß´ÂÁö¸¦, ¾îÇø®ÄÉÀ̼ÇÀ¸·Î getAnonymityState
¸Þ¼Òµå¸¦ »ç¿ëÇØ È®ÀÎÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù..
state
- ±âµ¿ÃøÀÌ ¹Þ¾Æ µéÀÌ´Â ÂÊ¿¡ À͸í ÁÖü·Î¼ ÀÎÁõµÉÁö ¾î¶³Áö¸¦ ³ªÅ¸³»´Â boolean Ä¡
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦ Æ÷ÇÔÇÑgetAnonymityState()
public void requestConf(boolean state) throws GSSException
wrap
¸Þ¼Òµå¿¡ ´ëÇØ¼ µ¥ÀÌÅÍÀÇ ±â¹Ð¼ºÀÌ À¯È¿ÇÏ°Ô µÇµµ·Ï(µíÀÌ) ¿ä±¸ÇÕ´Ï´Ù. ÀÌ ¿ä±¸´Â ¹®¸ÆÀÇ ±âµ¿ÃøÀ¸·ÎºÎÅÍ,initSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. GSS-API ±â±¸¿¡ µû¶ó¼´Â ±â¹Ð¼ºÀÌ ¼Æ÷Æ®µÇ¾î ÀÖÁö ¾ÊÀº °ÍÀÌ ÀÖ½À´Ï´Ù. ¶Ç, GSS-API ±â±¸¿¡¼´Â ±â¹Ð¼ºÀÌ À¯È¿ÇÏ°Ô µÇ¾î ÀÖÁö¸¸, ¾îÇø®ÄÉÀ̼ÇÀÌ ±â¹Ð¼ºÀ» ¿ä±¸ÇÏÁö ¾Ê´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ÀÌ ¿ä±¸¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ¾ú´ÂÁö ¾î¶°Çß´ÂÁö´Â ¾îÇø®ÄÉÀ̼ÇÀ¸·Î getConfState
¸Þ¼Òµå¸¦ »ç¿ëÇØ È®ÀÎÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ±â¹Ð¼ºÀÌ À¯È¿ÇÏ°Ô µÇ¾î ÀÖ´Â °æ¿ì, GSS-API ±â±¸´Â wrap
¸Þ¼Òµå¿¡°Ô °Ç³×Áø MessageProp
¿ÀºêÁ§Æ®ÀÇ ÇÁ¶óÀ̹ö½ÃÀÇ ¿ä±¸¸¦ ¹Þ¾ÆµéÀÔ´Ï´Ù.
±â¹Ð¼ºÀ» À¯È¿ÇÏ°Ô Çϸé(ÀÚ), ¿ÏÀü¼ºµµ ÀÚµ¿ÀûÀ¸·Î À¯È¿ÇÏ°Ô µË´Ï´Ù.
state
- ±â¹Ð¼ºÀ» À¯È¿ÇÏ°Ô ÇÒÁö ¾î¶³Áö¸¦ ³ªÅ¸³»´Â boolean Ä¡
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦ Æ÷ÇÔÇÑgetConfState()
,
getIntegState()
,
requestInteg(boolean)
,
MessageProp
public void requestInteg(boolean state) throws GSSException
wrap
¹× getMIC
¸Þ¼Òµå¿¡ ´ëÇØ¼ µ¥ÀÌÅÍÀÇ ¿ÏÀü¼ºÀÌ À¯È¿ÇÏ°Ô µÇµµ·Ï(µíÀÌ) ¿ä±¸ÇÕ´Ï´Ù. ÀÌ ¿ä±¸´Â ¹®¸ÆÀÇ ±âµ¿ÃøÀ¸·ÎºÎÅÍ,initSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. GSS-API ±â±¸¿¡ µû¶ó¼´Â ¿ÏÀü¼ºÀÌ ¼Æ÷Æ®µÇ¾î ÀÖÁö ¾ÊÀº °ÍÀÌ ÀÖ½À´Ï´Ù. ¶Ç, GSS-API ±â±¸¿¡¼´Â ¿ÏÀü¼ºÀÌ À¯È¿ÇÏ°Ô µÇ¾î ÀÖÁö¸¸, ¾îÇø®ÄÉÀ̼ÇÀÌ ¿ÏÀü¼ºÀ» ¿ä±¸ÇÏÁö ¾Ê´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ÀÌ ¿ä±¸¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ¾ú´ÂÁö ¾î¶°Çß´ÂÁö´Â ¾îÇø®ÄÉÀ̼ÇÀ¸·Î getIntegState
¸Þ¼Òµå¸¦ »ç¿ëÇØ È®ÀÎÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
¿ÏÀü¼ºÀ» ¹«È¿·Î Çϸé(ÀÚ), ±â¹Ð¼ºµµ ÀÚµ¿ÀûÀ¸·Î ¹«È¿°¡ µË´Ï´Ù.
state
- ¿ÏÀü¼ºÀ» À¯È¿ÇÏ°Ô ÇÒÁö ¾î¶³Áö¸¦ ³ªÅ¸³»´Â boolean Ä¡
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦ Æ÷ÇÔÇÑgetIntegState()
public void requestLifetime(int lifetime) throws GSSException
initSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
¹®¸ÆÀÇ ½ÇÁ¦ÀÇ ¼ö¸íÀº ºÎÇÏÀÇ ±â±¸ÀÇ ¼º´É¿¡ ÀÇÇØ ¹Ù²î±â (À§ÇØ)¶§¹®¿¡, ¾îÇø®ÄÉÀ̼ÇÀ¸·Î getLifetime
¸Þ¼Òµå¸¦ È£ÃâÇØ È®ÀÎÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
lifetime
- ¹®¸ÆÀÇ ¸ñÇ¥ ¼ö¸í (ÃÊ´ÜÀ§). ¹«±âÇÑÀÇ ¼ö¸íÀ» ¿ä±¸ÇÏ´Â °æ¿ì´Â INDEFINITE_LIFETIME
¸¦ »ç¿ëÇØ, µðÆúÆ®ÀÇ ¼ö¸íÀ» ¿ä±¸ÇÏ´Â °æ¿ì´Â DEFAULT_LIFETIME
¸¦ »ç¿ëÇÑ´Ù
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦ Æ÷ÇÔÇÑgetLifetime()
public void setChannelBinding(ChannelBinding cb) throws GSSException
initSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¹Þ¾Æ µéÀÌ´Â ÂÊÀ¸·ÎºÎÅÍ È£ÃâÇÒ ¶§´Â acceptSecContext
¸¦ ÃÖÃʷΠȣÃâÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
cb
- »ç¿ëÇϴ ä³Î ¹ÙÀεù
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦ Æ÷ÇÔÇÑ´Ùpublic boolean getCredDelegState()
requestCredDeleg
¸Þ¼Òµå´Â ±× ¿ä±¸¸¦ ¹Þ¾Æµé¿© ±× ½ÃÁ¡À¸·ÎºÎÅÍ ±âµ¿ Ãø¿¡ ´ëÇØ false
¸¦ µ¹·ÁÁÝ´Ï´Ù.
requestCredDeleg(boolean)
public boolean getMutualAuthState()
requestMutualAuth(boolean)
public boolean getReplayDetState()
requestReplayDet(boolean)
public boolean getSequenceDetState()
requestSequenceDet(boolean)
public boolean getAnonymityState()
initSecContext
¿¡ ÀÇÇØ ±× ½ÃÁ¡±îÁö »ý¼ºµÈ ¹®¸Æ È®¸³ ÅäÅ«ÀÇ ¾î´À ÂÊÀΰ¡¿¡, ±âµ¿ÃøÀÇ ID °¡ °ø°³µÇ°í ÀÖ´ÂÁö ¾î¶²Áö°¡ °Ë»çµË´Ï´Ù. À͸íÀ¸·Î¼ÀÇ ÀÎÁõÀÌ ÇÊ¿äÇÑ °æ¿ì´Â initSecContext
¸¦ È£ÃâÇÏ°í ³ª¼ ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇØ, »ý¼ºµÈ ÅäÅ«À» ÇǾ ¼Û½ÅÇÏ´ÂÁö ±× ¹®¸ÆÀ» ÁßÁöÇұ °áÁ¤ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¹Þ¾Æ µéÀÌ´Â ÂÊÀ¸·ÎºÎÅÍ ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇßÀ» °æ¿ì´Â acceptSecContext
¿¡ ÀÇÇØ ±× ½ÃÁ¡±îÁö ó¸®µÈ ÅäÅ«ÀÇ ¾î´À ÂÊÀΰ¡¿¡, ±âµ¿ÃøÀÇ ID °¡ °ø°³µÇ°í ÀÖ´ÂÁö ¾î¶²Áö°¡ °Ë»çµË´Ï´Ù.
requestAnonymity(boolean)
public boolean isTransferable() throws GSSException
export
¸Þ¼Òµå¸¦ »ç¿ëÇØ, ÀÌ ¹®¸ÆÀ» ´Ù¸¥ ÇÁ·Î¼¼½º¿¡ Àü¼Û ÇÒ ¼ö ÀÖÀ»Áö ¾î¶³Áö¸¦ °Ë»çÇÕ´Ï´Ù. ÀÌ È£ÃâÀº ¿ÏÀüÇÏ°Ô È®¸³µÈ ¹®¸ÆÀ¸·Î¸¸ À¯È¿ÇÕ´Ï´Ù.
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦ Æ÷ÇÔÇÑ´Ùpublic boolean isProtReady()
wrap
,unwrap
,getMIC
,verifyMIC
µîÀÇ ¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â °æ¿ì´Â true, ±×·¸Áö ¾ÊÀº °æ¿ì´Â falsepublic boolean getConfState()
isProtReady
¶Ç´Â isEstablished
·ÎºÎÅÍ true
°¡ µ¹·ÁÁÖ¾îÁø ÈÄ¿¡ ¾øÀ¸¸é ¾ÈµË´Ï´Ù. ÀÌ ¸Þ¼Òµå°¡ true
¸¦ µ¹·ÁÁÖ¾úÀ» °æ¿ì´Â getIntegState
µµ true
¸¦ µ¹·ÁÁÝ´Ï´Ù.
requestConf(boolean)
public boolean getIntegState()
isProtReady
¶Ç´Â isEstablished
·ÎºÎÅÍ true
°¡ µ¹·ÁÁÖ¾îÁø ÈÄ¿¡ ¾øÀ¸¸é ¾ÈµË´Ï´Ù. getConfState
°¡ true ¸¦ µ¹·ÁÁÖ¾úÀ» °æ¿ì´Â ÀÌ ¸Þ¼Òµåµµ true
¸¦ µ¹·ÁÁÝ´Ï´Ù.
requestInteg(boolean)
public int getLifetime()
isEstablished
·ÎºÎÅÍ true °¡ µ¹·ÁÁÖ¾îÁø ÈÄ¿¡ ¾øÀ¸¸é ¾ÈµË´Ï´Ù.
requestLifetime(int)
public GSSName getSrcName() throws GSSException
isProtReady
¶Ç´Â isEstablished
·ÎºÎÅÍ true
°¡ µ¹·ÁÁÖ¾îÁø ÈÄ¿¡ ¸¶¼Å À¯È¿ÇÏ°Ô µË´Ï´Ù.
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦ Æ÷ÇÔÇÑGSSName
public GSSName getTargName() throws GSSException
isProtReady
¶Ç´Â isEstablished
·ÎºÎÅÍ true
°¡ µ¹·ÁÁÖ¾îÁø ÈÄ¿¡ ¸¶¼Å À¯È¿ÇÏ°Ô µË´Ï´Ù.
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦ Æ÷ÇÔÇÑ´Ùpublic Oid getMech() throws GSSException
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦ Æ÷ÇÔÇÑ´Ùpublic GSSCredential getDelegCred() throws GSSException
getCredDelegState
¸¦ »ç¿ëÇÕ´Ï´Ù.
null
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦ Æ÷ÇÔÇÑ´Ùpublic boolean isInitiator() throws GSSException
GSSException
- ¸ÞÀÌÀú ¿¡·¯ ÄÚµå GSSException.FAILURE
¸¦ Æ÷ÇÔÇÑ´Ù
|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
Java, Java 2 D, ¹× JDBC ´Â ¹Ì±¹ ¹× ±× ¿ÜÀÇ ³ª¶ó¿¡ ÀÖ¾î¼ÀÇ ¹Ì±¹ Sun Microsystems, Inc. ÀÇ »óÇ¥ ȤÀº µî·Ï»óÇ¥ÀÔ´Ï´Ù.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.