Schutz privater Schlüssel

Einführung

FAS-Zertifikate werden in einer eingebetteten Datenbank auf dem FAS-Server gespeichert. Die mit FAS-Zertifikaten verknüpften privaten Schlüssel werden unter dem Netzwerkdienstkonto des FAS-Servers gespeichert. Standardmäßig sind die Schlüssel nicht exportierbar, 2048-Bit-RSA, im Microsoft Software Key Storage Provider erstellt und gespeichert.

Mit FAS PowerShell-Befehlen PowerShell-Cmdlets können die Eigenschaften und der Speicherort der privaten Schlüssel geändert werden.

Hinweis:

FAS-Konfiguration und Zertifikate werden lokal auf dem FAS-Server gespeichert. Die Daten werden nicht zwischen FAS-Servern geteilt.

In FAS-Versionen vor Citrix Virtual Apps and Desktops 2411 wurden private Schlüsseleigenschaften durch Bearbeiten der XML-Datei unter %programfiles%\Citrix\Federated Authentication Service\Citrix.Authentication.FederatedAuthenticationService.exe.config konfiguriert. Dies wurde durch PowerShell-Befehle ersetzt, die mehr Flexibilität bieten und ohne Neustart des FAS-Servers angewendet werden können. Darüber hinaus bleibt die mit PowerShell vorgenommene Konfiguration im Gegensatz zu den XML-Dateieinstellungen beim Upgrade des FAS-Servers erhalten. Daher wird die Konfiguration mit der XML-Datei für die folgenden Einstellungen nicht mehr unterstützt:

  • Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.KeyProtection
  • Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderLegacyCsp
  • Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderName
  • Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderType
  • Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.KeyLength

Weitere Informationen finden Sie im Abschnitt Upgrade von FAS-Versionen vor Citrix Virtual Apps and Desktops 2411.

Informationen zu FAS-Zertifikaten und -Vorlagen

FAS verfügt über zwei Arten von Zertifikaten: das Autorisierungszertifikat, von dem es normalerweise eine Instanz gibt, und die Benutzerzertifikate.

Hinweis:

Das FAS-Autorisierungszertifikat wird manchmal auch als Registrierungsstelle oder Request Agent (RA)-Zertifikat bezeichnet.

FAS verwendet beim Anfordern von Zertifikaten Zertifikatvorlagen, wie im folgenden Abschnitt beschrieben. Während FAS in Zertifikatsanforderungen den Namen einer Vorlage angibt, liest es den Inhalt der Vorlage nicht. Daher hat das Ändern der Vorlageneinstellungen keinen Einfluss auf die von FAS gestellten Zertifikatsanforderungen. Das Ändern bestimmter Eigenschaften der Vorlage wirkt sich auf das von der Zertifizierungsstelle generierte Zertifikat aus. Mit der Vorlage können Sie beispielsweise die Gültigkeitsdauer ändern.

FAS-Autorisierungszertifikat

Dieses Zertifikat wird erstellt, wenn Sie FAS konfigurieren. Mit der Schaltfläche Autorisieren oder Erneut autorisieren der FAS-Verwaltungskonsole können Sie ein neues Autorisierungszertifikat anfordern.

Es ist auch möglich, PowerShell-Befehle zu verwenden, die mehr Flexibilität bieten:

  • New-FasAuthorizationCertificate: Dieser Befehl verhält sich ähnlich wie die FAS-Verwaltungskonsole, außer dass es möglich ist, die im Autorisierungsprozess zu verwendenden Zertifikatvorlagen anzugeben.
  • New-FasAuthorizationCertificateRequest: Dieser Befehl erstellt eine Offline-Anforderung für ein Autorisierungszertifikat; Offline-Autorisierung.

Das Autorisierungszertifikat wird manchmal auch als RA-Zertifikat bezeichnet, da FAS als Registrierungsstelle fungiert, d. h. Zertifikate im Namen eines Benutzers anfordert. Das Zertifikat verfügt über die erweiterte Schlüsselverwendung Certificate Request Agent, sodass es als Autorisierungsnachweis bei der Anforderung von FAS-Benutzerzertifikaten verwendet werden kann.

Standardmäßig verwendet der Autorisierungsprozess die folgenden Vorlagen:

  • Citrix_RegistrationAuthority_ManualAuthorization: Das mit dieser Vorlage erstellte Zertifikat ist temporär und von kurzer Dauer. Es wird verwendet, um den Autorisierungsprozess zu starten.
  • Citrix_RegistrationAuthority: Das mit dieser Vorlage erstellte Zertifikat hat eine lange Gültigkeit und wird vom FAS-Server gespeichert.

