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.
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
-
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-SHA384Explanation: 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
andmaxProtocolVersion
both be set toTLSv1_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-SHA384Explanation: 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
-
Restrict TLS to Version 1.2
Set both
minProtocolVersion
andmaxProtocolVersion
toTLSV1_2
in your Gateway TLS configuration:tls:
minProtocolVersion: TLSV1_2
maxProtocolVersion: TLSV1_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 -
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.
- Use Istio’s built-in checks or similar logic (like the