Citrix ADC

SSL-Profilinfrastruktur

Sicherheitsanfälligkeiten in der SSLv3- und RC4-Implementierung haben betont, dass die neuesten Verschlüsselungen und Protokolle verwendet werden müssen, um die Sicherheitseinstellungen für eine Netzwerkverbindung auszuhandeln. Das Implementieren von Änderungen an der Konfiguration, wie das Deaktivieren von SSLv3 über Tausende von SSL-Endpunkten, ist ein umständlicher Prozess. Daher wurden Einstellungen, die Teil der SSL-Endpunktkonfiguration waren, zusammen mit den Standardverschlüsselungen in die SSL-Profile verschoben. Um Änderungen in der Konfiguration zu implementieren, einschließlich der Verschlüsselungsunterstützung, müssen Sie nur das Profil ändern, das an die Entitäten gebunden ist.

Die standardmäßigen Front-End- und Standard-Back-End-SSL-Profile enthalten zusätzlich zu den Einstellungen, die Teil der alten Profile waren, alle Standardchiffern und ECC-Kurven. Beispielausgaben für die Standardprofile sind im Anhang enthalten. Der Vorgang Standardprofil aktivieren bindet das Standard-Front-End-Profil automatisch an alle Front-End-Entitäten und das Standard-Back-End-Profil an alle Back-End-Entitäten. Sie können ein Standardprofil entsprechend Ihrer Bereitstellung ändern. Sie können auch benutzerdefinierte Profile erstellen und an SSL-Entitäten binden.

Das Front-End-Profil enthält Parameter, die für ein Front-End-Objekt gelten. Das heißt, sie gelten für die Entität, die Anforderungen von einem Client empfängt. Normalerweise handelt es sich bei dieser Entität um einen virtuellen SSL-Server oder einen transparenten SSL-Dienst auf der Citrix ADC Appliance. Das Back-End-Profil enthält Parameter, die für eine Back-End-Entität gelten. Das heißt, sie gelten für die Entität auf der ADC-Appliance, die Clientanforderungen an einen Back-End-Server sendet. In der Regel handelt es sich bei dieser Entität um einen SSL-Dienst auf der Citrix ADC Appliance. Wenn Sie versuchen, einen nicht unterstützten Parameter zu konfigurieren, wird der FehlerERROR: Specified parameters are not applicable for this type of SSL profile angezeigt.

Wichtig:

Wenn Sie nach dem Upgrade die Standardprofile aktivieren, können Sie die Änderungen nicht rückgängig machen. Das heißt, die Profile können nicht deaktiviert werden. Speichern Sie die Konfiguration und erstellen Sie eine Kopie der Konfigurationsdatei (ns.conf), bevor Sie die Profile aktivieren. Wenn Sie jedoch die Features im Standardprofil nicht verwenden möchten, können Sie weiterhin die alten SSL-Profile verwenden. Weitere Informationen zu diesen Profilen finden Sie unterLegacy-SSL-Profil.

Ab Version 11.1 51.x wird in der GUI und CLI eine Bestätigungsaufforderung hinzugefügt, wenn Sie das Standardprofil aktivieren, um zu verhindern, dass es versehentlich aktiviert wird.

Befehl:

set ssl parameter -defaultProfile ENABLED
    Save your configuration before enabling the Default profile. You cannot undo the changes. Are you sure you want to enable the Default profile? [Y/N]Y
Done

Standardmäßig gelten einige SSL-Parameter, sogenannte globale Parameter, für alle SSL-Endpunkte. Wenn ein Profil jedoch an einen SSL-Endpunkt gebunden ist, gelten die globalen Parameter nicht. Stattdessen gelten die im Profil angegebenen Einstellungen.

