เป€เบเบตเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡ Schrรถdinger. Intel Boot Guard

เป€เบเบตเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡ Schrรถdinger. Intel Boot Guard
เบžเบงเบเป€เบฎเบปเบฒเบชเบฐเป€เบซเบ™เบตเปƒเบซเป‰เบฅเบปเบ‡เป„เบ›เปƒเบ™เบฅเบฐเบ”เบฑเบšเบ•เปˆเปเบฒเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡เปเบฅเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡ firmware x86-compatible computer platforms. เป€เบงเบฅเบฒเบ™เบตเป‰, เบชเปˆเบงเบ™เบ›เบฐเบเบญเบšเบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบเบฒเบ™เบชเบถเบเบชเบฒเปเบกเปˆเบ™ Intel Boot Guard (เบšเปเปˆเบ„เบงเบ™เบชเบฑเบšเบชเบปเบ™เบเบฑเบš Intel BIOS Guard!) - เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบšเบนเบ”เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡ BIOS เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฎเบฒเบ”เปเบงเบ—เบตเปˆเบœเบนเป‰เบ‚เบฒเบเบฅเบฐเบšเบปเบšเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบชเบฒเบกเบฒเบ”เป€เบ›เบตเบ”เบซเบผเบทเบ›เบดเบ”เบขเปˆเบฒเบ‡เบ–เบฒเบงเบญเบ™เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”. เปเบฅเป‰เบง, เบžเบงเบเป€เบฎเบปเบฒเบฎเบนเป‰เบชเบนเบ”เบเบฒเบ™เบ„เบปเป‰เบ™เบ„เบงเป‰เบฒเปเบฅเป‰เบง: เบ•เบฑเบ”เบšเบฒเบ‡เป†เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบ™เบตเป‰เป‚เบ”เบเบงเบดเบชเบฐเบงเบฐเบเปเบฒเบ”เป‰เบฒเบ™เบซเบฅเบฑเบ‡, เบญเบฐเบ—เบดเบšเบฒเบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ‚เบญเบ‡เบกเบฑเบ™, เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเบกเบฑเบ™เบ”เป‰เบงเบเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบญเบเบฐเบชเบฒเบ™, เบฅเบฐเบ”เบนเบเบฒเบ™เบกเบฑเบ™เบ”เป‰เบงเบ vectors เบเบฒเบ™เป‚เบˆเบกเบ•เบตเป€เบžเบทเปˆเบญเบฅเบปเบ”เบŠเบฒเบ”เปเบฅเบฐเบ›เบฐเบชเบปเบกเบกเบฑเบ™. เบ‚เปเปƒเบซเป‰เป€เบžเบตเปˆเบกเป„เบŸเบ”เป‰เบงเบเป€เบฅเบทเปˆเบญเบ‡เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™ bug cloned เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบœเบนเป‰เบ‚เบฒเบเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบ›เบตเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เป‚เบˆเบกเบ•เบตเบ—เบตเปˆเบกเบตเบ—เปˆเบฒเปเบฎเบ‡เบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบ™เบตเป‰เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡ rootkit เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบญเบปเบฒเบญเบญเบเป„เบ”เป‰ (เปเบกเป‰เปเบ•เปˆเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก) เปƒเบ™เบฅเบฐเบšเบปเบš.

เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เบšเบปเบ”เบ„เบงเบฒเบกเปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™ "On Guard for Rootkits: Intel BootGuard" เบˆเบฒเบเบเบญเบ‡เบ›เบฐเบŠเบธเบก. ZeroNights 2016 เปเบฅเบฐโ€‹เบเบญเบ‡โ€‹เบ›เบฐโ€‹เบŠเบธเบกโ€‹เบ„เบฑเป‰เบ‡โ€‹เบ—เบต 29โ€‹ DefCon เบฅเบฑเบ”เป€เบŠเบ (เบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบ—เบฑเบ‡เบชเบญเบ‡ เบ—เบตเปˆเบ™เบตเป‰).

เป€เบŸเบตเบกเปเบงเบชเปเบฒเบฅเบฑเบšเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ—เบตเปˆเบกเบตเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ Intel 64

เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปƒเบซเป‰เบ•เบญเบšเบ„เปเบฒเบ–เบฒเบก: เป€เบŸเบตเบกเปเบงเบ‚เบญเบ‡เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบ—เบตเปˆเบกเบตเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ Intel 64 เปเบกเปˆเบ™เบซเบเบฑเบ‡? เปเบ™เปˆเบ™เบญเบ™, UEFI BIOS. เปเบ•เปˆเบ„เปเบฒเบ•เบญเบšเบ™เบตเป‰เบˆเบฐเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบฅเบญเบ‡เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป€เบšเบดเปˆเบ‡เบฎเบนเบš, เป€เบŠเบดเปˆเบ‡เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบชเบฐเบšเบฑเบš desktop (laptop) เบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ™เบตเป‰.

เป€เบเบตเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡ Schrรถdinger. Intel Boot Guard
เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบกเปˆเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™:

  • เป‚เบ›เป€เบŠเบ”เป€เบŠเบต (CPU, เบซเบ™เปˆเบงเบเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฒเบ‡), เป€เบŠเบดเปˆเบ‡, เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบเปเบเบ™เบ•เบปเป‰เบ™เบ•เป, เบกเบตเปเบเบ™เบเบฒเบŸเบดเบเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™ (เบšเปเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบ—เบธเบเบฎเบธเปˆเบ™) เปเบฅเบฐเบ•เบปเบงเบ„เบงเบšเบ„เบธเบกเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ (IMC, Integrated Memory Controller);
  • เบŠเบดเบšเป€เบŠเบฑเบ” (PCH, Platform Controller Hub), เบšเบฑเบ™เบˆเบธเบ•เบปเบงเบ„เบงเบšเบ„เบธเบกเบ•เปˆเบฒเบ‡เป†เป€เบžเบทเปˆเบญเป‚เบ•เป‰เบ•เบญเบšเบเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เบ•เปเปˆเบ‚เป‰เบฒเบ‡ เปเบฅเบฐเบฅเบฐเบšเบปเบšเบเปˆเบญเบเบ•เปˆเบฒเบ‡เป†. เปƒเบ™เบšเบฑเบ™เบ”เบฒเบžเบงเบเบกเบฑเบ™เปเบกเปˆเบ™ Intel Management Engine (ME), เบ—เบตเปˆเบกเบตเบŠเบทเปˆเบชเบฝเบ‡, เป€เบŠเบดเปˆเบ‡เบเบฑเบ‡เบกเบตเป€เบŸเบตเบกเปเบง (Intel ME firmware).

เปเบฅเปเบšเบ—เบฑเบญเบš, เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบชเบดเปˆเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบปเบงเบ„เบงเบšเบ„เบธเบกเปเบšเบšเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™ (ACPI EC, เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ‚เบฑเป‰เบ™เบชเบนเบ‡เปเบฅเบฐเบ•เบปเบงเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™ Embedded Controller), เป€เบŠเบดเปˆเบ‡เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเปˆเบญเบเบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™, เปเบœเปˆเบ™เบชเปเบฒเบœเบฑเบ”, เปเบ›เป‰เบ™เบžเบดเบก, เบ›เบธเปˆเบก Fn (เบ„เบงเบฒเบกเบชเบฐเบซเบงเปˆเบฒเบ‡เบซเบ™เป‰เบฒเบˆเป, เบฅเบฐเบ”เบฑเบšเบชเบฝเบ‡, เปเบ›เป‰เบ™เบžเบดเบก. backlight, เปเบฅเบฐเบญเบทเปˆเบ™เป†). ) เปเบฅเบฐเบญเบทเปˆเบ™เป†เบญเบตเบ. เปเบฅเบฐเบฅเบฒเบงเบเบฑเบ‡เบกเบตเป€เบŸเบตเบกเปเบงเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡เป€เบŸเบตเบกเปเบงเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰เปเบกเปˆเบ™เป€เบŸเบตเบกเปเบงเบ‚เบญเบ‡เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบ„เบญเบกเบžเบดเบงเป€เบ•เบต (เป€เบŸเบตเบกเปเบงเบฅเบฐเบšเบปเบš), เป€เบŠเบดเปˆเบ‡เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบŸเบ” SPI เบ—เบปเปˆเบงเป„เบ›. เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบ‚เบญเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ™เบตเป‰เบšเปเปˆเบชเบฑเบšเบชเบปเบ™เบเบฑเบšเบšเปˆเบญเบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบ”เบœเบนเป‰เบ™เบถเปˆเบ‡เบขเบนเปˆ, เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™เบžเบฒเบเบžเบทเป‰เบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰ (เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบฎเบนเบš):

  • UEFI BIOS;
  • เป€เบŸเบตเบกเปเบง ACPI EC (เบžเบฒเบเบžเบทเป‰เบ™เบ—เบตเปˆเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเป„เบ”เป‰เบ›เบฒเบเบปเบ”เบขเบนเปˆเบเบฑเบš microarchitecture เบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต Skylake (2015), เปเบ•เปˆเปƒเบ™เบ—เปเบฒเบกเบฐเบŠเบฒเบ”เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป€เบซเบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เบญเบ‡เบกเบฑเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป€เบŸเบตเบกเปเบงเบ„เบงเบšเบ„เบธเบกเบ—เบตเปˆเบเบฑเบ‡เบขเบนเปˆเบเบฑเบ‡เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ UEFI BIOS);
  • เป€เบŸเบตเบกเปเบง Intel ME;
  • เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ (เบ—เบตเปˆเบขเบนเปˆ MAC, เปเบฅเบฐเบญเบทเปˆเบ™เป†) เบ‚เบญเบ‡เบ•เบปเบงเบญเบฐเปเบ”เบšเป€เบ•เบตเป€เบ„เบทเบญเบ‚เปˆเบฒเบ GbE (Gigabit Ethernet);
  • flash descriptors - เบžเบฒเบเบžเบทเป‰เบ™เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ flash, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบžเบฒเบเบžเบทเป‰เบ™เบญเบทเปˆเบ™เป†, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบงเบเบกเบฑเบ™.

