Schutz durch private Schlüssel beim Verbundauthentifizierungsdienst
Einführung
Zertifikate werden in der Registrierung auf dem FAS-Server gespeichert. Die zugehörigen privaten Schlüssel werden über das Netzwerkdienstkonto des FAS-Servers gespeichert und sind standardmäßig als nicht exportierbar markiert.
Es gibt zwei Arten privater Schlüssel:
- Der private Schlüssel des Registrierungsstellenzertifikats (RA-Zertifikat) der Zertifikatvorlage Citrix_RegistrationAuthority.
- Die privaten Schlüssel der Benutzerzertifikate der Zertifikatvorlage Citrix_SmartcardLogon.
Es gibt zwei RA-Zertifikate: Citrix_RegistrationAuthority_ManualAuthorization (24 Stunden gültig) und Citrix_RegistrationAuthority (zwei Jahre gültig).
Wenn der Administrator während der Ersteinrichtung auf der FAS-Verwaltungskonsole in Schritt 3 auf “Authorize” klickt, generiert der FAS-Server ein Schlüsselpaar und sendet eine Zertifikatsignieranforderung (CSR) für das Zertifikat Citrix_RegistrationAuthority_ManualAuthorization an die Zertifizierungsstelle. Dies ist ein temporäres Zertifikat, das standardmäßig 24 Stunden lang gültig ist. Die Zertifizierungsstelle stellt dieses Zertifikat nicht automatisch aus. Die Ausstellung muss bei der Zertifizierungsstelle manuell von einem Administrator genehmigt werden. Wenn das Zertifikat für den FAS-Server ausgestellt wurde, verwendet der Verbundauthentifizierungsdienst das Zertifikat Citrix_RegistrationAuthority_ManualAuthorization, um automatisch das Zertifikat Citrix_RegistrationAuthority (zwei Jahre gültig) abzurufen. Der FAS-Server löscht das Zertifikat und den Schlüssel für Citrix_RegistrationAuthority_ManualAuthorization, sobald er das Zertifikat Citrix_RegistrationAuthority erhält.
Der private Schlüssel des RA-Zertifikates ist besonders vertraulich, da die RA-Zertifikatrichtlinie dem Besitzer des privaten Schlüssels das Ausstellen von Zertifikatanforderungen für die in der Vorlage konfigurierten Benutzer erlaubt. Wer also diesen Schlüssel hat, kann als einer der konfigurierten Benutzer eine Verbindung mit der Umgebung herstellen.
Mit einer der folgenden Optionen können Sie die Konfiguration des FAS-Servers so festlegen, dass private Schlüssel den Sicherheitsanforderungen Ihrer Organisation entsprechend geschützt sind:
- Microsoft Enhanced RSA und AES Cryptographic Provider oder Schlüsselspeicheranbieter für Microsoft-Software für die privaten Schlüssel von RA-Zertifikaten und von Benutzerzertifikaten.
- Schlüsselspeicheranbieter der Microsoft-Plattform mit einem Trusted Platform Module (TPM)-Chip für den privaten Schlüssel des RA-Zertifikats und Microsoft Enhanced RSA und AES Cryptographic Provider oder Schlüsselspeicheranbieter für Microsoft-Software für die privaten Schlüssel von Benutzern.
- Ein Hardwaresicherheitsmodul (HSM) mit dem Kryptografiedienst eines Anbieters oder ein Schlüsselspeicheranbieter mit dem HSM-Gerät für das RA-Zertifikat und die privaten Schlüssel der Benutzerzertifikate.
Konfigurationseinstellungen für private Schlüssel
Konfigurieren Sie den Verbundauthentifizierungsdienst, sodass er eine der drei Optionen verwendet. Bearbeiten Sie die Datei Citrix.Authentication.FederatedAuthenticationService.exe.config mit einem Text-Editor. Der Standardspeicherort der Datei ist unter Programme\Citrix\Federated Authentication Service auf dem FAS-Server.
Der Verbundauthentifizierungsdienst liest die Konfigurationsdatei nur, wenn der Dienst gestartet wird. Wenn Sie Werte ändern, muss der FAS neu gestartet werden, damit die neuen Einstellungen wirksam werden.
Legen Sie die relevanten Werte in der Datei Citrix.Authentication.FederatedAuthenticationService.exe.config wie folgt fest:
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderLegacyCsp (Wechsel zwischen CAPI und CNG-APIs)
Wert | Kommentar |
---|---|
true | CAPI-APIs verwenden |
false (Standardwert) | CNG-APIs verwenden |
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderName (Name des zu verwendenden Anbieters)
Wert | Kommentar |
---|---|
Microsoft Enhanced RSA und AES Cryptographic Provider | CAPI-Standardanbieter |
Schlüsselspeicheranbieter für Microsoft-Software | CNG-Standardanbieter |
Schlüsselspeicheranbieter der Microsoft-Plattform | TPM-Standardanbieter TPM wird nicht für Benutzerschlüssel empfohlen. Verwenden Sie TPM nur für RA-Schlüssel. Wenn Sie beabsichtigen, den FAS-Server in einer virtualisierten Umgebung auszuführen, fragen Sie die TPM- und Hypervisor-Hersteller, ob Virtualisierung unterstützt wird. |
HSM_Vendor CSP/Schlüsselspeicheranbieter | Bereitstellung durch HSM-Hersteller. Der Wert unterscheidet sich je nach Hersteller. Wenn Sie beabsichtigen, den FAS-Server in einer virtualisierten Umgebung auszuführen, fragen Sie den HSM-Hersteller, ob Virtualisierung unterstützt wird. |
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderType (nur bei CAPI-API erforderlich)
Wert | Kommentar |
---|---|
24 | Standard. Bezieht sich auf Microsoft KeyContainerPermissionAccessEntry.ProviderType Property PROV_RSA_AES 24. Muss immer 24 lauten, es sei denn, Sie verwenden ein HSM mit CAPI und der HSM-Hersteller hat eine andere Spezifikation. |
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.KeyProtection (wenn der FAS einen Privatschlüsselvorgang ausführen muss, wird der hier angegebene Wert verwendet) steuert das Flag “exportable” von privaten Schlüsseln. Ermöglicht außerdem die Verwendung eines TPM-Schlüsselspeichers, wenn die Hardware dies unterstützt.
Wert | Kommentar |
---|---|
NoProtection | Privater Schlüssel kann exportiert werden. |
GenerateNonExportableKey | Standard. Privater Schlüssel kann nicht exportiert werden. |
GenerateTPMProtectedKey | Privater Schlüssel wird mit dem TPM verwaltet. Der private Schlüssel wird von dem Anbieter gespeichert, den Sie in ProviderName angegeben haben (z. B. Schlüsselspeicheranbieter der Microsoft-Plattform) |
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.KeyLength (Größe des privaten Schlüssels in Bit eingeben)
Wert | Kommentar |
---|---|
2048 | 1024 oder 4096 können auch verwendet werden. |
Die Einstellungen für die Konfigurationsdatei werden grafisch wie folgt dargestellt (Installationsstandards sind rot markiert):
Beispiele für Konfigurationsszenarios
Beispiel 1
Dieses Beispiel gilt für den privaten Schlüssel des RA-Zertifikats und die privaten Schlüssel der Benutzerzertifikate, die mit dem Schlüsselspeicheranbieter für Microsoft-Software gespeichert wurden.
Dies ist die Standardkonfiguration nach der Installation. Eine zusätzliche Konfiguration des privaten Schlüssels ist nicht erforderlich.
Beispiel 2
Dieses Beispiel zeigt den privaten Schlüssel des RA-Zertifikats, der im FAS-Server auf der Hauptplatine im Hardware-TPM vom Schlüsselspeicheranbieter der Microsoft-Plattform gespeichert wurde, sowie die privaten Schlüssel der Benutzerzertifikate, die vom Schlüsselspeicheranbieter für Microsoft-Software gespeichert wurden.
In diesem Szenario wird angenommen, dass das TPM auf der Hauptplatine des FAS-Servers im BIOS entsprechend der TPM-Herstellerdokumentation aktiviert und dann in Windows initialisiert wurde. Weitere Informationen finden Sie unter https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-vista/cc749022(v=ws.10)?redirectedfrom=MSDN.
Verwenden von PowerShell (empfohlen)
Das RA-Zertifikat kann offline mit PowerShell angefordert werden. Dies ist für Organisationen geeignet, wenn die Zertifizierungsstellen keine RA-Zertifikate über eine Online-Zertifikatsignieranforderung ausstellen dürfen. Eine Offline-Zertifikatsignieranforderung kann von einer Registrierungsstelle nicht über die FAS-Verwaltungskonsole ausgestellt werden.
Schritt 1: Führen Sie während der Ersteinrichtung der FAS-Konfiguration mit der Verwaltungskonsole nur die ersten zwei Schritte aus: “Deploy certificate templates” und “Setup Certificate Authority”.
Schritt 2: Fügen Sie auf dem CA-Server das Zertifikatvorlagen-MMC-Snap-In hinzu. Klicken Sie mit der rechten Maustaste auf die Vorlage Citrix_RegistrationAuthority_ManualAuthorization und wählen Sie Vorlage duplizieren.
Wählen Sie die Registerkarte Allgemein. Ändern Sie den Namen und die Gültigkeitsdauer. In diesem Beispiel ist der Name Offline_RA und die Gültigkeitsdauer 2 Jahre:
Schritt 3: Fügen Sie auf dem CA-Server das Zertifizierungsstellen-MMC-Snap-In hinzu. Klicken Sie mit der rechten Maustaste auf Zertifikatvorlagen. Wählen Sie Neu und klicken Sie dann auf Auszustellende Zertifikatvorlage. Wählen Sie die Vorlage aus, die Sie soeben erstellt haben.
Schritt 4: Laden Sie die folgenden PowerShell-Cmdlets auf dem FAS-Server:
Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1
Schritt 5: Erstellen Sie das RSA-Schlüsselpaar im TPM des FAS-Servers und erstellen Sie die Zertifikatsignieranforderung durch Eingabe des folgenden PowerShell-Cmdlets auf dem FAS-Server. Hinweis: Einige TPMs beschränken die Schlüssellänge. Die Standardschlüssellänge ist 2048 Bit. Geben Sie eine Schlüssellänge an, die Ihre Hardware unterstützt.
New-FasAuthorizationCertificateRequest -UseTPM $true -address <FQDN des FAS-Servers>
Beispiel:
New-FasAuthorizationCertificateRequest -UseTPM $true -address fashsm.auth.net
Folgendes wird angezeigt:
Hinweise:
- Die ID GUID (in diesem Beispiel “5ac3d8bd-b484-4ebe-abf8-4b2cfd62ca39”) ist in einem der folgenden Schritte erforderlich.
- Betrachten Sie das PowerShell-Cmdlet als einmalige “Überschreibungsmethode” zum Generieren des privaten Schlüssels für das RA-Zertifikat.
- Wenn dieses Cmdlet ausgeführt wird, wird die zu verwendende Schlüssellänge anhand der Werte bestimmt, die beim Start des FAS-Diensts aus der Konfigurationsdatei gelesen wurden (der Standardwert ist 2048).
- Da -UseTPM in diesem manuellen, mit PowerShell initiierten Privatschlüsselvorgang für das RA-Zertifikat auf $true festgelegt ist, ignoriert das System Werte aus der Datei, die nicht mit den Einstellungen übereinstimmen, die zur Verwendung eines TPM erforderlich sind.
- Durch das Ausführen des Cmdlets ändern sich keine Einstellungen in der Konfigurationsdatei.
- Bei nachfolgenden automatischen, vom FAS initiierten Privatschlüsselvorgängen für Benutzerzertifikate werden die Werte verwendet, die beim Starten des FAS-Diensts aus der Datei gelesen wurden.
- Es ist auch möglich, den Wert KeyProtection in der Konfigurationsdatei auf GenerateTPMProtectedKey festzulegen, wenn der FAS-Server Benutzerzertifikate festlegt, damit durch das TPM geschützte private Schlüssel für Benutzerzertifikate generiert werden.
Um sicherzustellen, dass das TPM zum Generieren des Schlüsselpaars verwendet wurde, überprüfen Sie das Anwendungsprotokoll in der Windows-Ereignisanzeige auf dem FAS-Server auf die Zeit, zu der das Schlüsselpaar generiert wurde.
Folgendes sollte angezeigt werden: [TPM: True]
Gefolgt von:
Folgendes sollte angezeigt werden: “Provider: [CNG] Microsoft Platform Crypto Provider”
Schritt 6: Kopieren Sie den Zertifikatanforderungsabschnitt in einen Texteditor und speichern Sie ihn als Textdatei.
Schritt 7: Senden Sie die CSR an die Zertifizierungsstelle, indem Sie Folgendes in PowerShell auf dem FAS-Server eingeben:
certreq -submit -attrib “certificatetemplate:<Zertifikatvorlage aus Schritt 2>” <Zertifikatanforderungsdatei aus Schritt 6>
Beispiel:
certreq -submit -attrib “certificatetemplate:Offline_RA” C:\Users\Administrator.AUTH\Desktop\usmcertreq.txt
Folgendes wird angezeigt:
An dieser Stelle wird u. U. ein Fenster mit einer Liste der Zertifizierungsstellen angezeigt. Für die Zertifizierungsstelle in diesem Beispiel sind http- (oben) und DCOM-Registrierung (unten) aktiviert. Wählen Sie ggf. die DCOM-Option:
Nachdem die Zertifizierungsstelle angegeben wurde, zeigt PowerShell die RequestID an:
Schritt 8: Klicken Sie auf dem CA-Server im CA-MMC-Snap-In auf Ausstehende Anforderungen. Suchen Sie die Anforderungs-ID (RequestID). Klicken Sie mit der rechten Maustaste auf die Anforderung und wählen Sie Ausstellen.
Schritt 9: Wählen Sie den Knoten Ausgestellte Zertifikate. Suchen Sie das Zertifikat, das soeben ausgestellt wurde (die Anforderungs-ID muss übereinstimmen). Doppelklicken Sie auf das Zertifikat, um es zu öffnen. Wählen Sie die Registerkarte Details. Klicken Sie auf In Datei kopieren. Der Zertifikatexportassistent wird gestartet. Klicken Sie auf Weiter. Wählen Sie die folgenden Optionen für das Dateiformat:
Format: Cryptographic Message Syntax Standard – PKCS #7 Certificates (.P7B) und Wenn möglich, alle Zertifikate im Zertifizierungspfad einbeziehen muss ausgewählt werden.
Schritt 10: Kopieren Sie die exportierte Zertifikatdatei auf den FAS-Server.
Schritt 11: Importieren Sie das RA-Zertifikat in die Registrierung des FAS-Servers, indem Sie das folgende PowerShell-Cmdlet auf dem FAS-Server eingeben:
Beispiel:
Folgendes wird angezeigt:
Schritt 12: Schließen Sie die FAS-Verwaltungskonsole und starten Sie sie neu.
Der Schritt “Authorize this Service” ist nun grün und der Text lautet nun “Deauthorize this Service”. Der Eintrag unten gibt “Authorized by: Offline CSR” an.
Schritt 13: Wählen Sie in der FAS-Verwaltungskonsole die Registerkarte User Roles und bearbeiten Sie die Einstellungen entsprechend den Anleitungen im FAS-Hauptartikel.
Hinweis: Wenn Sie die Autorisierung des FAS über die Verwaltungskonsole aufheben, wird die Benutzerregel gelöscht.
Verwenden der FAS-Verwaltungskonsole
Die FAS-Verwaltungskonsole kann keine Offline-Zertifikatsignieranforderung ausstellen, daher wird die Verwendung nicht empfohlen, es sei denn, Ihre Organisation erlaubt Online-Zertifikatsignieranforderungen für RA-Zertifikate.
Führen Sie bei der Ersteinrichtung des Verbundauthentifizierungsdiensts die folgenden Schritte aus, und zwar nach der Bereitstellung der Zertifikatvorlagen und der Einrichtung der Zertifizierungsstelle, aber bevor Sie den Dienst autorisieren (Schritt 3 in der Konfigurationsreihenfolge):
Schritt 1: Ändern Sie in der Config-Datei die u. a. Zeile wie folgt:
Daraufhin sollte die Datei wie folgt aussehen:
Einige TPMs beschränken die Schlüssellänge. Die Standardschlüssellänge ist 2048 Bit. Geben Sie eine Schlüssellänge an, die Ihre Hardware unterstützt.
Schritt 2: Autorisieren Sie den Dienst.
Schritt 3: Stellen Sie die ausstehende Zertifikatsanforderung manuell über den CA-Server aus. Nachdem Sie das RA-Zertifikat erhalten haben, wird Schritt 3 der Einrichtungsreihenfolge in der Verwaltungskonsole grün angezeigt. Der private Schlüssel für das RA-Zertifikat wurde nun im TPM generiert. Das Zertifikat gilt standardmäßig 2 Jahre.
Schritt 4: Ändern Sie die Config-Datei folgendermaßen zurück:
Hinweis: Obwohl der Verbundauthentifizierungsdienst Benutzerzertifikate mit TPM-geschützten Schlüsseln generieren kann, ist die TPM-Hardware möglicherweise zu langsam für große Bereitstellungen.
Schritt 5: Starten Sie den Citrix Verbundauthentifizierungsdienst neu. Dadurch wird der Dienst gezwungen, die Konfigurationsdatei erneut zu lesen und die geänderten Werte werden wirksam. Die nachfolgenden automatischen Privatschlüsselvorgänge wirken sich auf Benutzerzertifikatschlüssel aus. Bei diesen Vorgängen werden die privaten Schlüssel nicht im TPM, sondern mit dem Schlüsselspeicheranbieter für Microsoft-Software gespeichert.
Schritt 6: Wählen Sie in der FAS-Verwaltungskonsole die Registerkarte “User Roles” und bearbeiten Sie die Einstellungen wie im FAS-Hauptartikel beschrieben.
Hinweis: Wenn Sie die Autorisierung des FAS über die Verwaltungskonsole aufheben, wird die Benutzerregel gelöscht.
Beispiel 3
Dieses Beispiel gilt für einen privaten Schlüssel des RA-Zertifikats und die privaten Schlüssel der Benutzerzertifikate, die in einem HSM gespeichert wurden. In diesem Beispiel wird ein konfiguriertes HSM vorausgesetzt. Das HSM hat einen Anbieternamen, z. B. “HSM_Vendor’s Key Storage Provider”.
Wenn Sie beabsichtigen, den FAS-Server in einer virtualisierten Umgebung auszuführen, fragen Sie den HSM-Hersteller nach Hypervisor-Unterstützung.
Schritt 1. Führen Sie während der Ersteinrichtung der FAS-Konfiguration mit der Verwaltungskonsole nur die ersten zwei Schritte aus: “Deploy certificate templates” und “Setup Certificate Authority”.
Schritt 2: Aus der Dokumentation Ihres HSM erfahren Sie, welchen Wert der ProviderName Ihres HSM haben sollte. Wenn das HSM CAPI verwendet, wird der Anbieter in der Dokumentation möglicherweise als Kryptografiedienstanbieter (Cryptographic Service Provider, CSP) bezeichnet. Wenn das HSM CNG verwendet, wird der Anbieter möglicherweise als Schlüsselspeicheranbieter (Key Storage Provider, KSP) bezeichnet.
Schritt 3: Bearbeiten Sie die Config-Datei wie folgt:
Daraufhin sollte die Datei wie folgt aussehen:
In diesem Szenario wird angenommen, dass Ihr HSM CNG verwendet, daher ist der Wert von ProviderLegacyCsp “false”. Wenn das HSM CAPI verwendet, sollte der Wert für ProviderLegacyCsp auf “true” festgelegt sein. Sie erfahren aus der Dokumentation des HSM-Herstellers, ob das HSM CAPI oder CNG verwendet. Außerdem erfahren Sie aus der Dokumentation, welche Schlüssellängen für die Generierung eines asymmetrischen RSA-Schlüssels das HSM unterstützt. In diesem Beispiel ist die Schlüssellänge auf den Standardwert von 2048 Bit festgelegt. Stellen Sie sicher, dass die von Ihnen festgelegte Schlüssellänge von der Hardware unterstützt wird.
Schritt 4: Starten Sie den Citrix Verbundauthentifizierungsdienst neu, damit die Werte aus der Config-Datei gelesen werden.
Schritt 5: Generieren Sie das RSA-Schlüsselpaar im HSM und erstellen Sie die CSR, indem Sie auf der Registerkarte “Initial Setup” der FAS-Verwaltungskonsole auf Authorize klicken.
Schritt 6: Um zu überprüfen, ob das Schlüsselpaar im HSM generiert wurde, überprüfen Sie die Anwendungseinträge im Windows-Ereignisprotokoll:
Hinweis: Folgendes sollte angezeigt werden: Provider: [CNG HSM_Vendor’s Key Storage Provider]
Schritt 7: Wählen Sie auf dem CA-Server in der CA MMC den Knoten Ausstehende Anforderungen:
Klicken Sie mit der rechten Maustaste auf die Anforderung und wählen Sie Ausstellen.
Der Schritt “Authorize this Service” ist nun grün und der Text lautet nun “Deauthorize this Service”. Der Eintrag unten gibt “Authorized by: [<CA-Name>]” an.
Schritt 8: Wählen Sie in der FAS-Verwaltungskonsole die Registerkarte User Roles und bearbeiten Sie die Einstellungen wie im FAS-Hauptartikel beschrieben.
Hinweis: Wenn Sie die Autorisierung des FAS über die Verwaltungskonsole aufheben, wird die Benutzerregel gelöscht.
FAS-Zertifikatspeicher
Der Verbundauthentifizierungsdienst verwendet nicht den Microsoft Zertifikatspeicher auf dem FAS-Server, um Zertifikate zu speichern. Stattdessen wird die Registrierung verwendet.
Hinweis: Wenn Sie ein HSM zum Speichern der privaten Schlüssel verwenden, werden die HSM-Container durch GUIDs identifiziert. Die GUID für den privaten Schlüssel im HSM stimmt mit der GUID für das entsprechende Zertifikat in der Registrierung überein.
Um die GUID für das RA-Zertifikat zu ermitteln, geben Sie die folgenden PowerShell-Cmdlets auf dem FAS-Server ein:
Add-pssnapin Citrix.a*
Get-FasAuthorizationCertificate –address <FAS server FQDN>
Beispiel:
Get-FasAuthorizationCertificate –address cg-fas-2.auth.net
Geben Sie zum Abrufen einer Liste mit Benutzerzertifikaten Folgendes ein:
Get-FasUserCertificate –address <FAS server FQDN>
Beispiel:
Get-FasUserCertificate –address cg-fas-2.auth.net
Verwandte Informationen
- Der Artikel Verbundauthentifizierungsdienst ist die primäre Referenz für die Installation und Konfiguration dieser Komponente.
- Der Artikel Übersicht über die Architekturen des Verbundauthentifizierungsdiensts enthält eine Übersicht über die gebräuchlichen FAS-Architekturen.
- Der Artikel Anleitung: Konfigurieren und Verwalten des Verbundauthentifizierungsdiensts enthält Links zu weiteren Anleitungen.