Punkte zu beachten

  1. Ein Profil kann an mehrere virtuelle Server gebunden werden, aber ein virtueller Server kann nur über ein Profil gebunden sein.
  2. Um ein Profil zu löschen, das an einen virtuellen Server gebunden ist, heben Sie zunächst die Bindung des Profils auf.
  3. Eine Chiffre- oder Chiffriergruppe kann an mehrere Profile mit unterschiedlichen Prioritäten gebunden werden.
  4. Ein Profil kann mehrere Chiffre und Verschlüsselungsgruppen an unterschiedliche Prioritäten gebunden sein.
  5. Änderungen an einer Chiffregruppe werden sofort in allen Profilen und in allen virtuellen Servern widergespiegelt, an die eines der Profile gebunden ist.
  6. Wenn eine Verschlüsselungssuite Teil einer Verschlüsselungsgruppe ist, bearbeiten Sie die Verschlüsselungsgruppe, um diese Verschlüsselungssuite zu entfernen, bevor Sie die Verschlüsselungssuite aus dem Profil entfernen.
  7. Wenn Sie einer mit einem Profil verknüpften Verschlüsselungsgruppe oder einer Chiffriergruppe keine Priorität zuweisen, wird ihr die niedrigste Priorität innerhalb des Profils zugewiesen.
  8. Sie können eine benutzerdefinierte Verschlüsselungsgruppe (auch als benutzerdefinierte Verschlüsselungsgruppe bezeichnet) aus vorhandenen Verschlüsselungsgruppen und Verschlüsselungssammlungen erstellen. Wenn Sie Chiffriergruppe A erstellen und vorhandene Chiffriergruppen X und Y hinzufügen, wird Y in dieser Reihenfolge mit einer niedrigeren Priorität als X zugewiesen. Das heißt, die zuerst hinzugefügte Gruppe hat eine höhere Priorität.
  9. Wenn eine Verschlüsselungssuite Teil von zwei Chiffriergruppen ist, die demselben Profil zugeordnet sind, wird die Verschlüsselungssuite nicht als Teil der zweiten Verschlüsselungsgruppe hinzugefügt. Die Chiffre Suite mit der höheren Priorität ist wirksam, wenn Datenverkehr verarbeitet wird.
  10. Verschlüsselungsgruppen werden im Profil nicht erweitert. Dadurch wird die Anzahl der Zeilen in der Konfigurationsdatei (ns.conf) stark reduziert. Wenn beispielsweise zwei Verschlüsselungsgruppen mit jeweils 15 Verschlüsselungen an tausend virtuelle SSL-Server gebunden sind, fügt die Erweiterung 30* 1000 verschlüsselungsbezogene Einträge in der Konfigurationsdatei hinzu. Mit dem neuen Profil hätte es nur zwei Einträge: einen für jede Verschlüsselungsgruppe, die an ein Profil gebunden ist.
  11. Das Erstellen einer benutzerdefinierten Verschlüsselungsgruppe aus vorhandenen Verschlüsselungsgruppen und Chiffriergruppen ist eine Kopier- und Einfügeoperation. Änderungen in der ursprünglichen Gruppe werden nicht in der neuen Gruppe wiedergegeben.
  12. Eine benutzerdefinierte Verschlüsselungsgruppe listet alle Profile auf, zu denen sie gehört.
  13. Ein Profil listet alle virtuellen SSL-Server, -Dienste und -Dienstgruppen auf, an die es gebunden ist.
  14. Wenn die standardmäßige SSL-Profilfunktion aktiviert ist, verwenden Sie das Profil, um eines der Attribute einer SSL-Entität festzulegen oder zu ändern. Beispiel: virtueller Server, Dienst, Dienstgruppe oder interner Dienst.

Speichern der Konfiguration mit der CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

save config

shell

root@ns# cd /nsconfig

root@ns# cp ns.conf ns.conf.NS<currentreleasenumber><currentbuildnumber>

Beispiel:

save config
shell
root@ns# cd /nsconfig
root@ns# cp ns.conf ns.conf.NS.11.0.jun.16

Aktivieren des Standardprofils

Wichtig:

Speichern Sie Ihre Konfiguration, bevor Sie die Software aktualisieren, und aktivieren Sie die Standardprofile.

Ab Release 11.1 Build 51.x erscheint in der GUI und CLI eine Bestätigungsaufforderung, wenn Sie das Standardprofil aktivieren, um zu vermeiden, dass es versehentlich aktiviert wird.

Befehl: Der folgende Befehl aktiviert das Standardprofil und bindet dieses Profil an die SSL-Entitäten, an die ein Profil bereits gebunden ist. Das heißt, wenn ein Profil (z. B. P1) bereits an eine SSL-Entität gebunden ist, wird P1 durch das Standard-Front-End-Profil oder das Standard-Back-End-Profil ersetzt. Das ältere Profil (P1) wird nicht gelöscht. Es ist jetzt ein erweitertes SSL-Profil und enthält die früheren Einstellungen sowie die Chiffre und ECC-Kurven. Wenn Sie das Standardprofil nicht möchten, können Sie P1 explizit an die SSL-Entität binden.

set ssl parameter -defaultProfile ENABLED
    Save your configuration before enabling the Default profile. You cannot undo the changes. Are you sure you want to enable the Default profile? [Y/N]Y
Done

Aktualisieren Sie die Software auf einen Build, der die erweiterte Profilinfrastruktur unterstützt, und aktivieren Sie dann die Standardprofile.

Hinweise:

  • Wenn ein Legacy-Profil (P1) bereits an eine SSL-Entität gebunden ist und Sie das Standardprofil aktivieren, überschreibt das Standardprofil die frühere Bindung. Das heißt, das Standardprofil ist an die SSL-Entitäten gebunden. Wenn das Standardprofil nicht gebunden werden soll, müssen Sie P1 erneut an die SSL-Entität binden.

  • Ein einzelner Vorgang (Standardprofil aktivieren oderset ssl parameter -defaultProfile ENABLED) aktiviert (bindet) sowohl das Standard-Front-End-Profil als auch das Standard-Back-End-Profil.

Anwendungsfall

Nachdem Sie die Standardprofile aktiviert haben, sind sie an alle SSL-Endpunkte gebunden. Die Standardprofile können bearbeitet werden. Wenn Ihre Bereitstellung die meisten Standardeinstellungen verwendet und nur wenige Parameter ändert, können Sie die Standardprofile bearbeiten. Die Änderungen werden sofort über alle Endpunkte reflektiert. Sie können auch benutzerdefinierte SSL-Profile mit einigen benutzerdefinierten und einigen Standardparametern erstellen und an die SSL-Entitäten binden.

Im folgenden Flussdiagramm werden die Schritte erläutert, die Sie ausführen müssen:

SSL-Profile Anwendungsfall 1

  1. Hinweise zum Aktualisieren der Software finden Sie unterAktualisieren der Systemsoftware.

  2. Aktivieren Sie die Standardprofile mit der CLI oder GUI.

  • Geben Sie in der Befehlszeile Folgendes ein: set ssl parameter -defaultProfile ENABLED
  • Wenn Sie die GUI bevorzugen, navigieren Sie zu Traffic Management > SSL > Erweiterte SSL-Einstellungen ändern, scrollen Sie nach unten, und wählen Sie Standardprofil aktivieren aus.

