Skip to content

docs: clarify the new default client cipher list#16474

Merged
htuch merged 2 commits intoenvoyproxy:mainfrom
desimone:desimone/16469
May 23, 2021
Merged

docs: clarify the new default client cipher list#16474
htuch merged 2 commits intoenvoyproxy:mainfrom
desimone:desimone/16469

Conversation

@desimone
Copy link
Copy Markdown
Contributor

For an explanation of how to fill out the fields, please see the relevant section
in PULL_REQUESTS.md

Commit Message: docs: clarify the new default client cipher list
Additional Description: These changes clarify that as of v1.16 the default cipher suite is different for client and servers.
Risk Level: Low
Testing: N/A
Docs Changes: Yes
Release Notes: N/A
Platform Specific Features: N/A

Fixes #16469

@repokitteh-read-only
Copy link
Copy Markdown

Hi @desimone, welcome and thank you for your contribution.

We will try to review your Pull Request as quickly as possible.

In the meantime, please take a look at the contribution guidelines if you have not done so already.

🐱

Caused by: #16474 was opened by desimone.

see: more, trace.

PiotrSikora
PiotrSikora previously approved these changes May 14, 2021
Copy link
Copy Markdown
Contributor

@PiotrSikora PiotrSikora left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You need to fix format (run ./ci/run_envoy_docker.sh './ci/do_ci.sh fix_format', ./ci/do_ci.sh fix_format or ./tools/proto_format/proto_format.sh fix), otherwise LGTM. Thanks!

@antoniovicente
Copy link
Copy Markdown
Contributor

cc @htuch

These changes need to be applied to https://github.com/envoyproxy/envoy/blob/d26b16c328e594e80ea7fba6243e336d2d2be6aa/api/envoy/extensions/transport_sockets/tls/v3/common.proto

And the scripts that Piotr mentions in #16474 (review) need to be run to regenerate shadows from the canonical source mentioned above.

@repokitteh-read-only
Copy link
Copy Markdown

CC @envoyproxy/api-shepherds: Your approval is needed for changes made to api/envoy/.
envoyproxy/api-shepherds assignee is @htuch
CC @envoyproxy/api-watchers: FYI only for changes made to api/envoy/.

🐱

Caused by: #16474 was synchronize by desimone.

see: more, trace.

@desimone
Copy link
Copy Markdown
Contributor Author

Reapplied the changes to the correct proto.

\cc @travisgroth can you help me with an assist on those scripts? They don't work with my M1 processor :/

Copy link
Copy Markdown
Member

@htuch htuch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, defer to @PiotrSikora to sign-off on the correctness of the cipher lists.

// ECDHE-ECDSA-AES128-GCM-SHA256
// ECDHE-RSA-AES128-GCM-SHA256
// ECDHE-ECDSA-AES256-GCM-SHA384
// ECDHE-RSA-AES256-GCM-SHA384
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be nice if we could generate these from some canonical location that is shared with code. If we aren't going to change frequently this is fine though.

@PiotrSikora
Copy link
Copy Markdown
Contributor

Thanks, defer to @PiotrSikora to sign-off on the correctness of the cipher lists.

