¼«ÂÄÍî¤Êµ»½Ñ¼Ô¤ÎÆüµ­

´ðËܤ϶ô¤Ã¤Æ¤ë¤«°û¤ó¤Ç¤ë¤«¤Ç¤¹¤¬¡¢¤è¤¯¼ñÌ£¤Ç¥«¥é¥ª¥±¡¦PKI¡¦½ð̾¡¦Ç§¾Ú¡¦¥×¥í¥°¥é¥ß¥ó¥°¡¦¾ðÊ󥻥­¥å¥ê¥Æ¥£¤ò¤ä¤Ã¤Æ¤¤¤Þ¤¹¡£Î¹¹¥¤­¡£¥Æ¥ì¥Ó¹¥¤­¤Ç·ÝǽÄÌ

¿ÞÀâ

¿ÞÀâ¡§PKCS#5ÈëÌ©¸°¤ò¥Ñ¥¹¥ï¡¼¥ÉÊݸ¤ë¶¦Ä̸°¤ÈIV¤Îºî¤êÊý(µ­»ö½¤Àµ)

¥Ñ¥¹¥ï¡¼¥É¤ÇÊݸ¤ì¤¿PEM·Á¼°¤ÎPKCS#5 RSAÈëÌ©¸°¤òÉü¹æ¤·¤Æ¼è¤ê½Ð¤·¤Æ½ð̾¤Ê¤ó¤«¤Ë»È¤¨¤ë¤è¤¦¤ÊJavaScript¥é¥¤¥Ö¥é¥ê¤òºî¤ê¤¿¤¤¤È»×¤Ã¤Æ¤ë¤ó¤Ç¤¹¤¬¡¢¤Ê¤ó¤«¸½¶È¤¬Ë»»¦¤µ¤ì¤Æ¤ª¤ê¤½¤ó¤Ê»þ´Ö¤â¤Ê¤¯¡£¤¿¤À¡¢¤½¤ó¤Ê»ö¤Ç¤Ï¤â¤¦¥¨¥ó¥¸¥Ë¥¢¤È¤·¤ÆµÍ¤ó¤Ç¤¤¤ë¤Ê¤¡¤È»×¤¤¥ê¥Ï¥Ó¥ê¤Î¤¿¤á¤Ë¤¤¤í¤¤¤íÄ´¤Ù¤Æ¤ß¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£

¥Ñ¥¹¥ï¡¼¥ÉÊݸ¤ì¤¿PKCS#5 PEM·Á¼°¤ÎÈëÌ©¸°

OpenSSH¤Î¸ø³«¸°Ç§¾Ú¤ä¡¢OpenSSL¥Ù¡¼¥¹¤Ç¤ÎCA¤ä¡¢Apache¥µ¡¼¥Ð¡¼¤Îµ¯Æ°¤Ê¤É¤Ç¥Ñ¥¹¥ï¡¼¥ÉÊݸ¤ì¤¿PKCS#5 PEM·Á¼°¤Î¸ø³«¸°°Å¹æ¤ÎÈëÌ©¸°¤ò»È¤¦¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£°ìÈ̤ˤϤ³¤ó¤Ê´¶¤¸¤Î¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤Ë¤Ê¤Ã¤Æ¤Þ¤¹¡£

-----BEGIN RSA PRIVATE KEY----- ¢«­¡PKCS#5 RSAÈëÌ©¸°¤ò¼¨¤¹¥Ø¥Ã¥À
Proc-Type: 4,ENCRYPTED ¢«­¢¶¦Ä̸°°Å¹æ¤ÇÈëÌ©¸°¤ò°Å¹æ²½¤·¤Æ¤¤¤ë¤³¤È¤ò¼¨¤¹
DEK-Info: DES-EDE3-CBC,E83B4019057F55E9 ¢«­£¶¦Ä̸°°Å¹æÊý¼°¤È¡¢¥½¥ë¥È¤ò´Þ¤à½é´ü²½¥Ù¥¯¥¿

iIPs59nQn4RSd7ppch9/vNE7PfRSHLoQFmaAjaF0DxjV9oucznUjJq2gphAB2E2H ¢«­¤¶¦Ä̸°¤Ç°Å¹æ²½¤µ¤ì¤¿ÈëÌ©¸°ËÜÂÎ
1r9k4e7lc7LZjF0RIgfeRl7MKmLHVCNo2EhPkt5yTb6bNdf3trS03+N+L5zBoaVp
°Ê²¼¡¢Î¬

PEM·Á¼°¤ÎÈëÌ©¸°¤Ë¤Ï"BEGIN RSA PRIVATE KEY"¤È¤«½ñ¤¤¤Æ¤¢¤ë¤ä¤Ä¤È"BEGIN PRIVATE KEY"¤È¤«½ñ¤¤¤Æ¤¤¤ë¤ä¤Ä¤¬¤¢¤ë¤ó¤Ç¤¹¤±¤É¡¢¤½¤ì¤¾¤ìPKCS#5·Á¼°¤ÈPKCS#8·Á¼°¤Î¸ø³«¸°°Å¹æ¤ÎÈëÌ©¸°¤Ë¤Ê¤ê¤Þ¤¹¡£ PKCS#5¤ÈPKCS#8¤Î¸°·Á¼°¤Î°ã¤¤¤Ï¤¶¤Ã¤È¤³¤ó¤Ê´¶¤¸¡£

PKCS#5 ÈëÌ©¸°
  • PEM¥Ø¥Ã¥À¤Ë"BEGIN RSA PRIVATE KEY"¤Î¤è¤¦¤Ë¸ø³«¸°°Å¹æ¥¢¥ë¥´¥ê¥º¥à¤¬½ñ¤¤¤Æ¤¢¤ë¡£
  • ¸°ËÜÂΤˤϸø³«¸°°Å¹æ¸°¥¢¥ë¥´¥ê¥º¥à¤ò¼¨¤¹¼±Ê̾ðÊó¤Ï½ñ¤«¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç PEM¥Ø¥Ã¥À¦¤Ç¶èÊ̤¹¤ëɬÍפ¬¤¢¤ë¡£
  • (¿ô»ú¤ÎÍåÎ󤬲¿¸Ä¤¢¤ë¤«¤È¤«¡¢ÍåÎó¤ÎŤµ¤È¤«¤Ç¸«¤ë¿Í¤¬¸«¤ì¤Ð¤ï¤«¤ê¤Þ¤¹¤¬w)
PKCS#8 ÈëÌ©¸°
  • PEM¥Ø¥Ã¥À¤Ï"BEGIN PRIVATE KEY"¤Î¤è¤¦¤Ë¸ø³«¸°°Å¹æ¥¢¥ë¥´¥ê¥º¥à¤¬½ñ¤¤¤Æ¤Ê¤¤¡£
  • ¸°ËÜÂΤˤϸø³«¸°°Å¹æ¸°¥¢¥ë¥´¥ê¥º¥à¤ò¼¨¤¹¼±Ê̾ðÊó¤¬ASN.1¥ª¥Ö¥¸¥§¥¯¥È¼±ÊÌ»Ò(OID) ¤Ç½ñ¤«¤ì¤Æ¤¤¤ë¡£
  • PKCS#8¤Î¸°¥Ç¡¼¥¿¤Ï¡¢PKCS#5¤Î¸°ËÜÂΤȥ¢¥ë¥´¥ê¥º¥à¼±Ê̻Ҥò¤Þ¤È¤á¤ÆASN.1¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤¿¤â¤Î¡£
