You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: step-ca/provisioners.mdx
+22-17Lines changed: 22 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -927,11 +927,9 @@ see the [claims](configuration.mdx#claims) section for all the options.
927
927
The [ACME Protocol](https://tools.ietf.org/html/rfc8555) can authenticate Certificate Signing Requests (CSRs) in a way that enables automation.
928
928
929
929
ACME clients must answer challenges presented by the ACME server to prove to the CA that they control the identifiers listed in the CSR.
930
-
ACME supports four different types of challenges: `http-01`, `dns-01`, `tls-alpn-01`, and `device-attest-01`. These are designed for operability in different environments.
930
+
ACME supports four different types of challenges: `http-01`, `dns-01`, `tls-alpn-01` for server certificates, and `device-attest-01` for device certificates. These are designed for operability in different environments.
931
931
See [ACME Basics](./acme-basics.mdx#acme-challenges) for a description of each challenge type and their tradeoffs.
932
932
933
-
In a typical setup, an ACME server might issue server certificates via the `http-01`, `dns-01`, `tls-alpn-01` challenge types, and client certificates via the `device-attest-01` challenge type.
934
-
935
933
The ACME provisioner in `step-ca` supports issuing X.509 certificates using IP, hostname, and device identifiers.
936
934
937
935
#### Example
@@ -1015,12 +1013,25 @@ for more guidance on configuring and using the ACME protocol with `step-ca`.
1015
1013
1016
1014
#### ACME for Device Attestation
1017
1015
1018
-
The `device-attest-01` challenge supports device attestations from iOS, iPadOS, tvOS, and YubiKeys.
1019
-
An attestation certificate is used
1020
-
to satisfy the ACME challenge.
1021
-
The CSR may include
1022
-
a device ID in a `permanentIdentifier` SAN ([RFC 4043](https://www.rfc-editor.org/rfc/rfc4043.html)),
1023
-
depending on the application.
1016
+
##### 🚧 Read before digging
1017
+
1018
+
`step-ca` is focused on being a great CA for protecting cloud resources and DevOps workloads.
1019
+
It is not a complete solution for device identity.
1020
+
Its ACME Device Attestation support
1021
+
is a reference implementation of [the `device-attest-01` RFC](https://datatracker.ietf.org/doc/draft-acme-device-attest/).
1022
+
For a complete device identity solution, you will need a lot more:
1023
+
a complete device inventory,
1024
+
a production solution for dynamic SCEP,
1025
+
a TPM Attestation CA,
1026
+
cross-platform ACME Device Attestation clients,
1027
+
OCSP,
1028
+
logging,
1029
+
high availability,
1030
+
and so on.
1031
+
You should [talk to our sales team](https://go.smallstep.com/request-demo) before building all of that.
1032
+
We offer an off-the-shelf,
1033
+
comprehensive device identity solution
1034
+
to ensure that only corporate owned devices can access sensitive infrastructure and resources.
1024
1035
1025
1036
This challenge type is not enabled by default and must be explicitly enabled.
1026
1037
@@ -1035,8 +1046,8 @@ The variations are specified in
1035
1046
`step-ca` supports device attestation statements
1036
1047
in `tpm`, `apple`, and `step` formats.
1037
1048
1038
-
* The `tpm` format is a variant of the [WebAuthn TPM Attestation statement](https://www.w3.org/TR/webauthn-2/#sctn-tpm-attestation). By default, it does not add trust for any CAs. You must add the trust roots of an attestation authority, via the `attestationRoots` configuration.
1039
-
* The `apple` format is a variant of [WebAuthn Apple Anonymous Attestation](https://www.w3.org/TR/webauthn-2/#sctn-apple-anonymous-attestation) format. It is compatible with Apple's <ahref="https://support.apple.com/guide/deployment/managed-device-attestation-dep28afbde6a/web">Managed Device Attestation (MDA)</a> and other secure zero-touch provisioning (SZTP) applications as part of your device management (MDM) strategy. By default, it adds trust for [Apple's Enterprise CA](https://www.apple.com/certificateauthority/private/).
1049
+
* The `tpm` format is a variant of the [WebAuthn TPM Attestation statement](https://www.w3.org/TR/webauthn-2/#sctn-tpm-attestation). By default, it does not add trust for any CAs. You must add the trust roots of an attestation CA, via the `attestationRoots` configuration.
1050
+
* The `apple` format is a variant of [WebAuthn Apple Anonymous Attestation](https://www.w3.org/TR/webauthn-2/#sctn-apple-anonymous-attestation) format, compatible with Apple's <ahref="https://support.apple.com/guide/deployment/managed-device-attestation-dep28afbde6a/web">Managed Device Attestation (MDA)</a>. By default, it adds trust for [Apple's Enterprise CA](https://www.apple.com/certificateauthority/private/).
1040
1051
* The `step` format is a variant of [WebAuthn `packed` attestation format](https://www.w3.org/TR/webauthn-2/#sctn-packed-attestation). It is designed for non-TPM devices that can issue attestation certificates, such as YubiKey PIV. It adds trust for [Yubico's root CA](https://developers.yubico.com/PIV/Introduction/PIV_attestation.html).
1041
1052
1042
1053
<Alertseverity="warning">
@@ -1068,7 +1079,6 @@ step ca provisioner add acme-da \
1068
1079
<Alertseverity="warning">
1069
1080
<div>
1070
1081
☠️ Apple's device attestation CA will be trusted by the provisioner.
1071
-
For a production environment, you must add policies to restrict this provisioner.
1072
1082
Without policy restrictions, the provisioner may issue certificates **for any Apple device**.
1073
1083
</div>
1074
1084
</Alert>
@@ -1092,7 +1102,6 @@ step ca provisioner add acme-da \
1092
1102
<Alertseverity="warning">
1093
1103
<div>
1094
1104
☠️ Yubico's attestation CA will be trusted by the new provisioner.
1095
-
For a production environment, you must add policies to restrict this provisioner.
1096
1105
Without policy restrictions, the provisioner may issue certificates **for any YubiKey**.
1097
1106
</div>
1098
1107
</Alert>
@@ -1131,7 +1140,6 @@ an end-to-end TPM-bound client certificate flow is not available at this time.
1131
1140
A device needs to provide an attestation certificate in its response to an ACME `device-attest-01` challenge.
1132
1141
Apple has an online attestation authority service for this.
1133
1142
Yubico offers attestation certificates on their devices.
1134
-
1135
1143
But we have not seen a public or open source attestation authority that can issue attestation certificates for TPMs.
1136
1144
TPMs also have privacy constraints and a wide range of use case-specific validation requirements that complexify attestation flows.
1137
1145
@@ -1144,9 +1152,6 @@ TPMs also have privacy constraints and a wide range of use case-specific validat
1144
1152
</div>
1145
1153
</Alert>
1146
1154
1147
-
For a description of how a TPM-based attestation flow might work, if implemented,
1148
-
see [TPMs + ACME: Better Together](https://smallstep.com/blog/managed-device-attestation/#tpms--acme-better-together)
0 commit comments