Á°²ó¤Ï¡¢BlackHat¤Ç¾Ò²ð¤µ¤ì¤¿SSL¥µ¡¼¥Ð¡¼¾ÚÌÀ½ñ¤ÎÂоݥۥ¹¥È̾¤ò³ÊǼ¤¹¤ëCN(common name)°À­¤Î½èÍý¤ÎÉÔ¶ñ¹ç¤òÆÍ¤¤¤¿ÀȼåÀ­¤Ë¤Ä¤¤¤Æ¾Ò²ð¤·¤Þ¤·¤¿¡£

º£Æü¤Ï¡¢¼ÂºÝ¤Ë¥Æ¥¹¥È¥µ¡¼¥Ð¡¼¤òΩ¤Á¾å¤²¤Æ¥Ö¥é¥¦¥¶¤ÇÀܳ¤¹¤ë¤È¤É¤¦¤Ê¤ë¤Î¤«»î¤·¤Æ¤ß¤Þ¤¹¡£

Challenge PKI Test Suite(²þ)¤Îµ¡Ç½ÄɲÃ


¼ê»ý¤Á¤Î¾õÂÖ¤ÎTest Suite¤Ç¤Ï¡¢¾ÚÌÀ½ñ¼±ÊÌ̾¤Î¥ª¥Ö¥¸¥§¥¯¥È¼±Ê̻ҤˤĤ¤¤Æ
(1) ¥ª¥Ö¥¸¥§¥¯¥È¼±Ê̻ҤΥµ¥Ö¼±Ê̻ҤÇÂ礭¤ÊÀ°¿ô¤ò»ØÄꤹ¤ë¤È·å¤¬°î¤ì¤ë(µ¡ÃΤΥХ°)
(2) X.690¤Ë°ãÈ¿¤·¤Æ0x80¤Ç¥Ñ¥Ç¥£¥ó¥°¤·¤Æ¥¨¥ó¥³¡¼¥É¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£
¤È¤¤¤Ã¤¿¾õÂ֤Ǥ·¤¿¡£
RDN¤Î°À­¥¿¥¤¥×¤òɽ¤¹ÊýË¡¤È¤·¤Æ°Ê²¼¤Î¥µ¥Ý¡¼¥È¤òÄɲ䷤ơ¢¥Æ¥¹¥È¥³¡¼¥É¤òÄɲä·¤Þ¤·¤¿¡£
(1) CN, OU, O, C, serialNumber¤Ê¤É°À­¥¿¥¤¥×¤ò̾Á°¤Ç»ØÄê¤Ç¤­¤ë¡£(¸½¹Ô)
(2) 1.2.3.4 ¤Î¤è¤¦¤Ë½½¿Ê¥«¥ó¥Þ¶èÀÚ¤ê¤ÇOID¤ò»ØÄê¤Ç¤­¤ë¡£(¸½¹Ô¡¢·å°î¤ì¤Î¥Ð¥°)
(3) #550403 ¤Î¤è¤¦¤Ë16¿Ê¿ô¤Ç°À­¥¿¥¤¥×¤ò»ØÄê¤Ç¤­¤ë¡£(µ¡Ç½ÄɲÃ)

¾ÚÌÀ½ñ¤ÎÀ¸À®


SSL¥µ¡¼¥Ð¡¼¤Î¥Û¥¹¥È̾¤Ë°Ê²¼¤Î2¤Ä¤ò²¾Äꤷ¤ÆÈ¯¹Ô¤·¤Þ¤¹¡£
CN=www.evil3.jp: °­°Õ¤Î¤¢¤ë¹¶·â¼Ô¤¬ËÜÅö¤Ë½ê»ý¤·¤Æ¤¤¤ë¥É¥á¥¤¥ó¤Î¥Û¥¹¥È
CN'=www.good-bank.com: º¾µ½ÂоݤΥۥ¹¥È