Die Autorisierung von FAS erfolgt in den folgenden Schritten:

  1. FAS erstellt ein Schlüsselpaar und sendet eine Zertifikatsignieranforderung (CSR) an die Zertifizierungsstelle, in der der öffentliche Schlüssel des Schlüsselpaars und die Vorlage Citrix_RegistrationAuthority_ManualAuthorization angegeben werden.

  2. Die Ausgabeanforderungen der Vorlage legen fest, dass der CSR manuell vom CA-Administrator genehmigt werden muss.

  3. Sobald der CA-Administrator die CSR genehmigt hat, erstellt die Zertifizierungsstelle ein Zertifikat, das FAS abruft. Dieses Zertifikat hat eine kurze Gültigkeit von einem Tag und wird nur für den nächsten Schritt verwendet. Nach der Verwendung vernichtet FAS das Zertifikat und sein Schlüsselpaar.

  4. FAS erstellt ein weiteres Schlüsselpaar und sendet eine zweite CSR an die Zertifizierungsstelle, in der der öffentliche Schlüssel dieses Schlüsselpaars und die Vorlage Citrix_RegistrationAuthority angegeben werden. Die Anfrage wird durch das Zertifikat aus dem vorherigen Schritt autorisiert und signiert.

  5. Die Zertifizierungsstelle stellt das Zertifikat automatisch aus, FAS ruft das Zertifikat ab und FAS ist jetzt Autorisiert. Standardmäßig hat dieses Berechtigungszertifikat eine Gültigkeit von zwei Jahren.

Die Einstellungen, die zum Erstellen der zuvor erwähnten Schlüsselpaare verwendet wurden, können mit diesem PowerShell-Befehl angezeigt werden:

Get-FasKeyConfig -Address localhost -CertificateType ra

FAS-Benutzerzertifikate

FAS erstellt Benutzerzertifikate, um Benutzer bei VDAs anzumelden.

Wenn FAS ein Benutzerzertifikat erstellt, werden die folgenden Schritte ausgeführt:

  • FAS erstellt ein Schlüsselpaar und sendet eine CSR an die CA, in der der öffentliche Schlüssel des Schlüsselpaars, die Identität des Benutzers und standardmäßig die Vorlage Citrix_SmartcardLogon angegeben werden (die verwendete Vorlage ist konfigurierbar).
  • Der CSR wird mit dem FAS-Autorisierungszertifikat signiert.
  • Citrix_SmartcardLogon-Vorlage hat Ausgabeanforderung Anwendungsrichtlinie: Zertifikatanforderungs-Agent. Da dieses Attribut im FAS-Autorisierungszertifikat vorhanden ist, stellt die Zertifizierungsstelle das Benutzerzertifikat automatisch aus.
  • FAS ruft das Zertifikat ab und speichert es in einer eingebetteten Datenbank auf dem FAS-Server.
  • Standardmäßig hat das Zertifikat eine Gültigkeit von einer Woche.

Später wird das Benutzerzertifikat dem VDA zur Anmeldung des Benutzers zur Verfügung gestellt.

Die Einstellungen, die zum Erstellen des zuvor erwähnten Schlüsselpaars verwendet wurden, können mit dem folgenden PowerShell-Befehl angezeigt werden:

Get-FasKeyConfig -Address localhost -CertificateType user

Optionen zur Speicherung privater Schlüssel

FAS kann zum Erstellen und Speichern von Schlüsselpaaren in drei Speicherkategorien konfiguriert werden:

  • Software: Normalerweise wird Microsoft Software Key Storage Provider verwendet, der nur durch Software gesichert ist; die Daten werden auf dem Datenträger gespeichert.
  • Trusted Platform Module (TPM): Das TPM kann physische Hardware auf dem Computer oder ein virtuelles TPM sein, das von einem Hypervisor bereitgestellt wird.
  • Hardware-Sicherheitsmodul (HSM): Dies ist ein Hardware-Peripheriegerät oder Netzwerkgerät, das zum sicheren Speichern kryptografischer Schlüssel entwickelt wurde.

Hinweis:

Es muss ein Kompromiss berücksichtigt werden. Die Hardwarespeicherung bietet möglicherweise mehr Sicherheit, weist jedoch häufig eine geringere Leistung auf, insbesondere beim Erstellen und Speichern einer großen Anzahl von Benutzerzertifikat-Schlüsselpaaren.

