Konzepte
Im Bereich PKI wird traditionell unterschieden zwischen der Certification Authority (CA), die Zertifikate und Sperrinformationen bereitstellt und den Private Key besitzt, um Zertifikate und CRLs zu signieren, einerseits und andererseits der Registration Authority (RA), die die (künftigen) Zertifikatsinhaber registriert und individuell festlegt, welchen Zertifikatstyp sie bekommen und welche Namen in Subject Distinguished Name und/oder SAN-Erweiterung des Zertifikats aufgenommen werden.
Bei einer Microsoft ADCS Enterprise-CA ist diese Unterscheidung nicht immer ganz so offensichtlich, weil es keine Komponente namens "RA" gibt. Aber sie ist dennoch vorhanden. Im typischen Fall sind die RA die AD-Domänen-Administratoren, die
- AD-Benutzer anlegen und AD-Computer ins AD aufnehmen,
- dabei Common Name, Account-Name, E-Mail-Adresse bzw. DNS-Hostnamen festlegen und dann
- das Benutzer- oder Computer-Objekt in eine Gruppe aufnehmen, die "Registrieren" (Enroll) Rechte für ein oder mehrere in der Enterprise CA aktive Certificate Templates hat.
Und bei einer Intune-Anbindung über den Intune Certificate Connector (SCEP oder PKCS) ist Intune die RA – damit auch die Administratoren des betreffenden Intune Tenants.
Angriffe
Dass eine böswillige oder kompromittierte RA von der CA missbräuchlich Zertifikate für Inhabernamen erlangen kann, die so nie beabsichtigt waren (und deren zugehörige Private-Keys der Angreifer kontrolliert), ist ebenfalls nicht neu.
Ein prominentes Beispiel dafür war im Jahr 2011 der "Comodo-Hack", bei dem mutmaßlich ein iranischer Hacker den italienischen Reseller (d. h. die regionale RA) von Comodo kompromittieren und so öffentlich gültige Zertifikate u. a. für mail.google.com
erlangen konnten.
Und im Falle von Intune als RA geht das z. B. so, wie von Dirk-jan Mollema in seinem kürzlichen Blog-Post beschrieben.
Abwehr
Das beste Abwehrmittel gegen solche RA-seitigen Angriffe, ist es, wenn die CA die RA hinsichtlich der zu beantragenden Zertifikatstypen und Namen möglichst eng einschränkt.
Bei öffentlichen SSL-Zertifikaten geschieht dies u. a. durch die Anfang 2013 – nach dem Comodo-Hack – eingeführte Certification Authority Authorization (CAA), mit der ein Domain-Inhaber im DNS hinterlegen kann, über die RAs welches oder welcher Trustcenter er seine Zertifikate bezieht. Alle anderen öffentlichen CAs dürfen keine Zertifikate für Hostnamen in dieser Domain ausstellen, selbst wenn ihnen eine ihrer RAs einen entsprechenden "geprüften" Zertifikatantrag zuleitet.
Im Fall von Intune bieten die ADCS (vulgo: Microsoft CA) von Hause aus leider nur sehr rudimentäre Möglichkeiten für die Kontrolle und Einschränkung von RAs an. Im Wesentlichen ist es möglich, die RA auf bestimmte Certificate Templates zu beschränken. Bei Enrollment Agents – ebenfalls eine Form von RA 😉 – für Enrollment on Behalf of Others (EOBO) immerhin noch auf bestimmt AD-Gruppen, für die sie ein Zertifikat per EOBO beantragen dürfen.
Wesentlich weitergehende Möglichkeiten zur Beschränkung einer RA wie bspw., aber nicht nur, Intune hat eine Enterprise-CA zur Verfügung, wenn sie Uwe Gradeneggers TameMyCerts Policy-Modul verwendet.