
ä»æ¥ã¯ãçäœèªèšŒã¢ããªã±ãŒã·ã§ã³ã®ä¿è·ã次ã®ã¬ãã«ã«åŒãäžããIntelããŒããŠã§ã¢ãã¯ãããžãŒã«ã€ããŠã話ããŸãã
åŸæ¥ã®ã»ãã¥ãªãã£ã·ã¹ãã ã«å¯ŸããçäœèªèšŒã®å©ç¹
ãŠãŒã¶ãŒåãšãã¹ã¯ãŒãã¯ãé·å¹Žã«ããã£ãŠãŠãŒã¶ãŒãèå¥ããããã«äœ¿çšãããŠããŸããã ãã®ã»ãã¥ãªãã£ã¢ãã«ã§ã¯ãç¹å®ã®ãµãŒãã¹ã䜿çšããæš©å©ãããããšã確èªããå¿ èŠããã人ã¯ãååãšãã¹ã¯ãŒããå ¥åããã ãã§ãã ããã¯ãã³ã³ãã¥ãŒã¿ãŒã§ã·ã¹ãã ã«å ¥ãããœãŒã·ã£ã«ãããã¯ãŒã¯ãã€ã³ã¿ãŒããããã³ã¯ãªã©ã®ããŸããŸãªãªã³ã©ã€ã³ãµãŒãã¹ã®æ©èœã«ã¢ã¯ã»ã¹ããããšãæå³ããŸãã ãã®ã»ãã¥ãªãã£ã¢ãã«ã®æ¬ ç¹ã¯ãå€ãã®çç±ã§æããã§ãã ããã«ãããã®ããã€ãããããŸãã
- ã123456ãããhelloããªã©ã®åçŽãªãã¹ã¯ãŒãã¯ããã«ãŒããã©ãŒã¹æ»æãèŸæžæ»æã«ãã£ãŠè§£èªãããå¯èœæ§ããããŸãã
- è€éãªãã¹ã¯ãŒãã¯èŠãã«ããã§ãã
- å€ãã®äººãç°ãªãã·ã¹ãã ã§åããã¹ã¯ãŒãã䜿çšããŠããŸãã
- 誰ãããã¹ã¯ãŒããå¿ããå Žåãèªåã«é¢ããè¿œå æ
å ±ãæäŸããåŸããã¹ã¯ãŒãããªã»ããã§ããŸãã

ãã¹ã¯ãŒããã°ã€ã³
ãããã³ã°ã«å¯Ÿãããã¹ã¯ãŒãã®èæ§ãé«ãããŠãŒã¶ãŒã®ç掻ã楜ã«ããããã«ããŸããŸãå€ãã®ãµãŒãã¹ãããã€ããŒãçäœèªèšŒæè¡ã䜿çšããŠã·ã¹ãã ãžã®ã¢ã¯ã»ã¹ãæŽçãå§ããŠããŸãã ãããã®ãã¯ãããžãŒã®ãããã§ããŠãŒã¶ãŒã¯ãã¹ã¯ãŒããèŠããå¿ èŠããããŸããã èå¥ã«ã¯ãé³å£°ãé¡ãæçŽãŸãã¯è¹åœ©ã®èªèã䜿çšãããŸãã åŸæ¥ã®ã»ãã¥ãªãã£ã·ã¹ãã ãšæ¯èŒããŠãçäœèªèšŒã«ã¯ç¹å®ã®æ©èœããããŸãã
- ãã€ãªã¡ããªã¯ã¹ã䜿çšãããšãé·ãè€éãªãã¹ã¯ãŒããçæã§ããŸããããã«ãããçŽæ¥ç¶²çŸ
çãªæ€çŽ¢ã«ããæ»æã«å¯Ÿæããããã®ããé«åºŠãªä¿è·ãæäŸãããŸãã
- çäœèªèšŒã·ã¹ãã ã§ã¯ãéçºè
ã¯çäœèªèšŒæ
å ±ã®èªèããã»ã¹ã«é¢äžããããå®å
šãªã¢ããªã±ãŒã·ã§ã³ãäœæããå¿
èŠããããŸãã äºå®ãçäœæ
å ±ã¯äººäœã®äžéšã§ãããç°¡åã«å€æŽããããšã¯ã§ããŸããã çäœæ
å ±ãçãŸããå ŽåããŠãŒã¶ãŒããçäœèªèšŒãã¹ã¯ãŒããããã£ã³ã»ã«ããããšã¯å®¹æã§ã¯ãããŸããã æ»æè
ã¯çãã ããŒã¿ã䜿çšããŠãé¢å¿ã®ãã身äœéšåã®ã³ããŒãäœæããå°æ¥ãä»ã®ãŠãŒã¶ãŒã¢ã«ãŠã³ãã§çäœèªèšŒã®æ€èšŒãè¡ãããã«äœ¿çšã§ããŸãã
- é¡ã®ç¹åŸŽã声ãªã©ã®ããã€ãã®çç©åŠçç¹æ§ã¯ãé«ã¬ãã«ã®èª€ã£ãäžèŽã«ãã£ãŠç¹åŸŽä»ããããŸãã ãã®çµæããŠãŒã¶ãŒã®çäœèªèšŒã·ã¹ãã ã¯éåžžãå€ãã®æ©èœã䜿çšããŠèªè粟床ãåäžãããŸãã
- å人ã®äžéšã®çäœèªèšŒç¹æ§ãã³ããŒã§ããŸãã ããšãã°ã声ãé²é³ããããåçãå°å·ãããããŒã©ãã³ãã·ãªã³ã³ããŸãã¯æçŽã®ä»ããã©ããã¯ã¹ã®åœã®æãäœæããŸãã çäœèªèšŒã·ã¹ãã ã«ã¯ãçåæ§ãã¹ãã¢ãžã¥ãŒã«ãã€ãŸã人ãçãç©ãšããŠèªèããããšãéèŠã§ãã ããã¯ãã·ã¹ãã ãå®åšã®äººç©ããã®ãã€ãªã¡ããªãã¯æ
å ±ãšåœç©ãåºå¥ã§ããããã«ããããã«å¿
èŠã§ãã
çäœèªèšŒã®ä»çµã¿
ãã€ãªã¡ããªãã¯äººæ Œèªèã·ã¹ãã ã®äœæ¥ã¯ã5ã€ã®ã¹ãããã«åããããšãã§ããŸãã
- çäœèªèšŒæ
å ±ã¯ãå
¥å/åºåããŒããä»ããŠã³ã³ãã¥ãŒã¿ãŒã«æ¥ç¶ãããã»ã³ãµãŒã䜿çšããŠåéãããŸãã
- ããŒã¿å
¥åã®åœ¢åŒãšé床ã¯ãããã€ã¹ãã©ã€ããŒã«ãã£ãŠå¶åŸ¡ãããŸãã Ring-0ç¹æš©ã¬ãã«ã§åäœãããã©ã€ããŒã¯ãããŒã¿ãåŠçãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®èŠä»¶ãæºãã圢åŒã«ããŸãã 次ã«ãããŒã¿ã¯çäœèªèšŒæ€èšŒã¢ããªã±ãŒã·ã§ã³ã«éä¿¡ãããŸãããã®ã¢ããªã±ãŒã·ã§ã³ã¯ãRing-3ç¹æš©ã¬ãã«ã§å®è¡ãããŸãã
- ã¢ããªã±ãŒã·ã§ã³ããœãŒã¹ããŒã¿ãåä¿¡ãããšããã«ãäºååŠçãå®è¡ãããããããç¹åŸŽçãªç¹åŸŽã§ãããã€ãªã¡ããªãã¯ãã³ãã¬ãŒããæœåºããŸãã
- æœåºããããã³ãã¬ãŒãã¯èªèã·ã¹ãã ã«éä¿¡ãããããŒã¿ããŒã¹ã«ç»é²ãããŠãããã³ãã¬ãŒããšæ¯èŒãããŸãã
- äžèŽãèŠã€ãããšããã«ãèªèã·ã¹ãã ã¯ã¡ã€ã³ã¢ããªã±ãŒã·ã§ã³ã«ããã«é¢ããã¡ãã»ãŒãžïŒMATCHïŒãéä¿¡ããŸãã ãã°ã€ã³ãæåããããšããŠãŒã¶ãŒã«éç¥ããããã©ã€ããŒããªãœãŒã¹ãæäœããæ©äŒãåŸãããŸãã