Wenn ein Profil vor dem Upgrade nicht an einen Endpunkt gebunden war, ist ein Standardprofil an den SSL-Endpunkt gebunden. Wenn ein Profil vor dem Upgrade an einen Endpunkt gebunden wurde, wird dasselbe Profil nach dem Upgrade gebunden, und Standardchiffre werden dem Profil hinzugefügt.

  1. (Optional) Ändern Sie manuell alle Einstellungen im Standardprofil.
  • Geben Sie in der Befehlszeile:set ssl profile <name> gefolgt von den zu ändernden Parametern ein.
  • Wenn Sie die GUI lieber verwenden möchten, navigieren Sie zu System > Profile. Wählen Sie unter SSL-Profileein Profil aus und klicken Sie auf Bearbeiten.

SSL-Profilparameter

Sie können die folgenden SSL-Parameter in einem SSL-Profil festlegen. Sie können einige dieser Parameter in einem virtuellen SSL-Server festlegen. Weitere Hinweise zu virtuellen SSL-Serverparametern finden Sie unterParameter des virtuellen SSL-Servers.

Unterstützung für sichere Neuverhandlung am Back-End einer Citrix ADC Appliance

Hinweis: Dieser Parameter wird in Version 13.0 Build 58.x und höher eingeführt. In früheren Versionen und Builds wurde nur eine nicht sichere Neuverhandlung auf dem Back-End unterstützt.

Die Funktion wird auf den folgenden Plattformen unterstützt:

  • VPX
  • MPX-Plattformen mit N2- oder N3-Chips
  • Intel Coleto SSL-Chip-basierte Plattformen

Die Funktion wird auf der FIPS-Plattform noch nicht unterstützt.

Sichere Neuverhandlung wird standardmäßig auf dem Back-End einer ADC-Appliance verweigert. Das heißt, derdenySSLReneg Parameter ist auf ALL gesetzt (Standard).

Um eine sichere Neuverhandlung auf dem Back-End zu ermöglichen, wählen Sie eine der folgenden Einstellungen für den Parameter denySSLReneg aus:

  • NO
  • FRONTEND_CLIENT
  • FRONTEND_CLIENTSERVER
  • NONSECURE

Sichere Neuverhandlung über die CLI aktivieren

Geben Sie an der Eingabeaufforderung Folgendes ein:

set ssl profile <name> -denySSLReneg <denySSLReneg>

Beispiel:

set ssl profile ns_default_ssl_profile_backend -denySSLReneg NONSECURE
 Done

sh ssl profile ns_default_ssl_profile_backend
1)  Name: ns_default_ssl_profile_backend    (Back-End)
    SSLv3: DISABLED TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED  TLSv1.3: DISABLED
    Server Auth: DISABLED
    Use only bound CA certificates: DISABLED
    Strict CA checks:       NO
    Session Reuse: ENABLED      Timeout: 300 seconds
    DH: DISABLED
    Ephemeral RSA: DISABLED
    Deny SSL Renegotiation      NONSECURE
    Non FIPS Ciphers: DISABLED
    Cipher Redirect: DISABLED
    SSL Redirect: DISABLED
    Send Close-Notify: YES
    Strict Sig-Digest Check: DISABLED
    Push Encryption Trigger: Always
    PUSH encryption trigger timeout:    1 ms
    SNI: DISABLED
    OCSP Stapling: DISABLED
    Strict Host Header check for SNI enabled SSL sessions:      NO
    Push flag:  0x0 (Auto)
    SSL quantum size:       8 kB
    Encryption trigger timeout  100 mS
    Encryption trigger packet count:    45

    ECC Curve: P_256, P_384, P_224, P_521

1)  Cipher Name: DEFAULT_BACKEND        Priority :2
    Description: Predefined Cipher Alias

1)  Service Name: s187
 Done

Sichere Neuverhandlung über die GUI aktivieren

  1. Navigieren Sie zu System > Profile > SSL-Profil.
  2. Hinzufügen oder Bearbeiten eines Profils.
  3. Setzen Sie SSL-Neuverhandlung verweigern auf einen anderen Wert als ALL.

    Back-End-sichere Neuverhandlung SSL-Profil

Host-Header Validierung

Hinweis: Dieser Parameter wird in Version 13.0 Build 52.x eingeführt.

Mit HTTP/1.1 mussten Clients mehrere Verbindungen verwenden, um mehrere Anfragen zu verarbeiten. Mit HTTP/2 können Clients Verbindungen über Domänen hinweg wiederverwenden, die von demselben Zertifikat abgedeckt sind. Um dieser Änderung Rechnung zu tragen, muss die ADC-Appliance für eine SNI-aktivierte Sitzung steuern können, wie der HTTP-Host-Header validiert wird. In früheren Builds löschte die Appliance die Anforderung ab, wenn der Parameter aktiviert war (auf “Ja” gesetzt) und die Anforderung nicht den Host-Header für eine SNI-aktivierte Sitzung enthielt. Wenn der Parameter deaktiviert wurde (auf “Nein” gesetzt), hat die Appliance die Validierung nicht durchgeführt. Ein neuer ParameterSNIHTTPHostMatch wird einem SSL-Profil und globalen SSL-Parametern hinzugefügt, um eine bessere Kontrolle über diese Validierung zu haben. Dieser Parameter kann drei Werte annehmen: CERT, STRICT und NONE. Diese Werte funktionieren nur für SNI-aktivierte Sitzungen wie folgt. SNI muss auf dem virtuellen SSL-Server oder dem an den virtuellen Server gebundenen Profil aktiviert sein, und die HTTP-Anforderung muss den Host-Header enthalten.

  • CERT - Verbindung wird weitergeleitet, wenn der Host-Headerwert in der Anforderung durch das Zertifikat abgedeckt wird, das zum Herstellen dieser SSL-Sitzung verwendet wird.
  • STRICT - Verbindung wird nur weitergeleitet, wenn der Host-Headerwert in der Anforderung genau mit dem Servernamenwert übereinstimmt, der in der Client Hello Nachricht der SSL-Verbindung übergeben wurde.
  • NO - Der Host-Headerwert wird nicht validiert.