PKCS#5¤ÎÈëÌ©¸°¤Ë¤Ï¤½¤Î¾¤Ë¡¢°Å¹æ²½¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¡¢¸ø³«¸°°Å¹æ¤ÎÈëÌ©¸°¤ò¥Ñ¥¹¥ï¡¼¥É¤ÇÊݸ¤ë ¤¿¤á¤Î¶¦Ä̸°°Å¹æ¤Î¥¢¥ë¥´¥ê¥º¥à¡¢¥½¥ë¥È¤ò´Þ¤à½é´ü²½¥Ù¥¯¥¿¤¬½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£¥½¥ë¥È¤ÏƱ¤¸¥Ñ¥¹¥ï¡¼¥É¤ò»È¤Ã¤Æ¤â ¶¦Ä̸°°Å¹æ¤Î¶¦Ä̸°¤¬Æ±¤¸¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤³¤È¤¬Ìµ¤¤¤è¤¦¤Ë¸°¤ÎÊݸ»þ¤Ë¤Ä¤±¤é¤ì¤¿8¥Ð¥¤¥È¤ÎŤµ¸ÇÄê¤ÎÍð¿ô¤Ç¤¹¡£¶¦Ä̸°°Å¹æ¤Î¥¢¥ë¥´¥ê¥º¥à¤ä¸°Ä¹¤Ë°Í¸¤·¤ÆÄ¹¤µ¤¬´Þ¤à¡Ö¥½¥ë¥È¤ò´Þ¤à½é´ü²½¥Ù¥¯¥¿¡×¤ÎÀèÆ¬8¥Ð¥¤¥Èʬ¤ò¥½¥ë¥È¤È¤·¤Æ»ÈÍѤ·¤Þ¤¹¡£

¶¦Ä̸°°Å¹æ¤Î¶¦Ä̸°¤È½é´ü¥Ù¥¯¥¿IV¤Ï¤É¤¦¤ä¤Ã¤Æºî¤ë¤Î¤«

ÈëÌ©¸°¤ò»È¤¦¤¿¤á¤Î¥Ñ¥¹¥Õ¥ì¡¼¥º(¥Ñ¥¹¥ï¡¼¥É¡¢PIN¥³¡¼¥É¤È¤â¸Æ¤Ð¤ì¤ë)¤È¡¢Á°½Ò¤Î ¥½¥ë¥È¤«¤é¤É¤Î¤è¤¦¤Ë¶¦Ä̸°¤È½é´ü¥Ù¥¯¥¿¤òÀ¸À®¤¹¤ë¤Î¤«¤òOpenSSL¤Î¥½¡¼¥¹¥³¡¼¥É¤ò į¤á¤Ê¤¬¤éÄ´¤Ù¤Æ¤ß¤Þ¤·¤¿¡£¤³¤Î½èÍý¤ò¹Ô¤¦´Ø¿ô¤Ï "crypto/evp/evp_key.c" ¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë "EVP_BytesToKey" ¤È¤¤¤¦´Ø¿ô¤Ç¤¹¡£¤³¤Î´Ø¿ô¤Ï¶¦Ä̸°¤È½é´ü²½¥Ù¥¯¥¿(IV)¤òƱ»þ¤Ëºî¤ë¤â¤Î¤Ç¤¹¤¬¡¢PKCS#5¤Î¸°¥Ç¡¼¥¿¤òÉü¹æ¤¹¤ë¤¿¤á¤Ë¤ÏÀ¸À®¤µ¤ì¤¿¶¦Ä̸°¤Î¤ß¤ò»È¤¤¡¢½é´ü²½¥Ù¥¯¥¿¤Ï´Ø¿ô¤è¤êÀ¸À®¤µ¤ì¤¿¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢PKCS#5¥Õ¥¡¥¤¥ë¤ÎDEK-Info¤Ëµ­ºÜ¤µ¤ì¤¿¥½¥ë¥È¤ò´Þ¤à½é´ü²½¥Ù¥¯¥¿Á´ÂΤò»È¤¤¤Þ¤¹¡£

¥Ñ¥¹¥Õ¥ì¡¼¥º¤È¥½¥ë¥È¤«¤é¤É¤Î¤è¤¦¤Ë¶¦Ä̸°¤È½é´ü¥Ù¥¯¥¿(IV)¤òÀ¸À®¤¹¤ë¤Î¤«¤ò¿Þ¤Ë½ñ¤¤¤Æ¤ß¤Þ¤·¤¿¡£
EVP_BytesToKey

´ðËÜŪ¤Ë¤Ï¥Ñ¥¹¥Õ¥ì¡¼¥º¤Îʸ»úÎó¤È¥½¥ë¥È¤«¤éMD5¥Ï¥Ã¥·¥å¥¢¥ë¥´¥ê¥º¥à¤Î¥Ï¥Ã¥·¥åÃͤò·×»»¤·¡¢ Äê¤á¤é¤ì¤¿Ä¹¤µ¤òÀÚ¤ê½Ð¤·¤Æ¶¦Ä̸°¤ÈIV¤ò¼èÆÀ¤·¤Þ¤¹¡£º£¤Ê¤ªMD5¸ÇÄê¤Ç»È¤ï¤ì¤Æ¤¤¤ë¤È¤¤¤¦¤Î¤Ï ¤¦¡¼¤à¤È¤¤¤¦´¶¤¸¤Ç¤¹¤Í¡£

¶¦Ä̸°¤È½é´ü¥Ù¥¯¥¿IV¤òOpenSSL¥³¥Þ¥ó¥É¤Ç´Êñ¤Ë¸«¤ë¤Ë¤Ï

¡Ö¸ø³«¸°°Å¹æ¤ÎÈëÌ©¸°¡×¤òºÇ½ªÅª¤ËÊݸ¤ë¡Ö¶¦Ä̸°°Å¹æ¤Î¶¦Ä̸°¡×¤È¡Ö½é´ü¥Ù¥¯¥¿IV¡×¤Ï¡¢ °Å¹æ²½ÂоݤÎÈëÌ©¸°¤ÎÃͤˤϰìÀÚ´Ø·¸¤Ê¤¯¡¢Ã±¤Ë¶¦Ä̸°°Å¹æ¥¢¥ë¥´¥ê¥º¥à¤È¥Ñ¥¹¥³¡¼¥É¤È¥½¥ë¥È¤Î¤ß¤Ç·è¤Þ¤ê¡¢ ´Êñ¤ËOpenSSL¤Î¥³¥Þ¥ó¥É¤Ç¸«¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

Î㤨¤Ð¡¢¶¦Ä̸°°Å¹æ¤¬¥È¥ê¥×¥ëDES(DES-EDE3-CBC)¤Ç¡¢ ¥Ñ¥¹¥³¡¼¥É¤¬ "hoge" ¤Ç¡¢¥½¥ë¥È¤¬ "E83B4019057F55E9" ¤Ç¤¢¤Ã¤¿¤È¤­¤Î¡¢ ¶¦Ä̸°¤È½é´ü¥Ù¥¯¥¿¤Ï°Ê²¼¤Î¥³¥Þ¥ó¥É¤Çɽ¼¨¤µ¤ì¤Þ¤¹¡£

% openssl ¶¦Ä̸°°Å¹æ -p -in /dev/null -out /dev/null -pass pass:¥Ñ¥¹¥Õ¥ì¡¼¥º -S 8¥Ð¥¤¥È16¿Ê¿ô¥½¥ë¥È
(Îã)
% openssl des-ede3-cbc -p -in /dev/null -out /dev/null -pass pass:hoge -S 1F2F3F4F5F6F7F8F
salt=1F2F3F4F5F6F7F8F
key=BD2B936A94EA6C2E0D15CD066C008F1F88735EE491687A29
iv =C180CD24D8B03454 (¤³¤ÎIV¤ÏÉü¹æ¤Ë¤Ï»È¤ï¤Ê¤¤)