เป€เบเบตเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡ Schrรถdinger. Intel Boot Guard
เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบฒเบเบžเบทเป‰เบ™ (เบ•เบฒเบกเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ—เบตเปˆเบฅเบฐเบšเบธ) เปเบกเปˆเบ™เบˆเบฑเบ”เบเบฒเบ™เป‚เบ”เบ SPI bus master - เบ•เบปเบงเบ„เบงเบšเบ„เบธเบก SPI เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบŠเบดเบšเป€เบŠเบฑเบ”, เป‚เบ”เบเบœเปˆเบฒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ™เบตเป‰เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡. เบ–เป‰เบฒเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ–เบทเบเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™เบ„เปˆเบฒเบ—เบตเปˆเปเบ™เบฐเบ™เปเบฒ (เบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบ”เป‰เบฒเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž) เป‚เบ”เบ Intel, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบœเบนเป‰เปƒเบŠเป‰ SPI flash เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ (เบญเปˆเบฒเบ™ / เบ‚เบฝเบ™) เบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเบžเบฒเบเบžเบทเป‰เบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ. เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเปเบกเปˆเบ™เบญเปˆเบฒเบ™เบขเปˆเบฒเบ‡เบ”เบฝเบงเบซเบผเบทเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป„เบ”เป‰. เบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบ: เปƒเบ™เบซเบผเบฒเบเบฅเบฐเบšเบปเบš, CPU เบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบเบฑเบš UEFI BIOS เปเบฅเบฐ GbE, เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆ flash descriptors, เปเบฅเบฐเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบฒเบเบžเบทเป‰เบ™ Intel ME เบ—เบฑเบ‡เบซเบกเบปเบ”. เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”? เบชเบดเปˆเบ‡เบ—เบตเปˆเปเบ™เบฐเบ™เปเบฒเปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเบญเบเบ—เปˆเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ•เปเปˆเบกเบฒ.

เบเบปเบ™เป„เบเปƒเบ™เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เป€เบŸเบตเบกเปเบงเบ‚เบญเบ‡เป€เบงเบ—เบตเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบˆเบฒเบเบเบฒเบ™เบ”เบฑเบ”เปเบ›เบ‡

เปเบ™เปˆเบ™เบญเบ™, เป€เบŸเบตเบกเปเบงเบ‚เบญเบ‡เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ„เบงเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบ™เบตเบ›เบฐเบ™เบญเบกเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบœเบนเป‰เป‚เบˆเบกเบ•เบตเบ—เบตเปˆเบกเบตเบ—เปˆเบฒเปเบฎเบ‡เบ—เบตเปˆเบˆเบฐเบเบถเบ”เบซเบกเบฑเป‰เบ™เบขเบนเปˆเปƒเบ™เบกเบฑเบ™ (เบเบฒเบ™เบขเบนเปˆเบฅเบญเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ / เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปƒเบซเบกเปˆ), เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปƒเบ™เป‚เบซเบกเบ”เบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เปเบฅเบฐเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ‚เบญเบšเป€เบ‚เบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ SPI flash memory เบžเบฒเบเบžเบทเป‰เบ™, เปเบ™เปˆเบ™เบญเบ™, เปเบกเปˆเบ™เบšเปเปˆเบžเบฝเบ‡เบžเป. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบปเบ™เป„เบเบ•เปˆเบฒเบ‡เป†เบชเบฐเป€เบžเบฒเบฐเปƒเบ™เปเบ•เปˆเบฅเบฐเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เบปเบเบ›เป‰เบญเบ‡เป€เบŸเบตเบกเปเบงเบˆเบฒเบเบเบฒเบ™เบ”เบฑเบ”เปเบ›เบ‡.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบŸเบตเบกเปเบง Intel ME เป„เบ”เป‰เบ–เบทเบเป€เบŠเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡, เปเบฅเบฐเบ–เบทเบเบเบงเบ”เบชเบญเบšเป‚เบ”เบเบ•เบปเบงเบ„เบงเบšเบ„เบธเบก ME เปƒเบ™เปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡เบ—เบตเปˆเบกเบฑเบ™เบ–เบทเบเป‚เบซเบฅเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ ME UMA. เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™เบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเบชเบปเบ™เบ—เบฐเบ™เบฒเปเบฅเป‰เบงเป‚เบ”เบเบžเบงเบเป€เบฎเบปเบฒเบขเบนเปˆเปƒเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™ เบšเบปเบ”เบ„เบงเบฒเบกเบญเบธเบ—เบดเบ”เบ•เบปเบ™เป€เบžเบทเปˆเบญเบฅเบฐเบšเบปเบšเบเปˆเบญเบ Intel ME.

เปเบฅเบฐเป€เบŸเบตเบกเปเบง ACPI EC, เบ•เบฒเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš, เบ–เบทเบเบเบงเบ”เบชเบญเบšเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบชเบปเบกเบšเบนเบ™. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบ„เบนเปˆเบ™เบตเป‰เบฅเบงเบกเบขเบนเปˆเปƒเบ™ UEFI BIOS, เบกเบฑเบ™เป€เบเบทเบญเบšเบชเบฐเป€เบซเบกเบตเบ‚เบถเป‰เบ™เบเบฑเบšเบเบปเบ™เป„เบเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบ”เบฝเบงเบเบฑเบ™เบ—เบตเปˆ UEFI BIOS เปƒเบŠเป‰. เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒ.

เบเบปเบ™เป„เบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™เบชเบญเบ‡เบ›เบฐเป€เบžเบ”.

เบ‚เบฝเบ™เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบเบฑเบšเบžเบฒเบเบžเบทเป‰เบ™ UEFI BIOS

  1. เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเบ‚เบญเบ‡เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡ SPI flash memory เบ”เป‰เบงเบ jumper เบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เบ‚เบฝเบ™;
  2. เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™เบ‚เบญเบ‡เบžเบฒเบเบžเบทเป‰เบ™ UEFI BIOS เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆ CPU เป‚เบ”เบเปƒเบŠเป‰เบ—เบฐเบšเบฝเบ™ PRx เบ‚เบญเบ‡เบŠเบดเบšเป€เบŠเบฑเบ”;
  3. เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™เป„เบ›เบเบฑเบ‡เบžเบฒเบเบžเบทเป‰เบ™ UEFI BIOS เป‚เบ”เบเบเบฒเบ™เบชเป‰เบฒเบ‡เปเบฅเบฐเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡ SMI เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ BIOS_WE / BLE เปเบฅเบฐ SMM_BWP bits เปƒเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ chipset;
  4. เบฎเบธเปˆเบ™เบ—เบตเปˆเบเป‰เบฒเบงเบซเบ™เป‰เบฒเบ‚เบญเบ‡เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบ™เบตเป‰เปเบกเปˆเบ™ Intel BIOS Guard (PFAT).

เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบปเบ™เป„เบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบœเบนเป‰เบ‚เบฒเบเบชเบฒเบกเบฒเบ”เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฒเบ”เบ•เบฐเบเบฒเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡ (เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™เบเบฒเบ™เป€เบŠเบฑเบ™เปเบ„เบšเบŠเบนเบ™เบเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ UEFI BIOS).

เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบˆเบฐเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเปƒเบ™เบฅเบฐเบšเบปเบšเบชเบฐเป€เบžเบฒเบฐ (เบ‚เบถเป‰เบ™เบเบฑเบšเบœเบนเป‰เบ‚เบฒเบ), เบšเปเปˆเปเบกเปˆเบ™เบเบปเบ™เป„เบเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”, เบซเบผเบทเบžเบงเบเป€เบ‚เบปเบฒเบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ—เบฒเบ‡เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบเบปเบ™เป„เบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปƒเบ™ เบšเบปเบ”เบ‚เบฝเบ™เบ™เบตเป‰. เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆเบชเบปเบ™เปƒเบˆ, เบžเบงเบเป€เบฎเบปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ—เปˆเบฒเบ™เบญเปˆเบฒเบ™เบŠเบธเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž UEFI BIOS เบˆเบฒเบ CodeRush.

เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡ UEFI BIOS

