This technical note explains how OpenTrust securely delivers digital certificates with SCEP (Simple Certificate Enrollment Protocol), without being affected by the published by US-CERT.
This vulnerability enables an attacker to impersonate another user when enrolling for an X.509 certificate with SCEP. As with any other protocol or system, the security of SCEP lies in the details of the implementation: Proper identity vetting and credentials verification are keys to make certificate issuance secure. OpenTrust, unlike some of its competitors, took great care at implementing all recommendations set in the SCEP RFC, to ensure the secure delivery of certificates via SCEP. In short: by using a “one-time use” challenge for each SCEP request, and by not trusting the identity attributes (Common name, email, etc.) set in the certificate request by the requester.
By using these simple techniques, and providing PKI administrators and MDM vendors with the tools and API to easily manage SCEP requests, OpenTrust ensures secure certificate enrollment with the SCEP protocol.
It is important to note that the vulnerability penetrates the SCEP protocol when vendors poorly implement the security controls recommended in the SCEP standards. SCEP remains an effective way to issue certificates to any device – provided the certificate registration and issuance is correctly implemented.
And now for the gory details… Let’s review in detail the OpenTrust SCEP implementation.
This vulnerability is due to the fact that many SCEP mobile implementations:
OpenTrust has been using SCEP to securely issue certificates on network devices for more than 10 years, and, from the start, understood the importance of properly authenticating and authorizing the certificate requests, and to never trust a client device to establish its own identity.
The OpenTrust SCEP implementation ensures, before any SCEP request, that the user or device is registered in advance by a trusted third party, typically the MDM platform for mobile devices, or an administrator for other devices. We eliminate the risk described in the US-CERT vulnerability report by:
In the case of iOS, the MDM service distributes a profile containing the SCEP parameters (SCEP URL and challenge) to issue a specific certificate on the device. The following sequence describes how the certificate issuance process is secured by the OpenTrust SCEP implementation. For clarity, we do not distinguish between the OpenTrust registration authority and SCEP responder (OpenTrust CMS), and the Certificate Authority (OpenTrust PKI).
OpenTrust CMS is not affected by the vulnerability because:
Using this simple yet effective technique, the OpenTrust implementation of the SCEP protocol cannot be used to impersonate another user when enrolling for an X.509 certificate.