Erro de cifrado TLS en OpenVPN: compare primeiro os dous extremos
Un erro de «ningún cifrado compartido» pertence á canle de control TLS, non a data-ciphers. Compare primeiro as versións, despois as listas de suites e despois demostre a negociación.
Un erro de «ningún cifrado compartido» soa a un único axuste que hai que cambiar, e o axuste que cambia a maioría é o equivocado. OpenVPN mantén políticas separadas para a canle de control que fai o aperto de mans TLS e para a canle de datos que transporta paquetes dentro do túnel, e o erro nomea a primeira mentres a xente edita a segunda. Comparar o que permite cada extremo, na orde correcta, converte as conxecturas en dúas ou tres decisións: versión, despois lista de suites, despois credenciais.
Erra esa orde e podes perder unha hora engadindo un nome AES a unha lista que nunca se consultou.
Dúas listas de cifrado, e só unha rompe o aperto de mans
A canle de control negocia unha sesión TLS, e a súa política escríbese con tls-cipher para TLS 1.2 e tls-ciphersuites para TLS 1.3. A canle de datos configúrase á parte con data-ciphers, onde unha discrepancia produce unha conexión que se establece e despois non pode pasar tráfico. Ambas producen erros que mencionan cifrados, e por iso se confunden. Un aperto de mans que nunca se completa apunta á canle de control, mentres que un túnel establecido que descarta paquetes apunta á canle de datos.
Lea a mensaxe completa en lugar da primeira liña. Unha discrepancia de versións, unha suite ausente, un algoritmo de sinatura de certificado que o extremo rexeita e un fallo de verificación do nome de host rematan todos nun erro TLS, e só un deles trata da súa lista de suites. Separar esas categorías é a maior parte do diagnóstico.
Compare as versións antes de comparar as suites
Un extremo limitado a TLS 1.2 e un extremo que exixe 1.3 non comparten versión, e ningunha cadea de cifrado salva iso. Anote tls-version-min e tls-version-max nos dous lados, ou os valores predeterminados das compilacións en uso, porque a política OpenSSL dunha distribución pode subir o mínimo sen que ningunha opción de OpenVPN o diga. Se un lado é un dispositivo ou un cliente de terceiros, a súa xanela é o que permite o seu firmware. Só cando as xanelas se solapan ten sentido unha comparación de suites.
Eses rexistros tamén deberían nomear os binarios reais. Un openvpn de liña de ordes no seu portátil non é necesariamente o cliente que xestiona un perfil importado.
As listas de TLS 1.2 e TLS 1.3 non se mesturan
Os nomes de suite de TLS 1.2 parecen ECDHE-RSA-AES256-GCM-SHA384 e van en tls-cipher, que acepta unha cadea de cifrado OpenSSL. As suites de TLS 1.3 chámanse como TLS_AES_256_GCM_SHA384 e van en tls-ciphersuites; engadir unha á cadea de 1.2 non configura a lista de 1.3, e o analizador pode aceptar o texto sen chegar a coincidir nunca. Un filtro correcto para unha versión non di nada da outra. Anote para que versión é cada lista.
openvpn --show-tls imprime o que admite a compilación local, e iso é un inventario, non unha promesa: o extremo remoto pode non permitir esas suites, e o perfil activo pode non habilitalas. Úseo para descartar unha compilación que non pode ofrecer ningunha suite e despois compare as listas configuradas.
Demostre a negociación nunha conexión nova
Un aperto de mans correcto é a única proba que conta, e ten que vir do cliente real co perfil real. Suba a verbosidade do servidor, conéctese unha vez e lea do rexistro a versión de protocolo e a suite negociadas en lugar de supor que gañou o primeiro valor ofrecido. Despois confirme a canle de datos por separado con tráfico polo túnel, porque un aperto de mans que funciona e unha canle de datos que falla son reparacións distintas. Repítao tras calquera cambio de configuración, porque un perfil de cliente obsoleto é un falso negativo habitual.
Se non existe unha configuración común aprobada, a resposta é unha actualización ou un plan de migración, non unha política debilitada. Baixar tls-version-min, desactivar a verificación ou habilitar todas as suites antigas elimina o rexeitamento sen cumprir o requisito de seguridade que o produciu.
Anote a versión negociada, a suite e o cifrado de datos no tícket de cambio. A próxima persoa que se atope cun erro TLS comezará por ese rexistro e non por unha cadea de cifrado atopada nunha mensaxe de foro.