Intel AMT 7 - Host Based Setup
В начале 2011-года вышла версия Intel AMT 7.0 - первая версия с "полноценной" поддержкой HBS (Host Based Setup). Полноценной - потому что "урезанная" появилась в AMT 6.1, где AMT можно было сконфигурировать локально, но не проинициализировать.
Это важное свойство - всё сделать локально, при чём именно "программно" - является главной причиной, почему Intel AMT версии 7 (и выше) является "рекомендуемой" (в то время как версия AMT6 - является "минимально рекомендуемой"). Этот факт (программная возможность полной локальной настройки AMT - "Host Based Setup") сделал новый отсчёт в "AMT-строении" - до версии Intel AMT 7 и после.
Рассмотрим Intel AMT 7 + Host Based Setup на конкретном примере материнской платы Intel DQ67SW.
Нам потребуется Intel AMT SDK, возьму последнее (не принципиально).
В нём нам потребуется лишь раздел SDK-AMT10.0.0.23\Windows\Intel_AMT\Bin\Configuration\HostBasedSetup, потому, чтобы не качать 240 Мб из-за этого, файл папки HostBasedSetup прилагается.
Для "полностью программного" варианта инициализации потребуется "правильный" сертификат - дело дорогое (≈100-300$ в года, в зависимости от издателя). Это (получение "правильного" сертификата для инициализации Intel AMT) мы рассмотрим как-нибудь в другой раз, а пока сделаем свой, например, удобно с помощью настроенного ранее SCEP-сервера. , где мы в частности, сразу поставили шаблону нужные фичи для инициализации AMT. Итак, берём SCEP-клиент и прописываем какое-нибудь имя. Например, я возьму amt7.vpro.by. Запускаем, получаем сертификат:

Видно, что сертификат подойдёт в т.ч. для инициализации AMT (т.е. есть OID 2.16.840.1.113741.1.2.3).
Далее создаём файл для USB-флешки. Седьмая версия AMT поддерживает четвёртую версию данного файла, потому можем смело добавить "-v 4" в командную строку (хотя нам здесь подойдёт и версия 2.1, т.к. никаких "особых" параметров задавать не будем):
USBfile -create setup.bin vPro!by1 vPro!by1 -dns amt7.vpro.by -hash scacert-1-2-vProbyCA.cer "vProbyCA" -v 4
-dns amt7.vpro.by
Данная настройка прописывает PKI-DNS суффикс - его можно настроить (указать) в вашем DHCP-сервере (на отдельном или на роутере). Если этой возможности нет (или лень, как мне) - прописываем здесь.
-hash scacert-1-2-vProbyCA.cer "vProbyCA"
Я скопировал сюда файл рута СА, полученного от SCEP сервера и с пощью команды "-hash" он просто вытянет и пропишет в setup.bin, собственно, хэш сертификата (альтернативно можно самому ввести цифры, но, опять же лень, да и так надёжней). "vProbyCA", напомню, имя сертификата, важный параметр, должен совпадать с тем, на которое выдан рут.
Собственно, в этом и отличие моего сертификата от "правильного" - хэш рута "правильного" изначально присутствует внутри Intel AMT. Мы же добавим его с помощью этого файла и USB-флешки.
Контролируем содержание setup.bin:

Всё на месте, вставляем, запускаем:

Жмём Y, загружаемся. Запускаем Intel® AMT Diagnostics Tool, чтобы проконтролировать.
Текущее состояние, ProvisioningState равно нулю (не сконфигурирован):

Видно, что среди трастовых рутов в конец добавился и наш:

А также прописался PKI-DNS:

В общем, компьютер не сконфигурирован:

Для работы нам потребуется приватный ключ, нам его также выдал SCEP, однако Intel AMT работает с RSA-ключами, потому переделываем:
openssl rsa -in smykey.key -out amt7.vpro.by-rsa.key
HostBasedSetup принимает на вход лишь "общий" файл, со всеми сертификатами (в начале сам сертификат, затем промежуточные и в конце рут), потому amt7.vpro.by объединяем с рутом vProbyCA в один файл:

