
UEFIã»ãã¥ãªãã£ã«é¢ããç§ã®æèŠã¯çµãããŸããã ãã®æåŸã®éšåã§ã¯ãææãªæè¡ãšå°æ¥ã®èšç»ã«ã€ããŠè©±ããã³ã¡ã³ãã§èªè
ãšãã£ããããããšãæ®ã£ãŠããŸãã
ãã¡ãŒã ãŠã§ã¢ã®ã»ãã¥ãªãã£ã
STM ã
SGXããã³
PSPã«ãã£ãŠã©ã®ããã«åœ¹ç«ã€ãã«ã€ããŠèå³ãããå Žåã¯ã
ãæãããŠããŸãã
åæçãªç²Ÿç¥ãèŠããäŒçµ±ãåãåºãããã®ã§ãåã®éšåãžã®èšåã¯ããŸãããèªåã§
ãããæ¢ããŠãã ããã
ããŒã7ã æªæ¥ã®æè¡
以äžã«èª¬æãããã¹ãŠã®æè¡ã¯é·ãéå
¬åŒã«çºè¡šãããŠããŸããããéåžžã«å¹³å¡ãªçç±ã§ææ¥ã®æ©äŒãšããŠãããã«ã€ããŠã話ããŸã-UEFIã®ãããªæ¥éã«æé·ããŠããç°å¢ã§ããããã€ãã®æè¡ã®æ瀺ããå°å
¥ãŸã§å¹ŽïŒHaswellã«ç»å ŽãããããŸã é©åã«å®è£
ãããŠããªã
PFATãæãåºãã ãã§ååã§ãïŒã
ãã§ã«ç¬¬3éšã®çµããã§SGXãšSTMã«ã€ããŠè¿°ã¹ãã®ã§ããªãã·ã§ã³ã®ãªããã¹ãŠã®æ°ããAMD APUãå«ãPSPãã話ãå§ããŸãã
AMDãã©ãããã©ãŒã ã»ãã¥ãªãã£ããã»ããµ
AMDã¯ãéå»5幎éã«åãããã»ãããšIntel SoCã«æèŒãããŠããIntel Management Engineã®æåãèŠãŠãé²æ©ã«è¿œãã€ããSoCã§ãã®ãããªãã®ãæ§ç¯ããããšã決å®ããŸããã
ããŒããŠã§ã¢ã®ä¿¡é Œã®ã«ãŒããæã¡ãããéåžžã®ä¹±æ°ãžã§ãã¬ãŒã¿ãŒã欲ãããæå·ã¢ã¯ã»ã©ã¬ãŒã¿ãŒãšTPM 2.0ãšãã¥ã¬ãŒã¿ãŒã欲ãã-ããããã®ããšã欲ãããããããã¹ãŠå®è£
ããã®ã¯é£ãããªã-ãã³ããŒããIPã³ã¢ã賌å
¥ãããã¡ãŒã ãŠã§ã¢ãæžããŠãã©ãããã©ãŒã ã®ãŠãŒã¶ãŒããããŸãã«ãå€ãã®ãéãæ¯æããããã®ããªãã«ããããšãã決å®ããªãããã«ãããå€ãã®ã·ã¹ãã æ©èœã§ãããåŸ
ã¡ãŸãã
ãã®çµæãTrustCoreãã¯ãããžãŒãæèŒããARM Cortex-A5ã³ã¢ãIPã³ã¢ãšããŠè³Œå
¥ããTPM 2.0ã®ãšãã¥ã¬ãŒã·ã§ã³ã®ããã«Trustonicãã
TEEã³ãŒãã賌å
¥ããæ®ããå®è£
ããŠ
ãçµæã®SoC-inside-SoCã次ã®UEFIãã©ã°ãã§ã¹ãã§
çºè¡šããŸãã ã
TPMããšãã¥ã¬ãŒãããããšã«ã€ããŠã®å
ã®PSPã¹ããŒã ã¯ãåœæ話ããŠããŸããã§ãããUEFIã»ãã¥ãªãã£ã®å Žåããã®åãPSPã¯ãHVBãµãã·ã¹ãã ãS3 BootScriptã®å
éšã¹ãã¬ãŒãžãMeasured Bootãå®è£
ããããã®TPMãšãã¥ã¬ãŒã¿ãŒãä¹±æ°ãžã§ãã¬ãŒã¿ãŒãæå·åã¢ã¯ã»ã©ã¬ãŒã¿ãŒãæäŸããŸãã
ããŒããŠã§ã¢æ€èšŒæžã¿ããŒã
ãã®ãã¯ãããžãŒã«ã€ããŠã¯
ååã§ãã§ã«èª¬æããŸããããããã§ããã«è©³ãã説æããŸãã ãã®æ¬è³ªã¯åçŽã§ã-PSPã¯BSPã®éå§åã«å¶åŸ¡ãååŸãããã¡ãŒã ãŠã§ã¢ã®ç¬¬2ã¹ããŒãžã®å
容ãšéå§ã³ãŒããå€æŽãããŠããªãããšã確èªããŸããæåããå ŽåãBSPã¯ResetVectorã§éå§ãããã·ã³ã¯éåžžã©ããèµ·åãã倱æããå Žåã¯ãšã©ãŒã³ãŒãã衚瀺ãããŸãPOSTãšã³ã³ãŒããŒãšBSPã¯ããããµã€ã¯ã«ãã¹ãã³ããŠããŒããªã»ãããããã®åŸãã¹ãŠãåã³ç¹°ãè¿ãããŸãã
ãããã£ãŠãHVBã¯ã·ã¹ãã ã®ä¿¡é Œã®ããŒããŠã§ã¢ã«ãŒãã§ããããã®ãã¯ãããžãŒã¯PEIããªã¥ãŒã ã®ã¿ãä¿è·ããä»ã®ãã¹ãŠã®ãã§ãã¯ã¯ãã¡ãŒã ãŠã§ã¢ã®äœæè
ã®è¯å¿ã«åºã¥ããŠããŸãã
ãªãªãžãã«ã®AMD HVBåè·¯ããã©ã«ãã§ã¯ãHVBã¯ãã¹ãŠã®ãã©ãããã©ãŒã ã§ç¡å¹ã«ãªã£ãŠããããã®çµã¿èŸŒã¿ã«ã¯éåžžã«éèŠãªæ§æãå¿
èŠã§ãããã®ãããç§ã¯ãŸã ãã¯ãããžãŒããã¹ãããŠããŸããïŒPSPãæèŒãã第2äžä»£ã®ããã»ããµãŒã®ãã¡ãŒã ãŠã§ã¢ã§çŽæ¥åäœããŸãïŒã ã
çµ±åTPM 2.0
TCGã¯ãŒãã³ã°ã°ã«ãŒãã¯ãWindows 10ã®ãªãªãŒã¹ã«èå³æ·±ãã€ãããŒã·ã§ã³ãæºåããŸããã以å䜿çšãããŠããTISã€ã³ã¿ãŒãã§ã€ã¹ã®ä»£ããã«ãACPIåŒã³åºãã䜿çšããŠTPMã¢ãžã¥ãŒã«ãšããåãã§ããããã«ãªããããã»ããµã¡ãŒã«ãŒã¯å€éšãããã§ã¯ãªããããã»ããã«çŽæ¥TPMãå®è£
ã§ããå®è£
ãœãããŠã§ã¢ã®ååãäœæããããšããå¯èœã ãã®ãããªãœãªã¥ãŒã·ã§ã³ã«ã¯ãSSOP-28ããã±ãŒãžã®TPMãããããããããã»ããã®äº€æãé£ããïŒãšãã¡ãªããïŒãã³ããŒããã¯ã€ã³ïŒã®äž¡æ¹ã®å©ç¹ããããŸãããIntelïŒSkylakeã®å ŽåïŒãšAMDïŒPSPãåããAPUã®å ŽåïŒã§å®è£
ãããŠããŸãã ã TPM 2.0æšæºã¯äž¡æ¹ã®ãœãªã¥ãŒã·ã§ã³ã§å®å
šã«ã¯ãµããŒããããŠããŸããããTPMãçµ±åãããã·ã¹ãã ãBitLockerã䜿çšããŠWindows 10 Ready蚌ææžãåä¿¡ã§ããããã«ããããã ãã§ãã ãã ããTPMãŠãŒã¶ãŒã®æ£ã¯ééããªãå°çããŸãã çµ±åãããTPMãšãšãã«ãããŒããŠã§ã¢RNGãšæå·ã¢ã¯ã»ã©ã¬ãŒã¿ãç»å ŽããŸããããããã¯ãå¿
èŠã«å¿ããŠåå¥ã«äœ¿çšã§ããŸãã
ã»ãã¥ã¢ãªS3 BootScriptã¹ãã¬ãŒãž
å¥ã®PSPæ©èœã¯çµã¿èŸŒã¿ã®NVRAMã§ããŠãŒã¶ãŒããŒã¿ãå®å
šã«ä¿åã§ããŸãã çŸæç¹ã§ã¯ãAMDã¯S3 BootScriptãä¿åããã·ã¹ãã ãæ»æããä¿è·ããŠããŸãã åæã«ãS3ããã®çµäºæéã¯ãããã«äœäžããŸãããã»ãã¥ãªãã£ã®ããã«50ã100ããªç§äœåã«èš±å®¹ã§ããŸãã
æ®å¿µãªãããPSPã«å
¬éãããŠããããã¥ã¡ã³ããããAMDã¯éåžžã«æ²ãããããæçšãªãªã³ã¯ãæäŸããããšã¯ã§ããŸãããNDAã«éåããããšãªãäŒããããšãã§ãããã¹ãŠã®ããšãæ¢ã«è¿°ã¹ãŸããã
Intel Software Guard Extensions
Intelãã¯ãããžãŒã«æ»ããŸãããã 圌ãã¯çŽ1幎åã«SGXã«ã€ããŠè©±ãå§ããŸãããã次ã®ãã€ã¯ãã³ãŒãã¢ããããŒãã§IntelãSkylakeããã»ããµçšã«ãªã³ã«ãããšããæ°é±éåã«ãšã³ããŠãŒã¶ãŒãå©çšã§ããããã«ãªããŸããã SGXã¯ãã¢ããªã±ãŒã·ã§ã³ããããã ãé£ã³å°ããã€ãŸã ãã®ã¢ã¯ã»ã¹ããªã³ã°0ãSMMãªã©ã®ããç¹æš©çãªå®è¡ã¢ãŒãããè¡ãããå Žåã§ããå€éšã¢ã¯ã»ã¹ããããŒããŠã§ã¢ã§ä¿è·ãããã³ãŒããšããŒã¿ã®ã¡ã¢ãªé åã
ãã®ãã¯ãããžãŒã¯ç解ãšäœ¿çšãéåžžã«è€éã§ããïŒ
ããã°ã©ãã³ã°ãªãã¡ã¬ã³ã¹ã®ã»ãŒ200ããŒãž ïŒãæœåšçã«éåžžã«åŒ·åã§ãããããIntelã¯ãããä¿é²ãå§ããŸããã
ãã®ãã¬ãŒã³ããŒã·ã§ã³ã® 200æ以äžã®ã¹ã©ã€ãã®1ã€ã§ããSGXã®åäœåçãã80åã®ãããªåœ¢åŒã§ã ãã€ã³ãã«ã¯SGXãããªããŒã¹ãµã³ãããã¯ã¹ããšåŒã³ãŸããã€ãŸããæªæã®ãããœãããŠã§ã¢ãä¿¡é Œã§ããªããœãããŠã§ã¢ãéé¢ãã代ããã«ãSGXã䜿çšããŠããã°ã©ã ã¯ä»ã®äžçããéé¢ã§ããŸãã ãã®èãæ¹ã¯ARM TrustZoneã«äŒŒãŠããŸãããARMã®äžçãéåžžã®ä¿¡é Œã§ãããã®ã«åå²ããã
SMCåœä»€ã®åŒã³åºããéããŠã®ã¿çžäºäœçšããç°ãªãã³ã¢ã§å®è¡ãããå ŽåãIntelã¯åãã³ã¢ãæã¡ãŸãããã¡ã¢ãªã¯éåžžããã³å®å
šã«å
±æãããŸãïŒ
æ®éã®èšæ¶ã®äžã«ããå®å
šãªé£ã³å°ããã®æè¡ã«å¯Ÿããç§ã®æ
床ã¯ãŸã 圢æãããŠããŸãã-ãŸã è©ŠããŠããŸããã çŸæç¹ã§ã¯Skylakeã®äœæ¥ãããŠããŸããã ããã«ãããããããç§ã¯ããŸãã«ãé²æ©ã«è¿œãã€ãããšããŠããã®ã§ãç§ã®è³ããã圌ããSGXã«ã€ããŠæžããŠããããšããã¹ãŠèªã¿ãŸããïŒ
Intel Webãµã€ãã®SGXã«é¢ããããŒã¿ã« ã
ãã«ã ã·ã¥ã¿ããå·¥ç§å€§åŠã®ãµã€ãããSGXã«ã€ããŠã®æŠèŠè¬çŸ© ã
å€æ°ã®èå³æ·±ããªã³ã¯ãå«ãNccGroupã¬ãã¥ãŒèšäº ã
SGXçšã®ãªãŒãã³ãœãŒã¹ã³ãŒãèšè¿°ãã©ãããã©ãŒã ã
ãããŠäžè¬çã«ã
firmwaresecury.comã®SGXã»ã¯ã·ã§ã³å
šäœ ã
Intel SMI Transfer Monitor
ãã§ã«è¿°ã¹ã2çªç®ã®Intelãã¯ãããžãŒã¯STMã§ãã æåã®èšåã¯2009幎ã«é¡ãã6幎ã®éçºã®åŸããã®æè¡ã¯2015幎8æã«ããããå°å
¥ãããŸããããã®æ¬è³ªã¯ã·ã³ãã«ã§ããã«ãŒãã«ã¡ã¢ãªãªã©ã®ããŒã¿ãå€æŽãããªã©ã
IDF2015ã§ã®STMãã¬ãŒã³ããŒã·ã§ã³ããã®ã¹ã©ã€ãããã®ãã¯ãããžãŒã¯ãSMMããã»ããµãŒã®ãæ»æé¢ããšãSMIããã»ããµãŒã®ãããã³ã°ã«ããç Žå£çãªçµæã®äž¡æ¹ã倧å¹
ã«åæžã§ããŸãã ããšãã°ããã¡ãŒã ãŠã§ã¢ã®æŽæ°ã«äœ¿çšãããããã»ããµãé€ããã¹ãŠã®ããã»ããµã®MMIOãããã»ãããžã®ã¢ã¯ã»ã¹ãæåŠããããšã«ãããä»ã®ããã»ããµããä¿è·ããããšãã§ããŸããããšãæ»æè
ã«ã¯ã©ãã¯ãããŠããæ»æè
ã¯ä»»æã®ã³ãŒããå®è¡ã§ããŸãã
æãéèŠãªå©ç¹ã¯æ°åããªãããšã§ããSTMã®åäœã«ã¯ãä»å±ã®VT-x / AMDVãšã¢ã¯ã»ã¹ã¬ãã«ã®æ£ããèšå®ã®ã¿ãå¿
èŠã§ãã çŸæç¹ã§ã¯ãSTMã®äºåãµããŒãã¯MinnowBoard Maxãã¹ãããŒãã«å¯ŸããŠã®ã¿EDK2ã«å®è£
ãããŠããŸãããIBVã¯ä»åŸ6ãæãã1幎以å
ã«ãã©ãããã©ãŒã ã«åãããŠé©å¿ããSMMããããã³ã°ããæããã¯ããã«å°ãªããªããŸãã ç¡æã®ã»ãã¥ãªãã£ããªãããšã¯æããã§ãããSTMã¯ããã»ã©åçŽã§ã¯ãªãSMMåæåããã»ã¹ã«ãããªãè€éãããããããããã«SMIåŠçã«ã¯æéãããããŸãïŒããã«æªãããšã«ãå®éã«ã¯ããã«äžå®ã®æéãããããããŒãRTOSã®ãŠãŒã¶ãŒã¯åã³èŠãã¿ãŸãïŒã«å ããŠãä»®æ³åã«ããããã©ãããã©ãŒã ã®ç¥ããªããŠãŒã¶ãŒããªãã«ãªããSTMããã®ãããªç¶æ³ã§äœ¿çšã§ããªããªããŸãã ããã«ãããããããç§ã¯MinnowBoardã«STMãã©ã³ããçªã£èŸŒãã ãç§ã¯èšãããšãã§ããïŒIBVããããããæ©ãå®è£
ãã-ããè¯ãã
ãåžæã®æ¹ãžã®è¿œå æ
å ±ïŒ
STMã®çºè¡šãšãšãã«Vincent Zimmerã«ããæçš¿ ã
䟿å©ãªãªã³ã¯ãåããã€ã³ãã«ã®STMããŒã¿ã« ã
ãããã«
ããŠããã®èšäºã®ãµã€ã¯ã«ã¯çµãããŸãããèªè
ãèå³ãæã£ãŠããããšãé¡ã£ãŠããŸãã
ãã¯ãããžãŒã¯æ¥éã«éçºãããŠãããææ¥ããã€ãã®ãã¬ãŒã¯ã¹ã«ãŒãã¯ãããžãŒãç»å Žããå ŽåïŒãŸãã¯æ¢åã®ãã¯ãããžãŒã«å€§ããªç©ŽãèŠã€ãã£ãå ŽåïŒããããã«ã€ããŠæžããããšæããŸãã
次ã®èšäºã§ã¯ãSecureBootã飌ããªãããŸã-PKããã³KEKããŒãçæããåå·çè
ã¯ããŒã§çœ²åãããŠããªããã®ã®ããŠã³ããŒããçŠæ¢ã§ããŸãã ãæž
èŽããããšãããããŸããã
PS圌ã¯ãã¡ã€ãã«ããŒãã«ã®æåŸã®éšåã§çŽæããŸããããã§ããŸããã§ããã ã¿ã©-ç§ã¯ãã·ã¢èªã§æžãããšãã§ããŸã-ååŸã«ãçŸããã¬ã€ã¢ãŠããããããŒãã«-ç³ã®è±ã¯åºãŸããã èª ã«ç³ãèš³ãããŸããã