Citrix Networking SSL/TLS Best Practices

Übersicht

Dieses Tech Paper enthält die erforderlichen Schritte zur Validierung der vorhandenen SSL\ TLS-Konfiguration eines virtuellen Servers, der auf einem Citrix ADC ausgeführt wird, und Möglichkeiten, um sicherzustellen, dass Best Practices angewendet werden. Wir decken Konfigurationselemente wie die an den virtuellen Server gebundene Zertifikatskette, die Einstellungen der Cipher Suite und die Deaktivierung älterer Protokolle ab, die anfällig für Angriffe sind.

Es gibt viele Tools, mit denen die Konfiguration einer öffentlich zugänglichen Site validiert werden kann, die von Citrix ADC geschützt ist - ein solches Tool ist das SSL-Servertest von Qualys SSL Labs. Es führt eine robuste Reihe von Tests für Ihren Server durch und bietet eine leicht lesbare Scorecard, mit der Sie Ihre Konfiguration verbessern können. Der Scan ist kostenlos und dauert nur etwa eine Minute.

Qualys entwickeln aktiv den SSL-Test und als solche werden sich die Tests wahrscheinlich in Zukunft ändern, wenn neue Protokolle erstellt werden und neue Schwachstellen gefunden werden. Aufgrund dieser Sicherheitsanfälligkeit empfiehlt es sich, Sites regelmäßig zu testen, um sicherzustellen, dass keine neuen Schwachstellen aufgedeckt werden.

Hinweis: SSLlabs veröffentlicht die getestete Server-URL zusammen mit dem Endergebnis auf ihrem öffentlichen Dashboard, es sei denn, die Option, die Ergebnisse nicht auf den Boards anzuzeigen, wird ausgewählt.

Konfigurationselemente, die validiert werden müssen

  • Zertifikate - Wird die vollständige Kette bereitgestellt und vertrauenswürdig? Ist der Signaturalgorithmus sicher?
  • Protokolle, Schlüssel und Verschlüsselungsunterstützung - Welche SSL- und TLS-Protokollversionen werden unterstützt? Welche Verschlüsselungssammlungen werden bevorzugt und in welcher Reihenfolge? Unterstützen die bereitgestellten Verschlüsselungssammlungen Vorwärtsgeheimnis?
  • TLS Handshake Simulation - Bestimmt, welches Protokoll und welche Chiffre von mehreren verschiedenen Clients und Browsern ausgehandelt werden
  • Protokolldetails - Wird eine sichere Neuverhandlung unterstützt? Wird strenge Transportsicherheit (HSTS) unterstützt?
  • Bekannte Sicherheitslücken - Ist der Server anfällig für Angriffe wie POODLE, BEAST oder TLS-Downgrade?

Nach Abschluss des SSLLabs-Tests wird eine Briefnote zusammen mit einer Punktskala für jede der vier Kategorien dargestellt:

1 Zertifikat 2 Protokoll Unterstützung 3 Schlüsselaustausch 4 Verschlüsselungsstärke

Jede der oben genannten Kategorien erhält eine numerische Bewertung, die dann in eine Gesamtpunktzahl gemittelt wird. Es gibt auch Sonderfälle oder Konfigurationen, die die endgültige Note einschränken oder Punkte wegnehmen - z. B. wenn ein Zertifikat nicht vertrauenswürdig ist oder SSLv3 aktiviert ist. Vollständige Dokumentation darüber, wie SSL Labs Tests bewertet werden, kann finden Sie hier.

Citrix Receiver\ Workspace App Cipher Unterstützung für Gateway-Bereitstellungen

**Wichtig:** Lesen Sie die folgenden Artikel zur Unterstützung von Clientchiffren bei der Bereitstellung eines virtuellen Gateway-Servers für virtuelle Apps und Desktops: CTX234227 für Citrix Receiver und CTX250104 für Workspace-App

Umsetzungsbedenken

Einige der in diesem Artikel aufgeführten Konfigurationsschritte können zu Verbindungsproblemen mit älteren Clients und Browsern führen. Beispielsweise unterstützt Windows XP SP2 keine SHA256-Zertifikate; ältere Webbrowser können TLS1.2 oder ECC-Verschlüsselungen nicht unterstützen. In Fällen, in denen der Support fehlt, kann es beim Kunden zu Fehlermeldungen oder der Unfähigkeit kommen, die Site anzuzeigen.

Hinweis: Im Abschnitt “ Firmware Notes “ finden Sie erforderliche Builds und andere Hinweise zur spezifischen ADC-Firmware

Grundlegende Schritte - GUI