çäœèªèšŒãŠãŒã¶ãŒèªèã·ã¹ãã ã®ã¹ããŒã
æ»æã¢ãã«
çäœèªèšŒã·ã¹ãã ã§ã¯ãæ»æè ã«ãšã£ãŠæã䟡å€ã®ããããŒã¿ã¯ãŠãŒã¶ãŒã®çäœèªèšŒãã³ãã¬ãŒãã§ãã ãããã®ãã¿ãŒã³ã¯ãã»ã³ãµãŒããååŸããçããŒã¿ã®åœ¢åŒã§ããœãŒã¹ããŒã¿ããæ¢ã«æœåºãããããŒã¿ããŒã¹ã«æ ŒçŽãããŠããç»é²æžã¿ã®çäœèªèšŒæšæºã®åœ¢åŒã§ãã¡ã¢ãªã«æ ŒçŽãããŠããäžé£ã®ç¹æ§ã®åœ¢ã§æ瀺ã§ããŸãã
äžè¬ã«ãé©åãªããŒã¿ä¿è·ã®å¿ èŠæ§ãèæ ®ããã«çäœèªèšŒã¢ããªã±ãŒã·ã§ã³ãèšèšããå Žåãæ»æè ã¯çããŒã¿ãŸãã¯äžé£ã®ç¹åŸŽçãªæ©èœã«ã¢ã¯ã»ã¹ã§ããŸãã ããã¯ãã«ãŒãããããŸãã¯ä»ã®æªæã®ããããã°ã©ã ã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ã®å®è¡äžã«æ»æäžã«å®è¡ã§ããŸãã ããã«ãæ»æè ã¯ãåäœããŠããªãã¢ããªã±ãŒã·ã§ã³ã§æ»æãéå§ã§ããŸãããã®éã«ãããšãã°ããŒã«ã«ãã£ã¹ã¯ã«ä¿åãããŠããå Žåãã·ã¹ãã ã«ç»é²ãããŠããçäœèªèšŒãã³ãã¬ãŒããååŸã§ããŸãã
ããã«ãæ»æè ã¯ã»ã³ãµãŒããããã»ããµãžã®éäžã§ããŒã¿ãã¹äžã®ããŒã¿ã¹ããªãŒã ãååããå¯èœæ§ããããŸãã ãŸããæ»æè ã¯ããŠãŒã¶ãŒã®ããè¿ãã§ã«ã¡ã©ãŸãã¯ãã€ã¯ã䜿çšããŠãåŸã§ãªãã¬ã€ã䜿çšããŠæ»æãå®è¡ããããã«ã人ç©ã®åçãé³å£°é²é³ãªã©ã®çäœããŒã¿ãåéã§ããŸãã

