Bug 1671074 - [RFE] Disable anonymous ciphers for engine <-> VDSM communication
Summary: [RFE] Disable anonymous ciphers for engine <-> VDSM communication
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: ovirt-engine
Classification: oVirt
Component: Backend.Core
Version: 4.3.0
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ovirt-4.3.1
: ---
Assignee: Martin Perina
QA Contact: Petr Matyáš
URL:
Whiteboard:
Depends On:
Blocks: 1578057
TreeView+ depends on / blocked
 
Reported: 2019-01-30 17:07 UTC by Martin Perina
Modified: 2021-11-25 14:55 UTC (History)
7 users (show)

Fixed In Version: ovirt-engine-4.3.1.1
Doc Type: Enhancement
Doc Text:
In this release, the available SSL ciphers used in communication between the Red Hat Virtualization Manager and VDSM have been limited, and now exclude weak or anonymous ciphers.
Clone Of:
Environment:
Last Closed: 2019-03-01 10:17:55 UTC
oVirt Team: Infra
rule-engine: ovirt-4.3+
mgoldboi: planning_ack+
mperina: devel_ack+
lleistne: testing_ack+


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RHV-44084 0 None None None 2021-11-25 14:55:52 UTC
oVirt gerrit 97456 0 master MERGED core: Disable anonymous ciphers for engine <-> VDSM communication 2020-04-07 08:16:21 UTC

Description Martin Perina 2019-01-30 17:07:59 UTC
Description of problem:

As a part of BZ1577594 we have started to enable ciphers with key length higher than 128 bits (see [1]) by using "ssl_ciphers=HIGH" in engine <-> VDSM communication for hosts in 4.2 clusters and above. Unfortunately this setting still allowed anonymous ciphers, which are not considered safe, so security sweep raised that as an issue:


  # nmap -sV --script ssl-enum-ciphers -p 54321 <HOSTNAME>
  | ssl-enum-ciphers: 
  |   TLSv1.2: 
  |     ciphers: 
  |       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_ECDH_anon_WITH_AES_128_CBC_SHA - F
  |       TLS_ECDH_anon_WITH_AES_256_CBC_SHA - F
  |       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
  |       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 2048) - A
  |       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 2048) - A
  |     compressors: 
  |       NULL
  |     cipher preference: client
  |_  least strength: F


In order to raise ciphers strength we need to disable those anonymous ciphers by setting "ssl_ciphers=HIGH:!aNULL", which allows safest ciphers:

# nmap -sV --script ssl-enum-ciphers -p 54321 <HOSTNAME>
| ssl-enum-ciphers: 
|   TLSv1.2: 
|     ciphers: 
|       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_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
|       TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 2048) - A
|     compressors: 
|       NULL
|     cipher preference: client
|_  least strength: A


[1] https://www.openssl.org/docs/manmaster/man1/ciphers.html#CIPHER_LIST_FORMAT

Comment 1 Michal Skrivanek 2019-02-01 13:05:37 UTC
relevant for other communication channels we have? e.g. consoles?

Comment 2 Martin Perina 2019-02-06 11:46:10 UTC
(In reply to Michal Skrivanek from comment #1)
> relevant for other communication channels we have? e.g. consoles?

I've suggested the same for websocket-proxy in https://gerrit.ovirt.org/92775 I will try to take a look also at imageio_proxy

Comment 5 Petr Matyáš 2019-02-22 13:06:27 UTC
Verified on ovirt-engine-4.3.1.1-0.1.el7.noarch

Comment 7 Sandro Bonazzola 2019-03-01 10:17:55 UTC
This bugzilla is included in oVirt 4.3.1 release, published on February 28th 2019.

Since the problem described in this bug report should be
resolved in oVirt 4.3.1 release, it has been closed with a resolution of CURRENT RELEASE.

If the solution does not work for you, please open a new bug report.


Note You need to log in before you can comment on or make changes to this bug.