我正在尝试通过VncViewer(TigerVnc(连接x11vnc服务器。我给出以下命令来启动带有-ssl选项的vnc服务器
$ x11vnc -ssl -rfbauth /home/root/.vnc/passwd
当我尝试连接vnc服务器时,我收到TLS握手失败错误。
以下是vncserver日志
07/05/2020 13:25:58 SSL: accept_openssl(OPENSSL_VNC)
07/05/2020 13:25:58 SSL: spawning helper process to handle: 172.21.33.47:64181
07/05/2020 13:25:58 SSL: helper for peerport 64181 is pid 629:
07/05/2020 13:25:58 connect_tcp: trying: 127.0.0.1 20000
07/05/2020 13:25:59 check_vnc_tls_mode: waited: 1.422183 / 1.40 input: (future) RFB Handshake
07/05/2020 13:26:00 check_vnc_tls_mode: version: 3.8
07/05/2020 13:26:00 check_vnc_tls_mode: reply: 19 (VeNCrypt)
07/05/2020 13:26:00 vencrypt: received 0.2 client version.
07/05/2020 13:26:00 vencrypt: client selected sub-type: 257 (rfbVencryptTlsNone)
07/05/2020 13:26:00 Using Anonymous Diffie-Hellman mode.
07/05/2020 13:26:00 WARNING: Anonymous Diffie-Hellman uses encryption but is
07/05/2020 13:26:00 WARNING: susceptible to a Man-In-The-Middle attack.
07/05/2020 13:26:00 loaded Diffie Hellman 1024 bits, 0.001s
07/05/2020 13:26:00 SSL: ssl_init[629]: 6/6 initialization timeout: 20 secs.
07/05/2020 13:26:01 SSL: ssl_helper[629]: SSL_accept() *FATAL: -1 SSL FAILED
07/05/2020 13:26:01 SSL: error:1417A0C1:SSL routines:tls_post_process_client_hello:no shared cipher
07/05/2020 13:26:01 SSL: ssl_helper[629]: Proto: unknown
07/05/2020 13:26:01 SSL: accept_openssl: cookie from ssl_helper[629] FAILED. 0
这工作正常,没有出现错误。唯一的变化是openssl版本,它从openssl 1.0.2p 2018年8月14日更改为openssl 1.1.1d 2019年9月10日。
我检查了OpenSSL 1.1.1d是否支持TLSv1.3&TigerVNC支持TLSv1.2,错误是因为SSL版本不匹配吗?
我找到了问题的解决方案
07/05/2020 13:26:01 SSL:错误:1417A0C1:SSL例程:tls_post_process_client_hello:无共享密码
这意味着客户端和服务器无法找到它们都支持的一组通用密码套件。
07/05/2020 13:26:00使用匿名Diffie-Hellman模式。
2020年5月7日13:26:00警告:匿名Diffie-Hellman使用加密但是
2020年5月7日13:26:00警告:易受中间人影响袭击
这表明我在x11vnc服务器中使用基于ADH的密码套件,这些密码套件在1.1.1中的默认安全级别中不可用。1.0.2中的情况并非如此。
这个问题的解决方案是降低使用中的安全级别,不抱怨使用ADH。
我将x11vnc服务器的安全级别从ADH:@STRENGHT降低到ADH:@SECLEVEL=0&它奏效了。