ÆÉ¤ß¤Ë¤¯¤¤OpenSSL¤ÎC¤Î¥³¡¼¥É²òÀϤθå¤Ç

¤µ¤ó¤¶¤ó¡¢ÆÉ¤ß¤Ë¤¯¤¤Æñ²ò¤ÊOpenSSL¤ÎC¤Î¥½¡¼¥¹¥³¡¼¥É¤òÆÉ¤ó¤À¤¢¤È¤Ç¡¢¤½¤Î¸°¤È½é´ü²½¥Ù¥¯¥¿¤ò¼èÆÀ¤¹¤ë EVP_BytesToKey´Ø¿ô¤òPython¤Ç½ñ¤­Ä¾¤·¤Æ¤¯¤ì¤Æ¤¤¤ë yasusii ¤µ¤ó¤È¤¤¤¦Êý¤¬¤¤¤é¤Ã¤·¤ã¤¤¤Þ¤·¤¿¡£ ¡ÖDiscreet Blog 25.6.2007 - OpenSSL¤ÎPBE(Password Based Encryption) (2007-06-25)¡×¡¢Àè¤Ë¤³¤Îµ­»ö¸«¤È¤­¤ã¤è¤«¤Ã¤¿orz

¤³¤ì¤Ç¡¢¤Ê¤ó¤È¤Ê¤¯JavaScript¤ÇPKCS#5¸°¤ò²ò¤¤¤ÆRSA½ð̾¤¹¤ë¤Ê¤ó¤Æ¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Êµ¤¤¬¤·¤Æ¤­¤Þ¤·¤¿¡£ º£Æü¤Ï¤³¤ó¤Ê¤È¤³¤í¤Ç¡£

²þÄû

  • 2013.04.10 - ¥½¥ë¥È¤ÈIV¤Î°·¤¤¤Ë¤Ä¤¤¤ÆÄ´ººÉÔ­¤È¤¤¤¦¤«¸í²ò¤¬¤¢¤Ã¤¿¤Î¤Ç½¤Àµ¤·¤Þ¤·¤¿¡£

¿ÞÀâRSA½ð̾¤Î´¬

RSA¸°¤Ë¤è¤ë½ð̾¤Ã¤Æ¡¢¥Õ¥Ä¡¼¤ÏJava JCE¤Ç¤âCryptoAPI¤Ç¤â.NET¤Ç¤âOpenSSL¤Ç¤â¡¢°ì¤Ä¤Î¥ª¥Ú¥ì¡¼¥·¥ç¥ó¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢Ãæ¤Ç¤É¤¦½èÍý¤µ¤ì¤Æ¤¤¤ë¤«¤éÃΤëɬÍפâ¤Ê¤¤¤ó¤Ç¤¹¤¬¡¢¤ä¤í¤¦¤È»×¤¨¤Ð¥Ï¥Ã¥·¥å¤ÈRSA¸°¤Ë¤è¤ë°Å¹æ²½¡¦Éü¹æ¤Î°Å¹æ¥×¥ê¥ß¥Æ¥£¥Ö¤Ç¼ÂÁõ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤¹¡£

º£²ó¤ÏRSA½ð̾¤ÎÃæ¿È¤ò¿ÞÀ⤷¤¿¤â¤Î¤Ã¤Æ¡¢¤Ê¤«¤Ê¤«Îɤ¤Êª¤¬Ìµ¤«¤Ã¤¿¤Î¤Ç¡¢¤Á¤ç¤Ã¤È½ñ¤¤¤Æ¤ß¤Æ¡¢´ØÏ¢¤·¤¿Áê¸ß±¿ÍѾå¤ÎÌäÂê¤Ê¤ó¤«¤ò¾Ò²ð¤·¤Þ¤¹¡£

RSA½ð̾¤È¤Ï²¿¡©¤è¡Á¤·É㤵¤ó¿ÞÀ⤷¤Á¤ã¤¦¤¾



RSA½ð̾¤Ã¤Æ¡¢

ʸ½ñ¤Î¥Ï¥Ã¥·¥å¼è¤Ã¤ÆÈëÌ©¸°¤Ç°Å¹æ²½¤¹¤ë¤ó¤À¤è¤Í


¤Ã¤Æ´Êñ¤Ë²òÀ⤷¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤Ã¤¿¤ê¤·¤Þ¤¹¤¬¡¢¤½¤ÎÀâÌÀ¤Ã¤Æ¡¢¤Ê¤ó¤«¹ç¤Ã¤Æ¤¤¤ë¤è¤¦¤Ç¹ç¤Ã¤Æ¤¤¤Ê¤¤¤È¤¤¤¦¤«¡¢¤¦¤½½­¤¤¤È¤¤¤¦¤«¡¢¡ÖËÜÅö¤Ï¤É¤¦¤Ê¤Î¡©¡×¤Ã¤Æ¤¤¤¦¤Ï¤Ê¤·¤¬È´¤±¤Æ¤¤¤ë¤è¤¦¤Ç¡¢¤³¤ì¤Þ¤Ç¥¹¥Ã¥­¥ê¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£Â¿Ê¬¡¢¤½¤ì¤Ï¥Ñ¥Ç¥£¥ó¥°¤ÎÏä¬Ìµ¤¤¤«¤é¤Ê¤ó¤¸¤ã¤Ê¤¤¤«¤È»×¤¦¤ó¤Ç¤¹¡£

RSA½ð̾¤ÎÊý¼°¤ÏPKCS#1 v2.1¤ÎÃæ¤ÇÄê¤á¤é¤ì¤Æ¤¤¤ë¤ó¤Ç¤¹¤¬¡¢°ìÈÌŪ¤Ê¸ø³«¸°¾ÚÌÀ½ñ¤äCMS½ð̾¤Ê¤ó¤«¤Ï¡¢¤½¤ÎÃæ¤ÇÄê¤á¤é¤ì¤¿ "RSASSA-PKCS1-v1_5" ¤È¤¤¤¦¥¢¥ë¥´¥ê¥º¥à¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£

RSASSA-PKCS1_v1_5¥¢¥ë¥´¥ê¥º¥à¤Ë¤«¤Ê¤êÃé¼Â¤Ë¿ÞÀ⤷¤Æ¤ß¤¿¤Î¤¬¥³¥ì¡§

¿Þ1



º¸¤«¤é±¦(¢ª)¤¬¡Ö½ð̾¤ÎÀ¸À®¡×¤Ç¡¢±¦¤«¤éº¸(¢«)¤¬¡Ö½ð̾¤Î¸¡¾Ú¡×¤Ç¤¹¡£

RSASSA-PKCS1-v1_5 ¤Î¥ª¥Ú¥ì¡¼¥·¥ç¥ó¤ÏÂ礭¤¯¡¢

¡¦¥Ï¥Ã¥·¥å¤Î·×»»
¡¦¥Ñ¥Ç¥£¥ó¥°½èÍý
¡¦¸ø³«¸°°Å¹æ

