Citrix Gateway-Zertifikatpinning mit Android Citrix SSO

Das Anheften von Zertifikaten hilft, Man-in-the-Middle-Angriffe zu verhindern. Citrix SSO unterstützt das Anheften von Zertifikaten nur für verwaltete VPN-Konfigurationen im Android Enterprise-Modus und im Administratormodus für ältere Geräte. Es wird nicht für VPN-Profile unterstützt, die vom Endbenutzer hinzugefügt wurden.

Konfigurieren des Citrix Gateway-Zertifikats mit Android Citrix SSO

Einzelheiten zum Anheften von Zertifikaten in der verwalteten Konfiguration (früher App-Einschränkungen) für Citrix SSO finden Sie unter Zertifikate und Authentifizierung.

Ein neues Schlüssel-Wert-Paar ist definiert, um die angeheftete Citrix Gateway-Zertifikatshashes wie folgt zu tragen.

Key: ServerCertificatePins
Value: {
  "hash-alg": "sha256",
  "pinset": [
    "cert1_base64_encoded_SHA-256_hash_of_the_X509_SubjectPublicKeyInfo(SPKI)",
    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
    "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB="
    ...
  ]
}
<!--NeedCopy-->

Der Schlüssel zur Angabe von Details zum Anheften von Zertifikaten in der verwalteten Konfiguration ist ServerCertificatePins. Der Wert ist eine JSON-Nutzlast, die die base64-codierten SHA-256-Hashes des angehefteten Citrix Gateway-Zertifikats und des verwendeten Hashing-Algorithmus trägt. Das angeheftete Zertifikat kann jedes der vom Betriebssystem validierten Zertifikate in der Vertrauenskette sein. In diesem Fall ist es Android.

Das Anheften des Zertifikats erfolgt erst, nachdem das Betriebssystem die Zertifikatskette während des TLS-Handshakes validiert hat. Die Pin des Zertifikats wird berechnet, indem die öffentlichen Schlüsselinformationen (SPKI) des Zertifikats gehasht werden. Beide Felder (“Hash-Alg” und “Pinset”) müssen in der JSON-Nutzlast angegeben werden.

Das “Hash-Alg” gibt den Hashing-Algorithmus an, der zur Berechnung des SPKI-Hashs verwendet wird. Das “Pinset” gibt das JSON-Array an, das den base64-codierten SHA-256-Hash der SPKI-Daten des Citrix Gateway-Zertifikats enthält. Für die Zertifikat-Pin muss mindestens ein Wert angegeben werden. Es können mehr Pinwerte angegeben werden, um eine Rotation oder einen Ablauf des Zertifikats zu ermöglichen.

Sie können den Wert für den Pin für eine Domäne (z. B. gw.yourdomain.com) mithilfe des folgenden openssl-Befehls berechnen.

openssl s_client -servername gw.yourdomain.com -connect gw.yourdomain.com:443 | openssl x509 -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
<!--NeedCopy-->

Der Befehl zeigt den base64-codierten SHA-256-Hash des Blatt-Zertifikats an, das von einem Gateway präsentiert wird. Jedes Zertifikat in der Kette kann für das Anheften von Zertifikaten verwendet werden. Wenn ein Unternehmen beispielsweise seine eigene zwischengeschaltete CA zum Generieren von Zertifikaten für mehrere Gateways verwendet, kann eine dem Zwischensignaturzertifikat entsprechende Pin verwendet werden. Wenn keiner der Pins mit den Zertifikaten in der validierten Zertifikatskette übereinstimmt, wird der TLS-Handshake abgebrochen und die Verbindung zum Gateway wird nicht fortgesetzt.

Hinweis:

Im Geräteadministratormodus wird das Anheften von Zertifikaten nur mit Citrix Endpoint Management- und Microsoft Endpoint Management-Lösungen unterstützt. Das Anheften von Zertifikaten muss in den benutzerdefinierten Parametern konfiguriert werden, die im Legacy-VPN-Profil (nicht verwaltete Konfiguration) mit dem benutzerdefinierten Parameter ServerCertificatePins mit derselben JSON-Nutzlast für das Anheften verwendet werden.

Citrix Gateway-Zertifikatpinning mit Android Citrix SSO