αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
αž™αžΎαž„αžŸαŸ’αž“αžΎαž±αŸ’αž™αž…αž»αŸ‡αž‘αŸ…αž€αž˜αŸ’αžšαž·αžαž‘αžΆαž”αž˜αŸ’αžαž„αž‘αŸ€αž αž αžΎαž™αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ x86-αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαŸ” αž›αžΎαž€αž“αŸαŸ‡ αž’αžΆαžαž»αž•αŸ’αžŸαŸ†αžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαž€αžΆαžšαžŸαž·αž€αŸ’αžŸαžΆαž‚αžΊ Intel Boot Guard (αž˜αž·αž“αžαŸ’αžšαžΌαžœαž…αŸ’αžšαž‘αŸ†αž‡αžΆαž˜αž½αž™ Intel BIOS Guard!) - αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αžŠαŸ‚αž›αž‡αžΏαž‡αžΆαž€αŸ‹αž›αžΎ BIOS αžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ„αž™ hardware αžŠαŸ‚αž›αž’αŸ’αž“αž€αž›αž€αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž’αžΆαž…αž”αžΎαž€ αž¬αž”αž·αž‘αž‡αžΆαž’αž…αž·αž“αŸ’αžαŸ’αžšαŸƒαž™αŸαž“αŸ…αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž•αž›αž·αžαŸ” αž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαžŽαžΆαžŸαŸ‹ αž™αžΎαž„αž”αžΆαž“αžŠαžΉαž„αž–αžΈαžšαžΌαž”αž˜αž“αŸ’αžαžŸαŸ’αžšαžΆαžœαž‡αŸ’αžšαžΆαžœαžšαž½αž…αž αžΎαž™αŸ– αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž“αŸαŸ‡αžŠαŸ„αž™αžœαž·αžŸαŸ’αžœαž€αž˜αŸ’αž˜αž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸ αž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžšαž”αžŸαŸ‹αžœαžΆ αž”αŸ†αž–αŸαž‰αžœαžΆαžŠαŸ„αž™αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αž―αž€αžŸαžΆαžš αžšαŸ€αž”αž…αŸ†αžœαžΆαž‡αžΆαž˜αž½αž™αžœαŸ‰αž·αž…αž‘αŸαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαž—αŸ’αž›αž€αŸ’αžŸαžšαžŸαž‡αžΆαžαž· αž“αž·αž„αž›αžΆαž™αžœαžΆαŸ” αž…αžΌαžšαž”αž“αŸ’αžαŸ‚αž˜αž—αŸ’αž›αžΎαž„αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžšαžΏαž„αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž€αŸ†αž αž»αžŸαž€αŸ’αž›αžΌαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αž›αž·αžαž’αŸ’αž“αž€αž›αž€αŸ‹αž‡αžΆαž…αŸ’αžšαžΎαž“αž†αŸ’αž“αžΆαŸ†αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž˜αžΆαž“αžŸαž€αŸ’αžαžΆαž“αž»αž–αž›αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž“αŸαŸ‡αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž rootkit αž›αžΆαž€αŸ‹αžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αžŠαž€αž…αŸαž‰αž”αžΆαž“ (αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αžŠαŸ„αž™αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ) αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ”

αžŠαŸ„αž™αžœαž·αž’αžΈαž“αŸαŸ‡ αž’αžαŸ’αžαž”αž‘αž‚αžΊαž•αŸ’αž’αŸ‚αž€αž›αžΎαžšαž”αžΆαž™αž€αžΆαžšαžŽαŸ "On Guard for Rootkits: Intel BootGuard" αž–αžΈαžŸαž“αŸ’αž“αž·αžŸαžΈαž‘αŸ” ZeroNights 2016 αž“αž·αž„αž€αž·αž…αŸ’αž…αž”αŸ’αžšαž‡αž»αŸ†αž›αžΎαž€αž‘αžΈ 29 DefCon αžšαž»αžŸαŸ’αžŸαŸŠαžΈ (αž”αž‘αž”αž„αŸ’αž αžΆαž‰αž‘αžΆαŸ†αž„αž–αžΈαžš αž“αŸ…αž‘αžΈαž“αŸαŸ‡).

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαŸαž‘αž·αž€αžΆαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ Intel 64

αžŠαžΎαž˜αŸ’αž”αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž…αžΌαžšαž™αžΎαž„αž†αŸ’αž›αžΎαž™αžŸαŸ†αžŽαž½αžšαŸ– αžαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αž“αŸƒαžœαŸαž‘αž·αž€αžΆαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž‘αŸ†αž“αžΎαž”αž‡αžΆαž˜αž½αž™αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ Intel 64 αž‚αžΊαž‡αžΆαž’αŸ’αžœαžΈ? αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ UEFI BIOS αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž…αž˜αŸ’αž›αžΎαž™αž“αŸαŸ‡αž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž‘αŸαŸ” αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αžšαžΌαž”αžŠαŸ‚αž›αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž€αŸ†αžŽαŸ‚αž•αŸ’αž‘αŸƒαžαž» (αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒ) αž“αŸƒαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž“αŸαŸ‡αŸ”

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‚αžΊαžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αŸ–

  • αž’αž„αŸ’αž‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš (CPU, Central Processing Unit) αžŠαŸ‚αž›αž”αž“αŸ’αžαŸ‚αž˜αž›αžΎαžŸαŸ’αž“αžΌαž›αžŸαŸ†αžαžΆαž“αŸ‹αŸ— αž˜αžΆαž“αžŸαŸ’αž“αžΌαž›αž€αŸ’αžšαžΆαž αŸ’αžœαž·αž€αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™ (αž˜αž·αž“αž˜αŸ‚αž“αž‚αŸ’αžšαž”αŸ‹αž˜αŸ‰αžΌαžŠαŸ‚αž›αž‘αžΆαŸ†αž„αž’αžŸαŸ‹) αž“αž·αž„αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† (IMC, Integrated Memory Controller);
  • αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž” (PCH, Platform Controller Hub) αžŠαŸ‚αž›αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαž•αŸ’αžŸαŸαž„αŸ—αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΎαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž§αž”αž€αžšαžŽαŸαž‚αŸ’αžšαžΏαž„αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžš αž“αž·αž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž„αŸ” αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž“αŸ„αŸ‡αž˜αžΆαž“ Intel Management Engine (ME) αžŠαŸαž›αŸ’αž”αžΈαž›αŸ’αž”αžΆαž‰αžŠαŸ‚αž›αž˜αžΆαž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ (Intel ME firmware) αž•αž„αžŠαŸ‚αžšαŸ”

αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒ αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž…αŸ†αžŽαž»αž…αžαžΆαž„αž›αžΎ αžαŸ’αžšαžΌαžœαž€αžΆαžšαž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆ (ACPI EC, Advanced Control αž“αž·αž„ Power Interface Embedded Controller) αžŠαŸ‚αž›αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž„αžαžΆαž˜αž–αž› αž”αž“αŸ’αž‘αŸ‡αž”αŸ‰αŸ‡ αž€αŸ’αžαžΆαžšαž…αž»αž… αž‚αŸ’αžšαžΆαž”αŸ‹αž…αž»αž… Fn (αž–αž“αŸ’αž›αžΊαž’αŸαž€αŸ’αžšαž„αŸ‹ αž€αž˜αŸ’αžšαž·αžαžŸαŸ†αž‘αŸαž„ αž€αŸ’αžαžΆαžšαž…αž»αž…αŸ” αž’αŸ†αž–αžΌαž› Backlight αž‡αžΆαžŠαžΎαž˜) αž“αž·αž„αž…αŸ’αžšαžΎαž“αž‘αŸ€αžαŸ” αž αžΎαž™αž‚αžΆαžαŸ‹αž€αŸαž˜αžΆαž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αž•αž„αžŠαŸ‚αžšαŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αžαžΆαž„αž›αžΎαž‚αžΊαž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αž“αŸƒαžœαŸαž‘αž·αž€αžΆαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžš (αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’) αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž“αŸ…αž›αžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž–αž“αŸ’αž›αžΊ SPI αž’αž˜αŸ’αž˜αžαžΆαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αž’αŸ’αž“αž€β€‹αž”αŸ’αžšαžΎβ€‹αž’αž„αŸ’αž‚β€‹αž…αž„αž…αžΆαŸ†β€‹αž“αŸαŸ‡β€‹αž˜αž·αž“β€‹αžαŸ’αžšαžΌαžœβ€‹αž™αž›αŸ‹β€‹αž…αŸ’αžšαž‘αŸ†β€‹αž–αžΈβ€‹αž€αž“αŸ’αž›αŸ‚αž„β€‹αžŽαžΆβ€‹αžŠαŸ‚αž›β€‹αž’αŸ’αž“αž€β€‹αžŽαžΆβ€‹αž€αž»αž αž€ αž˜αžΆαžαž·αž€αžΆβ€‹αž“αŸƒβ€‹αž’αž„αŸ’αž‚β€‹αž…αž„αž…αžΆαŸ†β€‹αž“αŸαŸ‡β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αŸ‚αž„β€‹αž…αŸ‚αž€β€‹αž‡αžΆβ€‹αžαŸ†αž”αž“αŸ‹β€‹αžŠαžΌαž…β€‹αžαžΆαž„β€‹αž€αŸ’αžšαŸ„αž˜ (αžŠαžΌαž…β€‹αž”αž„αŸ’αž αžΆαž‰β€‹αž€αŸ’αž“αž»αž„β€‹αžšαžΌαž”)αŸ–

  • UEFI BIOS;
  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ ACPI EC (αžαŸ†αž”αž“αŸ‹αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αž½αž™αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαŸ’αž›αž½αž“αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Skylake microarchitecture (2015) αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αž–αŸ’αžšαŸƒαž™αžΎαž„αž˜αž·αž“αž‘αžΆαž“αŸ‹αžƒαžΎαž‰αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαž”αžŸαŸ‹αžœαžΆαž“αŸ…αž‘αžΎαž™ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž”αž„αŸ’αž€αž”αŸ‹αž‚αžΊαž“αŸ…αžαŸ‚αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αž“αŸƒ UEFI BIOS);
  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ Intel ME;
  • αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ (αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ MAC αŸ”αž›αŸ”) αž“αŸƒαž’αžΆαžŠαžΆαž”αŸ‹αž‘αŸαžšαž”αžŽαŸ’αžαžΆαž‰ GbE (Gigabit Ethernet) αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αŸ”
  • flash descriptors - αžαŸ†αž”αž“αŸ‹αžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† flash αžŠαŸ‚αž›αž˜αžΆαž“αž…αž„αŸ’αž’αž»αž›αž‘αŸ…αžαŸ†αž”αž“αŸ‹αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž€αŸαžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž…αžΌαž›αž”αŸ’αžšαžΎαž–αž½αž€αžœαžΆαŸ”

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαž“αŸƒαž€αžΆαžšαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αžαŸ†αž”αž“αŸ‹ (αžŸαŸ’αžšαž”αžαžΆαž˜αž€αžΆαžšαž’αž“αž»αž‰αŸ’αž‰αžΆαžαžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ„αž™ SPI bus master - αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ SPI αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„ chipset αžŠαŸ‚αž›αžαžΆαž˜αžšαž™αŸˆ memory αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΌαž›αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαž’αž“αž»αž‰αŸ’αž‰αžΆαžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‘αŸ…αžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ† (αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αŸαžαž»αž•αž›αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–) αžŠαŸ„αž™ Intel αž“αŸ„αŸ‡αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž“αžΈαž˜αž½αž™αŸ—αž“αŸƒ SPI flash αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž…αžΌαž›αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž–αŸαž‰αž›αŸαž‰ (αž’αžΆαž“/សរសេរ) αžαŸ‚αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž“αŸ…αžŸαž›αŸ‹αž‚αžΊαž”αžΆαž“αžαŸ‚αž’αžΆαž“ αž¬αž˜αž·αž“αž’αžΆαž…αž…αžΌαž›αž”αŸ’αžšαžΎαž”αžΆαž“αŸ” αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αž‚αŸαžŸαŸ’αž‚αžΆαž›αŸ‹αŸ– αž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‡αžΆαž…αŸ’αžšαžΎαž“ αžŸαŸŠαžΈαž—αžΈαž™αžΌαž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž…αžΌαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αŸαž‰αž›αŸαž‰αž‘αŸ…αž€αžΆαž“αŸ‹ UEFI BIOS αž“αž·αž„ GbE αž…αžΌαž›αž’αžΆαž“αž”αžΆαž“αžαŸ‚αž’αŸ’αž“αž€αž–αžŽαŸŒαž“αžΆαž–αž“αŸ’αž›αžΊαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž αžΎαž™αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αžαŸ†αž”αž“αŸ‹ Intel ME αž‘αžΆαž›αŸ‹αžαŸ‚αžŸαŸ„αŸ‡αŸ” αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž…αŸ’αžšαžΎαž“ αž“αž·αž„αž˜αž·αž“αž˜αŸ‚αž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹? αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž‚αžΊαžŸαŸ’αžšαŸαž…αž…αž·αžαŸ’αžαŸ” αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž“αŸ…αž–αŸαž›αž€αŸ’αžšαŸ„αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αŸ”

αž™αž“αŸ’αžαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž–αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αž“αŸƒαžœαŸαž‘αž·αž€αžΆαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž–αžΈαž€αžΆαžšαž€αŸ‚αž”αŸ’αžšαŸ‚

αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αž“αŸƒαžœαŸαž‘αž·αž€αžΆαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž‚αž½αžšαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžΆαžšαž–αžΆαžšαž–αžΈαž€αžΆαžšαžŸαž˜αŸ’αžšαž”αžŸαž˜αŸ’αžšαž½αž›αžŠαŸ‚αž›αž’αžΆαž…αž€αžΎαžαž˜αžΆαž“ αžŠαŸ‚αž›αž’αžΆαž…αž±αŸ’αž™αž’αŸ’αž“αž€αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αžŸαž€αŸ’αžαžΆαž“αž»αž–αž›αž’αžΆαž…αž‘αž‘αž½αž›αž”αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆ (αžšαžŸαŸ‹αžšαžΆαž“αž˜αžΆαž“αž‡αžΈαžœαž·αž αž€αžΆαžšαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš / αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž‘αžΎαž„αžœαž·αž‰) αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž…αŸ’αžšαžΎαž“αž”αŸ†αž•αž»αžαŸ”αž›αŸ” αž αžΎαž™αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαžαŸ†αž”αž“αŸ‹αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† SPI αž‚αžΊαž˜αž·αž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž‘αŸαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž™αž“αŸ’αžαž€αžΆαžšαž•αŸ’αžŸαŸαž„αŸ—αžŠαŸ‚αž›αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž…αŸ†αž–αŸ„αŸ‡αž”αžšαž·αž™αžΆαž€αžΆαžŸαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž“αžΈαž˜αž½αž™αŸ— αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž€αžΆαžšαž–αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αž–αžΈαž€αžΆαžšαž€αŸ‚αž”αŸ’αžšαŸ‚αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ Intel ME αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αž“αž·αž„αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŠαŸ„αž™αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ ME αžšαžΆαž›αŸ‹αž–αŸαž›αžŠαŸ‚αž›αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αž»αž€αž‘αŸ…αž€αŸ’αž“αž»αž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† ME UMA αŸ” αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαžšαž½αž…αž αžΎαž™αžŠαŸ„αž™αž–αž½αž€αž™αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜ αž’αžαŸ’αžαž”αž‘αž§αž‘αŸ’αž‘αž·αžŸαžŠαž›αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž„ Intel ME αŸ”

αž αžΎαž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ ACPI EC αž‡αžΆαž€αŸ’αž”αž½αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž“αž·αžαŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ‚αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž‘αŸ„αŸ‡αž‡αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ„αž›αž–αžΈαžšαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž“αŸ…αž€αŸ’αž“αž»αž„ UEFI BIOS αžœαžΆαžŸαŸ’αž‘αžΎαžšαžαŸ‚αžαŸ‚αž„αžαŸ‚αž‡αžΆαž€αž˜αŸ’αž˜αžœαžαŸ’αžαž»αž“αŸƒαž™αž“αŸ’αžαž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαžŠαžΌαž…αž‚αŸ’αž“αžΆαžŠαŸ‚αž› UEFI BIOS αž”αŸ’αžšαžΎαŸ” αž…αžΌαžšαž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž–αž½αž€αž‚αŸαŸ”

αž™αž“αŸ’αžαž€αžΆαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž’αžΆαž…αž”αŸ‚αž„αž…αŸ‚αž€αž‡αžΆαž–αžΈαžšαž”αŸ’αžšαž—αŸαž‘αŸ”

αžŸαžšαžŸαŸαžšαž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαž‘αŸ…αžαŸ†αž”αž“αŸ‹ UEFI BIOS

  1. αž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαžšαžΆαž„αž€αžΆαž™αž“αŸƒαž˜αžΆαžαž·αž€αžΆαž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž–αž“αŸ’αž›αžΊ SPI αž‡αžΆαž˜αž½αž™αž“αžΉαž„ jumper αž€αžΆαžšαž–αžΆαžšαž€αžΆαžšαžŸαžšαžŸαŸαžš;
  2. αž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαž€αžΆαžšαž–αŸ’αž™αžΆαž€αžšαžŽαŸαž“αŸƒαžαŸ†αž”αž“αŸ‹ UEFI BIOS αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž“αŸ’αž›αŸ„αŸ‡αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ CPU αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ PRx αžšαž”αžŸαŸ‹αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αŸ”
  3. αž€αžΆαžšαž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹αž€αžΆαžšαž–αŸ’αž™αžΆαž™αžΆαž˜αžŸαžšαžŸαŸαžšαž‘αŸ…αž€αžΆαž“αŸ‹αžαŸ†αž”αž“αŸ‹ UEFI BIOS αžŠαŸ„αž™αž”αž„αŸ’αž€αžΎαž αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαžšαŸ†αžαžΆαž“ SMI αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαžŠαŸ„αž™αž€αŸ†αžŽαžαŸ‹αž”αŸŠαžΈαž BIOS_WE / BLE αž“αž·αž„ SMM_BWP αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αŸ”
  4. αž€αŸ†αžŽαŸ‚αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αž“αŸƒαž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαž“αŸαŸ‡αž‚αžΊ Intel BIOS Guard (PFAT) αŸ”

αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž™αž“αŸ’αžαž€αžΆαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž’αŸ’αž“αž€αž›αž€αŸ‹αž’αžΆαž…αž”αž„αŸ’αž€αžΎαž αž“αž·αž„αž’αž“αž»αžœαžαŸ’αžαžœαž·αž’αžΆαž“αž€αžΆαžšαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ (αž§αž‘αžΆαž αžšαžŽαŸ αž€αžΆαžšαž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆαž›αžΎαž€αž“αŸ’αžŸαŸ„αž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž– UEFI BIOS) αŸ”

αžœαžΆαž‡αžΆαž€αžΆαžšαžŸαŸ†αžαžΆαž“αŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžαžΆαž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ (αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž’αŸ’αž“αž€αž›αž€αŸ‹) αž˜αž·αž“αž˜αŸ‚αž“αž‚αŸ’αžšαž”αŸ‹αž™αž“αŸ’αžαž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαžαžΆαž„αž›αžΎαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž‘αŸ αž–αž½αž€αž‚αŸαž’αžΆαž…αž“αžΉαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž‘αžΆαž›αŸ‹αžαŸ‚αžŸαŸ„αŸ‡ αž¬αž–αž½αž€αž‚αŸαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžαžΆαž˜αžšαž”αŸ€αž”αžŠαŸ‚αž›αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž’αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈαž™αž“αŸ’αžαž€αžΆαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž“αž·αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž“αŸ…αž€αŸ’αž“αž»αž„ αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡. αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ αž™αžΎαž„αžŸαžΌαž˜αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž’αŸ’αž“αž€αž’αžΆαž“αžŸαŸŠαŸαžšαžΈαž‘αžΆαŸ†αž„αž˜αžΌαž›αž“αŸƒαž’αžαŸ’αžαž”αž‘αžŸαŸ’αžαžΈαž–αžΈαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– UEFI BIOS αž–αžΈ CodeRush.

αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹ UEFI BIOS

αž“αŸ…αž–αŸαž›αž™αžΎαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“ αžšαžΏαž„αžŠαŸ†αž”αžΌαž„αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αž·αžαž‚αžΊ Secure Boot αŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αžαžΆαž˜αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αžŸαž˜αžΆαžŸαž’αžΆαžαž»αžαžΆαž„αž€αŸ’αžšαŸ…αž‘αŸ… UEFI BIOS (αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆ αž§αž”αž€αžšαžŽαŸαž•αŸ’αž‘αž»αž€αŸ”αž›αŸ”) αž αžΎαž™αž˜αž·αž“αž˜αŸ‚αž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αžαŸ’αž›αž½αž“αžœαžΆαž“αŸ„αŸ‡αž‘αŸαŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ Intel αž“αŸ…αž€αŸ’αž“αž»αž„ SoCs αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž˜αžΈαž€αŸ’αžšαžΌαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ Bay Trail (2012) αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž Hardware αžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αž”αŸ’αžαžΌαžšαž”αžΆαž“ Secure Boot (Verified Boot) αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αž‡αžΆαž”αŸ‹αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αžΉαž„αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ Secure Boot αžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹αžαžΆαž„αž›αžΎαž“αŸ„αŸ‡αž‘αŸαŸ” αž€αŸ’αžšαŸ„αž™αž˜αž€ (αž†αŸ’αž“αžΆαŸ† 2013) αž™αž“αŸ’αžαž€αžΆαžšαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ‚αž›αž˜αŸ’αž’ αž αžΎαž™αž€αŸ’αžšαŸ„αž˜αžˆαŸ’αž˜αŸ„αŸ‡ Intel Boot Guard αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž›αžΎαžαž»αž‡αžΆαž˜αž½αž™ Haswell microarchitecture αŸ”

αž˜αž»αž“αž–αŸαž›αž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈ Intel Boot Guard αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž–αŸαž›αžœαŸαž›αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ Intel 64 αžŠαŸ‚αž›αžšαž½αž˜αž•αŸ’αžŸαŸ†αž‚αŸ’αž“αžΆ αž‚αžΊαž‡αžΆαž«αžŸαž‚αž›αŸ‹αž“αŸƒαž€αžΆαžšαž‡αžΏαž‘αž»αž€αž…αž·αžαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αžŠαŸ‚αž›αž‡αžΏαž‘αž»αž€αž…αž·αžαŸ’αžαž“αŸαŸ‡αŸ”

αžŸαŸŠαžΈαž—αžΈαž™αžΌ Intel αŸ”

Cap αžŽαŸ‚αž“αžΆαŸ†αžαžΆ processor αž‚αžΊαž‡αžΆαž”αžšαž·αžŸαŸ’αžαžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŠαŸαžŸαŸ†αžαžΆαž“αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ Intel 64αŸ” αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαžœαžΆαž€αŸαž‡αžΆαž«αžŸαž‚αž›αŸ‹αž“αŸƒαž€αžΆαžšαž‡αžΏαž‘αž»αž€αž…αž·αžαŸ’αž? αžœαžΆαž”αŸ’αžšαŸ‚αžαžΆαžœαžΆαž‚αžΊαž‡αžΆαž€αž˜αŸ’αž˜αžŸαž·αž‘αŸ’αž’αž·αž“αŸƒαž’αžΆαžαž»αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαžŠαžΌαž…αŸ’αž“αŸαŸ‡:

  • Microcode ROM αž‚αžΊαž‡αžΆαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž˜αž·αž“αž„αžΆαž™αž“αžΉαž„αž”αž„αŸ’αž€αž‡αžΆαž αŸαžαž» αž“αž·αž„αž˜αž·αž“αž’αžΆαž…αžŸαžšαžŸαŸαžšαž‘αžΎαž„αžœαž·αž‰αž”αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž˜αžΈαž€αŸ’αžšαžΌαž€αžΌαžŠαŸ” αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž‡αžΏαžαžΆ microcode αž‚αžΊαž‡αžΆαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŽαŸ‚αž“αžΆαŸ†αžšαž”αžŸαŸ‹αžαž½αžšαž€αŸ’αž”αžΆαž›αž“αŸ…αž›αžΎαž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžŠαŸαžŸαžΆαž˜αž‰αŸ’αž‰αž”αŸ†αž•αž»αžαŸ” αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΈαž€αŸ’αžšαžΌαž€αžΌαžŠαž•αž„αžŠαŸ‚αžšαŸ” αž€αŸ†αž αž»αžŸ. αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„ BIOS αž’αŸ’αž“αž€αž’αžΆαž…αžšαž€αžƒαžΎαž‰αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ„αž›αž–αžΈαžšαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž’αžΆαž”αŸ‹αžŠαŸαžαž˜αžΈαž€αŸ’αžšαžΌαž€αžΌαžŠ (αž–αž½αž€αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž–αžΈαž›αžΎαž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜ αž–αŸ’αžšαŸ„αŸ‡ ROM αž˜αž·αž“αž’αžΆαž…αžŸαžšαžŸαŸαžšαž‡αžΆαž“αŸ‹αž–αžΈαž›αžΎαž”αžΆαž“αž‘αŸ)αŸ” αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ„αž›αž–αžΈαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž” αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž’αŸ„αž™αž˜αžΆαž“αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αžŠαž›αŸ‹αž€αžΆαžšαžœαž·αž—αžΆαž‚αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„ (αž αŸαžαž»αž“αŸαŸ‡ αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸƒαž˜αžΈαž€αŸ’αžšαžΌαž€αžΌαžŠαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαžŸαŸ’αž‚αžΆαž›αŸ‹αžαŸ‚αž…αŸ†αž–αŸ„αŸ‡αž’αŸ’αž“αž€αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαžœαžΆαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡) αž αžΎαž™αž”αžΆαž“αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆαžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž—αžΆαž–αžŸαž»αž…αžšαž·αž αž“αž·αž„αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ”
  • αž‚αŸ’αžšαžΆαž”αŸ‹αž…αž»αž… AES αžŠαžΎαž˜αŸ’αž”αžΈαžŒαž·αž‚αŸ’αžšαžΈαž”αž˜αžΆαžαž·αž€αžΆαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž˜αžΈαž€αŸ’αžšαžΌαž€αžΌαžŠαŸ”
  • αžŸαž‰αŸ’αž‰αžΆαž“αŸƒαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆ RSA αžŠαŸ‚αž›αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž αžαŸ’αžαž›αŸαžαžΆαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž˜αžΈαž€αŸ’αžšαžΌαž€αžΌαžŠαŸ”
  • αžŸαž‰αŸ’αž‰αžΆαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆ RSA αžŠαŸ‚αž›αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž αžαŸ’αžαž›αŸαžαžΆαž“αŸƒαž˜αŸ‰αžΌαžŒαž»αž›αž€αžΌαžŠ ACM (Authenticated Code Module) αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™ Intel αžŠαŸ‚αž›αžŸαŸŠαžΈαž—αžΈαž™αžΌαž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž»αž“αž–αŸαž› BIOS αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ (αžŸαž½αžŸαŸ’αžαžΈαž˜αžΈαž€αŸ’αžšαžΌαž€αžΌαžŠ) αž¬αž’αŸ†αž‘αž»αž„αž–αŸαž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžšαž”αžŸαŸ‹αžœαžΆ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž˜αž½αž™αž…αŸ†αž“αž½αž“αž€αžΎαžαž‘αžΎαž„αŸ”

αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ Intel ME

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž„αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αž›αž»αž€αžšαž”αžŸαŸ‹αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž§αž‘αŸ’αž‘αž·αžŸαžŠαž›αŸ‹ αž–αžΈαžšαŸ” αž’αžαŸ’αžαž”αž‘. αžŸαžΌαž˜αž…αžΆαŸ†αžαžΆαž”αžšαž·αž™αžΆαž€αžΆαžŸαžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž”αžΆαž“αž“αŸαŸ‡αž‚αžΊαž•αŸ’αž’αŸ‚αž€αž›αžΎ microcontroller αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„ chipset αž αžΎαž™αž‡αžΆαž€αžΆαžšαž›αžΆαž€αŸ‹αž€αŸ†αž”αžΆαŸ†αž„αž”αŸ†αž•αž»αž αž“αž·αž„αž˜αžΆαž“αž―αž€αžŸαž·αž‘αŸ’αž’αž·αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ”

αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž˜αžΆαž“αž€αžΆαžšαž”αŸ†αž”αžΆαŸ†αž„αž€αžΆαž™αž€αŸαžŠαŸ„αž™ Intel ME αž€αŸαž‡αžΆαž«αžŸαž‚αž›αŸ‹αž“αŸƒαž€αžΆαžšαž‡αžΏαž‘αž»αž€αž…αž·αžαŸ’αžαž•αž„αžŠαŸ‚αžšαž–αŸ’αžšαŸ„αŸ‡αžœαžΆαž˜αžΆαž“αŸ–

  • ME ROM - αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž˜αž·αž“αž„αžΆαž™αž“αžΉαž„αž”αž„αŸ’αž€αž‡αžΆαž αŸαžαž» αž˜αž·αž“αž’αžΆαž…αžŸαžšαžŸαŸαžšαž‘αžΎαž„αžœαž·αž‰αž”αžΆαž“ (αž˜αž·αž“αž˜αžΆαž“αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαž’αžΆαž”αŸ‹αžŠαŸαžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“) αžŠαŸ‚αž›αž˜αžΆαž“αž›αŸαžαž€αžΌαžŠαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž€αŸαžŠαžΌαž…αž‡αžΆαžŸαž‰αŸ’αž‰αžΆ SHA256 αž“αŸƒαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆ RSA αžŠαŸ‚αž›αž–αž·αž“αž·αžαŸ’αž™αž αžαŸ’αžαž›αŸαžαžΆαžšαž”αžŸαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ Intel ME αŸ”
  • αž‚αž“αŸ’αž›αžΉαŸ‡ AES αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž–αŸαžαŸŒαž˜αžΆαž“αžŸαž˜αŸ’αž„αžΆαžαŸ‹;
  • αž€αžΆαžšαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αžŸαŸ†αžŽαž»αŸ†αž“αŸƒ fuses (FPFs, Field Programmable Fuses) αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„ chipset αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž–αŸαžαŸŒαž˜αžΆαž“αž˜αž½αž™αž…αŸ†αž“αž½αž“αž‡αžΆαž’αž…αž·αž“αŸ’αžαŸ’αžšαŸƒαž™αŸ αžšαž½αž˜αž‘αžΆαŸ†αž„αž–αŸαžαŸŒαž˜αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŠαŸ„αž™αž’αŸ’αž“αž€αž›αž€αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαŸ”

Intel Boot Guard 1.x

αž€αžΆαžšαž”αžŠαž·αžŸαŸαž’αžαžΌαž…αžαžΆαž…αŸ” αž›αŸαžαž€αŸ†αžŽαŸ‚αž“αŸƒαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ Intel Boot Guard αžŠαŸ‚αž›αž™αžΎαž„αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αž‚αžΊαž”αŸ†αž–αžΆαž“ αž αžΎαž™αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž˜αž·αž“αž˜αžΆαž“αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαž‡αžΆαž˜αž½αž™αž›αŸαžαžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš Intel αžαžΆαž„αž€αŸ’αž“αž»αž„αž“αŸ„αŸ‡αž‘αŸαŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž“αŸ…αž‘αžΈαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž›αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αžœαž·αžŸαŸ’αžœαž€αž˜αŸ’αž˜αž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸ αž αžΎαž™αž’αžΆαž…αž˜αžΆαž“αž—αžΆαž–αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž”αžΎαž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž‘αŸ…αž“αžΉαž„αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Intel Boot Guard αžŠαŸ‚αž›αž‘αŸ†αž“αž„αž‡αžΆαž˜αž·αž“αž’αŸ’αž›αžΆαž”αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžŸαž–αŸ’αžœαž•αŸ’αžŸαžΆαž™αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ Intel Boot Guard (BG) αž‚αžΊαž‡αžΆαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ UEFI BIOS αžŠαŸ‚αž›αž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ„αž™αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αŸ” αžŠαŸ„αž™αžœαž·αž“αž·αž…αŸ’αž†αŸαž™αžŠαŸ„αž™αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαžαžΌαž…αž˜αž½αž™αžšαž”αžŸαŸ‹αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ€αžœαž—αŸ… [Platform Embedded Security Technology Revealed, Chapter Boot with Integrity, or Not Boot] αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαžαŸ’αžŸαŸ‚αžŸαž„αŸ’αžœαžΆαž€αŸ‹αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αŸ” αž αžΎαž™αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ†αž”αžΌαž„αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆαž‚αžΊαž‡αžΆαž€αžΌαžŠαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜ (αž˜αžΈαž€αŸ’αžšαžΌαž€αžΌαžŠ) αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αžŸαŸŠαžΈαž—αžΈαž™αžΌ αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αž‘αžΎαž„αžŠαŸ„αž™αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ RESET (αž˜αž·αž“αžαŸ’αžšαžΌαžœαž…αŸ’αžšαž‘αŸ†αž‡αžΆαž˜αž½αž™αžœαŸ‰αž·αž…αž‘αŸαžš RESET αž“αŸ…αž€αŸ’αž“αž»αž„ BIOS!) αŸ” αžŸαŸŠαžΈαž—αžΈαž™αžΌαžšαž€αžƒαžΎαž‰αž˜αŸ‰αžΌαžŒαž»αž›αž€αžΌαžŠ (Intel BG startup ACM) αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαž αž“αž·αž„αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆαžŠαŸ„αž™ Intel αž“αŸ…αž›αžΎαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† SPI flash αž•αŸ’αž‘αž»αž€αžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžšαž”αžŸαŸ‹αžœαžΆ αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αžœαžΆ (αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžšαž½αž…αž αžΎαž™αžαžΆαž„αž›αžΎαžαžΆαžŸαŸŠαžΈαž—αžΈαž™αžΌαž˜αžΆαž“αžŸαž‰αŸ’αž‰αžΆαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžŠαŸ‚αž›αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž αžαŸ’αžαž›αŸαžαžΆ ACM ) αž αžΎαž™αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αŸ”

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard

αž˜αŸ‰αžΌαžŒαž»αž›αž€αžΌαžŠαž“αŸαŸ‡αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž•αŸ’αž“αŸ‚αž€αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžαžΌαž…αž˜αž½αž™αž“αŸƒ UEFI BIOS - Initial Boot Block (IBB) αžŠαŸ‚αž›αž“αŸ…αž€αŸ’αž“αž»αž„αžœαŸαž“αž˜αžΆαž“αž˜αž»αžαž„αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž•αŸ’αž“αŸ‚αž€αžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒ UEFI BIOS αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ Intel BG αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸƒ BIOS αž˜αž»αž“αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš (αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž€αŸ’αžšαŸ„αž˜αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž“αŸƒαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ Secure Boot) αŸ”

αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ Intel BG αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαžšαž”αŸ€αž”αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž–αžΈαžš (αž αžΎαž™αž˜αž½αž™αž˜αž·αž“αž‡αŸ’αžšαŸ€αžαž‡αŸ’αžšαŸ‚αž€αž‡αžΆαž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž–αŸ„αž›αž‚αžΊαžšαž”αŸ€αž”αž‘αžΆαŸ†αž„αž–αžΈαžšαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’ αž αžΎαž™αž‘αžΆαŸ†αž„αž–αžΈαžšαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘)αŸ”

αž€αžΆαžšαžœαžΆαžŸαŸ‹αžœαŸ‚αž„ Boot

αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž” Measured Boot (MB) αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž“αžΈαž˜αž½αž™αŸ— (αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™ CPU boot ROM) "αžœαžΆαžŸαŸ‹" αž˜αž½αž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαž˜αžαŸ’αžαž—αžΆαž–αž“αŸƒ Trusted Platform Module (TPM) αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž’αŸ’αž“αž€β€‹αžŠαŸ‚αž›β€‹αž˜αž·αž“β€‹αžŠαžΉαž„β€‹αžαŸ’αž‰αž»αŸ†β€‹αžŸαžΌαž˜β€‹αž–αž“αŸ’αž™αž›αŸ‹β€‹αŸ”

TPM αž˜αžΆαž“ PCRs (Platform Configuration Registers) αžŠαŸ‚αž›αž€αžαŸ‹αžαŸ’αžšαžΆαž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš hashing αžαžΆαž˜αžšαžΌαž”αž˜αž“αŸ’αžαŸ–

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard

αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αŸ” αžαž˜αŸ’αž›αŸƒ PCR αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž‚αžΊαž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž˜αž»αž“ αž αžΎαž™αž€αžΆαžšαž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‘αžΆαŸ†αž„αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰αžαŸ‚αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαŸ’αžšαžΌαžœαž”αžΆαž“ RESET αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž” MB αž“αŸ…αž…αŸ†αžŽαž»αž…αž˜αž½αž™αž…αŸ†αž“αž½αž“ PCRs αž†αŸ’αž›αž»αŸ‡αž”αž‰αŸ’αž…αžΆαŸ†αž„αž–αžΈαž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαžαŸ‚αž˜αž½αž™αž‚αžαŸ‹ (αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαž˜αžαŸ’αžαž—αžΆαž–αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš hash) αž“αŸƒαž€αžΌαžŠ αž¬αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“ "αžœαžΆαžŸαŸ‹αžœαŸ‚αž„" αŸ” αžαž˜αŸ’αž›αŸƒ PCR αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αž½αž™αž…αŸ†αž“αž½αž“ (TPM_Seal) αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡ αž€αžΆαžšαžŒαž·αž‚αŸ’αžšαžΈαž”αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ (TPM_Unseal) αž“αžΉαž„αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αž›αž»αŸ‡αžαŸ’αžšαžΆαžαŸ‚αžαž˜αŸ’αž›αŸƒ PCR αž˜αž·αž“αž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‡αžΆαž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž•αŸ’αž‘αž»αž€ (ឧ. αž˜αž·αž“αž˜αŸ‚αž“αžŸαž˜αžΆαžŸαž’αžΆαžαž» "αžœαžΆαžŸαŸ‹αžœαŸ‚αž„" αžαŸ‚αž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ‚αž”αŸ’αžšαŸ‚αž‘αŸ)αŸ”

αž”αžΆαž“αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹ Boot

αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž‚αž½αžšαž±αŸ’αž™αžαŸ’αž›αžΆαž…αž”αŸ†αž•αž»αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž…αžΌαž›αž…αž·αžαŸ’αžαž€αŸ‚αž”αŸ’αžšαŸ‚ UEFI BIOS αž‚αžΊαžšαž”αŸ€αž” Verified Boot (VB) αžŠαŸ‚αž›αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž“αžΈαž˜αž½αž™αŸ—αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αž“αž·αž„αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž“αŸ’αž‘αžΆαž”αŸ‹αŸ” αž αžΎαž™αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž€αŸ†αž αž»αžŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹ (αž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αžαžΆαž„αž€αŸ’αžšαŸ„αž˜) αž€αžΎαžαž‘αžΎαž„αŸ–

  • αž”αž·αž‘αžŠαŸ„αž™αž€αžΆαžšαž’αžŸαŸ‹αž–αŸαž›αž–αžΈ 1 αž“αžΆαž‘αžΈαž‘αŸ… 30 αž“αžΆαž‘αžΈ (αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αžΆαž“αž–αŸαž›αžœαŸαž›αžΆαžŠαžΎαž˜αŸ’αž”αžΈαž™αž›αŸ‹αž–αžΈαž˜αžΌαž›αž αŸαžαž»αžŠαŸ‚αž›αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αž˜αž·αž“αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αž“αžΉαž„αž–αŸ’αž™αžΆαž™αžΆαž˜αžŸαŸ’αžŠαžΆαžš BIOS αž‘αžΎαž„αžœαž·αž‰);
  • αž€αžΆαžšαž”αž·αž‘αž—αŸ’αž›αžΆαž˜αŸ— (αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž˜αž·αž“αž˜αžΆαž“αž–αŸαž›αžœαŸαž›αžΆαžŠαžΎαž˜αŸ’αž”αžΈαž™αž›αŸ‹αž αžΎαž™αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αžαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎ);
  • αž€αžΆαžšαž”αž“αŸ’αžαž€αžΆαžšαž„αžΆαžšαžŠαŸ„αž™αž˜αž»αžαžαŸ’αžšαž„αŸ‹ (αž€αžšαžŽαžΈαžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αž–αŸαž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž– αž–αŸ’αžšαŸ„αŸ‡αž˜αžΆαž“αž€αž·αž…αŸ’αž…αž€αžΆαžšαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎ)αŸ”

αž‡αž˜αŸ’αžšαžΎαžŸαž“αŸƒαžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž‚αžΊαž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Intel BG αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ (αž–αŸ„αž›αž‚αžΊαž“αŸ…αž›αžΎαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž‚αŸαž αŸ…αžαžΆαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž’αž“αž»αžœαžαŸ’αž) αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αžαŸ‹αžαŸ’αžšαžΆαž‡αžΆαž’αž…αž·αž“αŸ’αžαŸ’αžšαŸƒαž™αŸαžŠαŸ„αž™αž’αŸ’αž“αž€αž›αž€αŸ‹αžœαŸαž‘αž·αž€αžΆαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€αžŠαŸ‚αž›αž”αžΆαž“αžšαž…αž“αžΆαž‡αžΆαž–αž·αžŸαŸαžŸ - chipset fuses (FPFs) αŸ” αž™αžΎαž„β€‹αž“αžΉαž„β€‹αž“αž·αž™αžΆαž™β€‹αž›αž˜αŸ’αž’αž·αžβ€‹αž’αŸ†αž–αžΈβ€‹αž…αŸ†αžŽαž»αž…β€‹αž“αŸαŸ‡β€‹αž“αŸ…β€‹αž–αŸαž›β€‹αž€αŸ’αžšαŸ„αž™αŸ”

αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ αž’αŸ’αž“αž€αž›αž€αŸ‹αž”αž„αŸ’αž€αžΎαžαž€αžΌαž“αžŸαŸ„ RSA 2048 αž…αŸ†αž“αž½αž“αž–αžΈαžš αž αžΎαž™αž”αž„αŸ’αž€αžΎαžαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαžš (αž”αž„αŸ’αž αžΆαž‰αž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž–)αŸ–

  1. αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αžŸαŸ„αžšαž‡αžΆ root αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž›αž€αŸ‹ (KEYM, OEM Root Key Manifest) αžŠαŸ‚αž›αžŠαžΆαž€αŸ‹ SVN (αž›αŸαžαž€αŸ†αžŽαŸ‚αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–) αž“αŸƒ manifest αž“αŸαŸ‡ αžŸαž‰αŸ’αž‰αžΆ SHA256 αž“αŸƒαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαž“αŸƒ manifest αž”αž“αŸ’αž‘αžΆαž”αŸ‹ αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆ RSA (ឧ. αž•αŸ’αž“αŸ‚αž€αžŸαžΆαž’αžΆαžšαžŽαŸˆαž“αŸƒ vendor root key) αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž αžαŸ’αžαž›αŸαžαžΆαž“αŸƒ manifest αž“αŸαŸ‡ αž“αž·αž„αž αžαŸ’αžαž›αŸαžαžΆαžαŸ’αž›αž½αž“αž―αž„αŸ”
  2. IBB Manifest (IBBM, Initial Boot Block Manifest) αžŠαŸ‚αž›αžŠαžΆαž€αŸ‹ SVN αž“αŸƒ manifest αž“αŸαŸ‡ αžŸαž‰αŸ’αž‰αžΆ SHA256 αž“αŸƒ IBB αžŠαŸ‚αž›αž‡αžΆαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž αžαŸ’αžαž›αŸαžαžΆαž“αŸƒ manifest αž“αŸαŸ‡ αž“αž·αž„αž αžαŸ’αžαž›αŸαžαžΆαžαŸ’αž›αž½αž“αž―αž„αŸ”

αžŸαž‰αŸ’αž‰αžΆ SHA256 αž“αŸƒ OEM Root Key αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‡αžΆαž’αž…αž·αž“αŸ’αžαŸ’αžšαŸƒαž™αŸαž‘αŸ…αž€αžΆαž“αŸ‹ chipset fuses (FPFs) αžŠαžΌαž…αž‘αŸ…αž“αžΉαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Intel BG αžŠαŸ‚αžšαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Intel BG αž•αŸ’αžαž›αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαžΆαž€αŸ‹αž”αž‰αŸ’αž…αžΌαž›αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž“αŸαŸ‡ αž“αŸ„αŸ‡αž…αžΆαž”αŸ‹αž–αžΈαž–αŸαž›αž“αŸαŸ‡αžαž‘αŸ…αž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αŸαŸ‡ αž˜αžΆαž“αžαŸ‚αž˜αŸ’αž…αžΆαžŸαŸ‹αž•αŸ’αž“αŸ‚αž€αž―αž€αž‡αž“αž“αŸƒ OEM Root Key αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž– BIOS (αž–αŸ„αž›αž‚αžΊαž’αžΆαž…αž‚αžŽαž“αžΆαž‘αžΎαž„αžœαž·αž‰αž“αžΌαžœαž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž‘αžΆαŸ†αž„αž“αŸαŸ‡) αž–αŸ„αž›αž‚αžΊαž§αŸ” αž’αŸ’αž“αž€αž›αž€αŸ‹αŸ”

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard

αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αžšαžΌαž”αž—αžΆαž– αž€αžΆαžšαžŸαž„αŸ’αžŸαŸαž™αž€αžΎαžαž‘αžΎαž„αž—αŸ’αž›αžΆαž˜αŸ—αž’αŸ†αž–αžΈαžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αžŸαŸ‚αžŸαž„αŸ’αžœαžΆαž€αŸ‹αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αžŠαŸαžœαŸ‚αž„αž”αŸ‚αž”αž“αŸαŸ‡ - αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž˜αž½αž™αŸ” αž αŸαžαž»αž’αŸ’αžœαžΈαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰?

αž‡αžΆαž€αžΆαžšαž–αž·αž Intel αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž’αŸ’αž“αž€αž›αž€αŸ‹αž“αžΌαžœαž±αž€αžΆαžŸαžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžšαžΎαžŸαŸ„ IBB αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž“αŸ’αž‘αžΆαžαŸ‹αž•αž›αž·αžαž•αž›αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆ αž“αž·αž„αž˜αž½αž™αž‡αžΆ root αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž•αŸ’αž“αŸ‚αž€αž―αž€αž‡αž“αž“αŸƒαž€αžΌαž“αžŸαŸ„ IBB (αžŠαŸ‚αž›αž‡αžΆαžŸαž‰αŸ’αž‰αžΆαž”αž„αŸ’αž αžΆαž‰αž‘αžΈαž–αžΈαžš) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αŸαž…αž’αŸ’αž›αžΆαž™ αž§αž”αž‘αŸ’αž‘αžœαž αŸαžαž»αž“αžΉαž„αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαž›αŸ‹αžαŸ’αžŸαŸ‚αž•αž›αž·αžαž•αž›αžαŸ‚αž˜αž½αž™αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž αžΎαž™αžšαž αžΌαžαžŠαž›αŸ‹αž’αŸ’αž“αž€αž›αž€αŸ‹αž”αž„αŸ’αž€αžΎαžαž‚αžΌαžαŸ’αž˜αžΈ αž“αž·αž„αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αžΎαž„αžœαž·αž‰αž“αžΌαžœ manifests αžŠαŸ‚αž›αž”αžΆαž“αž‚αžŽαž“αžΆαž‘αžΎαž„αžœαž·αž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αžΆαž”αŸ‹αžŠαŸαž BIOS αž”αž“αŸ’αž‘αžΆαž”αŸ‹αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŸαŸ„αž«αžŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αžšαž”αžŸαž˜αŸ’αžšαž½αž› (αžŠαŸ‚αž›αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αžŠαŸ†αž”αžΌαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆ) αžœαžΆαž“αžΉαž„αž˜αž·αž“αž’αžΆαž…αž‡αŸ†αž“αž½αžŸαžœαžΆαž”αžΆαž“αž‘αŸ αž“αžΈαžαž·αžœαž·αž’αžΈαžŠαž€αž αžΌαžαž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž‘αŸαŸ” αžŸαž‰αŸ’αž‰αžΆαž“αŸƒαž•αŸ’αž“αŸ‚αž€αžŸαžΆαž’αžΆαžšαžŽαŸˆαž“αŸƒαž‚αž“αŸ’αž›αžΉαŸ‡αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αŸ…αž€αŸ’αž“αž»αž„ FPFs αž˜αŸ’αžαž„ αž“αž·αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Intel Boot Guard

αž₯αž‘αžΌαžœαž“αŸαŸ‡αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Intel BG αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžšαž”αžŸαŸ‹αžœαžΆαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž•αŸ’αž‘αžΆαŸ†αž„αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„ GUI αž“αŸƒ Flash Image Tool αž–αžΈ Intel System Tool Kit (STK) αž’αŸ’αž“αž€αž“αžΉαž„αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžƒαžΎαž‰αžαžΆ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Intel BG αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αžŸαž‰αŸ’αž‰αžΆαž“αŸƒαž•αŸ’αž“αŸ‚αž€αžŸαžΆαž’αžΆαžšαžŽαŸˆαž“αŸƒ vendor root key αžŠαŸ‚αž›αž‡αžΆαž—αžΆαž–αž˜αž·αž“αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αžαž˜αŸ’αž›αŸƒ αž αžΎαž™αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž“αŸ…αž›αžΎαŸ” αž‘αž˜αŸ’αžšαž„αŸ‹ Intel BG αŸ”

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard

αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸƒαž‘αž˜αŸ’αžšαž„αŸ‹αž“αŸαŸ‡αŸ–

typedef struct BG_PROFILE
{
	unsigned long Force_Boot_Guard_ACM : 1;
	unsigned long Verified_Boot : 1;
	unsigned long Measured_Boot : 1;
	unsigned long Protect_BIOS_Environment : 1;
	unsigned long Enforcement_Policy : 2; // 00b – do nothing
                                              // 01b – shutdown with timeout
                                              // 11b – immediate shutdown
	unsigned long : 26;
};

αž‡αžΆαž‘αžΌαž‘αŸ… αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Intel BG αž‚αžΊαž‡αžΆαž’αž„αŸ’αž‚αž—αžΆαž–αžŠαŸ‚αž›αž’αžΆαž…αž”αžαŸ‹αž”αŸ‚αž“αž”αžΆαž“αŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αžŸαžΌαž˜αž–αž·αž…αžΆαžšαžŽαžΆαž‘αž„αŸ‹ Force_Boot_Guard_ACM αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αž’αžΆαž αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αŸ‰αžΌαžŒαž»αž› ACM αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ BG αž“αŸ…αž›αžΎ SPI flash αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αžƒαžΎαž‰αž‘αŸαž“αŸ„αŸ‡ αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αž“αžΉαž„αž€αžΎαžαž‘αžΎαž„αž‘αŸαŸ” αžœαžΆαž“αžΉαž„αž˜αž·αž“αž‚αž½αžšαž±αŸ’αž™αž‘αž»αž€αž…αž·αžαŸ’αžαŸ”

αž™αžΎαž„αž”αžΆαž“αžŸαžšαžŸαŸαžšαžαžΆαž„αž›αžΎαžšαž½αž…αž αžΎαž™αžαžΆαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž’αž“αž»αžœαžαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž”αŸ€αž” VB αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž”αžšαžΆαž‡αŸαž™ αž“αŸ„αŸ‡αž€αžΆαžšαž‘αžΆαž‰αž™αž€αžŠαŸ‚αž›αž˜αž·αž“αž‚αž½αžšαž±αŸ’αž™αž‘αž»αž€αž…αž·αžαŸ’αžαž“αžΉαž„αž€αžΎαžαž‘αžΎαž„αž˜αŸ’αžαž„αž‘αŸ€αžαŸ”

αž‘αž»αž€β€‹αžšαžΏαž„β€‹αž”αŸ‚αž”β€‹αž“αŸαŸ‡β€‹αž‘αŸ…β€‹αž’αŸ’αž“αž€β€‹αž›αž€αŸ‹...

GUI αžšαž”αžŸαŸ‹αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž‘αž˜αŸ’αžšαž„αŸ‹ "αžšαž½αž…αžšαžΆαž›αŸ‹αž αžΎαž™" αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

αž”αž“αŸ’αž‘αž”αŸ‹
αžšαž”αŸ€αž”
αž”αžšαž·αž™αžΆαž™

0
No_FVME
αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ Intel BG αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘

1
VE
αž˜αž»αžαž„αžΆαžš VB αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€ αž”αž·αž‘αžŠαŸ„αž™αž€αžΆαžšαž’αžŸαŸ‹αž–αŸαž›

2
VME
αžšαž”αŸ€αž”αž‘αžΆαŸ†αž„αž–αžΈαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€ (VB αž“αž·αž„ MB) αž”αž·αž‘αžŠαŸ„αž™αž€αžΆαžšαž’αžŸαŸ‹αž–αŸαž›

3
VM
αžšαž”αŸ€αž”αž‘αžΆαŸ†αž„αž–αžΈαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€ αžŠαŸ„αž™αž˜αž·αž“αž”αž·αž‘αž”αŸ’αžšαž–αŸαž“αŸ’αž’

4
αž’αŸαž αŸ’αžœαžœαžΈαž’αŸŠαžΈ
αž˜αž»αžαž„αžΆαžš VB αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€ αž€αžΆαžšαž”αž·αž‘αž—αŸ’αž›αžΆαž˜αŸ—

5
FVME
αžšαž”αŸ€αž”αž‘αžΆαŸ†αž„αž–αžΈαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€ αž€αžΆαžšαž”αž·αž‘αž—αŸ’αž›αžΆαž˜αŸ—

αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžšαž½αž…αž˜αž€αž αžΎαž™ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Intel BG αžαŸ’αžšαžΌαžœαžαŸ‚αžŸαžšαžŸαŸαžšαž˜αŸ’αžαž„ αž“αž·αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ„αž™αž’αŸ’αž“αž€αž›αž€αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αŸ…αž€αŸ’αž“αž»αž„ chipset fuses (FPFs) - αžαžΌαž…αž˜αž½αž™ (αž™αŸ„αž„αž‘αŸ…αžαžΆαž˜αž–αŸαžαŸŒαž˜αžΆαž“αžŠαŸ‚αž›αž˜αž·αž“αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ αž˜αžΆαž“αžαŸ‚ 256 bytes) hardware storage information in the chipset αžŠαŸ‚αž›αž’αžΆαž…αžŠαžΆαž€αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αžαžΆαž„αž€αŸ’αžšαŸ…αž”αžΆαž“αŸ” αž“αŸƒαž€αž“αŸ’αž›αŸ‚αž„αž•αž›αž·αžαžšαž”αžŸαŸ‹ Intel (αž“αŸ„αŸ‡αž αžΎαž™αž‡αžΆαž˜αžΌαž›αž αŸαžαž» Field αž’αžΆαž…β€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈβ€‹αž”αžΆαž“ fuses) αŸ”

αžœαžΆαž›αŸ’αž’αžŽαžΆαžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αŸ–

  • αž˜αžΆαž“β€‹αž•αŸ’αž‘αŸƒβ€‹αž•αŸ’αž‘αž»αž€β€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™β€‹αžŠαŸ‚αž›β€‹αž’αžΆαž…β€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈβ€‹αž”αžΆαž“β€‹αž˜αž½αž™β€‹αžŠαž„ (αž‚αŸ’αžšαžΆαž“αŸ‹β€‹αžαŸ‚β€‹αž‡αžΆβ€‹αž€αž“αŸ’αž›αŸ‚αž„β€‹αžŠαŸ‚αž›β€‹αž€αžΆαžšβ€‹αž€αŸ†αžŽαžαŸ‹β€‹αžšαž…αž“αžΆβ€‹αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Intel BG αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αžŸαžšαžŸαŸαžš);
  • αž˜αžΆαž“αžαŸ‚ Intel ME αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž’αžΆαž…αž’αžΆαž“ αž“αž·αž„αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžœαžΆαž”αžΆαž“αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ Intel BG αž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ αž’αŸ’αž“αž€αž›αž€αŸ‹αž’αŸ’αžœαžΎαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž•αž›αž·αž:

  1. αžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžšαžΌαž”αž—αžΆαž– Flash (αž–αžΈ Intel STK) αž”αž„αŸ’αž€αžΎαžαžšαžΌαž”αž—αžΆαž–αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Intel BG αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž‡αžΆαž’αžαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹ Intel ME (αžŠαŸ‚αž›αž αŸ…αžαžΆαž€αž‰αŸ’αž…αž€αŸ‹αž”αžŽαŸ’αžαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ FPFs);
  2. αžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Flash (αž–αžΈ Intel STK) αžŸαžšαžŸαŸαžšαžšαžΌαž”αž—αžΆαž–αž“αŸαŸ‡αž‘αŸ…αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž–αž“αŸ’αž›αžΊ SPI αž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž αžΎαž™αž”αž·αž‘αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž‚αŸαž αŸ…αžαžΆαŸ” αžšαž”αŸ€αž”αž•αž›αž·αž (αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αž‘αŸ… Intel ME) αŸ”

αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡ Intel ME αž“αžΉαž„αž”αŸ’αžαŸαž‡αŸ’αž‰αžΆαž…αŸ†αž–αŸ„αŸ‡ FPFs αž“αžΌαžœαžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž–αžΈαž€αž‰αŸ’αž…αž€αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ FPFs αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹ ME αž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž“αŸ…αž€αŸ’αž“αž»αž„ SPI flash descriptors αž‘αŸ…αž“αžΉαž„αžαž˜αŸ’αž›αŸƒαžŠαŸ‚αž›αž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αžŠαŸ„αž™ Intel (αž–αž·αž–αžŽαŸŒαž“αžΆαž“αŸ…αžŠαžΎαž˜αžŠαŸ†αž”αžΌαž„αž“αŸƒ αž’αžαŸ’αžαž”αž‘) αž αžΎαž™αž’αž“αž»αžœαžαŸ’αžαž”αŸ’αžšαž–αŸαž“αŸ’αž’ RESET αŸ”

αž€αžΆαžšαžœαž·αž—αžΆαž‚αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžšαž”αžŸαŸ‹ Intel Boot Guard

αžŠαžΎαž˜αŸ’αž”αžΈαžœαž·αž—αžΆαž‚αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž“αŸαŸ‡αž›αžΎαž§αž‘αžΆαž αžšαžŽαŸαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ αž™αžΎαž„αž”αžΆαž“αž–αž·αž“αž·αžαŸ’αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαžΆαž“αž“αŸƒαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ Intel BGαŸ–

αž”αŸ’αžšαž–αŸαž“αŸ’αž’
αž€αžΆαžšαž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹

αž‡αžΈαž αŸ’αž‚αžΆαž”αŸƒ GA-H170-D3H
Skylake αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš

αž‡αžΈαž αŸ’αž‚αžΆαž”αŸƒ GA-Q170-D3H
Skylake αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš

αž‡αžΈαž αŸ’αž‚αžΆαž”αŸƒ GA-B150-HD3
Skylake αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš

MSI H170A Gaming Pro
Skylake αž˜αž·αž“αž‚αžΆαŸ†αž‘αŸ’αžšαž‘αŸαŸ”

Lenovo ThinkPad ្αŸ₯
Skylake, αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ‚αž›αž˜αžΆαž“, αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž”αžΆαž“αž”αžΎαž€

αž‚αžΆαŸ†αž‘αŸ’αžšαž™αžΌαž αŸ’αž‚αžΆαž™αžΌαž’αž·αž› 2 Pro αŸ”
Haswell αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž‘αŸαŸ”

αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ Lenovo U330p
Haswell αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαž‘αŸαŸ”

"αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš" αž˜αžΆαž“αž“αŸαž™αžαžΆαžœαžαŸ’αžαž˜αžΆαž“αžšαž”αžŸαŸ‹ Intel BG startup module ACM, manifests αžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αžšαžΆαž”αŸ‹αžαžΆαž„αž›αžΎ αž“αž·αž„αž€αžΌαžŠαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„ BIOS, i.e. αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžœαž·αž—αžΆαž‚αŸ”

αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž…αžΌαžšαž™αžΎαž„αž™αž€αž˜αž½αž™αžŠαŸ‚αž›αž”αžΆαž“αž‘αžΆαž‰αž™αž€αž–αžΈαž€αžΆαžšαž·αž™αžΆαž›αŸαž™αŸ” αžšαžΌαž”αž—αžΆαž–αž‚αŸαž αž‘αŸ†αž–αŸαžšαž’αŸ’αž“αž€αž›αž€αŸ‹αž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž–αž“αŸ’αž›αžΊ SPI αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Gigabyte GA-H170-D3H (αž€αŸ†αžŽαŸ‚ F4) αŸ”

Intel CPU boot ROM

αž‡αžΆαžŠαŸ†αž”αžΌαž„αžŸαžΌαž˜αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžšαž”αžŸαŸ‹αžαž½αžšαž€αŸ’αž”αžΆαž›αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ Intel BG αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αŸ”

αžœαžΆαž˜αž·αž“αž’αžΆαž…αžšαž€αžƒαžΎαž‰αž‚αŸ†αžšαžΌαž“αŸƒαž˜αžΈαž€αŸ’αžšαžΌαž€αžΌαžŠαžŠαŸ‚αž›αž”αžΆαž“αžŒαž·αž‚αŸ’αžšαžΈαž”αž‘αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αžšαž”αŸ€αž”αžŠαŸ‚αž›αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αž (αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΈαž€αŸ’αžšαžΌαž€αžΌαžŠ αž¬αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„) αž‚αžΊαž‡αžΆαžŸαŸ†αžŽαž½αžšαž”αžΎαž€αž…αŸ†αž αŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Intel αž‘αŸ†αž“αžΎαž” "αž’αžΆαž…" αž’αŸ’αžœαžΎαžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαž–αž·αžαŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž…αŸαž‰αž–αžΈαžŸαŸ’αžαžΆαž“αž—αžΆαž– RESET αžαž½αžšαž€αŸ’αž”αžΆαž› (αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αžŠαŸ‚αž›αž˜αžΆαžαž·αž€αžΆαž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž–αž“αŸ’αž›αžΊαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΌαžŸαžœαžΆαžŸαžšαž½αž…αž αžΎαž™) αžšαž€αžƒαžΎαž‰ FIT (αžαžΆαžšαžΆαž„αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹) αŸ” αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž› αž‘αŸ’αžšαž“αž·αž…αž‘αŸ…αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž“αŸ…αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ FFFF FFC0h αŸ”

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαž“αŸαŸ‡ αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž“αŸαŸ‡αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒ FFD6 9500h αŸ” αž„αžΆαž€αž‘αŸ…αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž“αŸαŸ‡ αžαž½αžšαž€αŸ’αž”αžΆαž›αž˜αžΎαž›αžƒαžΎαž‰αžαžΆαžšαžΆαž„ FIT αžŠαŸ‚αž›αž˜αžΆαžαž·αž€αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ‚αž„αž…αŸ‚αž€αž‘αŸ…αž‡αžΆαž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαŸ” αž’αžΆαžαž»αž‘αžΈαž˜αž½αž™αž‚αžΊαž‡αžΆαž€αŸ’αž”αžΆαž›αž“αŸƒαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸˆ

typedef struct FIT_HEADER
{
	char           Tag[8];     // β€˜_FIT_   ’
	unsigned long  NumEntries; // including FIT header entry
	unsigned short Version;    // 1.0
	unsigned char  EntryType;  // 0
	unsigned char  Checksum;
};

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αŸαžαž»αž•αž›αžŠαŸ‚αž›αž˜αž·αž“αžŸαŸ’αž‚αžΆαž›αŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“ αž˜αžΌαž›αž”αŸ’αž”αž‘αžΆαž“αž”αŸαžαŸ’αžšαž˜αž·αž“αžαŸ‚αž„αžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžŽαž“αžΆαž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‘αŸ (αžœαžΆαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž»αž€αž‡αžΆαž˜αŸ„αžƒαŸˆ)αŸ”

αž’αžΆαžαž»αžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αž…αž„αŸ’αž’αž»αž›αž‘αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ„αž›αž–αžΈαžšαž•αŸ’αžŸαŸαž„αŸ—αžŠαŸ‚αž›αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαž‰αŸ‚αž€/αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž· αž˜αž»αž“αž–αŸαž›αžŠαŸ‚αž› BIOS αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž· αž–αŸ„αž›αž‚αžΊαž§αŸ” αž˜αž»αž“αž–αŸαž›αž”αŸ’αžαžΌαžšαž‘αŸ…αžœαŸ‰αž·αž…αž‘αŸαžš RESET αž…αžΆαžŸαŸ‹ (FFFF FFF0h) αŸ” αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸƒαž’αžΆαžαž»αž“αžΈαž˜αž½αž™αŸ—αž˜αžΆαž“αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

typedef struct FIT_ENTRY
{
	unsigned long  BaseAddress;
	unsigned long  : 32;
	unsigned long  Size;
	unsigned short Version;     // 1.0
	unsigned char  EntryType;
	unsigned char  Checksum;
};

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
αžœαžΆαž› EntryType αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž”αŸ’αžšαž—αŸαž‘αž“αŸƒαž”αŸ’αž›αž»αž€αž“αŸαŸ‡αž…αž„αŸ’αž’αž»αž›αž‘αŸ…αŸ” αž™αžΎαž„αžŠαžΉαž„αž–αžΈαž”αŸ’αžšαž—αŸαž‘αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ–

enum FIT_ENTRY_TYPES
{
	FIT_HEADER = 0,
	MICROCODE_UPDATE,
	BG_ACM,
	BIOS_INIT = 7,
	TPM_POLICY,
	BIOS_POLICY,
	TXT_POLICY,
	BG_KEYM,
	BG_IBBM
};

αž₯αž‘αžΌαžœαž“αŸαŸ‡αžœαžΆαž…αŸ’αž”αžΆαžŸαŸ‹αžŽαžΆαžŸαŸ‹αžαžΆαž’αžΆαžαž»αž˜αž½αž™αž…αž„αŸ’αž’αž»αž›αž‘αŸ…αž‘αžΈαžαžΆαŸ†αž„αžšαž”αžŸαŸ‹ Intel BG startup ACM binary αŸ” αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αž‹αž˜αž€αžαžΆαž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ„αž›αž–αžΈαžšαž“αŸαŸ‡αž‚αžΊαž’αž˜αŸ’αž˜αžαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΌαžŒαž»αž›αž€αžΌαžŠαžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™ Intel (ACMs, microcode updates, Intel ME code sections, ...)αŸ”

typedef struct BG_ACM_HEADER
{
	unsigned short ModuleType;     // 2
	unsigned short ModuleSubType;  // 3
	unsigned long  HeaderLength;   // in dwords
	unsigned long  : 32;
	unsigned long  : 32;
	unsigned long  ModuleVendor;   // 8086h
	unsigned long  Date;           // in BCD format
	unsigned long  TotalSize;      // in dwords
	unsigned long  unknown1[6];
	unsigned long  EntryPoint;
	unsigned long  unknown2[16];
	unsigned long  RsaKeySize;     // in dwords
	unsigned long  ScratchSize;    // in dwords
	unsigned char  RsaPubMod[256];
	unsigned long  RsaPubExp;
	unsigned char  RsaSig[256];
};

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
αžαž½αžšαž€αŸ’αž”αžΆαž›αž•αŸ’αž‘αž»αž€αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ„αž›αž–αžΈαžšαž“αŸαŸ‡αž‘αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžšαž”αžŸαŸ‹αžœαžΆ αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹ αž“αž·αž„αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”

αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ Intel BG ACM

αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαžœαž·αž—αžΆαž‚αž“αŸƒαž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹ ACM αž“αŸαŸ‡αžœαžΆαž…αŸ’αž”αžΆαžŸαŸ‹αžŽαžΆαžŸαŸ‹αžαžΆαžœαžΆαž’αŸ’αžœαžΎαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜:

  • αž‘αž‘αž½αž›αž”αžΆαž“αž–αžΈ Intel ME αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Intel BG αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‘αŸ…αž€αžΆαž“αŸ‹ chipset fuses (FPFs);
  • αžšαž€αžƒαžΎαž‰ KEYM αž“αž·αž„ IBBM manifests αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž–αž½αž€αžœαžΆαŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαžŸαŸ’αžœαŸ‚αž„αžšαž€αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž‘αžΆαŸ†αž„αž“αŸαŸ‡ ACM αž€αŸαž”αŸ’αžšαžΎαžαžΆαžšαžΆαž„ FIT αžŠαŸ‚αž›αž˜αžΆαž“αž’αžΆαžαž»αž–αžΈαžšαž”αŸ’αžšαž—αŸαž‘αžŠαžΎαž˜αŸ’αž”αžΈαž…αž„αŸ’αž’αž»αž›αž‘αŸ…αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž“αŸαŸ‡ (αžŸαžΌαž˜αž˜αžΎαž› FIT_ENTRY_TYPES αžαžΆαž„αž›αžΎ)αŸ”

αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž› manifestos αž±αŸ’αž™αž”αžΆαž“αžŠαž·αžαžŠαž›αŸ‹αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸƒ manifest αž‘αžΈαž˜αž½αž™ αž™αžΎαž„αžƒαžΎαž‰αžαŸαžšαž˜αž·αž“αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“ αžŸαž‰αŸ’αž‰αžΆαž“αŸƒαžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαž–αžΈ manifest αž‘αžΈαž–αžΈαžš αž“αž·αž„ OEM Root Key αžŸαžΆαž’αžΆαžšαžŽαŸˆαž”αžΆαž“αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆαž‡αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž‡αžΆαž”αŸ‹αž‚αŸ’αž“αžΆαŸ–

typedef struct KEY_MANIFEST
{
	char           Tag[8];          // β€˜__KEYM__’
	unsigned char  : 8;             // 10h
	unsigned char  : 8;             // 10h
	unsigned char  : 8;             // 0
	unsigned char  : 8;             // 1
	unsigned short : 16;            // 0Bh
	unsigned short : 16;            // 20h == hash size?
	unsigned char  IbbmKeyHash[32]; // SHA256 of an IBBM public key
	BG_RSA_ENTRY   OemRootKey;
};

typedef struct BG_RSA_ENTRY
{
	unsigned char  : 8;             // 10h
	unsigned short : 16;            // 1
	unsigned char  : 8;             // 10h
	unsigned short RsaPubKeySize;   // 800h
	unsigned long  RsaPubExp;
	unsigned char  RsaPubKey[256];
	unsigned short : 16;            // 14
	unsigned char  : 8;             // 10h
	unsigned short RsaSigSize;      // 800h
	unsigned short : 16;            // 0Bh
	unsigned char  RsaSig[256];
};

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαž“αŸƒ OEM Root Key αž™αžΎαž„αž…αžΆαŸ†αžαžΆ SHA256 hash αž–αžΈ fuses αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎ αžŠαŸ‚αž›αž“αŸ…αž–αŸαž›αž“αŸαŸ‡αž”αžΆαž“αž‘αž‘αž½αž›αžšαž½αž…αž αžΎαž™αž–αžΈ Intel ME αŸ”

αž…αžΌαžšαž™αžΎαž„αž”αž“αŸ’αžαž‘αŸ… manifesto αž‘αžΈαž–αžΈαžšαŸ” αžœαžΆαž˜αžΆαž“αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αžΈαŸ–

typedef struct IBB_MANIFEST
{
	ACBP Acbp;         // Boot policies
	IBBS Ibbs;         // IBB description
	IBB_DESCRIPTORS[];
	PMSG Pmsg;         // IBBM signature
};

αž‘αžΈαž˜αž½αž™αž˜αžΆαž“αž’αžαŸαžšαž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ–

typedef struct ACBP
{
	char           Tag[8];          // β€˜__ACBP__’
	unsigned char  : 8;             // 10h
	unsigned char  : 8;             // 1
	unsigned char  : 8;             // 10h
	unsigned char  : 8;             // 0
	unsigned short : 16;            // x & F0h = 0
	unsigned short : 16;            // 0 < x <= 400h
};

αž‘αžΈαž–αžΈαžšαž˜αžΆαž“αžŸαž‰αŸ’αž‰αžΆ SHA256 αžšαž”αžŸαŸ‹ IBB αž“αž·αž„αž…αŸ†αž“αž½αž“αž’αŸ’αž“αž€αž–αžŽαŸŒαž“αžΆαžŠαŸ‚αž›αž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαžαŸ’αž›αžΉαž˜αžŸαžΆαžšαž“αŸƒ IBB (ឧ.

typedef struct IBBS
{
	char           Tag[8];            // β€˜__IBBS__’
	unsigned char  : 8;               // 10h
	unsigned char  : 8;               // 0
	unsigned char  : 8;               // 0
	unsigned char  : 8;               // x <= 0Fh
	unsigned long  : 32;              // x & FFFFFFF8h = 0
	unsigned long  Unknown[20];
	unsigned short : 16;              // 0Bh
	unsigned short : 16;              // 20h == hash size ?
	unsigned char  IbbHash[32];       // SHA256 of an IBB
	unsigned char  NumIbbDescriptors;
};

αž’αŸ’αž“αž€αž–αž·αž–αžŽαŸŒαž“αžΆ IBB αž’αŸ’αžœαžΎαžαžΆαž˜αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸαŸ‡ αž˜αž½αž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž˜αžΆαžαž·αž€αžΆαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž˜αžΆαž“αž‘αž˜αŸ’αžšαž„αŸ‹αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸˆ

typedef struct IBB_DESCRIPTOR
{
	unsigned long  : 32;
	unsigned long  BaseAddress;
	unsigned long  Size;
};

αžœαžΆαžŸαžΆαž˜αž‰αŸ’αž‰αŸ– αž’αŸ’αž“αž€αž–αžŽαŸŒαž“αžΆαž“αžΈαž˜αž½αž™αŸ—αž˜αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“/αž‘αŸ†αž αŸ†αž“αŸƒαž€αŸ†αžŽαžΆαžαŸ‹ IBB αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž‚αŸ’αž“αžΆαž“αŸƒαž”αŸ’αž›αž»αž€αžŠαŸ‚αž›αž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰αžŠαŸ„αž™αž’αŸ’αž“αž€αž–αž·αž–αžŽαŸŒαž“αžΆαž‘αžΆαŸ†αž„αž“αŸαŸ‡ (αžαžΆαž˜αž›αŸ†αžŠαžΆαž”αŸ‹αž“αŸƒαž’αŸ’αž“αž€αž–αžŽαŸŒαž“αžΆαžαŸ’αž›αž½αž“αž―αž„) αž‚αžΊ IBB αŸ” αž αžΎαž™αž‡αžΆαž€αŸ’αž”αž½αž“ IBB αž‚αžΊαž‡αžΆαž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αŸƒαž˜αŸ‰αžΌαžŒαž»αž›αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒαžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž› SEC αž“αž·αž„ PEI αŸ”

αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž‘αžΈαž–αžΈαžšαž”αž‰αŸ’αž…αž”αŸ‹αžŠαŸ„αž™αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆ IBB (αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αžŠαŸ„αž™αžŸαž‰αŸ’αž‰αžΆ SHA256 αž–αžΈ manifest αžŠαŸ†αž”αžΌαž„) αž“αž·αž„αž αžαŸ’αžαž›αŸαžαžΆαž“αŸƒ manifest αž“αŸαŸ‡αŸ–

typedef struct PMSG
{
	char           Tag[8];            // β€˜__PMSG__’
	unsigned char  : 8;               // 10h
	BG_RSA_ENTRY   IbbKey;
};

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž˜αž»αž“αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž· UEFI BIOS αžαž½αžšαž€αŸ’αž”αžΆαž›αž“αžΉαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ ACM αžŠαŸ‚αž›αž“αžΉαž„αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸƒαž˜αžΆαžαž·αž€αžΆαž“αŸƒαž•αŸ’αž“αŸ‚αž€αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž›αŸαžαž€αžΌαžŠαžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž› SEC αž“αž·αž„ PEI αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ processor αž…αŸαž‰αž–αžΈ ACM αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαžαžΆαž˜αžœαŸ‰αž·αž…αž‘αŸαžš RESET αž αžΎαž™αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš BIOS αŸ”

αž—αžΆαž‚αžαžΆαžŸαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹ PEI αžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αž˜αŸ‰αžΌαžŒαž»αž›αžŠαŸ‚αž›αž“αžΉαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž“αŸ…αžŸαž›αŸ‹αž“αŸƒ BIOS (αž›αŸαžαž€αžΌαžŠ DXE) αŸ” αž˜αŸ‰αžΌαžŒαž»αž›αž“αŸαŸ‡αž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™ IBV (Independent BIOS Vendor) αž¬αž’αŸ’αž“αž€αž›αž€αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ” αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚ αž˜αžΆαž“αžαŸ‚αž”αŸ’αžšαž–αŸαž“αŸ’αž’ Lenovo αž“αž·αž„ Gigabyte αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ’αž›αžΆαž™αž‡αžΆαž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αžšαž”αžŸαŸ‹αž™αžΎαž„ αž αžΎαž™αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš Intel BG αžŸαžΌαž˜αž–αž·αž…αžΆαžšαžŽαžΆαž€αžΌαžŠαžŠαŸ‚αž›αž”αžΆαž“αžŸαŸ’αžšαž„αŸ‹αž…αŸαž‰αž–αžΈαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ”

αž˜αŸ‰αžΌαžŒαž»αž› UEFI BIOS LenovoVerifiedBootPei

αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈ Lenovo αžœαžΆαž”αžΆαž“αž”αŸ’αžšαŸ‚αž€αŸ’αž›αžΆαž™αž‘αŸ…αž‡αžΆαž˜αŸ‰αžΌαžŒαž»αž› LenovoVerifiedBootPei {B9F2AC77-54C7-4075-B42E-C36325A9468D} αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ Lenovo αŸ”

αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αžœαžΆαž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαžšαž€αž˜αžΎαž› (αžŠαŸ„αž™ GUID) αžαžΆαžšαžΆαž„αžŸαž‰αŸ’αž‰αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ DXE αž“αž·αž„αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹ DXE αŸ”

if (EFI_PEI_SERVICES->GetBootMode() != BOOT_ON_S3_RESUME)
{
	if (!FindHashTable())
		return EFI_NOT_FOUND;
	if (!VerifyDxe())
		return EFI_SECURITY_VIOLATION;
}

Π₯Сш Ρ‚Π°Π±Π»ΠΈΡ†Π° {389CC6F2-1EA8-467B-AB8A-78E769AE2A15} ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚:

typedef struct HASH_TABLE
{
	char          Tag[8];            // β€˜$HASHTBL’
	unsigned long NumDxeDescriptors;
	DXE_DESCRIPTORS[];
};

typedef struct DXE_DESCRIPTOR
{
	unsigned char BlockHash[32];     // SHA256
	unsigned long Offset;
	unsigned long Size;
};

αž˜αŸ‰αžΌαžŒαž»αž› UEFI BIOS BootGuardPei

αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈ Gigabyte αžœαžΆαž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆαž˜αŸ‰αžΌαžŒαž»αž› BootGuardPei {B41956E1-7CA2-42DB-9562-168389F0F066} αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŠαŸ„αž™ AMI αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™αž˜αžΆαž“αžœαžαŸ’αžαž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ AMI BIOS αžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžš Intel BG αŸ”

αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™β€‹αž“αŸƒβ€‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšβ€‹αžšαž”αžŸαŸ‹β€‹αžœαžΆβ€‹αž˜αžΆαž“β€‹αž—αžΆαž–β€‹αžαž»αžŸβ€‹αž‚αŸ’αž“αžΆβ€‹αž”αž“αŸ’αžαž·αž…β€‹αž‘αŸ„αŸ‡β€‹αž”αžΈβ€‹αž‡αžΆβ€‹αž™αŸ‰αžΆαž„β€‹αžŽαžΆβ€‹αžœαžΆβ€‹αž–αž»αŸ‡β€‹αž€αž‰αŸ’αž‡αŸ’αžšαŸ„αž›β€‹αžŠαžΌαž…β€‹αž‚αŸ’αž“αžΆαŸ–

int bootMode = EFI_PEI_SERVICES->GetBootMode();

if (bootMode != BOOT_ON_S3_RESUME &&
    bootMode != BOOT_ON_FLASH_UPDATE &&
    bootMode != BOOT_IN_RECOVERY_MODE)
{
	HOB* h = CreateHob();
	if (!FindHashTable())
		return EFI_NOT_FOUND;
	WriteHob(&h, VerifyDxe());
	return h;
}

αžαžΆαžšαžΆαž„αžŸαž‰αŸ’αž‰αžΆ {389CC6F2-1EA8-467B-AB8A-78E769AE2A15} αžŠαŸ‚αž›αžœαžΆαž˜αžΎαž›αž‘αŸ…αž˜αžΆαž“αž‘αž˜αŸ’αžšαž„αŸ‹αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

typedef HASH_TABLE DXE_DESCRIPTORS[];

typedef struct DXE_DESCRIPTOR
{
	unsigned char BlockHash[32];     // SHA256
	unsigned long BaseAddress;
	unsigned long Size;
};

Intel Boot Guard 2.x

αžŸαžΌαž˜αž“αž·αž™αžΆαž™αžŠαŸ„αž™αžŸαž„αŸ’αžαŸαž”αž’αŸ†αž–αžΈαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αŸƒ Intel Boot Guard αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αžƒαžΎαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαŸ’αž˜αžΈαž‡αžΆαž„αž“αŸαŸ‡αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎ Intel SoC αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž˜αžΈαž€αŸ’αžšαžΌαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ Apollo Lake - ASRock J4205-IT αŸ”

αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αŸ†αžŽαŸ‚αž“αŸαŸ‡αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„ SoCs αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ (αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαŸ’αž˜αžΈαž‡αžΆαž˜αž½αž™αž˜αžΈαž€αŸ’αžšαžΌαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ Kaby Lake processor αž”αž“αŸ’αžαž”αŸ’αžšαžΎ Intel Boot Guard 1.x) αžœαžΆαž˜αžΆαž“αž…αŸ†αžŽαžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αžœαŸ‚αž„αžšαž€αž‡αž˜αŸ’αžšαžΎαžŸαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžαŸ’αž˜αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαŸαž‘αž·αž€αžΆαžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž›αžΎ Intel SoCs αžŠαŸ‚αž›αž”αžΆαž“αžƒαžΎαž‰αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αŸ” αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž§αž‘αžΆαž αžšαžŽαŸαŸ–

  • αžαŸ†αž”αž“αŸ‹ BIOS αž“αž·αž„ Intel ME (αž¬αž‡αžΆ Intel TXE αž“αŸαŸ‡αž”αžΎαž™αŸ„αž„αžαžΆαž˜αžœαžΆαž€αŸ’αž™αžŸαŸαž–αŸ’αž‘ Intel SoC) αž₯αž‘αžΌαžœαž“αŸαŸ‡αž‚αžΊαž‡αžΆαžαŸ†αž”αž“αŸ‹ IFWI αž˜αž½αž™αŸ”
  • αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆ Intel BG αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΎαž€αž“αŸ…αž›αžΎαžœαŸαž‘αž·αž€αžΆαž€αŸαžŠαŸ„αž™ αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαžΌαž…αž‡αžΆ FIT, KEYM, IBBM αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αžƒαžΎαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž–αž“αŸ’αž›αžΊαž‘αŸαŸ”
  • αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎ TXE αž“αž·αž„ ISH cores (x86) αžŸαŸ’αž“αžΌαž›αž‘αžΈαž”αžΈ (αž˜αŸ’αžαž„αž‘αŸ€αž ARC αžŠαŸ„αž™αžœαž·αž’αžΈαž“αŸαŸ‡) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ… chipset - PMC (Power Management Controller) αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™αž€αžΆαžšαž’αžΆαž“αžΆαž“αžΌαžœαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž„αžαžΆαž˜αž–αž› αž“αž·αž„αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαž“αŸƒαžαŸ†αž”αž“αŸ‹ IFWI αžαŸ’αž˜αžΈαž‚αžΊαž‡αžΆαžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž˜αŸ‰αžΌαžŒαž»αž›αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ–

αž’αž»αž αŸ’αžœαžŸαž·αž
αžˆαŸ’αž˜αŸ„αŸ‡
αž”αžšαž·αž™αžΆαž™

៦៑ αž˜αŸ‰αŸ„αž„
SMIP
αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžœαŸαž‘αž·αž€αžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“ αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆαžŠαŸ„αž™αž’αŸ’αž“αž€αž›αž€αŸ‹

៦៑ αž˜αŸ‰αŸ„αž„
RBEP
αž•αŸ’αž“αŸ‚αž€αž€αžΌαžŠαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ Intel TXE, x86, αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆαžŠαŸ„αž™ Intel

៦៑ αž˜αŸ‰αŸ„αž„
PMCP
αž•αŸ’αž“αŸ‚αž€αž€αžΌαžŠαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ Intel PMC, ARC, αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆαžŠαŸ„αž™ Intel

៦៑ αž˜αŸ‰αŸ„αž„
FTPR
αž•αŸ’αž“αŸ‚αž€αž€αžΌαžŠαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ Intel TXE, x86, αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆαžŠαŸ„αž™ Intel

0007B000 αž˜αŸ‰αŸ„αž„αŸ”
UCOD
αž€αžΆαžšαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž˜αžΈαž€αŸ’αžšαžΌαž€αžΌαžŠαžŸαŸŠαžΈαž—αžΈαž™αžΌ αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆαžŠαŸ„αž™ Intel

៦៑ αž˜αŸ‰αŸ„αž„
αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ IBBP
UEFI BIOS, αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž› SEC/PEI, x86, αž’αŸ’αž“αž€αž›αž€αŸ‹αž”αžΆαž“αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆ

៦៑ αž˜αŸ‰αŸ„αž„
ISHC
αž•αŸ’αž“αŸ‚αž€αž€αžΌαžŠαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ Intel ISH, x86, αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆαžŠαŸ„αž™αž’αŸ’αž“αž€αž›αž€αŸ‹

៦៑ αž˜αŸ‰αŸ„αž„
αž’αž·αž“αž’αŸαž αŸ’αžœαž—αžΈαž’αžΈ
αž•αŸ’αž“αŸ‚αž€αž€αžΌαžŠαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ Intel TXE, x86, αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆαžŠαŸ„αž™ Intel

៦៑ αž˜αŸ‰αŸ„αž„
IUNP
αž‚αžΊαž˜αž·αž“αžŸαŸ’αž‚αžΆαž›αŸ‹

៦៑ αž˜αŸ‰αŸ„αž„
OBBP
UEFI BIOS, αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž› DXE, x86, αž˜αž·αž“αž”αžΆαž“αž…αž»αŸ‡αž αžαŸ’αžαž›αŸαžαžΆ

αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž“αŸƒαž€αžΆαžšαžœαž·αž—αžΆαž‚αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ TXE αžœαžΆαž…αŸ’αž”αžΆαžŸαŸ‹αžαžΆαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈ RESET TXE αžšαž€αŸ’αžŸαžΆ processor αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸαŸ‡αžšαž αžΌαžαžŠαž›αŸ‹αžœαžΆαžšαŸ€αž”αž…αŸ†αž˜αžΆαžαž·αž€αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸƒαž‘αŸ†αž αŸ†αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ CPU (FIT, ACM, RESET vector ... )αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ TXE αžŠαžΆαž€αŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„ SRAM αžšαž”αžŸαŸ‹αžœαžΆ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡αžœαžΆαž•αŸ’αžαž›αŸ‹αž’αŸ„αž™αžαž½αžšαž€αŸ’αž”αžΆαž›αž”αžŽαŸ’αžαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αž“αžΌαžœαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ αž αžΎαž™ "αž”αž‰αŸ’αž…αŸαž‰" αžœαžΆαž–αžΈ RESET αŸ”

αž“αŸ…αž›αžΎαž€αžΆαžšαž€αžΆαžšαž–αžΆαžšαž“αŸƒ rootkits

αž₯αž‘αžΌαžœαž“αŸαŸ‡αžŸαžΌαž˜αž”αž“αŸ’αžαž‘αŸ… "αž€αŸ’αžαŸ…" αŸ” αž™αžΎαž„αž”αžΆαž“αžšαž€αžƒαžΎαž‰αžαžΆαž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‡αžΆαž…αŸ’αžšαžΎαž“ αž’αŸ’αž“αž€αž–αžŽαŸŒαž“αžΆ SPI flash αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž…αžΌαž›αž”αŸ’αžšαžΎαžαŸ†αž”αž“αŸ‹αž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† SPI flash αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž“αŸαŸ‡αž’αžΆαž…αžŸαžšαžŸαŸαžš αž“αž·αž„αž’αžΆαž“αžαŸ†αž”αž“αŸ‹αžŽαžΆαž˜αž½αž™αŸ” αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αŸ” αž‚αŸ’αž˜αžΆαž“αž•αŸ’αž›αžΌαžœαž‘αŸαŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž‡αžΆαž˜αž½αž™αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ MEinfo (αž–αžΈ Intel STK) αž™αžΎαž„αžƒαžΎαž‰αžαžΆαžšαž”αŸ€αž”αž•αž›αž·αžαž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘αž‘αŸ αž αŸαžαž»αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž”αž“αŸ’αž‘αŸ‡αžŸαŸ€αž‚αŸ’αžœαžΈ (FPFs) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž»αž€αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž˜αž·αž“αž€αŸ†αžŽαžαŸ‹αŸ” αž”αžΆαž‘ Intel BG αž˜αž·αž“αž”αžΎαž€ αž¬αž”αž·αž‘αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž”αŸ‚αž”αž“αŸαŸ‡αž‘αŸαŸ”

αž™αžΎαž„αž€αŸ†αž–αž»αž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαžΆαž„αž€αŸ’αžšαŸ„αž˜ (αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„ Intel BG αž“αž·αž„αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž“αŸ…αž–αŸαž›αž€αŸ’αžšαŸ„αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘ αž™αžΎαž„αž“αžΉαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΈαž€αŸ’αžšαžΌαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ Haswell processor αž“αž·αž„αžαŸ’αž–αžŸαŸ‹αž‡αžΆαž„αž“αŸαŸ‡)αŸ–

  • αž•αž›αž·αžαž•αž› Gigabyte αž‘αžΆαŸ†αž„αž’αžŸαŸ‹;
  • αž•αž›αž·αžαž•αž› MSI αž‘αžΆαŸ†αž„αž’αžŸαŸ‹;
  • αž˜αŸ‰αžΌαžŠαŸ‚αž›αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒ Lenovo αž…αŸ†αž“αž½αž“ 21 αž˜αŸ‰αžΌαžŠαŸ‚αž› αž“αž·αž„αž˜αŸ‰αžΌαžŠαŸ‚αž›αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Lenovo αž…αŸ†αž“αž½αž“ 4 αŸ”

αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž™αžΎαž„αž”αžΆαž“αžšαžΆαž™αž€αžΆαžšαžŽαŸαž–αžΈαž€αžΆαžšαžšαž€αžƒαžΎαž‰αž‘αŸ…αž€αžΆαž“αŸ‹αž’αŸ’αž“αž€αž›αž€αŸ‹αž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž€αŸαžŠαžΌαž…αž‡αžΆαž‘αŸ…αž€αžΆαž“αŸ‹ Intel αž•αž„αžŠαŸ‚αžšαŸ”

αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž’αŸ’αžœαžΎαžαžΆαž˜αžαŸ‚αž–αžΈ αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ LenovoαžŠαŸ‚αž›αž‘αž‘αž½αž›αžŸαŸ’αž‚αžΆαž›αŸ‹αž”αž‰αŸ’αž αžΆ αž“αž·αž„ αž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž”αŸ†αžŽαŸ‡.

αž‡αžΈαž€αžΆαž”αŸƒ αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαžαžΆαž–αž½αž€αž‚αŸαž”αžΆαž“αž‘αž‘αž½αž›αž™αž€αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž”αžΆαž“αž’αŸ’αžœαžΎαž’αžαŸ’αžαžΆαž’αž·αž”αŸ’αž”αžΆαž™αžαžΆαž˜αž˜αž’αŸ’αž™αŸ„αž”αžΆαž™αžŽαžΆαž˜αž½αž™αž‘αžΎαž™αŸ”

αž€αžΆαžšαž”αŸ’αžšαžΆαžŸαŸ’αžšαŸαž™αž‘αžΆαž€αŸ‹αž‘αž„αž‡αžΆαž˜αž½αž™ MSI αž”αžΆαž“αž‡αžΆαž”αŸ‹αž‚αžΆαŸ†αž„αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αžαžΆαž˜αžŸαŸ†αžŽαžΎαžšαž”αžŸαŸ‹αž™αžΎαž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαŸ„ PGP αžŸαžΆαž’αžΆαžšαžŽαŸˆαžšαž”αžŸαŸ‹αž™αžΎαž„ (αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‰αžΎαž±αŸ’αž™αž–αž½αž€αž‚αŸαž“αžΌαžœαžŠαŸ†αž”αžΌαž“αŸ’αž˜αžΆαž“αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”)αŸ” αž–αž½αž€αž‚αŸαž”αžΆαž“αž“αž·αž™αžΆαž™αžαžΆαž–αž½αž€αž‚αŸ "αž‡αžΆαž’αŸ’αž“αž€αž•αž›αž·αžαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ αž αžΎαž™αž˜αž·αž“αž•αž›αž·αžαž€αžΌαž“αžŸαŸ„ PGP"αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž…αŸ’αžšαžΎαž“αž‘αŸ€αžαžŠαž›αŸ‹αž…αŸ†αžŽαž»αž…αŸ” αžŠαŸ„αž™αžŸαžΆαžšαž αŸ’αžœαž»αž™αž αŸ’αžŸαŸŠαžΈαž”αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž»αž€αž€αŸ’αž“αž»αž„αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαŸ‚αž›αž˜αž·αž“αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹ αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ (αž¬αž’αŸ’αž“αž€αžœαžΆαž™αž”αŸ’αžšαž αžΆαžš) αž’αžΆαž…αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž–αž½αž€αžœαžΆαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ (αž–αž·αž”αžΆαž€αž”αŸ†αž•αž»αžαž‚αžΊ αžŸαŸ’αžœαŸ‚αž„αžšαž€ Intel STK) αž“αŸαŸ‡αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αž˜αžΆαž“αž‡αŸ†αž αžΆαž“αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ”

1. αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš Windows (αž‡αžΆαž‘αžΌαž‘αŸ… αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“αž–αžΈαž€αŸ’αžšαŸ„αž˜ Linux(αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαž’αžΆαžŽαžΆαž‘αžΌαž€ Intel STK αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“)αŸ” αžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ MEinfo αžŸαžΌαž˜αž”αŸ’αžšαžΆαž€αžŠαžαžΆαž αŸ’αžœαž»αž™αžŸαŸŠαžΈαž”αž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αŸαŸ‡αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αŸαŸ”

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
2. αž’αžΆαž“αž˜αžΆαžαž·αž€αžΆαž“αŸƒαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž–αž“αŸ’αž›αžΊαžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Flash αŸ”

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
3. αž”αžΎαž€αžšαžΌαž”αž—αžΆαž–αžŠαŸ‚αž›αž”αžΆαž“αž’αžΆαž“αžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž€αŸ‚αžŸαž˜αŸ’αžšαž½αž› UEFI BIOS αžŽαžΆαž˜αž½αž™ αž’αŸ’αžœαžΎαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž…αžΆαŸ†αž”αžΆαž…αŸ‹ (αž’αž“αž»αžœαžαŸ’αžαžŸαŸ†αžŽαž»αŸ† root αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ) αž”αž„αŸ’αž€αžΎαž/αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ KEYM αž“αž·αž„ IBBM αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹ ME αŸ”

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
αž•αŸ’αž“αŸ‚αž€αžŸαžΆαž’αžΆαžšαžŽαŸˆαž“αŸƒαž‚αŸ’αžšαžΆαž”αŸ‹αž…αž»αž… RSA αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ†αž›αŸαž…αž“αŸ…αž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž– αžŠαŸ‚αž›αžŸαž‰αŸ’αž‰αžΆαžšαž”αžŸαŸ‹αžœαžΆαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‘αŸ…αž€αŸ’αž“αž»αž„ chipset fuses αžšαž½αž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Intel BG αžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αŸ”

4. αžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαžšαžΌαž”αž—αžΆαž– Flash αž”αž„αŸ’αž€αžΎαžαžšαžΌαž”αž—αžΆαž–αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αžαŸ’αž˜αžΈ (αžŠαŸ„αž™αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Intel BG) αŸ”

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
5. αžŸαžšαžŸαŸαžšαžšαžΌαž”αž—αžΆαž–αžαŸ’αž˜αžΈαžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž…αŸαž‰αž–αž“αŸ’αž›αžΊαžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Flash αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αžŠαŸ„αž™αž”αŸ’αžšαžΎ MEinfo αžαžΆαžαŸ†αž”αž“αŸ‹ ME αž₯αž‘αžΌαžœαž“αŸαŸ‡αž˜αžΆαž“αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Intel BG αŸ”

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
6. αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Flash αžŠαžΎαž˜αŸ’αž”αžΈαž”αž·αž‘αžšαž”αŸ€αž”αž•αž›αž·αžαŸ”

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
7. αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αžΉαž„αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž‘αžΎαž„αžœαž·αž‰ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡αžŠαŸ„αž™αž”αŸ’αžšαžΎ MEinfo αž’αŸ’αž“αž€αž’αžΆαž…αž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αžαžΆ FPFs αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž αžΎαž™αŸ”

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž‡αžΆαžšαŸ€αž„αžšαž αžΌαž αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Intel BG αž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αŸαŸ‡αŸ” αžœαžΆαž“αžΉαž„αž˜αž·αž“αž’αžΆαž…αž‘αŸ…αžšαž½αž…αž‘αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž›αž»αž”αž…αŸ„αž›αžŸαž€αž˜αŸ’αž˜αž—αžΆαž– αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸαž™αžαžΆαŸ–

  • αž˜αžΆαž“β€‹αžαŸ‚β€‹αž˜αŸ’αž…αžΆαžŸαŸ‹β€‹αž•αŸ’αž“αŸ‚αž€β€‹αž―αž€αž‡αž“β€‹αž“αŸƒ root key (ឧ. αž’αŸ’αž“αž€β€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αž”αžΎαž€ Intel BG) αž“αžΉαž„β€‹αž’αžΆαž…β€‹αž’αŸ’αžœαžΎβ€‹αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž– UEFI BIOS αž“αŸ…β€‹αž›αžΎβ€‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’β€‹αž“αŸαŸ‡αŸ”
  • αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžαŸ’αžšαž‘αž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αžŠαžΎαž˜αž‘αŸ…αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αŸαŸ‡ αž§αž‘αžΆαž αžšαžŽαŸ αžŠαŸ„αž™αž”αŸ’αžšαžΎαž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αžœαžΆαž“αžΉαž„αž˜αž·αž“αž”αžΎαž€αž‘αŸ (αž•αž›αžœαž·αž”αžΆαž€αž“αŸƒαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž’αž“αž»αžœαžαŸ’αžαž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž€αŸ†αž αž»αžŸαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹);
  • αžŠαžΎαž˜αŸ’αž”αžΈαž€αž˜αŸ’αž…αžΆαžαŸ‹ UEFI BIOS αž”αŸ‚αž”αž“αŸαŸ‡ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž‡αŸ†αž“αž½αžŸαž”αž“αŸ’αž‘αŸ‡αžŸαŸ€αž‚αŸ’αžœαžΈαž‡αžΆαž˜αž½αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ FPFs αžŠαŸ„αž™αž”αŸ’αžšαžΎ "αžŸαŸ’αž’αžΆαž" αž˜αž½αž™ (ឧ. αž›αž€αŸ‹αž”αž“αŸ’αž‘αŸ‡αžŸαŸ€αž‚αŸ’αžœαžΈ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž…αžΌαž›αž‘αŸ…αžŸαŸ’αžαžΆαž“αžΈαž™αž›αž€αŸ‹αž’αŸŠαžΈαž“αž αŸ’αžœαŸ’αžšαžΆαžšαŸ‰αŸαžŠαž€αŸ’αž“αž»αž„αžαž˜αŸ’αž›αŸƒαž‘αžΆαž“ αž¬αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αŸ†αž“αž½αžŸ motherboard αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” )

αžŠαžΎαž˜αŸ’αž”αžΈαž™αž›αŸ‹αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž› rootkit αž”αŸ‚αž”αž“αŸαŸ‡αž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžœαžΆαž™αžαž˜αŸ’αž›αŸƒαž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αžŸαŸ’αžαžΆαž“ UEFI BIOS αŸ” αž“αž·αž™αžΆαž™αžαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αžŠαŸ‚αž›αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž”αŸ†αž•αž»αžαž“αŸƒαžαž½αžšαž€αŸ’αž”αžΆαž› - SMM αŸ” rootkit αž”αŸ‚αž”αž“αŸαŸ‡αž’αžΆαž…αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαžŸαž˜αŸ’αž”αžαŸ’αžαž·αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸˆ

  • αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ’αžšαž”αž‡αžΆαž˜αž½αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš (αž’αŸ’αž“αž€αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαžšαŸ†αžαžΆαž“ SMI αžŠαŸ‚αž›αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αž‘αžΎαž„αžŠαŸ„αž™αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ„αž„);
  • αž˜αžΆαž“αž‚αž»αžŽαžŸαž˜αŸ’αž”αžαŸ’αžαž·αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒαž€αžΆαžšαžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž” SMM (αž€αžΆαžšαž…αžΌαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αŸαž‰αž›αŸαž‰αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αžΆαžαž·αž€αžΆαž“αŸƒ RAM αž“αž·αž„αž’αž“αž’αžΆαž“αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ αž€αžΆαžšαžŸαž˜αŸ’αž„αžΆαžαŸ‹αž–αžΈαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš);
  • αž€αžΌαžŠ rootkit αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž” αž“αž·αž„αžŒαž·αž‚αŸ’αžšαžΈαž” αž“αŸ…αž–αŸαž›αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αžšαž”αŸ€αž” SMM αŸ” αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αž˜αžΆαž“αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž” SMM αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž‡αžΆαžŸαŸ„αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αŸ” αž§αž‘αžΆαž αžšαžŽαŸ hash αž–αžΈαžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ SMRAM αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αž‚αž“αŸ’αž›αžΉαŸ‡αž“αŸαŸ‡ αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹ SMMαŸ” αž αžΎαž™αž“αŸαŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžαžΆαž˜αž–αžΈαžšαžœαž·αž’αžΈαŸ” αžŸαŸ’αžœαŸ‚αž„αžšαž€ RCE αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΌαžŠ SMM αž αžΎαž™αž‘αžΆαž‰αž™αž€αžœαžΆ αž¬αž”αž“αŸ’αžαŸ‚αž˜αž˜αŸ‰αžΌαžŒαž»αž› SMM αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αŸ… BIOS αžŠαŸ‚αž›αžœαžΆαž˜αž·αž“αž’αžΆαž…αž‘αŸ…αžšαž½αž…αž‘αŸαž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž™αžΎαž„αž”αžΆαž“αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Boot Guard αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αž“αŸαŸ‡αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαŸ–

  • αž”αž„αŸ’αž€αžΎαžαžŸαŸ†αžŽαž»αŸ† root αžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αžŠαž€αž…αŸαž‰αž”αžΆαž“αžŠαŸ‚αž›αž›αžΆαž€αŸ‹αžŠαŸ„αž™αž‚αŸ„αž›αž”αŸ†αžŽαž„αž˜αž·αž“αžŸαŸ’αž‚αžΆαž›αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ”
  • αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αŸ…αž›αžΎαžŸαŸ’αž“αžΌαž›αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž”αž˜αž½αž™αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„ Intel SoC αž–αŸ„αž›αž‚αžΊαž“αŸ…αž›αžΎ Intel ISH (αžŸαžΌαž˜αž˜αžΎαž›αžšαžΌαž”αž—αžΆαž–αž±αŸ’αž™αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αž”αžΆαžŸαŸ‹)αŸ”

αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
αžŸαŸ’αž”αŸ‚αž€αž‡αžΎαž„αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžšαž”αžŸαŸ‹ SchrΓΆdinger αŸ” Intel Boot Guard
αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžŸαž˜αžαŸ’αžαž—αžΆαž–αž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž„ Intel ISH αž˜αž·αž“αž‘αžΆαž“αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαžšαž€αžƒαžΎαž‰αž€αŸαžŠαŸ„αž™ αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαžœαŸ‰αž·αž…αž‘αŸαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž”αŸ’αžšαž†αžΆαŸ†αž„αž“αžΉαž„ Intel ME αŸ”

αž€αžΆαžšαžšαž€αžƒαžΎαž‰

  1. αž€αžΆαžšαžŸαž·αž€αŸ’αžŸαžΆαž“αŸαŸ‡αž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ Intel Boot Guard αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αžŠαž€αž’αžΆαžαŸŒαž€αŸ†αž”αžΆαŸ†αž„αž–αžΈαžšαž”αžΈαž“αŸ…αž€αŸ’αž“αž»αž„αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αžšαž”αžŸαŸ‹ Intel αžαžΆαž˜αžšαž™αŸˆαž‚αŸ†αžšαžΌαž˜αž·αž“αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αŸ”
  2. αžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαž“αŸƒαž€αžΆαžšαžœαžΆαž™αž”αŸ’αžšαž αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž”αž„αŸ’αž€αžΎαžαžŸαŸ†αžŽαž»αŸ† root αžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αžŠαž€αž…αŸαž‰αž”αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ”
  3. αž™αžΎαž„αž”αžΆαž“αžƒαžΎαž‰αžαžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Intel αž‘αŸ†αž“αžΎαž”αž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΌαžŠαž€αž˜αŸ’αž˜αžŸαž·αž‘αŸ’αž’αž‡αžΆαž…αŸ’αžšαžΎαž“ αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž˜αž»αž“αž–αŸαž› BIOS αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αŸαžŠαŸ„αž™αŸ”
  4. αžœαŸαž‘αž·αž€αžΆαžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ Intel 64 αž€αžΆαž“αŸ‹αžαŸ‚αžαž·αž…αž‘αŸ…αŸ—αžŠαŸ‚αž›αžŸαž˜αžšαž˜αŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαŸ– αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ αž€αžΆαžšαž€αžΎαž“αž‘αžΎαž„αž…αŸ†αž“αž½αž“αž“αŸƒαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž€αž˜αŸ’αž˜αžŸαž·αž‘αŸ’αž’αž· αž“αž·αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž„ (αžŸαŸ’αž“αžΌαž›αž”αžΈαž“αŸ…αž€αŸ’αž“αž»αž„αž”αž“αŸ’αž‘αŸ‡αžˆαžΈαž” SoC: x86 ME, x86 ISH αž“αž·αž„ ARC PMC) αŸ”

αž€αžΆαžšαž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™

αž’αŸ’αž“αž€αž›αž€αŸ‹αžŠαŸ‚αž›αž”αžΎαž€αžšαž”αŸ€αž”αž•αž›αž·αžαž€αž˜αŸ’αž˜αžŠαŸ„αž™αž…αŸαžαž“αžΆ αž‚αž½αžšαžαŸ‚αž”αž·αž‘αžœαžΆαŸ” αžšαž αžΌαžαž˜αž€αžŠαž›αŸ‹αž–αŸαž›αž“αŸαŸ‡ αž–αž½αž€αž‚αŸαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αž·αž‘αž—αŸ’αž“αŸ‚αž€αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž αžΎαž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αžΉαž„ Kaby αžαŸ’αž˜αžΈαž”αž„αŸ’αž αžΆαž‰αžšαžΏαž„αž“αŸαŸ‡αŸ”

αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αžΆαž…αž”αž·αž‘ Intel BG αž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ (αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ‰αŸ‡αž–αžΆαž›αŸ‹αžŠαŸ„αž™αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αžŠαŸ‚αž›αž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆ) αžŠαŸ„αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš Flash Programming Tool αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‡αž˜αŸ’αžšαžΎαžŸ -closemnfαŸ” αž‡αžΆαžŠαŸ†αž”αžΌαž„ αž’αŸ’αž“αž€αž‚αž½αžšαžαŸ‚αž”αŸ’αžšαžΆαž€αžŠαžαžΆ (αžŠαŸ„αž™αž”αŸ’αžšαžΎ MEinfo) αžαžΆαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžšαž”αžŸαŸ‹ Intel BG αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹ ME αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž€αžΆαžšαž”αž·αž‘αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž“αŸαŸ‡αž™αŸ‰αžΆαž„αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αŸ…αž€αŸ’αž“αž»αž„ FPFs αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž‘αž·αž‰αž€αžΆαžšαž”αž„αŸ’αž αŸ„αŸ‡αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸαž αž‘αŸ†αž–αŸαžšαžŠαŸ‚αž›αž˜αžΆαž“αž€αžΆαžšαž€αžΆαžšαž–αžΆαžš DDoS, αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ VPS VDS πŸ”₯ αž‘αž·αž‰αžŸαŸαžœαžΆαž”αž„αŸ’αž αŸ„αŸ‡αž‚αŸαž αž‘αŸ†αž–αŸαžšαžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αžΆαžšαž–αžΆαžš DDoS αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ VPS VDS | ProHoster