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 markiert.

Es gibt zwei Arten privater Schlüssel:

  • Der private Schlüssel des Registrierungsstellenzertifikats der Zertifikatvorlage Citrix_RegistrationAuthority.
  • Die privaten Schlüssel der Benutzerzertifikate der Zertifikatvorlage Citrix_SmartcardLogon.

Es gibt zwei Registrierungsstellenzertifikate: Citrix_RegistrationAuthority_ManualAuthorization (24 Stunden gültig) und Citrix_RegistrationAuthority (zwei Jahre gültig).

Wenn Sie in der FAS-Verwaltungskonsole auf der Registerkarte Initial Setup in Schritt 3 auf Authorize klicken, generiert der FAS-Server ein Schlüsselpaar und sendet eine Zertifikatsignieranforderung 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 Registrierungsstellenzertifikats ist besonders vertraulich, da die Registrierungsstellenzertifikat-Richtlinie 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 Registrierungsstellenzertifikaten und von Benutzerzertifikaten.
  • Schlüsselspeicheranbieter der Microsoft-Plattform mit einem Trusted Platform Module (TPM)-Chip für den privaten Schlüssel des Registrierungsstellenzertifikats 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 Registrierungsstellenzertifikat 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.

Lokalisiertes Bild

Der FAS 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 den Registrierungsstellenschlü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):

Lokalisiertes Bild

Beispiele für Konfigurationsszenarios

Beispiel 1

Dieses Beispiel gilt für den privaten Schlüssel des Registrierungsstellenzertifikats 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 Registrierungsstellenzertifikats, der auf dem 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).

Verwenden der FAS-Verwaltungskonsole

Die FAS-Verwaltungskonsole kann keine Offline-Zertifikatsignieranforderung ausstellen. Die Verwendung wird daher nur empfohlen, wenn Ihre Organisation Online-Zertifikatsignieranforderungen für Registrierungsstellenzertifikate erlaubt.

Führen Sie bei der Ersteinrichtung des FAS 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:

Lokalisiertes Bild

Daraufhin sollte die Datei wie folgt aussehen:

Lokalisiertes Bild

Einige TPMs beschränken die Schlüssellänge. Die Standardschlüssellänge ist 2048 Bit. Achten Sie darauf, eine von der Hardware unterstützte Schlüssellänge anzugeben.

Schritt 2: Starten Sie den Citrix Verbundauthentifizierungsdienst neu, damit die Werte aus der Config-Datei gelesen werden.

Schritt 3: Autorisieren Sie den Dienst.

Schritt 4: Stellen Sie die ausstehende Zertifikatsanforderung manuell über den Zertifizierungsstellenserver aus. Nachdem Sie das Registrierungsstellenzertifikat erhalten haben, wird Schritt 3 der Einrichtungsreihenfolge in der Verwaltungskonsole grün angezeigt. Der private Schlüssel für das Registrierungsstellenzertifikat wurde nun im TPM generiert. Das Zertifikat gilt standardmäßig 2 Jahre.

Verwenden Sie die folgenden PowerShell-Befehle, um zu bestätigen, dass der private Schlüssel des Zertifikats der Registrierungsstelle korrekt im TPM gespeichert wird. Das Feld PrivateKeyProvider wird auf Microsoft Platform Crypto Provider festgelegt, wenn der private Schlüssel des Zertifikats der Registrierungsbehörde im TPM gespeichert ist:

Add-PSSnapin Citrix.Authentication.FederatedAuthenticationService.V1
Get-FasAuthorizationCertificate -FullCertInfo -Address localhost
<!--NeedCopy-->

Schritt 5: Ändern Sie die Config-Datei folgendermaßen zurück:

Lokalisiertes Bild

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 6: Starten Sie den FAS 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 7: Wählen Sie in der FAS-Verwaltungskonsole die Registerkarte Rules und bearbeiten Sie die Einstellungen entsprechend den Anleitungen in Installation und Konfiguration.

Verwenden von PowerShell

Das Registrierungsstellenzertifikat kann offline mit PowerShell angefordert werden. Dies ist für Organisationen geeignet, wenn die Zertifizierungsstellen keine Registrierungsstellenzertifikate über eine Online-Zertifikatsignieranforderung ausstellen dürfen. Sie können keine Zertifikatsignieranforderung bei einer Offline-Registrierungsstelle über die FAS-Verwaltungskonsole erstellen.

Schritt 1: Führen Sie während der Erstkonfiguration von FAS mit der Verwaltungskonsole nur die ersten zwei Schritte aus: “Deploy certificate templates” und “Set up a certificate authority”.

Lokalisiertes Bild

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:

Lokalisiertes Bild

Schritt 3: Fügen Sie auf dem Zertifizierungsstellenserver das MMC-Snap-In der Zertifizierungsstelle 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 of FAS Server>

Beispiel:

New-FasAuthorizationCertificateRequest -UseTPM $true -address fashsm.auth.net