çäœèªèšŒãŠãŒã¶ãŒèªèã¢ããªã±ãŒã·ã§ã³ã«å¯Ÿããæ»æã®çš®é¡
çäœèªèšŒããŒãœããªãã£èªèãµãŒãã¹ã®éçºã®èŠ³ç¹ãããã¢ããªã±ãŒã·ã§ã³èšèšååã¯ãæ©å¯æ å ±ã®å®å šãªåŠçãä¿èšŒããããã«ããšã³ãããŒãšã³ãã®ããŒã¿ä¿è·ãæäŸããå¿ èŠããããŸãã ãããã®ååã«ã¯ä»¥äžãå«ãŸããŸãã
- ã³ãŒãã®æŽåæ§ãç¶æããããã«ãã¢ããªã±ãŒã·ã§ã³ã«ä¿¡é Œã§ããã©ã³ã¿ã€ã ãæäŸããŸãã
- ä»ã®ã¢ããªã±ãŒã·ã§ã³ããçäœèªèšŒãã³ãã¬ãŒããå«ãã¡ã¢ãªé åãä¿è·ããŸãã
- æå·åæå·åæ¹åŒã䜿çšããæ©å¯ããŒã¿ã®ä¿åã ãã®ãããªããŒã¿ãæ±ããã¹ãŠã®æ®µéã§æå·åãé©çšããå¿ èŠããããŸãã ã€ãŸããã¡ã¢ãªãŸãã¯ããŒã«ã«ã¹ãã¬ãŒãžã«ããå Žåãåãã³ã³ãã¥ãŒã¿ãŒãŸãã¯ãªã¢ãŒããµãŒããŒã§å®è¡ãããŠããä»ã®ã¢ããªã±ãŒã·ã§ã³ãšããŒã¿ã亀æãããå Žåã§ãã
çäœèªèšŒã®Intelã»ãã¥ãªãã£ããŒããŠã§ã¢ãã¯ãããžãŒ
Intelãã©ãããã©ãŒã ã¯ããŠãŒã¶ãŒã®çäœèªèšŒæ€èšŒãå®è¡ããã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£èŠä»¶ãæºããããã«ãããŸããŸãªããŒããŠã§ã¢ãã¯ãããžãŒãæäŸããŸãã ãã®åé¡ã解決ããããšãç®çãšãã3çµã®Intelãã¯ãããžãŒãæ€èšããŠãã ããïŒIntel Software Guard ExtensionsãIntel Virtual Machine Extensionsãããã³Intel Identity Protectionã
Intel Software Guard Extensionsã䜿çšããŠä¿¡é Œã§ããã©ã³ã¿ã€ã ãç·šæãã
çäœèªèšŒãŠãŒã¶ãŒèå¥æè¡ã¯ãŸããŸãåºã䜿çšãããŠããŸãã åé¡ã¯ãã»ãã¥ãªãã£ã®ã¬ãã«ãåäžããããšã§ãã çäœèªèšŒã¯ã人ã®åºæã®ç¹æ§ïŒé¡ã声ãæçŽãè¹åœ©ïŒã«åºã¥ããŠãããããèå¥ããŒã¿ãçãããšã¯éåžžã«å°é£ã§ãã çäœèªèšŒæè¡ã¯ããã¹ã¯ãŒãã䜿çšããåŸæ¥ã®èªèšŒæ¹æ³ã«ä»£ãããã®ã§ãããäœæ¥ãç°¡çŽ åããã³é«éåããŸãã
ãã ããããŸããŸãªããã€ã¹ã§çäœèªèšŒæè¡ãåºãæ¡çšãããŠããããããã©ãããã©ãŒã ã®äžåäžæ§ãšãªãŒãã³æ§ãæœåšçãªè åšã«ã€ãªãã£ãŠããŸãã ãããã®è åšã®1ã€ã¯ãéçºè ãããŸããŸãªç«¯æ«ããã€ã¹ã§ã©ã®ããã«å®å šãªçäœèªèšŒãæ©èœããããèæ ®ããå¿ èŠãããããšã§ãã ç¹ã«ã以äžãèæ ®ããå¿ èŠããããŸãã
- ãã€ãªã¡ããªãã¯ãµã³ãã«ã®ååŸãç¹åŸŽã®æœåºããã¿ãŒã³ã®æ¯èŒã®ããã«ç«¯æ«ããã€ã¹ã¢ãžã¥ãŒã«ã§å®å
šã«å®è¡ããæ¹æ³ã
- çäœèªèšŒããŒã¿ãã³ãã¬ãŒãã®ã¹ãã¬ãŒãžãä¿è·ããæ¹æ³ã
- èªèšŒæé ãŸãã¯ãã®ä»ã®æäœãå®è¡ããããã«ããšã³ãããã€ã¹ãšçç©åŠçç¹æ§ã®ã¯ã©ãŠãããŒã¿ããŒã¹ã®éã«å®å šãªéä¿¡ãã£ãã«ã確ç«ããæ¹æ³ã
å®å šæ§ã®é«ããœãªã¥ãŒã·ã§ã³ãèšèšããããã«ãéçºè ã¯ä¿¡é Œã§ããå®è¡ç°å¢ïŒTrusted Execution EnvironmentãTEEïŒãäœæããæè¡ã䜿çšã§ããŸãã
ä¿¡é Œã§ããã¢ããªã±ãŒã·ã§ã³ã©ã³ã¿ã€ã
TEEã¯ãéåžžã®ããããããªããå®è¡ç°å¢ïŒREEïŒããšã¯å¥ã®ãåé¢ãããä¿¡é Œã§ããã¢ããªã±ãŒã·ã§ã³ã©ã³ã¿ã€ã ã§ãã ã°ããŒãã«ãã©ãããã©ãŒã TEEã·ã¹ãã ã¢ãŒããã¯ãã£ä»æ§ã«ããã°ãæé«ã¬ãã«ã§ã¯ãTEEã¯æ¬¡ã®èŠä»¶ãæºããç°å¢ã§ãã
- TEEå
ã§å®è¡ããããã¹ãŠã®ã³ãŒããæ¬ç©ã§äžè²«ããŠããããšãä¿èšŒãããŠããŸãã
- ãã®ã³ãŒãã«ãã£ãŠæäœããããªãœãŒã¹ã¯ããªãŒã¯ããä¿è·ãããŠããŸãã ããªãã¡ãã¢ããªã±ãŒã·ã§ã³ã®ä¿¡é Œã§ããã©ã³ã¿ã€ã ã¯ãããŒã«ã«ãŸãã¯ãªã¢ãŒãã§å®è¡ããããã©ããã«ãããããããœãããŠã§ã¢ã«å¯Ÿãããã¹ãŠã®æ¢ç¥ã®ã¿ã€ãã®æ»æãããã³ããŒããŠã§ã¢ã«å¯Ÿããããã€ãã®å€éšæ»æãé²ãå¿
èŠããããŸãã
- ãªãœãŒã¹ãšã³ãŒãã¯äžæ£ãªãã¬ãŒã¹ããä¿è·ãããŠãããã¢ããªã±ãŒã·ã§ã³ã¯ãããã°ããã³ãã¹ãããŒã«ã«ãã£ãŠå€éšãã圱é¿ãåããããšã¯ã§ããŸããã
Intel Software Guard Extensionsãã¯ãããžãŒã®æŠèŠ
Intel Software Guard ExtensionsïŒIntel SGXïŒã䜿çšãããšãéçºè ã¯å®å šãªã¢ããªã±ãŒã·ã§ã³ããªãŒãã³ãã©ãããã©ãŒã ã§äœæããã³å±éã§ããŸãã ãããã¯ãäžé£ã®æ°ããåœä»€ãã¡ã¢ãªãžã®ã¢ã¯ã»ã¹ã¡ã«ããºã ã®å€æŽãªã©ãIntelãã€ã¯ãããã»ããµã¢ãŒããã¯ãã£ã®æ°æ©èœã§ãã
Intel SGXã¯ãããŒããŠã§ã¢ã¬ãã«ã§ä¿è·ãããã³ãŒããšããŒã¿ãæ ŒçŽããã¡ã¢ãªã®ã»ã¯ã·ã§ã³ãå²ãåœãŠãããšã§æ©èœããŸãã ã¡ã¢ãªã®ä¿è·ãããé åã¯ãé£ã³å°ãšåŒã°ããŸãã ãšã³ã¯ã¬ãŒãã«ä¿åãããããŒã¿ã¯ããã®äžã«ããã³ãŒãã§ã®ã¿äœ¿çšã§ããŸãã ãšã³ã¯ã¬ãŒãã³ãŒãã¯ãç¹å¥ãªæ瀺ã䜿çšããŠåŒã³åºãããšãã§ããŸãã ãšã³ã¯ã¬ãŒãã¯ãWindows DLLãšããŠäœæããã³ããŒãã§ããŸãã

