Un serveur CA TPM device-attest-01 open source
attezt est une suite d'outils d'attestation à distance.
Il fournit plusieurs composants qui permettent aux systèmes Linux de disposer de
certificats de périphérique matériels via le défi ACME device-attest-01. Cela
est utile pour les environnements où vous souhaitez une revendication d'identité
de périphérique forte pour des choses comme les certificats x509 utilisés pour
les configurations mTLS.
Il prend actuellement en charge smallstep, mais dispose également de sa propre
implémentation client pour administrer les certificats de périphérique.
atteztd fournit une autorité de certification d'attestation. Il dispose d'une
API d'inventaire backend capable d'interroger une configuration CMDB pour
l'inventaire des périphériques et de valider les périphériques.
attezt-agent fournit un agent client qui peut servir le certificat TPM via un
agent PKCS11. Cet agent peut être utilisé pour des choses comme mTLS via des
navigateurs afin de certifier l'authenticité.
attezt est le programme permettant de gérer les déploiements de
attezt-agent et atteztd. Il vous permet de vérifier l'enrôlement du
périphérique, de provisionner des certificats. Ou d'administrer l'autorité de
certification d'attestation.
L'ensemble de ce projet est un WIP, je ne sais pas à quel point il sera complet en termes de fonctionnalités.
attezt a besoin d'une chaîne de CA small. Créez-la avec attezt.
λ » attezt ca create
atteztd exécute le serveur d'attestation. Notez que cela signera tous les
certificats capables de résoudre le défi.
λ » atteztd
2025/12/22 23:13:31 HTTP server listening on :8080
Ajoutez le fournisseur dans step-ca.
λ ~ » 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 caPour utiliser ce service avec step ca certificate, vous pouvez exécuter quelque
chose de similaire à ce qui suit.
# 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
Vous pouvez également renouveler un certificat de périphérique.
λ » step ca renew --force --kms "tpmkms" ./device.crt 'tpmkms:name=device'
attezt-agentExécutez 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 exécute la procédure d'enrôlement et acquiert un certificat de
périphérique.
λ » 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
Pour rendre cela visible pour un navigateur, vous devez ajouter
p11-kit-client.so dans la base de données nss, et créer une politique de
navigateur pour le domaine.
λ » 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
Exemple de politique.
# cat /etc/chromium/policies/managed/mtls.json
{
"AutoSelectCertificateForUrls": [
"{\"pattern\":\"https://example.com\",\"filter\":{\"ISSUER\":{\"O\":\"My Internal CA\"}}}"
]
}
Lancez chromium et profitez de vos nouveaux certificats client.
λ » chromium