Schutz des privaten Schlüssels des Federated Authentication Service

Einführung

Zertifikate werden in der Registrierung auf dem FAS-Server gespeichert. Die zugehörigen privaten Schlüssel werden über das Netzwerkkonto 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 Zertifikat der Registrierungsstelle (RA) 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 RA-Zertifikate: Citrix_RegistrationAuthority_ManualAuthorization (standardmäßig 24 Stunden gültig) und Citrix_RegistrationAuthority (standardmäßig zwei Jahre gültig).

Während Schritt 3 der Erstkonfiguration in der FAS-Verwaltungskonsole generiert der Administrator beim Klicken auf „Autorisieren“ ein Schlüsselpaar und sendet eine Zertifikatsignieranforderung (CSR) 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; die Ausstellung muss von einem Administrator manuell auf 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 RA-Zertifikat zugeordnet ist, ist besonders sensibel, da die RA-Zertifikatsrichtlinie es jedem, der den privaten Schlüssel besitzt, erlaubt, Zertifikatsanforderungen für die in der Vorlage konfigurierten Benutzer 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 Ihres Unternehmens entspricht, indem Sie eine der folgenden Optionen verwenden:

  • Microsoft Enhanced RSA and AES Cryptographic Provider oder Microsoft Software Key Storage Provider für den privaten Schlüssel des RA-Zertifikats und der Benutzerzertifikate.
  • Microsoft Platform Key Storage Provider mit einem Trusted Platform Module (TPM)-Chip für den privaten Schlüssel des RA-Zertifikats und Microsoft Enhanced RSA and AES Cryptographic Provider oder Microsoft Software Key Storage Provider für die privaten Schlüssel der Benutzerzertifikate.
  • Ein Cryptographic Service oder Key Storage Provider eines Hardware Security Module (HSM)-Anbieters mit dem HSM-Gerät für den privaten Schlüssel des RA-Zertifikats und der Benutzerzertifikate.

Einstellungen für die Konfiguration privater 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.

lokalisiertes Bild

Der FAS liest die Konfigurationsdatei nur beim Start des Dienstes. Wenn Werte geändert werden, muss der 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
Wahr CAPI-APIs verwenden
false (Standard) CNG-APIs verwenden

Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderName (Name des zu verwendenden Anbieters)

Wert Kommentar
Microsoft Erweiterter RSA- und AES-Kryptografieanbieter Standard-CAPI-Anbieter
Microsoft Software-Schlüsselspeicheranbieter Standard-CNG-Anbieter
Microsoft Plattform-Schlüsselspeicheranbieter Standard-TPM-Anbieter. Beachten Sie, dass TPM nicht für Benutzerschlüssel empfohlen wird. Verwenden Sie TPM nur für den RA-Schlüssel. Wenn Sie planen, Ihren FAS-Server in einer virtualisierten Umgebung zu betreiben, erkundigen Sie sich bei Ihrem TPM- und Hypervisor-Anbieter, ob die Virtualisierung unterstützt wird.
HSM_Anbieter CSP/Schlüsselspeicheranbieter Wird vom HSM-Anbieter bereitgestellt. Der Wert unterscheidet sich je nach Anbieter. Wenn Sie planen, Ihren FAS-Server in einer virtualisierten Umgebung zu betreiben, erkundigen Sie sich 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 Microsoft KeyContainerPermissionAccessEntry.ProviderType-Eigenschaft 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 einen privaten Schlüsselvorgang ausführen muss, wird der hier angegebene Wert verwendet) Steuert das „exportierbare“ Flag privater Schlüssel. Ermöglicht die Verwendung des TPM-Schlüsselspeichers, sofern 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 (z. B. Microsoft Platform Key Storage Provider).

Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.KeyLength (Geben Sie die Größe des privaten Schlüssels in Bits an)

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):

lokalisiertes Bild

Beispiele für Konfigurationsszenarien

Beispiel 1

Dieses Beispiel behandelt den privaten Schlüssel des RA-Zertifikats 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 RA-Zertifikats, der im Hardware-TPM des FAS-Server-Motherboards über den Microsoft Platform Key Storage Provider gespeichert ist, und die privaten Schlüssel der Benutzerzertifikate, 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/de-de/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 wird für Organisationen empfohlen, die nicht möchten, dass ihre Zertifizierungsstelle ein RA-Zertifikat über eine Online-CSR ausstellt. Eine Offline-RA-CSR kann nicht über die FAS-Verwaltungskonsole erstellt werden.

