Schutz privater Schlüssel

Einführung

FAS-Zertifikate werden in einer eingebetteten Datenbank auf dem FAS-Server gespeichert. Die privaten Schlüssel, die FAS-Zertifikaten zugeordnet sind, werden unter dem Netzwerkdienstkonto des FAS-Servers gespeichert. Standardmäßig sind die Schlüssel nicht exportierbar, 2048-Bit-RSA, und werden im Microsoft Software-Schlüsselspeicheranbieter 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:

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 ersetzt, die mehr Flexibilität bieten und ohne Neustart des FAS-Servers angewendet werden können. Im Gegensatz zu den XML-Dateieinstellungen bleibt die mit PowerShell vorgenommene Konfiguration außerdem erhalten, wenn der FAS-Server aktualisiert wird. Daher wird die Konfiguration über die 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

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

Informationen zu FAS-Zertifikaten und -Vorlagen

Es gibt zwei Arten von Zertifikaten, die von FAS verwaltet werden: das Autorisierungszertifikat, von dem normalerweise eine Instanz vorhanden ist, 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 Zertifikatanforderungen angibt, liest es den Inhalt der Vorlage nicht. Daher beeinflusst das Ändern der Vorlageneinstellungen die von FAS gestellten Zertifikatanforderungen 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 Reautorisieren 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, 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, die Zertifikate im Namen eines Benutzers anfordert. Das Zertifikat verfügt über die erweiterte Schlüsselverwendung Zertifikatanforderungsagent, die es ermöglicht, es als Autorisierungsnachweis beim Anfordern 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 zum Bootstrapping des Autorisierungsprozesses verwendet;
  • Citrix_RegistrationAuthority: Das mit dieser Vorlage erstellte Zertifikat hat eine lange Gültigkeit 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 vom CA-Administrator manuell 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ültigkeit von einem Tag und wird nur für den folgenden Schritt verwendet. Nach Gebrauch vernichtet 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ültigkeit von zwei Jahren.

Die Einstellungen, die zum Erstellen der zuvor genannten 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, 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ültigkeit 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:

Get-FasKeyConfig -Address localhost -CertificateType user

Optionen für die Speicherung privater Schlüssel

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

  • 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 ist ein Kompromiss zu berücksichtigen. Hardwarespeicher ist möglicherweise sicherer, aber oft weniger leistungsfähig, insbesondere beim Erstellen und Speichern einer großen Anzahl von Benutzerzertifikat-Schlüsselpaaren.

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

Autorisierungszertifikatsschlüssel Benutzerzertifikatsschlüssel 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 Autorisierungszertifikatsschlüssel. 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 sind 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
Länge

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 CA 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.
Exportierbar false Gibt an, ob der private Schlüssel von seinem Anbieter exportiert werden kann.
Präfix keine Gibt ein Präfix an, das dem Bezeichner von privaten Schlüsseln 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“, gibt dies an, dass der Anbieter auf Microsoft Software Key Storage Provider und das Feld KSP auf true gesetzt ist.
IsDefaultTpmProvider Wenn „true“, gibt dies an, dass der Anbieter auf Microsoft Platform Crypto Provider und das Feld KSP auf true gesetzt ist.
Algorithmus
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 indem Sie 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

Stellen Sie in jedem Beispiel die Schlüsselkonfiguration mit dem bereitgestellten PowerShell ein, bevor Sie Ihren FAS-Dienst autorisieren, da die vorhandenen Zertifikate von keiner Konfigurationsänderung 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 einem Live-Bereitstellung befindet, sollten Sie ihn während der Konfigurationsänderungen in den Wartungsmodus 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 Autorisierungszertifikatschlüssel in einem TPM speichern

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 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 hat einen Providernamen. 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 – Elliptische Kurven-Schlüssel verwenden

Standardmäßig generiert FAS RSA-Schlüssel. In diesem Beispiel werden Elliptische Kurven (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 Benutzerzertifikatsanforderungen 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 erforderlich, 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 Konfiguration des privaten Schlüssels

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 eine 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 anzeigen, 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 Wo der Schlüssel gespeichert ist
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 privaten Schlüssel enthält, der dem Zertifikat zugeordnet ist. Insbesondere gibt das Feld PrivateKeyProvider an, wo das dem Zertifikat zugeordnete Schlüsselpaar gespeichert ist (siehe vorheriger Abschnitt zur Interpretation dieses Werts).

Sie können die Menge der zurückgegebenen Zertifikate 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 Ö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 wurden die Eigenschaften des privaten Schlüssels durch Bearbeiten der XML-Datei unter folgendem Pfad konfiguriert:

%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 bleibt die Konfiguration, die mit PowerShell vorgenommen wurde, auch nach einem Upgrade des FAS-Servers erhalten.

Die für die Konfiguration des privaten Schlüssels 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 in der XML-Datei konfiguriert werden.
  • Verwenden Sie den PowerShell-Befehl Set-FasKeyConfig, wie in PowerShell-Befehle zur Schlüsselkonfiguration beschrieben, um die FAS-Konfiguration des privaten Schlüssels nach Wunsch einzustellen; berücksichtigen Sie die Einstellungen, die Sie für Ihre Autorisierungs- und Benutzerzertifikate benötigen.
  • Testen Sie Ihre Konfiguration, wie in Testen der Konfiguration des privaten Schlüssels beschrieben.
  • Nehmen Sie den FAS-Server aus dem Wartungsmodus.

Beim nächsten Upgrade bleiben die Konfigurationseinstellungen des privaten FAS-Schlüssels 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, wenn der VDA ein FAS-Zertifikat eines Benutzers verwenden muss, sei es für die Anmeldung am VDA oder für die Nutzung innerhalb der Sitzung, die kryptografische Anforderung an den FAS-Server zurückgeleitet (remoted). 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 Anbieterpaares 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 Kryptografische Dienstleister (CSPs), wobei der Zugriff für 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 Zertifikate innerhalb der Sitzung

Ab Citrix Virtual Apps and Desktops 2411 werden zusätzliche Schlüsselspeicheranbieter (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 Zertifikate innerhalb der Sitzung

KSP ist eine aktuellere Methode zur Bereitstellung kryptografischer Operationen für Windows-Anwendungen, die mehr Funktionen bietet. Zum Beispiel:

  • Zertifikate mit ECC-Schlüsseln werden unterstützt
  • Probabilistisches Signaturschema (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 FAS sich 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 im Wartungsmodus keine automatische Erstellung von Benutzerzertifikaten. 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 Nutzung innerhalb der 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.

Verwendung der Verwaltungskonsole

Wartungsmodus

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

Set-FasServer -Address localhost -MaintenanceMode $false

Verwandte Informationen