Mögliche Werte: NO, CERT, STRICT Standardwert: CERT

Mit der Einführung des neuen Parameters SNIHTTPHostMatch ändert sich das Verhalten des Parameters dropReqWithNoHostHeader. Die Einstellung des Parameters dropReqWithNoHostHeader wirkt sich nicht mehr darauf aus, wie der Host-Header mit dem SNI-Zertifikat validiert wird.

Festlegen von SSL-Profilparametern mit der CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

set ssl profile <name> [-ssllogProfile <string>] [-dh ( ENABLED | DISABLED ) -dhFile <string>] [-dhCount <positive_integer>][-dhKeyExpSizeLimit ( ENABLED | DISABLED )] [-eRSA ( ENABLED | DISABLED) [-eRSACount <positive_integer>]] [-sessReuse ( ENABLED | DISABLED )
[-sessTimeout <positive_integer>]] [-cipherRedirect ( ENABLED | DISABLED ) [-cipherURL <URL>]] [-clientAuth ( ENABLED | DISABLED )[-clientCert ( Mandatory | Optional )]] [-sslRedirect ( ENABLED |
DISABLED )] [-redirectPortRewrite ( ENABLED | DISABLED )] [-ssl3 (ENABLED | DISABLED )] [-tls1 ( ENABLED | DISABLED )] [-tls11 ( ENABLED| DISABLED )] [-tls12 ( ENABLED | DISABLED )] [-tls13 ( ENABLED |DISABLED )] [-SNIEnable ( ENABLED | DISABLED )] [-ocspStapling (ENABLED | DISABLED )] [-serverAuth ( ENABLED | DISABLED )] [-commonName <string>] [-pushEncTrigger <pushEncTrigger>] [-sendCloseNotify ( YES |
NO )] [-clearTextPort <port|*>] [-insertionEncoding ( Unicode | UTF-8)] [-denySSLReneg <denySSLReneg>] [-quantumSize <quantumSize>]
[-strictCAChecks ( YES | NO )] [-encryptTriggerPktCount <positive_integer>] [-pushFlag <positive_integer>][-dropReqWithNoHostHeader ( YES | NO )] [-SNIHTTPHostMatch <SNIHTTPHostMatch>] [-pushEncTriggerTimeout <positive_integer>]
[-sslTriggerTimeout <positive_integer>] [-clientAuthUseBoundCAChain (ENABLED | DISABLED )] [-sslInterception ( ENABLED | DISABLED )][-ssliReneg ( ENABLED | DISABLED )] [-ssliOCSPCheck ( ENABLED | DISABLED )] [-ssliMaxSessPerServer <positive_integer>] [-HSTS ( ENABLED| DISABLED )] [-maxage <positive_integer>] [-IncludeSubdomains ( YES | NO )] [-preload ( YES | NO )] [-sessionTicket ( ENABLED | DISABLED )][-sessionTicketLifeTime <positive_integer>] [-sessionTicketKeyRefresh (ENABLED | DISABLED )] {-sessionTicketKeyData } [-sessionKeyLifeTime <positive_integer>] [-prevSessionKeyLifeTime <positive_integer>]
[-cipherName <string> -cipherPriority <positive_integer>][-strictSigDigestCheck ( ENABLED | DISABLED )]
[-skipClientCertPolicyCheck ( ENABLED | DISABLED )] [-zeroRttEarlyData ( ENABLED | DISABLED )] [-tls13SessionTicketsPerAuthContext
<positive_integer>] [-dheKeyExchangeWithPsk ( YES | NO )]

TLS-Sitzungsticketerweiterung

Ein SSL-Handshake ist ein CPU-intensiver Betrieb. Wenn die Sitzungswiederverwendung aktiviert ist, wird der Server-/Clientschlüsselaustauschvorgang für vorhandene Clients übersprungen. Sie dürfen ihre Sitzungen fortsetzen. Diese Aktion verbessert die Antwortzeit und erhöht die Anzahl der SSL-Transaktionen pro Sekunde, die ein Server unterstützen kann. Allerdings muss der Server Details zu jedem Sitzungsstatus speichern, der Speicher belegt und schwer auf mehreren Servern freigegeben werden kann, wenn Anforderungen über Server verteilt werden.

Citrix ADC Appliances unterstützen die SessionTicket TLS-Erweiterung. Die Verwendung dieser Erweiterung zeigt an, dass die Sitzungsdetails auf dem Client und nicht auf dem Server gespeichert werden. Der Client muss angeben, dass er diesen Mechanismus unterstützt, indem er die TLS-Erweiterung des Sitzungstickets in die Client-Hello -Nachricht einschließt. Für neue Clients ist diese Erweiterung leer. Der Server sendet ein neues Sitzungsticket in der NewsessionTicket-Handshake-Nachricht. Das Sitzungsticket wird verschlüsselt, indem ein Schlüsselpaar verwendet wird, das nur dem Server bekannt ist. Wenn ein Server jetzt kein neues Ticket ausstellen kann, wird ein normaler Handshake abgeschlossen.