Schritt 1: Führen Sie während der Ersteinrichtung der FAS-Konfiguration über die Verwaltungskonsole nur die ersten beiden Schritte aus: „Zertifikatvorlagen bereitstellen“ und „Zertifizierungsstelle einrichten“.

lokalisiertes Bild

Schritt 2: Fügen Sie auf Ihrem CA-Server 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:

lokalisiertes Bild

Schritt 3: Fügen Sie auf Ihrem CA-Server das CA-MMC-Snap-In hinzu. Klicken Sie mit der rechten Maustaste auf Zertifikatvorlagen. Wählen Sie Neu und klicken Sie dann auf Zertifikatvorlage zur Ausstellung. 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 CSR, 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:

lokalisiertes Bild

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 zum Generieren des privaten Schlüssels für das RA-Zertifikat verwendet wird.
  • Beim Ausführen dieses Cmdlets werden die Werte, die beim Start des FAS-Dienstes aus der Konfigurationsdatei gelesen wurden, überprüft, um die zu verwendende Schlüssellänge zu bestimmen (Standard ist 2048).
  • Da -UseTPM bei diesem manuellen, über PowerShell initiierten RA-Zertifikat-Privatschlüsselvorgang 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, vom FAS initiierten Vorgängen mit privaten Schlüsseln von Benutzerzertifikaten werden die Werte verwendet, die beim Start des FAS-Dienstes 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 für Benutzerzertifikate 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.

lokalisiertes Bild

Hinweis „[TPM: True]“

Gefolgt von:

lokalisiertes Bild