Der mit dem FAS-Autorisierungszertifikat verknüpfte private Schlüssel ist besonders vertraulich, da die Zertifikatsrichtlinie es jedem Besitzer des privaten Schlüssels ermöglicht, Zertifikatsanforderungen für beliebige Benutzer zu autorisieren. Folglich kann sich die Person, die diesen Schlüssel kontrolliert, wie jeder beliebige Benutzer mit der Umgebung verbinden.

Hinweis:

Microsoft Zertifizierungsstellen können so konfiguriert werden, dass die Befugnisse des FAS-Autorisierungszertifikats eingeschränkt werden, einschließlich der Gruppe der Benutzer, für die Zertifikate ausgestellt werden können. Weitere Informationen finden Sie unter Delegierte Registrierungsagents.

Aus diesem Grund können Sie mit FAS die privaten Schlüsseleigenschaften für Autorisierungs- und Benutzerzertifikate unabhängig voneinander konfigurieren.

Einige typische Konfigurationen sind wie folgt:

Autorisierungszertifikatschlüssel Benutzerzertifikatschlüssel Kommentar
Software Software Standardkonfiguration
TPM Software Autorisierungszertifikat verfügt über Hardwareschutz
HSM HSM Alle Zertifikate verfügen über Hardwareschutz

Hinweis:

Für Benutzerschlüssel wird ein Hardware-TPM nicht empfohlen. Verwenden Sie TPM nur für den Autorisierungszertifikatschlüssel. Wenn Sie Ihren FAS-Server in einer virtualisierten Umgebung ausführen möchten, erkundigen Sie sich bei Ihrem Hypervisor-Anbieter, ob TPM-Virtualisierung unterstützt wird.

Wichtige PowerShell-Konfigurationsbefehle

Die Befehle zur Konfiguration privater Schlüssel lauten wie folgt:

  • Get-FasKeyConfig
  • Set-FasKeyConfig
  • Reset-FasKeyConfig
  • Test-FasKeyConfig

Weitere Informationen finden Sie unter PowerShell-Cmdlets.

Die Schlüsselkonfiguration für Autorisierungs- und Benutzerzertifikate ist unabhängig und wird durch das Argument CertificateType angegeben. So erhalten Sie beispielsweise die private Schlüsselkonfiguration, die beim Anfordern eines Autorisierungszertifikats (RA-Zertifikat) verwendet wird:

Get-FasKeyConfig -Address localhost -CertificateType ra

So erhalten Sie die private Schlüsselkonfiguration, die zum Anfordern eines Benutzerzertifikats verwendet wird:

Get-FasKeyConfig -Address localhost -CertificateType user

Sie können Set-FasKeyConfig und Get-FasKeyConfig verwenden, um die folgenden privaten Schlüsseleigenschaften festzulegen und zu überprüfen:

Eigenschaft Standard Kommentar
Länge

2048

Schlüssellänge in Bits. Beachten Sie, dass in der GUI der Microsoft-Vorlage die Registerkarte Kryptografie die minimale Schlüsselgröße ** angibt. Der CSR wird von der Zertifizierungsstelle abgelehnt, wenn die im FAS konfigurierte Schlüssellänge kleiner ist als die in der Vorlage angegebene Mindestschlüsselgröße.
Bei RSA-Schlüsseln kann die Länge 1024 Bit, 2048 Bit oder 4096 Bit betragen.
Bei ECC-Schlüsseln kann die Länge 256 Bit, 384 Bit oder 521 Bit betragen.
Exportierbar False Ob der private Schlüssel von seinem Anbieter exportiert werden kann.
Präfix Keines Gibt ein Präfix an, das der Kennung der von FAS generierten privaten Schlüssel hinzugefügt werden soll. Die generierten Bezeichner bestehen aus dem Präfix und einer GUID. Beispiel: MyPrefix70277985-6908-4C6F-BE59-B08691456804.
EllipticCurve False Wenn “true”, wird ein ECC-Schlüsselpaar generiert, andernfalls wird ein RSA-Schlüsselpaar generiert.
Schlüsselspeicheranbieter (KSP)
true
Wenn wahr, verwendet FAS die moderne Windows CNG-API und ein KSP muss in der Eigenschaft Provider angegeben werden.
Wenn “false”, verwendet FAS die alte CAPI-API und in der Provider-Eigenschaft muss ein Cryptographic Service Provider (CSP) angegeben werden. Citrix empfiehlt die Verwendung eines KSP.
Anbieter Schlüsselspeicheranbieter für Microsoft-Software Der Name des Anbieters, bei dem Schlüsselpaare erstellt und gespeichert werden. Sie können diese Eigenschaft ändern, um ein TPM oder HSM anzugeben. Der KSP (oder CSP) eines HSM wird vom HSM-Anbieter bereitgestellt. Sie liefern Anweisungen zur Installation der Software und den Namen des Anbieters.
CSPType
24
Nur relevant, wenn die Eigenschaft KSP auf false gesetzt ist.
Bezieht sich auf Microsoft KeyContainerPermissionAccessEntry.ProviderType-Eigenschaft PROV_RSA_AES 24. Muss immer 24 sein, es sei denn, Sie verwenden ein HSM mit einem CSP und der HSM-Anbieter gibt etwas anderes an.

