Validation des certificats Secured Component Verification (sur l’appareil)
Summary: Découvrez comment valider l’intégrité d’un appareil à l’aide du certificat de plate-forme et d’une plate-forme de vérification des composants sécurisés sur l’appareil.
Instructions
L’intégrité et l’authenticité d’un ordinateur Dell peuvent être validées à l’aide du certificat et du vérificateur de la plateforme. Cela peut être effectué lorsque la vérification des composants sécurisés (sur l’appareil) est commandée avec un appareil. Le département de la Défense des États-Unis (DoD) a développé la plate-forme de vérification. La plate-forme de vérification est connue sous le nom d’outil HIRS (Host Integrity at Runtime and Start-up). L’outil HIRS se compose de deux composants, le portail ACA (Attestation Certificate Authority) et le provisionneur HIRS. Les éléments suivants doivent être configurés pour que le provisionneur HIRS vérifie les résultats :
- Outil HIRS
- Point de terminaison exécutant Windows 10 ou Windows 11
- Provisionnement HIRS configuré
- Portail ACA
- Signature et certificats de plate-forme téléchargés dans l’ACA
- Stratégie définie dans l’ACA pour spécifier les parties de l’appareil et du certificat qui doivent être validées
Pour valider l’intégrité de l’appareil, vous devez installer le portail ACA HIRS, collecter les certificats, télécharger les certificats sur le portail ACA, définir la stratégie ACA, télécharger et installer le provisionneur HIRS, exécuter Provisioner, puis vérifier les résultats.
Installer le portail ACA HIRS
L’installation du portail ACA HIRS sur le système testé signifie que vous exécutez l’attestation localement. Cette méthode est probablement le modèle de déploiement le plus simple, mais pas la plus sécurisée. Pour une méthode plus sécurisée, installez le portail ACA HIRS sur un appareil ou un serveur distant.
- Téléchargez et installez Docker Desktop sur le système en cours de test ou sur le serveur.
Remarque : L’exécution du vérificateur ACA sur le système testé est connue sous le nom de vérification locale et constitue un modèle de menace différent de l’exécution de l’ACA sur un serveur en réseau.
- Recherchez Windows PowerShell, cliquez dessus avec le bouton droit de la souris, sélectionnez Exécuter en tant qu’administrateur, saisissez la commande suivante, puis appuyez sur Entrée.
docker pull ghcr.io/nsacyber/hirs/aca:616fc06 - Dans Docker, pour confirmer que l’image ACA HIRS a été créée, saisissez la commande suivante, puis appuyez sur Entrée.
docker images
- Dans PowerShell, pour vérifier le référentiel, vérifiez sous RÉFÉRENTIEL
repository gchr.io/nsacyber/hirs/aca.
- Dans PowerShell, saisissez la commande suivante, puis appuyez sur Entrée.
docker run --name=aca -p 8443:8443 ghcr.io/nsacyber/hirs/aca:616fc06 - Dans Docker, pour confirmer que l’image du serveur s’exécute dans le conteneur, saisissez la commande suivante, puis appuyez sur Entrée.
docker container ls -a - Vérifiez que :
acas’affiche dans la catégorie NOMS .
- Ouvrez un navigateur et accédez au portail ACA pour vérifier que l’image Docker fonctionne. Si vous exécutez la vérification locale, utilisez l’adresse IP de l’hôte local 127.0.0.1.
Remarque :- Si vous exécutez la vérification locale, accédez à https://127.0.0.1:8443/HIRS_AttestationCAPortal/
.
- La mise en ligne du site du portail peut prendre quelques minutes.
- Une fois le site du portail en ligne, vous pouvez recevoir un message « Votre connexion n’est pas privée ». Il s’agit d’un comportement normal lors de l’exécution de la vérification locale.
- Si vous exécutez la vérification locale, accédez à https://127.0.0.1:8443/HIRS_AttestationCAPortal/
Collecter des certificats
- Collectez le certificat d’attribut de plate-forme SCV. SCV (on Device) stocke le certificat sur la partition UEFI du disque dur.
- Recherchez Invite de commandes, cliquez dessus avec le bouton droit de la souris, puis sélectionnez Exécuter en tant qu’administrateur.
- Saisissez la commande suivante, puis appuyez sur Entrée.
mountvol o: /S - Saisissez la commande suivante, puis appuyez sur Entrée.
copy o:\EFI\tcg\cert\platform\*.cer c:\dell\platcert}Remarque : En cas d’achat de SCV (sur le Cloud), le certificat se trouve dans Dell Trusted Device et n’est pas disponible en local pour vérification avec l’ACA HIRS.
- Collectez le certificat de signature de l’autorité de certification intermédiaire Dell.
- En usine, le certificat d’attribut et le certificat de signature sont concaténés dans le certificat de la plate-forme SCV et doivent être séparés avant de pouvoir être téléchargés sur le portail ACA HIRS. Exécutez la commande suivante à partir de PowerShell, puis appuyez sur Entrée.
PowerShell :> $i=0; Get-Content c:\dell\platcert\*.cer -ReadCount 3 | %{$i++; $_ | Out-File out_$i.crt} - Collecter les noms de fichier
out_1.crtetout _2.crt.
- En usine, le certificat d’attribut et le certificat de signature sont concaténés dans le certificat de la plate-forme SCV et doivent être séparés avant de pouvoir être téléchargés sur le portail ACA HIRS. Exécutez la commande suivante à partir de PowerShell, puis appuyez sur Entrée.
- Collectez le certificat racine de signature de l’autorité de certification en accédant à Support pour Trusted Device | Pilotes et téléchargements et téléchargement de Secure Component Validator.
- Collectez les certificats de signature racine et intermédiaire du module TPM pour les modèles TPM de votre environnement à partir des sources suivantes :
- 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.pdfRemarque : Un administrateur ne dispose peut-être pas d’enregistrements des modèles TPM utilisés dans l’environnement. Si cela se produit, un administrateur peut télécharger tous les certificats de signature racine et intermédiaire du module TPM dans les documents fournis pour STMicro et Nuvoton.
- STMicro : https://www.st.com/resource/en/technical_note/tn1330-st-trusted-platform-module-tpm-endorsement-key-ek-certificates-stmicroelectronics.pdf
Télécharger des certificats sur le portail ACA
- Chargez le certificat d’attribut de plate-forme Dell SCV (
c:\dell\platcert\out_1.crt) dans le portail ACA en cliquant sur le signe + de l’onglet Certificats de plate-forme .
Remarque : Si vous exécutez une vérification locale, accédez à https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/certificate-request/platform-credentials.
- Chargez le certificat de signature de l’autorité de certification intermédiaire en usine Dell (
c:\dell\platcert\out_2.crt), le certificat racine de signature de l’autorité de certification (PROD-CSG-SCV-Root.cer) et les certificats de signature racine TPM en cliquant sur le signe + en regard de Certificats d’autorité de certification de la chaîne de confiance dans l’onglet Gestion de la chaîne d’approbation .
Remarque : Si vous exécutez la vérification locale, accédez à https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/certificate-request/trust-chain.
Définir la règle ACA
- Accédez à l’onglet Stratégie .
- Cliquez sur l’icône en forme de crayon et définissez les éléments suivants sur Activé :
- Validation des informations d’identification de validation
- Validation des informations d’identification de plateforme
- Validation des informations d’identification des attributs de plate-forme
Remarque : Si vous exécutez la vérification locale, accédez à https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/policy.
Télécharger et installer le provisionneur HIRS
Cette étape doit être effectuée sur chaque système contenant un certificat.
- Téléchargez et installez la dernière version de Provisioner à partir des versions
de HIRS Provisioner.
- Dans l’Explorateur Windows, accédez à
c:\Program Files(x86)\HIRS_Provisioner.NET\plugins\scripts\windows. - Cliquez avec le bouton droit de la souris sur
allcomponents.ps1et sélectionnez Modifier dans le Bloc-notes, puis commentez la ligne 15 en ajoutant le#devant la ligne.Remarque : Par exemple :#$NVME_SCRIPT="$APP_HOME/nvme.ps1" # For NVMe. - Mettez en commentaire la ligne 30 en ajoutant l’icône
#devant la ligne.Remarque : Par exemple :#. $NVME_SCRIPT. - Remplacez tous les "
### Gather HDD details» (lignes 669-744) avec le texte ci-dessous :### 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(",") }
Exécuter le provisionneur
Cliquez avec le bouton droit de la souris sur Provisionneur et sélectionnez Exécuter en tant qu’administrateur sur les systèmes qui contiennent un certificat.
c:\Program Files(x86)\HIRS_Provisioner.NET\tpm_aca_provision.exe.
Vérifier les résultats
Vérifiez la page Validation Reports du portail ACA pour obtenir un résultat satisfaisant.