Ang mga ito ay ang pagsasalin ng dalawang post na nakuha ni James Bottomley sa kanyang blog. Ang unang post ay ginawa noong Pebrero 1 at tinawag na "LCA2013 at Muling Muling Pagbubuo ng Secure Boot"
Matagal na akong tahimik, kaya oras na para sa isang update kung ano ang nangyayari sa Secure Boot Loader ng Linux Foundation (lalo na't ipinakita ito sa LCA2013). ( Link sa mga slide )
Ang esensya ng problema ay natuklasan ni GregKH (Greg Kroah-Hartman, isang kernel developer) noong unang bahagi ng Disyembre na ang iminungkahing Pre-BootLoader ay hindi gagana sa kasalukuyan nitong anyo kasama ang Gummiboot. Nakakapanghina ito ng loob dahil nangangahulugan ito na hindi nito natutupad ang misyon ng Linux Foundation na paganahin ang lahat ng bootloader. Ang dahilan, matapos ang imbestigasyon, ay simple: Ang Gummiboot ay nilikha upang ipakita na maaari kang gumawa ng isang maliit at simpleng bootloader na sinasamantala ang lahat ng serbisyong magagamit sa UEFI platform sa halip na maging isang napakalaking link loader tulad ng GRUB. Sa kasamaang palad, nangangahulugan ito na nagbo-boot ito ng mga kernel gamit ang BootServices->LoadImage() function, na nangangahulugang ang kernel na ibo-boot ay kailangang dumaan sa mga secure boot check sa UEFI platform. Orihinal na, ang Pre-BootLoader, tulad ng shim (bootloader ni Mathew Garrett), ay isinulat upang gamitin ang PE/Coff link loading upang malampasan ang mga secure boot check. Sa kasamaang palad, nangangahulugan ito na anumang bagay na isinasagawa ng Pre-BootLoader ay dapat ding gumamit ng link loading upang malampasan ang mga secure boot check sa anumang nais nitong i-load, at samakatuwid ang Gummiboot, na sadyang hindi isang link loader, ay hindi gagana sa ilalim ng pamamaraang ito.
Kaya kinailangan kong muling ayusin at muling isulat: Ang problema ngayon ay nagmula sa "kung paano lumikha ng isang link loader na pinirmahan ng Microsoft na sumusunod sa kanilang mga patakaran" sa "kung paano paganahin ang lahat ng mga bata ng boot loader na gamitin ang BootServices-> LoadImage () na function ng paraan upang sundin ang kanilang mga patakaran. Sa kasamaang palad, may isang paraan upang maharang ang UEFI platform na pumirma sa imprastraktura sa pamamagitan ng pag-install ng iyong sariling arkitektura ng seguridad. Sa kasamaang palad, ang pagtutukoy ng pagpapatupad ng platform ay hindi tunay na bahagi ng pagtutukoy ng UEFI, ngunit mabuti na ito ay ipinatupad ng bawat Windows 8 system na maaari mong makita. Ang bagong arkitektura ay naharang ang protocol na iyon at nagdaragdag ng sarili nitong pagsusuri sa seguridad. Gayunpaman, mayroong isang pangalawang problema: Habang nasa callback ang security security protocol, hindi namin kinakailangang pagmamay-ari ang screen ng system ng UEFI, ginagawa itong ganap na imposibleng gumawa ng isang pagsubok ng gumagamit upang pahintulutan ang pagpapatupad ng binary. Sa kasamaang palad, mayroong isang hindi interactive na paraan upang magawa ito at iyon ang mekanismo ng SUSE Machine Owner Key (MOK). Samakatuwid, ang Linux Foundation Pre-BootLoader ay umunlad na ngayon upang magamit ang karaniwang mga variable ng MOK upang mag-imbak ng mga awtorisadong binary hash.
Ang pag-upshot ng lahat ng ito ay maaari mo nang gamitin ang Pre-BootLoader kasama si Gummiboot (tulad ng ginawa sa demo sa LCA2013). Upang mag-boot, kailangan mong magdagdag ng 2 hashes: isa para sa Gummiboot mismo at ang iba pa para sa kernel na nais mong i-boot, ngunit ito ay talagang isang magandang bagay dahil mayroon ka ngayong isang solong patakaran sa seguridad na kinokontrol ang buong pagkakasunud-sunod ng boot. Ang Gummiboot mismo ay na-patch din upang makilala ang isang pag-crash dahil sa pag-secure ng boot at nagpapakita ng isang mensahe na nagsasabi sa iyo kung aling hash upang magpatala.
Gagawa ako ng isang hiwalay na post na nagpapaliwanag kung paano gumagana ang bagong arkitektura, ngunit naisip ko na mas mahusay na ipaliwanag kung ano ang nangyari noong nakaraang buwan.
At ang pangalawang post na ito ay ginawa niya kahapon at tinawag na "Inilunsad ang Linux Foundation Secure Boot System"
Tulad ng ipinangako, narito ang Linux Foundation Secure Boot System. Ito ay talagang pinakawalan sa amin ng Microsoft noong Pebrero 6, ngunit sa mga paglalakbay, kumperensya, at pagpupulong wala akong oras upang mapatunayan ang lahat hanggang ngayon. Ang mga file ay:
PreLoader.efi (md5sum 4f7a4f566781869d252a09dc84923a82)
HashTool.efi (md5sum 45639d23aa5f2a394b03a65fc732acf2)
Lumikha din ng isang bootable na mini-USB na imahe; (Kailangan mong i-install ito sa USB gamit ang dd; ang imahe ay may mga partisyon ng GPT, kaya ginagamit nito ang buong disk). Mayroon itong isang shell ng EFI kung saan dapat ang kernel at gumagamit ng gummiboot upang mai-load ito. Mahahanap mo ito rito (md5sum 7971231d133e41dd667a184c255b599f).Upang magamit ang mini-USB na imahe, dapat mong ipasok ang mga hash para sa loader.efi (sa folder na \ EFI \ BOOT) at ang shell.efi (sa root folder). Nagsasama rin ito ng isang kopya ng KeyTool.efi, kailangan mong ipasok ang hash upang tumakbo.
Ano ang nangyari sa KeyTool.efi? Orihinal na ito ay magiging bahagi ng aming naka-sign kit. Gayunpaman, sa pagsubok ay natuklasan ng Microsoft na dahil sa isang bug sa isa sa mga platform ng UEFI, maaari itong magamit upang alisin ang key ng platform nang program, na makakasira sa sistema ng seguridad ng UEFI. Hanggang malutas namin ito (mayroon kaming pribadong vendor sa loop), tumanggi silang pirmahan ang KeyTool.efi bagaman maaari mong pahintulutan ito sa pamamagitan ng pagdaragdag ng mga variable ng MOK kung nais mong patakbuhin ito.
Ipaalam sa akin kung paano ito nangyayari dahil interesado akong mangalap ng puna sa kung ano ang gumagana at kung ano ang hindi. Sa partikular, nag-aalala ako na ang pag-override ng security protocol ay hindi gagana sa ilang mga platform, kaya't partikular kong nais na malaman kung hindi ito gagana para sa kanila.
Pinagmulan:
http://blog.hansenpartnership.com/lca2013-and-rearchitecting-secure-boot/
http://blog.hansenpartnership.com/linux-foundation-secure-boot-system-released/
Magpasya kung ito ay mabuti o masamang balita.