Schutz privater Schlüssel
Einführung
- Zertifikate werden in einer eingebetteten Datenbank 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 gekennzeichnet.
Es gibt zwei Arten von privaten Schlüsseln:
- Der private Schlüssel, der dem Registrierungsstellenzertifikat aus der Zertifikatvorlage Citrix_RegistrationAuthority zugeordnet ist.
-
Die privaten Schlüssel, die den Benutzerzertifikaten aus der Zertifikatvorlage Citrix_SmartcardLogon zugeordnet sind.
- Es gibt tatsächlich zwei Registrierungsstellenzertifikate: Citrix_RegistrationAuthority_ManualAuthorization (standardmäßig 24 Stunden gültig) und Citrix_RegistrationAuthority (standardmäßig zwei Jahre gültig).
Während Schritt 3 der Registerkarte Erstmalige Einrichtung in der Verwaltungskonsole des Federated Authentication Service (FAS) generiert der FAS-Server beim Klicken auf Autorisieren ein Schlüsselpaar und sendet eine Zertifikatsignierungsanforderung an die Zertifizierungsstelle für das Zertifikat Citrix_RegistrationAuthority_ManualAuthorization. Dies ist ein temporäres Zertifikat, das standardmäßig 24 Stunden gültig ist. Die Zertifizierungsstelle stellt dieses Zertifikat nicht automatisch aus; seine Ausstellung muss von einem Administrator manuell bei der Zertifizierungsstelle autorisiert werden. Sobald das Zertifikat an den FAS-Server ausgestellt ist, verwendet FAS das Zertifikat Citrix_RegistrationAuthority_ManualAuthorization, um automatisch das Zertifikat Citrix_RegistrationAuthority (standardmäßig zwei Jahre gültig) zu erhalten. Der FAS-Server löscht das Zertifikat und den Schlüssel für Citrix_RegistrationAuthority_ManualAuthorization, sobald er das Zertifikat Citrix_RegistrationAuthority erhalten hat.
Der private Schlüssel, der dem Registrierungsstellenzertifikat zugeordnet ist, ist besonders sensibel, da die Richtlinie des Registrierungsstellenzertifikats es jedem, der den privaten Schlüssel besitzt, erlaubt, Zertifikatsanforderungen für die in der Vorlage konfigurierte Benutzergruppe auszustellen. Folglich kann jeder, der diesen Schlüssel kontrolliert, sich als jeder der Benutzer in der Gruppe mit der Umgebung verbinden.
Sie können den FAS-Server so konfigurieren, dass private Schlüssel auf eine Weise geschützt werden, die den Sicherheitsanforderungen Ihrer Organisation entspricht, indem Sie eine der folgenden Optionen verwenden:
- Microsoft Enhanced RSA and AES Cryptographic Provider oder Microsoft Software Key Storage Provider für die privaten Schlüssel des Registrierungsstellenzertifikats und der Benutzerzertifikate.
- Microsoft Platform Key Storage Provider mit einem Trusted Platform Module (TPM)-Chip für den privaten Schlüssel des Registrierungsstellenzertifikats und Microsoft Enhanced RSA and AES Cryptographic Provider oder Microsoft Software Key Storage Provider für die privaten Schlüssel der Benutzerzertifikate.
- Der Cryptographic Service oder Key Storage Provider eines Hardware Security Module (HSM)-Anbieters mit dem HSM-Gerät für die privaten Schlüssel des Registrierungsstellenzertifikats und der Benutzerzertifikate.
Konfigurationseinstellungen für private Schlüssel
Konfigurieren Sie FAS so, dass eine der drei Optionen verwendet wird. Bearbeiten Sie die Datei Citrix.Authentication.FederatedAuthenticationService.exe.config mit einem Texteditor. Der Standardspeicherort der Datei ist im Ordner Program Files\Citrix\Federated Authentication Service auf dem FAS-Server.

