
एक ओपन-सोर्स TPM device-attest-01 CA सर्वर
attezt रिमोट अटेस्टेशन टूल्स का एक सूट है।
यह कई घटक प्रदान करता है जो Linux सिस्टम को device-attest-01 ACME चैलेंज के माध्यम से हार्डवेयर समर्थित डिवाइस प्रमाणपत्र रखने की अनुमति देते हैं। यह उन वातावरणों के लिए उपयोगी है जहाँ आप mTLS सेटअप के लिए उपयोग किए जाने वाले x509 प्रमाणपत्रों जैसी चीज़ों के लिए मजबूत डिवाइस पहचान दावा चाहते हैं।
यह वर्तमान में smallstep का समर्थन करता है, लेकिन डिवाइस प्रमाणपत्रों के प्रबंधन के लिए इसका अपना क्लाइंट कार्यान्वयन भी है।
atteztd एक अटेस्टेशन सर्टिफिकेट अथॉरिटी प्रदान करता है। इसमें एक बैकएंड इन्वेंटरी API है जो डिवाइस इन्वेंटरी के लिए CMDB सेटअप को क्वेरी करने और डिवाइसों को मान्य करने में सक्षम है।
attezt-agent एक क्लाइंट एजेंट प्रदान करता है जो PKCS11 एजेंट पर TPM प्रमाणपत्र प्रदान कर सकता है। इस एजेंट का उपयोग प्रामाणिकता प्रमाणित करने के लिए ब्राउज़रों पर mTLS जैसी चीज़ों के लिए किया जा सकता है।
attezt attezt-agent और atteztd परिनियोजनों के प्रबंधन का प्रोग्राम है। यह आपको डिवाइस के नामांकन की जाँच करने, प्रमाणपत्र प्रावधान करने की अनुमति देता है। या अटेस्टेशन सर्टिफिकेट अथॉरिटी का प्रबंधन करता है।
यह पूरा प्रोजेक्ट एक WIP है, निश्चित नहीं कि यह कितना फीचर-पूर्ण होगा।
attezt को एक छोटी CA चेन की आवश्यकता है। इसे attezt के साथ बनाएँ।
λ » attezt ca create
atteztd अटेस्टेशन सर्वर चलाता है। ध्यान दें कि यह उन सभी प्रमाणपत्रों पर हस्ताक्षर करेगा जो चैलेंज को हल करने में सक्षम हैं।
λ » atteztd
2025/12/22 23:13:31 HTTP server listening on :8080
प्रोवाइडर को 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 ca के साथ डिवाइस प्रमाणपत्र जारी करेंstep ca certificate के साथ इस सेवा का उपयोग करने के लिए आप नीचे दी गई चीज़ के समान कुछ चला सकते हैं।
# 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
आप डिवाइस प्रमाणपत्र का नवीनीकरण भी कर सकते हैं।
λ » step ca renew --force --kms "tpmkms" ./device.crt 'tpmkms:name=device'
attezt-agent के साथ डिवाइस प्रमाणपत्र जारी करें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 नामांकन प्रक्रिया चलाता है और एक डिवाइस प्रमाणपत्र प्राप्त करता है।
λ » 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
इसे ब्राउज़र के लिए दृश्यमान बनाने के लिए, आपको nss डेटाबेस में p11-kit-client.so जोड़ना होगा, और डोमेन के लिए ब्राउज़र नीति बनानी होगी।
λ » 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
उदाहरण नीति।
# cat /etc/chromium/policies/managed/mtls.json
{
"AutoSelectCertificateForUrls": [
"{\"pattern\":\"https://example.com\",\"filter\":{\"ISSUER\":{\"O\":\"My Internal CA\"}}}"
]
}
chromium प्रारंभ करें और अपने नए क्लाइंट प्रमाणपत्रों का आनंद लें।
λ » chromium