Diese Funktion ist nur in Front-End-SSL-Profilen und nur am Frontend der Kommunikation verfügbar, bei der die Appliance als Server fungiert und Sitzungstickets generiert.

Einschränkungen

  • Diese Funktion wird auf einer FIPS-Plattform nicht unterstützt.
  • Diese Funktion wird nur mit TLS-Versionen 1.1 und 1.2 unterstützt.
  • Die Persistenz der SSL-Sitzungs-ID wird bei Sitzungstickets nicht unterstützt.

Aktivieren der TLS-Sitzungsticketerweiterung mit der CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

set ssl profile <name> -sessionTicket (ENABLED | DISABLED ) [-sessionTicketLifeTime <positive_integer>

Argumente:

SessionTicket: Status der TLS-Sitzungsticketerweiterung. Die Verwendung dieser Erweiterung zeigt an, dass die Sitzungsdetails auf dem Client und nicht auf dem Server gespeichert werden, wie in RFC 5077 definiert.

Mögliche Werte: ENABLED, DISABLED

Standardwert: DISABLED

SessionTicketLifetime: Geben Sie eine Zeit in Sekunden an, nach der das Sitzungsticket abläuft und ein neuer SSL-Handshake gestartet werden muss.

Standardwert: 300

Mindestwert: 0

Maximalwert: 172800

Beispiel:

add ssl profile profile1 -sessionTicket ENABLED -sessionTicketlifeTime 300
Done

Aktivieren der TLS-Sitzungsticketerweiterung mit der GUI

  1. Navigieren Sie zu System > Profile . Wählen Sie SSL-Profile aus.
  2. Klicken Sie auf Hinzufügen, und geben Sie einen Namen für das Profil an.
  3. Wählen Sie Sitzungsticketaus.
  4. Geben Sie optional die Gültigkeitsdauer des Sitzungstickets (Sekunden)an.

Sichere Implementierung von Sitzungstickets

Mithilfe von TLS-Sitzungstickets können Clients abgekürzte Handshakes für eine schnellere Wiederherstellung der Verbindung zu Servern verwenden. Wenn Sitzungstickets jedoch nicht verschlüsselt oder über längere Zeit geändert werden, können sie ein Sicherheitsrisiko darstellen. Sie können Sitzungstickets sichern, indem Sie sie mit einem symmetrischen Schlüssel verschlüsseln. Um die Weiterleitungsgeheimnis zu erreichen, können Sie ein Zeitintervall angeben, in dem der Sitzungsticketschlüssel aktualisiert wird.

Die Appliance generiert standardmäßig die Sitzungsticket-Schlüssel. Wenn jedoch mehrere Appliances in einer Bereitstellung die Sitzungstickets des anderen entschlüsseln müssen, müssen sie alle denselben Sitzungsticketschlüssel verwenden. Daher müssen Sie die gleichen Sitzungs-Ticket-Schlüsseldaten manuell auf allen Appliances festlegen (hinzufügen oder laden). Die Schlüsseldaten für das Session-Ticket umfassen folgende Informationen:

  • Name des Sitzungstickets.
  • Sitzungs-AES-Schlüssel, der zum Verschlüsseln oder Entschlüsseln des Tickets verwendet wird.
  • Session-HMAC-Schlüssel verwendet, um den Digest des Tickets zu berechnen.

Sie können jetzt Sitzungsticketschlüsseldaten der Länge 64 Byte so konfigurieren, dass 256-Bit-HMAC-Schlüssel unterstützt werden, wie in RFC 5077 empfohlen. Aus Gründen der Abwärtskompatibilität werden auch Schlüssellängen von 48 Byte unterstützt.

Hinweis:

Stellen Sie beim manuellen Eingeben der Sitzungsticketschlüsseldaten sicher, dass die Konfiguration über alle Citrix ADC Appliances in einem HA-Setup oder in einem Cluster-Setup identisch ist.

DersessionTicketKeyLifeTime Parameter gibt an, wie oft ein Sitzungsticketschlüssel aktualisiert wird. Sie können denprevSessionTicketKeyLifeTime Parameter festlegen, um festzulegen, wie lange der vorherige Sitzungsticketschlüssel für die Entschlüsselung von Tickets mit diesem Schlüssel beibehalten wird, nachdem ein neuer Schlüssel generiert wurde. DieprevSessionTicketKeyLifeTime Einstellung verlängert die Zeit, für die ein Client einen abgekürzten Handshake verwenden kann, um die Verbindung wiederherzustellen. Wenn beispielsweise auf 10 Minuten undsessionTicketKeyLifeTime auf 5 Minuten festgelegtprevSessionTicketKeyLifeTime ist, wird nach 10 Minuten ein neuer Schlüssel generiert und für alle neuen Sitzungen verwendet. Allerdings haben zuvor verbundene Kunden weitere 5 Minuten, für die zuvor ausgestellte Tickets für einen abgekürzten Handshake geehrt werden.

Konfigurieren von SSL-Session-Ticket-Daten mit der CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

set ssl profile <name> -sessionTicket ENABLED -sessionTicketLifeTime <positive_integer> -sessionTicketKeyRefresh ( ENABLED | DISABLED )] -sessionTicketKeyLifeTime <positive_integer> [-prevSessionTicketKeyLifeTime <positive_integer>]

Argumente:

SessionTicket: Verwenden Sie Session-Tickets wie in RFC 5077 beschrieben. Für die Einrichtung des ersten Handshakes sind CPU-intensive Verschlüsselungsvorgänge mit öffentlichen Schlüsseln erforderlich. Mit der Einstellung ENABLED gibt ein Server ein Sitzungsticket an einen Client aus, mit dem der Client einen abgekürzten Handshake ausführen kann.

Mögliche Werte: ENABLED, DISABLED. Standard: DISABLED

SessionTicketLifetime: Lebensdauer des Sitzungstickets in Sekunden. Nach Ablauf dieser Zeit können Clients dieses Ticket nicht verwenden, um ihre Sitzungen fortzusetzen.

Maximalwert: 172800 Mindestwert: 0. Standard: 300.

SessionTicketKeyRefresh: Wenn die Zeit abläuft, die durch den Parameter der Lebenszeit des Sitzungsticketschlüssels angegeben wird, generieren Sie den Sitzungsticketschlüssel, der zum Verschlüsseln oder Entschlüsseln der Sitzungstickets verwendet wird. Automatisch aktiviert, wenn SessionTicket aktiviert ist. Deaktiviert, wenn ein Administrator die Sitzungs-Ticket-Daten eingibt.

Mögliche Werte: ENABLED, DISABLED. Standard: ENABLED

SessionKeyLifetime: Die Lebensdauer eines symmetrischen Schlüssels, der zum Verschlüsseln der von einer Citrix ADC Appliance ausgestellten Sitzungstickets in Sekunden verwendet wird.

Maximalwert: 86400 Mindestwert: 600 Standard: 3000

PrevSessionKeyLifetime: Zeit in Sekunden, für die der vorherige symmetrische Schlüssel, der zum Verschlüsseln von Sitzungstickets verwendet wird, für bestehende Clients gültig bleibt, nachdem die Gültigkeitsdauer des Sitzungsticketschlüssels abgelaufen ist. Innerhalb dieser Zeit können vorhandene Clients ihre Sitzungen mit dem vorherigen Sitzungsticketschlüssel fortsetzen. Sitzungstickets für neue Clients werden mithilfe des neuen Schlüssels verschlüsselt.

Maximalwert: 172800 Mindestwert: 0. Standard: 0

Beispiel:

set ssl profile ns_default_ssl_profile_frontend -sessionTicket ENABLED -sessionTicketlifeTime 120 -sessionTicketKeyRefresh ENABLED -sessionTicketKeyLifeTime 100 -prevSessionTicketKeyLifeTime 60

Done

show ssl profile ns_default_ssl_profile_frontend

    Session Ticket: ENABLED
    Session Ticket Lifetime: 120 (secs)
    Session Key Auto Refresh: ENABLED
    Session Key Lifetime: 100 (secs)
    Previous Session Key Lifetime: 60 (secs)

Konfigurieren von SSL-Session-Ticket-Daten mit der GUI

  1. Navigieren Sie zu System > Profile, und wählen Sie SSL-Profil aus.

  2. Wählen Sie ns_default_ssl_profile_frontend und klicken Sie auf Bearbeiten.

  3. Klicken Sie im Abschnitt Grundeinstellungen auf das Stiftsymbol und legen Sie die folgenden Parameter fest:

    • Sitzungsticket
    • Sitzungs-Ticket-Lebensdauer (Sekunden)
    • Automatische Aktualisierung des Sitzungsticketschlüssels
    • Lebensdauer des Sitzungsticketschlüssels (Sekunden)
    • Lebensdauer des vorherigen Sitzungsticketschlüssels (Sekunden)
  4. Klicken Sie auf OK.

Geben Sie SSL-Sitzungsticketdaten manuell mit der CLI ein

Geben Sie an der Eingabeaufforderung Folgendes ein:

set ssl profile <name> -sessionTicket ENABLED

set ssl profile <name> -sessionTicketKeyData

show ssl profile ns_default_ssl_profile_frontend

Argumente:

SessionTicket: Verwendung von Session-Tickets wie in RFC 5077 beschrieben. Für die Einrichtung des ersten Handshakes sind CPU-intensive Verschlüsselungsvorgänge mit öffentlichen Schlüsseln erforderlich. Mit der Einstellung ENABLED gibt ein Server ein Sitzungsticket an einen Client aus, mit dem der Client einen abgekürzten Handshake ausführen kann.

Mögliche Werte: ENABLED, DISABLED. Standard: DISABLED

SessionTicketKeyData: Enthält den Namen des Sitzungstickets (0-15 Bytes), den Sitzungs-AES-Schlüssel, der zum Verschlüsseln oder Entschlüsseln des Sitzungstickets verwendet wird (16-31 Bytes) und den Sitzungs-HMAC-Schlüssel, mit dem der Digest des Tickets berechnet wird (32-63 Bytes). Extern von einem Administrator generiert und zu einer Citrix ADC Appliance hinzugefügt.

Maximale Länge: 64 Byte

Beispiel:

set ssl profile ns_default_ssl_profile_frontend -sessionTicket ENABLED

Done

set ssl profile ns_default_ssl_profile_frontend -sessionTicketKeyData 111111111111111111111111111111111111111111111111

Done