ããã»ã¹ã«çµã¿èŸŒãŸããå®å šãªã©ã³ã¿ã€ã
Intel SGX èšèšã¢ãã«ã«ãããšããã®ãã¯ãããžãŒã䜿çšããã¢ããªã±ãŒã·ã§ã³ã¯ãä¿¡é Œã§ããªãéšåãšä¿¡é Œã§ããéšåã®2ã€ã®éšåã§æ§æãããŠããŸãã ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããããšãIntel SGXåºæã®åœä»€ãåŒã³åºããŠãä¿¡é Œã§ããã¡ã¢ãªé åã«ãããšã³ã¯ã¬ãŒããäœæããŸãã ä¿¡é Œã§ããé¢æ°ãåŒã³åºããããšãã³ãŒãã¯ãšã³ã¯ã¬ãŒãå ã§å®è¡ãããæå·åãããŠããªãããŒã¿ã¯ãšã³ã¯ã¬ãŒãå ã§ã®ã¿äœ¿çšã§ããŸãã å€éšããã®ã¢ã¯ã»ã¹ã¯å®å šã«ééãããŠããŸãã ä¿¡é Œã§ããæ©èœãå®äºãããšããšã³ã¯ã¬ãŒãããŒã¿ã¯ä¿¡é Œã§ããã¡ã¢ãªã«æ®ããŸãã

Intel SGXã䜿çšããã¢ããªã±ãŒã·ã§ã³å³
ã€ã³ãã«SGXãã¯ãããžãŒã®ç®çã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãããã®éšåã«å¯Ÿããé«ã¬ãã«ã®ä¿è·ã®çµç¹åãå¯èœã«ããããšã§ããå€éšãžã®ã¢ã¯ã»ã¹ã¯å®å šã«é€å€ããå¿ èŠããããŸãã ç¹ã«ãã¢ããªã±ãŒã·ã§ã³ãåäœããéèŠãªããŒã¿ã¯ä¿è·ãããŸãã
ãã®ã¢ãããŒãã䜿çšããæ»æ察象é åïŒTrusted Computing BaseïŒTCBïŒïŒã¯ãã¢ããªã±ãŒã·ã§ã³èªäœãšãã®ã³ãŒããå®è¡ãããããã»ããµãŒã«éå®ãããŸãã ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãVMMãBIOSããã©ã€ããŒããã€ãã¹ã§ãããã«ãŠã§ã¢ã§ãããã¢ããªã±ãŒã·ã§ã³ã®äœæè ãç§å¯ã«ããããã®ãçãããšã¯ã§ããŸããã