Im Folgenden werden allgemeine Schritte durchgeführt, die zuerst unternommen werden, um eine hohe Punktzahl beim SSL Labs-Test zu gewährleisten.

  • Stellen Sie sicher, dass der ADC eine aktuelle Firmware-Version ausführt - 10.5 Build 67 oder höher wird empfohlen

    • Deaktivieren Sie SSLv3 auf allen virtuellen Servern (oder SSL-Profilen bei Verwendung von SSL-Standardprofil) im Abschnitt SSL-Parameter der virtuellen Serverkonfiguration

SSLv3-Disabled

  • Stellen Sie sicher, dass die Zertifikatkette vollständig und vertrauenswürdig ist
    • Zertifikate werden nicht immer von einer Zertifizierungsstelle signiert, der jeder Endpunkt von Natur aus vertraut. Oft werden sie von einer Zwischenzertifizierungsstelle signiert
    • Das Zwischenzertifikat wird auf dem ADC installiert und dann mit dem Serverzertifikat verknüpft, das an den virtuellen Server gebunden ist
    • Zwischenzertifikate werden von dem Anbieter bereitgestellt, der das Serverzertifikat bereitgestellt hat, häufig in einem “Zertifikatspaket”. Sie sind in der Regel auch auf der öffentlichen Site des Anbieters zu finden
    • Es kann mehrere Zwischenzertifikate geben, die installiert und verknüpft werden müssen. Damit das Serverzertifikat funktioniert, muss der Client eine Zertifikatskette erhalten, die mit einem CA-Zertifikat endet, dem der Client bereits vertraut
    • Das Stammzertifikat, das zum Signieren des Zwischenzertifikats verwendet wird, wird wahrscheinlich von allen Clients vertrauenswürdig sein.
    • Um das Intermediate Zertifikat zu installieren, gehen Sie zu: Traffic Management > SSL > Zertifikate > CA-Zertifikate, und wählen Sie Installieren (Hinweis: frühere Builds von Citrix ADC verfügen nicht über die Option ‘CA Certificates’ in der GUI).
    • Sobald das Zwischenzertifikat installiert ist, kann es mit dem Serverzertifikat verknüpft werden, indem Sie das Zertifikat auswählen und im Aktionsmenü den Link auswählen.
    • Wenn das richtige Zwischenzertifikat installiert ist, wird es automatisch im Verknüpfungsmenü ausgefüllt.

CA-Zertifikatinstallation

Zertifikat-Link

Zertifikatgebundene

  • Stellen Sie sicher, dass TLSv1.2 auf allen virtuellen Servern (oder SSL-Profilen bei Verwendung von SSL-Standardprofil) im Abschnitt SSL-Parameter der virtuellen Serverkonfiguration aktiviert ist

TLSv12-Enabled

  • Sichere Neuverhandlung zulassen
    • Gehen Sie zu Traffic Management > SSL und wählen Sie Erweiterte SSL-Einstellungen ändern
    • Setzen Sie die SSL-Neuverhandlung verweigern auf NONSECURE, damit nur Clients, die RFC 5746 unterstützen, neu verhandeln können

Sichere Neuverhandlung

  • Erstellen eines DH-Schlüssels, der von den DHE-Verschlüsselungssammlungen verwendet werden soll
    • Hinweis: Das Erstellen und Binden eines DH-Schlüssels ist optional, langsamer und nur für ältere Kunden nützlich, die keinen ECDHE-Support haben. Wenn ein DH-Schlüssel nicht gebunden ist, werden DHE Cipher Suites ignoriert.
    • Gehen Sie zu Traffic Management > SSL und wählen Sie Create Diffie-Hellman (DH) key
    • Geben Sie im Feld DH-Dateiname einen Dateinamen für die Schlüsseldatei ein (Hinweis: Der Standardpfad auf der Appliance ist /nsconfig/ssl/)
    • Geben Sie die gewünschte DH-Schlüsselgröße in DH Parameter Size ein - entweder 1024 oder 2048 (Hinweis: 4096 Bit DH-Tasten werden derzeit nicht unterstützt)
    • Hinweis: Die DH-Schlüsselgröße wird voraussichtlich die gleiche Größe wie der RSA-Schlüssel haben und beträgt normalerweise 2048 Bit
    • Wählen Sie entweder den 2 oder 5 Zufallszahlengenerator
    • Klicken Sie auf Erstellen - Schlüsselgenerierung kann einige Zeit dauern

DH-Generieren

  • Binden Sie den DH-Schlüssel an den virtuellen Server
    • Öffnen Sie auf dem ausgewählten virtuellen Server den Abschnitt SSL-Parameter und klicken Sie auf die Schaltfläche “Bearbeiten” (Bleistift oben rechts)
    • Aktivieren Sie das Kontrollkästchen DH Param aktivieren
    • Setzen Sie den Dateipfad auf die zuvor erstellte Schlüsseldatei