I already did (#16474 (review)).

@antoniovicente antoniovicente removed their assignment May 17, 2021
Copy link
Copy Markdown
Member

@htuch htuch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM modulo nit. Please fix format as suggested to @PiotrSikora

@travisgroth
Copy link
Copy Markdown

@PiotrSikora I'm getting an error running the format commands:

% ./tools/proto_format/proto_format.sh fix
api/envoy/extensions/transport_sockets/tls/v3/common.proto
Starting local Bazel server and connecting to it...
INFO: SHA256 (https://golang.org/dl/?mode=json&include=all) = c71d9d3a5e2d4baaa5ae93319092dde1d43670c2ddf0ee38507695792febe51d
INFO: Analyzed target @envoy_api_canonical//versioning:active_protos (337 packages loaded, 2034 targets configured).
INFO: Found 1 target...
INFO: From CcCmakeMakeRule external/envoy/bazel/foreign_cc/zlib/include [for host]:

INFO: From CcCmakeMakeRule external/envoy/bazel/foreign_cc/zlib/include:

INFO: From ProtoCompile external/com_google_protobuf/python/google/protobuf/empty_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile external/com_google_protobuf/python/google/protobuf/compiler/plugin_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile external/com_google_googleapis/google/api/annotations_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile external/com_google_protobuf/python/google/protobuf/wrappers_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile tools/type_whisperer/types_pb2.py:
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_envoyproxy_protoc_gen_validate: warning: directory does not exist.
external/com_google_protobuf/python: warning: directory does not exist.
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_google_googleapis: warning: directory does not exist.
INFO: From ProtoCompile external/com_github_cncf_udpa/udpa/annotations/status_pb2.py:
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_envoyproxy_protoc_gen_validate: warning: directory does not exist.
external/com_google_protobuf/python: warning: directory does not exist.
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_google_googleapis: warning: directory does not exist.
INFO: From ProtoCompile external/com_google_protobuf/python/google/protobuf/struct_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile external/envoy_api_canonical/envoy/annotations/deprecation_pb2.py:
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_envoyproxy_protoc_gen_validate: warning: directory does not exist.
external/com_google_protobuf/python: warning: directory does not exist.
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_google_googleapis: warning: directory does not exist.
INFO: From ProtoCompile external/com_google_protobuf/python/google/protobuf/duration_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile external/com_google_googleapis/google/api/httpbody_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile external/com_google_protobuf/python/google/protobuf/timestamp_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile external/com_google_protobuf/python/google/protobuf/source_context_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile external/com_github_cncf_udpa/udpa/annotations/security_pb2.py:
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_envoyproxy_protoc_gen_validate: warning: directory does not exist.
external/com_google_protobuf/python: warning: directory does not exist.
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_google_googleapis: warning: directory does not exist.
INFO: From ProtoCompile external/envoy_api_canonical/envoy/annotations/resource_pb2.py:
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_envoyproxy_protoc_gen_validate: warning: directory does not exist.
external/com_google_protobuf/python: warning: directory does not exist.
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_google_googleapis: warning: directory does not exist.
INFO: From ProtoCompile external/com_github_cncf_udpa/udpa/annotations/versioning_pb2.py:
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_envoyproxy_protoc_gen_validate: warning: directory does not exist.
external/com_google_protobuf/python: warning: directory does not exist.
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_google_googleapis: warning: directory does not exist.
INFO: From ProtoCompile external/com_google_googleapis/google/api/http_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile external/com_github_cncf_udpa/udpa/annotations/sensitive_pb2.py:
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_envoyproxy_protoc_gen_validate: warning: directory does not exist.
external/com_google_protobuf/python: warning: directory does not exist.
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_google_googleapis: warning: directory does not exist.
INFO: From ProtoCompile tools/type_whisperer/api_type_db_pb2.py:
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_envoyproxy_protoc_gen_validate: warning: directory does not exist.
external/com_google_protobuf/python: warning: directory does not exist.
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_google_googleapis: warning: directory does not exist.
INFO: From ProtoCompile external/com_envoyproxy_protoc_gen_validate/validate/validate_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile external/com_google_protobuf/python/google/protobuf/any_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile external/com_google_protobuf/python/google/protobuf/type_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile external/com_google_protobuf/python/google/protobuf/descriptor_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile external/com_github_cncf_udpa/udpa/annotations/migrate_pb2.py:
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_envoyproxy_protoc_gen_validate: warning: directory does not exist.
external/com_google_protobuf/python: warning: directory does not exist.
bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_google_googleapis: warning: directory does not exist.
INFO: From ProtoCompile external/com_google_protobuf/python/google/protobuf/api_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile external/com_google_googleapis/google/rpc/status_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From ProtoCompile external/com_google_protobuf/python/google/protobuf/field_mask_pb2.py:
external/com_google_protobuf/python: warning: directory does not exist.
INFO: From TypeWhisperer external/com_google_protobuf/descriptor_proto/google/protobuf/descriptor.proto.types.pb_text:
./external/com_google_protobuf: warning: directory does not exist.
INFO: From TypeWhisperer external/com_google_protobuf/any_proto/google/protobuf/any.proto.types.pb_text:
./external/com_google_protobuf: warning: directory does not exist.
INFO: From TypeWhisperer external/com_google_protobuf/wrappers_proto/google/protobuf/wrappers.proto.types.pb_text:
./external/com_google_protobuf: warning: directory does not exist.
INFO: From TypeWhisperer external/com_google_protobuf/duration_proto/google/protobuf/duration.proto.types.pb_text:
./external/com_google_protobuf: warning: directory does not exist.
INFO: From TypeWhisperer external/com_google_protobuf/timestamp_proto/google/protobuf/timestamp.proto.types.pb_text:
./external/com_google_protobuf: warning: directory does not exist.
INFO: From TypeWhisperer external/com_google_protobuf/struct_proto/google/protobuf/struct.proto.types.pb_text:
./external/com_google_protobuf: warning: directory does not exist.
INFO: From TypeWhisperer external/com_google_protobuf/empty_proto/google/protobuf/empty.proto.types.pb_text:
./external/com_google_protobuf: warning: directory does not exist.
ERROR: /private/var/tmp/_bazel_tgroth/317f6559654b1ca2fa839199a5ffc255/external/com_google_protobuf/BUILD:356:15: protoxform external/com_google_protobuf/struct_proto/google/protobuf/struct.proto.active_or_frozen.proto failed (Exit 1): protoc failed: error executing command bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_google_protobuf/protoc -I./external/com_google_protobuf ... (remaining 6 argument(s) skipped)

Use --sandbox_debug to see verbose messages from the sandbox protoc failed: error executing command bazel-out/darwin-opt-exec-2B5CBBC6/bin/external/com_google_protobuf/protoc -I./external/com_google_protobuf ... (remaining 6 argument(s) skipped)

Use --sandbox_debug to see verbose messages from the sandbox
./external/com_google_protobuf: warning: directory does not exist.
Traceback (most recent call last):
  File "/private/var/tmp/_bazel_tgroth/317f6559654b1ca2fa839199a5ffc255/sandbox/darwin-sandbox/672/execroot/envoy/bazel-out/darwin-opt-exec-2B5CBBC6/bin/tools/protoxform/protoxform.runfiles/envoy/tools/protoxform/protoxform.py", line 11, in <module>
    from tools.protoxform import migrate, utils
  File "/private/var/tmp/_bazel_tgroth/317f6559654b1ca2fa839199a5ffc255/sandbox/darwin-sandbox/672/execroot/envoy/bazel-out/darwin-opt-exec-2B5CBBC6/bin/tools/protoxform/protoxform.runfiles/envoy/tools/protoxform/migrate.py", line 14, in <module>
    from google.api import annotations_pb2
ModuleNotFoundError: No module named 'google.api'
--api_proto_plugin_out: protoc-gen-api_proto_plugin: Plugin failed with status code 1.
Aspect //tools/protoxform:protoxform.bzl%protoxform_aspect of @envoy_api_canonical//versioning:active_protos failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 139.672s, Critical Path: 37.57s
INFO: 707 processes: 41 internal, 666 darwin-sandbox.
FAILED: Build did NOT complete successfully

Is there any setup needed to run that script? I tried via docker, which also failed, but it gave me no error output to triage.

@PiotrSikora
Copy link
Copy Markdown
Contributor

Use --sandbox_debug to see verbose messages from the sandbox
./external/com_google_protobuf: warning: directory does not exist.
Traceback (most recent call last):
  File "/private/var/tmp/_bazel_tgroth/317f6559654b1ca2fa839199a5ffc255/sandbox/darwin-sandbox/672/execroot/envoy/bazel-out/darwin-opt-exec-2B5CBBC6/bin/tools/protoxform/protoxform.runfiles/envoy/tools/protoxform/protoxform.py", line 11, in <module>
    from tools.protoxform import migrate, utils
  File "/private/var/tmp/_bazel_tgroth/317f6559654b1ca2fa839199a5ffc255/sandbox/darwin-sandbox/672/execroot/envoy/bazel-out/darwin-opt-exec-2B5CBBC6/bin/tools/protoxform/protoxform.runfiles/envoy/tools/protoxform/migrate.py", line 14, in <module>
    from google.api import annotations_pb2
ModuleNotFoundError: No module named 'google.api'

Is there any setup needed to run that script? I tried via docker, which also failed, but it gave me no error output to triage.

It looks that you're missing google-api-python-client. I don't believe we have any setup script for that, unfortunately, but you can install it using pip install google-api-python-client.

It's weird that the Docker would fail, since it should be self-contained, and it works fine for me:

$ git checkout desimone/16469
$ ./ci/run_envoy_docker.sh './ci/do_ci.sh fix_format'
[...]
$ git diff --stat
 api/envoy/extensions/transport_sockets/tls/v4alpha/common.proto                  | 28 ++++++++++++++++++++++++----
 generated_api_shadow/envoy/extensions/transport_sockets/tls/v3/common.proto      | 28 ++++++++++++++++++++++++----
 generated_api_shadow/envoy/extensions/transport_sockets/tls/v4alpha/common.proto | 28 ++++++++++++++++++++++++----
 3 files changed, 72 insertions(+), 12 deletions(-)

@htuch
Copy link
Copy Markdown
Member

htuch commented May 19, 2021

Maybe @travisgroth isn't running in Docker..

@travisgroth
Copy link
Copy Markdown

@htuch

% ./ci/run_envoy_docker.sh './ci/do_ci.sh fix_format'
No remote cache is set, skipping setup remote cache.
ENVOY_SRCDIR=/source
ENVOY_BUILD_TARGET=//source/exe:envoy-static
ENVOY_BUILD_ARCH=x86_64
$TEST_TMPDIR defined: output root default is '/build/tmp' and max_idle_secs default is '15'.
Starting local Bazel server and connecting to it...
Skip setting up Envoy Filter Example.
building using 4 CPUs
building for x86_64
clang toolchain with libc++ configured
fix_format...
api/envoy/extensions/transport_sockets/tls/v3/common.proto
protoxform_test...
$TEST_TMPDIR defined: output root default is '/build/tmp' and max_idle_secs default is '15'.
Starting local Bazel server and connecting to it...
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 2 packages loaded
Loading: 2 packages loaded
$TEST_TMPDIR defined: output root default is '/build/tmp' and max_idle_secs default is '15'.
INFO: Analyzed target //tools/testdata/protoxform:fix_protos (65 packages loaded, 1241 targets configured).
INFO: Found 1 target...
INFO: From CcCmakeMakeRule external/envoy/bazel/foreign_cc/zlib/include [for host]:

ERROR: /build/tmp/_bazel_envoybuild/b570b5ccd0454dc9af9f65ab1833764d/external/envoy/bazel/foreign_cc/BUILD:349:21: TreeArtifact external/envoy/bazel/foreign_cc/zlib/include was not created
ERROR: /build/tmp/_bazel_envoybuild/b570b5ccd0454dc9af9f65ab1833764d/external/envoy/bazel/foreign_cc/BUILD:349:21: TreeArtifact external/envoy/bazel/foreign_cc/copy_zlib/zlib was not created
ERROR: /build/tmp/_bazel_envoybuild/b570b5ccd0454dc9af9f65ab1833764d/external/envoy/bazel/foreign_cc/BUILD:349:21: not all outputs were created or valid
Aspect //tools/protoxform:protoxform.bzl%protoxform_aspect of //tools/testdata/protoxform:fix_protos failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 13.459s, Critical Path: 4.92s
INFO: 27 processes: 20 internal, 7 processwrapper-sandbox.
FAILED: Build did NOT complete successfully

@travisgroth
Copy link
Copy Markdown

@PiotrSikora thanks that did the trick.

Signed-off-by: Bobby DeSimone <bobbydesimone@gmail.com>
@desimone desimone requested review from PiotrSikora and htuch May 19, 2021 03:34
Copy link
Copy Markdown
Contributor

@PiotrSikora PiotrSikora left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@PiotrSikora
Copy link
Copy Markdown
Contributor

(main branch is broken, that's why the format check fails...)

@desimone
Copy link
Copy Markdown
Contributor Author

LMK if you need anything additional on my end

@htuch
Copy link
Copy Markdown
Member

htuch commented May 21, 2021

Try mergre main and push again. Thanks.

@desimone
Copy link
Copy Markdown
Contributor Author

git merge origin/main && git push

Copy link
Copy Markdown
Member

@htuch htuch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@htuch
Copy link
Copy Markdown
Member

htuch commented May 23, 2021

/lgtm api

@htuch htuch merged commit c94e646 into envoyproxy:main May 23, 2021
leyao-daily pushed a commit to leyao-daily/envoy that referenced this pull request Sep 30, 2021
These changes clarify that as of v1.16 the default cipher suite is different for client and servers.

Risk Level: Low
Testing: N/A
Docs Changes: Yes
Release Notes: N/A
Platform Specific Features: N/A

Fixes envoyproxy#16469

Signed-off-by: Bobby DeSimone <bobbydesimone@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

doc: default cipher suite docs are misleading for server and client context

5 participants