FAS liest die Konfigurationsdatei nur beim Start des Dienstes. Wenn Werte geändert werden, muss FAS neu gestartet werden, damit die neuen Einstellungen übernommen 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 (Standard) | CNG-APIs verwenden |
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderName (Name des zu verwendenden Providers)
| Wert | Kommentar |
|---|---|
| Microsoft Enhanced RSA and AES Cryptographic Provider | Standard-CAPI-Provider |
| Microsoft Software Key Storage Provider | Standard-CNG-Provider |
| Microsoft Platform Key Storage Provider | Standard-TPM-Provider. Beachten Sie, dass TPM nicht für Benutzerschlüssel empfohlen wird. Verwenden Sie TPM nur für den Schlüssel der Registrierungsstelle. Wenn Sie planen, Ihren FAS-Server in einer virtualisierten Umgebung zu betreiben, prüfen Sie bei Ihrem TPM- und Hypervisor-Anbieter, ob die Virtualisierung unterstützt wird. |
| HSM_Vendor CSP/Key Storage Provider | Wird vom HSM-Anbieter bereitgestellt. Der Wert unterscheidet sich je nach Anbieter. Wenn Sie planen, Ihren FAS-Server in einer virtualisierten Umgebung zu betreiben, prüfen Sie bei Ihrem HSM-Anbieter, ob die Virtualisierung unterstützt wird. |
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderType (Nur im Falle der CAPI-API erforderlich)
| Wert | Kommentar |
|---|---|
| 24 | Standard. Bezieht sich auf die Eigenschaft Microsoft KeyContainerPermissionAccessEntry.ProviderType PROV_RSA_AES 24. Sollte immer 24 sein, es sei denn, Sie verwenden ein HSM mit CAPI und der HSM-Anbieter gibt etwas anderes an. |
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.KeyProtection (Wenn FAS eine private Schlüsseloperation durchführen muss, verwendet es den hier angegebenen Wert) Steuert das „exportierbar“-Flag privater Schlüssel. Ermöglicht die Verwendung von TPM-Schlüsselspeicherung, falls von der Hardware unterstützt.
| Wert | Kommentar |
|---|---|
| NoProtection | Privater Schlüssel kann exportiert werden. |
| GenerateNonExportableKey | Standard. Privater Schlüssel kann nicht exportiert werden. |
| GenerateTPMProtectedKey | Der private Schlüssel wird über das TPM verwaltet. Der private Schlüssel wird über den in ProviderName angegebenen ProviderName gespeichert (zum Beispiel Microsoft Platform Key Storage Provider). |
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.KeyLength (Größe des privaten Schlüssels in Bits angeben)
| Wert | Kommentar |
|---|---|
| 2048 | Standard. 1024 oder 4096 können ebenfalls verwendet werden. |
Die Einstellungen der Konfigurationsdatei werden grafisch wie folgt dargestellt (Installationsstandards sind rot dargestellt):

Beispiele für Konfigurationsszenarien
Beispiel 1
Dieses Beispiel behandelt den privaten Schlüssel des Registrierungsstellenzertifikats und die privaten Schlüssel der Benutzerzertifikate, die mit dem Microsoft Software Key Storage Provider gespeichert werden.
Dies ist die Standardkonfiguration nach der Installation. Es ist keine zusätzliche Konfiguration des privaten Schlüssels erforderlich.
Beispiel 2
Dieses Beispiel zeigt den privaten Schlüssel des Registrierungsstellenzertifikats, der im Hardware-TPM des FAS-Server-Motherboards über den Microsoft Platform Key Storage Provider gespeichert ist, und die privaten Schlüssel von Benutzerzertifikaten, die mit dem Microsoft Software Key Storage Provider gespeichert werden.
Dieses Szenario setzt voraus, dass das TPM auf dem Motherboard Ihres FAS-Servers im BIOS gemäß der Dokumentation des TPM-Herstellers aktiviert und anschließend in Windows initialisiert wurde; siehe https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-vista/cc749022(v=ws.10).
Verwenden der FAS-Verwaltungskonsole
Die FAS-Verwaltungskonsole kann keine Offline-Zertifikatsignieranforderungen durchführen, daher wird die Verwendung nicht empfohlen, es sei denn, Ihre Organisation erlaubt Online-Zertifikatsignieranforderungen für Registrierungsstellenzertifikate.
Bei der erstmaligen FAS-Einrichtung, nach der Bereitstellung von Zertifikatvorlagen und der Einrichtung der Zertifizierungsstelle, aber vor der Autorisierung des Dienstes (Schritt 3 in der Konfigurationssequenz):
Schritt 1: Bearbeiten Sie die Konfigurationsdatei, indem Sie die folgende Zeile wie folgt ändern:

Die Datei sollte nun wie folgt aussehen:

Einige TPMs beschränken die Schlüssellänge. Die Standardschlüssellänge beträgt 2048 Bit. Stellen Sie sicher, dass Sie eine von Ihrer Hardware unterstützte Schlüssellänge angeben.
Schritt 2: Starten Sie den Citrix Federated Authentication Service neu, um die Werte aus der Konfigurationsdatei zu lesen.
Schritt 3: Autorisieren Sie den Dienst.
Schritt 4: Stellen Sie die ausstehende Zertifikatanforderung manuell vom Zertifizierungsstellenserver aus. Nachdem das Registrierungsstellenzertifikat abgerufen wurde, wird Schritt 3 in der Einrichtungssequenz in der Verwaltungskonsole grün angezeigt. Zu diesem Zeitpunkt wurde der private Schlüssel des Registrierungsstellenzertifikats im TPM generiert. Das Zertifikat ist standardmäßig 2 Jahre gültig.
Um zu bestätigen, dass der private Schlüssel des Registrierungsstellenzertifikats korrekt im TPM gespeichert wird, verwenden Sie die folgenden PowerShell-Befehle. Das Feld PrivateKeyProvider wird auf Microsoft Platform Crypto Provider gesetzt, wenn der private Schlüssel des Registrierungsstellenzertifikats im TPM gespeichert ist:
Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1
Get-FasAuthorizationCertificate -FullCertInfo -Address localhost
<!--NeedCopy-->
Schritt 5: Bearbeiten Sie die Konfigurationsdatei wieder wie folgt:

Hinweis:
Obwohl FAS Benutzerzertifikate mit TPM-geschützten Schlüsseln generieren kann, ist die TPM-Hardware für große Bereitstellungen möglicherweise zu langsam.
Schritt 6: Starten Sie FAS neu. Dies zwingt den Dienst, die Konfigurationsdatei erneut zu lesen und die geänderten Werte zu übernehmen. Die nachfolgenden automatischen Operationen mit privaten Schlüsseln wirken sich auf Benutzerzertifikatschlüssel aus; diese Operationen speichern die privaten Schlüssel nicht im TPM, sondern verwenden den Microsoft Software Key Storage Provider.
Schritt 7: Wählen Sie die Registerkarte Regeln in der FAS-Verwaltungskonsole und bearbeiten Sie die Einstellungen wie unter Installieren und Konfigurieren beschrieben.
Verwenden von PowerShell
Das Registrierungsstellenzertifikat kann offline mithilfe von PowerShell angefordert werden. Dies ist für Organisationen geeignet, die nicht möchten, dass ihre Zertifizierungsstelle ein Registrierungsstellenzertifikat über eine Online-Zertifikatsignieranforderung ausstellt. Sie können keine Offline-Registrierungsstellenzertifikatsignieranforderung über die FAS-Verwaltungskonsole stellen.
Schritt 1: Führen Sie während der anfänglichen FAS-Konfiguration über die Verwaltungskonsole nur die ersten beiden Schritte aus: “Zertifikatvorlagen bereitstellen” und “Zertifizierungsstelle einrichten”.