show ssl profile ns_default_ssl_profile_frontend

    1) Name: ns_default_ssl_profile_frontend (Front-End)
    SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: ENABLED TLSv1.2: ENABLED
    Client Auth: DISABLED
    Use only bound CA certificates: DISABLED
    Strict CA checks: NO
    Session Reuse: ENABLED Timeout: 120 seconds
    DH: DISABLED
    DH Private-Key Exponent Size Limit: DISABLED Ephemeral RSA: ENABLED Refresh Count: 0
    Deny SSL Renegotiation ALL
    Non FIPS Ciphers: DISABLED
    Cipher Redirect: DISABLED
    SSL Redirect: DISABLED
    Send Close-Notify: YES
    Push Encryption Trigger: Always
    PUSH encryption trigger timeout: 1 ms
    SNI: DISABLED
    OCSP Stapling: DISABLED
    Strict Host Header check for SNI enabled SSL sessions: NO
    Push flag: 0x0 (Auto)
    SSL quantum size: 8 kB
    Encryption trigger timeout 100 mS
    Encryption trigger packet count: 45
    Subject/Issuer Name Insertion Format: Unicode
    Session Ticket: ENABLED
    Session Ticket Lifetime: 300 (secs)
    Session Key Auto Refresh: DISABLED
    Session Key Lifetime: 3000 (secs)
    Previous Session Key Lifetime: 0 (secs)
    Session Key Data: 84dad1afc6d56b0deeb0a7fd7f299a207e8d8c15cdd087a5684a11a329fd732e87a0535d90883
    47e8c181ba266f5c8838ae472cb3ab9255b683bf922fad32cee816c329989ef7cdeb278e93ac37882e3

    ECC Curve: P_256, P_384, P_224, P_521

    1) Cipher Name: DEFAULT Priority :4
    Description: Predefined Cipher Alias

    1) Internal Service Name (Front-End): nsrnatsip-127.0.0.1-5061
    2) Internal Service Name (Front-End): nskrpcs-127.0.0.1-3009
    3) Internal Service Name (Front-End): nshttps-::1l-443
    4) Internal Service Name (Front-End): nsrpcs-::1l-3008
    5) Internal Service Name (Front-End): nshttps-127.0.0.1-443
    6) Internal Service Name (Front-End): nsrpcs-127.0.0.1-3008
    7) Vserver Name: v1

Done

Geben Sie SSL-Sitzungsticketdaten manuell mit der GUI ein

  1. Navigieren Sie zu System > Profile, und wählen Sie SSL-Profil aus.

  2. Wählen Sie ns_default_ssl_profile_frontend und klicken Sie auf Bearbeiten.

  3. Klicken Sie im Abschnitt Grundeinstellungen auf das Stiftsymbol und legen Sie die folgenden Parameter fest:

    • Sitzungsticket
    • Schlüsseldaten des Sitzungstickets
    • Sitzungsticketschlüsseldaten bestätigen
  4. Klicken Sie auf OK.

Unterstützung für Extended Master Secret in SSL-Handshake auf Citrix ADC Nicht-FIPS-Plattformen

Hinweis: Dieser Parameter wird in Version 13.0 Build 61.x eingeführt.

Extended Master Secret (EMS) ist eine optionale Erweiterung des TLS-Protokolls (Transport Layer Security). Zur Unterstützung von EMS auf der Citrix ADC Appliance wird ein neuer Parameter hinzugefügt, der sowohl für Front-End- als auch für Back-End-SSL-Profile gilt. Wenn der Parameter aktiviert ist und der Peer EMS unterstützt, verwendet die ADC-Appliance die EMS-Berechnung. Wenn der Peer EMS nicht unterstützt, wird die EMS-Berechnung für die Verbindung nicht verwendet, obwohl der Parameter auf der Appliance aktiviert ist. Weitere Informationen zu EMS finden Sie unter RFC 7627.

Hinweis: Extended Master Secret ist nur für Handshakes anwendbar, die TLS-Protokoll Version 1.0, 1.1 oder 1.2 verwenden.

Plattformunterstützung für EMS

  • MPX- und SDX-Plattformen, die entweder Cavium N3-Chips oder Intel Coleto Creek Kryptokarten enthalten. Folgende Plattformen werden mit Intel Coleto-Chips ausgeliefert:
  • MPX 5900
  • MPX/SDX 8900
  • MPX/SDX 26000
  • MPX/SDX 26000-50S
  • MPS/SDX 26000-100G
  • MPX/SDX 15000-50G

Sie können auch den Befehl “show hardware” verwenden, um festzustellen, ob Ihre Appliance über Coleto (COL) - oder N3-Chips verfügt.

  • MPX- und SDX-Plattformen ohne Kryptokarten (nur Software).

  • Nur-Softwareplattformen: VPX, CPX und BLX.

EMS kann auf folgenden Plattformen nicht aktiviert werden:

  • MPX 9700 FIPS und MPX 14000 FIPS Plattformen.

  • MPX- und SDX-Plattformen, die Cavium N2-Kryptochips enthalten.

Wenn der Parameter aktiviert ist, versucht die ADC-Appliance, EMS in TLS 1.2-, TLS 1.1- und TLS 1.0-Verbindungen zu verwenden. Die Einstellung wirkt sich nicht auf TLS 1.3 oder SSLv3 Verbindungen aus.

Damit EMS mit dem Peer ausgehandelt werden kann, aktivieren Sie die Einstellung für das SSL-Profil, das an den virtuellen Server (Front-End) oder Dienst (Back-End) gebunden ist.

Erweiterten Master-Secret über die CLI aktivieren

Geben Sie an der Eingabeaufforderung Folgendes ein:

set ssl profile <profile name> [-allowExtendedMasterSecret (YES | NO)]

Beispiele

set ssl profile ns_default_ssl_profile_frontend  -allowExtendedMasterSecret YES

