Schutz privater Schlüssel

Einführung

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

Mithilfe von FAS PowerShell-Befehlen (PowerShell-Cmdlets) ist es möglich, die Eigenschaften und den Speicherort der privaten Schlüssel zu ändern.

Hinweis:

Die 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 die Eigenschaften privater Schlüssel durch Bearbeiten der XML-Datei unter %programfiles%\Citrix\Federated Authentication Service\Citrix.Authentication.FederatedAuthenticationService.exe.config konfiguriert. Dies wurde durch PowerShell-Befehle abgelöst, die mehr Flexibilität bieten und ohne Neustart des FAS-Servers angewendet werden können. Im Gegensatz zu den XML-Dateieinstellungen bleibt die Konfiguration, die mit PowerShell vorgenommen wurde, bei einem Upgrade des FAS-Servers erhalten. Daher wird die Konfiguration der folgenden Einstellungen über die XML-Datei 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

Siehe den Abschnitt Upgrade von FAS-Versionen vor Citrix Virtual Apps and Desktops™ 2411.

Informationen zu FAS-Zertifikaten und -Vorlagen

FAS verwaltet 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 Anforderungsagent (RA) -Zertifikat bezeichnet.

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

FAS-Autorisierungszertifikat

Dieses Zertifikat wird erstellt, wenn Sie FAS konfigurieren. Sie können die Schaltfläche Autorisieren oder Neu autorisieren der FAS-Verwaltungskonsole verwenden, um ein neues Autorisierungszertifikat anzufordern.

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, mit der Ausnahme, 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, die Zertifikate im Namen eines Benutzers anfordert. Das Zertifikat verfügt über die erweiterte Schlüsselverwendung Zertifikatsanforderungsagent (Certificate Request Agent), die es ermöglicht, es als Autorisierungsnachweis bei der Anforderung von FAS-Benutzerzertifikaten zu verwenden.

  • Standardmäßig verwendet der Autorisierungsprozess die folgenden Vorlagen:

  • Citrix_RegistrationAuthority_ManualAuthorization: Das mit dieser Vorlage erstellte Zertifikat ist temporär und kurzlebig und wird verwendet, um den Autorisierungsprozess zu bootstrappen;
  • Citrix_RegistrationAuthority: Das mit dieser Vorlage erstellte Zertifikat hat eine lange Gültigkeitsdauer und wird vom FAS-Server gespeichert.

Die Autorisierung von FAS führt zu den folgenden Schritten:

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

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

    1. Sobald der CA-Administrator die CSR genehmigt hat, erstellt die CA ein Zertifikat, das FAS abruft. Dieses Zertifikat hat eine kurze Gültigkeitsdauer von einem Tag und wird nur für den folgenden Schritt verwendet. Nach Gebrauch zerstört FAS das Zertifikat und sein Schlüsselpaar.
  1. FAS erstellt ein weiteres Schlüsselpaar und sendet eine zweite CSR an die CA, wobei der öffentliche Schlüssel dieses Schlüsselpaars und die Vorlage Citrix_RegistrationAuthority angegeben werden. Die Anforderung wird durch das Zertifikat aus dem vorherigen Schritt autorisiert und signiert.

  2. Die CA stellt das Zertifikat automatisch aus, FAS ruft das Zertifikat ab, und FAS ist nun autorisiert. Standardmäßig hat dieses Autorisierungszertifikat eine Gültigkeitsdauer von zwei Jahren.

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

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

FAS-Benutzerzertifikate

FAS erstellt Benutzerzertifikate, um Benutzer bei VDAs anzumelden.

Wenn FAS ein Benutzerzertifikat erstellt, erfolgen die folgenden Schritte:

  • FAS erstellt ein Schlüsselpaar und sendet eine CSR an die CA, wobei der öffentliche Schlüssel des Schlüsselpaars, die Identität des Benutzers und standardmäßig die Vorlage Citrix_SmartcardLogon (die verwendete Vorlage ist konfigurierbar) angegeben werden.
  • Die CSR wird mit dem FAS-Autorisierungszertifikat signiert.
  • Die Vorlage Citrix_SmartcardLogon hat die Ausstellungsanforderung Application Policy: Certificate Request Agent. Da dieses Attribut im FAS-Autorisierungszertifikat vorhanden ist, stellt die CA 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ültigkeitsdauer von einer Woche.

Später wird das Benutzerzertifikat dem VDA zur Verfügung gestellt, um den Benutzer anzumelden.

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

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

