Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1484394

Summary: Use TLS on the internal network for the VNC console
Product: Red Hat OpenStack Reporter: Juan Antonio Osorio <josorior>
Component: novncAssignee: Solly Ross <sross>
Status: CLOSED DUPLICATE QA Contact: Shai Revivo <srevivo>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 12.0 (Pike)CC: aschultz, athomas, augol, dbecker, mbooth, mburns, morazi, nkinder, rhel-osp-director-maint, srevivo, stephenfin
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1484390 Environment:
Last Closed: 2017-09-01 08:38:31 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1484390    
Bug Blocks:    

Description Juan Antonio Osorio 2017-08-23 12:42:25 UTC
As part of the TLS everwhere work: a connection towards the VNC console should go through an encrypted channel at all times.

Public TLS is already covered (from a client in the external network to HAProxy). But internal communications should be covered as well. These include:

* From HAProxy to the nova-vncproxy
* from the nova-vncproxy to the libvirtd instance

Additional information
----------------------

Nova's VNC proxy works by using a fairly generic websocket proxy that will detect TLS traffic, and use encrypted websockets to communicate with libvirt's VNC in the compute. One would access this using an HTML5-based client called novnc.

Enabling TLS in libvirt's VNC uses the VeNCrypt specification, which unfortunately is not supported by novnc [1][2].

It seems that attempting to configure TLS in the VNC and using TLS in the proxy, will result in an error in the VNC Protocol (specifically saying: "Unsupported security types: 19"), and the connection dropping.

There is a blueprint explaining the issue better [3], however, it wasn't implemented. It seems that implementing this blueprint is necessary to get end-to-end encryption.


[1] https://github.com/novnc/noVNC/issues/105

[2] https://github.com/novnc/noVNC/issues/342

[3] https://specs.openstack.org/openstack/nova-specs/specs/ocata/approved/websocket-proxy-to-host-security.html

Comment 1 Nathan Kinder 2017-08-29 18:12:37 UTC
Reassigning to DFG:Compute, as this needs work in noVNC.

Comment 2 Stephen Finucane 2017-09-01 08:38:31 UTC
This looks like a duplicate of an existing RFE. This has been bouncing around upstream for a few cycles now, and we hope to finally get it in in this cycle.

*** This bug has been marked as a duplicate of bug 1025429 ***