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

´ðËܤ϶ô¤Ã¤Æ¤ë¤«°û¤ó¤Ç¤ë¤«¤Ç¤¹¤¬¡¢¤è¤¯¼ñÌ£¤Ç¥«¥é¥ª¥±¡¦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¤Î°·¤¤¤Ë¤Ä¤¤¤ÆÄ´ººÉÔ­¤È¤¤¤¦¤«¸í²ò¤¬¤¢¤Ã¤¿¤Î¤Ç½¤Àµ¤·¤Þ¤·¤¿¡£

RFC 5208 PKCS#8 v1.2 ¸ø³«3

RFC 5208 PKCS#8 v1.2¸ø³«


Miyakawa¤µ¤ó¤Î¥×¥í¥¸¥§¥¯¥È´ÉÍýÆü»ï¤òÇÒ¸«¤·¤Æ¤¤¤¿¤é¡¢ÈëÌ©¸°¤Î³ÊǼ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ç¤¢¤ë PKCS#8¤ÎRFC¤¬¹¹¿·¤µ¤ì¤Æ¤¤¤¿¤ÈÃΤê¤Þ¤·¤¿¡£
ºÇ¿·µ­»ö
Categories
Archives
Twitter
µ­»öGoogle¸¡º÷

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