Schutz privater Schlüssel
Einführung
Private Schlüssel werden über das Netzwerkdienstkonto 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.
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):
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 von PowerShell (empfohlen)
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. Eine Zertifikatsignieranforderung bei einer Offline-Registrierungsstelle kann nicht über die FAS-Verwaltungskonsole gestellt werden.
Schritt 1: Führen Sie während der erstmaligen FAS-Konfiguration mit der Verwaltungskonsole nur die ersten zwei Schritte aus: “Deploy certificate templates” und “Set up a 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 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:
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.
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 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:
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 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:
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:
Beispiel:
Folgendes wird angezeigt:
Schritt 12: Schließen Sie die FAS-Verwaltungskonsole und starten Sie sie neu.
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.
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 Registrierungsstellenzertifikate.
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:
Daraufhin sollte die Datei wie folgt aussehen:
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: Autorisieren Sie den Dienst.
Schritt 3: 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.
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 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 6: 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”.
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 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:
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:
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.
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:
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
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
Verwandte Informationen
- Installation und Konfiguration ist die primäre Referenz für die Installation und Konfiguration des FAS.
- Der Artikel Übersicht über die Architekturen des Verbundauthentifizierungsdiensts enthält eine Übersicht über die gebräuchlichen FAS-Architekturen.
- Der Artikel Erweiterte Konfiguration enthält Links zu weiteren Anleitungen.