Schritt 2: Fügen Sie auf Ihrem Zertifizierungsstellenserver das MMC-Snap-In für Zertifikatvorlagen 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 lautet der Name Offline_RA und die Gültigkeitsdauer beträgt 2 Jahre:

Schritt 3: Fügen Sie auf Ihrem Zertifizierungsstellenserver das MMC-Snap-In für Zertifizierungsstellen hinzu. Klicken Sie mit der rechten Maustaste auf Zertifikatvorlagen. Wählen Sie Neu und klicken Sie dann auf Ausstellende Zertifikatvorlage. Wählen Sie die soeben erstellte Vorlage aus.
Schritt 4: Laden Sie die folgenden PowerShell-Cmdlets auf dem FAS-Server:
Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1
Schritt 5: Generieren Sie das RSA-Schlüsselpaar im TPM des FAS-Servers und erstellen Sie die Zertifikatsignieranforderung, indem Sie das folgende PowerShell-Cmdlet auf dem FAS-Server eingeben. Hinweis: Einige TPMs beschränken die Schlüssellänge. Die Standardschlüssellänge beträgt 2048 Bit. Stellen Sie sicher, dass Sie eine von Ihrer Hardware unterstützte Schlüssellänge angeben.
New-FasAuthorizationCertificateRequest -UseTPM $true -address \<FQDN des FAS-Servers>
Zum Beispiel:
New-FasAuthorizationCertificateRequest -UseTPM $true -address fashsm.auth.net
Folgendes wird angezeigt:

Hinweise:
- Die Id GUID (in diesem Beispiel “5ac3d8bd-b484-4ebe-abf8-4b2cfd62ca39”) wird in einem späteren Schritt benötigt.
- Betrachten Sie dieses PowerShell-Cmdlet als eine einmalige “Überschreibung”, die verwendet wird, um den privaten Schlüssel für das Registrierungsstellenzertifikat zu generieren.
- Beim Ausführen dieses Cmdlets werden die Werte, die beim Start von FAS aus der Konfigurationsdatei gelesen wurden, überprüft, um die zu verwendende Schlüssellänge zu bestimmen (Standard ist 2048).
- Da -UseTPM in diesem manuellen, über PowerShell initiierten Vorgang für den privaten Schlüssel des Registrierungsstellenzertifikats auf $true gesetzt ist, ignoriert das System Werte aus der Datei, die nicht den für die Verwendung eines TPM erforderlichen Einstellungen entsprechen.
- Das Ausführen dieses Cmdlets ändert keine Einstellungen in der Konfigurationsdatei.
- Bei nachfolgenden automatischen, von FAS initiierten Vorgängen für private Schlüssel von Benutzerzertifikaten werden die Werte verwendet, die beim Start von FAS aus der Datei gelesen wurden.
- Es ist auch möglich, den Wert KeyProtection in der Konfigurationsdatei auf GenerateTPMProtectedKey zu setzen, wenn der FAS-Server Benutzerzertifikate ausstellt, um private Schlüssel von Benutzerzertifikaten zu generieren, die durch das TPM geschützt sind.
Um zu überprüfen, ob das TPM zum Generieren des Schlüsselpaars verwendet wurde, sehen Sie im Anwendungsereignisprotokoll in der Windows-Ereignisanzeige auf dem FAS-Server nach, zum Zeitpunkt der Generierung des Schlüsselpaars.

Hinweis: “[TPM: True]”
Anschließend:

Hinweis: „Anbieter: [CNG] Microsoft Platform Crypto Provider“
Schritt 6: Kopieren Sie den Abschnitt der Zertifikatanforderung in einen Texteditor und speichern Sie ihn als Textdatei auf der Festplatte.
Schritt 7: Übermitteln Sie die Zertifikatsignieranforderung an Ihre 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 möglicherweise ein Fenster mit der Liste der Zertifizierungsstellen angezeigt. Die Zertifizierungsstelle in diesem Beispiel hat sowohl die HTTP- (oben) als auch die DCOM-Registrierung (unten) aktiviert. Wählen Sie die DCOM-Option, falls verfügbar:

