Come convalidare i certificati Secured Component Verification (on Device)
Summary: Informazioni su come convalidare l'integrità di un dispositivo utilizzando il certificato della piattaforma e una piattaforma di verifica per la verifica dei componenti protetti sul dispositivo. ...
Instructions
L'integrità e l'autenticità di un computer Dell possono essere convalidate utilizzando il certificato della piattaforma e la piattaforma di verifica. Questa operazione può essere eseguita quando la verifica dei componenti protetti (sul dispositivo) viene ordinata con un dispositivo. Il Dipartimento della Difesa degli Stati Uniti (DoD) ha sviluppato la piattaforma di verifica. La piattaforma di verifica è nota come strumento HIRS (Host Integrity at Runtime and Start-up). Lo strumento HIRS è costituito da due componenti, il portale ACA (Attestation Certificate Authority) e il provisioner HIRS. Per consentire al provisioner HIRS di verificare i risultati, è necessario configurare quanto segue:
- Strumento HIRS
- Dispositivo endpoint che esegue Windows 10 o Windows 11
- Provisioner HIRS configurato
- Portale ACA
- Certificati di piattaforma e firma caricati nell'ACA
- Policy impostata all'interno dell'ACA per specificare quali parti del dispositivo e del certificato devono essere convalidate
La convalida dell'integrità del dispositivo richiede l'installazione del portale HIRS ACA, la raccolta dei certificati, l'upload dei certificati nel portale ACA, l'impostazione dei criteri ACA, il download e l'installazione del provisioner HIRS, l'esecuzione delprovisioner, quindi la verifica dei risultati.
Installazione del portale HIRS ACA
L'installazione del portale HIRS ACA sul sistema sottoposto a test significa che l'attestazione viene eseguita localmente. Questo metodo è probabilmente il modello di distribuzione più semplice, ma non il più sicuro. Per un metodo più sicuro, installare il portale HIRS ACA su un dispositivo o server remoto.
- Scaricare e installare Docker Desktop sul sistema in fase di test o sul server.
Nota: L'esecuzione del verificatore ACA sul sistema sottoposto a test è nota come verifica locale ed è un modello di minaccia diverso rispetto all'esecuzione dell'ACA su un server di rete.
- Cercare Windows PowerShell, cliccare con il pulsante destro del mouse, selezionare Esegui come amministratore, digitare il seguente comando e premere Invio.
docker pull ghcr.io/nsacyber/hirs/aca:616fc06 - In Docker, per confermare la creazione dell'immagine HIRS ACA, digitare il seguente comando, quindi premere Invio.
docker images
- In PowerShell, per verificare il repository, controllare in REPOSITORY
repository gchr.io/nsacyber/hirs/aca.
- In PowerShell digitare il seguente comando, quindi premere Invio.
docker run --name=aca -p 8443:8443 ghcr.io/nsacyber/hirs/aca:616fc06 - In Docker, per verificare che l'immagine del server sia in esecuzione all'interno del container, digitare il seguente comando, quindi premere Enter.
docker container ls -a - Verificare che
acaviene visualizzato nella categoria NOMI .
- Aprire un browser e accedere al portale ACA per verificare che l'immagine Docker funzioni. Se si esegue la verifica locale, utilizzare l'indirizzo IP del local host 127.0.0.1.
Nota:- Se stai eseguendo la verifica locale, vai su https://127.0.0.1:8443/HIRS_AttestationCAPortal/
.
- Potrebbero essere necessari alcuni minuti prima che il sito del portale sia online.
- Una volta che il sito del portale è online, è possibile che venga visualizzato il messaggio "La connessione non è privata". Si tratta di un comportamento previsto durante l'esecuzione della verifica locale.
- Se stai eseguendo la verifica locale, vai su https://127.0.0.1:8443/HIRS_AttestationCAPortal/
Raccolta dei certificati
- Raccogliere il certificato dell'attributo della piattaforma SCV. SCV (on Device) archivia il certificato nella partizione UEFI del disco rigido.
- Cercare Prompt dei comandi, cliccare con il pulsante destro del mouse su di esso, quindi scegliere Esegui come amministratore.
- Digitare il seguente comando, quindi premere Invio.
mountvol o: /S - Digitare il seguente comando, quindi premere Invio.
copy o:\EFI\tcg\cert\platform\*.cer c:\dell\platcert}Nota: Se si acquista SCV (on Cloud), il certificato si trova in Dell Trusted Device e non è disponibile localmente per la verifica con l'ACA HIRS.
- Raccogliere il certificato di firma della CA intermedia Dell.
- Dalla fabbrica, il certificato di attributo e il certificato di firma sono concatenati all'interno del certificato della piattaforma SCV e devono essere separati prima di poter essere caricati nel portale HIRS ACA. Eseguire il seguente comando da PowerShell e premere Invio.
PowerShell :> $i=0; Get-Content c:\dell\platcert\*.cer -ReadCount 3 | %{$i++; $_ | Out-File out_$i.crt} - Raccogliere i nomi dei file
out_1.crteout _2.crt.
- Dalla fabbrica, il certificato di attributo e il certificato di firma sono concatenati all'interno del certificato della piattaforma SCV e devono essere separati prima di poter essere caricati nel portale HIRS ACA. Eseguire il seguente comando da PowerShell e premere Invio.
- Raccogliere il certificato radice di firma CA accedendo a Supporto per Trusted Device | Driver e download e download di Secure Component Validator.
- Raccogliere i certificati di firma root e intermedia del TPM per i modelli TPM nell'ambiente dalle seguenti origini:
- 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: Un amministratore potrebbe non disporre dei record dei modelli TPM utilizzati nell'ambiente. In questo caso, un amministratore può scaricare tutti i certificati di firma root e intermedia del TPM nei documenti forniti per STMicro e Nuvoton.
- STMicro: https://www.st.com/resource/en/technical_note/tn1330-st-trusted-platform-module-tpm-endorsement-key-ek-certificates-stmicroelectronics.pdf
Caricamento dei certificati nel portale ACA
- Caricare il certificato dell'attributo della piattaforma SCV Dell (
c:\dell\platcert\out_1.crt) nel portale ACA facendo clic sul segno + nella scheda Certificati della piattaforma .
Nota: Se si esegue la verifica locale, passare a https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/certificate-request/platform-credentials.
- Caricamento del certificato di firma CA intermedio di fabbrica Dell (
c:\dell\platcert\out_2.crt), il certificato radice di firma CA (PROD-CSG-SCV-Root.cer) e i certificati di firma root TPM cliccando sul segno + accanto a Trust Chain CA Certificates nella scheda Trust Chain Management .
Nota: Se si esegue la verifica locale, passare a https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/certificate-request/trust-chain.
Impostazione dei criteri ACA
- Passare alla scheda Policy .
- Cliccare sull'icona a forma di matita e impostare quanto segue su Enabled:
- Convalida delle credenziali di approvazione
- Convalida delle credenziali della piattaforma
- Convalida delle credenziali degli attributi della piattaforma
Nota: Se si esegue la verifica locale, passare a https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/policy.
Download e installazione di HIRS Provisioner
Questo passaggio deve essere eseguito su ogni sistema che contiene un certificato.
- Scaricare e installare la versione più recente di Provisioner dalle versioni
di HIRS Provisioner.
- Da Esplora risorse, accedere a
c:\Program Files(x86)\HIRS_Provisioner.NET\plugins\scripts\windows. - Cliccare con il tasto destro del mouse
allcomponents.ps1e seleziona Modifica in Blocco note, quindi commenta la riga 15 aggiungendo il#simbolo davanti alla linea.Nota: Esempio:#$NVME_SCRIPT="$APP_HOME/nvme.ps1" # For NVMe. - Commentare la riga 30 aggiungendo il tag
#simbolo davanti alla linea.Nota: Esempio:#. $NVME_SCRIPT. - Sostituisci tutto "
### Gather HDD details" (righe 669-744) con il testo seguente:### 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(",") }
Esecuzione del provisioning
Cliccare con il pulsante destro del mouse su Provisioner e selezionare Run as administrator nei sistemi che contengono un certificato.
c:\Program Files(x86)\HIRS_Provisioner.NET\tpm_aca_provision.exe.
Verifica risultati
Controllare la pagina del portale ACA dei report di convalida per un risultato positivo.