Open ameyer117 opened 3 months ago
My personal opinion is it would be best to add new columns, and just change the documentation for the old column to be "Requested cipher suite" instead of "Negotiated cipher suite"
@ParthaI - this is still an issue and causes confusion in "higher" U.S. compliance based environments. Just wanted to make sure this is still on your radar. Thank you!
Apologies, @ameyer117, I haven’t had a chance to work on this issue yet. However, it’s on my radar.
Describe the bug The
net_tls_connection
connection table can possibly have incorrect values forcipher_suite_name
when connecting via TLS 1.3. Looking at the code, it is returning the requested cipher suite, while the docs say it is the "Negotiated cipher suite". This would be true up until this change made by the Go team for TLS 1.3 (and remains true for TLS 1.2 and below). This causes the net plugin to report that ciphers such asTLS_CHACHA20_POLY1305_SHA256
were able to complete a handshake, when in fact they were not, and Go automatically negotiated another cipher that the server supports such asTLS_AES_128_GCM_SHA256
to make the connection. This is largely a big problem for compliance environments where reports are needed for compliant TLS ciphers for production web servers.Steampipe version (
steampipe -v
) v0.23.2Plugin version (
steampipe plugin list
) v0.12.0To reproduce Place a Linux web server with openssl in FIPS mode and run a simple Nginx server. It will not support
TLS_CHACHA20_POLY1305_SHA256
as its not FIPS validated. This can be verified withopenssl ciphers -v
Run the steampipe query
and notice results such as:
Where steampipe is claiming it connected to that server which doesn't support
TLS_CHACHA20_POLY1305_SHA256
using theTLS_CHACHA20_POLY1305_SHA256
cipher.Expected behavior Either replace the
cipher_suite_name
andciper_suite_id
with the real negotiated cipher instead of the requested one or add a new column for a negotiated cipher to distinguish the difference.Additional context Helpful Go test code for this issue. https://go.dev/blog/tls-cipher-suites https://github.com/golang/go/issues/29349