Un error de «cap xifratge compartit» sona com un paràmetre que cal canviar, i el paràmetre que la majoria de la gent canvia és l’equivocat. OpenVPN manté polítiques separades per al canal de control que fa l’aplec de TLS i per al canal de dades que porta paquets dins del túnel, i l’error nomena el primer mentre la gent edita el segon. Comparar què permet cada extrem, en l’ordre correcte, converteix l’endevinalla en dues o tres decisions: versió, després llista de suites, després credencials.

Equivoqueu aquest ordre i podeu perdre una hora afegint un nom AES a una llista que mai no s’ha consultat.

Dues llistes de xifratge, i només una trenca l’aplec

El canal de control negocia una sessió TLS, i la seva política s’escriu amb tls-cipher per a TLS 1.2 i tls-ciphersuites per a TLS 1.3. El canal de dades es configura a part amb data-ciphers, on una discrepància produeix una connexió que s’estableix i després no pot passar tràfic. Tots dos produeixen errors que esmenten xifratges, i per això es confonen. Un aplec que no s’acaba mai apunta al canal de control, mentre que un túnel establert que descarta paquets apunta al canal de dades.

Llegiu el missatge sencer en lloc de la primera línia. Una discrepància de versions, una suite que falta, un algorisme de signatura de certificat que l’extrem rebutja i un fracàs de verificació del nom d’amfitrió acaben tots en un error TLS, i només un d’ells tracta de la vostra llista de suites. Separar aquestes categories és la major part del diagnòstic.

Compareu les versions abans de comparar les suites

Un extrem limitat a TLS 1.2 i un extrem que requereix 1.3 no comparteixen cap versió, i cap cadena de xifratge ho salva. Anoteu tls-version-min i tls-version-max als dos costats, o els valors per defecte de les compilacions en ús, perquè la política OpenSSL d’una distribució pot apujar el mínim sense que cap opció d’OpenVPN ho digui. Si un costat és un aparell o un client de tercers, la seva finestra és el que permet el seu firmware. Només quan les finestres se superposen té sentit comparar suites.

Aquests registres també haurien de nomenar els binaris reals. Un openvpn de línia d’ordres al vostre portàtil no és necessàriament el client que gestiona un perfil importat.

Les llistes de TLS 1.2 i TLS 1.3 no es barregen

Els noms de suite de TLS 1.2 semblen ECDHE-RSA-AES256-GCM-SHA384 i van a tls-cipher, que accepta una cadena de xifratge OpenSSL. Les suites de TLS 1.3 es diuen com TLS_AES_256_GCM_SHA384 i van a tls-ciphersuites; afegir-ne una a la cadena d’1.2 no configura la llista d’1.3, i l’analitzador pot acceptar el text sense fer-lo coincidir mai. Un filtre correcte per a una versió no diu res de l’altra. Anoteu per a quina versió és cada llista.

openvpn --show-tls imprimeix què admet la compilació local, i això és un inventari, no una promesa: l’extrem remot pot no permetre aquestes suites, i el perfil actiu pot no habilitar-les. Feu-lo servir per descartar una compilació que no pot oferir cap suite, i després compareu les llistes configurades.

Demostreu la negociació en una connexió nova

Un aplec correcte és l’única prova que compta, i ha de venir del client real amb el perfil real. Apugeu la verbositat del servidor, connecteu un cop i llegiu del registre la versió de protocol i la suite negociades en lloc de suposar que el primer valor ofert ha guanyat. Després confirmeu el canal de dades a part amb tràfic pel túnel, perquè un aplec que funciona i un canal de dades que falla són reparacions diferents. Repetiu-ho després de qualsevol canvi de configuració, perquè un perfil de client obsolet és un fals negatiu habitual.

Si no hi ha cap configuració comuna aprovada, la resposta és una actualització o un pla de migració, no una política afeblida. Baixar tls-version-min, desactivar la verificació o habilitar totes les suites antigues elimina el rebuig sense complir el requisit de seguretat que l’havia produït.

Anoteu la versió negociada, la suite i el xifratge de dades al tiquet de canvi. La propera persona que trobi un error TLS començarà per aquest registre i no per una cadena de xifratge trobada en un missatge de fòrum.

Articles relacionats