-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Move cipher note from kerb to tls page #10579
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -12,17 +12,68 @@ This topic describes how to configure your Trino server to use :ref:`TLS | |||||||||
| All authentication technologies supported by Trino require configuring TLS as | ||||||||||
| the foundational layer. | ||||||||||
|
|
||||||||||
| When configured to use TLS, a Trino server responds to client connections using | ||||||||||
| TLS 1.2 and TLS 1.3 certificates. The server rejects TLS 1.1, TLS 1.0, and all | ||||||||||
| SSL format certificates. | ||||||||||
|
|
||||||||||
| .. important:: | ||||||||||
|
|
||||||||||
| This page discusses only how to prepare the Trino server for secure client | ||||||||||
| connections from outside of the Trino cluster to its coordinator. | ||||||||||
|
|
||||||||||
| See the :doc:`Glossary </appendix/glossary>` to clarify unfamiliar terms. | ||||||||||
|
|
||||||||||
| .. _tls-version-and-ciphers: | ||||||||||
|
|
||||||||||
| Supported standards | ||||||||||
| ------------------- | ||||||||||
|
|
||||||||||
| When configured to use TLS, the Trino server responds to client connections | ||||||||||
| using TLS 1.2 and TLS 1.3 certificates. The server rejects TLS 1.1, TLS 1.0, and | ||||||||||
| all SSL format certificates. | ||||||||||
|
|
||||||||||
| The Trino server does not specify a set of supported ciphers, instead deferring | ||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This statement and the next paragraph are conflicting. Either Trino can exclude and include ciphers or it cannot. |
||||||||||
| to the defaults set by the JVM version in use. The documentation for Java 11 | ||||||||||
| lists its `supported cipher suites | ||||||||||
|
Comment on lines
+32
to
+33
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Since we talk vendors we should be extra clear when referring to examples here.
Suggested change
|
||||||||||
| <https://docs.oracle.com/en/java/javase/11/security/oracle-providers.html#GUID-7093246A-31A3-4304-AC5F-5FB6400405E2__SUNJSSE_CIPHER_SUITES>`_. | ||||||||||
|
Ordinant marked this conversation as resolved.
Outdated
|
||||||||||
|
|
||||||||||
| Run the following two-line code on the same JVM from the same vendor as | ||||||||||
| configured on the coordinator to determine that JVM's default cipher list. | ||||||||||
|
Comment on lines
+36
to
+37
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
|
||||||||||
| .. code-block:: shell | ||||||||||
|
|
||||||||||
| echo "java.util.Arrays.asList(((javax.net.ssl.SSLServerSocketFactory) \ | ||||||||||
| javax.net.ssl.SSLServerSocketFactory.getDefault()).getSupportedCipherSuites()).stream().forEach(System.out::println)" | jshell - | ||||||||||
|
|
||||||||||
| The default Trino server specifies a set of regular expressions that exclude | ||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The configs don't use regex at all. It's just a list. |
||||||||||
| older cipher suites that do not support forward secrecy (FS). | ||||||||||
|
|
||||||||||
| Use the ``http-server.https.included-cipher`` property to specify a | ||||||||||
| comma-separated list of ciphers in preferred use order. If one of your preferred | ||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
| selections is a non-FS cipher, you must also set the | ||||||||||
| ``http-server.https.excluded-cipher`` property to an empty list to override the | ||||||||||
| default exclusions. For example: | ||||||||||
|
|
||||||||||
| .. code-block:: text | ||||||||||
|
|
||||||||||
| http-server.https.included-cipher=TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256 | ||||||||||
| http-server.https.excluded-cipher= | ||||||||||
|
|
||||||||||
| Specifying a different cipher suite is a complex issue that should only be | ||||||||||
| considered in conjunction with your organization's security managers. Using a | ||||||||||
| different suite may require downloading and installing a different SunJCE | ||||||||||
| implementation package. Some locales may have export restrictions on cipher | ||||||||||
| suites. See the discussion in Java documentation that begins with `Customizing | ||||||||||
| the Encryption Algorithm Providers | ||||||||||
| <https://docs.oracle.com/en/java/javase/11/security/java-secure-socket-extension-jsse-reference-guide.html#GUID-316FB978-7588-442E-B829-B4973DB3B584>`_. | ||||||||||
|
|
||||||||||
| .. note:: | ||||||||||
|
|
||||||||||
| If you manage the coordinator's direct TLS implementatation, monitor the CPU | ||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What a "direct TLS implementation"? |
||||||||||
| usage on the Trino coordinator after enabling HTTPS. Java prefers the more | ||||||||||
| CPU-intensive cipher suites, if you allow it to choose from a big list of | ||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this comma is redundant |
||||||||||
| ciphers. If the CPU usage is unacceptably high after enabling HTTPS, you can | ||||||||||
| configure Java to use specific cipher suites as described in this section. | ||||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can be read to mean to verbatim set the config shared above which I don't beleive is what we intend to mean here. |
||||||||||
|
|
||||||||||
| However, best practice is to instead use an external load balancer, as | ||||||||||
| discussed next. | ||||||||||
|
Comment on lines
+74
to
+75
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||
|
|
||||||||||
| Approaches | ||||||||||
| ---------- | ||||||||||
|
|
||||||||||
|
|
||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very weird title IMO.
"Supported TLS versions and Cipher suites" is more factual and actually conveys information.