¤Î3¤Ä¤Ëʬ¤«¤ì¤Þ¤¹¡£DigestInfo¤òºî¤ë¤È¤³¤â´Þ¤á¤Æ¥Ñ¥Ç¥£¥ó¥°½èÍý¤ÈÆÉ¤ó¤À¤ê¤¹¤ë¤³¤È¤â¤¢¤ê¡¢¤³¤Î¿Þ¤ÎÊý¤¬´Ö°ã¤Ã¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢°ìÈÌŪ¤Ê¥×¥í¥°¥é¥ß¥ó¥°¾å¤Î¥Ñ¥Ç¥£¥ó¥°½èÍý¤òÃΤäƤ¤¤ëÊý¤Ê¤é¡¢DigestInfo¤òºî¤Ã¤¿¸å¤«¤é¤ò¥Ñ¥Ç¥£¥ó¥°½èÍý¤È¸Æ¤ó¤ÀÊý¤¬¥¹¥Ã¥­¥ê¤¹¤ë¤è¤¦¤Ê¤¬µ¤¤¬¤·¤Þ¤¹¡£

DigestInfo¤ÈÁê¸ß±¿ÍÑÀ­



½ð̾¤Ç¤Ï¡¢½ð̾Âоݥǡ¼¥¿¤Î¥Ï¥Ã¥·¥åÃͤȥϥ工奢¥ë¥´¥ê¥º¥à¤ò³ÊǼ¤¹¤ë¤¿¤á¤ËDigestInfo¤È¤¤¤¦ASN.1¹½Â¤¤ò»È¤¤¤Þ¤¹¡£

RSA PKCS#1 v2.1¤è¤ê
DigestInfo ::= SEQUENCE {
digestAlgorithm DigestAlgorithm,
digest OCTET STRING
}

DigestAlgorithm ::= AlgorithmIdentifier { {PKCS1-v1-5DigestAlgorithms} }

PKCS1-v1-5DigestAlgorithms ALGORITHM-IDENTIFIER ::= {
{ OID id-md2 PARAMETERS NULL }|
{ OID id-md5 PARAMETERS NULL }|
{ OID id-sha1 PARAMETERS NULL }|
{ OID id-sha256 PARAMETERS NULL }|
{ OID id-sha384 PARAMETERS NULL }|
{ OID id-sha512 PARAMETERS NULL }
}


½ð̾À¸À®»þ¤Î¥¢¥ë¥´¥ê¥º¥à¥Ñ¥é¥á¡¼¥¿NULL



DigestInfo¤Ç¥Ï¥Ã¥·¥å¥¢¥ë¥´¥ê¥º¥à¤ò»ØÄꤹ¤ëºÝ¤Ë¡¢¥¢¥ë¥´¥ê¥º¥à¥Ñ¥é¥á¡¼¥¿¤ò»ØÄê¤Ç¤­¤ë¤ó¤Ç¤¹¤¬¡¢SHA1¡¢SHA2¥·¥ê¡¼¥º¤Î¾ì¹ç¤Ë¤ÏNULL¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤ÎNULL¤òÆþ¤ì¤ëÆþ¤ì¤Ê¤¤¤Ç¡¢Áê¸ß±¿ÍѾå¤ÎÌäÂ꤬µ¯¤­¤¿¤ê¤·¤Þ¤¹¡£