Nachdem die Zertifizierungsstelle angegeben wurde, zeigt PowerShell die RequestID an:

Schritt 8: Klicken Sie auf dem Zertifizierungsstellenserver im MMC-Snap-In der Zertifizierungsstelle auf Ausstehende Anforderungen. Notieren Sie die Anforderungs-ID. Klicken Sie dann mit der rechten Maustaste auf die Anforderung und wählen Sie Ausstellen.
Schritt 9: Wählen Sie den Knoten Ausgestellte Zertifikate. Suchen Sie das gerade ausgestellte Zertifikat (die Anforderungs-ID sollte übereinstimmen). Doppelklicken Sie, um das Zertifikat zu öffnen. Wählen Sie die Registerkarte Details. Klicken Sie auf In Datei kopieren. Der Zertifikatexport-Assistent wird gestartet. Klicken Sie auf Weiter. Wählen Sie die folgenden Optionen für das Dateiformat:

Das Format muss „Cryptographic Message Syntax Standard – PKCS #7 Certificates (.P7B)“ sein, und „Alle Zertifikate im Zertifizierungspfad einschließen, falls möglich“ muss ausgewählt sein.
Schritt 10: Kopieren Sie die exportierte Zertifikatdatei auf den FAS-Server.
Schritt 11: Importieren Sie das Registrierungsstellenzertifikat in den FAS-Server, indem Sie das folgende PowerShell-Cmdlet auf dem FAS-Server eingeben:

Beispiel:

Folgendes wird angezeigt:

Um zu bestätigen, dass der private Schlüssel des Registrierungsstellenzertifikats korrekt im TPM gespeichert wird, verwenden Sie die folgenden PowerShell-Befehle. Das Feld PrivateKeyProvider wird auf Microsoft Platform Crypto Provider gesetzt, wenn der private Schlüssel des Registrierungsstellenzertifikats im TPM gespeichert ist:
Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1
Get-FasAuthorizationCertificate -FullCertInfo -Address localhost
<!--NeedCopy-->
Schritt 12: Schließen Sie die FAS-Verwaltungskonsole und starten Sie sie dann neu.

Hinweis: Der Schritt „Diesen Dienst autorisieren“ hat ein grünes Häkchen.
Schritt 13: Wählen Sie die Registerkarte Regeln in der FAS-Verwaltungskonsole und bearbeiten Sie die Einstellungen, die unter Installieren und konfigurieren beschrieben sind.
Beispiel 3
Dieses Beispiel behandelt einen privaten Schlüssel des Registrierungsstellenzertifikats und private Schlüssel von Benutzerzertifikaten, die in einem HSM gespeichert sind. Dieses Beispiel setzt ein konfiguriertes HSM voraus. Ihr HSM hat einen Anbieternamen, z. B. „HSM_Vendor’s Key Storage Provider“.
Wenn Sie planen, Ihren FAS-Server in einer virtualisierten Umgebung zu betreiben, erkundigen Sie sich bei Ihrem HSM-Anbieter nach der Hypervisor-Unterstützung.
Schritt 1. Führen Sie bei der Ersteinrichtung von FAS über die Verwaltungskonsole nur die ersten beiden Schritte aus: „Zertifikatvorlagen bereitstellen“ und „Zertifizierungsstelle einrichten“.

Schritt 2: Lesen Sie die Dokumentation Ihres HSM-Anbieters, um zu bestimmen, welchen ProviderName-Wert Ihr HSM haben sollte. Wenn Ihr HSM CAPI verwendet, wird der Anbieter in der Dokumentation möglicherweise als Cryptographic Service Provider (CSP) bezeichnet. Wenn Ihr HSM CNG verwendet, wird der Anbieter möglicherweise als Key Storage Provider (KSP) bezeichnet.
Schritt 3: Bearbeiten Sie die Konfigurationsdatei wie folgt:

