
Ein quelloffener TPM device-attest-01 CA-Server
attezt ist eine Sammlung von Werkzeugen für Remote-Attestierung.
Es stellt mehrere Komponenten bereit, die es Linux-Systemen ermöglichen, hardwaregestützte Gerätezertifikate über die ACME-Challenge device-attest-01 zu erhalten. Dies ist nützlich für Umgebungen, in denen eine starke Geräteidentität für Dinge wie x509-Zertifikate in mTLS-Setups benötigt wird.
Derzeit wird smallstep unterstützt, es gibt aber auch eine eigene Client-Implementierung zur Verwaltung von Gerätezertifikaten.
atteztd stellt eine Attestation Certificate Authority bereit. Es verfügt über eine Backend-Inventar-API, die ein CMDB-Setup für das Geräteinventar abfragen und Geräte validieren kann.
attezt-agent stellt einen Client-Agent bereit, der das TPM-Zertifikat über einen PKCS11-Agent bereitstellen kann. Dieser Agent kann für Dinge wie mTLS über Browser verwendet werden, um die Authentizität zu bescheinigen.
attezt ist das Programm zur Verwaltung von attezt-agent- und atteztd-Deployments. Es ermöglicht die Überprüfung der Registrierung des Geräts, die Bereitstellung von Zertifikaten oder die Verwaltung der Attestation Certificate Authority.
Dieses gesamte Projekt ist ein WIP, es ist unklar, wie vollständig es sein wird.
attezt benötigt eine kleine CA-Kette. Erstellen Sie diese mit attezt.
λ » attezt ca create
atteztd betreibt den Attestierungsserver. Beachten Sie, dass dieser alle Zertifikate signiert, die in der Lage sind, die Challenge zu lösen.
λ » atteztd
2025/12/22 23:13:31 HTTP server listening on :8080
Fügen Sie den Provider in step-ca ein.
λ ~ » curl -O http://127.0.0.1:8080/root.pem
λ ~ » step ca provisioner add acme-da \
--type ACME \
--challenge device-attest-01 \
--attestation-format tpm \
--attestation-roots ./root.pem
step ca ausstellenUm diesen Dienst mit step ca certificate zu nutzen, können Sie etwas Ähnliches wie das Folgende ausführen.
# Device certificate attested by ak
λ » step ca certificate \
--attestation-ca-url 'http://127.0.0.1:8080' \
--attestation-uri 'tpmkms:name=device' \
--provisioner acme-da $(hostname) device.crt device.crt
Sie können ein Gerätezertifikat auch erneuern.
λ » step ca renew --force --kms "tpmkms" ./device.crt 'tpmkms:name=device'
attezt-agentStarten Sie den attezt-agent.
λ » sudo attezt-agent
2026/03/15 16:33:55 p11kit-server is running
2026/03/15 16:33:55 export P11_KIT_SERVER_ADDRESS=unix:path=/run/attezt/p11kit.socket
2026/03/15 16:33:55 varlink service is running
2026/03/15 16:33:55 Running at: /run/attezt/dev.attezt.Agent
enroll führt das Registrierungsverfahren durch und erwirbt ein Gerätezertifikat.
λ » attezt status
Status:
Endorsement Key: 2ea8888a4a935bfd418e6a700785655b0d2711abc52e71f1dbeeee03e9650396
Enrollment status: false
λ » attezt enroll --acme "https://ca.home.arpa/acme/acme-da" --attestation "http://attezt.local:8080"
λ » attezt status
Status:
Endorsement Key: 2ea8888a4a935bfd418e6a700785655b0d2711abc52e71f1dbeeee03e9650396
Enrollment status: true
ACME Server: https://ca.home.arpa/acme/acme-da
Attestation Server: http://attezt.local:8080
Certificate chain:
X.509v3 TLS Certificate (RSA 2048) [Serial: 1433...6348]
Subject: framework
Issuer: Linderud Internal CA Intermediate CA
Provisioner: acme-da
Valid from: 2026-03-15T15:35:31Z
to: 2026-03-16T15:35:31Z
X.509v3 Intermediate CA Certificate (ECDSA P-256) [Serial: 3050...3071]
Subject: Linderud Internal CA Intermediate CA
Issuer: Linderud Internal CA Root CA
Valid from: 2026-01-03T15:15:45Z
to: 2036-01-01T15:15:45Z
Um dies für einen Browser sichtbar zu machen, müssen Sie die p11-kit-client.so in die nss-Datenbank einfügen und eine Browser-Richtlinie für die Domain erstellen.
λ » modutil -dbdir ~/.pki/nssdb -add attezt -libfile /usr/lib/pkcs11/p11-kit-client.so
λ » export P11_KIT_SERVER_ADDRESS=unix:path=/run/attezt/p11kit.sock
Beispielrichtlinie.
# cat /etc/chromium/policies/managed/mtls.json
{
"AutoSelectCertificateForUrls": [
"{\"pattern\":\"https://example.com\",\"filter\":{\"ISSUER\":{\"O\":\"My Internal CA\"}}}"
]
}
Starten Sie chromium und genießen Sie Ihre neuen Client-Zertifikate.
λ » chromium