Intel SGX䜿çšæã®æ»æ察象é åã®åæž
Intel SGXã«ããçäœèªèšŒã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£ã®åŒ·å
çäœèªèšŒã·ã¹ãã ã®ã»ãã¥ãªãã£ãæ¹åããããã®ææ¡ãè°è«ããåã«ãäœãä¿è·ããå¿ èŠããããã«æ³šæãæãå¿ èŠããããŸãã
ãŠãŒã¶ãŒã®çäœèªèšŒç¹æ§ã«é¢ããæ©å¯ããŒã¿ã¯ãã¢ããªã±ãŒã·ã§ã³ã§åŠçããããããã£ã¹ã¯ã«ä¿åããããããªã¢ãŒããµãŒãã¹ã«éä¿¡ãããããªã©ãæ éã«æ±ãå¿ èŠããããŸãã
ãµã³ãã«ã®ååŸãç¹åŸŽã®ç¹å®ãäžèŽã®æ€çŽ¢ãªã©ãçäœèªèšŒããŒã¿ãåŠçããã¢ãžã¥ãŒã«ã¯ãã³ã³ãã¥ãŒã¿ãŒãŠã€ã«ã¹ããã®ä»ã®ãã«ãŠã§ã¢ããä¿è·ããå¿ èŠããããŸãã ããã«ãã·ã¹ãã ã®åºåãåœé ã§ããªãããšãå¿ èŠã§ãã
ã¢ãŒããã¯ãã£ãœãªã¥ãŒã·ã§ã³ãæäŸããŸãããã®ã¹ããŒã ã以äžã«ç€ºããŸãã