Optionen für die Speicherung privater Schlüssel

FAS kann so konfiguriert werden, dass Schlüsselpaare in drei Speicherkategorien erstellt und gespeichert werden:

  • Software: Normalerweise unter Verwendung des Microsoft Software Key Storage Provider, der nur durch Software gesichert ist; die Daten werden auf der Festplatte 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 Security Module (HSM): Dies ist ein Hardware-Peripheriegerät oder Netzwerkgerät, das zum sicheren Speichern kryptografischer Schlüssel entwickelt wurde.

Hinweis:

Es gibt einen Kompromiss zu berücksichtigen. Hardware-Speicher ist möglicherweise sicherer, aber oft weniger leistungsfähig, insbesondere beim Erstellen und Speichern einer großen Anzahl von Schlüsselpaaren für Benutzerzertifikate.

Der private Schlüssel, der dem FAS-Autorisierungszertifikat zugeordnet ist, ist besonders sensibel, da die Richtlinie des Zertifikats es jedem, der den privaten Schlüssel besitzt, erlaubt, Zertifikatsanforderungen für jeden Benutzer zu autorisieren. Folglich kann jeder, der diesen Schlüssel kontrolliert, sich als beliebiger Benutzer mit der Umgebung verbinden.

Hinweis:

Microsoft-Zertifizierungsstellen können so konfiguriert werden, dass die Berechtigungen des FAS-Autorisierungszertifikats eingeschränkt werden, einschließlich der Gruppe von Benutzern, für die Zertifikate ausgestellt werden können. Siehe Delegierte Registrierungsagenten.

Aus diesem Grund ermöglicht FAS die unabhängige Konfiguration der Eigenschaften privater Schlüssel für Autorisierungs- und Benutzerzertifikate.

Einige typische Konfigurationen sind wie folgt:

Schlüssel des Autorisierungszertifikats Schlüssel der Benutzerzertifikate Kommentar
Software Software Standardkonfiguration
TPM Software Autorisierungszertifikat verfügt über Hardwareschutz
HSM HSM Alle Zertifikate verfügen über Hardwareschutz

Hinweis:

Ein Hardware-TPM wird für Benutzerschlüssel nicht empfohlen. Verwenden Sie TPM nur für den Schlüssel des Autorisierungszertifikats. Wenn Sie planen, Ihren FAS-Server in einer virtualisierten Umgebung zu betreiben, erkundigen Sie sich bei Ihrem Hypervisor-Anbieter, ob die TPM-Virtualisierung unterstützt wird.

PowerShell-Befehle zur Schlüsselkonfiguration

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. Um beispielsweise die Konfiguration des privaten Schlüssels abzurufen, die beim Anfordern eines Autorisierungszertifikats (RA-Zertifikat) verwendet wird:

Get-FasKeyConfig -Address localhost -CertificateType ra

Um die Konfiguration des privaten Schlüssels abzurufen, die beim Anfordern eines Benutzerzertifikats verwendet wird:

Get-FasKeyConfig -Address localhost -CertificateType user

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

Eigenschaft Standard Kommentar
Length

2048

Schlüssellänge in Bit. Beachten Sie, dass in der Microsoft-Vorlagen-GUI die Registerkarte Kryptografie die minimale Schlüsselgröße angibt. Die CSR wird von der Zertifizierungsstelle abgelehnt, wenn die in FAS konfigurierte Schlüssellänge kleiner ist als die in der Vorlage angegebene minimale Schlüsselgröße.
Für RSA-Schlüssel können die Längen 1024 Bit, 2048 Bit oder 4096 Bit betragen.
Für ECC-Schlüssel können die Längen 256 Bit, 384 Bit oder 521 Bit betragen.
Exportable false Gibt an, ob der private Schlüssel von seinem Anbieter exportiert werden kann.
Prefix none Gibt ein Präfix an, das dem Bezeichner privater Schlüssel hinzugefügt wird, die von FAS generiert werden. Die generierten Bezeichner bestehen aus dem Präfix und einer GUID. Zum Beispiel: MyPrefix70277985-6908-4C6F-BE59-B08691456804.
EllipticCurve false Wenn true, wird ein ECC-Schlüsselpaar generiert, andernfalls ein RSA-Schlüsselpaar.
Key Storage Provider (KSP)
true
Wenn true, verwendet FAS die moderne Windows CNG API, und ein KSP muss in der Eigenschaft Provider angegeben werden.
Wenn false, verwendet FAS die ältere CAPI API, und ein Cryptographic Service Provider (CSP) muss in der Eigenschaft Provider angegeben werden. Citrix empfiehlt die Verwendung eines KSP.
Provider Microsoft Software Key Storage Provider 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. Dieser stellt Anweisungen zur Installation seiner Software und den Namen des Anbieters bereit.
CSPType
24
Nur relevant, wenn die Eigenschaft KSP auf false gesetzt ist.
Bezieht sich auf Microsoft KeyContainerPermissionAccessEntry.ProviderType Property 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.