Darüber hinaus kann Set-FasKeyConfig der Einfachheit halber mit den folgenden Schaltern verwendet werden:

Flag Beschreibung
-UseDefaultSoftwareProvider Setzt die Eigenschaft Provider auf Microsoft Software Key Storage Provider und das Feld KSP auf true.
-UseDefaultTpmProvider Setzt die Eigenschaft Provider auf Microsoft Platform Crypto Provider und das Feld KSP auf true.

Microsoft Software Key Storage Provider ist der Anbieter, der normalerweise zum Erstellen und Speichern von Schlüsseln auf der Festplatte verwendet wird.

Microsoft Platform Crypto Provider ist der Anbieter, der normalerweise zum Erstellen und Speichern von Schlüsseln in einem TPM verwendet wird.

Get-FasKeyConfig bietet auch Felder, mit deren Hilfe bestätigt werden kann, welcher Anbieter und Algorithmus verwendet werden:

Feld Bedeutung
IsDefaultSoftwareProvider Wenn “true”, bedeutet dies, dass der Anbieter auf Microsoft Software Key Storage Provider und das Feld KSP auf true eingestellt ist.
IsDefaultTpmProvider Wenn “true”, bedeutet dies, dass der Anbieter auf Microsoft Platform Crypto Provider und das Feld KSP auf true eingestellt ist.
Algorithm
RSA gibt an, dass RSA-Schlüssel erstellt werden (die Eigenschaft EllipticCurve ist false).
ECC gibt an, dass ECC-Schlüssel erstellt werden (die Eigenschaft EllipticCurve ist true).

Sie können die Einstellungen mit Reset-FasKeyConfig auf die Standardeinstellungen zurücksetzen.

Reset-FasKeyConfig -Address localhost -CertificateType ra
Reset-FasKeyConfig -Address localhost -CertificateType user
<!--NeedCopy-->

Hinweis:

Änderungen an der Konfiguration des privaten Schlüssels (mit Set-FasKeyConfig oder Reset-FasKeyConfig) gelten sofort für neu erstellte Zertifikate. Bestehende Berechtigungs- und Benutzerzertifikate mit anderer Konfiguration sind hiervon allerdings nicht betroffen.

Sie können vorhandene Zertifikate entfernen, indem Sie Ihren FAS-Dienst über die Verwaltungskonsole deautorisieren oder indem Sie PowerShell-Befehle in Deautorisierung des FAS und Löschen von FAS-Zertifikaten verwenden.

Alle vorgenerierten Schlüssel im Schlüsselpool, die nicht der aktuellen Benutzerschlüsselkonfiguration entsprechen, werden verworfen.

Beispiele für Konfigurationsszenarios

Legen Sie in jedem Beispiel die Schlüsselkonfiguration mit der bereitgestellten PowerShell fest, bevor Sie Ihren FAS-Dienst autorisieren, da die vorhandenen Zertifikate von Konfigurationsänderungen nicht betroffen sind.

Wenn Sie bereits Autorisierungs- oder Benutzerzertifikate mit der falschen Schlüsselkonfiguration haben, können Sie diese entfernen, indem Sie FAS-Zertifikate überprüfen und FAS-Autorisierung aufheben und FAS-Zertifikate löschen.

Wenn sich Ihr FAS-Server in einer Live-Bereitstellung befindet, sollten Sie ihn in den Wartungsmodus versetzen, während Sie Konfigurationsänderungen vornehmen.

Beispiel 1: Alle Schlüssel im Microsoft Software Key Storage Provider speichern

