|
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
°¡ Throw µË´Ï´Ù.
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
°¡ Throw µË´Ï´Ù.
´ÙÀ½ÀÇ Äڵ忹´Â ÀÌ ¸Þ¼µåÀÇ »ç¿ë ¹æ¹ýÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.
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
°¡ Throw µË´Ï´Ù.
´ÙÀ½ÀÇ Äڵ忹´Â ÀÌ ¸Þ¼µåÀÇ »ç¿ë ¹æ¹ýÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.
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
°¡ Throw µË´Ï´Ù.
´ÙÀ½ÀÇ Äڵ忹´Â ÀÌ ¸Þ¼µåÀÇ »ç¿ë ¹æ¹ýÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù.
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 °¡ Throw µË´Ï´Ù.
¾îÇø®ÄÉÀÌ¼Ç ·¹º§ÀÇ ÇÁ·ÎÅäÄÝ¿¡´Â ·¦¿¡ ÇØ »ý¼ºµÈ ÅäÅ«À» »ç¿ëÇØ ¡¸¼¼Å¥¾ÆÈÄ·¹À̹֡¹À» Á¦°øÇÏ´Â °ÍÀÌ Àֱ⠶§¹®¿¡ ±¸Çö¿¡¼´Â ±æÀÌ 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 °¡ Throw µË´Ï´Ù.
¾îÇø®ÄÉÀÌ¼Ç ·¹º§ÀÇ ÇÁ·ÎÅäÄÝ¿¡´Â ·¦¿¡ ÇØ »ý¼ºµÈ ÅäÅ«À» »ç¿ëÇØ ¡¸¼¼Å¥¾ÆÈÄ·¹À̹֡¹À» Á¦°øÇÏ´Â °ÍÀÌ Àֱ⠶§¹®¿¡ ±¸Çö¿¡¼´Â ±æÀÌ 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
¸¦
Æ÷ÇÔÇÑ ¿¹¿Ü°¡ Throw µË´Ï´Ù.
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 µµ ÂüÁ¶ÇϽʽÿÀ.