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. Запускаем, получаем сертификат:

Сертификат 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:

setup.bin

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

USB key provisioning

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

Текущее состояние, ProvisioningState равно нулю (не сконфигурирован):

ProvisionState

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

Добавлен хэш нашего сертификата

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

Прописан установленный нами PKI-DNS

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

AMT-компьютер не сконфигурирован

Для работы нам потребуется приватный ключ, нам его также выдал SCEP, однако Intel AMT работает с RSA-ключами, потому переделываем:

openssl rsa -in smykey.key -out amt7.vpro.by-rsa.key

HostBasedSetup принимает на вход лишь "общий" файл, со всеми сертификатами (в начале сам сертификат, затем промежуточные и в конце рут), потому amt7.vpro.by объединяем с рутом vProbyCA в один файл:

Соединяем сертификат и root CA

Т.е. просто копируем содержание рута сразу после нашего сертификата и сохраняем.

У нас не используются промежуточные центры сертификации, иначе бы пришлось сделать цепочку из "сертификат-промежуточный-рут". Сразу предупреждаю: вариант с промежуточными сертификатами - больной мозоль утилит Intel AMT.

Ещё нам потребуется Perl (если он у вас не стоит) - в AMD SDK (см.папку DigSignScript) для подписи Nonce используется перл-скрипт. Можно поставить любой вариант, например ActiveState.

И ещё, перл-скрипт использует openssl, однако его в этой же папке (DigSignScript) нет. Лучше сразу туда докинуть openssl.exe.

Итак, всё это копируем на AMT7 компьютер и приступаем.

Сначала можно протестировать, как просто перевести компьютер в клиентский режим. Выполняем:

HostBasedSetup.exe -setup -newpass !QAZ1qaz
Перевод AMT в Client Mode

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

AMT-компьютер в клиентском режиме

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

Запускаем "HostBasedSetup.exe -discovery" чтобы проконтролировать:

Использование команды HostBasedSetup -discovery

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

Расконфигурирование AMT из клиентского режима

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

АМТ-компьютер в режиме 0 - расконфигурирован

Так и есть, Current Control Mode 0.

Что ж, "побаловались", теперь к серьёзному.

Сначала получаем Nonce - отпечаток текущей конфигурации AMT:

HostBasedSetup.exe -getnonce
Получаем Nonce с помощью команды HostBasedSetup -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. Если всё сделано правильно, то сразу после запуска получаем радостную новость:

Перевод АМТ в админский режим с помощью команды HostBasedSetup -adminsetup

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

AMT в админском режиме - 2

Так и есть - Control Mode 2.

Что и требовалось доказать:

AMT-компьютер сконфигурирован в админский режим

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

Добавить комментарий

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
Anti-bot.