Skip to content

Commit f07e07d

Browse files
authored
Add ecdh_curves support (#2543)
* Add ecdh_curves support to Gateway Signed-off-by: Faseela K <[email protected]> * Add release notes Signed-off-by: Faseela K <[email protected]> * Support ecdh_curves for destination_rule Signed-off-by: Faseela K <[email protected]> * Fix release note Signed-off-by: Faseela K <[email protected]> * Add ecdh_curves to MeshConfig and remove from DestinationRule Signed-off-by: Faseela K <[email protected]> * rename the TLSConfig for external traffic Signed-off-by: Faseela K <[email protected]> * Make the config mesh_external Signed-off-by: Faseela K <[email protected]> * Retain only MeshConfig changes Signed-off-by: Faseela K <[email protected]> * Manually fix proto.lock Signed-off-by: Faseela K <[email protected]> * make gen Signed-off-by: Faseela K <[email protected]> * rebase Signed-off-by: Faseela K <[email protected]> * Edit ECDH description Signed-off-by: Faseela K <[email protected]> * enhance mesh external description Signed-off-by: Faseela K <[email protected]> * Clarify ecdh curves documentation Signed-off-by: Faseela K <[email protected]> * rebase Signed-off-by: Faseela K <[email protected]> --------- Signed-off-by: Faseela K <[email protected]>
1 parent 4188d5c commit f07e07d

File tree

6 files changed

+658
-530
lines changed

6 files changed

+658
-530
lines changed

mesh/v1alpha1/config.pb.go

Lines changed: 570 additions & 528 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mesh/v1alpha1/config.proto

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1121,13 +1121,34 @@ message MeshConfig {
11211121
// In the current Istio implementation, the maximum TLS protocol version
11221122
// is TLS 1.3.
11231123
TLSProtocol min_protocol_version = 1;
1124+
//
1125+
// Optional: If specified, the TLS connection will only support the specified ECDH curves for the DH key exchange.
1126+
// If not specified, the default curves enforced by envoy will be used. For details about the default curves, refer to
1127+
// [Ecdh Curves](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/transport_sockets/tls/v3/common.proto)
1128+
repeated string ecdh_curves = 2;
11241129
}
11251130

1131+
// The below configuration parameters can be used to specify TLSConfig for in-mesh and mesh-external TLS traffic.
1132+
// For example, a user could enable min TLS version for in-mesh traffic and specify a curve for mesh external traffic like below:
1133+
// meshConfig:
1134+
// meshMTLS:
1135+
// minProtocolVersion: TLSV1_3
1136+
// meshExternalTLS:
1137+
// ecdhCurves:
1138+
// - P-256
1139+
// - P-512
1140+
//
11261141
// Configuration of mTLS for traffic between workloads within the mesh.
1142+
// Mesh mTLS does not respect ECDH curves.
11271143
TLSConfig mesh_mTLS = 63;
1144+
//
1145+
// Configuration of TLS for mesh external traffic(i.e. the traffic entering or leaving the mesh).
1146+
// This includes any TLS mode except ISTIO_MUTUAL mTLS. For ISTIO_MUTUAL settings, meshMTLS configuration should be used.
1147+
// Note: Mesh external does not respect min TLS version configured here currently.
1148+
TLSConfig mesh_external_TLS = 64;
11281149

11291150
// $hide_from_docs
1130-
// Next available field number: 64
1151+
// Next available field number: 65
11311152
reserved 1;
11321153
reserved "mixer_check_server";
11331154
reserved 2;

mesh/v1alpha1/istio.mesh.v1alpha1.gen.json

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mesh/v1alpha1/istio.mesh.v1alpha1.pb.html

Lines changed: 37 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

proto.lock

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34818,6 +34818,11 @@
3481834818
"id": 63,
3481934819
"name": "mesh_mTLS",
3482034820
"type": "TLSConfig"
34821+
},
34822+
{
34823+
"id": 64,
34824+
"name": "mesh_external_TLS",
34825+
"type": "TLSConfig"
3482134826
}
3482234827
],
3482334828
"reserved_ids": [
@@ -35575,6 +35580,12 @@
3557535580
"id": 1,
3557635581
"name": "min_protocol_version",
3557735582
"type": "TLSProtocol"
35583+
},
35584+
{
35585+
"id": 2,
35586+
"name": "ecdh_curves",
35587+
"type": "string",
35588+
"is_repeated": true
3557835589
}
3557935590
]
3558035591
}

releasenotes/notes/ecdh_support.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
apiVersion: release-notes/v2
2+
kind: feature
3+
area: security
4+
issue:
5+
- https://github.com/istio/istio/issues/41645
6+
releaseNotes:
7+
- |
8+
**Added** ecdh_curves support for mesh-external traffic through MeshConfig API.

0 commit comments

Comments
 (0)