Zusätzlich kann Set-FasKeyConfig mit den folgenden Schaltern verwendet werden, die der Einfachheit halber bereitgestellt 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, die helfen zu bestätigen, 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 gesetzt ist.
IsDefaultTpmProvider Wenn true, bedeutet dies, dass der Anbieter auf Microsoft Platform Crypto Provider und das Feld KSP auf true gesetzt 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 Standardwerte zurücksetzen.

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

Hinweis:

Änderungen an der Konfiguration des privaten Schlüssels (mittels Set-FasKeyConfig oder Reset-FasKeyConfig) werden sofort auf neu erstellte Zertifikate angewendet. Bestehende Autorisierungs- und Benutzerzertifikate mit einer anderen Konfiguration sind jedoch nicht betroffen.

Sie können vorhandene Zertifikate entfernen, indem Sie Ihren FAS-Dienst über die Verwaltungskonsole deautorisieren oder PowerShell-Befehle unter FAS deautorisieren und FAS-Zertifikate löschen verwenden.

Alle im Schlüsselpool vorab generierten Schlüssel, die nicht der aktuellen Benutzer-Schlüsselkonfiguration entsprechen, werden verworfen.

Beispiele für Konfigurationsszenarien

In jedem Beispiel legen Sie die Schlüsselkonfiguration mithilfe des 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 besitzen, können Sie diese entfernen, indem Sie FAS-Zertifikate überprüfen und FAS deautorisieren und FAS-Zertifikate löschen.

Wenn sich Ihr FAS-Server in einer Live-Bereitstellung befindet, ziehen Sie in Betracht, ihn während der Konfigurationsänderungen in den Wartungsmodus zu versetzen Wartungsmodus.

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

Da dies standardmäßig der Fall 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 des 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 zum Microsoft Software Key Storage Provider zurückzukehren und zusätzlich alle anderen Schlüsselkonfigurationseinstellungen auf die Standardwerte zurückzusetzen.

Beispiel 2 – Den Autorisierungszertifikatsschlüssel in einem TPM speichern

Dieses Beispiel veranschaulicht das Speichern des FAS-Autorisierungszertifikatsschlüssels in einem TPM (real oder virtuell), während die Benutzerzertifikatsschlü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 in ihrer Größe eingeschrä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 HSMs zum Speichern sowohl des Autorisierungszertifikats als auch der privaten Schlüssel von Benutzerzertifikaten. Dieses Beispiel setzt ein konfiguriertes HSM voraus. Ihr HSM wird einen Providernamen haben. Zum Beispiel: HSM Vendor Key Storage Provider.

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

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 – Elliptic Curve-Schlüssel verwenden

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

  • Das Beispiel verwendet unterschiedliche Schlüssellängen. 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 können Autorisierungs- und Benutzerzertifikatsanfragen von der CA abgelehnt werden, da die minimale Schlüssellänge in den FAS-Zertifikatvorlagen standardmäßig auf 1024 Bit eingestellt ist.

Daher ist es für dieses Beispiel notwendig, die minimale Schlüssellänge in den Vorlagen wie folgt zu ändern:

  • Citrix_RegistrationAuthority_ManualAuthorization und Citrix_RegistrationAuthority: Ändern Sie die minimale Schlüssellänge auf 384 (oder kleiner)
  • Citrix_SmartcardLogon: Ändern Sie die minimale Schlüssellänge auf 256 (oder kleiner)

  • Um die Vorlagen zu bearbeiten, führen Sie mmc.exe aus und fügen Sie das Snap-In Zertifikatvorlagen hinzu. Suchen Sie die Vorlage und öffnen Sie deren Eigenschaften. Die Einstellung für die minimale Schlüssellänge befindet sich auf der Registerkarte Kryptografie der Vorlageneigenschaften.

Hinweis:

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

Testen der privaten Schlüsselkonfiguration