Da dies die Standardeinstellung ist, ist keine zusätzliche Konfiguration erforderlich.

Wenn Sie Ihre Schlüsselkonfiguration zuvor geändert haben, können Sie mit den folgenden Befehlen zur Verwendung von Microsoft Software Key Storage Provider zurückkehren:

Set-FasKeyConfig -Address localhost -CertificateType ra -UseDefaultSoftwareProvider
Set-FasKeyConfig -Address localhost -CertificateType user -UseDefaultSoftwareProvider
<!--NeedCopy-->

Sie können Reset-FasKeyConfig verwenden, um zu Microsoft Software Key Storage Provider zurückzukehren und zusätzlich alle anderen wichtigen Konfigurationseinstellungen auf die Standardwerte zurückzusetzen.

Beispiel 2: Speichern des Autorisierungszertifikatschlüssels in einem TPM

Dieses Beispiel veranschaulicht das Speichern des FAS-Autorisierungszertifikatschlüssels in einem TPM (real oder virtuell), während die Benutzerzertifikatschlüssel im Microsoft Software Key Storage Provider gespeichert werden.

Obwohl FAS Benutzerzertifikate mit TPM-geschützten Schlüsseln generieren kann, ist die TPM-Hardware für große Bereitstellungen möglicherweise zu langsam oder zu größenbeschränkt.

Verwenden Sie die folgenden PowerShell-Befehle:

Set-FasKeyConfig -Address localhost -CertificateType ra -UseDefaultTpmProvider
Set-FasKeyConfig -Address localhost -CertificateType user -UseDefaultSoftwareProvider
<!--NeedCopy-->

Beispiel 3: Alle Schlüssel in einem HSM speichern

Dieses Beispiel veranschaulicht die Verwendung eines HSM zum Speichern der privaten Schlüssel von Autorisierungszertifikaten und Benutzerzertifikaten. In diesem Beispiel wird ein konfiguriertes HSM vorausgesetzt. Ihr HSM hat einen Anbieternamen. Beispiel: HSM Vendor Key Storage Provider.

Verwenden Sie die folgenden PowerShell-Befehle (ersetzen Sie den Beispieltext durch den tatsächlichen Namen Ihres HSM-Providers):

Set-FasKeyConfig -Address localhost -CertificateType ra -Provider "HSM Vendor Key Storage Provider"
Set-FasKeyConfig -Address localhost -CertificateType user -Provider "HSM Vendor Key Storage Provider"
<!--NeedCopy-->

Beispiel 4 - Elliptische Kurvenschlüssel verwenden

Standardmäßig generiert FAS RSA-Schlüssel. In diesem Beispiel werden Elliptic Curve (ECC)-Schlüssel sowohl für das Autorisierungszertifikat als auch für die Benutzerzertifikate konfiguriert.

Im Beispiel werden unterschiedliche Schlüssellängen verwendet. Das Autorisierungszertifikat ist mit einem 384-Bit-Schlüssel konfiguriert, und Benutzerzertifikate sind mit einem 256-Bit-Schlüssel konfiguriert.

Set-FasKeyConfig -Address localhost -CertificateType ra -EllipticCurve $true -Length 384
Set-FasKeyConfig -Address localhost -CertificateType user -EllipticCurve $true -Length 256
<!--NeedCopy-->

An diesem Punkt werden Autorisierungs- und Benutzerzertifikatsanforderungen möglicherweise von der Zertifizierungsstelle abgelehnt, da die Mindestschlüsselgröße in den FAS-Zertifikatvorlagen standardmäßig auf 1024 Bit festgelegt ist.

Daher ist es für dieses Beispiel notwendig, die minimale Schlüsselgröße in den Vorlagen wie folgt zu ändern:

  • Citrix_RegistrationAuthority_ManualAuthorization und Citrix_RegistrationAuthority: Ändern Sie die minimale Schlüsselgröße auf 384 (oder kleiner)
  • Citrix_SmartcardLogon: Ändern Sie die minimale Schlüsselgröße auf 256 (oder kleiner)

Um die Vorlagen zu bearbeiten, führen Sie mmc.exeaus und fügen Sie das Snap-In Zertifikatvorlagen hinzu. Suchen Sie die Vorlage und öffnen Sie ihre Eigenschaften. Die Einstellung für die minimale Schlüsselgröße befindet sich auf der Registerkarte Kryptografie der Vorlageneigenschaften.

Hinweis:

