Skip to main content
logoTetrate Istio SubscriptionVersion: Next

TIS1702 - Gateway’s TLS Configuration Does Not Comply with FIPS 140-2 Requirements

The gateway’s TLS configuration (versions or cipher suites) does not meet strict FIPS 140-2 requirements. FIPS-compliant configurations must restrict the TLS protocol to version 1.2 and limit the cipher suites to the four ECDHE-based AES-GCM suites approved under FIPS 140-2.

Recommendation: Adjust Gateway TLS Configuration for Strict FIPS

By ensuring that your gateway’s TLS settings use only TLS 1.2 and the four ECDHE AES-GCM cipher suites, you can maintain strict FIPS compliance for inbound connections to your service mesh.

Examples

  1. Gateway Config Allowing TLS 1.3

    apiVersion: networking.istio.io/v1alpha3
    kind: Gateway
    metadata:
    name: non-fips-gateway
    spec:
    selector:
    istio: ingressgateway
    servers:
    - port:
    number: 443
    name: https
    protocol: HTTPS
    hosts:
    - "*"
    tls:
    mode: SIMPLE
    # minProtocolVersion is TLSv1_2, but maxProtocolVersion is TLSv1_3.
    minProtocolVersion: TLSV1_2
    maxProtocolVersion: TLSV1_3
    cipherSuites:
    - ECDHE-RSA-AES128-GCM-SHA256
    - ECDHE-RSA-AES256-GCM-SHA384

    Explanation: Although TLS 1.2 is allowed, TLS 1.3 is also enabled, which violates strict FIPS 140-2 restrictions. FIPS 140-2 compliance requires minProtocolVersion and maxProtocolVersion both be set to TLSv1_2.

  2. Gateway Config with Extra or Missing Cipher Suites

    apiVersion: networking.istio.io/v1alpha3
    kind: Gateway
    metadata:
    name: invalid-ciphers-gateway
    spec:
    selector:
    istio: ingressgateway
    servers:
    - port:
    number: 443
    name: https
    protocol: HTTPS
    hosts:
    - "*"
    tls:
    mode: SIMPLE
    minProtocolVersion: TLSV1_2
    maxProtocolVersion: TLSV1_2
    cipherSuites:
    # Contains more than the four strict FIPS cipher suites
    - ECDHE-RSA-AES128-GCM-SHA256
    - ECDHE-RSA-AES256-GCM-SHA384
    - TLS_AES_256_GCM_SHA384 # Not in the strict FIPS cipher set
    - ECDHE-ECDSA-AES128-GCM-SHA256
    - ECDHE-ECDSA-AES256-GCM-SHA384

    Explanation: While this configuration restricts TLS to version 1.2, it includes cipher suites (TLS_AES_256_GCM_SHA384) that are not part of the four required for strict FIPS 140-2 compliance. Only these four are allowed:

    ECDHE-ECDSA-AES128-GCM-SHA256  
    ECDHE-RSA-AES128-GCM-SHA256
    ECDHE-ECDSA-AES256-GCM-SHA384
    ECDHE-RSA-AES256-GCM-SHA384

Recommendation

  1. Restrict TLS to Version 1.2

    Set both minProtocolVersion and maxProtocolVersion to TLSV1_2 in your Gateway TLS configuration:

    tls:
    minProtocolVersion: TLSV1_2
    maxProtocolVersion: TLSV1_2
  2. Use Only FIPS-Approved Cipher Suites

    Include only these four cipher suites in the cipherSuites list:

    ECDHE-ECDSA-AES128-GCM-SHA256
    ECDHE-RSA-AES128-GCM-SHA256
    ECDHE-ECDSA-AES256-GCM-SHA384
    ECDHE-RSA-AES256-GCM-SHA384
  3. Validate Gateway Configuration

    • Use Istio’s built-in checks or similar logic (like the checkTLS snippet) to confirm that TLS versions and cipher suites align with strict FIPS 140-2.
    • Attempt a TLS 1.3 handshake (-tls1_3) against the gateway to confirm it is rejected.