Como validar certificados de verificação de componentes protegidos (no dispositivo)
Summary: Saiba como validar a integridade de um dispositivo usando o certificado da plataforma e uma plataforma verificadora para verificação de componentes protegidos no dispositivo.
Instructions
A integridade e a autenticidade de um computador Dell podem ser validadas usando a plataforma de certificado e verificador. Isso pode ser feito quando a verificação de componente seguro (no dispositivo) é solicitada com um dispositivo. O Departamento de Defesa dos Estados Unidos (DoD) desenvolveu a plataforma de verificação. A plataforma de verificação é conhecida como a ferramenta de integridade do host em tempo de execução e inicialização (HIRS). A ferramenta HIRS consiste em dois componentes, o portal da Autoridade de Certificação de Atestado (ACA) e o provisionador HIRS. Os itens a seguir devem ser configurados para que o provisionador HIRS verifique os resultados:
- Ferramenta HIRS
- Dispositivo endpoint que executa o Windows 10 ou o Windows 11
- Provisionador HIRS configurado
- Portal ACA
- Assinatura e certificados de plataforma carregados no ACA
- Política definida no ACA para especificar quais partes do dispositivo e do certificado devem ser validadas
Para validar a integridade do dispositivo, é necessário instalar o portal ACA do HIRS, coletar certificados, fazer upload de certificados no portal do ACA, definir a política de ACA, fazer download e instalar o provisionador HIRS, executar o provisionador e verificar os resultados.
Instalar o portal ACA do HIRS
A instalação do portal HIRS ACA no sistema em teste significa que você está executando o atestado localmente. Esse método é provavelmente o modelo de implementação mais fácil, mas não o mais seguro. Para obter um método mais seguro, instale o portal HIRS ACA em um dispositivo ou servidor remoto.
- Faça download do Docker Desktop e instale-o no sistema em teste ou no servidor.
Nota: A execução do verificador ACA no sistema em teste é conhecida como verificação local e é um modelo de ameaça diferente da execução do ACA em um servidor em rede.
- Pesquise o Windows PowerShell, clique com o botão direito nele, selecione Executar como administrador, digite o seguinte comando e pressione Enter.
docker pull ghcr.io/nsacyber/hirs/aca:616fc06 - No Docker, para confirmar se a imagem ACA do HIRS foi criada, digite o seguinte comando e pressione Enter.
docker images
- No PowerShell, para verificar o repositório, verifique em REPOSITÓRIO se
repository gchr.io/nsacyber/hirs/aca.
- No PowerShell, digite o seguinte comando e pressione Enter.
docker run --name=aca -p 8443:8443 ghcr.io/nsacyber/hirs/aca:616fc06 - No Docker, para confirmar se a imagem do servidor está sendo executada no contêiner, digite o seguinte comando e pressione Enter.
docker container ls -a - Verifique se
acaé mostrado na categoria NOMES .
- Abra um navegador e acesse o Portal ACA para verificar se a imagem do Docker está funcionando. Se estiver executando a verificação local, use o endereço IP do host local 127.0.0.1.
Nota:- Se estiver executando a verificação local, vá para https://127.0.0.1:8443/HIRS_AttestationCAPortal/
.
- Pode levar alguns minutos para que o site do portal fique on-line.
- Quando o site do portal estiver on-line, você poderá receber uma mensagem "Sua conexão não é privada". Esse é o comportamento esperado ao executar a verificação local.
- Se estiver executando a verificação local, vá para https://127.0.0.1:8443/HIRS_AttestationCAPortal/
Coletar certificados
- Colete o certificado de atributo da plataforma SCV. O SCV (on Device, no dispositivo) armazena o certificado na partição UEFI do disco rígido.
- Procure o Prompt de Comando, clique nele com o botão direito e selecione Executar como administrador.
- Digite o comando a seguir e pressione Enter.
mountvol o: /S - Digite o comando a seguir e pressione Enter.
copy o:\EFI\tcg\cert\platform\*.cer c:\dell\platcert}Nota: Se o SCV (on Cloud) for adquirido, o certificado está no Dell Trusted Device e não está disponível localmente para verificação com o ACA do HIRS.
- Colete o certificado de assinatura da CA intermediária da Dell.
- Na fábrica, o certificado de atributo e o certificado de assinatura são concatenados no certificado da plataforma SCV e devem ser separados antes de poderem ser carregados no portal ACA do HIRS. Execute o seguinte comando no PowerShell e pressione Enter.
PowerShell :> $i=0; Get-Content c:\dell\platcert\*.cer -ReadCount 3 | %{$i++; $_ | Out-File out_$i.crt} - Coletar os nomes de arquivos
out_1.crteout _2.crt.
- Na fábrica, o certificado de atributo e o certificado de assinatura são concatenados no certificado da plataforma SCV e devem ser separados antes de poderem ser carregados no portal ACA do HIRS. Execute o seguinte comando no PowerShell e pressione Enter.
- Colete o certificado raiz de assinatura da CA acessando Suporte para Trusted Device | Drivers e downloads e download do Secure Component Validator.
- Colete os certificados de assinatura raiz e intermediários do TPM para os modelos TPM em seu ambiente das seguintes origens:
- 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: Um administrador pode não ter registros dos modelos TPM usados no ambiente. Se isso ocorrer, um administrador poderá fazer download de todos os certificados de assinatura raiz e intermediários do TPM nos documentos fornecidos para STMicro e Nuvoton.
- STMicro: https://www.st.com/resource/en/technical_note/tn1330-st-trusted-platform-module-tpm-endorsement-key-ek-certificates-stmicroelectronics.pdf
Carregar certificados no Portal ACA
- Carregue o certificado de atributo da plataforma Dell SCV (
c:\dell\platcert\out_1.crt) no portal ACA, clicando no sinal + na guia Certificados da plataforma .
Nota: Se estiver executando a verificação local, vá para https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/certificate-request/platform-credentials.
- Carregue o certificado de assinatura da CA intermediária de fábrica da Dell (
c:\dell\platcert\out_2.crt), certificado raiz de assinatura da CA (PROD-CSG-SCV-Root.cer) e certificados de assinatura raiz do TPM clicando no sinal + ao lado de Trust Chain CA Certificates na guia Trust Chain Management .
Nota: Se estiver executando a verificação local, vá para https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/certificate-request/trust-chain.
Definir a política de ACA
- Vá para a guia Policy .
- Clique no ícone de lápis e defina o seguinte como Enabled:
- Validação da credencial de endosso
- Validação de credenciais da plataforma
- Validação da credencial do atributo da plataforma
Nota: Se estiver executando a verificação local, vá para https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/policy.
Fazer download e instalar o provisionador HIRS
Essa etapa deve ser executada em cada sistema que contenha um certificado.
- Faça download e instale a versão mais recente do Provisioner nas versões
do HIRS Provisioner.
- No Windows Explorer, vá para
c:\Program Files(x86)\HIRS_Provisioner.NET\plugins\scripts\windows. - Clique com o botão direito em
allcomponents.ps1selecione Edit no bloco de notas e, em seguida, comente a linha 15 adicionando o#símbolo na frente da linha.Nota: Por exemplo,#$NVME_SCRIPT="$APP_HOME/nvme.ps1" # For NVMe. - Comente a linha 30 adicionando o
#símbolo na frente da linha.Nota: Por exemplo,#. $NVME_SCRIPT. - Substitua todos os "
### Gather HDD details" (linhas 669-744) com o texto abaixo:### 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(",") }
Executar provisionador
Clique com o botão direito do mouse em Provisioner e selecione Run as administrator nos sistemas que contêm um certificado.
c:\Program Files(x86)\HIRS_Provisioner.NET\tpm_aca_provision.exe.
Verificar resultados
Verifique a página do portal ACA de relatórios de validação para obter um resultado aprovado.