Simple Certificate Enrollment Protocol (SCEP) does not strongly authenticate certificate requests made by users or devices.
IETF Internet-Draft draft-nourse-scep-23 "...defines a protocol, Simple Certificate Enrollment Protocol (SCEP), for certificate management and certificate and CRL queries in a closed environment." Mobile Device Management (MDM) is defined as "...software that secures, monitors, manages and supports mobile devices deployed across mobile operators, service providers and enterprises. MDM functionality typically includes over-the-air distribution of applications, data and configuration settings for all types of mobile devices, including mobile phones, smartphones, tablet computers, ruggedized mobile computers, mobile printers, mobile POS devices, etc." Multiple MDM software packages use SCEP as a method to handle certificate management and certificate CRL queries within an organization.
When a user or a device requests a certificate, the SCEP implementation may require a challenge password. It may be possible for a user or device to take their legitimately acquired SCEP challenge password and use it to obtain a certificate that represents a different user with a higher level of access such as a network administrator, or to obtain a different type of certificate than what was intended. It is also possible for SCEP implementations or system administrators to not require the challenge password, or to share a static password across many users.
- SCEP was designed for use "...in a closed environment" and is not well suited for MDM and "bring your own device" (BYOD) applications where untrusted users and devices are in use.
- Applications that use SCEP take different measures to authenticate users and devices.
- draft-nourse-scep-23 discourages further use of SCEP:
The IETF protocol suite currently includes two certificate management protocols with more comprehensive functionality: Certificate Management Protocol (CMP) [RFC4210] and Certificate Management over CMS (CMC) [RFC5272]. Environments that do not require interoperability with SCEP implementations SHOULD use the above-mentioned, PKIX-standard certificate management protocols. In light of the functionality gap between this specification [SCEP] and the two IETF standards track protocols, this specification is being published as Historic. Even when interoperability with the installed base of SCEP implementations is needed, implementers are encouraged to support one of these comprehensive standards track certificate management protocols in addition to the protocol defined in this specification.
Additional information can be found in The Use of the Simple Certificate Enrollment Protocol (SCEP) and Untrusted Devices.
An attacker could elevate their permissions by requesting a certificate of a different, possibly higher privileged user that would allow them to access resources that they would not otherwise be able to access.
We are currently unaware of a practical solution to this problem.
- Use Certificate Management Protocol (CMP) or Certificate Management over CMS as a replacement for Simple Certificate Enrollment Protocol (SCEP)
- Manually approve for certificates from unknown sources
- Avoid reusing challenge passwords
- Limit the number of individuals who can request certificates
Thanks to Ted Shorter of Certified Security Solutions for reporting this vulnerability.
This document was written by Michael Orlando and Art Manion.
|Date First Published:||2012-06-27|
|Date Last Updated:||2020-06-29 20:44 UTC|