Т.е. просто копируем содержание рута сразу после нашего сертификата и сохраняем.
У нас не используются промежуточные центры сертификации, иначе бы пришлось сделать цепочку из "сертификат-промежуточный-рут". Сразу предупреждаю: вариант с промежуточными сертификатами - больной мозоль утилит Intel AMT.
Ещё нам потребуется Perl (если он у вас не стоит) - в AMD SDK (см.папку DigSignScript) для подписи Nonce используется перл-скрипт. Можно поставить любой вариант, например ActiveState.
И ещё, перл-скрипт использует openssl, однако его в этой же папке (DigSignScript) нет. Лучше сразу туда докинуть openssl.exe.
Итак, всё это копируем на AMT7 компьютер и приступаем.
Сначала можно протестировать, как просто перевести компьютер в клиентский режим. Выполняем:
HostBasedSetup.exe -setup -newpass !QAZ1qaz

Компьютер сразу же перейдёт в Client Mode.

Как видно, никаких особых телодвижений для этого не требуется (и шаманство с USB-флешкой для этого также не требовалось). Однако это весьма ограниченный режим, нам он не интересен.
Запускаем "HostBasedSetup.exe -discovery" чтобы проконтролировать:

Точно также просто можно расконфигурировать компьютер из клиентского режима - просто выполняем "HostBasedSetup.exe -unprovision":

Контролируем:

Так и есть, Current Control Mode 0.
Что ж, "побаловались", теперь к серьёзному.
Сначала получаем Nonce - отпечаток текущей конфигурации AMT:
HostBasedSetup.exe -getnonce

Видно, что в папке появился файл "Nonce" (без расширения).
Далее его нужно подписать с помощью нашего приватного ключа. Как раз для этого нужен перл-скрипт (соответственно, Perl должен быть установлен в ОС). Переходим в папку DigSignScript и запускаем скрипт, указывая путь к полученному на предыдущем шаге "Nonce" и приватному ключу (RSA формат без пароля):
- cd c:\Intel\HostBasedSetup\DigSignScript\
- DigSign.pl -nonce c:\Intel\HostBasedSetup\HostBasedSetupUntyped\Nonce -privatekey c:\Intel\certs\amt7.vpro.by-rsa.key
Если получите сообщение «"openssl" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.». Это означает, что вы забыли скопировать openssl.exe для перл-скрипта и получившийся несмотря на "Ended successfully" файл "DigSign.bin" будет пустым:
[START][END]
[START]5dgENVOci2x6Ndfc9idmNtpk+wM=[END]
Корректный файл "DigSign.bin" будет следующего вида:
[START]K1nwK2wVk5iM97rh1MBhi1/eMXllnM0QtvV+lTy2gnfIKeyGrXQKmERH3XnIdkqSPhn8IsJn7Rt1fzAQvR/9vkG8AKWfAJIOAcUFNUjO3gZ0XLYLrS0MAk7kMTCwv7tj+biWiJsfFSDqAPOlUEJoj+hzZR3lb8HxVW3
+S9Mo4KiksUuo3zkqYV6MQO+cclaVb5PSSsQXATPbbIjFu/hlN9/vgtV0jgujaxf/AV/bCQDSy6YBnsAwAmPHsJYo/J2eGTjRtlai0oOWU1pJFpSWFiEZkzAZkz1IxU9H4d3LrU96PW4ugnZwQpvGKLY2aE995Ts1Ggrq5JJTo
gFRnsbPRw==[END]
[START]2Gd5cniola3g4Vt1/lrNrayhGmk=[END]
Далее возвращаемся и снова запускаем HostBasedSetup с ключиком -adminsetup, новым паролем, файлом нашего сертификата (где также и рут) и "подписанным Nonce" - DigSign.bin:
HostBasedSetup.exe -adminsetup -newpass !QAZ1qaz -cert c:\Intel\certs\amt7.vpro.by_vProbyCA.cer -file c:\Intel\HostBasedSetup\DigSignScript\DigSign.bin
Если вы получите ошибку:
Error: Invalid parameter
Usage:
HostBasedSetup.exe < -discovery | -setup -newpass | -disable -force | -unprovision > [-wmi]
Значит вы зашли в "ограниченную версию" (без админского режима) - в папку HostBasedSetup, а нам нужна HostBasedSetupUntyped. Если всё сделано правильно, то сразу после запуска получаем радостную новость:

Контролируем:

Так и есть - Control Mode 2.
Что и требовалось доказать:

Итого, начиная с Intel AMT 7 мы можем настраивать AMT полностью программно.
Добавить комментарий