Intel SGXã䜿çšããŠãçé£é²æ¢çäœèªèšŒã·ã¹ãã ãå®è£ ãã
çäœèªèšŒããŒã¿ãåä¿¡ãåŠçãããã³æ¯èŒãããµãã·ã¹ãã ã¯ãã¯ã©ã€ã¢ã³ãã®ä¿¡é Œã§ããéšåã§ããã€ã³ãã«SGXãšã³ã¯ã¬ãŒãå ã«ãããçäœèªèšŒããŒã¿ã«å¯Ÿããã¢ã¯ã·ã§ã³ãæ åœããŸãã å®è¡äžã®ããŒã¿æŒæŽ©é²æ¢ãšããã°ã©ã ã®æŽåæ§ãä¿èšŒããŸãã éåžžããã®ãããªãµãã·ã¹ãã ã¯ãœãããŠã§ã¢ã¢ãžã¥ãŒã«ãšããŠå®è£ ãããŸãã ãŸãããã«ãŠã§ã¢ã®äœ¿çšãªã©ããããããœãããŠã§ã¢ã®å®è£ ããããã³ã°ãããå¯èœæ§ããããŸãã
ææ¡ãããã¢ãŒããã¯ãã£ãœãªã¥ãŒã·ã§ã³ã§ã¯ãã³ãŒããšããŒã¿ãå«ãã¢ããªã±ãŒã·ã§ã³ã®ä¿è·ãããéšåããšã³ã¯ã¬ãŒãã«ããŒããããŸãã ã³ãŒããšããŒã¿ã®äž¡æ¹ã«ã€ããŠããã³ãããŒã¯ãèšç®ããããã®æé ãããããã枬å®ããå®è¡ãããŸãã ã¢ããªã±ãŒã·ã§ã³ã³ãŒããšããŒã¿ããšã³ã¯ã¬ãŒãã«ããŒãããããšããã«ããããã¯å€éšããã°ã©ã ã¢ã¯ã»ã¹ããä¿è·ãããŸãã ãããã£ãŠãçäœèªèšŒã¢ã«ãŽãªãºã ã®å®è£ ã¯ä¿¡é Œã§ãããšèããããšãã§ããŸãã ããã«ãææ¡ããããœãªã¥ãŒã·ã§ã³ã®ç¹åŸŽã¯ãäžå€®åŠçè£ çœ®ã§ã®å®è¡ã«é¢é£ããé«ãããã©ãŒãã³ã¹ãšã¹ã±ãŒã©ããªãã£ã§ãã ããã¯ãé«æ§èœãéèŠãªçäœèªèšŒã·ã¹ãã ã®éšåã®å®è£ ã«ç¹ã«åœãŠã¯ãŸããŸãã ããšãã°ããã€ãªã¡ããªãã¯ããŒã¿èªèæ©èœçšã
Intel SGXãã¯ãããžãŒã¯ããšã³ã¯ã¬ãŒãå€ã®ã¹ãã¬ãŒãžçšã«æ©å¯ãšã³ã¯ã¬ãŒãã³ã³ãã³ãã®æŽåæ§ãæå·åããã³ä¿è·ããæ©èœãæäŸããŸãã ããšãã°ããã£ã¹ã¯äžã§ãã¢ããªã±ãŒã·ã§ã³ããã®ãã¹ãŠãåŸã§åå©çšã§ããããã«ããŸãã ãã®ããŒã¿ããå°å°ãããããã«äœ¿çšã§ããããŒããŠã§ã¢ããŒã§ãããããããå°å°ããŒã䜿çšããŠããšã³ã¯ã¬ãŒãéã§ããŒã¿ãå®å šã«è»¢éã§ããŸãã ã·ãŒã«ããŒã¯ãCPUããã³æ¢åã®ãšã³ã¯ã¬ãŒãç°å¢ã«åºæã§ãã Intel SGXãã©ãããã©ãŒã ãœãããŠã§ã¢ãæäŸããMonotonic CounterãTrusted Timeãªã©ã®ä»ã®ãµãŒãã¹ãšçµã¿åãããŠããã®ãœãªã¥ãŒã·ã§ã³ã䜿çšããŠãããŸããŸãªçš®é¡ã®æ»æããä¿è·ã§ããŸãã
å調ã«ãŠã³ã¿ã䜿çšããŠããªãã¬ã€æ»æããä¿è·ããããã«èšèšãããã»ãã¥ãªãã£ããªã·ãŒãå®è£ ã§ããŸãã ä¿¡é Œã§ããæéã䜿çšããŠãæéããŒã¹ã®ã»ãã¥ãªãã£ããªã·ãŒãå®æœã§ããŸãã ãããšå¥ã®äž¡æ¹-ãå°å°ããããããŒã¿ã®åœ¢åŒïŒå°å°ãããããŒã¿ïŒã
ãšã³ã¯ã¬ãŒãã¯ãéžæãããã¢ã«ãŽãªãºã ã«åŸã£ãŠæå·åãå®è¡ããŸãã ã€ãŸããéçºè ã¯ãã·ã¹ãã ã®ã»ãã¥ãªãã£èŠä»¶ã«å¿ããŠãä»»æã®æå·åãã©ãããã©ãŒã ãéžæã§ããŸãã ãããã£ãŠããŠãŒã¶ãŒã®çäœèªèšŒããŒã¿ããšã³ã¯ã¬ãŒãã«ä¿åãããåŠçãããŠããªãçäœèªèšŒããŒã¿ãã¢ããªã±ãŒã·ã§ã³ã®ä¿¡é Œã§ããªãéšåã®ãšã³ã¯ã¬ãŒãå€ã§å©çšã§ããªãããšã確èªã§ããŸãã
ãã€ãªã¡ããªãã¯èªèã®ã¯ã©ã€ã¢ã³ãå®è£ ã§ã¯ãããŒã«ã«ã¹ãã¬ãŒãžã§ã¯ãªãã¯ã©ãŠãããŒã¿ããŒã¹ã䜿çšããŠèªèšŒæé ãå®è¡ããããã«ãªã¢ãŒããµãŒããŒã«æ¥ç¶ããå¿ èŠãããå ŽåããããŸãã ãµãŒããŒã¯ãæ€èšŒã¡ã«ããºã ã䜿çšããŠIntel SGXããµããŒããããã©ãããã©ãŒã ã§æ£ããããŠã³ããŒãããã³åæåãããã¯ã©ã€ã¢ã³ããœãããŠã§ã¢ãšå¯Ÿè©±ããããšã確èªã§ããŸãã åãããšãçäœèªèšŒã«ãåœãŠã¯ãŸããŸãã ã€ã³ãã«SGXå ã§ã¯ãããã¯ãã·ã¹ãã ã®ç¹å®ã®éšåãããã®ãããªæ©èœããµããŒããããã©ãããã©ãŒã äžã§ãããã§å®è¡ãããå¿ èŠãããã³ãŒãããšã³ã¯ã¬ãŒãå ã§å®å šã«å®è¡ãããããšã確èªã§ããã¡ã«ããºã ã§ãã
ãŸãããã®ã¢ãžã¥ãŒã«ã¯ãã·ã¹ãã ã®ã¯ã©ã€ã¢ã³ãéšåã®ä¿¡é Œæ§ã«é¢ããã¬ããŒããçæããŸããããã¯ãå®çšŒå段éã§CPUã«èšé²ãããããŒã¿ã®ãããã§ãç¹å®ã®ãã©ãããã©ãŒã ã«çµã³ä»ããŠæ€èšŒã§ããŸãã ããã«ãã¬ããŒãã«ã¯ãçäœèªèšŒã»ãã·ã§ã³ãå®è¡ããŠãããŠãŒã¶ãŒã«é¢ããæ å ±ãå«ãŸããŸãã ãµãŒããŒã¯ã¬ããŒãããã§ãã¯ããŠãIntel SGXããµããŒãããããã€ã¹ãšããåãããŠããããšãããã³ãŠãŒã¶ãŒãã·ã¹ãã ã«ã¢ã¯ã»ã¹ã§ããããšã確èªããŸãã ã¯ã©ã€ã¢ã³ããšãµãŒããŒã¯ãæåã®æ¥ç¶äžã«åæåã»ãã·ã§ã³ãå®è¡ããŸããåæåã»ãã·ã§ã³äžã«ãã·ã¹ãã ã®ã¯ã©ã€ã¢ã³ãéšåã¯é©åãªIntel SGXæ©èœã䜿çšããŠãå¯å°ããããç§å¯ããŒã¿ãå®å šã«éä¿¡ããŸãã
ãã®ããŒã¿ã¯ããããå°å°ããã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠã®ã¿å°å·ã§ããã¯ã©ã€ã¢ã³ããã©ãããã©ãŒã ã®ä¿¡é Œæ§ãåžžã«ç¢ºèªããå¿ èŠãªããå°æ¥ãµãŒããŒãžã®å®å šãªæ¥ç¶ã確ç«ããããã«äœ¿çšãããŸãã ãã®ãããªããŒã¿ã«ã¯ããå¡©ããæå·åããŒãã»ãã¥ãªãã£ããªã·ãŒã蚌ææžãªã©ããããŸãã ãã®åŸãçäœèªèšŒããŒã¿ãšèªèšŒçµæã¯ãã¯ã©ã€ã¢ã³ããšãµãŒããŒéã®å®å šãªéä¿¡ãã£ãã«ãä»ããŠéä¿¡ã§ããŸãã
ä»®æ³ãã·ã³æ¡åŒµæ©èœã䜿çšããã¡ã¢ãªä¿è·ã¹ããŒã
åçããŒã¿ã®æ»æã¯ãã·ã¹ãã ãæ»æããããã®æãäžè¬çãªæ¹æ³ã®1ã€ã§ãã ã«ãŒããããããã®ä»ã®ãã«ãŠã§ã¢ã¯ãã®ææ³ã䜿çšããŠãæå®ãããæ©èœãååããããã°ã©ã ã®å®è¡äžã«ããŒã¿ã®ã³ããŒãäœæããããã¡ã¢ãªå ã§ããŒã¿ãå€æŽãããã§ããŸãã ãŠãŒã¶ãŒã®çäœèªèšŒã®å Žåãæªæã®ããã³ãŒãã¯ã»ã³ãµãŒããååŸããçäœèªèšŒããŒã¿ãšç»é²ãŠãŒã¶ãŒã®çäœèªèšŒããŒã¿ãã³ãã¬ãŒããã¡ã¢ãªããåä¿¡ã§ããŸãã
ã¡ã¢ãªãžã®äžæ£ã¢ã¯ã»ã¹ã«å¯ŸããåŸæ¥ã®ãœãããŠã§ã¢ä¿è·ã¡ã«ããºã ã®åŒ±ç¹
ã¡ã¢ãªãžã®äžæ£ã¢ã¯ã»ã¹ã«å¯ŸãããœãããŠã§ã¢ä¿è·ã®åŸæ¥ã®ã¡ã«ããºã ã¯ãååãªä¿¡é Œæ§ããããŸããã ä¿è·ãããã³ãŒããšæªæã®ããã³ãŒãã¯ãåãç¹æš©ã¬ãã«ïŒring-0ãŸãã¯ring-3ïŒã§å®è¡ãããŸãã ãããã£ãŠãä¿è·ãç¡å¹ã«ããããã«ãæªæã®ããã³ãŒããä¿è·ãããã³ãŒãã«ç°¡åã«åœ±é¿ããå¯èœæ§ããããŸãã

