SCEP - Simple Certificate Enrollment Process
Zertifikate können in einer Windows Welt mittels "Autoenrollment" auf Windows Domänenmitglieder (Computer und Benutzer) bereit gestellt werden. Aber Zertifikat auf ein IPad, Blackberry, Switch, Router o.ä. zu bringen, ist eher mühselig, In der Regel muss ein Request erstellt, der Certificate Signing Request (CSR) mühsam in der CA eingestellt und danach wieder auf das Endgerät importiert werden. Mit SCEP soll das alles einfach werden.
Die SCEP Funktionsweise
SCEP soll das Anfordern und Ausstellen von Zertifikaten in internen vertrauenswürdigen Netzwerken deutlich vereinfachen, indem das Gerät sich selbst das Zertifikat holt. Damit dies nicht missbraucht wird, muss aber zuerst eine berechtigte Person ein "Einmalkennwort" erstellen, welches dann dem Gerät zur Verfügung gestellt wird. Das Endgerät kann dann mit diesem zeitlich begrenzt gültigen Kennwort ( Windows; 60 Minuten) ein Zertifikat vom SCEP-Service anfordern.
Der Name dieses Verfahren enthält ein "Simple" und so gibt es natürlich einige Einschränkungen, die zu berücksichtigen sind.
Sicherheit
Da die CA ohne weitere Rückfrage das Zertifikat ausstellt, wenn ein Client bei der Anforderung ein aktuell gültiges Einmalkennwort verwendet, sollten Sie einige Voraussetzungen sicherstellen.
- Sicherheit des
Einmalkennworts
Jeder, der das erstellte Einmalkennwort hat, kann sich ein Zertifikat ausstellen lassen. Der Weg zwischen der Person, die solche ein Einmalkennwort anfordert und die Person, die es in das Device überträgt, sollte kurz und schnell sein. Schnell schon daher, da das Kennwort nur eine begrenzte Haltbarkeit hat. Aber auch bei der Übertragung an das Devices, welches an der Stelle ja noch kein Kennwort hat, könnte einem Angreifer die Tür öffnen, indem die Verbindung abgehört, das Kennwort kopiert und dann der Einsatz durch das Gerät gestört wird. - Beschränkung der
Zertifikatklassen
Die CA sollte mit dem Einmalkennwort nicht beliebige Zertifikate ausstellen, sondern nur bestimmte Templates, welches Sie definieren können. SCEP ist ja gerade für "einfache Geräte" ausgelegt und z.B. keine bevorzugte Option für das Ausrollen von SMIME-Zertifikaten o.ä. Wenn Sie z.B.: nur Zertifikate für die Anmeldung an einem WiFi-AP oder ActiveSync-Server brauchen, dann kann SCEP für Smartphones helfen. Das Template muss dann auch nur die gewünschten "Usages" Enthalten - Vertrauenswürdige
Administratoren
Es versteht sich von selbst, dass die Personen, die solche Einmalkennworte anfordern und die Geräte, die basierend daraus ein Zertifikat erhalten, als "vertrauenswürdig" eingestuft werden. Dies gilt insbesondere für Software, die im Rahmen eines Device Management z.B. im Auftrag eines Geräts sogar selbst die Einmalkennworte anfordern darf.
SCEP ist also neben dem manuellen Schritt für den Administrator auch aus anderen Gründen nicht der ideale Weg für das Ausrollen von Zertifikaten. Windows Desktops in der Domäne sollten besser die im AD integrierte AutoEnrollment-Funktion nutzen. Allerdings kann SCEP eine einfache Option für eben all die anderen Geräte sein, bei denen der klassische Weg nicht oder nur sehr umständlich möglich ist. Und wer erst eine PFX-Datei auf einem Gerät über eine unverschlüsselte Verbindung installieren muss, ist mit SCEP vermutlich letztlich doch sicherer.
Installation mit Windows als Server
Microsoft hat die SCEP-Funktion mit Windows 2008 in die Zertifizierungsstelle ergänzt. Allerdings ist bei Windows 2008 dafür eine Enterprise-CA erforderlich, z.B. es muss ein Windows 2008 Enterprise oder Datacenter-Server sein. In Umgebungen mit Virtualisierung sind vermutlich die meisten Server schon mit dieser Lizenz ausgestattet.
Eventuell benötigen Sie einen
Hotfix für Windows 2008R2
2483564 Renewal request für an SCEP certificate
fails in Windows Server 2008 R2 if the
certificate is managed by using NDES
Erst mit Windows 2012 hat Microsoft diese Funktion generell in die Zertifizierungsstelle eingebaut. Die Funktion nennt Microsoft allerdings nicht SCEP sondern Network Device Enrollment Service (NDES). Damit wird schon deutlich, dass die Zielgruppe eher "Netzwerkgeräte" sind. Die Installation erfolgt über Rollen und Features
Alternativ können Sie das natürlich auch über die PowerShell durchführen
Add-WindowsFeature ADCS-Device-Enrollment
Ob die Installation schon erfolgt ist, können Sie schnell über die Webseite prüfen, mit der sie später auch die Einmalkennworte anfordern.
https://<fqdn.des.ca.servers> /certsrv/mscep_admin
Nach der Installation ist noch eine Konfiguration erforderlich
Auch wenn man hier den eingebauten Pool verwenden kann, sollte man doch ein Dienstkonto dafür einrichten, welches später auf der CA entsprechende berechtigt werden kann. Legen Sie daher am besten ein Dienstkonto in der Domäne mit Kennwort an und konfigurieren Sie den Benutzer mit den erforderlichen Berechtigungen.
- Network Device Enrollment
Service Guidance
http://go.microsoft.com/fwlink/?LinkId=218054
http://technet.microsoft.com/en-us/library/hh831498#ServiceAcct
Im nächsten Schritt wird ein Signing-Zertifikat für diesen Enrollment-Prozess ausgestellt. Dazu müssen Sie Daten für das "Request Authoritiy (RA)"-Zertifikat eintragen. Hier ein Beispiel
http://technet.microsoft.com/en-us/library/hh831498#RAInfo
Danach gilt es noch die Schlüssellänge auszuwählen. Die Standardwerte passen in den meisten Umgebungen
Nach einer abschließenden Bestätigung wird die Konfiguration abgeschlossen.
Nachdem die Installation abgeschlossen ist, können Sie in der IIS-Verwaltungskonsole die hinzu gekommenen virtuellen Verzeichnisse sehen:
Damit ist dieser Abschnitt schon mal erfolgreich verlaufen.
Konfiguration der Templates
Nun hat so eine CA natürlich eine ganze Reihe von Templates und woher soll der Client wissen, welches Template er nutzen darf?. Beim SCEP gibt es hier genau drei Verwendungsarten, die ein Client anfordern kann:
- SignatureTemplate
Der private Schlüssel kann nur verwendet werden, um Nachrichten digital zu signieren. Dazu sollte auf der CA das Template so konfiguriert sein, dass als Verwendnug auf "Signature" auf der Karteikarte "Request Handling" ausgewählt ist. - EncryptionTemplate
Mit diesem Template kann das Device auch Daten verschlüsseln. Entsprechend ist im Request Handling auch "Encryption" eingestellt. - GeneralPurposeTemplate
Zertifikate, die auf diesem Template basieren, können für beide Zwecke genutzt werden. Entsprechend ist das Request Handling hier auf "Signature and encryption" gestellt.
Der Client sendet also bei der Anforderung mit, welche dieser drei Optionen er nutzen möchte. Aber der NDES/SCEP-Server muss dann natürlich das passende Template bei der Einreichung an die CA nutzen. Und dies wird in der Registrierung des Dienstes hinterlegt.
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\MSCEP] "SignatureTemplate"="templatename" "EncryptionTemplate"="templatename" "GeneralPurposeTemplate"="templatename"
In diesen Feldern ist der LDAP-Name des Templates zu hinterlegen. Per Default nutzt NDES das Template "IPSecIntermediateOffline". Sollten Sie ein eigenes Template verwenden, dann beachten Sie die folgenden Voraussetzungen:
- Enroll Permission
Das Dienstkonto des NDES-Dienste muss auf das Template das Recht "Enroll" haben - Ziel: Computer
Das Template muss für Computer konfiguriert sein und nicht für Benutzer - SubjectName im Request
Die CA soll den Subject-Name des Zertifikats aus dem Request übernehmen und nicht aus dem AD die Informationen des Computers oder Benutzers nutzen. Geräte, die per SCEP ein Zertifikat bekommen, sind meist keine Domänenmitglieder.
Wenn Sie also eigene Templates definieren, dann sollten Sie diese Voraussetzungen erfüllen, das Dienstkonto berechtigen und in der Registrierung die Einträge entsprechend setzen. Vergessen Sie nicht das neue Template auf der CA auch zu addieren.
Eine zweite Konfiguration erlaubt die Steuerung der Einmalkennworte. Sie können die maximale Gültigkeitsdauer in Minuten und die maximale Anzahl der gleichzeitig offenen Einmalkennworte definieren:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\MSCEP] "PasswordValidity"=dword:00000060 "PasswordMax"=dword:00000005
Mit dem Hotfix 959193 ist es aber auch mittlerweile möglich, dass man für alle Geräte immer das gleiche Kennwort nutzt. Das kann durchaus für ein müssenrollout temporär interessant sein. Allerdings ist dies natürlich schon ein Risiko, da Sie damit nicht mehr wirklich unter Kontrolle haben, wer für wen welche Zertifikate ausstellt.
- 959193 Two improvements are available that shorten the time that is required to manage SCEP certificates by using the Network Device Enrollment Service in Windows Server 2008
Zuletzt könnte es sein, dass der HTTP-Request des Clients bei großen Zertifikaten zu "lang" ist und damit der IIS aufgrund von voreingestellten Grenzen den Request verwirft. Diese Einstellung kann mit folgender Kommandozeile angepasst werden. (Umbruch bitte entfernen)
%systemroot%\system32\inetsrv\appcmd.exe set config /section:system.webServer/security/requestFiltering /requestLimits.maxQueryString:"3072" /commit:apphost
Sollten Sie auch das Ausrollen von Zertifikaten mit mehreren Name (MSXFAQ.DE:SANZertifkate) unterstützen, dann müssen Sie dies auf der Zertifizierungsstelle eventuell freischalten. (Auch hier den umbruch entfernen)
CertUtil
-SetReg Policy\EditFlags
+EDITF_ATTRIBUTESUBJECTALTNAME2
net stop certsvc & net start certsvc
Damit sollte die Infrastruktur aber komplett sein.
NDES - Network Device Enrollment Service
Für die Nutzung von SCEP ist ein "Network Device Enrollment Service" erforderlich, der eine "Registration Authority (RA)" mit einem eigenen Zertifikat darstellt. Die SCEP-Clients verbinden sich mit diesem Service um sich ein Zertifikat zu besorgen. Die Erst-Einrichtung übernimmt der Assistent aber auch das NDES Zertifikat läuft natürlich auch immer wieder aus und muss aktualisiert werden.
Einige Einstellungen des NDES-Service sind nicht in der GUI erreichbar. Mittels RegEdit können Sie im Feld "GeneralPurposeTemplate" den Namen der Zertifikatsvorlage vorgeben.
- Active Directory Certificate Services
(AD CS): Network Device Enrollment Service
(NDES)
https://social.technet.microsoft.com/wiki/contents/articles/9063.active-directory-certificate-services-ad-cs-network-device-enrollment-service-ndes.aspx - Using a Policy Module with the Network
Device Enrollment Service
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn473016(v=ws.11) - Network Device Enrollment Service
Guidance
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh831498(v=ws.11) - Support Tip - How to configure NDES for SCEP certificate deployments in
Intune
https://techcommunity.microsoft.com/t5/intune-customer-success/support-tip-how-to-configure-ndes-for-scep-certificate/ba-p/455125 - Grundlagen Registrierungsdienst für
Netzwerkgeräte (Network Device Enrollment
Service, NDES)
https://www.gradenegger.eu/?p=5086 - Eigene Registration Authority (RA)
Zertifikatvorlagen für den
Registrierungsdienst für Netzwerkgeräte
(NDES) verwenden
https://www.gradenegger.eu/?p=1744 - Die Registration Authority (RA)
Zertifikate für den Registrierungsdienst für
Netzwerkgeräte (NDES) erneuern
https://www.gradenegger.eu/?p=2184 - Windows Server – Install and Configure
NDES
https://www.petenetlive.com/KB/Article/0000947 - SCEP using NDES -- Create user template
& edit registry
https://docs.cyberark.com/Product-Doc/OnlineHelp/Idaptive/Latest/en/Content/CoreServices/Authenticate/DerCredsSCEPTemp.htm
Renew SCEP RA certificate on Windows
Server AD 2012 used for BYOD on ISE
https://www.cisco.com/c/en/us/support/docs/security/identity-services-engine/200543-Renew-SCEP-RA-certificate-on-Windows-Ser.pdf
This document describes how to renew two certificates that
are used for Simple Certificate Enrollment Protocol (SCEP):
Exchange Enrollment Agent and CEP Encryption certificate on
Microsoft Active Directory 201
Anforderung durch den Admin
Nun muss noch ein berechtigter Anwender natürlich über die Webseite entsprechende Einmalkennworte erstellen. Das geht über den Aufruf der Webseite:
https://<fqdn.des.ca.servers> /certsrv/mscep_admin
Im Browser wird dann ein Einmalkennwort angezeigt:
Dieses Kennwort können Sie nun mit ihrem Device verwenden oder einem Benutzer geben, dass er sich damit ein Zertifikat anfordern kann. Hier ist noch zu lesen, dass dieses Kennwort nur 60 Tage gültig ist.
Es ist durchaus möglich, die Anforderung zu "verzögern", d.h. dass das Gerät die Anforderung einreicht aber das Zertifikat erst durch einen CA-Admin freigegeben werden muss. Dazu muss das Device aber die Funktion unterstützen, einen ausstehenden Request zu einem späteren Zeitpunkt mit der zugewiesenen RequestID abzuschließen.
- Using a Policy Module with
the Network Device Enrollment
Service
http://technet.microsoft.com/en-us/library/dn473016
Nutzung von einem Client
Mit dem Einmalkennwort kann nun auf einem Client, der SCEP/NDES unterstützt, sich direkte an den SCEP-Server wenden und ein Zertifikat anfordern. Der Client verbindet sich beim Windows SCEP-Server mit der URL
http://<yourNDESServerName.domain.com>/certsrv/mscep/mscep.dll
Es ist aber nun eine Frage des Clients, wie er von dieser URL (oder der Adresse eines anderen SCEP-Servers) Kenntnis erhält.
- How do I install
certificates on mobile devices
that run WinRT, iOS, and
Android?
http://curah.microsoft.com/49906/how-do-i-install-a-certificate-on-mobile-devices-that-run-winrt-ios-and-android
Nutzung mit Apple
Ich nutze selbst ein älteres IPhone4s und IPad und beide erlauben nicht direkt die Eingabe einer SCEP URL und Kennworts. Hier ist also ein zentraler Provisioning-Server oder Profile erforderlich.
Bislang habe ich SCEP noch nicht mit IOS umgesetzt oder noch nicht beschrieben.
- Over-the-Air Profile
Delivery Concepts
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/iPhoneOTAConfiguration/OTASecurity/OTASecurity.html - Creating a Profile Server für Over-The-Air Enrollment and
Configuration
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/iPhoneOTAConfiguration/profile-service/profile-service.html - Maintaining Your Signing
Identities and Certificates
https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html - SCEP on Windows 2008R2 für iPhones / iPads
http://blog.stephendolphin.co.uk/project-work/scep-on-windows-2008r2-for-iphones-ipads/
Nutzung mit Android
Bislang habe ich SCEP noch nicht mit Android umgesetzt oder noch nicht beschrieben.
Anscheinend gibt es (Stand Jan 2015) auch noch nicht viele anderen Quellen im Internet, auf die ich verlinken kann.
Nutzung mit Blackberry
Etwas anders sieht es schon mit dem Blackberry aus. Zum Client passt der Blackberry Enterprise Server, welche eine Provisioning-Plattform für die Clients darstellt und daher natürlich die Handhelds auch entsprechend konfigurieren kann. Beim Einsatz mit einem neuen Blackberry Client (10) muss der Client das Zertifikat selbst rechnen und vom SCEP-Server abrufen. Der Prozess ist etwas wie folgt:
Der BES in der Mitte hilft dem Gerät beim erstellen eines Request mit dem Challenge-Key aber das Gerät fordert letztlich das Zertifikat an. Damit stellt sich aber die Frage nach dem Kennwort. In der Verwaltungskonsole gibt es dazu die Möglichkeit verschiedene SCEP Profile zu verwalten und hier ein Kennwort zu hinterlegen.
Ich interpretiere das aber so, dass man mit einem Einmal-Kennwort des Windows SCEP aka. NDES hier nicht weiter kommt und stattdessen den SCEP-Service auf ein permanentes Kennnwort stellen wird.
-
KB34145 BlackBerry 10 OS
Simple Certificate Enrollment
Protocol (SCEP) data flow
http://www.blackberry.com/btsc/KB34145
Nutzung mit Switches
Auf meinem Tisch steht ein kleiner Cisco Switch SG200-08P. Leider kann der sich nicht per SCEP ein Zertifikat besorgen, so dass ich dann per HTTPS ihn verwalten könnte. Auch die anderen Switches und Router in meinem Fundus unterstützen kein SCEP. Hier ist also weiter der alte Weg angesagt, d.h. entweder Request auf dem Switch erstellen und dann das Zertifikat und die Stamm-CAs einzuspielen oder gleich eine PFX-Datei hochzuladen, sofern möglich.
Ansonsten kann ich hier die relevanten Cisco Befehle aus einer anderen Konfiguration wiedergeben.
hostname switch.msxfaq.de ip domain-name .msxfaq.de crypto key generate rsa crypto ca trustpoint CA1.msxfaq.de enrollment URL http://ca1.msxfaq.de/certsrv/mscep/mscep.dll crypto ca authentication ca1.msxfaq.de crypto ca enrol ca1.msxfaq.de
Wobei man geteilter Meinung sein, kann, wie wichtig die Unterstützung von SCEP für Netzwerkgeräte ist.
- Cisco Switch Certificate
Enrolment using NDES/SCEP
http://simondavidhill.blogspot.de/2012/11/cisco-switch-ssl-enrolment-using.html - imple Certificate Enrollment
Protocol Overview
http://www.cisco.com/c/en/us/support/docs/security-vpn/public-key-infrastructure-pki/116167-technote-scep-00.html
Weitere Links
- MSXFAQ.DE:CSR
- MSXFAQ.DE:Firmen CA
- MSXFAQ.DE:Checkliste CASetup
- MSXFAQ.DE:802.1x
- SCEP - Simple Certificate
Enrollment Protocol
http://tools.ietf.org/html/draft-nourse-scep-23 (oder neuer) - SCEP (simple certificate
enrollment protocol)
http://en.wikipedia.org/wiki/Simple_Certificate_Enrollment_Protocol - Microsoft SCEP
Implementation Whitepaper
http://www.microsoft.com/en-us/download/details.aspx?id=1607 - Network Device Enrollment
Service (NDES) in Active
Directory Certificate Services
(AD CS)
http://social.technet.microsoft.com/wiki/contents/articles/9063.network-device-enrollment-service-ndes-in-active-directory-certificate-services-ad-cs-en-us.aspx - Simple Certificate
Enrollment Protocol (SCEP)
Add-on für Certificate Services
http://www.microsoft.com/Downloads/details.aspx?familyid=9F306763-D036-41D8-8860-1636411B2D01&displaylang=en - Network Device Enrollment
Service Guidance
http://technet.microsoft.com/en-us/library/hh831498.aspx - Network Device Enrollment
Service (NDES) in Active
Directory Certificate Services
(AD CS)
http://social.technet.microsoft.com/wiki/contents/articles/9063.network-device-enrollment-service-ndes-in-active-directory-certificate-services-ad-cs.aspx - Using a Policy Module with
the Network Device Enrollment
Service
http://technet.microsoft.com/en-us/library/dn473016.aspx - What's New in Certificate
Services in Windows Server
http://technet.microsoft.com/en-us/library/dn473011.aspx - 2483564 Renewal request für an SCEP certificate fails in Windows Server 2008 R2 if the certificate is managed by using NDES
- 959193 Two improvements are available that shorten the time that is required to manage SCEP certificates by using the Network Device Enrollment Service in Windows Server 2008
- SCEP (simple certificate
enrollment protocol)
http://www.itwissen.info/definition/lexikon/simple-certificate-enrollment-protocol-SCEP-SCEP-Protokoll.html - iPad / iPhone Certificate
Issuance
http://blogs.technet.com/b/askds/archive/2010/11/22/ipad-iphone-certificate-issuance.aspx - SCEP on Windows 2008R2 für iPhones / iPads
http://blog.stephendolphin.co.uk/project-work/scep-on-windows-2008r2-for-iphones-ipads/ - Configuring SCEP
https://help.ivanti.com/mi/help/en_us/core/10.7.0.0/dmga/Content/DMGfiles/Certificate_Enrollment_s_1_ConfigSCEP.htm