set ssl profile ns_default_ssl_profile_backend  -allowExtendedMasterSecret YES

Die folgende Tabelle zeigt den Standardwert desallowExtendedMasterSecret Parameters für verschiedene Standard- und benutzerdefinierte Profile.

Profil Standardeinstellung
Standard-Frontend-Profil NO
Standard-Sicheres Front-End-Profil YES
Standard-Back-End-Profil NO
Benutzerdefiniertes Profil NO

Erweiterten Master-Secret über die GUI aktivieren

  1. Navigieren Sie zu System > Profile > SSL-Profil.
  2. Fügen Sie ein Profil hinzu oder bearbeiten Sie ein Profil.
  3. Setzen Sie Extended Master Secret zulassen auf YES.

    Erweitertes Master-Geheimnis

Unterstützung für die Verarbeitung der ALPN-Erweiterung in der Client-Hallo Nachricht

Hinweis: Diese Funktion wird in Version 13.0 Build 61.x und höher unterstützt.

Um das Anwendungsprotokoll in der ALPN-Erweiterung für die Verbindungen auszuhandeln, die vom virtuellen SSL_TCP-Server verarbeitet werden, wird den Front-End-SSL-Profilen ein Parameter alpnProtocol hinzugefügt. Nur das im SSL-Profil angegebene Protokoll wird ausgehandelt, wenn dasselbe Protokoll in der ALPN-Erweiterung der Client-Hallo Nachricht empfangen wird.

Hinweis: Der Parameter alpnProtocol wird nur auf Front-End-SSL-Profilen unterstützt und gilt für SSL-Verbindungen, die von virtuellen Servern vom Typ SSL_TCP verarbeitet werden.

Festlegen des Protokolls im Front-End-SSL-Profil über die CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

set ssl profile ns_default_ssl_profile_frontend -alpnProtocol <protocol_name>

Der Parameter alpnProtocol kann drei Werte annehmen. Maximale Länge: 4096 Bytes.

  • NONE: Die Aushandlung des Anwendungsprotokolls findet nicht statt. Dies ist die Standardeinstellung.
  • HTTP1: HTTP1 kann als Anwendungsprotokoll ausgehandelt werden.
  • HTTP2: HTTP2 kann als Anwendungsprotokoll ausgehandelt werden.

Beispiel:

set ssl profile ns_default_ssl_profile_frontend -ALPNProtocol HTTP2
> sh ssl profile ns_default_ssl_profile_frontend
1)  Name: ns_default_ssl_profile_frontend   (Front-End)
    SSLv3: DISABLED TLSv1.0: ENABLED  TLSv1.1: ENABLED  TLSv1.2: ENABLED  TLSv1.3: DISABLED
    Client Auth: DISABLED
    Use only bound CA certificates: DISABLED
    Strict CA checks:   NO
    Session Reuse: ENABLED  Timeout: 120 seconds
    DH: DISABLED
    DH Private-Key Exponent Size Limit: DISABLED    Ephemeral RSA: ENABLED  Refresh Count: 0
    Deny SSL Renegotiation  ALL
    Non FIPS Ciphers: DISABLED
    Cipher Redirect: DISABLED
    SSL Redirect: DISABLED
    Send Close-Notify: YES
    Strict Sig-Digest Check: DISABLED
    Zero RTT Early Data: DISABLED
    DHE Key Exchange With PSK: NO
    Tickets Per Authentication Context: 1
    Push Encryption Trigger: Always
    PUSH encryption trigger timeout:    1 ms
    SNI: DISABLED
    OCSP Stapling: DISABLED
    Strict Host Header check for SNI enabled SSL sessions:  NO
    Match HTTP Host header with SNI:    CERT
    Push flag:  0x0 (Auto)
    SSL quantum size:   8 kB
    Encryption trigger timeout  100 mS
    Encryption trigger packet count:    45
    Subject/Issuer Name Insertion Format:   Unicode

    SSL Interception: DISABLED
    SSL Interception OCSP Check: ENABLED
    SSL Interception End to End Renegotiation: ENABLED
    SSL Interception Maximum Reuse Sessions per Server: 10
    Session Ticket: DISABLED
    HSTS: DISABLED
    HSTS IncludeSubDomains: NO
    HSTS Max-Age: 0
    HSTS Preload: NO
    Allow Extended Master Secret: NO
    Send ALPN Protocol: HTTP2

 Done

Festlegen des Protokolls im Front-End-SSL-Profil über die GUI

  1. Navigieren Sie zu System > Profile, und wählen Sie SSL-Profil aus.

  2. Wählen Sie ns_default_ssl_profile_frontend und klicken Sie auf Bearbeiten.

  3. Wählen Sie in der Liste ALPN-Protokoll die Option HTTP2 aus.

    ALPN-Protokollauswahl in GUI

Laden einer alten Konfiguration

Das Aktivieren der Standardprofile ist nicht reversibel. Wenn Sie jedoch entscheiden, dass für die Bereitstellung die Standardprofile nicht erforderlich sind, können Sie eine ältere Konfiguration laden, die Sie gespeichert haben, bevor Sie die Standardprofile aktivieren. Die Änderungen sind wirksam, nachdem Sie die Appliance neu gestartet haben.

Laden einer alten Konfiguration mit der CLI

Geben Sie an der Eingabeaufforderung Folgendes ein:

shell

root@ns# clear config

root@ns# cd /nsconfig

root@ns# cp ns.conf.NS.11.0.jun.16 ns.conf

root@ns# reboot