Hinweis „Provider: [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.

lokalisiertes Bild

Schritt 7: Übermitteln Sie die CSR 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>

Zum Beispiel:

certreq -submit -attrib “certificatetemplate:Offline_Registrierungsstelle” C:\Users\Administrator.AUTH\Desktop\usmcertreq.txt

Folgendes wird angezeigt:

lokalisiertes Bild

An diesem Punkt 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 aus, falls verfügbar:

lokalisiertes Bild

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

lokalisiertes Bild

Schritt 8: Klicken Sie auf dem CA-Server im CA-MMC-Snap-In auf Ausstehende Anforderungen. Notieren Sie sich 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 aus. Suchen Sie das gerade ausgestellte Zertifikat (die Anforderungs-ID sollte übereinstimmen). Doppelklicken Sie, um das Zertifikat zu öffnen. Wählen Sie die Registerkarte Details aus. 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:

lokalisiertes Bild

Das Format muss „Cryptographic Message Syntax Standard – PKCS #7 Certificates (.P7B)“ sein, und „Alle Zertifikate im Zertifizierungspfad einschließen, wenn möglich“ muss aktiviert sein.

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:

lokalisiertes Bild

Beispiel:

lokalisiertes Bild

Folgendes wird angezeigt:

lokalisiertes Bild

Schritt 12: Schließen Sie die FAS-Verwaltungskonsole und starten Sie sie dann neu.

lokalisiertes Bild

Beachten Sie, dass der Schritt „Diesen Dienst autorisieren“ grün geworden ist und nun „Diesen Dienst deautorisieren“ anzeigt. Der Eintrag darunter lautet „Autorisiert von: Offline-CSR“.

Schritt 13: Wählen Sie die Registerkarte Benutzer Rollen in der FAS-Verwaltungskonsole und bearbeiten Sie die Einstellungen, die im Hauptartikel zum FAS beschrieben sind.

Hinweis: Die Deautorisierung des FAS über die Verwaltungskonsole löscht die Benutzerregel.

Verwenden der FAS-Verwaltungskonsole

Die FAS-Verwaltungskonsole kann keine Offline-CSR durchführen, daher wird ihre Verwendung nicht empfohlen, es sei denn, Ihre Organisation erlaubt Online-CSR für RA-Zertifikate.

Führen Sie bei der Ersteinrichtung des FAS nach der Bereitstellung von Zertifikatvorlagen und der Einrichtung der Zertifizierungsstelle (CA), aber vor der Autorisierung des Dienstes (Schritt 3 in der Konfigurationssequenz), folgende Schritte aus:

Schritt 1: Bearbeiten Sie die Konfigurationsdatei, indem Sie die folgende Zeile wie folgt ändern:

lokalisiertes Bild

Die Datei sollte nun wie folgt aussehen:

lokalisiertes Bild

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: Autorisieren Sie den Dienst.

Schritt 3: Stellen Sie die ausstehende Zertifikatanforderung manuell vom CA-Server aus. Nachdem das RA-Zertifikat erhalten wurde, wird Schritt 3 in der Einrichtungssequenz in der Verwaltungskonsole grün sein. Zu diesem Zeitpunkt wurde der private Schlüssel des RA-Zertifikats im TPM generiert. Das Zertifikat ist standardmäßig 2 Jahre gültig.

Schritt 4: Bearbeiten Sie die Konfigurationsdatei wieder wie folgt:

lokalisiertes Bild

Hinweis: Obwohl FAS Benutzerzertifikate mit TPM-geschützten Schlüsseln generieren kann, kann die TPM-Hardware für große Bereitstellungen zu langsam sein.

Schritt 5: Starten Sie den Citrix Federated Authentication Service neu. Dadurch wird der Dienst gezwungen, die Konfigurationsdatei neu einzulesen und die geänderten Werte zu übernehmen. Die nachfolgenden automatischen Vorgänge mit privaten Schlüsseln wirken sich auf die Benutzerschlüssel für Zertifikate aus; diese Vorgänge speichern die privaten Schlüssel nicht im TPM, sondern verwenden den Microsoft Software Key Storage Provider.

Schritt 6: Wählen Sie die Registerkarte „Benutzerrollen“ in der FAS-Verwaltungskonsole aus und bearbeiten Sie die Einstellungen wie im Hauptartikel zum FAS beschrieben.

Hinweis: Das Deautorisieren des FAS über die Verwaltungskonsole löscht die Benutzerregel.

Beispiel 3

Dieses Beispiel behandelt einen privaten Schlüssel für RA-Zertifikate und private Schlüssel für Benutzerzertifikate, 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 der FAS-Konfiguration über die Verwaltungskonsole nur die ersten beiden Schritte aus: „Zertifikatvorlagen bereitstellen“ und „Zertifizierungsstelle einrichten“.

lokalisiertes Bild

Schritt 2: Schlagen Sie in der Dokumentation Ihres HSM-Anbieters nach, um zu ermitteln, welchen Wert der ProviderName Ihres 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:

lokalisiertes Bild

Die Datei sollte nun wie folgt aussehen:

lokalisiertes Bild

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. Schlagen Sie in der Dokumentation Ihres HSM-Anbieters nach, um zu ermitteln, ob Ihr HSM CAPI oder CNG verwendet. Schlagen Sie auch in der Dokumentation Ihres HSM-Anbieters nach, welche Schlüssellängen für die asymmetrische RSA-Schlüsselgenerierung unterstützt werden. 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 CSR, indem Sie auf der Registerkarte „Initial Setup“ der FAS-Verwaltungskonsole auf 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:

lokalisiertes Bild

Hinweis: [Anbieter: [CNG] HSM-Anbieterschlüsselspeicheranbieter]

Schritt 7: Wählen Sie auf dem CA-Server in der CA-MMC den Knoten Ausstehende Anforderungen aus:

lokalisiertes Bild

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

Beachten Sie, dass der Schritt „Diesen Dienst autorisieren“ grün geworden ist und nun „Diesen Dienst deautorisieren“ anzeigt. Der Eintrag darunter zeigt „Autorisiert von: [<CA-Name>]“ an.

lokalisiertes Bild

Schritt 8: Wählen Sie die Registerkarte Benutzerrollen in der FAS-Verwaltungskonsole aus und bearbeiten Sie die Einstellungen wie im Hauptartikel zu FAS beschrieben.

Hinweis: Das Deautorisieren des FAS über die Verwaltungskonsole löscht die Benutzerregel.

FAS-Zertifikatspeicher

FAS verwendet nicht den Microsoft-Zertifikatspeicher auf dem FAS-Server, um seine Zertifikate zu speichern. Es verwendet die Registrierung.

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 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-FasAutorisierungszertifikat –Adresse <FAS-Server FQDN>

Zum Beispiel:

Get-FasAutorisierungszertifikat –Adresse cg-fas-2.auth.net

lokalisiertes Bild

Um eine Liste der Benutzerzertifikate zu erhalten, geben Sie Folgendes ein:

Get-FasBenutzerzertifikat –Adresse <FAS-Server FQDN>

Zum Beispiel:

Get-FasBenutzerzertifikat –Adresse cg-fas-2.auth.net

lokalisiertes Bild

Verwandte Informationen

Schutz des privaten Schlüssels des Federated Authentication Service