¤³¤ÎÊÕ¤ê¤ÏÀΡ¢RSA¤ÈNIST¤Î´Ö¤Çäþ;¶ÊÀÞ¤¢¤Ã¤¿¤½¤¦¤Ê¤ó¤Ç¤¹¤¬¡¢²ò·è¤Î¤¿¤á¤ËRSA¤Ïv2.1¤ÎÄûÀµ(PKCS #1 v2.1 Errat)¤ò2005ǯ12·î¤Ë½Ð¤·¤Æ¤¤¤Þ¤¹¡£·ëÏÀ¤«¤é¸À¤¦¤È

¡¦½ð̾À¸À®»þ¡§NULL¤ò´Þ¤á¤ë¤â¤Î¤È¤¹¤ë(SHALL)
¡¦½ð̾¸¡¾Ú»þ¡§NULL¤¬¤¢¤Ã¤Æ¤â¤Ê¤¯¤Æ¤â¸¡¾Ú¤Ç¤­¤ë¤â¤Î¤È¤¹¤ë(SHALL)

À¸À®¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤³¤ì¤Þ¤Ç¼«Ê¬¤¬¿¨¤ë¤³¤È¤¬¤Ç¤­¤¿10¤°¤é¤¤¤Î½ð̾¼ÂÁõ¤Ç°ì¤Ä¤ò½ü¤­ÌäÂê¤Ê¤¯NULL¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤·¤¿¤·¡¢¼êÅö¤¿¤ê¼¡ÂèÄ´¤Ù¤¿¾ÚÌÀ½ñ¡¢CRL¤Ê¤ó¤«¤âÁ´¤ÆNULL¤¬´Þ¤Þ¤ì¤¿·Á¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£»Ä¤ê¤Î°ì¤Ä¤Ë¤Ä¤¤¤Æ¤â¡¢¥Ñ¥Ã¥Á¤¬½Ð¤Æ¤¤¤ë¤½¤¦¤Ê¤Î¤ÇÁ᤯½¤Àµ¤µ¤ì¤ë¤È¤¤¤¤¤Ê¤¡¡¢¡¢¡¢¤È»×¤¤¤Þ¤¹¡£(¤È¤¢¤ëÀ½Éʤ¬¹ñÆâ2¤Ä¤Î¼Â¥µ¡¼¥Ó¥¹¤Ç»È¤ï¤ì¤Æ¤¤¤ë¤ó¤Ç¤¹¤¬¡¢¤â¤¦Ä¹¤¤¤³¤È¥Ñ¥Ã¥Á̤ŬÍѤˤʤäƤޤ¹¡£»Äǰ¡£)

¸¡¾Ú¤Ë¤Ä¤¤¤Æ¤Ï¡¢Ìܤˤ·¤¿ËؤɤμÂÁõ¤¬NULL¤¬¤¢¤Ã¤Æ¤â̵¤¯¤Æ¤â¸¡¾Ú¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤ó¤Ç¤¹¤¬¡¢Æþ¼ê¤Ç¤­¤¿¤¦¤Á¤Î20%¤°¤é¤¤¤Î¼ÂÁõ¤ÏNULL¤¬Ìµ¤¤¤È¸¡¾Ú¼ºÇÔ¤·¤Þ¤¹¡£

¤³¤ÎÊÕ¤ê¤Ï¡¢¥Ï¥Ã¥·¥å¤ÈRSA°Å¹æ¤Î¥×¥ê¥ß¥Æ¥£¥Ö¤ò»È¤Ã¤ÆNULL¤ÎÆþ¤Ã¤Æ¤Ê¤¤½ð̾¤òºî¤Ã¤¿¤ê¡¢À¸¤Î½ð̾ÃÍ¡¢¾ÚÌÀ½ñ¡¢CMS½ð̾¡¢XML½ð̾¤Ê¤É¤Ç½ð̾ÃͤÎDigestInfo¤ËNULL¤¬Æþ¤Ã¤Æ¤¤¤ë¤Î¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¥Ä¡¼¥ë¤òºî¤Ã¤ÆÄ´¤Ù¤Þ¤·¤¿¡£

¤Ê¤ó¤«¡¢º£²ó¤âºÙ¤«¤¤ÏäǤ¹¤ß¤Þ¤»¤ó¤Í¡£¤Ç¤Ï¤Ç¤Ï¡£

Sun Java CertPathBuilder¤ÎÎã³°¤Î¥¤¥±¥º

¤¢¤ë¥Ç¥¸¥¿¥ë¾ÚÌÀ½ñ¤¬¿®Íꤹ¤ë¥ë¡¼¥È¾ÚÌÀ½ñ¤«¤éé¤Ã¤ÆÍ­¸ú¤Ç¤¢¤ë¤«¤É¤¦¤«È½Äꤹ¤ë¤¿¤á¤Ëǧ¾Ú¥Ñ¥¹¸¡¾Ú(Certification Path Validation)¤È¤¤¤¦½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£

¤³¤ì¤Ï¡¢HTTPS¤ÇÊݸ¤ì¤¿¥µ¥¤¥È¤ËÀܳ¤¹¤ë»þ¤äS/MIME½ð̾¥á¡¼¥ë¤ò³«¤¯ºÝ¤Ë¼Â¤Ï΢¤Ç¹Ô¤ï¤ì¤Æ¤¤¤ë¤È¤Ã¤Æ¤â½ÅÍפʽèÍý¤Ç¤¹¡£

Java ¤Ç¤ÏCertPathBuilder¤ÈCertPathValidator¤È¤¤¤¦¥¯¥é¥¹¤¬¤¢¤ê¡¢»ÅÁȤßŪ¤Ë¤ÏX.509¸ø³«¸°¾ÚÌÀ½ñ¤Ë¸Â¤é¤ºÈÆÍÑŪ¤Ë¾ÚÌÀ½ñ¤Î¥Ñ¥¹¤¬¸¡¾Ú¤Ç¤­¤¿¤ê¡¢¤¤¤í¤¤¤í¤Ê²ñ¼Ò¤Î¼ÂÁõ¤·¤¿¥¢¥ë¥´¥ê¥º¥à¡¢¼ÂÁõÊýË¡¤¬ÁªÂò¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

Sun Java ¤Ë¤ÏRFC 3280½àµò¤Î¥Ñ¥¹¸¡¾Ú¼ÂÁõ¤¬´Þ¤Þ¤ì¤Æ¤ª¤ê¡¢¤³¤ì¤Ë´ð¤Å¤¯X.509¾ÚÌÀ½ñ¤Î¥Ñ¥¹¸¡¾Ú¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£


CertPathBuilder¤ÎSun¥×¥í¥Ð¥¤¥À¤ÎPKIX¥¢¥ë¥´¥ê¥º¥à
¸¡¾ÚÂоݾÚÌÀ½ñ¡¢Ãæ´Ö¾ÚÌÀ½ñ¡¢CRL¡¢¾ÚÌÀ½ñ¤äCRL¤ò¼èÆÀ¤¹¤ëLDAP¥Ç¥£¥ì¥¯¥È¥ê¡¢OCSP¥ì¥¹¥Ý¥ó¥À¤ÎÀßÄê¡¢¥È¥é¥¹¥È¥¢¥ó¥«¤È¤Ê¤ë¥ë¡¼¥È¾ÚÌÀ½ñ·²¤ò»ØÄꤹ¤ë¤³¤È¤Ë¤è¤ê¡¢¼«Æ°Åª¤Ë¥Ñ¥¹¹½ÃÛ¤È(¶¹µÁ¤Î)¥Ñ¥¹¸¡¾Ú¤òƱ»þ¤Ë¹Ô¤¦¤³¤È¤Ë¤è¤ê¸¡¾ÚÂоݾÚÌÀ½ñ¤Î¥Ñ¥¹¤¬Í­¸ú¤Ç¤¢¤ë¤«¤òȽÄꤷ¤Þ¤¹¡£ÆâÉô¤ÇCertPathValidator¤Î¼ÂÁõ¤¬»È¤ï¤ì¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
CertPathValidator¤ÎSun¥×¥í¥Ð¥¤¥À¤ÎPKIX¥¢¥ë¥´¥ê¥º¥à
¸¡¾ÚÂоݾÚÌÀ½ñ¤«¤é¥È¥é¥¹¥È¥¢¥ó¥«¤È¤Ê¤ë¥ë¡¼¥È¾ÚÌÀ½ñ¤Î°ì¤Ä¼êÁ°¤Þ¤Ç¤Î¾ÚÌÀ½ñ¤Î¥Á¥§¡¼¥ó(CertPath)¤òÍ¿¤¨¤ë¤³¤È¤Ë¤è¤ê¡¢(¶¹µÁ¤Î)¥Ñ¥¹¸¡¾Ú¤ò¹Ô¤¤¤Þ¤¹¡£


Sun PKIX¤ÎCertPathBuilder¤Î¥Ñ¥¹¹½ÃÛ¤ò¥¶¥Ã¥¯¥ê¿Þ¤Ë¤·¤¿¤Î¤¬°Ê²¼¡¢¡¢¡¢

pathbuild02



Sun¥×¥í¥Ð¥¤¥À¤ÎCertPathBuilder¤ÎPKIX¥¢¥ë¥´¥ê¥º¥à¼ÂÁõ¤Ê¤ó¤Ç¤¹¤¬¡¢¤³¤ì¤¬¡¢¤Þ¤¿¤Á¤ç¤Ã¤È¥¤¥±¥º¤Ê¼ÂÁõ¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤È¤¤¤¦¤«Îã³°½èÍý¤¬¤È¤Æ¤âÉÔ¿ÆÀڤʤó¤Ç¤¹¡£

¥Ñ¥¹¤ò¹½ÃÛ¤¹¤ë¤¿¤á¤Î¾ÚÌÀ½ñ¤¬ÉÔ­¤·¤Æ¤¤¤¿¤ê¡¢CRL¤¬¼èÆÀ¤Ç¤­¤Ê¤«¤Ã¤¿¤ê¡¢¼º¸ú¤·¤Æ¤¤¤¿¤ê¡¢´ü¸ÂÀÚ¤ì¤À¤Ã¤¿¤ê¡¢¸°ÍÑÅÓ¤¬´Ö°ã¤Ã¤Æ¤¤¤¿¤ê¡¢Ãæ´ÖCA¾ÚÌÀ½ñ¤Ë¤¢¤ë¤Ù¤­´ðËÜÀ©Ìó¤ÎcA¥Õ¥é¥°¤¬TRUE¤Ç¤Ê¤«¤Ã¤¿¤ê¤¹¤ë¤ÈÎã³°¤¬È¯À¸¤·¤Þ¤¹¤¬¡¢¤É¤ó¤ÊÍýͳ¤Ç¤¢¤Ã¤Æ¤âÁ´¤¯Æ±¤¸

sun.security.provider.certpath.SunCertPathBuilderException: 
unable to find valid certification path to requested target


¤È¤¤¤¦Îã³°¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£¤³¤ì¤¸¤ã²¿¤¬¥¨¥é¡¼Íýͳ¤À¤Ã¤¿¤Î¤«¤µ¤Ã¤Ñ¤ê¤ï¤«¤é¤Ê¤¤¡Ê¡°¡°¡¨¥á¥Ã¥»¡¼¥¸ "unable to find valid ..." ¤Ç¤°¤°¤Ã¤Æ¤ß¤ë¤È³§¤µ¤ó¥¨¥é¡¼Íýͳ¤¬¤ï¤«¤é¤ºº¤¤Ã¤Æ¤ª¤é¤ì¤ëÍͻҡ¢¡¢¡¢¡¢

CertPathBuilderException¥¯¥é¥¹¤Ç¤ÏgetCause()¥á¥½¥Ã¥É¤Ë¤è¤ê¡¢¤½¤ÎÎã³°¤¬È¯À¸¤·¤¿¸µ¤Î¸¶°ø¤È¤Ê¤ëÎã³°¤ò¼èÆÀ¤Ç¤­¤ë¤ó¤Ç¤¹¤¬¡¢Sun¤Î¼ÂÁõ¤Ç¤Ï¿¼¤µÍ¥Àèõº÷¤Î¤»¤¤¤«¡©¡ªÉÔ¿ÆÀڤʤΤ«¡©¡ª¤³¤ì¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤¿¤á¡¢¥Ñ¥¹¹½ÃÛ¡¦¸¡¾Ú¤Ë¼ºÇÔ¤·¤¿¸¶°ø¤¬¤ï¤«¤é¤Ê¤¤¤ó¤Ç¤¹¡£

¥Ñ¥¹¤Î¿¼¤µÍ¥Àèõº÷¤È¤Ï


Sun¤ÎCertPathBuilder¤ÎPKIX¥¢¥ë¥´¥ê¥º¥à¤Î¼ÂÁõ¤Ç¤Ï¥Ñ¥¹¤ò¸«¤Ä¤±¤ëºÝ¡¢ÉýÍ¥Àèõº÷¤È¿¼¤µÍ¥Àèõº÷¤Î¤¦¤Á¿¼¤µÍ¥Àèõº÷¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£(¿Í¹©ÃÎǽ·Ï¤ÎÊý¡¢Prolog·Ï¤ÎÊý¤Ï¤è¤¯¤´Â¸ÃΡ¢¡¢¡¢¡Ê¡°¡°¡¨)

°Ê²¼¤Î¤è¤¦¤Ê¾¯¤·Ê£»¨¤ÊPKI¥â¥Ç¥ë¤Ç¹Í¤¨¤Æ¸«¤Þ¤·¤ç¤¦¡£

cpb01



¤³¤³¤Ç¤Ï¿®Íꤹ¤ë¥ë¡¼¥È¾ÚÌÀ½ñ¤«¤é¥¨¥ó¥É¥¨¥ó¥Æ¥£¥Æ¥£¾ÚÌÀ½ñ¤Þ¤Ç3Ä̤ê¤Î¥Ñ¥¹¤¬¤¢¤ë¤ó¤Ç¤¹¤¬¡¢¤½¤Î¤¦¤Á2¤Ä¤Ï̵¸ú¤Ê¥Ñ¥¹¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

¡¦ROOT¢ªAAA¤ÎCA¾ÚÌÀ½ñ¤Ï¾ÚÌÀ½ñÍ­¸ú´ü¸Â¤¬ÀÚ¤ì¤Æ¤¤¤ë¤Î¤Ç̵¸ú
¡¦ROOT¢ªBBB¤ÎCA¾ÚÌÀ½ñ¤Ï´ðËÜÀ©Ìó¤ËcA=TRUE¤¬Ìµ¤¤¤¿¤á̵¸ú

Sun¤ÎCertPathBuilder¤Ç¥Ñ¥¹¹½ÃÛ¤·¤¿¾ì¹ç¤Î¡¢¥Ñ¥¹¹½ÃÛ¤Çé¤Ã¤Æ¤ß¤¿½ç½ø¤ò¿ÞÀ⤷¤¿¤Î¤¬°Ê²¼¤Ç¤¹¡£

cpb02



Sun¼ÂÁõ¤Ç¤Ï¥¨¥ó¥É¥¨¥ó¥Æ¥£¥Æ¥£¾ÚÌÀ½ñ¤«¤é»Ï¤á¤Æ¥È¥é¥¹¥È¥¢¥ó¥«¤Ç¤¢¤ë¥ë¡¼¥È¾ÚÌÀ½ñ¤Þ¤Ç¿¼¤µÍ¥Àèõº÷¤Ç¥Ñ¥¹¹½ÃÛ¤ò»î¤ß¤Þ¤¹¡£¿¼¤µÍ¥Àè¤È¤Ï¡¢¤Ö¤Ã¤Á¤ã¤±¤Á¤ã¤¦¤È¡Ö¹Ô¤±¤ë½ê¤Þ¤Ç¹Ô¤¯¡×¡¢
Ƨ¤ß½Ð¤»¤Ð¤½¤Î°ì­¤¬Æ»¤È¤Ê¤ê¡¢¤½¤Î°ì­¤¬Æ»¤È¤Ê¤ë¡£Ì¤鷺¹Ô¤±¤è¡£¹Ô¤±¤Ð¤ï¤«¤ë¤µ¡£¤¢¤ê¤¬¤È¤¦¡ª
Ū¤Ê¥¢¥ó¥È¥Ë¥ªÃöÌÚ¤Î̾¸À¤ÎÍͤʥ¢¥ë¥´¥ê¥º¥à¤Ç¤¹¡£

(1) ¥¨¥ó¥É¥¨¥ó¥Æ¥£¥Æ¥£¾ÚÌÀ½ñHHH¢«GGG¤«¤é¥Ñ¥¹¹½ÃÛ³«»Ï
(2) CA¾ÚÌÀ½ñ GGG¢«EEE¡¢EEE¢«BBB ¤òé¤ë¡£
¡¡¡¡¡¡¤½¤ÎºÝ¤ËÅÔÅÙ¡¢¸Ä¡¹¤ÎÄɲ䵤ì¤ë¾ÚÌÀ½ñ¤ËÂФ·¤Æ½ð̾ÃÍ¡¢
¡¡¡¡¡¡¼±ÊÌ̾Á°¤Î°ìÃס¢¸°ÍÑÅÓ¡¢³Æ¼ïÀ©Ìó¤Î½èÍý¼º¸ú¸¡¾Ú¤Ê¤É¤ò¹Ô¤¦¡£
(3) BBB¢«ROOT¾ÚÌÀ½ñ¤Î´ðËÜÀ©Ìó³ÈÄ¥¤ËcA=TRUE¤¬Ìµ¤¤¤Î¤ÇGGG¤ËÌá¤ë
(4) CA¾ÚÌÀ½ñ GGG¢«DDD¡¢DDD¢«AAA ¤òé¤ë¡£
(5) BBB¢«ROOT¾ÚÌÀ½ñ¤Ï´ü¸ÂÀÚ¤ì¤Ê¤Î¤ÇGGG¤ËÌá¤ë¡£
(6) CA¾ÚÌÀ½ñ GGG¢«FFF¡¢FFF¢«CCC¡¢CCC¢«ROOT ¤òé¤ë¡£
(7) ¥È¥é¥¹¥È¥¢¥ó¥«¤Þ¤Çé¤ì¤¿¤Î¤Ç(6)¤¬Í­¸ú¤Ê¥Ñ¥¹¤È¤Ê¤ê
¡¡¡¡¡¡¥Ñ¥¹¹½ÃÛ¡¦¸¡¾Ú¤Ï´°Î»¡£

ÉýÍ¥Àè¤Î¾ì¹ç¡¢ÅÓÃæÁªÂò»è¤òÁ´¤ÆÊú¤¨¤¿¤Þ¤Þõº÷¤¹¤ë¤Î¤Ç¿¤¯¥á¥â¥ê¤ò¾ÃÈñ¤¹¤ë¤È¸À¤ï¤ì¤Æ¤¤¤Þ¤¹¡£¤½¤¦¤·¤¿°ÕÌ£¤Ç¤Ï¿¼¤µÍ¥Àè¤Ï¤Þ¤¡¡¢ÂÅÅö¤«¤Ê¤È¡¢¡¢¡¢

Sun PKIX CertPathBuilder¼ÂÁõ¤ÎÎã³°¤Î¥¤¥±¥º



¤¿¤À¡¢¼¡¤Î¤è¤¦¤Ê¥±¡¼¥¹¤Î¾ì¹ç¡¢¥Ñ¥¹¹½ÃÛ¤ò»î¤ß¤Æ·ë¶É¤ÏÍ­¸ú¤Ê¥Ñ¥¹¤¬¸«¤Ä¤«¤é¤Ê¤¤¤¿¤á¡Öunable to find valid certification path to requested target(Í׵ᤵ¤ì¤¿ÂоÝ(¾ÚÌÀ½ñ)¤ËÂФ¹¤ëÍ­¸ú¤Êǧ¾Ú¥Ñ¥¹¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó)¡×¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

cpb03



¤³¤ÎºÝ¤ÎCertPathBuilderExceptionÎã³°¤ÎgetCause()¤Ë¤Ï²¿¤âÆþ¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢²¿¸Î¥Ñ¥¹¹½ÃÛ¡¦¸¡¾Ú¤Ë¼ºÇÔ¤·¤¿¤Î¤«¤Ï(ÉáÄ̤Ï)Ææ¤Î¤Þ¤Þ¤Ç¤¹¡£¤»¤á¤Æ¥Ñ¥¹¹½ÃÛ¼ºÇԤ赤òºÇ¸å¤Ëµ¯¤³¤·¤¿Îã³°¤¬getCause()¤ËÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð·ë¹½Íýͳ¤¬¤ï¤«¤ë¤â¤ó¤Ê¤ó¤Ç¤¹¤±¤É¡¢»Äǰ¤Ê¤¬¤é¤½¤¦¤Ê¤Ã¤Æ¤Þ¤»¤ó¡£¿¼¤µÍ¥Àèõº÷¤Ê¤Î¤Ç¡ÖÁ°¤ÎÎã³°¤Ê¤ó¤«¤¤¤Á¤¤¤ÁÊݸ¤·¤Æ¤ª¤¯¤«¤¡¡ª¡ª¡×¤È¤¤¤¦¼ÂÁõ¤Ê¤ó¤Ç¤·¤ç¤¦¡£

ºÇ¸å¤ËȯÀ¸¤·¤¿Îã³°¤ògetCause()¤ËÀßÄꤹ¤ë¤À¤±¤À¤È²¼¤Î¤è¤¦¤Ê¥±¡¼¥¹¤Ç¤ÏËܼÁŪ¤ÊÌäÂ꤬¤ï¤«¤é¤Ê¤¤¥±¡¼¥¹¤â¤¢¤ë¤ó¤Ç¤¹¤¬¡¢¤Þ¤¡¡¢¤½¤ì¤Ï¸½¾õ¤Î²¿¤â̵¤¤¤è¤ê¤Ï¤Þ¤·¤ß¤¿¤¤¤Ê´¶¤¸¤Ç»Ä¤·¤Æ¤ª¤¤¤ÆÍߤ·¤¤¤Ê¤¡¡¢¡¢¡¢¡¢

cpb04



¥Ñ¥¹¹½ÃÛ¤Çé¤Ã¤¿½ç½ø¤¬²¿¸Î¤ï¤«¤ë¤«¡©



¤Ç¤Ï¡¢²¿¸Î¾å¤ÎÊý¤Î¿Þ¤ÇSun PKIX CertPathBuilder¤¬Ã©¤Ã¤¿¥Ñ¥¹¹½ÃÛ½ç½ø¤¬¤ï¤«¤Ã¤¿¤«¤È¤¤¤¦¤È¥í¥°¤ò¸«¤¿¤«¤é¤Ê¤ó¤Ç¤¹¡£CertPathBuilder¤äCertPathValidator¤Ç¤Ï¡¢°Ê²¼¤Î¤è¤¦¤Ë "-Djava.security.debug=certpath"¤Î¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤ì¤Ð¥Ç¥Ð¥Ã¥°¥í¥°¤¬É¸½à½ÐÎϤËɽ¼¨¤µ¤ì¤Þ¤¹¡£
% java -Djava.security.debug=certpath [CertPath¤ò»È¤Ã¤¿Java¥×¥í¥°¥é¥à]


¤¿¤À¡¢¤³¤³¤«¤é½Ð¤Æ¤¯¤ë¥í¥°¤Ïº£¤Þ¤Ç¸«¤Æ¤­¤¿¥í¥°¤ÎÃæ¤Ç¤Ï¡ÖÃæ¤Î²¼¡×¤°¤é¤¤¤Î¥À¥á¤µ²Ã¸º¤Ç¡¢Â¿Ê¬´Ñ¤Æ¤â¤¦¤ó¤¶¤ê¤¹¤ë¤À¤±¤À¤È»×¤¤¤Þ¤¹¡£

¤Ç¡¢¥Ñ¥¹¹½ÃÛ¤Çé¤Ã¤¿½ç¤ò´Ñ¤ë¤Ë¤Ï°Ê²¼¤è¤¦¤ÊdepthFirstSearchForward¤ÎÉôʬ¤ò¸«¤ì¤Ð¤è¤¤¤Ç¤¹¡£


certpath: SunCertPathBuilder.depthFirstSearchForward(CN=HHH, C=JP, State [
issuerDN of last cert: null
traversedCACerts: 0
init: true
keyParamsNeeded: false
subjectNamesTraversed:
[]]
)
¡¦¡¦¡¦ÃæÎ¬¡¦¡¦¡¦
certpath: SunCertPathBuilder.depthFirstSearchForward(CN=ROOT, C=JP, State [
issuerDN of last cert: CN=ROOT, C=JP
traversedCACerts: 3
init: false
keyParamsNeeded: false
subjectNamesTraversed:
[CN=GGG, C=JP, CN=HHH, C=JP, CN=CCC, C=JP, CN=FFF, C=JP]]
)


¤³¤ì¤ò´Ñ¤Æ¤¤¤¯¤ÈHHH¢ªGGG¢ªEEE¢ªBBB¡ß¸åÌá¤ê¢ªDDD¢ªAAA¡ß¸åÌá¤ê¢ªFFF¢ªCCC¢ªROOT¡û¤ÈÆóÅ٤μºÇԤˤâ¤á¤²¤º¤Ëé¤Ã¤¿¤ó¤À¤¡¤Ê¤¡¡¢¡¢¡¢´èÄ¥¤Ã¤¿¤Ê¤¡¡¢¡¢¡¢¡¢¤è¤·¤è¤·¡¢¡¢¡¢¤È¤¤¤¦É÷¤Ë´¶³´¿¼¤¤¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£

¥í¥°¤ò´Ñ¤Æ¤âAAA¢«ROOT¤äBBB¢«ROOT¤Î¾ÚÌÀ½ñ¤Ç´ðËÜÀ©¸Â¤Ë°ãÈ¿¤·¤Æ¤¤¤ë¤«¤é¤È¤«¡¢´ü¸ÂÀÚ¤ì¤À¤«¤é¤È¤«¡¢¤½¤¦¤·¤¿Íýͳ¤Ï¥í¥°¤Ë¤ÏÁ´¤¯½ñ¤«¤ì¤Æ¤¤¤Þ¤»¤ó¡£

3Ëܥѥ¹¤¬¤¢¤ë¤¦¤Á²¿¸Î¤½¤Î½ç½ø¤ÇÁª¤ó¤À¤«¡©



HHH¢ªGGG¤Èé¤Ã¤Æ¡¢¼¡¤ËEEE¡¢DDD¡¢FFF¤Î¤É¤ì¤òÁª¤ó¤Ç¤âÎɤ¤¤è¤¦¤Êµ¤¤¬¤·¤Þ¤¹¤¬¡¢É¬¤ºEEE¡¢DDD¡¢FFF¤Î½ç½ø¤Ë¤Ê¤ê¤Þ¤·¤¿¡£

¾ÚÌÀ½ñ¤òõ¤¹ºÝ¤ÎÆþ¤ìʪ¤È¤·¤ÆArrayList¤ò¥Ù¡¼¥¹¤Ë¤·¤¿CollectionCertStore¤ò»È¤Ã¤Æ¤¤¤¿¤ó¤Ç¤¹¤¬¡¢¤½¤³¤ËÃæ´Ö¾ÚÌÀ½ñ¤ò²Ã¤¨¤ë½ç½ø¤Ë°Í¸¤·¤Æ¤¤¤ë¤Î¤«¤â¤·¤ì¤Þ¤»¤ó¡£

·ë¶É CertPathBuilder ¤¬½Ð¤¹Îã³°¤ÏÁ´¤¯Ìò¤ËΩ¤¿¤Ê¤¤



¤È¤¤¤¦¤ï¤±¤Ç¡¢Sun PKIX CertPathBuilder¤ÎÅǤ¯Îã³°¤ä¥í¥°¤Ï¤È¤¤¤¦¤Î¤Ï¡¢¤É¤Î¤è¤¦¤ÊÍýͳ¤Ç¥Ñ¥¹¹½ÃÛ¡¦¸¡¾Ú¤Î¼ºÇÔ¤·¤¿¤Î¤«¤ï¤«¤é¤Ê¤¤¤¿¤á»È¤¤Êª¤Ë¤Ê¤é¤º¡¢¡¢¤¿¤À¡Öunable to find valid certification path to requested target¡×¤ÎÎã³°¥á¥Ã¥»¡¼¥¸¤¬¶õ¤·¤¯¤âÆÀ¤é¤ì¤ë¤À¤±¤È¤¤¤¦¤³¤È¤¬¤ª¤ï¤«¤ê失¤¿¤«¤È»×¤¤¤Þ¤¹¡£

¤Ç¤Ï¥Ñ¥¹¹½ÃÛ¡¦¸¡¾Ú¤¬¥À¥áÍýͳ¤òÃΤꤿ¤­¤ã¤É¤¦¤¹¤ë¤«¡©



SSL¥µ¡¼¥Ð¡¼Ç§¾Ú¤Ç¤Ï¿¤¯¤Î¾ì¹çSSL¥µ¡¼¥Ð¡¼¾ÚÌÀ½ñ¡¦É¬ÍפÊÃæ´ÖCA¾ÚÌÀ½ñ¡¦¥ë¡¼¥È¾ÚÌÀ½ñ¤¬¥Á¥§¡¼¥ó¤Î·Á¤Ç¤´¤Ã¤½¤êÁ÷¤é¤ì¤Æ¤­¤Þ¤¹¤·¡¢S/MIME½ð̾¥á¡¼¥ë¤äCAdES/XAdESĹ´ü½ð̾¤Î¾ì¹ç¤Ê¤ó¤«¤â¸¡¾Ú¤¹¤Ù¤­¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤¬³µ¤Í¤ï¤«¤Ã¤Æ¤¤¤ë»þ¤¬¤¢¤ê¤Þ¤¹¡£

¼«Ê¬¤Ç¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤ò
¡¦¼çÂμԡ¦È¯¹Ô¼Ô¤Î̾Á°¤Î°ìÃפÇ
¡¦½ð̾ÃͤΰìÃפÇ
ºî¤ë¤³¤È¤â¤Ç¤­¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£

¤½¤ó¤Ê¤È¤­¤Ï¡¢¼«Ê¬¤Ç´Ê°×¥Ñ¥¹¹½ÃۤǾÚÌÀ½ñ¥Á¥§¡¼¥óºî¤Ã¤ÆCertPath¥ª¥Ö¥¸¥§¥¯¥È¤òÀ¸À®¤·¡¢CertPathValidator¤Ç(¶¹µÁ¤Î)¥Ñ¥¹¸¡¾Ú¤À¤±¤ò¹Ô¤¦¤Î¤¬¤¤¤¤¤è¤¦¤Ë»×¤¤¤Þ¤¹¡£

Î㤨¤Ð¡¢º£²ó¤Î¥±¡¼¥¹¤Ç¸À¤¨¤Ð

¼«Á°¤Ç¥Ñ¥¹¹½ÃÛ¤À¤±¤·¤Æ¡¢¥Ñ¥¹¸¡¾Ú¤ÏCertPathValidator¤ò»È¤¨¤Ð¡¢

HHH¢ªGGG¢ªDDD¢ªAAA¢ªROOT¤Î¥Ñ¥¹¤Î´ü¸ÂÀڤ쥨¥é¡¼¤Ê¤é
¡ß¼ºÇÔ¡§ timestamp check failed
¡ß¼ºÇÔÍýͳ¾ÜºÙ¡§ NotAfter: Sun Jan 02 09:00:00 JST 2000


HHH¢ªGGG¢ªEEE¢ªBBB¢ªROOT¤Î¥Ñ¥¹¤Î´ðËÜÀ©Ìó¤ÎcA=TRUEÉÔ­¥¨¥é¡¼¤Ê¤é
¡ß¼ºÇÔ¡§ basic constraints check failed: this is not a CA certificate


¤È¡¢Îã³°CertPathValidatorException¤ÎgetMessage()¤ÇÍýͳ¤¬¤ï¤«¤Ã¤Æ¥¹¥Ã¥­¥ê¤·¤Þ¤¹¡£

º£²ó¤Ï¤³¤ì¤Þ¤¿¥Þ¥Ë¥¢¥Ã¥¯¤Ê¥Í¥¿¤Ç¤´¤á¤ó¤Ê¤µ¤¤¤Í¡£

¼«Ê¬¤Ç¤â¥Ñ¥¹¹½ÃÛ¤·¤Æ¤ß¤¿¤¯¤Ê¤Ã¤¿¤éº£²ó¤Î¾ÚÌÀ½ñ¥»¥Ã¥È¤Ï¤³¤Á¤é¤«¤é¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤Þ¤¹¡£

¡ã»²¹Í¥ê¥ó¥¯¡ä
¡¦Sun J2SE 6 - Java PKI API¥×¥í¥°¥é¥Þ¡¼¥º¥¬¥¤¥É
¡¦Sun J2SE 6 - Java°Å¹æ²½¥¢¡¼¥­¥Æ¥¯¥Á¥ã¡¼(JCA) ¥ê¥Õ¥¡¥ì¥ó¥¹¥¬¥¤¥É
¡¦Sun J2SE 6 - java.security.cert¥Ñ¥Ã¥±¡¼¥¸
¡¦IPA: ÅÅ»ÒÀ¯ÉܾðÊ󥻥­¥å¥ê¥Æ¥£Áê¸ß±¿Íѻٱ絻½Ñ¤Î³«È¯
¡¡¡¦GPKI¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¼ÂÁõ¥¬¥¤¥ÉÊó¹ð½ñ (PDF 831KB)
¡¡¡¡¡¡5¾Ï¡§Java¤Ë¤è¤ë¾ÚÌÀ½ñ¥Ñ¥¹¹½ÃÛ¡¦¥Ñ¥¹¸¡¾Ú¤Î¼ÂÁõ¤ÎÀâÌÀ

ºÇ¿·µ­»ö
Categories
Archives
Twitter
µ­»öGoogle¸¡º÷

ËÜ¥Ö¥í¥°Æâ¤òGoogle¸¡º÷
Yahoo!¥¢¥¯¥»¥¹²òÀÏ
Travel Advisor
µ­»ö¸¡º÷
QR¥³¡¼¥É
QR¥³¡¼¥É
  • ¥é¥¤¥Ö¥É¥¢¥Ö¥í¥°