æ»æè ã¯ã»ãã¥ãªãã£ã¢ãžã¥ãŒã«ã«åœ±é¿ãäžããæ©å¯æ å ±ãå«ããããã¡ã«ã¢ã¯ã»ã¹ããå¯èœæ§ããããŸã
ä»®æ³ãã·ã³æ¡åŒµããŒã¹ã®ã¡ã¢ãªä¿è·
Virtual Machine ExtensionsïŒVMXïŒã¯ãããã»ããµããŒããŠã§ã¢ã®ä»®æ³åããµããŒãããäžé£ã®åœä»€ã§ãã 圌ã®äœåã®åºæ¬åçã¯æ¬¡ã®ãšããã§ãã
- ããŒã/ä¿åãåå²åœä»€ãç®è¡æŒç®ãè«çæŒç®ãªã©ã®åºæ¬çãªCPUæäœãç¡èŠããŸãã
- ã¡ã¢ãªå¶åŸ¡ãããã¯ã®æäœãI / Oåœä»€ããŸãã¯é£æ³å€æãããã¡ã®æŽæ°ãªã©ã®ç¹æš©åœä»€ã®ç£èŠïŒãã©ããã³ã°ïŒã
- ç¹æš©åœä»€ãå®è¡ãããå Žåãå®è¡ãäžæããããã»ããµãã«ãŒãVMXã¢ãŒãã«èšå®ããŠããã«åŠçããŸãã
ããŒããŠã§ã¢ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãããã³VMXãªã³/ãªãã¢ããªã±ãŒã·ã§ã³éã®é¢ä¿ã¯æ¬¡ã®ããã«ãªããŸãã

VMXããªã³ãšãªãã®ãšãã®ã·ã¹ãã ã³ãŒã«ã«å¯Ÿããç°ãªãå¿ç
ããŒããŠã§ã¢ã¬ãã«ã§å®è£ ãããVMXãã©ããæ©èœã䜿çšãããšãããŒããŠã§ã¢ä»®æ³åã«åºã¥ãã¡ã¢ãªä¿è·ã¡ã«ããºã ã¯ã䜿çšããªãå Žåãããé«éã§å®å šãªã¡ã¢ãªä¿è·ãæäŸã§ããŸãã ããã§ã®åºæ¬çãªèãæ¹ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšããŒããŠã§ã¢ã®éã«VMMããŒã¹ã®ã¡ã¢ãªç£èŠã¢ãžã¥ãŒã«ãé 眮ããããšã§ãã ã¢ããªã±ãŒã·ã§ã³ãããŒããããšãä¿¡é Œã§ããã³ãŒããšããŒã¿ãå«ãé åçšã®ã¡ã¢ãªå²ãåœãŠããŒãã«ãäœæãããŸãã ããŒãã«ã®äœæåŸãã¡ã¢ãªã¢ã¯ã»ã¹æäœäžã«VMMã¯ãããã®æäœãã€ã³ã¿ãŒã»ããããã¡ã¢ãªã¢ã¯ã»ã¹åœä»€ã¢ãã¬ã¹ïŒEIPïŒã¢ãã¬ã¹ãšä»¥åã«äœæãããããŒãã«ã®ã¡ã¢ãªã¢ãã¬ã¹ãæ¯èŒã§ããŸãã ã¡ã¢ãªä¿è·ã¢ãžã¥ãŒã«ã¯ããã®æäœãæå¹ãã©ããã確èªããé©åãªæé ãåç §ã§ããŸãã
Intel Identity Protection Technologyãšã¯ã³ã¿ã€ã ãã¹ã¯ãŒãã䜿çšããå€èŠçŽ èªèšŒ
å人æ å ±ã®çé£ã¯ãå人ãäŒæ¥ã«åœ±é¿ãäžããäžççãªåé¡ã§ãã ã¯ã©ãã«ãŒã¯ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããååŸããæ¹æ³ãåžžã«èæ¡ããŠããããã䜿ãããããå®å šãªãœãªã¥ãŒã·ã§ã³ãå¿ èŠã§ãã ãããŠã圌ãã¯æ±ºããŠæ¢ãŸããããã®ããŒã¿ã®æ°ããçé£æ¹æ³ãæ¢ããŠæ¢ãŸããªãã§ãããã ç¹å®ã®çµç¹ã®ã¯ã©ã€ã¢ã³ãã§ãããã€ã³ã¿ãŒããããŸãã¯éåžžã®ã³ã³ãã¥ãŒã¿ãŒãŠãŒã¶ãŒãä»ããŠå¯Ÿè©±ããå ŽåãIntel Identity Protection TechnologyïŒIntel IPTïŒã¯ãIDçé£ã®ãªã¹ã¯ãåé¿ããã®ã«åœ¹ç«ã€åŒ·åãªããŒã«ãæäŸã§ããŸãã ç¹ã«ãIntel IPTã®æ©èœã䜿çšããã€ã³ã¿ãŒãããäžã®ãµãŒãã¹ã¢ã«ãŠã³ãã«ãŠãŒã¶ãŒã®ç©çããã€ã¹ãé¢é£ä»ããå¯èœæ§ã«ã€ããŠè©±ããŸãã
äŒçµ±ã«ããã°ãäºèŠçŽ èªèšŒã¯ã¯ã³ã¿ã€ã ãã¹ã¯ãŒãïŒOTPïŒã䜿çšããŸãã ãã®ãããªã¹ããŒã ã¯ããŠãŒã¶ãŒãç¥ã£ãŠããããšïŒãŠãŒã¶ãŒåãšãã¹ã¯ãŒãïŒãšãŠãŒã¶ãŒãæã£ãŠãããã®ïŒéåžžãããŒã¯ã³ãããŒããŠã§ã¢ã»ãã¥ãªãã£ããŒããŸãã¯çæéã«ã®ã¿æå¹ã§6æ¡ã®æ°åãçæããããŒãã©ãïŒãçµã¿åãããŸããªã¯ãšã¹ãïŒã
OTPãã¯ãããžãŒã®äžéšãšããŠIntel IPTã䜿çšããå Žåããã«ãã€ã³ããã»ããµã䜿çšããŠ30ç§ããšã«1åã®ã¿äœ¿çšãããäžæã®6æ¡ã®çªå·ãçæãããŸããããã¯ãäžæ£ã¢ã¯ã»ã¹ããä¿è·ããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããéé¢ãããŸãã è³æ Œæ å ±ã¯å®å šãªç©çããã€ã¹å ã§åŠçãããããããã«ãŠã§ã¢ã«ãããããã³ã°ãåé€ã¯ã§ããŸããã