DH-Bindung

  • Erstellen einer benutzerdefinierten Verschlüsselungsgruppe, die Forward Secrecy (FS) bereitstellt
    • Gehen Sie zu Traffic Management > SSL > Chiffre Groups und wählen Sie Hinzufügen
    • Geben Sie einen Namen für die Chiffregruppe ein
    • Klicken Sie auf + Hinzufügen und erweitern Sie dann den Abschnitt + ALL - wählen Sie die folgenden Verschlüsselungssammlungen aus:
      • TLS1.3-CHACHA20-POLY1305-SHA256
      • TLS1.3-AES128-GCM-SHA256
      • TLS1.3-AES256-GCM-SHA384
      • TLS1.2-ECDHE-ECDSA-AES256-SHA384
      • TLS1.2-ECDHE-ECDSA-AES256-GCM-SHA384
      • TLS1.2-DHE-RSA-AES256-GCM-SHA384
      • TLS1.2-ECDHE-ECDSA-AES128-GCM-SHA256
      • TLS1.2-ECDHE-RSA-CHACHA20-POLY1305
      • TLS1.2-ECDHE-ECDSA-CHACHA20-POLY1305
      • TLS1.2-ECDHE-RSA-AES256-GCM-SHA384
    • Klicken Sie auf den Pfeil > nach rechts, um die Chiffre aus der Spalte Verfügbar in die Spalte Konfiguriert zu verschieben.
    • Klicken Sie auf Erstellen

Erstellen-Gruppe

  • Binden Sie die Cipher Group an den virtuellen Server
    • Öffnen Sie auf dem ausgewählten virtuellen Server den Abschnitt SSL-Verschlüsselung und klicken Sie auf die Schaltfläche “Bearbeiten” (Bleistift in der oberen rechten Ecke)
    • Entfernen Sie alle vorhandenen Chiffre- oder Chiffregruppen, indem Sie die Schaltfläche Alle entfernen oder das Symbol - auf jedem Element verwenden.
    • Wählen Sie das Optionsfeld “ Verschlüsselungsgruppen “ und wählen Sie die zuvor erstellte Verschlüsselungsgruppe aus.
    • Klicken Sie auf OK.

Add-Gruppe

Add-Cipher-Gruppe

  • Entrist Transport Security (HSTS) auf dem virtuellen Server aktivieren
    • Öffnen Sie auf dem ausgewählten virtuellen Server den Abschnitt SSL-Parameter und klicken Sie auf die Schaltfläche “Bearbeiten” (Bleistift oben rechts)
    • Aktivieren Sie das Kontrollkästchen, um HSTSzu aktivieren
    • Geben Sie 157680000 in das Feld Max. Alter ein
    • Hinweis: Dieses Flag ist in Builds 12.0 35 und höher verfügbar. Für frühere Buildsfinden Sie in diesem Artikel, um HSTS-Unterstützung hinzuzufügen.

HSTS-fähig

Grundlegende Schritte - CLI

Im Folgenden werden allgemeine Schritte durchgeführt, die zuerst unternommen werden, um eine hohe Punktzahl beim SSL Labs-Test zu gewährleisten. In den folgenden CLI-Beispielen wird der Name des virtuellen SSL-Servers als ex-vServer aufgeführt - er kann durch den Namen des virtuellen SSL-Servers in Ihrer Umgebung ersetzt werden.

  • Stellen Sie sicher, dass SSL3 deaktiviert ist und TLS1.2 auf einem virtuellen Server namens _ex-vServer_aktiviert ist
set ssl vserver Ex-vServer -ssl3 DISABLED -tls1 ENABLED -tls11 ENABLED -tls12 ENABLED
<!--NeedCopy-->
  • Um NUR TLS1.2 und TLS1.3 auf ex-vServer zu aktivieren, verwenden Sie den folgenden Befehl anstelle der oben genannten
set ssl vserver Ex-vServer -ssl3 DISABLED -tls1 DISABLED -tls11 DISABLED -tls12 ENABLED -tls13 ENABLED
<!--NeedCopy-->
  • Sichere Neuverhandlung zulassen
set ssl parameter -denySSLReneg NONSECURE
<!--NeedCopy-->
  • Erstellen und Binden eines DH-Schlüssels an einen virtuellen Server namens ex-vServer
create ssl dhparam DH_Key_Name_Here.key 2048 -gen 2

set ssl vServer Ex-vServer -dh ENABLED -dhFile DH_Key_Name_Here.key
<!--NeedCopy-->
  • Erstellen einer benutzerdefinierten Verschlüsselungsgruppe, die ECDHE und ECDSA-Verschlüsselungssammlungen bevorzugt
add ssl cipher New_APlus_CipherGroup

bind ssl cipher New_APlus_CipherGroup -cipherName TLS1.3-CHACHA20-POLY1305-SHA256

bind ssl cipher New_APlus_CipherGroup -cipherName TLS1.3-AES128-GCM-SHA256

bind ssl cipher New_APlus_CipherGroup -cipherName TLS1.3-AES256-GCM-SHA384

bind ssl cipher New_APlus_CipherGroup -cipherName TLS1.2-ECDHE-ECDSA-AES256-SHA384

bind ssl cipher New_APlus_CipherGroup -cipherName TLS1.2-ECDHE-ECDSA-AES256-GCM-SHA384

bind ssl cipher New_APlus_CipherGroup -cipherName TLS1.2-DHE-RSA-AES256-GCM-SHA384

bind ssl cipher New_APlus_CipherGroup -cipherName TLS1.2-ECDHE-ECDSA-AES128-GCM-SHA256

bind ssl cipher New_APlus_CipherGroup -cipherName TLS1.2-ECDHE-RSA-CHACHA20-POLY1305

bind ssl cipher New_APlus_CipherGroup -cipherName TLS1.2-ECDHE-ECDSA-CHACHA20-POLY1305

bind ssl cipher New_APlus_CipherGroup -cipherName TLS1.2-ECDHE-RSA-AES256-GCM-SHA384
<!--NeedCopy-->
  • Binden Sie die Standard-Chiffrengruppe vom virtuellen Server ab und binden Sie die benutzerdefinierte Gruppe
unbind ssl vServer Ex-vServer -cipherName DEFAULT

bind ssl vServer Ex-vServer -cipherName New_APlus_CipherGroup

bind ssl vServer Ex-vServer -eccCurveName ALL
<!--NeedCopy-->
  • Aktivieren Sie Strict Transport Security (HSTS) auf einem virtuellen Server namens ex-vServer
set ssl vServer Ex-vServer -HSTS ENABLED -maxage 157680000
<!--NeedCopy-->

Weitere Einstellungen

SHA1-Zertifikate

Zertifikate, die mit SHA1 signiert sind, gelten als schwach und verhindern einen hohen Grad im SSLlabs-Test. Wenn Zertifikate SHA1-signiert sind, werden sie mit einem SHA256-Zertifikat erneuert und auf dem ADC installiert.

DNS CAA

Mit der DNS-Zertifizierungsautorisierung (CAA) können Zertifizierungsstellen überprüfen, ob sie zur Ausstellung von Zertifikaten für eine Domäne berechtigt sind, und einen Kontakt bereitstellen, wenn etwas schief geht.

Dies wird auf DNS-Servern und nicht auf der ADC-Appliance konfiguriert.

Firmware-Hinweise

Da neue Schwachstellen entdeckt werden, werden sie von SSLLabs getestet, so dass häufige Tests empfohlen werden. Einige Sicherheitsanfälligkeiten werden durch Citrix ADC Codeverbesserungen behoben.

  • Erforderliche Mindestversion: 10.5 Build 67

  • Die ROBOT-Schwachstelle wurde in Builds 12.0 Build 53, 11.1 Build 56, 11.0 Build 71 und 10.5 Build 67 behoben -weitere Details finden Sie hier

  • Das HSTS-Flag (Strict Transport Security) wurde in 12.0 Build 35 verfügbar - vorherige Builds erforderten eine Rewrite-Richtlinie, um den HSTS-Header einzufügen. Sie können nicht beide verwenden, da dies dazu führt, dass 2 Header eingefügt werden, was nicht erlaubt ist.

  • Unterstützung für TLS1.2 wurde den VPX-Appliances in 10.5 Build 57hinzugefügt. Es war in früheren Builds für Appliances mit dedizierter SSL-Hardware verfügbar

  • Unterstützung für TLS1.3 wurde in 12.1 Build 49.23 hinzugefügt - sie muss im vServer\SSLProfile aktiviert sein, und TLS1.3 Chiffre (aufgelistet) müssen gebunden sein

  • ECC-Zertifikatsunterstützung wurde den VPX-Appliances in 12.0 Build 57hinzugefügt. Es war in früheren Builds für Appliances mit dedizierter SSL-Hardware verfügbar

  • Die Zombie POODLE-Schwachstelle wurde in Builds 12.1 Build 50.31, 12.0 Build 60.9, 11.1 Build 60.14, 11.0 Build 72.17 und 10.5 Build 69.5angesprochen. Diese Sicherheitsanfälligkeit betrifft nur MPX\ SDX-Appliances mit Nitrox SSL-Hardware, was bedeutet, dass MPX\ SDX-Appliances mit Coleto Creek nicht anfällig sind. Die Deaktivierung von CBC-basierten Cipher Suites wird diese Schwachstelle ebenfalls verringern. Siehe CTX-Artikel für weitere Informationen

  • Die Chiffre Liste wurde geändert, um CBC-Schwächen zu beheben, wodurch 0xc028 und 0x39 Chiffren entfernt werden

Citrix Networking SSL/TLS Best Practices