เป€เบกเบทเปˆเบญเบžเบงเบเป€เบฎเบปเบฒเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเป€เบ—เบเป‚เบ™เป‚เบฅเบเบต boot เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰, เบชเบดเปˆเบ‡เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เปƒเบˆเปเบกเปˆเบ™ Secure Boot. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ, เบกเบฑเบ™เบ–เบทเบเบญเบญเบเปเบšเบšเป€เบžเบทเปˆเบญเบขเบทเบ™เบขเบฑเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบžเบฒเบเบ™เบญเบเบ‚เบญเบ‡ UEFI BIOS (เป„เบ”เป€เบงเบต, เบ•เบปเบงเป‚เบซเบผเบ”, เปเบฅเบฐเบญเบทเปˆเบ™เป†), เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เป€เบŸเบตเบกเปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, Intel เปƒเบ™ SoCs เบเบฑเบš Bay Trail microarchitecture (2012) เป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบฎเบฒเบ”เปเบงเบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เป„เบ”เป‰ Secure Boot (Verified Boot), เป€เบŠเบดเปˆเบ‡เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเป€เบ—เบเป‚เบ™เป‚เบฅเบเบต Secure Boot เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡. เบ•เปเปˆเบกเบฒ (2013), เบเบปเบ™เป„เบเบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปเบฅเบฐ, เบžเบฒเบเปƒเบ•เป‰เบŠเบทเปˆ Intel Boot Guard, เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒเบชเปเบฒเบฅเบฑเบš desktops เบเบฑเบš Haswell microarchitecture.

เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบญเบฐเบ—เบดเบšเบฒเบ Intel Boot Guard, เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เป€เบงเบฅเบฒเปเบฅเปˆเบ™เปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ Intel 64, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฑเบ™, เป€เบ›เบฑเบ™เบฎเบฒเบเบ‚เบญเบ‡เบ„เบงเบฒเบกเป„เบงเป‰เบงเบฒเบ‡เปƒเบˆเบชเปเบฒเบฅเบฑเบšเป€เบ—เบเป‚เบ™เป‚เบฅเบเบตเบšเบนเบ”เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ™เบตเป‰.

CPU Intel

Cap เปเบ™เบฐเบ™เปเบฒเบงเปˆเบฒเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปเบกเปˆเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเป‰เบ™เบ•เปเปƒเบ™เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ Intel 64. เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบกเบฑเบ™เบเบฑเบ‡เป€เบ›เบฑเบ™เบฎเบฒเบเบ‚เบญเบ‡เบ„เบงเบฒเบกเป„เบงเป‰เบงเบฒเบ‡เปƒเบˆ? เบกเบฑเบ™ turns เปƒเบซเป‰โ€‹เป€เบซเบฑเบ™โ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เบ„เบญเบšโ€‹เบ„เบญเบ‡โ€‹เบ‚เบญเบ‡โ€‹เบญเบปเบ‡โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ™เบตเป‰โ€‹เบ—เบตเปˆโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบกเบฑเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบตเป‰โ€‹:

  • Microcode ROM เป€เบ›เบฑเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡, เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ microcode. เบกเบฑเบ™เป€เบŠเบทเปˆเบญเบงเปˆเบฒ microcode เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบšเบปเบšเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปƒเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบชเบธเบ”. เป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™ microcode เบ„เบทเบเบฑเบ™ เปเบกเบ‡เป„เบกเป‰. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เปƒเบ™ BIOS เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒ binaries เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ microcode (เบžเบงเบเบกเบฑเบ™เบ–เบทเบเปƒเบชเปˆเปƒเบชเปˆเปƒเบ™เป€เบงเบฅเบฒเบšเบนเบ”, เป€เบžเบฒเบฐเบงเปˆเบฒ ROM เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เบ—เบฑเบšเป„เบ”เป‰). เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡ binaries เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ–เบทเบเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบชเบฑเบšเบชเบปเบ™เบซเบผเบฒเบ (เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบ™เบทเป‰เบญเปƒเบ™เบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡ microcode เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเบžเบฝเบ‡เปเบ•เปˆเบœเบนเป‰เบ—เบตเปˆเบžเบฑเบ”เบ—เบฐเบ™เบฒเบกเบฑเบ™), เปเบฅเบฐเป„เบ”เป‰เป€เบŠเบฑเบ™เป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบ„เบงเบฒเบกเบŠเบทเปˆเบชเบฑเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡;
  • เบฅเบฐเบซเบฑเบ” AES เป€เบžเบทเปˆเบญเบ–เบญเบ”เบฅเบฐเบซเบฑเบ”เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ microcode;
  • hash เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ RSA เบ—เบตเปˆเบเบงเบ”เบชเบญเบšเบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ microcode;
  • RSA public key hash, เป€เบŠเบดเปˆเบ‡เบเบงเบ”เป€เบšเบดเปˆเบ‡เบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™เบฅเบฐเบซเบฑเบ” ACM (Authenticated Code Module) เบ—เบตเปˆเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบ Intel, เป€เบŠเบดเปˆเบ‡ CPU เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบเปˆเบญเบ™เบ—เบตเปˆ BIOS เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (เบชเบฐเบšเบฒเบเบ”เบต microcode) เบซเบผเบทเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ‚เบญเบ‡เบกเบฑเบ™, เป€เบกเบทเปˆเบญเบกเบตเป€เบซเบ”เบเบฒเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบเบตเบ”เบ‚เบทเป‰เบ™.

Intel ME

เบฅเบฐเบšเบปเบšเบเปˆเบญเบเบ™เบตเป‰เบขเบนเปˆเปƒเบ™ blog เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ–เบทเบเบญเบธเบ—เบดเบ”เปƒเบซเป‰ เบชเบญเบ‡ เบšเบปเบ”เบ„เบงเบฒเบก. เบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ™เบตเป‰เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆ microcontroller เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™ chipset เปเบฅเบฐเป€เบ›เบฑเบ™เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰เปเบฅเบฐเบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบฅเบฐเบšเบปเบš.

เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบต stealth, Intel ME เบเบฑเบ‡เป€เบ›เบฑเบ™เบฎเบฒเบเบ‚เบญเบ‡เบ„เบงเบฒเบกเป„เบงเป‰เบงเบฒเบ‡เปƒเบˆ, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบกเบต:

  • ME ROM - เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบฅเบฐเป€เบซเบตเบ, เบšเปเปˆเป„เบ”เป‰เบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆ (เบšเปเปˆเบกเบตเบงเบดเบ—เบตเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰), เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบฅเบฐเบซเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš SHA256 hash เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ RSA, เป€เบŠเบดเปˆเบ‡เบเบงเบ”เป€เบšเบดเปˆเบ‡เบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เบญเบ‡เป€เบŸเบตเบกเปเบง Intel ME;
  • เบเบฐเปเบˆ AES เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบฅเบฑเบš;
  • เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบŠเบธเบ”เบ‚เบญเบ‡เบŸเบดเบง (FPFs, Field Programmable Fuses) เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบ™เบŠเบดเบšเป€เบŠเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ–เบฒเบงเบญเบ™, เบฅเบงเบกเบ—เบฑเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบœเบนเป‰เบ‚เบฒเบเบฅเบฐเบšเบปเบšเบ„เบญเบกเบžเบดเบงเป€เบ•เบต.

Intel Boot Guard 1.x

เบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ”เบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ. เบ•เบปเบงเป€เบฅเบเบฎเบธเปˆเบ™เบ‚เบญเบ‡เป€เบ—เบเป‚เบ™เป‚เบฅเบเบต Intel Boot Guard เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™เบžเบฒเบเปƒเบ™ Intel. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบ—เบตเปˆเบเปˆเบฒเบงเบกเบฒเบ™เบตเป‰เปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบงเบดเบชเบฐเบงเบฐเบเปเบฒเบเป‰เบญเบ™เบเบฑเบš, เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเบกเบตเบ„เบงเบฒเบกเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เป€เบกเบทเปˆเบญเบ—เบฝเบšเปƒเบชเปˆเบเบฑเบšเบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ‚เบญเบ‡ Intel Boot Guard, เป€เบŠเบดเปˆเบ‡เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบšเปเปˆเป€เบ„เบตเบเบ–เบทเบเป€เบœเบตเบเปเบœเปˆ.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, Intel Boot Guard (BG) เปเบกเปˆเบ™เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบŠเบตเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡ UEFI BIOS เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบšเบฎเบฒเบ”เปเบง. Judging by its small description in the book [Platform Embedded Security Technology Revealed, Chapter Boot with Integrity, or Not Boot], เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป€เบ›เบฑเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เป€เบเบตเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰. เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เปเบฒเบญเบดเบ”เปƒเบ™เบกเบฑเบ™เปเบกเปˆเบ™เบฅเบฐเบซเบฑเบ” boot (microcode) เบžเบฒเบเปƒเบ™ CPU, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบเบฐเบ•เบธเป‰เบ™เป‚เบ”เบเป€เบซเบ”เบเบฒเบ™ RESET (เบšเปเปˆเบ„เบงเบ™เบชเบฑเบšเบชเบปเบ™เบเบฑเบš vector RESET เปƒเบ™ BIOS!). CPU เบŠเบญเบเบซเบฒเป‚เบกเบ”เบนเบ™เบฅเบฐเบซเบฑเบ” (Intel BG startup ACM) เบ—เบตเปˆเบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเป€เบŠเบฑเบ™เป‚เบ”เบ Intel เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบŸเบ” SPI, เป‚เบซเบฅเบ”เบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ cache เบ‚เบญเบ‡เบกเบฑเบ™, เบเบงเบ”เบชเบญเบšเบกเบฑเบ™ (เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบงเปˆเบฒ CPU เบกเบตเบฅเบฐเบซเบฑเบ”เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ—เบตเปˆเบขเบทเบ™เบขเบฑเบ™เบฅเบฒเบเป€เบŠเบฑเบ™ ACM. ) เปเบฅเบฐโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹.

