Skip to content
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

Disable old SSL Protocols < TLSv1.2 #305

Merged
merged 1 commit into from
Nov 8, 2023

Conversation

bdunne
Copy link
Member

@bdunne bdunne commented Jan 6, 2021

@bdunne bdunne requested a review from jrafanie as a code owner January 6, 2021 23:38
@bdunne bdunne requested review from Fryguy and simaishi January 6, 2021 23:38
@@ -19,7 +19,7 @@ TransferLog /var/www/miq/vmdb/log/apache/ssl_access.log
LogLevel warn

SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
Copy link
Contributor

Choose a reason for hiding this comment

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

In the current version of openssl on RHEL8/CentOS8, SSLv2 and SSLv3 can't be used, so I think we can drop them.

@bdunne bdunne closed this Jan 14, 2021
@bdunne bdunne reopened this Jan 14, 2021
@bdunne bdunne closed this Jan 20, 2021
@bdunne bdunne reopened this Jan 20, 2021
@bdunne bdunne assigned Fryguy and unassigned simaishi Jun 17, 2021
@Fryguy
Copy link
Member

Fryguy commented Jun 18, 2021

@bdunne We'll need this in pods and the other locations, right?

@kbrock
Copy link
Member

kbrock commented Aug 24, 2021

Is there a way to default to the OpenSSL protocols defined as valid in our open ssl rpm?

@kbrock
Copy link
Member

kbrock commented Aug 25, 2021

I don't see anywhere else that references SSLProtocol or SSLEngine on
I think we default it on the other appliances

@kbrock
Copy link
Member

kbrock commented Sep 14, 2021

Is there a way to know this value without looking at that config file?

In other words, if we delete this line, is it possible to discover what this value is?
Or how do we determine if not stating this at all removes the cypher that we want to remove?

@Fryguy
Copy link
Member

Fryguy commented Sep 14, 2021

In general, I think it's preferable to use the defaults that come with the system because they are likely more secure than a decision we might make. So, it's a good question - what are the defaults if we were to remove this?

https://httpd.apache.org/docs/current/mod/mod_ssl.html#sslprotocol

@Fryguy
Copy link
Member

Fryguy commented Sep 14, 2021

According to that, we can probably remove the -SSLv2, since it's not even there, but I'm fine with this as is. My other question still stands though...

@bdunne We'll need this in pods and the other locations, right?

@kbrock
Copy link
Member

kbrock commented Sep 20, 2021

According to that, we can probably remove the -SSLv2, since it's not even there, but I'm fine with this as is. My other question still stands though...

@bdunne We'll need this in pods and the other locations, right?

Pretty sure the pods just use the standard apache configuration with only tweaking the default httpd conf rather than setting our own

@miq-bot miq-bot added the stale label Feb 27, 2023
@miq-bot
Copy link
Member

miq-bot commented Feb 27, 2023

This pull request has been automatically marked as stale because it has not been updated for at least 3 months.

If these changes are still valid, please remove the stale label, make any changes requested by reviewers (if any), and ensure that this issue is being looked at by the assigned/reviewer(s)

Thank you for all your contributions! More information about the ManageIQ triage process can be found in the triage process documentation.

@kbrock kbrock closed this May 24, 2023
@bdunne bdunne reopened this Jul 27, 2023
@bdunne bdunne removed the stale label Jul 27, 2023
@miq-bot
Copy link
Member

miq-bot commented Jul 27, 2023

Checked commit bdunne@b89f851 with ruby 2.6.10, rubocop 1.28.2, haml-lint 0.35.0, and yamllint
0 files checked, 0 offenses detected
Everything looks fine. ⭐

@miq-bot
Copy link
Member

miq-bot commented Oct 30, 2023

This pull request has been automatically marked as stale because it has not been updated for at least 3 months.

If these changes are still valid, please remove the stale label, make any changes requested by reviewers (if any), and ensure that this issue is being looked at by the assigned/reviewer(s)

Thank you for all your contributions! More information about the ManageIQ triage process can be found in the triage process documentation.

@miq-bot miq-bot added the stale label Oct 30, 2023
@Fryguy
Copy link
Member

Fryguy commented Oct 31, 2023

@bdunne Is this still a valid PR?

@Fryguy Fryguy removed the stale label Nov 7, 2023
@bdunne
Copy link
Member Author

bdunne commented Nov 7, 2023

It looks like we no longer need the -SSLv2 -SSLv3, but it also doesn't hurt to keep it.

SSLProtocol all -SSLv2 -SSLv3 results in:

TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3
$ nmap --script ssl-enum-ciphers -p 443 192.168.122.245
Starting Nmap 7.93 ( https://nmap.org ) at 2023-11-07 16:45 EST
Nmap scan report for 192.168.122.245
Host is up (0.00030s latency).

PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers: 
|   TLSv1.0: 
|     ciphers: 
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|     compressors: 
|       NULL
|     cipher preference: client
|   TLSv1.1: 
|     ciphers: 
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|     compressors: 
|       NULL
|     cipher preference: client
|   TLSv1.2: 
|     ciphers: 
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 2048) - A
|       TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (dh 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (secp256r1) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
|     compressors: 
|       NULL
|     cipher preference: client
|   TLSv1.3: 
|     ciphers: 
|       TLS_AKE_WITH_AES_128_CCM_SHA256 (ecdh_x25519) - A
|       TLS_AKE_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
|       TLS_AKE_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
|       TLS_AKE_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
|     cipher preference: client
|_  least strength: A

Nmap done: 1 IP address (1 host up) scanned in 0.60 seconds

SSLProtocol all results in:

TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3
  $ nmap --script ssl-enum-ciphers -p 443 192.168.122.245
  Starting Nmap 7.93 ( https://nmap.org ) at 2023-11-07 16:47 EST
  Nmap scan report for 192.168.122.245
  Host is up (0.00035s latency).

  PORT    STATE SERVICE
  443/tcp open  https
  | ssl-enum-ciphers: 
  |   TLSv1.0: 
  |     ciphers: 
  |       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
  |       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
  |       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
  |       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
  |       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
  |       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
  |     compressors: 
  |       NULL
  |     cipher preference: client
  |   TLSv1.1: 
  |     ciphers: 
  |       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
  |       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
  |       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
  |       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
  |       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
  |       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
  |     compressors: 
  |       NULL
  |     cipher preference: client
  |   TLSv1.2: 
  |     ciphers: 
  |       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
  |       TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (dh 2048) - A
  |       TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 2048) - A
  |       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
  |       TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (dh 2048) - A
  |       TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 2048) - A
  |       TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (dh 2048) - A
  |       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
  |       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A
  |       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A
  |       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
  |       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp256r1) - A
  |       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) - A
  |       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (secp256r1) - A
  |       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
  |       TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A
  |       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
  |       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
  |       TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A
  |       TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
  |     compressors: 
  |       NULL
  |     cipher preference: client
  |   TLSv1.3: 
  |     ciphers: 
  |       TLS_AKE_WITH_AES_128_CCM_SHA256 (ecdh_x25519) - A
  |       TLS_AKE_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
  |       TLS_AKE_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
  |       TLS_AKE_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
  |     cipher preference: client
  |_  least strength: A

  Nmap done: 1 IP address (1 host up) scanned in 0.42 seconds

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 results in:

TLSv1.2, TLSv1.3
  $ nmap --script ssl-enum-ciphers -p 443 192.168.122.245
  Starting Nmap 7.93 ( https://nmap.org ) at 2023-11-07 16:57 EST
  Nmap scan report for 192.168.122.245
  Host is up (0.00044s latency).

  PORT    STATE SERVICE
  443/tcp open  https
  | ssl-enum-ciphers: 
  |   TLSv1.2: 
  |     ciphers: 
  |       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
  |       TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (dh 2048) - A
  |       TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 2048) - A
  |       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
  |       TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (dh 2048) - A
  |       TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 2048) - A
  |       TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (dh 2048) - A
  |       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
  |       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A
  |       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A
  |       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
  |       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp256r1) - A
  |       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) - A
  |       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (secp256r1) - A
  |       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
  |       TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A
  |       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
  |       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
  |       TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A
  |       TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
  |     compressors: 
  |       NULL
  |     cipher preference: client
  |   TLSv1.3: 
  |     ciphers: 
  |       TLS_AKE_WITH_AES_128_CCM_SHA256 (ecdh_x25519) - A
  |       TLS_AKE_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
  |       TLS_AKE_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
  |       TLS_AKE_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
  |     cipher preference: client
  |_  least strength: A

  Nmap done: 1 IP address (1 host up) scanned in 0.64 seconds

@kbrock
Copy link
Member

kbrock commented Nov 8, 2023

I like dropping -SSLv2 -SSLv3.
But then again, I vote what ever we need to be able to get this merged

Do we tag this with #security-fix or is that only for white source?

@Fryguy Fryguy merged commit 4567d36 into ManageIQ:master Nov 8, 2023
@Fryguy
Copy link
Member

Fryguy commented Nov 8, 2023

Gah - forgot to hit send on the comment :)

I like what's in the current PR, so merged. Even though technically -SSLv2 -SSLv3 isn't needed, I like that it's explicit, so if someone comes along and asks, there's no question.

@bdunne bdunne deleted the drop_old_ssl_protocols branch November 8, 2023 16:48
@Fryguy
Copy link
Member

Fryguy commented Nov 8, 2023

Backported to quinteros in commit 9d0a8b9.

commit 9d0a8b9d477f017caa2ac0b4f77d9198334dec19
Author: Jason Frey <[email protected]>
Date:   Wed Nov 8 11:41:36 2023 -0500

    Merge pull request #305 from bdunne/drop_old_ssl_protocols
    
    Disable old SSL Protocols < TLSv1.2
    
    (cherry picked from commit 4567d366376f1f0f5ddfa3f021057027212dd770)

Fryguy added a commit that referenced this pull request Nov 8, 2023
Disable old SSL Protocols < TLSv1.2

(cherry picked from commit 4567d36)
@Fryguy
Copy link
Member

Fryguy commented Nov 28, 2023

Backported to morphy in commit c6dd343.

commit c6dd3436159718510c84b3aa37baefecefc1c082
Author: Jason Frey <[email protected]>
Date:   Wed Nov 8 11:41:36 2023 -0500

    Merge pull request #305 from bdunne/drop_old_ssl_protocols
    
    Disable old SSL Protocols < TLSv1.2
    
    (cherry picked from commit 4567d366376f1f0f5ddfa3f021057027212dd770)

@Fryguy Fryguy removed the morphy/yes label Nov 28, 2023
Fryguy added a commit that referenced this pull request Nov 28, 2023
Disable old SSL Protocols < TLSv1.2

(cherry picked from commit 4567d36)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants