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 dasSSL-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——将一张sichere Neuverhandlung unterstutzt吗?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, kannfinden 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毛皮Citrix接收机undCTX250104 für Workspace-App
Umsetzungsbedenken
在diesem Einige derArtikel 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 AbschnittSSL-Parameterder virtuellen Serverkonfiguration
- 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 SieInstallieren(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ü denLinkauswählen.
- Wenn das richtige Zwischenzertifikat installiert ist, wird es automatisch im Verknüpfungsmenü ausgefüllt.
- Stellen Sie sicher, dass TLSv1.2 auf allen virtuellen Servern (oder SSL-Profilen bei Verwendung von SSL-Standardprofil) im AbschnittSSL-Parameterder virtuellen Serverkonfiguration aktiviert ist
- Sichere Neuverhandlung zulassen
- Gehen Sie zuTraffic Management > SSL和民意调查您Erweiterte SSL-Einstellungen ändern
- Setzen Sie dieSSL-Neuverhandlung verweigernaufNONSECURE, damit nur Clients, die RFC 5746 unterstützen, neu verhandeln können
- 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 zuTraffic Management > SSL和民意调查您Create Diffie-Hellman (DH) key
- Geben Sie im FeldDH-Dateinameeinen 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 inDH Parameter Sizeein - 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 aufErstellen- Schlüsselgenerierung kann einige Zeit dauern
- Binden Sie den DH-Schlüssel an den virtuellen Server
- Öffnen Sie auf dem ausgewählten virtuellen Server den AbschnittSSL-Parameterund klicken Sie auf die Schaltfläche “Bearbeiten” (Bleistift oben rechts)
- Aktivieren Sie das KontrollkästchenDH Param aktivieren
- Setzen Sie den Dateipfad auf die zuvor erstellte Schlüsseldatei
- Erstellen einer benutzerdefinierten Verschlüsselungsgruppe, die Forward Secrecy (FS) bereitstellt
- Gehen Sie zuTraffic Management > SSL > Chiffre Groups和民意调查您Hinzufügen
- Geben Sie einen Namen für die Chiffregruppe ein
- Klicken Sie auf+ Hinzufügen und erweitern Siedann 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 SpalteVerfügbar indie SpalteKonfiguriertzu verschieben.
- Klicken Sie aufErstellen
- Binden Sie die Cipher Group an den virtuellen Server
- Öffnen Sie auf dem ausgewählten virtuellen Server den AbschnittSSL-Verschlüsselungund klicken Sie auf die Schaltfläche “Bearbeiten” (Bleistift in der oberen rechten Ecke)
- Entfernen Sie alle vorhandenen Chiffre- oder Chiffregruppen, indemSie die Schaltfläche Alle entfernenoder 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.
- Entrist Transport Security (HSTS) auf dem virtuellen Server aktivieren
- Öffnen Sie auf dem ausgewählten virtuellen Server den AbschnittSSL-Parameterund klicken Sie auf die Schaltfläche “Bearbeiten” (Bleistift oben rechts)
- Aktivieren Sie das Kontrollkästchen, umHSTSzu aktivieren
- Geben Sie157680000in das FeldMax. Alterein
- Hinweis:Dieses Flag ist in Builds 12.0 35 und höher verfügbar. Für frühere Builds法登您在diesem Artikel,嗯HSTS-Unterstützung hinzuzufügen.
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 alsex-vServeraufgefü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
setssl vserver Ex-vServer-ssl3DISABLED-tls1ENABLED-tls11ENABLED-tls12ENABLED <!--NeedCopy-->
- Um NUR TLS1.2 und TLS1.3 aufex-vServerzu aktivieren, verwenden Sie den folgenden Befehl anstelle der oben genannten
setssl vserver Ex-vServer-ssl3DISABLED-tls1DISABLED-tls11DISABLED-tls12ENABLED-tls13ENABLED <!--NeedCopy-->
- Sichere Neuverhandlung zulassen
setssl parameter-denySSLRenegNONSECURE <!--NeedCopy-->
- Erstellen und Binden eines DH-Schlüssels an einen virtuellen Server namensex-vServer
create ssl dhparam DH_Key_Name_Here.key 2048-gen2setssl vServer Ex-vServer-dhENABLED-dhFileDH_Key_Name_Here.key <!--NeedCopy-->
- Erstellen einer benutzerdefinierten Verschlüsselungsgruppe, die ECDHE und ECDSA-Verschlüsselungssammlungen bevorzugt
add ssl cipher New_APlus_CipherGroupbindssl cipher New_APlus_CipherGroup-cipherNameTLS1.3-CHACHA20-POLY1305-SHA256bindssl cipher New_APlus_CipherGroup-cipherNameTLS1.3-AES128-GCM-SHA256bindssl cipher New_APlus_CipherGroup-cipherNameTLS1.3-AES256-GCM-SHA384bindssl cipher New_APlus_CipherGroup-cipherNameTLS1.2-ECDHE-ECDSA-AES256-SHA384bindssl cipher New_APlus_CipherGroup-cipherNameTLS1.2-ECDHE-ECDSA-AES256-GCM-SHA384bindssl cipher New_APlus_CipherGroup-cipherNameTLS1.2-DHE-RSA-AES256-GCM-SHA384bindssl cipher New_APlus_CipherGroup-cipherNameTLS1.2-ECDHE-ECDSA-AES128-GCM-SHA256bindssl cipher New_APlus_CipherGroup-cipherNameTLS1.2-ECDHE-RSA-CHACHA20-POLY1305bindssl cipher New_APlus_CipherGroup-cipherNameTLS1.2-ECDHE-ECDSA-CHACHA20-POLY1305bindssl cipher New_APlus_CipherGroup-cipherNameTLS1.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-cipherNameDEFAULTbindssl vServer Ex-vServer-cipherNameNew_APlus_CipherGroupbindssl vServer Ex-vServer-eccCurveNameALL <!--NeedCopy-->
- Aktivieren Sie Strict Transport Security (HSTS) auf einem virtuellen Server namensex-vServer
setssl vServer Ex-vServer-HSTSENABLED-maxage157680000 <!--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 Builds12.0 Build 53, 11.1 Build 56, 11.0 Build 71 und 10.5 Build 67behoben -weitere Details finden Sie hier
Das HSTS-Flag (Strict Transport Security) wurde in12.0 Build 35verfügbar - vorherige Builds erforderten eine Rewrite-Richtlinie, um den HSTS-Header einzufügen. Sie könnennichtbeide 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 in10.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 in12.1 Build 49.23hinzugefügt - sie muss im vServer\SSLProfile aktiviert sein, und TLS1.3 Chiffre (aufgelistet) müssen gebunden sein
ECC-Zertifikatsunterstützung wurde den VPX-Appliances in12.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 Builds12.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