Benutzerzertifikate mit ECC-Schlüsseln werden nur auf Windows VDAs mit Citrix Virtual Apps and Desktops 2411 oder höher unterstützt. ECC-Schlüssel werden auf Linux VDAs nicht unterstützt.

Private Schlüsselkonfiguration testen

Obwohl der Befehl Set-FasKeyConfig eine gewisse Überprüfung durchführt, ist es dennoch möglich, eine ungültige Tastenkonfiguration festzulegen. Beispielsweise könnte Ihnen beim Providernamen Ihres HSM ein Fehler unterlaufen sein oder die angegebene Schlüssellänge könnte von Ihrer Hardware nicht unterstützt werden.

Dabei kann der Befehl Test-FasKeyConfig Abhilfe schaffen. Es versucht, mit der aktuellen Schlüsselkonfiguration ein Schlüsselpaar zu erstellen und meldet Erfolg oder Fehler. Wenn ein Fehler auftritt, wird ein Hinweis auf den Fehlergrund bereitgestellt. Bei Erfolg wird das Schlüsselpaar sofort vernichtet.

Die folgenden PowerShell-Befehle testen die Autorisierung bzw. die Benutzerschlüsselkonfiguration:

Test-FasKeyConfig -Address localhost -CertificateType ra
Test-FasKeyConfig -Address localhost -CertificateType user
<!--NeedCopy-->

Nachdem Sie Ihren FAS-Server autorisiert und eine Regel erstellt haben, können Sie zusätzlich wie folgt eine Test-CSR für ein Benutzerzertifikat erstellen:

Test-FasCertificateSigningRequest -Address localhost -UserPrincipalName user@example.com -Rule default

Ersetzen Sie «user@example.com>/> durch einen echten UPN aus Ihrer Active Directory-Bereitstellung. Die FAS-Regel heißt normalerweise default. Wenn Sie jedoch lieber eine andere von Ihnen konfigurierte Regel testen möchten, geben Sie stattdessen diesen Namen an.

Wenn die CSR erfolgreich ist, verwirft FAS das resultierende Zertifikat.

Überprüfung von FAS-Zertifikaten

Mit PowerShell können Sie die Eigenschaften eines Zertifikats überprüfen und ermitteln, wo der zugehörige private Schlüssel gespeichert ist.

Einsichtnahme in das Autorisierungszertifikat

Sie können das Autorisierungszertifikat anzeigen, indem Sie in der FAS-Verwaltungskonsole auf den Link Autorisierungszertifikat klicken:

Autorisierungszertifikat

Für ausführlichere Informationen verwenden Sie jedoch PowerShell:

Get-FasAuthorizationCertificate -Address localhost -FullCertInfo

Es werden mehrere Felder zurückgegeben, darunter PrivateKeyProvider, das einen Hinweis auf den Anbieter enthält, bei dem das Zertifikat erstellt und gespeichert wurde.

Privater Schlüsselanbieter Wo der Schlüssel gespeichert ist
Schlüsselspeicheranbieter für Microsoft-Software Der Schlüssel wird auf dem Datenträger gespeichert und durch den Softwareanbieter von Microsoft geschützt.
Krypto-Anbieter für die Microsoft-Plattform Der Schlüssel wird in einem TPM (real oder virtuell) gespeichert.
HSM-Anbieter-Schlüsselspeicheranbieter (nur Beispiel) Der Schlüssel wird in einem HSM gespeichert (in diesem Beispiel heißt der Provider des Herstellers HSM Vendor Key Storage Provider)

Überprüfung der Benutzerzertifikate

Eine Liste aller auf dem FAS-Server zwischengespeicherten Benutzerzertifikate können Sie wie folgt abrufen:

Get-FasUserCertificate -Address localhost -KeyInfo $true

Der Parameter KeyInfo bewirkt, dass die Ausgabe weitere Informationen über den zum Zertifikat gehörenden privaten Schlüssel enthält. Insbesondere gibt das Feld PrivateKeyProvider an, wo das mit dem Zertifikat verknüpfte Schlüsselpaar gespeichert ist (Informationen zur Interpretation dieses Werts finden Sie im vorherigen Abschnitt).

Sie können den Satz der zurückgegebenen Zertifikate mithilfe verschiedener optionaler Parameter filtern, z. B. -UserPrincipalName.

Das Zertifikatsfeld der Befehlsausgabe ist ein PEM-codiertes Benutzerzertifikat. Kopieren Sie den Text in eine .crt-Datei, um das Zertifikat mit der Windows-Zertifikat-GUI wie folgt anzuzeigen:

