- From: Sangwhan Moon <sangwhan@iki.fi>
- Date: Fri, 9 Aug 2013 21:07:09 +0900
- To: yslee <yslee@pentasecurity.com>
- Cc: Wonsuk Lee <wonsuk73@gmail.com>, HTML KIG <public-html-ig-ko@w3.org>
- Message-ID: <CAO4+quGtG+5vfJ5X3XHiSDK5OO3b+Q+Vv9p_uAgLG+BFzn0MyQ@mail.gmail.com>
2013/8/9 yslee <yslee@pentasecurity.com> > ¾È³çÇϼ¼¿ä. > Áö³ ¹ø Çà»ç¶§ óÀ½ ¸¸³ª¼ µÇÁöµµ ¾Ê´Â ÀÌ·± Àú·± Áú¹®µéÀ» Çß¾ú´Âµ¥.. Ȥ > ½Ã ±â¾ïÇÏ½Ç Áö ¸ð¸£°Ú½À´Ï´Ù. > À̹ø ±³À° ¶§ session I, II °¡ ÁøÇàµÇÁö ¾Ê¾Æ ¸Å¿ì ¾Æ½¬¿ü½À´Ï´Ù. > > Àú´Â º¸¾È °ü·Ã ¾÷ü¿¡¼ °³¹ßÀ» ÇÏ°í Àִµ¥¿ä. > À¥¿¡ ´ëÇÑ ÀÌÇØ°¡ ª¾Æ¼ Áú¹®ÀÌ ÀÌ»óÇÏ´õ¶óµµ »ì¦ ÀÌÇØÇØ ÁÖ½Ã±æ ºÎŹµå¸³´Ï´Ù. > > HTML 5¿¡ º¸¸é CryptoAPI °¡ Á¦°øµÇ´Âµ¥¿ä. > Á¦°¡ ±Ã±ÝÇÑ °ÍÀº ³¼ö ºÎºÐÀÔ´Ï´Ù. > ³¼ö´Â º¸Åë Block cipher¿¡¼ key¸¦ ¸¸µé°Å³ª, °ø°³Å° ƯÈ÷ RSA¿¡¼ short > message attackÀ» ¹æÁöÇϱâ À§ÇÑ de facto standardÀÎ RSA-OAEP(ÇöÀç´Â > RSAES)¿¡¼ »ç¿ëµÇ±â ¶§¹®¿¡ Çʼö¶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. > > ¾Æ½Ã°ÚÁö¸¸, ³¼ö´Â entropy È®º¸¸¦ À§ÇÏ¿© ³¼ö¸¦ »ý¼ºÇÏ´Â seed(block > cipherÀÇ ÇÑ Á¾·ùÀÎ SEED°¡ ¾Æ´Ï¶ó ³¼ö¸¦ »ý¼ºÇϱâ À§ÇÑ ¾¾¾Ñ °ªÀ» ¸»ÇÕ´Ï > ´Ù.)°¡ ¸Å¿ì Áß¿äÇÕ´Ï´Ù. > > ÇöÀç ¿ì¸®³ª¶ó¿¡¼ ÀÎÁ¤Çϴ ǥÁØÀº ISO/IEC 18033-2:2006ÀÔ´Ï´Ù.(±âÁ¸¿¡´Â > "FIPS PUB 186-2 Addendix 3¿¡ ¸í½ÃµÈ ³¼ö¹ß»ý±âÀÇ º¯Çü ¸ðµ¨ Áß SHA-1À» ÀÌ > ¿ëÇÑ GÇÔ¼ö »ç¿ë ¸ðµ¨"À̾ú½À´Ï´Ù.) > > ±¹Á¤¿ø¿¡¼´Â ÃÖ¼Ò 256ÀÇ entropy¸¦ È®º¸Çϵµ·Ï ÇÏ°í Àִµ¥, À̸¦ À§Çؼ > CPU Clock, PID, TID, memory address, mouse pointer À§Ä¡ µîÀÇ °ªµéÀ» °¡Á® > ¿É´Ï´Ù. > > Á¦ Áú¹®ÀÇ ¿äÁö´Â HTML 5¿¡¼ Àú·± systemÀÇ °ªµéÀ» °¡Á®¿Ã ¼ö ÀÖ´À³Ä´Â °ÍÀÔ > ´Ï´Ù. > °¡Á®¿Ã ¼ö ¾ø´Ù¸é ¿ì¸®°¡ "³¼ö"¶ó°í ºÎ¸¦ ¼ö ÀÖ´Â °ÍµéÀ» »ý¼ºÇϱ⠾î·Æ±â > ¶§¹®ÀÔ´Ï´Ù. > > ±âÁ¸¿¡ Javascript µîÀ¸·Î ¾ÏÈ£ ¾Ë°í¸®ÁòÀ» ±¸ÇöÇÏ°í ½Í¾îµµ ÇÒ ¼ö ¾ø¾ú´ø ÀÌ > À¯°¡ ³¼ö¸¦ Á¦´ë·Î ¸¸µé ¼ö ¾ø¾î¼¿´½À´Ï´Ù. > > HTML 5¿¡¼ ÀÌ ¹®Á¦¸¦ ¾î¶»°Ô ÇØ°áÇÏ°í ÀÖ´ÂÁö ±Ã±ÝÇÕ´Ï´Ù. > ¾Æ½Ã´Â ºÐµé ÀÖÀ¸½Ã¸é ´äº¯ ºÎŹµå¸±²²¿ä. > ¾Ïȣȿ¡ ´ëÇؼ Àü¹®°¡´Â ¾Æ´ÑÁö¶ó ÇãÁ¢ÇÑ ´äº¯ÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù¸¸, ¿äºÎÅÍ ¸»¾¸µå¸®¸é ¼ø¼ö javascript·Î´Â ¾ð±ÞÇϽŠÁ¢±Ù ¹æ¹ý ÀÚü¸¦ ±×´ë·Î ±¸ÇöÇÏ´Â°Ç ºÒ°¡´ÉÇÏ´Ù°í º¾´Ï´Ù. ´Ù¸¸, °¡Àå ±ÙÁ¢ÇÑ°ÍÀÌ window.crypto.getRandomValues°¡ µÇ´Âµ¥, ÀÌ°ÍÀÇ ÇÏÀ§ ´Ü¿¡ ÀÖ¾î¼ ±¸Çö ¹æ¹ý ÀÚü´Â ºê¶ó¿ìÀú ±×¸®°í ȯ°æ¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù. ¾ð±ÞÇϽŠ¹æ¹ýÀ» true multi process + multi threading ȯ°æ¿¡¼ ±¸ÇöÇÒ °æ¿ì ÇØ´ç ¹æ¹ý°ú À¯»çÇÑ ¶Ç´Â Ãß°¡ÀûÀÎ ¿ä¼ÒµéÀÌ Æ÷Ç﵃ °ÍÀ¸·Î »ý°¢µË´Ï´Ù. ¹Ý´ë·Î RTOS¿Í °°Àº cooperative multi tasking ȯ°æÀÇ °æ¿ì¿¡´Â ´Ù¸£°Ô ±¸ÇöÀ» ÇØ¾ß ÇÒ°ÍÀ¸·Î »ý°¢µË´Ï´Ù. ÀÌÀ¯ÀÎÁôÀº, cooperative multi tasking ȯ°æÀÇ °æ¿ì¿¡´Â PID°¡ ¾ø°í, TIDµµ ¾ø°í, memory addressÀÇ °æ¿ì ´ëºÎºÐ Á¤ÇØÁø Àý´ë ÁÖ¼Ò¿¡ ¸ÅÇÎÀÌ µÇ´Â Áö¶ó ÇØ´ç ¿ä¼ÒµéÀÇ º¯µ¿ ¿©Áö°¡ ±²ÀåÈ÷ Àû±â ¶§¹®¿¡ getRandomValues() ÀÇ ±¸Çö ´Ü¿¡¼ ´Ù¸¥ ¹æ¹ýÀ¸·Î Á¢±ÙÀ» ÇؾßÇÒ °ÍÀ¸·Î »ý°¢µË´Ï´Ù. ±âº»ÀûÀ¸·Î´Â ÇöÀç »óȲ¿¡¼´Â getRandomValues()¸¦ »ç¿ëÇÏ°í ³ª¸ÓÁö´Â ºê¶ó¿ìÀú¿¡ ¸Ã±â¼Å¾ß ÇÕ´Ï´Ù. Ãß°¡ÀûÀ¸·Î Math.random()ÀÇ °æ¿ì ´ë´Ù¼ö ºê¶ó¿ìÀú¿¡¼ °¡Àå ¼Óµµ°¡ ºü¸¥ PRNG¸¦ »ç¿ëÇÏ´Â °æ¿ì°¡ ´ëºÎºÐÀ̹ǷΠ¾ÏÈ£¿ë entropy·Î »ç¿ëÇÏ´Â°Ç ´ë´ÜÈ÷ À§ÇèÇÕ´Ï´Ù. ¾Æ¿ï·¯ ¾ÏÈ£È¿Í ¹«°üÇϸ鼵µ ³¼ö¼ºÀÌ ³ô¾Æ¾ß¸¸ ÇÏ´Â ÇÁ·Î±×·¥À» ±¸ÇöÇϴµ¥¿¡µµ »ç¿ëÇϱⰡ ¾î·Æ½À´Ï´Ù. ÀÌ°Í ¶§¹®¿¡ ÀÌÀü¿¡ [1] mersenne twister¸¦ javascript·Î ±¸ÇöÇÑÀûÀÌ ÀÖ½À´Ï´Ù. ´Ù¸¸ MTµµ ¾ÏȣȿëÀ¸·Î´Â »ç¿ëÇϱâ´Â ¾î·Á¿ï°ÍÀ¸·Î »ý°¢ÇÕ´Ï´Ù. ¼ø¼öÇÑ ¿©´ãÀÌÁö¸¸ CPU clockÀ̶ó°í ¸»¾¸ÇÏ½Å°Ç clock speed°¡ ¾Æ´Ï¶ó tick count°ÚÁö¿ä? clock speed¸¦ entropy¿ëÀ¸·Î »ç¿ëÇÏ°í ÀÖ´Ù¸é ÃÖ±Ù »óȲ¿¡¼´Â ³¼ö¼ºÀÌ Àû´Ù°í º¾´Ï´Ù¸¸... (tick count¶Ç´Â ÇÁ·Î¼¼½º ½ÃÀÛ ½ÃÁ¡ºÎÅÍÀÇ Á¤¹ÐÇÑ ´ÜÀ§ÀÇ monotonic timer¸¦ ÀÌ¿ëÇϴ°Ŷó¸é ±¦Âú°ÚÁö¸¸¿ä) (ƯÈ÷ CPU Á¾·ù°¡ ±×´Ú ¸¹Áö ¾ÊÀº ¸ð¹ÙÀÏÀ̳ª Mac ȯ°æ¿¡¼´Â ´õ¿í ¹®Á¦°¡ µÉ °ÍÀ¸·Î »ý°¢ÇÕ´Ï´Ù¸¸..) ¸¸¾à¿¡ javascript·Î ³¼ö¼ºÀÌ ³ôÀº Á¤º¸¸¦ °¡Á®¿À°í ½Í´Ù¸é 1) »ç¿ëÀÚ ÀÔ·ÂÀ» À¯µµÇؼ ±× ÀԷ½à ¹ß»ýÇÏ´Â key/mouse/touch/pointer events 2) deviceorientation events 3) sensor apis ±×¸®°í 4) webrtcÀÇ getusermedia ¸¦ ÀÌ¿ëÇؼ Ä«¸Þ¶ó¿¡¼ µé¾î¿À´Â µ¥ÀÌÅÍ µîÀ» Àû´ç¤¾»ç¿ëÇÏ´Â ¹æ¹ýÀÌ ÀÖÀ»°ÍÀ¸·Î »ý°¢µË´Ï´Ù. (geolocationµµ »ç¿ëÀÌ °¡´ÉÇÒ °Í °°±ä ÇÕ´Ï´Ù¸¸, ±âº»ÀûÀ¸·Î triangulation ÀÌ µÈ µ¥ÀÌÅ͸¦ ¹Þ´ÂÁö¶ó ¿øÇÏ´Â ¸¸Å ³¼ö¼ºÀÌ ³ôÀ»Áö´Â Àß ¸ð¸£°Ú½À´Ï´Ù.) °¨»çÇÕ´Ï´Ù. ¹®»óȯ ¹è»ó [1] https://github.com/cynthia/mt.js
Received on Friday, 9 August 2013 12:07:36 UTC