Obwohl der Befehl Set-FasKeyConfig eine gewisse Validierung durchführt, ist es dennoch möglich, eine ungültige Schlüsselkonfiguration festzulegen. Beispielsweise könnten Sie einen Fehler im Providernamen Ihres HSMs machen, oder die von Ihnen angegebene Schlüssellänge wird von Ihrer Hardware möglicherweise nicht unterstützt.

  • Der Befehl Test-FasKeyConfig kann helfen. Er versucht, ein Schlüsselpaar unter Verwendung der aktuellen Schlüsselkonfiguration zu erstellen, und meldet Erfolg oder Fehler. Tritt ein Fehler auf, wird ein Hinweis auf den Fehlergrund gegeben. Bei Erfolg wird das Schlüsselpaar sofort zerstört.

Die folgenden PowerShell-Befehle testen die Autorisierungs- bzw. Benutzer-Schlüsselkonfiguration:

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

Sobald Sie Ihren FAS-Server autorisiert und eine Regel erstellt haben, können Sie zusätzlich einen Test-CSR für ein Benutzerzertifikat wie folgt 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 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üfen von FAS-Zertifikaten

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

Überprüfen des Autorisierungszertifikats

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

Autorisierungszertifikat

Für detailliertere 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.

PrivateKeyProvider Speicherort des Schlüssels
Microsoft Software Key Storage Provider Der Schlüssel wird auf der Festplatte gespeichert und durch den Softwareanbieter von Microsoft geschützt.
Microsoft Platform Crypto Provider Der Schlüssel wird in einem TPM (real oder virtuell) gespeichert.
HSM Vendor Key Storage Provider (nur Beispiel) Der Schlüssel wird in einem HSM gespeichert (in diesem Beispiel heißt der Anbieter des Herstellers HSM Vendor Key Storage Provider)

Überprüfen von Benutzerzertifikaten

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

Get-FasUserCertificate -Address localhost -KeyInfo $true

Der Parameter KeyInfo bewirkt, dass die Ausgabe weitere Informationen über den mit dem Zertifikat verknüpften privaten Schlüssel enthält. Insbesondere gibt das Feld PrivateKeyProvider an, wo das mit dem Zertifikat verknüpfte Schlüsselpaar gespeichert ist (siehe den vorherigen Abschnitt zur Interpretation dieses Wertes).

Sie können die zurückgegebene Menge von Zertifikaten mithilfe verschiedener optionaler Parameter filtern, z. B. -UserPrincipalName.

Das Zertifikatsfeld der Befehlsausgabe ist ein PEM-kodiertes Benutzerzertifikat. Kopieren Sie den Text in eine .crt-Datei, um das Zertifikat mit der Windows-Zertifikats-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 wir das allererste Benutzerzertifikat aus
$CertInfo.Certificate > c:\temp\user.crt Leitet die PEM-Daten in eine .crt-Datei um
c:\temp\user.crt Öffnet 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 wurden die Eigenschaften privater Schlüssel durch Bearbeiten der XML-Datei unter

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

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

Im Gegensatz zu den XML-Dateieinstellungen bleiben Konfigurationen, die mit PowerShell vorgenommen wurden, auch nach einem Upgrade des FAS-Servers erhalten.

Die für die Konfiguration privater Schlüssel relevanten XML-Dateieinstellungen sind wie folgt aufgeführt, zusammen mit ihren entsprechenden PowerShell-Parametern (wie in Get-FasKeyConfig und Set-FasKeyConfig verwendet):

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

GenerateNonExportableKey

-Exportable
-UseDefaultTpmProvider
  • NoProtection wird erreicht, indem -Exportable auf $true gesetzt wird
    -GenerateNonExportableKey wird erreicht, indem -Exportable auf $false gesetzt wird
    -GenerateTPMProtectedKey wird erreicht, indem der Schalter -UseDefaultTpmProvider angegeben wird
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 Standardwerte der XML-Konfiguration und die PowerShell-Standardwerte sind funktional äquivalent. Das heißt, standardmäßig sind die Eigenschaften von Schlüsselpaaren, die von FAS in dieser Version und in Versionen vor Citrix Virtual Apps and Desktops 2411 generiert werden, identisch.

Wenn Sie daher keine der vorstehenden Einstellungen in der XML-Konfigurationsdatei geändert haben, müssen Sie beim Upgrade von FAS keine Maßnahmen ergreifen.