Befehl Beschreibung
$CertInfos = Get-FasUserCertificate -Address localhost Es können mehrere Benutzerzertifikate in dieser Liste vorhanden sein
$CertInfo = $CertInfos[0] In diesem Beispiel wählen Sie das allererste Benutzerzertifikat
$CertInfo.Certificate > c:\temp\user.crt Leiten Sie die PEM-Daten in eine .crt-Datei weiter.
c:\temp\user.crt Öffnen Sie die .crt-Datei in der Windows GUI

Upgrade von FAS-Versionen vor Citrix Virtual Apps and Desktops 2411

In FAS-Versionen vor Citrix Virtual Apps and Desktops 2411 erfolgte die Konfiguration derEigenschaften privater Schlüssel durch Bearbeiten der XML-Datei unter

%programfiles%\Citrix\Federated Authentication Service\Citrix.Authentication.FederatedAuthenticationService.exe.config
<!--NeedCopy-->

Diese wurden durch die in diesem Dokument beschriebenen PowerShell-Befehle ersetzt, die mehr Flexibilität bieten und ohne Neustart des FAS-Servers angewendet werden können.

Darüber hinaus bleibt die mit PowerShell vorgenommene Konfiguration im Gegensatz zu den XML-Dateieinstellungen beim Upgrade des FAS-Servers erhalten.

Die für die Konfiguration des privaten Schlüssels relevanten XML-Dateieinstellungen werden mit den entsprechenden PowerShell-Parametern (wie in Get-FasKeyConfig und Set-FasKeyConfigverwendet) wie folgt aufgelistet:

XML-Dateieinstellung Standardwert in der XML-Datei Powershell-Äquivalent Kommentar
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.KeyLength 2048 -Length -
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.KeyProtection

GenerateNonExportableKey

-Exportable
-UseDefaultTpmProvider
  • NoProtection wird durch die Einstellung von -Exportable auf $true erreicht
    -GenerateNonExportableKey wird erreicht, indem -Exportable auf $false gesetzt wird
    -GenerateTPMProtectedKey wird durch Angabe des Schalters -UseDefaultTpmProvider erreicht.
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderLegacyCsp
False
-Ksp
- ProviderLegacyCsp false wird erreicht, indem -Ksp auf $true gesetzt wird
-ProviderLegacyCsp true wird erreicht, indem -Ksp auf $false gesetzt wird
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderName - -Provider -
Citrix.TrustFabric.ClientSDK.TrustAreaJoinParameters.ProviderType - -CspType -

Die XML-Konfigurationsstandards und die PowerShell-Standardstandards sind funktional gleichwertig. Das heißt, standardmäßig sind die Eigenschaften der von FAS in dieser Version und in Versionen vor Citrix Virtual Apps and Desktops 2411 generierten Schlüsselpaare identisch.

Wenn Sie keine der vorhergehenden Einstellungen in der XML-Konfigurationsdatei geändert haben, müssen Sie beim Upgrade von FAS daher nichts unternehmen.

Wenn Sie jedoch eine der vorhergehenden Einstellungen geändert haben, aktualisieren Sie FAS wie folgt:

  • Setzen Sie FAS in den Wartungsmodus.
  • Aktualisieren Sie FAS an Stelle, indem Sie einfach das FAS-Installationsprogramm ausführen. Nach der Aktualisierung sind alle vorherigen Einstellungen nicht mehr in der XML-Datei vorhanden und können in der XML-Datei nicht konfiguriert werden.
  • Verwenden Sie den PowerShell-Befehl Set-FasKeyConfig, wie in PowerShell-Befehle zur Schlüsselkonfiguration beschrieben, um die Konfiguration des privaten FAS-Schlüssels nach Wunsch festzulegen. Berücksichtigen Sie dabei die Einstellungen, die Sie für Ihre Autorisierung und Benutzerzertifikate benötigen.
  • Testen Sie Ihre Konfiguration, wie in Private Schlüsselkonfiguration testen beschrieben.
  • Beenden Sie den Wartungsmodus des FAS-Servers.

Beim nächsten Upgrade bleiben die Konfigurationseinstellungen des privaten FAS-Schlüssels erhalten und es sind keine besonderen Maßnahmen erforderlich.

Kryptografisches Remoting

