Validieren von Zertifikaten für die gesicherte Komponentenverifizierung (auf dem Gerät)
Summary: Erfahren Sie, wie Sie die Integrität eines Geräts mithilfe des Plattformzertifikats und einer Verifizierungsplattform für die gesicherte Komponentenüberprüfung auf dem Gerät validieren können. ...
Instructions
Die Integrität und Authentizität eines Dell Computers kann mithilfe des Plattformzertifikats und der Verifizierungsplattform validiert werden. Dies kann erreicht werden, wenn Secured Component Verification (On Device) für ein Gerät bestellt wird. Das US-Verteidigungsministerium (DoD) hat die Verifizierungsplattform entwickelt. Die Verifiziererplattform wird als HIRS-Tool (Host Integrity at Runtime and Start-up) bezeichnet. Das HIRS-Tool besteht aus zwei Komponenten, dem ACA-Portal (Attestation Certificate Authority) und dem HIRS-Provisioner. Folgendes muss für den HIRS-Bereitsteller eingerichtet werden, um die Ergebnisse zu überprüfen:
- HIRS-Tool
- Endgerät mit Windows 10 oder Windows 11
- HIRS-Provisioner konfiguriert
- ACA-Portal
- Hochladen von Signatur- und Plattformzertifikaten in den ACA
- In der ACA festgelegte Richtlinie, die festlegt, welche Teile des Produkts und des Zertifikats validiert werden sollen
Die Validierung der Geräteintegrität erfordert, dass Sie das HIRS ACA-Portal installieren, Zertifikate sammeln, Zertifikate in das ACA-Portal hochladen, die ACA-Richtlinie festlegen, den HIRS Provisioner herunterladen und installieren, Provisioner ausführen und dann die Ergebnisse überprüfen.
Installieren des HIRS ACA-Portals
Wenn Sie das HIRS ACA-Portal auf dem zu testenden System installieren, führen Sie die Bescheinigung lokal aus. Diese Methode ist wahrscheinlich das einfachste Bereitstellungsmodell, aber nicht das sicherste. Für eine sicherere Methode installieren Sie das HIRS ACA-Portal auf einem Remotegerät oder -server.
- Laden Sie Docker Desktop herunter und installieren Sie es auf dem zu testenden System oder Server.
Hinweis: Das Ausführen des ACA-Verifizierers auf dem zu testenden System wird als lokale Überprüfung bezeichnet und ist ein anderes Bedrohungsmodell als das Ausführen des ACA auf einem vernetzten Server.
- Suchen Sie nach Windows PowerShell, klicken Sie mit der rechten Maustaste darauf, wählen Sie Als Administrator ausführen aus, geben Sie den folgenden Befehl ein und drücken Sie dann die Eingabetaste.
docker pull ghcr.io/nsacyber/hirs/aca:616fc06 - Um in Docker zu bestätigen, dass das HIRS ACA-Image erstellt wurde, geben Sie den folgenden Befehl ein und drücken Sie dann die Eingabetaste.
docker images
- Um das Repository in PowerShell zu überprüfen, suchen Sie unter REPOSITORY nach
repository gchr.io/nsacyber/hirs/aca.
- Geben Sie in PowerShell den folgenden Befehl ein und drücken Sie dann die Eingabetaste.
docker run --name=aca -p 8443:8443 ghcr.io/nsacyber/hirs/aca:616fc06 - Um in Docker zu bestätigen, dass das Server-Image im Container ausgeführt wird, geben Sie den folgenden Befehl ein und drücken Sie dann die Eingabetaste.
docker container ls -a - Überprüfen Sie, ob
acawird unter der Kategorie NAMEN angezeigt.
- Öffnen Sie einen Browser und navigieren Sie zum ACA-Portal, um zu überprüfen, ob das Docker-Image funktioniert. Wenn Sie eine lokale Überprüfung ausführen, verwenden Sie die lokale Host-IP-Adresse 127.0.0.1.
Hinweis:- Wenn Sie eine lokale Überprüfung ausführen, wechseln Sie zu https://127.0.0.1:8443/HIRS_AttestationCAPortal/
.
- Es kann einige Minuten dauern, bis die Portalwebsite online ist.
- Sobald die Portalwebsite online ist, erhalten Sie möglicherweise die Meldung "Ihre Verbindung ist nicht privat". Dies ist das erwartete Verhalten bei der Ausführung der lokalen Überprüfung.
- Wenn Sie eine lokale Überprüfung ausführen, wechseln Sie zu https://127.0.0.1:8443/HIRS_AttestationCAPortal/
Zertifikate sammeln
- Erfassen Sie das SCV-Plattformattributzertifikat. SCV (auf dem Gerät) speichert das Zertifikat auf der UEFI-Partition der Festplatte.
- Suchen Sie nach der Eingabeaufforderung, klicken Sie mit der rechten Maustaste darauf und wählen Sie dann Als Administrator ausführen aus.
- Geben Sie den folgenden Befehl ein und drücken Sie dann die Eingabetaste.
mountvol o: /S - Geben Sie den folgenden Befehl ein und drücken Sie dann die Eingabetaste.
copy o:\EFI\tcg\cert\platform\*.cer c:\dell\platcert}Hinweis: Wenn SCV (on Cloud) erworben wird, befindet sich das Zertifikat auf dem Dell Trusted-Device und ist nicht lokal für die Überprüfung mit dem HIRS ACA verfügbar.
- Erfassen Sie das Dell Signierungszertifikat der Zwischenzertifizierungsstelle.
- Ab Werk werden das Attributzertifikat und das Signaturzertifikat innerhalb des SCV-Plattformzertifikats verkettet und müssen getrennt werden, bevor es in das HIRS ACA-Portal hochgeladen werden kann. Führen Sie den folgenden Befehl in PowerShell aus und drücken Sie dann die Eingabetaste.
PowerShell :> $i=0; Get-Content c:\dell\platcert\*.cer -ReadCount 3 | %{$i++; $_ | Out-File out_$i.crt} - Sammeln Sie die Dateinamen
out_1.crtundout _2.crt.
- Ab Werk werden das Attributzertifikat und das Signaturzertifikat innerhalb des SCV-Plattformzertifikats verkettet und müssen getrennt werden, bevor es in das HIRS ACA-Portal hochgeladen werden kann. Führen Sie den folgenden Befehl in PowerShell aus und drücken Sie dann die Eingabetaste.
- Erfassen Sie das von der Zertifizierungsstelle signierte Stammzertifikat, indem Sie zu Support für vertrauenswürdige Geräte | Treiber und Downloads sowie Herunterladen des Secure Component Validators.
- Erfassen Sie die TPM-Stamm- und Zwischensignaturzertifikate für die TPM-Modelle in Ihrer Umgebung aus den folgenden Quellen:
- 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.pdfHinweis: Ein Administrator verfügt möglicherweise nicht über Aufzeichnungen über die in der Umgebung verwendeten TPM-Modelle. In diesem Fall kann ein Administrator alle TPM-Stamm- und Zwischensignaturzertifikate in den bereitgestellten Dokumenten für STMicro und Nuvoton herunterladen.
- STMicro: https://www.st.com/resource/en/technical_note/tn1330-st-trusted-platform-module-tpm-endorsement-key-ek-certificates-stmicroelectronics.pdf
Zertifikate in das ACA-Portal hochladen
- Laden des Dell SCV-Plattformattributzertifikats (
c:\dell\platcert\out_1.crt) in das ACA-Portal, indem Sie auf der Registerkarte Plattformzertifikate auf das +-Zeichen klicken.
Hinweis: Wenn Sie eine lokale Überprüfung ausführen, wechseln Sie zu https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/certificate-request/platform-credentials.
- Laden des Dell Factory-Zwischen-CA-Signaturzertifikats (
c:\dell\platcert\out_2.crt), CA-signiertes Stammzertifikat (PROD-CSG-SCV-Root.cer) und TPM-Stammsignaturzertifikate, indem Sie auf der Registerkarte Trust Chain Management neben Trust Chain CA Certificates auf das + -Zeichen klicken.
Hinweis: Wenn Sie eine lokale Überprüfung ausführen, wechseln Sie zu https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/certificate-request/trust-chain.
Festlegen der ACA-Richtlinie
- Navigieren Sie zur Registerkarte Policy .
- Klicken Sie auf das Bleistiftsymbol und setzen Sie Folgendes auf Enabled:
- Validierung von Endorsement-Zugangsdaten
- Validierung von Plattformanmeldedaten
- Validierung von Zugangsdaten für Plattformattribute
Hinweis: Wenn Sie eine lokale Überprüfung ausführen, fahren Sie mit https://127.0.0.1:8443/HIRS_AttestationCAPortal/portal/policyfort.
Herunterladen und Installieren des HIRS Provisioner
Dieser Schritt muss auf jedem System durchgeführt werden, das ein Zertifikat enthält.
- Laden Sie die neueste Version von Provisioner von HIRS Provisioner Releases
herunter und installieren Sie sie.
- Navigieren Sie im Windows Explorer zu
c:\Program Files(x86)\HIRS_Provisioner.NET\plugins\scripts\windows. - Klicken Sie mit der rechten Maustaste auf
allcomponents.ps1, wählen Sie In Notepad bearbeiten und kommentieren Sie dann Zeile 15 aus, indem Sie das#Symbol vor der Zeile.Hinweis: Zum Beispiel:#$NVME_SCRIPT="$APP_HOME/nvme.ps1" # For NVMe. - Kommentieren Sie Zeile 30 aus, indem Sie das
#Symbol vor der Zeile.Hinweis: Zum Beispiel:#. $NVME_SCRIPT. - Ersetzen Sie alle "
### Gather HDD details" (Zeilen 669-744) mit folgendem Text:### 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 ausführen
Klicken Sie mit der rechten Maustaste auf Provisioner und wählen Sie Run as administrator auf den Systemen aus, die ein Zertifikat enthalten.
c:\Program Files(x86)\HIRS_Provisioner.NET\tpm_aca_provision.exe.
Überprüfen der Ergebnisse
Überprüfen Sie die Seite des ACA-Portals für Validierungsberichte , ob das Ergebnis bestanden wurde.