Die Datei sollte nun wie folgt aussehen:

Dieses Szenario geht davon aus, dass Ihr HSM CNG verwendet, daher ist der Wert ProviderLegacyCsp auf false gesetzt. Wenn Ihr HSM CAPI verwendet, sollte der Wert ProviderLegacyCsp auf true gesetzt werden. Lesen Sie die Dokumentation Ihres HSM-Anbieters, um festzustellen, ob Ihr HSM CAPI oder CNG verwendet. Lesen Sie auch die Dokumentation Ihres HSM-Anbieters zu unterstützten Schlüssellängen für die asymmetrische RSA-Schlüsselgenerierung. In diesem Beispiel ist die Schlüssellänge auf den Standardwert von 2048 Bit eingestellt. Stellen Sie sicher, dass die von Ihnen angegebene Schlüssellänge von Ihrer Hardware unterstützt wird.
Schritt 4: Starten Sie den Citrix Federated Authentication Service neu, um die Werte aus der Konfigurationsdatei zu lesen.
Schritt 5: Generieren Sie das RSA-Schlüsselpaar im HSM und erstellen Sie die Zertifikatsignieranforderung, indem Sie auf der Registerkarte Initial Setup (Ersteinrichtung) der FAS-Verwaltungskonsole auf Authorize (Autorisieren) 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: [Anbieter: [CNG] Key Storage Provider des HSM-Anbieters]
Schritt 7: Wählen Sie auf dem Zertifizierungsstellenserver in der MMC der Zertifizierungsstelle den Knoten Pending Requests (Ausstehende Anforderungen) aus:

Klicken Sie mit der rechten Maustaste auf die Anforderung und wählen Sie Issue (Ausstellen).
Hinweis: Der Schritt „Diesen Dienst autorisieren“ ist mit einem grünen Häkchen versehen.

Schritt 8: Wählen Sie die Registerkarte Rules (Regeln) in der FAS-Verwaltungskonsole aus und bearbeiten Sie die Einstellungen wie unter Installieren und Konfigurieren beschrieben.
FAS-Zertifikatspeicher
FAS verwendet nicht den Microsoft-Zertifikatspeicher auf dem FAS-Server, um seine Zertifikate zu speichern. Es verwendet eine eingebettete Datenbank.
Um die GUID für das Registrierungsstellenzertifikat zu ermitteln, geben Sie die folgenden PowerShell-Cmdlets auf dem FAS-Server ein:
Add-pssnapin Citrix.a\*
Get-FasAuthorizationCertificate –address \<FQDN des FAS-Servers>
Beispiel: Get-FasAuthorizationCertificate –address cg-fas-2.auth.net:

Um eine Liste der Benutzerzertifikate abzurufen, geben Sie Folgendes ein:
Get-FasUserCertificate –address \<FQDN des FAS-Servers>
Beispiel: Get-FasUserCertificate –address cg-fas-2.auth.net

Hinweis:
Bei der Verwendung eines HSM zum Speichern privater Schlüssel werden HSM-Container mit einer GUID identifiziert. Die GUID für den privaten Schlüssel im HSM kann mit folgendem Befehl abgerufen werden:
Get-FasUserCertificate –address \<FQDN des FAS-Servers> -KeyInfo $trueBeispiel:
Get-FasUserCertificate –address fas3.djwfas.net -KeyInfo $true

Zugehörige Informationen
- Installieren und Konfigurieren ist die primäre Referenz für die FAS-Installation und -Konfiguration.
- Die gängigen FAS-Bereitstellungen werden im Artikel Übersicht über die Architekturen der Federated Authentication Services zusammengefasst.
- Weitere Anleitungsartikel werden im Artikel Erweiterte Konfiguration vorgestellt.