ËÜÍè¤Ê¤é¤ÐCN(2.5.4.3=0x550403)¤Ç¤¢¤ë¤è¤¦¤ÊOID¤ò¡¢ñÙ¤¹¤¿¤á¤Î¥Ë¥»¤ÎCN(CN')¤Îºî¤êÊý¤È¤·¤Æ¤Ï°Ê²¼¤Î2¤Ä¤Ç¹Ô¤¤¤Þ¤¹¡£

(1) ËöÈø"3"¤òX.690¤Ë°ãÈ¿¤·¤Æ0x80(Ê£¿ô²Ä)¤Ç¥Ñ¥Ç¥£¥ó¥°¤¹¤ë(0x05048003)
(2) ËöÈø"3"¤ò64bitÀ°¿ô¤Ç·å¤¢¤Õ¤ì¤·¤¿¸å"3"¤È¤Ê¤ëÃͤȤ¹¤ë¡£

ÊýË¡(2)¤Ë¤Ä¤¤¤Æ¤Ï¡¢·å°î¤ì¤¹¤ë¿ô¤ò"0x010000000000000003"(9¥Ð¥¤¥È)¤È¤·¤Æ¡¢¤³¤ì¤ò¥Ó¥Ã¥Èɽ¸½¤Ë¤·ËöÈø¤è¤ê7¥Ó¥Ã¥È¤Çʬ³ä¤·¤Æ¤³¤ì¤ò¥Ð¥¤¥È¤È¤·¡¢ËöÈø¤ò½ü¤­8¥Ó¥Ã¥ÈÌܤò1¤È¤·¡¢"2.5.4."¤ÎÉôʬ¤òÏ¢·ë¤¹¤ë¤È¡¢0x82808080808080808003¤È¤Ê¤ê¤Þ¤¹¡£

OpenSSL 0.9.8k¤Ç¤Ï¤É¤¦¸«¤¨¤ë¡©


OpenSSL¤Î¥³¥Þ¥ó¥É¤Ç¤Ï¤É¤Î¤è¤¦¤Ë¾ÚÌÀ½ñ¤Î¼±ÊÌ̾¤¬É½¼¨¤µ¤ì¤ë¤Î¤«³Îǧ¤·¤Æ¤ß¤¿¤¤¤È»×¤¤¤Þ¤¹¡£

¢£¥³¥Þ¥ó¥É
% openssl x509 -in ¾ÚÌÀ½ñ -noout -text
¢£OIDËöÈø"3"¤¬0x8003¤Î¾ì¹ç(X.690°ãÈ¿¤Î¥¼¥í¥Ñ¥Ç¥£¥ó¥°)
Subject: C=JP, O=Evil-CN-OID, CN=www.evil3.jp/2.5.4.3=www.good-bank.com
¢£OIDËöÈø"3"¤¬0x82808080808080808003(64bitÀ°¿ô·å°î¤ì)
Subject: C=JP, O=Evil-CN-OID, CN=www.evil3.jp/2.5.4.18446744073709551619=www.good-bank.com


CN¥â¥É¥­¤Ï¤Á¤ã¤ó¤È¶èÊ̤·¤ÆÉ½¼¨¤µ¤ì¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£CN¤Ï2.5.4.3¤Ê¤ó¤Ç¤¹¤¬¡¢0x80¥Ñ¥Ç¥£¥ó¥°¤µ¤ì¤¿¤â¤Î¤È¤Ï¤­¤Á¤ó¤È¶èÊ̤·¤Æ¤¤¤Þ¤¹¡£(18446744073709551619¤Ï0x010000000000000003¤Î10¿Ê¿ôɽ¸½¤Ç¤¹¡£)

dumpasn1¤Ç¤Îɽ¼¨


¢£ËÜʪ¤ÎCN(common name)¤Îɽ¼¨
SEQUENCE {
#06 03 55 04 03
OBJECT IDENTIFIER commonName (2 5 4 3)
#13 0C 77 77 77 2E 65 76 69 6C 33 2E 6A 70
PrintableString 'www.evil3.jp'
}

¢£¥Ë¥»¤ÎCN­¡(X.690°ãÈ¿¤Î0x80¥Ñ¥Ç¥£¥ó¥°)
SEQUENCE {
#06 04 55 04 80 03
OBJECT IDENTIFIER '2 5 4 3'
#13 11 77 77 77 2E 67 6F 6F 64 2D 62 61 6E 6B 2E 63 6F 6D
PrintableString 'www.good-bank.com'
}

¢£¥Ë¥»¤ÎCN­¢(64¥Ó¥Ã¥ÈÀ°¿ô·å°î¤ì)
SEQUENCE {
#06 0C 55 04 82 80 80 80 80 80 80 80 80 03
OBJECT IDENTIFIER '2 5 4 3'
#13 11 77 77 77 2E 67 6F 6F 64 2D 62 61 6E 6B 2E 63 6F 6D
PrintableString 'www.good-bank.com'
}


­¡¤â­¢¤âɽ¼¨¾å¤ÏËÜÅö¤ÎCN¤È¶èÊ̤Ǥ­¤Æ¤¤¤Þ¤¹¡£¤·¤«¤·¤Ê¤¬¤é­¢¤Ç¤Ï¡¢OBJECT IDENTIFIER '2 5 4 3'¤È¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤Æ¤ª¤ê¡¢À°¿ô¤Î·å°î¤ì¤¬µ¯¤­¤Æ¤¤¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤¹¡£

¤Þ¤º¤ÏÀµ¼°¤Ê(°­¤¤¿Í¤Î)URL¤ËÀܳ


cnoid01

¤Á¤ã¤ó¤ÈÀµ¤·¤¯SSLÀܳ¤Ç¤­¤Æ¤Þ¤¹¤ó¤Ç¡¢¤³¤ì¤ÏÌäÂê̵¤·¡£

FireFox 3.5.2¤Ç¥Ë¥»CN¤Î¥Û¥¹¥È¤ËÀܳ


¤½¤ì¤Ç¤Ï¡¢¼¡¤ËX.690¤Ë°ãÈ¿¤·¤Æ0x80¤Ç¥Ñ¥Ç¥£¥ó¥°¤·¤Æ¤¢¤ë¥Ë¥»CN¤ÎURL "https://www.good-bank.com/" ¤ËÀܳ¤·¤Æ¤ß¤Þ¤¹¡£
cnoid02-ff35-err-yellow

¤ª¤ª¡¢¤Á¤ã¤ó¤È·Ù¹ð½Ð¤Þ¤¹¤Í¡£¥¨¥é¥¤¡£
cnoid02-ff35-dlg

¤ª¤ª¡¢¤Á¤ã¤ó¤È¥À¥¤¥¢¥í¥°¤Þ¤Ç¡¢¡¢¡¢¥á¥Ã¥»¡¼¥¸¤Ë¤â±³¤¬Ìµ¤¯¤Æ¹¥´¶¤¬»ý¤Æ¤Þ¤¹¡£¤Á¤Ê¤ß¤Ë¾ÚÌÀ½ñ¤Ï¤³¤ó¤Ê´¶¤¸¤Çɽ¼¨¤µ¤ì¤Þ¤¹¡£
cnoid03-ff35-crtdlg

cnoid04-ff35-crtdlg

¥Ë¥»CN¤Ë¤Ä¤¤¤Æ¡¢Ê¸»ú²½¤±¤Î¤è¤¦¤Ëɽ¼¨¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤Þ¤¡¡¢²ø¤·¤¤¤È¤ï¤«¤ê¤Þ¤¹¡£

64bitÀ°¿ô·å¤¢¤Õ¤ì¤¹¤ë¾ì¹ç¤Ç¤â¡¢É½¼¨¤ÏƱ¤¸¤À¤Ã¤¿¤Î¤Ç¡¢¥­¥ã¥×¥Á¥ã¤Ï³ä°¦¤·¤Þ¤¹¡£

Internet Explorer 8¤Ç¥Ë¥»CN¤Î¥Û¥¹¥È¤ËÀܳ


Àè½µ¤¢¤¿¤ê¤ËWindows Update¤·¤¿¡¢¤Û¤ÜºÇ¿·¤À¤È»×¤¦IE8¤Ç¥Ë¥»CN¤ÎURL¤ËÀܳ¤·¤Æ¤ß¤Þ¤·¤¿¡£
cnoid06-ie8-goodbank

°ìÀÚ·Ù¹ð¤Ê¤¯¥Ë¥»CN¤Î¥µ¥¤¥È¤ËÀܳ¤Ç¤­¤Æ¤·¤Þ¤¤¤Þ¤¹¤Í¡£
cnoid07

¾ÚÌÀ½ñ¥À¥¤¥¢¥í¥°¤Ç´Ñ¤Æ¤ß¤ë¤ÈX.690°ãÈ¿¤Î0x80¥Ñ¥Ç¥£¥ó¥°¤Ç¤âÀ°¿ô·å°î¤ì¤Ç¤âɽ¼¨¾å¤ÏCN(common name)¤Ç¤¢¤ë¤È¤·¤ÆÉ½¼¨¤µ¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¡£

Google Chrome 2¤Ç¥Ë¥»CN¥µ¥¤¥È¤ËÀܳ


º£Æü¤Î»þÅÀ¤ÇºÇ¿·¤À¤È»×¤¦Google Chrome 2.0.172.43¤ÇƱÍͤËÀܳ¤·¤Æ¤ß¤Þ¤·¤¿¡£
cnoid09

¤³¤Á¤é¤â·Ù¹ð¤Ê¤¯Àܳ¤Ç¤­¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
cnoid10

¾ÚÌÀ½ñ¤âwww.good-bank.comÍѤÇÌäÂê¤Ê¤¤¤³¤È¤Ë¤Ê¤Ã¤Á¤ã¤Ã¤Æ¤Þ¤¹¤Í¡£

Opera 9.5¤ÇÀܳ


¤³¤Î¾¤ËOpera for Windows 9.50 build10063¤Ç¤â»î¤·¤Æ¤ß¤¿¤ó¤Ç¤¹¤¬¡¢Opera¼«ÂΤ¬DNS¤Ç°ú¤±¤Ê¤¤¥Û¥¹¥È¤Ïɽ¼¨¤¬¤Ç¤­¤Ê¤¤¤è¤¦¤Êµ¤¤¬¤¹¤ë¤ó¤Ç¤¹(¥í¡¼¥«¥ëPC¤Îhttp://192.168.1.133/Åù¤Ç¤âÀܳÉÔǽ)¡£¤½¤Î¤¿¤á¥Æ¥¹¥È¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£
cnoid-opera-01

¤È¡¢¡¢¡¢»×¤Ã¤¿¤éñ¤Ë;·×¤Ê¥×¥í¥­¥·¤¬ÀßÄꤵ¤ì¤Æ¤¤¤¿¤À¤±¤Ç¤·¤¿¡£¤¹¤ß¤Þ¤»¤ó¡£µ¿¤Ã¤Æ¥´¥á¥ó¥è¡£µ¤¤ò¼è¤êľ¤·¤ÆÀܳ¤·¤Æ¤ß¤Þ¤¹¡£¤Þ¤º¤Ï¡¢(²ø¤·¤¤¤±¤É)Àµ¤·¤¤HTTPSÀܳ¡£
cnoid-opera-02

¤Þ¤¡¡¢°ÂÁ´¤Ç¤¹(¾Ð)¡£
cnoid-opera-03


¼¡¤Ë¥Ë¥»CN¤Î¥µ¥¤¥È¤ËÀܳ¤·¤Æ¤ß¤Þ¤¹¡£
cnoid-opera-04

cnoid-opera-05

¤Á¤ã¤ó¤È¿ÆÀڤʷٹ𤬤Ǥޤ¹¡£¤â¤¦¤Á¤ç¤Ã¤È¿§¤¬ÊѤï¤Ã¤¿¤ê¥¤¥ó¥Ñ¥¯¥È¤¬¤¢¤ë·Ù¹ð¤À¤È¤¤¤¤¤ó¤Ç¤¹¤±¤É¤Í¡£

¤³¤ì¤â¡¢¤É¤Ã¤Á¤Î¥Ë¥»CN¤Ç¤â·ë²Ì¤ÏƱ¤¸¤Ç¤·¤¿¡£

Opera¤ÎºÇ¿·ÈǤϸ½»þÅÀ¤Ç9.64¤À¤½¤¦¤Ç¡¢¤Á¤ç¤Ã¤È¸Å¤¤¤ä¤Ä¤Ç¤¹¤¬¡¢¥Ë¥»CN OIDÌäÂê¤Ë¤Ä¤¤¤Æ¤Ï¤Á¤ã¤ó¤ÈÂбþ¤µ¤ì¤Æ¤¤¤ë¤Ã¤Æ¤³¤È¤Ç¡¢¡¢¡¢

ruby + httpclient2


ruby¤Èhttpclient2¤Î¥â¥¸¥å¡¼¥ë¤Ç¤â»î¤·¤Æ¤ß¤Þ¤·¤¿¡£OpenSSL¥Ù¡¼¥¹¤Ç¤¹¤¬¡¢¥Ë¥»CN¥µ¥¤¥È¤ËÀܳ¤¹¤ë¤È¤Á¤ã¤ó¤È¥¨¥é¡¼¤Ë¤Ê¤Ã¤Æ¤¯¤ì¤Þ¤¹¡£
/usr/lib/ruby/1.8/openssl/ssl.rb:123:in `post_connection_check': hostname was not match with the server certificate (OpenSSL::SSL::SSLError)


°Ê¾å¡¢¤³¤ó¤Ê´¶¤¸¤Ç¼Â¸³Êó¹ð¤Ç¤·¤¿¡£

¤Ç¤Ï¤Ç¤Ï

¢¨Ãí°Õ¡§¤³¤Îµ­»ö¤Î¥¦¥£¥ó¥É¥¦¥­¥ã¥×¥Á¥ã²èÁü¤Ï¡¢Í¾·×¤ÊÉôʬ¡¢¶õÇò¤Ê¤É¤ò½ü¤¯¤¿¤á¤Ë¥È¥ê¥ß¥ó¥°¤·¤¿¤ê¡¢¶õÇò¤Îºï½üÅù¤Î²Ã¹©¤ò¤·¤Æ¤¤¤Þ¤¹¡£

´ØÏ¢µ­»ö