Folgendes wird angezeigt:

Lokalisiertes Bild

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 Außerkraftsetzung zum Generieren des privaten Schlüssels für das Registrierungsstellenzertifikat.
  • Wenn dieses Cmdlet ausgeführt wird, wird die zu verwendende Schlüssellänge anhand der Werte bestimmt, die beim Start des FAS aus der Konfigurationsdatei gelesen wurden (der Standardwert ist 2048).
  • Da -UseTPM in diesem manuellen, mit PowerShell initiierten Privatschlüsselvorgang für das Registrierungsstellenzertifikat 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 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.

Lokalisiertes Bild

Folgendes sollte angezeigt werden: “[TPM: True]”

Gefolgt von:

Lokalisiertes Bild

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.

Lokalisiertes Bild

Schritt 7: Senden Sie die Zertifikatsignieranforderung an die Zertifizierungsstelle, indem Sie Folgendes in PowerShell auf dem FAS-Server eingeben:

certreq -submit -attrib "certificatetemplate:\<certificate template from step 2>" \<certificate request file from step 6>

Beispiel:

certreq -submit -attrib "certificatetemplate:Offline_RA" C:\Users\Administrator.AUTH\Desktop\usmcertreq.txt

Folgendes wird angezeigt:

Lokalisiertes Bild

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:

Lokalisiertes Bild

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

Lokalisiertes Bild

Schritt 8: Klicken Sie auf dem Zertifizierungsstellenserver im MMC-Snap-In der Zertifizierungsstelle 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:

Lokalisiertes Bild

Format: Cryptographic Message Syntax Standard – PKCS #7 Certificates (.P7B) und Wenn möglich, alle Zertifikate im Zertifizierungspfad einbeziehen muss aktiviert sein.

Schritt 10: Kopieren Sie die exportierte Zertifikatdatei auf den FAS-Server.

Schritt 11: Importieren Sie das Registrierungsstellenzertifikat auf den FAS-Server, indem Sie das folgende PowerShell-Cmdlet auf dem FAS-Server eingeben:

Lokalisiertes Bild

Beispiel:

Lokalisiertes Bild

Folgendes wird angezeigt:

Lokalisiertes Bild

Verwenden Sie die folgenden PowerShell-Befehle, um zu bestätigen, dass der private Schlüssel des Zertifikats der Registrierungsstelle korrekt im TPM gespeichert wird. Das Feld PrivateKeyProvider wird auf Microsoft Platform Crypto Provider festgelegt, wenn der private Schlüssel des Zertifikats der Registrierungsbehörde 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 neu.

Lokalisiertes Bild

Hinweis: Der Schritt “Authorize this Service” hat ein grünes Häkchen.

Schritt 13: Wählen Sie in der FAS-Verwaltungskonsole die Registerkarte Rules und bearbeiten Sie die Einstellungen entsprechend den Anleitungen in Installation und Konfiguration.

Beispiel 3

Dieses Beispiel gilt für einen privaten Schlüssel des Registrierungsstellenzertifikats 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 des FAS mit der Verwaltungskonsole nur die ersten zwei Schritte aus: “Deploy certificate templates” und “Set up a certificate authority”.

Lokalisiertes Bild

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:

Lokalisiertes Bild

Daraufhin sollte die Datei wie folgt aussehen:

Lokalisiertes Bild

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 Zertifikatsignieranforderung, 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:

Lokalisiertes Bild

Hinweis: Folgendes sollte angezeigt werden: [Provider: [CNG] HSM_Vendor’s Key Storage Provider]

Schritt 7: Wählen Sie auf dem Zertifizierungsstellenserver in der MMC der Zertifizierungsstelle den Knoten Ausstehende Anforderungen:

Lokalisiertes Bild

Klicken Sie mit der rechten Maustaste auf die Anforderung und wählen Sie Ausstellen.

Hinweis: Der Schritt “Authorize this Service” hat ein grünes Häkchen.

Lokalisiertes Bild

Schritt 8: Wählen Sie in der FAS-Verwaltungskonsole die Registerkarte Rules und bearbeiten Sie die Einstellungen entsprechend den Anleitungen in Installation und Konfiguration.

FAS-Zertifikatspeicher

Der Verbundauthentifizierungsdienst verwendet nicht den Microsoft Zertifikatspeicher auf dem FAS-Server, um Zertifikate zu speichern. Er 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 \<FAS server FQDN>

Beispiel: Get-FasAuthorizationCertificate –address cg-fas-2.auth.net:

Lokalisiertes Bild

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

Lokalisiertes Bild

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 erhalten Sie über:

Get-FasUserCertificate –address \<FAS server FQDN> -KeyInfo $true

Beispiel:

Get-FasUserCertificate –address fas3.djwfas.net -KeyInfo $true

Lokalisiertes Bild

Verwandte Informationen

Schutz privater Schlüssel