Cómo validar certificados de verificación segura de componentes (en el dispositivo)
Summary: Obtenga información sobre cómo validar la integridad de un dispositivo mediante el certificado de la plataforma y una plataforma de verificador para la verificación segura de componentes en el dispositivo. ...
Instructions
La integridad y autenticidad de una computadora Dell se pueden validar mediante el certificado de la plataforma y el verificador de la plataforma. Esto se puede lograr cuando se ordena la verificación segura de componentes (en el dispositivo) con un dispositivo. El Departamento de Defensa de los Estados Unidos (DoD, por sus siglas en inglés) desarrolló la plataforma de verificadores. La plataforma del verificador se conoce como la herramienta de integridad del host en el tiempo de ejecución y el inicio (HIRS). La herramienta HIRS consta de dos componentes, el portal de la autoridad de certificación (ACA) y el aprovisionador de HIRS. Se debe configurar lo siguiente para que el aprovisionador de HIRS verifique los resultados:
- Herramienta HIRS
- Dispositivo terminal que ejecuta Windows 10 o Windows 11
- Aprovisionamiento de HIRS configurado
- Portal de ACA
- Firma y certificados de plataforma cargados en la ACA
- Política establecida dentro de la ACA para especificar qué partes del dispositivo y el certificado se validarán
La validación de la integridad del dispositivo requiere que instale el portal de ACA de HIRS, recopile certificados, cargue certificados en el portal de ACA, establezca la política de ACA, descargue e instale el aprovisionador de HIRS, ejecute el aprovisionador y, a continuación, verifique los resultados.
Instalar el portal de HIRS ACA
La instalación del portal de HIRS ACA en el sistema sometido a prueba significa que está ejecutando la certificación localmente. Es probable que este método sea el modelo de implementación más sencillo, pero no el más seguro. Para obtener un método más seguro, instale el portal de HIRS ACA en un dispositivo o servidor remoto.
- Descargue e instale Docker Desktop en el sistema que se está probando o en el servidor.
Nota: La ejecución del verificador de ACA en el sistema sometido a prueba se conoce como verificación local y es un modelo de amenaza diferente a la ejecución de ACA en un servidor en red.
- Busque Windows PowerShell, haga clic con el botón secundario, seleccione Ejecutar como administrador, escriba el siguiente comando y, a continuación, presione Entrar.
docker pull ghcr.io/nsacyber/hirs/aca:616fc06 - En Docker, para confirmar que se creó la imagen HIRS ACA, escriba el siguiente comando y presione Intro.
docker images
- En PowerShell, para verificar el repositorio, busque en REPOSITORIO
repository gchr.io/nsacyber/hirs/aca.
- En PowerShell, escriba el siguiente comando y, a continuación, presione Intro.
docker run --name=aca -p 8443:8443 ghcr.io/nsacyber/hirs/aca:616fc06 - En Docker, para confirmar que la imagen del servidor se está ejecutando dentro del contenedor, escriba el siguiente comando y presione Intro.
docker container ls -a - Verifique que
acase muestra en la categoría NOMBRES .
- Abra un navegador y vaya al portal de ACA para verificar que la imagen de Docker esté funcionando. Si ejecuta la verificación local, utilice la dirección IP del host local 127.0.0.1.
Nota:- Si está ejecutando la verificación local, vaya a https://127.0.0.1:8443/HIRS_AttestationCAPortal/
.
- El sitio del portal puede tardar unos minutos en estar en línea.
- Una vez que el sitio del portal esté en línea, es posible que reciba el mensaje "Su conexión no es privada". Este es el comportamiento esperado cuando se ejecuta la verificación local.
- Si está ejecutando la verificación local, vaya a https://127.0.0.1:8443/HIRS_AttestationCAPortal/
Recopilar certificados
- Recopile el certificado de atributo de la plataforma SCV. SCV (en el dispositivo) almacena el certificado en la partición UEFI del disco duro.
- Busque Símbolo del sistema, haga clic con el botón secundario en él y, a continuación, seleccione Ejecutar como administrador.
- Escriba el siguiente comando y, a continuación, presione Intro.
mountvol o: /S - Escriba el siguiente comando y, a continuación, presione Intro.
copy o:\EFI\tcg\cert\platform\*.cer c:\dell\platcert}Nota: Si se adquiere SCV (en la nube), el certificado se encuentra en Dell Trusted Device y no está disponible localmente para la verificación con el ACA de HIRS.
- Recopile el certificado de firma de CA intermedia de Dell.
- Desde la fábrica, el certificado de atributo y el certificado de firma se concatenan dentro del certificado de plataforma SCV y se deben separar antes de que se pueda cargar en el portal de HIRS ACA. Ejecute el siguiente comando desde PowerShell y, a continuación, presione Intro.
PowerShell :> $i=0; Get-Content c:\dell\platcert\*.cer -ReadCount 3 | %{$i++; $_ | Out-File out_$i.crt} - Recopile los nombres de archivo
out_1.crtyout _2.crt.
- Desde la fábrica, el certificado de atributo y el certificado de firma se concatenan dentro del certificado de plataforma SCV y se deben separar antes de que se pueda cargar en el portal de HIRS ACA. Ejecute el siguiente comando desde PowerShell y, a continuación, presione Intro.
- Recolecte el certificado raíz de firma de CA en Soporte para Trusted Device | Controladores y descargas y descarga de Secure Component Validator.
- Recopile los certificados de firma raíz e intermedio de TPM para los modelos de TPM en su entorno desde los siguientes orígenes:
- STMicro: https://www.st.com/resource/en/technical_note/tn1330-st-trusted-platform-module-tpm-endorsement-key-ek-certificates-stmicroelectronics.pdf
- Nuvoton: https://www.nuvoton.com/export/sites/nuvoton/files/security/Nuvoton_TPM_EK_Certificate_Chain.pdfNota: Es posible que un administrador no tenga registros de los modelos de TPM utilizados en el entorno. Si esto ocurre, un administrador puede descargar todos los certificados de firma raíz e intermedio de TPM en los documentos proporcionados para STMicro y Nuvoton.
- STMicro: https://www.st.com/resource/en/technical_note/tn1330-st-trusted-platform-module-tpm-endorsement-key-ek-certificates-stmicroelectronics.pdf
Cargar certificados en el portal de ACA
- Cargue el certificado Dell SCV Platform Attribute (
c:\dell\platcert\out_1.crt) en el portal de la ACA haciendo clic en el signo + de la pestaña Certificados de plataforma .
Nota: Si está ejecutando la verificación local, vaya a https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/certificate-request/platform-credentials.
- Cargue el certificado de firma de CA intermedio de fábrica de Dell (
c:\dell\platcert\out_2.crt), certificado raíz de firma de CA (PROD-CSG-SCV-Root.cer) y certificados de firma raíz de TPM haciendo clic en el signo + junto a Trust Chain CA Certificates en la pestaña Trust Chain Management .
Nota: Si está ejecutando la verificación local, vaya a https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/certificate-request/trust-chain.
Establecer la política de ACA
- Vaya a la pestaña Policy .
- Haga clic en el icono de lápiz y establezca lo siguiente en Habilitado:
- Validación de credenciales de aprobación
- Validación de credenciales de plataforma
- Validación de credenciales de atributo de plataforma
Nota: Si ejecuta la verificación local, vaya a https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/policy.
Descargar e instalar el aprovisionamiento de HIRS
Este paso se debe realizar en cada sistema que contenga un certificado.
- Descargue e instale la versión más reciente de Provisioner desde HIRS Provisioner Releases
.
- En el Explorador de Windows, vaya a
c:\Program Files(x86)\HIRS_Provisioner.NET\plugins\scripts\windows. - Haga clic con el botón secundario en
allcomponents.ps1y seleccione Editar en el Bloc de notas, luego comente la línea 15 agregando el#delante de la línea.Nota: Por ejemplo:#$NVME_SCRIPT="$APP_HOME/nvme.ps1" # For NVMe. - Comente la línea 30 agregando el
#delante de la línea.Nota: Por ejemplo:#. $NVME_SCRIPT. - Reemplace todos los elementos "
### Gather HDD details" (líneas 669-744) con el siguiente texto:### 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(",") }
Ejecutar Provisioner
Haga clic con el botón secundario en Aprovisionador y seleccione Ejecutar como administrador en los sistemas que contienen un certificado.
c:\Program Files(x86)\HIRS_Provisioner.NET\tpm_aca_provision.exe.
Verificar resultados
Consulte la página del portal de Validation Reports ACA para obtener un resultado aprobado.