Как проверить сертификаты защищенной проверки компонентов (на устройстве)
Summary: Узнайте, как проверить целостность устройства с помощью сертификата платформы и платформы верификатора для безопасной проверки компонентов на устройстве.
Instructions
Целостность и подлинность компьютера Dell можно проверить с помощью платформы сертификата и средства проверки. Это можно сделать, если с устройством заказана защищенная проверка компонентов (на устройстве). Платформа верификатора была разработана Министерством обороны США. Платформа верификатора называется инструментом HIRS (Host Integrity at Runtime and Start-up). Инструмент HIRS состоит из двух компонентов: портала Центра сертификации сертификатов (ACA) и средства подготовки HIRS. Для проверки результатов поставщиком HIRS необходимо настроить следующее:
- Инструмент HIRS
- Конечное устройство под управлением Windows 10 или Windows 11
- Модуль предоставления ресурсов HIRS настроен
- Портал ACA
- Добавление подписи и сертификаты платформы, загруженные в ACA
- Политика, заданная в ACA, чтобы указать, какие компоненты устройства и сертификата должны быть проверены.
Для проверки целостности устройства необходимо установить портал HIRS ACA, собрать сертификаты, загрузить сертификаты на портал ACA, настроить политику ACA, загрузить и установить средство подготовки HIRS, запустить средство предоставления ресурсов, а затем проверить результаты.
Установка портала HIRS ACA
Установка портала HIRS ACA в тестируемой системе означает, что вы проводите аттестацию локально. Этот метод, вероятно, является самой простой моделью развертывания, но не самой безопасной. Для более безопасного метода установите портал HIRS ACA на удаленном устройстве или сервере.
- Скачайте и установите Docker Desktop в тестируемой системе или на сервере.
Примечание. Запуск средства проверки ACA в тестируемой системе называется локальной проверкой и представляет собой модель угрозы, отличную от запуска ACA на сетевом сервере.
- Найдите Windows PowerShell, нажмите на него правой кнопкой мыши, выберите Запуск от имени администратора, введите следующую команду и нажмите клавишу Enter.
docker pull ghcr.io/nsacyber/hirs/aca:616fc06 - Чтобы подтвердить создание образа ACA HIRS в Docker, введите следующую команду и нажмите клавишу Enter.
docker images
- Чтобы проверить репозиторий в PowerShell, установите флажок в разделе REPOSITORY для
repository gchr.io/nsacyber/hirs/aca.
- В PowerShell введите следующую команду и нажмите клавишу Enter.
docker run --name=aca -p 8443:8443 ghcr.io/nsacyber/hirs/aca:616fc06 - В Docker введите следующую команду и нажмите клавишу Enter.
docker container ls -a - Убедитесь, что
acaотображается в категории ИМЕНА .
- Откройте браузер и перейдите на портал ACA, чтобы убедиться, что образ Docker работает. При локальной проверке используйте локальный IP-адрес хоста 127.0.0.1.
Примечание.- Если вы выполняете локальную проверку, перейдите в https://127.0.0.1:8443/HIRS_AttestationCAPortal/
.
- Переход сайта портала в режим онлайн может занять несколько минут.
- Как только сайт портала станет доступным, вы можете получить сообщение «Ваше подключение не является личным». Это ожидаемое поведение при запуске локальной проверки.
- Если вы выполняете локальную проверку, перейдите в https://127.0.0.1:8443/HIRS_AttestationCAPortal/
Сбор сертификатов
- Соберите сертификат атрибута платформы SCV. SCV (на устройстве) хранит сертификат в разделе UEFI жесткого диска.
- Выполните поиск по фразе командная строка, нажмите на нее правой кнопкой мыши и выберите пункт Запуск от имени администратора.
- Введите следующую команду и нажмите клавишу Enter.
mountvol o: /S - Введите следующую команду и нажмите клавишу Enter.
copy o:\EFI\tcg\cert\platform\*.cer c:\dell\platcert}Примечание. Если приобретен SCV (в облаке), сертификат находится в Dell Trusted Device и недоступен локально для проверки с помощью HIRS ACA.
- Соберите сертификат подписи Dell Intermediate CA.
- На заводе сертификат атрибута и сертификат подписи объединяются в сертификат платформы SCV и должны быть разделены, прежде чем его можно будет загрузить на портал HIRS ACA. Выполните следующую команду из PowerShell и нажмите клавишу Enter.
PowerShell :> $i=0; Get-Content c:\dell\platcert\*.cer -ReadCount 3 | %{$i++; $_ | Out-File out_$i.crt} - Соберите имена файлов
out_1.crtиout _2.crt.
- На заводе сертификат атрибута и сертификат подписи объединяются в сертификат платформы SCV и должны быть разделены, прежде чем его можно будет загрузить на портал HIRS ACA. Выполните следующую команду из PowerShell и нажмите клавишу Enter.
- Соберите корневой сертификат подписи CA, перейдя на сайт поддержки Trusted Device | «Drivers & Downloads» и «Загрузка Secure Component Validator».
- Соберите корневой и промежуточный сертификаты подписи TPM для моделей TPM в вашей среде из следующих источников:
- STMicro: https://www.st.com/resource/en/technical_note/tn1330-st-trusted-platform-module-tpm-endorsement-key-ek-certificates-stmicroelectronics.pdf
- Нувотон: https://www.nuvoton.com/export/sites/nuvoton/files/security/Nuvoton_TPM_EK_Certificate_Chain.pdfПримечание. У администратора может не быть записей о моделях TPM, используемых в среде. В этом случае администратор может скачать все корневой и промежуточный сертификаты подписи TPM, содержащиеся в предоставленных документах для STMicro и Nuvoton.
- STMicro: https://www.st.com/resource/en/technical_note/tn1330-st-trusted-platform-module-tpm-endorsement-key-ek-certificates-stmicroelectronics.pdf
Загрузка сертификатов на портал ACA
- Загрузите сертификат атрибута платформы Dell SCV (
c:\dell\platcert\out_1.crt) на портал ACA, нажав знак + на вкладке Platform Certificates .
Примечание. Если вы выполняете локальную проверку, перейдите в https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/certificate-request/platform-credentials.
- Загрузите сертификат подписи Dell Factory Intermediate CA (
c:\dell\platcert\out_2.crt), корневой сертификат с подписью источника сертификатов (PROD-CSG-SCV-Root.cer) и сертификаты подписи root TPM, щелкнув знак + рядом с пунктом Сертификаты CA цепочки доверия на вкладке Управление цепочкой доверия .
Примечание. Если вы выполняете локальную проверку, перейдите в https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/certificate-request/trust-chain.
Настройка политики ACA
- Перейдите на вкладку Policy .
- Нажмите на значок карандаша и установите для следующих параметров значение Включено:
- Подтверждение учетных данных подтверждения
- Проверка учетных данных платформы
- Проверка учетных данных атрибута платформы
Примечание. Если вы выполняете локальную проверку, перейдите в https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/policy.
Загрузите и установите HIRS Provisioner
Этот шаг необходимо выполнить для каждой системы, содержащей сертификат.
- Загрузите и установите последнюю версию Provisioner с сайта HIRS Provisioner Releases
.
- В Проводнике Windows перейдите в
c:\Program Files(x86)\HIRS_Provisioner.NET\plugins\scripts\windows. - Нажмите правой кнопкой мыши на файл
allcomponents.ps1и выберите Редактировать в Блокноте, затем закомментируйте строку 15, добавив#перед линией.Примечание. Например:#$NVME_SCRIPT="$APP_HOME/nvme.ps1" # For NVMe. - Закомментируйте строку 30, добавив
#перед линией.Примечание. Например:#. $NVME_SCRIPT. - Замените все «
### Gather HDD details" (строки 669-744) с приведенным ниже текстом:### Gather HDD details Write-Progress -Id 1 -Activity "Gathering component details" -PercentComplete 70 Write-Progress -Id 2 -ParentId 1 -Activity "Gathering HDD information" -CurrentOperation "Querying" -PercentComplete 0 function parseHddData() { $RS=(Get-CimInstance -ClassName CIM_DiskDrive | select serialnumber,mediatype,pnpdeviceid,manufacturer,model | where mediatype -eq "Fixed hard disk media") $component="" $replaceable=(jsonFieldReplaceable "true") $numRows=1 if ($RS.Count -gt 1) { $numRows=($RS.Count)} for($i=0;$i -lt $numRows;$i++) { Write-Progress -Id 2 -ParentId 1 -Activity "Gathering Hard Disk information" -CurrentOperation ("Cleaning output for HDD " + ($i+1)) -PercentComplete ((($i+1) / $numRows) * 100) $hddClass=(jsonComponentClass "$COMPCLASS_REGISTRY_TCG" "$COMPCLASS_HDD") $pnpDevID="" if(isIDE($RS[$i].PNPDeviceID)) { $pnpDevID=(ideDiskParse $RS[$i].PNPDeviceID) } elseif(isSCSI($RS[$i].PNPDeviceID)) { $pnpDevID=(scsiDiskParse $RS[$i].PNPDeviceID) } else {Continue } if(($pnpDevID -eq $null) -or (($pnpDevID -eq "(Standard disk drives)") -and ($pnpDevID.product -eq $null))) { $regex="^.{,16}$" $pnpDevID=[pscustomobject]@{ product=($RS[$i].model -replace '^(.{0,16}).*$','$1') # Strange behavior for this case, will return } } $tmpManufacturer=$pnpDevID.vendor # PCI Vendor ID $tmpModel=$pnpDevID.product # PCI Device Hardware ID $tmpSerial=$RS[$i].serialnumber $tmpRevision=$pnpDevID.revision if ([string]::IsNullOrEmpty($tmpManufacturer) -or ($tmpManufacturer.Trim().Length -eq 0)) { $tmpManufacturer="$NOT_SPECIFIED" } $tmpManufacturer=$(jsonManufacturer "$tmpManufacturer".Trim()) if ([string]::IsNullOrEmpty($tmpModel) -or ($tmpModel.Trim().Length -eq 0)) { $tmpModel="$NOT_SPECIFIED" } $tmpModel=$(jsonModel "$tmpModel".Trim()) if (![string]::IsNullOrEmpty($tmpSerial) -and ($tmpSerial.Trim().Length -ne 0)) { $tmpSerial=(jsonSerial "$tmpSerial".Trim()) } else { $tmpSerial="" } if (![string]::IsNullOrEmpty($tmpRevision) -and ($tmpRevision.Trim().Length -ne 0)) { $tmpRevision=(jsonRevision "$tmpRevision".Trim()) } else { $tmpRevision="" } $tmpComponent=(jsonComponent $hddClass $tmpManufacturer $tmpModel $replaceable $tmpSerial $tmpRevision) $component+="$tmpComponent," } Write-Progress -Id 2 -ParentId 1 -Activity "Gathering Hard Disk information" -CurrentOperation "Done" -PercentComplete 100 return "$component".Trim(",") }
Запуск средства предоставления ресурсов
Нажмите правой кнопкой мыши на Provisioner и выберите Запуск от имени администратора в системах, содержащих сертификат.
c:\Program Files(x86)\HIRS_Provisioner.NET\tpm_aca_provision.exe.
Проверить результаты
Проверьте прохождение результата на портале Validation Reports ACA .