Mit FAS-Benutzerzertifikaten verknüpfte private Schlüssel werden niemals an den VDA übertragen. Wenn der VDA stattdessen das FAS-Zertifikat eines Benutzers verwenden muss, entweder für die Anmeldung beim VDA oder für die Verwendung während einer Sitzung, wird die kryptografische Anforderung per Remotezugriff an den FAS-Server zurückgesendet. Dies verbessert die Sicherheit, da die privaten Schlüssel den FAS-Schlüsselspeicher (egal, ob es sich um Softwarespeicher, TPM oder HSM handelt) nie verlassen.

Auf Windows VDAs wird dies durch die Verwendung eines Anbieterpaars auf dem VDA erreicht. Der Anwendungs- oder Betriebssystemcode, der die kryptografische Anforderung stellt, ist sich nicht bewusst, dass der Vorgang per Remotezugriff an den FAS-Server zurückgesendet wird.

Vor Citrix Virtual Apps and Desktops 2411 waren die Anbieter Cryptographic Service Providers (CSPs), bei denen der Zugriff auf Anwendungen und Betriebssystemcode über die ältere Windows CAPI-API erfolgte. Die Anbieter waren:

  • CitrixLogonCsp.dll: für einmaliges Anmelden beim VDA
  • CitrixVirtualSmartcardCsp.dll: für sitzungsinterne Zertifikate

Ab Citrix Virtual Apps and Desktops 2411 werden zusätzliche Key Storage Provider (KSPs) auf dem VDA bereitgestellt. Anwendungen und Betriebssystemcode greifen mit der neueren Windows CNG API darauf zu. Die neuen Anbieter sind:

  • CitrixLogonKsp.dll: für einmaliges Anmelden beim VDA
  • CitrixVirtualSmartcardKsp.dll: für sitzungsinterne Zertifikate

KSP ist eine aktuellere Methode, kryptografische Vorgänge für Windows-Anwendungen verfügbar zu machen, und bietet mehr Funktionen. Zum Beispiel:

  • Zertifikate mit ECC-Schlüsseln werden unterstützt
  • Probabilistic Signature Scheme-(PSS)-Padding wird unterstützt

KSP-Remoting wird verwendet (d. h. Remoting über die neuen KSPs), wenn sowohl auf FAS als auch auf dem VDA Citrix Virtual Apps and Desktops 2411 oder höher ausgeführt wird. Andernfalls greift das System auf die älteren CSPs für die Remoteverwaltung zurück.

KSP-Remoting deaktivieren

Bei Kompatibilitätsproblemen ist es möglich, KSP-Remoting zu deaktivieren, sodass immer das ältere CSP-Remoting verwendet werden kann.

Verwenden Sie die folgende PowerShell:

Set-FasServer -Address localhost -KspRemoting $false

Wartungsmodus

Wenn Sie Änderungen an der Konfiguration eines Live FAS-Servers vornehmen, müssen Sie ihn in den Wartungsmodus versetzen.

Wenn sich FAS im Wartungsmodus befindet, gilt Folgendes:

  • Wenn Workspace oder StoreFront FAS als Teil der Startsequenz für veröffentlichte Anwendungen oder Desktops aufrufen, zeigt FAS an, dass es sich im Wartungsmodus befindet. Der Anrufer muss darauf reagieren, indem er einen anderen FAS-Server auswählt.
  • Als zusätzliche Vorsichtsmaßnahme lässt FAS im Wartungsmodus keine automatische Erstellung von Benutzerzertifikaten zu. Dadurch wird die versehentliche Erstellung von Benutzerzertifikaten mit unbeabsichtigten Einstellungen vermieden.
  • Aktivitäten mit vorhandenen Benutzerzertifikaten, wie etwa die VDA-Anmeldung oder die Verwendung während einer Sitzung, sind jedoch weiterhin zulässig.

Obwohl die automatische Erstellung von Benutzerzertifikaten nicht zulässig ist, können Administratoren dennoch Benutzerzertifikate mit PowerShell-Befehlen wie New-FasUserCertificate oder Test-FasCertificateSigningRequest erstellen.

Verwaltungskonsole verwenden

Wartungsmodus

PowerShell verwenden

Versetzen Sie einen FAS-Server wie folgt in den Wartungsmodus:

Set-FasServer -Address localhost -MaintenanceMode $true

So beenden Sie einen FAS-Server aus dem Wartungsmodus (und setzen ihn wieder in den Normalbetrieb):

Set-FasServer -Address localhost -MaintenanceMode $false

Verwandte Informationen