เป€เบเบตเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡ Schrรถdinger. Intel Boot Guard

เป‚เบกเบ”เบนเบ™เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเปƒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบชเปˆเบงเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ‚เบญเบ‡ UEFI BIOS - Initial Boot Block (IBB), เป€เบŠเบดเปˆเบ‡, เปƒเบ™เบ—เบฒเบ‡เบเบฑเบšเบเบฑเบ™, เบกเบตเบซเบ™เป‰เบฒเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบชเปˆเบงเบ™เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡ UEFI BIOS. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, Intel BG เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡ BIOS เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบตเบ” OS (เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบžเบฒเบเปƒเบ•เป‰เบเบฒเบ™เบŠเบตเป‰เบ™เปเบฒเบ‚เบญเบ‡ Secure Boot technology).

เป€เบ—เบเป‚เบ™เป‚เบฅเบเบต Intel BG เบชเบฐเบซเบ™เบญเบ‡เบชเบญเบ‡เป‚เบซเบกเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ (เปเบฅเบฐเบซเบ™เบถเปˆเบ‡เบšเปเปˆเปเบŠเบเปเบŠเบ‡เบเบฑเบšเบญเบตเบ, i.e. เบ—เบฑเบ‡เบชเบญเบ‡เป‚เบซเบกเบ”เบชเบฒเบกเบฒเบ”เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบšเบปเบš, เปเบฅเบฐเบ—เบฑเบ‡เบชเบญเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™).

เบเบฒเบ™เบงเบฑเบ”เปเบ—เบ Boot

