ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π²Π½ΠΎΠ²Ρ ΡΠΏΡΡΡΠΈΡΡΡΡ Π½Π° Π½ΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ x86-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ
ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ
ΠΏΠ»Π°ΡΡΠΎΡΠΌ. Π ΡΡΠΎΡ ΡΠ°Π· Π³Π»Π°Π²Π½ΡΠΌ ΠΈΠ½Π³ΡΠ΅Π΄ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Intel Boot Guard (Π½Π΅ ΠΏΡΡΠ°ΡΡ Ρ Intel BIOS Guard!) β Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ-ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½Π½Π°Ρ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ BIOS, ΠΊΠΎΡΠΎΡΡΡ Π²Π΅Π½Π΄ΠΎΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠΌΠ°Π½Π΅Π½ΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ»ΠΈ Π²ΡΠΊΠ»ΡΡΠΈΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π°. ΠΡ Π° ΡΠ΅ΡΠ΅ΠΏΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΌ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌ: ΡΠΎΠ½ΠΊΠΎ Π½Π°ΡΠ΅Π·Π°ΡΡ ΡΠ΅Π²Π΅ΡΡ-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡΠΈΠ½Π³ΠΎΠΌ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΎΠΏΠΈΡΠ°ΡΡ Π΅Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ, Π½Π°ΠΏΠΎΠ»Π½ΠΈΠ² Π½Π΅Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π΄Π΅ΡΠ°Π»ΡΠΌΠΈ, ΠΏΡΠΈΠΏΡΠ°Π²ΠΈΡΡ ΠΏΠΎ Π²ΠΊΡΡΡ Π²Π΅ΠΊΡΠΎΡΠ°ΠΌΠΈ Π°ΡΠ°ΠΊ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ. ΠΠΎΠ΄Π±Π°Π²ΠΈΠΌ ΠΎΠ³Π½Ρ ΡΠ°ΡΡΠΊΠ°Π·ΠΎΠΌ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π³ΠΎΠ΄Π°ΠΌΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π²Π΅Π½Π΄ΠΎΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌΡ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½Π΅ΡΠ΄Π°Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ (Π΄Π°ΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡΠΎΠΌ) ΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΡΡΠΊΠΈΡΠ°.
ΠΡΡΠ°ΡΠΈ, Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠ°ΡΡΠΈ β Π΄ΠΎΠΊΠ»Π°Π΄Ρ Β«ΠΠ° ΡΡΡΠ°ΠΆΠ΅ ΡΡΡΠΊΠΈΡΠΎΠ²: Intel BootGuardΒ» Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ
ΠΡΠΎΡΠΈΠ²ΠΊΠ° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Intel 64
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΎΡΠ²Π΅ΡΠΈΠΌ Π½Π° Π²ΠΎΠΏΡΠΎΡ: ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΎΠΉ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Intel 64? Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, UEFI BIOS. ΠΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΎΡΠ²Π΅Ρ Π±ΡΠ΄Π΅Ρ Π½Π΅ ΡΠΎΡΠ½ΡΠΌ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π²Π·Π³ΡΠ½Π΅ΠΌ Π½Π° ΡΠΈΡΡΠ½ΠΎΠΊ, Π³Π΄Π΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΡΠΉ (Π»ΡΠΏΡΠΎΠΏΠ½ΡΠΉ) Π²Π°ΡΠΈΠ°Π½Ρ ΡΡΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ.
ΠΡΠ½ΠΎΠ²ΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²ΡΠ·ΠΊΠ°:
- ΠΡΠΎΡΠ΅ΡΡΠΎΡΠ° (CPU, Central Processing Unit), Π² ΠΊΠΎΡΠΎΡΡΠΉ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠ΄Π΅Ρ, Π²ΡΡΡΠΎΠ΅Π½ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΄ΡΠΎ (Π½Π΅ Π²ΠΎ Π²ΡΠ΅Ρ ΠΌΠΎΠ΄Π΅Π»ΡΡ ) ΠΈ Π²Π½Π΅Π΄ΡΡΠ½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΏΠ°ΠΌΡΡΠΈ (IMC, Integrated Memory Controller);
- Π§ΠΈΠΏΡΠ΅ΡΠ° (PCH, Platform Controller Hub), ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ. Π‘ΡΠ΅Π΄ΠΈ Π½ΠΈΡ β Π½Π΅Π±Π΅Π·ΡΠ·Π²Π΅ΡΡΠ½Π°Ρ Intel Management Engine (ME), Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ° (Intel ME firmware).
ΠΠΎΡΡΠ±ΡΠΊΠΈ, ΠΏΠΎΠΌΠΈΠΌΠΎ Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° (ACPI EC, Advanced Control and Power Interface Embedded Controller), ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΈΡΠ°Π½ΠΈΡ, ΡΠ°ΡΠΏΠ°Π΄Π°, ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, Fn-ΠΊΠ»Π°Π²ΠΈΡ (ΡΡΠΊΠΎΡΡΡ ΡΠΊΡΠ°Π½Π°, Π³ΡΠΎΠΌΠΊΠΎΡΡΡ Π·Π²ΡΠΊΠ°, ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ ΠΈ Ρ.ΠΏ.) ΠΈ ΠΏΡΠΎΡΠ΅Π³ΠΎ. Π Ρ Π½Π΅Π³ΠΎ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ ΡΠ²ΠΎΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ°.
Π’Π°ΠΊ Π²ΠΎΡ, ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ (system firmware), ΠΊΠΎΡΠΎΡΠ°Ρ Ρ ΡΠ°Π½ΠΈΡΡΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΉ SPI ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅ ΠΏΡΡΠ°Π»ΠΈΡΡ, Π³Π΄Π΅ ΡΡΡ Π»Π΅ΠΆΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ°Π·Π±ΠΈΡΠΎ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅Π³ΠΈΠΎΠ½Ρ (ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅):
- UEFI BIOS;
- ΠΏΡΠΎΡΠΈΠ²ΠΊΠ° ACPI EC (ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΠΎΠ½ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Skylake (2015 Π³ΠΎΠ΄), Π½ΠΎ in-the-wild ΠΌΡ ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ° Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡΡΠ°Π² UEFI BIOS);
- ΠΏΡΠΎΡΠΈΠ²ΠΊΠ° Intel ME;
- ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ (MAC-Π°Π΄ΡΠ΅Ρ ΠΈ Ρ.Π΄.) Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° GbE (Gigabit Ethernet);
- ΡΠ»ΡΡ-Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ (Flash Descriptors) β Π³Π»Π°Π²Π½ΡΠΉ ΡΠ΅Π³ΠΈΠΎΠ½ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅Π³ΠΈΠΎΠ½Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Π΄ΠΎΡΡΡΠΏ ΠΊ Π½ΠΈΠΌ.
Π Π°Π·Π³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅Π³ΠΈΠΎΠ½Π°ΠΌ (Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ) Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΌΠ°ΡΡΠ΅Ρ ΡΠΈΠ½Ρ SPI β Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π² ΡΠΈΠΏΡΠ΅Ρ SPI-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠΉ ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠ»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π² ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠ΅ (ΠΈΠ· ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ) ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Intel Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ SPI ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ (ΡΡΠ΅Π½ΠΈΠ΅/Π·Π°ΠΏΠΈΡΡ) ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΠ΅Π³ΠΈΠΎΠ½Ρ. Π ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ β Π»ΠΈΠ±ΠΎ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, Π»ΠΈΠ±ΠΎ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ. ΠΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΡΠ°ΠΊΡ: Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
CPU ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ UEFI BIOS ΠΈ GbE, Π΄ΠΎΡΡΡΠΏ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΠ»ΡΡ-Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ°ΠΌ, Π° ΠΊ ΡΠ΅Π³ΠΈΠΎΠ½Ρ Intel ME Π΄ΠΎΡΡΡΠΏΠ° Π½Π΅Ρ Π²ΠΎΠΎΠ±ΡΠ΅. ΠΠΎΡΠ΅ΠΌΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ
, Π° Π½Π΅ Π½Π° Π²ΡΠ΅Ρ
? Π§ΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΠΎ, ΡΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ Π΄Π°Π»Π΅Π΅ Π² ΡΡΠ°ΡΡΠ΅.
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π·Π°ΡΠΈΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΎΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΡΠΈΠ²ΠΊΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°ΡΠΈΡΠ°ΡΡ ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π±Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌΡ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΡ Π·Π°ΠΊΡΠ΅ΠΏΠΈΡΡΡΡ Π² Π½Π΅ΠΉ (ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ/ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΠ‘), ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π² Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ²Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ ΠΈ Ρ.Π΄. Π ΡΠ°Π·Π³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅Π³ΠΈΠΎΠ½Π°ΠΌ SPI ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π½Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΠΎΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ΅Π΄Ρ ΠΈΡΠΏΠΎΠ»Π΅Π½ΠΈΡ.
Π’Π°ΠΊ, ΠΏΡΠΎΡΠΈΠ²ΠΊΠ° Intel ME ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π° Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΠΈ, ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ME-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΅Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ Π² ΠΏΠ°ΠΌΡΡΡ ME UMA. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΆΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΡΡ Π½Π°ΠΌΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ·
Π ΠΏΡΠΎΡΠΈΠ²ΠΊΠ° ACPI EC, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ, Π²Π²ΠΈΠ΄Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠΎΡ Π±ΠΈΠ½Π°ΡΡ Π²ΠΊΠ»ΡΡΡΠ½ Π² ΡΠΎΡΡΠ°Π² UEFI BIOS, Π½Π° Π½Π΅Π³ΠΎ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡΡΡ ΡΠ΅ ΠΆΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π·Π°ΡΠΈΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ UEFI BIOS. Π Π½ΠΈΡ ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ.
ΠΡΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° Π΄Π²Π΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ.
ΠΠ°ΡΠΈΡΠ° ΠΎΡ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ΅Π³ΠΈΠΎΠ½ UEFI BIOS
- Π€ΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°Ρ Π·Π°ΡΠΈΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ SPI ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ write-protect Π΄ΠΆΠ°ΠΌΠΏΠ΅ΡΠΎΠΌ;
- ΠΠ°ΡΠΈΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΈΠΈ ΡΠ΅Π³ΠΈΠΎΠ½Π° UEFI BIOS Π² Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ CPU Ρ ΠΏΠΎΠΌΠΎΡΡΡ PRx ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΡΠΈΠΏΡΠ΅ΡΠ°;
- ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎΠΏΡΡΠΎΠΊ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ΅Π³ΠΈΠΎΠ½ UEFI BIOS Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠ΅ΠΉ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ SMI ΠΏΡΡΡΠΌ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±ΠΈΡΠΎΠ² BIOS_WE/BLE ΠΈ SMM_BWP Π² ΡΠ΅Π³ΠΈΡΡΡΠ°Ρ ΡΠΈΠΏΡΠ΅ΡΠ°;
- ΠΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠ°ΠΊΠΎΠΉ Π·Π°ΡΠΈΡΡ β Intel BIOS Guard (PFAT).
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΈΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌ, Π²Π΅Π½Π΄ΠΎΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΏΡΡΠ» Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ UEFI BIOS).
ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ (Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π΅Π½Π΄ΠΎΡΠ°) ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ Π½Π΅ Π²ΡΠ΅ Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡ Π·Π°ΡΠΈΡΡ, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ, Π° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΈΡ
ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ°Ρ
ΠΈ ΠΎ ΡΠΈΡΡΠ°ΡΠΈΠΈ Ρ ΠΈΡ
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π²
ΠΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΠΈ UEFI BIOS
ΠΠΎΠ³Π΄Π° ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΏΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΌ, β Secure Boot. ΠΠ΄Π½Π°ΠΊΠΎ, Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΠΎ ΠΎΠ½ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΠΈ Π²Π½Π΅ΡΠ½ΠΈΡ , ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ UEFI BIOS, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² (Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΎΠ² ΠΈ Ρ.Π΄.), Π° Π½Π΅ ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ.
ΠΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Intel Π² SoC-Π°Ρ Ρ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Bay Trail (2012 Π³ΠΎΠ΄) ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ Π½Π΅ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΠΌΡΠΉ Secure Boot (Verified Boot), Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠΉ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ Ρ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ Secure Boot. ΠΠΎΠ·ΠΆΠ΅ (2013 Π³ΠΎΠ΄) ΡΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π±ΡΠ» ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ ΠΈ ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Intel Boot Guard Π²ΡΠΏΡΡΠ΅Π½ Π΄Π»Ρ Π΄Π΅ΡΠΊΡΠΎΠΏΠΎΠ² Ρ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Haswell.
ΠΠ΅ΡΠ΅Π΄ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Intel Boot Guard ΡΠ°Π·Π±Π΅ΡΡΠΌΡΡ ΡΠΎ ΡΡΠ΅Π΄Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Intel 64, ΠΊΠΎΡΠΎΡΡΠ΅, ΠΏΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΡΠ΅Π»ΡΡΡΠ²Ρ, ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΡΠ½ΡΠΌΠΈ Π΄ΠΎΠ²Π΅ΡΠΈΡ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ.
Intel CPU
ΠΡΠΏ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ΅Π΄ΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Intel 64. ΠΠΎΡΠ΅ΠΌΡ ΠΎΠ½ ΠΆΠ΅ ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΡΠ½Π΅ΠΌ Π΄ΠΎΠ²Π΅ΡΠΈΡ? ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΠ°ΠΊΠΎΠ²ΡΠΌ Π΅Π³ΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΎΠ±Π»Π°Π΄Π°Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ:
- Microcode ROM β ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ°Ρ, Π½Π΅ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΠ°Ρ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄Π°. Π‘ΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π½Π° ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΡ
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ
. Π ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄Π΅ ΡΠΎΠΆΠ΅ ΡΠ»ΡΡΠ°ΡΡΡΡ
Π±Π°Π³ΠΈ . Π’Π°ΠΊ ΡΡΠΎ Π² BIOS ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π±ΠΈΠ½Π°ΡΠΈ Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄Π° (Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, Ρ.ΠΊ. ROM Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ). Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠΈΡ Π±ΠΈΠ½Π°ΡΠ΅ΠΉ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½ΠΎ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ Π°Π½Π°Π»ΠΈΠ· (ΠΏΠΎΡΡΠΎΠΌΡ, ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΌ, ΠΊΡΠΎ Π΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ), ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎ, Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΠΈ; - AES ΠΊΠ»ΡΡ Π΄Π»Ρ Π΄Π΅ΡΠΈΡΡΠΎΠ²ΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄Π°;
- Ρ Π΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° RSA, ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄Π°;
- Ρ Π΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° RSA, ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Intel ΠΊΠΎΠ΄ΠΎΠ²ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ACM (Authenticated Code Module), ΠΊΠΎΡΠΎΡΡΠ΅ CPU ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π΄ΠΎ Π½Π°ΡΠ°Π»Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ BIOS (ΠΏΡΠΈΠ²Π΅Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄Ρ) ΠΈΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ, ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ.
Intel ME
ΠΠ°Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅ Π² Π½Π°ΡΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅ Π±ΡΠ»ΠΎ ΠΏΠΎΡΠ²ΡΡΠ΅Π½ΠΎ Π°ΠΆ
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΊΡΡΡΠ½ΠΎΡΡΡ, Intel ME ΡΠΎΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΡΠ½Π΅ΠΌ Π΄ΠΎΠ²Π΅ΡΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠΌΠ΅Π΅Ρ:
- ME ROM β ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ, Π½Π΅ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΡ ΠΏΠ°ΠΌΡΡΡ (ΡΠΏΠΎΡΠΎΠ±Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ), ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΡΠ°ΡΡΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄, Π° ΡΠ°ΠΊΠΆΠ΅ SHA256 Ρ Π΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° 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. Π‘ΡΠ΄Ρ ΠΏΠΎ Π΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π² ΠΊΠ½ΠΈΠ³Π΅ [Platform Embedded Security Technology Revealed, Π³Π»Π°Π²Π° Boot with Integrity, or Not Boot], ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΠ½Π° ΠΊΠ°ΠΊ ΡΠ΅ΠΏΠΎΡΠΊΠ° Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. Π ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π·Π²Π΅Π½ΠΎ Π² Π½Π΅ΠΉ β Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ΄ (ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄) Π²Π½ΡΡΡΠΈ CPU, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΠΎ ΡΠΎΠ±ΡΡΠΈΡ RESET (Π½Π΅ ΠΏΡΡΠ°ΡΡ Ρ RESET-Π²Π΅ΠΊΡΠΎΡΠΎΠΌ Π² BIOS!). CPU Π½Π°Ρ ΠΎΠ΄ΠΈΡ Π½Π° SPI ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Intel ΠΊΠΎΠ΄ΠΎΠ²ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ (Intel BG startup ACM), Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΊ ΡΠ΅Π±Π΅ Π² ΠΊΡΡ, Π²Π΅ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ (Π²ΡΡΠ΅ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΠΎΡΠΌΠ΅ΡΠ΅Π½ΠΎ, ΡΡΠΎ CPU ΠΈΠΌΠ΅Π΅Ρ Ρ Π΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ ACM) ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ.
ΠΡΠΎΡ ΠΊΠΎΠ΄ΠΎΠ²ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ UEFI BIOS β Initial Boot Block (IBB), ΠΊΠΎΡΠΎΡΡΠΉ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄Π»Ρ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ UEFI BIOS. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Intel BG ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΠΈ BIOS ΠΏΠ΅ΡΠ΅Π΄ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΠ‘ (ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎΠ΄ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Secure Boot).
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Intel BG ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π΄Π²Π° ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ°Π±ΠΎΡΡ (ΠΏΡΠΈΡΡΠΌ ΠΎΠ΄ΠΈΠ½ Π΄ΡΡΠ³ΠΎΠΌΡ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ, Ρ.Π΅. ΠΎΠ±Π° ΡΠ΅ΠΆΠΈΠΌΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅, Π° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ±Π° Π²ΡΠΊΠ»ΡΡΠ΅Π½Ρ).
Measured Boot
Π ΡΠ΅ΠΆΠΈΠΌΠ΅ Measured Boot (MB) ΠΊΠ°ΠΆΠ΄ΡΠΉ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (Π½Π°ΡΠΈΠ½Π°Ρ Ρ CPU boot ROM) Β«ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΡΒ» ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ TPM (Trusted Platform Module). ΠΠ»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Π½Π΅ Π² ΠΊΡΡΡΠ΅, ΠΏΠΎΡΡΠ½ΠΈΠΌ.
Π£ TPM Π΅ΡΡΡ PCR-Ρ (Platform Configuration Registers), Π² ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅:
Π’.Π΅. ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ PCR Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ±Π½ΡΠ»ΡΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ RESET-Π΅ ΡΠΈΡΡΠ΅ΠΌΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ MB Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ PCR-Ρ ΠΎΡΡΠ°ΠΆΠ°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ (Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ) ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Β«ΠΈΠ·ΠΌΠ΅ΡΡΠ»ΠΈΡΡΒ». ΠΠ½Π°ΡΠ΅Π½ΠΈΡ PCR ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΠΏΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ (TPM_Seal). ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ, ΠΈΡ Π΄Π΅ΡΠΈΡΡΠΎΠ²ΠΊΠ° (TPM_Unseal) Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ PCR Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈΡΡ (Ρ.Π΅. Π½ΠΈ ΠΎΠ΄ΠΈΠ½ Β«ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΠΌΡΠΉΒ» ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π΅ Π±ΡΠ» ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½).
Verified Boot
Π‘Π°ΠΌΡΠΌ ΡΡΡΠ°ΡΠ½ΡΠΌ Π΄Π»Ρ Π»ΡΠ±ΠΈΡΠ΅Π»Π΅ΠΉ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ UEFI BIOS ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΆΠΈΠΌ Verified Boot (VB), ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ. Π Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ (ΠΎΠ΄Π½ΠΎ ΠΈΠ·):
- Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ°ΡΡΡ ΠΎΡ 1 ΠΌΠΈΠ½ Π΄ΠΎ 30 ΠΌΠΈΠ½ (ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΠΏΠ΅Π» ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ Ρ Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π½Π΅ Π³ΡΡΠ·ΠΈΡΡΡ, ΠΈ, ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ Π±Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ BIOS);
- Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ (ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΡΠΏΠ΅Π» ΠΏΠΎΠ½ΡΡΡ ΠΈ, ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅, ΡΠ΄Π΅Π»Π°ΡΡ);
- ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅Π²ΠΎΠ·ΠΌΡΡΠΈΠΌΡΠΌ Π²ΠΈΠ΄ΠΎΠΌ (ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ ΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, Π²Π΅Π΄Ρ Π΅ΡΡΡ Π΄Π΅Π»Π° ΠΏΠΎΠ²Π°ΠΆΠ½Π΅Π΅).
ΠΡΠ±ΠΎΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Intel BG (Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΎΡ Ρ.Π½. enforcement policy), ΠΊΠΎΡΠΎΡΠ°Ρ Π²Π΅Π½Π΄ΠΎΡΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΏΠ΅ΡΠΌΠ°Π½Π΅Π½ΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ β ΡΡΡΠ·Ρ ΡΠΈΠΏΡΠ΅ΡΠ° (FPF-Ρ). ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π½Π° ΡΡΠΎΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ ΠΏΠΎΠ·ΠΆΠ΅.
ΠΠΎΠΌΠΈΠΌΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π²Π΅Π½Π΄ΠΎΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π΄Π²Π° ΠΊΠ»ΡΡΠ° RSA 2048 ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π²Π΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ (ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅):
- ΠΠ°Π½ΠΈΡΠ΅ΡΡ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π²Π΅Π½Π΄ΠΎΡΠ° (KEYM, OEM Root Key Manifest), Π² ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠ»Π°Π΄ΡΡ SVN (Security Version Number) ΡΡΠΎΠ³ΠΎ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°, SHA256 Ρ Π΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°, ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ RSA (Ρ.Π΅. ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠ°ΡΡΡ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π²Π΅Π½Π΄ΠΎΡΠ°) Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° ΠΈ ΡΠ°ΠΌΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ;
- ΠΠ°Π½ΠΈΡΠ΅ΡΡ IBB (IBBM, Initial Boot Block Manifest), Π² ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠ»Π°Π΄ΡΡ SVN ΡΡΠΎΠ³ΠΎ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°, SHA256 Ρ Π΅Ρ IBB, ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° ΠΈ ΡΠ°ΠΌΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ.
SHA256 Ρ Π΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° OEM Root Key ΠΏΠ΅ΡΠΌΠ°Π½Π΅Π½ΡΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π²ΠΎ ΡΡΡΠ·Ρ ΡΠΈΠΏΡΠ΅ΡΠ° (FPF-Ρ), ΠΊΠ°ΠΊ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Intel BG. ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Intel BG ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΡΠΎ Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° Π΄Π°Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ BIOS (Ρ.Π΅. ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΡΠΈ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΡ) ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±Π»Π°Π΄Π°ΡΠ΅Π»Ρ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ OEM Root Key, Ρ.Π΅. Π²Π΅Π½Π΄ΠΎΡ.
ΠΡΠΈ Π²Π·Π³Π»ΡΠ΄Π΅ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ ΡΡΠ°Π·Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠΎΠΌΠ½Π΅Π½ΠΈΡ Π² Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ°ΠΊΠΎΠΉ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ β ΠΌΠΎΠΆΠ½ΠΎ ΠΆΠ΅ Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ. ΠΠ°ΡΠ΅ΠΌ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡ?
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Intel ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π΅Π½Π΄ΠΎΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ IBB Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ Π»ΠΈΠ½Π΅Π΅ΠΊ ΡΠ²ΠΎΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΈ ΠΎΠ΄ΠΈΠ½ β Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ. ΠΡΠ»ΠΈ ΡΡΠ΅ΡΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΊΠ»ΡΡΠ° IBB (ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π²ΡΠΎΡΠΎΠΉ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ), ΠΈΠ½ΡΠΈΠ΄Π΅Π½Ρ Π·Π°ΡΡΠΎΠ½Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ Π»ΠΈΠ½Π΅ΠΉΠΊΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π²Π΅Π½Π΄ΠΎΡ Π½Π΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π½ΠΎΠ²ΡΡ ΠΏΠ°ΡΡ ΠΈ Π½Π΅ Π²ΠΊΠ»ΡΡΠΈΡ ΠΏΠ΅ΡΠ΅ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ BIOS.
ΠΠΎ Π΅ΡΠ»ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠ»ΡΡ (ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ), Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ Π½Π΅Π»ΡΠ·Ρ, ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠ΅Π²ΠΎΠΊΠ°ΡΠΈΠΈ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ Ρ.ΠΊ. Ρ Π΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΡΡΡ Π² FPF-Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈ Π½Π°Π²ΡΠ΅Π³Π΄Π°.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Intel Boot Guard
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Intel BG ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΡ Π² GUI ΡΡΠΈΠ»ΠΈΡΡ Flash Image Tool ΠΈΠ· ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° Intel System Tool Kit (STK), ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Intel BG Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Ρ Π΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π²Π΅Π½Π΄ΠΎΡΠ°, ΠΏΠ°ΡΡ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ Ρ.Π½. ΠΏΡΠΎΡΠΈΠ»Ρ Intel BG.
Π‘ΡΡΡΠΊΡΡΡΠ° ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΈΠ»Ρ:
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. ΠΠΎΠ³Π΄Π° ΠΎΠ½ ΡΠ½ΡΡ, Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ BG startup ACM Π½Π° SPI ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΉΠ΄Π΅Π½, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΡΠ΄Π΅Ρ Π½Π΅Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½Π°Ρ.
ΠΡΡΠ΅ ΠΌΡ ΡΠΆΠ΅ ΠΏΠΈΡΠ°Π»ΠΈ, ΡΡΠΎ enforcement policy Π΄Π»Ρ ΡΠ΅ΠΆΠΈΠΌΠ° VB ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°ΠΊ, ΡΡΠΎ ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ΅ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, ΠΎΠΏΡΡΡ ΠΆΠ΅, Π½Π΅Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ°.
ΠΡΡΠ°Π²Π»ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΈ Π½Π° ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ Π²Π΅Π½Π΄ΠΎΡΠΎΠ²β¦
GUI ΡΡΠΈΠ»ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Β«Π³ΠΎΡΠΎΠ²ΡΠ΅Β» ΠΏΡΠΎΡΠΈΠ»ΠΈ:
ΠΠΎΠΌΠ΅Ρ
Π Π΅ΠΆΠΈΠΌ
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
0
No_FVME
ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Intel BG Π²ΡΠΊΠ»ΡΡΠ΅Π½Π°
1
VE
Π²ΠΊΠ»ΡΡΡΠ½ ΡΠ΅ΠΆΠΈΠΌ VB, Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ°ΡΡΡ
2
VME
Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΎΠ±Π° ΡΠ΅ΠΆΠΈΠΌΠ° (VB ΠΈ MB), Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ°ΡΡΡ
3
VM
Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΎΠ±Π° ΡΠ΅ΠΆΠΈΠΌΠ°, Π±Π΅Π· Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ
4
FVE
Π²ΠΊΠ»ΡΡΡΠ½ ΡΠ΅ΠΆΠΈΠΌ VB, Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
5
FVME
Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΎΠ±Π° ΡΠ΅ΠΆΠΈΠΌΠ°, Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Intel BG Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ°Π· ΠΈ Π½Π°Π²ΡΠ΅Π³Π΄Π° Π·Π°ΠΏΠΈΡΠ°Π½Π° Π²Π΅Π½Π΄ΠΎΡΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΡ Π²ΠΎ ΡΡΡΠ·Ρ ΡΠΈΠΏΡΠ΅ΡΠ° (FPF-Ρ) β Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ (ΠΏΠΎ Π½Π΅ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΠΌ, Π²ΡΠ΅Π³ΠΎ 256 Π±Π°ΠΉΡ) Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π²Π½ΡΡΡΠΈ ΡΠΈΠΏΡΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΎ Π²Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ ΠΌΠΎΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Intel (ΠΏΠΎΡΡΠΎΠΌΡ, ΠΈΠΌΠ΅Π½Π½ΠΎ Field Programmable Fuses).
ΠΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ:
- ΠΈΠΌΠ΅Π΅Ρ one-time-programmable ΠΎΠ±Π»Π°ΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ (ΠΊΠ°ΠΊ ΡΠ°Π· ΡΡΠ΄Π°, ΠΊΡΠ΄Π° Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Intel BG);
- ΡΠΈΡΠ°ΡΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Intel ME.
ΠΡΠ°ΠΊ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Intel BG Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π²Π΅Π½Π΄ΠΎΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° Π΄Π΅Π»Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
- Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ Flash Image Tool (ΠΈΠ· Intel STK) ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ°Π· ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ Intel BG Π² Π²ΠΈΠ΄Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²Π½ΡΡΡΠΈ ΡΠ΅Π³ΠΈΠΎΠ½Π° Intel ME (Ρ.Π½. Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π·Π΅ΡΠΊΠ°Π»ΠΎ Π΄Π»Ρ FPF-ΠΎΠ²);
- Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ Flash Programming Tool (ΠΈΠ· Intel STK) Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΠΎΡ ΠΎΠ±ΡΠ°Π· Π½Π° SPI ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ Ρ.Π½. manufacturing mode (ΠΏΡΠΈ ΡΡΠΎΠΌ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Intel ME).
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, Intel ME ΡΠΊΠΎΠΌΠΌΠΈΡΠΈΡ Π² FPF-Ρ Π·Π°Π΄Π°Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· Π·Π΅ΡΠΊΠ°Π»Π° Π΄Π»Ρ FPF-ΠΎΠ² Π² ME ΡΠ΅Π³ΠΈΠΎΠ½Π΅, Π²ΡΡΡΠ°Π²ΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² SPI ΡΠ»ΡΡ-Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ°Ρ Π² ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ 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, Π½Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ
ΠΠΎΠ΄ Β«ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉΒ» ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Intel BG startup ACM ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ Π²ΡΡΠ΅ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΎΠ² ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π² BIOS, Ρ.Π΅. ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π°.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π²ΠΎΠ·ΡΠΌΡΠΌ ΡΠΊΠ°ΡΠ΅Π½Π½ΡΠΉ Ρ ΠΎΡ. ΡΠ°ΠΉΡΠ° Π²Π΅Π½Π΄ΠΎΡΠ° ΠΎΠ±ΡΠ°Π· SPI ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Gigabyte GA-H170-D3H (Π²Π΅ΡΡΠΈΡ F4).
Intel CPU boot ROM
Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Intel BG Π²ΠΊΠ»ΡΡΠ΅Π½Π°.
ΠΠ±ΡΠ°Π·ΡΠΎΠ² Π΄Π΅ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄Π° Π½Π°ΠΉΡΠΈ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΠ΅ Π΄Π°Π»Π΅Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ (Π² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄Π΅ ΠΈΠ»ΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ) β Π²ΠΎΠΏΡΠΎΡ ΠΎΡΠΊΡΡΡΡΠΉ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΠΎ, ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Intel Β«ΡΠΌΠ΅ΡΡΒ» ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ β ΡΠ°ΠΊΡ.
ΠΠΎΡΠ»Π΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ RESET ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ (Π² Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΆΠ΅ ΡΠΌΠ°ΠΏΠ»Π΅Π½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ) Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ FIT (Firmware Interface Table). ΠΠ°ΠΉΡΠΈ Π΅Ρ ΠΏΡΠΎΡΡΠΎ, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π½Π΅Ρ Π·Π°ΠΏΠΈΡΠ°Π½ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ FFFF FFC0h.
Π ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΏΠΎ ΡΡΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ Π»Π΅ΠΆΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 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;
};
ΠΠΎ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΠ΅ΠΊΡΡΠΌΠΌΠ° Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π² ΡΡΠΈΡ
ΡΠ°Π±Π»ΠΈΡΠ°Ρ
ΠΏΠΎΡΡΠΈΡΠ°Π½Π° (ΠΏΠΎΠ»Π΅ ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΎ Π½ΡΠ»Π΅Π²ΡΠΌ).
ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π±ΠΈΠ½Π°ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΏΠ°ΡΡΠΈΡΡ/ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΅ΡΡ Π΄ΠΎ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ BIOS, Ρ.Π΅. Π΄ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° legacy 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;
};
ΠΠΎΠ»Π΅ 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. Π‘ΡΡΡΠΊΡΡΡΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΡΡΠΎΠ³ΠΎ Π±ΠΈΠ½Π°ΡΡ ΡΠΈΠΏΠΈΡΠ½Π° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΡΠ²Π°Π΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Intel ΠΊΠΎΠ΄ΠΎΠ²ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ (ACM-Ρ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄Π°, ΠΊΠΎΠ΄ΠΎΠ²ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ 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];
};
ΠΡΠΎΡΠ΅ΡΡΠΎΡ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΡΠΎΡ Π±ΠΈΠ½Π°ΡΡ ΠΊ ΡΠ΅Π±Π΅ Π² ΠΊΡΡ, Π²Π΅ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ.
Intel BG startup ACM
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ°Π±ΠΎΡΡ ΡΡΠΎΠ³ΠΎ ACM ΡΡΠ°Π»ΠΎ ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΎΠ½ Π΄Π΅Π»Π°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
- ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΎΡ Intel ME ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Intel BG, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π²ΠΎ ΡΡΡΠ·Ρ ΡΠΈΠΏΡΠ΅ΡΠ° (FPF-Ρ);
- Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΡ KEYM ΠΈ IBBM, Π²Π΅ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΈΡ .
ΠΠ»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠΈΡ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΎΠ² ACM ΡΠΎΠΆΠ΅ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ FIT, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΠ²Π΅Π΄Π΅Π½ΠΎ Π΄Π²Π° ΡΠΈΠΏΠ° Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½Π° Π΄Π°Π½Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ (ΡΠΌ. FIT_ENTRY_TYPES Π²ΡΡΠ΅).
ΠΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π½Π° ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°Ρ . Π ΡΡΡΡΠΊΡΡΡΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅ΡΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ, Ρ Π΅Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΈΠ· Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° ΠΈ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ 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];
};
ΠΠ»Ρ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° OEM Root Key, Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ SHA256 Ρ
Π΅Ρ ΠΈΠ· ΡΡΡΠ·ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π½Π° ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΠΎΡ Intel ME.
ΠΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ ΠΊΠΎ Π²ΡΠΎΡΠΎΠΌΡ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΡ. ΠΠ½ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΡΡΡ ΡΡΡΡΠΊΡΡΡ:
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 Ρ Π΅Ρ-Π΅ΠΌ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°) ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°:
typedef struct PMSG
{
char Tag[8]; // β__PMSG__β
unsigned char : 8; // 10h
BG_RSA_ENTRY IbbKey;
};
ΠΡΠ°ΠΊ, Π΅ΡΡ Π΄ΠΎ Π½Π°ΡΠ°Π»Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ UEFI BIOS ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π·Π°ΠΏΡΡΡΠΈΡ ACM, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΈΡ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΡΠ°Π· SEC ΠΈ PEI. ΠΠ°Π»Π΅Π΅, ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π²ΡΡ
ΠΎΠ΄ΠΈΡ ΠΈΠ· ACM, ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡ ΠΏΠΎ RESET-Π²Π΅ΠΊΡΠΎΡΡ ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ BIOS.
ΠΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ PEI ΡΠ°Π·Π΄Π΅Π» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΈΡ ΠΎΡΡΠ°Π²ΡΡΡΡΡ ΡΠ°ΡΡΡ BIOS (DXE ΠΊΠΎΠ΄). ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΆΠ΅ IBV (Independent BIOS Vendor) ΠΈΠ»ΠΈ ΡΠ°ΠΌ Π²Π΅Π½Π΄ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ. Π’.ΠΊ. ΠΎΠΊΠ°Π·Π°Π²ΡΠΈΡ ΡΡ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΈ ΠΈΠΌΠ΅ΡΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Intel BG ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΡΠ΅ΠΌΡ Lenovo ΠΈ Gigabyte, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠΎΠ΄, ΠΈΠ·Π²Π»Π΅ΡΡΠ½Π½ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ· ΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌ.
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.
Π₯ΠΎΡΡ ΡΡΠ° Π²Π΅ΡΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π»ΠΈΡΡ Π² SoC-Π°Ρ (Π½ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Kaby Lake ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Intel Boot Guard 1.x), ΠΎΠ½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌ Π½Π° Intel SoC, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ ΠΎΡΡΡΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
- ΡΠ΅Π³ΠΈΠΎΠ½Ρ BIOS ΠΈ Intel ME (Π²Π΅ΡΠ½Π΅Π΅ Intel TXE, ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π΄Π»Ρ Intel SoC) ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ΅Π³ΠΈΠΎΠ½ΠΎΠΌ IFWI;
- Ρ ΠΎΡΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Π±ΡΠ» Π²ΠΊΠ»ΡΡΡΠ½ Intel BG, ΡΠ°ΠΊΠΈΡ ΡΡΡΡΠΊΡΡΡ, ΠΊΠ°ΠΊ FIT, KEYM, IBBM Π½Π΅ Π±ΡΠ»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π²ΠΎ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ;
- ΠΏΠΎΠΌΠΈΠΌΠΎ TXE ΠΈ ISH ΡΠ΄Π΅Ρ (x86), Π² ΡΠΈΠΏΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΡΠ΅ΡΡΠ΅ ΡΠ΄ΡΠΎ (ΡΠ½ΠΎΠ²Π° ARC, ΠΊΡΡΠ°ΡΠΈ) β PMC (Power Management Controller), ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΠΎΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΠΎΠ½Π° IFWI ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π½Π°Π±ΠΎΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ:
Π‘ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅
ΠΠΌΡ
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
0000 2000h
SMIP
Π½Π΅ΠΊΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎ Π²Π΅Π½Π΄ΠΎΡΠΎΠΌ
0000 6000h
RBEP
ΠΊΠΎΠ΄ΠΎΠ²ΡΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Intel TXE, x86, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎ Intel
0001 0000h
PMCP
ΠΊΠΎΠ΄ΠΎΠ²ΡΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Intel PMC, ARC, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎ Intel
0002 0000h
FTPR
ΠΊΠΎΠ΄ΠΎΠ²ΡΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Intel TXE, x86, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎ Intel
0007 B000h
UCOD
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄Π° Π΄Π»Ρ CPU, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎ Intel
0008 0000h
IBBP
UEFI BIOS, ΡΠ°Π·Ρ SEC/PEI, x86, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎ Π²Π΅Π½Π΄ΠΎΡΠΎΠΌ
0021 8000h
ISHC
ΠΊΠΎΠ΄ΠΎΠ²ΡΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Intel ISH, x86, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎ Π²Π΅Π½Π΄ΠΎΡΠΎΠΌ
0025 8000h
NFTP
ΠΊΠΎΠ΄ΠΎΠ²ΡΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ Intel TXE, x86, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎ Intel
0036 1000h
IUNP
Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ
0038 1000h
OBBP
UEFI BIOS, ΡΠ°Π·Π° DXE, x86, Π½Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎ
Π Ρ ΠΎΠ΄Π΅ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ TXE ΡΡΠ°Π»ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ RESET-Π° TXE Π΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π² ΡΡΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π΄Π»Ρ CPU (FIT, ACM, RESET-Π²Π΅ΠΊΡΠΎΡ β¦). ΠΡΠΈΡΡΠΌ TXE ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅Ρ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Ρ ΡΠ΅Π±Ρ Π² SRAM, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΡΡΠ΄Π° Π΄ΠΎΡΡΡΠΏ ΠΈ Β«ΠΎΡΠΏΡΡΠΊΠ°Π΅ΡΒ» Π΅Π³ΠΎ ΠΈΠ· RESET-Π°.
ΠΠ° ΡΡΡΠ°ΠΆΠ΅ ΡΡΡΠΊΠΈΡΠΎΠ²
ΠΡ Π° ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ ΠΊ Β«Π³ΠΎΡΡΡΠ΅ΠΌΡΒ». ΠΠ΄Π½Π°ΠΆΠ΄Ρ ΠΌΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ, ΡΡΠΎ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π² SPI ΡΠ»ΡΡ-Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ°Ρ Π·Π°ΠΏΠΈΡΠ°Π½Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅Π³ΠΈΠΎΠ½Π°ΠΌ SPI ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ ΡΠ°ΠΊ, ΡΡΠΎ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΌΠΎΠ³ΡΡ ΠΈ ΠΏΠΈΡΠ°ΡΡ, ΠΈ ΡΠΈΡΠ°ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠ΅Π³ΠΈΠΎΠ½. Π’.Π΅. Π½ΠΈΠΊΠ°ΠΊ.
ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ MEinfo (ΠΈΠ· Intel STK) ΠΌΡ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ manufacturing mode Π½Π° ΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π½Π΅ Π·Π°ΠΊΡΡΡ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΡΠ·Ρ ΡΠΈΠΏΡΠ΅ΡΠ° (FPF-Ρ) ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π² Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΠ°, Intel BG Π² ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π½ΠΈ Π²ΠΊΠ»ΡΡΡΠ½, Π½ΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½.
Π Π΅ΡΡ ΠΈΠ΄ΡΡ ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ (ΠΊΠ°ΡΠ°Π΅ΠΌΠΎ Intel BG ΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΎ Π΄Π°Π»Π΅Π΅ Π² ΡΡΠ°ΡΡΠ΅, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Haswell ΠΈ Π²ΡΡΠ΅):
- Π²ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ Gigabyte;
- Π²ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ MSI;
- 21 ΠΌΠΎΠ΄Π΅Π»Ρ Π½ΠΎΡΡΠ±ΡΠΊΠΎΠ² Lenovo ΠΈ 4 ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Lenovo.
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΠΌΡ ΡΠΎΠΎΠ±ΡΠΈΠ»ΠΈ ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΊΠ΅ ΡΡΠΈΠΌ Π²Π΅Π½Π΄ΠΎΡΠ°ΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Intel.
ΠΠ΄Π΅ΠΊΠ²Π°ΡΠ½Π°Ρ ΡΠ΅Π°ΠΊΡΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Π»Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡ Lenovo, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ·Π½Π°Π»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ
Gigabyte Π²ΡΠΎΠ΄Π΅ ΠΈ ΠΏΡΠΈΠ½ΡΠ»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π»ΠΈ.
ΠΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ MSI Π²ΠΎΠ²ΡΠ΅ Π·Π°ΡΡΠΎΠΏΠΎΡΠΈΠ»ΠΎΡΡ Π½Π° Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΡΡΠ±Π΅ ΠΏΡΠΈΡΠ»Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΎΡΠΊΡΡΡΡΠΉ PGP-ΠΊΠ»ΡΡ (ΡΡΠΎΠ±Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΠΌ security advisory Π² Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅). ΠΠ½ΠΈ Π·Π°ΡΠ²ΠΈΠ»ΠΈ, ΡΡΠΎ Β«ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΈ PGP-ΠΊΠ»ΡΡΠΈ Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΒ».
ΠΠΎ Π±Π»ΠΈΠΆΠ΅ ΠΊ Π΄Π΅Π»Ρ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΡΠ·Ρ ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π² Π½Π΅Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΠΈΠ»ΠΈ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ) ΠΌΠΎΠΆΠ΅Ρ ΠΈΡ
Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ (ΡΠ°ΠΌΠΎΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ β
1. ΠΠ°Π³ΡΡΠ·ΠΈΡΡΡΡ Π² ΠΠ‘ Windows (Π²ΠΎΠΎΠ±ΡΠ΅, ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΠ΅ Π΄Π°Π»Π΅Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈ ΠΈΠ· ΠΏΠΎΠ΄ Linux, Π΅ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π°Π½Π°Π»ΠΎΠ³ Intel STK ΠΏΠΎΠ΄ Π½ΡΠΆΠ½ΡΡ ΠΠ‘). ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΈΠ»ΠΈΡΡ MEinfo, ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΡΠ·Ρ Π½Π° Π΄Π°Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½Π΅ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½Ρ.
2. Π‘ΡΠΈΡΠ°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Flash Programming Tool.
3. ΠΡΠΊΡΡΡΡ ΡΡΠΈΡΠ°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ°Π· ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ UEFI BIOS, Π²Π½Π΅ΡΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (Π²Π½Π΅Π΄ΡΠΈΡΡ ΡΡΡΠΊΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ), ΡΠΎΠ·Π΄Π°ΡΡ/ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ ΡΡΡΡΠΊΡΡΡΡ KEYM ΠΈ IBBM Π² ME ΡΠ΅Π³ΠΈΠΎΠ½Π΅.
ΠΠ° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ Π²ΡΠ΄Π΅Π»Π΅Π½Π° ΠΏΡΠ±Π»ΠΈΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΊΠ»ΡΡΠ° RSA, Ρ
Π΅Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ Π²ΠΎ ΡΡΡΠ·Ρ ΡΠΈΠΏΡΠ΅ΡΠ° Π²ΠΌΠ΅ΡΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ Intel BG.
4. ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Flash Image Tool ΡΠΎΠ±ΡΠ°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π· ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ (Π·Π°Π΄Π°Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Intel BG).
5. ΠΠ°ΠΏΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π· Π½Π° ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Flash Programming Tool, ΡΠ±Π΅Π΄ΠΈΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ MEinfo, ΡΡΠΎ ME ΡΠ΅Π³ΠΈΠΎΠ½ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Intel BG.
6. ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Flash Programming Tool Π·Π°ΠΊΡΡΡΡ ΡΠ΅ΠΆΠΈΠΌ manufacturing mode.
7. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΏΠ΅ΡΠ΅Π·Π°Π·Π³ΡΡΠ·ΠΈΡΡΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ MEinfo ΠΌΠΎΠΆΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ FPF-Ρ ΡΠ΅ΠΏΠ΅ΡΡ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½Ρ.
ΠΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π°Π²ΡΠ΅Π³Π΄Π° Π²ΠΊΠ»ΡΡΠ°Ρ Intel BG Π½Π° Π΄Π°Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠΌΠ΅Π½ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π½Π΅Π»ΡΠ·Ρ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ:
- ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ UEFI BIOS Π½Π° Π΄Π°Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±Π»Π°Π΄Π°ΡΠ΅Π»Ρ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° (Ρ.Π΅. ΡΠΎΡ, ΠΊΡΠΎ Π²ΠΊΠ»ΡΡΠΈΠ» Intel BG);
- Π΅ΡΠ»ΠΈ Π²Π΅ΡΠ½ΡΡΡ ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡΠ°, ΠΎΠ½Π° Π΄Π°ΠΆΠ΅ Π½Π΅ Π²ΠΊΠ»ΡΡΠΈΡΡΡ (ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ enforcement policy Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ);
- ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΠ°ΠΊΠΎΠ³ΠΎ UEFI BIOS, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΏΡΠ΅Ρ Ρ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ FPF-Π°ΠΌΠΈ Π½Π° Β«ΡΠΈΡΡΡΠΉΒ» (Ρ.Π΅. ΠΏΠ΅ΡΠ΅ΠΏΠ°ΡΡΡ ΡΠΈΠΏΡΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΈΠ½ΡΡΠ°ΠΊΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ°ΡΠ»ΡΠ½ΠΎΠΉ ΡΡΠ°Π½ΡΠΈΠΈ ΡΠ΅Π½ΠΎΠΉ Π² Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Ρ, Π½Ρ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ½ΡΠΊΡΡ ΠΏΠ»Π°ΡΡ).
ΠΠ»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠ²ΠΎΡΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΡΡΠΊΠΈΡ, Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ, ΡΡΠΎ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π² ΡΡΠ΅Π΄Π΅ UEFI BIOS. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Π² ΡΠ°ΠΌΠΎΠΌ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° β SMM. Π’Π°ΠΊΠΎΠΉ ΡΡΡΠΊΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
- ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΠ‘ (ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΎΡΡΠ°Π±ΠΎΡΠΊΡ ΠΏΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ SMI ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΡΡΠΈΠ³Π³Π΅ΡΠΈΡΡΡΡ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΡ);
- ΠΈΠΌΠ΅ΡΡ Π²ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ SMM (ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΊ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ, ΡΠΊΡΡΡΠ½ΠΎΡΡΡ ΠΎΡ ΠΠ‘);
- ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ ΡΡΡΠΊΠΈΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΈ Π΄Π΅ΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ SMM. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ° Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ SMM. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π΅Ρ ΠΎΡ Π½Π°Π±ΠΎΡΠ° Π°Π΄ΡΠ΅ΡΠΎΠ² Π² SMRAM. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΎΡ ΠΊΠ»ΡΡ, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°Π±ΡΠ°ΡΡΡΡ Π² SMM. Π ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. ΠΠ°ΠΉΡΠΈ RCE Π² ΠΊΠΎΠ΄Π΅ SMM ΠΈ ΠΏΡΠΎΡΠΊΡΠΏΠ»ΡΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ, Π»ΠΈΠ±ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² BIOS ΡΠ²ΠΎΠΉ SMM ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ Boot Guard.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠ° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΡ:
- ΡΠΎΠ·Π΄Π°ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΊΡΡΡΡΠΉ, Π½Π΅ΡΠ΄Π°Π»ΡΠ΅ΠΌΡΠΉ ΡΡΡΠΊΠΈΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ;
- ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ΄Π΅Ρ ΡΠΈΠΏΡΠ΅ΡΠ° Π²Π½ΡΡΡΠΈ Intel SoC, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, Π½Π° Intel ISH (Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ).
Π₯ΠΎΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Intel ISH Π΅ΡΡ Π½Π΅ ΠΈΠ·ΡΡΠ΅Π½Ρ, ΠΎΠ½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΌ Π²Π΅ΠΊΡΠΎΡΠΎΠΌ Π°ΡΠ°ΠΊΠΈ Π½Π° Intel ME.
ΠΡΠ²ΠΎΠ΄Ρ
- ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Intel Boot Guard. ΠΠΈΠ½ΡΡ ΠΏΠ°ΡΠ° ΡΠ°ΠΉΠ½ Π² Intel-ΠΎΠ²ΡΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ security through obscurity.
- ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π°ΡΠ°ΠΊΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠΎΠ·Π΄Π°ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½Π΅ΡΠ΄Π°Π»ΡΠ΅ΠΌΡΠΉ ΡΡΡΠΊΠΈΡ.
- ΠΡ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Intel ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΅ΡΡ Π΄ΠΎ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ BIOS.
- ΠΠ»Π°ΡΡΠΎΡΠΌΡ Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Intel 64 ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π²ΡΡ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΠ: Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΠ΅Π΅ΡΡ ΡΠΈΡΠ»ΠΎ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌ (ΡΡΠΈ ΡΠ΄ΡΠ° Π² ΡΠΈΠΏΡΠ΅ΡΠ΅ SoC: x86 ME, x86 ISH ΠΈ ARC PMC).
Mitigations
ΠΠ΅Π½Π΄ΠΎΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΠΎΡΡΠ°Π²Π»ΡΡΡ manufacturing mode ΠΎΡΠΊΡΡΡΡΠΌ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΅Π³ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΊΡΡΠ²Π°ΡΡ. ΠΠΎΠΊΠ° ΡΡΠΎ Π·Π°ΠΊΡΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π³Π»Π°Π·Π° ΠΈ Π½ΠΎΠ²ΡΠ΅ Kaby Lake ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ°ΠΌΠΈ Π²ΡΠΊΠ»ΡΡΠΈΡΡ Intel BG Ρ ΡΠ΅Π±Ρ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
(ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Ρ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ), Π·Π°ΠΏΡΡΡΠΈΠ² ΡΡΠΈΠ»ΠΈΡΡ Flash Programming Tool Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ -closemnf. ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ (ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ MEinfo), ΡΡΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Intel BG Π² ΡΠ΅Π³ΠΈΠΎΠ½Π΅ ME ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² FPF-Ρ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com