2011幎ã«åããŠUEFI 2.2èŠæ Œã«SecureBootãå°å ¥ãããŸãããã2012幎ã®åãã«ãã¹ãŠã®åŽé¢ãããŒãžã§ã³2.3.1Cã§å®è£ ãããŸããã ãã®æè¡ã®äž»ãªéçºè ã¯ãã€ã¯ããœããã§ããã Windows 8 Ready蚌ææžãåãåãã«ã¯ããŸã ãªãªãŒã¹ãããŠããªãæ°ããOSã®å Žåããã¹ãŠã®æ°ããPCã«ããã©ã«ãã§SecureBootãå®è£ ããŠå«ããå¿ èŠããããšããã«è¿°ã¹ãŸããã ãã®å£°æã¯ãããªãŒãœãããŠã§ã¢ã®æ¯æè ããéãæ¹å€ã®æ³¢ãåŒãèµ·ãããŸããã
MSãšã³ãã¥ããã£ãšã®å¯Ÿç«ãã©ã®ããã«çµãã£ãããSecureBootãã»ãŒ4幎ã®æé·ãéããåŸã«ã©ã®ããã«èŠãããããããŠã©ããªçš®é¡ã®æ»æããŸã å¯èœãã«ã€ããŠèå³ãããå Žåã¯ãcatãžããããã
æ¢ããŠãç§ã¯ã»ãšãã©å¿ããŠããŸããïŒè¯ãäŒçµ±ã«ãããšãããããã¹ãããããããšãã§ãã人ã ã®ããã«ãåã® éšå ãž ã® ãªã³ã¯ã® ã»ãã ã
ããŒã5 ã»ãã¥ã¢ããŒã
ããã¯äœã§ããïŒ
Habréã«é¢ãã12件ã®èšäºãèªãã åŸãSecureBootã«ã€ããŠè©³ãã説æãã䟡å€ããããšã¯æããŸãããããã¯ãç§ãªãã§ãã§ã«äœåºŠãè¡ãããŠããŸãã ããã§ãããã®ãããã¯ã«äžæ £ããªèªè ã«å¯ŸããŠã¯ããŸã£ããäœãèšããªãããšã¯ç¯çœªã«ãªããŸããããã§ç§ãã¡ã¯2éã«è¡ãããã¹ãŠãç¥ããããã¹ãŠã®äººãä»æ§ã«éããŸãã
SecureBootã¯ãUEFIäºæãã¡ãŒã ãŠã§ã¢ãå€éšã³ã³ããŒãã³ãïŒããŒãããŒããŒããã©ã€ããŒãããã³UEFI OptionROMïŒã®ä¿¡é Œæ§ãæ€èšŒã§ãããœãããŠã§ã¢ãã¯ãããžãŒã§ãã ãããã®å®è¡å¯èœã³ã³ããŒãã³ãã¯ãèµ·åæã«ãã§ãã¯ãããé»åããžã¿ã«çœ²åã§çœ²åããå¿ èŠããããå®å šã«ååšããªããç ŽæããŠãããä¿¡é Œã§ãããªã¹ãã«ååšããªãïŒ db ïŒããŸãã¯çŠæ¢ãªã¹ãã«ååšããïŒ dbx ïŒå Žåã察å¿ããã³ã³ããŒãã³ãã¯èµ·åããŸããïŒãã®åäœãæ§æãããŠããå ŽåããããŸãïŒããªãã¯ããããããããŸããããããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãïŒã çŸåšãEDSã¢ã«ãŽãªãºã ãšããŠãæšæºã§ã¯RSA2048ãšSHA256ã®çµã¿åãããæšå¥šããŠããŸããRSA2048ãšSHA256ã¯ãçããŠããã·ã¹ãã ã§èŠãã»ãšãã©ãã¹ãŠã®ã·ã¹ãã ã§äœ¿çšãããŠããŸãã
ããŒã«ã€ããŠå°ã
SecureBootã¯æ¬¡ã®ããŒéå±€ã䜿çšããŸãã
äžéšã«ããPKã¯ããã©ãããã©ãŒã ãŠãŒã¶ãŒãšãã®ãã¡ãŒã ãŠã§ã¢éã®ä¿¡é Œã確ç«ããã¡ã€ã³ããŒã§ãã RSAããŒãšåæ§ã«ã PKpubå ¬éããŒãšPKprivç§å¯ããŒã§æ§æããã èªå·±çœ²å蚌ææžãšããŠNVRAMã«ä¿åãããŸãã ä»æ§ã¯ã ãã©ãããã©ãŒã ææè ã«ãã£ãŠPKprivãã©ã€ããŒãããŒãã®ææè ãšåŒã°ããçç±ããªãããã§ã¯ãããŸããã
å¿ èŠãªã»ãã¥ãªãã£ã¬ãã«ã«å¿ããŠãPKã¯æ¬¡ã®ããã«çæã§ããŸãã
- åPCã®ç¬èªã®ããŒã æ倧éã®ã»ãã¥ãªãã£ãããŒç®¡çã«ããæ倧ã®hemoæ žã§ããããªãŒã¯ã¯å®éã«ã¯ã²ã©ããããŸããããŸãããªãŒã¯ããããŒã§ã·ã¹ãã ã䟵害ããŠããé£æ¥ããããŒã䟵害ããããšã«ã¯ãªããŸããã
- åã¢ãã«ãããã®å ±éããŒã ããŒãã å®å šæ§ã¯å£ããŸãããç¹ã«èŠéãåãããŒãäžã§çµã¿ç«ãŠãããŠããå Žåãä¿å®ã容æã§ãã
- åã©ã€ã³ãããã®å ±éããŒã åè·¯åºæ¿ã åã®æ®µèœãšåãããã«ãã»ãã¥ãªãã£ã¯å°ãäœããªããŸãããå©äŸ¿æ§ã¯å°ãé«ããªããŸãããã»ãã¥ãªãã£ãšå©äŸ¿æ§ã®ãã¬ãŒããªãã®å žåçãªã±ãŒã¹ã§ãã
- ãã¹ãŠã®ã¡ãŒã«ãŒã®ããŒãã«å ±éã®ããŒã ã»ãã¥ãªãã£ã«é¢ããŠæãã°ãããŠããŸãããåæã«ãæ®å¿µãªããšã«ãã»ãšãã©ã®æãäžè¬çãªãœãªã¥ãŒã·ã§ã³ã§ãã ããŒã¯ãœãŒã¹ããªãŒã«çŽæ¥ä¿åãããããŒãšå ±ã«ãªãŒã¯ããŸãããã®åŸããã®ã¡ãŒã«ãŒã®ããŒãäžã®SecureBootã¯ãã¯ãé害ã«ãªããŸããã åæã«ãçºçæºã¯ã»ãšãã©ã®å Žåéãã«æŒãã補é æ¥è ã¯æããã«è匱ãªè£œåãæ°å¹Žéçç£ããå¯èœæ§ããããŸãã
æåãPKã¯ãã©ãããã©ãŒã ã®è£œé å ã«ãã£ãŠçæãããããèªäœã¯å®è¡å¯èœã³ã³ããŒãã³ãã®çœ²åãšçœ²åã®æ€èšŒã«ã¯é¢äžããŸãããã KEKããŒã¹ãã¢ã®ç®¡çã«äœ¿çšãããŸãã KEKprivä»æ§ã®ææè ã¯ã èš±å¯ããããŠãŒã¶ãŒãåŒã³åºããŸã ã åKEKããŒã¯ãå®è¡å¯èœã³ã³ããŒãã³ãã®ã¡ãŒã«ãŒãšãã¡ãŒã ãŠã§ã¢ã®éã«ä¿¡é Œé¢ä¿ã確ç«ããŸãã ãããã®ããŒã¯ãdbã¹ãã¬ãŒãžïŒå®è¡ãèš±å¯ãããŠããã³ã³ããŒãã³ãã®èšŒææžãšããã·ã¥ïŒãèŠã€ããdbxïŒKEKprivææè ãæ£ãã眲åã«ããããããå®è¡ãçŠæ¢ããå¿ èŠãããã³ã³ããŒãã³ãã®èšŒææžãšããã·ã¥ãå ¥åã§ããå ŽæïŒã管çããããã«äœ¿çšãããŸãã
ããã§æåã®çã¯èª°ã§ããïŒ
ã»ãšãã©ã®SecureBootæ§æã§ã¯ãPKã¯ããã©ã«ãã§è£œé è ã«ãã£ãŠæäŸãããŸãã ããŒããKEKã¯Microsoft Corporation KEK CA 2011ã®å¯äžã®èšŒææžãæã¡ãdbã¯Microsoft Windows Production CA 2011蚌ææžãæã£ãŠããå¿ èŠããããŸããããã¡ãŒã ãŠã§ã¢ãæŽæ°ããããã®ããŸããŸãªãŠãŒãã£ãªãã£ã«çœ²åããCanonical蚌ææžãšãã©ãããã©ãŒã ã¡ãŒã«ãŒããã®èšŒææžãè¿œå ããããšããããŸã ã»ãšãã©ã®ã·ã¹ãã ã®dbxãªããžããªã¯ç©ºã§ãããããã»ã©åã§ã¯ãããŸããããMSã¯ãã®äžã«ããã€ãã®ãšã³ããªãäœæããWindows 10 Ready蚌ææžãååŸããããã«æ°ããã·ã¹ãã ã§ããããèŠæ±ããããã«ãªããŸããã ããã©ã«ãæ§æã®SecureBootã®èŠ³ç¹ããèŠããšãã¡ãŒã«ãŒãã·ã¹ãã ã®ææè ã§ããããšãããããŸãã ããŒããããã³ãã®å¯äžã®æ¿èªããããŠãŒã¶ãŒã¯ãã€ã¯ããœããã§ãã 幞ããªããšã«ïŒãããŠãã»ãšãã©ã®å ŽåããªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã³ãã¥ããã£ã®ãã¬ãã·ã£ãŒã®ããïŒãx86ã·ã¹ãã ã®å€§éšåã®ãã®æ²ããæ æ¯ã¯ãæšæºããŒãåé€ããBIOSã»ããã¢ããããèªåã®ããŒãè¿œå ããããšã§ç Žå£ã§ããŸãããããã«ã€ããŠã¯å¥ã«æžããŸãã
CSMãšã®éäºææ§
SecureBootã¯äºææ§ããªãããã CSMãšçµã¿åãããŠæå¹ã«ããªãã§ãã ããã CSMãªãã§ã¯èµ·åã§ããªãå€ãOSãåŒãç¶ã䜿çšããå ŽåãSecureBootã¯åœ¹ã«ç«ã¡ãŸããã æãèå³æ·±ãã®ã¯ãMSããŸã Windows 7ã«GOPãµããŒããè¿œå ããããšãæãŸããCSMãªãã§ãã®OSãããŒãããããšã¯ãŸã£ããæ©èœããªãããç²ç®çã«è¡ãããããšã§ããããã«ããããŠãŒã¶ãŒãç¬ç«ããŠWindows 7ãSecureBootãšäºææ§ã®ãªããã®ã«ããããšã¯ã»ãŒç¢ºå®ã§ã圌女ã®ããŒãããŒããŒã«çœ²åããŸãã äŒæ¥ã»ã°ã¡ã³ãã§ã®Windows 7ã®ã·ã§ã¢ã¯ãæ°ãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ã·ã§ã¢ãã¯ããã«è¶ ããŠãããããSecureBootãæå¹ã«ãªã£ãŠããã·ã¹ãã ã¯ãå®éã«åœ¹ç«ã€å Žæã§ã¯ãŸã ããŸã人æ°ããããŸããã
SecureBootãžã®æ»æ
ãã¯ã¿ãŒã«ã€ããŠ
æåã«ãSecureBootã®ã©ã®éšåãæ»æãããå¯èœæ§ããããæ»æã®æåãäœãè ããããæ£ç¢ºã«ç解ããå¿ èŠããããŸãã
- NVRAM PKãKEKãdbãdbxãããã³SecureBootã«é¢é£ããä»ã®å€æ°ã¯NVRAMã«ä¿åããããããæ»æãæåãããšãã»ãšãã©ã®å ŽåãSecureBootãç¡å¹ãŸãã¯å±éºã«ãããããŸãã
- å®è£ ã NVRAMã§åé¡ããªããã°ã眲åã®æ€èšŒãããŒã¹ãã¬ãŒãžãªã©ã®å®è£ ã«åé¡ãããå¯èœæ§ããããŸãã
- ããŒã æ»æã¯è€éã§åçŽã§ãã å¿ èŠãªããšã¯ãä¿¡é Œãã§ãŒã³ãã誰ãã®ç§å¯ããŒãçã¿ãããã§æªæã®ããããŒãããŒããŒã«çœ²åããããšã§ãã
- ä¿¡é Œã§ããããŒãããŒããŒã åã®æ®µèœãããããã«åçŽã§ããç¹ã«ãdbã®Canonical蚌ææžææè ã®å Žåã çŸåšã®ããŒãããŒãããUbuntuãªããžããªããã®åè¿°ã®GRUB2蚌ææžã§çœ²åããããã®ã«å€æŽããã ãã§ãããããçš®é¡ã®ãã«ãŠã§ã¢ãããŠã³ããŒããããŸãã
å®éã«æ»æãã
PKãåé€ããŠSecureBootãç¡å¹ã«ãã
æ»æè ãNVRAMãªããžããªãžã®æžã蟌ã¿ã¢ã¯ã»ã¹æš©ãæã£ãŠããå ŽåïŒããã¯ãããã€ãã®PRã¬ãžã¹ã¿ã§SPIããããä¿è·ããã人ã«ããèµ·ãããŸãïŒãçŸåšã®PKãç°¡åã«åé€ã§ããŸããããã«ãããSecureBootãèªåçã«ç¡å¹ã«ãªããæ°ããããŒã®ã€ã³ã¹ããŒã«ã¢ãŒãã«ãªããŸãã
CurrentModeãç·šéããŠSecureBootãç¡å¹ã«ãã
ãã®æ»æã¯ãNVRAMãžã®æ»æãšå®è£ ã®çµã¿åããã§ãã äžéšã®ã·ã¹ãã ã§ã¯ãçŸåšã®SecureBootã¢ãŒãã¯Setupå€æ°ãžã®æžã蟌ã¿ã«ãã£ãŠå¶åŸ¡ãããäºæããã«RTãã©ã°ãèšå®ãããŠããå Žåãæ»æè ã¯åã«ç®çã®ãªãã»ããã§Setupã«ãŒããæžã蟌ãããšã§SecureBootãç¡å¹ã«ã§ããŸããããã¯ãIFRãã³ããåæããããšã§ç°¡åã«èŠã€ããããšãã§ããŸã æ»æã¯ããŒãã®ããã«éŠ¬é¹¿ããŠããŸãããäŸç¶ãšããŠæ»æãåããããã·ã¹ãã ããããããããŸãã
SecureBootãã€ãã¹ç·šéExecutionPolicy
以åã®æ»æã®ããªãšãŒã·ã§ã³ã§ãããä»åã¯ãªãã«ãªã£ãŠããã®ã¯SecureBootèªäœã§ã¯ãªããEDSãäžèŽããªããååšããªãå Žåã«ããŠã³ããŒããç¶ç¶ããããšã®çŠæ¢ã§ãã ãŸããã»ããã¢ããå€æ°ã«RTãã©ã°ãå¿ èŠã§ããã以åã®ããŒãžã§ã³ãããå°ãäžè¬çã§ã¯ãããŸããããSecureBootãåæããã«éãã«ãã€ãã¹ã§ããŸãã
SecureBootãã€ãã¹ãç ŽæããNVRAM
äžéšã®ã·ã¹ãã ã§ã¯ãSecureBootããã€ãã¹ããã«ã¯ãNVRAMãå°ãå°ç¡ãã«ããŠïŒããšãã°ãã¹ãã¬ãŒãžã容éãã£ã±ãã«ïŒãSecureBootãç¡å¹ã«ããããã€ãã¹ããã ãã§ååã§ãã ãã®åäœã¯ãŸãã§ãããæ»æã¯éåžžã«åçŽãªã®ã§ãã©ã®ã·ã¹ãã ã§ãè©ŠããŠã¿ãã®ãçã«ããªã£ãŠããŸãã 極端ãªå ŽåãNVRAMãã©ã€ããŒãæ¬åœã«æªãå ŽåãSecureBootããã€ãã¹ãã代ããã«DoSãçºçããå¯èœæ§ããããŸãã
PCIïŒeïŒããã€ã¹ã䜿çšããSecureBootãã€ãã¹
çè«çã«ã¯ã察å¿ããOROMãæ€èšŒã«å€±æããå ŽåãSecureBootãæå¹ã«ãªã£ãŠããPCIããã€ã¹ããUEFI OptionROMãèµ·åããããšã¯ãããŸããããå®éã«ã¯å€æ°ã®ã·ã¹ãã ãPCIããã€ã¹ãç¡æ¡ä»¶ã«ä¿¡é Œãããããããã¹ãŠããã§ãã¯ããã«èµ·åããŸãã ãã®ãããªåäœã«ã¯å€ãã®äŸããããSecureBootãæèŒããŠããªãã·ã¹ãã ã¯ãã¹ãŠãã®æ»æã®åœ±é¿ãèªåçã«åããŸãããã®ãããThunderboltãFirewireãPCMCIAãExpressCardãªã©ã®å€éšã³ãã¯ã¿ãžã®PCIïŒeïŒãåé€ãããŸãã -ãã©ãããã©ãŒã ã®ã»ãã¥ãªãã£ã«å¯Ÿããç¯çœªãPCIããã€ã¹ã¯ãSMRAMãé€ãç©çã¡ã¢ãªã®ä»»æã®é åã§DMAãéå§ãïŒãã©ãããã©ãŒã ã®è£œé å ãä¿è·ãã€ã³ã¹ããŒã«ããããšãå¿ããŠããªãå Žåã®ã¿ïŒãOSããã³ãŠãŒã¶ãŒãããã¹ãŠã®ç§å¯ãçãããšãã§ããŸãã
ããŒãããŒããŒãPEããTEã«å€æããSecureBootãã€ãã¹
å€ãå®è£ æ»æãããã¯ãå®è£ ã®ååã«çªç¶æå¹ã§ããããšãå€æããŸããïŒã»ãšãã©ãã¹ãŠã®IBVãTianoCoreã®ãªãã¡ã¬ã³ã¹å®è£ ã䜿çšããŠããããïŒã æ»æã®æ¬è³ªïŒUEFIããŒããŒãããã³äžè¬çã«UEFIå®è¡å¯èœãã¡ã€ã«ã¯ã PE圢åŒãŸãã¯TE圢åŒïŒå®éã«ã¯åãPEã§ãããããããŒãåãæšãŠãããŠããããã䜿çšããããã£ãã·ã¥ã¹ããŒã¹ãå°ãªããªããŸãïŒã TE圢åŒã¯ãPEIã¢ãžã¥ãŒã«ãé€ãäžéšã®ãã¡ãŒã ãŠã§ã¢ã³ã³ããŒãã³ãã§äœ¿çšãããããšã¯ã»ãšãã©ãããŸããïŒPEIã®ååã§ã®ã¿ãRAMã®åæååã«ãããããŒã«240hãã€ããä¿åããã®ãçã«ããªã£ãŠããããïŒããããã£ãŠãEDSæ€èšŒã®åç §å®è£ ã§ã¯ãã§ãã¯ãããŸããã§ããäžè¬ã«TE圢åŒã®ç»åãããã³2ã€ã®å°ããªãšã©ãŒã®çµã¿åããã«ããããã®ãããªç»åã®æ€èšŒã¯åžžã«æåããŠããŸãã PE-> TEã®å€æã¯ç°¡åã§ãããããŒãããŒããŒã§ãã¡ã€ã«ãå°ãå€æŽããã ãã§SecureBootãåé¿ã§ãããããåé¡ã¯æ·±å»ã§è¿ éã«ä¿®æ£ããããšèªèãããŸããã ãã ãããã®åé¡ãæ±ããå€ãã·ã¹ãã ããŸã å€æ°ååšããããããã®æ»æã¯äŸç¶ãšããŠèšæ¶ãããŠããŸãã
å€éšã¡ãã£ã¢ããã®èµ·åã«ããSecureBootãã€ãã¹
ããã¯æ»æã§ã¯ãªããSecureBootãããŒãããŒããŒã®ãªãããŸãããŸã£ããä¿è·ãããç©ççã«ååšããæ»æè ãã¡ãã£ã¢ããã·ã¹ãã ãèµ·åã§ãããšãã誀解ã§ãã BIOSã®ãã¹ã¯ãŒããšããŒãããã€ã¹éžæã¡ãã¥ãŒã§ãããã身ãå®ãããšããããšããããŸãããåªç§ãªMSéçºè ã¯Windowsãããéžæã§ããShiftããŒãæŒããªãããã°ã€ã³ç»é¢ã§ãåèµ·åãã¢ã¯ã·ã§ã³ãéžæãã衚瀺ãããã¡ãã¥ãŒã§éžæããŸãèµ·åããã€ã¹ã MSã®çãããããããšãããããŸãã
ãããã«
ããŠãSecureBootã§ãããæŽçããŸããã次ã®ïŒæåŸã®éšåã§ïŒãœãããŠã§ã¢ãšããŒãœããªãã£ã«ã€ããŠèª¬æããŸãã
SecureBootããæž èŽããããšãããããŸããã