เปƒเบ™เป‚เบซเบกเบ” Measured Boot (MB), เปเบ•เปˆเบฅเบฐเบญเบปเบ‡เบ›เบฐเบเบญเบš boot (เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ 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 เบšเปเปˆเป„เบ”เป‰เบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบ›เบฑเบ™เบœเบปเบ™เบกเบฒเบˆเบฒเบเบเบฒเบ™เป‚เบซเบผเบ” (i. e., เบšเปเปˆเปเบกเปˆเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบš "เบงเบฑเบ”เปเบ—เบ" เบ”เบฝเบงเป„เบ”เป‰เบ–เบทเบเบ”เบฑเบ”เปเบเป‰).

Boot เบขเบทเบ™เบขเบฑเบ™

เบชเบดเปˆเบ‡เบ—เบตเปˆเบซเบ™เป‰เบฒเบขเป‰เบฒเบ™เบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆเบกเบฑเบเบ”เบฑเบ”เปเบ›เบ‡ UEFI BIOS เปเบกเปˆเบ™เป‚เบซเบกเบ” Verified Boot (VB), เป€เบŠเบดเปˆเบ‡เปเบ•เปˆเบฅเบฐเบญเบปเบ‡เบ›เบฐเบเบญเบš boot cryptographically เบขเบทเบ™เบขเบฑเบ™เบ„เบงเบฒเบกเบŠเบทเปˆเบชเบฑเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบญเบฑเบ™เบ•เปเปˆเป„เบ›. เปเบฅเบฐโ€‹เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ‚เบญเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เบเบฒเบ™โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹, (เบซเบ™เบถเปˆเบ‡โ€‹เปƒเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ™เบตเป‰โ€‹) เป€เบเบตเบ”โ€‹เบ‚เบถเป‰เบ™โ€‹:

  • shutdown เป‚เบ”เบ timeout เบˆเบฒเบ 1 เบ™เบฒเบ—เบตเป€เบ–เบดเบ‡ 30 เบ™เบฒเบ—เบต (เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบกเบตเป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ‚เบญเบ‡เบฅเบฒเบงเบšเปเปˆ boot, เปเบฅเบฐ, เบ–เป‰เบฒเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เบˆเบฐเบžเบฐเบเบฒเบเบฒเบกเบŸเบทเป‰เบ™เบŸเบน BIOS);
  • เบเบฒเบ™เบ›เบดเบ”เบ—เบฑเบ™เบ—เบต (เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบšเปเปˆเบกเบตเป€เบงเบฅเบฒเป€เบ‚เบปเป‰เบฒเปƒเบˆเปเบฅเบฐ, เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”);
  • เบชเบทเบšเบ•เปเปˆเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบกเบตเปƒเบšเบซเบ™เป‰เบฒเบŠเบทเปˆ (เบเปเบฅเบฐเบ™เบตเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบงเบฅเบฒเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž, เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบตเบชเบดเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบเบงเปˆเบฒเบ—เบตเปˆเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”).

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Intel BG เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰ (เบ„เบท, เปƒเบ™เบญเบฑเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒเบ™เบฐเป‚เบเบšเบฒเบเบเบฒเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰), เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เบขเปˆเบฒเบ‡เบ–เบฒเบงเบญเบ™เป‚เบ”เบเบœเบนเป‰เบ‚เบฒเบเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบขเบนเปˆเปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบžเบดเป€เบชเบ” - chipset fuses (FPFs). เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบขเบนเปˆเปƒเบ™เบˆเบธเบ”เบ™เบตเป‰เปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ•เปเปˆเบกเบฒ.

เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบœเบนเป‰เบ‚เบฒเบเบˆเบฐเบชเป‰เบฒเบ‡เบชเบญเบ‡เบเบฐเปเบˆ RSA 2048 เปเบฅเบฐเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเบญเบ‡เบญเบฑเบ™ (เบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบฎเบนเบš):

  1. manifest เบฅเบฐเบซเบฑเบ”เบซเบผเบฑเบเบ‚เบญเบ‡เบœเบนเป‰เบ‚เบฒเบ (KEYM, OEM Root Key Manifest), เป€เบŠเบดเปˆเบ‡เบงเบฒเบ‡ SVN (เป€เบฅเบเบฅเบฐเบซเบฑเบ”เบชเบฐเบšเบฑเบšเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž) เบ‚เบญเบ‡ manifest เบ™เบตเป‰, SHA256 hash เบ‚เบญเบ‡เบเบฐเปเบˆเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ‚เบญเบ‡ manifest เบ•เปเปˆเป„เบ›, เบฅเบฐเบซเบฑเบ”เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ RSA (i.e. เบžเบฒเบเบชเปˆเบงเบ™เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ‚เบญเบ‡. vendor root key) เป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบšเบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เบญเบ‡ manifest เบ™เบตเป‰ เปเบฅเบฐเบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡;
  2. IBB Manifest (IBBM, Initial Boot Block Manifest), เป€เบŠเบดเปˆเบ‡เบงเบฒเบ‡ SVN เบ‚เบญเบ‡ manifest เบ™เบตเป‰, SHA256 hash เบ‚เบญเบ‡ IBB, เบฅเบฐเบซเบฑเบ”เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เบญเบ‡ manifest เบ™เบตเป‰, เปเบฅเบฐเบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡.

SHA256 hash เบ‚เบญเบ‡ OEM Root Key เบ–เบทเบเบ‚เบฝเบ™เบ–เบฒเบงเบญเบ™เปƒเบชเปˆ chipset fuses (FPFs), เบ„เบทเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Intel BG. เบ–เป‰เบฒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Intel BG เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒเป€เบ—เบเป‚เบ™เป‚เบฅเบเบตเบ™เบตเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบˆเบฒเบเบ™เบตเป‰เป„เบ›เบฅเบฐเบšเบปเบšเบ™เบตเป‰เบกเบตเบžเบฝเบ‡เปเบ•เปˆเป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡เบชเปˆเบงเบ™เป€เบญเบเบฐเบŠเบปเบ™เบ‚เบญเบ‡ OEM Root Key เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ›เบธเบ‡ BIOS เป„เบ”เป‰ (i. e. เบชเบฒเบกเบฒเบ”เบ„เบดเบ”เป„เบฅเปˆ manifests เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบทเบ™เปƒเบซเบกเปˆ), i.e. เบœเบนเป‰เบ‚เบฒเบ.

เป€เบเบตเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡ Schrรถdinger. Intel Boot Guard

เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป€เบšเบดเปˆเบ‡เบฎเบนเบš, เบ„เบงเบฒเบกเบชเบปเบ‡เปƒเบชเป€เบเบตเบ”เบ‚เบทเป‰เบ™เบ—เบฑเบ™เบ—เบตเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰เบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™เบ—เบตเปˆเบเบฒเบงเบ™เบฒเบ™ - เป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบซเบ™เบถเปˆเบ‡ manifest เป„เบ”เป‰. เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบชเบฑเบšเบชเบปเบ™?

เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, Intel เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เปƒเบซเป‰เบœเบนเป‰เบ‚เบฒเบเบกเบตเป‚เบญเบเบฒเบ”เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบเบฐเปเบˆ IBB เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบชเบฒเบเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปเบฅเบฐเบซเบ™เบถเปˆเบ‡เป€เบ›เบฑเบ™เบฎเบฒเบ. เบ–เป‰เบฒเบชเปˆเบงเบ™เบชเปˆเบงเบ™เบ•เบปเบงเบ‚เบญเบ‡เบเบฐเปเบˆ IBB (เป€เบŠเบดเปˆเบ‡เบชเบฐเปเบ”เบ‡เป€เบ–เบดเบ‡ manifest เบ—เบตเบชเบญเบ‡) เบ–เบทเบเบฎเบปเปˆเบง, เป€เบซเบ”เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบชเบฒเบเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เปเบฅเบฐเบˆเบปเบ™เบเปˆเบงเบฒเบœเบนเป‰เบ‚เบฒเบเบˆเบฐเบชเป‰เบฒเบ‡เบ„เบนเปˆเปƒเบซเบกเปˆเปเบฅเบฐเป€เบ›เบตเบ”เปƒเบŠเป‰ manifests เบ—เบตเปˆเบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเบ„เบทเบ™เปƒเบซเบกเปˆเปƒเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ BIOS เบ•เปเปˆเป„เบ›.

เปเบ•เปˆเบ–เป‰เบฒเบฅเบฐเบซเบฑเบ”เบฎเบฒเบเบ–เบทเบเบ—เปเบฒเบฅเบฒเบ (เบ—เบตเปˆ manifest เบ—เปเบฒเบญเบดเบ”เบ–เบทเบเป€เบŠเบฑเบ™), เบกเบฑเบ™เบˆเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ—เบปเบ”เปเบ—เบ™เบกเบฑเบ™เป„เบ”เป‰, เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ–เบญเบ™เบ„เบทเบ™เบšเปเปˆเป„เบ”เป‰เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰. hash เบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ‚เบญเบ‡เบเบฐเปเบˆเบ™เบตเป‰เปเบกเปˆเบ™เป‚เบ„เบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ FFPs เบ„เบฑเป‰เบ‡เปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡เบซเบกเบปเบ”.

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Intel Boot Guard

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบฎเบปเบฒเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป€เบšเบดเปˆเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Intel BG เปเบฅเบฐเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบกเบฑเบ™. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบšเบดเปˆเบ‡เปเบ–เบšเบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เปƒเบ™ GUI เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบฎเบนเบšเบžเบฒเบš Flash เบˆเบฒเบเบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบท Intel System (STK), เบ—เปˆเบฒเบ™เบˆเบฐเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Intel BG เบ›เบฐเบเบญเบšเบกเบต hash เบ‚เบญเบ‡เบชเปˆเบงเบ™เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบฎเบฒเบเบ‚เบญเบ‡เบœเบนเป‰เบ‚เบฒเบ, เบชเบญเบ‡เบชเบฒเบกเบขเปˆเบฒเบ‡เบ—เบตเปˆเบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™. เบ„เบธเบ™เบ„เปˆเบฒ, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เป‚เบ›เบฃเป„เบŸเบฅเปŒ 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 startup BG เปƒเบ™ SPI flash เบšเปเปˆเบžเบปเบš, เบšเปเปˆเบกเบตเบเบฒเบ™เบšเบนเบ”เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบˆเบฐเป€เบเบตเบ”เบ‚เบถเป‰เบ™. เบกเบฑเบ™เบˆเบฐเบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบท.

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ‚เบฝเบ™เป„เบงเป‰เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบงเปˆเบฒเบ™เบฐเป‚เบเบšเบฒเบเบเบฒเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเป‚เบซเบกเบ” VB เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป„เบ”เป‰เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ–เป‰เบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบฅเบปเป‰เบกเป€เบซเบฅเบง, เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เบเบฒเบ™เบ”เบฒเบงเป‚เบซเบฅเบ”เบ—เบตเปˆเบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเบˆเบฐเป€เบเบตเบ”เบ‚เบทเป‰เบ™.

เบเบฒเบโ€‹เป€เบฅเบทเปˆเบญเบ‡โ€‹เบ™เบตเป‰โ€‹เป„เบงเป‰โ€‹เบเบฑเบšโ€‹เบœเบนเป‰โ€‹เบ‚เบฒเบ...

GUI เบ‚เบญเบ‡เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบซเป‰เป‚เบ›เบฃเป„เบŸเบฅเปŒ "เบžเป‰เบญเบกเปเบฅเป‰เบง" เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

เบˆเบณ เบ™เบงเบ™
เบฎเบนเบšเปเบšเบš
เบฅเบฒเบโ€‹เบฅเบฐโ€‹เบญเบฝเบ”

0
No_FVME
เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบŠเบต Intel BG เบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™

1
VE
เป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เปเบ” VB, เบ›เบดเบ”เป€เบงเบฅเบฒเปเบปเบ”เป€เบงเบฅเบฒ

2
VME
เบ—เบฑเบ‡เบชเบญเบ‡เป‚เบซเบกเบ”เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™ (VB เปเบฅเบฐ MB), เบ›เบดเบ”เป€เบงเบฅเบฒเบซเบกเบปเบ”เป€เบงเบฅเบฒ

3
VM
เบ—เบฑเบ‡เบชเบญเบ‡เป‚เบซเบกเบ”เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบดเบ”เบฅเบฐเบšเบปเบš

4
FVE
เป‚เปเบ” VB เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เบ›เบดเบ”เบ—เบฑเบ™เบ—เบต

5
FVME
เบ—เบฑเบ‡เบชเบญเบ‡เป‚เบซเบกเบ”เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เบ›เบดเบ”เบ—เบฑเบ™เบ—เบต

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเปเบฅเป‰เบง, เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Intel BG เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เบ„เบฑเป‰เบ‡เบ”เบฝเบงเปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เป‚เบ”เบเบœเบนเป‰เบ‚เบฒเบเบฅเบฐเบšเบปเบšเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ chipset fuses (FPFs) - เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ (เบญเบตเบ‡เบ•เบฒเบกเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™, เบžเบฝเบ‡เปเบ•เปˆ 256 bytes) เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบฎเบฒเบ”เปเบงเบžเบฒเบเปƒเบ™ chipset, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ„เบ‡เบเบฒเบ™เบžเบฒเบเบ™เบญเบ. เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡ Intel (เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ Field Programmable 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:

เบฅเบฐเบšเบปเบš
ะŸั€ะธะผะตั‡ะฐะฝะธะต

Gigabyte GA-H170-D3H
Skylake, เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™

Gigabyte GA-Q170-D3H
Skylake, เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™

Gigabyte GA-B150-HD3
Skylake, เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™

MSI H170A Gaming Pro
Skylake, เบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™

Lenovo ThinkPad 460
Skylake, เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆ, เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบ—เบตเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰

Lenovo Yoga 2 Pro
Haswell, เบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™

Lenovo U330p
Haswell, เบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™

"เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™" เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบกเบตเป‚เบกเบ”เบนเบ™ ACM startup Intel BG, manifests เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เปƒเบ™ BIOS, i.e. เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบงเบดโ€‹เป€เบ„เบฒเบฐโ€‹.

เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบซเป‰เป€เบฎเบปเบฒเป€เบญเบปเบฒเบญเบฑเบ™เบ—เบตเปˆเบ”เบฒเบงเป‚เบซเบผเบ”เบกเบฒเบˆเบฒเบเบซเป‰เบญเบ‡เบเบฒเบ™. เบฎเบนเบšเบžเบฒเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ‚เบญเบ‡เบœเบนเป‰เบ‚เบฒเบ SPI flash memory เบชเปเบฒเบฅเบฑเบš Gigabyte GA-H170-D3H (เบฎเบธเปˆเบ™ F4).

Intel CPU boot ROM

เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบเบฐ เบ—เบณ เบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ–เป‰เบฒเป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบต Intel BG เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰.

เบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡ microcode เบ—เบตเปˆเบ–เบทเบเบ–เบญเบ”เบฅเบฐเบซเบฑเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ” (เปƒเบ™ microcode เบซเบผเบทเปƒเบ™เบฎเบฒเบ”เปเบง) เป€เบ›เบฑเบ™เบ„เปเบฒเบ–เบฒเบกเบ—เบตเปˆเป€เบ›เบตเบ”. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเป‚เบ›เป€เบŠเบ”เป€เบŠเบต 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
เบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบเบšเบฒเบ‡เบขเปˆเบฒเบ‡, checksum เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเบชเบฐเป€เบซเบกเบตเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ (เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ–เบทเบเบ›เบฐเป„เบงเป‰ null).

เบฅเบฒเบเบเบฒเบ™เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™ binaries เบ•เปˆเบฒเบ‡เป†เบ—เบตเปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ / เบ›เบฐเบ•เบดเบšเบฑเบ”เบเปˆเบญเบ™เบ—เบตเปˆ BIOS เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”, i.e. เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เป„เบ›เปƒเบŠเป‰ RESET vector (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. เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ header เบ‚เบญเบ‡ binary เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบปเบเบเบฐเบ•เบดเบชเปเบฒเบฅเบฑเบšเป‚เบกเบ”เบนเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบ Intel (ACMs, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ microcode, เบžเบฒเบเบชเปˆเบงเบ™เบฅเบฐเบซเบฑเบ” Intel ME, ... ).

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
เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบˆเบฐเป‚เบซเบฅเบ” binary เบ™เบตเป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ cache เบ‚เบญเบ‡เบกเบฑเบ™, เบเบงเบ”เบชเบญเบšเปเบฅเบฐเป€เบ›เบตเบ”เบ•เบปเบง.

Intel BG startup ACM

เบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡ ACM เบ™เบตเป‰, เบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบฎเบฑเบ”เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • เป„เบ”เป‰เบฎเบฑเบšเบˆเบฒเบ Intel ME เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Intel BG เบ—เบตเปˆเบ‚เบฝเบ™เปƒเบชเปˆ chipset fuses (FPFs);
  • เบŠเบญเบเบซเบฒ KEYM เปเบฅเบฐ IBBM manifests, เบเบงเบ”เบชเบญเบšเบžเบงเบเบกเบฑเบ™.

เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒ manifests เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, ACM เบเบฑเบ‡เปƒเบŠเป‰เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ FIT, เป€เบŠเบดเปˆเบ‡เบกเบตเบชเบญเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบฅเบฒเบเบเบฒเบ™เป€เบžเบทเปˆเบญเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ (เป€เบšเบดเปˆเบ‡ FIT_ENTRY_TYPES เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡).

เบ‚เปเปƒเบซเป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป€เบšเบดเปˆเบ‡ manifestos เบขเปˆเบฒเบ‡เปƒเบเป‰เบŠเบดเบ”. เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡ manifest เบ—เปเบฒเบญเบดเบ”, เบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบ„เบงเบฒเบกเบ„เบปเบ‡เบ—เบตเปˆเบ—เบตเปˆเบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™เบซเบผเบฒเบ, hash เบ‚เบญเบ‡ public key เบˆเบฒเบ 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 เบˆเบฒเบเบŸเบดเบงเบ–เบทเบเปƒเบŠเป‰, เป€เบŠเบดเปˆเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰เป„เบ”เป‰เบฎเบฑเบšเบˆเบฒเบ 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 hash เบ‚เบญเบ‡ IBB เปเบฅเบฐเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบ•เบปเบงเบญเบฐเบ—เบดเบšเบฒเบเบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡ IBB (i.e. เบชเบดเปˆเบ‡เบ—เบตเปˆ hash เป„เบ”เป‰เบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเบˆเบฒเบ):

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;
};

เบกเบฑเบ™เบ‡เปˆเบฒเบเบ”เบฒเบ: เปเบ•เปˆเบฅเบฐเบ•เบปเบงเบญเบฐเบ—เบดเบšเบฒเบเบ›เบฐเบเบญเบšเบกเบตเบ—เบตเปˆเบขเบนเปˆ / เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ chunk IBB. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เบฅเบงเบกเบ•เบปเบงเบ‚เบญเบ‡เบšเบฅเบฑเบญเบเบ—เบตเปˆเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป‚เบ”เบเบœเบนเป‰เบญเบฐเบ—เบดเบšเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ (เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบšเบ‚เบญเบ‡เบ•เบปเบงเบญเบฐเบ—เบดเบšเบฒเบเบ•เบปเบงเป€เบญเบ‡) เปเบกเปˆเบ™ IBB. เปเบฅเบฐ, เบ•เบฒเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš, IBB เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เป„เบฅเบเบฐ SEC เปเบฅเบฐ PEI.

manifest เบ—เบตเบชเบญเบ‡เบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡เบ”เป‰เบงเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบกเบตเบฅเบฐเบซเบฑเบ”เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ IBB (เบเบงเบ”เบชเบญเบšเป‚เบ”เบ SHA256 hash เบˆเบฒเบ manifest เบ—เปเบฒเบญเบดเบ”) เปเบฅเบฐเบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เบญเบ‡ manifest เบ™เบตเป‰:

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

เป€เบเบตเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡ Schrรถdinger. Intel Boot Guard
เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” BIOS เบ‚เบญเบ‡ UEFI, เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบˆเบฐเป€เบ›เบตเบ”เบ•เบปเบง ACM, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบกเบตเบฅเบฐเบซเบฑเบ”เป„เบฅเบเบฐ SEC เปเบฅเบฐ PEI. เบ•เปเปˆเป„เบ›, เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบญเบญเบเบˆเบฒเบ ACM, เบเป‰เบฒเบเป„เบ›เบ•เบฒเบก vector RESET, เปเบฅเบฐเป€เบฅเบตเปˆเบกเบ›เบฐเบ•เบดเบšเบฑเบ” BIOS.

เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เบ—เบตเปˆเบเบงเบ”เบชเบญเบš PEI เบ•เป‰เบญเบ‡เบกเบตเป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบˆเบฐเบเบงเบ”เบชเบญเบšเบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเบ‚เบญเบ‡ BIOS (เบฅเบฐเบซเบฑเบ” DXE). เป‚เบกเบ”เบนเบ™เบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบ IBV (เบœเบนเป‰เบ‚เบฒเบ BIOS เป€เบญเบเบฐเบฅเบฒเบ”) เบซเบผเบทเบœเบนเป‰เบ‚เบฒเบเบฅเบฐเบšเบปเบšเป€เบญเบ‡. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบฅเบฐเบšเบปเบš Lenovo เปเบฅเบฐ Gigabyte เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบฅเบฐเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ Intel BG, เปƒเบซเป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบชเบฐเบเบฑเบ”เบˆเบฒเบเบฅเบฐเบšเบปเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

เป‚เบกเบ”เบนเบ™ UEFI BIOS LenovoVerifiedBootPei

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡ Lenovo, เบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเบกเบฒเป€เบ›เบฑเบ™เป‚เบกเบ”เบนเบ™ LenovoVerifiedBootPei {B9F2AC77-54C7-4075-B42E-C36325A9468D}, เบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบ Lenovo.

เบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™เบเบฒเบ™เบŠเบญเบเบซเบฒ (เป‚เบ”เบ GUID) เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ hash เบชเปเบฒเบฅเบฑเบš 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;
}

เบ•เบฒเบ•เบฒเบฅเบฒเบ‡ hash {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 microarchitecture - ASRock J4205-IT.

เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบชเบฐเบšเบฑเบšเบ™เบตเป‰เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™ SoCs เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ (เบฅเบฐเบšเบปเบšเปƒเบซเบกเปˆเบ—เบตเปˆเบกเบตเบˆเบธเบฅเบฐเบžเบฒเบเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต Kaby Lake เบเบฑเบ‡เบชเบทเบšเบ•เปเปˆเปƒเบŠเป‰ Intel Boot Guard 1.x), เบกเบฑเบ™เบกเบตเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเบซเบผเบฒเบเบ—เบตเปˆเบˆเบฐเบ„เบปเป‰เบ™เบซเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเป€เบงเบ—เบตเบ—เบตเปˆเบญเบตเบ‡เปƒเบชเปˆ Intel SoCs, เป€เบŠเบดเปˆเบ‡เป€เบซเบฑเบ™เป„เบ”เป‰เบŠเบฑเบ”เป€เบˆเบ™. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡:

  • เบžเบฒเบเบžเบทเป‰เบ™ BIOS เปเบฅเบฐ Intel ME (เบซเบผเบทเปเบ—เบ™เบ—เบตเปˆเบˆเบฐ Intel TXE, เบญเบตเบ‡เบ•เบฒเบกเบ„เปเบฒเบชเบฑเบšเบ‚เบญเบ‡ Intel SoC) เบ›เบฐเบˆเบธเบšเบฑเบ™เป€เบ›เบฑเบ™เบžเบฒเบเบžเบทเป‰เบ™ IFWI;
  • เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ Intel BG เป„เบ”เป‰เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เปƒเบ™เป€เบงเบ—เบต, เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เป€เบŠเบฑเปˆเบ™ FIT, KEYM, IBBM เบšเปเปˆเบžเบปเบšเบขเบนเปˆเปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ flash;
  • เบ™เบญเบเป€เบซเบ™เบทเบญเป„เบ›เบˆเบฒเบ TXE เปเบฅเบฐ ISH cores (x86), เปเบเบ™เบ—เบตเบชเบฒเบก (เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡ ARC, เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™) เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ chipset - PMC (Power Management Controller), เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเปˆเบญเบเบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™เปเบฅเบฐเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

เป€เบเบตเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡ Schrรถdinger. Intel Boot Guard
เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบžเบฒเบเบžเบทเป‰เบ™ IFWI เปƒเบซเบกเปˆเปเบกเปˆเบ™เบŠเบธเบ”เบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

เบŠเบปเบ”เป€เบŠเบตเบ
เบŠเบทเปˆ
เบฅเบฒเบโ€‹เบฅเบฐโ€‹เบญเบฝเบ”

0000 2000 เบŠเบก
SMIP
เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบšเบฒเบ‡เบขเปˆเบฒเบ‡, เป€เบŠเบฑเบ™เป‚เบ”เบเบœเบนเป‰เบ‚เบฒเบ

0000 6000 เบŠเบก
RBEP
เบชเปˆเบงเบ™เบฅเบฐเบซเบฑเบ”เป€เบŸเบตเบกเปเบง Intel TXE, x86, เป€เบŠเบฑเบ™เป‚เบ”เบ Intel

0001 0000 เบŠเบก
PMCP
เบชเปˆเบงเบ™เบฅเบฐเบซเบฑเบ”เป€เบŸเบตเบกเปเบง Intel PMC, ARC, เป€เบŠเบฑเบ™เป‚เบ”เบ Intel

0002 0000 เบŠเบก
FTPR
เบชเปˆเบงเบ™เบฅเบฐเบซเบฑเบ”เป€เบŸเบตเบกเปเบง Intel TXE, x86, เป€เบŠเบฑเบ™เป‚เบ”เบ Intel

0007B000เบŠ
UCOD
CPU microcode เบญเบฑเบšเป€เบ”เบ”เบฅเบปเบ‡เบ™เบฒเบกเป‚เบ”เบ Intel

0008 0000 เบŠเบก
IBBP
UEFI BIOS, เป„เบฅเบเบฐ SEC/PEI, x86, เบœเบนเป‰เบ‚เบฒเบเบฅเบปเบ‡เบ™เบฒเบก

0021 8000 เบŠเบก
ISHC
เบชเปˆเบงเบ™เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เป€เบŸเบตเบกเปเบง Intel ISH, x86, เป€เบŠเบฑเบ™เป‚เบ”เบเบœเบนเป‰เบ‚เบฒเบ

0025 8000 เบŠเบก
NFTP
เบชเปˆเบงเบ™เบฅเบฐเบซเบฑเบ”เป€เบŸเบตเบกเปเบง Intel TXE, x86, เป€เบŠเบฑเบ™เป‚เบ”เบ Intel

0036 1000 เบŠเบก
IUNP
เบเบฑเบ‡เบšเปเปˆเบฎเบนเป‰เป€เบ—เบทเปˆเบญ

0038 1000 เบŠเบก
OBBP
UEFI BIOS, เป„เบฅเบเบฐ DXE, x86, เบšเปเปˆเป„เบ”เป‰เป€เบŠเบฑเบ™

เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ‚เบญเบ‡เป€เบŸเบตเบกเปเบง TXE, เบกเบฑเบ™เป€เบซเบฑเบ™เป„เบ”เป‰เบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเบซเบผเบฑเบ‡เบˆเบฒเบ RESET, TXE เบฎเบฑเบเบชเบฒเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบ™เบตเป‰เบˆเบปเบ™เบเปˆเบงเบฒเบกเบฑเบ™เบเบฐเบเบฝเบกเป€เบ™เบทเป‰เบญเปƒเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆเบชเปเบฒเบฅเบฑเบš CPU (FIT, ACM, RESET vector ... ). เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, TXE เบงเบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เป„เบงเป‰เปƒเบ™ SRAM เบ‚เบญเบ‡เบกเบฑเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เปƒเบซเป‰เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบŠเบปเปˆเบงเบ„เบฒเบงเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบšเปˆเบญเบ™เบ™เบฑเป‰เบ™เปเบฅเบฐ "เบ›เปˆเบญเบ" เบกเบฑเบ™เบญเบญเบเบˆเบฒเบ RESET.

เบเปˆเบฝเบงเบเบฑเบšเบเบญเบ‡เบ‚เบญเบ‡ rootkits

เปเบฅเป‰เบง, เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบฎเบปเบฒเบเป‰เบฒเบงเป„เบ›เบชเบนเปˆ "เบฎเป‰เบญเบ™". เป€เบกเบทเปˆเบญเบžเบงเบเป€เบฎเบปเบฒเบ„เบปเป‰เบ™เบžเบปเบšเบงเปˆเบฒเปƒเบ™เบซเบผเบฒเบเป†เบฅเบฐเบšเบปเบš, เบ•เบปเบงเบญเบฐเบ—เบดเบšเบฒเบ SPI flash เบกเบตเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบฒเบเบžเบทเป‰เบ™เบ‚เบญเบ‡ SPI flash memory เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เปเบฅเบฐเบญเปˆเบฒเบ™เบžเบฒเบเบžเบทเป‰เบ™เปƒเบ”เบ™เบถเปˆเบ‡. เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™. เบšเปเปˆโ€‹เบกเบตโ€‹เบ—เบฒเบ‡.

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฑเบš MEinfo utility (เบˆเบฒเบ Intel STK), เบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบงเปˆเบฒเบฎเบนเบšเปเบšเบšเบเบฒเบ™เบœเบฐเบฅเบดเบ”เปƒเบ™เบฅเบฐเบšเบปเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบดเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, chipset fuses (FPFs) เป„เบ”เป‰เบ–เบทเบเบ›เบฐเป„เบงเป‰เปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเบšเปเปˆเบเปเบฒเบ™เบปเบ”. เปเบกเปˆเบ™เปเบฅเป‰เบง, Intel BG เบšเปเปˆเป„เบ”เป‰เป€เบ›เบตเบ” เบซเบผเบทเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง.

เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบšเบปเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰ (เบเปˆเบฝเบงเบเบฑเบš Intel BG เปเบฅเบฐเบชเบดเปˆเบ‡เบ—เบตเปˆเบˆเบฐเบญเบฐเบ—เบดเบšเบฒเบเบ•เปเปˆเบกเบฒเปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบก, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบกเบตเบˆเบธเบฅเบฐเบžเบฒเบเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต Haswell เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ):

  • เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™ Gigabyte เบ—เบฑเบ‡เบซเบกเบปเบ”;
  • เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™ MSI เบ—เบฑเบ‡เบซเบกเบปเบ”;
  • เป‚เบ™เบ”เบšเบธเบ Lenovo 21 เบฎเบธเปˆเบ™ เปเบฅเบฐ เป€เบŠเบตเบšเป€เบงเบต Lenovo 4 เบฎเบธเปˆเบ™.

เปเบ™เปˆเบ™เบญเบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฅเบฒเบเบ‡เบฒเบ™เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเปƒเบซเป‰เบเบฑเบšเบœเบนเป‰เบ‚เบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš Intel.

เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ—เบตเปˆเบžเบฝเบ‡เบžเปเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบžเบฝเบ‡เปเบ•เปˆเบˆเบฒเบ เป€เบฅเป‚เบ™เป‚เบงเบœเบนเป‰โ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบฎเบนเป‰โ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹เปเบฅเบฐโ€‹ เบ›เปˆเบญเบเบญเบญเบเบกเบฒเป€เบกเบทเปˆเบญ patch.

Gigabyte เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบเบญเบกเบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบญเปˆเบญเบ™เปเบญ, เปเบ•เปˆเบšเปเปˆเป„เบ”เป‰เบชเบฐเปเบ”เบ‡เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เปƒเบ™เบ—เบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก.

เบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เบเบฑเบš MSI เบขเบธเบ”เป€เบŠเบปเบฒเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เบ•เบฒเบกเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡เบฅเบฐเบซเบฑเบ” PGP เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ (เป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ—เบตเปˆเบ–เบทเบเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒ). เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบเปˆเบฒเบงเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒ "เป€เบ›เบฑเบ™เบœเบนเป‰เบœเบฐเบฅเบดเบ”เบฎเบฒเบ”เปเบงเปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เบœเบฐเบฅเบดเบ”เบเบฐเปเบˆ PGP."

เปเบ•เปˆเบซเบผเบฒเบเป€เบ–เบดเบ‡เบˆเบธเบ”. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ fuses เบ–เบทเบเบ›เบฐเป„เบงเป‰เปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”, เบœเบนเป‰เปƒเบŠเป‰ (เบซเบผเบทเบœเบนเป‰เป‚เบˆเบกเบ•เบต) เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡ (เบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™. เบŠเบญเบเบซเบฒ Intel STK). เบ™เบตเป‰เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰.

1. Boot เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ Windows OS (เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เบˆเบฒเบเบžเบฒเบเปƒเบ•เป‰ Linux, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ‚เบญเบ‡ Intel STK เบชเปเบฒเบฅเบฑเบš OS เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™). เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ” MEinfo, เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒ fuses เปƒเบ™เบฅเบฐเบšเบปเบšเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ•เบฑเป‰เบ‡เป‚เบ„เบ‡เบเบฒเบ™.

เป€เบเบตเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡ Schrรถdinger. Intel Boot Guard
2. เบญเปˆเบฒเบ™เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบŸเบ”เป‚เบ”เบเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบก Flash.

เป€เบเบตเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡ Schrรถdinger. Intel Boot Guard
3. เป€เบ›เบตเบ”เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบญเปˆเบฒเบ™เป‚เบ”เบเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเปเบเป‰เป„เบ‚ UEFI BIOS เปƒเบ”เป†, เป€เบฎเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™ (เบ›เบฐเบ•เบดเบšเบฑเบ”เบŠเบธเบ”เบฎเบฒเบ, เบ•เบปเบงเบขเปˆเบฒเบ‡), เบชเป‰เบฒเบ‡ / เปเบเป‰เป„เบ‚เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ KEYM เปเบฅเบฐ IBBM เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบžเบฒเบเบžเบทเป‰เบ™ ME.

เป€เบเบตเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡ Schrรถdinger. Intel Boot Guard
เป€เบเบตเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡ Schrรถdinger. Intel Boot Guard
เบžเบฒเบเบชเปˆเบงเบ™เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ‚เบญเบ‡เบเบฐเปเบˆ RSA เปเบกเปˆเบ™เป€เบ™เบฑเป‰เบ™เปƒเบชเปˆเปƒเบ™เบฎเบนเบš, hash เบ‚เบญเบ‡เบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ„เบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ chipset fuses เบ„เบฝเบ‡เบ„เบนเปˆเบเบฑเบšเบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเบ‚เบญเบ‡ Intel BG configuration.

4. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบฎเบนเบšเบžเบฒเบš Flash, เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบšเป€เบŸเบตเบกเปเบงเปƒเบซเบกเปˆ (เป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Intel BG).

เป€เบเบตเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡ Schrรถdinger. Intel Boot Guard
5. เบ‚เบฝเบ™เบฎเบนเบšเบžเบฒเบšเปƒเบซเบกเปˆเป€เบžเบทเปˆเบญ flash เป‚เบ”เบเปƒเบŠเป‰ Flash Programming Tool, เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ 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 เปƒเบ™เบฅเบฐเบšเบปเบšเบ™เบตเป‰. เบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบเบปเบเป€เบฅเบตเบเบเบฒเบ™เบเบฐเบ—เบณเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบŠเบถเปˆเบ‡เปเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ:

  • เบžเบฝเบ‡เปเบ•เปˆเป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡เบชเปˆเบงเบ™เบชเปˆเบงเบ™เบ•เบปเบงเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบฎเบฒเบ (i.e. เบœเบนเป‰เบ—เบตเปˆเป€เบ›เบตเบ”เปƒเบŠเป‰ Intel BG) เบˆเบฐเบชเบฒเบกเบฒเบ”เบญเบฑเบšเป€เบ”เบ” UEFI BIOS เปƒเบ™เบฅเบฐเบšเบปเบšเบ™เบตเป‰;
  • เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบชเบปเปˆเบ‡เบ„เบทเบ™เป€เบŸเบตเบกเปเบงเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเปƒเบซเป‰เบเบฑเบšเบฅเบฐเบšเบปเบšเบ™เบตเป‰, เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป‚เบ›เปเบเบผเบกเป‚เบ›เบผเปเบเบผเบก, เบกเบฑเบ™เบˆเบฐเบšเปเปˆเป€เบ›เบตเบ” (เบœเบปเบ™เบชเบฐเบ—เป‰เบญเบ™เบ‚เบญเบ‡เบ™เบฐเป‚เบเบšเบฒเบเบเบฒเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบš);
  • เป€เบžเบทเปˆเบญเบเปเบฒเบˆเบฑเบ” UEFI BIOS เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบ—เปˆเบฒเบ™ เบˆเบณ เป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เปˆเบฝเบ™เบŠเบดเบšเป€เบŠเบฑเบ”เบ”เป‰เบงเบ FPFs เบ—เบตเปˆเบกเบตเป‚เบ›เปเบเบผเบกเบ”เป‰เบงเบ "เบชเบฐเบญเบฒเบ”" (i. e. เบ‚เบฒเบเบŠเบดเบšเป€เบŠเบฑเบ”เบ–เป‰เบฒเบ—เปˆเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบชเบฐเบ–เบฒเบ™เบต soldering infrared เปƒเบ™เบฅเบฒเบ„เบฒเบ‚เบญเบ‡เบฅเบปเบ”, เบซเบผเบทเบžเบฝเบ‡เปเบ•เปˆเบ›เปˆเบฝเบ™ motherboard. ).

เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบชเบดเปˆเบ‡เบ—เบตเปˆ rootkit เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เบฐเป€เบกเบตเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก UEFI BIOS. เป€เบงเบปเป‰เบฒเบงเปˆเบฒ, เปƒเบ™เบฎเบนเบšเปเบšเบšเบชเบดเบ”เบ—เบดเบžเบดเป€เบชเบ”เบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต - SMM. rootkit เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบญเบฒเบ”เบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™เบเบฑเบš OS (เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เป‚เบ”เบเบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡ SMI, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ–เบทเบเบเบฐเบ•เบธเป‰เบ™เป‚เบ”เบเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบšเป€เบงเบฅเบฒ);
  • เบกเบตเบ‚เปเป‰เบ”เบตเบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบเบฒเบ™เบขเบนเปˆเปƒเบ™เป‚เบซเบกเบ” SMM (เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป€เบ™เบทเป‰เบญเบซเบฒเบ‚เบญเบ‡ RAM เปเบฅเบฐเบฎเบฒเบ”เปเบงเบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ, เบ„เบงเบฒเบกเบฅเบฑเบšเบˆเบฒเบ OS);
  • เบฅเบฐเบซเบฑเบ” rootkit เบชเบฒเบกเบฒเบ”เบ–เบทเบเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบ–เบญเบ”เบฅเบฐเบซเบฑเบ”เป€เบกเบทเปˆเบญเป€เบ›เบตเบ”เบ•เบปเบงเปƒเบ™เบฎเบนเบšเปเบšเบš SMM. เบ‚เปเป‰เบกเบนเบ™เปƒเบ”เป†เบเปเบ•เบฒเบกเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เป‚เปเบ” SMM เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบ›เบฑเบ™เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เป„เบ”เป‰. เบ•เบปเบงเบขเปˆเบฒเบ‡, hash เบˆเบฒเบเบŠเบธเบ”เบ‚เบญเบ‡เบ—เบตเปˆเบขเบนเปˆเปƒเบ™ SMRAM. เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเบฅเบฐเบซเบฑเบ”เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เบ›เบตเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ SMM. เปเบฅเบฐเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เปƒเบ™เบชเบญเบ‡เบงเบดเบ—เบต. เบŠเบญเบเบซเบฒ RCE เปƒเบ™เบฅเบฐเบซเบฑเบ” SMM เปเบฅเบฐเบ‚เบธเบ”เบ„เบปเป‰เบ™เบกเบฑเบ™, เบซเบผเบทเป€เบžเบตเปˆเบกเป‚เบกเบ”เบนเบ™ SMM เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡เปƒเบชเปˆ BIOS, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰, เป€เบžเบฒเบฐเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบ›เบตเบ”เปƒเบŠเป‰ Boot Guard.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบœเบนเป‰เป‚เบˆเบกเบ•เบต:

  • เบชเป‰เบฒเบ‡เบŠเบธเบ”เบฎเบฒเบเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ‡เป„เบงเป‰, เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เบญเบ”เบญเบญเบเป„เบ”เป‰เบ‚เบญเบ‡เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบเปƒเบ™เบฅเบฐเบšเบปเบš;
  • เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ chipset cores เบžเบฒเบเปƒเบ™ Intel SoC, เบ„เบท, เปƒเบ™ Intel ISH (เป€เบšเบดเปˆเบ‡เปƒเบเป‰เบŠเบดเบ”เบขเบนเปˆเปƒเบ™เบฎเบนเบš).

เป€เบเบตเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡ Schrรถdinger. Intel Boot Guard
เป€เบเบตเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡ Schrรถdinger. Intel Boot Guard
เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเปˆเบญเบ Intel ISH เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™, เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเป€เบ›เบฑเบ™ vector เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบเบฑเบš Intel ME.

เบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบš

  1. เบเบฒเบ™เบชเบถเบเบชเบฒเป„เบ”เป‰เปƒเบซเป‰เบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เป€เบ—เบเป‚เบ™เป‚เบฅเบเบต Intel Boot Guard. เบฅเบปเบšเบ„เบงเบฒเบกเบฅเบฑเบšเบชเบญเบ‡เบชเบฒเบกเบขเปˆเบฒเบ‡เปƒเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡ Intel เป‚เบ”เบเบœเปˆเบฒเบ™เบ•เบปเบงเปเบšเบšเบ—เบตเปˆเบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™.
  2. เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบ–เบทเบเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเป‰เบฒเบ‡เบŠเบธเบ”เบฎเบฒเบเบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เบญเบ”เบญเบญเบเป„เบ”เป‰เปƒเบ™เบฅเบฐเบšเบปเบš.
  3. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบซเบฑเบ™เบงเปˆเบฒเป‚เบ›เป€เบŠเบ”เป€เบŠเบต Intel เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡เบซเบผเบฒเบเบขเปˆเบฒเบ‡เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเปˆเบญเบ™เบ—เบตเปˆ BIOS เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.
  4. เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบ—เบตเปˆเบกเบตเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ Intel 64 เบเบฒเบเป€เบ›เบฑเบ™เบซเบ™เป‰เบญเบเปเบฅเบฐเบซเบ™เป‰เบญเบเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบฅเปˆเบ™เบŠเบญเบšเปเบงเบŸเบฃเบต: เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบฎเบฒเบ”เปเบง, เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡เปเบฅเบฐเบฅเบฐเบšเบปเบšเบเปˆเบญเบเบ—เบตเปˆเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™ (เบชเบฒเบกเปเบเบ™เปƒเบ™เบŠเบดเบšเป€เบŠเบฑเบ” SoC: x86 ME, x86 ISH เปเบฅเบฐ ARC PMC).

เบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™

เบœเบนเป‰เบ‚เบฒเบเบ—เบตเปˆเบ•เบฑเป‰เบ‡เปƒเบˆเป€เบ›เบตเบ”เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ„เบงเบ™เบ›เบดเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เปเบ™เปˆเบ™เบญเบ™. เบกเบฒเบฎเบญเบ”เบ›เบฐเบˆเบธ, เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบžเบฝเบ‡เปเบ•เปˆเบ›เบดเบ”เบ•เบฒเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปเบฅเบฐเบฅเบฐเบšเบปเบš Kaby Lake เปƒเบซเบกเปˆเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบ™เบตเป‰.

เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เบ›เบดเบ”เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™ Intel BG เปƒเบ™เบฅเบฐเบšเบปเบšเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ (เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบšเบˆเบฒเบเบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบ) เป‚เบ”เบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ Flash Programming Tool เบ”เป‰เบงเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบ -closemnf. เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เบ—เปˆเบฒเบ™เบ„เบงเบ™เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒ (เปƒเบŠเป‰ MEinfo) เบงเปˆเบฒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Intel BG เปƒเบ™เบžเบฒเบเบžเบทเป‰เบ™ ME เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ›เบดเบ”เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบ™เบตเป‰เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเปƒเบ™ FPFs.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™