ã¯ã©ã€ã¢ã³ããšãµãŒããŒã®çžäºäœçšãã¯ã³ã¿ã€ã ãã¹ã¯ãŒãèªèšŒã§ã®Intel IPTãã¯ãããžãŒã®é©çš
äŒç€Ÿã§ãã§ã«2èŠçŽ èªèšŒã䜿çšããŠããå ŽåãããŒããŠã§ã¢ããŒã¯ã³ã䜿çšãããšãã«çºçããããŸããŸãªäžäŸ¿ããšçµç¹çãªåé¡ã«ç²ŸéããŠããŸãã
OTPããµããŒãããIntel IPTã¯ãã·ã¹ãã ã®ãããã»ããã«çµã¿èŸŒãŸããããŒããŠã§ã¢ããŒã¯ã³ã§ãã ãã®å Žåãæ å ±ã»ãã¥ãªãã£ãœãªã¥ãŒã·ã§ã³ã®ãããã€ããŒãåå¥ã«éžæã§ããŸãã çµã¿èŸŒã¿ããŒã¯ã³ã䜿çšãããšãåå¥ã®ç©çããã€ã¹ã®äœ¿çšãæåŠã§ããŸããããã«ãããããšãã°ãVPNãžã®æ¥ç¶ã®ããã®2èŠçŽ æé ãç°¡çŽ åãããŸãã åæã«ãIntel IPTã¯ã»ãŒé 延ãªãæ©èœãããŠãŒã¶ãŒã®æ¥åžžæ¥åãç°¡çŽ åããã³ä¿é²ããŸãã
Intelã¯ãOTPãµããŒããåããIntel ITPãã¯ãããžãŒã䜿çšããããšã§ãããŒããŠã§ã¢ã®ä¿¡é Œã®ã«ãŒããIntelããã»ããµãããŸããŸãªWebãµã€ããéèæ©é¢ããããã¯ãŒã¯ãµãŒãã¹ã«åºã¥ãç¹å®ã®ããã€ã¹ã®ä¿¡é Œæ§ã®èšŒæãæäŸããŸãã ãããã®ãµãŒãã¹ã¯ãã¹ãŠãã¢ã«ãŠã³ãã«ãæªæã®ããããã°ã©ã ãæ»æè ã§ã¯ãªãããã®æš©å©ãæã€ã¢ã«ãŠã³ããå«ãŸããŠãããšããè¿œå ã®ä¿èšŒãåãåããŸãã OTPã§Intel IPTã䜿çšããã·ã¹ãã ã¯ãããŸããŸãªå€èŠçŽ èªèšŒã¹ããŒã ãå®è£ ãããœãªã¥ãŒã·ã§ã³ã§äœ¿çšã§ããå人ããŒã¿ããã³ãã©ã³ã¶ã¯ã·ã§ã³æ€èšŒæ¹æ³ã«å¯Ÿããè¿œå ã®ä¿è·ãæäŸããŸãã
ãŸãšã
Intel SGXãVMXãIPTãã¯ãããžãŒãçäœèªèšŒã·ã¹ãã ã®ã»ãã¥ãªãã£ã¬ãã«ãã©ã®ããã«åäžããããã«ã€ããŠè©±ããŸããã ããããããã§è©±ã¯çµããã§ã¯ãããŸããã 次åã¯ãIntel AES-NIãSecure Keyãããã³Intel RealSenseã«ã€ããŠãèªã¿ãã ããã