Wenn Sie jedoch eine der vorstehenden Einstellungen geändert haben, führen Sie das Upgrade von FAS wie folgt durch:

  • Versetzen Sie FAS in den Wartungsmodus; Wartungsmodus.
  • Führen Sie ein direktes Upgrade von FAS durch, indem Sie einfach das FAS-Installationsprogramm ausführen; nach dem Upgrade sind alle vorherigen Einstellungen nicht mehr in der XML-Datei vorhanden und können auch nicht mehr in der XML-Datei konfiguriert werden.
  • Verwenden Sie den PowerShell-Befehl Set-FasKeyConfig, wie unter PowerShell-Befehle zur Schlüsselkonfiguration beschrieben, um die FAS-Konfiguration für private Schlüssel nach Wunsch einzustellen; berücksichtigen Sie die Einstellungen, die Sie für Ihre Autorisierungs- und Benutzerzertifikate benötigen.
  • Testen Sie Ihre Konfiguration, wie unter Testen der Konfiguration für private Schlüssel beschrieben.
  • Nehmen Sie den FAS-Server aus dem Wartungsmodus.

Beim nächsten Upgrade bleiben die FAS-Konfigurationseinstellungen für private Schlüssel erhalten, und es sind keine besonderen Maßnahmen erforderlich.

Kryptografisches Remoting

Private Schlüssel, die mit FAS-Benutzerzertifikaten verknüpft sind, werden niemals auf den VDA übertragen. Stattdessen wird die kryptografische Anforderung an den FAS-Server zurückgeleitet, wenn der VDA ein FAS-Benutzerzertifikat verwenden muss, sei es für die Anmeldung am VDA oder für die Verwendung innerhalb einer Sitzung. Dies verbessert die Sicherheit, da die privaten Schlüssel den FAS-Schlüsselspeicher (unabhängig davon, ob es sich um Softwarespeicher, TPM oder HSM handelt) niemals verlassen.

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

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

  • CitrixLogonCsp.dll: für Single Sign-On am VDA
  • CitrixVirtualSmartcardCsp.dll: für In-Session-Zertifikate

Ab Citrix Virtual Apps and Desktops 2411 werden zusätzliche Key Storage Providers (KSPs) auf dem VDA bereitgestellt. Anwendungen und Betriebssystemcode greifen über die neuere Windows CNG API darauf zu. Die neuen Anbieter sind:

  • CitrixLogonKsp.dll: für Single Sign-On am VDA
  • CitrixVirtualSmartcardKsp.dll: für In-Session-Zertifikate

KSP ist eine aktuellere Methode, kryptografische Operationen Windows-Anwendungen zugänglich zu machen, die mehr Funktionen bietet. 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 FAS als auch der VDA Citrix Virtual Apps and Desktops 2411 oder höher ausführen. Andernfalls greift das System auf die Verwendung der älteren CSPs für das Remoting zurück.

KSP-Remoting deaktivieren

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

Verwenden Sie das folgende PowerShell-Cmdlet:

Set-FasServer -Address localhost -KspRemoting $false

Wartungsmodus

Wenn Sie Änderungen an der Konfiguration eines aktiven FAS-Servers vornehmen, sollten Sie ihn in den Wartungsmodus versetzen.

Wenn sich FAS im Wartungsmodus befindet, gilt Folgendes:

  • Wenn Workspace oder StoreFront™ FAS als Teil der Startsequenz einer veröffentlichten Anwendung oder eines Desktops aufrufen, zeigt FAS an, dass es sich im Wartungsmodus befindet; der Aufrufer muss darauf reagieren, indem er einen anderen FAS-Server wählt.
  • Als zusätzliche Vorsichtsmaßnahme erlaubt FAS die automatische Erstellung von Benutzerzertifikaten im Wartungsmodus nicht. Dadurch wird die unbeabsichtigte Erstellung von Benutzerzertifikaten mit unbeabsichtigten Einstellungen vermieden.
  • Aktivitäten, die bestehende Benutzerzertifikate betreffen, wie z. B. die VDA-Anmeldung oder die Verwendung innerhalb einer Sitzung, sind jedoch weiterhin zulässig.

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

Verwenden der Verwaltungskonsole

Wartungsmodus

Verwenden von PowerShell

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

Set-FasServer -Address localhost -MaintenanceMode $true

Nehmen Sie einen FAS-Server wie folgt aus dem Wartungsmodus (und zurück in den normalen Betrieb):

Set-FasServer -Address localhost -MaintenanceMode $false

Verwandte Informationen